[FFmpeg-cvslog] ffmpeg.c: remove all remaining coded_frame uses

Michael Niedermayer git at videolan.org
Tue Jul 28 19:55:24 CEST 2015


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Tue Jul 28 19:42:00 2015 +0200| [8c2f00d5909dae94138bdd10625acaf159b23679] | committer: Michael Niedermayer

ffmpeg.c: remove all remaining coded_frame uses

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 ffmpeg.c |    5 +++--
 ffmpeg.h |    3 +++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 8107b3c..5575e2f 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -673,6 +673,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
         uint8_t *sd = av_packet_get_side_data(pkt, AV_PKT_DATA_QUALITY_STATS,
                                               NULL);
         ost->quality = sd ? AV_RL32(sd) : -1;
+        ost->pict_type = sd ? sd[4] : AV_PICTURE_TYPE_NONE;
 
         for (i = 0; i<FF_ARRAY_ELEMS(ost->error); i++) {
             if (sd && i < sd[5])
@@ -1287,7 +1288,7 @@ static void do_video_stats(OutputStream *ost, int frame_size)
         avg_bitrate = (double)(ost->data_size * 8) / ti1 / 1000.0;
         fprintf(vstats_file, "s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s ",
                (double)ost->data_size / 1024, ti1, bitrate, avg_bitrate);
-        fprintf(vstats_file, "type= %c\n", enc->coded_frame ? av_get_picture_type_char(enc->coded_frame->pict_type) : 'I');
+        fprintf(vstats_file, "type= %c\n", av_get_picture_type_char(ost->pict_type));
     }
 }
 
@@ -1594,7 +1595,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
                     snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%X", (int)lrintf(log2(qp_histogram[j] + 1)));
             }
 
-            if ((enc->flags & AV_CODEC_FLAG_PSNR) && (enc->coded_frame || is_last_report)) {
+            if ((enc->flags & AV_CODEC_FLAG_PSNR) && (ost->pict_type != AV_PICTURE_TYPE_NONE || is_last_report)) {
                 int j;
                 double error, error_sum = 0;
                 double scale, scale_sum = 0;
diff --git a/ffmpeg.h b/ffmpeg.h
index 6e2267a..a7e5e51 100644
--- a/ffmpeg.h
+++ b/ffmpeg.h
@@ -460,6 +460,9 @@ typedef struct OutputStream {
     /* packet quality factor */
     int quality;
 
+    /* packet picture type */
+    int pict_type;
+
     /* frame encode sum of squared error values */
     int64_t error[4];
 } OutputStream;



More information about the ffmpeg-cvslog mailing list