X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bmusb.h;h=96a2257f8549279dc0000c7b31dfb2df8709e62a;hb=cd863aa837174f6a3fa5862323d82dab8f0030f8;hp=c7a5224d4ad31a41f5846123dc363a8be4c3fd46;hpb=dae0dae8694ebf5e1255c17dca18dc03e4a0d961;p=bmusb diff --git a/bmusb.h b/bmusb.h index c7a5224..96a2257 100644 --- a/bmusb.h +++ b/bmusb.h @@ -105,6 +105,7 @@ class BMUSBCapture { void configure_card(); void start_bm_capture(); + void stop_dequeue_thread(); static void start_bm_thread(); static void stop_bm_thread(); @@ -120,7 +121,7 @@ class BMUSBCapture { void start_new_frame(const uint8_t *start); void queue_frame(uint16_t format, uint16_t timecode, FrameAllocator::Frame frame, std::deque *q); - void dequeue_thread(); + void dequeue_thread_func(); static void usb_thread_func(); static void cb_xfr(struct libusb_transfer *xfr); @@ -137,6 +138,8 @@ class BMUSBCapture { FrameAllocator *audio_frame_allocator = nullptr; frame_callback_t frame_callback = nullptr; + std::thread dequeue_thread; + std::atomic dequeue_thread_should_quit; bool has_dequeue_callbacks = false; std::function dequeue_init_callback = nullptr; std::function dequeue_cleanup_callback = nullptr;