![]() |
Jetson Inference
DNN Vision Library
|
Hardware-accelerated video encoder for Jetson using GStreamer. More...
#include <gstEncoder.h>
Public Member Functions | |
~gstEncoder () | |
Destructor. More... | |
template<typename T > | |
bool | Render (T *image, uint32_t width, uint32_t height) |
Encode the next frame. More... | |
virtual bool | Render (void *image, uint32_t width, uint32_t height, imageFormat format) |
Encode the next frame. More... | |
virtual bool | Open () |
Open the stream. More... | |
virtual void | Close () |
Close the stream. More... | |
GstPipeline * | GetPipeline () const |
Return the GStreamer pipeline object. More... | |
WebRTCServer * | GetWebRTCServer () const |
Return the WebRTC server (only used when the protocol is "webrtc://") More... | |
virtual uint32_t | GetType () const |
Return the interface type (gstEncoder::Type) More... | |
![]() | |
virtual | ~videoOutput () |
Destroy interface and release all resources. More... | |
template<typename T > | |
bool | Render (T *image, uint32_t width, uint32_t height) |
Render and output the next frame to the stream. More... | |
bool | IsStreaming () const |
Check if the device is actively streaming or not. More... | |
uint32_t | GetWidth () const |
Return the width of the stream, in pixels. More... | |
uint32_t | GetHeight () const |
Return the height of the stream, in pixels. More... | |
float | GetFrameRate () const |
Return the framerate, in Hz or FPS. More... | |
uint64_t | GetFrameCount () const |
Return the number of frames output. More... | |
const URI & | GetResource () const |
Return the resource URI of the stream. More... | |
const videoOptions & | GetOptions () const |
Return the videoOptions of the stream. More... | |
void | AddOutput (videoOutput *output) |
Add an output sub-stream. More... | |
uint32_t | GetNumOutputs () const |
Return the number of sub-streams. More... | |
videoOutput * | GetOutput (uint32_t index) const |
Return a sub-stream. More... | |
virtual void | SetStatus (const char *str) |
Set a status string (i.e. More... | |
bool | IsType (uint32_t type) const |
Check if this stream is of a particular type. More... | |
template<typename T > | |
bool | IsType () const |
Check if a this stream is of a particular type. More... | |
const char * | TypeToStr () const |
Convert this stream's class type to string. More... | |
Static Public Member Functions | |
static gstEncoder * | Create (const videoOptions &options) |
Create an encoder from the provided video options. More... | |
static gstEncoder * | Create (const URI &resource, videoOptions::Codec codec) |
Create an encoder instance from resource URI and codec. More... | |
static bool | IsSupportedExtension (const char *ext) |
Return true if the extension is in the list of SupportedExtensions. More... | |
![]() | |
static videoOutput * | Create (const videoOptions &options) |
Create videoOutput interface from a videoOptions struct that's already been filled out. More... | |
static videoOutput * | Create (const char *URI, const videoOptions &options=videoOptions()) |
Create videoOutput interface from a resource URI string and optional videoOptions. More... | |
static videoOutput * | Create (const char *URI, const commandLine &cmdLine) |
Create videoOutput interface from a resource URI string and parsing command line arguments. More... | |
static videoOutput * | Create (const char *URI, const int argc, char **argv) |
Create videoOutput interface from a resource URI string and parsing command line arguments. More... | |
static videoOutput * | Create (const int argc, char **argv, int positionArg=-1) |
Create videoOutput interface by parsing command line arguments, including the resource URI. More... | |
static videoOutput * | Create (const commandLine &cmdLine, int positionArg=-1) |
Create videoOutput interface by parsing command line arguments, including the resource URI. More... | |
static videoOutput * | CreateNullOutput () |
Create videoOutput interface that acts as a NULL output and does nothing with incoming frames. More... | |
static const char * | Usage () |
Usage string for command line arguments to Create() More... | |
static const char * | TypeToStr (uint32_t type) |
Convert a class type to a string. More... | |
Static Public Attributes | |
static const uint32_t | Type = (1 << 2) |
Unique type identifier of gstEncoder class. More... | |
static const char * | SupportedExtensions [] |
String array of supported video file extensions, terminated with a NULL sentinel value. More... | |
Protected Member Functions | |
gstEncoder (const videoOptions &options) | |
bool | init () |
bool | initPipeline () |
void | destroyPipeline () |
void | checkMsgBus () |
bool | buildCapsStr () |
bool | buildLaunchStr () |
bool | encodeYUV (void *buffer, size_t size) |
![]() | |
videoOutput (const videoOptions &options) | |
Static Protected Member Functions | |
static void | onNeedData (GstElement *pipeline, uint32_t size, void *user_data) |
static void | onEnoughData (GstElement *pipeline, void *user_data) |
static void | onWebsocketMessage (WebRTCPeer *peer, const char *message, size_t message_size, void *user_data) |
Protected Attributes | |
GstBus * | mBus |
GstCaps * | mBufferCaps |
GstElement * | mAppSrc |
GstElement * | mPipeline |
bool | mNeedData |
std::string | mCapsStr |
std::string | mLaunchStr |
RingBuffer | mBufferYUV |
RTSPServer * | mRTSPServer |
WebRTCServer * | mWebRTCServer |
![]() | |
bool | mStreaming |
videoOptions | mOptions |
std::vector< videoOutput * > | mOutputs |
Hardware-accelerated video encoder for Jetson using GStreamer.
The encoder can write the encoded video to disk in (MKV, MP4, AVI, FLV), or stream over the network to a remote host via RTP/RTSP using UDP/IP. The supported encoder codecs are H.264, H.265, VP8, VP9, and MJPEG.
gstEncoder::~gstEncoder | ( | ) |
Destructor.
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
|
static |
Create an encoder instance from resource URI and codec.
|
static |
Create an encoder from the provided video options.
|
protected |
|
protected |
|
inline |
Return the GStreamer pipeline object.
|
inlinevirtual |
Return the interface type (gstEncoder::Type)
Reimplemented from videoOutput.
|
inline |
Return the WebRTC server (only used when the protocol is "webrtc://")
|
protected |
|
protected |
|
static |
Return true if the extension is in the list of SupportedExtensions.
ext | string containing the extension to be checked (should not contain leading dot) |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
virtual |
|
inline |
Encode the next frame.
|
virtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
String array of supported video file extensions, terminated with a NULL sentinel value.
The supported extension are:
|
static |
Unique type identifier of gstEncoder class.