GstVideoEncoder

GstVideoEncoder

Functions

Types and Values

Description

Functions

GST_VIDEO_ENCODER_CAST()

#define GST_VIDEO_ENCODER_CAST(enc) ((GstVideoEncoder*)enc)

GST_VIDEO_ENCODER_SINK_PAD()

#define GST_VIDEO_ENCODER_SINK_PAD(obj)        (((GstVideoEncoder *) (obj))->sinkpad)

GST_VIDEO_ENCODER_SRC_PAD()

#define GST_VIDEO_ENCODER_SRC_PAD(obj)         (((GstVideoEncoder *) (obj))->srcpad)

GST_VIDEO_ENCODER_INPUT_SEGMENT()

#define GST_VIDEO_ENCODER_INPUT_SEGMENT(obj)     (GST_VIDEO_ENCODER_CAST (obj)->input_segment)

GST_VIDEO_ENCODER_OUTPUT_SEGMENT()

#define GST_VIDEO_ENCODER_OUTPUT_SEGMENT(obj)     (GST_VIDEO_ENCODER_CAST (obj)->output_segment)

GST_VIDEO_ENCODER_STREAM_LOCK()

#define GST_VIDEO_ENCODER_STREAM_LOCK(encoder) g_rec_mutex_lock (&GST_VIDEO_ENCODER (encoder)->stream_lock)

GST_VIDEO_ENCODER_STREAM_UNLOCK()

#define GST_VIDEO_ENCODER_STREAM_UNLOCK(encoder) g_rec_mutex_unlock (&GST_VIDEO_ENCODER (encoder)->stream_lock)

gst_video_encoder_allocate_output_buffer ()

GstBuffer *
gst_video_encoder_allocate_output_buffer
                               (GstVideoEncoder *encoder,
                                gsize size);

gst_video_encoder_allocate_output_frame ()

GstFlowReturn
gst_video_encoder_allocate_output_frame
                               (GstVideoEncoder *encoder,
                                GstVideoCodecFrame *frame,
                                gsize size);

gst_video_encoder_get_allocator ()

void
gst_video_encoder_get_allocator (GstVideoEncoder *encoder,
                                 GstAllocator **allocator,
                                 GstAllocationParams *params);

gst_video_encoder_finish_frame ()

GstFlowReturn
gst_video_encoder_finish_frame (GstVideoEncoder *encoder,
                                GstVideoCodecFrame *frame);

gst_video_encoder_negotiate ()

gboolean
gst_video_encoder_negotiate (GstVideoEncoder *encoder);

gst_video_encoder_get_frame ()

GstVideoCodecFrame *
gst_video_encoder_get_frame (GstVideoEncoder *encoder,
                             int frame_number);

gst_video_encoder_get_frames ()

GList *
gst_video_encoder_get_frames (GstVideoEncoder *encoder);

gst_video_encoder_get_oldest_frame ()

GstVideoCodecFrame *
gst_video_encoder_get_oldest_frame (GstVideoEncoder *encoder);

gst_video_encoder_set_headers ()

void
gst_video_encoder_set_headers (GstVideoEncoder *encoder,
                               GList *headers);

gst_video_encoder_get_latency ()

void
gst_video_encoder_get_latency (GstVideoEncoder *encoder,
                               GstClockTime *min_latency,
                               GstClockTime *max_latency);

gst_video_encoder_set_latency ()

void
gst_video_encoder_set_latency (GstVideoEncoder *encoder,
                               GstClockTime min_latency,
                               GstClockTime max_latency);

gst_video_encoder_set_output_state ()

GstVideoCodecState *
gst_video_encoder_set_output_state (GstVideoEncoder *encoder,
                                    GstCaps *caps,
                                    GstVideoCodecState *reference);

gst_video_encoder_get_output_state ()

GstVideoCodecState *
gst_video_encoder_get_output_state (GstVideoEncoder *encoder);

gst_video_encoder_proxy_getcaps ()

GstCaps *
gst_video_encoder_proxy_getcaps (GstVideoEncoder *enc,
                                 GstCaps *caps,
                                 GstCaps *filter);

gst_video_encoder_merge_tags ()

void
gst_video_encoder_merge_tags (GstVideoEncoder *encoder,
                              const GstTagList *tags,
                              GstTagMergeMode mode);

Types and Values

GST_VIDEO_ENCODER_FLOW_DROPPED

#define GST_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1

GST_VIDEO_ENCODER_FLOW_DROPPED is deprecated and should not be used in newly-written code.


GST_VIDEO_ENCODER_FLOW_NEED_DATA

#define GST_VIDEO_ENCODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS

GST_VIDEO_ENCODER_SINK_NAME

#define GST_VIDEO_ENCODER_SINK_NAME    "sink"

GST_VIDEO_ENCODER_SRC_NAME

#define GST_VIDEO_ENCODER_SRC_NAME     "src"

struct GstVideoEncoder

struct GstVideoEncoder {
};

struct GstVideoEncoderClass

struct GstVideoEncoderClass {
  /* virtual methods for subclasses */
  gboolean      (*open)         (GstVideoEncoder *encoder);

  gboolean      (*close)        (GstVideoEncoder *encoder);

  gboolean      (*start)        (GstVideoEncoder *encoder);

  gboolean      (*stop)         (GstVideoEncoder *encoder);

  gboolean      (*set_format)   (GstVideoEncoder *encoder,
				 GstVideoCodecState *state);

  GstFlowReturn (*handle_frame) (GstVideoEncoder *encoder,
				 GstVideoCodecFrame *frame);

  gboolean      (*reset)        (GstVideoEncoder *encoder,
				 gboolean hard);

  GstFlowReturn (*finish)       (GstVideoEncoder *encoder);

  GstFlowReturn (*pre_push)     (GstVideoEncoder *encoder,
				 GstVideoCodecFrame *frame);

  GstCaps *     (*getcaps)      (GstVideoEncoder *enc,
                                 GstCaps *filter);

  gboolean      (*sink_event)   (GstVideoEncoder *encoder,
				 GstEvent *event);

  gboolean      (*src_event)    (GstVideoEncoder *encoder,
				 GstEvent *event);

  gboolean      (*negotiate)    (GstVideoEncoder *encoder);

  gboolean      (*decide_allocation)  (GstVideoEncoder *encoder, GstQuery *query);

  gboolean      (*propose_allocation) (GstVideoEncoder * encoder,
                                       GstQuery * query);
  gboolean      (*flush)              (GstVideoEncoder *encoder);

  gboolean      (*sink_query)     (GstVideoEncoder *encoder,
				   GstQuery *query);

  gboolean      (*src_query)      (GstVideoEncoder *encoder,
				   GstQuery *query);

  gboolean      (*transform_meta) (GstVideoEncoder *encoder,
                                   GstVideoCodecFrame *frame,
                                   GstMeta * meta);
};