mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-27 13:10:37 +00: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"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 52
|
||||
#define LIBAVCODEC_VERSION_MINOR 15
|
||||
#define LIBAVCODEC_VERSION_MINOR 16
|
||||
#define LIBAVCODEC_VERSION_MICRO 0
|
||||
|
||||
#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 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;
|
||||
|
||||
typedef struct AVCodecParser {
|
||||
|
@ -73,6 +73,7 @@ AVCodecParserContext *av_parser_init(int codec_id)
|
||||
}
|
||||
s->fetch_timestamp=1;
|
||||
s->pict_type = FF_I_TYPE;
|
||||
s->key_frame = -1;
|
||||
return s;
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#define LIBAVFORMAT_VERSION_MAJOR 52
|
||||
#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, \
|
||||
LIBAVFORMAT_VERSION_MINOR, \
|
||||
|
@ -904,8 +904,10 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
|
||||
else if (pc) {
|
||||
pkt->flags = 0;
|
||||
/* keyframe computation */
|
||||
if (pc->pict_type == FF_I_TYPE)
|
||||
pkt->flags |= PKT_FLAG_KEY;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user