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