Commit 90092ac0 authored by cehoyos's avatar cehoyos

Export H264 profile and level in AVCodecContext.

Patch by Rafaël Carré, rafael D carre A gmail


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@21517 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 678600c2
...@@ -30,7 +30,7 @@ ...@@ -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 { ...@@ -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){ ...@@ -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){ ...@@ -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, ...@@ -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{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment