[FFmpeg-cvslog] r21517 - in trunk/libavcodec: avcodec.h h264.c h264_parser.c
cehoyos
subversion
Thu Jan 28 21:57:29 CET 2010
Author: cehoyos
Date: Thu Jan 28 21:57:29 2010
New Revision: 21517
Log:
Export H264 profile and level in AVCodecContext.
Patch by Rafa?l Carr?, rafael D carre A gmail
Modified:
trunk/libavcodec/avcodec.h
trunk/libavcodec/h264.c
trunk/libavcodec/h264_parser.c
Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h Thu Jan 28 21:15:19 2010 (r21516)
+++ trunk/libavcodec/avcodec.h Thu Jan 28 21:57:29 2010 (r21517)
@@ -30,7 +30,7 @@
#include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 48
+#define LIBAVCODEC_VERSION_MINOR 49
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -2123,11 +2123,21 @@ typedef struct AVCodecContext {
*/
int profile;
#define FF_PROFILE_UNKNOWN -99
+
#define FF_PROFILE_AAC_MAIN 0
#define FF_PROFILE_AAC_LOW 1
#define FF_PROFILE_AAC_SSR 2
#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
* - encoding: Set by user.
Modified: trunk/libavcodec/h264.c
==============================================================================
--- trunk/libavcodec/h264.c Thu Jan 28 21:15:19 2010 (r21516)
+++ trunk/libavcodec/h264.c Thu Jan 28 21:57:29 2010 (r21517)
@@ -2527,6 +2527,9 @@ static int decode_nal_units(H264Context
if((err = decode_slice_header(hx, h)))
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->start_frame(s->avctx, NULL, 0) < 0)
return -1;
@@ -2560,6 +2563,9 @@ static int decode_nal_units(H264Context
if ((err = decode_slice_header(hx, h)) < 0)
break;
+ avctx->profile = hx->sps.profile_idc;
+ avctx->level = hx->sps.level_idc;
+
hx->s.data_partitioning = 1;
break;
Modified: trunk/libavcodec/h264_parser.c
==============================================================================
--- trunk/libavcodec/h264_parser.c Thu Jan 28 21:15:19 2010 (r21516)
+++ trunk/libavcodec/h264_parser.c Thu Jan 28 21:57:29 2010 (r21517)
@@ -185,6 +185,9 @@ static inline int parse_nal_units(AVCode
h->sps = *h->sps_buffers[h->pps.sps_id];
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){
h->s.picture_structure= PICT_FRAME;
}else{
More information about the ffmpeg-cvslog
mailing list