From: Gyan Doshi <ffmpeg@gyani.pro> To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH v2 1/2] avformat: add AVFormatContext.first_pkt_wallclock Date: Sat, 25 Jun 2022 13:59:50 +0530 Message-ID: <20220625082951.11897-1-ffmpeg@gyani.pro> (raw) Stores wallclock time for the first packet received. Used for crude sync offset among inputs. --- doc/APIchanges | 3 +++ libavformat/avformat.h | 10 ++++++++++ libavformat/demux.c | 3 +++ libavformat/options.c | 1 + libavformat/version.h | 2 +- 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 20b944933a..94c53d283f 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-06-xx - xxxxxxxxxx - lavf 59.26.100 - avformat.h + Add and set AVFormatContext.first_pkt_wallclock field. + 2022-06-12 - xxxxxxxxxx - lavf 59.25.100 - avio.h Add avio_vprintf(), similar to avio_printf() but allow to use it from within a function taking a variable argument list as input. diff --git a/libavformat/avformat.h b/libavformat/avformat.h index f12fa7d904..a45777ab39 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -1808,6 +1808,16 @@ typedef struct AVFormatContext { */ int max_probe_packets; + /** + * Wallclock start time of the stream in real world time, in microseconds + * since the Unix epoch (00:00 1st January 1970). That is, the first packet + * was received at this real world time. + * - demuxing: Set by libavformat. Users may want to use start_time_realtime + * if set. + * - muxing: unused. + */ + int64_t first_pkt_wallclock; + /** * A callback for closing the streams opened with AVFormatContext.io_open(). * diff --git a/libavformat/demux.c b/libavformat/demux.c index e121253dfd..7e0540debf 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -628,6 +628,9 @@ FF_ENABLE_DEPRECATION_WARNINGS force_codec_ids(s, st); + if (s->first_pkt_wallclock == AV_NOPTS_VALUE) + s->first_pkt_wallclock = av_gettime(); + /* TODO: audio: time filter; video: frame reordering (pts != dts) */ if (s->use_wallclock_as_timestamps) pkt->dts = pkt->pts = av_rescale_q(av_gettime(), AV_TIME_BASE_Q, st->time_base); diff --git a/libavformat/options.c b/libavformat/options.c index 0079a06d9a..77d4dfd1d0 100644 --- a/libavformat/options.c +++ b/libavformat/options.c @@ -184,6 +184,7 @@ AVFormatContext *avformat_alloc_context(void) return NULL; } + s->first_pkt_wallclock = AV_NOPTS_VALUE; si->shortest_end = AV_NOPTS_VALUE; return s; diff --git a/libavformat/version.h b/libavformat/version.h index 966ebb7ed3..0708d619c0 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFORMAT_VERSION_MINOR 25 +#define LIBAVFORMAT_VERSION_MINOR 26 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ -- 2.36.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".
next reply other threads:[~2022-06-25 8:30 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-25 8:29 Gyan Doshi [this message] 2022-06-25 8:29 ` [FFmpeg-devel] [PATCH v2 2/2] ffmpeg: add option -isync Gyan Doshi 2022-06-27 13:25 ` Gyan Doshi 2022-07-01 4:16 ` Gyan Doshi 2022-07-01 10:03 ` Anton Khirnov 2022-07-01 11:03 ` Gyan Doshi 2022-07-02 8:42 ` Anton Khirnov 2022-07-02 9:51 ` Gyan Doshi 2022-07-04 3:47 ` Gyan Doshi 2022-07-04 6:29 ` Anton Khirnov 2022-07-04 6:21 ` Anton Khirnov 2022-07-04 8:20 ` Gyan Doshi 2022-07-05 16:15 ` Anton Khirnov 2022-07-05 17:10 ` Gyan Doshi 2022-07-05 17:24 ` Anton Khirnov 2022-07-06 4:16 ` Gyan Doshi 2022-06-28 5:13 ` [FFmpeg-devel] [PATCH v2 1/2] avformat: add AVFormatContext.first_pkt_wallclock Anton Khirnov 2022-06-28 6:40 ` Gyan Doshi 2022-06-28 7:50 ` Andreas Rheinhardt 2022-06-28 8:35 ` Gyan Doshi 2022-07-01 9:50 ` Anton Khirnov 2022-07-01 11:07 ` Gyan Doshi 2022-07-02 8:42 ` Anton Khirnov 2022-07-02 9:51 ` Gyan Doshi 2022-07-04 4:42 ` Anton Khirnov 2022-07-04 5:23 ` Gyan Doshi -- strict thread matches above, loose matches on Subject: below -- 2022-06-25 8:13 Gyan Doshi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220625082951.11897-1-ffmpeg@gyani.pro \ --to=ffmpeg@gyani.pro \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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