[FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base
Anton Khirnov
anton at khirnov.net
Wed May 31 18:32:04 EEST 2023
The contents of this field are not defined for decoding. Use
pkt_timebase, which is the timebase of demuxed packets.
Drop a tautological av_packet_rescale_ts() call, as the stream and
decoder timebases are the same.
---
doc/examples/transcode.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c
index 7110816fe6..2e1491f432 100644
--- a/doc/examples/transcode.c
+++ b/doc/examples/transcode.c
@@ -269,7 +269,7 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt,
- dec_ctx->time_base.num, dec_ctx->time_base.den,
+ dec_ctx->pkt_timebase.num, dec_ctx->pkt_timebase.den,
dec_ctx->sample_aspect_ratio.num,
dec_ctx->sample_aspect_ratio.den);
@@ -309,7 +309,7 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
av_channel_layout_describe(&dec_ctx->ch_layout, buf, sizeof(buf));
snprintf(args, sizeof(args),
"time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=%s",
- dec_ctx->time_base.num, dec_ctx->time_base.den, dec_ctx->sample_rate,
+ dec_ctx->pkt_timebase.num, dec_ctx->pkt_timebase.den, dec_ctx->sample_rate,
av_get_sample_fmt_name(dec_ctx->sample_fmt),
buf);
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
@@ -547,9 +547,6 @@ int main(int argc, char **argv)
av_log(NULL, AV_LOG_DEBUG, "Going to reencode&filter the frame\n");
- av_packet_rescale_ts(packet,
- ifmt_ctx->streams[stream_index]->time_base,
- stream->dec_ctx->time_base);
ret = avcodec_send_packet(stream->dec_ctx, packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
--
2.40.1
More information about the ffmpeg-devel
mailing list