DecklinkBase.h 972 B

123456789101112131415161718192021222324252627282930313233343536
  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,
  24. BMDVideoConnection bmdVideoConnection,
  25. BMDAudioConnection bmdAudioConnection);
  26. virtual void Deactivate() = 0;
  27. DeckLinkDevice *GetDevice() const;
  28. };