Bug 1190379: Use AndroidDecoderModule for VP8/9. r=jya

This commit is contained in:
Eugen Sawin 2015-08-27 23:43:59 +02:00
Родитель c58047810f
Коммит 3907bbb549
1 изменённых файлов: 13 добавлений и 3 удалений

Просмотреть файл

@ -19,7 +19,6 @@
#include "nsPromiseFlatString.h"
#include <jni.h>
#include <string.h>
using namespace mozilla;
using namespace mozilla::gl;
@ -34,10 +33,21 @@ namespace mozilla {
NS_WARNING("callback not set"); \
}
static const char* TranslateMimeType(const nsACString& aMimeType)
{
if (aMimeType.EqualsLiteral("video/webm; codecs=vp8")) {
return "video/x-vnd.on2.vp8";
} else if (aMimeType.EqualsLiteral("video/webm; codecs=vp9")) {
return "video/x-vnd.on2.vp9";
}
return PromiseFlatCString(aMimeType).get();
}
static MediaCodec::LocalRef CreateDecoder(const nsACString& aMimeType)
{
MediaCodec::LocalRef codec;
NS_ENSURE_SUCCESS(MediaCodec::CreateDecoderByType(PromiseFlatCString(aMimeType).get(), &codec), nullptr);
NS_ENSURE_SUCCESS(MediaCodec::CreateDecoderByType(TranslateMimeType(aMimeType),
&codec), nullptr);
return codec;
}
@ -287,7 +297,7 @@ AndroidDecoderModule::CreateVideoDecoder(
MediaFormat::LocalRef format;
NS_ENSURE_SUCCESS(MediaFormat::CreateVideoFormat(
aConfig.mMimeType,
TranslateMimeType(aConfig.mMimeType),
aConfig.mDisplay.width,
aConfig.mDisplay.height,
&format), nullptr);