V4L/DVB (11622): cx18: Allow IVTV format VBI insertion in MPEG-2 SVCD and DVD streams
authorAndy Walls <awalls@radix.net>
Sun, 26 Apr 2009 19:34:36 +0000 (16:34 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 21:20:45 +0000 (18:20 -0300)
Both the MPEG-2 SVCD stream format and the MPEG-2 DVD stream format should
use an MPEG-2 PS container.  This makes it safe to stuff IVTV Private Stream 1
VBI packets in these stream types using the existing cx18 driver routines.

Reported-by: Helen Buus <mythtv@hbuus.com>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx18/cx18-controls.c
drivers/media/video/cx18/cx18-fileops.c

index 82fc2f9..8e35c3a 100644 (file)
@@ -176,8 +176,10 @@ static int cx18_setup_vbi_fmt(struct cx18 *cx,
                return -EBUSY;
 
        if (fmt != V4L2_MPEG_STREAM_VBI_FMT_IVTV ||
-           type != V4L2_MPEG_STREAM_TYPE_MPEG2_PS) {
-               /* We don't do VBI insertion aside from IVTV format in a PS */
+           !(type == V4L2_MPEG_STREAM_TYPE_MPEG2_PS ||
+             type == V4L2_MPEG_STREAM_TYPE_MPEG2_DVD ||
+             type == V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD)) {
+               /* Only IVTV fmt VBI insertion & only MPEG-2 PS type streams */
                cx->vbi.insert_mpeg = V4L2_MPEG_STREAM_VBI_FMT_NONE;
                CX18_DEBUG_INFO("disabled insertion of sliced VBI data into "
                                "the MPEG stream\n");
index b3889c0..29969c1 100644 (file)
@@ -265,8 +265,13 @@ static size_t cx18_copy_buf_to_user(struct cx18_stream *s,
                 * an MPEG-2 Program Pack start code, and provide only
                 * up to that point to the user, so it's easy to insert VBI data
                 * the next time around.
+                *
+                * This will not work for an MPEG-2 TS and has only been
+                * verified by analysis to work for an MPEG-2 PS.  Helen Buus
+                * pointed out this works for the CX23416 MPEG-2 DVD compatible
+                * stream, and research indicates both the MPEG 2 SVCD and DVD
+                * stream types use an MPEG-2 PS container.
                 */
-               /* FIXME - This only works for an MPEG-2 PS, not a TS */
                /*
                 * An MPEG-2 Program Stream (PS) is a series of
                 * MPEG-2 Program Packs terminated by an