mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-03 16:09:39 +00:00
gst/qtdemux/qtdemux.c: Fix for obvious mistake, where we first shift the offset and then read a samplesize element as...
Original commit message from CVS: * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): Fix for obvious mistake, where we first shift the offset and then read a samplesize element assuming the old offset. Note that this part still has something weird, i.e. my movies containing those don't actually play well, but at least there's something that looks like sound now.
This commit is contained in:
parent
eac33f6122
commit
9a78b5acf6
2 changed files with 12 additions and 2 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2004-03-14 Ronald Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
||||||
|
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
|
||||||
|
Fix for obvious mistake, where we first shift the offset and then
|
||||||
|
read a samplesize element assuming the old offset. Note that this
|
||||||
|
part still has something weird, i.e. my movies containing those
|
||||||
|
don't actually play well, but at least there's something that looks
|
||||||
|
like sound now.
|
||||||
|
|
||||||
2004-03-14 Jan Schmidt <thaytan@mad.scientist.com>
|
2004-03-14 Jan Schmidt <thaytan@mad.scientist.com>
|
||||||
* gst/typefind/gsttypefindfunctions.c: (speex_type_find),
|
* gst/typefind/gsttypefindfunctions.c: (speex_type_find),
|
||||||
(plugin_init):
|
(plugin_init):
|
||||||
|
|
|
@ -1451,7 +1451,7 @@ static void qtdemux_parse_trak(GstQTDemux *qtdemux, GNode *trak)
|
||||||
GST_FOURCC_ARGS (QTDEMUX_FOURCC_GET(stsd->data+offset+4)),
|
GST_FOURCC_ARGS (QTDEMUX_FOURCC_GET(stsd->data+offset+4)),
|
||||||
stream->caps);
|
stream->caps);
|
||||||
}else if(stream->subtype == FOURCC_soun){
|
}else if(stream->subtype == FOURCC_soun){
|
||||||
int version;
|
int version, samplesize;
|
||||||
|
|
||||||
GST_LOG("st type: " GST_FOURCC_FORMAT "\n",
|
GST_LOG("st type: " GST_FOURCC_FORMAT "\n",
|
||||||
GST_FOURCC_ARGS(QTDEMUX_FOURCC_GET(stsd->data+16+4)));
|
GST_FOURCC_ARGS(QTDEMUX_FOURCC_GET(stsd->data+16+4)));
|
||||||
|
@ -1463,6 +1463,7 @@ static void qtdemux_parse_trak(GstQTDemux *qtdemux, GNode *trak)
|
||||||
GST_LOG("n_channels: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 8));
|
GST_LOG("n_channels: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 8));
|
||||||
stream->n_channels = QTDEMUX_GUINT16_GET(stsd->data+offset + 8);
|
stream->n_channels = QTDEMUX_GUINT16_GET(stsd->data+offset + 8);
|
||||||
GST_LOG("sample_size: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 10));
|
GST_LOG("sample_size: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 10));
|
||||||
|
samplesize = QTDEMUX_GUINT16_GET(stsd->data+offset + 10);
|
||||||
GST_LOG("compression_id: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 12));
|
GST_LOG("compression_id: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 12));
|
||||||
GST_LOG("packet size: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 14));
|
GST_LOG("packet size: %d\n", QTDEMUX_GUINT16_GET(stsd->data+offset + 14));
|
||||||
GST_LOG("sample rate: %g\n", QTDEMUX_FP32_GET(stsd->data+offset + 16));
|
GST_LOG("sample rate: %g\n", QTDEMUX_FP32_GET(stsd->data+offset + 16));
|
||||||
|
@ -1478,7 +1479,7 @@ static void qtdemux_parse_trak(GstQTDemux *qtdemux, GNode *trak)
|
||||||
GST_LOG("bytes/sample: %d\n", QTDEMUX_GUINT32_GET(stsd->data+offset + 12));
|
GST_LOG("bytes/sample: %d\n", QTDEMUX_GUINT32_GET(stsd->data+offset + 12));
|
||||||
offset = 68;
|
offset = 68;
|
||||||
} else {
|
} else {
|
||||||
stream->bytes_per_frame = stream->n_channels * QTDEMUX_GUINT16_GET(stsd->data+offset + 10);
|
stream->bytes_per_frame = stream->n_channels * samplesize / 8;
|
||||||
stream->samples_per_packet = 1;
|
stream->samples_per_packet = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue