X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decklink_capture.h;h=59c3b02e6096528098e315a64d98034ecfa1b2cf;hb=add2055b0dbc8a6f6cda986a41481ca0061c1e05;hp=f54711674b73757851f14c20c3e5f00fcff8f057;hpb=d836455bb8b4383f7f3f6f3c037bd72691d94e20;p=nageru diff --git a/decklink_capture.h b/decklink_capture.h index f547116..59c3b02 100644 --- a/decklink_capture.h +++ b/decklink_capture.h @@ -36,6 +36,9 @@ public: void set_video_frame_allocator(FrameAllocator *allocator) override { video_frame_allocator = allocator; + if (owned_video_frame_allocator.get() != allocator) { + owned_video_frame_allocator.reset(); + } } FrameAllocator *get_video_frame_allocator() override @@ -47,6 +50,9 @@ public: void set_audio_frame_allocator(FrameAllocator *allocator) override { audio_frame_allocator = allocator; + if (owned_audio_frame_allocator.get() != allocator) { + owned_audio_frame_allocator.reset(); + } } FrameAllocator *get_audio_frame_allocator() override @@ -102,6 +108,8 @@ private: FrameAllocator *video_frame_allocator = nullptr; FrameAllocator *audio_frame_allocator = nullptr; + std::unique_ptr owned_video_frame_allocator; + std::unique_ptr owned_audio_frame_allocator; frame_callback_t frame_callback = nullptr; IDeckLinkConfiguration *config = nullptr;