* [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding @ 2023-05-31 15:32 Anton Khirnov 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov ` (3 more replies) 0 siblings, 4 replies; 8+ messages in thread From: Anton Khirnov @ 2023-05-31 15:32 UTC (permalink / raw) To: ffmpeg-devel It is recommended for callers to set it, though not required. --- doc/examples/transcode.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c index 805a028ed7..7110816fe6 100644 --- a/doc/examples/transcode.c +++ b/doc/examples/transcode.c @@ -97,6 +97,9 @@ static int open_input_file(const char *filename) "for stream #%u\n", i); return ret; } + + codec_ctx->pkt_timebase = stream->time_base; + /* Reencode video & audio and remux subtitles etc. */ if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO || codec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base 2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov @ 2023-05-31 15:32 ` Anton Khirnov 2023-05-31 16:04 ` Paul B Mahol 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov ` (2 subsequent siblings) 3 siblings, 1 reply; 8+ messages in thread From: Anton Khirnov @ 2023-05-31 15:32 UTC (permalink / raw) To: ffmpeg-devel 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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov @ 2023-05-31 16:04 ` Paul B Mahol 0 siblings, 0 replies; 8+ messages in thread From: Paul B Mahol @ 2023-05-31 16:04 UTC (permalink / raw) To: FFmpeg development discussions and patches LGTM _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding 2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov @ 2023-05-31 15:32 ` Anton Khirnov 2023-05-31 16:04 ` Paul B Mahol 2023-05-31 16:03 ` [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Paul B Mahol 2023-05-31 19:02 ` James Almer 3 siblings, 1 reply; 8+ messages in thread From: Anton Khirnov @ 2023-05-31 15:32 UTC (permalink / raw) To: ffmpeg-devel The timebases do not have to match. --- doc/examples/transcode.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c index 2e1491f432..ebe5ad2a42 100644 --- a/doc/examples/transcode.c +++ b/doc/examples/transcode.c @@ -439,6 +439,10 @@ static int encode_write_frame(unsigned int stream_index, int flush) /* encode filtered frame */ av_packet_unref(enc_pkt); + if (filt_frame && filt_frame->pts != AV_NOPTS_VALUE) + filt_frame->pts = av_rescale_q(filt_frame->pts, filt_frame->time_base, + stream->enc_ctx->time_base); + ret = avcodec_send_frame(stream->enc_ctx, filt_frame); if (ret < 0) @@ -493,6 +497,7 @@ static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index) break; } + filter->filtered_frame->time_base = av_buffersink_get_time_base(filter->buffersink_ctx);; filter->filtered_frame->pict_type = AV_PICTURE_TYPE_NONE; ret = encode_write_frame(stream_index, 0); av_frame_unref(filter->filtered_frame); -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov @ 2023-05-31 16:04 ` Paul B Mahol 0 siblings, 0 replies; 8+ messages in thread From: Paul B Mahol @ 2023-05-31 16:04 UTC (permalink / raw) To: FFmpeg development discussions and patches LGTM _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding 2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov @ 2023-05-31 16:03 ` Paul B Mahol 2023-05-31 19:02 ` James Almer 3 siblings, 0 replies; 8+ messages in thread From: Paul B Mahol @ 2023-05-31 16:03 UTC (permalink / raw) To: FFmpeg development discussions and patches LGTM _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding 2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov ` (2 preceding siblings ...) 2023-05-31 16:03 ` [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Paul B Mahol @ 2023-05-31 19:02 ` James Almer 2023-06-04 14:29 ` Stefano Sabatini 3 siblings, 1 reply; 8+ messages in thread From: James Almer @ 2023-05-31 19:02 UTC (permalink / raw) To: ffmpeg-devel On 5/31/2023 12:32 PM, Anton Khirnov wrote: > It is recommended for callers to set it, though not required. Add this comment to the file. It's meant to be an example for library users to refer to for their implementations, after all. > --- > doc/examples/transcode.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/doc/examples/transcode.c b/doc/examples/transcode.c > index 805a028ed7..7110816fe6 100644 > --- a/doc/examples/transcode.c > +++ b/doc/examples/transcode.c > @@ -97,6 +97,9 @@ static int open_input_file(const char *filename) > "for stream #%u\n", i); > return ret; > } > + > + codec_ctx->pkt_timebase = stream->time_base; > + > /* Reencode video & audio and remux subtitles etc. */ > if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO > || codec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding 2023-05-31 19:02 ` James Almer @ 2023-06-04 14:29 ` Stefano Sabatini 0 siblings, 0 replies; 8+ messages in thread From: Stefano Sabatini @ 2023-06-04 14:29 UTC (permalink / raw) To: FFmpeg development discussions and patches On date Wednesday 2023-05-31 16:02:13 -0300, James Almer wrote: > On 5/31/2023 12:32 PM, Anton Khirnov wrote: > > It is recommended for callers to set it, though not required. > Add this comment to the file. It's meant to be an example for library users > to refer to for their implementations, after all. I think we should clarify the expectations (I had a similar local patch to fix this, but I was unsatisfied with the current status quo and I was exploring if it would be possible to fix this at the library level - then I was sidetracked). _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-06-04 14:29 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-05-31 15:32 [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Anton Khirnov 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 2/3] doc/examples/transcode: stop using decoder's AVCodecContext.time_base Anton Khirnov 2023-05-31 16:04 ` Paul B Mahol 2023-05-31 15:32 ` [FFmpeg-devel] [PATCH 3/3] doc/examples/transcode: convert timestamps between filtering and encoding Anton Khirnov 2023-05-31 16:04 ` Paul B Mahol 2023-05-31 16:03 ` [FFmpeg-devel] [PATCH 1/3] doc/examples/transcode: set packet timebase for decoding Paul B Mahol 2023-05-31 19:02 ` James Almer 2023-06-04 14:29 ` Stefano Sabatini
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git