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

Side by Side Diff: media/mojo/common/media_type_converters.cc

Issue 2008193002: Change mojo geometry structs from using type converters to StructTraits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 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
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 "media/mojo/common/media_type_converters.h" 5 #include "media/mojo/common/media_type_converters.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/numerics/safe_conversions.h" 11 #include "base/numerics/safe_conversions.h"
12 #include "media/base/audio_buffer.h" 12 #include "media/base/audio_buffer.h"
13 #include "media/base/audio_decoder_config.h" 13 #include "media/base/audio_decoder_config.h"
14 #include "media/base/buffering_state.h" 14 #include "media/base/buffering_state.h"
15 #include "media/base/cdm_config.h" 15 #include "media/base/cdm_config.h"
16 #include "media/base/cdm_key_information.h" 16 #include "media/base/cdm_key_information.h"
17 #include "media/base/decode_status.h" 17 #include "media/base/decode_status.h"
18 #include "media/base/decoder_buffer.h" 18 #include "media/base/decoder_buffer.h"
19 #include "media/base/decrypt_config.h" 19 #include "media/base/decrypt_config.h"
20 #include "media/base/decryptor.h" 20 #include "media/base/decryptor.h"
21 #include "media/base/demuxer_stream.h" 21 #include "media/base/demuxer_stream.h"
22 #include "media/base/encryption_scheme.h" 22 #include "media/base/encryption_scheme.h"
23 #include "media/base/media_keys.h" 23 #include "media/base/media_keys.h"
24 #include "media/base/video_decoder_config.h" 24 #include "media/base/video_decoder_config.h"
25 #include "media/base/video_frame.h" 25 #include "media/base/video_frame.h"
26 #include "media/mojo/common/mojo_shared_buffer_video_frame.h" 26 #include "media/mojo/common/mojo_shared_buffer_video_frame.h"
27 #include "media/mojo/interfaces/demuxer_stream.mojom.h" 27 #include "media/mojo/interfaces/demuxer_stream.mojom.h"
28 #include "mojo/public/cpp/system/buffer.h" 28 #include "mojo/public/cpp/system/buffer.h"
29 #include "ui/gfx/geometry/mojo/geometry_type_converters.h"
30 29
31 namespace mojo { 30 namespace mojo {
32 31
33 #define ASSERT_ENUM_EQ(media_enum, media_prefix, mojo_prefix, value) \ 32 #define ASSERT_ENUM_EQ(media_enum, media_prefix, mojo_prefix, value) \
34 static_assert(media::media_prefix##value == \ 33 static_assert(media::media_prefix##value == \
35 static_cast<media::media_enum>( \ 34 static_cast<media::media_enum>( \
36 media::mojom::media_enum::mojo_prefix##value), \ 35 media::mojom::media_enum::mojo_prefix##value), \
37 "Mismatched enum: " #media_prefix #value " != " #media_enum \ 36 "Mismatched enum: " #media_prefix #value " != " #media_enum \
38 "::" #mojo_prefix #value) 37 "::" #mojo_prefix #value)
39 38
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 TypeConverter<media::mojom::VideoDecoderConfigPtr, media::VideoDecoderConfig>:: 543 TypeConverter<media::mojom::VideoDecoderConfigPtr, media::VideoDecoderConfig>::
545 Convert(const media::VideoDecoderConfig& input) { 544 Convert(const media::VideoDecoderConfig& input) {
546 media::mojom::VideoDecoderConfigPtr config( 545 media::mojom::VideoDecoderConfigPtr config(
547 media::mojom::VideoDecoderConfig::New()); 546 media::mojom::VideoDecoderConfig::New());
548 config->codec = static_cast<media::mojom::VideoCodec>(input.codec()); 547 config->codec = static_cast<media::mojom::VideoCodec>(input.codec());
549 config->profile = 548 config->profile =
550 static_cast<media::mojom::VideoCodecProfile>(input.profile()); 549 static_cast<media::mojom::VideoCodecProfile>(input.profile());
551 config->format = static_cast<media::mojom::VideoFormat>(input.format()); 550 config->format = static_cast<media::mojom::VideoFormat>(input.format());
552 config->color_space = 551 config->color_space =
553 static_cast<media::mojom::ColorSpace>(input.color_space()); 552 static_cast<media::mojom::ColorSpace>(input.color_space());
554 config->coded_size = Size::From(input.coded_size()); 553 config->coded_size = input.coded_size();
555 config->visible_rect = Rect::From(input.visible_rect()); 554 config->visible_rect = input.visible_rect();
556 config->natural_size = Size::From(input.natural_size()); 555 config->natural_size = input.natural_size();
557 if (!input.extra_data().empty()) { 556 if (!input.extra_data().empty()) {
558 config->extra_data = mojo::Array<uint8_t>::From(input.extra_data()); 557 config->extra_data = mojo::Array<uint8_t>::From(input.extra_data());
559 } 558 }
560 config->encryption_scheme = 559 config->encryption_scheme =
561 media::mojom::EncryptionScheme::From(input.encryption_scheme()); 560 media::mojom::EncryptionScheme::From(input.encryption_scheme());
562 return config; 561 return config;
563 } 562 }
564 563
565 // static 564 // static
566 media::VideoDecoderConfig 565 media::VideoDecoderConfig
567 TypeConverter<media::VideoDecoderConfig, media::mojom::VideoDecoderConfigPtr>:: 566 TypeConverter<media::VideoDecoderConfig, media::mojom::VideoDecoderConfigPtr>::
568 Convert(const media::mojom::VideoDecoderConfigPtr& input) { 567 Convert(const media::mojom::VideoDecoderConfigPtr& input) {
569 media::VideoDecoderConfig config; 568 media::VideoDecoderConfig config;
570 config.Initialize( 569 config.Initialize(static_cast<media::VideoCodec>(input->codec),
571 static_cast<media::VideoCodec>(input->codec), 570 static_cast<media::VideoCodecProfile>(input->profile),
572 static_cast<media::VideoCodecProfile>(input->profile), 571 static_cast<media::VideoPixelFormat>(input->format),
573 static_cast<media::VideoPixelFormat>(input->format), 572 static_cast<media::ColorSpace>(input->color_space),
574 static_cast<media::ColorSpace>(input->color_space), 573 input->coded_size, input->visible_rect, input->natural_size,
575 input->coded_size.To<gfx::Size>(), input->visible_rect.To<gfx::Rect>(), 574 input->extra_data.storage(),
576 input->natural_size.To<gfx::Size>(), input->extra_data.storage(), 575 input->encryption_scheme.To<media::EncryptionScheme>());
577 input->encryption_scheme.To<media::EncryptionScheme>());
578 return config; 576 return config;
579 } 577 }
580 578
581 // static 579 // static
582 media::mojom::CdmKeyInformationPtr TypeConverter< 580 media::mojom::CdmKeyInformationPtr TypeConverter<
583 media::mojom::CdmKeyInformationPtr, 581 media::mojom::CdmKeyInformationPtr,
584 media::CdmKeyInformation>::Convert(const media::CdmKeyInformation& input) { 582 media::CdmKeyInformation>::Convert(const media::CdmKeyInformation& input) {
585 media::mojom::CdmKeyInformationPtr info( 583 media::mojom::CdmKeyInformationPtr info(
586 media::mojom::CdmKeyInformation::New()); 584 media::mojom::CdmKeyInformation::New());
587 std::vector<uint8_t> key_id_copy(input.key_id); 585 std::vector<uint8_t> key_id_copy(input.key_id);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 input->storage_type()); 686 input->storage_type());
689 media::MojoSharedBufferVideoFrame* input_frame = 687 media::MojoSharedBufferVideoFrame* input_frame =
690 static_cast<media::MojoSharedBufferVideoFrame*>(input.get()); 688 static_cast<media::MojoSharedBufferVideoFrame*>(input.get());
691 mojo::ScopedSharedBufferHandle duplicated_handle; 689 mojo::ScopedSharedBufferHandle duplicated_handle;
692 const MojoResult result = 690 const MojoResult result =
693 DuplicateBuffer(input_frame->Handle(), nullptr, &duplicated_handle); 691 DuplicateBuffer(input_frame->Handle(), nullptr, &duplicated_handle);
694 CHECK_EQ(MOJO_RESULT_OK, result); 692 CHECK_EQ(MOJO_RESULT_OK, result);
695 CHECK(duplicated_handle.is_valid()); 693 CHECK(duplicated_handle.is_valid());
696 694
697 frame->format = static_cast<media::mojom::VideoFormat>(input->format()); 695 frame->format = static_cast<media::mojom::VideoFormat>(input->format());
698 frame->coded_size = Size::From(input->coded_size()); 696 frame->coded_size = input->coded_size();
699 frame->visible_rect = Rect::From(input->visible_rect()); 697 frame->visible_rect = input->visible_rect();
700 frame->natural_size = Size::From(input->natural_size()); 698 frame->natural_size = input->natural_size();
701 frame->timestamp_usec = input->timestamp().InMicroseconds(); 699 frame->timestamp_usec = input->timestamp().InMicroseconds();
702 frame->frame_data = std::move(duplicated_handle); 700 frame->frame_data = std::move(duplicated_handle);
703 frame->frame_data_size = input_frame->MappedSize(); 701 frame->frame_data_size = input_frame->MappedSize();
704 frame->y_stride = input_frame->stride(media::VideoFrame::kYPlane); 702 frame->y_stride = input_frame->stride(media::VideoFrame::kYPlane);
705 frame->u_stride = input_frame->stride(media::VideoFrame::kUPlane); 703 frame->u_stride = input_frame->stride(media::VideoFrame::kUPlane);
706 frame->v_stride = input_frame->stride(media::VideoFrame::kVPlane); 704 frame->v_stride = input_frame->stride(media::VideoFrame::kVPlane);
707 frame->y_offset = input_frame->PlaneOffset(media::VideoFrame::kYPlane); 705 frame->y_offset = input_frame->PlaneOffset(media::VideoFrame::kYPlane);
708 frame->u_offset = input_frame->PlaneOffset(media::VideoFrame::kUPlane); 706 frame->u_offset = input_frame->PlaneOffset(media::VideoFrame::kUPlane);
709 frame->v_offset = input_frame->PlaneOffset(media::VideoFrame::kVPlane); 707 frame->v_offset = input_frame->PlaneOffset(media::VideoFrame::kVPlane);
710 return frame; 708 return frame;
711 } 709 }
712 710
713 // static 711 // static
714 scoped_refptr<media::VideoFrame> 712 scoped_refptr<media::VideoFrame>
715 TypeConverter<scoped_refptr<media::VideoFrame>, media::mojom::VideoFramePtr>:: 713 TypeConverter<scoped_refptr<media::VideoFrame>, media::mojom::VideoFramePtr>::
716 Convert(const media::mojom::VideoFramePtr& input) { 714 Convert(const media::mojom::VideoFramePtr& input) {
717 if (input->end_of_stream) 715 if (input->end_of_stream)
718 return media::VideoFrame::CreateEOSFrame(); 716 return media::VideoFrame::CreateEOSFrame();
719 717
720 return media::MojoSharedBufferVideoFrame::Create( 718 return media::MojoSharedBufferVideoFrame::Create(
721 static_cast<media::VideoPixelFormat>(input->format), 719 static_cast<media::VideoPixelFormat>(input->format), input->coded_size,
722 input->coded_size.To<gfx::Size>(), input->visible_rect.To<gfx::Rect>(), 720 input->visible_rect, input->natural_size, std::move(input->frame_data),
723 input->natural_size.To<gfx::Size>(), std::move(input->frame_data),
724 base::saturated_cast<size_t>(input->frame_data_size), 721 base::saturated_cast<size_t>(input->frame_data_size),
725 base::saturated_cast<size_t>(input->y_offset), 722 base::saturated_cast<size_t>(input->y_offset),
726 base::saturated_cast<size_t>(input->u_offset), 723 base::saturated_cast<size_t>(input->u_offset),
727 base::saturated_cast<size_t>(input->v_offset), input->y_stride, 724 base::saturated_cast<size_t>(input->v_offset), input->y_stride,
728 input->u_stride, input->v_stride, 725 input->u_stride, input->v_stride,
729 base::TimeDelta::FromMicroseconds(input->timestamp_usec)); 726 base::TimeDelta::FromMicroseconds(input->timestamp_usec));
730 } 727 }
731 728
732 } // namespace mojo 729 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698