mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
Do not demux only 2 trak atoms
Original commit message from CVS: Do not demux only 2 trak atoms
This commit is contained in:
parent
5621eae1c5
commit
a8fcbcd43b
1 changed files with 9 additions and 4 deletions
|
@ -334,6 +334,7 @@ static void gst_qtdemux_loop_header (GstElement *element)
|
||||||
GST_DEBUG ("length %08x",length);
|
GST_DEBUG ("length %08x",length);
|
||||||
fourcc = GUINT32_FROM_LE(*(guint32 *)(data+4));
|
fourcc = GUINT32_FROM_LE(*(guint32 *)(data+4));
|
||||||
GST_DEBUG ("fourcc " GST_FOURCC_FORMAT, GST_FOURCC_ARGS(fourcc));
|
GST_DEBUG ("fourcc " GST_FOURCC_FORMAT, GST_FOURCC_ARGS(fourcc));
|
||||||
|
|
||||||
if(length==0){
|
if(length==0){
|
||||||
length = gst_bytestream_length(qtdemux->bs) - cur_offset;
|
length = gst_bytestream_length(qtdemux->bs) - cur_offset;
|
||||||
}
|
}
|
||||||
|
@ -820,8 +821,8 @@ static void qtdemux_parse(GstQTDemux *qtdemux, GNode *node, void *buffer, int le
|
||||||
|
|
||||||
type = qtdemux_type_get(fourcc);
|
type = qtdemux_type_get(fourcc);
|
||||||
|
|
||||||
//g_print("parsing '" GST_FOURCC_FORMAT "', length=%d\n",
|
/*g_print("parsing '" GST_FOURCC_FORMAT "', length=%d\n",
|
||||||
//GST_FOURCC_ARGS(fourcc), node_length);
|
GST_FOURCC_ARGS(fourcc), node_length);*/
|
||||||
|
|
||||||
if(type->flags & QT_CONTAINER){
|
if(type->flags & QT_CONTAINER){
|
||||||
void *buf;
|
void *buf;
|
||||||
|
@ -1235,8 +1236,11 @@ static void qtdemux_parse_tree(GstQTDemux *qtdemux)
|
||||||
trak = qtdemux_tree_get_child_by_type(qtdemux->moov_node, FOURCC_trak);
|
trak = qtdemux_tree_get_child_by_type(qtdemux->moov_node, FOURCC_trak);
|
||||||
qtdemux_parse_trak(qtdemux, trak);
|
qtdemux_parse_trak(qtdemux, trak);
|
||||||
|
|
||||||
trak = qtdemux_tree_get_sibling_by_type(trak, FOURCC_trak);
|
/* trak = qtdemux_tree_get_sibling_by_type(trak, FOURCC_trak);
|
||||||
if(trak)qtdemux_parse_trak(qtdemux, trak);
|
if(trak)qtdemux_parse_trak(qtdemux, trak);*/
|
||||||
|
|
||||||
|
while ((trak = qtdemux_tree_get_sibling_by_type(trak, FOURCC_trak)) != NULL)
|
||||||
|
qtdemux_parse_trak(qtdemux, trak);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qtdemux_parse_trak(GstQTDemux *qtdemux, GNode *trak)
|
static void qtdemux_parse_trak(GstQTDemux *qtdemux, GNode *trak)
|
||||||
|
@ -1697,6 +1701,7 @@ static GstCaps *qtdemux_audio_caps(GstQTDemux *qtdemux, guint32 fourcc)
|
||||||
NULL);
|
NULL);
|
||||||
case 0x6d730055:
|
case 0x6d730055:
|
||||||
/* MPEG layer 3, CBR only (pre QT4.1) */
|
/* MPEG layer 3, CBR only (pre QT4.1) */
|
||||||
|
case 0x5500736d:
|
||||||
case GST_MAKE_FOURCC('.','m','p','3'):
|
case GST_MAKE_FOURCC('.','m','p','3'):
|
||||||
/* MPEG layer 3, CBR & VBR (QT4.1 and later) */
|
/* MPEG layer 3, CBR & VBR (QT4.1 and later) */
|
||||||
return GST_CAPS_NEW("_mp3_caps","audio/mpeg",
|
return GST_CAPS_NEW("_mp3_caps","audio/mpeg",
|
||||||
|
|
Loading…
Reference in a new issue