On Mon, Mar 14, 2005 at 06:01:02PM +0100, Roland Praml wrote:
> >> I've figured out if I replay the file with vdr, the bso(replay) thread
> >> doesn't start with newer recordings
> >
> > And you have choosen the AC3 audio track during replay the
> > recording with the green button? I've this question because
> > this is the first report of that kind.
>
> yes i've tested it several times.
> I've tracked down the problem a little bit. Data is sent to the plugin
> but the replay thread doesn't start because ScanPayOfPS1 fails.
>
> I've commented out these two lines:
> case 0x0b:
> // if ((uint_16)dvb != AC3magic)
> // break;
> and now it works.
Hmmm ... this implies that the offset
off_t o = (off_t) (ul & 0x0000ffff) + 3;
is not correct because the stream is moved forward
dvb += o;
to the start of the magic word of the frame which should
start there. As this works with stuff from DVD trailers
I assume that something goes wrong elsewhere, e.g. in the
cDolbyRepacker class.
[seeking VDR sources]
OK it _is_ a bug in the cDolbyRepacker class, therefore
I've added Reinhard to CC.
IMHO the declaration of AppendSubStreamID includes
an error:
void cDolbyRepacker::AppendSubStreamID(void)
{
if (subStreamId) {
pesHeader[pesHeaderLen++] = subStreamId;
pesHeader[pesHeaderLen++] = 0x00;
pesHeader[pesHeaderLen++] = 0x00;
pesHeader[pesHeaderLen++] = 0x00;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The minimal size is 0x01 and never 0x00
}
}
... OK, in the firmware I've included a workaround for
such broken sub audio header. Nevertheless this should
be corrected :^) ... Reinhard?
Werner
--
AC3 loop through sound card http://bitstreamout.sourceforge.net/
Howto http://www.vdr-portal.de/board/thread.php?threadid=1958
------------------------------------------------------------------
"Having a smoking section in a restaurant is like having
a peeing section in a swimming pool." -- Edward Burr