diff options
author | Doney Alex <doney.alex@ittiam.com> | 2015-06-01 18:14:02 +0530 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2015-06-25 10:36:40 -0700 |
commit | 1ad56353aec03b0255d5cd5b67f9e6df780d9b65 (patch) | |
tree | db30f8486a228e63d364ddb72074166a8a00931b /media/libstagefright/codecs/avcenc/SoftAVCEnc.h | |
parent | defb2374a0e0adbd3714a2cd02be3c309cde4875 (diff) | |
download | frameworks_av-1ad56353aec03b0255d5cd5b67f9e6df780d9b65.zip frameworks_av-1ad56353aec03b0255d5cd5b67f9e6df780d9b65.tar.gz frameworks_av-1ad56353aec03b0255d5cd5b67f9e6df780d9b65.tar.bz2 |
SoftAVCEnc: Added support for Main Profile encoding.
Configured intra frame interval and deblock in setParams.
Change-Id: If501fa0ac42f2c4bf6604ea84715f7f13f707e74
Diffstat (limited to 'media/libstagefright/codecs/avcenc/SoftAVCEnc.h')
-rw-r--r-- | media/libstagefright/codecs/avcenc/SoftAVCEnc.h | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/media/libstagefright/codecs/avcenc/SoftAVCEnc.h b/media/libstagefright/codecs/avcenc/SoftAVCEnc.h index 2b35d45..4418a7f 100644 --- a/media/libstagefright/codecs/avcenc/SoftAVCEnc.h +++ b/media/libstagefright/codecs/avcenc/SoftAVCEnc.h @@ -17,7 +17,7 @@ #ifndef __SOFT_AVC_ENC_H__ #define __SOFT_AVC_ENC_H__ -#include <media/stagefright/MediaBuffer.h> + #include <media/stagefright/foundation/ABase.h> #include <utils/Vector.h> @@ -25,14 +25,14 @@ namespace android { -class MediaBuffer; - +#define MAX_INPUT_BUFFER_HEADERS 4 +#define MAX_CONVERSION_BUFFERS 4 #define CODEC_MAX_CORES 4 #define LEN_STATUS_BUFFER (10 * 1024) #define MAX_VBV_BUFF_SIZE (120 * 16384) #define MAX_NUM_IO_BUFS 3 -#define DEFAULT_MAX_REF_FRM 1 +#define DEFAULT_MAX_REF_FRM 2 #define DEFAULT_MAX_REORDER_FRM 0 #define DEFAULT_QP_MIN 10 #define DEFAULT_QP_MAX 40 @@ -57,7 +57,7 @@ class MediaBuffer; #define DEFAULT_TGT_FRAME_RATE 30 #define DEFAULT_MAX_WD 1920 #define DEFAULT_MAX_HT 1920 -#define DEFAULT_MAX_LEVEL 40 +#define DEFAULT_MAX_LEVEL 41 #define DEFAULT_STRIDE 0 #define DEFAULT_WD 1280 #define DEFAULT_HT 720 @@ -88,6 +88,7 @@ class MediaBuffer; #define DEFAULT_QPEL 1 #define DEFAULT_I4 1 #define DEFAULT_EPROFILE IV_PROFILE_BASE +#define DEFAULT_ENTROPY_MODE 0 #define DEFAULT_SLICE_MODE IVE_SLICE_MODE_NONE #define DEFAULT_SLICE_PARAM 256 #define DEFAULT_ARCH ARCH_ARM_A9Q @@ -149,8 +150,6 @@ private: int32_t mStride; - uint32_t mFrameRate; - struct timeval mTimeStart; // Time at the start of decode() struct timeval mTimeEnd; // Time at the end of decode() @@ -167,32 +166,32 @@ private: IV_COLOR_FORMAT_T mIvVideoColorFormat; - int32_t mIDRFrameRefreshIntervalInSec; IV_PROFILE_T mAVCEncProfile; WORD32 mAVCEncLevel; - int64_t mNumInputFrames; - int64_t mPrevTimestampUs; bool mStarted; bool mSpsPpsHeaderReceived; bool mSawInputEOS; + bool mSawOutputEOS; bool mSignalledError; bool mIntra4x4; bool mEnableFastSad; bool mEnableAltRef; - bool mReconEnable; - bool mPSNREnable; + bool mReconEnable; + bool mPSNREnable; + bool mEntropyMode; IVE_SPEED_CONFIG mEncSpeed; - uint8_t *mConversionBuffer; - + uint8_t *mConversionBuffers[MAX_CONVERSION_BUFFERS]; + bool mConversionBuffersFree[MAX_CONVERSION_BUFFERS]; + BufferInfo *mInputBufferInfo[MAX_INPUT_BUFFER_HEADERS]; iv_obj_t *mCodecCtx; // Codec context iv_mem_rec_t *mMemRecords; // Memory records requested by the codec size_t mNumMemRecords; // Number of memory records requested by codec size_t mNumCores; // Number of cores used by the codec UWORD32 mHeaderGenerated; - + UWORD32 mBframes; IV_ARCH_T mArch; IVE_SLICE_MODE_T mSliceMode; UWORD32 mSliceParam; @@ -203,7 +202,7 @@ private: IVE_AIR_MODE_T mAIRMode; UWORD32 mAIRRefreshPeriod; - OMX_ERRORTYPE initEncParams(); + void initEncParams(); OMX_ERRORTYPE initEncoder(); OMX_ERRORTYPE releaseEncoder(); @@ -292,6 +291,8 @@ private: fclose(fp); \ } else { \ ALOGD("Could not write to file %s", m_filename);\ + if (fp != NULL) \ + fclose(fp); \ } \ } #else /* FILE_DUMP_ENABLE */ |