diff --git a/src/media/libav_utils.cpp b/src/media/libav_utils.cpp index 8cf6da14c46cde1be24d92fccdc2e3c05f9f067a..cd54e8fdbe70affcf6cf61cb2fffefc996b478df 100644 --- a/src/media/libav_utils.cpp +++ b/src/media/libav_utils.cpp @@ -61,12 +61,13 @@ choose_sample_fmt(const AVCodec* codec, const AVSampleFormat* preferred_formats, int preferred_formats_count) { - for (int i = 0; i < preferred_formats_count; ++i) { - for (auto it = codec->sample_fmts; *it != -1; ++it) { - if (*it == preferred_formats[i]) - return preferred_formats[i]; + if (codec->sample_fmts) + for (int i = 0; i < preferred_formats_count; ++i) { + for (auto it = codec->sample_fmts; *it != -1; ++it) { + if (*it == preferred_formats[i]) + return preferred_formats[i]; + } } - } return AV_SAMPLE_FMT_NONE; }