Mailing List archive

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

[vdr] Re: DVD-AC3-Playback




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