mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
gst/wavparse/gstwavparse.c: Fix the scaling code.
Original commit message from CVS: * gst/wavparse/gstwavparse.c: (uint64_ceiling_scale_int), (uint64_ceiling_scale), (gst_wavparse_calculate_duration), (gst_wavparse_stream_headers): Fix the scaling code. Fix parsing of the INFO chunks, we were reading the wrong number of bytes. Fixes #561580.
This commit is contained in:
parent
fe7d1d7ae0
commit
380b64d670
2 changed files with 13 additions and 3 deletions
|
@ -1,3 +1,12 @@
|
|||
2008-11-20 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||
|
||||
* gst/wavparse/gstwavparse.c: (uint64_ceiling_scale_int),
|
||||
(uint64_ceiling_scale), (gst_wavparse_calculate_duration),
|
||||
(gst_wavparse_stream_headers):
|
||||
Fix the scaling code.
|
||||
Fix parsing of the INFO chunks, we were reading the wrong number of
|
||||
bytes. Fixes #561580.
|
||||
|
||||
2008-11-20 Jan Schmidt <jan.schmidt@sun.com>
|
||||
|
||||
* gst/matroska/matroska-mux.c:
|
||||
|
|
|
@ -248,7 +248,7 @@ gst_wavparse_create_sourcepad (GstWavParse * wavparse)
|
|||
static guint64
|
||||
uint64_ceiling_scale_int (guint64 val, gint num, gint denom)
|
||||
{
|
||||
guint64 result = gst_util_uint64_scale (val, num, denom);
|
||||
guint64 result = gst_util_uint64_scale_int (val, num, denom);
|
||||
|
||||
if (uint64_scale_modulo (val, num, denom) == 0)
|
||||
return result;
|
||||
|
@ -260,7 +260,7 @@ uint64_ceiling_scale_int (guint64 val, gint num, gint denom)
|
|||
static guint64
|
||||
uint64_ceiling_scale (guint64 val, guint64 num, guint64 denom)
|
||||
{
|
||||
guint64 result = gst_util_uint64_scale_int (val, num, denom);
|
||||
guint64 result = gst_util_uint64_scale (val, num, denom);
|
||||
|
||||
if (uint64_scale_modulo (val, num, denom) == 0)
|
||||
return result;
|
||||
|
@ -1046,6 +1046,7 @@ gst_wavparse_calculate_duration (GstWavParse * wav)
|
|||
return TRUE;
|
||||
|
||||
if (wav->bps > 0) {
|
||||
GST_INFO_OBJECT (wav, "Got datasize %" G_GUINT64_FORMAT, wav->datasize);
|
||||
wav->duration =
|
||||
uint64_ceiling_scale (wav->datasize, GST_SECOND, (guint64) wav->bps);
|
||||
GST_INFO_OBJECT (wav, "Got duration (bps) %" GST_TIME_FORMAT,
|
||||
|
@ -1371,7 +1372,7 @@ gst_wavparse_stream_headers (GstWavParse * wav)
|
|||
}
|
||||
switch (ltag) {
|
||||
case GST_RIFF_LIST_INFO:{
|
||||
const guint data_size = size - 12;
|
||||
const guint data_size = size - 4;
|
||||
GstTagList *new;
|
||||
|
||||
GST_INFO_OBJECT (wav, "Have LIST chunk INFO");
|
||||
|
|
Loading…
Reference in a new issue