}
result
-_AacEncoder::Encode(const byte* srcBuf, int& srcBufLength, byte*& dstBuf, int& dstBufLength)
+_AacEncoder::Encode(const byte* srcBuf, int srcBufSize, int &srcBufUsed, byte* dstBuf, int dstBufSize, int &dstBufUsed)
{
result r = E_SUCCESS;
int res = 0;
SysTryCatch(NID_MEDIA, srcBuf != null && dstBuf != null, r = E_INVALID_ARG, E_INVALID_ARG,
"[%s] Invalid argument is used: 0x%x %d %d 0x%x %d %d",
- GetErrorMessage(E_INVALID_ARG), srcBuf, srcBufLength, minSrcBufLength, dstBuf, dstBufLength, minDstBufLength);
+ GetErrorMessage(E_INVALID_ARG), srcBuf, srcBufSize, minSrcBufLength, dstBuf, dstBufSize, minDstBufLength);
//Partial frame encoding is supported hence no need of checking sourcebuf length.
- SysTryCatch(NID_MEDIA, dstBufLength >= minDstBufLength,
+ SysTryCatch(NID_MEDIA, dstBufSize >= minDstBufLength,
r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY,
"[%s] Destination Buffer Length is less than FF_MIN_BUFFER_SIZE: 0x%x %d %d 0x%x %d %d",
- GetErrorMessage(E_OUT_OF_MEMORY), srcBuf, srcBufLength, minSrcBufLength, dstBuf, dstBufLength, minDstBufLength);
+ GetErrorMessage(E_OUT_OF_MEMORY), srcBuf, srcBufSize, minSrcBufLength, dstBuf, dstBufSize, minDstBufLength);
//Only AV_SAMPLE_FMT_FLT is supported by FFMpeg AAC Encoder hence Sample Format Conversion from S16 to Float
if (__pCodecCtx->sample_fmt == AV_SAMPLE_FMT_FLT)
memset(__pInputBuf,0,__pCodecCtx->frame_size * __pCodecCtx->channels * FLT_SAMPLE_SIZE);
- if(srcBufLength >= minSrcBufLength)
+ if(srcBufSize >= minSrcBufLength)
{
samples = audio_resample (__pResampleContext, (short *) __pInputBuf, (short *)srcBuf, __pCodecCtx->frame_size);
}
else
{
- int sampleCount = srcBufLength/(__pCodecCtx->channels * S16_SAMPLE_SIZE);
+ int sampleCount = srcBufSize/(__pCodecCtx->channels * S16_SAMPLE_SIZE);
samples = audio_resample (__pResampleContext, (short *) __pInputBuf, (short *)srcBuf,sampleCount);
}
if(gotOutput)
{
memcpy(dstBuf,outPacket.data,outPacket.size);
- dstBufLength = outPacket.size;
+ dstBufUsed = outPacket.size;
av_free_packet(&outPacket);
}
else
{
- dstBufLength = 0;
+ dstBufUsed = 0;
}
}
- srcBufLength = minSrcBufLength; //Input bytes used
+ srcBufUsed = minSrcBufLength; //Input bytes used
return r;
CATCH:
public:
virtual result Construct(const Tizen::Base::Collection::HashMap* pOption = null);
- virtual result Encode(const byte* srcBuf, int& srcBufLength, byte*& dstBuf, int& dstBufLength);
+ virtual result Encode(const byte* srcBuf, int srcBufSize, int& secBufUsed, byte* dstBuf, int dstBufSize, int &dstBufUsed);
virtual result Reset(void);
}
result
-_AmrEncoder::Encode(const byte* srcBuf, int& srcBufLength, byte*& dstBuf, int& dstBufLength)
+_AmrEncoder::Encode(const byte* srcBuf, int srcBufSize, int &srcBufUsed, byte* dstBuf, int dstBufSize, int &dstBufUsed)
{
result r = E_SUCCESS;
int res = 0;
//Partial frame encoding is supported by the open core amr_nb library . So no need of checking sourcebuf length.
SysTryCatch(NID_MEDIA, srcBuf != null && dstBuf != null
- && srcBufLength > 0 && dstBufLength > 0,
+ && srcBufSize > 0 && dstBufSize > 0,
r = E_INVALID_ARG, E_INVALID_ARG,
"[E_INVALID_ARG] Invalid argument is used. 0x%x %d 0x%x %d",
- srcBuf, srcBufLength, dstBuf, dstBufLength);
+ srcBuf, srcBufSize, dstBuf, dstBufSize);
// Encoding the Audio packet using the amr open core
// Accomodating for destinationBuf less than encoded frame size.
- if (dstBufLength >= DECODED_FRAME_SIZE )
+ if (dstBufSize >= DECODED_FRAME_SIZE )
{
res = Encoder_Interface_Encode(__pEnc, __encBitrate, (const short*)srcBuf, dstBuf, 0);
}
SysTryCatch(NID_MEDIA, res > 0, r = E_SYSTEM, E_SYSTEM,
"[%s] Amr Encoding Failed:%d", GetErrorMessage(E_SYSTEM), res);
- SysTryCatch(NID_MEDIA, res <= dstBufLength, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY,
- "[%s] Amr Encoding Failed %d %d", GetErrorMessage(E_OUT_OF_MEMORY), res, dstBufLength);
+ SysTryCatch(NID_MEDIA, res <= dstBufSize, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY,
+ "[%s] Amr Encoding Failed %d %d", GetErrorMessage(E_OUT_OF_MEMORY), res, dstBufSize);
- if (dstBufLength < DECODED_FRAME_SIZE )
+ if (dstBufSize < DECODED_FRAME_SIZE )
{
memcpy(dstBuf, outBuf, res);
}
- srcBufLength = DECODED_FRAME_SIZE;
- dstBufLength = res;
+ srcBufUsed = DECODED_FRAME_SIZE;
+ dstBufUsed = res;
return r;
CATCH:
public:
virtual result Construct(const Tizen::Base::Collection::HashMap* pOption = null);
- virtual result Encode(const byte* srcBuf, int& srcBufLength, byte*& dstBuf, int& dstBufLength);
+ virtual result Encode(const byte* srcBuf, int srcBufSize, int &srcBufUsed, byte* dstBuf, int dstBufSize, int &dstBufUsed);
virtual result Reset(void);
byte* pDstByte = null;
int srcByteSize = 0;
int dstByteSize = 0;
+ int srcByteUsed = 0;
+ int dstByteUsed = 0;
int offset = 0;
SysTryReturnResult(NID_MEDIA, __pEnc, E_INVALID_STATE, "not constructed");
SysTryCatch(NID_MEDIA, srcByteSize > 0 && dstByteSize > 0, r = E_INVALID_ARG, E_INVALID_ARG,
"[%s] Invalid argument is used. srcSize:%d dstSize:%d", GetErrorMessage(E_INVALID_ARG), srcByteSize, dstByteSize);\r
- r = __pEnc->Encode(pSrcByte, srcByteSize, pDstByte, dstByteSize);
+ r = __pEnc->Encode(pSrcByte, srcByteSize, srcByteUsed, pDstByte, dstByteSize, dstByteUsed);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Audio Encoder encode failed", GetErrorMessage(r));\r
offset = srcBuf.GetPosition();
- if (offset + srcByteSize > srcBuf.GetLimit())
+
+ if (offset + srcByteUsed > srcBuf.GetLimit())
{
srcBuf.SetPosition(srcBuf.GetLimit());
}
else
{
- srcBuf.SetPosition(offset + srcByteSize);
+ srcBuf.SetPosition(offset + srcByteUsed);
}
offset = dstBuf.GetPosition();
- if (offset + dstByteSize > dstBuf.GetLimit())
+ if (offset + dstByteUsed > dstBuf.GetLimit())
{
dstBuf.SetPosition(dstBuf.GetLimit());
}
else
{
- dstBuf.SetPosition(offset + dstByteSize);
+ dstBuf.SetPosition(offset + dstByteUsed);
}
return r;
_AudioEncoderImpl::Encode(const byte* srcBuf, int& srcBufLength, byte*& dstBuf, int& dstBufLength)
{
result r = E_SUCCESS;
+ int srcBufUsed = 0;
+ int dstBufUsed = 0;
SysTryReturnResult(NID_MEDIA, __pEnc, E_INVALID_STATE, "not constructed");
- r = __pEnc->Encode(srcBuf, srcBufLength, dstBuf, dstBufLength);
+ r = __pEnc->Encode(srcBuf, srcBufLength, srcBufUsed, dstBuf, dstBufLength, dstBufUsed);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Audio Encoder encode failed", GetErrorMessage(r));\r
return r;
public:
virtual result Construct(const Tizen::Base::Collection::HashMap* pOption = null) = 0;
- virtual result Encode(const byte* srcBuf, int& srcBufLength, byte*& dstBuf, int& dstBufLength) = 0;
+ virtual result Encode(const byte* pSrcBuf, int srcBufSize, int &srcBufUsed, byte* pDstBuf, int dstBufSize, int &dstBufUsed) = 0;
virtual result Reset(void) = 0;
};