aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmarinder Bindra2013-05-30 06:31:34 -0500
committerAmarinder Bindra2013-05-30 01:30:20 -0500
commit41fabb773428c0241063257083f9a4fab0ab6334 (patch)
tree7a236ca61c157cdac68a3af7b48381a1f247c849
parent9d618ff958b5599a75d17de9bc4545aad71a2a29 (diff)
downloaddce-41fabb773428c0241063257083f9a4fab0ab6334.tar.gz
dce-41fabb773428c0241063257083f9a4fab0ab6334.tar.xz
dce-41fabb773428c0241063257083f9a4fab0ab6334.zip
Update the MPEG4 Decoder header file to sync with the codec header file in the ipumm release
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
-rw-r--r--packages/ivahd_codecs/ti/sdo/codecs/mpeg4dec/impeg4vdec.h130
1 files changed, 92 insertions, 38 deletions
diff --git a/packages/ivahd_codecs/ti/sdo/codecs/mpeg4dec/impeg4vdec.h b/packages/ivahd_codecs/ti/sdo/codecs/mpeg4dec/impeg4vdec.h
index 9cdedcb..0147bac 100644
--- a/packages/ivahd_codecs/ti/sdo/codecs/mpeg4dec/impeg4vdec.h
+++ b/packages/ivahd_codecs/ti/sdo/codecs/mpeg4dec/impeg4vdec.h
@@ -49,11 +49,13 @@
49* added debug trace level enum to interface file 49* added debug trace level enum to interface file
50* [Ashish] 50* [Ashish]
51* 51*
52* @version 0.9 (Mar 2012) : Added create time params & enums to support Enhanced 52* @version 0.9 (Mar 2012) : Added create time params & enums to support Enhanced
53* deblocking feature [Mahantesh] 53* deblocking feature [Mahantesh]
54* 54*
55* @version 1.0 [May 2012] : MB Info format structure added [Mahantesh] 55* @version 1.0 (May 2012) : MB Info format structure added [Mahantesh]
56* 56*
57* @version 0.9 (July 2012): Added create time params, enums & Macros to support
58* only I frame decoding [Mahantesh]
57******************************************************************************* 59*******************************************************************************
58*/ 60*/
59 61
@@ -202,7 +204,10 @@ typedef IVIDDEC3_Cmd IMPEG4VDEC_Cmd;
202* @param enhancedDeBlockingQp 204* @param enhancedDeBlockingQp
203* QP value to be used for filtering all edges 205* QP value to be used for filtering all edges
204* 206*
205* @param reserved[2] 207* @param decodeOnlyIntraFrames
208* Flag to indicate codec to decode only I frames from bitstream
209*
210* @param reserved
206* allocted reserve space for future uses 211* allocted reserve space for future uses
207* 212*
208* @note None 213* @note None
@@ -218,7 +223,8 @@ typedef struct IMPEG4VDEC_Params
218 XDAS_UInt32 lastNFramesToLog; 223 XDAS_UInt32 lastNFramesToLog;
219 XDAS_UInt32 paddingMode; 224 XDAS_UInt32 paddingMode;
220 XDAS_UInt32 enhancedDeBlockingQp; 225 XDAS_UInt32 enhancedDeBlockingQp;
221 XDAS_UInt32 reserved[2]; 226 XDAS_UInt32 decodeOnlyIntraFrames;
227 XDAS_UInt32 reserved;
222} IMPEG4VDEC_Params; 228} IMPEG4VDEC_Params;
223 229
224extern IMPEG4VDEC_Params IMPEG4VDEC_PARAMS; 230extern IMPEG4VDEC_Params IMPEG4VDEC_PARAMS;
@@ -520,6 +526,10 @@ typedef enum _IMPEG4MemDescription
520* this memory type is allocated by alg_alloc call & this is allocated 526* this memory type is allocated by alg_alloc call & this is allocated
521* for handle of decoder 527* for handle of decoder
522*/ 528*/
529 IMPEG4VDEC_DEBUG_TRACE_BUF,
530 /**<
531* Memtab for debug trace parameter storage
532*/
523 IMPEG4VDEC_COLOC_PMBDATA, 533 IMPEG4VDEC_COLOC_PMBDATA,
524 534
525 /** 535 /**
@@ -531,10 +541,6 @@ typedef enum _IMPEG4MemDescription
531* this memory type is allocated by IRES & this is for storing the colocated 541* this memory type is allocated by IRES & this is for storing the colocated
532* MB data for B Frame 542* MB data for B Frame
533*/ 543*/
534 IMPEG4VDEC_DEBUG_TRACE_BUF,
535 /**<
536* Memtab for debug trace parameter storage
537*/
538 IMPEG4VDEC_DEBLOCK_OFF_TOTAL_MEMTABS, 544 IMPEG4VDEC_DEBLOCK_OFF_TOTAL_MEMTABS,
539 /** 545 /**
540* Number of MemTab required if Deblock is Off required 546* Number of MemTab required if Deblock is Off required
@@ -593,7 +599,33 @@ typedef enum _IMPEG4MemDescription
593* Number of 2D resource required by codec from IRES when filtering is on 599* Number of 2D resource required by codec from IRES when filtering is on
594*/ 600*/
595#define IMEPG4VDEC_MAX_2D_OBJECTS 0x6 601#define IMEPG4VDEC_MAX_2D_OBJECTS 0x6
596 602/*
603* Number of 1D resource required by codec from IRES
604*/
605#define IMEPG4VDEC_TOTAL_1D_OBJECTS_DECODE_ONLY_I_FRAMES 0x3
606/*
607* Number of 1D resource required by codec from IRES when
608* decodeOnlyIntraframes = 1
609*/
610#define IMPEG4VDEC_DEBLOCK_OFF_TOTAL_MEMTABS_DECODE_ONLY_I_FRAMES 0x3
611/*
612* Number of memtab required if deblock is on and decodeOnlyIntraframes = 1,
613* and it will be maximum resource required by codec
614*/
615#define IMPEG4VDEC_DEBLOCK_ON_TOTAL_MEMTABS_DECODE_ONLY_I_FRAMES 0x5
616/*
617* Number of 2D resource required by codec from IRES when filtering is on and
618* decodeOnlyIntraframes = 1
619*/
620#define IMEPG4VDEC_MAX_2D_OBJECTS_DECODE_ONLY_I_FRAMES 0x2
621/*
622* Luma recon buffer index in memory resource handle array
623*/
624#define IMPEG4VDEC_LUMARECON_DATA_BUF0_DECODE_ONLY_I_FRAMES 0x3
625/*
626* Chroma recon buffer index in memory resource handle array
627*/
628#define IMPEG4VDEC_CHROMARECON_DATA_BUF0_DECODE_ONLY_I_FRAMES 0x4
597/** 629/**
598******************************************************************************* 630*******************************************************************************
599* @struct IMPEG4VDEC_Fxns 631* @struct IMPEG4VDEC_Fxns
@@ -677,7 +709,7 @@ typedef enum
677/** 709/**
678 ****************************************************************************** 710 ******************************************************************************
679 * @enum IMPEG4VDEC_EnhancedDeblockQp 711 * @enum IMPEG4VDEC_EnhancedDeblockQp
680 * @brief This enum the MIN & MAX values that QP can take while filering 712 * @brief This enum the MIN & MAX values that QP can take while filering
681 * for all edges is enabled 713 * for all edges is enabled
682 * 714 *
683 ****************************************************************************** 715 ******************************************************************************
@@ -762,6 +794,26 @@ typedef enum
762 794
763/** 795/**
764 ****************************************************************************** 796 ******************************************************************************
797 * @enum IMPEG4VDEC_DecodeOnlyIntraFrames
798 * @brief This enum indicates whether codec should decode only I frames
799 * or all frames
800 *
801 ******************************************************************************
802*/
803typedef enum
804{
805 IMPEG4VDEC_DECODE_ONLY_I_FRAMES_DISABLE = 0,
806 /**
807 * Flag to set error concealement disable
808 */
809 IMPEG4VDEC_DECODE_ONLY_I_FRAMES_ENABLE
810 /**
811 * Flag to error concealment enable
812 */
813}IMPEG4VDEC_DecodeOnlyIntraFrames;
814
815/**
816 ******************************************************************************
765 * @enum IMPEG4VDEC_FrameToLog 817 * @enum IMPEG4VDEC_FrameToLog
766 * @brief These enumerations captures the max number of frame for which codec 818 * @brief These enumerations captures the max number of frame for which codec
767 * will dump debug trace. 819 * will dump debug trace.
@@ -787,8 +839,8 @@ typedef enum
787 * @brief This structure defines the common fields in MB info 839 * @brief This structure defines the common fields in MB info
788 * 840 *
789 ****************************************************************************** 841 ******************************************************************************
790*/ 842*/
791typedef struct _IMPEG4VDEC_TI_CommonInfo 843typedef struct _IMPEG4VDEC_TI_CommonInfo
792{ 844{
793 XDAS_UInt32 codec_type:8; 845 XDAS_UInt32 codec_type:8;
794 XDAS_UInt32 fmt_type:8; 846 XDAS_UInt32 fmt_type:8;
@@ -815,7 +867,7 @@ typedef struct _IMPEG4VDEC_TI_CommonInfo
815 * @brief This structure defines codec specific fields in MB info 867 * @brief This structure defines codec specific fields in MB info
816 * 868 *
817 ****************************************************************************** 869 ******************************************************************************
818*/ 870*/
819typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSix 871typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSix
820{ 872{
821 XDAS_UInt32 pred_mode:3; 873 XDAS_UInt32 pred_mode:3;
@@ -855,7 +907,7 @@ typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSix
855 * @brief This structure defines codec specific fields in MB info 907 * @brief This structure defines codec specific fields in MB info
856 * 908 *
857 ****************************************************************************** 909 ******************************************************************************
858*/ 910*/
859typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSeven 911typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSeven
860{ 912{
861 XDAS_UInt32 dc_scaler_luma:6; 913 XDAS_UInt32 dc_scaler_luma:6;
@@ -876,8 +928,8 @@ typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSeven
876 * @brief This structure defines format of Motion Vectors as present in MBinfo 928 * @brief This structure defines format of Motion Vectors as present in MBinfo
877 * 929 *
878 ****************************************************************************** 930 ******************************************************************************
879*/ 931*/
880typedef struct _IMPEG4VDEC_TI_MotionVector 932typedef struct _IMPEG4VDEC_TI_MotionVector
881{ 933{
882 XDAS_Int16 x; 934 XDAS_Int16 x;
883 XDAS_Int16 y; 935 XDAS_Int16 y;
@@ -887,12 +939,12 @@ typedef struct _IMPEG4VDEC_TI_MotionVector
887 ****************************************************************************** 939 ******************************************************************************
888 * @struct IMPEG4VDEC_TI_MvBidirectional4 940 * @struct IMPEG4VDEC_TI_MvBidirectional4
889 * 941 *
890 * @brief This structure defines Motion Vectors at 8x8 level in both 942 * @brief This structure defines Motion Vectors at 8x8 level in both
891 * directions 943 * directions
892 * 944 *
893 ****************************************************************************** 945 ******************************************************************************
894*/ 946*/
895typedef struct _IMPEG4VDEC_TI_MvBidirectional4 947typedef struct _IMPEG4VDEC_TI_MvBidirectional4
896{ 948{
897 IMPEG4VDEC_TI_MotionVector mv_forward[4]; 949 IMPEG4VDEC_TI_MotionVector mv_forward[4];
898 IMPEG4VDEC_TI_MotionVector mv_backward[4]; 950 IMPEG4VDEC_TI_MotionVector mv_backward[4];
@@ -910,7 +962,7 @@ typedef struct _IMPEG4VDEC_TI_MvBidirectional4
910 * 962 *
911 * @param info : This elements gives details about the MB placement in the 963 * @param info : This elements gives details about the MB placement in the
912 * frame. 964 * frame.
913 * 965 *
914 * @param IQedDCY2: This field holds the Inverse Quantized DC for Y2 MB 966 * @param IQedDCY2: This field holds the Inverse Quantized DC for Y2 MB
915 * 967 *
916 * @param IQedDCY3: This field holds the Inverse Quantized DC for Y3 MB 968 * @param IQedDCY3: This field holds the Inverse Quantized DC for Y3 MB
@@ -923,22 +975,22 @@ typedef struct _IMPEG4VDEC_TI_MvBidirectional4
923 * 975 *
924 * @param zeroes1[3]: This field is set to 0 976 * @param zeroes1[3]: This field is set to 0
925 * 977 *
926 * @param DP_DC_Y0: If data partition = 1, this field contains DC coefficient 978 * @param DP_DC_Y0: If data partition = 1, this field contains DC coefficient
927 * values for Y0 MB 979 * values for Y0 MB
928 * 980 *
929 * @param DP_DC_Y1: If data partition = 1, this field contains DC coefficient 981 * @param DP_DC_Y1: If data partition = 1, this field contains DC coefficient
930 * values for Y1 MB 982 * values for Y1 MB
931 * 983 *
932 * @param DP_DC_Y2: If data partition = 1, this field contains DC coefficient 984 * @param DP_DC_Y2: If data partition = 1, this field contains DC coefficient
933 * values for Y2 MB 985 * values for Y2 MB
934 * 986 *
935 * @param DP_DC_Y3: If data partition = 1, this field contains DC coefficient 987 * @param DP_DC_Y3: If data partition = 1, this field contains DC coefficient
936 * values for Y3 MB 988 * values for Y3 MB
937 * 989 *
938 * @param DP_DC_Cb: If data partition = 1, this field contains DC coefficient 990 * @param DP_DC_Cb: If data partition = 1, this field contains DC coefficient
939 * values for Cb MB 991 * values for Cb MB
940 * 992 *
941 * @param DP_DC_Cr: If data partition = 1, this field contains DC coefficient 993 * @param DP_DC_Cr: If data partition = 1, this field contains DC coefficient
942 * values for Cr MB 994 * values for Cr MB
943 * 995 *
944 * @param Reserved: Reserved field 996 * @param Reserved: Reserved field
@@ -951,48 +1003,48 @@ typedef struct _IMPEG4VDEC_TI_MvBidirectional4
951 * 1003 *
952 * @param zeroes3[4]: This field is set to 0 1004 * @param zeroes3[4]: This field is set to 0
953 * 1005 *
954 * @param mv_forward_backward: Lists all Motion vectors at 4x4 level in L0 & 1006 * @param mv_forward_backward: Lists all Motion vectors at 4x4 level in L0 &
955 * L1 direction. First 4 MVs in L0 next 4 MVs in 1007 * L1 direction. First 4 MVs in L0 next 4 MVs in
956 * L1 direction. 1008 * L1 direction.
957 * 1009 *
958 * @param bidirectional4: Lists all Motion vectors at 8x8 level in both 1010 * @param bidirectional4: Lists all Motion vectors at 8x8 level in both
959 * directions 1011 * directions
960 ****************************************************************************** 1012 ******************************************************************************
961*/ 1013*/
962typedef struct _IMPEG4VDEC_TI_MbInfo 1014typedef struct _IMPEG4VDEC_TI_MbInfo
963{ 1015{
964 IMPEG4VDEC_TI_CommonInfo info; 1016 IMPEG4VDEC_TI_CommonInfo info;
965 1017
966 XDAS_Int16 IQedDCY2; 1018 XDAS_Int16 IQedDCY2;
967 XDAS_Int16 IQedDCY3; 1019 XDAS_Int16 IQedDCY3;
968 XDAS_Int16 IQedDCCb; 1020 XDAS_Int16 IQedDCCb;
969 XDAS_Int16 IQedDCCr; 1021 XDAS_Int16 IQedDCCr;
970 1022
971 XDAS_Int16 IQedDCY1; 1023 XDAS_Int16 IQedDCY1;
972 XDAS_Int16 zeroes1[3]; 1024 XDAS_Int16 zeroes1[3];
973 1025
974 XDAS_Int16 DP_DC_Y0; 1026 XDAS_Int16 DP_DC_Y0;
975 XDAS_Int16 DP_DC_Y1; 1027 XDAS_Int16 DP_DC_Y1;
976 XDAS_Int16 DP_DC_Y2; 1028 XDAS_Int16 DP_DC_Y2;
977 XDAS_Int16 DP_DC_Y3; 1029 XDAS_Int16 DP_DC_Y3;
978 1030
979 XDAS_Int16 DP_DC_Cb; 1031 XDAS_Int16 DP_DC_Cb;
980 XDAS_Int16 DP_DC_Cr; 1032 XDAS_Int16 DP_DC_Cr;
981 XDAS_Int32 Reserved; 1033 XDAS_Int32 Reserved;
982 1034
983 XDAS_Int32 zeroes2[2]; 1035 XDAS_Int32 zeroes2[2];
984 1036
985 IMPEG4VDEC_TI_CodecSpecificWordSix codecSpecificinfoWordSix; 1037 IMPEG4VDEC_TI_CodecSpecificWordSix codecSpecificinfoWordSix;
986 1038
987 IMPEG4VDEC_TI_CodecSpecificWordSeven codecSpecificinfoWordSeven; 1039 IMPEG4VDEC_TI_CodecSpecificWordSeven codecSpecificinfoWordSeven;
988 1040
989 XDAS_Int32 zeroes3[4]; 1041 XDAS_Int32 zeroes3[4];
990 1042
991 union { 1043 union {
992 IMPEG4VDEC_TI_MotionVector mv_forward_backward[8]; 1044 IMPEG4VDEC_TI_MotionVector mv_forward_backward[8];
993 IMPEG4VDEC_TI_MvBidirectional4 bidirectional4; 1045 IMPEG4VDEC_TI_MvBidirectional4 bidirectional4;
994 } IMPEG4VDEC_TI_motion_vecs; 1046 } IMPEG4VDEC_TI_motion_vecs;
995 1047
996 1048
997} IMPEG4VDEC_TI_MbInfo; 1049} IMPEG4VDEC_TI_MbInfo;
998 1050
@@ -1008,3 +1060,5 @@ typedef struct _IMPEG4VDEC_TI_MbInfo
1008 1060
1009 1061
1010 1062
1063
1064