2017-06-29 19:01:10 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "captions-handler.hpp"
|
|
|
|
#include "captions-mssapi-stream.hpp"
|
|
|
|
#include <util/windows/HRError.hpp>
|
|
|
|
#include <util/windows/ComPtr.hpp>
|
|
|
|
#include <util/windows/WinHandle.hpp>
|
|
|
|
#include <util/windows/CoTaskMemPtr.hpp>
|
|
|
|
#include <util/threading.h>
|
|
|
|
#include <util/platform.h>
|
2018-02-19 19:54:37 +00:00
|
|
|
|
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma warning(push)
|
|
|
|
#pragma warning(disable : 4996)
|
|
|
|
#endif
|
|
|
|
|
2017-06-29 19:01:10 +00:00
|
|
|
#include <sphelper.h>
|
|
|
|
|
2018-02-19 19:54:37 +00:00
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma warning(pop)
|
|
|
|
#endif
|
|
|
|
|
2017-06-29 19:01:10 +00:00
|
|
|
#include <obs.hpp>
|
|
|
|
|
|
|
|
#include <thread>
|
|
|
|
|
|
|
|
class mssapi_captions : public captions_handler {
|
|
|
|
friend class CaptionStream;
|
|
|
|
|
|
|
|
ComPtr<CaptionStream> audio;
|
|
|
|
ComPtr<ISpObjectToken> token;
|
|
|
|
ComPtr<ISpRecoGrammar> grammar;
|
|
|
|
ComPtr<ISpRecognizer> recognizer;
|
|
|
|
ComPtr<ISpRecoContext> context;
|
|
|
|
|
|
|
|
HANDLE notify;
|
|
|
|
WinHandle stop;
|
|
|
|
std::thread t;
|
|
|
|
bool started = false;
|
|
|
|
|
|
|
|
void main_thread();
|
|
|
|
|
|
|
|
public:
|
|
|
|
mssapi_captions(captions_cb callback, const std::string &lang);
|
|
|
|
virtual ~mssapi_captions();
|
|
|
|
virtual void pcm_data(const void *data, size_t frames) override;
|
|
|
|
};
|