| /* vim: set filetype=c: */ | |
| % ClassName | |
| GstVideoDecoder | |
| % TYPE_CLASS_NAME | |
| GST_TYPE_VIDEO_DECODER | |
| % pads | |
| sinkpad-simple | |
| srcpad-template-video | |
| % pkg-config | |
| gstreamer-video-1.0 | |
| % includes | |
| #include <gst/video/video.h> | |
| #include <gst/video/gstvideodecoder.h> | |
| % prototypes | |
| static gboolean gst_replace_open (GstVideoDecoder * decoder); | |
| static gboolean gst_replace_close (GstVideoDecoder * decoder); | |
| static gboolean gst_replace_start (GstVideoDecoder * decoder); | |
| static gboolean gst_replace_stop (GstVideoDecoder * decoder); | |
| static GstFlowReturn gst_replace_parse (GstVideoDecoder * decoder, | |
| GstVideoCodecFrame * frame, GstAdapter * adapter, gboolean at_eos); | |
| static gboolean gst_replace_set_format (GstVideoDecoder * decoder, | |
| GstVideoCodecState * state); | |
| static gboolean gst_replace_reset (GstVideoDecoder * decoder, gboolean hard); | |
| static GstFlowReturn gst_replace_finish (GstVideoDecoder * decoder); | |
| static GstFlowReturn gst_replace_handle_frame (GstVideoDecoder * decoder, | |
| GstVideoCodecFrame * frame); | |
| static gboolean gst_replace_sink_event (GstVideoDecoder * decoder, | |
| GstEvent * event); | |
| static gboolean gst_replace_src_event (GstVideoDecoder * decoder, | |
| GstEvent * event); | |
| static gboolean gst_replace_negotiate (GstVideoDecoder * decoder); | |
| static gboolean gst_replace_decide_allocation (GstVideoDecoder * decoder, | |
| GstQuery * query); | |
| static gboolean gst_replace_propose_allocation (GstVideoDecoder * decoder, | |
| GstQuery * query); | |
| % declare-class | |
| GstVideoDecoderClass *video_decoder_class = GST_VIDEO_DECODER_CLASS (klass); | |
| % set-methods | |
| video_decoder_class->open = GST_DEBUG_FUNCPTR (gst_replace_open); | |
| video_decoder_class->close = GST_DEBUG_FUNCPTR (gst_replace_close); | |
| video_decoder_class->start = GST_DEBUG_FUNCPTR (gst_replace_start); | |
| video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop); | |
| video_decoder_class->parse = GST_DEBUG_FUNCPTR (gst_replace_parse); | |
| video_decoder_class->set_format = GST_DEBUG_FUNCPTR (gst_replace_set_format); | |
| video_decoder_class->reset = GST_DEBUG_FUNCPTR (gst_replace_reset); | |
| video_decoder_class->finish = GST_DEBUG_FUNCPTR (gst_replace_finish); | |
| video_decoder_class->handle_frame = GST_DEBUG_FUNCPTR (gst_replace_handle_frame); | |
| video_decoder_class->sink_event = GST_DEBUG_FUNCPTR (gst_replace_sink_event); | |
| video_decoder_class->src_event = GST_DEBUG_FUNCPTR (gst_replace_src_event); | |
| video_decoder_class->negotiate = GST_DEBUG_FUNCPTR (gst_replace_negotiate); | |
| video_decoder_class->decide_allocation = GST_DEBUG_FUNCPTR (gst_replace_decide_allocation); | |
| video_decoder_class->propose_allocation = GST_DEBUG_FUNCPTR (gst_replace_propose_allocation); | |
| % methods | |
| static gboolean | |
| gst_replace_open (GstVideoDecoder * decoder) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "open"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_close (GstVideoDecoder * decoder) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "close"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_start (GstVideoDecoder * decoder) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "start"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_stop (GstVideoDecoder * decoder) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "stop"); | |
| return TRUE; | |
| } | |
| static GstFlowReturn | |
| gst_replace_parse (GstVideoDecoder * decoder, GstVideoCodecFrame * frame, | |
| GstAdapter * adapter, gboolean at_eos) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "parse"); | |
| return GST_FLOW_OK; | |
| } | |
| static gboolean | |
| gst_replace_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "set_format"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_reset (GstVideoDecoder * decoder, gboolean hard) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "reset"); | |
| return TRUE; | |
| } | |
| static GstFlowReturn | |
| gst_replace_finish (GstVideoDecoder * decoder) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "finish"); | |
| return GST_FLOW_OK; | |
| } | |
| static GstFlowReturn | |
| gst_replace_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "handle_frame"); | |
| return GST_FLOW_OK; | |
| } | |
| static gboolean | |
| gst_replace_sink_event (GstVideoDecoder * decoder, GstEvent * event) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "sink_event"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_src_event (GstVideoDecoder * decoder, GstEvent * event) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "src_event"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_negotiate (GstVideoDecoder * decoder) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "negotiate"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_decide_allocation (GstVideoDecoder * decoder, GstQuery * query) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "decide_allocation"); | |
| return TRUE; | |
| } | |
| static gboolean | |
| gst_replace_propose_allocation (GstVideoDecoder * decoder, GstQuery * query) | |
| { | |
| GstReplace *replace = GST_REPLACE (decoder); | |
| GST_DEBUG_OBJECT (replace, "propose_allocation"); | |
| return TRUE; | |
| } | |
| % end |