MediaX v1.0.0rc7 [7e6cb74]
Video streaming for military vehicles
Loading...
Searching...
No Matches
rtp_h265_depayloader.h
Go to the documentation of this file.
1
2//
3// Copyright (c) 2025, Astute Systems PTY LTD
4//
5// This file is part of the VivoeX project developed by Astute Systems.
6//
7// Licensed under the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
8// License. See the LICENSE file in the project root for full license details.
9//
14
15#ifndef H265_GST_VAAPI_RTP_H265_DEPAYLOADER_H_
16#define H265_GST_VAAPI_RTP_H265_DEPAYLOADER_H_
17
18#include <gst/app/gstappsink.h>
19#include <gst/gst.h>
20
21#include <vector>
22
23#include "rtp/rtp_depayloader.h"
24
26namespace mediax::rtp::h265::gst {}
29
32 public:
38
44
52
59
65 void SetStreamInfo(const ::mediax::rtp::StreamInformation &stream_information) final;
66
73 bool Open() final;
74
79 void Start() final;
80
85 void Stop() final;
86
91 void Close() final;
92
101 bool Receive(mediax::rtp::RtpFrameData *data, int32_t timeout = 0) final;
102
108 void Callback(::mediax::rtp::RtpFrameData frame) const final;
109
114 void NewFrame();
115
116 private:
124 static GstFlowReturn NewFrameCallback(GstAppSink *appsink, gpointer user_data);
125
127 GstElement *pipeline_;
129 std::vector<uint8_t> buffer_in_;
131 bool new_rx_frame_ = false;
132};
133
134} // namespace mediax::rtp::h265::gst::vaapi
135
136#endif // H265_GST_VAAPI_RTP_H265_DEPAYLOADER_H_
Manage an RTP stream.
Definition rtp_depayloader.h:61
A RTP payloader for H.264 DEF-STAN 00-82 video streams.
Definition rtp_h265_depayloader.h:31
void SetStreamInfo(const ::mediax::rtp::StreamInformation &stream_information) final
Configure at RTP input stream and dont wait for the SAP/SDP announcement.
Definition rtp_h265_depayloader.cc:49
bool new_rx_frame_
A flag indication a new frame is available.
Definition rtp_h265_depayloader.h:131
void Callback(::mediax::rtp::RtpFrameData frame) const final
Call the callback.
Definition rtp_h265_depayloader.cc:289
bool Open() final
Open the RTP stream.
Definition rtp_h265_depayloader.cc:131
RtpH265GstVaapiDepayloader()
Construct a new Rtpvraw Depayloader object.
Definition rtp_h265_depayloader.cc:37
void Start() final
Start the stream.
Definition rtp_h265_depayloader.cc:211
~RtpH265GstVaapiDepayloader() final
Destroy the Rtpvraw Depayloader object.
GstElement * pipeline_
The GStreamer pipeline.
Definition rtp_h265_depayloader.h:127
void Close() final
Close the RTP stream.
Definition rtp_h265_depayloader.cc:243
std::vector< uint8_t > buffer_in_
The video buffer.
Definition rtp_h265_depayloader.h:129
void NewFrame()
Set new frame available.
Definition rtp_h265_depayloader.cc:293
static GstFlowReturn NewFrameCallback(GstAppSink *appsink, gpointer user_data)
GStreamer callback for new frames.
Definition rtp_h265_depayloader.cc:70
bool Receive(mediax::rtp::RtpFrameData *data, int32_t timeout=0) final
Recieve a frame or timeout.
Definition rtp_h265_depayloader.cc:266
void Stop() final
Stop the stream, can be quickly re-started.
Definition rtp_h265_depayloader.cc:228
The Gstreamer implementation of the Nvidia (NVENC) namespace.
Definition rtp_h265_depayloader.cc:35
The H.264 video compression GStreamer namespace.
Definition rtp_h265_payloader.cc:22
The Astute Systems (MediaX) library for video streaming.
Definition rtp_av1_depayloader.cc:34
RTP streaming video class for uncompressed DEF-STAN 00-82 video streams.
The RTP callback data.
Definition rtp_types.h:201
Struct capturing all stream information.
Definition rtp_types.h:223