diff options
author | Amarinder Bindra | 2013-05-30 06:31:34 -0500 |
---|---|---|
committer | Amarinder Bindra | 2013-05-30 01:30:20 -0500 |
commit | 41fabb773428c0241063257083f9a4fab0ab6334 (patch) | |
tree | 7a236ca61c157cdac68a3af7b48381a1f247c849 | |
parent | 9d618ff958b5599a75d17de9bc4545aad71a2a29 (diff) | |
download | dce-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.h | 130 |
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 | ||
224 | extern IMPEG4VDEC_Params IMPEG4VDEC_PARAMS; | 230 | extern 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 | */ | ||
803 | typedef 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 | */ |
791 | typedef struct _IMPEG4VDEC_TI_CommonInfo | 843 | typedef 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 | */ |
819 | typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSix | 871 | typedef 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 | */ |
859 | typedef struct _IMPEG4VDEC_TI_CodecSpecificWordSeven | 911 | typedef 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 | */ |
880 | typedef struct _IMPEG4VDEC_TI_MotionVector | 932 | typedef 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 | */ |
895 | typedef struct _IMPEG4VDEC_TI_MvBidirectional4 | 947 | typedef 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 | */ |
962 | typedef struct _IMPEG4VDEC_TI_MbInfo | 1014 | typedef 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 | |||