avi_rle_decoder.h 802 B

12345678910111213141516171819202122232425
  1. #pragma once
  2. #include "../Plugins/Input/in_avi/ifc_avivideodecoder.h"
  3. #include "../nsavi/avi_header.h"
  4. class AVIRLE : public ifc_avivideodecoder
  5. {
  6. public:
  7. AVIRLE(void *video_frame, nsavi::video_format *stream_format, size_t video_frame_size);
  8. static AVIRLE *CreateDecoder(nsavi::video_format *stream_format);
  9. int GetOutputProperties(int *x, int *y, int *color_format, double *aspect_ratio, int *flip);
  10. int DecodeChunk(uint16_t type, const void *inputBuffer, size_t inputBufferBytes);
  11. void Flush();
  12. void Close();
  13. int GetPicture(void **data, void **decoder_data);
  14. int GetPalette(RGB32 **palette);
  15. private:
  16. nsavi::video_format *stream_format;
  17. size_t video_frame_size;
  18. uint8_t *video_frame;
  19. bool video_outputted;
  20. RGBQUAD palette[256];
  21. bool palette_retrieved;
  22. protected:
  23. RECVS_DISPATCH;
  24. };