Johannes,
Thank you for your reply.
Unfortunately we have no control over the ts input into the dvr. Also
the demux may ultimately be implemented in hardware.
What we would like to do is subvert the DMX_OUT_DECODER set up by the
application (outside our control) for the audio and video streams into
the equivalent of DMX_OUT_TAP which we can then read, perhaps from a
ringbuffer per feed, and inject into the software decoder (via the same
route that PES input would come from an application such as VDR)
However, we cannot see any obvious way of doing this.
Best wishes
Julian
Johannes Stezenbach wrote:
On Fri, May 04, 2007, Julian WILSON wrote:
We are implementing the current linux dvb video and audio devices in
software for a media centre we are building. We are uncertain of the
best way to access the functions provided by the core to implement the
data paths needed.
The first requirement is to support 192 byte transport stream packets
which have the 0x47 as byte 4. This is the format used on Blue Ray
disks. We are currently doing this by hooking into the
dvb_demux.dmx.write function.
The second requirement is to receive payload data from the demux rather
than 188 byte chunks via the write_to_decoder function.
The user will typically set up a pes filter with something like:
PesFilter.input = DMX_IN_DVR;
PesFilter.output = DMX_OUT_DECODER;
PesFilter.pes_type = DMX_PES_VIDEO;
PesFilter.pid = Context->VideoId;
PesFilter.flags = DMX_IMMEDIATE_START;
Result = ioctl (Context->DemuxVideoDevice,
DMX_SET_PES_FILTER, &PesFilter);
The software will be running within the kernel and we would like to be
able to intercept this in such a way that the demuxed pes data can be
read from the various different feeds. Are there any mechanisms which
allow this kind of access. The reason for this is it seems pointless to
demux data that has already been filtered by the dvb-core functions.
IMHO using the dvr device for playback would make sense if
you have a hardware demux. If you're demuxing in software,
then it's probably better to do it in userspace and feed
video/audio packets directly to the decoder. This makes
it easier to implement trick modes.
(I also suspect the dvr playback code has locking problems,
and is not tested much as it's only supported for av7110
cards, and isn't used by vdr or other software.)
HTH,
Johannes
|
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb