summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorservolk <servolk@chromium.org>2016-01-12 15:09:36 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-12 23:12:02 +0000
commit8ce20c1dacac08e08e914fc7af10c60e0826e077 (patch)
tree3f46cab249e85ec7011ce1b2f9d7784e88531d95
parent7f6ec1189d09fcf01cf6d4ea41ed43ec91dfdbac (diff)
downloadchromium_src-8ce20c1dacac08e08e914fc7af10c60e0826e077.zip
chromium_src-8ce20c1dacac08e08e914fc7af10c60e0826e077.tar.gz
chromium_src-8ce20c1dacac08e08e914fc7af10c60e0826e077.tar.bz2
Convert enable_hevc to buildflag
BUG=none Review URL: https://codereview.chromium.org/1574553003 Cr-Commit-Position: refs/heads/master@{#369026}
-rw-r--r--content/browser/media/media_canplaytype_browsertest.cc2
-rw-r--r--content/content_tests.gypi5
-rw-r--r--content/test/BUILD.gn5
-rw-r--r--media/BUILD.gn4
-rw-r--r--media/base/mime_util.cc8
-rw-r--r--media/ffmpeg/ffmpeg_common.cc4
-rw-r--r--media/filters/ffmpeg_demuxer.cc7
-rw-r--r--media/filters/ffmpeg_demuxer_unittest.cc2
-rw-r--r--media/filters/stream_parser_factory.cc15
-rw-r--r--media/formats/mp4/box_definitions.cc9
-rw-r--r--media/formats/mp4/fourccs.h2
-rw-r--r--media/formats/mp4/mp4_stream_parser_unittest.cc2
-rw-r--r--media/media.gyp16
-rw-r--r--media/media_options.gni2
14 files changed, 30 insertions, 53 deletions
diff --git a/content/browser/media/media_canplaytype_browsertest.cc b/content/browser/media/media_canplaytype_browsertest.cc
index 5b99d6f..83493cc 100644
--- a/content/browser/media/media_canplaytype_browsertest.cc
+++ b/content/browser/media/media_canplaytype_browsertest.cc
@@ -42,7 +42,7 @@ const char kOggOpusProbably[] = "";
const char kMpeg2AacProbably[] = "";
#endif // !OS_ANDROID
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
const char* kHevcSupported = kPropProbably;
#else
const char* kHevcSupported = kNot;
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index b092630..8636271 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -1555,11 +1555,6 @@
'renderer/external_popup_menu_browsertest.cc',
],
}],
- ['chromecast==1', {
- 'defines': [
- 'ENABLE_HEVC_DEMUXING',
- ],
- }],
['use_aura==1 or toolkit_views==1', {
'dependencies': [
'../ui/events/events.gyp:events_test_support',
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 641c4c1..f303dca 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -7,7 +7,6 @@ import("//build/config/crypto.gni")
import("//build/config/features.gni")
import("//build/config/ui.gni")
import("//build_overrides/v8.gni")
-import("//media/media_options.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni")
@@ -353,10 +352,6 @@ test("content_browsertests") {
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
- if (proprietary_codecs && enable_hevc_demuxing) {
- defines += [ "ENABLE_HEVC_DEMUXING" ]
- }
-
configs += [
"//build/config:precompiled_headers",
"//build/config/compiler:no_size_t_to_int_warning",
diff --git a/media/BUILD.gn b/media/BUILD.gn
index b356a33..e16f1f2 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -16,6 +16,7 @@ buildflag_header("media_features") {
flags = [
"ENABLE_AC3_EAC3_AUDIO_DEMUXING=$enable_ac3_eac3_audio_demuxing",
+ "ENABLE_HEVC_DEMUXING=$enable_hevc_demuxing",
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser",
]
}
@@ -42,9 +43,6 @@ config("media_config") {
if (use_cras) {
defines += [ "USE_CRAS" ]
}
- if (proprietary_codecs && enable_hevc_demuxing) {
- defines += [ "ENABLE_HEVC_DEMUXING" ]
- }
}
config("media_implementation") {
diff --git a/media/base/mime_util.cc b/media/base/mime_util.cc
index 9abd15a..ff1d336 100644
--- a/media/base/mime_util.cc
+++ b/media/base/mime_util.cc
@@ -170,7 +170,7 @@ static bool IsCodecSupportedOnAndroid(MimeUtil::Codec codec) {
return base::android::BuildInfo::GetInstance()->sdk_int() >= 21;
case MimeUtil::HEVC_MAIN:
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
// HEVC/H.265 is supported in Lollipop+ (API Level 21), according to
// http://developer.android.com/reference/android/media/MediaFormat.html
return base::android::BuildInfo::GetInstance()->sdk_int() >= 21;
@@ -231,7 +231,7 @@ static const char kMP4VideoCodecsExpression[] =
// kUnambiguousCodecStringMap/kAmbiguousCodecStringMap should be the only
// mapping from strings to codecs. See crbug.com/461009.
"avc1.42E00A,avc1.4D400A,avc1.64000A,"
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
// Any valid unambiguous HEVC codec id will work here, since these strings
// are parsed and mapped to MimeUtil::Codec enum values.
"hev1.1.6.L93.B0,"
@@ -597,7 +597,7 @@ static bool ParseH264CodecID(const std::string& codec_id,
return true;
}
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
// ISO/IEC FDIS 14496-15 standard section E.3 describes the syntax of codec ids
// reserved for HEVC. According to that spec HEVC codec id must start with
// either "hev1." or "hvc1.". We don't yet support full parsing of HEVC codec
@@ -647,7 +647,7 @@ bool MimeUtil::StringToCodec(const std::string& codec_id,
// If |codec_id| is not in |string_to_codec_map_|, then we assume that it is
// either H.264 or HEVC/H.265 codec ID because currently those are the only
// ones that are not added to the |string_to_codec_map_| and require parsing.
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
if (ParseHEVCCodecID(codec_id, codec, is_ambiguous)) {
return true;
}
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index b65cedd..9261b1f 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -166,7 +166,7 @@ static VideoCodec CodecIDToVideoCodec(AVCodecID codec_id) {
switch (codec_id) {
case AV_CODEC_ID_H264:
return kCodecH264;
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
case AV_CODEC_ID_HEVC:
return kCodecHEVC;
#endif
@@ -188,7 +188,7 @@ AVCodecID VideoCodecToCodecID(VideoCodec video_codec) {
switch (video_codec) {
case kCodecH264:
return AV_CODEC_ID_H264;
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
case kCodecHEVC:
return AV_CODEC_ID_HEVC;
#endif
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index f942ea4..7769c92 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -35,8 +35,9 @@
#include "media/filters/ffmpeg_h264_to_annex_b_bitstream_converter.h"
#include "media/filters/webvtt_util.h"
#include "media/formats/webm/webm_crypto_helpers.h"
+#include "media/media_features.h"
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
#include "media/filters/ffmpeg_h265_to_annex_b_bitstream_converter.h"
#endif
@@ -617,7 +618,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() {
bitstream_converter_.reset(
new FFmpegH264ToAnnexBBitstreamConverter(stream_->codec));
break;
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
case AV_CODEC_ID_HEVC:
bitstream_converter_.reset(
new FFmpegH265ToAnnexBBitstreamConverter(stream_->codec));
@@ -1078,7 +1079,7 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
if (video_stream)
continue;
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
if (stream->codec->codec_id == AV_CODEC_ID_HEVC) {
// If ffmpeg is built without HEVC parser/decoder support, it will be
// able to demux HEVC based solely on container-provided information,
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
index 2d1a868..6afdc75 100644
--- a/media/filters/ffmpeg_demuxer_unittest.cc
+++ b/media/filters/ffmpeg_demuxer_unittest.cc
@@ -1117,7 +1117,7 @@ TEST_F(FFmpegDemuxerTest, NaturalSizeWithPASP) {
#endif
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
TEST_F(FFmpegDemuxerTest, HEVC_in_MP4_container) {
CreateDemuxer("bear-hevc-frag.mp4");
InitializeDemuxer();
diff --git a/media/filters/stream_parser_factory.cc b/media/filters/stream_parser_factory.cc
index 43e0079..87b8454 100644
--- a/media/filters/stream_parser_factory.cc
+++ b/media/filters/stream_parser_factory.cc
@@ -155,7 +155,7 @@ static const CodecInfo kH264AVC1CodecInfo = { "avc1.*", CodecInfo::VIDEO, NULL,
CodecInfo::HISTOGRAM_H264 };
static const CodecInfo kH264AVC3CodecInfo = { "avc3.*", CodecInfo::VIDEO, NULL,
CodecInfo::HISTOGRAM_H264 };
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
static const CodecInfo kHEVCHEV1CodecInfo = { "hev1.*", CodecInfo::VIDEO, NULL,
CodecInfo::HISTOGRAM_HEVC };
static const CodecInfo kHEVCHVC1CodecInfo = { "hvc1.*", CodecInfo::VIDEO, NULL,
@@ -189,16 +189,11 @@ static const CodecInfo kEAC3CodecInfo3 = {"mp4a.A6", CodecInfo::AUDIO, NULL,
#endif
static const CodecInfo* kVideoMP4Codecs[] = {
- &kH264AVC1CodecInfo,
- &kH264AVC3CodecInfo,
-#if defined(ENABLE_HEVC_DEMUXING)
- &kHEVCHEV1CodecInfo,
- &kHEVCHVC1CodecInfo,
+ &kH264AVC1CodecInfo, &kH264AVC3CodecInfo,
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
+ &kHEVCHEV1CodecInfo, &kHEVCHVC1CodecInfo,
#endif
- &kMPEG4AACCodecInfo,
- &kMPEG2AACLCCodecInfo,
- NULL
-};
+ &kMPEG4AACCodecInfo, &kMPEG2AACLCCodecInfo, NULL};
static const CodecInfo* kAudioMP4Codecs[] = {&kMPEG4AACCodecInfo,
&kMPEG2AACLCCodecInfo,
diff --git a/media/formats/mp4/box_definitions.cc b/media/formats/mp4/box_definitions.cc
index e448b1a..fa76eb2 100644
--- a/media/formats/mp4/box_definitions.cc
+++ b/media/formats/mp4/box_definitions.cc
@@ -12,8 +12,9 @@
#include "media/formats/mp4/avc.h"
#include "media/formats/mp4/es_descriptor.h"
#include "media/formats/mp4/rcheck.h"
+#include "media/media_features.h"
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
#include "media/formats/mp4/hevc.h"
#endif
@@ -484,7 +485,7 @@ bool IsFormatValidH264(const FourCC& format,
sinf.format.format == FOURCC_AVC3));
}
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
bool IsFormatValidHEVC(const FourCC& format,
const ProtectionSchemeInfo& sinf) {
return format == FOURCC_HEV1 || format == FOURCC_HVC1 ||
@@ -526,7 +527,7 @@ bool VideoSampleEntry::Parse(BoxReader* reader) {
make_scoped_refptr(new AVCBitstreamConverter(std::move(avcConfig)));
video_codec = kCodecH264;
video_codec_profile = H264PROFILE_MAIN;
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
} else if (IsFormatValidHEVC(format, sinf)) {
DVLOG(2) << __FUNCTION__
<< " parsing HEVCDecoderConfigurationRecord (hvcC)";
@@ -549,7 +550,7 @@ bool VideoSampleEntry::Parse(BoxReader* reader) {
}
bool VideoSampleEntry::IsFormatValid() const {
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
if (IsFormatValidHEVC(format, sinf))
return true;
#endif
diff --git a/media/formats/mp4/fourccs.h b/media/formats/mp4/fourccs.h
index 38834fb..ee722f3 100644
--- a/media/formats/mp4/fourccs.h
+++ b/media/formats/mp4/fourccs.h
@@ -37,7 +37,7 @@ enum FourCC {
FOURCC_FTYP = 0x66747970,
FOURCC_HDLR = 0x68646c72,
FOURCC_HINT = 0x68696e74,
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
FOURCC_HEV1 = 0x68657631,
FOURCC_HVC1 = 0x68766331,
FOURCC_HVCC = 0x68766343,
diff --git a/media/formats/mp4/mp4_stream_parser_unittest.cc b/media/formats/mp4/mp4_stream_parser_unittest.cc
index eec9824..36c762e 100644
--- a/media/formats/mp4/mp4_stream_parser_unittest.cc
+++ b/media/formats/mp4/mp4_stream_parser_unittest.cc
@@ -300,7 +300,7 @@ TEST_F(MP4StreamParserTest, VideoSamplesStartWithAUDs) {
ParseMP4File("bear-1280x720-av_with-aud-nalus_frag.mp4", 512);
}
-#if defined(ENABLE_HEVC_DEMUXING)
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
TEST_F(MP4StreamParserTest, HEVC_in_MP4_container) {
InitializeParserAndExpectLiveness(DemuxerStream::LIVENESS_RECORDED);
scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("bear-hevc-frag.mp4");
diff --git a/media/media.gyp b/media/media.gyp
index 23b01df..08cd4c9 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -37,17 +37,14 @@
# Enable AC3/EAC3 audio demuxing. Actual decoding must be provided by
# the platform (or HDMI sink in Chromecast for audio pass-through case).
'enable_ac3_eac3_audio_demuxing%': 1,
- 'enable_mse_mpeg2ts_stream_parser%': 1,
- }, {
- 'enable_ac3_eac3_audio_demuxing%': 0,
- 'enable_mse_mpeg2ts_stream_parser%': 0,
- }],
- ['chromecast==1', {
# Enable HEVC/H265 demuxing. Actual decoding must be provided by the
# platform.
'enable_hevc_demuxing%': 1,
+ 'enable_mse_mpeg2ts_stream_parser%': 1,
}, {
+ 'enable_ac3_eac3_audio_demuxing%': 0,
'enable_hevc_demuxing%': 0,
+ 'enable_mse_mpeg2ts_stream_parser%': 0,
}],
],
},
@@ -64,6 +61,7 @@
'buildflag_header_path': 'media/media_features.h',
'buildflag_flags': [
"ENABLE_AC3_EAC3_AUDIO_DEMUXING=<(enable_ac3_eac3_audio_demuxing)",
+ "ENABLE_HEVC_DEMUXING=<(enable_hevc_demuxing)",
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=<(enable_mse_mpeg2ts_stream_parser)",
],
},
@@ -1124,9 +1122,6 @@
],
}],
['proprietary_codecs==1 and enable_hevc_demuxing==1', {
- 'defines': [
- 'ENABLE_HEVC_DEMUXING'
- ],
'sources': [
'filters/h265_parser.cc',
'filters/h265_parser.h',
@@ -1354,9 +1349,6 @@
],
}],
['proprietary_codecs==1 and enable_hevc_demuxing==1', {
- 'defines': [
- 'ENABLE_HEVC_DEMUXING'
- ],
'sources': [
'filters/h265_parser_unittest.cc',
],
diff --git a/media/media_options.gni b/media/media_options.gni
index 635c4d2..19067b1 100644
--- a/media/media_options.gni
+++ b/media/media_options.gni
@@ -58,7 +58,7 @@ declare_args() {
# Enable HEVC/H265 demuxing. Actual decoding must be provided by the
# platform. Enable by default for Chromecast.
- enable_hevc_demuxing = is_chromecast
+ enable_hevc_demuxing = proprietary_codecs && is_chromecast
# Experiment to enable mojo media application: http://crbug.com/431776
# Valid options are: