| /* vim: set filetype=c: */ |
| % ClassName |
| GstVideoEncoder |
| % TYPE_CLASS_NAME |
| GST_TYPE_VIDEO_ENCODER |
| % pads |
| srcpad-simple |
| sinkpad-template-video |
| % pkg-config |
| gstreamer-video-1.0 |
| % includes |
| #include <gst/video/video.h> |
| #include <gst/video/gstvideoencoder.h> |
| % prototypes |
| static gboolean gst_replace_open (GstVideoEncoder *encoder); |
| static gboolean gst_replace_close (GstVideoEncoder *encoder); |
| static gboolean gst_replace_start (GstVideoEncoder *encoder); |
| static gboolean gst_replace_stop (GstVideoEncoder *encoder); |
| static gboolean gst_replace_set_format (GstVideoEncoder *encoder, GstVideoCodecState *state); |
| static GstFlowReturn gst_replace_handle_frame (GstVideoEncoder *encoder, GstVideoCodecFrame *frame); |
| static gboolean gst_replace_reset (GstVideoEncoder *encoder, gboolean hard); |
| static GstFlowReturn gst_replace_finish (GstVideoEncoder *encoder); |
| static GstFlowReturn gst_replace_pre_push (GstVideoEncoder *encoder, GstVideoCodecFrame *frame); |
| static GstCaps * gst_replace_getcaps (GstVideoEncoder *encoder, GstCaps *filter); |
| static gboolean gst_replace_sink_event (GstVideoEncoder *encoder, GstEvent *event); |
| static gboolean gst_replace_src_event (GstVideoEncoder *encoder, GstEvent *event); |
| static gboolean gst_replace_negotiate (GstVideoEncoder *encoder); |
| static gboolean gst_replace_decide_allocation (GstVideoEncoder *encoder, GstQuery *query); |
| static gboolean gst_replace_propose_allocation (GstVideoEncoder * encoder, GstQuery * query); |
| % declare-class |
| GstVideoEncoderClass *video_encoder_class = GST_VIDEO_ENCODER_CLASS (klass); |
| % set-methods |
| video_encoder_class->open = GST_DEBUG_FUNCPTR (gst_replace_open); |
| video_encoder_class->close = GST_DEBUG_FUNCPTR (gst_replace_close); |
| video_encoder_class->start = GST_DEBUG_FUNCPTR (gst_replace_start); |
| video_encoder_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop); |
| video_encoder_class->set_format = GST_DEBUG_FUNCPTR (gst_replace_set_format); |
| video_encoder_class->handle_frame = GST_DEBUG_FUNCPTR (gst_replace_handle_frame); |
| video_encoder_class->reset = GST_DEBUG_FUNCPTR (gst_replace_reset); |
| video_encoder_class->finish = GST_DEBUG_FUNCPTR (gst_replace_finish); |
| video_encoder_class->pre_push = GST_DEBUG_FUNCPTR (gst_replace_pre_push); |
| video_encoder_class->getcaps = GST_DEBUG_FUNCPTR (gst_replace_getcaps); |
| video_encoder_class->sink_event = GST_DEBUG_FUNCPTR (gst_replace_sink_event); |
| video_encoder_class->src_event = GST_DEBUG_FUNCPTR (gst_replace_src_event); |
| video_encoder_class->negotiate = GST_DEBUG_FUNCPTR (gst_replace_negotiate); |
| video_encoder_class->decide_allocation = GST_DEBUG_FUNCPTR (gst_replace_decide_allocation); |
| video_encoder_class->propose_allocation = GST_DEBUG_FUNCPTR (gst_replace_propose_allocation); |
| % methods |
| static gboolean gst_replace_open (GstVideoEncoder *encoder) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "open"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_close (GstVideoEncoder *encoder) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "close"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_start (GstVideoEncoder *encoder) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "start"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_stop (GstVideoEncoder *encoder) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "stop"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_set_format (GstVideoEncoder *encoder, GstVideoCodecState *state) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "set_format"); |
| |
| return TRUE; |
| } |
| |
| static GstFlowReturn gst_replace_handle_frame (GstVideoEncoder *encoder, GstVideoCodecFrame *frame) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "handle_frame"); |
| |
| return GST_FLOW_OK; |
| } |
| |
| static gboolean gst_replace_reset (GstVideoEncoder *encoder, gboolean hard) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "reset"); |
| |
| return TRUE; |
| } |
| |
| static GstFlowReturn gst_replace_finish (GstVideoEncoder *encoder) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "finish"); |
| |
| return GST_FLOW_OK; |
| } |
| |
| static GstFlowReturn gst_replace_pre_push (GstVideoEncoder *encoder, GstVideoCodecFrame *frame) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "pre_push"); |
| |
| return GST_FLOW_OK; |
| } |
| |
| static GstCaps * gst_replace_getcaps (GstVideoEncoder *encoder, GstCaps *filter) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "getcaps"); |
| |
| return NULL; |
| } |
| |
| static gboolean gst_replace_sink_event (GstVideoEncoder *encoder, GstEvent *event) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "sink_event"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_src_event (GstVideoEncoder *encoder, GstEvent *event) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "src_event"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_negotiate (GstVideoEncoder *encoder) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "negotiate"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_decide_allocation (GstVideoEncoder *encoder, GstQuery *query) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "decide_allocation"); |
| |
| return TRUE; |
| } |
| |
| static gboolean gst_replace_propose_allocation (GstVideoEncoder * encoder, GstQuery * query) |
| { |
| GstReplace *replace = GST_REPLACE (encoder); |
| |
| GST_DEBUG_OBJECT(replace, "propose_allocation"); |
| |
| return TRUE; |
| } |
| |
| % end |