DXVA2 Hardware Decoding (#3)

This commit is contained in:
Cameron Gutman
2018-07-13 02:28:10 -07:00
parent 86f843464c
commit 1cae5f83e5
8 changed files with 810 additions and 87 deletions
+34
View File
@@ -0,0 +1,34 @@
#pragma once
#include <SDL.h>
extern "C" {
#include <libavcodec/avcodec.h>
}
class IRenderer {
public:
virtual ~IRenderer() {}
virtual bool initialize(SDL_Window* window,
int videoFormat,
int width,
int height) = 0;
virtual bool prepareDecoderContext(AVCodecContext* context) = 0;
virtual void renderFrame(AVFrame* frame) = 0;
};
class SdlRenderer : public IRenderer {
public:
SdlRenderer();
virtual ~SdlRenderer();
virtual bool initialize(SDL_Window* window,
int videoFormat,
int width,
int height);
virtual bool prepareDecoderContext(AVCodecContext* context);
virtual void renderFrame(AVFrame* frame);
private:
SDL_Renderer* m_Renderer;
SDL_Texture* m_Texture;
};