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

Unified Diff: chromecast/media/cma/ipc_streamer/decoder_buffer_base_marshaller.cc

Issue 2300993003: CmaRenderer is dead. Long live MojoRenderer. (Closed)
Patch Set: update OWNERS file Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chromecast/media/cma/ipc_streamer/decoder_buffer_base_marshaller.cc
diff --git a/chromecast/media/cma/ipc_streamer/decoder_buffer_base_marshaller.cc b/chromecast/media/cma/ipc_streamer/decoder_buffer_base_marshaller.cc
deleted file mode 100644
index 8d6a9e03ced81d6ee53f573dd2a6c7087774ec36..0000000000000000000000000000000000000000
--- a/chromecast/media/cma/ipc_streamer/decoder_buffer_base_marshaller.cc
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright 2014 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 "chromecast/media/cma/ipc_streamer/decoder_buffer_base_marshaller.h"
-
-#include <stddef.h>
-#include <stdint.h>
-#include <utility>
-
-#include "base/logging.h"
-#include "base/macros.h"
-#include "chromecast/media/cma/base/cast_decrypt_config_impl.h"
-#include "chromecast/media/cma/base/decoder_buffer_base.h"
-#include "chromecast/media/cma/ipc/media_message.h"
-#include "chromecast/media/cma/ipc/media_message_type.h"
-#include "chromecast/media/cma/ipc_streamer/decrypt_config_marshaller.h"
-#include "chromecast/public/media/cast_decrypt_config.h"
-#include "media/base/decoder_buffer.h"
-#include "media/base/decrypt_config.h"
-
-namespace chromecast {
-namespace media {
-
-namespace {
-const size_t kMaxFrameSize = 4 * 1024 * 1024;
-
-class DecoderBufferFromMsg : public DecoderBufferBase {
- public:
- explicit DecoderBufferFromMsg(std::unique_ptr<MediaMessage> msg);
-
- void Initialize();
-
- // DecoderBufferBase implementation.
- StreamId stream_id() const override;
- int64_t timestamp() const override;
- void set_timestamp(base::TimeDelta timestamp) override;
- const uint8_t* data() const override;
- uint8_t* writable_data() const override;
- size_t data_size() const override;
- const CastDecryptConfig* decrypt_config() const override;
- bool end_of_stream() const override;
- scoped_refptr<::media::DecoderBuffer> ToMediaBuffer() const override;
-
- private:
- ~DecoderBufferFromMsg() override;
-
- // Indicates whether this is an end of stream frame.
- bool is_eos_;
-
- // Stream Id this decoder buffer belongs to.
- StreamId stream_id_;
-
- // Frame timestamp.
- base::TimeDelta pts_;
-
- // CENC parameters.
- std::unique_ptr<CastDecryptConfig> decrypt_config_;
-
- // Size of the frame.
- size_t data_size_;
-
- // Keeps the message since frame data is not copied.
- std::unique_ptr<MediaMessage> msg_;
- uint8_t* data_;
-
- DISALLOW_COPY_AND_ASSIGN(DecoderBufferFromMsg);
-};
-
-DecoderBufferFromMsg::DecoderBufferFromMsg(std::unique_ptr<MediaMessage> msg)
- : is_eos_(true), stream_id_(kPrimary), msg_(std::move(msg)), data_(NULL) {
- CHECK(msg_);
-}
-
-DecoderBufferFromMsg::~DecoderBufferFromMsg() {
-}
-
-void DecoderBufferFromMsg::Initialize() {
- CHECK_EQ(msg_->type(), FrameMediaMsg);
-
- CHECK(msg_->ReadPod(&is_eos_));
- if (is_eos_)
- return;
-
- CHECK(msg_->ReadPod(&stream_id_));
-
- int64_t pts_internal = 0;
- CHECK(msg_->ReadPod(&pts_internal));
- pts_ = base::TimeDelta::FromMicroseconds(pts_internal);
-
- bool has_decrypt_config = false;
- CHECK(msg_->ReadPod(&has_decrypt_config));
- if (has_decrypt_config)
- decrypt_config_.reset(DecryptConfigMarshaller::Read(msg_.get()).release());
-
- CHECK(msg_->ReadPod(&data_size_));
- CHECK_GT(data_size_, 0u);
- CHECK_LT(data_size_, kMaxFrameSize);
-
- // Get a pointer to the frame data inside the message.
- // Avoid copying the frame data here.
- data_ = static_cast<uint8_t*>(msg_->GetWritableBuffer(data_size_));
- CHECK(data_);
-
- if (decrypt_config_) {
- uint32_t subsample_total_size = 0;
- for (size_t k = 0; k < decrypt_config_->subsamples().size(); k++) {
- subsample_total_size += decrypt_config_->subsamples()[k].clear_bytes;
- subsample_total_size += decrypt_config_->subsamples()[k].cypher_bytes;
- }
- CHECK_EQ(subsample_total_size, data_size_);
- }
-}
-
-StreamId DecoderBufferFromMsg::stream_id() const {
- return stream_id_;
-}
-
-int64_t DecoderBufferFromMsg::timestamp() const {
- return pts_.InMicroseconds();
-}
-
-void DecoderBufferFromMsg::set_timestamp(base::TimeDelta timestamp) {
- pts_ = timestamp;
-}
-
-const uint8_t* DecoderBufferFromMsg::data() const {
- CHECK(msg_->IsSerializedMsgAvailable());
- return data_;
-}
-
-uint8_t* DecoderBufferFromMsg::writable_data() const {
- CHECK(msg_->IsSerializedMsgAvailable());
- return data_;
-}
-
-size_t DecoderBufferFromMsg::data_size() const {
- return data_size_;
-}
-
-const CastDecryptConfig* DecoderBufferFromMsg::decrypt_config() const {
- return decrypt_config_.get();
-}
-
-bool DecoderBufferFromMsg::end_of_stream() const {
- return is_eos_;
-}
-
-scoped_refptr<::media::DecoderBuffer>
-DecoderBufferFromMsg::ToMediaBuffer() const {
- if (is_eos_)
- return ::media::DecoderBuffer::CreateEOSBuffer();
-
- scoped_refptr<::media::DecoderBuffer> copy =
- ::media::DecoderBuffer::CopyFrom(data(), data_size());
- copy->set_timestamp(base::TimeDelta::FromMicroseconds(timestamp()));
- return copy;
-}
-
-} // namespace
-
-// static
-void DecoderBufferBaseMarshaller::Write(
- const scoped_refptr<DecoderBufferBase>& buffer,
- MediaMessage* msg) {
- CHECK(msg->WritePod(buffer->end_of_stream()));
- if (buffer->end_of_stream())
- return;
-
- CHECK(msg->WritePod(buffer->stream_id()));
- CHECK(msg->WritePod(buffer->timestamp()));
-
- bool has_decrypt_config = buffer->decrypt_config() != nullptr;
- CHECK(msg->WritePod(has_decrypt_config));
-
- if (has_decrypt_config)
- DecryptConfigMarshaller::Write(*buffer->decrypt_config(), msg);
-
- CHECK(msg->WritePod(buffer->data_size()));
- CHECK(msg->WriteBuffer(buffer->data(), buffer->data_size()));
-}
-
-// static
-scoped_refptr<DecoderBufferBase> DecoderBufferBaseMarshaller::Read(
- std::unique_ptr<MediaMessage> msg) {
- scoped_refptr<DecoderBufferFromMsg> buffer(
- new DecoderBufferFromMsg(std::move(msg)));
- buffer->Initialize();
- return buffer;
-}
-
-} // namespace media
-} // namespace chromecast

Powered by Google App Engine
This is Rietveld 408576698