here i'm again
hyp : the quicktime file format has a mechnism to "group" streams : allow streams to be played together, overlay a stream on another, preventing stream 2 processing while stream 1 is active but allow stream 3...
this could be usefull for :
->display a main video
->display sub1 (FR)
->prevent display of sub2(ENG)
->play audio1 (ENG)
->play audio2 (background sound)
->prevent play of audio3 (FR)
main video : mutex list empty
sub1 : mutex list : sub2
sub2 : mutex list : sub1
audio1 : mutex with audio3
audio2 : no mutex
audio3 : mutex with audio1
after reflexion i see the following option :
a path /source should have a unique group id if issued from the same "input device" each path have a mutex list.
when processing the last device must check the group id. if two stream have the same group id it should check if the streams are not mutually exclusive if streams are mutialy exclusive and the output device can only display one stream then it must return a signal to the application which will ask the user.
if the output device has the possibility to handle grouping information (for exemple a quicktime writer) then it should only return a warning/info but not prevent processing
it's a little bit hard but if you have a better idea....