1c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar/* 2c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * Copyright 2015, The Android Open Source Project 3c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * 4c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * Licensed under the Apache License, Version 2.0 (the "License"); 5c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * you may not use this file except in compliance with the License. 6c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * You may obtain a copy of the License at 7c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * 8c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * http://www.apache.org/licenses/LICENSE-2.0 9c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * 10c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * Unless required by applicable law or agreed to in writing, software 11c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * distributed under the License is distributed on an "AS IS" BASIS, 12c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * See the License for the specific language governing permissions and 14c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar * limitations under the License. 15c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar */ 16c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 172d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jia#ifndef _ANDROID_MEDIA_SYNC_PARAMS_H_ 182d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jia#define _ANDROID_MEDIA_SYNC_PARAMS_H_ 19c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 20c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar#include "jni.h" 21c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 2205ebffe6bf6cdacc6de4b3bbf480c31869a81661Lajos Molnar#include <media/stagefright/MediaSync.h> 2305ebffe6bf6cdacc6de4b3bbf480c31869a81661Lajos Molnar 24c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnarnamespace android { 25c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 262d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jiastruct SyncParams { 2705ebffe6bf6cdacc6de4b3bbf480c31869a81661Lajos Molnar AVSyncSettings sync; 28c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar float frameRate; 29c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 30c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar bool syncSourceSet; 31c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar bool audioAdjustModeSet; 32c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar bool toleranceSet; 33c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar bool frameRateSet; 34c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 35c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar struct fields_t { 36c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jclass clazz; 37c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jmethodID constructID; 38c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 39c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jfieldID sync_source; 40c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jfieldID audio_adjust_mode; 41c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jfieldID tolerance; 42c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jfieldID frame_rate; 43c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jfieldID set; 44c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jint set_sync_source; 45c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jint set_audio_adjust_mode; 46c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jint set_tolerance; 47c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jint set_frame_rate; 48c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 49c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar // initializes fields 50c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar void init(JNIEnv *env); 51c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 52c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar // releases global references held 53c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar void exit(JNIEnv *env); 54c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar }; 55c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 562d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jia // fills this from an android.media.SyncParams object 572d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jia void fillFromJobject(JNIEnv *env, const fields_t& fields, jobject params); 58c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 592d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jia // returns this as a android.media.SyncParams object 60c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar jobject asJobject(JNIEnv *env, const fields_t& fields); 61c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar}; 62c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 63c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar} // namespace android 64c98f58efd147c574faa4a4f9956b5ab95e3027a5Lajos Molnar 652d61e2b97c92ac2de80ebb3782b728ae5cdf5306Wei Jia#endif // _ANDROID_MEDIA_SYNC_PARAMS_H_ 66