blob: 8ed241a418dad9d4b2e448fd6c96738a49cb7090 [file] [log] [blame]
/**
* Copyright (c) 2020, 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.TranscodingVideoCodecType;
/**
* TranscodingVideoTrackFormat contains the video track format of a video.
*
* TODO(hkuang): Switch to PersistableBundle when b/156428735 is fixed or after we remove
* aidl_interface
*
* Note that TranscodingVideoTrackFormat is used in TranscodingRequestParcel for the client to
* specify the desired transcoded video format, and is also used in TranscodingSessionParcel for the
* service to notify client of the final video format for transcoding.
* When used as input in TranscodingRequestParcel, the client only needs to specify the config that
* they want to change, e.g. codec or resolution, and all the missing configs will be extracted
* from the source video and applied to the destination video.
* When used as output in TranscodingSessionParcel, all the configs will be populated to indicate
* the final encoder configs used for transcoding.
*
* {@hide}
*/
parcelable TranscodingVideoTrackFormat {
/**
* Video Codec type.
*/
TranscodingVideoCodecType codecType; // TranscodingVideoCodecType::kUnspecified;
/**
* Width of the video in pixels. -1 means unavailable.
*/
int width = -1;
/**
* Height of the video in pixels. -1 means unavailable.
*/
int height = -1;
/**
* Bitrate in bits per second. -1 means unavailable.
*/
int bitrateBps = -1;
/**
* Codec profile. This must be the same constant as used in MediaCodecInfo.CodecProfileLevel.
* -1 means unavailable.
*/
int profile = -1;
/**
* Codec level. This must be the same constant as used in MediaCodecInfo.CodecProfileLevel.
* -1 means unavailable.
*/
int level = -1;
/**
* Decoder operating rate. This is used to work around the fact that vendor does not boost the
* hardware to maximum speed in transcoding usage case. This operating rate will be applied
* to decoder inside MediaTranscoder. -1 means unavailable.
*/
int decoderOperatingRate = -1;
/**
* Encoder operating rate. This is used to work around the fact that vendor does not boost the
* hardware to maximum speed in transcoding usage case. This operating rate will be applied
* to encoder inside MediaTranscoder. -1 means unavailable.
*/
int encoderOperatingRate = -1;
}