On 4/9/2019 2:26 pm, Nikolay Sivov wrote:
Where does this come from? Is _INVIAL a typo? Ah, right! It should be _INVALID.
+ +struct media_engine_attributes +{ + IMFMediaEngineNotify *callback; + HWND playback_hwnd; + DXGI_FORMAT output_format; + IMFDXGIDeviceManager *dxgi_manager; + enum media_engine_mode mode; +}; + +struct media_engine +{ + IMFMediaEngine IMFMediaEngine_iface; + LONG refcount; + DWORD flags; + struct media_engine_attributes attributes; +}; +
Do you need these structures separate? You can still have init_media_engine() + heap_alloc_zero() in CreateInstance().
I just wanted to avoid allocating memory for a media_engine struct before we making sure attributes are valid and an IMFMediaEngine interface will be created. I will follow your suggestion and send another try. Thanks for the review.