X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fcafenc.c;h=0f7c4ebbb32c458946428147b84ab15d461cef3e;hb=a295fee28496296a711715e4f5c93e4ad3168a71;hp=f550cd965a3c8c0a096b8d2a34665307b0c20bbc;hpb=e1f01ce8d20bbc53f5d5841fdff125cc04516da9;p=ffmpeg diff --git a/libavformat/cafenc.c b/libavformat/cafenc.c index f550cd965a3..0f7c4ebbb32 100644 --- a/libavformat/cafenc.c +++ b/libavformat/cafenc.c @@ -81,6 +81,8 @@ static uint32_t samples_per_packet(enum AVCodecID codec_id, int channels, int bl return 320; case AV_CODEC_ID_MP1: return 384; + case AV_CODEC_ID_OPUS: + return 960; case AV_CODEC_ID_MP2: case AV_CODEC_ID_MP3: return 1152; @@ -117,11 +119,15 @@ static int caf_write_header(AVFormatContext *s) switch (par->codec_id) { case AV_CODEC_ID_AAC: - case AV_CODEC_ID_OPUS: av_log(s, AV_LOG_ERROR, "muxing codec currently unsupported\n"); return AVERROR_PATCHWELCOME; } + if (par->codec_id == AV_CODEC_ID_OPUS && par->channels > 2) { + av_log(s, AV_LOG_ERROR, "Only mono and stereo are supported for Opus\n"); + return AVERROR_INVALIDDATA; + } + if (!codec_tag) { av_log(s, AV_LOG_ERROR, "unsupported codec\n"); return AVERROR_INVALIDDATA;