Index: media/BUILD.gn |
diff --git a/media/BUILD.gn b/media/BUILD.gn |
index ce95d1fad9982812f824b72bff95f93541167d3e..7bb25db2032cb32286838e49778988fc9195344e 100644 |
--- a/media/BUILD.gn |
+++ b/media/BUILD.gn |
@@ -2,6 +2,7 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
+import("//build/config/android/rules.gni") |
import("//build/config/arm.gni") |
import("//build/config/ui.gni") |
import("//build/config/linux/pkg_config.gni") |
@@ -31,7 +32,7 @@ if (is_android) { |
# Original conditional: (OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1 |
use_alsa = false |
use_pulseaudio = false |
-if (is_posix) { |
+if (is_posix && !is_android) { |
use_alsa = true |
if (!use_cras) { |
use_pulseaudio = true |
@@ -46,7 +47,8 @@ proprietary_codecs = false |
# TODO(ajwong): Where are these coming from?jk |
enable_mpeg2ts_stream_parser = false |
-enable_browser_cdms = false |
+enable_browser_cdms = is_android |
+android_webview_build = false |
brettw
2014/07/14 19:24:24
This is "is_android_webview_build". Import //build
DaleCurtis
2014/07/14 21:00:06
Done.
|
# Common configuration for targets in the media directory. |
# NOT for exporting. |
@@ -114,13 +116,6 @@ if (!linux_link_pulseaudio) { |
component("media") { |
sources = [ |
"audio/agc_audio_stream.h", |
- "audio/android/audio_record_input.cc", |
- "audio/android/audio_record_input.h", |
- "audio/android/opensles_input.cc", |
- "audio/android/opensles_input.h", |
- "audio/android/opensles_output.cc", |
- "audio/android/opensles_output.h", |
- "audio/android/opensles_wrapper.cc", |
"audio/audio_buffers_state.cc", |
"audio/audio_buffers_state.h", |
"audio/audio_device_name.cc", |
@@ -589,14 +584,19 @@ component("media") { |
sources += [ |
"audio/android/audio_manager_android.cc", |
"audio/android/audio_manager_android.h", |
+ "audio/android/audio_record_input.cc", |
+ "audio/android/audio_record_input.h", |
+ "audio/android/opensles_input.cc", |
+ "audio/android/opensles_input.h", |
+ "audio/android/opensles_output.cc", |
+ "audio/android/opensles_output.h", |
+ "audio/android/opensles_wrapper.cc", |
"base/android/demuxer_android.h", |
"base/android/demuxer_stream_player_params.cc", |
"base/android/demuxer_stream_player_params.h", |
"base/android/media_player_manager.h", |
"base/android/media_resource_getter.cc", |
"base/android/media_resource_getter.h", |
- "base/media.cc", |
- "base/media.h", |
"base/media_stub.cc", |
"midi/midi_manager_android.cc", |
"midi/usb_midi_device_android.cc", |
@@ -609,20 +609,19 @@ component("media") { |
"video/capture/android/video_capture_device_factory_android.h", |
] |
defines += [ "DISABLE_USER_INPUT_MONITOR" ] |
-# TODO(ajwong): Fix for android. |
-# deps += [ |
-# ":media_android_jni_headers", |
-# ":player_android", |
-# ":video_capture_android_jni_headers", |
-# ] |
-# if (!android_webview_build) { |
-# deps += [ ":media_java" ] |
-# } |
+ deps += [ |
+ ":media_android_jni_headers", |
+ ":player_android", |
+ ":video_capture_android_jni_headers", |
+ ] |
+ if (!android_webview_build) { |
+ deps += [ ":media_java" ] |
+ } |
} |
if (is_chromeos) { |
# A simple WebM encoder for animated avatars on ChromeOS. |
- sources += [ |
+ sources += [ |
"formats/webm/chromeos/ebml_writer.cc", |
"formats/webm/chromeos/ebml_writer.h", |
"formats/webm/chromeos/webm_encoder.cc", |
@@ -1102,7 +1101,8 @@ test("media_unittests") { |
"//skia", # Direct dependency required to inherit config. |
"//testing/gmock", |
"//testing/gtest", |
-# "//third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h", TODO(GYP): Port over CDM stuff. |
+ # TODO(dalecurtis): Port the rest of Widevine stuff. |
+ "//third_party/widevine/cdm:version_h", |
"//ui/base", |
"//ui/gfx:gfx_test_support", |
] |
@@ -1138,7 +1138,7 @@ test("media_perftests") { |
"//testing/gmock", |
"//testing/gtest", |
"//testing/perf", |
-# "//third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h", TODO(GYP): Port over CDM stuff. |
+ "//third_party/widevine/cdm:version_h", |
"//ui/gl", |
"//ui/gfx:gfx_test_support", |
] |
@@ -1226,7 +1226,6 @@ if (cpu_arch == "x86" || cpu_arch == "x64") { |
} |
} |
- |
source_set("media_test_support") { |
sources = [ |
"audio/mock_audio_manager.cc", |
@@ -1288,48 +1287,50 @@ component("shared_memory_support") { |
deps = [ "//base" ] |
} |
-test("ffmpeg_unittests") { |
- sources = [ "ffmpeg/ffmpeg_unittest.cc" ] |
+if (media_use_ffmpeg) { |
+ test("ffmpeg_unittests") { |
+ sources = [ "ffmpeg/ffmpeg_unittest.cc" ] |
- deps = [ |
- ":media", |
- ":media_test_support", |
- "//base", |
- "//base:i18n", |
- "//base/test:test_support", |
- "//testing/gtest", |
- "//third_party/ffmpeg", |
- "//ui/gfx:gfx_test_support", |
- ] |
-} |
+ deps = [ |
+ ":media", |
+ ":media_test_support", |
+ "//base", |
+ "//base:i18n", |
+ "//base/test:test_support", |
+ "//testing/gtest", |
+ "//third_party/ffmpeg", |
+ "//ui/gfx:gfx_test_support", |
+ ] |
+ } |
-test("ffmpeg_regression_tests") { |
- sources = [ |
- "base/run_all_unittests.cc", |
- "ffmpeg/ffmpeg_regression_tests.cc", |
- "filters/pipeline_integration_test_base.cc", |
- ] |
- configs += [ ":media_config" ] |
- deps = [ |
- ":media", |
- ":media_test_support", |
- "//base/test:test_support", |
- "//testing/gmock", |
- "//testing/gtest", |
- "//third_party/ffmpeg", |
- "//ui/gfx/geometry", |
- "//ui/gfx:gfx_test_support", |
- ] |
-# TODO(ajwong): This was in the original gyp, but it seems silly. |
-# ['os_posix==1 and OS!="mac"', { |
-# 'conditions': [ |
-# ['use_allocator!="none"', { |
-# 'dependencies': [ |
-# '../base/allocator/allocator.gyp:allocator', |
-# ], |
-# }], |
-# ], |
-# }], |
+ test("ffmpeg_regression_tests") { |
+ sources = [ |
+ "base/run_all_unittests.cc", |
+ "ffmpeg/ffmpeg_regression_tests.cc", |
+ "filters/pipeline_integration_test_base.cc", |
+ ] |
+ configs += [ ":media_config" ] |
+ deps = [ |
+ ":media", |
+ ":media_test_support", |
+ "//base/test:test_support", |
+ "//testing/gmock", |
+ "//testing/gtest", |
+ "//third_party/ffmpeg", |
+ "//ui/gfx/geometry", |
+ "//ui/gfx:gfx_test_support", |
+ ] |
+ # TODO(ajwong): This was in the original gyp, but it seems silly. |
+ # ['os_posix==1 and OS!="mac"', { |
+ # 'conditions': [ |
+ # ['use_allocator!="none"', { |
+ # 'dependencies': [ |
+ # '../base/allocator/allocator.gyp:allocator', |
+ # ], |
+ # }], |
+ # ], |
+ # }], |
+ } |
} |
if (use_x11) { |
@@ -1347,7 +1348,7 @@ if (use_x11) { |
":media_config", |
"//build/config/linux:x11", |
"//build/config/linux:xext", |
-# TODO(ajwong): Why does xent get a separate thing in //build/config/linux:BUILD.gn |
+# TODO(ajwong): Why does xext get a separate thing in //build/config/linux:BUILD.gn |
# "//build/config/linux:xrender", |
] |
deps = [ |
@@ -1360,3 +1361,85 @@ if (use_x11) { |
] |
} |
} |
+ |
+if (is_android) { |
+ source_set("player_android") { |
+ configs += [ ":media_config" ] |
+ sources = [ |
+ "base/android/audio_decoder_job.cc", |
+ "base/android/audio_decoder_job.h", |
+ "base/android/browser_cdm_factory_android.cc", |
+ "base/android/media_codec_bridge.cc", |
+ "base/android/media_codec_bridge.h", |
+ "base/android/media_decoder_job.cc", |
+ "base/android/media_decoder_job.h", |
+ "base/android/media_drm_bridge.cc", |
+ "base/android/media_drm_bridge.h", |
+ "base/android/media_jni_registrar.cc", |
+ "base/android/media_jni_registrar.h", |
+ "base/android/media_player_android.cc", |
+ "base/android/media_player_android.h", |
+ "base/android/media_player_bridge.cc", |
+ "base/android/media_player_bridge.h", |
+ "base/android/media_player_listener.cc", |
+ "base/android/media_player_listener.h", |
+ "base/android/media_source_player.cc", |
+ "base/android/media_source_player.h", |
+ "base/android/video_decoder_job.cc", |
+ "base/android/video_decoder_job.h", |
+ "base/android/webaudio_media_codec_bridge.cc", |
+ "base/android/webaudio_media_codec_bridge.h", |
+ "base/android/webaudio_media_codec_info.h", |
+ ] |
+ |
+ deps = [ |
+ ":media_android_jni_headers", |
+ "//base", |
+ "//third_party/widevine/cdm:version_h", |
+ "//ui/gl", |
+ "//url" |
+ ] |
+ } |
+ |
+ generate_jni("media_android_jni_headers") { |
+ sources = [ |
+ "base/android/java/src/org/chromium/media/AudioManagerAndroid.java", |
+ "base/android/java/src/org/chromium/media/AudioRecordInput.java", |
+ "base/android/java/src/org/chromium/media/MediaCodecBridge.java", |
+ "base/android/java/src/org/chromium/media/MediaDrmBridge.java", |
+ "base/android/java/src/org/chromium/media/MediaPlayerBridge.java", |
+ "base/android/java/src/org/chromium/media/MediaPlayerListener.java", |
+ "base/android/java/src/org/chromium/media/UsbMidiDeviceAndroid.java", |
+ "base/android/java/src/org/chromium/media/UsbMidiDeviceFactoryAndroid.java", |
+ "base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java", |
+ ] |
+ jni_package = "media" |
+ } |
+ |
+ generate_jni("video_capture_android_jni_headers") { |
+ sources = [ |
+ "base/android/java/src/org/chromium/media/VideoCapture.java", |
+ "base/android/java/src/org/chromium/media/VideoCaptureFactory.java", |
+ ] |
+ jni_package = "media" |
+ } |
+ |
+ android_library("media_java") { |
+ srcjar_deps = [ |
+ ":media_android_imageformat_list", |
+ ] |
+ java_files = [] |
+ } |
+ |
+ java_cpp_template("media_android_imageformat_list") { |
+ sources = [ |
+ "base/android/java/src/org/chromium/media/ImageFormat.template", |
+ ] |
+ inputs = [ |
+ "video/capture/android/imageformat_list.h" |
+ ] |
+ package_name = "org/chromium/media" |
+ } |
+ |
+ # TODO(dalecurtis): Finish media_unittests_apk and media_perftests_apk. |
+} |