Browse Source

Add convergence_duration to AVCodecParserContext.

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17468 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Ivan Schreter Carl Eugen Hoyos 16 years ago
parent
commit
b1fa494205
4 changed files with 22 additions and 2 deletions
  1. +18
    -1
      libavcodec/avcodec.h
  2. +1
    -0
      libavcodec/parser.c
  3. +1
    -1
      libavformat/avformat.h
  4. +2
    -0
      libavformat/utils.c

+ 18
- 1
libavcodec/avcodec.h View File

@@ -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 {


+ 1
- 0
libavcodec/parser.c View File

@@ -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;
}



+ 1
- 1
libavformat/avformat.h View File

@@ -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, \


+ 2
- 0
libavformat/utils.c View File

@@ -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)
pkt->flags |= PKT_FLAG_KEY;
}
if (pc)
pkt->convergence_duration = pc->convergence_duration;
}

void av_destruct_packet_nofree(AVPacket *pkt)


Loading…
Cancel
Save