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

Side by Side Diff: chromecast/media/cma/base/decoder_config_adapter.cc

Issue 1074383002: Introduce VideoConfig/AudioConfig class for CMA backend (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Util function name change Created 5 years, 7 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
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chromecast/media/cma/base/decoder_config_adapter.h"
6
7 #include "base/logging.h"
8 #include "media/base/channel_layout.h"
9
10 namespace chromecast {
11 namespace media {
12
13 namespace {
14
15 // Converts ::media::AudioCodec to chromecast::media::AudioCodec. Any unknown or
16 // unsupported codec will be converted to chromecast::media::kCodecUnknown.
17 AudioCodec ToAudioCodec(const ::media::AudioCodec audio_codec) {
18 switch (audio_codec) {
19 case ::media::kCodecAAC:
20 return kCodecAAC;
21 case ::media::kCodecMP3:
22 return kCodecMP3;
23 case ::media::kCodecPCM:
24 return kCodecPCM;
25 case ::media::kCodecPCM_S16BE:
26 return kCodecPCM_S16BE;
27 case ::media::kCodecVorbis:
28 return kCodecVorbis;
29 default:
30 LOG(INFO) << "Unsupported audio codec " << audio_codec;
gunsch-google 2015/05/06 01:32:42 should these be LOG(ERROR)s? I looked back and the
erickung1 2015/05/06 03:01:33 Sure, I'll make this and line #46 to Error, but le
31 }
32 return kAudioCodecUnknown;
33 }
34
35 // Converts ::media::VideoCodec to chromecast::media::VideoCodec. Any unknown or
36 // unsupported codec will be converted to chromecast::media::kCodecUnknown.
37 VideoCodec ToVideoCodec(const ::media::VideoCodec video_codec) {
38 switch (video_codec) {
39 case ::media::kCodecH264:
40 return kCodecH264;
41 case ::media::kCodecVP8:
42 return kCodecVP8;
43 case ::media::kCodecVP9:
44 return kCodecVP9;
45 default:
46 LOG(INFO) << "Unsupported video codec " << video_codec;
47 }
48 return kVideoCodecUnknown;
49 }
50
51 // Converts ::media::VideoCodecProfile to chromecast::media::VideoProfile.
52 VideoProfile ToVideoProfile(const ::media::VideoCodecProfile codec_profile) {
53 switch(codec_profile) {
54 case ::media::H264PROFILE_BASELINE:
55 return kH264Baseline;
56 case ::media::H264PROFILE_MAIN:
57 return kH264Main;
58 case ::media::H264PROFILE_EXTENDED:
59 return kH264Extended;
60 case ::media::H264PROFILE_HIGH:
61 return kH264High;
62 case ::media::H264PROFILE_HIGH10PROFILE:
63 return kH264High10;
64 case ::media::H264PROFILE_HIGH422PROFILE:
65 return kH264High422;
66 case ::media::H264PROFILE_HIGH444PREDICTIVEPROFILE:
67 return kH264High444Predictive;
68 case ::media::H264PROFILE_SCALABLEBASELINE:
69 return kH264ScalableBaseline;
70 case ::media::H264PROFILE_SCALABLEHIGH:
71 return kH264ScalableHigh;
72 case ::media::H264PROFILE_STEREOHIGH:
73 return kH264Stereohigh;
74 case ::media::H264PROFILE_MULTIVIEWHIGH:
75 return kH264MultiviewHigh;
76 case ::media::VP8PROFILE_ANY:
77 return kVP8ProfileAny;
78 case ::media::VP9PROFILE_ANY:
79 return kVP9ProfileAny;
80 default:
81 LOG(INFO) << "Unsupported video codec profile " << codec_profile;
82 }
83 return kVideoProfileUnknown;
84 }
85
86 } // namespace
87
88 // static
89 AudioConfig DecoderConfigAdapter::ToCastAudioConfig(
90 const ::media::AudioDecoderConfig& config) {
91 AudioConfig audio_config;
92 if (!config.IsValidConfig()) {
93 return audio_config;
94 }
95
96 audio_config.codec = ToAudioCodec(config.codec());
97 audio_config.bytes_per_channel = config.bytes_per_channel();
98 audio_config.channel_number =
99 ::media::ChannelLayoutToChannelCount(config.channel_layout()),
100 audio_config.samples_per_second = config.samples_per_second();
101 audio_config.extra_data = (config.extra_data_size() > 0) ?
102 config.extra_data() : nullptr;
103 audio_config.extra_data_size = config.extra_data_size();
104 audio_config.is_encrypted = config.is_encrypted();
105 return audio_config;
106 }
107
108 // static
109 VideoConfig DecoderConfigAdapter::ToCastVideoConfig(
110 const ::media::VideoDecoderConfig& config) {
111 VideoConfig video_config;
112 if (!config.IsValidConfig()) {
113 return video_config;
114 }
115
116 video_config.codec = ToVideoCodec(config.codec());
117 video_config.profile = ToVideoProfile(config.profile());
118 video_config.extra_data = (config.extra_data_size() > 0) ?
119 config.extra_data() : nullptr;
120 video_config.extra_data_size = config.extra_data_size();
121 video_config.is_encrypted = config.is_encrypted();
122 return video_config;
123 }
124
125 } // namespace media
126 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698