aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgcocherel <gildas.cocherel@laposte.net>2013-11-21 11:29:05 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-11-22 01:29:02 +0100
commitfb7d70c1cd95529cbbbeeab5e9fa3b200ef2545c (patch)
tree95ac79d4e85667d8e7aff9a35993604017299b42
parent36658c978f5d7df2ce556075946f3a80f7eca753 (diff)
downloadffmpeg-fb7d70c1cd95529cbbbeeab5e9fa3b200ef2545c.tar.gz
hevc : add hevc profile
(cherry picked from commit 0c8dfd8ad6400b33da55a9f4d9aa8d3f5c9d209f) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/avcodec.h5
-rw-r--r--libavcodec/hevc.c12
2 files changed, 17 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 68bb1154ae..7e5aee2094 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2814,6 +2814,11 @@ typedef struct AVCodecContext {
#define FF_PROFILE_JPEG2000_DCINEMA_2K 3
#define FF_PROFILE_JPEG2000_DCINEMA_4K 4
+
+#define FF_PROFILE_HEVC_MAIN 1
+#define FF_PROFILE_HEVC_MAIN_10 2
+#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
+
/**
* level
* - encoding: Set by user.
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 26b0c5f42b..add6a7ccd0 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -374,6 +374,9 @@ static int hls_slice_header(HEVCContext *s)
s->max_ra = INT_MAX;
}
+ s->avctx->profile = s->sps->ptl.general_PTL.profile_idc;
+ s->avctx->level = s->sps->ptl.general_PTL.level_idc;
+
sh->dependent_slice_segment_flag = 0;
if (!sh->first_slice_in_pic_flag) {
int slice_address_length;
@@ -2926,6 +2929,14 @@ static void hevc_decode_flush(AVCodecContext *avctx)
#define OFFSET(x) offsetof(HEVCContext, x)
#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
+
+static const AVProfile profiles[] = {
+ { FF_PROFILE_HEVC_MAIN, "Main" },
+ { FF_PROFILE_HEVC_MAIN_10, "Main10" },
+ { FF_PROFILE_HEVC_MAIN_STILL_PICTURE, "MainStillPicture" },
+ { FF_PROFILE_UNKNOWN },
+};
+
static const AVOption options[] = {
{ "apply_defdispwin", "Apply default display window from VUI", OFFSET(apply_defdispwin),
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, PAR },
@@ -2956,4 +2967,5 @@ AVCodec ff_hevc_decoder = {
.init_thread_copy = hevc_init_thread_copy,
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DELAY |
CODEC_CAP_SLICE_THREADS | CODEC_CAP_FRAME_THREADS,
+ .profiles = NULL_IF_CONFIG_SMALL(profiles),
};