]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/cafenc.c
Merge commit '263358e0c9e7ffaa965fdbe986c8b18381d2b24a'
[ffmpeg] / libavformat / cafenc.c
index f550cd965a3c8c0a096b8d2a34665307b0c20bbc..0f7c4ebbb32c458946428147b84ab15d461cef3e 100644 (file)
@@ -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;