Patch by Rafaël Carré, rafael D carre A gmail Originally committed as revision 21517 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
@@ -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 48 | |||||
#define LIBAVCODEC_VERSION_MINOR 49 | |||||
#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, \ | ||||
@@ -2123,11 +2123,21 @@ typedef struct AVCodecContext { | |||||
*/ | */ | ||||
int profile; | int profile; | ||||
#define FF_PROFILE_UNKNOWN -99 | #define FF_PROFILE_UNKNOWN -99 | ||||
#define FF_PROFILE_AAC_MAIN 0 | #define FF_PROFILE_AAC_MAIN 0 | ||||
#define FF_PROFILE_AAC_LOW 1 | #define FF_PROFILE_AAC_LOW 1 | ||||
#define FF_PROFILE_AAC_SSR 2 | #define FF_PROFILE_AAC_SSR 2 | ||||
#define FF_PROFILE_AAC_LTP 3 | #define FF_PROFILE_AAC_LTP 3 | ||||
#define FF_PROFILE_H264_BASELINE 66 | |||||
#define FF_PROFILE_H264_MAIN 77 | |||||
#define FF_PROFILE_H264_EXTENDED 88 | |||||
#define FF_PROFILE_H264_HIGH 100 | |||||
#define FF_PROFILE_H264_HIGH_10 110 | |||||
#define FF_PROFILE_H264_HIGH_422 122 | |||||
#define FF_PROFILE_H264_HIGH_444 244 | |||||
#define FF_PROFILE_H264_CAVLC_444 44 | |||||
/** | /** | ||||
* level | * level | ||||
* - encoding: Set by user. | * - encoding: Set by user. | ||||
@@ -2527,6 +2527,9 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){ | |||||
if((err = decode_slice_header(hx, h))) | if((err = decode_slice_header(hx, h))) | ||||
break; | break; | ||||
avctx->profile = hx->sps.profile_idc; | |||||
avctx->level = hx->sps.level_idc; | |||||
if (s->avctx->hwaccel && h->current_slice == 1) { | if (s->avctx->hwaccel && h->current_slice == 1) { | ||||
if (s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0) | if (s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0) | ||||
return -1; | return -1; | ||||
@@ -2560,6 +2563,9 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){ | |||||
if ((err = decode_slice_header(hx, h)) < 0) | if ((err = decode_slice_header(hx, h)) < 0) | ||||
break; | break; | ||||
avctx->profile = hx->sps.profile_idc; | |||||
avctx->level = hx->sps.level_idc; | |||||
hx->s.data_partitioning = 1; | hx->s.data_partitioning = 1; | ||||
break; | break; | ||||
@@ -185,6 +185,9 @@ static inline int parse_nal_units(AVCodecParserContext *s, | |||||
h->sps = *h->sps_buffers[h->pps.sps_id]; | h->sps = *h->sps_buffers[h->pps.sps_id]; | ||||
h->frame_num = get_bits(&h->s.gb, h->sps.log2_max_frame_num); | h->frame_num = get_bits(&h->s.gb, h->sps.log2_max_frame_num); | ||||
avctx->profile = h->sps.profile_idc; | |||||
avctx->level = h->sps.level_idc; | |||||
if(h->sps.frame_mbs_only_flag){ | if(h->sps.frame_mbs_only_flag){ | ||||
h->s.picture_structure= PICT_FRAME; | h->s.picture_structure= PICT_FRAME; | ||||
}else{ | }else{ | ||||