From: John Stebbins Date: Tue, 27 Dec 2016 16:57:06 +0000 (-0800) Subject: encavcodec: fix 2 pass vp8 and vp9 encoding X-Git-Tag: 1.0.1~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dfe3e83c44ae7a8ac7754e206fe8c29ee16129df;p=handbrake encavcodec: fix 2 pass vp8 and vp9 encoding libvpx only supplies the stats upon the final flush of the encoder. So we must also write stats after final flush. (cherry picked from commit d64dba737d0136b58545be33c50db093df1880c1) --- diff --git a/libhb/encavcodec.c b/libhb/encavcodec.c index 0543fe47c..591aa4f08 100644 --- a/libhb/encavcodec.c +++ b/libhb/encavcodec.c @@ -610,6 +610,15 @@ static void Flush( hb_work_object_t * w, hb_buffer_list_t * list ) hb_work_private_t * pv = w->private_data; avcodec_send_frame(pv->context, NULL); + + // Write stats + // vpx only writes stats at final flush + if (pv->job->pass_id == HB_PASS_ENCODE_1ST && + pv->context->stats_out != NULL) + { + fprintf( pv->file, "%s", pv->context->stats_out ); + } + get_packets(w, list); }