ffmpeg.c: remove all remaining coded_frame uses
authorMichael Niedermayer <michael@niedermayer.cc>
Tue, 28 Jul 2015 17:42:00 +0000 (19:42 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 28 Jul 2015 17:52:40 +0000 (19:52 +0200)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
ffmpeg.c
ffmpeg.h

index 8107b3c..5575e2f 100644 (file)
--- 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;
index 6e2267a..a7e5e51 100644 (file)
--- 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;