35 lines
923 B
C++
35 lines
923 B
C++
#pragma once
|
|
#include <Windows.h>
|
|
#include "H264Docoder.h"
|
|
#include "CameraCapture.h"
|
|
extern "C"
|
|
{
|
|
#include "libavcodec/avcodec.h"
|
|
#include "libavformat/avformat.h"
|
|
#include "libavutil/avutil.h"
|
|
#include "libswscale/swscale.h"
|
|
#include "libavutil/opt.h"
|
|
#include "libavutil/imgutils.h"
|
|
#include "sdl/SDL.h"
|
|
};
|
|
|
|
class SDLPlayser : public H264decoder::H264DecodeObserver , public Camera::CameraObserver{
|
|
public:
|
|
SDLPlayser(HWND,int ,int, AVPixelFormat);
|
|
~SDLPlayser();
|
|
int RenderYuv(void *pBuf,uint32_t size, AVPixelFormat pix);
|
|
int OnRecieveData(AVFrame *frame);
|
|
int OnBuffer(double dblSampleTime, BYTE * pBuffer, long lBufferSize) ;
|
|
int OnCameraData(uint8_t *dat, uint32_t size) ;
|
|
private:
|
|
HWND mWindowWnd;
|
|
//SDL---------------------------
|
|
int screen_w = 0, screen_h = 0;
|
|
int mInWidth, mInHeight;
|
|
SDL_Texture* mTexture;
|
|
SDL_Rect sdlRect;
|
|
AVPixelFormat mFormat;
|
|
SDL_Window *mScreen;
|
|
SDL_Renderer *mRender;
|
|
};
|