Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 411da854 authored by Chih-Wei Huang's avatar Chih-Wei Huang Committed by Steve Kondik
Browse files

Add OMX_AUDIO_CodingAPE and OMX_AUDIO_CodingDTS

Copied from the stagefright-plugins project.

add HEVC decoder and cleanup

Change-Id: I16342228014320161a22302a3c14df7725556cd2
parent a23598d3
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
@@ -130,6 +130,11 @@ typedef enum OMX_AUDIO_CODINGTYPE {
#endif // DOLBY_END
    OMX_AUDIO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
    OMX_AUDIO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_AUDIO_CodingMP2,         /**< Any variant of MP2 encoded data */
    OMX_AUDIO_CodingAC3,         /**< Any variant of AC3 encoded data */
    OMX_AUDIO_CodingAPE,         /**< Any variant of APE encoded data */
    OMX_AUDIO_CodingDTS,         /**< Any variant of DTS encoded data */
    OMX_AUDIO_CodingFFMPEG,      /**< Any variant of FFMPEG encoded data */
    OMX_AUDIO_CodingMax = 0x7FFFFFFF
} OMX_AUDIO_CODINGTYPE;

@@ -376,6 +381,81 @@ typedef struct OMX_AUDIO_PARAM_FLACTYPE {
} OMX_AUDIO_PARAM_FLACTYPE;


/** MP2 params */
typedef struct OMX_AUDIO_PARAM_MP2TYPE {
    OMX_U32 nSize;                 /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
    OMX_U32 nPortIndex;            /**< port that this structure applies to */
    OMX_U32 nChannels;             /**< Number of channels */
    OMX_U32 nBitRate;              /**< Bit rate of the input data.  Use 0 for variable
                                        rate or unknown bit rates */
    OMX_U32 nSampleRate;           /**< Sampling rate of the source data.  Use 0 for
                                        variable or unknown sampling rate. */
    OMX_AUDIO_CHANNELMODETYPE eChannelMode;   /**< Channel mode enumeration */
    OMX_AUDIO_MP3STREAMFORMATTYPE eFormat;  /**< MP3 stream format */
} OMX_AUDIO_PARAM_MP2TYPE;


/** AC3 params */
typedef struct OMX_AUDIO_PARAM_AC3TYPE {
    OMX_U32 nSize;                 /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
    OMX_U32 nPortIndex;            /**< port that this structure applies to */
    OMX_U32 nChannels;             /**< Number of channels */
    OMX_U32 nBitRate;              /**< Bit rate of the input data.  Use 0 for variable
                                        rate or unknown bit rates */
    OMX_U32 nSamplingRate;         /**< Sampling rate of the source data.  Use 0 for
                                        variable or unknown sampling rate. */
    OMX_AUDIO_CHANNELMODETYPE eChannelMode;   /**< Channel mode enumeration */
} OMX_AUDIO_PARAM_AC3TYPE;


/** APE params */
typedef struct OMX_AUDIO_PARAM_APETYPE {
    OMX_U32 nSize;                /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;     /**< OMX specification version information */
    OMX_U32 nPortIndex;           /**< port that this structure applies to */
    OMX_U32 nChannels;            /**< Number of channels */
    OMX_U32 nBitRate;             /**< Bit rate of the input data.  Use 0 for variable
                                       rate or unknown bit rates */
    OMX_U32 nSamplingRate;        /**< Sampling rate of the source data.  Use 0 for
                                       variable or unknown sampling rate. */
    OMX_U32 nBitsPerSample;       /**< Number of bits in each sample */
    OMX_AUDIO_CHANNELMODETYPE eChannelMode;   /**< Channel mode enumeration */
} OMX_AUDIO_PARAM_APETYPE;


/** DTS params */
typedef struct OMX_AUDIO_PARAM_DTSTYPE {
    OMX_U32 nSize;                 /**< size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
    OMX_U32 nPortIndex;            /**< port that this structure applies to */
    OMX_U32 nChannels;             /**< Number of channels */
    OMX_U32 nBitRate;              /**< Bit rate of the input data.  Use 0 for variable
                                        rate or unknown bit rates */
    OMX_U32 nSamplingRate;         /**< Sampling rate of the source data.  Use 0 for
                                        variable or unknown sampling rate. */
    OMX_AUDIO_CHANNELMODETYPE eChannelMode;   /**< Channel mode enumeration */
} OMX_AUDIO_PARAM_DTSTYPE;

/** FFMPEG Audio params */
typedef struct OMX_AUDIO_PARAM_FFMPEGTYPE {
    OMX_U32 nSize;
    OMX_VERSIONTYPE nVersion;
    OMX_U32 nPortIndex;

    OMX_S32 eCodecId;              /**< enum AVCodecID */
    OMX_U32 nChannels;             /**< Number of channels */
    OMX_U32 nBitRate;              /**< Bit rate of the input data.  Use 0 for variable
                                        rate or unknown bit rates */
    OMX_U32 nBitsPerSample;        /**< Number of bits in each sample */
    OMX_U32 nSampleRate;           /**< Sampling rate of the source data.  Use 0 for
                                        variable or unknown sampling rate. */
    OMX_U32 nBlockAlign;           /**< is the block alignment, or block size, in bytes of the audio codec */

    OMX_S32 eSampleFormat;         /**< enum AVSampleFormat */
} OMX_AUDIO_PARAM_FFMPEGTYPE;

/** WMA Version */
typedef enum OMX_AUDIO_WMAFORMATTYPE {
  OMX_AUDIO_WMAFormatUnused = 0, /**< format unused or unknown */
+6 −0
Original line number Diff line number Diff line
@@ -261,6 +261,12 @@ typedef enum OMX_INDEXTYPE {
       to 0x7FFFFFFE.  This range is not broken out by vendor, so
       private indexes are not guaranteed unique and therefore should
       only be sent to the appropriate component. */
    OMX_IndexParamAudioMp2,                 /**< reference: OMX_AUDIO_PARAM_MP2TYPE */
    OMX_IndexParamAudioAc3,                 /**< reference: OMX_AUDIO_PARAM_AC3TYPE */
    OMX_IndexParamAudioApe,                 /**< reference: OMX_AUDIO_PARAM_APETYPE */
    OMX_IndexParamAudioDts,                 /**< reference: OMX_AUDIO_PARAM_DTSTYPE */
    OMX_IndexParamVideoFFmpeg,              /**< reference: OMX_VIDEO_PARAM_FFMPEGTYPE */
    OMX_IndexParamAudioFFmpeg,              /**< reference: OMX_AUDIO_PARAM_FFMPEGTYPE */

    OMX_IndexMax = 0x7FFFFFFF

+17 −0
Original line number Diff line number Diff line
@@ -90,6 +90,10 @@ typedef enum OMX_VIDEO_CODINGTYPE {
    OMX_VIDEO_CodingHEVC,       /**< ITU H.265/HEVC */
    OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
    OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
    OMX_VIDEO_CodingVC1,        /**< VC1 */
    OMX_VIDEO_CodingFLV1,       /**< Sorenson's H.263 */
    OMX_VIDEO_CodingDIVX,       /**< DIVX */
    OMX_VIDEO_CodingFFMPEG,     /**< FFMPEG */
    OMX_VIDEO_CodingMax = 0x7FFFFFFF
} OMX_VIDEO_CODINGTYPE;

@@ -1070,6 +1074,19 @@ typedef struct OMX_VIDEO_CONFIG_NALSIZE {
    OMX_U32 nNaluBytes;
} OMX_VIDEO_CONFIG_NALSIZE;

/**
 * FFMPEG Video Params
 */
typedef struct OMX_VIDEO_PARAM_FFMPEGTYPE {
    OMX_U32 nSize;
    OMX_VERSIONTYPE nVersion;
    OMX_U32 nPortIndex;

    OMX_S32 eCodecId;              /**< enum AVCodecID */
    OMX_U32 nWidth;
    OMX_U32 nHeight;
} OMX_VIDEO_PARAM_FFMPEGTYPE;

/** @} */

#ifdef __cplusplus