Mailing List archive

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

[linux-dvb] VDR: Packet Resequencer



I have uploaded some changes to VDR 0.80 to

  ftp://ftp.cadsoft.de/pub/people/kls/vdr/vdr-0.81pre1.diff.gz

which mainly implement a "Packet Resequencer" which tries to
improve the A/V multiplexing.

PLEASE NOTE that this patch should only be used by people who are
willing to experiment. It is not for every day use, since it may happen
that recordings don't work at all.

The idea behind this is to become
able to record two audio tracks (e.g. German and English), which
is not possible with the raw data delivered from the driver since
the second audio track's data comes in large chunks (I reported
this in an earlier posting). It will also become important with
recording AC3 sound.

With the above patch, VDR buffers video and audio in separate
linked lists and repacks the audio data into smaller packets
(currently 256 byte). Once it has enough video and audio data
it writes out a properly sequenced series of video and audio
packets (see the code in remux.c, class cResequencer for details).
The core functions are cResequencer::Collect(), cResequencer::Combine()
and cResequencer::Process().

What happens is that it buffers enough video packets to "see" two
subsequent frames that have a "temporal reference" of 0 and takes their
PTS to interpolate a "timeline" on which to output the audio data
packets. For each interval on this timeline it then outputs the audio
packets that have a PTS that falls into this interval, and the video
packet itself. I hope the code in remux.c is clear enough so that
you can see what's going on.

My current tests show that it works quite good on some channels,
while on others it produces video and/or audio disturbances.

What I would like to know now is whether this approach is at all
reasonable (maybe the MPEG experts here on the list can comment on
this) and if so, how the current version could be improved in order
to produce "clean" data.

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
_______________________________________________________________


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index