Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / libvpx / source / libvpx / vp9 / decoder / vp9_onyxd_int.h
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_INT_H_
12 #define VP9_DECODER_VP9_ONYXD_INT_H_
13
14 #include "./vpx_config.h"
15
16 #include "vp9/common/vp9_onyxc_int.h"
17 #include "vp9/decoder/vp9_dthread.h"
18 #include "vp9/decoder/vp9_onyxd.h"
19 #include "vp9/decoder/vp9_thread.h"
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 typedef struct VP9Decompressor {
26   DECLARE_ALIGNED(16, MACROBLOCKD, mb);
27
28   DECLARE_ALIGNED(16, VP9_COMMON, common);
29
30   DECLARE_ALIGNED(16, int16_t,  dqcoeff[MAX_MB_PLANE][64 * 64]);
31
32   VP9D_CONFIG oxcf;
33
34   const uint8_t *source;
35   size_t source_sz;
36
37   int64_t last_time_stamp;
38   int ready_for_new_data;
39
40   int refresh_frame_flags;
41
42   int decoded_key_frame;
43
44   int initial_width;
45   int initial_height;
46
47   int do_loopfilter_inline;  // apply loopfilter to available rows immediately
48   VP9Worker lf_worker;
49
50   VP9Worker *tile_workers;
51   int num_tile_workers;
52
53   VP9LfSync lf_row_sync;
54
55   /* Each tile column has its own MODE_INFO stream. This array indexes them by
56      tile column index. */
57   MODE_INFO **mi_streams;
58
59   ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
60   PARTITION_CONTEXT *above_seg_context;
61 } VP9D_COMP;
62
63 #ifdef __cplusplus
64 }  // extern "C"
65 #endif
66
67 #endif  // VP9_DECODER_VP9_ONYXD_INT_H_