123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- // Copyright 2015 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "media/cdm/cdm_helpers.h"
- #include "base/check.h"
- #include "ui/gfx/color_space.h"
- namespace media {
- namespace {
- // See ISO 23001-8:2016, section 7. Value 2 means "Unspecified".
- constexpr cdm::ColorSpace kUnspecifiedColorSpace = {2, 2, 2,
- cdm::ColorRange::kInvalid};
- gfx::ColorSpace::RangeID ToGfxColorSpaceRange(cdm::ColorRange range) {
- switch (range) {
- case cdm::ColorRange::kInvalid:
- return gfx::ColorSpace::RangeID::INVALID;
- case cdm::ColorRange::kLimited:
- return gfx::ColorSpace::RangeID::LIMITED;
- case cdm::ColorRange::kFull:
- return gfx::ColorSpace::RangeID::FULL;
- case cdm::ColorRange::kDerived:
- return gfx::ColorSpace::RangeID::DERIVED;
- }
- }
- } // namespace
- DecryptedBlockImpl::DecryptedBlockImpl() : buffer_(nullptr), timestamp_(0) {}
- DecryptedBlockImpl::~DecryptedBlockImpl() {
- if (buffer_)
- buffer_->Destroy();
- }
- void DecryptedBlockImpl::SetDecryptedBuffer(cdm::Buffer* buffer) {
- buffer_ = buffer;
- }
- cdm::Buffer* DecryptedBlockImpl::DecryptedBuffer() {
- return buffer_;
- }
- void DecryptedBlockImpl::SetTimestamp(int64_t timestamp) {
- timestamp_ = timestamp;
- }
- int64_t DecryptedBlockImpl::Timestamp() const {
- return timestamp_;
- }
- VideoFrameImpl::VideoFrameImpl()
- : format_(cdm::kUnknownVideoFormat),
- color_space_(kUnspecifiedColorSpace),
- frame_buffer_(nullptr),
- timestamp_(0) {
- for (uint32_t i = 0; i < cdm::kMaxPlanes; ++i) {
- plane_offsets_[i] = 0;
- strides_[i] = 0;
- }
- }
- VideoFrameImpl::~VideoFrameImpl() {
- if (frame_buffer_)
- frame_buffer_->Destroy();
- }
- void VideoFrameImpl::SetFormat(cdm::VideoFormat format) {
- format_ = format;
- }
- cdm::VideoFormat VideoFrameImpl::Format() const {
- return format_;
- }
- void VideoFrameImpl::SetSize(cdm::Size size) {
- size_ = size;
- }
- cdm::Size VideoFrameImpl::Size() const {
- return size_;
- }
- void VideoFrameImpl::SetFrameBuffer(cdm::Buffer* frame_buffer) {
- frame_buffer_ = frame_buffer;
- }
- cdm::Buffer* VideoFrameImpl::FrameBuffer() {
- return frame_buffer_;
- }
- void VideoFrameImpl::SetPlaneOffset(cdm::VideoPlane plane, uint32_t offset) {
- DCHECK(plane < cdm::kMaxPlanes);
- plane_offsets_[plane] = offset;
- }
- uint32_t VideoFrameImpl::PlaneOffset(cdm::VideoPlane plane) {
- DCHECK(plane < cdm::kMaxPlanes);
- return plane_offsets_[plane];
- }
- void VideoFrameImpl::SetStride(cdm::VideoPlane plane, uint32_t stride) {
- DCHECK(plane < cdm::kMaxPlanes);
- strides_[plane] = stride;
- }
- uint32_t VideoFrameImpl::Stride(cdm::VideoPlane plane) {
- DCHECK(plane < cdm::kMaxPlanes);
- return strides_[plane];
- }
- void VideoFrameImpl::SetTimestamp(int64_t timestamp) {
- timestamp_ = timestamp;
- }
- int64_t VideoFrameImpl::Timestamp() const {
- return timestamp_;
- }
- void VideoFrameImpl::SetColorSpace(cdm::ColorSpace color_space) {
- color_space_ = color_space;
- }
- media::VideoColorSpace VideoFrameImpl::MediaColorSpace() const {
- return media::VideoColorSpace(
- color_space_.primary_id, color_space_.transfer_id, color_space_.matrix_id,
- ToGfxColorSpaceRange(color_space_.range));
- }
- AudioFramesImpl::AudioFramesImpl()
- : buffer_(nullptr), format_(cdm::kUnknownAudioFormat) {}
- AudioFramesImpl::~AudioFramesImpl() {
- if (buffer_)
- buffer_->Destroy();
- }
- void AudioFramesImpl::SetFrameBuffer(cdm::Buffer* buffer) {
- buffer_ = buffer;
- }
- cdm::Buffer* AudioFramesImpl::FrameBuffer() {
- return buffer_;
- }
- void AudioFramesImpl::SetFormat(cdm::AudioFormat format) {
- format_ = format;
- }
- cdm::AudioFormat AudioFramesImpl::Format() const {
- return format_;
- }
- cdm::Buffer* AudioFramesImpl::PassFrameBuffer() {
- cdm::Buffer* temp_buffer = buffer_;
- buffer_ = nullptr;
- return temp_buffer;
- }
- } // namespace media
|