summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorIvan Schreter <schreter@gmx.net>2009-02-19 23:35:59 +0000
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>2009-02-19 23:35:59 +0000
commitb1fa4942056e8f09b5d19d913f7353245875b7a9 (patch)
tree9c421af62cc1f9f44b08d10fac08dff6f59c3d9b /libavcodec
parente9259f8d183c9b4d413acccdc8705acba6a656cb (diff)
Add convergence_duration to AVCodecParserContext.
Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17468 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h19
-rw-r--r--libavcodec/parser.c1
2 files changed, 19 insertions, 1 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index e4f1831c85..b0ec18a49c 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -30,7 +30,7 @@
#include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 17
+#define LIBAVCODEC_VERSION_MINOR 18
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -3033,6 +3033,23 @@ typedef struct AVCodecParserContext {
* will be used.
*/
int key_frame;
+
+ /**
+ * Time difference in stream time base units from the pts of this
+ * packet to the point 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.
+ * This field is not the display duration of the current frame.
+ *
+ * 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 is also
+ * essential for some types of subtitle streams to ensure that all
+ * subtitles are correctly displayed after seeking.
+ */
+ int64_t convergence_duration;
} AVCodecParserContext;
typedef struct AVCodecParser {
diff --git a/libavcodec/parser.c b/libavcodec/parser.c
index db9b2363fe..a0d604dabe 100644
--- a/libavcodec/parser.c
+++ b/libavcodec/parser.c
@@ -74,6 +74,7 @@ AVCodecParserContext *av_parser_init(int codec_id)
s->fetch_timestamp=1;
s->pict_type = FF_I_TYPE;
s->key_frame = -1;
+ s->convergence_duration = AV_NOPTS_VALUE;
return s;
}