aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/OMXVideoEncoderAVC.cpp
diff options
context:
space:
mode:
authorZhao Liang <leo.zhao@intel.com>2013-11-26 17:39:35 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:56 -0700
commitf4b681dd65a754a7bb8551a1c9088bfaa6c3ef46 (patch)
tree4c072686adc5725e8247dff2ffb47f7daa2a4e67 /videocodec/OMXVideoEncoderAVC.cpp
parent6333d6c9db604ad320f2c1d4baa7a51eb4883a78 (diff)
downloadandroid_hardware_intel_common_omx-components-f4b681dd65a754a7bb8551a1c9088bfaa6c3ef46.tar.gz
android_hardware_intel_common_omx-components-f4b681dd65a754a7bb8551a1c9088bfaa6c3ef46.tar.bz2
android_hardware_intel_common_omx-components-f4b681dd65a754a7bb8551a1c9088bfaa6c3ef46.zip
Remove opaque Source Type detecting logic
BZ: 156038 start code prefix NALU format is always default format Change-Id: Ib2e937f3c7fdc9349bcf7f7109b934565486228b Signed-off-by: Zhao Liang <leo.zhao@intel.com>
Diffstat (limited to 'videocodec/OMXVideoEncoderAVC.cpp')
-rwxr-xr-xvideocodec/OMXVideoEncoderAVC.cpp40
1 files changed, 8 insertions, 32 deletions
diff --git a/videocodec/OMXVideoEncoderAVC.cpp b/videocodec/OMXVideoEncoderAVC.cpp
index 91b68e4..5cf19e7 100755
--- a/videocodec/OMXVideoEncoderAVC.cpp
+++ b/videocodec/OMXVideoEncoderAVC.cpp
@@ -113,7 +113,6 @@ OMXVideoEncoderAVC::OMXVideoEncoderAVC() {
}
}
- mSourceType = IntelMetadataBufferTypeCameraSource;
}
OMXVideoEncoderAVC::~OMXVideoEncoderAVC() {
@@ -294,24 +293,6 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessorPreEmptyBuffer(OMX_BUFFERHEADERTYPE*
bool BFrameEnabled = IpPeriod > 1;
uint32_t GOP = 0;
- //extract SourceType from first frame in MetadataMode
- if (mStoreMetaDataInBuffers && (mInputPictureCount == 0)) {
- uint8_t* bytes = buffer->pBuffer + buffer->nOffset;
- uint32_t size = buffer->nFilledLen;
-
- IntelMetadataBuffer* buf = NULL;
- if ((buf = new IntelMetadataBuffer()) == NULL)
- return OMX_ErrorUndefined;
-
- if (buf->UnSerialize(bytes, size) == IMB_SUCCESS) {
- buf->GetType(mSourceType);
- delete buf;
- }else{
- delete buf;
- return OMX_ErrorUndefined;
- }
- }
-
if (idrPeriod == 0 || IntraPeriod == 0) {
GOP = 0xFFFFFFFF;
if (IntraPeriod == 0)
@@ -425,25 +406,18 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessDataRetrieve(
// NaluFormat not set, setting default
if (NaluFormat == 0) {
- if (mStoreMetaDataInBuffers) {
- if(mSourceType == IntelMetadataBufferTypeCameraSource)
- NaluFormat = (OMX_NALUFORMATSTYPE)OMX_NaluFormatLengthPrefixedSeparateFirstHeader;
- else
- NaluFormat = (OMX_NALUFORMATSTYPE)OMX_NaluFormatStartCodesSeparateFirstHeader;
-
- } else {
- NaluFormat = (OMX_NALUFORMATSTYPE)OMX_NaluFormatStartCodesSeparateFirstHeader;
- }
+ NaluFormat = (OMX_NALUFORMATSTYPE)OMX_NaluFormatStartCodesSeparateFirstHeader;
mNalStreamFormat.eNaluFormat = NaluFormat;
}
VideoEncOutputBuffer outBuf;
- outBuf.data = buffers[OUTPORT_INDEX]->pBuffer + buffers[OUTPORT_INDEX]->nOffset;
- outBuf.bufferSize = buffers[OUTPORT_INDEX]->nAllocLen - buffers[OUTPORT_INDEX]->nOffset;
+ outBuf.data = buffers[OUTPORT_INDEX]->pBuffer;
+ outBuf.bufferSize = buffers[OUTPORT_INDEX]->nAllocLen;
outBuf.dataSize = 0;
outBuf.remainingSize = 0;
outBuf.flag = 0;
outBuf.timeStamp = 0;
+ outBuf.offset = 0;
switch (NaluFormat) {
case OMX_NaluFormatStartCodes:
@@ -461,7 +435,7 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessDataRetrieve(
outBuf.format = OUTPUT_CODEC_DATA;
} else {
if (NaluFormat == OMX_NaluFormatStartCodesSeparateFirstHeader)
- outBuf.format = OUTPUT_EVERYTHING;
+ outBuf.format = OUTPUT_NALULENGTHS_PREFIXED;
else
outBuf.format = OUTPUT_LENGTH_PREFIXED;
}
@@ -485,6 +459,7 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessDataRetrieve(
LOGV("libMIX getOutput data size= %d, flag=0x%08x", outBuf.dataSize, outBuf.flag);
OMX_U32 outfilledlen = outBuf.dataSize;
+ OMX_U32 outoffset = outBuf.offset;
OMX_S64 outtimestamp = outBuf.timeStamp;
OMX_U32 outflags = 0;
@@ -506,7 +481,7 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessDataRetrieve(
outflags |= OMX_BUFFERFLAG_ENDOFFRAME;
if ((NaluFormat == OMX_NaluFormatStartCodesSeparateFirstHeader
- || NaluFormat == OMX_NaluFormatLengthPrefixedSeparateFirstHeader ) && mFirstFrame ) {
+ || NaluFormat == OMX_NaluFormatLengthPrefixedSeparateFirstHeader) && mFirstFrame ) {
// This input buffer need to be gotten again
retains[INPORT_INDEX] = BUFFER_RETAIN_GETAGAIN;
mFirstFrame = OMX_FALSE;
@@ -529,6 +504,7 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessDataRetrieve(
if (outfilledlen > 0) {
retains[OUTPORT_INDEX] = BUFFER_RETAIN_NOT_RETAIN;
+ buffers[OUTPORT_INDEX]->nOffset = outoffset;
buffers[OUTPORT_INDEX]->nFilledLen = outfilledlen;
buffers[OUTPORT_INDEX]->nTimeStamp = outtimestamp;
buffers[OUTPORT_INDEX]->nFlags = outflags;