blob: d7d9b6f533e0f18ed47b4c43d293f4977418b035 [file] [log] [blame]
/**
* Copyright (c) 2019, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.media;
import android.media.TranscodingErrorCode;
import android.media.TranscodingSessionParcel;
import android.media.TranscodingResultParcel;
import android.os.ParcelFileDescriptor;
/**
* ITranscodingClientCallback
*
* Interface for the MediaTranscodingService to communicate with the client.
*
* {@hide}
*/
interface ITranscodingClientCallback {
/**
* Called to open a raw file descriptor to access data under a URI
*
* @param fileUri The path of the filename.
* @param mode The file mode to use. Must be one of ("r, "w", "rw")
* @return ParcelFileDescriptor if open the file successfully, null otherwise.
*/
ParcelFileDescriptor openFileDescriptor(in @utf8InCpp String fileUri,
in @utf8InCpp String mode);
/**
* Called when the transcoding associated with the sessionId finished.
* This will only be called if client request to get all the status of the session.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
*/
oneway void onTranscodingStarted(in int sessionId);
/**
* Called when the transcoding associated with the sessionId is paused.
* This will only be called if client request to get all the status of the session.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
*/
oneway void onTranscodingPaused(in int sessionId);
/**
* Called when the transcoding associated with the sessionId is resumed.
* This will only be called if client request to get all the status of the session.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
*/
oneway void onTranscodingResumed(in int sessionId);
/**
* Called when the transcoding associated with the sessionId finished.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
* @param result contains the transcoded file stats and other transcoding metrics if requested.
*/
oneway void onTranscodingFinished(in int sessionId, in TranscodingResultParcel result);
/**
* Called when the transcoding associated with the sessionId failed.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
* @param errorCode error code that indicates the error.
*/
oneway void onTranscodingFailed(in int sessionId, in TranscodingErrorCode errorCode);
/**
* Called when the transcoding configuration associated with the sessionId gets updated, i.e. wait
* number in the session queue.
*
* <p> This will only be called if client set requestUpdate to be true in the TranscodingRequest
* submitted to the MediaTranscodingService.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
* @param oldAwaitNumber previous number of sessions ahead of current session.
* @param newAwaitNumber updated number of sessions ahead of current session.
*/
oneway void onAwaitNumberOfSessionsChanged(in int sessionId,
in int oldAwaitNumber,
in int newAwaitNumber);
/**
* Called when there is an update on the progress of the TranscodingSession.
*
* <p> This will only be called if client set requestUpdate to be true in the TranscodingRequest
* submitted to the MediaTranscodingService.
*
* @param sessionId sessionId assigned by the MediaTranscodingService upon receiving request.
* @param progress an integer number ranging from 0 ~ 100 inclusive.
*/
oneway void onProgressUpdate(in int sessionId, in int progress);
}