doc/examples/transcode: stop using decoder's AVCodecContext.time_base
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.
This commit is contained in:
parent
828d3b4432
commit
811b0e02be
@ -271,7 +271,7 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
|
|||||||
snprintf(args, sizeof(args),
|
snprintf(args, sizeof(args),
|
||||||
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
|
"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->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.num,
|
||||||
dec_ctx->sample_aspect_ratio.den);
|
dec_ctx->sample_aspect_ratio.den);
|
||||||
|
|
||||||
@ -311,7 +311,7 @@ static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
|
|||||||
av_channel_layout_describe(&dec_ctx->ch_layout, buf, sizeof(buf));
|
av_channel_layout_describe(&dec_ctx->ch_layout, buf, sizeof(buf));
|
||||||
snprintf(args, sizeof(args),
|
snprintf(args, sizeof(args),
|
||||||
"time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=%s",
|
"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),
|
av_get_sample_fmt_name(dec_ctx->sample_fmt),
|
||||||
buf);
|
buf);
|
||||||
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
|
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
|
||||||
@ -549,9 +549,6 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
av_log(NULL, AV_LOG_DEBUG, "Going to reencode&filter the frame\n");
|
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);
|
ret = avcodec_send_packet(stream->dec_ctx, packet);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
|
av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user