2015-06-03 2 views
0

Где я могу найти полный список типов, используемых в MediaCodec.createDecoderByType (String type)?Тип списка MediaCodec.createDecoderByType (тип строки)

Google's document дает только частичный список.

Update [2015-06-03]

Per кончике pskink, я побежал кусок кода, чтобы извлечь все типы MIME декодирования на планшете с Memo Asus. Вот список

video/avc 
video/3gpp 
video/mp4v-es 
audio/3gpp 
audio/amr-wb 
audio/mp4a-latm 
audio/flac 
audio/mp4a-latm 

Используя метод, предложенный Фадден (ADB оболочки кошки /system/etc/media_codecs.xml), я получил следующее

<MediaCodec name="OMX.WMT.decoder.h263" type="video/3gpp" > 
     <Quirk name="requires-allocate-on-output-ports" /> 
     </MediaCodec> 

<MediaCodec name="OMX.WMT.decoder.avc" type="video/avc" > 
     <Quirk name="requires-allocate-on-output-ports" /> 
     </MediaCodec> 

<MediaCodec name="OMX.WMT.decoder.mpeg2v" type="video/mpeg2" > 
     <Quirk name="requires-allocate-on-output-ports" /> 
     </MediaCodec> 

<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" /> 
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" /> 
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" /> 
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" /> 
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" /> 
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" /> 
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" /> 

<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" /> 
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" /> 
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" /> 
<MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" /> 

Теперь я подозреваю, что не каждый декодер, объявленный в media_codecs.xml, фактически реализован.

Update [2015-06-13]

Очень полезная информация, предоставленная @fadden:

CDD sections 5.1.1 - 5.1.3 "Video Codecs" список всех аудио, изображений и видео кодеков, что все Android устройства, необходимые для поддержки. Я не уверен, сколько устройств соответствует требованиям. Мои два устройства Android пропускают многие требуемые кодеки.

+0

MediaCodecInfo? – pskink

+0

Это должно быть что-то вроде этого: http://www.freeformatter.com/mime-types-list.html – Hong

+0

см. Http://developer.android.com/reference/android/media/MediaCodecInfo.html – pskink

ответ

1

Список кодеков полностью зависит от конкретного устройства. Вы должны перечислить все доступные кодеки с помощью MediaCodecList и вызвать MediaCodec.createDecoderByType для правильного.

+0

Спасибо за ответ. Как я могу получить строку типа MIME каждого полученного MediaCodecInfo? Является ли список, о котором я упоминал в своем комментарии, что я должен использовать? Я задавал вопрос, потому что у меня были некоторые кодеки, и я хотел попробовать их. Если я увижу список всех возможных типов MIME, поддерживаемых Android, я буду знать, что выбрать. – Hong

+0

Это не имеет смысла - нет списка «всех возможных типов MIME», потому что каждый может определить свои собственные (начиная с «x-»). Вы можете увидеть список для определенного устройства с 'adb shell cat/system/etc/media_codecs.xml', но нет такого понятия, как фиксированный список типов, поддерживаемый всеми устройствами Android. – fadden

+0

@fadden Спасибо за разъяснение. Другими словами, Android не указывает минимальную поддержку кодеков; приложение не может предположить, что устройство Android поддерживает любой кодек. Это мое понимание сейчас. – Hong