<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/media/dvb/dvb-core/dmxdev.c, branch linux-2.6.29.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.29.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.29.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2009-02-17T12:43:09Z</updated>
<entry>
<title>V4L/DVB (10572): Revert commit dda06a8e4610757def753ee3a541a0b1a1feb36b</title>
<updated>2009-02-17T12:43:09Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
</author>
<published>2009-02-16T18:27:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=28100165c3f27f681fee8b60e4e44f64a739c454'/>
<id>urn:sha1:28100165c3f27f681fee8b60e4e44f64a739c454</id>
<content type='text'>
On Mon, 02 Feb 2009, Hartmut wrote:

This change set is wrong. The affected functions cannot be called from
an interrupt context, because they may process large buffers. In this
case, interrupts are disabled for a long time. Functions, like
dvb_dmx_swfilter_packets(), could be called only from a tasklet.

This change set does hide some strong design bugs in dm1105.c and
au0828-dvb.c.

Please revert this change set and do fix the bugs in dm1105.c and
au0828-dvb.c (and other files).

On Sun, 15 Feb 2009, Oliver Endriss wrote:

This changeset _must_ be reverted! It breaks all kernels since 2.6.27
for applications which use DVB and require a low interrupt latency.

It is a very bad idea to call the demuxer to process data buffers with
interrupts disabled!

On Mon, 16 Feb 2009, Trent Piepho wrote:

I agree, this is bad.  The demuxer is far too much work to be done with
IRQs off.  IMHO, even doing it under a spin-lock is excessive.  It should
be a mutex.  Drivers should use a work-queue to feed the demuxer.

Thank you for testing this changeset and discovering the issues on it.

Cc: Trent Piepho &lt;xyzzy@speakeasy.org&gt;
Cc: Hartmut &lt;e9hack@googlemail.com&gt;
Cc: Oliver Endriss &lt;o.endriss@gmx.de&gt;
Cc: Andreas Oberritter &lt;obi@linuxtv.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (9029): Fix deadlock in demux code</title>
<updated>2008-10-05T01:59:55Z</updated>
<author>
<name>Andreas Oberritter</name>
</author>
<published>2008-09-24T08:00:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dda06a8e4610757def753ee3a541a0b1a1feb36b'/>
<id>urn:sha1:dda06a8e4610757def753ee3a541a0b1a1feb36b</id>
<content type='text'>
The functions dvb_dmxdev_section_callback, dvb_dmxdev_ts_callback,
dvb_dmx_swfilter_packet, dvb_dmx_swfilter_packets, dvb_dmx_swfilter and
dvb_dmx_swfilter_204 may be called from both interrupt and process
context. Therefore they need to be protected by spin_lock_irqsave()
instead of spin_lock().

This fixes a deadlock discovered by lockdep.

Signed-off-by: Andreas Oberritter &lt;obi@linuxtv.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings</title>
<updated>2008-09-03T21:37:13Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2008-09-03T20:11:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c6eb8eafdba4ad18b4520a0d28a38bc9e61883ea'/>
<id>urn:sha1:c6eb8eafdba4ad18b4520a0d28a38bc9e61883ea</id>
<content type='text'>
Fixed a lot of sparse warnings: mostly warnings about shadowed variables
and signed/unsigned mismatches.

Signed-off-by: Hans Verkuil &lt;hverkuil@xs4all.nl&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (8130): split dvb_ringbuffer dual-use functions</title>
<updated>2008-07-20T10:13:23Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-06-22T17:20:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b0ba0e3ab6f452321771325b7b5578f9a804f69e'/>
<id>urn:sha1:b0ba0e3ab6f452321771325b7b5578f9a804f69e</id>
<content type='text'>
split the suckers into kernel-memory and user-memory versions,
annotate both properly.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (7659): dvb-core: Implement DMX_SET_BUFFER_SIZE for dvr</title>
<updated>2008-04-24T17:09:45Z</updated>
<author>
<name>Andrea Odetti</name>
</author>
<published>2008-04-20T22:14:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a095be4b030cd7eb5ac2a7dcb86e803db149a8db'/>
<id>urn:sha1:a095be4b030cd7eb5ac2a7dcb86e803db149a8db</id>
<content type='text'>
Implementation of DMX_SET_BUFFER_SIZE for dvr.
Synchronization of the code of DMX_SET_BUFFER_SIZE for demux and dvr.

Signed-off-by: Andrea Odetti &lt;mariofutire@gmail.com&gt;
Signed-off-by: Oliver Endriss &lt;o.endriss@gmx.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (7658): dvb-core: Fix DMX_SET_BUFFER_SIZE in case the buffer shrinks</title>
<updated>2008-04-24T17:09:44Z</updated>
<author>
<name>Andrea Odetti</name>
</author>
<published>2008-04-20T21:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48c01a9c2d245b229f8b709040cb1776b00dc683'/>
<id>urn:sha1:48c01a9c2d245b229f8b709040cb1776b00dc683</id>
<content type='text'>
This patch fixes the bug in DMX_SET_BUFFER_SIZE for the demux.
Basically it resets read and write pointers to 0 in case they are
beyond the new size of the buffer.

Signed-off-by: Andrea Odetti &lt;mariofutire@gmail.com&gt;
Signed-off-by: Oliver Endriss &lt;o.endriss@gmx.de&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (7512): media/dvb/dvb-core replace remaining __FUNCTION__ occurrences</title>
<updated>2008-04-24T17:07:58Z</updated>
<author>
<name>Harvey Harrison</name>
</author>
<published>2008-04-09T02:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=46b4f7c176a2dd4c60ddb7c80bd09ea2f3220674'/>
<id>urn:sha1:46b4f7c176a2dd4c60ddb7c80bd09ea2f3220674</id>
<content type='text'>
__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison &lt;harvey.harrison@gmail.com&gt;
Acked-by: Oliver Endriss &lt;o.endriss@gmx.de&gt;
Signed-off-by: Michael Krufky &lt;mkrufky@linuxtv.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (7329): add flag to allow software demux to recognize the output type</title>
<updated>2008-04-24T17:07:48Z</updated>
<author>
<name>Andreas Oberritter</name>
</author>
<published>2008-04-22T17:45:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a24ce3a17ee713056db0a24cf558bd595211302'/>
<id>urn:sha1:4a24ce3a17ee713056db0a24cf558bd595211302</id>
<content type='text'>
Previously, the macro DVR_FEED, which is used to recognize and filter
out duplicate packets going to the DVR device, used the TS_PAYLOAD_ONLY
flag to identify a packet's destination.

This kind of filtering was introduced by the following two changesets:

Now, that it is possible to record TS PIDs using the demux device by
setting the output type to DMX_OUT_TSDEMUX_TAP, checking TS_PAYLOAD_ONLY
is not sufficient anymore. Therefore another flag, TS_DEMUX, is added to
specify the output type of a feed.

This allows multiple clients to filter the same TS PID on a demux device
simultaneously.

Signed-off-by: Andreas Oberritter &lt;obi@linuxtv.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (7293): DMX_OUT_TSDEMUX_TAP: record two streams from same mux, resend</title>
<updated>2008-04-24T17:07:46Z</updated>
<author>
<name>Peter Hartley</name>
</author>
<published>2008-04-22T17:45:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b01cd937895ad4114a07114cfb6b8b5d2be52241'/>
<id>urn:sha1:b01cd937895ad4114a07114cfb6b8b5d2be52241</id>
<content type='text'>
Currently (in linux-2.6.24, but linux-dvb hg looks similar), the
dmx_output_t in the dmx_pes_filter_params decides two things: whether
output is sent to demux0 or dvr0 (in dmxdev.c:dvb_dmxdev_ts_callback),
*and* whether to depacketise TS (in dmxdev.c:dvb_dmxdev_filter_start).
As it stands, those two things can't be set independently: output
destined for demux0 is depacketised, output for dvr0 isn't.

This is what you want for capturing multiple audio streams from the same
multiplex simultaneously: open demux0 several times and send
depacketised output there. And capturing a single video stream is fine
not what you want: you want multi-open (so demux0, not dvr0), but you
want the TS nature preserved (because that's what you want on output, as
you're going to re-multiplex it with the audio).

At least one existing solution -- GStreamer -- sends all its streams
simultaneously via dvr0 and demuxes again in userland, but it seems a
bit of a shame to pick out all the PIDs in kernel, stick them back
together in kernel, and send them to userland only to get unpicked
again, when the alternative is such a small API addition.

The attached patch adds a new value for dmx_output_t:
DMX_OUT_TSDEMUX_TAP, which sends TS to the demux0 device. With this
patch and a dvb-usb-dib0700 (and UK Freeview from Sandy Heath), I can
successfully capture an audio/video PID pair into a TS file that mplayer
can play back.

Signed-off-by: Peter Hartley &lt;pdh@utter.chaos.org.uk&gt;
Acked-by: Andreas Oberritter &lt;obi@linuxtv.org&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
<entry>
<title>V4L/DVB (6079): Cleanup: remove linux/moduleparam.h from drivers/media files</title>
<updated>2007-10-10T01:06:17Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
</author>
<published>2007-08-21T15:38:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c12224a607a4b22ab86784e3394b52810b9507c'/>
<id>urn:sha1:9c12224a607a4b22ab86784e3394b52810b9507c</id>
<content type='text'>
Since at least kernel 2.6.12-rc2, module.h includes moduleparm.h. This
patch removes all occurences of moduleparm.h from drivers/media files.

Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@infradead.org&gt;
</content>
</entry>
</feed>
