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

Side by Side Diff: chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.cc

Issue 1490613005: media config: expand is_encrypted to a struct. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: one more tweak in chromecast/common Created 5 years 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.h" 5 #include "chromecast/media/cma/ipc_streamer/audio_decoder_config_marshaller.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "chromecast/media/cma/ipc/media_message.h" 11 #include "chromecast/media/cma/ipc/media_message.h"
12 #include "chromecast/media/cma/ipc_streamer/encryption_scheme_marshaller.h"
12 #include "media/base/audio_decoder_config.h" 13 #include "media/base/audio_decoder_config.h"
13 14
14 namespace chromecast { 15 namespace chromecast {
15 namespace media { 16 namespace media {
16 17
17 namespace { 18 namespace {
18 const size_t kMaxExtraDataSize = 16 * 1024; 19 const size_t kMaxExtraDataSize = 16 * 1024;
19 } 20 }
20 21
21 // static 22 // static
22 void AudioDecoderConfigMarshaller::Write( 23 void AudioDecoderConfigMarshaller::Write(
23 const ::media::AudioDecoderConfig& config, MediaMessage* msg) { 24 const ::media::AudioDecoderConfig& config, MediaMessage* msg) {
24 CHECK(msg->WritePod(config.codec())); 25 CHECK(msg->WritePod(config.codec()));
25 CHECK(msg->WritePod(config.channel_layout())); 26 CHECK(msg->WritePod(config.channel_layout()));
26 CHECK(msg->WritePod(config.samples_per_second())); 27 CHECK(msg->WritePod(config.samples_per_second()));
27 CHECK(msg->WritePod(config.sample_format())); 28 CHECK(msg->WritePod(config.sample_format()));
28 CHECK(msg->WritePod(config.is_encrypted())); 29 EncryptionSchemeMarshaller::Write(config.encryption_scheme(), msg);
29 CHECK(msg->WritePod(config.extra_data().size())); 30 CHECK(msg->WritePod(config.extra_data().size()));
30 if (!config.extra_data().empty()) 31 if (!config.extra_data().empty())
31 CHECK(msg->WriteBuffer(&config.extra_data()[0], 32 CHECK(msg->WriteBuffer(&config.extra_data()[0],
32 config.extra_data().size())); 33 config.extra_data().size()));
33 } 34 }
34 35
35 // static 36 // static
36 ::media::AudioDecoderConfig AudioDecoderConfigMarshaller::Read( 37 ::media::AudioDecoderConfig AudioDecoderConfigMarshaller::Read(
37 MediaMessage* msg) { 38 MediaMessage* msg) {
38 ::media::AudioCodec codec; 39 ::media::AudioCodec codec;
39 ::media::SampleFormat sample_format; 40 ::media::SampleFormat sample_format;
40 ::media::ChannelLayout channel_layout; 41 ::media::ChannelLayout channel_layout;
41 int samples_per_second; 42 int samples_per_second;
42 bool is_encrypted;
43 size_t extra_data_size; 43 size_t extra_data_size;
44 std::vector<uint8_t> extra_data; 44 std::vector<uint8_t> extra_data;
45 ::media::EncryptionScheme encryption_scheme;
45 46
46 CHECK(msg->ReadPod(&codec)); 47 CHECK(msg->ReadPod(&codec));
47 CHECK(msg->ReadPod(&channel_layout)); 48 CHECK(msg->ReadPod(&channel_layout));
48 CHECK(msg->ReadPod(&samples_per_second)); 49 CHECK(msg->ReadPod(&samples_per_second));
49 CHECK(msg->ReadPod(&sample_format)); 50 CHECK(msg->ReadPod(&sample_format));
50 CHECK(msg->ReadPod(&is_encrypted)); 51 encryption_scheme = EncryptionSchemeMarshaller::Read(msg);
51 CHECK(msg->ReadPod(&extra_data_size)); 52 CHECK(msg->ReadPod(&extra_data_size));
52 53
53 CHECK_GE(codec, ::media::kUnknownAudioCodec); 54 CHECK_GE(codec, ::media::kUnknownAudioCodec);
54 CHECK_LE(codec, ::media::kAudioCodecMax); 55 CHECK_LE(codec, ::media::kAudioCodecMax);
55 CHECK_GE(channel_layout, ::media::CHANNEL_LAYOUT_NONE); 56 CHECK_GE(channel_layout, ::media::CHANNEL_LAYOUT_NONE);
56 CHECK_LE(channel_layout, ::media::CHANNEL_LAYOUT_MAX); 57 CHECK_LE(channel_layout, ::media::CHANNEL_LAYOUT_MAX);
57 CHECK_GE(sample_format, ::media::kUnknownSampleFormat); 58 CHECK_GE(sample_format, ::media::kUnknownSampleFormat);
58 CHECK_LE(sample_format, ::media::kSampleFormatMax); 59 CHECK_LE(sample_format, ::media::kSampleFormatMax);
59 CHECK_LT(extra_data_size, kMaxExtraDataSize); 60 CHECK_LT(extra_data_size, kMaxExtraDataSize);
60 if (extra_data_size > 0) { 61 if (extra_data_size > 0) {
61 extra_data.resize(extra_data_size); 62 extra_data.resize(extra_data_size);
62 CHECK(msg->ReadBuffer(&extra_data[0], extra_data.size())); 63 CHECK(msg->ReadBuffer(&extra_data[0], extra_data.size()));
63 } 64 }
64 65
65 return ::media::AudioDecoderConfig( 66 return ::media::AudioDecoderConfig(
66 codec, sample_format, 67 codec, sample_format,
67 channel_layout, samples_per_second, 68 channel_layout, samples_per_second,
68 extra_data, is_encrypted); 69 extra_data, encryption_scheme);
69 } 70 }
70 71
71 } // namespace media 72 } // namespace media
72 } // namespace chromecast 73 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698