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 VP9_DECODER_VP9_ONYXD_H_ 12 #define VP9_DECODER_VP9_ONYXD_H_ 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 #include "vpx_scale/yv12config.h" 19 #include "vp9/common/vp9_ppflags.h" 20 #include "vpx/vpx_codec.h" 21 22 typedef void *VP9D_PTR; 23 24 typedef struct { 25 int width; 26 int height; 27 int version; 28 int postprocess; 29 int max_threads; 30 int inv_tile_order; 31 int input_partition; 32 } VP9D_CONFIG; 33 34 typedef enum { 35 VP9_LAST_FLAG = 1, 36 VP9_GOLD_FLAG = 2, 37 VP9_ALT_FLAG = 4 38 } VP9_REFFRAME; 39 40 void vp9_initialize_dec(); 41 42 int vp9_receive_compressed_data(VP9D_PTR comp, 43 size_t size, const uint8_t **dest, 44 int64_t time_stamp); 45 46 int vp9_get_raw_frame(VP9D_PTR comp, YV12_BUFFER_CONFIG *sd, 47 int64_t *time_stamp, int64_t *time_end_stamp, 48 vp9_ppflags_t *flags); 49 50 vpx_codec_err_t vp9_copy_reference_dec(VP9D_PTR comp, 51 VP9_REFFRAME ref_frame_flag, 52 YV12_BUFFER_CONFIG *sd); 53 54 vpx_codec_err_t vp9_set_reference_dec(VP9D_PTR comp, 55 VP9_REFFRAME ref_frame_flag, 56 YV12_BUFFER_CONFIG *sd); 57 58 int vp9_get_reference_dec(VP9D_PTR ptr, int index, YV12_BUFFER_CONFIG **fb); 59 60 61 VP9D_PTR vp9_create_decompressor(VP9D_CONFIG *oxcf); 62 63 void vp9_remove_decompressor(VP9D_PTR comp); 64 65 #ifdef __cplusplus 66 } 67 #endif 68 69 #endif // VP9_DECODER_VP9_ONYXD_H_ 70