framelinksrc: stop grab and close device only if needed

This commit is contained in:
Joshua M. Doe 2014-01-15 08:48:10 -05:00
parent adb73c4d21
commit 32e6e16d7e

View File

@ -155,6 +155,7 @@ gst_framelinksrc_init (GstFramelinkSrc * src)
src->buffer_ready = FALSE; src->buffer_ready = FALSE;
src->buffer_processed_count = 0; src->buffer_processed_count = 0;
src->acq_started = FALSE;
src->caps = NULL; src->caps = NULL;
src->buffer = NULL; src->buffer = NULL;
@ -446,13 +447,16 @@ gst_framelinksrc_stop (GstBaseSrc * bsrc)
GST_DEBUG_OBJECT (src, "stop"); GST_DEBUG_OBJECT (src, "stop");
if (src->acq_started) {
VCECLB_StopGrabEx (src->grabber, src->channel); VCECLB_StopGrabEx (src->grabber, src->channel);
src->acq_started = FALSE;
}
if (src->grabber) {
VCECLB_ReleaseDMAAccessEx (src->grabber, src->channel); VCECLB_ReleaseDMAAccessEx (src->grabber, src->channel);
VCECLB_Done (src->grabber); VCECLB_Done (src->grabber);
src->grabber = NULL; src->grabber = NULL;
}
src->dropped_frame_count = 0; src->dropped_frame_count = 0;