1 /*
2  *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef VP8_COMMON_ONYXD_H_
12 #define VP8_COMMON_ONYXD_H_
13 
14 /* Create/destroy static data structures. */
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 #include "vpx_scale/yv12config.h"
19 #include "ppflags.h"
20 #include "vpx_ports/mem.h"
21 #include "vpx/vpx_codec.h"
22 #include "vpx/vp8.h"
23 
24 struct VP8D_COMP;
25 
26 typedef struct {
27   int Width;
28   int Height;
29   int Version;
30   int postprocess;
31   int max_threads;
32   int error_concealment;
33 } VP8D_CONFIG;
34 
35 typedef enum { VP8D_OK = 0 } VP8D_SETTING;
36 
37 void vp8dx_initialize(void);
38 
39 void vp8dx_set_setting(struct VP8D_COMP *comp, VP8D_SETTING oxst, int x);
40 
41 int vp8dx_get_setting(struct VP8D_COMP *comp, VP8D_SETTING oxst);
42 
43 int vp8dx_receive_compressed_data(struct VP8D_COMP *comp, size_t size,
44                                   const uint8_t *dest, int64_t time_stamp);
45 int vp8dx_get_raw_frame(struct VP8D_COMP *comp, YV12_BUFFER_CONFIG *sd,
46                         int64_t *time_stamp, int64_t *time_end_stamp,
47                         vp8_ppflags_t *flags);
48 
49 vpx_codec_err_t vp8dx_get_reference(struct VP8D_COMP *comp,
50                                     enum vpx_ref_frame_type ref_frame_flag,
51                                     YV12_BUFFER_CONFIG *sd);
52 vpx_codec_err_t vp8dx_set_reference(struct VP8D_COMP *comp,
53                                     enum vpx_ref_frame_type ref_frame_flag,
54                                     YV12_BUFFER_CONFIG *sd);
55 int vp8dx_get_quantizer(const struct VP8D_COMP *c);
56 
57 #ifdef __cplusplus
58 }
59 #endif
60 
61 #endif  // VP8_COMMON_ONYXD_H_
62