Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(500)

Unified Diff: media/base/android/sdk_media_codec_bridge.cc

Issue 2084143002: Make AVDA fall back to software decoding if needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: symbolic constants, coments. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/android/sdk_media_codec_bridge.cc
diff --git a/media/base/android/sdk_media_codec_bridge.cc b/media/base/android/sdk_media_codec_bridge.cc
index 9d743faf475cb74db2d32b1d19b7454dbc0716c6..db6804c25261b794f4bff9f0b7a7c03f0c687f95 100644
--- a/media/base/android/sdk_media_codec_bridge.cc
+++ b/media/base/android/sdk_media_codec_bridge.cc
@@ -81,13 +81,14 @@ static const std::string VideoCodecToAndroidMimeType(const VideoCodec& codec) {
SdkMediaCodecBridge::SdkMediaCodecBridge(const std::string& mime,
bool is_secure,
- MediaCodecDirection direction) {
+ MediaCodecDirection direction,
+ bool require_software) {
JNIEnv* env = AttachCurrentThread();
CHECK(env);
DCHECK(!mime.empty());
ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime);
- j_media_codec_.Reset(
- Java_MediaCodecBridge_create(env, j_mime.obj(), is_secure, direction));
+ j_media_codec_.Reset(Java_MediaCodecBridge_create(
+ env, j_mime.obj(), is_secure, direction, require_software));
}
SdkMediaCodecBridge::~SdkMediaCodecBridge() {
@@ -363,7 +364,7 @@ bool AudioCodecBridge::IsKnownUnaccelerated(const AudioCodec& codec) {
AudioCodecBridge::AudioCodecBridge(const std::string& mime)
// Audio codec doesn't care about security level and there is no need for
// audio encoding yet.
- : SdkMediaCodecBridge(mime, false, MEDIA_CODEC_DECODER) {}
+ : SdkMediaCodecBridge(mime, false, MEDIA_CODEC_DECODER, false) {}
bool AudioCodecBridge::ConfigureAndStart(const AudioDecoderConfig& config,
bool play_audio,
@@ -609,13 +610,13 @@ bool VideoCodecBridge::IsKnownUnaccelerated(const VideoCodec& codec,
}
// static
-VideoCodecBridge* VideoCodecBridge::CreateDecoder(
- const VideoCodec& codec,
- bool is_secure,
- const gfx::Size& size,
- jobject surface,
- jobject media_crypto,
- bool allow_adaptive_playback) {
+VideoCodecBridge* VideoCodecBridge::CreateDecoder(const VideoCodec& codec,
+ bool is_secure,
+ const gfx::Size& size,
+ jobject surface,
+ jobject media_crypto,
+ bool allow_adaptive_playback,
+ bool require_software) {
if (!MediaCodecUtil::IsMediaCodecAvailable())
return nullptr;
@@ -623,8 +624,8 @@ VideoCodecBridge* VideoCodecBridge::CreateDecoder(
if (mime.empty())
return nullptr;
- std::unique_ptr<VideoCodecBridge> bridge(
- new VideoCodecBridge(mime, is_secure, MEDIA_CODEC_DECODER));
+ std::unique_ptr<VideoCodecBridge> bridge(new VideoCodecBridge(
+ mime, is_secure, MEDIA_CODEC_DECODER, require_software));
if (!bridge->media_codec())
return nullptr;
@@ -658,7 +659,7 @@ VideoCodecBridge* VideoCodecBridge::CreateEncoder(const VideoCodec& codec,
return nullptr;
std::unique_ptr<VideoCodecBridge> bridge(
- new VideoCodecBridge(mime, false, MEDIA_CODEC_ENCODER));
+ new VideoCodecBridge(mime, false, MEDIA_CODEC_ENCODER, false));
if (!bridge->media_codec())
return nullptr;
@@ -680,8 +681,9 @@ VideoCodecBridge* VideoCodecBridge::CreateEncoder(const VideoCodec& codec,
VideoCodecBridge::VideoCodecBridge(const std::string& mime,
bool is_secure,
- MediaCodecDirection direction)
- : SdkMediaCodecBridge(mime, is_secure, direction),
+ MediaCodecDirection direction,
+ bool require_software)
+ : SdkMediaCodecBridge(mime, is_secure, direction, require_software),
adaptive_playback_supported_for_testing_(-1) {}
void VideoCodecBridge::SetVideoBitrate(int bps) {

Powered by Google App Engine
This is Rietveld 408576698