DecklinkBase.h 963 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <map>
  3. #include <vector>
  4. #include <mutex>
  5. #include <obs-module.h>
  6. #include "platform.hpp"
  7. #include "decklink-device-discovery.hpp"
  8. #include "decklink-device-instance.hpp"
  9. #include "decklink-device-mode.hpp"
  10. class DecklinkBase {
  11. protected:
  12. DecklinkBase(DeckLinkDeviceDiscovery *discovery_);
  13. ComPtr<DeckLinkDeviceInstance> instance;
  14. DeckLinkDeviceDiscovery *discovery;
  15. std::recursive_mutex deviceMutex;
  16. volatile long activateRefs = 0;
  17. BMDPixelFormat pixelFormat = bmdFormat8BitYUV;
  18. video_colorspace colorSpace = VIDEO_CS_DEFAULT;
  19. video_range_type colorRange = VIDEO_RANGE_DEFAULT;
  20. speaker_layout channelFormat = SPEAKERS_STEREO;
  21. public:
  22. virtual bool Activate(DeckLinkDevice *device, long long modeId);
  23. virtual bool Activate(DeckLinkDevice *device, long long modeId, BMDVideoConnection bmdVideoConnection,
  24. BMDAudioConnection bmdAudioConnection);
  25. virtual void Deactivate() = 0;
  26. DeckLinkDevice *GetDevice() const;
  27. };