• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __BASEDECODERTEST_H__
2 #define __BASEDECODERTEST_H__
3 
4 #include "test_stdint.h"
5 #include <limits.h>
6 #include <fstream>
7 #include "codec_api.h"
8 
9 #include "utils/BufferedData.h"
10 
11 class BaseDecoderTest {
12  public:
13   struct Plane {
14     const uint8_t* data;
15     int width;
16     int height;
17     int stride;
18   };
19 
20   struct Frame {
21     Plane y;
22     Plane u;
23     Plane v;
24   };
25 
26   struct Callback {
27     virtual void onDecodeFrame (const Frame& frame) = 0;
28   };
29 
30   BaseDecoderTest();
31   int32_t SetUp();
32   void TearDown();
33   bool DecodeFile (const char* fileName, Callback* cbk);
34 
35   bool Open (const char* fileName);
36   bool DecodeNextFrame (Callback* cbk);
37   ISVCDecoder* decoder_;
38 
39  private:
40   void DecodeFrame (const uint8_t* src, size_t sliceSize, Callback* cbk);
41   void FlushFrame (Callback* cbk);
42 
43   std::ifstream file_;
44   BufferedData buf_;
45   enum {\
46     OpenFile,
47     Decoding,
48     EndOfStream,
49     End
50   } decodeStatus_;
51 };
52 
53 #endif //__BASEDECODERTEST_H__
54