| Index: media/mojo/services/media_type_converters.cc
|
| diff --git a/media/mojo/services/media_type_converters.cc b/media/mojo/services/media_type_converters.cc
|
| index 07404f72fe72db408a9673e3f7dec4e38c1f44f3..b3de72dfa48b81bdfead6bab21d2b064ba8f523b 100644
|
| --- a/media/mojo/services/media_type_converters.cc
|
| +++ b/media/mojo/services/media_type_converters.cc
|
| @@ -9,9 +9,13 @@
|
| #include "media/base/buffering_state.h"
|
| #include "media/base/decoder_buffer.h"
|
| #include "media/base/demuxer_stream.h"
|
| +#include "media/base/video_decoder_config.h"
|
| #include "media/mojo/interfaces/demuxer_stream.mojom.h"
|
| #include "mojo/public/cpp/system/data_pipe.h"
|
|
|
| +// TODO(dalecurtis): This violates checkdeps rules... not sure what to do.
|
| +#include "mojo/converters/geometry/geometry_type_converters.h"
|
| +
|
| namespace mojo {
|
|
|
| #define ASSERT_ENUM_EQ(media_enum, media_prefix, mojo_prefix, value) \
|
| @@ -98,32 +102,34 @@ ASSERT_ENUM_EQ(SampleFormat, kSampleFormat, SAMPLE_FORMAT_, Max);
|
| // DemuxerStream Type.
|
| COMPILE_ASSERT(media::DemuxerStream::UNKNOWN ==
|
| static_cast<media::DemuxerStream::Type>(
|
| - mojo::DemuxerStream::TYPE_UNKNOWN),
|
| + DemuxerStream::TYPE_UNKNOWN),
|
| DemuxerStream_Type_enum_value_differs);
|
| COMPILE_ASSERT(media::DemuxerStream::AUDIO ==
|
| static_cast<media::DemuxerStream::Type>(
|
| - mojo::DemuxerStream::TYPE_AUDIO),
|
| + DemuxerStream::TYPE_AUDIO),
|
| DemuxerStream_Type_enum_value_differs);
|
| // Update this if new media::DemuxerStream::Type values are introduced.
|
| COMPILE_ASSERT(media::DemuxerStream::NUM_TYPES ==
|
| static_cast<media::DemuxerStream::Type>(
|
| - mojo::DemuxerStream::TYPE_LAST_TYPE + 3),
|
| + DemuxerStream::TYPE_LAST_TYPE + 3),
|
| DemuxerStream_Type_enum_value_differs);
|
|
|
| // DemuxerStream Status.
|
| COMPILE_ASSERT(media::DemuxerStream::kOk ==
|
| static_cast<media::DemuxerStream::Status>(
|
| - mojo::DemuxerStream::STATUS_OK),
|
| + DemuxerStream::STATUS_OK),
|
| DemuxerStream_Status_enum_value_differs);
|
| COMPILE_ASSERT(media::DemuxerStream::kAborted ==
|
| static_cast<media::DemuxerStream::Status>(
|
| - mojo::DemuxerStream::STATUS_ABORTED),
|
| + DemuxerStream::STATUS_ABORTED),
|
| DemuxerStream_Status_enum_value_differs);
|
| COMPILE_ASSERT(media::DemuxerStream::kConfigChanged ==
|
| static_cast<media::DemuxerStream::Status>(
|
| - mojo::DemuxerStream::STATUS_CONFIG_CHANGED),
|
| + DemuxerStream::STATUS_CONFIG_CHANGED),
|
| DemuxerStream_Status_enum_value_differs);
|
|
|
| +// TODO(dalecurtis): Add compile asserts for VideoDecoderConfig.
|
| +
|
| // static
|
| MediaDecoderBufferPtr TypeConverter<MediaDecoderBufferPtr,
|
| scoped_refptr<media::DecoderBuffer> >::Convert(
|
| @@ -219,12 +225,12 @@ scoped_refptr<media::DecoderBuffer> TypeConverter<
|
| AudioDecoderConfigPtr
|
| TypeConverter<AudioDecoderConfigPtr, media::AudioDecoderConfig>::Convert(
|
| const media::AudioDecoderConfig& input) {
|
| - mojo::AudioDecoderConfigPtr config(mojo::AudioDecoderConfig::New());
|
| - config->codec = static_cast<mojo::AudioCodec>(input.codec());
|
| + AudioDecoderConfigPtr config(AudioDecoderConfig::New());
|
| + config->codec = static_cast<AudioCodec>(input.codec());
|
| config->sample_format =
|
| - static_cast<mojo::SampleFormat>(input.sample_format());
|
| + static_cast<SampleFormat>(input.sample_format());
|
| config->channel_layout =
|
| - static_cast<mojo::ChannelLayout>(input.channel_layout());
|
| + static_cast<ChannelLayout>(input.channel_layout());
|
| config->samples_per_second = input.samples_per_second();
|
| if (input.extra_data()) {
|
| std::vector<uint8> data(input.extra_data(),
|
| @@ -255,4 +261,43 @@ TypeConverter<media::AudioDecoderConfig, AudioDecoderConfigPtr>::Convert(
|
| return config;
|
| }
|
|
|
| +// static
|
| +VideoDecoderConfigPtr
|
| +TypeConverter<VideoDecoderConfigPtr, media::VideoDecoderConfig>::Convert(
|
| + const media::VideoDecoderConfig& input) {
|
| + VideoDecoderConfigPtr config(VideoDecoderConfig::New());
|
| + config->codec = static_cast<VideoCodec>(input.codec());
|
| + config->profile = static_cast<VideoCodecProfile>(input.profile());
|
| + config->format = static_cast<VideoFormat>(input.format());
|
| + config->coded_size = Size::From(input.coded_size());
|
| + config->visible_rect = Rect::From(input.visible_rect());
|
| + config->natural_size = Size::From(input.natural_size());
|
| + if (input.extra_data()) {
|
| + std::vector<uint8> data(input.extra_data(),
|
| + input.extra_data() + input.extra_data_size());
|
| + config->extra_data.Swap(&data);
|
| + }
|
| + config->is_encrypted = input.is_encrypted();
|
| + return config.Pass();
|
| +}
|
| +
|
| +// static
|
| +media::VideoDecoderConfig
|
| +TypeConverter<media::VideoDecoderConfig, VideoDecoderConfigPtr>::Convert(
|
| + const VideoDecoderConfigPtr& input) {
|
| + media::VideoDecoderConfig config;
|
| + config.Initialize(
|
| + static_cast<media::VideoCodec>(input->codec),
|
| + static_cast<media::VideoCodecProfile>(input->profile),
|
| + static_cast<media::VideoFrame::Format>(input->format),
|
| + input->coded_size.To<gfx::Size>(),
|
| + input->visible_rect.To<gfx::Rect>(),
|
| + input->natural_size.To<gfx::Size>(),
|
| + input->extra_data.size() ? &input->extra_data.front() : NULL,
|
| + input->extra_data.size(),
|
| + input->is_encrypted,
|
| + false);
|
| + return config;
|
| +}
|
| +
|
| } // namespace mojo
|
|
|