VideoEditorOsal.cpp revision c0125dd4f1f8bb03ad16138f86d55ed3305240c4
1cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi/* 2cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 3cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * 4cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 5cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * you may not use this file except in compliance with the License. 6cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * You may obtain a copy of the License at 7cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * 8cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 9cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * 10cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 11cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 12cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * See the License for the specific language governing permissions and 14cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * limitations under the License. 15cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi */ 16cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 17cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorJava.h> 18cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorLogging.h> 19cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorOsal.h> 20cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 21cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargiextern "C" { 22cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Clock.h> 23cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_CharStar.h> 24cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_FileCommon.h> 25cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_FileReader.h> 26cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_FileWriter.h> 27cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Memory.h> 28cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_String.h> 29cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Thread.h> 30cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4xVSS_API.h> 31cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4VSS3GPP_ErrorCodes.h> 32cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4MCS_ErrorCodes.h> 33cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4READER_Common.h> 34cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4WRITER_common.h> 35cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4VSS3GPP_API.h> 36cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4DECODER_Common.h> 37cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}; 38cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 39cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 40cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#define VIDEOEDIT_OSAL_RESULT_STRING_MAX (32) 41cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 42cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#define VIDEOEDIT_OSAL_RESULT_INIT(m_result) { m_result, #m_result } 43cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 44cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 45cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargitypedef struct 46cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 47cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_ERR result; 48cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi const char* pName; 49cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} VideoEdit_Osal_Result; 50cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 51cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic const VideoEdit_Osal_Result gkRESULTS[] = 52cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 53cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4OSA_Clock.h 54cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_TIMESCALE_TOO_BIG ), 55cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_CLOCK_BAD_REF_YEAR ), 56cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 57cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4OSA_Error.h 58cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4NO_ERROR ), 59cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_PARAMETER ), 60cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_STATE ), 61cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_ALLOC ), 62cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_BAD_CONTEXT ), 63cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_CONTEXT_FAILED ), 64cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_BAD_STREAM_ID ), 65cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_BAD_OPTION_ID ), 66cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_WRITE_ONLY ), 67cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_READ_ONLY ), 68cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_NOT_IMPLEMENTED ), 69cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_UNSUPPORTED_MEDIA_TYPE ), 70cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_NO_DATA_YET ), 71cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_NO_MORE_STREAM ), 72cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_INVALID_TIME ), 73cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_NO_MORE_AU ), 74cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_TIME_OUT ), 75cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_BUFFER_FULL ), 76cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_REDIRECT ), 77cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_TOO_MUCH_STREAMS ), 78cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 79cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4OSA_FileCommon.h 80cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_NOT_FOUND ), 81cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_LOCKED ), 82cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_BAD_MODE_ACCESS ), 83cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_FILE_INVALID_POSITION ), 84cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 85cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4OSA_String.h 86cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_STR_BAD_STRING ), 87cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_STR_CONV_FAILED ), 88cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_STR_OVERFLOW ), 89cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_STR_BAD_ARGS ), 90cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_STR_OVERFLOW ), 91cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_STR_NOT_FOUND ), 92cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 93cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4OSA_Thread.h 94cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_THREAD_NOT_STARTED ), 95cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 96cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4xVSS_API.h 97cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_ANALYZING_DONE ), 98cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_PREVIEW_READY ), 99cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_SAVING_DONE ), 100cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_TRANSCODING_NECESSARY ), 101cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_OUTPUTFILESIZE_EXCEED ), 102cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_JPG_TOO_BIG ), 103cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4xVSSWAR_BUFFER_OUT_TOO_SMALL ), 104cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4xVSSERR_NO_MORE_SPACE ), 105cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 106cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4VSS3GPP_ErrorCodes.h 107cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_FILE_TYPE ), 108cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_EFFECT_KIND ), 109cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_VIDEO_EFFECT_TYPE ), 110cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_AUDIO_EFFECT_TYPE ), 111cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_VIDEO_TRANSITION_TYPE ), 112cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_AUDIO_TRANSITION_TYPE ), 113cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_VIDEO_ENCODING_FRAME_RATE ), 114cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EXTERNAL_EFFECT_NULL ), 115cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EXTERNAL_TRANSITION_NULL ), 116cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_BEGIN_CUT_LARGER_THAN_DURATION ), 117cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_BEGIN_CUT_LARGER_THAN_END_CUT ), 118cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_OVERLAPPING_TRANSITIONS ), 119cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_ANALYSIS_DATA_SIZE_TOO_SMALL 120cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ANALYSIS_DATA_SIZE_TOO_SMALL ), 121cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 122cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_3GPP_FILE ), 123cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT ), 124cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_INPUT_AUDIO_FORMAT ), 125cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AMR_EDITING_UNSUPPORTED ), 126cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_VIDEO_AU_TOO_LARGE ), 127cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_AUDIO_AU_TOO_LARGE ), 128cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AU ), 129cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AMR_AU 130cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AMR_AU ), 131cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 132cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ENCODER_ACCES_UNIT_ERROR ), 133cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_VIDEO_FORMAT ), 134cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_H263_PROFILE ), 135cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_PROFILE ), 136cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_RVLC ), 137cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_UNSUPPORTED_AUDIO_FORMAT ), 138cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_STREAM_IN_FILE ), 139cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_VIDEO_STREAM_IN_FILE), 140cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION ), 141cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM 142cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM ), 143cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 144cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FORMAT ), 145cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FRAME_SIZE ), 146cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_TIME_SCALE ), 147cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_DATA_PARTITIONING ), 148cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_MP3_ASSEMBLY ), 149cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_INCOMPATIBLE_AUDIO_STREAM_TYPE ), 150cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_INCOMPATIBLE_AUDIO_NB_OF_CHANNELS ), 151cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_WAR_INCOMPATIBLE_AUDIO_SAMPLING_FREQUENCY ), 152cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_NO_SUPPORTED_STREAM_IN_FILE ), 153cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ADDVOLUME_EQUALS_ZERO ), 154cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ADDCTS_HIGHER_THAN_VIDEO_DURATION ), 155cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNDEFINED_AUDIO_TRACK_FILE_FORMAT ), 156cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_UNSUPPORTED_ADDED_AUDIO_STREAM ), 157cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_MIXING_UNSUPPORTED ), 158cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AUDIO_TRACK ), 159cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_CANNOT_BE_MIXED ), 160cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INPUT_CLIP_IS_NOT_A_3GPP ), 161cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_BEGINLOOP_HIGHER_ENDLOOP ), 162cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_AUDIO_MIXING_MP3_UNSUPPORTED 163cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_MIXING_MP3_UNSUPPORTED ), 164cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 165cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AAC 166cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AAC ), 167cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 168cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED 169cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED ), 170cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 171cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_EVRC 172cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_EVRC ), 173cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 174cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_H263_PROFILE_NOT_SUPPORTED ), 175cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_NO_SUPPORTED_VIDEO_STREAM_IN_FILE ), 176cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_INTERNAL_STATE ), 177cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_LUMA_FILTER_ERROR ), 178cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_CURTAIN_FILTER_ERROR ), 179cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_TRANSITION_FILTER_ERROR ), 180cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_DECODER_INIT_FAILED ), 181cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_AUDIO_DECODED_PCM_SIZE_ISSUE ), 182cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4VSS3GPP_ERR_OUTPUT_FILE_TYPE_ERROR ), 183cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 184cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4MCS_ErrorCodes.h 185cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_WAR_TRANSCODING_DONE ), 186cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_WAR_MEDIATYPE_NOT_SUPPORTED ), 187cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INPUT_FILE_CONTAINS_NO_SUPPORTED_STREAM ), 188cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_INPUT_FILE ), 189cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FORMAT ), 190cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FRAME_SIZE ), 191cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FRAME_RATE ), 192cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_UNDEFINED_OUTPUT_AUDIO_FORMAT ), 193cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_VIDEO_FRAME_SIZE_FOR_H263 ), 194cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_VIDEO_FRAME_RATE_FOR_H263 ), 195cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_DURATION_IS_NULL ), 196cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_H263_FORBIDDEN_IN_MP4_FILE ), 197cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_H263_PROFILE_NOT_SUPPORTED ), 198cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_INVALID_AAC_SAMPLING_FREQUENCY ), 199cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_AUDIO_CONVERSION_FAILED ), 200cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_BEGIN_CUT_LARGER_THAN_DURATION ), 201cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_BEGIN_CUT_EQUALS_END_CUT ), 202cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_END_CUT_SMALLER_THAN_BEGIN_CUT ), 203cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_MAXFILESIZE_TOO_SMALL ), 204cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_VIDEOBITRATE_TOO_LOW ), 205cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_AUDIOBITRATE_TOO_LOW ), 206cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_VIDEOBITRATE_TOO_HIGH ), 207cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_AUDIOBITRATE_TOO_HIGH ), 208cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_OUTPUT_FILE_SIZE_TOO_SMALL ), 209cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_NOMORE_SPACE ), 210895a28e14e6c88b4ff3b1f1cdf02d22f7b3b52caSantosh Madhava VIDEOEDIT_OSAL_RESULT_INIT(M4MCS_ERR_FILE_DRM_PROTECTED ), 211cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 212cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4READER_Common.h 213cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_READER_UNKNOWN_STREAM_TYPE ), 214cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_READER_NO_METADATA ), 215cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_READER_INFORMATION_NOT_PRESENT ), 216cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 217cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4WRITER_Common.h 218cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_WRITER_STOP_REQ ), 219cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // M4DECODER_Common.h 220cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_VIDEORENDERER_NO_NEW_FRAME ), 221cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4WAR_DEBLOCKING_FILTER_NOT_IMPLEMENTED ), 222cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_DECODER_H263_PROFILE_NOT_SUPPORTED ), 223cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_OSAL_RESULT_INIT(M4ERR_DECODER_H263_NOT_BASELINE ) 224cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}; 225cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 226cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic const int gkRESULTS_COUNT = (sizeof(gkRESULTS) / sizeof(VideoEdit_Osal_Result)); 227cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 228cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef OSAL_MEM_LEAK_DEBUG 229cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic int gAllocatedBlockCount = 0; 230cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 231cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 232cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargiconst char* 233cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditOsal_getResultString( 234cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_ERR result) 235cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 236cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi static char string[VIDEOEDIT_OSAL_RESULT_STRING_MAX] = ""; 237cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi const char* pString = M4OSA_NULL; 238cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi int index = 0; 239cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 240cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Loop over the list with constants. 241cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi for (index = 0; 242cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi ((M4OSA_NULL == pString) && (index < gkRESULTS_COUNT)); 243cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi index++) 244cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 245cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Check if the specified result matches. 246cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (result == gkRESULTS[index].result) 247cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 248cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Set the description. 249cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pString = gkRESULTS[index].pName; 250cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 251cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 252cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 253cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Check if no result was found. 254cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (M4OSA_NULL == pString) 255cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 256cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Set the description to a default value. 257cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_chrSPrintf((M4OSA_Char *)string, sizeof(string) - 1, 258cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi (M4OSA_Char*)"<unknown(0x%08X)>", result); 259cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pString = string; 260cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 261cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 262cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Return the result. 263cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi return(pString); 264cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} 265cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 266cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid * 267cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditOsal_alloc( 268cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi bool* pResult, 269cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi JNIEnv* pEnv, 270cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi size_t size, 271cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi const char* pDescription) 272cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 273cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi void *pData = M4OSA_NULL; 274cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 275cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Check if the previous action succeeded. 276cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (*pResult) 277cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 278cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Allocate memory for the settings. 279c0125dd4f1f8bb03ad16138f86d55ed3305240c4Shyam Pallapothu pData = (M4VSS3GPP_EditSettings*)M4OSA_32bitAlignedMalloc(size, 0, (M4OSA_Char*)pDescription); 280cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (M4OSA_NULL != pData) 281cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 282cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Reset the allocated memory. 2833feb41ff6f617768eb25c1b69c473d33f4f2f37bShyam Pallapothu memset((void *)pData, 0,size); 284cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef OSAL_MEM_LEAK_DEBUG 285cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Update the allocated block count. 286cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi gAllocatedBlockCount++; 287cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 288cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 289cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi else 290cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 291cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Reset the result flag. 292cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi (*pResult) = false; 293cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 294cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Log the error. 295cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_LOG_ERROR(ANDROID_LOG_ERROR, "VIDEO_EDITOR_OSAL", "videoEditOsal_alloc,\ 296cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi error: unable to allocate memory for %s", pDescription); 297cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 298cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Throw an exception. 299cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi jniThrowException(pEnv, "java/lang/OutOfMemoryError", "unable to allocate memory"); 300cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 301cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 302cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 303cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Return the allocated memory. 304cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi return(pData); 305cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} 306cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 307cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid 308cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditOsal_free( 309cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi void* pData) 310cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 311cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Check if memory was allocated. 312cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (M4OSA_NULL != pData) 313cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 314cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_OSAL", "videoEditOsal_free()"); 315cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 316cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Log the API call. 317c0125dd4f1f8bb03ad16138f86d55ed3305240c4Shyam Pallapothu VIDEOEDIT_LOG_API(ANDROID_LOG_INFO, "VIDEO_EDITOR_OSAL", "free"); 318cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 319cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Free the memory. 320c0125dd4f1f8bb03ad16138f86d55ed3305240c4Shyam Pallapothu free(pData); 321cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef OSAL_MEM_LEAK_DEBUG 322cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Update the allocated block count. 323cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi gAllocatedBlockCount--; 324cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 325cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Log the number of allocated blocks. 326cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi VIDEOEDIT_LOG_ALLOCATION(ANDROID_LOG_ERROR, "VIDEO_EDITOR_OSAL", "allocated, %d blocks",\ 327cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi gAllocatedBlockCount); 328cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif 329cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 330cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} 331cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 332cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 333cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid 334cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditOsal_getFilePointers ( M4OSA_FileReadPointer *pOsaFileReadPtr, 335cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_FileWriterPointer *pOsaFileWritePtr) 336cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 337cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (pOsaFileReadPtr != M4OSA_NULL) 338cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 339cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Initialize the filereader function pointers. 340cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileReadPtr->openRead = M4OSA_fileReadOpen; 341cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileReadPtr->readData = M4OSA_fileReadData; 342cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileReadPtr->seek = M4OSA_fileReadSeek; 343cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileReadPtr->closeRead = M4OSA_fileReadClose; 344cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileReadPtr->setOption = M4OSA_fileReadSetOption; 345cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileReadPtr->getOption = M4OSA_fileReadGetOption; 346cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 347cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 348cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi if (pOsaFileWritePtr != M4OSA_NULL) 349cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi { 350cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi // Initialize the filewriter function pointers. 351cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->openWrite = M4OSA_fileWriteOpen; 352cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->writeData = M4OSA_fileWriteData; 353cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->seek = M4OSA_fileWriteSeek; 354cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->Flush = M4OSA_fileWriteFlush; 355cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->closeWrite = M4OSA_fileWriteClose; 356cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->setOption = M4OSA_fileWriteSetOption; 357cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi pOsaFileWritePtr->getOption = M4OSA_fileWriteGetOption; 358cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi } 359cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} 360cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 361