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

Side by Side Diff: media/base/video_decoder_config.cc

Issue 2333663003: Add color metadata info to VideoDecoderConfig. (Closed)
Patch Set: Commented the RangeID comment as suggested 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 unified diff | Download patch
« no previous file with comments | « media/base/video_decoder_config.h ('k') | media/formats/webm/webm_colour_parser.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/video_decoder_config.h" 5 #include "media/base/video_decoder_config.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "media/base/video_frame.h" 10 #include "media/base/video_frame.h"
11 #include "media/base/video_types.h"
11 12
12 namespace media { 13 namespace media {
13 14
14 VideoCodec VideoCodecProfileToVideoCodec(VideoCodecProfile profile) { 15 VideoCodec VideoCodecProfileToVideoCodec(VideoCodecProfile profile) {
15 switch (profile) { 16 switch (profile) {
16 case VIDEO_CODEC_PROFILE_UNKNOWN: 17 case VIDEO_CODEC_PROFILE_UNKNOWN:
17 return kUnknownVideoCodec; 18 return kUnknownVideoCodec;
18 case H264PROFILE_BASELINE: 19 case H264PROFILE_BASELINE:
19 case H264PROFILE_MAIN: 20 case H264PROFILE_MAIN:
20 case H264PROFILE_EXTENDED: 21 case H264PROFILE_EXTENDED:
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 const EncryptionScheme& encryption_scheme) { 61 const EncryptionScheme& encryption_scheme) {
61 Initialize(codec, profile, format, color_space, coded_size, visible_rect, 62 Initialize(codec, profile, format, color_space, coded_size, visible_rect,
62 natural_size, extra_data, encryption_scheme); 63 natural_size, extra_data, encryption_scheme);
63 } 64 }
64 65
65 VideoDecoderConfig::VideoDecoderConfig(const VideoDecoderConfig& other) = 66 VideoDecoderConfig::VideoDecoderConfig(const VideoDecoderConfig& other) =
66 default; 67 default;
67 68
68 VideoDecoderConfig::~VideoDecoderConfig() {} 69 VideoDecoderConfig::~VideoDecoderConfig() {}
69 70
71 void VideoDecoderConfig::set_color_space_info(
72 const gfx::ColorSpace& color_space_info) {
73 color_space_info_ = color_space_info;
74 }
75
76 gfx::ColorSpace VideoDecoderConfig::color_space_info() const {
77 return color_space_info_;
78 }
79
80 void VideoDecoderConfig::set_hdr_metadata(const HDRMetadata& hdr_metadata) {
81 hdr_metadata_ = hdr_metadata;
82 }
83
84 base::Optional<HDRMetadata> VideoDecoderConfig::hdr_metadata() const {
85 return hdr_metadata_;
86 }
87
70 void VideoDecoderConfig::Initialize(VideoCodec codec, 88 void VideoDecoderConfig::Initialize(VideoCodec codec,
71 VideoCodecProfile profile, 89 VideoCodecProfile profile,
72 VideoPixelFormat format, 90 VideoPixelFormat format,
73 ColorSpace color_space, 91 ColorSpace color_space,
74 const gfx::Size& coded_size, 92 const gfx::Size& coded_size,
75 const gfx::Rect& visible_rect, 93 const gfx::Rect& visible_rect,
76 const gfx::Size& natural_size, 94 const gfx::Size& natural_size,
77 const std::vector<uint8_t>& extra_data, 95 const std::vector<uint8_t>& extra_data,
78 const EncryptionScheme& encryption_scheme) { 96 const EncryptionScheme& encryption_scheme) {
79 codec_ = codec; 97 codec_ = codec;
80 profile_ = profile; 98 profile_ = profile;
81 format_ = format; 99 format_ = format;
82 color_space_ = color_space; 100 color_space_ = color_space;
83 coded_size_ = coded_size; 101 coded_size_ = coded_size;
84 visible_rect_ = visible_rect; 102 visible_rect_ = visible_rect;
85 natural_size_ = natural_size; 103 natural_size_ = natural_size;
86 extra_data_ = extra_data; 104 extra_data_ = extra_data;
87 encryption_scheme_ = encryption_scheme; 105 encryption_scheme_ = encryption_scheme;
106
107 switch (color_space) {
108 case ColorSpace::COLOR_SPACE_JPEG:
109 color_space_info_ = gfx::ColorSpace::CreateJpeg();
110 break;
111 case ColorSpace::COLOR_SPACE_HD_REC709:
112 color_space_info_ = gfx::ColorSpace::CreateREC709();
113 break;
114 case ColorSpace::COLOR_SPACE_SD_REC601:
115 color_space_info_ = gfx::ColorSpace::CreateREC601();
116 break;
117 case ColorSpace::COLOR_SPACE_UNSPECIFIED:
118 default:
119 break;
120 }
88 } 121 }
89 122
90 bool VideoDecoderConfig::IsValidConfig() const { 123 bool VideoDecoderConfig::IsValidConfig() const {
91 return codec_ != kUnknownVideoCodec && 124 return codec_ != kUnknownVideoCodec &&
92 natural_size_.width() > 0 && 125 natural_size_.width() > 0 &&
93 natural_size_.height() > 0 && 126 natural_size_.height() > 0 &&
94 VideoFrame::IsValidConfig(format_, VideoFrame::STORAGE_UNOWNED_MEMORY, 127 VideoFrame::IsValidConfig(format_, VideoFrame::STORAGE_UNOWNED_MEMORY,
95 coded_size_, visible_rect_, natural_size_); 128 coded_size_, visible_rect_, natural_size_);
96 } 129 }
97 130
(...skipping 15 matching lines...) Expand all
113 << " visible rect: [" << visible_rect().x() << "," << visible_rect().y() 146 << " visible rect: [" << visible_rect().x() << "," << visible_rect().y()
114 << "," << visible_rect().width() << "," << visible_rect().height() << "]" 147 << "," << visible_rect().width() << "," << visible_rect().height() << "]"
115 << " natural size: [" << natural_size().width() << "," 148 << " natural size: [" << natural_size().width() << ","
116 << natural_size().height() << "]" 149 << natural_size().height() << "]"
117 << " has extra data? " << (extra_data().empty() ? "false" : "true") 150 << " has extra data? " << (extra_data().empty() ? "false" : "true")
118 << " encrypted? " << (is_encrypted() ? "true" : "false"); 151 << " encrypted? " << (is_encrypted() ? "true" : "false");
119 return s.str(); 152 return s.str();
120 } 153 }
121 154
122 } // namespace media 155 } // namespace media
OLDNEW
« no previous file with comments | « media/base/video_decoder_config.h ('k') | media/formats/webm/webm_colour_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698