[FFmpeg-cvslog] r17468 - in trunk: libavcodec/avcodec.h libavcodec/parser.c libavformat/avformat.h libavformat/utils.c
cehoyos
subversion
Fri Feb 20 00:35:59 CET 2009
Author: cehoyos
Date: Fri Feb 20 00:35:59 2009
New Revision: 17468
Log:
Add convergence_duration to AVCodecParserContext.
Patch by Ivan Schreter, schreter gmx net
Modified:
trunk/libavcodec/avcodec.h
trunk/libavcodec/parser.c
trunk/libavformat/avformat.h
trunk/libavformat/utils.c
Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h Fri Feb 20 00:24:41 2009 (r17467)
+++ trunk/libavcodec/avcodec.h Fri Feb 20 00:35:59 2009 (r17468)
@@ -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 {
Modified: trunk/libavcodec/parser.c
==============================================================================
--- trunk/libavcodec/parser.c Fri Feb 20 00:24:41 2009 (r17467)
+++ trunk/libavcodec/parser.c Fri Feb 20 00:35:59 2009 (r17468)
@@ -74,6 +74,7 @@ AVCodecParserContext *av_parser_init(int
s->fetch_timestamp=1;
s->pict_type = FF_I_TYPE;
s->key_frame = -1;
+ s->convergence_duration = AV_NOPTS_VALUE;
return s;
}
Modified: trunk/libavformat/avformat.h
==============================================================================
--- trunk/libavformat/avformat.h Fri Feb 20 00:24:41 2009 (r17467)
+++ trunk/libavformat/avformat.h Fri Feb 20 00:35:59 2009 (r17468)
@@ -23,7 +23,7 @@
#define LIBAVFORMAT_VERSION_MAJOR 52
#define LIBAVFORMAT_VERSION_MINOR 29
-#define LIBAVFORMAT_VERSION_MICRO 1
+#define LIBAVFORMAT_VERSION_MICRO 2
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \
Modified: trunk/libavformat/utils.c
==============================================================================
--- trunk/libavformat/utils.c Fri Feb 20 00:24:41 2009 (r17467)
+++ trunk/libavformat/utils.c Fri Feb 20 00:35:59 2009 (r17468)
@@ -909,6 +909,8 @@ static void compute_pkt_fields(AVFormatC
else if (pc->key_frame == -1 && pc->pict_type == FF_I_TYPE)
pkt->flags |= PKT_FLAG_KEY;
}
+ if (pc)
+ pkt->convergence_duration = pc->convergence_duration;
}
void av_destruct_packet_nofree(AVPacket *pkt)
More information about the ffmpeg-cvslog
mailing list