diff options
author | servolk <servolk@chromium.org> | 2016-01-12 15:09:36 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-12 23:12:02 +0000 |
commit | 8ce20c1dacac08e08e914fc7af10c60e0826e077 (patch) | |
tree | 3f46cab249e85ec7011ce1b2f9d7784e88531d95 | |
parent | 7f6ec1189d09fcf01cf6d4ea41ed43ec91dfdbac (diff) | |
download | chromium_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.cc | 2 | ||||
-rw-r--r-- | content/content_tests.gypi | 5 | ||||
-rw-r--r-- | content/test/BUILD.gn | 5 | ||||
-rw-r--r-- | media/BUILD.gn | 4 | ||||
-rw-r--r-- | media/base/mime_util.cc | 8 | ||||
-rw-r--r-- | media/ffmpeg/ffmpeg_common.cc | 4 | ||||
-rw-r--r-- | media/filters/ffmpeg_demuxer.cc | 7 | ||||
-rw-r--r-- | media/filters/ffmpeg_demuxer_unittest.cc | 2 | ||||
-rw-r--r-- | media/filters/stream_parser_factory.cc | 15 | ||||
-rw-r--r-- | media/formats/mp4/box_definitions.cc | 9 | ||||
-rw-r--r-- | media/formats/mp4/fourccs.h | 2 | ||||
-rw-r--r-- | media/formats/mp4/mp4_stream_parser_unittest.cc | 2 | ||||
-rw-r--r-- | media/media.gyp | 16 | ||||
-rw-r--r-- | media/media_options.gni | 2 |
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: |