Add convergence_duration to AVCodecParserContext.
Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17468 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e9259f8d18
commit
b1fa494205
@ -30,7 +30,7 @@
|
|||||||
#include "libavutil/avutil.h"
|
#include "libavutil/avutil.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 52
|
#define LIBAVCODEC_VERSION_MAJOR 52
|
||||||
#define LIBAVCODEC_VERSION_MINOR 17
|
#define LIBAVCODEC_VERSION_MINOR 18
|
||||||
#define LIBAVCODEC_VERSION_MICRO 0
|
#define LIBAVCODEC_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
@ -3033,6 +3033,23 @@ typedef struct AVCodecParserContext {
|
|||||||
* will be used.
|
* will be used.
|
||||||
*/
|
*/
|
||||||
int key_frame;
|
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;
|
} AVCodecParserContext;
|
||||||
|
|
||||||
typedef struct AVCodecParser {
|
typedef struct AVCodecParser {
|
||||||
|
@ -74,6 +74,7 @@ AVCodecParserContext *av_parser_init(int codec_id)
|
|||||||
s->fetch_timestamp=1;
|
s->fetch_timestamp=1;
|
||||||
s->pict_type = FF_I_TYPE;
|
s->pict_type = FF_I_TYPE;
|
||||||
s->key_frame = -1;
|
s->key_frame = -1;
|
||||||
|
s->convergence_duration = AV_NOPTS_VALUE;
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 52
|
#define LIBAVFORMAT_VERSION_MAJOR 52
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 29
|
#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, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
LIBAVFORMAT_VERSION_MINOR, \
|
||||||
|
@ -909,6 +909,8 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
|
|||||||
else if (pc->key_frame == -1 && pc->pict_type == FF_I_TYPE)
|
else if (pc->key_frame == -1 && pc->pict_type == FF_I_TYPE)
|
||||||
pkt->flags |= PKT_FLAG_KEY;
|
pkt->flags |= PKT_FLAG_KEY;
|
||||||
}
|
}
|
||||||
|
if (pc)
|
||||||
|
pkt->convergence_duration = pc->convergence_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
void av_destruct_packet_nofree(AVPacket *pkt)
|
void av_destruct_packet_nofree(AVPacket *pkt)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user