summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2005-02-20 12:49:19 +0000
committerTim-Philipp Müller <tim@centricular.net>2005-02-20 12:49:19 +0000
commita84c1f2d5d14681eb228122bcf98a5a25a621be9 (patch)
tree3dccb1da53f84f7983616341b60094aa20f6c674
parent797a080e39422cd3c987bd8f837ae1c41b586ad5 (diff)
downloadgstreamer-plugins-base-a84c1f2d5d14681eb228122bcf98a5a25a621be9.tar.gz
gst-libs/gst/riff/riff-media.c: Do actually fix invalid RIFF fmt header values for alaw and mulaw audio instead of ju...
Original commit message from CVS: * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps_with_data): Do actually fix invalid RIFF fmt header values for alaw and mulaw audio instead of just saying so. * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): Give gst_riff_create_audio_caps_with_data() a chance to fix up broken format header fields before extracting any parameters from the header. (fixes #167633)
-rw-r--r--ChangeLog12
-rw-r--r--gst-libs/gst/riff/riff-media.c18
2 files changed, 30 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0fbd2c181..3847878db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-02-20 Tim-Philipp Müller <tim at centricular dot net>
+
+ * gst-libs/gst/riff/riff-media.c:
+ (gst_riff_create_audio_caps_with_data):
+ Do actually fix invalid RIFF fmt header values for alaw
+ and mulaw audio instead of just saying so.
+
+ * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt):
+ Give gst_riff_create_audio_caps_with_data() a chance to
+ fix up broken format header fields before extracting any
+ parameters from the header. (fixes #167633)
+
2005-02-19 Martin Holters <martin.holters@gmx.de>
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
index b93ff8699..2d3ac28eb 100644
--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -458,6 +458,15 @@ gst_riff_create_audio_caps_with_data (guint16 codec_id,
if (strf != NULL && strf->size != 8) {
GST_WARNING ("invalid depth (%d) of mulaw audio, overwriting.",
strf->size);
+ strf->size = 8;
+ strf->av_bps = 8;
+ strf->blockalign = strf->av_bps * strf->channels;
+ }
+ if (strf != NULL && (strf->av_bps == 0 || strf->blockalign == 0)) {
+ GST_WARNING ("fixing av_bps (%d) and blockalign (%d) of mulaw audio",
+ strf->av_bps, strf->blockalign);
+ strf->av_bps = strf->size;
+ strf->blockalign = strf->av_bps * strf->channels;
}
caps = gst_caps_new_simple ("audio/x-mulaw", NULL);
if (codec_name)
@@ -468,6 +477,15 @@ gst_riff_create_audio_caps_with_data (guint16 codec_id,
if (strf != NULL && strf->size != 8) {
GST_WARNING ("invalid depth (%d) of alaw audio, overwriting.",
strf->size);
+ strf->size = 8;
+ strf->av_bps = 8;
+ strf->blockalign = strf->av_bps * strf->channels;
+ }
+ if (strf != NULL && (strf->av_bps == 0 || strf->blockalign == 0)) {
+ GST_WARNING ("fixing av_bps (%d) and blockalign (%d) of alaw audio",
+ strf->av_bps, strf->blockalign);
+ strf->av_bps = strf->size;
+ strf->blockalign = strf->av_bps * strf->channels;
}
caps = gst_caps_new_simple ("audio/x-alaw", NULL);
if (codec_name)