blob: 2ba9bb761dd1555c08538b9a69720195b3f1f187 [file] [log] [blame]
/*
* Copyright 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.hardware.tv.tuner@1.1;
import @1.0::IFilter;
import @1.0::Result;
/**
* The Filter is used to filter wanted data according to the filter's
* configuration.
*
* To access the v1.1 IFilter APIs, the implementation can cast the IFilter
* interface returned from the @1.0::IDemux openFilter into a v1.1 IFiler
* using V1_1::IFilter::castFrom(V1_0::IFilter).
*/
interface IFilter extends @1.0::IFilter {
/**
* Get the 64-bit filter Id. This id is 32-bit in Tuner HAL 1.0.
*
* It is used by the client to ask the hardware resource id for the filter.
*
* @return result Result status of the operation.
* SUCCESS if successful,
* INVALID_STATE if failed for wrong state.
* UNKNOWN_ERROR if failed for other reasons.
* @return filterId the hardware resource Id for the filter.
*/
getId64Bit() generates (Result result, uint64_t filterId);
/**
* Configure additional Context ID on the IP filter.
*
* @param ipCid Context Id of the IP filter.
* @return result Result status of the operation.
* SUCCESS if successful,
* INVALID_STATE if failed for wrong state.
* UNKNOWN_ERROR if failed for other reasons.
*/
configureIpCid(uint32_t ipCid) generates (Result result);
/**
* Get the shared AV memory handle. Use IFilter.releaseAvHandle to release the handle.
*
* When media filters are opened, call this API to initialize the share memory handle if it's
* needed.
*
* If DemuxFilterMediaEvent.avMemory contains file descriptor, share memory should be ignored.
*
* @return avMemory A handle associated to the shared memory for audio or video.
* avMemory.data[0] is normally an fd for ION memory. When the avMemory->numFd is 0, the
* share memory is not initialized and does not contain valid fd.
* avMemory.data[avMemory.numFds] is an index used as a parameter of
* C2DataIdInfo to build C2 buffer in Codec. No C2 buffer would be created if the index
* does not exist.
* @return avMemSize the size of the shared av memory. It should be ignored when the share
* memory is not initialized.
*/
getAvSharedHandle() generates (Result result, handle avMemory, uint64_t avMemSize);
};