Mailing List archive

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

[vdr] Re: DVD-AC3-Playback




Uwe wrote:
> 
> 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'm afraid I missed a few messages due to the recent name server problems
on linuvtv.org, so I'm not sure what exactly to do about this for the upcoming
release of a new VDR version.

Can somebody please explicitly verify whether or not Andreas' suggested modification

           int written = b[8] + 9; // skips the PES header
           if ((b[written] & 0xF0) == 0x80)
              written += 4;

actually works for DVDs _and_ DVB recordings? If it doesn't, I'll have to
add a flag to distinguish between DVD and DVB (which I would like to avoid...).

Thanks
Klaus

> 
> > 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
> > > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >

-- 
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________



Home | Main Index | Thread Index