19e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu/*
29e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * Copyright 2015 The Android Open Source Project
39e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu *
49e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * Licensed under the Apache License, Version 2.0 (the "License");
59e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * you may not use this file except in compliance with the License.
69e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * You may obtain a copy of the License at
79e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu *
89e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu *      http://www.apache.org/licenses/LICENSE-2.0
99e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu *
109e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * Unless required by applicable law or agreed to in writing, software
119e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * distributed under the License is distributed on an "AS IS" BASIS,
129e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * See the License for the specific language governing permissions and
149e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu * limitations under the License.
159e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu */
169e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
179e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#ifndef MEDIA_CODEC_LIST_OVERRIDES_H_
189e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
199e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#define MEDIA_CODEC_LIST_OVERRIDES_H_
209e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
219e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#include <media/MediaCodecInfo.h>
229e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#include <media/stagefright/foundation/AString.h>
239e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
249e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#include <utils/StrongPointer.h>
259e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#include <utils/KeyedVector.h>
269e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
279e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wunamespace android {
289e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
2919352b3287480394aa9963276305d5168a7adf85Ronghua Wuextern const char *kProfilingVersionString;
3065c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wuextern const char *kProfilingResults;
3165c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu
32ee4e1b1a63758941460ae79a064249d3a5189443Lajos Molnarstruct MediaCodecInfo;
339e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
3419352b3287480394aa9963276305d5168a7adf85Ronghua WuAString getProfilingVersionString();
3519352b3287480394aa9963276305d5168a7adf85Ronghua Wu
369e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wubool splitString(const AString &s, const AString &delimiter, AString *s1, AString *s2);
379e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
3865c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu// profile codecs and save the result to xml file named kProfilingResults.
3965c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wuvoid profileCodecs(const Vector<sp<MediaCodecInfo>> &infos);
409e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
419ba21b9418d10ddcc39f08901e24fbf43d82b2bcRonghua Wu// profile codecs and save the result to global_results, encoder_results and decoder_results.
429e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wuvoid profileCodecs(
439e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu        const Vector<sp<MediaCodecInfo>> &infos,
449ba21b9418d10ddcc39f08901e24fbf43d82b2bcRonghua Wu        CodecSettings *global_results,
4565c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        KeyedVector<AString, CodecSettings> *encoder_results,
4665c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        KeyedVector<AString, CodecSettings> *decoder_results,
4765c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        bool forceToMeasure = false);
4865c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu
4965c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wuvoid exportResultsToXML(
5065c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        const char *fileName,
5165c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        const CodecSettings& global_results,
5265c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        const KeyedVector<AString, CodecSettings>& encoder_results,
5365c8fbcf91f0f0b5f60a45d2777c36d396c4ba16Ronghua Wu        const KeyedVector<AString, CodecSettings>& decoder_results);
549e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
559e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu}  // namespace android
569e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu
579e6955a19bf77ebf27b770e910efbe1ebf1ceac0Ronghua Wu#endif  // MEDIA_CODEC_LIST_OVERRIDES_H_
58