summaryrefslogtreecommitdiffstats
path: root/gst/qtdemux/qtdemux.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-03-09 12:06:56 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-03-09 12:06:56 +0000
commit1c37934861f2dd7c3ca38fe770734e2b3b30cfdb (patch)
treee35e4d8254b1708b6a469ff2ee6c71c3de83f1b5 /gst/qtdemux/qtdemux.c
parentdb69a0a5961f3b044d643ff476c97a92407e2b89 (diff)
downloadgst-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.c9
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