avi_rgb_decoder.h 777 B

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