diff mbox

[FFmpeg-devel,2/6] avformat/ffmenc: Replace some st->codec use by codecpar

Message ID 20161201163739.23548-2-michael@niedermayer.cc
State Accepted
Commit b7d94c19cd0e9379b8c32c79fa0b73ae00de0f93
Headers show

Commit Message

Michael Niedermayer Dec. 1, 2016, 4:37 p.m. UTC
Note, this temporarly drops the ability to set ffmpeg encoder debug and flags2 via ffserver.conf

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavformat/ffmenc.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

Comments

Michael Niedermayer Dec. 2, 2016, 6:39 p.m. UTC | #1
On Thu, Dec 01, 2016 at 05:37:35PM +0100, Michael Niedermayer wrote:
> Note, this temporarly drops the ability to set ffmpeg encoder debug and flags2 via ffserver.conf
> 
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavformat/ffmenc.c | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)

patchset applied

[...]
diff mbox

Patch

diff --git a/libavformat/ffmenc.c b/libavformat/ffmenc.c
index 0f23b79..c89b9b3 100644
--- a/libavformat/ffmenc.c
+++ b/libavformat/ffmenc.c
@@ -224,6 +224,7 @@  static int ffm_write_header(AVFormatContext *s)
     AVStream *st;
     AVIOContext *pb = s->pb;
     AVCodecContext *codec;
+    AVCodecParameters *codecpar;
     int bit_rate, i, ret;
 
     if ((ret = ff_parse_creation_time_metadata(s, &ffm->start_time, 0)) < 0)
@@ -243,7 +244,7 @@  static int ffm_write_header(AVFormatContext *s)
     bit_rate = 0;
     for(i=0;i<s->nb_streams;i++) {
         st = s->streams[i];
-        bit_rate += st->codec->bit_rate;
+        bit_rate += st->codecpar->bit_rate;
     }
     avio_wb32(pb, bit_rate);
 
@@ -257,20 +258,21 @@  static int ffm_write_header(AVFormatContext *s)
             return AVERROR(ENOMEM);
 
         codec = st->codec;
+        codecpar = st->codecpar;
         /* generic info */
-        avio_wb32(pb, codec->codec_id);
-        avio_w8(pb, codec->codec_type);
-        avio_wb32(pb, codec->bit_rate);
-        avio_wb32(pb, codec->flags);
-        avio_wb32(pb, codec->flags2);
-        avio_wb32(pb, codec->debug);
-        if (codec->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
-            avio_wb32(pb, codec->extradata_size);
-            avio_write(pb, codec->extradata, codec->extradata_size);
+        avio_wb32(pb, codecpar->codec_id);
+        avio_w8(pb, codecpar->codec_type);
+        avio_wb32(pb, codecpar->bit_rate);
+        avio_wb32(pb, codecpar->extradata_size ? AV_CODEC_FLAG_GLOBAL_HEADER : 0);
+        avio_wb32(pb, 0); // flags2
+        avio_wb32(pb, 0); // debug
+        if (codecpar->extradata_size) {
+            avio_wb32(pb, codecpar->extradata_size);
+            avio_write(pb, codecpar->extradata, codecpar->extradata_size);
         }
         write_header_chunk(s->pb, pb, MKBETAG('C', 'O', 'M', 'M'));
         /* specific info */
-        switch(codec->codec_type) {
+        switch(codecpar->codec_type) {
         case AVMEDIA_TYPE_VIDEO:
             if (st->recommended_encoder_configuration) {
                 av_log(NULL, AV_LOG_DEBUG, "writing recommended configuration: %s\n",