diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-03-09 12:06:56 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-03-09 12:06:56 +0000 |
commit | 1c37934861f2dd7c3ca38fe770734e2b3b30cfdb (patch) | |
tree | e35e4d8254b1708b6a469ff2ee6c71c3de83f1b5 /gst/qtdemux/qtdemux.c | |
parent | db69a0a5961f3b044d643ff476c97a92407e2b89 (diff) | |
download | gst-plugins-bad-1c37934861f2dd7c3ca38fe770734e2b3b30cfdb.tar.gz gst-plugins-bad-1c37934861f2dd7c3ca38fe770734e2b3b30cfdb.tar.bz2 gst-plugins-bad-1c37934861f2dd7c3ca38fe770734e2b3b30cfdb.zip |
configure.ac: Fix FAAD detection problems against FAAD-CVS.
Original commit message from CVS:
* configure.ac:
Fix FAAD detection problems against FAAD-CVS.
* ext/faad/gstfaad.c: (gst_faad_class_init),
(gst_faad_chanpos_to_gst), (gst_faad_srcconnect), (gst_faad_sync),
(gst_faad_chain):
Fix FAAD channel positions for mono/stereo against FAAD CVS.
Implement raw stream sync support for AAC+ radio support. Embed
info structure in our function to prevent unneeded excessive
allocations.
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_populate),
(gst_ogg_demux_push):
Only set first/last positions when we search for them. Fixes
invalid length reporting for some video files.
* gst/playback/gstdecodebin.c: (remove_element_chain):
Always remove only our own kids.
* gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak):
Fix ESDS atom finding bug.
* gst/typefind/gsttypefindfunctions.c: (aac_type_find):
Implement frame-finding (similar to MP3) to support AAC+ radio.
Diffstat (limited to 'gst/qtdemux/qtdemux.c')
-rw-r--r-- | gst/qtdemux/qtdemux.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index a65c9c68..72949962 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -1240,9 +1240,10 @@ qtdemux_parse (GstQTDemux * qtdemux, GNode * node, void *buffer, int length) guint32 version; version = QTDEMUX_GUINT32_GET (buffer + 16); - if (version == 0x00010000) { - buf = buffer + 0x34; + if (version == 0x00010000 || 1) { + buf = buffer + 0x24; end = buffer + length; + while (buf < end) { GNode *child; @@ -2139,9 +2140,13 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) wave = NULL; if (mp4a) wave = qtdemux_tree_get_child_by_type (mp4a, FOURCC_wave); + esds = NULL; if (wave) esds = qtdemux_tree_get_child_by_type (wave, FOURCC_esds); + else if (mp4a) + esds = qtdemux_tree_get_child_by_type (mp4a, FOURCC_esds); + if (esds) { gst_qtdemux_handle_esds (qtdemux, stream, esds); #if 0 |