codec_tag settable via VideoTag, and transmit codec_tag in ffm
authorAlex Beregszaszi <alex@rtfs.hu>
Thu, 22 Feb 2007 13:23:38 +0000 (13:23 +0000)
committerAlex Beregszaszi <alex@rtfs.hu>
Thu, 22 Feb 2007 13:23:38 +0000 (13:23 +0000)
Originally committed as revision 8071 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffserver.c
libavformat/ffm.c

index 394134b..94751e7 100644 (file)
@@ -4146,6 +4146,11 @@ static int parse_ffconfig(const char *filename)
                 video_enc.mb_decision = FF_MB_DECISION_BITS; //FIXME remove
                 video_enc.flags |= CODEC_FLAG_4MV;
             }
+        } else if (!strcasecmp(cmd, "VideoTag")) {
+            get_arg(arg, sizeof(arg), &p);
+            if ((strlen(arg) == 4) && stream) {
+                video_enc.codec_tag = ff_get_fourcc(arg);
+            }
         } else if (!strcasecmp(cmd, "BitExact")) {
             if (stream) {
                 video_enc.flags |= CODEC_FLAG_BITEXACT;
index cc7c6aa..a2970ae 100644 (file)
@@ -201,6 +201,7 @@ static int ffm_write_header(AVFormatContext *s)
             put_be32(pb, codec->nsse_weight);
             put_be32(pb, codec->frame_skip_cmp);
             put_be64(pb, av_dbl2int(codec->rc_buffer_aggressivity));
+            put_be32(pb, codec->codec_tag);
             break;
         case CODEC_TYPE_AUDIO:
             put_be32(pb, codec->sample_rate);
@@ -534,6 +535,7 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap)
             codec->nsse_weight = get_be32(pb);
             codec->frame_skip_cmp = get_be32(pb);
             codec->rc_buffer_aggressivity = av_int2dbl(get_be64(pb));
+            codec->codec_tag = get_be32(pb);
             break;
         case CODEC_TYPE_AUDIO:
             codec->sample_rate = get_be32(pb);