提交 77cb7a7c 编写于 作者: Z Zhang Rui

android/sample: show av-cache

上级 2a50f476
......@@ -108,6 +108,19 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
public static final int FFP_PROP_INT64_SELECTED_VIDEO_STREAM = 20001;
public static final int FFP_PROP_INT64_SELECTED_AUDIO_STREAM = 20002;
public static final int FFP_PROP_INT64_VIDEO_DECODER = 20003;
public static final int FFP_PROP_INT64_AUDIO_DECODER = 20004;
public static final int FFP_PROPV_DECODER_UNKNOWN = 0;
public static final int FFP_PROPV_DECODER_AVCODEC = 1;
public static final int FFP_PROPV_DECODER_MEDIACODEC = 2;
public static final int FFP_PROPV_DECODER_VIDEOTOOLBOX = 3;
public static final int FFP_PROP_INT64_VIDEO_CACHED_DURATION = 20005;
public static final int FFP_PROP_INT64_AUDIO_CACHED_DURATION = 20006;
public static final int FFP_PROP_INT64_VIDEO_CACHED_BYTES = 20007;
public static final int FFP_PROP_INT64_AUDIO_CACHED_BYTES = 20008;
public static final int FFP_PROP_INT64_VIDEO_CACHED_PACKETS = 20009;
public static final int FFP_PROP_INT64_AUDIO_CACHED_PACKETS = 20010;
//----------------------------------------
@AccessedByNative
......@@ -703,6 +716,30 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
return _getPropertyFloat(PROP_FLOAT_VIDEO_DECODE_FRAMES_PER_SECOND, 0.0f);
}
public long getVideoCachedDuration() {
return _getPropertyLong(FFP_PROP_INT64_VIDEO_CACHED_DURATION, 0);
}
public long getAudioCachedDuration() {
return _getPropertyLong(FFP_PROP_INT64_AUDIO_CACHED_DURATION, 0);
}
public long getVideoCachedBytes() {
return _getPropertyLong(FFP_PROP_INT64_VIDEO_CACHED_BYTES, 0);
}
public long getAudioCachedBytes() {
return _getPropertyLong(FFP_PROP_INT64_AUDIO_CACHED_BYTES, 0);
}
public long getVideoCachedPackets() {
return _getPropertyLong(FFP_PROP_INT64_VIDEO_CACHED_PACKETS, 0);
}
public long getAudioCachedPackets() {
return _getPropertyLong(FFP_PROP_INT64_AUDIO_CACHED_PACKETS, 0);
}
private native float _getPropertyFloat(int property, float defaultValue);
private native void _setPropertyFloat(int property, float value);
private native long _getPropertyLong(int property, long defaultValue);
......
......@@ -80,6 +80,14 @@ public class InfoHudViewHolder {
setRowValue(R.string.fps_decode, String.format(Locale.US, "%.2f", fpsDecode));
setRowValue(R.string.fps_output, String.format(Locale.US, "%.2f", fpsOutput));
long videoCachedDuration = mp.getVideoCachedDuration();
long audioCachedDuration = mp.getAudioCachedDuration();
long videoCachedBytes = mp.getVideoCachedBytes();
long audioCachedBytes = mp.getAudioCachedBytes();
setRowValue(R.string.v_cache, String.format(Locale.US, "%d ms, %d B", videoCachedDuration, videoCachedBytes));
setRowValue(R.string.a_cache, String.format(Locale.US, "%d ms, %d B", audioCachedDuration, audioCachedBytes));
mHandler.removeMessages(MSG_UPDATE_HUD);
mHandler.sendEmptyMessageDelayed(MSG_UPDATE_HUD, 500);
}
......
......@@ -16,6 +16,8 @@
<string name="show_info">Info</string>
<string name="fps_output">fps (output)</string>
<string name="fps_decode">fps (decode)</string>
<string name="v_cache">v-cache</string>
<string name="a_cache">a-cache</string>
<string name="media_information">Media Information</string>
<string name="mi_player">Player</string>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册