radeon/vce: implement h264 profile support
authorLeo Liu <leo.liu@amd.com>
Fri, 30 May 2014 19:57:28 +0000 (15:57 -0400)
committerChristian König <christian.koenig@amd.com>
Wed, 4 Jun 2014 15:24:42 +0000 (17:24 +0200)
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/drivers/radeon/radeon_vce_40_2_2.c

index 3010c5b91390e56c58cf42880159b236a62c002e..c67f8f9b2a80148c5dd429bbcb1d9c6b4b6a1abb 100644 (file)
@@ -44,6 +44,8 @@
 #include "radeon_video.h"
 #include "radeon_vce.h"
 
+static const unsigned profiles[7] = { 66, 77, 88, 100, 110, 122, 244 };
+
 static struct rvce_cpb_slot *current_slot(struct rvce_encoder *enc)
 {
        return LIST_ENTRY(struct rvce_cpb_slot, enc->cpb_slots.prev, list);
@@ -104,7 +106,8 @@ static void create(struct rvce_encoder *enc)
 
        RVCE_BEGIN(0x01000001); // create cmd
        RVCE_CS(0x00000000); // encUseCircularBuffer
-       RVCE_CS(0x0000004d); // encProfile: Main
+       RVCE_CS(profiles[enc->base.profile -
+               PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE]); // encProfile
        RVCE_CS(0x0000002a); // encLevel: 4.2
        RVCE_CS(0x00000000); // encPicStructRestriction
        RVCE_CS(enc->base.width); // encImageWidth