platform.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "../platform.hpp"
  2. #include <util/platform.h>
  3. #include <comdef.h>
  4. IDeckLinkDiscovery *CreateDeckLinkDiscoveryInstance(void)
  5. {
  6. IDeckLinkDiscovery *instance;
  7. const HRESULT result = CoCreateInstance(CLSID_CDeckLinkDiscovery, nullptr, CLSCTX_ALL, IID_IDeckLinkDiscovery,
  8. (void **)&instance);
  9. return result == S_OK ? instance : nullptr;
  10. }
  11. IDeckLinkIterator *CreateDeckLinkIteratorInstance(void)
  12. {
  13. IDeckLinkIterator *iterator;
  14. const HRESULT result = CoCreateInstance(CLSID_CDeckLinkIterator, nullptr, CLSCTX_ALL, IID_IDeckLinkIterator,
  15. (void **)&iterator);
  16. return result == S_OK ? iterator : nullptr;
  17. }
  18. IDeckLinkVideoConversion *CreateVideoConversionInstance(void)
  19. {
  20. IDeckLinkVideoConversion *conversion;
  21. const HRESULT result = CoCreateInstance(CLSID_CDeckLinkVideoConversion, nullptr, CLSCTX_ALL,
  22. IID_IDeckLinkVideoConversion, (void **)&conversion);
  23. return result == S_OK ? conversion : nullptr;
  24. }
  25. bool DeckLinkStringToStdString(decklink_string_t input, std::string &output)
  26. {
  27. if (input == nullptr)
  28. return false;
  29. char *out = _com_util::ConvertBSTRToString(input);
  30. output = std::string(out);
  31. delete[] out;
  32. return true;
  33. }