Many media files and source code files were marked as executable in Git. Remove those. Also a shell script and python script were not marked as executable. Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
351 lines
18 KiB
C++
351 lines
18 KiB
C++
/*
|
|
* Copyright (C) 2011 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include <VideoEditorJava.h>
|
|
#include <VideoEditorLogging.h>
|
|
#include <VideoEditorOsal.h>
|
|
|
|
extern "C" {
|
|
#include <M4OSA_Clock.h>
|
|
#include <M4OSA_CharStar.h>
|
|
#include <M4OSA_FileCommon.h>
|
|
#include <M4OSA_FileReader.h>
|
|
#include <M4OSA_FileWriter.h>
|
|
#include <M4OSA_Memory.h>
|
|
#include <M4OSA_Thread.h>
|
|
#include <M4xVSS_API.h>
|
|
#include <M4VSS3GPP_ErrorCodes.h>
|
|
#include <M4MCS_ErrorCodes.h>
|
|
#include <M4READER_Common.h>
|
|
#include <M4WRITER_common.h>
|
|
#include <M4VSS3GPP_API.h>
|
|
#include <M4DECODER_Common.h>
|
|
};
|
|
|
|
|
|
#define VIDEOEDIT_OSAL_RESULT_STRING_MAX (32)
|
|
|
|
#define VIDEOEDIT_OSAL_RESULT_INIT(m_result) { m_result, #m_result }
|
|
|
|
|
|
typedef struct
|
|
{
|
|
M4OSA_ERR result;
|
|
const char* pName;
|
|
} VideoEdit_Osal_Result;
|
|
|
|
static const VideoEdit_Osal_Result gkRESULTS[] =
|
|
{
|
|
// M4OSA_Clock.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_TIMESCALE_TOO_BIG ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_CLOCK_BAD_REF_YEAR ),
|
|
|
|
// M4OSA_Error.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4NO_ERROR ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_PARAMETER ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_STATE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_ALLOC ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_BAD_CONTEXT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_CONTEXT_FAILED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_BAD_STREAM_ID ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_BAD_OPTION_ID ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_WRITE_ONLY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_READ_ONLY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_NOT_IMPLEMENTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_UNSUPPORTED_MEDIA_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_NO_DATA_YET ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_NO_MORE_STREAM ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_INVALID_TIME ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_NO_MORE_AU ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_TIME_OUT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_BUFFER_FULL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_REDIRECT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_TOO_MUCH_STREAMS ),
|
|
|
|
// M4OSA_FileCommon.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_NOT_FOUND ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_LOCKED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_BAD_MODE_ACCESS ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_INVALID_POSITION ),
|
|
|
|
// M4OSA_Thread.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_THREAD_NOT_STARTED ),
|
|
|
|
// M4xVSS_API.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_ANALYZING_DONE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_PREVIEW_READY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_SAVING_DONE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_TRANSCODING_NECESSARY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_OUTPUTFILESIZE_EXCEED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_JPG_TOO_BIG ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4xVSSWAR_BUFFER_OUT_TOO_SMALL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4xVSSERR_NO_MORE_SPACE ),
|
|
|
|
// M4VSS3GPP_ErrorCodes.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_FILE_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_EFFECT_KIND ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_VIDEO_EFFECT_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_AUDIO_EFFECT_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_VIDEO_TRANSITION_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_AUDIO_TRANSITION_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_VIDEO_ENCODING_FRAME_RATE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EXTERNAL_EFFECT_NULL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EXTERNAL_TRANSITION_NULL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_BEGIN_CUT_LARGER_THAN_DURATION ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_BEGIN_CUT_LARGER_THAN_END_CUT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_OVERLAPPING_TRANSITIONS ),
|
|
#ifdef M4VSS3GPP_ERR_ANALYSIS_DATA_SIZE_TOO_SMALL
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ANALYSIS_DATA_SIZE_TOO_SMALL ),
|
|
#endif
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_3GPP_FILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_INPUT_AUDIO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AMR_EDITING_UNSUPPORTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_VIDEO_AU_TOO_LARGE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_AUDIO_AU_TOO_LARGE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AU ),
|
|
#ifdef M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AMR_AU
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AMR_AU ),
|
|
#endif
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ENCODER_ACCES_UNIT_ERROR ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_VIDEO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_H263_PROFILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_PROFILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_RVLC ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_AUDIO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_STREAM_IN_FILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_VIDEO_STREAM_IN_FILE),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION ),
|
|
#ifdef M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM ),
|
|
#endif
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FRAME_SIZE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_TIME_SCALE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_DATA_PARTITIONING ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_MP3_ASSEMBLY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_INCOMPATIBLE_AUDIO_STREAM_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_INCOMPATIBLE_AUDIO_NB_OF_CHANNELS ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_INCOMPATIBLE_AUDIO_SAMPLING_FREQUENCY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_NO_SUPPORTED_STREAM_IN_FILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ADDVOLUME_EQUALS_ZERO ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ADDCTS_HIGHER_THAN_VIDEO_DURATION ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNDEFINED_AUDIO_TRACK_FILE_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_ADDED_AUDIO_STREAM ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_MIXING_UNSUPPORTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AUDIO_TRACK ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_CANNOT_BE_MIXED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_CLIP_IS_NOT_A_3GPP ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_BEGINLOOP_HIGHER_ENDLOOP ),
|
|
#ifdef M4VSS3GPP_ERR_AUDIO_MIXING_MP3_UNSUPPORTED
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_MIXING_MP3_UNSUPPORTED ),
|
|
#endif
|
|
#ifdef M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AAC
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AAC ),
|
|
#endif
|
|
#ifdef M4VSS3GPP_ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED ),
|
|
#endif
|
|
#ifdef M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_EVRC
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_EVRC ),
|
|
#endif
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_H263_PROFILE_NOT_SUPPORTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_NO_SUPPORTED_VIDEO_STREAM_IN_FILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INTERNAL_STATE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_LUMA_FILTER_ERROR ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_TRANSITION_FILTER_ERROR ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_DECODER_INIT_FAILED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_DECODED_PCM_SIZE_ISSUE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_OUTPUT_FILE_TYPE_ERROR ),
|
|
|
|
// M4MCS_ErrorCodes.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_WAR_TRANSCODING_DONE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_WAR_MEDIATYPE_NOT_SUPPORTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INPUT_FILE_CONTAINS_NO_SUPPORTED_STREAM ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_INPUT_FILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FRAME_SIZE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FRAME_RATE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_AUDIO_FORMAT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_VIDEO_FRAME_SIZE_FOR_H263 ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_VIDEO_FRAME_RATE_FOR_H263 ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_DURATION_IS_NULL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_H263_FORBIDDEN_IN_MP4_FILE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_H263_PROFILE_NOT_SUPPORTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_AAC_SAMPLING_FREQUENCY ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_AUDIO_CONVERSION_FAILED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_BEGIN_CUT_LARGER_THAN_DURATION ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_BEGIN_CUT_EQUALS_END_CUT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_END_CUT_SMALLER_THAN_BEGIN_CUT ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_MAXFILESIZE_TOO_SMALL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_VIDEOBITRATE_TOO_LOW ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_AUDIOBITRATE_TOO_LOW ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_VIDEOBITRATE_TOO_HIGH ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_AUDIOBITRATE_TOO_HIGH ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_OUTPUT_FILE_SIZE_TOO_SMALL ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_NOMORE_SPACE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_FILE_DRM_PROTECTED ),
|
|
|
|
// M4READER_Common.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_READER_UNKNOWN_STREAM_TYPE ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_READER_NO_METADATA ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_READER_INFORMATION_NOT_PRESENT ),
|
|
|
|
// M4WRITER_Common.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_WRITER_STOP_REQ ),
|
|
// M4DECODER_Common.h
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_VIDEORENDERER_NO_NEW_FRAME ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_DEBLOCKING_FILTER_NOT_IMPLEMENTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_DECODER_H263_PROFILE_NOT_SUPPORTED ),
|
|
VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_DECODER_H263_NOT_BASELINE )
|
|
};
|
|
|
|
static const int gkRESULTS_COUNT = (sizeof(gkRESULTS) / sizeof(VideoEdit_Osal_Result));
|
|
|
|
#ifdef OSAL_MEM_LEAK_DEBUG
|
|
static int gAllocatedBlockCount = 0;
|
|
#endif
|
|
|
|
const char*
|
|
videoEditOsal_getResultString(
|
|
M4OSA_ERR result)
|
|
{
|
|
static char string[VIDEOEDIT_OSAL_RESULT_STRING_MAX] = "";
|
|
const char* pString = M4OSA_NULL;
|
|
int index = 0;
|
|
|
|
// Loop over the list with constants.
|
|
for (index = 0;
|
|
((M4OSA_NULL == pString) && (index < gkRESULTS_COUNT));
|
|
index++)
|
|
{
|
|
// Check if the specified result matches.
|
|
if (result == gkRESULTS[index].result)
|
|
{
|
|
// Set the description.
|
|
pString = gkRESULTS[index].pName;
|
|
}
|
|
}
|
|
|
|
// Check if no result was found.
|
|
if (M4OSA_NULL == pString)
|
|
{
|
|
// Set the description to a default value.
|
|
M4OSA_chrSPrintf((M4OSA_Char *)string, sizeof(string) - 1,
|
|
(M4OSA_Char*)"<unknown(0x%08X)>", result);
|
|
pString = string;
|
|
}
|
|
|
|
// Return the result.
|
|
return(pString);
|
|
}
|
|
|
|
void *
|
|
videoEditOsal_alloc(
|
|
bool* pResult,
|
|
JNIEnv* pEnv,
|
|
size_t size,
|
|
const char* pDescription)
|
|
{
|
|
void *pData = M4OSA_NULL;
|
|
|
|
// Check if the previous action succeeded.
|
|
if (*pResult)
|
|
{
|
|
// Allocate memory for the settings.
|
|
pData = (M4VSS3GPP_EditSettings*)M4OSA_32bitAlignedMalloc(size, 0, (M4OSA_Char*)pDescription);
|
|
if (M4OSA_NULL != pData)
|
|
{
|
|
// Reset the allocated memory.
|
|
memset((void *)pData, 0,size);
|
|
#ifdef OSAL_MEM_LEAK_DEBUG
|
|
// Update the allocated block count.
|
|
gAllocatedBlockCount++;
|
|
#endif
|
|
}
|
|
else
|
|
{
|
|
// Reset the result flag.
|
|
(*pResult) = false;
|
|
|
|
// Log the error.
|
|
VIDEOEDIT_LOG_ERROR(ANDROID_LOG_ERROR, "VIDEO_EDITOR_OSAL", "videoEditOsal_alloc,\
|
|
error: unable to allocate memory for %s", pDescription);
|
|
|
|
// Throw an exception.
|
|
jniThrowException(pEnv, "java/lang/OutOfMemoryError", "unable to allocate memory");
|
|
}
|
|
}
|
|
|
|
// Return the allocated memory.
|
|
return(pData);
|
|
}
|
|
|
|
void
|
|
videoEditOsal_free(
|
|
void* pData)
|
|
{
|
|
// Check if memory was allocated.
|
|
if (M4OSA_NULL != pData)
|
|
{
|
|
VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_OSAL", "videoEditOsal_free()");
|
|
|
|
// Log the API call.
|
|
VIDEOEDIT_LOG_API(ANDROID_LOG_INFO, "VIDEO_EDITOR_OSAL", "free");
|
|
|
|
// Free the memory.
|
|
free(pData);
|
|
#ifdef OSAL_MEM_LEAK_DEBUG
|
|
// Update the allocated block count.
|
|
gAllocatedBlockCount--;
|
|
|
|
// Log the number of allocated blocks.
|
|
VIDEOEDIT_LOG_ALLOCATION(ANDROID_LOG_ERROR, "VIDEO_EDITOR_OSAL", "allocated, %d blocks",\
|
|
gAllocatedBlockCount);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
void
|
|
videoEditOsal_getFilePointers ( M4OSA_FileReadPointer *pOsaFileReadPtr,
|
|
M4OSA_FileWriterPointer *pOsaFileWritePtr)
|
|
{
|
|
if (pOsaFileReadPtr != M4OSA_NULL)
|
|
{
|
|
// Initialize the filereader function pointers.
|
|
pOsaFileReadPtr->openRead = M4OSA_fileReadOpen;
|
|
pOsaFileReadPtr->readData = M4OSA_fileReadData;
|
|
pOsaFileReadPtr->seek = M4OSA_fileReadSeek;
|
|
pOsaFileReadPtr->closeRead = M4OSA_fileReadClose;
|
|
pOsaFileReadPtr->setOption = M4OSA_fileReadSetOption;
|
|
pOsaFileReadPtr->getOption = M4OSA_fileReadGetOption;
|
|
}
|
|
|
|
if (pOsaFileWritePtr != M4OSA_NULL)
|
|
{
|
|
// Initialize the filewriter function pointers.
|
|
pOsaFileWritePtr->openWrite = M4OSA_fileWriteOpen;
|
|
pOsaFileWritePtr->writeData = M4OSA_fileWriteData;
|
|
pOsaFileWritePtr->seek = M4OSA_fileWriteSeek;
|
|
pOsaFileWritePtr->Flush = M4OSA_fileWriteFlush;
|
|
pOsaFileWritePtr->closeWrite = M4OSA_fileWriteClose;
|
|
pOsaFileWritePtr->setOption = M4OSA_fileWriteSetOption;
|
|
pOsaFileWritePtr->getOption = M4OSA_fileWriteGetOption;
|
|
}
|
|
}
|
|
|