diff options
Diffstat (limited to 'src/decoder')
-rw-r--r-- | src/decoder/ffmpeg_decoder_plugin.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/decoder/ffmpeg_decoder_plugin.c b/src/decoder/ffmpeg_decoder_plugin.c index d47356581..ea5b97d08 100644 --- a/src/decoder/ffmpeg_decoder_plugin.c +++ b/src/decoder/ffmpeg_decoder_plugin.c @@ -231,16 +231,18 @@ static enum sample_format ffmpeg_sample_format(G_GNUC_UNUSED const AVCodecContext *codec_context) { #if LIBAVCODEC_VERSION_INT >= ((51<<16)+(41<<8)+0) - int bits = (uint8_t) av_get_bits_per_sample_format(codec_context->sample_fmt); + switch (codec_context->sample_fmt) { + case SAMPLE_FMT_S16: + return SAMPLE_FORMAT_S16; - /* XXX implement & test other sample formats */ + case SAMPLE_FMT_S32: + return SAMPLE_FORMAT_S32; - switch (bits) { - case 16: - return SAMPLE_FORMAT_S16; + default: + g_warning("Unsupported libavcodec SampleFormat value: %d", + codec_context->sample_fmt); + return SAMPLE_FORMAT_UNDEFINED; } - - return SAMPLE_FORMAT_UNDEFINED; #else /* XXX fixme 16-bit for older ffmpeg (13 Aug 2007) */ return SAMPLE_FORMAT_S16; |