[FFmpeg-cvslog] fftools/ffmpeg: pass subtitle decoder dimensions to sub2video

Anton Khirnov git at videolan.org
Mon Jun 19 12:11:36 EEST 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed Jun 14 18:34:57 2023 +0200| [1617d1a752d5e97d5e74f6c384609c027c884553] | committer: Anton Khirnov

fftools/ffmpeg: pass subtitle decoder dimensions to sub2video

Restores behavior from before 20cacfe4936a8d5b643421b5ca93bb098f6b76dd.
Eventually this should be handled similarly to audio/video - with a
filtergraph reset or a manual scaler.

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

 fftools/ffmpeg_dec.c    | 3 +++
 fftools/ffmpeg_filter.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c
index 3722a87bc5..85bf8dc536 100644
--- a/fftools/ffmpeg_dec.c
+++ b/fftools/ffmpeg_dec.c
@@ -509,6 +509,9 @@ static int transcode_subtitles(InputStream *ist, const AVPacket *pkt,
         return ret;
     }
 
+    frame->width  = ist->dec_ctx->width;
+    frame->height = ist->dec_ctx->height;
+
     ret = tq_send(d->queue_out, 0, frame);
     if (ret < 0)
         av_frame_unref(frame);
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index acc8596836..60e09866af 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -1791,6 +1791,9 @@ int ifilter_sub2video(InputFilter *ifilter, const AVFrame *frame)
             return av_buffersrc_add_frame(ifp->filter, NULL);
         }
 
+        ifp->width  = frame->width  ? frame->width  : ifp->width;
+        ifp->height = frame->height ? frame->height : ifp->height;
+
         sub2video_update(ifp, INT64_MIN, (const AVSubtitle*)frame->buf[0]->data);
     } else if (frame) {
         AVFrame *tmp = av_frame_clone(frame);



More information about the ffmpeg-cvslog mailing list