Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] DVD AC3 playback for vdr



Hi,

The newest and greatest installment of the AC3/LPCM audio syncing for 
DVD playback is up for yours to grab at:

<http://www.cs.uni-magdeburg.de/~aschultz/dvd/vdr-0.96-as1.patch.gz>

READ THIS FIRST:

   This one fixes syncing problems _only_ for AC3 (converted to LPCM)
   audio playback through the DVB card. Syncing problems when using
   external AC3 hardware are not addressed in this patch.

So far for the bad news, the good news is that i have found the reason 
for the DVD AC3 desync with external hardware. The cause is, as always, 
my own stupidity. Currently, AC3 frames are writen to an external 
decoder in the input thread. This is absolutly wrong. VDR is doing it 
right for normal TV stuff, i only need to pass the frames directly to 
the output buffer (and maybe sync them a bit with the video stream, as 
the AC3 muxing varies from DVD to DVD). This, however, will be addressed 
in a later patch.

PLEASE, everbody, test this patch. I hope to be able to start with some 
more interresting DVD navigation and menue stuff as soon as this 
annoying audio business is finisched.

Known issues:

   - chapter forward/backward jump skips 1st I-Frame, producing blocky
     picture for aprox. 1/2 sec.
   - FastForward/Backward modes are untested (but might work)

@Klaus:
This version still contains my old version of cFrameRingBuffer, lots of 
debug code and many places that still need cleanup.
I also had to split you cPlayBuffer::Empty() methode. This was 
necessary, because for DVD playback the output can only start after the 
buffer has reached a certain level, for the trickmodes however, 
processing of the buffer has to start immediatly. The 
blocking/deblocking of the output buffer was being done in 
cPlayBuffer::Empty(). Fitting the delayed start in there cause a huge 
mess. The current solution could probably use other names, but is IMHO 
the cleaner way do to it.

Have fun

     Andreas




Home | Main Index | Thread Index