diff options
-rw-r--r-- | ext/wavpack/gstwavpackdec.c | 3 | ||||
-rw-r--r-- | gst/qtdemux/qtdemux.c | 13 |
2 files changed, 12 insertions, 4 deletions
diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c index f3f9d750..d8a4308e 100644 --- a/ext/wavpack/gstwavpackdec.c +++ b/ext/wavpack/gstwavpackdec.c @@ -83,13 +83,14 @@ static GstPadLinkReturn gst_wavpack_dec_link (GstPad * pad, GstPad * peer) { GstWavpackDec *wavpackdec = GST_WAVPACK_DEC (gst_pad_get_parent (pad)); - GstStructure *structure = gst_caps_get_structure (GST_PAD_CAPS (peer), 0); + GstStructure *structure; GstCaps *srccaps; gint bits; if (!gst_caps_is_fixed (GST_PAD_CAPS (peer))) return GST_PAD_LINK_REFUSED; + structure = gst_caps_get_structure (GST_PAD_CAPS (peer), 0); gst_structure_get_int (structure, "rate", (gint32 *) & wavpackdec->samplerate); gst_structure_get_int (structure, "channels", 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"); |