mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Add key_frame to AVCodecParserContext, used in libavformat.
Initialized to -1 in parser.c for backward compatibility. Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17442 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
2ea89d9274
commit
6363af44da
@ -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 15
|
#define LIBAVCODEC_VERSION_MINOR 16
|
||||||
#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, \
|
||||||
@ -3025,6 +3025,14 @@ typedef struct AVCodecParserContext {
|
|||||||
|
|
||||||
int64_t offset; ///< byte offset from starting packet start
|
int64_t offset; ///< byte offset from starting packet start
|
||||||
int64_t cur_frame_end[AV_PARSER_PTS_NB];
|
int64_t cur_frame_end[AV_PARSER_PTS_NB];
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Set by parser to 1 for key frames and 0 for non-key frames.
|
||||||
|
* It is initialized to -1, so if the parser doesn't set this flag,
|
||||||
|
* old-style fallback using FF_I_TYPE picture type as key frames
|
||||||
|
* will be used.
|
||||||
|
*/
|
||||||
|
int key_frame;
|
||||||
} AVCodecParserContext;
|
} AVCodecParserContext;
|
||||||
|
|
||||||
typedef struct AVCodecParser {
|
typedef struct AVCodecParser {
|
||||||
|
@ -73,6 +73,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;
|
||||||
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 0
|
#define LIBAVFORMAT_VERSION_MICRO 1
|
||||||
|
|
||||||
#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, \
|
||||||
|
@ -904,7 +904,9 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
|
|||||||
else if (pc) {
|
else if (pc) {
|
||||||
pkt->flags = 0;
|
pkt->flags = 0;
|
||||||
/* keyframe computation */
|
/* keyframe computation */
|
||||||
if (pc->pict_type == FF_I_TYPE)
|
if (pc->key_frame == 1)
|
||||||
|
pkt->flags |= PKT_FLAG_KEY;
|
||||||
|
else if (pc->key_frame == -1 && pc->pict_type == FF_I_TYPE)
|
||||||
pkt->flags |= PKT_FLAG_KEY;
|
pkt->flags |= PKT_FLAG_KEY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user