Class GStreamerPipeline#

Nested Relationships#

Nested Types#

Class Documentation#

class GStreamerPipeline#

Public Functions

GStreamerPipeline()#
~GStreamerPipeline()#
GStreamerPipeline(const GStreamerPipeline&) = delete#
auto operator=(const GStreamerPipeline&) -> GStreamerPipeline& = delete#
GStreamerPipeline(GStreamerPipeline&&) noexcept#
auto operator=(GStreamerPipeline&&) noexcept -> GStreamerPipeline&#
auto create_pipeline(const PipelineConfig &config) -> std::expected<void, GStreamerError>#
auto create_pipeline_from_string(const std::string &description) -> std::expected<void, GStreamerError>#
auto create_inference_pipeline(const std::string &input_source, const std::string &model_path, const std::vector<std::size_t> &input_shape, const std::string &output_format = "RAW") -> std::expected<void, GStreamerError>#
auto start() -> std::expected<void, GStreamerError>#
auto stop() -> std::expected<void, GStreamerError>#
auto pause() -> std::expected<void, GStreamerError>#
auto resume() -> std::expected<void, GStreamerError>#
auto is_playing() const -> bool#
auto is_paused() const -> bool#
auto set_buffer_callback(BufferCallback callback) -> void#
auto pull_sample(std::uint32_t timeout_ms = 5000) -> std::expected<BufferInfo, GStreamerError>#
auto push_buffer(void *data, std::size_t size, const FrameMetadata &metadata) -> std::expected<void, GStreamerError>#
auto get_position_ns() const -> std::expected<std::uint64_t, GStreamerError>#
auto get_duration_ns() const -> std::expected<std::uint64_t, GStreamerError>#
auto seek(std::uint64_t timestamp_ns) -> std::expected<void, GStreamerError>#
auto get_caps_string() const -> std::string#
auto get_current_state() const -> int#

Public Static Functions

static auto initialize_gstreamer(int *argc = nullptr, char ***argv = nullptr) -> std::expected<void, GStreamerError>#
static auto deinitialize_gstreamer() -> void#
struct Impl#

Public Functions

inline ~Impl()#
inline void cleanup()#

Public Members

GstElement *pipeline = {nullptr}#
GstElement *appsink = {nullptr}#
GstElement *appsrc = {nullptr}#
BufferCallback buffer_callback#
std::atomic<bool> is_playing = {false}#
std::atomic<bool> is_paused = {false}#
std::string caps_string#
GMainLoop *main_loop = {nullptr}#
std::thread main_loop_thread#

Public Static Functions

static inline void on_new_sample(GstElement *sink, Impl *self)#
static inline auto on_pad_probe(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) -> GstPadProbeReturn#