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