#include "media/remoting/demuxer_stream_adapter.h"
#include <utility>
#include "base/base64.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/task/bind_post_task.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "media/base/decoder_buffer.h"
#include "media/base/timestamp_constants.h"
#include "media/cast/openscreen/remoting_proto_enum_utils.h"
#include "media/cast/openscreen/remoting_proto_utils.h"
#include "media/mojo/common/media_type_converters.h"
#define DEMUXER_VLOG(level) …
RpcMessenger;
namespace media {
namespace remoting {
namespace {
void RegisterForRpcTask(
openscreen::WeakPtr<openscreen::cast::RpcMessenger> rpc_messenger,
int rpc_handle,
openscreen::cast::RpcMessenger::ReceiveMessageCallback message_cb) { … }
void DeregisterFromRpcTask(
openscreen::WeakPtr<openscreen::cast::RpcMessenger> rpc_messenger,
int rpc_handle) { … }
}
DemuxerStreamAdapter::DemuxerStreamAdapter(
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
scoped_refptr<base::SequencedTaskRunner> media_task_runner,
const std::string& name,
DemuxerStream* demuxer_stream,
const openscreen::WeakPtr<RpcMessenger>& rpc_messenger,
int rpc_handle,
mojo::PendingRemote<mojom::RemotingDataStreamSender> stream_sender_remote,
mojo::ScopedDataPipeProducerHandle producer_handle,
ErrorCallback error_callback)
: … { … }
DemuxerStreamAdapter::~DemuxerStreamAdapter() { … }
int64_t DemuxerStreamAdapter::GetBytesWrittenAndReset() { … }
std::optional<uint32_t> DemuxerStreamAdapter::SignalFlush(bool flushing) { … }
void DemuxerStreamAdapter::OnReceivedRpc(
std::unique_ptr<openscreen::cast::RpcMessage> message) { … }
void DemuxerStreamAdapter::Initialize(int remote_callback_handle) { … }
void DemuxerStreamAdapter::ReadUntil(
std::unique_ptr<openscreen::cast::RpcMessage> message) { … }
void DemuxerStreamAdapter::EnableBitstreamConverter() { … }
void DemuxerStreamAdapter::RequestBuffer() { … }
void DemuxerStreamAdapter::OnNewBuffersRead(
DemuxerStream::Status status,
DemuxerStream::DecoderBufferVector buffers_queue) { … }
void DemuxerStreamAdapter::OnNewBuffer(DemuxerStream::Status status,
scoped_refptr<DecoderBuffer> input) { … }
void DemuxerStreamAdapter::WriteFrame() { … }
void DemuxerStreamAdapter::OnFrameWritten(bool success) { … }
void DemuxerStreamAdapter::OnWrittenFrameRead() { … }
void DemuxerStreamAdapter::TryCompleteFrameWrite() { … }
void DemuxerStreamAdapter::SendReadAck() { … }
void DemuxerStreamAdapter::ResetPendingFrame() { … }
void DemuxerStreamAdapter::OnFatalError(StopTrigger stop_trigger) { … }
void DemuxerStreamAdapter::RegisterForRpcMessaging() { … }
void DemuxerStreamAdapter::DeregisterFromRpcMessaging() { … }
}
}