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

Commit 4ddd83a9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "MediaPlayer2: add clearNextDataSources."

parents 92d75177 43d77dd7
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -711,6 +711,12 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener
    // This is an asynchronous call.
    public abstract void setNextDataSources(@NonNull List<DataSourceDesc> dsds);

    /**
     * Removes all data sources pending to be played.
     */
    // This is an asynchronous call.
    public abstract void clearNextDataSources();

    /**
     * Gets the current data source as described by a DataSourceDesc.
     *
@@ -2066,6 +2072,11 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener
     */
    public static final int CALL_COMPLETED_SKIP_TO_NEXT = 29;

    /** The player just completed a call {@link #clearNextDataSources}.
     * @see EventCallback#onCallCompleted
     */
    public static final int CALL_COMPLETED_CLEAR_NEXT_DATA_SOURCES = 30;

    /** The player just completed a call {@link #setBufferingParams}.
     * @see EventCallback#onCallCompleted
     * @hide
@@ -2109,6 +2120,7 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener
            CALL_COMPLETED_SET_SURFACE,
            CALL_COMPLETED_SET_SYNC_PARAMS,
            CALL_COMPLETED_SKIP_TO_NEXT,
            CALL_COMPLETED_CLEAR_NEXT_DATA_SOURCES,
            CALL_COMPLETED_SET_BUFFERING_PARAMS,
            CALL_COMPLETED_SET_VIDEO_SCALING_MODE,
            CALL_COMPLETED_NOTIFY_WHEN_COMMAND_LABEL_REACHED
+25 −0
Original line number Diff line number Diff line
@@ -450,6 +450,23 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
        });
    }

    @Override
    public void clearNextDataSources() {
        addTask(new Task(CALL_COMPLETED_CLEAR_NEXT_DATA_SOURCES, false) {
            @Override
            void process() {
                synchronized (mSrcLock) {
                    if (mNextDSDs != null) {
                        mNextDSDs.clear();
                        mNextDSDs = null;
                    }
                    mNextSrcId = mSrcIdGenerator++;
                    mNextSourceState = NEXT_SOURCE_STATE_INIT;
                }
            }
        });
    }

    @Override
    public @NonNull DataSourceDesc getCurrentDataSource() {
        synchronized (mSrcLock) {
@@ -1646,6 +1663,14 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
        synchronized (mDrmEventCbLock) {
            mDrmEventCallbackRecords.clear();
        }
        synchronized (mSrcLock) {
            if (mNextDSDs != null) {
                mNextDSDs.clear();
                mNextDSDs = null;
            }
            mNextSrcId = mSrcIdGenerator++;
            mNextSourceState = NEXT_SOURCE_STATE_INIT;
        }

        stayAwake(false);
        _reset();