Changed pixel format used by SDL2 to render the frame

This commit is contained in:
selim mustafaev 2016-12-04 00:17:19 +03:00
parent c005ce08c2
commit 4b03986c7b

View File

@ -14,7 +14,7 @@ namespace ff = ffcpp;
class SDLWindow: public ff::IVideoSink {
private:
template<typename T> using SDLUniquePtr = std::unique_ptr<T, DECLSPEC void SDLCALL(*)(T*)>;
template<typename T> using SDLUniquePtr = std::unique_ptr<T, void(*)(T*)>;
using SDLWindowPtr = SDLUniquePtr<SDL_Window>;
using SDLRendererPtr = SDLUniquePtr<SDL_Renderer>;
using SDLTexturePtr = SDLUniquePtr<SDL_Texture>;
@ -35,7 +35,7 @@ public:
_renderer.reset(SDL_CreateRenderer(_wnd.get(), -1, 0));
if(!_renderer) throw std::runtime_error("Error creating SDL renderer");
_texture.reset(SDL_CreateTexture(_renderer.get(), SDL_PIXELFORMAT_YV12, SDL_TEXTUREACCESS_STREAMING, WINDOW_WIDTH, WINDOW_HEIGHT));
_texture.reset(SDL_CreateTexture(_renderer.get(), SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, WINDOW_WIDTH, WINDOW_HEIGHT));
if(!_texture) throw std::runtime_error("Error creating SDL texture");
}
@ -65,7 +65,7 @@ public:
SDL_RenderClear(_renderer.get());
SDL_RenderCopy(_renderer.get(), _texture.get(), nullptr, nullptr);
SDL_RenderPresent(_renderer.get());
//std::this_thread::sleep_for(std::chrono::milliseconds(40));
std::this_thread::sleep_for(std::chrono::milliseconds(40));
}
};