Я заметил, что java/android/media
имеет метод с именем createDecoderByType()
, который должен возвращать объект MediaCodec
. Однако, когда я смотрю на исходный код MediaCodec.java
в GoogleGit , я не могу понять, как генерируется настоящий декодер. Вот код для этого метода:
public static MediaCodec createDecoderByType(String type) {
return new MediaCodec(type, true /* nameIsType */, false /* encoder */);
}
Затем, когда я смотрю на конструктор, чтобы увидеть, что возвращается, вот что я вижу:
private MediaCodec(
String name, boolean nameIsType, boolean encoder) {
native_setup(name, nameIsType, encoder);
}
Хорошо, отлично. Давайте посмотрим на native_setup()
. Вот определение:
private native final void native_setup(
String name, boolean nameIsType, boolean encoder);
У этой функции нет тела!
Сначала я предположил, что это означает, что метод будет определен в дочернем классе. Но я вижу, что этот метод вызывается непосредственно на MediaCodec
в другом действующем исходном коде.
Итак, мой вопрос: есть ли способ отследить и увидеть, как Android создает декодер заданного типа в зависимости от среды и параметров? Кажется, я зашел в тупик, и никакое количество Google не дает мне никаких полезных результатов.