[MPlayer-dev-eng] [patch] libmpcodecs/ad_ffmpeg.c: aac/sbr warning too nosiy (+fix for typo)
Yuriy Kaminskiy
yumkam at mail.ru
Sat Oct 9 19:29:35 CEST 2010
Reimar Döffinger wrote:
> On Sat, Oct 09, 2010 at 05:15:41PM +0400, Yuriy Kaminskiy wrote:
>> Index: MPlayer-20100929+lavc-mt/libmpcodecs/ad_ffmpeg.c
>> ===================================================================
>> --- MPlayer-20100929+lavc-mt.orig/libmpcodecs/ad_ffmpeg.c 2010-10-09 16:40:00.000000000 +0400
>> +++ MPlayer-20100929+lavc-mt/libmpcodecs/ad_ffmpeg.c 2010-10-09 16:46:58.000000000 +0400
>> @@ -46,6 +46,7 @@ LIBAD_EXTERN(ffmpeg)
>>
>> #include "libavcodec/avcodec.h"
>>
>> +static int aac_warned;
>>
>> static int preinit(sh_audio_t *sh)
>> {
>> @@ -71,8 +72,11 @@ static int setup_format(sh_audio_t *sh_a
>>
>> if (lavc_context->codec_id == CODEC_ID_AAC &&
>> samplerate == 2*sh_audio->wf->nSamplesPerSec) {
>> + if (unlikely(!aac_warned)) {
>> + aac_warned = 1;
>> mp_msg(MSGT_DECAUDIO, MSGL_WARN,
>> "Ignoring broken container sample rate for ACC with SBR\n");
>> + }
>> } else if (sh_audio->wf->nSamplesPerSec)
>> samplerate=sh_audio->wf->nSamplesPerSec;
>> }
>> @@ -158,6 +162,8 @@ static int init(sh_audio_t *sh_audio)
>> sh_audio->ds->ss_mul = 2*sh_audio->wf->nChannels; // 1 byte*ch/packet
>> }
>>
>> + aac_warned = 0;
>> +
>
> I do not like static variables, also it might be nice to warn every time
> if the stream switches back and forth between SBR and non-SBR since
> I don't think that we have really tested that case.
> What about below patch?
Thanks, work fine (and I agree this way it is better).
> Index: libmpcodecs/ad_ffmpeg.c
> ===================================================================
> --- libmpcodecs/ad_ffmpeg.c (revision 32451)
> +++ libmpcodecs/ad_ffmpeg.c (working copy)
> @@ -55,6 +55,7 @@
>
> static int setup_format(sh_audio_t *sh_audio, const AVCodecContext *lavc_context)
> {
> + int broken_srate = 0;
> int samplerate = lavc_context->sample_rate;
> int sample_format = sh_audio->sample_format;
> switch (lavc_context->sample_fmt) {
> @@ -71,8 +72,7 @@
>
> if (lavc_context->codec_id == CODEC_ID_AAC &&
> samplerate == 2*sh_audio->wf->nSamplesPerSec) {
> - mp_msg(MSGT_DECAUDIO, MSGL_WARN,
> - "Ignoring broken container sample rate for ACC with SBR\n");
> + broken_srate = 1;
> } else if (sh_audio->wf->nSamplesPerSec)
> samplerate=sh_audio->wf->nSamplesPerSec;
> }
> @@ -83,6 +83,9 @@
> sh_audio->samplerate=samplerate;
> sh_audio->sample_format = sample_format;
> sh_audio->samplesize=af_fmt2bits(sh_audio->sample_format)/ 8;
> + if (broken_srate)
> + mp_msg(MSGT_DECAUDIO, MSGL_WARN,
> + "Ignoring broken container sample rate for ACC with SBR\n");
still, s/ACC/AAC/ :-)
> return 1;
> }
> return 0;
More information about the MPlayer-dev-eng
mailing list