slomo gst-plugins-bad: gst-plugins-bad/ gst-plugins-bad/gst/mpegtsmux/ gst-plugins-bad/gst/mpegtsmux/tsmux/

[email protected]
Newsgroups gmane.comp.video.gstreamer.cvs
Message-ID <[email protected]>
CVS Root:       /cvs/gstreamer
Module:         gst-plugins-bad
Changes by:     slomo
Date:           Mon Nov 24 2008  10:46:15 UTC

Log message:
Patch by: vanista <vanista at gmail dot com>
* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new):
Add initial support for muxing AC3/DTS/LPCM into MPEG TS.
Fixes bug #550613.

Modified files:
    .               : ChangeLog
    gst/mpegtsmux   : mpegtsmux.c
    gst/mpegtsmux/tsmux: tsmuxstream.c

Links:
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ChangeLog.diff?r1=1.3734&r2=1.3735
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/gst/mpegtsmux/mpegtsmux.c.diff?r1=1.4&r2=1.5
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/gst/mpegtsmux/tsmux/tsmuxstream.c.diff?r1=1.2&r2=1.3

====Begin Diffs====
Index: ChangeLog
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-bad/ChangeLog,v
retrieving revision 1.3734
retrieving revision 1.3735
diff -u -d -r1.3734 -r1.3735
--- ChangeLog	24 Nov 2008 10:41:11 -0000	1.3734
+++ ChangeLog	24 Nov 2008 10:46:00 -0000	1.3735
@@ -1,5 +1,14 @@
 2008-11-24  Sebastian Dröge  <[email protected]>
 
+	Patch by: vanista <vanista at gmail dot com>
+
+	* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):
+	* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new):
+	Add initial support for muxing AC3/DTS/LPCM into MPEG TS.
+	Fixes bug #550613.
+2008-11-24  Sebastian Dröge  <[email protected]>
 	* gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet),
 	(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_chain):
 	* gst/mxf/mxfparse.c: (mxf_product_version_parse),
Index: mpegtsmux.c
RCS file: /cvs/gstreamer/gst-plugins-bad/gst/mpegtsmux/mpegtsmux.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- mpegtsmux.c	27 Oct 2008 08:52:50 -0000	1.4
+++ mpegtsmux.c	24 Nov 2008 10:46:01 -0000	1.5
@@ -103,11 +103,20 @@
     GST_STATIC_PAD_TEMPLATE ("sink_%d",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
-    GST_STATIC_CAPS ("video/mpeg, mpegversion=(int) { 1, 2, 4 }, "
+    GST_STATIC_CAPS ("video/mpeg, "
+        "mpegversion = (int) { 1, 2, 4 }, "
         "systemstream = (boolean) false; "
         "video/x-dirac;"
-        "video/x-h264;" "audio/mpeg, mpegversion = (int) { 1, 2, 4 }")
-    );
+        "video/x-h264;"
+        "audio/mpeg, "
+        "mpegversion = (int) { 1, 2, 4 };"
+        "audio/x-lpcm, "
+        "width = (int) { 16, 20, 24 }, "
+        "rate = (int) { 48000, 96000 }, "
+        "channels = (int) [ 1, 8 ], "
+        "dynamic_range = (int) [ 0, 255 ], "
+        "emphasis = (boolean) { FALSE, TRUE }, "
+        "mute = (boolean) { FALSE, TRUE }; " "audio/x-ac3;" "audio/x-dts"));
 static GstStaticPadTemplate mpegtsmux_src_factory =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -285,6 +294,19 @@
         ts_data->pid);
     ts_data->stream = tsmux_create_stream (mux->tsmux, TSMUX_ST_VIDEO_DIRAC,
+  } else if (gst_structure_has_name (s, "audio/x-ac3")) {
+    GST_DEBUG_OBJECT (pad, "Creating AC3 stream with PID 0x%04x", ts_data->pid);
+    ts_data->stream = tsmux_create_stream (mux->tsmux, TSMUX_ST_PS_AUDIO_AC3,
+        ts_data->pid);
+  } else if (gst_structure_has_name (s, "audio/x-dts")) {
+    GST_DEBUG_OBJECT (pad, "Creating DTS stream with PID 0x%04x", ts_data->pid);
+    ts_data->stream = tsmux_create_stream (mux->tsmux, TSMUX_ST_PS_AUDIO_DTS,
+  } else if (gst_structure_has_name (s, "audio/x-lpcm")) {
+    GST_DEBUG_OBJECT (pad, "Creating LPCM stream with PID 0x%04x",
+    ts_data->stream = tsmux_create_stream (mux->tsmux, TSMUX_ST_PS_AUDIO_LPCM,
   } else if (gst_structure_has_name (s, "video/x-h264")) {
     const GValue *value;
     GST_DEBUG_OBJECT (pad, "Creating H264 stream with PID 0x%04x",
Index: tsmuxstream.c
RCS file: /cvs/gstreamer/gst-plugins-bad/gst/mpegtsmux/tsmux/tsmuxstream.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- tsmuxstream.c	1 Sep 2008 17:49:59 -0000	1.2
+++ tsmuxstream.c	24 Nov 2008 10:46:01 -0000	1.3
@@ -143,14 +143,31 @@
       stream->pi.flags |= TSMUX_PACKET_FLAG_PES_FULL_HEADER;
       break;
     case TSMUX_ST_VIDEO_DIRAC:
+    case TSMUX_ST_PS_AUDIO_LPCM:
+    case TSMUX_ST_PS_AUDIO_AC3:
+    case TSMUX_ST_PS_AUDIO_DTS:
       stream->id = 0xFD;
       /* FIXME: assign sequential extended IDs? */
-      stream->id_extended = 0x60;
-
+      switch (stream_type) {
+        case TSMUX_ST_VIDEO_DIRAC:
+          stream->id_extended = 0x60;
+          stream->is_video_stream = TRUE;
+          break;
+        case TSMUX_ST_PS_AUDIO_LPCM:
+          stream->id_extended = 0x80;
+        case TSMUX_ST_PS_AUDIO_AC3:
+          stream->id_extended = 0x81;
+        case TSMUX_ST_PS_AUDIO_DTS:
+          stream->id_extended = 0x82;
+        default:
+      }
       stream->pi.flags |=
           TSMUX_PACKET_FLAG_PES_FULL_HEADER |
           TSMUX_PACKET_FLAG_PES_EXT_STREAMID;
-      stream->is_video_stream = TRUE;
     default:
       g_critical ("Stream type 0x%0x not yet implemented", stream_type);

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________
gstreamer-cvs-verbose mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs-verbose
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.