190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/* 2f71323e297a928af368937089d3ed71239786f86Andreas Huber * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber * 4f71323e297a928af368937089d3ed71239786f86Andreas Huber * Use of this source code is governed by a BSD-style license 5f71323e297a928af368937089d3ed71239786f86Andreas Huber * that can be found in the LICENSE file in the root of the source 6f71323e297a928af368937089d3ed71239786f86Andreas Huber * tree. An additional intellectual property rights grant can be found 7f71323e297a928af368937089d3ed71239786f86Andreas Huber * in the file PATENTS. All contributing project authors may 8f71323e297a928af368937089d3ed71239786f86Andreas Huber * be found in the AUTHORS file in the root of the source tree. 990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber */ 1090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#include "vpx_ports/config.h" 1390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#include <stddef.h> 1490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#if CONFIG_VP8_ENCODER 1690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#include "vpx_scale/yv12config.h" 1790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#endif 1890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#if CONFIG_VP8_DECODER 2090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#include "onyxd_int.h" 2190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#endif 2290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#define DEFINE(sym, val) int sym = val; 2490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/* 2690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#define BLANK() asm volatile("\n->" : : ) 2790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber*/ 2890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/* 3090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber * int main(void) 3190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber * { 3290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber */ 3390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 3490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#if CONFIG_VP8_DECODER || CONFIG_VP8_ENCODER 35f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_y_width, offsetof(YV12_BUFFER_CONFIG, y_width)); 36f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_y_height, offsetof(YV12_BUFFER_CONFIG, y_height)); 37f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_y_stride, offsetof(YV12_BUFFER_CONFIG, y_stride)); 38f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_uv_width, offsetof(YV12_BUFFER_CONFIG, uv_width)); 39f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_uv_height, offsetof(YV12_BUFFER_CONFIG, uv_height)); 40f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_uv_stride, offsetof(YV12_BUFFER_CONFIG, uv_stride)); 41f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_y_buffer, offsetof(YV12_BUFFER_CONFIG, y_buffer)); 42f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_u_buffer, offsetof(YV12_BUFFER_CONFIG, u_buffer)); 43f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(yv12_buffer_config_v_buffer, offsetof(YV12_BUFFER_CONFIG, v_buffer)); 4490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(yv12_buffer_config_border, offsetof(YV12_BUFFER_CONFIG, border)); 4590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#endif 4690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 4790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#if CONFIG_VP8_DECODER 4890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(mb_diff, offsetof(MACROBLOCKD, diff)); 4990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(mb_predictor, offsetof(MACROBLOCKD, predictor)); 50f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(mb_dst_y_stride, offsetof(MACROBLOCKD, dst.y_stride)); 51f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(mb_dst_y_buffer, offsetof(MACROBLOCKD, dst.y_buffer)); 52f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(mb_dst_u_buffer, offsetof(MACROBLOCKD, dst.u_buffer)); 53f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(mb_dst_v_buffer, offsetof(MACROBLOCKD, dst.v_buffer)); 54f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(mb_up_available, offsetof(MACROBLOCKD, up_available)); 55f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(mb_left_available, offsetof(MACROBLOCKD, left_available)); 5690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 5790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(detok_scan, offsetof(DETOK, scan)); 58f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_ptr_block2leftabove, offsetof(DETOK, ptr_block2leftabove)); 59f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_coef_tree_ptr, offsetof(DETOK, vp8_coef_tree_ptr)); 60f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_teb_base_ptr, offsetof(DETOK, teb_base_ptr)); 61f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_norm_ptr, offsetof(DETOK, norm_ptr)); 62f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_ptr_coef_bands_x, offsetof(DETOK, ptr_coef_bands_x)); 6390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 64f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_A, offsetof(DETOK, A)); 65f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_L, offsetof(DETOK, L)); 6690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 67f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_qcoeff_start_ptr, offsetof(DETOK, qcoeff_start_ptr)); 68f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_current_bc, offsetof(DETOK, current_bc)); 69f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(detok_coef_probs, offsetof(DETOK, coef_probs)); 7090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(detok_eob, offsetof(DETOK, eob)); 7190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 72f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(bool_decoder_user_buffer_end, offsetof(BOOL_DECODER, user_buffer_end)); 73f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(bool_decoder_user_buffer, offsetof(BOOL_DECODER, user_buffer)); 7490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(bool_decoder_value, offsetof(BOOL_DECODER, value)); 7590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(bool_decoder_count, offsetof(BOOL_DECODER, count)); 76f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(bool_decoder_range, offsetof(BOOL_DECODER, range)); 7790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 78f71323e297a928af368937089d3ed71239786f86Andreas HuberDEFINE(tokenextrabits_min_val, offsetof(TOKENEXTRABITS, min_val)); 7990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberDEFINE(tokenextrabits_length, offsetof(TOKENEXTRABITS, Length)); 8090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#endif 8190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 8290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber//add asserts for any offset that is not supported by assembly code 8390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber//add asserts for any size that is not supported by assembly code 8490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/* 8590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber * return 0; 8690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber * } 8790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber */ 88