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

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: Shot in the dark Created 4 years, 2 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
« no previous file with comments | « media/base/android/sdk_media_codec_bridge.h ('k') | media/base/android/sdk_media_codec_bridge_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 3247dd8ca859df0bf607f78fca5aa203fc358f95..609370be52d936f569d61d24746a51fff7404923 100644
--- a/media/base/android/sdk_media_codec_bridge.cc
+++ b/media/base/android/sdk_media_codec_bridge.cc
@@ -560,13 +560,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;
@@ -585,6 +588,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)) {
« no previous file with comments | « media/base/android/sdk_media_codec_bridge.h ('k') | media/base/android/sdk_media_codec_bridge_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698