160b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar/* 260b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * Copyright (C) 2014 The Android Open Source Project 360b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * 460b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * Licensed under the Apache License, Version 2.0 (the "License"); 560b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * you may not use this file except in compliance with the License. 660b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * You may obtain a copy of the License at 760b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * 860b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * http://www.apache.org/licenses/LICENSE-2.0 960b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * 1060b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * Unless required by applicable law or agreed to in writing, software 1160b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * distributed under the License is distributed on an "AS IS" BASIS, 1260b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1360b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * See the License for the specific language governing permissions and 1460b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar * limitations under the License. 1560b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar */ 1660b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 1760b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar#ifndef ANDROID_IMEDIACODECLIST_H 1860b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar#define ANDROID_IMEDIACODECLIST_H 1960b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 2060b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar#include <utils/Errors.h> // for status_t 2160b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar#include <binder/IInterface.h> 2260b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar#include <binder/Parcel.h> 2360b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 249e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#include <media/stagefright/foundation/AMessage.h> 259e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu 2660b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnarnamespace android { 2760b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 2860b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnarstruct MediaCodecInfo; 2960b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 3060b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnarclass IMediaCodecList: public IInterface 3160b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar{ 3260b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnarpublic: 3360b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar DECLARE_META_INTERFACE(MediaCodecList); 3460b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 3560b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar virtual size_t countCodecs() const = 0; 3660b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar virtual sp<MediaCodecInfo> getCodecInfo(size_t index) const = 0; 3760b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 389e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu virtual const sp<AMessage> getGlobalSettings() const = 0; 399e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu 4060b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar virtual ssize_t findCodecByType( 4160b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar const char *type, bool encoder, size_t startIndex = 0) const = 0; 4260b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 4360b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar virtual ssize_t findCodecByName(const char *name) const = 0; 4460b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar}; 4560b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 4660b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar// ---------------------------------------------------------------------------- 4760b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 4860b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnarclass BnMediaCodecList: public BnInterface<IMediaCodecList> 4960b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar{ 5060b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnarpublic: 5160b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar virtual status_t onTransact( uint32_t code, 5260b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar const Parcel& data, 5360b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar Parcel* reply, 5460b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar uint32_t flags = 0); 5560b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar}; 5660b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 5760b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar}; // namespace android 5860b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar 5960b1c0e79d12a1c70758bc8d060156924635f8baLajos Molnar#endif // ANDROID_IMEDIACODECLIST_H 60