[FFmpeg-devel] [PATCH 21/21] fftools/ffmpeg: pass subtitle decoder dimensions to sub2video
Anton Khirnov
anton at khirnov.net
Wed Jun 14 19:49:08 EEST 2023
Restores behavior from before 20cacfe4936a8d5b643421b5ca93bb098f6b76dd.
Eventually this should be handled similarly to audio/video - with a
filtergraph reset or a manual scaler.
---
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 e0c0038f50..4ff30b44b2 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);
--
2.40.1
More information about the ffmpeg-devel
mailing list