diff options
Diffstat (limited to 'gst')
-rw-r--r-- | gst/qtdemux/qtdemux.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 84c2facb..ce01f649 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -473,7 +473,8 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) for (n = 0; n < qtdemux->n_streams; n++) { gst_element_remove_pad (element, qtdemux->streams[n]->pad); g_free (qtdemux->streams[n]->samples); - gst_caps_unref (qtdemux->streams[n]->caps); + if (qtdemux->streams[n]->caps) + gst_caps_unref (qtdemux->streams[n]->caps); g_free (qtdemux->streams[n]); } qtdemux->n_streams = 0; @@ -1765,7 +1766,13 @@ qtdemux_tree_get_child_by_type (GNode * node, guint32 fourcc) child = g_node_next_sibling (child)) { buffer = child->data; + child_fourcc = GST_READ_UINT32_LE (buffer); + GST_LOG ("First chunk of buffer %p is [%" GST_FOURCC_FORMAT "]", + buffer, GST_FOURCC_ARGS (child_fourcc)); + child_fourcc = GST_READ_UINT32_LE (buffer + 4); + GST_LOG ("buffer %p has fourcc [%" GST_FOURCC_FORMAT "]", + buffer, GST_FOURCC_ARGS (child_fourcc)); if (child_fourcc == fourcc) { return child; @@ -1899,7 +1906,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) stream = g_new0 (QtDemuxStream, 1); tkhd = qtdemux_tree_get_child_by_type (trak, FOURCC_tkhd); - g_assert (tkhd); + g_return_if_fail (tkhd); GST_LOG ("track[tkhd] version/flags: 0x%08x", QTDEMUX_GUINT32_GET (tkhd->data + 8)); @@ -2621,7 +2628,7 @@ qtdemux_video_caps (GstQTDemux * qtdemux, guint32 fourcc, return gst_caps_from_string ("image/jpeg"); case GST_MAKE_FOURCC ('m', 'j', 'p', 'b'): _codec ("Motion-JPEG format B"); - return gst_caps_from_string ("image/jpeg-b"); + return gst_caps_from_string ("video/x-mjpeg-b"); case GST_MAKE_FOURCC ('S', 'V', 'Q', '3'): _codec ("Sorensen video v.3"); return gst_caps_from_string ("video/x-svq, " "svqversion = (int) 3"); |