diff options
author | Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com> | 2008-04-11 19:33:53 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2008-04-11 19:33:53 +0000 |
commit | 53e5f028ec832ce34b44e283c4cffe5bdabb5308 (patch) | |
tree | 9081659d5872920e8d508acb5df11234334442fc /sys/dshowsrcwrapper/gstdshowvideosrc.h | |
parent | 950db408db4a02ba79e5ca5cac0f69a4aa503ad1 (diff) | |
download | gst-plugins-bad-53e5f028ec832ce34b44e283c4cffe5bdabb5308.tar.gz gst-plugins-bad-53e5f028ec832ce34b44e283c4cffe5bdabb5308.tar.bz2 gst-plugins-bad-53e5f028ec832ce34b44e283c4cffe5bdabb5308.zip |
sys/dshowsrcwrapper/gstdshowvideosrc.*: Don't increase latency by queuing buffers in an async queue when the streamin...
Original commit message from CVS:
Patch by: Ole André Vadla Ravnås <ole.andre.ravnas at tandberg com>
* sys/dshowsrcwrapper/gstdshowvideosrc.c: (PROP_DEVICE_NAME),
(gst_dshowvideosrc_class_init), (gst_dshowvideosrc_init),
(gst_dshowvideosrc_dispose), (gst_dshowvideosrc_stop),
(gst_dshowvideosrc_unlock), (gst_dshowvideosrc_unlock_stop),
(gst_dshowvideosrc_create), (gst_dshowvideosrc_push_buffer):
* sys/dshowsrcwrapper/gstdshowvideosrc.h:
Don't increase latency by queuing buffers in an async queue when
the streaming thread can't keep up or isn't scheduled often
enough for some other reason, but just drop the previous buffer
in that case. Also implement GstBaseSrc::unlock for faster
unlocking when shutting down. (#520892).
Diffstat (limited to 'sys/dshowsrcwrapper/gstdshowvideosrc.h')
-rw-r--r-- | sys/dshowsrcwrapper/gstdshowvideosrc.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dshowsrcwrapper/gstdshowvideosrc.h b/sys/dshowsrcwrapper/gstdshowvideosrc.h index 994326fd..8bc52fa9 100644 --- a/sys/dshowsrcwrapper/gstdshowvideosrc.h +++ b/sys/dshowsrcwrapper/gstdshowvideosrc.h @@ -66,8 +66,11 @@ struct _GstDshowVideoSrc IMediaFilter *media_filter; IFilterGraph *filter_graph; - /* async queue which will contain incoming buffers from directshow */ - GAsyncQueue *async_queue; + /* the last buffer from DirectShow */ + GCond * buffer_cond; + GMutex * buffer_mutex; + GstBuffer * buffer; + gboolean stop_requested; gboolean is_rgb; gint width; |