Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6500bbd4 authored by Lajos Molnar's avatar Lajos Molnar Committed by Android Git Automerger
Browse files

am 51bf5d9c: Merge "media: remove setPlaybackRate from MediaPlayer and MediSync" into mnc-dev

* commit '51bf5d9c':
  media: remove setPlaybackRate from MediaPlayer and MediSync
parents 879d52f1 51bf5d9c
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -16099,7 +16099,6 @@ package android.media {
    method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener);
    method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener);
    method public void setPlaybackParams(android.media.PlaybackParams);
    method public void setPlaybackRate(float, int);
    method public void setScreenOnWhilePlaying(boolean);
    method public void setSurface(android.view.Surface);
    method public void setSyncParams(android.media.SyncParams);
@@ -16126,9 +16125,6 @@ package android.media {
    field public static final int MEDIA_INFO_VIDEO_RENDERING_START = 3; // 0x3
    field public static final int MEDIA_INFO_VIDEO_TRACK_LAGGING = 700; // 0x2bc
    field public static final java.lang.String MEDIA_MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
    field public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT = 0; // 0x0
    field public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE = 2; // 0x2
    field public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH = 1; // 0x1
    field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
    field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2; // 0x2
  }
@@ -16430,14 +16426,10 @@ package android.media {
    method public void setCallback(android.media.MediaSync.Callback, android.os.Handler);
    method public void setOnErrorListener(android.media.MediaSync.OnErrorListener, android.os.Handler);
    method public void setPlaybackParams(android.media.PlaybackParams);
    method public void setPlaybackRate(float, int);
    method public void setSurface(android.view.Surface);
    method public void setSyncParams(android.media.SyncParams);
    field public static final int MEDIASYNC_ERROR_AUDIOTRACK_FAIL = 1; // 0x1
    field public static final int MEDIASYNC_ERROR_SURFACE_FAIL = 2; // 0x2
    field public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT = 0; // 0x0
    field public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE = 2; // 0x2
    field public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH = 1; // 0x1
  }
  public static abstract class MediaSync.Callback {
+0 −8
Original line number Diff line number Diff line
@@ -17337,7 +17337,6 @@ package android.media {
    method public void setOnTimedTextListener(android.media.MediaPlayer.OnTimedTextListener);
    method public void setOnVideoSizeChangedListener(android.media.MediaPlayer.OnVideoSizeChangedListener);
    method public void setPlaybackParams(android.media.PlaybackParams);
    method public void setPlaybackRate(float, int);
    method public void setScreenOnWhilePlaying(boolean);
    method public void setSurface(android.view.Surface);
    method public void setSyncParams(android.media.SyncParams);
@@ -17364,9 +17363,6 @@ package android.media {
    field public static final int MEDIA_INFO_VIDEO_RENDERING_START = 3; // 0x3
    field public static final int MEDIA_INFO_VIDEO_TRACK_LAGGING = 700; // 0x2bc
    field public static final java.lang.String MEDIA_MIMETYPE_TEXT_SUBRIP = "application/x-subrip";
    field public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT = 0; // 0x0
    field public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE = 2; // 0x2
    field public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH = 1; // 0x1
    field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
    field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2; // 0x2
  }
@@ -17670,14 +17666,10 @@ package android.media {
    method public void setCallback(android.media.MediaSync.Callback, android.os.Handler);
    method public void setOnErrorListener(android.media.MediaSync.OnErrorListener, android.os.Handler);
    method public void setPlaybackParams(android.media.PlaybackParams);
    method public void setPlaybackRate(float, int);
    method public void setSurface(android.view.Surface);
    method public void setSyncParams(android.media.SyncParams);
    field public static final int MEDIASYNC_ERROR_AUDIOTRACK_FAIL = 1; // 0x1
    field public static final int MEDIASYNC_ERROR_SURFACE_FAIL = 2; // 0x2
    field public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT = 0; // 0x0
    field public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE = 2; // 0x2
    field public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH = 1; // 0x1
  }
  public static abstract class MediaSync.Callback {
+11 −2
Original line number Diff line number Diff line
@@ -1360,6 +1360,8 @@ public class MediaPlayer implements SubtitleController.Listener
     * frequency.
     * When rate is larger than 1.0, pitch becomes higher.
     * When rate is smaller than 1.0, pitch becomes lower.
     *
     * @hide
     */
    public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE = 2;

@@ -1372,6 +1374,8 @@ public class MediaPlayer implements SubtitleController.Listener
     * <p>
     * This mode is only supported for a limited range of playback speed factors,
     * e.g. between 1/2x and 2x.
     *
     * @hide
     */
    public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH = 1;

@@ -1383,6 +1387,8 @@ public class MediaPlayer implements SubtitleController.Listener
     * Try to keep audio pitch when changing the playback rate, but allow the
     * system to determine how to change audio playback if the rate is out
     * of range.
     *
     * @hide
     */
    public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT = 0;

@@ -1406,8 +1412,11 @@ public class MediaPlayer implements SubtitleController.Listener
     * @throws IllegalStateException if the internal player engine has not been
     * initialized.
     * @throws IllegalArgumentException if audioMode is not supported.
     *
     * @hide
     */
    public void setPlaybackRate(float rate, @PlaybackRateAudioMode int audioMode) {
    @NonNull
    public PlaybackParams easyPlaybackParams(float rate, @PlaybackRateAudioMode int audioMode) {
        PlaybackParams params = new PlaybackParams();
        params.allowDefaults();
        switch (audioMode) {
@@ -1425,7 +1434,7 @@ public class MediaPlayer implements SubtitleController.Listener
            final String msg = "Audio playback mode " + audioMode + " is not supported";
            throw new IllegalArgumentException(msg);
        }
        setPlaybackParams(params);
        return params;
    }

    /**
+0 −83
Original line number Diff line number Diff line
@@ -351,89 +351,6 @@ public final class MediaSync {
    @NonNull
    public native final Surface createInputSurface();

    /**
     * Resample audio data when changing playback speed.
     * <p>
     * Resample the waveform based on the requested playback rate to get
     * a new waveform, and play back the new waveform at the original sampling
     * frequency.
     * <p><ul>
     * <li>When rate is larger than 1.0, pitch becomes higher.
     * <li>When rate is smaller than 1.0, pitch becomes lower.
     * </ul>
     */
    public static final int PLAYBACK_RATE_AUDIO_MODE_RESAMPLE = 2;

    /**
     * Time stretch audio when changing playback speed.
     * <p>
     * Time stretching changes the duration of the audio samples without
     * affecting their pitch. This is only supported for a limited range
     * of playback speeds, e.g. from 1/2x to 2x. If the rate is adjusted
     * beyond this limit, the rate change will fail.
     */
    public static final int PLAYBACK_RATE_AUDIO_MODE_STRETCH = 1;

    /**
     * Time stretch audio when changing playback speed, and may mute if
     * stretching is no longer supported.
     * <p>
     * Time stretching changes the duration of the audio samples without
     * affecting their pitch. This is only supported for a limited range
     * of playback speeds, e.g. from 1/2x to 2x. When it is no longer
     * supported, the audio may be muted.  Using this mode will not fail
     * for non-negative playback rates.
     */
    public static final int PLAYBACK_RATE_AUDIO_MODE_DEFAULT = 0;

    /** @hide */
    @IntDef(
        value = {
            PLAYBACK_RATE_AUDIO_MODE_DEFAULT,
            PLAYBACK_RATE_AUDIO_MODE_STRETCH,
            PLAYBACK_RATE_AUDIO_MODE_RESAMPLE,
        })
    @Retention(RetentionPolicy.SOURCE)
    public @interface PlaybackRateAudioMode {}

    /**
     * Sets playback rate and audio mode.
     *
     * @param rate the ratio between desired playback rate and normal one. 1.0 means normal
     *     playback speed. 0.0 means pause. Value larger than 1.0 means faster playback,
     *     while value between 0.0 and 1.0 for slower playback. <b>Note:</b> the normal rate
     *     does not change as a result of this call. To restore the original rate at any time,
     *     use 1.0.
     * @param audioMode audio playback mode. Must be one of the supported
     *     audio modes.
     *
     * @throws IllegalStateException if the internal sync engine or the audio track has not
     *     been initialized.
     * @throws IllegalArgumentException if audioMode is not supported.
     */
    public void setPlaybackRate(float rate, @PlaybackRateAudioMode int audioMode) {
        PlaybackParams rateParams = new PlaybackParams();
        rateParams.allowDefaults();
        switch (audioMode) {
            case PLAYBACK_RATE_AUDIO_MODE_DEFAULT:
                rateParams.setSpeed(rate).setPitch(1.0f);
                break;
            case PLAYBACK_RATE_AUDIO_MODE_STRETCH:
                rateParams.setSpeed(rate).setPitch(1.0f)
                        .setAudioFallbackMode(rateParams.AUDIO_FALLBACK_MODE_FAIL);
                break;
            case PLAYBACK_RATE_AUDIO_MODE_RESAMPLE:
                rateParams.setSpeed(rate).setPitch(rate);
                break;
            default:
            {
                final String msg = "Audio playback mode " + audioMode + " is not supported";
                throw new IllegalArgumentException(msg);
            }
        }
        setPlaybackParams(rateParams);
    }

    /**
     * Sets playback rate using {@link PlaybackParams}.
     * <p>