summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/native/svq1.h
blob: feeda4a9ee0d3a093785a67a0180502e6fd06adf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

#define SVQ1_BLOCK_SKIP		0
#define SVQ1_BLOCK_INTER	1
#define SVQ1_BLOCK_INTER_4V	2
#define SVQ1_BLOCK_INTRA	3

#define SVQ1_FRAME_INTRA	0
#define SVQ1_FRAME_INTER	1
#define SVQ1_FRAME_DROPPABLE	2

/* motion vector (prediction) */
typedef struct svq1_pmv_s {
  int		 x;
  int		 y;
} svq1_pmv_t;

typedef struct svq1_s {
  int		 frame_code;
  int		 frame_type;
  int		 frame_width;
  int		 frame_height;
  int		 luma_width;
  int		 luma_height;
  int		 chroma_width;
  int		 chroma_height;
  svq1_pmv_t	*motion;
  uint8_t	*current;
  uint8_t	*previous;
  int		 offsets[3];
  int		 reference_frame;
 
  uint8_t	*base[3];
  int		 width;
  int		 height;
} svq1_t;

int svq1_decode_frame (svq1_t *svq1, uint8_t *buffer);
void svq1_free (svq1_t *svq1);