[Libav-user] AVCodecContext::request_sample_fmt is not working

rohit khali khali.rohit at gmail.com
Thu Sep 3 08:01:20 EEST 2020


Hi,

I am using
https://git.ffmpeg.org/gitweb/ffmpeg.git/blob_plain/HEAD:/doc/examples/decode_audio.c
as
a base for my audio decoder.
Audio decoding sounds  ok however looks like ffmpeg outputs decoded PCM
audio based on codec type. Below are my observations for the sample_fmt.

mpeg1/mpeg2 audio : s16p
aac,aac_latm,ac3,eac3 : fltp

I want to normalize my decoded PCM output to always " fltp ". I came across
about AVCodecContext::request_sample_fmt however this setting is not
working.
I am trying below code for mpeg1/mpeg2 audio.
   DecCtx = avcodec_alloc_context3(Codec);
    if (!DecCtx)
    {
        return false;
    }

    DecCtx->request_sample_fmt = AV_SAMPLE_FMT_FLTP;

    if (avcodec_open2(DecCtx, Codec, NULL) < 0)
    {
        return false;
    }
    const char *sample_fmt = av_get_sample_fmt_name(m_pDecCtx->sample_fmt);
    printf("[CffmpegAudioDecoder-Open: AVSampleFormat=%s]\n",sample_fmt);
-->always fetting s16p

I am wondering what am I missing?
Please help! Thanks in advance.

Regards,
Rohit Khali
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20200903/a9c27957/attachment.html>


More information about the Libav-user mailing list