19#include <condition_variable>
27#include "livekit/ffi_handle.h"
28#include "livekit/participant.h"
29#include "livekit/track.h"
30#include "livekit/video_frame.h"
31#include "livekit/video_source.h"
32#include "livekit/visibility.h"
45 std::optional<VideoFrameMetadata> metadata;
75 std::size_t capacity{0};
83 static std::shared_ptr<VideoStream>
fromTrack(
const std::shared_ptr<Track>& track,
const Options& options);
115 void initFromTrack(const std::shared_ptr<
Track>& track, const
Options& options);
119 void onFfiEvent(const proto::FfiEvent& event);
125 mutable std::mutex mutex_;
126 std::condition_variable cv_;
128 std::
size_t capacity_{0};
133 FfiHandle stream_handle_;
136 std::int32_t listener_id_{0};
Base class for local and remote room participants.
Definition participant.h:34
Base class for local and remote media tracks.
Definition track.h:77
Public SDK representation of a video frame.
Definition video_frame.h:48
Represents a pull-based stream of decoded video frames coming from a remote (or local) LiveKit track.
Definition video_stream.h:66
static std::shared_ptr< VideoStream > fromTrack(const std::shared_ptr< Track > &track, const Options &options)
Factory: create a VideoStream bound to a specific Track.
static std::shared_ptr< VideoStream > fromParticipant(Participant &participant, TrackSource track_source, const Options &options)
Factory: create a VideoStream from a Participant + TrackSource.
Public API for the LiveKit C++ Client SDK.
Definition audio_frame.h:25
VideoRotation
Rotation of a video frame.
Definition video_source.h:32
VideoBufferType
Mirror of WebRTC video buffer type.
Definition video_frame.h:29
TrackSource
Source category for a published track.
Definition track.h:43
A single video frame event delivered by VideoStream::read().
Definition video_stream.h:37
std::int64_t timestamp_us
WebRTC frame timestamp in microseconds.
Definition video_stream.h:43
Options for creating a decoded video frame stream.
Definition video_stream.h:69