提交 b1e82398 编写于 作者: Z Zhang Rui

ios: remove ijkutil

上级 dd8bc46e
......@@ -37,7 +37,6 @@
#include "libswresample/swresample.h"
#include "ijksdl/ijksdl.h"
#include "ijkutil/ijkutil.h"
typedef int (*ijk_format_control_message)(void *opaque, int type, void *data, size_t data_size);
......
......@@ -22,7 +22,7 @@
#include "ijkmeta.h"
#include "ff_ffinc.h"
#include "ijkutil/ijkutil.h"
#include "ijksdl/ijksdl_misc.h"
#define IJK_META_INIT_CAPACITY 13
......
......@@ -26,7 +26,6 @@
#include <stdbool.h>
#include "ff_ffmsg_queue.h"
#include "ijkutil/ijkutil.h"
#include "ijkmeta.h"
#ifndef MPTRACE
......
......@@ -23,7 +23,6 @@
#include "ijksdl_vout_dummy.h"
#include "ijkutil/ijkutil.h"
#include "../ijksdl_vout.h"
#include "../ijksdl_vout_internal.h"
......
......@@ -26,6 +26,7 @@
#include <stdbool.h>
#include <assert.h>
#include "../ijksdl_stdinc.h"
#include "../ijksdl_misc.h"
#include "../ijksdl_mutex.h"
#include "../ijksdl_vout_internal.h"
#include "../ijksdl_video.h"
......
......@@ -28,6 +28,8 @@
#include "ijksdl_aout.h"
#include "ijksdl_class.h"
#include "ijksdl_error.h"
#include "ijksdl_log.h"
#include "ijksdl_misc.h"
#include "ijksdl_mutex.h"
#include "ijksdl_thread.h"
#include "ijksdl_timer.h"
......
......@@ -25,10 +25,10 @@
#include <stdint.h>
#include "ijkutil/ijkutil.h"
#include "ijksdl_log.h"
#include "ijksdl_misc.h"
#include "ijksdl_stdinc.h"
#define SDLTRACE ALOGW
#define SDLTRACE ALOGD
#endif
/*****************************************************************************
* loghelper.h
* ijksdl_log.h
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
* copyright (c) 2015 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
......@@ -21,15 +21,11 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef IJKUTIL_IOS__LOGHELP_H
#define IJKUTIL_IOS__LOGHELP_H
#ifndef IJKSDL__IJKSDL_LOG_H
#define IJKSDL__IJKSDL_LOG_H
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
#define IJK_LOG_TAG "IJKMEDIA"
#define IJK_LOG_UNKNOWN 0
......@@ -58,8 +54,4 @@ extern "C" {
#define ALOGE(...) ALOG(IJK_LOG_ERROR, IJK_LOG_TAG, __VA_ARGS__)
#define LOG_ALWAYS_FATAL(...) do { ALOGE(__VA_ARGS__); exit(1); } while (0)
#ifdef __cplusplus
}
#endif
#endif
/*****************************************************************************
* ijkutil.h
* ijksdl_misc.h
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
......@@ -21,12 +21,11 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef IJKUTIL__IJKUTIL_H
#define IJKUTIL__IJKUTIL_H
#ifndef IJKSDL__IJKSDL_MISC_H
#define IJKSDL__IJKSDL_MISC_H
#include <stdlib.h>
#include <memory.h>
#include "ijklog.h"
#ifndef IJKMAX
#define IJKMAX(a, b) ((a) > (b) ? (a) : (b))
......@@ -64,10 +63,4 @@ inline static void freep(void **mem)
}
}
#if defined(__ANDROID__)
#include "android/ijkutil_android.h"
#elif defined(__APPLE__)
#include "ios/ijkutil_ios.h"
#endif
#endif
......@@ -24,6 +24,8 @@
#ifndef IJKSDL__IJKSDL_VOUT_INTERNAL_H
#define IJKSDL__IJKSDL_VOUT_INTERNAL_H
#include <stdlib.h>
#include <string.h>
#include "ijksdl_vout.h"
inline static SDL_Vout *SDL_Vout_CreateInternal(size_t opaque_size)
......@@ -88,6 +90,4 @@ inline static void SDL_VoutOverlay_FreeInternal(SDL_VoutOverlay *overlay)
free(overlay);
}
#define SDLTRACE ALOGW
#endif
# copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
#
# This file is part of ijkPlayer.
#
# ijkPlayer is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# ijkPlayer is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with ijkPlayer; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
LOCAL_PATH := $(call my-dir)
#--------------------
# so
#--------------------
include $(CLEAR_VARS)
LOCAL_CFLAGS += -std=c99
LOCAL_LDLIBS += -llog
LOCAL_SRC_FILES += android/loghelp.c
LOCAL_SRC_FILES += android/jnihelp.c
LOCAL_MODULE := ijkutil
include $(BUILD_SHARED_LIBRARY)
/*****************************************************************************
* ijkutil_android.h
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
* ijkPlayer is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* ijkPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with ijkPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef IJKUTIL__IJKUTIL_ANDROID_H
#define IJKUTIL__IJKUTIL_ANDROID_H
#include "jnihelp.h"
#define JNI_CHECK_GOTO(condition__, env__, exception__, msg__, label__) \
do { \
if (!(condition__)) { \
if (exception__) { \
jniThrowException(env__, exception__, msg__); \
} \
goto label__; \
} \
}while(0)
#define JNI_CHECK_RET_VOID(condition__, env__, exception__, msg__) \
do { \
if (!(condition__)) { \
if (exception__) { \
jniThrowException(env__, exception__, msg__); \
} \
return; \
} \
}while(0)
#define JNI_CHECK_RET(condition__, env__, exception__, msg__, ret__) \
do { \
if (!(condition__)) { \
if (exception__) { \
jniThrowException(env__, exception__, msg__); \
} \
return ret__; \
} \
}while(0)
#endif
/*
* jnihelp.c
*
* Copyright (c) 2014 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
* ijkPlayer is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* ijkPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with ijkPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "jnihelp.h"
#include "loghelp.h"
int jniThrowException(JNIEnv* env, const char* className, const char* msg)
{
if ((*env)->ExceptionCheck(env)) {
jthrowable exception = (*env)->ExceptionOccurred(env);
(*env)->ExceptionClear(env);
if (exception != NULL) {
ALOGW("Discarding pending exception (%s) to throw", className);
(*env)->DeleteLocalRef(env, exception);
}
}
jclass exceptionClass = (*env)->FindClass(env, className);
if (exceptionClass == NULL) {
ALOGE("Unable to find exception class %s", className);
/* ClassNotFoundException now pending */
goto fail;
}
if ((*env)->ThrowNew(env, exceptionClass, msg) != JNI_OK) {
ALOGE("Failed throwing '%s' '%s'", className, msg);
/* an exception, most likely OOM, will now be pending */
goto fail;
}
return 0;
fail:
if (exceptionClass)
(*env)->DeleteLocalRef(env, exceptionClass);
return -1;
}
/*
* Copyright (C) 2007 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.
*/
/*
* JNI helper functions.
*
* This file may be included by C or C++ code, which is trouble because jni.h
* uses different typedefs for JNIEnv in each language.
*/
#ifndef IJKUTIL_ANDROID__JNIHELP_H
#define IJKUTIL_ANDROID__JNIHELP_H
#include <jni.h>
#include <android/log.h>
#include <unistd.h>
#ifndef NELEM
# define NELEM(x) ((int) (sizeof(x) / sizeof((x)[0])))
#endif
#ifdef __cplusplus
extern "C" {
#endif
int jniThrowException(C_JNIEnv* env, const char* className, const char* msg);
#ifdef __cplusplus
}
#endif
#endif
/*****************************************************************************
* loghelper.c
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
* ijkPlayer is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* ijkPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with ijkPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "loghelp.h"
/*****************************************************************************
* loghelper.h
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
* ijkPlayer is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* ijkPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with ijkPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef IJKUTIL_ANDROID__LOGHELP_H
#define IJKUTIL_ANDROID__LOGHELP_H
#include <android/log.h>
#ifdef __cplusplus
extern "C" {
#endif
#define IJK_LOG_TAG "IJKMEDIA"
#define IJK_LOG_UNKNOWN ANDROID_LOG_UNKNOWN
#define IJK_LOG_DEFAULT ANDROID_LOG_DEFAULT
#define IJK_LOG_VERBOSE ANDROID_LOG_VERBOSE
#define IJK_LOG_DEBUG ANDROID_LOG_DEBUG
#define IJK_LOG_INFO ANDROID_LOG_INFO
#define IJK_LOG_WARN ANDROID_LOG_WARN
#define IJK_LOG_ERROR ANDROID_LOG_ERROR
#define IJK_LOG_FATAL ANDROID_LOG_FATAL
#define IJK_LOG_SILENT ANDROID_LOG_SILENT
#define VLOG(level, TAG, ...) ((void)__android_log_vprint(level, TAG, __VA_ARGS__))
#define VLOGV(...) VLOG(IJK_LOG_VERBOSE, IJK_LOG_TAG, __VA_ARGS__)
#define VLOGD(...) VLOG(IJK_LOG_DEBUG, IJK_LOG_TAG, __VA_ARGS__)
#define VLOGI(...) VLOG(IJK_LOG_INFO, IJK_LOG_TAG, __VA_ARGS__)
#define VLOGW(...) VLOG(IJK_LOG_WARN, IJK_LOG_TAG, __VA_ARGS__)
#define VLOGE(...) VLOG(IJK_LOG_ERROR, IJK_LOG_TAG, __VA_ARGS__)
#define ALOG(level, TAG, ...) ((void)__android_log_print(level, TAG, __VA_ARGS__))
#define ALOGV(...) ALOG(IJK_LOG_VERBOSE, IJK_LOG_TAG, __VA_ARGS__)
#define ALOGD(...) ALOG(IJK_LOG_DEBUG, IJK_LOG_TAG, __VA_ARGS__)
#define ALOGI(...) ALOG(IJK_LOG_INFO, IJK_LOG_TAG, __VA_ARGS__)
#define ALOGW(...) ALOG(IJK_LOG_WARN, IJK_LOG_TAG, __VA_ARGS__)
#define ALOGE(...) ALOG(IJK_LOG_ERROR, IJK_LOG_TAG, __VA_ARGS__)
#define LOG_ALWAYS_FATAL(...) do { ALOGE(__VA_ARGS__); exit(1); } while (0)
#ifdef __cplusplus
}
#endif
#endif
/*****************************************************************************
* ijklog.h
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
* ijkPlayer is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* ijkPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with ijkPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef IJKUTIL__IJKLOG_H
#define IJKUTIL__IJKLOG_H
#if defined(__ANDROID__)
#include "android/loghelp.h"
#elif defined(__APPLE__)
#include "ios/loghelp.h"
#endif
#endif
/*****************************************************************************
* ijkutil_ios.h
*****************************************************************************
*
* copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
*
* This file is part of ijkPlayer.
*
* ijkPlayer is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* ijkPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with ijkPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef IJKUTIL__IJKUTIL_IOS_H
#define IJKUTIL__IJKUTIL_IOS_H
#endif
......@@ -187,11 +187,10 @@
E690401117EAFC6100CFD954 /* ijksdl_vout.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ijksdl_vout.c; sourceTree = "<group>"; };
E690401217EAFC6100CFD954 /* ijksdl_vout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijksdl_vout.h; sourceTree = "<group>"; };
E690401317EAFC6100CFD954 /* ijksdl_vout_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijksdl_vout_internal.h; sourceTree = "<group>"; };
E690401917EAFC6100CFD954 /* ijkutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijkutil.h; sourceTree = "<group>"; };
E690403717EB079500CFD954 /* ijklog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijklog.h; sourceTree = "<group>"; };
E690403917EB079500CFD954 /* ijkutil_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijkutil_ios.h; sourceTree = "<group>"; };
E690403A17EB079500CFD954 /* loghelp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loghelp.h; sourceTree = "<group>"; };
E6C2FD391B300A390081D321 /* ff_ffplay_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ff_ffplay_debug.h; sourceTree = "<group>"; };
E6CA1EE71B4FAFCF00BCAF89 /* ijksdl_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijksdl_class.h; sourceTree = "<group>"; };
E6CA1EE81B4FAFCF00BCAF89 /* ijksdl_misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijksdl_misc.h; sourceTree = "<group>"; };
E6CA1EE91B4FB04500BCAF89 /* ijksdl_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijksdl_log.h; sourceTree = "<group>"; };
E6EE92A1187810C5009EAB56 /* IJKAudioKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IJKAudioKit.h; path = IJKMediaPlayer/IJKAudioKit.h; sourceTree = "<group>"; };
E6EE92A2187810C5009EAB56 /* IJKAudioKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IJKAudioKit.m; path = IJKMediaPlayer/IJKAudioKit.m; sourceTree = "<group>"; };
E6EE92A61878230C009EAB56 /* ijksdl_aout_ios_audiounit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ijksdl_aout_ios_audiounit.h; sourceTree = "<group>"; };
......@@ -397,7 +396,6 @@
children = (
E6903FCE17EAFC6100CFD954 /* ijkplayer */,
E6903FDF17EAFC6100CFD954 /* ijksdl */,
E690401417EAFC6100CFD954 /* ijkutil */,
);
name = ijkmedia;
path = ../../../ijkmedia;
......@@ -438,18 +436,19 @@
children = (
E63FC27217F013DE003551EB /* dummy */,
E6903FEF17EAFC6100CFD954 /* ffmpeg */,
E6EE92A51878230C009EAB56 /* ios */,
E6903FFD17EAFC6100CFD954 /* ijksdl.h */,
E690400117EAFC6100CFD954 /* ijksdl_aout_internal.h */,
E6903FFF17EAFC6100CFD954 /* ijksdl_aout.c */,
E690400017EAFC6100CFD954 /* ijksdl_aout.h */,
E690400117EAFC6100CFD954 /* ijksdl_aout_internal.h */,
E63FC27017F01143003551EB /* ijksdl_audio.c */,
E690400217EAFC6100CFD954 /* ijksdl_audio.h */,
E6CA1EE71B4FAFCF00BCAF89 /* ijksdl_class.h */,
E690400317EAFC6100CFD954 /* ijksdl_endian.h */,
E690400417EAFC6100CFD954 /* ijksdl_error.c */,
E690400517EAFC6100CFD954 /* ijksdl_error.h */,
E690400617EAFC6100CFD954 /* ijksdl_fourcc.h */,
E690400717EAFC6100CFD954 /* ijksdl_inc_internal.h */,
E6CA1EE91B4FB04500BCAF89 /* ijksdl_log.h */,
E6CA1EE81B4FAFCF00BCAF89 /* ijksdl_misc.h */,
E690400817EAFC6100CFD954 /* ijksdl_mutex.c */,
E690400917EAFC6100CFD954 /* ijksdl_mutex.h */,
E690400A17EAFC6100CFD954 /* ijksdl_stdinc.c */,
......@@ -459,9 +458,11 @@
E690400E17EAFC6100CFD954 /* ijksdl_timer.c */,
E690400F17EAFC6100CFD954 /* ijksdl_timer.h */,
E690401017EAFC6100CFD954 /* ijksdl_video.h */,
E690401317EAFC6100CFD954 /* ijksdl_vout_internal.h */,
E690401117EAFC6100CFD954 /* ijksdl_vout.c */,
E690401217EAFC6100CFD954 /* ijksdl_vout.h */,
E690401317EAFC6100CFD954 /* ijksdl_vout_internal.h */,
E6903FFD17EAFC6100CFD954 /* ijksdl.h */,
E6EE92A51878230C009EAB56 /* ios */,
);
path = ijksdl;
sourceTree = "<group>";
......@@ -486,25 +487,6 @@
path = abi_all;
sourceTree = "<group>";
};
E690401417EAFC6100CFD954 /* ijkutil */ = {
isa = PBXGroup;
children = (
E690403717EB079500CFD954 /* ijklog.h */,
E690401917EAFC6100CFD954 /* ijkutil.h */,
E690403817EB079500CFD954 /* ios */,
);
path = ijkutil;
sourceTree = "<group>";
};
E690403817EB079500CFD954 /* ios */ = {
isa = PBXGroup;
children = (
E690403917EB079500CFD954 /* ijkutil_ios.h */,
E690403A17EB079500CFD954 /* loghelp.h */,
);
path = ios;
sourceTree = "<group>";
};
E6EE92A51878230C009EAB56 /* ios */ = {
isa = PBXGroup;
children = (
......
......@@ -23,8 +23,8 @@
*/
#import "IJKSDLAudioUnitController.h"
#include "ijkutil/ijkutil.h"
#import "IJKSDLAudioKit.h"
#include "ijksdl/ijksdl_log.h"
#import <AVFoundation/AVFoundation.h>
......
......@@ -23,7 +23,6 @@
#import "ijksdl_vout_ios_gles2.h"
#include <assert.h>
#include "ijkutil/ijkutil.h"
#include "ijksdl/ijksdl_vout.h"
#include "ijksdl/ijksdl_vout_internal.h"
#include "ijksdl/ffmpeg/ijksdl_vout_overlay_ffmpeg.h"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册