diff options
author | Yusuke Nakamura <muken.the.vfrmaniac@gmail.com> | 2013-08-02 18:16:48 +0900 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2013-08-02 20:59:45 +0200 |
commit | a8b19271c3b40ac3c3dc769fe248887acf14ba5a (patch) | |
tree | 9c5f375c02f1496f7f3c9859e6496e7509d61d52 /libavcodec | |
parent | 7950e519bb094897f957b9a9531cc60ba46cbc91 (diff) | |
download | ffmpeg-a8b19271c3b40ac3c3dc769fe248887acf14ba5a.tar.gz |
avcodec: Add output_picture_number to AVCodecParserContext
Set output_picture_number in H.264 parser.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/avcodec.h | 8 | ||||
-rw-r--r-- | libavcodec/h264.c | 3 | ||||
-rw-r--r-- | libavcodec/h264_parser.c | 2 | ||||
-rw-r--r-- | libavcodec/version.h | 2 |
4 files changed, 11 insertions, 4 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index bd9a80c5ee..a84c0130a9 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3563,6 +3563,14 @@ typedef struct AVCodecParserContext { * AV_PICTURE_STRUCTURE_TOP_FIELD. */ enum AVPictureStructure picture_structure; + + /** + * Picture number incremented in presentation or output order. + * This field may be reinitialized at the first picture of a new sequence. + * + * For example, this corresponds to H.264 PicOrderCnt. + */ + int output_picture_number; } AVCodecParserContext; typedef struct AVCodecParser { diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 2dccb87a60..c9589414ee 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -2717,8 +2717,7 @@ int ff_init_poc(H264Context *h, int pic_field_poc[2], int *pic_poc) pic_field_poc[0] = field_poc[0]; if (h->picture_structure != PICT_TOP_FIELD) pic_field_poc[1] = field_poc[1]; - if (pic_poc) - *pic_poc = FFMIN(pic_field_poc[0], pic_field_poc[1]); + *pic_poc = FFMIN(pic_field_poc[0], pic_field_poc[1]); return 0; } diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index 36829ecbea..2ed155cdfd 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -240,7 +240,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, h->delta_poc[1] = get_se_golomb(&h->gb); } - ff_init_poc(h, field_poc, NULL); + ff_init_poc(h, field_poc, &s->output_picture_number); if (h->sps.pic_struct_present_flag) { switch (h->sei_pic_struct) { diff --git a/libavcodec/version.h b/libavcodec/version.h index 7c82519e06..575fa2647e 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -27,7 +27,7 @@ */ #define LIBAVCODEC_VERSION_MAJOR 55 -#define LIBAVCODEC_VERSION_MINOR 10 +#define LIBAVCODEC_VERSION_MINOR 11 #define LIBAVCODEC_VERSION_MICRO 0 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |