chromium/components/cast_streaming/renderer/frame/frame_injecting_demuxer.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_CAST_STREAMING_RENDERER_FRAME_FRAME_INJECTING_DEMUXER_H_
#define COMPONENTS_CAST_STREAMING_RENDERER_FRAME_FRAME_INJECTING_DEMUXER_H_

#include <optional>

#include "base/memory/raw_ptr.h"
#include "base/task/sequenced_task_runner.h"
#include "components/cast_streaming/common/public/mojom/demuxer_connector.mojom.h"
#include "media/base/demuxer.h"

namespace cast_streaming {

class StreamTimestampOffsetTracker;
class FrameInjectingAudioDemuxerStream;
class FrameInjectingVideoDemuxerStream;
class DemuxerConnector;

// media::Demuxer implementation for a Cast Streaming Receiver.
// This object is instantiated on the main thread, whose task runner is stored
// as |original_task_runner_|. OnStreamsInitialized() is the only method called
// on the main thread. Every other method is called on the media thread, whose
// task runner is |media_task_runner_|.
// TODO(crbug.com/40131115): Simplify the FrameInjectingDemuxer initialization
// sequence when the DemuxerConnector Component has been implemented.
class FrameInjectingDemuxer final : public media::Demuxer {};

}  // namespace cast_streaming

#endif  // COMPONENTS_CAST_STREAMING_RENDERER_FRAME_FRAME_INJECTING_DEMUXER_H_