Merge "TIF: Pass the playback params as a whole" into mnc-dev
This commit is contained in:
@@ -18,6 +18,7 @@ package android.media.tv;
|
||||
|
||||
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 @@ interface ITvInputManager {
|
||||
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
|
||||
|
||||
@@ -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 @@ oneway interface ITvInputSession {
|
||||
void timeShiftPause();
|
||||
void timeShiftResume();
|
||||
void timeShiftSeekTo(long timeMs);
|
||||
void timeShiftSetPlaybackRate(float rate, int audioMode);
|
||||
void timeShiftSetPlaybackParams(in PlaybackParams params);
|
||||
void timeShiftEnablePositionTracking(boolean enable);
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand
|
||||
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 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand
|
||||
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 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand
|
||||
}
|
||||
|
||||
@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
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.annotation.NonNull;
|
||||
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 @@ public final class TvInputManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import android.media.PlaybackParams;
|
||||
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 @@ public class TvView extends ViewGroup {
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ import android.content.pm.ServiceInfo;
|
||||
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.FileDescriptor;
|
||||
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 @@ public final class TvInputManagerService extends SystemService {
|
||||
}
|
||||
|
||||
@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 {
|
||||
|
||||
Reference in New Issue
Block a user