summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-11 23:51:04 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-11 23:52:12 +0000
commit731326bd632632c779027c8effdaa0e370bfada3 (patch)
tree8412a59ab1a070b80d127a52f794427dde8d6c42 /media
parentf31fcdd35a03ec6844acf6dd636f1b7a4973afb5 (diff)
downloadchromium_src-731326bd632632c779027c8effdaa0e370bfada3.zip
chromium_src-731326bd632632c779027c8effdaa0e370bfada3.tar.gz
chromium_src-731326bd632632c779027c8effdaa0e370bfada3.tar.bz2
Split out media/base and media/android into GN targets.
Takes over https://codereview.chromium.org/381293002/ BUG=none TEST=media_unittests builds and has same number of targets. Review URL: https://codereview.chromium.org/433193003 Cr-Commit-Position: refs/heads/master@{#288832} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288832 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/BUILD.gn441
-rw-r--r--media/audio/BUILD.gn2
-rw-r--r--media/base/BUILD.gn426
-rw-r--r--media/base/android/BUILD.gn87
4 files changed, 525 insertions, 431 deletions
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 36ad093..2871e72 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -22,7 +22,7 @@ config("media_config") {
}
}
if (use_cras) {
- defines = [ "USE_CRAS" ]
+ defines += [ "USE_CRAS" ]
}
if (enable_mpeg2ts_stream_parser) {
defines += [ "ENABLE_MPEG2TS_STREAM_PARSER" ]
@@ -66,150 +66,6 @@ if (use_ozone) {
component("media") {
sources = [
- "base/audio_block_fifo.cc",
- "base/audio_block_fifo.h",
- "base/audio_buffer.cc",
- "base/audio_buffer.h",
- "base/audio_buffer_queue.cc",
- "base/audio_buffer_queue.h",
- "base/audio_capturer_source.h",
- "base/audio_buffer_converter.cc",
- "base/audio_buffer_converter.h",
- "base/audio_converter.cc",
- "base/audio_converter.h",
- "base/audio_decoder.cc",
- "base/audio_decoder.h",
- "base/audio_decoder_config.cc",
- "base/audio_decoder_config.h",
- "base/audio_discard_helper.cc",
- "base/audio_discard_helper.h",
- "base/audio_fifo.cc",
- "base/audio_fifo.h",
- "base/audio_hardware_config.cc",
- "base/audio_hardware_config.h",
- "base/audio_hash.cc",
- "base/audio_hash.h",
- "base/audio_pull_fifo.cc",
- "base/audio_pull_fifo.h",
- "base/audio_renderer.cc",
- "base/audio_renderer.h",
- "base/audio_renderer_mixer.cc",
- "base/audio_renderer_mixer.h",
- "base/audio_renderer_mixer_input.cc",
- "base/audio_renderer_mixer_input.h",
- "base/audio_renderer_sink.h",
- "base/audio_splicer.cc",
- "base/audio_splicer.h",
- "base/audio_timestamp_helper.cc",
- "base/audio_timestamp_helper.h",
- "base/bind_to_current_loop.h",
- "base/bit_reader.cc",
- "base/bit_reader.h",
- "base/bit_reader_core.cc",
- "base/bit_reader_core.h",
- "base/bitstream_buffer.h",
- "base/buffering_state.h",
- "base/buffers.h",
- "base/byte_queue.cc",
- "base/byte_queue.h",
- "base/cdm_promise.cc",
- "base/cdm_promise.h",
- "base/channel_mixer.cc",
- "base/channel_mixer.h",
- "base/clock.h",
- "base/data_buffer.cc",
- "base/data_buffer.h",
- "base/data_source.cc",
- "base/data_source.h",
- "base/decoder_buffer.cc",
- "base/decoder_buffer.h",
- "base/decoder_buffer_queue.cc",
- "base/decoder_buffer_queue.h",
- "base/decrypt_config.cc",
- "base/decrypt_config.h",
- "base/decryptor.cc",
- "base/decryptor.h",
- "base/demuxer.cc",
- "base/demuxer.h",
- "base/demuxer_stream.cc",
- "base/demuxer_stream.h",
- "base/djb2.cc",
- "base/djb2.h",
- "base/filter_collection.cc",
- "base/filter_collection.h",
- "base/media.cc",
- "base/media.h",
- "base/media_keys.cc",
- "base/media_keys.h",
- "base/media_log.cc",
- "base/media_log.h",
- "base/media_log_event.h",
- "base/media_switches.cc",
- "base/media_switches.h",
- "base/media_win.cc",
- "base/multi_channel_resampler.cc",
- "base/multi_channel_resampler.h",
- "base/pipeline.cc",
- "base/pipeline.h",
- "base/pipeline_status.h",
- "base/player_tracker.cc",
- "base/player_tracker.h",
- "base/ranges.cc",
- "base/ranges.h",
- "base/sample_format.cc",
- "base/sample_format.h",
- "base/scoped_histogram_timer.h",
- "base/seekable_buffer.cc",
- "base/seekable_buffer.h",
- "base/serial_runner.cc",
- "base/serial_runner.h",
- "base/simd/convert_rgb_to_yuv.h",
- "base/simd/convert_rgb_to_yuv_c.cc",
- "base/simd/convert_yuv_to_rgb.h",
- "base/simd/convert_yuv_to_rgb_c.cc",
- "base/simd/filter_yuv.h",
- "base/simd/filter_yuv_c.cc",
- "base/simd/yuv_to_rgb_table.cc",
- "base/simd/yuv_to_rgb_table.h",
- "base/sinc_resampler.cc",
- "base/sinc_resampler.h",
- "base/stream_parser.cc",
- "base/stream_parser.h",
- "base/stream_parser_buffer.cc",
- "base/stream_parser_buffer.h",
- "base/text_cue.cc",
- "base/text_cue.h",
- "base/text_ranges.cc",
- "base/text_ranges.h",
- "base/text_renderer.cc",
- "base/text_renderer.h",
- "base/text_track.h",
- "base/text_track_config.cc",
- "base/text_track_config.h",
- "base/time_delta_interpolator.cc",
- "base/time_delta_interpolator.h",
- "base/time_source.h",
- "base/user_input_monitor.cc",
- "base/user_input_monitor.h",
- "base/user_input_monitor_mac.cc",
- "base/user_input_monitor_win.cc",
- "base/video_decoder.cc",
- "base/video_decoder.h",
- "base/video_decoder_config.cc",
- "base/video_decoder_config.h",
- "base/video_frame.cc",
- "base/video_frame.h",
- "base/video_frame_pool.cc",
- "base/video_frame_pool.h",
- "base/video_renderer.cc",
- "base/video_renderer.h",
- "base/video_rotation.h",
- "base/video_util.cc",
- "base/video_util.h",
- "base/wall_clock_time_source.cc",
- "base/wall_clock_time_source.h",
- "base/yuv_convert.cc",
- "base/yuv_convert.h",
"cdm/aes_decryptor.cc",
"cdm/aes_decryptor.h",
"cdm/json_web_key.cc",
@@ -387,13 +243,6 @@ component("media") {
if (media_use_ffmpeg) {
deps += [ "//third_party/ffmpeg" ]
sources += [
- "base/audio_video_metadata_extractor.cc",
- "base/audio_video_metadata_extractor.h",
- "base/container_names.cc",
- "base/container_names.h",
- "base/media_file_checker.cc",
- "base/media_file_checker.h",
- "base/media_posix.cc",
"ffmpeg/ffmpeg_common.cc",
"ffmpeg/ffmpeg_common.h",
"filters/audio_file_reader.cc",
@@ -431,14 +280,6 @@ component("media") {
deps += [ "//third_party/libvpx" ]
}
- if (enable_browser_cdms) {
- sources += [
- "base/browser_cdm.cc",
- "base/browser_cdm.h",
- "base/browser_cdm_factory.h",
- ]
- }
-
if (!is_android) {
sources += [
"filters/opus_audio_decoder.cc",
@@ -446,13 +287,6 @@ component("media") {
]
} else {
sources += [
- "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_stub.cc",
"midi/midi_manager_android.cc",
"midi/usb_midi_device_android.cc",
"midi/usb_midi_device_android.h",
@@ -463,11 +297,10 @@ component("media") {
"video/capture/android/video_capture_device_factory_android.cc",
"video/capture/android/video_capture_device_factory_android.h",
]
- defines += [ "DISABLE_USER_INPUT_MONITOR" ]
deps += [
- ":media_android_jni_headers",
- ":player_android",
- ":video_capture_android_jni_headers",
+ "//media/base/android",
+ "//media/base/android:media_jni_headers",
+ "//media/base/android:video_capture_jni_headers",
]
if (!is_android_webview_build) {
deps += [ ":media_java" ]
@@ -488,23 +321,6 @@ component("media") {
}
# A simple WebM encoder for animated avatars on ChromeOS.
- if (is_linux) {
- if (use_x11) {
- configs += [
- "//build/config/linux:x11",
- "//build/config/linux:xext",
-# TODO(ajwong): Why does xent get a separate thing in //build/config/linux:BUILD.gn
-# "//build/config/linux:xdamage",
-# "//build/config/linux:xfixes",
-# "//build/config/linux:xtst",
- ]
- sources += [
- "base/user_input_monitor_linux.cc"
- ]
- } else {
- defines += [ "DISABLE_USER_INPUT_MONITOR" ]
- }
- }
if (use_ozone) {
# Used for the generated listing header (ui/ozone/platform_list.h)
@@ -595,22 +411,6 @@ component("media") {
]
}
- if (cpu_arch == "x86" || cpu_arch == "x64") {
- sources += [ "base/simd/convert_yuv_to_rgb_x86.cc" ]
- deps += [
- ":media_yasm",
- ":media_mmx",
- ":media_sse2",
- ]
- }
-
- if (is_linux || is_win) {
- sources += [
- "base/keyboard_event_counter.cc",
- "base/keyboard_event_counter.h",
- ]
- }
-
deps += [
":shared_memory_support",
"//base",
@@ -620,6 +420,7 @@ component("media") {
"//crypto:platform", # TODO(ajwong): This used to be provided by crypto.gyp via export_dependent_settings
"//gpu/command_buffer/common",
"//media/audio",
+ "//media/base",
"//skia",
"//third_party/opus",
"//ui/events:events_base",
@@ -631,53 +432,6 @@ component("media") {
test("media_unittests") {
sources = [
- "base/android/media_codec_bridge_unittest.cc",
- "base/android/media_drm_bridge_unittest.cc",
- "base/android/media_source_player_unittest.cc",
- "base/audio_block_fifo_unittest.cc",
- "base/audio_buffer_converter_unittest.cc",
- "base/audio_buffer_unittest.cc",
- "base/audio_buffer_queue_unittest.cc",
- "base/audio_bus_unittest.cc",
- "base/audio_converter_unittest.cc",
- "base/audio_discard_helper_unittest.cc",
- "base/audio_fifo_unittest.cc",
- "base/audio_hardware_config_unittest.cc",
- "base/audio_hash_unittest.cc",
- "base/audio_pull_fifo_unittest.cc",
- "base/audio_renderer_mixer_input_unittest.cc",
- "base/audio_renderer_mixer_unittest.cc",
- "base/audio_splicer_unittest.cc",
- "base/audio_timestamp_helper_unittest.cc",
- "base/bind_to_current_loop_unittest.cc",
- "base/bit_reader_unittest.cc",
- "base/callback_holder.h",
- "base/callback_holder_unittest.cc",
- "base/channel_mixer_unittest.cc",
- "base/data_buffer_unittest.cc",
- "base/decoder_buffer_queue_unittest.cc",
- "base/decoder_buffer_unittest.cc",
- "base/djb2_unittest.cc",
- "base/gmock_callback_support_unittest.cc",
- "base/multi_channel_resampler_unittest.cc",
- "base/pipeline_unittest.cc",
- "base/ranges_unittest.cc",
- "base/run_all_unittests.cc",
- "base/scoped_histogram_timer_unittest.cc",
- "base/serial_runner_unittest.cc",
- "base/seekable_buffer_unittest.cc",
- "base/sinc_resampler_unittest.cc",
- "base/stream_parser_unittest.cc",
- "base/text_ranges_unittest.cc",
- "base/text_renderer_unittest.cc",
- "base/user_input_monitor_unittest.cc",
- "base/vector_math_testing.h",
- "base/vector_math_unittest.cc",
- "base/video_frame_unittest.cc",
- "base/video_frame_pool_unittest.cc",
- "base/video_util_unittest.cc",
- "base/wall_clock_time_source_unittest.cc",
- "base/yuv_convert_unittest.cc",
"cdm/aes_decryptor_unittest.cc",
"cdm/json_web_key_unittest.cc",
"filters/audio_clock_unittest.cc",
@@ -726,17 +480,8 @@ test("media_unittests") {
"formats/webm/webm_webvtt_parser_unittest.cc",
]
- if (media_use_ffmpeg) {
- sources += [
- "base/audio_video_metadata_extractor_unittest.cc",
- "base/media_file_checker_unittest.cc",
- ]
- }
-
if (!is_android) {
sources += [
-
- "base/container_names_unittest.cc",
"ffmpeg/ffmpeg_common_unittest.cc",
"filters/audio_decoder_unittest.cc",
"filters/audio_file_reader_unittest.cc",
@@ -760,10 +505,6 @@ test("media_unittests") {
sources += [ "filters/h264_bitstream_buffer_unittest.cc" ]
}
- if (cpu_arch == "x86" || cpu_arch == "x64") {
- sources += [ "base/simd/convert_rgb_to_yuv_unittest.cc" ]
- }
-
if (proprietary_codecs) {
sources += [
"filters/ffmpeg_h264_to_annex_b_bitstream_converter_unittest.cc",
@@ -821,6 +562,8 @@ test("media_unittests") {
"//base/test:test_support",
"//media/audio:unittests",
"//media/audio:test_support",
+ "//media/base:unittests",
+ "//media/base:test_support",
"//skia", # Direct dependency required to inherit config.
"//testing/gmock",
"//testing/gtest",
@@ -836,17 +579,9 @@ test("media_unittests") {
}
test("media_perftests") {
- sources = [
- "base/audio_bus_perftest.cc",
- "base/audio_converter_perftest.cc",
- "base/run_all_perftests.cc",
- "base/sinc_resampler_perftest.cc",
- "base/vector_math_perftest.cc",
- "base/yuv_convert_perftest.cc",
- ]
+ sources = []
if (media_use_ffmpeg) {
sources += [
- "base/demuxer_perftest.cc",
"filters/pipeline_integration_perftest.cc",
"filters/pipeline_integration_test_base.cc",
]
@@ -858,6 +593,8 @@ test("media_perftests") {
":test_support",
"//base/test:test_support",
"//media/audio:test_support",
+ "//media/base:perftests",
+ "//media/base:test_support",
"//testing/gmock",
"//testing/gtest",
"//testing/perf",
@@ -874,102 +611,8 @@ test("media_perftests") {
}
}
-if (cpu_arch == "x86" || cpu_arch == "x64") {
- source_set("media_mmx") {
- sources = [ "base/simd/filter_yuv_mmx.cc" ]
- configs += [ ":media_config" ]
- cflags = [ "-mmmx" ]
- }
-
- source_set("media_sse2") {
- sources = [
- "base/simd/convert_rgb_to_yuv_sse2.cc",
- "base/simd/convert_rgb_to_yuv_ssse3.cc",
- "base/simd/filter_yuv_sse2.cc",
- ]
- configs += [ ":media_config" ]
- cflags = [ "-msse2" ]
- }
-
- import("//third_party/yasm/yasm_assemble.gni")
- yasm_assemble("media_yasm") {
- sources = [
- "base/simd/convert_rgb_to_yuv_ssse3.asm",
- "base/simd/convert_yuv_to_rgb_mmx.asm",
- "base/simd/convert_yuv_to_rgb_sse.asm",
- "base/simd/convert_yuva_to_argb_mmx.asm",
- "base/simd/empty_register_state_mmx.asm",
- "base/simd/linear_scale_yuv_to_rgb_mmx.asm",
- "base/simd/linear_scale_yuv_to_rgb_sse.asm",
- "base/simd/scale_yuv_to_rgb_mmx.asm",
- "base/simd/scale_yuv_to_rgb_sse.asm",
- ]
-
- # TODO(ajwong): Only export if shared_library build...
- yasm_flags = [
- "-DCHROMIUM",
- "-DEXPORT_SYMBOLS",
- # In addition to the same path as source asm, let yasm %include
- # search path be relative to src/ per Chromium policy.
- "-I", rebase_path("..", root_build_dir),
- ]
-
- inputs = [
- "//third_party/x86inc/x86inc.asm",
- "base/simd/convert_rgb_to_yuv_ssse3.inc",
- "base/simd/convert_yuv_to_rgb_mmx.inc",
- "base/simd/convert_yuva_to_argb_mmx.inc",
- "base/simd/linear_scale_yuv_to_rgb_mmx.inc",
- "base/simd/media_export.asm",
- "base/simd/scale_yuv_to_rgb_mmx.inc",
- ]
-
- if (cpu_arch == "x86") {
- yasm_flags += [ "-DARCH_X86_32" ]
- } else if (cpu_arch == "x64") {
- yasm_flags += [ "-DARCH_X86_64" ]
- sources += [
- "base/simd/linear_scale_yuv_to_rgb_mmx_x64.asm",
- "base/simd/scale_yuv_to_rgb_sse2_x64.asm",
- ]
- }
-
- if (is_mac) {
- yasm_flags += [
- "-DPREFIX",
- "-DMACHO",
- ]
- } else {
- if (is_posix) {
- yasm_flags += [ "-DELF" ]
- if (cpu_arch == "x64") {
- # TODO(ajwong): Why isn't this true in mac?
- yasm_flags += [ "-DPIC" ]
- }
- }
- }
- }
-}
-
source_set("test_support") {
sources = [
- "base/fake_audio_render_callback.cc",
- "base/fake_audio_render_callback.h",
- "base/fake_audio_renderer_sink.cc",
- "base/fake_audio_renderer_sink.h",
- "base/fake_text_track_stream.cc",
- "base/fake_text_track_stream.h",
- "base/gmock_callback_support.h",
- "base/mock_audio_renderer_sink.cc",
- "base/mock_audio_renderer_sink.h",
- "base/mock_demuxer_host.cc",
- "base/mock_demuxer_host.h",
- "base/mock_filters.cc",
- "base/mock_filters.h",
- "base/test_data_util.cc",
- "base/test_data_util.h",
- "base/test_helpers.cc",
- "base/test_helpers.h",
"filters/clockless_video_frame_scheduler.cc",
"filters/clockless_video_frame_scheduler.h",
"filters/mock_gpu_video_accelerator_factories.cc",
@@ -1035,6 +678,7 @@ if (media_use_ffmpeg) {
":test_support",
"//base/test:test_support",
"//media/audio:test_support",
+ "//media/base:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/ffmpeg",
@@ -1085,67 +729,6 @@ if (use_x11) {
if (is_android) {
import("//build/config/android/rules.gni")
- 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",
@@ -1162,6 +745,4 @@ if (is_android) {
]
package_name = "org/chromium/media"
}
-
- # TODO(dalecurtis): Finish media_unittests_apk and media_perftests_apk.
}
diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
index 835c135..e6ac957 100644
--- a/media/audio/BUILD.gn
+++ b/media/audio/BUILD.gn
@@ -164,7 +164,7 @@ source_set("audio") {
"android/opensles_wrapper.cc",
]
deps += [
- "//media:media_android_jni_headers",
+ "//media/base/android:media_jni_headers",
]
}
diff --git a/media/base/BUILD.gn b/media/base/BUILD.gn
new file mode 100644
index 0000000..fe75b85
--- /dev/null
+++ b/media/base/BUILD.gn
@@ -0,0 +1,426 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/config.gni")
+import("//build/config/arm.gni")
+import("//build/config/ui.gni")
+import("//build/config/linux/pkg_config.gni")
+import("//media/media_options.gni")
+
+source_set("base") {
+ sources = [
+ "audio_block_fifo.cc",
+ "audio_block_fifo.h",
+ "audio_buffer.cc",
+ "audio_buffer.h",
+ "audio_buffer_queue.cc",
+ "audio_buffer_queue.h",
+ "audio_capturer_source.h",
+ "audio_buffer_converter.cc",
+ "audio_buffer_converter.h",
+ "audio_converter.cc",
+ "audio_converter.h",
+ "audio_decoder.cc",
+ "audio_decoder.h",
+ "audio_decoder_config.cc",
+ "audio_decoder_config.h",
+ "audio_discard_helper.cc",
+ "audio_discard_helper.h",
+ "audio_fifo.cc",
+ "audio_fifo.h",
+ "audio_hardware_config.cc",
+ "audio_hardware_config.h",
+ "audio_hash.cc",
+ "audio_hash.h",
+ "audio_pull_fifo.cc",
+ "audio_pull_fifo.h",
+ "audio_renderer.cc",
+ "audio_renderer.h",
+ "audio_renderer_mixer.cc",
+ "audio_renderer_mixer.h",
+ "audio_renderer_mixer_input.cc",
+ "audio_renderer_mixer_input.h",
+ "audio_renderer_sink.h",
+ "audio_splicer.cc",
+ "audio_splicer.h",
+ "audio_timestamp_helper.cc",
+ "audio_timestamp_helper.h",
+ "bind_to_current_loop.h",
+ "bit_reader.cc",
+ "bit_reader.h",
+ "bit_reader_core.cc",
+ "bit_reader_core.h",
+ "bitstream_buffer.h",
+ "buffering_state.h",
+ "buffers.h",
+ "byte_queue.cc",
+ "byte_queue.h",
+ "cdm_promise.cc",
+ "cdm_promise.h",
+ "channel_mixer.cc",
+ "channel_mixer.h",
+ "clock.h",
+ "data_buffer.cc",
+ "data_buffer.h",
+ "data_source.cc",
+ "data_source.h",
+ "decoder_buffer.cc",
+ "decoder_buffer.h",
+ "decoder_buffer_queue.cc",
+ "decoder_buffer_queue.h",
+ "decrypt_config.cc",
+ "decrypt_config.h",
+ "decryptor.cc",
+ "decryptor.h",
+ "demuxer.cc",
+ "demuxer.h",
+ "demuxer_stream.cc",
+ "demuxer_stream.h",
+ "djb2.cc",
+ "djb2.h",
+ "filter_collection.cc",
+ "filter_collection.h",
+ "media.cc",
+ "media.h",
+ "media_keys.cc",
+ "media_keys.h",
+ "media_log.cc",
+ "media_log.h",
+ "media_log_event.h",
+ "media_switches.cc",
+ "media_switches.h",
+ "multi_channel_resampler.cc",
+ "multi_channel_resampler.h",
+ "pipeline.cc",
+ "pipeline.h",
+ "pipeline_status.h",
+ "player_tracker.cc",
+ "player_tracker.h",
+ "ranges.cc",
+ "ranges.h",
+ "sample_format.cc",
+ "sample_format.h",
+ "scoped_histogram_timer.h",
+ "seekable_buffer.cc",
+ "seekable_buffer.h",
+ "serial_runner.cc",
+ "serial_runner.h",
+ "simd/convert_rgb_to_yuv.h",
+ "simd/convert_rgb_to_yuv_c.cc",
+ "simd/convert_yuv_to_rgb.h",
+ "simd/convert_yuv_to_rgb_c.cc",
+ "simd/filter_yuv.h",
+ "simd/filter_yuv_c.cc",
+ "simd/yuv_to_rgb_table.cc",
+ "simd/yuv_to_rgb_table.h",
+ "sinc_resampler.cc",
+ "sinc_resampler.h",
+ "stream_parser.cc",
+ "stream_parser.h",
+ "stream_parser_buffer.cc",
+ "stream_parser_buffer.h",
+ "text_cue.cc",
+ "text_cue.h",
+ "text_ranges.cc",
+ "text_ranges.h",
+ "text_renderer.cc",
+ "text_renderer.h",
+ "text_track.h",
+ "text_track_config.cc",
+ "text_track_config.h",
+ "time_delta_interpolator.cc",
+ "time_delta_interpolator.h",
+ "time_source.h",
+ "user_input_monitor.cc",
+ "user_input_monitor.h",
+ "video_decoder.cc",
+ "video_decoder.h",
+ "video_decoder_config.cc",
+ "video_decoder_config.h",
+ "video_frame.cc",
+ "video_frame.h",
+ "video_frame_pool.cc",
+ "video_frame_pool.h",
+ "video_renderer.cc",
+ "video_renderer.h",
+ "video_rotation.h",
+ "video_util.cc",
+ "video_util.h",
+ "wall_clock_time_source.cc",
+ "wall_clock_time_source.h",
+ "yuv_convert.cc",
+ "yuv_convert.h",
+ ]
+ defines = []
+ deps = [ "//skia" ]
+ libs = []
+ configs += [ "//media:media_config" ]
+
+ if (media_use_ffmpeg) {
+ sources += [
+ "audio_video_metadata_extractor.cc",
+ "audio_video_metadata_extractor.h",
+ "container_names.cc",
+ "container_names.h",
+ "media_file_checker.cc",
+ "media_file_checker.h",
+ ]
+ deps += [ "//third_party/ffmpeg" ]
+ }
+
+ if (enable_browser_cdms) {
+ sources += [
+ "browser_cdm.cc",
+ "browser_cdm.h",
+ "browser_cdm_factory.h",
+ ]
+ }
+
+ if (is_android) {
+ sources += [ "media_stub.cc" ]
+ } else if (is_win) {
+ sources += [ "media_win.cc" ]
+ } else if (is_posix) {
+ sources += [ "media_posix.cc" ]
+ }
+
+ if (is_linux && use_x11) {
+ configs += [
+ "//build/config/linux:x11",
+ "//build/config/linux:xext",
+ # TODO(ajwong): Why does xent get a separate thing in //build/config/linux:BUILD.gn
+ # "//build/config/linux:xdamage",
+ # "//build/config/linux:xfixes",
+ # "//build/config/linux:xtst",
+ ]
+ sources += [ "user_input_monitor_linux.cc" ]
+ } else if (is_mac) {
+ sources += [ "user_input_monitor_mac.cc" ]
+ } else if (is_win) {
+ sources += [ "user_input_monitor_win.cc" ]
+ } else {
+ defines += [ "DISABLE_USER_INPUT_MONITOR" ]
+ }
+
+ if (cpu_arch == "x86" || cpu_arch == "x64") {
+ sources += [ "simd/convert_yuv_to_rgb_x86.cc" ]
+ deps += [
+ ":media_yasm",
+ ":media_mmx",
+ ":media_sse2",
+ ]
+ }
+
+ if (is_linux || is_win) {
+ sources += [
+ "keyboard_event_counter.cc",
+ "keyboard_event_counter.h",
+ ]
+ }
+}
+
+source_set("test_support") {
+ sources = [
+ "fake_audio_render_callback.cc",
+ "fake_audio_render_callback.h",
+ "fake_audio_renderer_sink.cc",
+ "fake_audio_renderer_sink.h",
+ "fake_text_track_stream.cc",
+ "fake_text_track_stream.h",
+ "gmock_callback_support.h",
+ "mock_audio_renderer_sink.cc",
+ "mock_audio_renderer_sink.h",
+ "mock_demuxer_host.cc",
+ "mock_demuxer_host.h",
+ "mock_filters.cc",
+ "mock_filters.h",
+ "test_data_util.cc",
+ "test_data_util.h",
+ "test_helpers.cc",
+ "test_helpers.h",
+ ]
+ configs += [ "//media:media_config" ]
+ deps = [ "//testing/gmock" ]
+}
+
+source_set("unittests") {
+ sources = [
+ "audio_block_fifo_unittest.cc",
+ "audio_buffer_converter_unittest.cc",
+ "audio_buffer_unittest.cc",
+ "audio_buffer_queue_unittest.cc",
+ "audio_bus_unittest.cc",
+ "audio_converter_unittest.cc",
+ "audio_discard_helper_unittest.cc",
+ "audio_fifo_unittest.cc",
+ "audio_hardware_config_unittest.cc",
+ "audio_hash_unittest.cc",
+ "audio_pull_fifo_unittest.cc",
+ "audio_renderer_mixer_input_unittest.cc",
+ "audio_renderer_mixer_unittest.cc",
+ "audio_splicer_unittest.cc",
+ "audio_timestamp_helper_unittest.cc",
+ "bind_to_current_loop_unittest.cc",
+ "bit_reader_unittest.cc",
+ "callback_holder.h",
+ "callback_holder_unittest.cc",
+ "channel_mixer_unittest.cc",
+ "data_buffer_unittest.cc",
+ "decoder_buffer_queue_unittest.cc",
+ "decoder_buffer_unittest.cc",
+ "djb2_unittest.cc",
+ "gmock_callback_support_unittest.cc",
+ "multi_channel_resampler_unittest.cc",
+ "pipeline_unittest.cc",
+ "ranges_unittest.cc",
+ "run_all_unittests.cc",
+ "scoped_histogram_timer_unittest.cc",
+ "serial_runner_unittest.cc",
+ "seekable_buffer_unittest.cc",
+ "sinc_resampler_unittest.cc",
+ "stream_parser_unittest.cc",
+ "text_ranges_unittest.cc",
+ "text_renderer_unittest.cc",
+ "user_input_monitor_unittest.cc",
+ "vector_math_testing.h",
+ "vector_math_unittest.cc",
+ "video_frame_unittest.cc",
+ "video_frame_pool_unittest.cc",
+ "video_util_unittest.cc",
+ "wall_clock_time_source_unittest.cc",
+ "yuv_convert_unittest.cc",
+ ]
+ configs += [ "//media:media_config" ]
+ deps = [
+ ":base",
+ ":test_support",
+ "//skia",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+
+ if (media_use_ffmpeg) {
+ sources += [
+ "audio_video_metadata_extractor_unittest.cc",
+ "media_file_checker_unittest.cc",
+ ]
+ }
+
+ if (!is_android) {
+ sources += [
+ "container_names_unittest.cc",
+ ]
+ } else {
+ deps += [ "//ui/gl" ]
+ }
+
+ if (cpu_arch == "x86" || cpu_arch == "x64") {
+ sources += [ "simd/convert_rgb_to_yuv_unittest.cc" ]
+ }
+}
+
+source_set("perftests") {
+ sources = [
+ "audio_bus_perftest.cc",
+ "audio_converter_perftest.cc",
+ "run_all_perftests.cc",
+ "sinc_resampler_perftest.cc",
+ "vector_math_perftest.cc",
+ "yuv_convert_perftest.cc",
+ ]
+ configs += [ "//media:media_config" ]
+ deps = [
+ ":base",
+ ":test_support",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+
+ if (media_use_ffmpeg) {
+ sources += [
+ "demuxer_perftest.cc",
+ ]
+ }
+
+ if (is_android) {
+ deps += [ "//ui/gl"]
+ }
+}
+
+if (cpu_arch == "x86" || cpu_arch == "x64") {
+ source_set("media_mmx") {
+ sources = [ "simd/filter_yuv_mmx.cc" ]
+ configs += [ "//media:media_config" ]
+ cflags = [ "-mmmx" ]
+ }
+
+ source_set("media_sse2") {
+ sources = [
+ "simd/convert_rgb_to_yuv_sse2.cc",
+ "simd/convert_rgb_to_yuv_ssse3.cc",
+ "simd/filter_yuv_sse2.cc",
+ ]
+ configs += [ "//media:media_config" ]
+ cflags = [ "-msse2" ]
+ }
+
+ import("//third_party/yasm/yasm_assemble.gni")
+ yasm_assemble("media_yasm") {
+ sources = [
+ "simd/convert_rgb_to_yuv_ssse3.asm",
+ "simd/convert_yuv_to_rgb_mmx.asm",
+ "simd/convert_yuv_to_rgb_sse.asm",
+ "simd/convert_yuva_to_argb_mmx.asm",
+ "simd/empty_register_state_mmx.asm",
+ "simd/linear_scale_yuv_to_rgb_mmx.asm",
+ "simd/linear_scale_yuv_to_rgb_sse.asm",
+ "simd/scale_yuv_to_rgb_mmx.asm",
+ "simd/scale_yuv_to_rgb_sse.asm",
+ ]
+
+ # TODO(ajwong): Only export if shared_library build...
+ yasm_flags = [
+ "-DCHROMIUM",
+ "-DEXPORT_SYMBOLS",
+ # In addition to the same path as source asm, let yasm %include
+ # search path be relative to src/ per Chromium policy.
+ "-I", rebase_path("..", root_build_dir),
+ ]
+
+ inputs = [
+ "//third_party/x86inc/x86inc.asm",
+ "simd/convert_rgb_to_yuv_ssse3.inc",
+ "simd/convert_yuv_to_rgb_mmx.inc",
+ "simd/convert_yuva_to_argb_mmx.inc",
+ "simd/linear_scale_yuv_to_rgb_mmx.inc",
+ "simd/media_export.asm",
+ "simd/scale_yuv_to_rgb_mmx.inc",
+ ]
+
+ if (cpu_arch == "x86") {
+ yasm_flags += [ "-DARCH_X86_32" ]
+ } else if (cpu_arch == "x64") {
+ yasm_flags += [ "-DARCH_X86_64" ]
+ sources += [
+ "simd/linear_scale_yuv_to_rgb_mmx_x64.asm",
+ "simd/scale_yuv_to_rgb_sse2_x64.asm",
+ ]
+ }
+
+ if (is_mac) {
+ yasm_flags += [
+ "-DPREFIX",
+ "-DMACHO",
+ ]
+ } else {
+ if (is_posix) {
+ yasm_flags += [ "-DELF" ]
+ if (cpu_arch == "x64") {
+ # TODO(ajwong): Why isn't this true in mac?
+ yasm_flags += [ "-DPIC" ]
+ }
+ }
+ }
+ }
+}
diff --git a/media/base/android/BUILD.gn b/media/base/android/BUILD.gn
new file mode 100644
index 0000000..a1b9999
--- /dev/null
+++ b/media/base/android/BUILD.gn
@@ -0,0 +1,87 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/config.gni")
+import("//build/config/android/rules.gni")
+import("//build/config/arm.gni")
+import("//build/config/ui.gni")
+import("//media/media_options.gni")
+
+assert(is_android)
+
+source_set("android") {
+ sources = [
+ "audio_decoder_job.cc",
+ "audio_decoder_job.h",
+ "browser_cdm_factory_android.cc",
+ "demuxer_android.h",
+ "demuxer_stream_player_params.cc",
+ "demuxer_stream_player_params.h",
+ "media_codec_bridge.cc",
+ "media_codec_bridge.h",
+ "media_decoder_job.cc",
+ "media_decoder_job.h",
+ "media_drm_bridge.cc",
+ "media_drm_bridge.h",
+ "media_jni_registrar.cc",
+ "media_jni_registrar.h",
+ "media_player_android.cc",
+ "media_player_android.h",
+ "media_player_bridge.cc",
+ "media_player_bridge.h",
+ "media_player_listener.cc",
+ "media_player_listener.h",
+ "media_player_manager.h",
+ "media_resource_getter.cc",
+ "media_resource_getter.h",
+ "media_source_player.cc",
+ "media_source_player.h",
+ "media_url_interceptor.h",
+ "video_decoder_job.cc",
+ "video_decoder_job.h",
+ "webaudio_media_codec_bridge.cc",
+ "webaudio_media_codec_bridge.h",
+ "webaudio_media_codec_info.h",
+ ]
+ configs += [ "//media:media_config" ]
+ deps = [ ":media_jni_headers" ]
+}
+
+source_set("unittests") {
+ sources = [
+ "media_codec_bridge_unittest.cc",
+ "media_drm_bridge_unittest.cc",
+ "media_source_player_unittest.cc",
+ ]
+ deps = [
+ ":android",
+ "//media/base:test_support",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+ configs += [ "//media:media_config" ]
+}
+
+generate_jni("media_jni_headers") {
+ sources = [
+ "java/src/org/chromium/media/AudioManagerAndroid.java",
+ "java/src/org/chromium/media/AudioRecordInput.java",
+ "java/src/org/chromium/media/MediaCodecBridge.java",
+ "java/src/org/chromium/media/MediaDrmBridge.java",
+ "java/src/org/chromium/media/MediaPlayerBridge.java",
+ "java/src/org/chromium/media/MediaPlayerListener.java",
+ "java/src/org/chromium/media/UsbMidiDeviceAndroid.java",
+ "java/src/org/chromium/media/UsbMidiDeviceFactoryAndroid.java",
+ "java/src/org/chromium/media/WebAudioMediaCodecBridge.java",
+ ]
+ jni_package = "media"
+}
+
+generate_jni("video_capture_jni_headers") {
+ sources = [
+ "java/src/org/chromium/media/VideoCapture.java",
+ "java/src/org/chromium/media/VideoCaptureFactory.java",
+ ]
+ jni_package = "media"
+}