home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
Advanced Stream Switching / Graph Rebuilding
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="nevcairiel" data-source="post: 751095" data-attributes="member: 111604"><p><strong>AW: Advanced Stream Switching / Graph Rebuilding</strong></p><p></p><p></p><p>Thats all up the splitter, of course. The interface only allows to delegate the rebuilding to the application. The splitter decides when to rebuild, and if to always stop or pause the graph, or let the player handle that as well.</p><p></p><p>LAV Splitter for example will always stop the graph, because that automatically clears the buffers, and makes the switch "instant", and the playback glitch is very minor.</p><p>The player shoud not make any assumptions on the state of the graph when it gets the callback, and always ensure its stopped when doing graph changes.</p><p></p><p>One thing i'm undecided about however. If the player gets a callback for video, and the graph is still running, then the player should stop the graph. But should it start it as well again? This could potentially cause the issue you descriped. I would rather see the splitter taking care of that, returning the graph to the playing state when its done calling all rebuild callbacks.</p><p></p><p>I'll properly formulate that in the interface description.</p><p></p><p></p><p>One pin can have many media types, IMHO its easier to just let the application probe pPin->GetMediaType, thats the same logic it used initially when creating the graph.</p><p></p><p>I have been thinking about adding a enum value to the call though, which specifiys the type of the pin, "video", "audio", "subtitle", "unknown". That way the player can directly go into the proper routine to figure out what filters are relevant.</p></blockquote><p></p>
[QUOTE="nevcairiel, post: 751095, member: 111604"] [b]AW: Advanced Stream Switching / Graph Rebuilding[/b] Thats all up the splitter, of course. The interface only allows to delegate the rebuilding to the application. The splitter decides when to rebuild, and if to always stop or pause the graph, or let the player handle that as well. LAV Splitter for example will always stop the graph, because that automatically clears the buffers, and makes the switch "instant", and the playback glitch is very minor. The player shoud not make any assumptions on the state of the graph when it gets the callback, and always ensure its stopped when doing graph changes. One thing i'm undecided about however. If the player gets a callback for video, and the graph is still running, then the player should stop the graph. But should it start it as well again? This could potentially cause the issue you descriped. I would rather see the splitter taking care of that, returning the graph to the playing state when its done calling all rebuild callbacks. I'll properly formulate that in the interface description. One pin can have many media types, IMHO its easier to just let the application probe pPin->GetMediaType, thats the same logic it used initially when creating the graph. I have been thinking about adding a enum value to the call though, which specifiys the type of the pin, "video", "audio", "subtitle", "unknown". That way the player can directly go into the proper routine to figure out what filters are relevant. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
Advanced Stream Switching / Graph Rebuilding
Contact us
RSS
Top
Bottom