blob: 00a97d97d137d81dff56634c1bb9da130b8c7109 [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
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, int deblock_level, int noise_level, int 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