diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2011-01-10 12:34:22 +0100 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2011-01-24 22:23:56 +0100 |
commit | 9f7570f132fa3bd38a2c5ae3ef5b5d7071fc382a (patch) | |
tree | 0a139821ef7960cb15d712d00462f17b9df481d3 | |
parent | 662ec520ae6a3f411741695a546193f454ce3dc6 (diff) |
qtdemux: support some more mpeg-4 fourcc variants
-rw-r--r-- | gst/qtdemux/qtdemux.c | 14 | ||||
-rw-r--r-- | gst/qtdemux/qtdemux_fourcc.h | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 209f9e22f..2076ba927 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -4689,12 +4689,15 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, } case FOURCC_mp4v: case FOURCC_MP4V: + case FOURCC_fmp4: + case FOURCC_FMP4: { const guint8 *buf; guint32 version; int tlen; - GST_DEBUG_OBJECT (qtdemux, "parsing in mp4v"); + GST_DEBUG_OBJECT (qtdemux, "parsing in %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); version = QT_UINT32 (buffer + 16); GST_DEBUG_OBJECT (qtdemux, "version %08x", version); if (1 || version == 0x00000000) { @@ -6439,13 +6442,17 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } case FOURCC_mp4v: case FOURCC_MP4V: + case FOURCC_fmp4: + case FOURCC_FMP4: { GNode *glbl; - GST_DEBUG_OBJECT (qtdemux, "found mp4v"); + GST_DEBUG_OBJECT (qtdemux, "found %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); /* codec data might be in glbl extension atom */ - glbl = qtdemux_tree_get_child_by_type (mp4v, FOURCC_glbl); + glbl = mp4v ? + qtdemux_tree_get_child_by_type (mp4v, FOURCC_glbl) : NULL; if (glbl) { guint8 *data; GstBuffer *buf; @@ -6463,6 +6470,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) gst_buffer_unref (buf); } } + break; } case FOURCC_mjp2: { diff --git a/gst/qtdemux/qtdemux_fourcc.h b/gst/qtdemux/qtdemux_fourcc.h index d7875cc66..29ad155a3 100644 --- a/gst/qtdemux/qtdemux_fourcc.h +++ b/gst/qtdemux/qtdemux_fourcc.h @@ -75,6 +75,8 @@ G_BEGIN_DECLS #define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a') #define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v') #define FOURCC_MP4V GST_MAKE_FOURCC('M','P','4','V') +#define FOURCC_fmp4 GST_MAKE_FOURCC('f','m','p','4') +#define FOURCC_FMP4 GST_MAKE_FOURCC('F','M','P','4') #define FOURCC_glbl GST_MAKE_FOURCC('g','l','b','l') #define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e') #define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l') |