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

android/player: export method to set chroma

上级 a8c74918
......@@ -427,8 +427,19 @@ public final class IjkMediaPlayer extends SimpleMediaPlayer {
_setAvCodecOption(name, value);
}
/**
* @param chromaFourCC
* AvFourCC.SDL_FCC_RV16
* AvFourCC.SDL_FCC_RV32
* AvFourCC.SDL_FCC_YV12
*/
public void setOverlayFormat(int chromaFourCC) {
_setOverlayFormat(chromaFourCC);
}
private native void _setAvFormatOption(String name, String value);
private native void _setAvCodecOption(String name, String value);
private native void _setOverlayFormat(int chromaFourCC);
@Override
public void setAudioStreamType(int streamtype) {
......
package tv.danmaku.ijk.media.player.option;
public class AvFourCC {
public static int SDL_FCC_YV12 = 0x32315659; // YV12
public static int SDL_FCC_RV16 = 0x36315652; // RGB565
public static int SDL_FCC_RV32 = 0x32335652; // RGBX8888
}
......@@ -30,6 +30,7 @@ import tv.danmaku.ijk.media.player.IMediaPlayer.OnPreparedListener;
import tv.danmaku.ijk.media.player.IMediaPlayer.OnSeekCompleteListener;
import tv.danmaku.ijk.media.player.IMediaPlayer.OnVideoSizeChangedListener;
import tv.danmaku.ijk.media.player.IjkMediaPlayer;
import tv.danmaku.ijk.media.player.option.AvFourCC;
import tv.danmaku.ijk.media.player.option.format.AvFormatOption_HttpDetectRangeSupport;
import android.app.Activity;
import android.app.AlertDialog;
......@@ -238,11 +239,11 @@ public class VideoView extends SurfaceView implements
mDuration = -1;
mCurrentBufferPercentage = 0;
// mMediaPlayer = new AndroidMediaPlayer();
IMediaPlayer ijkMediaPlayer = null;
IjkMediaPlayer ijkMediaPlayer = null;
if (mUri != null) {
ijkMediaPlayer = new IjkMediaPlayer();
((IjkMediaPlayer) ijkMediaPlayer)
.setAvOption(AvFormatOption_HttpDetectRangeSupport.Disable);
ijkMediaPlayer.setAvOption(AvFormatOption_HttpDetectRangeSupport.Disable);
ijkMediaPlayer.setOverlayFormat(AvFourCC.SDL_FCC_RV32);
}
mMediaPlayer = ijkMediaPlayer;
mMediaPlayer.setOnPreparedListener(mPreparedListener);
......
......@@ -327,6 +327,19 @@ IjkMediaPlayer_setAvCodecOption(JNIEnv *env, jobject thiz, jobject name, jobject
ijkmp_dec_ref_p(&mp);
}
static void
IjkMediaPlayer_setOverlayFormat(JNIEnv *env, jobject thiz, jint chromaFourCC)
{
MPTRACE("IjkMediaPlayer_setOverlayFormat");
IjkMediaPlayer *mp = jni_get_media_player(env, thiz);
JNI_CHECK_GOTO(mp, env, "java/lang/IllegalStateException", "mpjni: setAvCodecOption: null mp", LABEL_RETURN);
ijkmp_set_overlay_format(mp, chromaFourCC);
LABEL_RETURN:
ijkmp_dec_ref_p(&mp);
}
static void
IjkMediaPlayer_native_init(JNIEnv *env)
{
......@@ -477,6 +490,7 @@ static JNINativeMethod g_methods[] = {
{ "_setAvFormatOption", "(Ljava/lang/String;Ljava/lang/String;)V", (void *) IjkMediaPlayer_setAvFormatOption },
{ "_setAvCodecOption", "(Ljava/lang/String;Ljava/lang/String;)V", (void *) IjkMediaPlayer_setAvCodecOption },
{ "_setOverlayFormat", "(I)V", (void *) IjkMediaPlayer_setOverlayFormat },
};
JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册