summaryrefslogtreecommitdiffstats
path: root/media/jni/mediaeditor/VideoEditorClasses.h
blob: a4c82a87c4862eaa8eb690716474626e1ee6c8ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
/*
 * Copyright (C) 2011 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef VIDEO_EDITOR_CLASSES_H
#define VIDEO_EDITOR_CLASSES_H

#include <VideoEditorJava.h>
#include <VideoEditorClasses.h>
/**
 ************************************************************************
 * @file        VideoEditorClasses.h
 * @brief       Interface for JNI methods/defines that have specific
 *              access to class, objects and method Ids defined in Java layer
 ************************************************************************
*/


extern "C" {
#include <M4xVSS_API.h>
#include <M4VSS3GPP_API.h>
#include <M4VSS3GPP_ErrorCodes.h>
#include <M4MCS_ErrorCodes.h>
#include <M4READER_Common.h>
#include <M4WRITER_common.h>
};

/*
 * Java layer class/object name strings
 */
#define PACKAGE_NAME                           "android/media/videoeditor"

#define MANUAL_EDIT_ENGINE_CLASS_NAME          PACKAGE_NAME"/MediaArtistNativeHelper"
#define MEDIA_PROPERTIES_ENGINE_CLASS_NAME     PACKAGE_NAME"/MediaArtistNativeHelper"

#define AUDIO_FORMAT_CLASS_NAME                MANUAL_EDIT_ENGINE_CLASS_NAME"$AudioFormat"
#define RESULTS_CLASS_NAME                     MANUAL_EDIT_ENGINE_CLASS_NAME"$Results"
#define VERSION_CLASS_NAME                     MANUAL_EDIT_ENGINE_CLASS_NAME"$Version"
#define AUDIO_SAMPLING_FREQUENCY_CLASS_NAME    MANUAL_EDIT_ENGINE_CLASS_NAME"$AudioSamplingFrequency"
#define BITRATE_CLASS_NAME                     MANUAL_EDIT_ENGINE_CLASS_NAME"$Bitrate"
#define ERROR_CLASS_NAME                       MANUAL_EDIT_ENGINE_CLASS_NAME"$Result"
#define FILE_TYPE_CLASS_NAME                   MANUAL_EDIT_ENGINE_CLASS_NAME"$FileType"
#define MEDIA_RENDERING_CLASS_NAME             MANUAL_EDIT_ENGINE_CLASS_NAME"$MediaRendering"
#define VIDEO_FORMAT_CLASS_NAME                MANUAL_EDIT_ENGINE_CLASS_NAME"$VideoFormat"
#define VIDEO_FRAME_RATE_CLASS_NAME            MANUAL_EDIT_ENGINE_CLASS_NAME"$VideoFrameRate"
#define VIDEO_FRAME_SIZE_CLASS_NAME            MANUAL_EDIT_ENGINE_CLASS_NAME"$VideoFrameSize"
#define VIDEO_PROFILE_CLASS_NAME               MANUAL_EDIT_ENGINE_CLASS_NAME"$VideoProfile"
#define ALPHA_MAGIC_SETTINGS_CLASS_NAME        MANUAL_EDIT_ENGINE_CLASS_NAME"$AlphaMagicSettings"
#define AUDIO_EFFECT_CLASS_NAME                MANUAL_EDIT_ENGINE_CLASS_NAME"$AudioEffect"
#define AUDIO_TRANSITION_CLASS_NAME            MANUAL_EDIT_ENGINE_CLASS_NAME"$AudioTransition"
#define BACKGROUND_MUSIC_SETTINGS_CLASS_NAME   MANUAL_EDIT_ENGINE_CLASS_NAME"$BackgroundMusicSettings"
#define CLIP_SETTINGS_CLASS_NAME               MANUAL_EDIT_ENGINE_CLASS_NAME"$ClipSettings"
#define EDIT_SETTINGS_CLASS_NAME               MANUAL_EDIT_ENGINE_CLASS_NAME"$EditSettings"
#define EFFECT_SETTINGS_CLASS_NAME             MANUAL_EDIT_ENGINE_CLASS_NAME"$EffectSettings"
#define SLIDE_DIRECTION_CLASS_NAME             MANUAL_EDIT_ENGINE_CLASS_NAME"$SlideDirection"
#define SLIDE_TRANSITION_SETTINGS_CLASS_NAME   MANUAL_EDIT_ENGINE_CLASS_NAME"$SlideTransitionSettings"
#define TRANSITION_BEHAVIOUR_CLASS_NAME        MANUAL_EDIT_ENGINE_CLASS_NAME"$TransitionBehaviour"
#define TRANSITION_SETTINGS_CLASS_NAME         MANUAL_EDIT_ENGINE_CLASS_NAME"$TransitionSettings"
#define VIDEO_EFFECT_CLASS_NAME                MANUAL_EDIT_ENGINE_CLASS_NAME"$VideoEffect"
#define VIDEO_TRANSITION_CLASS_NAME            MANUAL_EDIT_ENGINE_CLASS_NAME"$VideoTransition"
#define PREVIEW_CLIPS_CLASS_NAME               MANUAL_EDIT_ENGINE_CLASS_NAME"$PreviewClips"
#define PREVIEW_SETTING_CLASS_NAME             MANUAL_EDIT_ENGINE_CLASS_NAME"$PreviewSettings"
#define PREVIEW_PROPERTIES_CLASS_NAME          MANUAL_EDIT_ENGINE_CLASS_NAME"$PreviewClipProperties"
#define AUDIO_SETTINGS_CLASS_NAME              MANUAL_EDIT_ENGINE_CLASS_NAME"$AudioSettings"
#define PROPERTIES_CLASS_NAME                  MANUAL_EDIT_ENGINE_CLASS_NAME"$Properties"

#define TASK_IDLE                                   0
#define TASK_LOADING_SETTINGS                       1
#define TASK_ENCODING                               2

/*
 * File type enum
 */
typedef enum
{
    VideoEditClasses_kFileType_3GPP,
    VideoEditClasses_kFileType_MP4,
    VideoEditClasses_kFileType_AMR,
    VideoEditClasses_kFileType_MP3,
    VideoEditClasses_kFileType_PCM,
    VideoEditClasses_kFileType_JPG,
    VideoEditClasses_kFileType_BMP,
    VideoEditClasses_kFileType_GIF,
    VideoEditClasses_kFileType_PNG,
    VideoEditClasses_kFileType_ARGB8888,
    VideoEditClasses_kFileType_M4V,
    VideoEditClasses_kFileType_Unsupported
} VideoEditClasses_FileType;

/*
 * Alpha magic transition structure
 */
typedef struct
{
    jfieldID file;
    jfieldID blendingPercent;
    jfieldID invertRotation;
    jfieldID rgbWidth;
    jfieldID rgbHeight;
} VideoEditJava_AlphaMagicFieldIds;

typedef struct
{
    jfieldID file;
    jfieldID fileType;
    jfieldID insertionTime;
    jfieldID volumePercent;
    jfieldID beginLoop;
    jfieldID endLoop;
    jfieldID enableDucking;
    jfieldID duckingThreshold;
    jfieldID lowVolume;
    jfieldID isLooping;
} VideoEditJava_BackgroundMusicFieldIds;
/*
 * Structure to hold media properties from native layer
 */
typedef struct {
    M4OSA_UInt32 uiClipDuration;
    VideoEditClasses_FileType  FileType;
    M4VIDEOEDITING_VideoFormat VideoStreamType;
    M4OSA_UInt32 uiClipVideoDuration;
    M4OSA_UInt32 uiVideoBitrate;
    M4OSA_UInt32 uiVideoWidth;
    M4OSA_UInt32 uiVideoHeight;
    M4OSA_Float  fAverageFrameRate;
    M4OSA_UInt32 uiVideoProfile; /**< H263 or MPEG-4 or H264 profile(from core decoder) */
    M4OSA_UInt32 uiVideoLevel;   /**< H263 or MPEG-4 or H264 level*/
    M4OSA_Bool bProfileSupported;
    M4OSA_Bool bLevelSupported;
    M4VIDEOEDITING_AudioFormat AudioStreamType;
    M4OSA_UInt32 uiClipAudioDuration;
    M4OSA_UInt32 uiAudioBitrate;
    M4OSA_UInt32 uiNbChannels;
    M4OSA_UInt32 uiSamplingFrequency;
    M4OSA_UInt32 uiRotation;
} VideoEditPropClass_Properties;

typedef struct
{
    jfieldID duration;
    jfieldID fileType;
    jfieldID videoFormat;
    jfieldID videoDuration;
    jfieldID videoBitrate;
    jfieldID width;
    jfieldID height;
    jfieldID averageFrameRate;
    jfieldID profile;
    jfieldID level;
    jfieldID profileSupported;
    jfieldID levelSupported;
    jfieldID audioFormat;
    jfieldID audioDuration;
    jfieldID audioBitrate;
    jfieldID audioChannels;
    jfieldID audioSamplingFrequency;
    jfieldID videoRotation;
} VideoEditJava_PropertiesFieldIds;


typedef struct
{
    jfieldID clipPath;
    jfieldID fileType;
    jfieldID beginCutTime;
    jfieldID endCutTime;
    jfieldID beginCutPercent;
    jfieldID endCutPercent;
    jfieldID panZoomEnabled;
    jfieldID panZoomPercentStart;
    jfieldID panZoomTopLeftXStart;
    jfieldID panZoomTopLeftYStart;
    jfieldID panZoomPercentEnd;
    jfieldID panZoomTopLeftXEnd;
    jfieldID panZoomTopLeftYEnd;
    jfieldID mediaRendering;
    jfieldID rgbFileWidth;
    jfieldID rgbFileHeight;
    jfieldID rotationDegree;
} VideoEditJava_ClipSettingsFieldIds;

typedef struct
{
    jfieldID clipSettingsArray;
    jfieldID transitionSettingsArray;
    jfieldID effectSettingsArray;
    jfieldID videoFrameRate;
    jfieldID outputFile;
    jfieldID videoFrameSize;
    jfieldID videoFormat;
    jfieldID videoProfile;
    jfieldID videoLevel;
    jfieldID audioFormat;
    jfieldID audioSamplingFreq;
    jfieldID maxFileSize;
    jfieldID audioChannels;
    jfieldID videoBitrate;
    jfieldID audioBitrate;
    jfieldID backgroundMusicSettings;
    jfieldID primaryTrackVolume;
} VideoEditJava_EditSettingsFieldIds;


typedef struct
{
    jfieldID startTime;
    jfieldID duration;
    jfieldID videoEffectType;
    jfieldID audioEffectType;
    jfieldID startPercent;
    jfieldID durationPercent;
    jfieldID framingFile;
    jfieldID framingBuffer;
    jfieldID bitmapType;
    jfieldID width;
    jfieldID height;
    jfieldID topLeftX;
    jfieldID topLeftY;
    jfieldID framingResize;
    jfieldID framingScaledSize;
    jfieldID text;
    jfieldID textRenderingData;
    jfieldID textBufferWidth;
    jfieldID textBufferHeight;
    jfieldID fiftiesFrameRate;
    jfieldID rgb16InputColor;
    jfieldID alphaBlendingStartPercent;
    jfieldID alphaBlendingMiddlePercent;
    jfieldID alphaBlendingEndPercent;
    jfieldID alphaBlendingFadeInTimePercent;
    jfieldID alphaBlendingFadeOutTimePercent;
} VideoEditJava_EffectSettingsFieldIds;

typedef struct
{
    jfieldID context;
} VideoEditJava_EngineFieldIds;

typedef struct
{
    jfieldID direction;
} VideoEditJava_SlideTransitionSettingsFieldIds;

typedef struct
{
    jfieldID duration;
    jfieldID videoTransitionType;
    jfieldID audioTransitionType;
    jfieldID transitionBehaviour;
    jfieldID alphaSettings;
    jfieldID slideSettings;
} VideoEditJava_TransitionSettingsFieldIds;

typedef struct
{
    jfieldID major;
    jfieldID minor;
    jfieldID revision;
} VideoEditJava_VersionFieldIds;


typedef struct
{
    jmethodID onProgressUpdate;
} VideoEditJava_EngineMethodIds;


VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(AudioEffect           )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(AudioFormat           )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(AudioSamplingFrequency)
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(AudioTransition       )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(Bitrate               )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(Engine                )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(Error                 )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(FileType              )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(MediaRendering        )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(SlideDirection        )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(TransitionBehaviour   )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(VideoEffect           )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(VideoFormat           )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(VideoFrameRate        )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(VideoFrameSize        )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(VideoProfile          )
VIDEOEDIT_JAVA_DECLARE_CONSTANT_CLASS(VideoTransition       )


VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(AlphaMagic               )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(BackgroundMusic          )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(ClipSettings             )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(ClipSettings             )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(EditSettings             )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(EffectSettings           )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(Engine                   )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(SlideTransitionSettings  )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(TransitionSettings       )
VIDEOEDIT_JAVA_DECLARE_FIELD_CLASS(Version                  )

VIDEOEDIT_JAVA_DECLARE_METHOD_CLASS(Engine                  )

/*
 * Init all Edit settings related structures
 */
void
videoEditClasses_init(
                bool*                               pResult,
                JNIEnv*                             pEnv);
/**
 ************************************************************************
 * @brief    Media Properties init function.
 * @param    pResult    (OUT) Pointer to hold result
 * @param    pEnv       (IN)  JVM Interface pointer
 ************************************************************************
*/
void
videoEditPropClass_init(
                bool*                               pResult,
                JNIEnv*                             pEnv);
/**
 ************************************************************************
 * @brief    Interface to populate Media Properties.
 * @param    pResult        (IN/OUT)    Pointer to hold result
 * @param    pEnv           (IN)        JVM Interface pointer
 * @param    pProperties    (IN)        Media propeties structure pointer
 * @param    pObject        (OUT)       Java object to hold media
 *                                      properties for java layer.
 ************************************************************************
*/
void
videoEditPropClass_createProperties(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                VideoEditPropClass_Properties*      pProperties,
                jobject*                            pObject);

/**
 ************************************************************************
 * @brief    Interface to log/display media properties.
 * @param    pProperties    (IN) Pointer holding media properties
 * @param    indentation    (IN) Indentation to follow in display
 ************************************************************************
*/
void
videoEditPropClass_logProperties(
                VideoEditPropClass_Properties*      pProperties,
                int                                 indentation);

/*
 * Get alpha magic transition settings
 */
void
videoEditClasses_getAlphaMagicSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4xVSS_AlphaMagicSettings**         ppSettings);

/*
 * Free alpha magic transition settings structure
 */
void
videoEditClasses_freeAlphaMagicSettings(
                M4xVSS_AlphaMagicSettings**         ppSettings);

/*
 * Log alpha magic transition settings
 */
void
videoEditClasses_logAlphaMagicSettings(
                M4xVSS_AlphaMagicSettings*          pSettings,
                int                                 indentation);

/*
 * Get Background Track settings
 */
void
videoEditClasses_getBackgroundMusicSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4xVSS_BGMSettings**                ppSettings);

/*
 * Free Background Track settings structure
 */
void
videoEditClasses_freeBackgroundMusicSettings(
                M4xVSS_BGMSettings**                ppSettings);

/*
 * Log Background Track settings
 */
void
videoEditClasses_logBackgroundMusicSettings(
                M4xVSS_BGMSettings*                 pSettings,
                int                                 indentation);

/*
 * Log clip properties
 */
void
videoEditClasses_logClipProperties(
                M4VIDEOEDITING_ClipProperties*      pProperties,
                int                                 indentation);

/*
 * Get clip settings from Java
 */
void
videoEditClasses_getClipSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4VSS3GPP_ClipSettings**            ppSettings);
/**
 ************************************************************************
 * @brief   Interface function to retrieve media properties for a given
 *          file.
 * @param   pEnv    (IN)    Pointer holding media properties
 * @param   thiz    (IN)    Indentation to follow in display
 * @param   file    (IN)    File path for which media properties has
 *                          to be retrieved.
 ************************************************************************
*/
jobject
videoEditProp_getProperties(
                JNIEnv*                             pEnv,
                jobject                             thiz,
                jstring                             file);

/*
 * Create/Set the clip settings to java Object
 */
void
videoEditClasses_createClipSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                M4VSS3GPP_ClipSettings*             pSettings,
                jobject*                            pObject);

/*
 * Free clip settings structure
 */
void
videoEditClasses_freeClipSettings(
                M4VSS3GPP_ClipSettings**            ppSettings);

/*
 * Log clip settings structure
 */
void
videoEditClasses_logClipSettings(
                M4VSS3GPP_ClipSettings*             pSettings,
                int                                 indentation);

/*
 * Get Edit settings from Java
 */
void
videoEditClasses_getEditSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4VSS3GPP_EditSettings**            ppSettings,
                bool                                flag);

/*
 * Free Edit Settings structure
 */
void
videoEditClasses_freeEditSettings(
                M4VSS3GPP_EditSettings**            ppSettings);

/*
 * Log Edit settings structure
 */
void
videoEditClasses_logEditSettings(
                M4VSS3GPP_EditSettings*             pSettings,
                int                                 indentation);

/*
 * Get Effect settings from Java
 */
void
videoEditClasses_getEffectSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4VSS3GPP_EffectSettings*           pSettings);

/*
 * Free Effect settings structure
 */
void
videoEditClasses_freeEffectSettings(
                M4VSS3GPP_EffectSettings*           pSettings);

/*
 * Log Effect settings
 */
void
videoEditClasses_logEffectSettings(
                M4VSS3GPP_EffectSettings*           pSettings,
                int                                 indentation);

/*
 * Get Transition-Sliding settings from Java
 */
void
videoEditClasses_getSlideTransitionSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4xVSS_SlideTransitionSettings**    ppSettings);

/*
 * Free Transition-Sliding structure
 */
void
videoEditClasses_freeSlideTransitionSettings(
                M4xVSS_SlideTransitionSettings**    ppSettings);

/*
 * Free Transition-Sliding structure
 */
void
videoEditClasses_logSlideTransitionSettings(
                M4xVSS_SlideTransitionSettings*     pSettings,
                int                                 indentation);

/*
 * Get Transition settings from Java
 */
void
videoEditClasses_getTransitionSettings(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                M4VSS3GPP_TransitionSettings**      ppSettings);

/*
 * Free Transition settings structure
 */
void
videoEditClasses_freeTransitionSettings(
                M4VSS3GPP_TransitionSettings**      ppSettings);

/*
 * Log Transition settings
 */
void
videoEditClasses_logTransitionSettings(
                M4VSS3GPP_TransitionSettings*       pSettings,
                int                                 indentation);

/*
 * Set version information to Java object
 */
void
videoEditClasses_createVersion(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                M4_VersionInfo*                     pVersionInfo,
                jobject*                            pObject);

/*
 * Log Version information
 */
void
videoEditClasses_logVersion(
                M4_VersionInfo*                     pVersionInfo,
                int                                 indentation);


void*
videoEditClasses_getContext(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object);

void
videoEditClasses_setContext(
                bool*                               pResult,
                JNIEnv*                             pEnv,
                jobject                             object,
                void*                               pContext);


#endif // VIDEO_EDITOR_CLASSES_H