diff options
-rw-r--r-- | media/java/android/media/BufferingParams.java | 384 | ||||
-rw-r--r-- | media/java/android/media/MediaPlayer.java | 17 | ||||
-rw-r--r-- | media/jni/android_media_BufferingParams.h | 50 | ||||
-rw-r--r-- | media/jni/android_media_MediaPlayer.cpp | 20 |
4 files changed, 70 insertions, 401 deletions
diff --git a/media/java/android/media/BufferingParams.java b/media/java/android/media/BufferingParams.java index 681271b1a6f0..521e89756f5d 100644 --- a/media/java/android/media/BufferingParams.java +++ b/media/java/android/media/BufferingParams.java @@ -26,170 +26,68 @@ import java.lang.annotation.RetentionPolicy; /** * Structure for source buffering management params. * - * Used by {@link MediaPlayer#getDefaultBufferingParams()}, - * {@link MediaPlayer#getBufferingParams()} and + * Used by {@link MediaPlayer#getBufferingParams()} and * {@link MediaPlayer#setBufferingParams(BufferingParams)} * to control source buffering behavior. * * <p>There are two stages of source buffering in {@link MediaPlayer}: initial buffering * (when {@link MediaPlayer} is being prepared) and rebuffering (when {@link MediaPlayer} - * is playing back source). {@link BufferingParams} includes mode and corresponding - * watermarks for each stage of source buffering. The watermarks could be either size - * based (in milliseconds), or time based (in kilobytes) or both, depending on the mode. + * is playing back source). {@link BufferingParams} includes corresponding marks for each + * stage of source buffering. The marks are time based (in milliseconds). * - * <p>There are 4 buffering modes: {@link #BUFFERING_MODE_NONE}, - * {@link #BUFFERING_MODE_TIME_ONLY}, {@link #BUFFERING_MODE_SIZE_ONLY} and - * {@link #BUFFERING_MODE_TIME_THEN_SIZE}. - * {@link MediaPlayer} source component has default buffering modes which can be queried - * by calling {@link MediaPlayer#getDefaultBufferingParams()}. - * Users should always use those default modes or their downsized version when trying to - * change buffering params. For example, {@link #BUFFERING_MODE_TIME_THEN_SIZE} can be - * downsized to {@link #BUFFERING_MODE_NONE}, {@link #BUFFERING_MODE_TIME_ONLY} or - * {@link #BUFFERING_MODE_SIZE_ONLY}. But {@link #BUFFERING_MODE_TIME_ONLY} can not be - * downsized to {@link #BUFFERING_MODE_SIZE_ONLY}. + * <p>{@link MediaPlayer} source component has default marks which can be queried by + * calling {@link MediaPlayer#getBufferingParams()} before any change is made by + * {@link MediaPlayer#setBufferingParams()}. * <ul> - * <li><strong>initial buffering stage:</strong> has one watermark which is used when - * {@link MediaPlayer} is being prepared. When cached data amount exceeds this watermark, - * {@link MediaPlayer} is prepared.</li> - * <li><strong>rebuffering stage:</strong> has two watermarks, low and high, which are - * used when {@link MediaPlayer} is playing back content. + * <li><strong>initial buffering:</strong> initialMarkMs is used when + * {@link MediaPlayer} is being prepared. When cached data amount exceeds this mark + * {@link MediaPlayer} is prepared. </li> + * <li><strong>rebuffering during playback:</strong> resumePlaybackMarkMs is used when + * {@link MediaPlayer} is playing back content. * <ul> - * <li> When cached data amount exceeds high watermark, {@link MediaPlayer} will pause - * buffering. Buffering will resume when cache runs below some limit which could be low - * watermark or some intermediate value decided by the source component.</li> - * <li> When cached data amount runs below low watermark, {@link MediaPlayer} will paused - * playback. Playback will resume when cached data amount exceeds high watermark - * or reaches end of stream.</li> - * </ul> + * <li> {@link MediaPlayer} has internal mark, namely pausePlaybackMarkMs, to decide when + * to pause playback if cached data amount runs low. This internal mark varies based on + * type of data source. </li> + * <li> When cached data amount exceeds resumePlaybackMarkMs, {@link MediaPlayer} will + * resume playback if it has been paused due to low cached data amount. The internal mark + * pausePlaybackMarkMs shall be less than resumePlaybackMarkMs. </li> + * <li> {@link MediaPlayer} has internal mark, namely pauseRebufferingMarkMs, to decide + * when to pause rebuffering. Apparently, this internal mark shall be no less than + * resumePlaybackMarkMs. </li> + * <li> {@link MediaPlayer} has internal mark, namely resumeRebufferingMarkMs, to decide + * when to resume buffering. This internal mark varies based on type of data source. This + * mark shall be larger than pausePlaybackMarkMs, and less than pauseRebufferingMarkMs. + * </li> + * </ul> </li> * </ul> * <p>Users should use {@link Builder} to change {@link BufferingParams}. * @hide */ public final class BufferingParams implements Parcelable { - /** - * This mode indicates that source buffering is not supported. - */ - public static final int BUFFERING_MODE_NONE = 0; - /** - * This mode indicates that only time based source buffering is supported. This means - * the watermark(s) are time based. - */ - public static final int BUFFERING_MODE_TIME_ONLY = 1; - /** - * This mode indicates that only size based source buffering is supported. This means - * the watermark(s) are size based. - */ - public static final int BUFFERING_MODE_SIZE_ONLY = 2; - /** - * This mode indicates that both time and size based source buffering are supported, - * and time based calculation precedes size based. Size based calculation will be used - * only when time information is not available from the source. - */ - public static final int BUFFERING_MODE_TIME_THEN_SIZE = 3; - - /** @hide */ - @IntDef( - value = { - BUFFERING_MODE_NONE, - BUFFERING_MODE_TIME_ONLY, - BUFFERING_MODE_SIZE_ONLY, - BUFFERING_MODE_TIME_THEN_SIZE, - } - ) - @Retention(RetentionPolicy.SOURCE) - public @interface BufferingMode {} - - private static final int BUFFERING_NO_WATERMARK = -1; + private static final int BUFFERING_NO_MARK = -1; // params - private int mInitialBufferingMode = BUFFERING_MODE_NONE; - private int mRebufferingMode = BUFFERING_MODE_NONE; - - private int mInitialWatermarkMs = BUFFERING_NO_WATERMARK; - private int mInitialWatermarkKB = BUFFERING_NO_WATERMARK; + private int mInitialMarkMs = BUFFERING_NO_MARK; - private int mRebufferingWatermarkLowMs = BUFFERING_NO_WATERMARK; - private int mRebufferingWatermarkHighMs = BUFFERING_NO_WATERMARK; - private int mRebufferingWatermarkLowKB = BUFFERING_NO_WATERMARK; - private int mRebufferingWatermarkHighKB = BUFFERING_NO_WATERMARK; + private int mResumePlaybackMarkMs = BUFFERING_NO_MARK; private BufferingParams() { } /** - * Return the initial buffering mode used when {@link MediaPlayer} is being prepared. - * @return one of the values that can be set in {@link Builder#setInitialBufferingMode(int)} - */ - public int getInitialBufferingMode() { - return mInitialBufferingMode; - } - - /** - * Return the rebuffering mode used when {@link MediaPlayer} is playing back source. - * @return one of the values that can be set in {@link Builder#setRebufferingMode(int)} - */ - public int getRebufferingMode() { - return mRebufferingMode; - } - - /** - * Return the time based initial buffering watermark in milliseconds. - * It is meaningful only when initial buffering mode obatined from - * {@link #getInitialBufferingMode()} is time based. - * @return time based initial buffering watermark in milliseconds - */ - public int getInitialBufferingWatermarkMs() { - return mInitialWatermarkMs; - } - - /** - * Return the size based initial buffering watermark in kilobytes. - * It is meaningful only when initial buffering mode obatined from - * {@link #getInitialBufferingMode()} is size based. - * @return size based initial buffering watermark in kilobytes + * Return initial buffering mark in milliseconds. + * @return initial buffering mark in milliseconds */ - public int getInitialBufferingWatermarkKB() { - return mInitialWatermarkKB; + public int getInitialMarkMs() { + return mInitialMarkMs; } /** - * Return the time based low watermark in milliseconds for rebuffering. - * It is meaningful only when rebuffering mode obatined from - * {@link #getRebufferingMode()} is time based. - * @return time based low watermark for rebuffering in milliseconds + * Return the mark in milliseconds for resuming playback. + * @return the mark for resuming playback in milliseconds */ - public int getRebufferingWatermarkLowMs() { - return mRebufferingWatermarkLowMs; - } - - /** - * Return the time based high watermark in milliseconds for rebuffering. - * It is meaningful only when rebuffering mode obatined from - * {@link #getRebufferingMode()} is time based. - * @return time based high watermark for rebuffering in milliseconds - */ - public int getRebufferingWatermarkHighMs() { - return mRebufferingWatermarkHighMs; - } - - /** - * Return the size based low watermark in kilobytes for rebuffering. - * It is meaningful only when rebuffering mode obatined from - * {@link #getRebufferingMode()} is size based. - * @return size based low watermark for rebuffering in kilobytes - */ - public int getRebufferingWatermarkLowKB() { - return mRebufferingWatermarkLowKB; - } - - /** - * Return the size based high watermark in kilobytes for rebuffering. - * It is meaningful only when rebuffering mode obatined from - * {@link #getRebufferingMode()} is size based. - * @return size based high watermark for rebuffering in kilobytes - */ - public int getRebufferingWatermarkHighKB() { - return mRebufferingWatermarkHighKB; + public int getResumePlaybackMarkMs() { + return mResumePlaybackMarkMs; } /** @@ -200,27 +98,19 @@ public final class BufferingParams implements Parcelable { * <pre class="prettyprint"> * BufferingParams myParams = mediaplayer.getDefaultBufferingParams(); * myParams = new BufferingParams.Builder(myParams) - * .setInitialBufferingWatermarkMs(10000) - * .build(); + * .setInitialMarkMs(10000) + * .setResumePlaybackMarkMs(15000) + * .build(); * mediaplayer.setBufferingParams(myParams); * </pre> */ public static class Builder { - private int mInitialBufferingMode = BUFFERING_MODE_NONE; - private int mRebufferingMode = BUFFERING_MODE_NONE; - - private int mInitialWatermarkMs = BUFFERING_NO_WATERMARK; - private int mInitialWatermarkKB = BUFFERING_NO_WATERMARK; - - private int mRebufferingWatermarkLowMs = BUFFERING_NO_WATERMARK; - private int mRebufferingWatermarkHighMs = BUFFERING_NO_WATERMARK; - private int mRebufferingWatermarkLowKB = BUFFERING_NO_WATERMARK; - private int mRebufferingWatermarkHighKB = BUFFERING_NO_WATERMARK; + private int mInitialMarkMs = BUFFERING_NO_MARK; + private int mResumePlaybackMarkMs = BUFFERING_NO_MARK; /** * Constructs a new Builder with the defaults. - * By default, both initial buffering mode and rebuffering mode are - * {@link BufferingParams#BUFFERING_MODE_NONE}, and all watermarks are -1. + * By default, all marks are -1. */ public Builder() { } @@ -231,16 +121,8 @@ public final class BufferingParams implements Parcelable { * in the new Builder. */ public Builder(BufferingParams bp) { - mInitialBufferingMode = bp.mInitialBufferingMode; - mRebufferingMode = bp.mRebufferingMode; - - mInitialWatermarkMs = bp.mInitialWatermarkMs; - mInitialWatermarkKB = bp.mInitialWatermarkKB; - - mRebufferingWatermarkLowMs = bp.mRebufferingWatermarkLowMs; - mRebufferingWatermarkHighMs = bp.mRebufferingWatermarkHighMs; - mRebufferingWatermarkLowKB = bp.mRebufferingWatermarkLowKB; - mRebufferingWatermarkHighKB = bp.mRebufferingWatermarkHighKB; + mInitialMarkMs = bp.mInitialMarkMs; + mResumePlaybackMarkMs = bp.mResumePlaybackMarkMs; } /** @@ -250,179 +132,37 @@ public final class BufferingParams implements Parcelable { * @return a new {@link BufferingParams} object */ public BufferingParams build() { - if (isTimeBasedMode(mRebufferingMode) - && mRebufferingWatermarkLowMs > mRebufferingWatermarkHighMs) { - throw new IllegalStateException("Illegal watermark:" - + mRebufferingWatermarkLowMs + " : " + mRebufferingWatermarkHighMs); - } - if (isSizeBasedMode(mRebufferingMode) - && mRebufferingWatermarkLowKB > mRebufferingWatermarkHighKB) { - throw new IllegalStateException("Illegal watermark:" - + mRebufferingWatermarkLowKB + " : " + mRebufferingWatermarkHighKB); - } - BufferingParams bp = new BufferingParams(); - bp.mInitialBufferingMode = mInitialBufferingMode; - bp.mRebufferingMode = mRebufferingMode; - - bp.mInitialWatermarkMs = mInitialWatermarkMs; - bp.mInitialWatermarkKB = mInitialWatermarkKB; + bp.mInitialMarkMs = mInitialMarkMs; + bp.mResumePlaybackMarkMs = mResumePlaybackMarkMs; - bp.mRebufferingWatermarkLowMs = mRebufferingWatermarkLowMs; - bp.mRebufferingWatermarkHighMs = mRebufferingWatermarkHighMs; - bp.mRebufferingWatermarkLowKB = mRebufferingWatermarkLowKB; - bp.mRebufferingWatermarkHighKB = mRebufferingWatermarkHighKB; return bp; } - private boolean isTimeBasedMode(int mode) { - return (mode == BUFFERING_MODE_TIME_ONLY || mode == BUFFERING_MODE_TIME_THEN_SIZE); - } - - private boolean isSizeBasedMode(int mode) { - return (mode == BUFFERING_MODE_SIZE_ONLY || mode == BUFFERING_MODE_TIME_THEN_SIZE); - } - /** - * Sets the initial buffering mode. - * @param mode one of {@link BufferingParams#BUFFERING_MODE_NONE}, - * {@link BufferingParams#BUFFERING_MODE_TIME_ONLY}, - * {@link BufferingParams#BUFFERING_MODE_SIZE_ONLY}, - * {@link BufferingParams#BUFFERING_MODE_TIME_THEN_SIZE}, + * Sets the time based mark in milliseconds for initial buffering. + * @param markMs time based mark in milliseconds * @return the same Builder instance. */ - public Builder setInitialBufferingMode(@BufferingMode int mode) { - switch (mode) { - case BUFFERING_MODE_NONE: - case BUFFERING_MODE_TIME_ONLY: - case BUFFERING_MODE_SIZE_ONLY: - case BUFFERING_MODE_TIME_THEN_SIZE: - mInitialBufferingMode = mode; - break; - default: - throw new IllegalArgumentException("Illegal buffering mode " + mode); - } + public Builder setInitialMarkMs(int markMs) { + mInitialMarkMs = markMs; return this; } /** - * Sets the rebuffering mode. - * @param mode one of {@link BufferingParams#BUFFERING_MODE_NONE}, - * {@link BufferingParams#BUFFERING_MODE_TIME_ONLY}, - * {@link BufferingParams#BUFFERING_MODE_SIZE_ONLY}, - * {@link BufferingParams#BUFFERING_MODE_TIME_THEN_SIZE}, + * Sets the time based mark in milliseconds for resuming playback. + * @param markMs time based mark in milliseconds for resuming playback * @return the same Builder instance. */ - public Builder setRebufferingMode(@BufferingMode int mode) { - switch (mode) { - case BUFFERING_MODE_NONE: - case BUFFERING_MODE_TIME_ONLY: - case BUFFERING_MODE_SIZE_ONLY: - case BUFFERING_MODE_TIME_THEN_SIZE: - mRebufferingMode = mode; - break; - default: - throw new IllegalArgumentException("Illegal buffering mode " + mode); - } - return this; - } - - /** - * Sets the time based watermark in milliseconds for initial buffering. - * @param watermarkMs time based watermark in milliseconds - * @return the same Builder instance. - */ - public Builder setInitialBufferingWatermarkMs(int watermarkMs) { - mInitialWatermarkMs = watermarkMs; - return this; - } - - /** - * Sets the size based watermark in kilobytes for initial buffering. - * @param watermarkKB size based watermark in kilobytes - * @return the same Builder instance. - */ - public Builder setInitialBufferingWatermarkKB(int watermarkKB) { - mInitialWatermarkKB = watermarkKB; - return this; - } - - /** - * Sets the time based low watermark in milliseconds for rebuffering. - * @param watermarkMs time based low watermark in milliseconds - * @return the same Builder instance. - */ - public Builder setRebufferingWatermarkLowMs(int watermarkMs) { - mRebufferingWatermarkLowMs = watermarkMs; - return this; - } - - /** - * Sets the time based high watermark in milliseconds for rebuffering. - * @param watermarkMs time based high watermark in milliseconds - * @return the same Builder instance. - */ - public Builder setRebufferingWatermarkHighMs(int watermarkMs) { - mRebufferingWatermarkHighMs = watermarkMs; - return this; - } - - /** - * Sets the size based low watermark in milliseconds for rebuffering. - * @param watermarkKB size based low watermark in milliseconds - * @return the same Builder instance. - */ - public Builder setRebufferingWatermarkLowKB(int watermarkKB) { - mRebufferingWatermarkLowKB = watermarkKB; - return this; - } - - /** - * Sets the size based high watermark in milliseconds for rebuffering. - * @param watermarkKB size based high watermark in milliseconds - * @return the same Builder instance. - */ - public Builder setRebufferingWatermarkHighKB(int watermarkKB) { - mRebufferingWatermarkHighKB = watermarkKB; - return this; - } - - /** - * Sets the time based low and high watermarks in milliseconds for rebuffering. - * @param lowWatermarkMs time based low watermark in milliseconds - * @param highWatermarkMs time based high watermark in milliseconds - * @return the same Builder instance. - */ - public Builder setRebufferingWatermarksMs(int lowWatermarkMs, int highWatermarkMs) { - mRebufferingWatermarkLowMs = lowWatermarkMs; - mRebufferingWatermarkHighMs = highWatermarkMs; - return this; - } - - /** - * Sets the size based low and high watermarks in kilobytes for rebuffering. - * @param lowWatermarkKB size based low watermark in kilobytes - * @param highWatermarkKB size based high watermark in kilobytes - * @return the same Builder instance. - */ - public Builder setRebufferingWatermarksKB(int lowWatermarkKB, int highWatermarkKB) { - mRebufferingWatermarkLowKB = lowWatermarkKB; - mRebufferingWatermarkHighKB = highWatermarkKB; + public Builder setResumePlaybackMarkMs(int markMs) { + mResumePlaybackMarkMs = markMs; return this; } } private BufferingParams(Parcel in) { - mInitialBufferingMode = in.readInt(); - mRebufferingMode = in.readInt(); - - mInitialWatermarkMs = in.readInt(); - mInitialWatermarkKB = in.readInt(); - - mRebufferingWatermarkLowMs = in.readInt(); - mRebufferingWatermarkHighMs = in.readInt(); - mRebufferingWatermarkLowKB = in.readInt(); - mRebufferingWatermarkHighKB = in.readInt(); + mInitialMarkMs = in.readInt(); + mResumePlaybackMarkMs = in.readInt(); } public static final Parcelable.Creator<BufferingParams> CREATOR = @@ -446,15 +186,7 @@ public final class BufferingParams implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(mInitialBufferingMode); - dest.writeInt(mRebufferingMode); - - dest.writeInt(mInitialWatermarkMs); - dest.writeInt(mInitialWatermarkKB); - - dest.writeInt(mRebufferingWatermarkLowMs); - dest.writeInt(mRebufferingWatermarkHighMs); - dest.writeInt(mRebufferingWatermarkLowKB); - dest.writeInt(mRebufferingWatermarkHighKB); + dest.writeInt(mInitialMarkMs); + dest.writeInt(mResumePlaybackMarkMs); } } diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java index 17af44b956c1..649c091b1fd4 100644 --- a/media/java/android/media/MediaPlayer.java +++ b/media/java/android/media/MediaPlayer.java @@ -1698,21 +1698,9 @@ public class MediaPlayer extends PlayerBase public native boolean isPlaying(); /** - * Gets the default buffering management params. - * Calling it only after {@code setDataSource} has been called. - * Each type of data source might have different set of default params. - * - * @return the default buffering management params supported by the source component. - * @throws IllegalStateException if the internal player engine has not been - * initialized, or {@code setDataSource} has not been called. - * @hide - */ - @NonNull - public native BufferingParams getDefaultBufferingParams(); - - /** * Gets the current buffering management params used by the source component. * Calling it only after {@code setDataSource} has been called. + * Each type of data source might have different set of default params. * * @return the current buffering management params used by the source component. * @throws IllegalStateException if the internal player engine has not been @@ -1727,8 +1715,7 @@ public class MediaPlayer extends PlayerBase * The object sets its internal BufferingParams to the input, except that the input is * invalid or not supported. * Call it only after {@code setDataSource} has been called. - * Users should only use supported mode returned by {@link #getDefaultBufferingParams()} - * or its downsized version as described in {@link BufferingParams}. + * The input is a hint to MediaPlayer. * * @param params the buffering management params. * diff --git a/media/jni/android_media_BufferingParams.h b/media/jni/android_media_BufferingParams.h index 24c51f5f00d4..b0046720174b 100644 --- a/media/jni/android_media_BufferingParams.h +++ b/media/jni/android_media_BufferingParams.h @@ -29,14 +29,8 @@ struct BufferingParams { jclass clazz; jmethodID constructID; - jfieldID initial_buffering_mode; - jfieldID rebuffering_mode; - jfieldID initial_watermark_ms; - jfieldID initial_watermark_kb; - jfieldID rebuffering_watermark_low_ms; - jfieldID rebuffering_watermark_high_ms; - jfieldID rebuffering_watermark_low_kb; - jfieldID rebuffering_watermark_high_kb; + jfieldID initial_mark_ms; + jfieldID resume_playback_mark_ms; void init(JNIEnv *env) { jclass lclazz = env->FindClass("android/media/BufferingParams"); @@ -51,14 +45,8 @@ struct BufferingParams { constructID = env->GetMethodID(clazz, "<init>", "()V"); - initial_buffering_mode = env->GetFieldID(clazz, "mInitialBufferingMode", "I"); - rebuffering_mode = env->GetFieldID(clazz, "mRebufferingMode", "I"); - initial_watermark_ms = env->GetFieldID(clazz, "mInitialWatermarkMs", "I"); - initial_watermark_kb = env->GetFieldID(clazz, "mInitialWatermarkKB", "I"); - rebuffering_watermark_low_ms = env->GetFieldID(clazz, "mRebufferingWatermarkLowMs", "I"); - rebuffering_watermark_high_ms = env->GetFieldID(clazz, "mRebufferingWatermarkHighMs", "I"); - rebuffering_watermark_low_kb = env->GetFieldID(clazz, "mRebufferingWatermarkLowKB", "I"); - rebuffering_watermark_high_kb = env->GetFieldID(clazz, "mRebufferingWatermarkHighKB", "I"); + initial_mark_ms = env->GetFieldID(clazz, "mInitialMarkMs", "I"); + resume_playback_mark_ms = env->GetFieldID(clazz, "mResumePlaybackMarkMs", "I"); env->DeleteLocalRef(lclazz); } @@ -70,22 +58,10 @@ struct BufferingParams { }; void fillFromJobject(JNIEnv *env, const fields_t& fields, jobject params) { - settings.mInitialBufferingMode = - (BufferingMode)env->GetIntField(params, fields.initial_buffering_mode); - settings.mRebufferingMode = - (BufferingMode)env->GetIntField(params, fields.rebuffering_mode); - settings.mInitialWatermarkMs = - env->GetIntField(params, fields.initial_watermark_ms); - settings.mInitialWatermarkKB = - env->GetIntField(params, fields.initial_watermark_kb); - settings.mRebufferingWatermarkLowMs = - env->GetIntField(params, fields.rebuffering_watermark_low_ms); - settings.mRebufferingWatermarkHighMs = - env->GetIntField(params, fields.rebuffering_watermark_high_ms); - settings.mRebufferingWatermarkLowKB = - env->GetIntField(params, fields.rebuffering_watermark_low_kb); - settings.mRebufferingWatermarkHighKB = - env->GetIntField(params, fields.rebuffering_watermark_high_kb); + settings.mInitialMarkMs = + env->GetIntField(params, fields.initial_mark_ms); + settings.mResumePlaybackMarkMs = + env->GetIntField(params, fields.resume_playback_mark_ms); } jobject asJobject(JNIEnv *env, const fields_t& fields) { @@ -93,14 +69,8 @@ struct BufferingParams { if (params == NULL) { return NULL; } - env->SetIntField(params, fields.initial_buffering_mode, (jint)settings.mInitialBufferingMode); - env->SetIntField(params, fields.rebuffering_mode, (jint)settings.mRebufferingMode); - env->SetIntField(params, fields.initial_watermark_ms, (jint)settings.mInitialWatermarkMs); - env->SetIntField(params, fields.initial_watermark_kb, (jint)settings.mInitialWatermarkKB); - env->SetIntField(params, fields.rebuffering_watermark_low_ms, (jint)settings.mRebufferingWatermarkLowMs); - env->SetIntField(params, fields.rebuffering_watermark_high_ms, (jint)settings.mRebufferingWatermarkHighMs); - env->SetIntField(params, fields.rebuffering_watermark_low_kb, (jint)settings.mRebufferingWatermarkLowKB); - env->SetIntField(params, fields.rebuffering_watermark_high_kb, (jint)settings.mRebufferingWatermarkHighKB); + env->SetIntField(params, fields.initial_mark_ms, (jint)settings.mInitialMarkMs); + env->SetIntField(params, fields.resume_playback_mark_ms, (jint)settings.mResumePlaybackMarkMs); return params; } diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp index cfa3cc36ea20..eda22d574fd7 100644 --- a/media/jni/android_media_MediaPlayer.cpp +++ b/media/jni/android_media_MediaPlayer.cpp @@ -371,25 +371,6 @@ android_media_MediaPlayer_setVideoSurface(JNIEnv *env, jobject thiz, jobject jsu } static jobject -android_media_MediaPlayer_getDefaultBufferingParams(JNIEnv *env, jobject thiz) -{ - sp<MediaPlayer> mp = getMediaPlayer(env, thiz); - if (mp == NULL) { - jniThrowException(env, "java/lang/IllegalStateException", NULL); - return NULL; - } - - BufferingParams bp; - BufferingSettings &settings = bp.settings; - process_media_player_call( - env, thiz, mp->getDefaultBufferingSettings(&settings), - "java/lang/IllegalStateException", "unexpected error"); - ALOGV("getDefaultBufferingSettings:{%s}", settings.toString().string()); - - return bp.asJobject(env, gBufferingParamsFields); -} - -static jobject android_media_MediaPlayer_getBufferingParams(JNIEnv *env, jobject thiz) { sp<MediaPlayer> mp = getMediaPlayer(env, thiz); @@ -1436,7 +1417,6 @@ static const JNINativeMethod gMethods[] = { {"_setDataSource", "(Ljava/io/FileDescriptor;JJ)V", (void *)android_media_MediaPlayer_setDataSourceFD}, {"_setDataSource", "(Landroid/media/MediaDataSource;)V",(void *)android_media_MediaPlayer_setDataSourceCallback }, {"_setVideoSurface", "(Landroid/view/Surface;)V", (void *)android_media_MediaPlayer_setVideoSurface}, - {"getDefaultBufferingParams", "()Landroid/media/BufferingParams;", (void *)android_media_MediaPlayer_getDefaultBufferingParams}, {"getBufferingParams", "()Landroid/media/BufferingParams;", (void *)android_media_MediaPlayer_getBufferingParams}, {"setBufferingParams", "(Landroid/media/BufferingParams;)V", (void *)android_media_MediaPlayer_setBufferingParams}, {"_prepare", "()V", (void *)android_media_MediaPlayer_prepare}, |