|
NVIDIA DeepStream SDK API Reference
|
7.1 Release
|
Go to the documentation of this file.
13 #ifndef __GST_NVSTREAMMUX_IMPL_H__
14 #define __GST_NVSTREAMMUX_IMPL_H__
17 #include <gst/video/video.h>
54 LOGD(
"GstBufferWrapper constructor %p gst_buffer refcount %d\n",
this, ((
GstBuffer *) (
wrapped))->mini_object.refcount);
76 GstMapInfo info = {0};
80 raw = ret = info.data;
90 LOGD(
"GstBufferWrapper destructor %p raw %p gst_buf refcount %d\n",
this,
raw, ((
GstBuffer *) (
wrapped))->mini_object.refcount);
91 gst_buffer_unref(GST_BUFFER (
wrapped));
149 raw_batch = gst_buffer_list_new_sized (size);
153 void unref()
override;
155 void copy_meta(
unsigned int id, std::shared_ptr<BufferWrapper> src_buffer,
unsigned int batch_id,
unsigned int frame_number,
unsigned int num_surfaces_per_frame,
NvDsBatchMeta * dest_batch_meta,
unsigned int source_id)
override;
156 unsigned int copy_buf(std::shared_ptr<BufferWrapper> src,
unsigned int pos)
override;
168 unsigned int copy_buf_impl(std::shared_ptr<BufferWrapper> buf,
unsigned int pos);
195 cascaded_eos =
false;
209 GstClockTime frame_duration)
215 GST_ELEMENT (element),
id);
GstBufferWrapper(void *buffer, ENTRY_TYPE et, BATCH_SEQUENCE_TYPE bt, GstClockTime a_ntp_ts, GstClockTime a_buf_pts, GstClockTime a_duration, unsigned int id=0)
void push_event(SourcePad *src_pad, QueueEntry *)
static void mem_buf_unref_callback(gpointer data)
Holds information about batched buffers.
void SetMemTypeNVMM(bool isNVMM)
void SetAudioParams(NvBufAudioParams aAudioParams)
GstBufferList * raw_batch
@ NVBUF_MEM_DEFAULT
Specifies the default memory type, i.e.
GstSourcePad(GstNvStreamMux *elem, GstPad *pad, unsigned int id)
std::vector< std::shared_ptr< GstBufferWrapper > > gst_in_bufs
GstNvDsNtpCalculator * get_ntp_calc(GstNvDsNtpCalculatorMode mode, GstClockTime frame_duration)
Hold the information of single buffer in the batch.
unsigned int copy_buf(std::shared_ptr< BufferWrapper > src, unsigned int pos) override
GstBatchBufferWrapper(GstNvStreamMux *mux, unsigned int size, bool is_raw)
gdouble buffer_wrapper_creation_time
void update_component_latency_metadata(NvDsBatchMeta *dest_batch_meta)
bool push(SourcePad *src_pad, TimePoint current_play_start, NanoSecondsType accum_dur) override
GstNvDsNtpCalculator * gst_nvds_ntp_calculator_new(GstNvDsNtpCalculatorMode mode, GstClockTime frame_duration, GstElement *elem, guint source_id)
std::chrono::duration< double, std::nano > NanoSecondsType
TODO re-design GstBatchBufferWrapper to be video specific and NvDsBatchBufferWrapper generic ; Also r...
void copy_meta(unsigned int id, std::shared_ptr< BufferWrapper > src_buffer, unsigned int batch_id, unsigned int frame_number, unsigned int num_surfaces_per_frame, NvDsBatchMeta *dest_batch_meta, unsigned int source_id) override
void add_component_latency_metadata(std::shared_ptr< BufferWrapper > src_buffer, GstBuffer *gst_batch_buffer, NvDsBatchMeta *batch_meta, unsigned int source_id, unsigned int pad_index, unsigned int frame_number)
struct _GstBuffer GstBuffer
struct _GstNvDsNtpCalculator GstNvDsNtpCalculator
NvBufAudioParams audioParams
GstCommonBufferAPI(GstElement *a_mux)
void gst_nvds_ntp_calculator_free(GstNvDsNtpCalculator *calc)
#define nvds_enable_latency_measurement
Defines a pseudo-variable whose value is the return value of nvds_get_enable_latency_measurement().
std::chrono::time_point< std::chrono::steady_clock, NanoSecondsType > TimePoint
GstSinkPad(GstNvStreamMux *elem, unsigned int id, GstPad *pad)