From a2636c0fd5356827cd53b89eadde9962fbf7f1db Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 3 Sep 2008 14:44:54 +0000 Subject: [PATCH] Add AVPacket.convergence_duration. Originally committed as revision 15179 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avformat.h | 17 ++++++++++++++++- libavformat/utils.c | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index e0cb811..0db6758 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -22,7 +22,7 @@ #define AVFORMAT_AVFORMAT_H #define LIBAVFORMAT_VERSION_MAJOR 52 -#define LIBAVFORMAT_VERSION_MINOR 21 +#define LIBAVFORMAT_VERSION_MINOR 22 #define LIBAVFORMAT_VERSION_MICRO 0 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ @@ -78,6 +78,21 @@ typedef struct AVPacket { void (*destruct)(struct AVPacket *); void *priv; int64_t pos; ///< byte position in stream, -1 if unknown + + /** + * This is the time difference in stream timebase units from the pts at which + * the output from the decoder has converged independent from the availability + * of previous frames (that is the frames are virtually identical no matter + * if decoding started from the very first frame or from this keyframe). + * is AV_NOPTS_VALUE if unknown. + * + * The purpose of this field is to allow seeking in streams that have no + * keyframes in the conventional sense. It corresponds to the + * recovery point SEI in H.264 and match_time_delta in nut. It also is + * essential for some types of subtitle streams to ensure that all + * subtitles are correctly displayed after seeking. + */ + int64_t convergence_duration; } AVPacket; #define PKT_FLAG_KEY 0x0001 diff --git a/libavformat/utils.c b/libavformat/utils.c index 5c268c7..8737648 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -251,6 +251,7 @@ void av_init_packet(AVPacket *pkt) pkt->dts = AV_NOPTS_VALUE; pkt->pos = -1; pkt->duration = 0; + pkt->convergence_duration = 0; pkt->flags = 0; pkt->stream_index = 0; pkt->destruct= av_destruct_packet_nofree; -- 2.7.4