TIF: Pass the playback params as a whole
Bug: 21172914
Change-Id: I2d89f267d8d83b14b5d436304aa0ff82490211d8
diff --git a/media/java/android/media/tv/ITvInputManager.aidl b/media/java/android/media/tv/ITvInputManager.aidl
index 6fe5dbb..f8057db 100644
--- a/media/java/android/media/tv/ITvInputManager.aidl
+++ b/media/java/android/media/tv/ITvInputManager.aidl
@@ -18,6 +18,7 @@
import android.content.ComponentName;
import android.graphics.Rect;
+import android.media.PlaybackParams;
import android.media.tv.DvbDeviceInfo;
import android.media.tv.ITvInputClient;
import android.media.tv.ITvInputHardware;
@@ -79,7 +80,7 @@
void timeShiftPause(in IBinder sessionToken, int userId);
void timeShiftResume(in IBinder sessionToken, int userId);
void timeShiftSeekTo(in IBinder sessionToken, long timeMs, int userId);
- void timeShiftSetPlaybackRate(in IBinder sessionToken, float rate, int audioMode, int userId);
+ void timeShiftSetPlaybackParams(in IBinder sessionToken, in PlaybackParams params, int userId);
void timeShiftEnablePositionTracking(in IBinder sessionToken, boolean enable, int userId);
// For TV input hardware binding
diff --git a/media/java/android/media/tv/ITvInputSession.aidl b/media/java/android/media/tv/ITvInputSession.aidl
index 17f3984..6a06b8f 100644
--- a/media/java/android/media/tv/ITvInputSession.aidl
+++ b/media/java/android/media/tv/ITvInputSession.aidl
@@ -17,6 +17,7 @@
package android.media.tv;
import android.graphics.Rect;
+import android.media.PlaybackParams;
import android.media.tv.TvTrackInfo;
import android.net.Uri;
import android.os.Bundle;
@@ -50,6 +51,6 @@
void timeShiftPause();
void timeShiftResume();
void timeShiftSeekTo(long timeMs);
- void timeShiftSetPlaybackRate(float rate, int audioMode);
+ void timeShiftSetPlaybackParams(in PlaybackParams params);
void timeShiftEnablePositionTracking(boolean enable);
}
diff --git a/media/java/android/media/tv/ITvInputSessionWrapper.java b/media/java/android/media/tv/ITvInputSessionWrapper.java
index 58954bd..66b904b 100644
--- a/media/java/android/media/tv/ITvInputSessionWrapper.java
+++ b/media/java/android/media/tv/ITvInputSessionWrapper.java
@@ -62,7 +62,7 @@
private static final int DO_TIME_SHIFT_PAUSE = 14;
private static final int DO_TIME_SHIFT_RESUME = 15;
private static final int DO_TIME_SHIFT_SEEK_TO = 16;
- private static final int DO_TIME_SHIFT_SET_PLAYBACK_RATE = 17;
+ private static final int DO_TIME_SHIFT_SET_PLAYBACK_PARAMS = 17;
private static final int DO_TIME_SHIFT_ENABLE_POSITION_TRACKING = 18;
private final HandlerCaller mCaller;
@@ -172,7 +172,7 @@
mTvInputSessionImpl.timeShiftSeekTo((Long) msg.obj);
break;
}
- case DO_TIME_SHIFT_SET_PLAYBACK_RATE: {
+ case DO_TIME_SHIFT_SET_PLAYBACK_PARAMS: {
PlaybackParams params = new PlaybackParams()
.setSpeed((Float) msg.obj)
.setAudioFallbackMode(msg.arg1);
@@ -293,9 +293,9 @@
}
@Override
- public void timeShiftSetPlaybackRate(float rate, int audioMode) {
- mCaller.executeOrSendMessage(mCaller.obtainMessageIO(DO_TIME_SHIFT_SET_PLAYBACK_RATE,
- audioMode, Float.valueOf(rate)));
+ public void timeShiftSetPlaybackParams(PlaybackParams params) {
+ mCaller.executeOrSendMessage(mCaller.obtainMessageO(DO_TIME_SHIFT_SET_PLAYBACK_PARAMS,
+ params));
}
@Override
diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java
index caa8a09..7fc19f1 100644
--- a/media/java/android/media/tv/TvInputManager.java
+++ b/media/java/android/media/tv/TvInputManager.java
@@ -20,6 +20,7 @@
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.graphics.Rect;
+import android.media.PlaybackParams;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -1747,23 +1748,17 @@
}
/**
- * Sets playback rate and audio mode.
+ * Sets playback rate using {@link android.media.PlaybackParams}.
*
- * @param rate The ratio between desired playback rate and normal one.
- * @param audioMode Audio playback mode. Must be one of the supported audio modes:
- * <ul>
- * <li> {@link android.media.MediaPlayer#PLAYBACK_RATE_AUDIO_MODE_DEFAULT}
- * <li> {@link android.media.MediaPlayer#PLAYBACK_RATE_AUDIO_MODE_STRETCH}
- * <li> {@link android.media.MediaPlayer#PLAYBACK_RATE_AUDIO_MODE_RESAMPLE}
- * </ul>
+ * @param params The playback params.
*/
- void timeShiftSetPlaybackRate(float rate, int audioMode) {
+ void timeShiftSetPlaybackParams(PlaybackParams params) {
if (mToken == null) {
Log.w(TAG, "The session has been already released");
return;
}
try {
- mService.timeShiftSetPlaybackRate(mToken, rate, audioMode, mUserId);
+ mService.timeShiftSetPlaybackParams(mToken, params, mUserId);
} catch (RemoteException e) {
throw new RuntimeException(e);
}
diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java
index 6169eea..e7ce1dd 100644
--- a/media/java/android/media/tv/TvView.java
+++ b/media/java/android/media/tv/TvView.java
@@ -28,7 +28,6 @@
import android.media.tv.TvInputManager.Session;
import android.media.tv.TvInputManager.Session.FinishedInputEventCallback;
import android.media.tv.TvInputManager.SessionCallback;
-import android.media.tv.TvView.TimeShiftPositionCallback;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -470,13 +469,13 @@
}
/**
- * Sets playback rate using {@link android.media#PlaybackParams}.
+ * Sets playback rate using {@link android.media.PlaybackParams}.
*
* @param params The playback params.
*/
public void timeShiftSetPlaybackParams(@NonNull PlaybackParams params) {
if (mSession != null) {
- mSession.timeShiftSetPlaybackRate(params.getSpeed(), params.getAudioFallbackMode());
+ mSession.timeShiftSetPlaybackParams(params);
}
}
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
index a869c20..0fffa0f 100644
--- a/services/core/java/com/android/server/tv/TvInputManagerService.java
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -39,6 +39,7 @@
import android.graphics.Rect;
import android.hardware.hdmi.HdmiControlManager;
import android.hardware.hdmi.HdmiDeviceInfo;
+import android.media.PlaybackParams;
import android.media.tv.DvbDeviceInfo;
import android.media.tv.ITvInputClient;
import android.media.tv.ITvInputHardware;
@@ -87,8 +88,6 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
-import java.lang.IllegalArgumentException;
-import java.lang.Integer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -1422,19 +1421,19 @@
}
@Override
- public void timeShiftSetPlaybackRate(IBinder sessionToken, float rate, int audioMode,
+ public void timeShiftSetPlaybackParams(IBinder sessionToken, PlaybackParams params,
int userId) {
final int callingUid = Binder.getCallingUid();
final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid,
- userId, "timeShiftSetPlaybackRate");
+ userId, "timeShiftSetPlaybackParams");
final long identity = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
try {
getSessionLocked(sessionToken, callingUid, resolvedUserId)
- .timeShiftSetPlaybackRate(rate, audioMode);
+ .timeShiftSetPlaybackParams(params);
} catch (RemoteException | SessionNotFoundException e) {
- Slog.e(TAG, "error in timeShiftSetPlaybackRate", e);
+ Slog.e(TAG, "error in timeShiftSetPlaybackParams", e);
}
}
} finally {