Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faster channel switching for addons with built-in demuxer #3964

Closed
wants to merge 5 commits into from

Conversation

Jalle19
Copy link
Member

@Jalle19 Jalle19 commented Jan 5, 2014

I've been experimenting with reducing the amount of stuff that happens when switching channels in an attempt to speed up the process, and this is what I have so far. These changes rely on opdenkamp/xbmc-pvr-addons#259 for maximum efficiency. We already started the discussion over there but I think it's better to keep it here so people can more easily comment on specific changes etc.

All in all, the idea is to refrain from closing the demuxer and decoders when switching channels, unless it's necessary. Another part of speeding things up is removing the CACHESTATE_PVR caching state. This has been possible all along by using advancedsettings.xml and I'd like some feedback on what its purpose actually is (since stuff works fine without it)?

I am using this branch myself and while there seems to be some random issues with subtitles overall it works great. @amet also tested it successfully.

To start of the discussion I have two questions that I haven't gotten a clear answer on:

  1. Why is the demuxer (m_pDemuxer) deleted all the time?
  2. What's the implication of reusing a decoder? @FernetMenta said something about extradata. Could someone shine on a light on all of this?

@elupus I take it all of this is somewhat your domain?

is always done a moment later anyway when a
DMX_SPECIALID_STREAMCHANGE comes in
DMX_SPECIALID_STREAMCHANGE packets comes in. This way we avoid
opening it sooner when the streams are about to change very soon
anyway
@Jalle19
Copy link
Member Author

Jalle19 commented Jan 5, 2014

@xhaggi I had to force push to fix a compilation error (from an earlier rebase) so your comment got lost.

I investigated the use of OpenDefaultStreams() a bit more and have now changed the commit so that it is called only when the stream change occurs, not otherwise. The previous approach was made before I added the "don't delete the demuxer all the time" commit which is why it was a bit too drastic.

method, and load it at the right place (previously they were only
loaded if there was no demuxer, since it is no longer destroyed we
always load them)
@Jalle19
Copy link
Member Author

Jalle19 commented Jan 5, 2014

Moved the loading of stored channel settings to the proper location so that it actually works.

@FernetMenta
Copy link
Contributor

please move discussion on this to the forum or postpone after release. We are short final for Gotham and this certainly won't make it into release.
You are about to ruin lots of things improved over time with this changes. There is a reason why we have caching for pvr and why channels settings are loaded at this time. If you open a thread on the forum I am happy to anwer the questions. Doing it here everyone on the team get an email.

@Jalle19
Copy link
Member Author

Jalle19 commented Jan 5, 2014

Let's continue in http://forum.xbmc.org/showthread.php?tid=182355

@opdenkamp
Copy link
Member

oh right yeah let's continue this on the forum :) and yeah, what @FernetMenta said :)

@ghost ghost assigned opdenkamp Jan 6, 2014
@Jalle19
Copy link
Member Author

Jalle19 commented Mar 11, 2014

I'm closing this one, at least for the time being.

@Jalle19 Jalle19 closed this Mar 11, 2014
@MartijnKaijser MartijnKaijser modified the milestones: Gotham13.0-rc1, Helix 14.0-alpha1 May 21, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants