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
18cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorClasses.h>
19cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorJava.h>
20cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorLogging.h>
21cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <VideoEditorOsal.h>
22cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
23cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargiextern "C" {
24cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Clock.h>
25cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_CharStar.h>
26cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_FileCommon.h>
27cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_FileReader.h>
28cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_FileWriter.h>
29cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Memory.h>
30cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Debug.h>
31cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4OSA_Thread.h>
32cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4VSS3GPP_API.h>
33cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4xVSS_API.h>
34cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4VSS3GPP_ErrorCodes.h>
35cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4MCS_ErrorCodes.h>
36cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4READER_Common.h>
37cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4WRITER_common.h>
38cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include <M4DECODER_Common.h>
39cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
40cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
41cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#define VIDEOEDIT_PROP_JAVA_RESULT_STRING_MAX                     (128)
42cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
43cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#define VIDEOEDIT_JAVA__RESULT_STRING_MAX                     (128)
44cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
45cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(AudioEffect)
46cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
47cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NONE",     M4VSS3GPP_kAudioEffectType_None),
48cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FADE_IN",  M4VSS3GPP_kAudioEffectType_FadeIn),
49cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FADE_OUT", M4VSS3GPP_kAudioEffectType_FadeOut)
50cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
51cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
52cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(AudioEffect, AUDIO_EFFECT_CLASS_NAME, M4OSA_NULL, M4OSA_NULL)
53cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
54cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
55cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(AudioFormat)
56cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
57cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NO_AUDIO",          M4VIDEOEDITING_kNoneAudio),
58cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("AMR_NB",            M4VIDEOEDITING_kAMR_NB),
59cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("AAC",               M4VIDEOEDITING_kAAC),
60cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("AAC_PLUS",          M4VIDEOEDITING_kAACplus),
61cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ENHANCED_AAC_PLUS", M4VIDEOEDITING_keAACplus),
62cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("MP3",               M4VIDEOEDITING_kMP3),
63cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("EVRC",              M4VIDEOEDITING_kEVRC),
64cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("PCM",               M4VIDEOEDITING_kPCM),
65cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NULL_AUDIO",        M4VIDEOEDITING_kNullAudio),
66cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("UNSUPPORTED_AUDIO", M4VIDEOEDITING_kUnsupportedAudio)
67cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
68cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
69cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(AudioFormat, AUDIO_FORMAT_CLASS_NAME, M4OSA_NULL, M4OSA_NULL)
70cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
71cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
72cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(AudioSamplingFrequency)
73cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
74cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_DEFAULT", M4VIDEOEDITING_kDefault_ASF),
75cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_8000",    M4VIDEOEDITING_k8000_ASF),
76cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_16000",   M4VIDEOEDITING_k16000_ASF),
77cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_22050",   M4VIDEOEDITING_k22050_ASF),
78cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_24000",   M4VIDEOEDITING_k24000_ASF),
79cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_32000",   M4VIDEOEDITING_k32000_ASF),
80cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_44100",   M4VIDEOEDITING_k44100_ASF),
81cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FREQ_48000",   M4VIDEOEDITING_k48000_ASF)
82cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
83cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
84cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(AudioSamplingFrequency,AUDIO_SAMPLING_FREQUENCY_CLASS_NAME,
85cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                     M4OSA_NULL, M4OSA_NULL)
86cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
87cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
88cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(AudioTransition)
89cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
90cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NONE",       M4VSS3GPP_kAudioTransitionType_None),
91cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("CROSS_FADE", M4VSS3GPP_kAudioTransitionType_CrossFade)
92cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
93cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
94cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(AudioTransition, AUDIO_TRANSITION_CLASS_NAME, M4OSA_NULL,
95cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                     M4OSA_NULL)
96cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
97cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
98cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic const char*
99cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getUnknownBitrateString(int bitrate)
100cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
101cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    static char string[VIDEOEDIT_JAVA__RESULT_STRING_MAX] = "";
102cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
103cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4OSA_chrSPrintf((M4OSA_Char *)string, sizeof(string) - 1, (M4OSA_Char*)"%d", bitrate);
104cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
105cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Return the bitrate string.
106cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    return(string);
107cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
108cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
109cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(Bitrate)
110cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
111cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("VARIABLE",     M4VIDEOEDITING_kVARIABLE_KBPS),
112cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("UNDEFINED",    M4VIDEOEDITING_kUndefinedBitrate),
113cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_9_2_KBPS",  M4VIDEOEDITING_k9_2_KBPS),
114cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_12_2_KBPS", M4VIDEOEDITING_k12_2_KBPS),
115cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_16_KBPS",   M4VIDEOEDITING_k16_KBPS),
116cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_24_KBPS",   M4VIDEOEDITING_k24_KBPS),
117cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_32_KBPS",   M4VIDEOEDITING_k32_KBPS),
118cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_48_KBPS",   M4VIDEOEDITING_k48_KBPS),
119cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_64_KBPS",   M4VIDEOEDITING_k64_KBPS),
120cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_96_KBPS",   M4VIDEOEDITING_k96_KBPS),
121cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_128_KBPS",  M4VIDEOEDITING_k128_KBPS),
122cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_192_KBPS",  M4VIDEOEDITING_k192_KBPS),
123cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_256_KBPS",  M4VIDEOEDITING_k256_KBPS),
124cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_288_KBPS",  M4VIDEOEDITING_k288_KBPS),
125cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_384_KBPS",  M4VIDEOEDITING_k384_KBPS),
126cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_512_KBPS",  M4VIDEOEDITING_k512_KBPS),
127cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_800_KBPS",  M4VIDEOEDITING_k800_KBPS),
128cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi/*+ New Encoder bitrates */
129cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_2_MBPS",  M4VIDEOEDITING_k2_MBPS),
130cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_5_MBPS",  M4VIDEOEDITING_k5_MBPS),
131cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BR_8_MBPS",  M4VIDEOEDITING_k8_MBPS)
132cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi/*- New Encoder bitrates */
133cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
134cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
135cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(Bitrate, BITRATE_CLASS_NAME,
136cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi videoEditClasses_getUnknownBitrateString, videoEditClasses_getUnknownBitrateString)
137cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
138cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
139cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(ClipType)
140cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
141cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("THREE_GPP",   M4VIDEOEDITING_kFileType_3GPP),
142cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("MP4",         M4VIDEOEDITING_kFileType_MP4),
143cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("AMR",         M4VIDEOEDITING_kFileType_AMR),
144cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("MP3",         M4VIDEOEDITING_kFileType_MP3),
145cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("PCM",         M4VIDEOEDITING_kFileType_PCM),
146cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("JPG",         M4VIDEOEDITING_kFileType_JPG),
147d7ed5992634596a53f32f66277de6d287ffb752fShailendra    VIDEOEDIT_JAVA_CONSTANT_INIT("PNG",         M4VIDEOEDITING_kFileType_PNG),
1484e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("M4V",         M4VIDEOEDITING_kFileType_M4V),
149cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("UNSUPPORTED", M4VIDEOEDITING_kFileType_Unsupported)
150cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
151cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
152cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(ClipType, FILE_TYPE_CLASS_NAME, M4OSA_NULL, M4OSA_NULL)
153cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
154cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
155cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(Engine)
156cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
157cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("TASK_LOADING_SETTINGS",    TASK_LOADING_SETTINGS),
158cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("TASK_ENCODING",            TASK_ENCODING)
159cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
160cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
161cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(Engine, MANUAL_EDIT_ENGINE_CLASS_NAME, M4OSA_NULL,
162cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                     M4OSA_NULL)
163cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
164cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
165cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic const char*
166cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getUnknownErrorName(int error)
167cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
168cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    static char string[VIDEOEDIT_JAVA__RESULT_STRING_MAX] = "ERR_INTERNAL";
169cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
170cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Format the unknown error string.
171cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4OSA_chrSPrintf((M4OSA_Char *)string, sizeof(string) - 1, (M4OSA_Char*)"ERR_INTERNAL(%s)",
172cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditOsal_getResultString(error));
173cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
174cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Return the error string.
175cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    return(string);
176cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
177cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
178cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic const char*
179cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getUnknownErrorString(int error)
180cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
181cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Return the result string.
182cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    return(videoEditOsal_getResultString(error));
183cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
184cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
185cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(Error)
186cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
187cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // M4OSA_Clock.h
188cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("WAR_TIMESCALE_TOO_BIG",                   \
189cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4WAR_TIMESCALE_TOO_BIG                               ),
190cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_CLOCK_BAD_REF_YEAR",                  \
191cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4ERR_CLOCK_BAD_REF_YEAR                              ),
192cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_FILE_NOT_FOUND",                      \
193cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4ERR_FILE_NOT_FOUND                                  ),
194cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("WAR_TRANSCODING_NECESSARY",               \
195cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_WAR_TRANSCODING_NECESSARY                   ),
196cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("WAR_MAX_OUTPUT_SIZE_EXCEEDED",            \
197cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_WAR_OUTPUTFILESIZE_EXCEED                   ),
198cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_BUFFER_OUT_TOO_SMALL",                \
199cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4xVSSWAR_BUFFER_OUT_TOO_SMALL                        ),
200cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_NOMORE_SPACE_FOR_FILE",               \
201cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4xVSSERR_NO_MORE_SPACE                               ),
202cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_FILE_TYPE",                   \
203cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_FILE_TYPE                       ),
204cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_EFFECT_KIND",                 \
205cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_EFFECT_KIND                     ),
206cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_VIDEO_EFFECT_TYPE",           \
207cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_VIDEO_EFFECT_TYPE               ),
208cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_AUDIO_EFFECT_TYPE",           \
209cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_AUDIO_EFFECT_TYPE               ),
210cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_VIDEO_TRANSITION_TYPE",       \
211cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_VIDEO_TRANSITION_TYPE           ),
212cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_AUDIO_TRANSITION_TYPE",       \
213cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_AUDIO_TRANSITION_TYPE           ),
214cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_VIDEO_ENCODING_FRAME_RATE",   \
215cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_INVALID_VIDEO_ENCODING_FRAME_RATE       ),
216cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EXTERNAL_EFFECT_NULL",                \
217cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_EXTERNAL_EFFECT_NULL                    ),
218cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EXTERNAL_TRANSITION_NULL",            \
219cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_EXTERNAL_TRANSITION_NULL                ),
220cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_BEGIN_CUT_LARGER_THAN_DURATION",      \
221cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_BEGIN_CUT_LARGER_THAN_DURATION          ),
222cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_BEGIN_CUT_LARGER_THAN_END_CUT",       \
223cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_BEGIN_CUT_LARGER_THAN_END_CUT           ),
224cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_OVERLAPPING_TRANSITIONS",             \
225cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_OVERLAPPING_TRANSITIONS                  ),
226cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_ANALYSIS_DATA_SIZE_TOO_SMALL
227cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_ANALYSIS_DATA_SIZE_TOO_SMALL",        \
228cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_ANALYSIS_DATA_SIZE_TOO_SMALL            ),
229cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
230cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_3GPP_FILE",                     \
231cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_INVALID_3GPP_FILE                         ),
232cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT",        \
233cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT            ),
234cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_UNSUPPORTED_INPUT_AUDIO_FORMAT",        \
235cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_UNSUPPORTED_INPUT_AUDIO_FORMAT            ),
236cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_AMR_EDITING_UNSUPPORTED",               \
237cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_AMR_EDITING_UNSUPPORTED                   ),
238cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INPUT_VIDEO_AU_TOO_LARGE",              \
239cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_INPUT_VIDEO_AU_TOO_LARGE                  ),
240cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INPUT_AUDIO_AU_TOO_LARGE",              \
241cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_INPUT_AUDIO_AU_TOO_LARGE                  ),
242cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INPUT_AUDIO_CORRUPTED_AU",              \
243cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AU                  ),
244cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AMR_AU
245cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INPUT_AUDIO_CORRUPTED_AU",              \
246cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_INPUT_AUDIO_CORRUPTED_AMR_AU              ),
247cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
248cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_ENCODER_ACCES_UNIT_ERROR",              \
249cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_ENCODER_ACCES_UNIT_ERROR                  ),
250cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_UNSUPPORTED_VIDEO_FORMAT",      \
251cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_EDITING_UNSUPPORTED_VIDEO_FORMAT          ),
252cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_UNSUPPORTED_H263_PROFILE",      \
253cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_EDITING_UNSUPPORTED_H263_PROFILE          ),
254cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_UNSUPPORTED_MPEG4_PROFILE",     \
255cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_PROFILE         ),
256cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_UNSUPPORTED_MPEG4_RVLC",        \
257cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_RVLC            ),
258cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_UNSUPPORTED_AUDIO_FORMAT",      \
259cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_EDITING_UNSUPPORTED_AUDIO_FORMAT          ),
260cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_NO_SUPPORTED_STREAM_IN_FILE",   \
261cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_STREAM_IN_FILE       ),
262cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_EDITING_NO_SUPPORTED_VIDEO_STREAM_IN_FILE",\
263cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi     M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_VIDEO_STREAM_IN_FILE),
264cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_CLIP_ANALYSIS_VERSION",        \
265cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION            ),
266cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM
267cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INVALID_CLIP_ANALYSIS_PLATFORM",       \
268cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM            ),
269cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
270cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INCOMPATIBLE_VIDEO_FORMAT",            \
271cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FORMAT                ),
272cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INCOMPATIBLE_VIDEO_FRAME_SIZE",        \
273cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FRAME_SIZE            ),
274cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INCOMPATIBLE_VIDEO_TIME_SCALE",        \
275cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_TIME_SCALE            ),
276cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INCOMPATIBLE_VIDEO_DATA_PARTITIONING", \
277cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_DATA_PARTITIONING     ),
278cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_UNSUPPORTED_MP3_ASSEMBLY",             \
279cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_UNSUPPORTED_MP3_ASSEMBLY                 ),
280cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_NO_SUPPORTED_STREAM_IN_FILE",          \
281cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_NO_SUPPORTED_STREAM_IN_FILE              ),
282cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_ADDVOLUME_EQUALS_ZERO",                \
283cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_ADDVOLUME_EQUALS_ZERO                    ),
284cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_ADDCTS_HIGHER_THAN_VIDEO_DURATION",    \
285cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_ADDCTS_HIGHER_THAN_VIDEO_DURATION        ),
286cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_UNDEFINED_AUDIO_TRACK_FILE_FORMAT",    \
287cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_UNDEFINED_AUDIO_TRACK_FILE_FORMAT        ),
288cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_UNSUPPORTED_ADDED_AUDIO_STREAM",       \
289cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_UNSUPPORTED_ADDED_AUDIO_STREAM           ),
290cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_AUDIO_MIXING_UNSUPPORTED",             \
291cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_AUDIO_MIXING_UNSUPPORTED                 ),
292cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_AUDIO_MIXING_MP3_UNSUPPORTED
293cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_AUDIO_MIXING_MP3_UNSUPPORTED",         \
294cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_AUDIO_MIXING_MP3_UNSUPPORTED            ),
295cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
296cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_FEATURE_UNSUPPORTED_WITH_AUDIO_TRACK", \
297cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi      M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AUDIO_TRACK        ),
298cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AAC
299cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_FEATURE_UNSUPPORTED_WITH_AAC",         \
300cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi       M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_AAC               ),
301cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
302cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_AUDIO_CANNOT_BE_MIXED",                \
303cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4VSS3GPP_ERR_AUDIO_CANNOT_BE_MIXED                     ),
304cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED
305cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED",        \
306cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         M4VSS3GPP_ERR_ONLY_AMRNB_INPUT_CAN_BE_MIXED            ),
307cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
308cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_EVRC
309cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_FEATURE_UNSUPPORTED_WITH_EVRC",        \
310cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_FEATURE_UNSUPPORTED_WITH_EVRC           ),
311cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
312cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_H263_PROFILE_NOT_SUPPORTED",           \
313cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_H263_PROFILE_NOT_SUPPORTED              ),
314cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_NO_SUPPORTED_VIDEO_STREAM_IN_FILE",    \
315cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4VSS3GPP_ERR_NO_SUPPORTED_VIDEO_STREAM_IN_FILE       ),
316cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ERR_INTERNAL",                             \
317cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi          M4NO_ERROR                                            ),
318cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
319cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
320cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(Error, ERROR_CLASS_NAME,
321cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi videoEditClasses_getUnknownErrorName, videoEditClasses_getUnknownErrorString)
322cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
323cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
324cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(FileType)
325cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
326cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("THREE_GPP",   VideoEditClasses_kFileType_3GPP),
327cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("MP4",         VideoEditClasses_kFileType_MP4),
328cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("AMR",         VideoEditClasses_kFileType_AMR),
329cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("MP3",         VideoEditClasses_kFileType_MP3),
330cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("PCM",         VideoEditClasses_kFileType_PCM),
331cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("JPG",         VideoEditClasses_kFileType_JPG),
332cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("GIF",         VideoEditClasses_kFileType_GIF),
333cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("PNG",         VideoEditClasses_kFileType_PNG),
3344e7032052137345450bfd2b7a4a9a05ecde17076Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("M4V",         VideoEditClasses_kFileType_M4V),
335cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("UNSUPPORTED", VideoEditClasses_kFileType_Unsupported)
336cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
337cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
338cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(FileType, FILE_TYPE_CLASS_NAME, M4OSA_NULL, M4OSA_NULL)
339cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
340cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
341cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(MediaRendering)
342cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
343cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("RESIZING",      M4xVSS_kResizing),
344cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("CROPPING",      M4xVSS_kCropping),
345cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BLACK_BORDERS", M4xVSS_kBlackBorders)
346cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
347cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
348cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(MediaRendering, MEDIA_RENDERING_CLASS_NAME,
349cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_NULL, M4OSA_NULL)
350cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
351cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
352cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(SlideDirection)
353cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
354cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("RIGHT_OUT_LEFT_IN", M4xVSS_SlideTransition_RightOutLeftIn),
355cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("LEFT_OUT_RIGTH_IN", M4xVSS_SlideTransition_LeftOutRightIn),
356cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("TOP_OUT_BOTTOM_IN", M4xVSS_SlideTransition_TopOutBottomIn),
357cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BOTTOM_OUT_TOP_IN", M4xVSS_SlideTransition_BottomOutTopIn)
358cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
359cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
360cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(SlideDirection, SLIDE_DIRECTION_CLASS_NAME,
361cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_NULL, M4OSA_NULL)
362cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
363cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
364cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(TransitionBehaviour)
365cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
366cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("SPEED_UP",    M4VSS3GPP_TransitionBehaviour_SpeedUp),
367cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("LINEAR",      M4VSS3GPP_TransitionBehaviour_Linear),
368cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("SPEED_DOWN",  M4VSS3GPP_TransitionBehaviour_SpeedDown),
369cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("SLOW_MIDDLE", M4VSS3GPP_TransitionBehaviour_SlowMiddle),
370cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FAST_MIDDLE", M4VSS3GPP_TransitionBehaviour_FastMiddle)
371cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
372cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
373cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(TransitionBehaviour, TRANSITION_BEHAVIOUR_CLASS_NAME,
374cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_NULL, M4OSA_NULL)
375cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
376cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
377cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(VideoEffect)
378cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
379cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NONE",            M4VSS3GPP_kVideoEffectType_None),
380cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FADE_FROM_BLACK", M4VSS3GPP_kVideoEffectType_FadeFromBlack),
381cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FADE_TO_BLACK",   M4VSS3GPP_kVideoEffectType_FadeToBlack),
382cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("EXTERNAL",        M4VSS3GPP_kVideoEffectType_External),
383cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("BLACK_AND_WHITE", M4xVSS_kVideoEffectType_BlackAndWhite),
384cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("PINK",            M4xVSS_kVideoEffectType_Pink),
385cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("GREEN",           M4xVSS_kVideoEffectType_Green),
386cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("SEPIA",           M4xVSS_kVideoEffectType_Sepia),
387cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NEGATIVE",        M4xVSS_kVideoEffectType_Negative),
388cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FRAMING",         M4xVSS_kVideoEffectType_Framing),
389cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("TEXT",            M4xVSS_kVideoEffectType_Text),
390cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ZOOM_IN",         M4xVSS_kVideoEffectType_ZoomIn),
391cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ZOOM_OUT",        M4xVSS_kVideoEffectType_ZoomOut),
392cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FIFTIES",         M4xVSS_kVideoEffectType_Fifties),
393cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("COLORRGB16",      M4xVSS_kVideoEffectType_ColorRGB16),
394cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("GRADIENT",        M4xVSS_kVideoEffectType_Gradient),
395cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
396cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
397cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(VideoEffect, VIDEO_EFFECT_CLASS_NAME, M4OSA_NULL, M4OSA_NULL)
398cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
399cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
400cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(VideoFormat)
401cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
402cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NO_VIDEO",    M4VIDEOEDITING_kNoneVideo),
403cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("H263",        M4VIDEOEDITING_kH263),
404cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("MPEG4",       M4VIDEOEDITING_kMPEG4),
405cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("H264",        M4VIDEOEDITING_kH264),
406cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NULL_VIDEO",  M4VIDEOEDITING_kNullVideo),
407cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("UNSUPPORTED", M4VIDEOEDITING_kUnsupportedVideo),
408cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
409cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
410cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(VideoFormat, VIDEO_FORMAT_CLASS_NAME, M4OSA_NULL, M4OSA_NULL)
411cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
412cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
413cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(VideoFrameRate)
414cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
415cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_5_FPS",    M4VIDEOEDITING_k5_FPS),
416cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_7_5_FPS",  M4VIDEOEDITING_k7_5_FPS),
417cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_10_FPS",   M4VIDEOEDITING_k10_FPS),
418cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_12_5_FPS", M4VIDEOEDITING_k12_5_FPS),
419cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_15_FPS",   M4VIDEOEDITING_k15_FPS),
420cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_20_FPS",   M4VIDEOEDITING_k20_FPS),
421cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_25_FPS",   M4VIDEOEDITING_k25_FPS),
422cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FR_30_FPS",   M4VIDEOEDITING_k30_FPS)
423cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
424cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
425cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(VideoFrameRate, VIDEO_FRAME_RATE_CLASS_NAME,
426cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_NULL, M4OSA_NULL)
427cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
428cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
429cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(VideoFrameSize)
430cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
431cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("SQCIF", M4VIDEOEDITING_kSQCIF),
432cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("QQVGA", M4VIDEOEDITING_kQQVGA),
433cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("QCIF",  M4VIDEOEDITING_kQCIF),
434cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("QVGA",  M4VIDEOEDITING_kQVGA),
435cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("CIF",   M4VIDEOEDITING_kCIF),
436cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("VGA",   M4VIDEOEDITING_kVGA),
437cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("WVGA", M4VIDEOEDITING_kWVGA),
438cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NTSC", M4VIDEOEDITING_kNTSC),
439cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("nHD", M4VIDEOEDITING_k640_360),
440cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("WVGA16x9", M4VIDEOEDITING_k854_480),
441600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng    VIDEOEDIT_JAVA_CONSTANT_INIT("V720p", M4VIDEOEDITING_k1280_720),
442600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng    VIDEOEDIT_JAVA_CONSTANT_INIT("W720p", M4VIDEOEDITING_k1080_720),
443600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng    VIDEOEDIT_JAVA_CONSTANT_INIT("S720p", M4VIDEOEDITING_k960_720),
444600acf14ff12eaf139f0ac644fb7e17849af65faHong Teng    VIDEOEDIT_JAVA_CONSTANT_INIT("V1080p", M4VIDEOEDITING_k1920_1080)
445cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
446cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
447cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(VideoFrameSize, VIDEO_FRAME_SIZE_CLASS_NAME,
448cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_NULL, M4OSA_NULL)
449cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
450cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANTS(VideoTransition)
451cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
452cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("NONE",             M4VSS3GPP_kVideoTransitionType_None),
453cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("CROSS_FADE",       M4VSS3GPP_kVideoTransitionType_CrossFade),
454cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("EXTERNAL",         M4VSS3GPP_kVideoTransitionType_External),
455cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("ALPHA_MAGIC",      M4xVSS_kVideoTransitionType_AlphaMagic),
456cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("SLIDE_TRANSITION", M4xVSS_kVideoTransitionType_SlideTransition),
457cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_CONSTANT_INIT("FADE_BLACK",       M4xVSS_kVideoTransitionType_FadeBlack)
458cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
459cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
460cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_CONSTANT_CLASS(VideoTransition, VIDEO_TRANSITION_CLASS_NAME,
461cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                     M4OSA_NULL, M4OSA_NULL)
462cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
463cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
464cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(AlphaMagic)
465cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
466cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("file",            "Ljava/lang/String;"),
467cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("blendingPercent", "I"                 ),
468cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("invertRotation",  "Z"                 ),
469cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("rgbWidth",  "I"                 ),
470cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("rgbHeight",  "I"                 )
471cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
472cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
473cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(AlphaMagic, ALPHA_MAGIC_SETTINGS_CLASS_NAME)
474cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
475cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(Properties)
476cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
477cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("duration",               "I"),
478cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("fileType",               "I"),
479cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoFormat",            "I"),
480cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoDuration",          "I"),
481cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoBitrate",           "I"),
482cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("width",                  "I"),
483cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("height",                 "I"),
484cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("averageFrameRate",       "F"),
4853ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("profile",                "I"),
4863ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("level",                  "I"),
4873ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("profileSupported",       "Z"),
4883ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("levelSupported",         "Z"),
489cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioFormat",            "I"),
490cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioDuration",          "I"),
491cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioBitrate",           "I"),
492cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioChannels",          "I"),
493c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("audioSamplingFrequency", "I"),
494c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("videoRotation",          "I")
495cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
496cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
497cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(Properties, PROPERTIES_CLASS_NAME)
498cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
499cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(BackgroundMusic)
500cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
501cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("file",          "Ljava/lang/String;"),
502cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("fileType",      "I"                 ),
503cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("insertionTime", "J"                 ),
504cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("volumePercent", "I"                 ),
505cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("beginLoop",     "J"                 ),
506cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("endLoop",       "J"                 ),
507cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("enableDucking",   "Z"               ),
508cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("duckingThreshold","I"               ),
509cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("lowVolume",         "I"             ),
510cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("isLooping",         "Z"             )
511cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
512cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
513cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(BackgroundMusic, BACKGROUND_MUSIC_SETTINGS_CLASS_NAME)
514cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
515cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi/*
516cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(BestEditSettings)
517cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
518cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoFormat",    "I"),
519cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoFrameSize", "I"),
520cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioFormat",    "I"),
521cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioChannels",  "I")
522cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
523cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
524cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(BestEditSettings, BEST_EDIT_SETTINGS_CLASS_NAME)
525cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi*/
526cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
527cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(ClipSettings)
528cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
529cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("clipPath",             "Ljava/lang/String;"),
530cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("fileType",             "I"                 ),
531cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("beginCutTime",         "I"                 ),
532cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("endCutTime",           "I"                 ),
533cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("beginCutPercent",      "I"                 ),
534cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("endCutPercent",        "I"                 ),
535cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomEnabled",       "Z"                 ),
536cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomPercentStart",  "I"                 ),
537cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomTopLeftXStart", "I"                 ),
538cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomTopLeftYStart", "I"                 ),
539cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomPercentEnd",    "I"                 ),
540cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomTopLeftXEnd",   "I"                 ),
541cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("panZoomTopLeftYEnd",   "I"                 ),
542cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("mediaRendering",       "I"                 ),
543cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("rgbWidth",           "I"                 ),
544c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("rgbHeight",          "I"                 ),
545c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("rotationDegree",     "I"                 )
546cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
547cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
548cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(ClipSettings, CLIP_SETTINGS_CLASS_NAME)
549cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
550cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
551cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(EditSettings)
552cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
553cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("clipSettingsArray",       "[L"CLIP_SETTINGS_CLASS_NAME";"         ),
554cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("transitionSettingsArray", "[L"TRANSITION_SETTINGS_CLASS_NAME";"   ),
555cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("effectSettingsArray",     "[L"EFFECT_SETTINGS_CLASS_NAME";"       ),
556cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoFrameRate",          "I"                                     ),
557cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("outputFile",              "Ljava/lang/String;"                    ),
558cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoFrameSize",          "I"                                     ),
559cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoFormat",             "I"                                     ),
5603ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("videoProfile",            "I"                                     ),
5613ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury    VIDEOEDIT_JAVA_FIELD_INIT("videoLevel",              "I"                                     ),
562cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioFormat",             "I"                                     ),
563cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioSamplingFreq",       "I"                                     ),
564cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("maxFileSize",             "I"                                     ),
565cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioChannels",           "I"                                     ),
566cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoBitrate",            "I"                                     ),
567cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioBitrate",            "I"                                     ),
568cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("backgroundMusicSettings",\
569cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    "L"BACKGROUND_MUSIC_SETTINGS_CLASS_NAME";"),
570cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("primaryTrackVolume",            "I"                               )
571cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
572cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
573cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(EditSettings, EDIT_SETTINGS_CLASS_NAME)
574cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
575cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
576cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(EffectSettings)
577cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
578cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("startTime",                       "I"                 ),
579cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("duration",                        "I"                 ),
580cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoEffectType",                 "I"                 ),
581cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioEffectType",                 "I"                 ),
582cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("startPercent",                    "I"                 ),
583cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("durationPercent",                 "I"                 ),
584cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("framingFile",                     "Ljava/lang/String;"),
585cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("framingBuffer",                   "[I"                ),
586cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("bitmapType",                      "I"                 ),
587cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("width",                           "I"                 ),
588cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("height",                          "I"                 ),
589cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("topLeftX",                        "I"                 ),
590cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("topLeftY",                        "I"                 ),
591cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("framingResize",                   "Z"                 ),
592cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("framingScaledSize",               "I"                 ),
593cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("text",                            "Ljava/lang/String;"),
594cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("textRenderingData",               "Ljava/lang/String;"),
595cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("textBufferWidth",                 "I"                 ),
596cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("textBufferHeight",                "I"                 ),
597cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("fiftiesFrameRate",                "I"                 ),
598cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("rgb16InputColor",                 "I"                 ),
599cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("alphaBlendingStartPercent",       "I"                 ),
600cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("alphaBlendingMiddlePercent",      "I"                 ),
601cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("alphaBlendingEndPercent",         "I"                 ),
602cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("alphaBlendingFadeInTimePercent",  "I"                 ),
603cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("alphaBlendingFadeOutTimePercent", "I"                 )
604cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
605cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
606cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(EffectSettings, EFFECT_SETTINGS_CLASS_NAME)
607cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
608cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
609cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(Engine)
610cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
611cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("mManualEditContext", "I")
612cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
613cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
614cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(Engine, MANUAL_EDIT_ENGINE_CLASS_NAME)
615cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
616cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
617cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(SlideTransitionSettings)
618cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
619cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("direction", "I")
620cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
621cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
622cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(SlideTransitionSettings, SLIDE_TRANSITION_SETTINGS_CLASS_NAME)
623cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
624cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
625cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(TransitionSettings)
626cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
627cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("duration",            "I"                                       ),
628cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("videoTransitionType", "I"                                       ),
629cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("audioTransitionType", "I"                                       ),
630cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("transitionBehaviour", "I"                                       ),
631cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("alphaSettings",       "L"ALPHA_MAGIC_SETTINGS_CLASS_NAME";"     ),
632cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("slideSettings",       "L"SLIDE_TRANSITION_SETTINGS_CLASS_NAME";")
633cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
634cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
635cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(TransitionSettings, TRANSITION_SETTINGS_CLASS_NAME)
636cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
637cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
638cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELDS(Version)
639cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
640cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("major",    "I"),
641cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("minor",    "I"),
642cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_FIELD_INIT("revision", "I")
643cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
644cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
645cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_FIELD_CLASS(Version, VERSION_CLASS_NAME)
646cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
647cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
648cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_METHODS(Engine)
649cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
650cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VIDEOEDIT_JAVA_METHOD_INIT("onProgressUpdate", "(II)V")
651cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi};
652cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
653cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargiVIDEOEDIT_JAVA_DEFINE_METHOD_CLASS(Engine, MANUAL_EDIT_ENGINE_CLASS_NAME)
654cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
655cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
656cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic const char*
657cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getBrandString(M4OSA_UInt32 brand)
658cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
659cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    static char         brandString[11] = "0x00000000";
660cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi           const char*  pBrandString    = M4OSA_NULL;
661cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi           M4OSA_UInt8* pBrand          = (M4OSA_UInt8*)&brand;
662cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi           M4OSA_UInt32 brandHost       = 0;
663cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
664cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Convert the brand from big endian to host.
665cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost =  pBrand[0];
666cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost =  brandHost << 8;
667cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost += pBrand[1];
668cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost =  brandHost << 8;
669cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost += pBrand[2];
670cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost =  brandHost << 8;
671cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    brandHost += pBrand[3];
672cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
673cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    switch (brandHost)
674cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
675cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_0000:
676cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "0000";
677cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
678cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_3G2A:
679cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "3G2A";
680cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
681cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_3GP4:
682cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "3GP4";
683cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
684cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_3GP5:
685cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "3GP5";
686cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
687cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_3GP6:
688cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "3GP6";
689cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
690cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_AVC1:
691cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "AVC1";
692cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
693cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_EMP:
694cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "EMP";
695cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
696cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_ISOM:
697cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "ISOM";
698cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
699cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_MP41:
700cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "MP41";
701cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
702cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_MP42:
703cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "MP42";
704cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
705cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    case M4VIDEOEDITING_BRAND_VFJ1:
706cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = "VFJ1";
707cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
708cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    default:
709cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4OSA_chrSPrintf((M4OSA_Char *)brandString,
710cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         sizeof(brandString) - 1,
711cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         (M4OSA_Char*)"0x%08X", brandHost);
712cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pBrandString = brandString;
713cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        break;
714cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
715cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
716cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Return the brand string.
717cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    return(pBrandString);
718cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
719cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
720cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
721cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargistatic void
722cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logFtypBox(
723cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VIDEOEDITING_FtypBox*             pBox,
724cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
725cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
726cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the FtypBox.
727cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pBox)
728cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
729cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
730cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "%*c major_brand:        %s",    indentation, ' ',
731cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                 videoEditClasses_getBrandString(pBox->major_brand));
732cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
733cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "%*c minor_version:      %08X",  indentation, ' ',
734cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (unsigned int)pBox->minor_version);
735cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
736cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "%*c nbCompatibleBrands: %u",    indentation, ' ',
737cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (unsigned int)pBox->nbCompatibleBrands);
738cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
739cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "%*c compatible_brands:", indentation, ' ');
740cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                indentation += VIDEOEDIT_LOG_INDENTATION;
741cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        for (int i = 0; (i < (int)pBox->nbCompatibleBrands) &&\
742cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         (i < M4VIDEOEDITING_MAX_COMPATIBLE_BRANDS); i++)
743cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
744cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
745cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "%*c compatible_brand[%d]: %s",    indentation, ' ',
746cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    i, videoEditClasses_getBrandString(pBox->compatible_brands[i]));
747cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
748cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        indentation -= VIDEOEDIT_LOG_INDENTATION;
749cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
750cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
751cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
752cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c <null>",
753cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                 indentation, ' ');
754cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
755cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
756cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
757cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
758cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
759cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
760cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_init(
761cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
762cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv)
763cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
764cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
765cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
766cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
767cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
768cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",\
769cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        "videoEditClasses_init()");
770cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
771cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Initialize the constants.
772cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initAudioEffectConstants(pResult, pEnv);
773cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initAudioFormatConstants(pResult, pEnv);
774cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initAudioSamplingFrequencyConstants(pResult, pEnv);
775cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initAudioTransitionConstants(pResult, pEnv);
776cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initBitrateConstants(pResult, pEnv);
777cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initClipTypeConstants(pResult, pEnv);
778cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initEngineConstants(pResult, pEnv);
779cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initErrorConstants(pResult, pEnv);
780cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initFileTypeConstants(pResult, pEnv);
781cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initMediaRenderingConstants(pResult, pEnv);
782cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initSlideDirectionConstants(pResult, pEnv);
783cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initTransitionBehaviourConstants(pResult, pEnv);
784cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVideoEffectConstants(pResult, pEnv);
785cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVideoFormatConstants(pResult, pEnv);
786cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVideoFrameRateConstants(pResult, pEnv);
787cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVideoFrameSizeConstants(pResult, pEnv);
788cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVideoTransitionConstants(pResult, pEnv);
789cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
790cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Initialize the fields.
791cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initAlphaMagicFields(pResult, pEnv);
792cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initBackgroundMusicFields(pResult, pEnv);
793cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initClipSettingsFields(pResult, pEnv);
794cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initEditSettingsFields(pResult, pEnv);
795cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initEffectSettingsFields(pResult, pEnv);
796cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initEngineFields(pResult, pEnv);
797cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initSlideTransitionSettingsFields(pResult, pEnv);
798cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initTransitionSettingsFields(pResult, pEnv);
799cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVersionFields(pResult, pEnv);
800cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Initialize the methods.
801cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initEngineMethods(pResult, pEnv);
802cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
803cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
804cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
805cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
806cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditPropClass_init(
807cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
808cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv)
809cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
810cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
811cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
812cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
813cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
814cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",\
815cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "videoEditPropClass_init()");
816cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
817cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Initialize the constants.
818cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initAudioFormatConstants(pResult, pEnv);
819cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initErrorConstants(pResult, pEnv);
820cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initFileTypeConstants(pResult, pEnv);
821cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initVideoFormatConstants(pResult, pEnv);
822cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
823cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Initialize the fields.
824cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_initPropertiesFields(pResult, pEnv);
825cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
826cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
827cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
828cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
829cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getAlphaMagicSettings(
830cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
831cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
832cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
833cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_AlphaMagicSettings**         ppSettings)
834cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
8354fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_AlphaMagicFieldIds fieldIds;
836cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4xVSS_AlphaMagicSettings* pSettings = M4OSA_NULL;
8374fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_AlphaMagicFieldIds));
838cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
839cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
840cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
841cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
842cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
843cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
844cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                   "videoEditClasses_getAlphaMagicSettings()");
845cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
846cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
847cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getAlphaMagicFieldIds(pResult, pEnv, &fieldIds);
848cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
849cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
850cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only validate the AlphaMagicSettings if the fields could be located.
851cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
852cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
853cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the clip is set.
854cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
855cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    (NULL == object),
856cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    "alphaSettings is null");
857cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
858cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
859cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the AlphaMagicSettings if the fields could be located and validated.
860cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
861cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
862cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate memory for the AlphaMagicSettings.
863cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings = (M4xVSS_AlphaMagicSettings*)videoEditOsal_alloc(pResult, pEnv,
864cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                sizeof(M4xVSS_AlphaMagicSettings), "AlphaMagicSettings");
865cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
866cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if memory could be allocated for the AlphaMagicSettings.
867cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
868cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
869cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the alpha magic file path (JPG file).
870cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->pAlphaFilePath = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv, object,
871cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    fieldIds.file, M4OSA_NULL);
872cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
873cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the alpha magic file path is valid.
874cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
875cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4OSA_NULL == pSettings->pAlphaFilePath), "alphaSettings.file is null");
876cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
877cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
878cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the alpha file path could be retrieved.
879cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
880cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
881cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the blending percentage between 0 and 100.
882cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->blendingPercent = (M4OSA_UInt8)pEnv->GetIntField(object,
883cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    fieldIds.blendingPercent);
884cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
885cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the direct effect or reverse.
886cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->isreverse = (M4OSA_Bool)pEnv->GetBooleanField(object,
887cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    fieldIds.invertRotation);
888cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
889cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Get the rgb width
890cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->width = (M4OSA_UInt32) pEnv->GetIntField(object, fieldIds.rgbWidth );
891cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
892cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->height = (M4OSA_UInt32) pEnv->GetIntField(object, fieldIds.rgbHeight );
893cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
894cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
895cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "((((((((((path %s", pSettings->pAlphaFilePath);
896cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
897cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
898cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "------- getAlphaMagicSettings width %d", pEnv->GetIntField(object,
899cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    fieldIds.rgbWidth ));
900cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
901cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                   "-------- getAlphaMagicSettings Height %d",
902cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                   pEnv->GetIntField(object, fieldIds.rgbHeight ));
903cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
904cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
905cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if settings could be set.
906cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
907cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
908cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the settings.
909cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*ppSettings) = pSettings;
910cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
911cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        else
912cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
913cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the settings.
914cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeAlphaMagicSettings(&pSettings);
915cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
916cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
917cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
918cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
919cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
920cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeAlphaMagicSettings(
921cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_AlphaMagicSettings**         ppSettings)
922cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
923cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the AlphaMagicSettings.
924cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != (*ppSettings))
925cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
926cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
927cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
928cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                  "videoEditClasses_freeAlphaMagicSettings()");
929cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
930cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the alpha file path.
931cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings)->pAlphaFilePath);
932cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->pAlphaFilePath = M4OSA_NULL;
933cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
934cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the settings structure.
935cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings));
936cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings) = M4OSA_NULL;
937cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
938cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
939cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
940cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
941cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
942cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logAlphaMagicSettings(
943cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_AlphaMagicSettings*          pSettings,
944cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
945cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
946cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the AlphaMagicSettings.
947cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
948cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
949cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
950cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             "%*c pAlphaFilePath:  %s",    indentation, ' ',
951cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pAlphaFilePath) ? \
952cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (char *)pSettings->pAlphaFilePath : "<null>");
953cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
954cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             "%*c blendingPercent: %u %%", indentation, ' ',
955cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->blendingPercent);
956cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
957cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c isreverse:       %s",    indentation, ' ',
958cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->isreverse ? "true" : "false");
959cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
960cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
961cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
962cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
963cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c <null>", indentation, ' ');
964cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
965cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
966cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
967cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
968cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
969cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
970cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getBackgroundMusicSettings(
971cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
972cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
973cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
974cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_BGMSettings**                ppSettings)
975cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
9764fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_BackgroundMusicFieldIds fieldIds;
977cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4xVSS_BGMSettings*           pSettings = M4OSA_NULL;
978cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    bool                          converted = true;
9794fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_BackgroundMusicFieldIds));
980cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
981cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
982cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
983cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
984cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
985cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi               "videoEditClasses_getBackgroundMusicSettings()");
986cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
987cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
988cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getBackgroundMusicFieldIds(pResult, pEnv, &fieldIds);
989cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
990cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
991cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the BackgroundMusicSettings if the fields could be located.
992cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
993cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
994cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the object is valid.
995cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (NULL != object)
996cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
997cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Allocate memory for the BackgroundMusicSettings.
998cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings = (M4xVSS_BGMSettings*)videoEditOsal_alloc(pResult, pEnv,
999cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                sizeof(M4xVSS_BGMSettings), "BackgroundMusicSettings");
1000cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1001cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if memory could be allocated for the BackgroundMusicSettings.
1002cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
1003cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1004cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the input file path.
1005cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->pFile = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv, object,
1006cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        fieldIds.file, M4OSA_NULL);
1007cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1008cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the input file path is valid.
1009cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1010cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4OSA_NULL == pSettings->pFile), "backgroundMusicSettings.file is null");
1011cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1012cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1013cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the input file path could be retrieved.
1014cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
1015cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1016cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the file type .3gp, .amr, .mp3.
1017cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->FileType = M4VIDEOEDITING_kFileType_PCM;
1018cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                /*(M4VIDEOEDITING_FileType)videoEditJava_getClipTypeJavaToC(
1019cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                 &converted, pEnv->GetIntField(object, fieldIds.fileType));*/
1020cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1021cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the file type is valid.
1022cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1023cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        !converted, "backgroundMusicSettings.fileType is invalid");
1024cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1025cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1026cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the file type could be retrieved.
1027cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
1028cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1029cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the time, in milliseconds, at which the added audio track is inserted.
1030cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiAddCts = (M4OSA_UInt32)pEnv->GetLongField(object,
1031cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        fieldIds.insertionTime);
1032cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1033cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the volume, in percentage (0..100), of the added audio track.
1034cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiAddVolume = (M4OSA_UInt32)pEnv->GetIntField(object,
1035cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        fieldIds.volumePercent);
1036cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1037cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the start time of the loop in milli seconds.
1038cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiBeginLoop = (M4OSA_UInt32)pEnv->GetLongField(object,
1039cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        fieldIds.beginLoop);
1040cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1041cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the end time of the loop in milli seconds.
1042cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiEndLoop = (M4OSA_UInt32)pEnv->GetLongField(object,
1043cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        fieldIds.endLoop);
1044cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the end time of the loop in milli seconds.
1045cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->b_DuckingNeedeed =
1046cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4OSA_Bool)pEnv->GetBooleanField(object, fieldIds.enableDucking);
1047cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1048cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the end time of the loop in milli seconds.
1049cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->InDucking_threshold =
1050cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4OSA_Int32)pEnv->GetIntField(object, fieldIds.duckingThreshold);
1051cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1052cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the end time of the loop in milli seconds.
1053cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->lowVolume =
1054cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4OSA_Float)(((M4OSA_Float)pEnv->GetIntField(object, fieldIds.lowVolume)));
1055cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1056cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the end time of the loop in milli seconds.
1057cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->bLoop = (M4OSA_Bool)pEnv->GetBooleanField(object, fieldIds.isLooping);
1058cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1059cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set sampling freq and channels
1060cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiSamplingFrequency = M4VIDEOEDITING_k32000_ASF;
1061cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiNumChannels = 2;
1062cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1063cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1064cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if settings could be set.
1065cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
1066cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1067cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Return the settings.
1068cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (*ppSettings) = pSettings;
1069cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1070cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            else
1071cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1072cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Free the settings.
1073cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_freeBackgroundMusicSettings(&pSettings);
1074cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1075cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1076cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1077cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1078cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1079cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1080cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeBackgroundMusicSettings(
1081cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_BGMSettings**                ppSettings)
1082cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
1083cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the BackgroundMusicSettings.
1084cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != (*ppSettings))
1085cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1086cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
1087cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1088cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         "videoEditClasses_freeBackgroundMusicSettings()");
1089cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1090cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the input file path.
1091cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings)->pFile);
1092cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->pFile = M4OSA_NULL;
1093cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1094cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the settings structure.
1095cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings));
1096cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings) = M4OSA_NULL;
1097cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1098cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1099cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1100cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
1101cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1102cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logBackgroundMusicSettings(
1103cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_BGMSettings*                 pSettings,
1104cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
1105cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
1106cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the BackgroundMusicSettings.
1107cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
1108cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1109cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c pFile:       %s",
1110cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ',
1111cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pFile) ? (char *)pSettings->pFile : "<null>");
1112cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1113cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c FileType:    %s",    indentation, ' ',
1114cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getClipTypeString(pSettings->FileType));
1115cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1116cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c uiAddCts:    %u ms",
1117cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ', (unsigned int)pSettings->uiAddCts);
1118cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c uiAddVolume: %u %%",
1119cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ', (unsigned int)pSettings->uiAddVolume);
1120cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c uiBeginLoop: %u ms",
1121cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ', (unsigned int)pSettings->uiBeginLoop);
1122cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c uiEndLoop:   %u ms",
1123cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ', (unsigned int)pSettings->uiEndLoop);
1124cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c b_DuckingNeedeed:\
1125cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            %u ", indentation, ' ', (bool)pSettings->b_DuckingNeedeed);
1126cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c InDucking_threshold: \
1127cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            %u ms", indentation, ' ', (unsigned int)pSettings->InDucking_threshold);
1128cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c lowVolume:   %2.2f ",\
1129cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ', (float)pSettings->lowVolume);
1130cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c bLoop:   %u ms",\
1131cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ', (bool)pSettings->bLoop);
1132cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1133cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
1134cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1135cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c <null>",
1136cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ');
1137cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1138cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1139cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
1140cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1141cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
1142cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1143cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logClipProperties(
1144cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VIDEOEDITING_ClipProperties*      pProperties,
1145cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
1146cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
1147cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the ClipProperties.
1148cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pProperties)
1149cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1150cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1151cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bAnalysed:                        %s",       indentation, ' ',
1152cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bAnalysed ? "true" : "false");
1153cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1154cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c Version:                          %d.%d.%d", indentation, ' ',
1155cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->Version[0], pProperties->Version[1], pProperties->Version[2]);
1156cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1157cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipDuration:                   %u",       indentation, ' ',
1158cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiClipDuration);
1159cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1160cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c FileType:                         %s",       indentation, ' ',
1161cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getClipTypeString(pProperties->FileType));
1162cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c ftyp:",
1163cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                              indentation, ' ');
1164cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditClasses_logFtypBox(&pProperties->ftyp, indentation + VIDEOEDIT_LOG_INDENTATION);
1165cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1166cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1167cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c VideoStreamType:                  %s",       indentation, ' ',
1168cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getVideoFormatString(pProperties->VideoStreamType));
1169cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1170cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipVideoDuration:              %u",       indentation, ' ',
1171cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiClipVideoDuration);
1172cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1173cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoBitrate:                   %s",       indentation, ' ',
1174cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getBitrateString(pProperties->uiVideoBitrate));
1175cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1176cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoMaxAuSize:                 %u",       indentation, ' ',
1177cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiVideoMaxAuSize);
1178cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1179cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoWidth:                     %u",       indentation, ' ',
1180cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiVideoWidth);
1181cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1182cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoHeight:                    %u",       indentation, ' ',
1183cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)(unsigned int)pProperties->uiVideoHeight);
1184cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1185cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoTimeScale:                 %u",       indentation, ' ',
1186cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiVideoTimeScale);
1187cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1188cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c fAverageFrameRate:                %.3f",     indentation, ' ',
1189cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->fAverageFrameRate);
1190cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1191cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bMPEG4dataPartition:              %s",       indentation, ' ',
1192cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bMPEG4dataPartition ? "true" : "false");
1193cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1194cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bMPEG4rvlc:                       %s",       indentation, ' ',
1195cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bMPEG4rvlc ? "true" : "false");
1196cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1197cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bMPEG4resynchMarker:              %s",       indentation, ' ',
1198cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bMPEG4resynchMarker ? "true" : "false");
1199cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1200cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c AudioStreamType:                  %s",       indentation, ' ',
1201cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getAudioFormatString(pProperties->AudioStreamType));
1202cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1203cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipAudioDuration:              %u",       indentation, ' ',
1204cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiClipAudioDuration);
1205cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1206cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiAudioBitrate:                   %s",       indentation, ' ',
1207cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getBitrateString(pProperties->uiAudioBitrate));
1208cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1209cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiAudioMaxAuSize:                 %u",       indentation, ' ',
1210cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiAudioMaxAuSize);
1211cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1212cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiNbChannels:                     %u",       indentation, ' ',
1213cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiNbChannels);
1214cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1215cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiSamplingFrequency:              %u",       indentation, ' ',
1216cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiSamplingFrequency);
1217cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1218cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiExtendedSamplingFrequency:      %u",       indentation, ' ',
1219cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiExtendedSamplingFrequency);
1220cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1221cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiDecodedPcmSize:                 %u",       indentation, ' ',
1222cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiDecodedPcmSize);
1223cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1224cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bVideoIsEditable:                 %s",       indentation, ' ',
1225cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bVideoIsEditable ? "true" : "false");
1226cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1227cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bAudioIsEditable:                 %s",       indentation, ' ',
1228cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bAudioIsEditable ? "true" : "false");
1229cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1230cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bVideoIsCompatibleWithMasterClip: %s",       indentation, ' ',
1231cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bVideoIsCompatibleWithMasterClip ? "true" : "false");
1232cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1233cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bAudioIsCompatibleWithMasterClip: %s",       indentation, ' ',
1234cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->bAudioIsCompatibleWithMasterClip ? "true" : "false");
1235cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1236cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipAudioVolumePercentage:      %d",       indentation, ' ',
1237cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        pProperties->uiClipAudioVolumePercentage);
1238cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1239cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
1240cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1241cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES", "%*c <null>",
1242cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation, ' ');
1243cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1244cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1245cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
1246cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1247cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1248cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getClipSettings(
1249cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
1250cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
1251cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
1252cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_ClipSettings**            ppSettings)
1253cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
12544fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru
12554fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_ClipSettingsFieldIds fieldIds;
1256cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4VSS3GPP_ClipSettings*    pSettings = M4OSA_NULL;
1257cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4OSA_ERR                  result    = M4NO_ERROR;
1258cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    bool                       converted = true;
12594fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_ClipSettingsFieldIds));
1260cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
1261cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1262cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1263cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
1264cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1265cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "videoEditClasses_getClipSettings()");
1266cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1267cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
1268cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getClipSettingsFieldIds(pResult, pEnv, &fieldIds);
1269cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1270cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1271cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only validate the ClipSettings if the fields could be located.
1272cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1273cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1274cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the clip is set.
1275cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1276cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    (NULL == object),
1277cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    "clip is null");
1278cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1279cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1280cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the ClipSettings if the fields could be located and validated.
1281cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1282cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1283cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate memory for the ClipSettings.
1284cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings = (M4VSS3GPP_ClipSettings *)videoEditOsal_alloc(pResult, pEnv,
1285cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            sizeof(M4VSS3GPP_ClipSettings), "ClipSettings");
1286cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1287cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if memory could be allocated for the ClipSettings.
1288cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
1289cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1290cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Log the API call.
1291cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_API(ANDROID_LOG_INFO, "VIDEO_EDITOR", "M4xVSS_CreateClipSettings()");
1292cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1293cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Initialize the ClipSettings.
1294cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            result = M4xVSS_CreateClipSettings(pSettings, NULL, 0, 0);
1295cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1296cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Log the result.
1297cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_RESULT(ANDROID_LOG_INFO, "VIDEO_EDITOR",
1298cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditOsal_getResultString(result));
1299cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1300cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the initialization succeeded.
1301cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowRuntimeException(pResult, pEnv,
1302cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4NO_ERROR != result), result);
1303cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1304cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1305cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the allocation and initialization succeeded
1306cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        //(required because pSettings is dereferenced).
1307cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
1308cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1309cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the input file path.
1310cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->pFile = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv, object,
1311cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.clipPath, &pSettings->filePathSize);
1312cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1313cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the file path is valid.
1314cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1315cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4OSA_NULL == pSettings->pFile), "clip.clipPath is null");
1316cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1317cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1318cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the input file could be retrieved.
1319cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
1320cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1321cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the file type .3gp, .amr, .mp3.
1322cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->FileType = (M4VIDEOEDITING_FileType)videoEditJava_getClipTypeJavaToC(
1323cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                        &converted, pEnv->GetIntField(object, fieldIds.fileType));
1324cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1325d7ed5992634596a53f32f66277de6d287ffb752fShailendra            if (( pSettings->FileType == M4VIDEOEDITING_kFileType_JPG) ||
1326d7ed5992634596a53f32f66277de6d287ffb752fShailendra                 ( pSettings->FileType == M4VIDEOEDITING_kFileType_PNG)) {
1327cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                 pSettings->FileType = M4VIDEOEDITING_kFileType_ARGB8888;
1328cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1329cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1330cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the file type is valid.
1331cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1332cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    !converted, "clip.fileType is invalid");
1333cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1334cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1335cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the file type could be retrieved.
1336cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
1337cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1338cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the begin cut time, in milliseconds.
1339cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->uiBeginCutTime =
1340cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.beginCutTime);
1341cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1342cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the end cut time, in milliseconds.
1343cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->uiEndCutTime = (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.endCutTime);
1344cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1345cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the begin cut time, in percent of clip duration (only for 3GPP clip !).
1346cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uiBeginCutPercent =
1347cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.beginCutPercent);
1348cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1349cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the end cut time, in percent of clip duration (only for 3GPP clip !).
1350cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uiEndCutPercent =
1351cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.endCutPercent);
1352cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1353cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the duration of the clip, if different from 0,
1354cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // has priority on uiEndCutTime or uiEndCutPercent.
1355cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uiDuration = 0;
1356cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1357cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set whether or not the pan and zoom mode is enabled.
1358cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.isPanZoom =
1359cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_Bool)pEnv->GetBooleanField(object, fieldIds.panZoomEnabled);
1360cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1361cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the pan and zoom start zoom percentage.
1362cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomXa        =
1363cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.panZoomPercentStart);
1364cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1365cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the pan and zoom start x.
1366cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftXa =
1367cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.panZoomTopLeftXStart);
1368cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1369cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the pan and zoom start y.
1370cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftYa =
1371cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.panZoomTopLeftYStart);
1372cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1373cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the pan and zoom end zoom percentage.
1374cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomXb        =
1375cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.panZoomPercentEnd);
1376cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1377cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the pan and zoom end x.
1378cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftXb =
1379cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.panZoomTopLeftXEnd);
1380cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1381cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the pan and zoom end y.
1382cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftYb =
1383cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.panZoomTopLeftYEnd);
1384cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1385cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the media rendering mode, only used with JPEG to crop, resize,
1386cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // or render black borders.
1387cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.MediaRendering =
1388cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4xVSS_MediaRendering)videoEditJava_getMediaRenderingJavaToC(
1389cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    &converted, pEnv->GetIntField(object,fieldIds.mediaRendering));
1390cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1391cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the media rendering is valid.
1392cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv, !converted,
1393cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "clip.mediaRendering is invalid");
1394cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1395cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             // Capture the rgb file width and height
1396cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->ClipProperties.uiStillPicWidth =
1397cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.rgbFileWidth);
1398cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->ClipProperties.uiStillPicHeight  =
1399cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_UInt16)pEnv->GetIntField(object, fieldIds.rgbFileHeight);
1400cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1401cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR", \
1402cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "getClipSettings-- rgbFileWidth %d ",
1403cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->ClipProperties.uiStillPicWidth);
1404cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR", \
1405cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "getClipSettings-- rgbFileHeight %d ",
1406cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->ClipProperties.uiStillPicHeight);
1407c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury
1408c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury            // Set the video rotation degree
1409c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury            pSettings->ClipProperties.videoRotationDegrees =
1410c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury                (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.rotationDegree);
1411cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1412cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1413cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if settings could be set.
1414cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
1415cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1416cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the settings.
1417cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*ppSettings) = pSettings;
1418cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1419cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        else
1420cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1421cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the settings.
1422cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeClipSettings(&pSettings);
1423cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1424cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1425cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1426cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1427cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1428cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_createClipSettings(
1429cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
1430cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
1431cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_ClipSettings*             pSettings,
1432cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject*                            pObject)
1433cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
14344fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_ClipSettingsFieldIds fieldIds;
1435cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jclass                     clazz    = NULL;
1436cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                    object   = NULL;
14374fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_ClipSettingsFieldIds));
1438cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1439cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
1440cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1441cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1442cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
1443cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1444cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "videoEditClasses_createClipSettings()");
1445cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1446cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the class.
1447cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getClipSettingsClass(pResult, pEnv, &clazz);
1448cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1449cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
1450cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getClipSettingsFieldIds(pResult, pEnv, &fieldIds);
1451cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1452cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1453cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only create an object if the class and fields could be located.
1454cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1455cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1456cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate a new object.
1457cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        object = pEnv->AllocObject(clazz);
1458cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (NULL != object)
1459cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1460cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the clipPath field.
1461cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetObjectField(object, fieldIds.clipPath, NULL);
1462cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1463cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the fileType field.
1464cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.fileType, videoEditJava_getClipTypeCToJava(
1465cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                                    pSettings->FileType));
1466cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1467cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the beginCutTime field.
1468cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.beginCutTime, pSettings->uiBeginCutTime);
1469cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1470cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the endCutTime field.
1471cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.endCutTime, pSettings->uiEndCutTime);
1472cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1473cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the beginCutPercent field.
1474cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.beginCutPercent, pSettings->xVSS.uiBeginCutPercent);
1475cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1476cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the endCutPercent field.
1477cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.endCutPercent, pSettings->xVSS.uiEndCutPercent);
1478cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1479cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomEnabled field.
1480cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetBooleanField(object, fieldIds.panZoomEnabled, pSettings->xVSS.isPanZoom);
1481cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1482cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomPercentStart field.
1483cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.panZoomPercentStart,
14849803b8435e973d7e44360b91fa6935d0e3981a76Dheeraj Sharma                (1000 - pSettings->xVSS.PanZoomXa));
1485cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1486cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomTopLeftXStart field.
1487cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.panZoomTopLeftXStart,
1488cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->xVSS.PanZoomTopleftXa);
1489cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1490cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomTopLeftYStart field.
1491cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.panZoomTopLeftYStart,
1492cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->xVSS.PanZoomTopleftYa);
1493cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1494cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomPercentEnd field.
1495cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.panZoomPercentEnd,
14969803b8435e973d7e44360b91fa6935d0e3981a76Dheeraj Sharma                (1000 - pSettings->xVSS.PanZoomXb));
1497cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1498cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomTopLeftXEnd field.
1499cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.panZoomTopLeftXEnd,
1500cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->xVSS.PanZoomTopleftXb);
1501cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1502cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the panZoomTopLeftYEnd field.
1503cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.panZoomTopLeftYEnd,
1504cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->xVSS.PanZoomTopleftYb);
1505cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1506cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the mediaRendering field.
1507cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.mediaRendering,
1508cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_getMediaRenderingCToJava(pSettings->xVSS.MediaRendering));
1509cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1510cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the rgb file width and height
1511cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.rgbFileWidth,
1512cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->ClipProperties.uiStillPicWidth );
1513cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1514cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.rgbFileHeight,
1515cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->ClipProperties.uiStillPicHeight );
1516cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1517cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1518cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "rgbFileWeight %d rgbFileHeight %d ",
1519cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->ClipProperties.uiStillPicWidth ,
1520cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->ClipProperties.uiStillPicHeight);
1521cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1522c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury            // Set the video rotation
1523c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury            pEnv->SetIntField(object, fieldIds.rotationDegree,
1524c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury                pSettings->ClipProperties.videoRotationDegrees);
1525c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury
1526cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the object.
1527cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*pObject) = object;
1528cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1529cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1530cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1531cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1532cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditPropClass_createProperties(
1533cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
1534cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
1535cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                VideoEditPropClass_Properties*      pProperties,
1536cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject*                            pObject)
1537cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
15384fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_PropertiesFieldIds fieldIds;
1539cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jclass                   clazz    = NULL;
1540cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                  object   = NULL;
15414fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_PropertiesFieldIds));
1542cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
1543cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1544cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1545cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
1546cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
1547cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "videoEditPropClass_createProperties()");
1548cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1549cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the class.
1550cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getPropertiesClass(pResult, pEnv, &clazz);
1551cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1552cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
1553cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getPropertiesFieldIds(pResult, pEnv, &fieldIds);
1554cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1555cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1556cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only create an object if the class and fields could be located.
1557cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1558cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1559cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate a new object.
1560cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        object = pEnv->AllocObject(clazz);
1561cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (NULL != object)
1562cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1563cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the duration field.
1564cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.duration, pProperties->uiClipDuration);
1565cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1566cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the fileType field.
1567cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.fileType,
1568cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_getFileTypeCToJava(pProperties->FileType));
1569cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1570cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the videoFormat field.
1571cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.videoFormat,
1572cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_getVideoFormatCToJava(pProperties->VideoStreamType));
1573cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1574cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the videoDuration field.
1575cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.videoDuration, pProperties->uiClipVideoDuration);
1576cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1577cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the videoBitrate field.
1578cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.videoBitrate, pProperties->uiVideoBitrate);
1579cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1580cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the width field.
1581cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.width, pProperties->uiVideoWidth);
1582cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1583cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the height field.
1584cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.height, pProperties->uiVideoHeight);
1585cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1586cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the averageFrameRate field.
1587cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetFloatField(object, fieldIds.averageFrameRate, pProperties->fAverageFrameRate);
1588cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
15893ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            // Set the profile field.
15903ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            pEnv->SetIntField(object, fieldIds.profile,
15913ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                pProperties->uiVideoProfile);
15923ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury
15933ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            // Set the level field.
15943ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            pEnv->SetIntField(object, fieldIds.level,
15953ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                pProperties->uiVideoLevel);
15963ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury
15973ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            // Set whether profile supported
15983ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            pEnv->SetBooleanField(object, fieldIds.profileSupported,
15993ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                pProperties->bProfileSupported);
16003ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury
16013ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            // Set whether level supported
16023ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            pEnv->SetBooleanField(object, fieldIds.levelSupported,
16033ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                pProperties->bLevelSupported);
1604cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1605cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the audioFormat field.
1606cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.audioFormat,
1607cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_getAudioFormatCToJava(pProperties->AudioStreamType));
1608cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1609cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the audioDuration field.
1610cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.audioDuration, pProperties->uiClipAudioDuration);
1611cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1612cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the audioBitrate field.
1613cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.audioBitrate, pProperties->uiAudioBitrate);
1614cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1615cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the audioChannels field.
1616cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.audioChannels, pProperties->uiNbChannels);
1617cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1618cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the audioSamplingFrequency field.
1619cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.audioSamplingFrequency,
1620cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pProperties->uiSamplingFrequency);
1621cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1622c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury            // Set the video rotation field.
1623c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury            pEnv->SetIntField(object, fieldIds.videoRotation, pProperties->uiRotation);
1624c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury
1625cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the object.
1626cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*pObject) = object;
1627cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1628cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1629cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1630cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1631cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1632cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeClipSettings(
1633cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_ClipSettings**            ppSettings)
1634cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
1635cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the ClipSettings.
1636cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != (*ppSettings))
1637cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1638cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
1639cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1640cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "videoEditClasses_freeClipSettings()");
1641cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1642cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the input file path.
1643cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings)->pFile);
1644cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->pFile = M4OSA_NULL;
1645cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->filePathSize = 0;
1646cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1647cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the clip settings.
1648cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4xVSS_FreeClipSettings((*ppSettings));
1649cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1650cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the settings structure.
1651cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings));
1652cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings) = M4OSA_NULL;
1653cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1654cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1655cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1656cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
1657cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1658cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logClipSettings(
1659cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_ClipSettings*             pSettings,
1660cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
1661cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
1662cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the ClipSettings.
1663cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
1664cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1665cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1666cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pFile:           %s", indentation, ' ',
1667cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pFile) ? (char*)pSettings->pFile : "<null>");
1668cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1669cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c FileType:        %s", indentation, ' ',
1670cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getClipTypeString(pSettings->FileType));
1671cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1672cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c filePathSize:    %u", indentation, ' ',
1673cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->filePathSize);
1674cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1675cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c ClipProperties:",  indentation, ' ');
1676cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditClasses_logClipProperties(&pSettings->ClipProperties,
1677cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation + VIDEOEDIT_LOG_INDENTATION);
1678cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1679cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiBeginCutTime:    %u ms", indentation, ' ',
1680cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->uiBeginCutTime);
1681cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1682cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiEndCutTime:      %u ms", indentation, ' ',
1683cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->uiEndCutTime);
1684cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1685cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiBeginCutPercent: %u %%", indentation, ' ',
1686cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiBeginCutPercent);
1687cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1688cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiEndCutPercent:   %u %%", indentation, ' ',
1689cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiEndCutPercent);
1690cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1691cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiDuration:        %u ms", indentation, ' ',
1692cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiDuration);
1693cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1694cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c isPanZoom:         %s",    indentation, ' ',
1695cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.isPanZoom ? "true" : "false");
1696cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1697cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PanZoomXa:         %d ms", indentation, ' ',
1698cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomXa);
1699cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1700cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PanZoomTopleftXa:  %d ms", indentation, ' ',
1701cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftXa);
1702cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1703cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PanZoomTopleftYa:  %d ms", indentation, ' ',
1704cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftYa);
1705cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1706cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PanZoomXb:         %d ms", indentation, ' ',
1707cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomXb);
1708cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1709cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PanZoomTopleftXb:  %d ms", indentation, ' ',
1710cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftXb);
1711cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1712cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PanZoomTopleftYb:  %d ms", indentation, ' ',
1713cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.PanZoomTopleftYb);
1714cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1715cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c MediaRendering:    %s",    indentation, ' ',
1716cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getMediaRenderingString(pSettings->xVSS.MediaRendering));
1717cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1718cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
1719cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1720cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1721cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c <null>", indentation, ' ');
1722cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1723cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
1724cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
1725cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1726cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1727cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
1728cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getEditSettings(
1729cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
1730cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
1731cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
1732cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_EditSettings**            ppSettings,
1733cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool                                flag)
1734cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
17354fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_EditSettingsFieldIds fieldIds;
1736cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobjectArray               clipSettingsArray           = NULL;
1737cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jsize                      clipSettingsArraySize       = 0;
1738cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                    clipSettings                = NULL;
1739cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobjectArray               transitionSettingsArray     = NULL;
1740cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jsize                      transitionSettingsArraySize = 0;
1741cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                    transitionSettings          = NULL;
1742cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobjectArray               effectSettingsArray         = NULL;
1743cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jsize                      effectSettingsArraySize     = 0;
1744cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                    effectSettings              = NULL;
1745cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                    backgroundMusicSettings     = NULL;
1746cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    int                        audioChannels               = 0;
1747cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4VSS3GPP_EditSettings*    pSettings                   = M4OSA_NULL;
1748cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    bool                       converted                   = true;
17494fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_EditSettingsFieldIds));
1750cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
1751cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1752cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1753cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
1754cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
1755cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "videoEditClasses_getEditSettings()");
1756cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1757cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
1758cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getEditSettingsFieldIds(pResult, pEnv, &fieldIds);
1759cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1760cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1761cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the EditSettings if the previous action succeeded.
1762cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1763cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1764cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the object is valid.
1765cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (NULL != object)
1766cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1767cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Retrieve the clipSettingsArray.
1768cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getArray(pResult, pEnv, object,
1769cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           fieldIds.clipSettingsArray,
1770cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           &clipSettingsArray,
1771cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           &clipSettingsArraySize);
1772cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1773cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Retrieve the transitionSettingsArray.
1774cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getArray(pResult, pEnv, object,
1775cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           fieldIds.transitionSettingsArray,
1776cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           &transitionSettingsArray,
1777cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           &transitionSettingsArraySize);
1778cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1779cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Retrieve the effectSettingsArray.
1780cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getArray(pResult, pEnv, object,
1781cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           fieldIds.effectSettingsArray,
1782cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           &effectSettingsArray,
1783cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           &effectSettingsArraySize);
1784cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1785cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Retrieve the backgroundMusicSettings.
1786cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getObject(pResult, pEnv, object, fieldIds.backgroundMusicSettings,
1787cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    &backgroundMusicSettings);
1788cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1789cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the arrays and background music settings object could be retrieved.
1790cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
1791cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1792cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Retrieve the number of channels.
1793cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                audioChannels = pEnv->GetIntField(object, fieldIds.audioChannels);
1794cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1795cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1796cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1797cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1798cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only validate the EditSettings if the fields could be located.
1799cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1800cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1801cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if there is at least one clip.
1802cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        //videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1803cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         //                                          (clipSettingsArraySize < 1),
1804cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         //                                          "there should be at least one clip");
1805cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if(clipSettingsArraySize < 1) {
1806cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            return;
1807cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1808cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if(flag)
1809cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1810cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if there are clips.
1811cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if ((clipSettingsArraySize != 0) || (transitionSettingsArraySize != 0))
1812cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1813cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // The number of transitions must be equal to the number of clips - 1.
1814cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1815cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         (clipSettingsArraySize != (transitionSettingsArraySize + 1)),
1816cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         "the number of transitions should be equal to the number of clips - 1");
1817cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
1818cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
1819cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
1820cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1821cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the EditSettings if the fields could be located.
1822cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
1823cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
1824cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the object is valid.
1825cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (NULL != object)
1826cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
1827cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Allocate memory for the EditSettings.
1828cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings = (M4VSS3GPP_EditSettings*)videoEditOsal_alloc(pResult, pEnv,
1829cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    sizeof(M4VSS3GPP_EditSettings), "EditSettings");
1830cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1831cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if memory could be allocated for the EditSettings.
1832cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
1833cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
1834cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the number of clips that will be edited.
1835cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pSettings->uiClipNumber = clipSettingsArraySize;
1836cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1837cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the clip settings array contains items.
1838cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (clipSettingsArraySize > 0)
1839cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1840cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Allocate memory for the clip settings array.
1841cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->pClipList = (M4VSS3GPP_ClipSettings **)videoEditOsal_alloc(pResult,
1842cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                pEnv,
1843cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                clipSettingsArraySize * sizeof(M4VSS3GPP_ClipSettings *),
1844cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                "ClipSettingsArray");
1845cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    if (*pResult)
1846cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    {
1847cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        // Loop over all clip settings objects.
1848cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        for (int i = 0; ((*pResult) && (i < clipSettingsArraySize)); i++)
1849cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        {
1850cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            // Get the clip settings object.
1851cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            clipSettings = pEnv->GetObjectArrayElement(clipSettingsArray, i);
1852cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1853cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            // Get the clip settings.
1854cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            videoEditClasses_getClipSettings(pResult, pEnv, clipSettings,
1855cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                &pSettings->pClipList[i]);
1856c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng
1857c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng                            // Free the local references to avoid memory leaks
1858c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng                            pEnv->DeleteLocalRef(clipSettings);
1859cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        }
1860cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    }
1861cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1862cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1863cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the transition settings array contains items.
1864cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (transitionSettingsArraySize > 0)
1865cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1866cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Allocate memory for the transition settings array.
1867cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->pTransitionList =
1868cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            (M4VSS3GPP_TransitionSettings **)videoEditOsal_alloc(pResult,
1869cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                pEnv, transitionSettingsArraySize * sizeof(M4VSS3GPP_TransitionSettings *),
1870cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                "TransitionSettingsArray");
1871cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    if (*pResult)
1872cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    {
1873cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        // Loop over all transition settings objects.
1874cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        for (int i = 0; ((*pResult) && (i < transitionSettingsArraySize)); i++)
1875cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        {
1876cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            // Get the transition settings object.
1877cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            transitionSettings =
1878cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                    pEnv->GetObjectArrayElement(transitionSettingsArray, i);
1879cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1880cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            // Get the transition settings.
1881cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            videoEditClasses_getTransitionSettings(pResult, pEnv,
1882cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                    transitionSettings, &pSettings->pTransitionList[i]);
1883c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng
1884c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng                            // Free the local references to avoid memory leaks
1885c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng                            pEnv->DeleteLocalRef(transitionSettings);
1886cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        }
1887cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    }
1888cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1889cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1890cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the effect settings array contains items.
1891cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (effectSettingsArraySize > 0)
1892cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1893cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Allocate memory for the effect settings array.
1894cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->Effects = (M4VSS3GPP_EffectSettings*)videoEditOsal_alloc(pResult,
1895cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                pEnv,
1896cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                effectSettingsArraySize * sizeof(M4VSS3GPP_EffectSettings),
1897cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                "EffectSettingsArray");
1898cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    if (*pResult)
1899cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    {
1900cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        // Loop over all effect settings objects.
1901cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        for (int i = 0; ((*pResult) && (i < effectSettingsArraySize)); i++)
1902cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        {
1903cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            // Get the effect settings object.
1904cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            effectSettings = pEnv->GetObjectArrayElement(effectSettingsArray, i);
1905cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1906cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            // Get the effect settings.
1907cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            videoEditClasses_getEffectSettings(pResult, pEnv, effectSettings,
1908cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                    &pSettings->Effects[i]);
1909c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng
1910c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng                            // Free the local references to avoid memory leaks
1911c96a7294a4ec7f807dbe0fd82a2ba2d58008304bwfeng                            pEnv->DeleteLocalRef(effectSettings);
1912cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        }
1913cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    }
1914cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1915cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1916cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the clips, transitions and effects could be set.
1917cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
1918cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1919cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the number of effects in the clip.
1920cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->nbEffects = (M4OSA_UInt8)effectSettingsArraySize;
1921cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1922cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the frame rate of the output video.
1923cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->videoFrameRate =
1924cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4VIDEOEDITING_VideoFramerate)videoEditJava_getVideoFrameRateJavaToC(
1925cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             &converted, pEnv->GetIntField(object, fieldIds.videoFrameRate));
1926cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1927cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Check if the frame rate is valid.
1928cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1929cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        !converted, "editSettings.videoFrameRate is invalid");
1930cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1931cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1932cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the frame rate could be set.
1933cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
1934cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1935cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the path of the output file.
1936cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->pOutputFile = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv,
1937cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        object, fieldIds.outputFile, &pSettings->uiOutputPathSize);
1938cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1939cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1940cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if path of the output file could be set.
1941cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
1942cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1943cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the path of the temporary file produced when using
1944cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // the constant memory 3gp writer.
1945cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->pTemporaryFile = M4OSA_NULL;
1946cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1947cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the output video size.
1948cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputVideoSize =
1949cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4VIDEOEDITING_VideoFrameSize)videoEditJava_getVideoFrameSizeJavaToC(
1950cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                &converted, pEnv->GetIntField(object, fieldIds.videoFrameSize));
1951cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1952cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Check if the output video size is valid.
1953cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1954cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        !converted, "editSettings.videoFrameSize is invalid");
1955cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1956cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1957cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the output video size could be set.
1958cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
1959cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1960cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the output video format.
1961cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputVideoFormat =
1962cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4VIDEOEDITING_VideoFormat)videoEditJava_getVideoFormatJavaToC(
1963cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               &converted, pEnv->GetIntField(object, fieldIds.videoFormat));
1964cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1965cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Check if the output video format is valid.
1966cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1967cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        !converted, "editSettings.videoFormat is invalid");
1968cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1969cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1970cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the output video format could be set.
1971cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
1972cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1973cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the output audio format.
1974cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputAudioFormat =
1975cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            (M4VIDEOEDITING_AudioFormat)videoEditJava_getAudioFormatJavaToC(
1976cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                  &converted, pEnv->GetIntField(object, fieldIds.audioFormat));
1977cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1978cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Check if the output audio format is valid.
1979cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1980cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            !converted, "editSettings.audioFormat is invalid");
1981cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1982cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1983cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the output audio format could be set.
1984cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
1985cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
1986cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the output audio sampling frequency when not replacing the audio,
1987cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // or replacing it with MP3 audio.
1988cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputAudioSamplFreq =
1989cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4VIDEOEDITING_AudioSamplingFrequency)\
1990cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            videoEditJava_getAudioSamplingFrequencyJavaToC(
1991cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                &converted, pEnv->GetIntField(object, fieldIds.audioSamplingFreq));
1992cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1993cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Check if the output audio sampling frequency is valid.
1994cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
1995cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            !converted, "editSettings.audioSamplingFreq is invalid");
1996cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
1997cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
1998cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the output audio sampling frequency could be set.
1999cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
2000cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
2001cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Check if the number of audio channels is valid.
2002cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2003cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        ((0 != audioChannels ) ||
2004cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        ((M4VIDEOEDITING_kNoneAudio != pSettings->xVSS.outputAudioFormat) &&
2005cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (M4VIDEOEDITING_kNullAudio != pSettings->xVSS.outputAudioFormat) ) ) &&
2006cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (1 != audioChannels ) &&
2007cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        (2 != audioChannels ),
2008cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        "editSettings.audioChannels must be set to 0, 1 or 2");
2009cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
2010cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2011cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Check if the number of audio channels is valid.
2012cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                if (*pResult)
2013cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
2014cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the maximum output file size (MMS usecase).
2015cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputFileSize = (M4OSA_UInt32)pEnv->GetIntField(object,
2016cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            fieldIds.maxFileSize);
2017cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2018cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Whether or not the audio is mono, only valid for AAC.
2019cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.bAudioMono = (M4OSA_Bool)(1 == audioChannels);
2020cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2021cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the output video bitrate.
2022cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputVideoBitrate = (M4OSA_UInt32)pEnv->GetIntField(object,
2023cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            fieldIds.videoBitrate);
2024cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
20253ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                    // Set the output video profile.
20263ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                    pSettings->xVSS.outputVideoProfile = (M4OSA_UInt32)pEnv->GetIntField(object,
20273ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                            fieldIds.videoProfile);
20283ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury
20293ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                    // Set the output video level.
20303ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                    pSettings->xVSS.outputVideoLevel = (M4OSA_UInt32)pEnv->GetIntField(object,
20313ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury                            fieldIds.videoLevel);
20323ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury
2033cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the output audio bitrate.
2034cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.outputAudioBitrate = (M4OSA_UInt32)pEnv->GetIntField(object,
2035cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            fieldIds.audioBitrate);
2036cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2037cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the background music settings.
2038cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditClasses_getBackgroundMusicSettings(pResult, pEnv,
2039cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            backgroundMusicSettings, &pSettings->xVSS.pBGMtrack);
2040cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2041cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Set the text rendering function (will be set elsewhere).
2042cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->xVSS.pTextRenderingFct = M4OSA_NULL;
2043cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    pSettings->PTVolLevel =
2044cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            (M4OSA_Float)pEnv->GetIntField(object, fieldIds.primaryTrackVolume);
2045cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
2046cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2047cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2048cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if settings could be set.
2049cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (*pResult)
2050cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2051cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Return the settings.
2052cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (*ppSettings) = pSettings;
2053cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2054cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            else
2055cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2056cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Free the settings.
2057cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_freeEditSettings(&pSettings);
2058cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2059cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2060cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2061cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2062cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2063cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2064cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeEditSettings(
2065cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_EditSettings**            ppSettings)
2066cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2067cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the EditSettings.
2068cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != (*ppSettings))
2069cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2070cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2071cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2072cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "videoEditClasses_freeEditSettings()");
2073cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2074cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the background music settings.
2075cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditClasses_freeBackgroundMusicSettings(&(*ppSettings)->xVSS.pBGMtrack);
2076cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2077cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the path of the output file.
2078cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings)->pOutputFile);
2079cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->pOutputFile = M4OSA_NULL;
2080cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->uiOutputPathSize = 0;
2081cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2082cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the EffectSettings should be freed.
2083cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (M4OSA_NULL != (*ppSettings)->Effects)
2084cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2085cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Loop over all effect settings.
2086cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            for (int i = 0; i < (*ppSettings)->nbEffects; i++)
2087cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2088cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Free the effect settings.
2089cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_freeEffectSettings(&(*ppSettings)->Effects[i]);
2090cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2091cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2092cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the memory for the effect settings array.
2093cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditOsal_free((*ppSettings)->Effects);
2094cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*ppSettings)->Effects = M4OSA_NULL;
2095cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2096cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2097cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Reset the number of effects in the clip.
2098cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->nbEffects = 0;
2099cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2100cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if there are clips.
2101cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (0 < (*ppSettings)->uiClipNumber)
2102cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2103cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the TransitionSettings should be freed.
2104cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (M4OSA_NULL != (*ppSettings)->pTransitionList)
2105cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2106cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Loop over all transition settings.
2107cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                for (int i = 0; i < ((*ppSettings)->uiClipNumber - 1); i++)
2108cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
2109cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Free the transition settings.
2110cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditClasses_freeTransitionSettings(&(*ppSettings)->pTransitionList[i]);
2111cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
2112cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2113cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Free the memory for the transition settings array.
2114cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditOsal_free((*ppSettings)->pTransitionList);
2115cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (*ppSettings)->pTransitionList = M4OSA_NULL;
2116cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2117cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2118cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the ClipSettings should be freed.
2119cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if (M4OSA_NULL != (*ppSettings)->pClipList)
2120cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2121cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Loop over all clip settings.
2122cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                for (int i = 0; i < (*ppSettings)->uiClipNumber; i++)
2123cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                {
2124cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    // Free the clip settings.
2125cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    videoEditClasses_freeClipSettings(&(*ppSettings)->pClipList[i]);
2126cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                }
2127cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2128cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Free the memory for the clip settings array.
2129cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditOsal_free((*ppSettings)->pClipList);
2130cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (*ppSettings)->pClipList = M4OSA_NULL;
2131cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2132cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2133cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2134cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Reset the number of clips.
2135cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings)->uiClipNumber = 0;
2136cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2137cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the settings structure.
2138cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings));
2139cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings) = M4OSA_NULL;
2140cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2141cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2142cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2143cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
2144cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2145cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logEditSettings(
2146cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_EditSettings*             pSettings,
2147cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
2148cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2149cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the EditSettings.
2150cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
2151cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2152cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2153cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipNumber:         %d", indentation, ' ',
2154cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->uiClipNumber);
2155cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2156cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiMasterClip:         %d", indentation, ' ',
2157cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->uiMasterClip);
2158cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2159cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pClipList:            %s", indentation, ' ',
2160cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pClipList) ? " " : "<null>");
2161cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (M4OSA_NULL != pSettings->pClipList)
2162cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2163cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation += VIDEOEDIT_LOG_INDENTATION;
2164cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            for (int i = 0; i < pSettings->uiClipNumber; i++)
2165cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2166cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2167cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "%*c pClipList[%d]:", indentation, ' ',
2168cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    i);
2169cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_logClipSettings(pSettings->pClipList[i],
2170cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    indentation + VIDEOEDIT_LOG_INDENTATION);
2171cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2172cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation -= VIDEOEDIT_LOG_INDENTATION;
2173cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2174cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2175cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pTransitionList:      %s", indentation, ' ',
2176cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pTransitionList) ? " " : "<null>");
2177cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (M4OSA_NULL != pSettings->pTransitionList)
2178cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2179cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation += VIDEOEDIT_LOG_INDENTATION;
2180cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            for (int i = 0; i < (pSettings->uiClipNumber - 1); i++)
2181cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2182cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2183cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "%*c pTransitionList[%d]:", indentation, ' ', i);
2184cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_logTransitionSettings(pSettings->pTransitionList[i],
2185cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    indentation + VIDEOEDIT_LOG_INDENTATION);
2186cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2187cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation -= VIDEOEDIT_LOG_INDENTATION;
2188cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2189cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2190cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c Effects:              %s", indentation, ' ',
2191cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->Effects)   ? " " : "<null>");
2192cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (M4OSA_NULL != pSettings->Effects)
2193cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2194cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation += VIDEOEDIT_LOG_INDENTATION;
2195cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            for (int i = 0; i < pSettings->nbEffects; i++)
2196cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2197cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2198cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "%*c Effects[%d]:", indentation, ' ',  i);
2199cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_logEffectSettings(&pSettings->Effects[i],
2200cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    indentation + VIDEOEDIT_LOG_INDENTATION);
2201cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2202cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation -= VIDEOEDIT_LOG_INDENTATION;
2203cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2204cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2205cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c nbEffects:            %d", indentation, ' ',
2206cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->nbEffects);
2207cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2208cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c videoFrameRate:       %s", indentation, ' ',
2209cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getVideoFrameRateString(pSettings->videoFrameRate));
2210cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2211cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pOutputFile:          %s", indentation, ' ',
2212cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pOutputFile) ? (char*)pSettings->pOutputFile : "<null>");
2213cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2214cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiOutputPathSize:     %u", indentation, ' ',
2215cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->uiOutputPathSize);
2216cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2217cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pTemporaryFile:       %s", indentation, ' ',
2218cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pTemporaryFile) ?\
2219cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             (char*)pSettings->pTemporaryFile : "<null>");
2220cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2221cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputVideoSize:      %s", indentation, ' ',
2222cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getVideoFrameSizeString(pSettings->xVSS.outputVideoSize));
2223cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2224cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputVideoFormat:    %s", indentation, ' ',
2225cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getVideoFormatString(pSettings->xVSS.outputVideoFormat));
2226cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
22273ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            "%*c outputVideoProfile:    %u", indentation, ' ',
22283ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            videoEditJava_getVideoFormatString(pSettings->xVSS.outputVideoProfile));
22293ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
22303ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            "%*c outputVideoLevel:    %u", indentation, ' ',
22313ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury            videoEditJava_getVideoFormatString(pSettings->xVSS.outputVideoLevel));
22323ced044154945f9d60983032278e00fe28f4ab1bRajneesh Chowdury        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2233cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputAudioFormat:    %s", indentation, ' ',
2234cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getAudioFormatString(pSettings->xVSS.outputAudioFormat));
2235cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2236cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputAudioSamplFreq: %s", indentation, ' ',
2237cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getAudioSamplingFrequencyString(pSettings->xVSS.outputAudioSamplFreq));
2238cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2239cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputFileSize:       %u", indentation, ' ',
2240cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.outputFileSize);
2241cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2242cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bAudioMono:           %s", indentation, ' ',
2243cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.bAudioMono ? "true" : "false");
2244cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2245cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputVideoBitrate:   %s", indentation, ' ',
2246cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getBitrateString(pSettings->xVSS.outputVideoBitrate));
2247cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2248cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c outputAudioBitrate:   %s", indentation, ' ',
2249cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getBitrateString(pSettings->xVSS.outputAudioBitrate));
2250cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2251cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pBGMtrack:",               indentation, ' ');
2252cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditClasses_logBackgroundMusicSettings(pSettings->xVSS.pBGMtrack,
2253cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation + VIDEOEDIT_LOG_INDENTATION);
2254cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2255cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pTextRenderingFct:    %s", indentation, ' ',
2256cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->xVSS.pTextRenderingFct) ? "set" : "<null>");
2257cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2258cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c PTVolLevel:       %u", indentation, ' ',
2259cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->PTVolLevel);
2260cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2261cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
2262cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2263cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2264cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c <null>", indentation, ' ');
2265cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2266cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2267cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
2268cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2269cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2270cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2271cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getEffectSettings(
2272cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
2273cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
2274cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
2275cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_EffectSettings*           pSettings)
2276cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
22774fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru
22784fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_EffectSettingsFieldIds fieldIds;
2279cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    bool                         converted = true;
22804fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_EffectSettingsFieldIds));
2281cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2282cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
2283cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2284cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2285cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2286cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2287cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi         "videoEditClasses_getEffectSettings()");
2288cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2289cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
2290cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getEffectSettingsFieldIds(pResult, pEnv, &fieldIds);
2291cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2292cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2293cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only validate the EffectSettings if the fields could be located.
2294cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2295cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2296cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the effect is set.
2297cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2298cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    (NULL == object),
2299cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    "effect is null");
2300cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2301cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2302cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the EffectSettings if the fields could be located and validated.
2303cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2304cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2305cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the start time in milliseconds.
2306cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->uiStartTime = (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.startTime);
2307cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2308cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the duration in milliseconds.
2309cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->uiDuration = (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.duration);
2310cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2311cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the video effect type, None, FadeIn, FadeOut, etc.
2312cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->VideoEffectType =
2313cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4VSS3GPP_VideoEffectType)videoEditJava_getVideoEffectJavaToC(
2314cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              &converted, pEnv->GetIntField(object, fieldIds.videoEffectType));
2315cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2316cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the video effect type is valid.
2317cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2318cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                !converted, "effect.videoEffectType is invalid");
2319cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2320cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2321cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the video effect type could be set.
2322cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2323cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2324cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the external effect function.
2325cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->ExtVideoEffectFct = M4OSA_NULL;
2326cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2327cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the context given to the external effect function.
2328cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->pExtVideoEffectFctCtxt = M4OSA_NULL;
2329cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2330cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the audio effect type, None, FadeIn, FadeOut.
2331cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->AudioEffectType =
2332cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4VSS3GPP_AudioEffectType)videoEditJava_getAudioEffectJavaToC(
2333cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        &converted, pEnv->GetIntField(object, fieldIds.audioEffectType));
2334cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2335cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the audio effect type is valid.
2336cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2337cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                !converted, "effect.audioEffectType is invalid");
2338cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2339cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2340cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the audio effect type could be set.
2341cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2342cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2343cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the start in percentage of the cut clip duration.
2344cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uiStartPercent = (M4OSA_UInt32)pEnv->GetIntField(object,
2345cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.startPercent);
2346cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2347cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the duration in percentage of the ((clip duration) - (effect starttime)).
2348cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uiDurationPercent = (M4OSA_UInt32)pEnv->GetIntField(object,
2349cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.durationPercent);
2350cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2351cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the framing file path (GIF/PNG file).
2352cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pFramingFilePath = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv,
2353cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                object, fieldIds.framingFile, M4OSA_NULL);
2354cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2355cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if this is a framing effect.
2356cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (M4xVSS_kVideoEffectType_Framing == (M4xVSS_VideoEffectType)pSettings->VideoEffectType)
2357cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2358cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the framing file path is valid.
2359cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2360cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4OSA_NULL == pSettings->xVSS.pFramingFilePath), "effect.framingFile is null");
2361cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2362cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2363cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2364cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the framing file path could be retrieved.
2365cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2366cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2367cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the Framing RGB565 buffer.
2368cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pFramingBuffer = M4OSA_NULL;
2369cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2370cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the top-left X coordinate in the output picture
2371cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // where the added frame will be displayed.
2372cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.topleft_x = (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.topLeftX);
2373cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2374cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the top-left Y coordinate in the output picture
2375cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // where the added frame will be displayed.
2376cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.topleft_y = (M4OSA_UInt32)pEnv->GetIntField(object, fieldIds.topLeftY);
2377cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2378cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set whether or not the framing image is resized to output video size.
2379cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.bResize =
2380cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4OSA_Bool)pEnv->GetBooleanField(object, fieldIds.framingResize);
2381cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2382cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the new size to which framing buffer needs to be resized to
2383cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.framingScaledSize =
2384cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                (M4VIDEOEDITING_VideoFrameSize)pEnv->GetIntField(object, fieldIds.framingScaledSize);
2385cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2386cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the text buffer.
2387cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pTextBuffer = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv, object,
2388cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.text, &pSettings->xVSS.textBufferSize);
2389cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2390cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2391cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the text buffer could be retrieved.
2392cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2393cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2394cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the data used by the font engine (size, color...).
2395cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pRenderingData = (M4OSA_Char*)videoEditJava_getString(pResult, pEnv,
2396cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                object, fieldIds.textRenderingData, M4OSA_NULL);
2397cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2398cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2399cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the text rendering data could be retrieved.
2400cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2401cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2402cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the text plane width.
2403cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uiTextBufferWidth = (M4OSA_UInt32)pEnv->GetIntField(object,
2404cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.textBufferWidth);
2405cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2406cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the text plane height.
2407cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uiTextBufferHeight = (M4OSA_UInt32)pEnv->GetIntField(object,
2408cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.textBufferHeight);
2409cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2410cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the processing rate of the effect added when using the Fifties effect.
2411cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uiFiftiesOutFrameRate = (M4OSA_UInt32)pEnv->GetIntField(object,
2412cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.fiftiesFrameRate);
2413cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2414cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the RGB16 input color of the effect added when using the rgb16 color effect.
2415cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uiRgb16InputColor = (M4OSA_UInt16)pEnv->GetIntField(object,
2416cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.rgb16InputColor);
2417cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2418cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the start percentage of Alpha blending.
2419cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uialphaBlendingStart = (M4OSA_UInt8)pEnv->GetIntField(object,
2420cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.alphaBlendingStartPercent);
2421cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2422cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the middle percentage of Alpha blending.
2423cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uialphaBlendingMiddle = (M4OSA_UInt8)pEnv->GetIntField(object,
2424cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.alphaBlendingMiddlePercent);
2425cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2426cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the end percentage of Alpha blending.
2427cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uialphaBlendingEnd = (M4OSA_UInt8)pEnv->GetIntField(object,
2428cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.alphaBlendingEndPercent);
2429cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2430cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the duration, in percentage of effect duration, of the FadeIn phase.
2431cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uialphaBlendingFadeInTime = (M4OSA_UInt8)pEnv->GetIntField(object,
2432cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.alphaBlendingFadeInTimePercent);
2433cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2434cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the duration, in percentage of effect duration, of the FadeOut phase.
2435cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.uialphaBlendingFadeOutTime = (M4OSA_UInt8)pEnv->GetIntField(object,
2436cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                fieldIds.alphaBlendingFadeOutTimePercent);
2437cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2438cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (pSettings->xVSS.pFramingFilePath != M4OSA_NULL)
2439cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2440cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.pFramingBuffer =
2441c0125dd4f1f8bb03ad16138f86d55ed3305240c4Shyam Pallapothu                (M4VIFI_ImagePlane *)M4OSA_32bitAlignedMalloc(sizeof(M4VIFI_ImagePlane),
2442cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                0x00,(M4OSA_Char *)"framing buffer");
2443cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2444cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2445cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (pSettings->xVSS.pFramingBuffer != M4OSA_NULL)
2446cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2447cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             // OverFrame height and width
2448cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.pFramingBuffer->u_width = pEnv->GetIntField(object,
2449cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             fieldIds.width);
2450cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2451cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.pFramingBuffer->u_height = pEnv->GetIntField(object,
2452cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             fieldIds.height);
2453cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2454cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.width = pSettings->xVSS.pFramingBuffer->u_width;
2455cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.height = pSettings->xVSS.pFramingBuffer->u_height;
2456c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi            pSettings->xVSS.rgbType = M4VSS3GPP_kRGB565;
2457cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2458cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2459cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "pFramingBuffer u_width %d ", pSettings->xVSS.pFramingBuffer->u_width);
2460cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2461cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    "pFramingBuffer u_height %d", pSettings->xVSS.pFramingBuffer->u_height);
2462cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2463cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2464cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2465cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if settings could be set.
2466cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (!(*pResult))
2467cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2468cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the settings.
2469cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeEffectSettings(pSettings);
2470cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2471cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2472cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2473cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2474cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2475cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeEffectSettings(
2476cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_EffectSettings*           pSettings)
2477cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2478cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the EffectSettings.
2479cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
2480cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2481cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2482cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2483cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "videoEditClasses_freeEffectSettings()");
2484cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2485cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the data used by the font engine (size, color...).
2486cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free(pSettings->xVSS.pRenderingData);
2487cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pRenderingData = M4OSA_NULL;
2488cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2489cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the text buffer.
2490cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free(pSettings->xVSS.pTextBuffer);
2491cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pTextBuffer = M4OSA_NULL;
2492cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.textBufferSize = 0;
2493cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2494cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the framing file path.
2495cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free(pSettings->xVSS.pFramingFilePath);
2496cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings->xVSS.pFramingFilePath = M4OSA_NULL;
2497cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2498cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2499cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2500cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
2501cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2502cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logEffectSettings(
2503cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_EffectSettings*           pSettings,
2504cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
2505cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2506cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the EffectSettings.
2507cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
2508cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2509cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2510cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiStartTime:                %u ms", indentation, ' ',
2511cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->uiStartTime);
2512cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2513cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiDuration:                 %u ms", indentation, ' ',
2514cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->uiDuration);
2515cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2516cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c VideoEffectType:            %s",    indentation, ' ',
2517cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getVideoEffectString(pSettings->VideoEffectType));
2518cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2519cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             "%*c ExtVideoEffectFct:          %s",    indentation, ' ',
2520cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->ExtVideoEffectFct) ? "set" : "<null>");
2521cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2522cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pExtVideoEffectFctCtxt:     %s",    indentation, ' ',
2523cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->pExtVideoEffectFctCtxt) ? "set" : "<null>");
2524cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2525cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c AudioEffectType:            %s",    indentation, ' ',
2526cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getAudioEffectString(pSettings->AudioEffectType));
2527cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2528cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiStartPercent:             %u %%", indentation, ' ',
2529cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiStartPercent);
2530cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2531cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiDurationPercent:          %u %%", indentation, ' ',
2532cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiDurationPercent);
2533cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2534cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pFramingFilePath:           %s",    indentation, ' ',
2535cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->xVSS.pFramingFilePath) ?\
2536cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             (char*)pSettings->xVSS.pFramingFilePath : "<null>");
2537cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2538cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pFramingBuffer:             %s",    indentation, ' ',
2539cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->xVSS.pFramingBuffer) ? "set" : "<null>");
2540cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2541cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c topleft_x:                  %u",    indentation, ' ',
2542cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.topleft_x);
2543cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2544cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c topleft_y:                  %u",    indentation, ' ',
2545cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.topleft_y);
2546cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2547cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c bResize:                    %s",    indentation, ' ',
2548cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.bResize ? "true" : "false");
2549cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2550cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pTextBuffer:                %s",    indentation, ' ',
2551cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->xVSS.pTextBuffer) ?\
2552cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             (char*)pSettings->xVSS.pTextBuffer : "<null>");
2553cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2554cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c textBufferSize:             %u",    indentation, ' ',
2555cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.textBufferSize);
2556cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2557cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c pRenderingData:             %s",    indentation, ' ',
2558cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (M4OSA_NULL != pSettings->xVSS.pRenderingData) ?\
2559cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             (char*)pSettings->xVSS.pRenderingData : "<null>");
2560cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2561cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiTextBufferWidth:          %u",    indentation, ' ',
2562cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiTextBufferWidth);
2563cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2564cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             "%*c uiTextBufferHeight:         %u",    indentation, ' ',
2565cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiTextBufferHeight);
2566cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2567cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiFiftiesOutFrameRate:      %u",    indentation, ' ',
2568cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pSettings->xVSS.uiFiftiesOutFrameRate);
2569cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2570cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiRgb16InputColor:          %d",    indentation, ' ',
2571cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uiRgb16InputColor);
2572cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2573cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uialphaBlendingStart:       %d %%", indentation, ' ',
2574cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uialphaBlendingStart);
2575cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2576cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uialphaBlendingMiddle:      %d %%", indentation, ' ',
2577cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uialphaBlendingMiddle);
2578cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2579cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uialphaBlendingEnd:         %d %%", indentation, ' ',
2580cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uialphaBlendingEnd);
2581cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2582cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uialphaBlendingFadeInTime:  %d %%", indentation, ' ',
2583cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uialphaBlendingFadeInTime);
2584cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2585cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uialphaBlendingFadeOutTime: %d %%", indentation, ' ',
2586cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->xVSS.uialphaBlendingFadeOutTime);
2587cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2588cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
2589cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2590cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2591cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c <null>", indentation, ' ');
2592cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2593cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2594cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
2595cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2596cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2597cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2598cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getSlideTransitionSettings(
2599cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
2600cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
2601cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
2602cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_SlideTransitionSettings**    ppSettings)
2603cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2604cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VideoEditJava_SlideTransitionSettingsFieldIds fieldIds  = {NULL};
2605cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4xVSS_SlideTransitionSettings*       pSettings = M4OSA_NULL;
2606cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    bool                                  converted = true;
2607cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2608cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
2609cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2610cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2611cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2612cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2613cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "videoEditClasses_getSlideTransitionSettings()");
2614cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2615cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
2616cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getSlideTransitionSettingsFieldIds(pResult, pEnv, &fieldIds);
2617cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2618cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2619cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2620cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only validate the SlideTransitionSettings if the fields could be located.
2621cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2622cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2623cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the clip is set.
2624cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2625cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    (NULL == object),
2626cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    "slideSettings is null");
2627cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2628cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2629cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the SlideTransitionSettings if the fields could be located and validated.
2630cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2631cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2632cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate memory for the SlideTransitionSettings.
2633cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings = (M4xVSS_SlideTransitionSettings*)videoEditOsal_alloc(pResult, pEnv,
2634cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                sizeof(M4xVSS_SlideTransitionSettings), "SlideTransitionSettings");
2635cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2636cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if memory could be allocated for the SlideTransitionSettings.
2637cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2638cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2639cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the direction of the slide.
2640cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->direction =
2641cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4xVSS_SlideTransition_Direction)videoEditJava_getSlideDirectionJavaToC(
2642cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            &converted, pEnv->GetIntField(object, fieldIds.direction));
2643cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2644cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the direction is valid.
2645cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2646cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    !converted, "slideSettings.direction is invalid");
2647cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2648cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2649cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if settings could be set.
2650cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2651cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2652cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the settings.
2653cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*ppSettings) = pSettings;
2654cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2655cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        else
2656cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2657cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the settings.
2658cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeSlideTransitionSettings(&pSettings);
2659cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2660cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2661cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2662cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2663cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2664cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeSlideTransitionSettings(
2665cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_SlideTransitionSettings**    ppSettings)
2666cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2667cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the SlideTransitionSettings.
2668cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != (*ppSettings))
2669cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2670cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2671cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2672cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                "videoEditClasses_freeSlideTransitionSettings()");
2673cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2674cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the settings structure.
2675cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings));
2676cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings) = M4OSA_NULL;
2677cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2678cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2679cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2680cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
2681cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2682cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logSlideTransitionSettings(
2683cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4xVSS_SlideTransitionSettings*     pSettings,
2684cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
2685cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2686cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the SlideTransitionSettings.
2687cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
2688cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2689cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2690cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c direction: %s", indentation, ' ',
2691cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getSlideDirectionString(pSettings->direction));
2692cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2693cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
2694cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2695cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2696cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c <null>", indentation, ' ');
2697cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2698cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2699cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
2700cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2701cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2702cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2703cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getTransitionSettings(
2704cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
2705cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
2706cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
2707cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_TransitionSettings**      ppSettings)
2708cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
27094fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru
27104fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_TransitionSettingsFieldIds fieldIds;
2711cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                          alphaSettings = NULL;
2712cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject                          slideSettings = NULL;
2713cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    M4VSS3GPP_TransitionSettings*    pSettings     = M4OSA_NULL;
2714cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    bool                             converted     = true;
27154fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_TransitionSettingsFieldIds));
2716cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2717cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
2718cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2719cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2720cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2721cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2722cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi               "videoEditClasses_getTransitionSettings()");
2723cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2724cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
2725cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getTransitionSettingsFieldIds(pResult, pEnv, &fieldIds);
2726cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2727cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2728cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only validate the TransitionSettings if the fields could be located.
2729cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2730cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2731cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the transition is set.
2732cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv,
2733cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    (NULL == object),
2734cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    "transition is null");
2735cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2736cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2737cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the field ids could be located and validated.
2738cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2739cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2740cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the alphaSettings.
2741cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getObject(pResult, pEnv, object, fieldIds.alphaSettings, &alphaSettings);
2742cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2743cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the slideSettings.
2744cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getObject(pResult, pEnv, object, fieldIds.slideSettings, &slideSettings);
2745cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2746cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2747cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only retrieve the TransitionSettings if the fields could be located.
2748cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
2749cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2750cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate memory for the TransitionSettings.
2751cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pSettings = (M4VSS3GPP_TransitionSettings*)videoEditOsal_alloc(pResult,
2752cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                pEnv, sizeof(M4VSS3GPP_TransitionSettings), "TransitionSettings");
2753cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2754cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if memory could be allocated for the TransitionSettings.
2755cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2756cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2757cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the duration of the transition, in milliseconds (set to 0 to get no transition).
2758cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->uiTransitionDuration = (M4OSA_UInt32)pEnv->GetIntField(object,
2759cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    fieldIds.duration);
2760cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2761cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the type of the video transition.
2762cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->VideoTransitionType =
2763cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4VSS3GPP_VideoTransitionType)videoEditJava_getVideoTransitionJavaToC(
2764cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             &converted, pEnv->GetIntField(object, fieldIds.videoTransitionType));
2765cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2766cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the video transition type is valid.
2767cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv, !converted,
2768cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            "transition.videoTransitionType is invalid");
2769cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2770cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2771cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the video transition type could be set.
2772cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2773cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2774cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the external transition video effect function.
2775cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->ExtVideoTransitionFct = M4OSA_NULL;
2776cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2777cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the context of the external transition video effect function.
2778cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->pExtVideoTransitionFctCtxt = M4OSA_NULL;
2779cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2780cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the type of the audio transition.
2781cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->AudioTransitionType =
2782cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4VSS3GPP_AudioTransitionType)videoEditJava_getAudioTransitionJavaToC(
2783cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            &converted, pEnv->GetIntField(object, fieldIds.audioTransitionType));
2784cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2785cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the audio transition type is valid.
2786cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv, !converted,
2787cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             "transition.audioTransitionType is invalid");
2788cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2789cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2790cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the audio transition type could be set.
2791cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2792cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2793cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the transition behaviour.
2794cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pSettings->TransitionBehaviour =
2795cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                    (M4VSS3GPP_TransitionBehaviour)videoEditJava_getTransitionBehaviourJavaToC(
2796cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                            &converted, pEnv->GetIntField(object, fieldIds.transitionBehaviour));
2797cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2798cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if the transition behaviour is valid.
2799cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_checkAndThrowIllegalArgumentException(pResult, pEnv, !converted,
2800cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    "transition.transitionBehaviour is invalid");
2801cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2802cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2803cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if the audio transition behaviour could be set.
2804cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2805cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2806cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Check if a slide transition or alpha magic setting object is expected.
2807cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            if ((int)pSettings->VideoTransitionType == M4xVSS_kVideoTransitionType_SlideTransition)
2808cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2809cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the slide transition settings.
2810cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_getSlideTransitionSettings(pResult, pEnv, slideSettings,
2811cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                     &pSettings->xVSS.transitionSpecific.pSlideTransitionSettings);
2812cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2813cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            else if ((int)pSettings->VideoTransitionType == M4xVSS_kVideoTransitionType_AlphaMagic)
2814cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            {
2815cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                // Set the alpha magic settings.
2816cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                videoEditClasses_getAlphaMagicSettings(pResult, pEnv, alphaSettings,
2817cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                  &pSettings->xVSS.transitionSpecific.pAlphaMagicSettings);
2818cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            }
2819cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2820cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2821cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if settings could be set.
2822cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (*pResult)
2823cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2824cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the settings.
2825cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*ppSettings) = pSettings;
2826cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2827cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        else
2828cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2829cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the settings.
2830cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeTransitionSettings(&pSettings);
2831cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2832cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2833cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2834cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2835cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2836cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_freeTransitionSettings(
2837cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_TransitionSettings**      ppSettings)
2838cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2839cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the TransitionSettings.
2840cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != (*ppSettings))
2841cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2842cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
2843cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2844cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               "videoEditClasses_freeTransitionSettings()");
2845cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2846cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if a slide transition or alpha magic setting structure is expected.
2847cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if ((int)(*ppSettings)->VideoTransitionType == M4xVSS_kVideoTransitionType_SlideTransition)
2848cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2849cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the slide transition settings.
2850cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeSlideTransitionSettings(
2851cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               &(*ppSettings)->xVSS.transitionSpecific.pSlideTransitionSettings);
2852cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2853cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        else
2854cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2855cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Free the alpha magic settings.
2856cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_freeAlphaMagicSettings(
2857cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              &(*ppSettings)->xVSS.transitionSpecific.pAlphaMagicSettings);
2858cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2859cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2860cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Free the settings structure.
2861cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditOsal_free((*ppSettings));
2862cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        (*ppSettings) = M4OSA_NULL;
2863cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2864cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2865cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2866cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
2867cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2868cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logTransitionSettings(
2869cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4VSS3GPP_TransitionSettings*       pSettings,
2870cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
2871cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2872cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the TransitionSettings.
2873cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pSettings)
2874cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2875cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2876cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               "%*c uiTransitionDuration:       %u ms", indentation, ' ',
2877cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                  (unsigned int)pSettings->uiTransitionDuration);
2878cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2879cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           "%*c VideoTransitionType:        %s",    indentation, ' ',
2880cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                           videoEditJava_getVideoTransitionString(pSettings->VideoTransitionType));
2881cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2882cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              "%*c ExtVideoTransitionFct:      %s",    indentation, ' ',
2883cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              (M4OSA_NULL != pSettings->ExtVideoTransitionFct) ? "set" : "<null>");
2884cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2885cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         "%*c pExtVideoTransitionFctCtxt: %s",    indentation, ' ',
2886cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         (M4OSA_NULL != pSettings->pExtVideoTransitionFctCtxt) ? "set" : "<null>");
2887cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2888cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         "%*c AudioTransitionType:        %s",    indentation, ' ',
2889cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                          videoEditJava_getAudioTransitionString(pSettings->AudioTransitionType));
2890cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2891cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                      "%*c TransitionBehaviour:        %s",    indentation, ' ',
2892cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                      videoEditJava_getTransitionBehaviourString(pSettings->TransitionBehaviour));
2893cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2894cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Check if a slide transition or alpha magic setting structure is expected.
2895cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if ((int)pSettings->VideoTransitionType == M4xVSS_kVideoTransitionType_SlideTransition)
2896cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2897cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Log the slide transition settings.
2898cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2899cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                   "%*c pSlideTransitionSettings:", indentation, ' ');
2900cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_logSlideTransitionSettings\
2901cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (pSettings->xVSS.transitionSpecific.pSlideTransitionSettings,
2902cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation + VIDEOEDIT_LOG_INDENTATION);
2903cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2904cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        else
2905cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
2906cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Log the alpha magic settings.
2907cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2908cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                   "%*c pAlphaMagicSettings:", indentation, ' ');
2909cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditClasses_logAlphaMagicSettings\
2910cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (pSettings->xVSS.transitionSpecific.pAlphaMagicSettings,
2911cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            indentation + VIDEOEDIT_LOG_INDENTATION);
2912cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
2913cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2914cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
2915cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2916cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
2917cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               "%*c <null>", indentation, ' ');
2918cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2919cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2920cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
2921cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
2922cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2923cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditPropClass_logProperties(
2924cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                VideoEditPropClass_Properties*                   pProperties,
2925cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
2926cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
2927cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the Properties.
2928cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pProperties)
2929cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2930cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2931cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipDuration:                   %u",       indentation, ' ',
2932cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiClipDuration);
2933cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2934cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c FileType:                         %s",       indentation, ' ',
2935cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getFileTypeString(pProperties->FileType));
2936cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2937cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2938cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c VideoStreamType:                  %s",       indentation, ' ',
2939cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getVideoFormatString(pProperties->VideoStreamType));
2940cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2941cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipVideoDuration:              %u",       indentation, ' ',
2942cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiClipVideoDuration);
2943cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2944cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2945cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoBitrate:                   %s",       indentation, ' ',
2946cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getBitrateString(pProperties->uiVideoBitrate));
2947cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2948cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2949cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoWidth:                     %u",       indentation, ' ',
2950cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiVideoWidth);
2951cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2952cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2953cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiVideoHeight:                    %u",       indentation, ' ',
2954cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)(unsigned int)pProperties->uiVideoHeight);
2955cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2956cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2957cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c fAverageFrameRate:                %.3f",     indentation, ' ',
2958cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pProperties->fAverageFrameRate);
2959cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2960cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2961cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c AudioStreamType:                  %s",       indentation, ' ',
2962cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getAudioFormatString(pProperties->AudioStreamType));
2963cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2964cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2965cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiClipAudioDuration:              %u",       indentation, ' ',
2966cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiClipAudioDuration);
2967cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2968cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2969cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiAudioBitrate:                   %s",       indentation, ' ',
2970cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            videoEditJava_getBitrateString(pProperties->uiAudioBitrate));
2971cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2972cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2973cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c uiNbChannels:                     %u",       indentation, ' ',
2974cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiNbChannels);
2975cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2976cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2977cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi             "%*c uiSamplingFrequency:              %u",       indentation, ' ',
2978cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (unsigned int)pProperties->uiSamplingFrequency);
2979cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2980cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
2981cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
2982cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_PROP_CLASSES",
2983cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            "%*c <null>", indentation, ' ');
2984cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
2985cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
2986cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
2987cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2988cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
2989cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
2990cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_createVersion(
2991cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
2992cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
2993cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4_VersionInfo*                     pVersionInfo,
2994cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject*                            pObject)
2995cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
29964fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru
29974fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    VideoEditJava_VersionFieldIds fieldIds;
2998cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jclass                clazz    = NULL;
2999cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jobject               object   = NULL;
30004fad6762c6429379c4f7fe5d78e84d0718f52817Basavapatna Dattaguru    memset(&fieldIds, 0, sizeof(VideoEditJava_VersionFieldIds));
3001cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
3002cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
3003cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3004cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
3005cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3006cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               "videoEditClasses_createVersion()");
3007cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3008cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the class.
3009cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getVersionClass(pResult, pEnv, &clazz);
3010cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3011cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
3012cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getVersionFieldIds(pResult, pEnv, &fieldIds);
3013cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3014cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3015cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Only create an object if the class and fields could be located.
3016cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
3017cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3018cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Allocate a new object.
3019cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        object = pEnv->AllocObject(clazz);
3020cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3021cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // check if alloc is done
3022cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_checkAndThrowRuntimeException(pResult, pEnv,
3023cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    (NULL == object),
3024cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                                                    M4ERR_ALLOC);
3025cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        if (NULL != object)
3026cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        {
3027cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the major field.
3028cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.major, pVersionInfo->m_major);
3029cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3030cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the minor field.
3031cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.minor, pVersionInfo->m_minor);
3032cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3033cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Set the revision field.
3034cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            pEnv->SetIntField(object, fieldIds.revision, pVersionInfo->m_revision);
3035cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3036cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            // Return the object.
3037cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi            (*pObject) = object;
3038cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        }
3039cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3040cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
3041cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3042cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifdef VIDEOEDIT_LOGGING_ENABLED
3043cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
3044cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_logVersion(
3045cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                M4_VersionInfo*                     pVersionInfo,
3046cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                int                                 indentation)
3047cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
3048cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if memory was allocated for the Version.
3049cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (M4OSA_NULL != pVersionInfo)
3050cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3051cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3052cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             "%*c major:    %u ms", indentation, ' ',
3053cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             (unsigned int)pVersionInfo->m_major);
3054cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3055cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              "%*c minor:    %u",    indentation, ' ',
3056cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              (unsigned int)pVersionInfo->m_minor);
3057cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3058cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             "%*c revision: %u",    indentation, ' ',
3059cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                             (unsigned int)pVersionInfo->m_revision);
3060cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3061cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    else
3062cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3063cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_SETTING(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3064cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                              "%*c <null>", indentation, ' ');
3065cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3066cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
3067cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif
3068cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3069cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3070cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid*
3071cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_getContext(
3072cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
3073cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
3074cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object)
3075cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
3076cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    void*                pContext = M4OSA_NULL;
3077cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jclass               clazz    = NULL;
3078cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VideoEditJava_EngineFieldIds fieldIds = {NULL};
3079cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3080cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
3081cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
3082cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3083cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
3084cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3085cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               "videoEditClasses_getContext()");
3086cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3087cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the class.
3088cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getEngineClass(pResult, pEnv, &clazz);
3089cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3090cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
3091cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getEngineFieldIds(pResult, pEnv, &fieldIds);
3092cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3093cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3094cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the class and field ids could be located.
3095cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
3096cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3097cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the context pointer.
3098cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pContext = (void *)pEnv->GetIntField(object, fieldIds.context);
3099cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3100cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3101cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Return the context pointer.
3102cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    return(pContext);
3103cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
3104cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3105cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargivoid
3106cd196d3727db641e581d4223815367a5ca5d5637Dharmaray KundargivideoEditClasses_setContext(
3107cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                bool*                               pResult,
3108cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                JNIEnv*                             pEnv,
3109cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                jobject                             object,
3110cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                void*                               pContext)
3111cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{
3112cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    jclass               clazz    = NULL;
3113cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    VideoEditJava_EngineFieldIds fieldIds = {NULL};
3114cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3115cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the previous action succeeded.
3116cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
3117cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3118cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Log the function call.
3119cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3120cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                               "videoEditClasses_setContext()");
3121cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3122cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the class.
3123cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getEngineClass(pResult, pEnv, &clazz);
3124cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3125cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Retrieve the field ids.
3126cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        videoEditJava_getEngineFieldIds(pResult, pEnv, &fieldIds);
3127cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3128cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3129cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    // Check if the class and field ids could be located.
3130cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    if (*pResult)
3131cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    {
3132cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        // Set the context field.
3133cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3134cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        "The context value from JAVA before setting is = 0x%x",
3135cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                        pEnv->GetIntField(object, fieldIds.context));
3136cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3137cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        pEnv->SetIntField(object, fieldIds.context, (int)pContext);
3138cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        M4OSA_TRACE1_1("The context value in JNI is = 0x%x",pContext);
3139cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3140cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi        VIDEOEDIT_LOG_FUNCTION(ANDROID_LOG_INFO, "VIDEO_EDITOR_CLASSES",
3141cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         "The context value from JAVA after setting is = 0x%x",
3142cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi                         pEnv->GetIntField(object, fieldIds.context));
3143cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi    }
3144cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi}
3145cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi
3146