[mythtv] Suggestion for improving SLOW channel changing inLiveTV.....

Kenneth Aafløy lists at kenneth.aafloy.net
Sun Sep 11 02:49:48 UTC 2005


Søndag 11 september 2005 04:15, skrev Tim McClarren:
> I just started looking at this.
>
> I instrumented tv_play.cpp and some of RingBuffer.cpp with logging,
> because I was curious why it was taking me just under 4s to change
> channels.

A tiny tip for you all would be to implement non-blocking reads from the 
frontend side. This way you could get the decoder to start decoding frames 
faster, which will improve the prebuffering time.

It probably also have the nice side effect of fixing the dreaded deadlocks on 
tuner failure ;)

I'm wondering though, if the truncate of the ringbuffer actually does free the 
data of a file or not? If so, it could be more efficient to rename the 
current file, create a new and defer the removal to another thread.

Something that would not affect DVB or ATSC would be any delay that the 
encoder requires, with a few frames this could quickly become noticable,
please take this into account.

The frontend does something that has been called prebuffering, and the last 
time I looked this is a 'lineup' of decoded frames that will be played back.
What could be done to improve time here is to manage the not-yet-decoded 
'frames' in time, so that prebuffering would work on the frame data, which 
would save a lot of time in decoding frames that would be dropped anyways.

Btw, the time between the audio and video stream will increase if you have a 
cam attached to your dvb adapter, because of the delays in the decryption 
engine in the cam. This causes MythTV to wait longer before playback is 
started, since it wants a certain timeslice buffered in any stream.

Kenneth


More information about the mythtv-dev mailing list