captions-mssapi.hpp 920 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include "captions-handler.hpp"
  3. #include "captions-mssapi-stream.hpp"
  4. #include <util/windows/HRError.hpp>
  5. #include <util/windows/ComPtr.hpp>
  6. #include <util/windows/WinHandle.hpp>
  7. #include <util/windows/CoTaskMemPtr.hpp>
  8. #include <util/threading.h>
  9. #include <util/platform.h>
  10. #include <sphelper.h>
  11. #include <obs.hpp>
  12. #include <thread>
  13. class mssapi_captions : public captions_handler {
  14. friend class CaptionStream;
  15. ComPtr<CaptionStream> audio;
  16. ComPtr<ISpObjectToken> token;
  17. ComPtr<ISpRecoGrammar> grammar;
  18. ComPtr<ISpRecognizer> recognizer;
  19. ComPtr<ISpRecoContext> context;
  20. HANDLE notify;
  21. WinHandle stop;
  22. std::thread t;
  23. bool started = false;
  24. void main_thread();
  25. public:
  26. mssapi_captions(captions_cb callback, const std::string &lang);
  27. virtual ~mssapi_captions();
  28. virtual void pcm_data(const void *data, size_t frames) override;
  29. };