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)
This commit is contained in:
Tim-Philipp Müller 2005-02-20 12:49:19 +00:00
parent 823aa669a7
commit a1a8dab891
2 changed files with 30 additions and 0 deletions

View file

@ -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>

View file

@ -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)