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

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

Issue 2365103002: Send the h264 SPS and PPS configuration parameters to AVDA (Closed)
Patch Set: Fix array init syntax Created 4 years, 3 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 9dfeb305eb84730f9a33b9075b7d5a10dc0c0157..88b04d52dfdb474b803fa9adde18191c0933c40d 100644
--- a/media/base/android/sdk_media_codec_bridge.cc
+++ b/media/base/android/sdk_media_codec_bridge.cc
@@ -605,13 +605,16 @@ 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,
- bool require_software_codec) {
+VideoCodecBridge* VideoCodecBridge::CreateDecoder(
+ const VideoCodec& codec,
+ bool is_secure,
+ const gfx::Size& size,
+ jobject surface,
+ jobject media_crypto,
+ const std::vector<uint8_t>& csd0,
+ const std::vector<uint8_t>& csd1,
+ bool allow_adaptive_playback,
+ bool require_software_codec) {
if (!MediaCodecUtil::IsMediaCodecAvailable())
return nullptr;
@@ -630,6 +633,19 @@ VideoCodecBridge* VideoCodecBridge::CreateDecoder(const VideoCodec& codec,
Java_MediaCodecBridge_createVideoDecoderFormat(env, j_mime, size.width(),
size.height()));
DCHECK(!j_format.is_null());
+
+ if (!csd0.empty()) {
+ ScopedJavaLocalRef<jbyteArray> j_csd0 =
+ base::android::ToJavaByteArray(env, csd0.data(), csd0.size());
+ Java_MediaCodecBridge_setCodecSpecificData(env, j_format, 0, j_csd0);
+ }
+
+ if (!csd1.empty()) {
+ ScopedJavaLocalRef<jbyteArray> j_csd1 =
+ base::android::ToJavaByteArray(env, csd1.data(), csd1.size());
+ Java_MediaCodecBridge_setCodecSpecificData(env, j_format, 1, j_csd1);
+ }
+
if (!Java_MediaCodecBridge_configureVideo(env, bridge->media_codec(),
j_format, surface, media_crypto, 0,
allow_adaptive_playback)) {

Powered by Google App Engine
This is Rietveld 408576698