1bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim/* 2bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * Copyright 2012, The Android Open Source Project 3bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * 4bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * Licensed under the Apache License, Version 2.0 (the "License"); 5bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * you may not use this file except in compliance with the License. 6bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * You may obtain a copy of the License at 7bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * 8bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * http://www.apache.org/licenses/LICENSE-2.0 9bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * 10bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * Unless required by applicable law or agreed to in writing, software 11bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * distributed under the License is distributed on an "AS IS" BASIS, 12bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * See the License for the specific language governing permissions and 14bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim * limitations under the License. 15bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim */ 16bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 17bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim//#define LOG_NDEBUG 0 18bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim#define LOG_TAG "MediaCodecListWriter" 19bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim#include <utils/Log.h> 20bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 21bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim#include <media/stagefright/foundation/AMessage.h> 22bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim#include <media/stagefright/MediaCodecListWriter.h> 23bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim#include <media/MediaCodecInfo.h> 24bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 25bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kimnamespace android { 26bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 27bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kimvoid MediaCodecListWriter::addGlobalSetting( 28bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim const char* key, const char* value) { 29bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim mGlobalSettings.emplace_back(key, value); 30bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim} 31bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 32bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kimstd::unique_ptr<MediaCodecInfoWriter> 33bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim MediaCodecListWriter::addMediaCodecInfo() { 34bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim sp<MediaCodecInfo> info = new MediaCodecInfo(); 35bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim mCodecInfos.push_back(info); 36bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim return std::unique_ptr<MediaCodecInfoWriter>( 37bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim new MediaCodecInfoWriter(info.get())); 38bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim} 39bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 40bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kimvoid MediaCodecListWriter::writeGlobalSettings( 41bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim const sp<AMessage> &globalSettings) const { 42bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim for (const std::pair<std::string, std::string> &kv : mGlobalSettings) { 43bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim globalSettings->setString(kv.first.c_str(), kv.second.c_str()); 44bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim } 45bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim} 46bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 47bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kimvoid MediaCodecListWriter::writeCodecInfos( 48bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim std::vector<sp<MediaCodecInfo>> *codecInfos) const { 49bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim for (const sp<MediaCodecInfo> &info : mCodecInfos) { 50bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim codecInfos->push_back(info); 51bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim } 52bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim} 53bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim 54bc3ad96efdfca9ceaa5ff31b27f7571b32903fdeWonsik Kim} // namespace android 55