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 12 #ifndef __INC_VP8D_H 13 #define __INC_VP8D_H 14 15 16 /* Create/destroy static data structures. */ 17 #ifdef __cplusplus 18 extern "C" 19 { 20 #endif 21 #include "type_aliases.h" 22 #include "vpx_scale/yv12config.h" 23 #include "ppflags.h" 24 #include "vpx_ports/mem.h" 25 26 typedef void *VP8D_PTR; 27 typedef struct 28 { 29 int Width; 30 int Height; 31 int Version; 32 int postprocess; 33 int max_threads; 34 } VP8D_CONFIG; 35 typedef enum 36 { 37 VP8_LAST_FLAG = 1, 38 VP8_GOLD_FLAG = 2, 39 VP8_ALT_FLAG = 4 40 } VP8_REFFRAME; 41 42 typedef enum 43 { 44 VP8D_OK = 0 45 } VP8D_SETTING; 46 47 void vp8dx_initialize(void); 48 49 void vp8dx_set_setting(VP8D_PTR comp, VP8D_SETTING oxst, int x); 50 51 int vp8dx_get_setting(VP8D_PTR comp, VP8D_SETTING oxst); 52 53 int vp8dx_receive_compressed_data(VP8D_PTR comp, unsigned long size, const unsigned char *dest, INT64 time_stamp); 54 int vp8dx_get_raw_frame(VP8D_PTR comp, YV12_BUFFER_CONFIG *sd, INT64 *time_stamp, INT64 *time_end_stamp, vp8_ppflags_t *flags); 55 56 int vp8dx_get_reference(VP8D_PTR comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd); 57 int vp8dx_set_reference(VP8D_PTR comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd); 58 59 VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf); 60 61 void vp8dx_remove_decompressor(VP8D_PTR comp); 62 63 #ifdef __cplusplus 64 } 65 #endif 66 67 68 #endif 69