From a1a8dab8913d5e3640ec3ed736c8d307c1e92e14 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 20 Feb 2005 12:49:19 +0000 Subject: [PATCH] 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) --- ChangeLog | 12 ++++++++++++ gst-libs/gst/riff/riff-media.c | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0fbd2c1..3847878 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2005-02-20 Tim-Philipp Müller + + * 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 Reviewed by: Tim-Philipp Müller diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c index b93ff86..2d3ac28 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) -- 2.7.4