Mailing List archive

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

[vdr] Re: DVD-AC3-Playback




Hello

> Hello Klaus, hello Andreas,
>
> I just tried the latter patch.
> DVDs work very well (AC3 2.0 and 5.1 tested with ST First Contact RC1).
> Unfortunately, VDR recordings don't (at least not very well).
> I get many drop outs and stutterings, and my receiver switches back to PCM
> every few seconds.

Yes, this can i confirm.

> I guess some VDR AC3 packets match the "if" criterion...
>
> Yours
> Stephan
>
>
> >
> >
> >
> > Hi all,
> >
> > small improvement for Klaus' original patch, try:
> >
> >             int written = b[8] + 9; // skips the PES header
> >             if ((b[written] &0xf0) == 0x80)
> >               written += 4;
> >
> > This should allow it, to handle all AC3 tracks correctly.
> >
> > Andreas
> >
> >
> > Klaus Schmidinger wrote:
> >
> > > Uwe wrote:
> > >
> > >>Hello Klaus
> > >>
> > >>
> > >>>From: "Klaus Schmidinger" Sent: Saturday, November 24, 2001 4:54 PM
> > >>>
> > >>>Andreas Schultz wrote:
> > >>>
> > >>>>Hi all,
> > >>>>
> > >>>>There have been to much complaints about DVD AC3 playback. So i had
> > >>>>quick look at it.
> > >>>>There appears indeed to be a problem with the way how DVD AC3
> > frames are
> > >>>>sent to external decoders.
> > >>>>
> > >>>>Everyone with problems, could you please try to modify line 772
> > >>>>(cPlayBuffer::PlayExternalDolby()) in dvbapi.c.
> > >>>>
> > >>>>orignal:
> > >>>>
> > >>>>int written = b[8] + 9; // skips the PES header
> > >>>>
> > >>>>should be changed to:
> > >>>>
> > >>>>int written = b[8] + 13; // skips the PES header
> > >>>>
> > >>>>This will most likely break AC3-out for DVB streams.
> > >>>>
> > >>>>Please report your findings ASAP especialy wether this change indeed
> > >>>>breaks DVB AC3 or not.
> > >>>>
> > >>>I don't have any detailed information on this AC3 (header) format,
> > >>>but from what I have observed there might be a chance to dynamically
> > >>>detect whether these four bytes should be skipped or not.
> > >>>
> > >>>Please try this instead of the above change
> > >>>
> > >>>           int written = b[8] + 9; // skips the PES header
> > >>>           if (b[written] == 0x80)
> > >>>              written += 4;
> > >>>
> > >>>and test if this can play AC3 sound from DVDs as well as DVB
> > >>>recordings made with VDR.
> > >>>
> > >>>Note that this is just a wild guess - if anybody can come up with
> > >>>information on how one can correctly detect whether these four header
> > >>>
> > >>bytes
> > >>
> > >>>are present or not, please let me know.
> > >>>
> > >>>
> > >>>
> > >>I can  play DVD with first AC3-Language (Englisch). The second
Language
> > >>break the AC3 with ** CRC failed - skipping frame **.(testet
> > with StarWars
> > >>EP1)
> > >>VDR-Files with AC3 play become good AC3-Sound.
> > >>( 2min --> 9 skipping frame (**CRC failed - skipping frame **) )
> > >>
> > >
> > > Hmmm, not very encouraging...
> > >
> > > I you play the DVDs with
> > >
> > >    int written = b[8] + 13; // skips the PES header
> > >
> > > as originally suggested by Andreas, do they play correct AC3 sound?
> > > Especially the second language you mentioned.
> > >
> > > Also, of you play the VDR recordings with the original
> > >
> > >    int written = b[8] + 9; // skips the PES header
> > >
> > > do you also get the "9 skipping frame" errors?
> > >
> > > If DVDs play correctly with 'b[8] + 13' and VDR recordings play with
> > > 'b[8] + 9', I guess we could simply introduce a flag in cPlayBuffer
> > > which tells PlayExternalDolby() whether to skip the additional 4 bytes
> > > or not. But to make sure this is the way to go I'd appreciate if you
> > > could verify that Andreas' original suggestions works for DVDs, and
that
> > > the original VDR 0.98 plays its own recordings correctly.
> > >
> > > Klaus
> > >
> >
> >
> >
> >
> >
>
>
>





Home | Main Index | Thread Index