[FFmpeg-devel] [PATCH v2] doc/examples/vaapi_transcode: fix null framerate
    jianfeng.zheng 
    ggjogh at gmail.com
       
    Fri Apr  7 14:34:28 EEST 2023
    
    
  
When framerate in codec layer is null, guess from stream.
Signed-off-by: jianfeng.zheng <jianfeng.zheng at mthreads.com>
---
 doc/examples/vaapi_transcode.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/doc/examples/vaapi_transcode.c b/doc/examples/vaapi_transcode.c
index 8367cb3040..2277794635 100644
--- a/doc/examples/vaapi_transcode.c
+++ b/doc/examples/vaapi_transcode.c
@@ -143,6 +143,7 @@ static int dec_enc(AVPacket *pkt, const AVCodec *enc_codec)
 {
     AVFrame *frame;
     int ret = 0;
+    AVStream *video = NULL;
 
     ret = avcodec_send_packet(decoder_ctx, pkt);
     if (ret < 0) {
@@ -176,6 +177,11 @@ static int dec_enc(AVPacket *pkt, const AVCodec *enc_codec)
              * xxx: now the sample can't handle resolution change case.
              */
             encoder_ctx->time_base = av_inv_q(decoder_ctx->framerate);
+            if (decoder_ctx->framerate.num == 0) {
+                video = ifmt_ctx->streams[video_stream];
+                if (video->r_frame_rate.num > 0 && video->r_frame_rate.den > 0)
+                    encoder_ctx->time_base = av_inv_q(video->r_frame_rate);
+            }
             encoder_ctx->pix_fmt   = AV_PIX_FMT_VAAPI;
             encoder_ctx->width     = decoder_ctx->width;
             encoder_ctx->height    = decoder_ctx->height;
-- 
2.25.1
    
    
More information about the ffmpeg-devel
mailing list