blob: d3e5c2fa750ad94c591a93bf1291815b9c7d162d [file] [log] [blame]
John Koleszar0ea50ce2010-05-18 11:58:33 -04001/*
John Koleszarc2140b82010-09-09 08:16:39 -04002 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
John Koleszar0ea50ce2010-05-18 11:58:33 -04003 *
John Koleszar94c52e42010-06-18 12:39:21 -04004 * Use of this source code is governed by a BSD-style license
John Koleszar09202d82010-06-04 16:19:40 -04005 * 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
John Koleszar94c52e42010-06-18 12:39:21 -04007 * in the file PATENTS. All contributing project authors may
John Koleszar09202d82010-06-04 16:19:40 -04008 * be found in the AUTHORS file in the root of the source tree.
John Koleszar0ea50ce2010-05-18 11:58:33 -04009 */
10
11
12#ifndef __INC_VP8D_H
13#define __INC_VP8D_H
14
15
16/* Create/destroy static data structures. */
17#ifdef __cplusplus
18extern "C"
19{
20#endif
John Koleszarb5ea2fb2011-06-29 11:41:50 -040021#include "vpx/vpx_codec.h"
John Koleszar0ea50ce2010-05-18 11:58:33 -040022#include "type_aliases.h"
23#include "vpx_scale/yv12config.h"
24#include "ppflags.h"
25#include "vpx_ports/mem.h"
James Berry2bd90c12011-06-22 12:41:17 -040026#include "vpx/vpx_codec.h"
John Koleszar0ea50ce2010-05-18 11:58:33 -040027
28 typedef void *VP8D_PTR;
29 typedef struct
30 {
31 int Width;
32 int Height;
33 int Version;
34 int postprocess;
35 int max_threads;
Stefan Holmerd04f8522011-05-02 15:30:51 +020036 int error_concealment;
Stefan Holmer7296b3f2011-06-13 16:42:27 +020037 int input_partition;
John Koleszar0ea50ce2010-05-18 11:58:33 -040038 } VP8D_CONFIG;
39 typedef enum
40 {
41 VP8_LAST_FLAG = 1,
42 VP8_GOLD_FLAG = 2,
43 VP8_ALT_FLAG = 4
44 } VP8_REFFRAME;
45
46 typedef enum
47 {
48 VP8D_OK = 0
49 } VP8D_SETTING;
50
51 void vp8dx_initialize(void);
52
53 void vp8dx_set_setting(VP8D_PTR comp, VP8D_SETTING oxst, int x);
54
55 int vp8dx_get_setting(VP8D_PTR comp, VP8D_SETTING oxst);
56
James Zernb45065d2011-07-25 18:44:59 -070057 int vp8dx_receive_compressed_data(VP8D_PTR comp, unsigned long size, const unsigned char *dest, int64_t time_stamp);
58 int vp8dx_get_raw_frame(VP8D_PTR comp, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags);
John Koleszar0ea50ce2010-05-18 11:58:33 -040059
James Berry2bd90c12011-06-22 12:41:17 -040060 vpx_codec_err_t vp8dx_get_reference(VP8D_PTR comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
61 vpx_codec_err_t vp8dx_set_reference(VP8D_PTR comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
John Koleszar0ea50ce2010-05-18 11:58:33 -040062
63 VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf);
64
65 void vp8dx_remove_decompressor(VP8D_PTR comp);
66
67#ifdef __cplusplus
68}
69#endif
70
71
72#endif