summaryrefslogtreecommitdiff
path: root/gst-libs/gst/video/gstbasevideodecoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/video/gstbasevideodecoder.h')
-rw-r--r--gst-libs/gst/video/gstbasevideodecoder.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/gst-libs/gst/video/gstbasevideodecoder.h b/gst-libs/gst/video/gstbasevideodecoder.h
index a3b81fe44..891d02ba3 100644
--- a/gst-libs/gst/video/gstbasevideodecoder.h
+++ b/gst-libs/gst/video/gstbasevideodecoder.h
@@ -95,7 +95,7 @@ GstFlowReturn _gst_base_video_decoder_error (GstBaseVideoDecoder *dec, gint weig
* enclosed in parentheses)
* @ret: variable to receive return value
*
- * Utility function that audio decoder elements can use in case they encountered
+ * Utility function that video decoder elements can use in case they encountered
* a data processing error that may be fatal for the current "data unit" but
* need not prevent subsequent decoding. Such errors are counted and if there
* are too many, as configured in the context's max_errors, the pipeline will
@@ -104,7 +104,7 @@ GstFlowReturn _gst_base_video_decoder_error (GstBaseVideoDecoder *dec, gint weig
* is logged. In either case, @ret is set to the proper value to
* return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
*/
-#define GST_BASE_AUDIO_DECODER_ERROR(el, w, domain, code, text, debug, ret) \
+#define GST_BASE_VIDEO_DECODER_ERROR(el, w, domain, code, text, debug, ret) \
G_STMT_START { \
gchar *__txt = _gst_element_error_printf text; \
gchar *__dbg = _gst_element_error_printf debug; \
@@ -142,7 +142,7 @@ struct _GstBaseVideoDecoder
/* ... being tracked here;
* only available during parsing */
/* FIXME remove and add parameter to method */
- GstVideoFrame *current_frame;
+ GstVideoFrameState *current_frame;
/* events that should apply to the current frame */
GList *current_frame_events;
/* relative offset of input data */
@@ -182,6 +182,12 @@ struct _GstBaseVideoDecoder
int reorder_depth;
int distance_from_sync;
+ /* Raw video bufferpool */
+ GstBufferPool *pool;
+ /* Indicates whether downstream can handle
+ * GST_META_API_VIDEO_CROP */
+ gboolean use_cropping;
+
/* qos messages: frames dropped/processed */
guint dropped;
guint processed;
@@ -237,7 +243,7 @@ struct _GstBaseVideoDecoderClass
GstFlowReturn (*finish) (GstBaseVideoDecoder *coder);
- GstFlowReturn (*handle_frame) (GstBaseVideoDecoder *coder, GstVideoFrame *frame);
+ GstFlowReturn (*handle_frame) (GstBaseVideoDecoder *coder, GstVideoFrameState *frame);
/*< private >*/
@@ -251,9 +257,9 @@ struct _GstBaseVideoDecoderClass
void gst_base_video_decoder_class_set_capture_pattern (GstBaseVideoDecoderClass *klass,
guint32 mask, guint32 pattern);
-GstVideoFrame *gst_base_video_decoder_get_frame (GstBaseVideoDecoder *coder,
+GstVideoFrameState *gst_base_video_decoder_get_frame (GstBaseVideoDecoder *coder,
int frame_number);
-GstVideoFrame *gst_base_video_decoder_get_oldest_frame (GstBaseVideoDecoder *coder);
+GstVideoFrameState *gst_base_video_decoder_get_oldest_frame (GstBaseVideoDecoder *coder);
void gst_base_video_decoder_add_to_frame (GstBaseVideoDecoder *base_video_decoder,
int n_bytes);
@@ -264,15 +270,16 @@ void gst_base_video_decoder_set_sync_point (GstBaseVideoDecoder *bas
gboolean gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder *base_video_decoder);
GstBuffer *gst_base_video_decoder_alloc_src_buffer (GstBaseVideoDecoder * base_video_decoder);
GstFlowReturn gst_base_video_decoder_alloc_src_frame (GstBaseVideoDecoder *base_video_decoder,
- GstVideoFrame *frame);
+ GstVideoFrameState *frame);
GstVideoState *gst_base_video_decoder_get_state (GstBaseVideoDecoder *base_video_decoder);
GstClockTimeDiff gst_base_video_decoder_get_max_decode_time (
GstBaseVideoDecoder *base_video_decoder,
- GstVideoFrame *frame);
+ GstVideoFrameState *frame);
GstFlowReturn gst_base_video_decoder_finish_frame (GstBaseVideoDecoder *base_video_decoder,
- GstVideoFrame *frame);
+ GstVideoFrameState *frame);
GstFlowReturn gst_base_video_decoder_drop_frame (GstBaseVideoDecoder *dec,
- GstVideoFrame *frame);
+ GstVideoFrameState *frame);
+
GType gst_base_video_decoder_get_type (void);
G_END_DECLS