11b362b15af34006e6a11974088a46d42b903418eJohann/* 21b362b15af34006e6a11974088a46d42b903418eJohann * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 31b362b15af34006e6a11974088a46d42b903418eJohann * 41b362b15af34006e6a11974088a46d42b903418eJohann * Use of this source code is governed by a BSD-style license 51b362b15af34006e6a11974088a46d42b903418eJohann * that can be found in the LICENSE file in the root of the source 61b362b15af34006e6a11974088a46d42b903418eJohann * tree. An additional intellectual property rights grant can be found 71b362b15af34006e6a11974088a46d42b903418eJohann * in the file PATENTS. All contributing project authors may 81b362b15af34006e6a11974088a46d42b903418eJohann * be found in the AUTHORS file in the root of the source tree. 91b362b15af34006e6a11974088a46d42b903418eJohann */ 101b362b15af34006e6a11974088a46d42b903418eJohann 111b362b15af34006e6a11974088a46d42b903418eJohann 12b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#ifndef VP8_COMMON_ONYXD_H_ 13b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#define VP8_COMMON_ONYXD_H_ 141b362b15af34006e6a11974088a46d42b903418eJohann 151b362b15af34006e6a11974088a46d42b903418eJohann 161b362b15af34006e6a11974088a46d42b903418eJohann/* Create/destroy static data structures. */ 171b362b15af34006e6a11974088a46d42b903418eJohann#ifdef __cplusplus 181b362b15af34006e6a11974088a46d42b903418eJohannextern "C" 191b362b15af34006e6a11974088a46d42b903418eJohann{ 201b362b15af34006e6a11974088a46d42b903418eJohann#endif 211b362b15af34006e6a11974088a46d42b903418eJohann#include "vpx_scale/yv12config.h" 221b362b15af34006e6a11974088a46d42b903418eJohann#include "ppflags.h" 231b362b15af34006e6a11974088a46d42b903418eJohann#include "vpx_ports/mem.h" 241b362b15af34006e6a11974088a46d42b903418eJohann#include "vpx/vpx_codec.h" 251b362b15af34006e6a11974088a46d42b903418eJohann#include "vpx/vp8.h" 261b362b15af34006e6a11974088a46d42b903418eJohann 271b362b15af34006e6a11974088a46d42b903418eJohann struct VP8D_COMP; 281b362b15af34006e6a11974088a46d42b903418eJohann 291b362b15af34006e6a11974088a46d42b903418eJohann typedef struct 301b362b15af34006e6a11974088a46d42b903418eJohann { 311b362b15af34006e6a11974088a46d42b903418eJohann int Width; 321b362b15af34006e6a11974088a46d42b903418eJohann int Height; 331b362b15af34006e6a11974088a46d42b903418eJohann int Version; 341b362b15af34006e6a11974088a46d42b903418eJohann int postprocess; 351b362b15af34006e6a11974088a46d42b903418eJohann int max_threads; 361b362b15af34006e6a11974088a46d42b903418eJohann int error_concealment; 371b362b15af34006e6a11974088a46d42b903418eJohann } VP8D_CONFIG; 381b362b15af34006e6a11974088a46d42b903418eJohann 391b362b15af34006e6a11974088a46d42b903418eJohann typedef enum 401b362b15af34006e6a11974088a46d42b903418eJohann { 411b362b15af34006e6a11974088a46d42b903418eJohann VP8D_OK = 0 421b362b15af34006e6a11974088a46d42b903418eJohann } VP8D_SETTING; 431b362b15af34006e6a11974088a46d42b903418eJohann 441b362b15af34006e6a11974088a46d42b903418eJohann void vp8dx_initialize(void); 451b362b15af34006e6a11974088a46d42b903418eJohann 461b362b15af34006e6a11974088a46d42b903418eJohann void vp8dx_set_setting(struct VP8D_COMP* comp, VP8D_SETTING oxst, int x); 471b362b15af34006e6a11974088a46d42b903418eJohann 481b362b15af34006e6a11974088a46d42b903418eJohann int vp8dx_get_setting(struct VP8D_COMP* comp, VP8D_SETTING oxst); 491b362b15af34006e6a11974088a46d42b903418eJohann 501b362b15af34006e6a11974088a46d42b903418eJohann int vp8dx_receive_compressed_data(struct VP8D_COMP* comp, 511b362b15af34006e6a11974088a46d42b903418eJohann size_t size, const uint8_t *dest, 521b362b15af34006e6a11974088a46d42b903418eJohann int64_t time_stamp); 531b362b15af34006e6a11974088a46d42b903418eJohann int vp8dx_get_raw_frame(struct VP8D_COMP* comp, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags); 541b362b15af34006e6a11974088a46d42b903418eJohann 551b362b15af34006e6a11974088a46d42b903418eJohann vpx_codec_err_t vp8dx_get_reference(struct VP8D_COMP* comp, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd); 561b362b15af34006e6a11974088a46d42b903418eJohann vpx_codec_err_t vp8dx_set_reference(struct VP8D_COMP* comp, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd); 571b362b15af34006e6a11974088a46d42b903418eJohann 581b362b15af34006e6a11974088a46d42b903418eJohann#ifdef __cplusplus 591b362b15af34006e6a11974088a46d42b903418eJohann} 601b362b15af34006e6a11974088a46d42b903418eJohann#endif 611b362b15af34006e6a11974088a46d42b903418eJohann 621b362b15af34006e6a11974088a46d42b903418eJohann 63b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#endif // VP8_COMMON_ONYXD_H_ 64