diff options
author | Stéphane Cerveau <scerveau@collabora.com> | 2020-04-24 16:15:42 +0200 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-09-20 15:11:02 +0000 |
commit | 86be138973c5ed441b9a9ec87833de430d2a71dc (patch) | |
tree | 6de7cb293505c3c6091c0ede7abaf380d36a7f42 /ext/openjpeg/gstopenjpegdec.h | |
parent | 18c343754662f93b23beed7cf5d67b6dc0e24b86 (diff) | |
download | gstreamer-plugins-bad-86be138973c5ed441b9a9ec87833de430d2a71dc.tar.gz |
openjpegdec: support for a multithreaded decoding.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/979>
Diffstat (limited to 'ext/openjpeg/gstopenjpegdec.h')
-rw-r--r-- | ext/openjpeg/gstopenjpegdec.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/ext/openjpeg/gstopenjpegdec.h b/ext/openjpeg/gstopenjpegdec.h index 427b85902..413062e3f 100644 --- a/ext/openjpeg/gstopenjpegdec.h +++ b/ext/openjpeg/gstopenjpegdec.h @@ -58,15 +58,36 @@ struct _GstOpenJPEGDec GstJPEG2000Sampling sampling; gint ncomps; gint max_threads; /* atomic */ + gint max_slice_threads; /* internal openjpeg threading system */ gint num_procs; gint num_stripes; - GstVideoCodecFrame *current_frame; gboolean drop_subframes; void (*fill_frame) (GstOpenJPEGDec *self, GstVideoFrame *frame, opj_image_t * image); + gboolean (*decode_frame) (GstVideoDecoder * decoder, GstVideoCodecFrame *frame); + opj_dparameters_t params; + + guint available_threads; + GQueue messages; + + GCond messages_cond; + GMutex messages_lock; + GMutex decoding_lock; + GstFlowReturn downstream_flow_ret; + gboolean flushing; + + /* Draining state */ + GMutex drain_lock; + GCond drain_cond; + /* TRUE if EOS buffers shouldn't be forwarded */ + gboolean draining; /* protected by drain_lock */ + + int last_error; + + gboolean started; }; struct _GstOpenJPEGDecClass |