author | Eugen Sawin <esawin@me73.com> |
Wed, 23 Sep 2015 20:37:21 +0200 | |
changeset 264791 | 5f2cdf6fee39e700b5920857690151313cc456a6 |
parent 264790 | a31d5b708202dac5fe22e29e30747660be56e815 |
child 264792 | 4d3f66d8a73d89b504fb7911d4dd720bdd9cab77 |
push id | 65746 |
push user | esawin@mozilla.com |
push date | Mon, 28 Sep 2015 22:57:03 +0000 |
treeherder | mozilla-inbound@4d3f66d8a73d [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jya |
bugs | 1190379 |
milestone | 44.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
dom/media/platforms/android/AndroidDecoderModule.cpp | file | annotate | diff | comparison | revisions |
--- a/dom/media/platforms/android/AndroidDecoderModule.cpp +++ b/dom/media/platforms/android/AndroidDecoderModule.cpp @@ -14,35 +14,45 @@ #include "MediaData.h" #include "MediaInfo.h" #include "nsThreadUtils.h" #include "nsAutoPtr.h" #include "nsPromiseFlatString.h" #include <jni.h> -#include <string.h> using namespace mozilla; using namespace mozilla::gl; using namespace mozilla::widget::sdk; namespace mozilla { #define ENVOKE_CALLBACK(Func, ...) \ if (mCallback) { \ mCallback->Func(__VA_ARGS__); \ } else { \ 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; } class VideoDataDecoder : public MediaCodecDataDecoder { public: VideoDataDecoder(const VideoInfo& aConfig, MediaFormat::Param aFormat, MediaDataDecoderCallback* aCallback, layers::ImageContainer* aImageContainer) @@ -282,17 +292,17 @@ AndroidDecoderModule::CreateVideoDecoder layers::LayersBackend aLayersBackend, layers::ImageContainer* aImageContainer, FlushableTaskQueue* aVideoTaskQueue, MediaDataDecoderCallback* aCallback) { MediaFormat::LocalRef format; NS_ENSURE_SUCCESS(MediaFormat::CreateVideoFormat( - aConfig.mMimeType, + TranslateMimeType(aConfig.mMimeType), aConfig.mDisplay.width, aConfig.mDisplay.height, &format), nullptr); nsRefPtr<MediaDataDecoder> decoder = new VideoDataDecoder(aConfig, format, aCallback, aImageContainer); return decoder.forget();