ffmpeg | branch: master | Michael Niedermayer <michae...@gmx.at> | Fri Mar  6 
02:51:14 2015 +0100| [76f4b117807c30a528539fc5c7a7e35cb288cfcf] | committer: 
Michael Niedermayer

avformat/flvenc: Allow muxing video codecs which are not explicitly supported 
by the muxer

This allows stream copying video codecs before they are explicitly
supported. The same feature was in the past useful for audio codecs
in flv

This partly reverts the changes from 735ab7c5e04e2316afbd56643c13de17a7ac89cd

Signed-off-by: Michael Niedermayer <michae...@gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=76f4b117807c30a528539fc5c7a7e35cb288cfcf
---

 libavformat/flvenc.c |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index e4717ca..9ee27bf 100644
--- a/libavformat/flvenc.c
+++ b/libavformat/flvenc.c
@@ -336,6 +336,13 @@ static int unsupported_codec(AVFormatContext *s,
     return AVERROR(ENOSYS);
 }
 
+static int check_video_codec_tag(int codec_tag) {
+    if (codec_tag <= 0 || codec_tag > 15) {
+        return AVERROR(ENOSYS);
+    } else
+        return 0;
+}
+
 static int flv_write_header(AVFormatContext *s)
 {
     int i;
@@ -358,7 +365,7 @@ static int flv_write_header(AVFormatContext *s)
                 return AVERROR(EINVAL);
             }
             flv->video_enc = enc;
-            if (!ff_codec_get_tag(flv_video_codec_ids, enc->codec_id))
+            if (check_video_codec_tag(enc->codec_tag) < 0)
                 return unsupported_codec(s, "Video", enc->codec_id);
 
             if (enc->codec_id == AV_CODEC_ID_MPEG4 ||
@@ -542,7 +549,9 @@ static int flv_write_packet(AVFormatContext *s, AVPacket 
*pkt)
     case AVMEDIA_TYPE_VIDEO:
         avio_w8(pb, FLV_TAG_TYPE_VIDEO);
 
-        flags = ff_codec_get_tag(flv_video_codec_ids, enc->codec_id);
+        flags = enc->codec_tag;
+        if (check_video_codec_tag(flags) < 0)
+            return unsupported_codec(s, "Video", enc->codec_id);
 
         flags |= pkt->flags & AV_PKT_FLAG_KEY ? FLV_FRAME_KEY : 
FLV_FRAME_INTER;
         break;

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to