summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2011-01-10 12:34:22 +0100
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2011-01-24 22:23:56 +0100
commit9f7570f132fa3bd38a2c5ae3ef5b5d7071fc382a (patch)
tree0a139821ef7960cb15d712d00462f17b9df481d3
parent662ec520ae6a3f411741695a546193f454ce3dc6 (diff)
qtdemux: support some more mpeg-4 fourcc variants
-rw-r--r--gst/qtdemux/qtdemux.c14
-rw-r--r--gst/qtdemux/qtdemux_fourcc.h2
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')