chromium/third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.c

/*
  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include <assert.h>

#include "vp9/common/vp9_common.h"
#include "vp9/common/vp9_entropy.h"
#include "vp9/common/vp9_entropymode.h"
#include "vp9/common/vp9_entropymv.h"
#include "vp9/common/vp9_mvref_common.h"
#include "vp9/common/vp9_pred_common.h"
#include "vp9/common/vp9_reconinter.h"
#include "vp9/common/vp9_seg_common.h"

#include "vp9/decoder/vp9_decodemv.h"
#include "vp9/decoder/vp9_decodeframe.h"

#include "vpx_dsp/vpx_dsp_common.h"

static PREDICTION_MODE read_intra_mode(vpx_reader *r, const vpx_prob *p) {}

static PREDICTION_MODE read_intra_mode_y(VP9_COMMON *cm, MACROBLOCKD *xd,
                                         vpx_reader *r, int size_group) {}

static PREDICTION_MODE read_intra_mode_uv(VP9_COMMON *cm, MACROBLOCKD *xd,
                                          vpx_reader *r,
                                          PREDICTION_MODE y_mode) {}

static PREDICTION_MODE read_inter_mode(VP9_COMMON *cm, MACROBLOCKD *xd,
                                       vpx_reader *r, int ctx) {}

static int read_segment_id(vpx_reader *r, const struct segmentation *seg) {}

static TX_SIZE read_selected_tx_size(VP9_COMMON *cm, MACROBLOCKD *xd,
                                     TX_SIZE max_tx_size, vpx_reader *r) {}

static INLINE TX_SIZE read_tx_size(VP9_COMMON *cm, MACROBLOCKD *xd,
                                   int allow_select, vpx_reader *r) {}

static int dec_get_segment_id(const VP9_COMMON *cm, const uint8_t *segment_ids,
                              int mi_offset, int x_mis, int y_mis) {}

static void set_segment_id(VP9_COMMON *cm, int mi_offset, int x_mis, int y_mis,
                           int segment_id) {}

static void copy_segment_id(const VP9_COMMON *cm,
                            const uint8_t *last_segment_ids,
                            uint8_t *current_segment_ids, int mi_offset,
                            int x_mis, int y_mis) {}

static int read_intra_segment_id(VP9_COMMON *const cm, int mi_offset, int x_mis,
                                 int y_mis, vpx_reader *r) {}

static int read_inter_segment_id(VP9_COMMON *const cm, MACROBLOCKD *const xd,
                                 int mi_row, int mi_col, vpx_reader *r,
                                 int x_mis, int y_mis) {}

static int read_skip(VP9_COMMON *cm, const MACROBLOCKD *xd, int segment_id,
                     vpx_reader *r) {}

static void read_intra_frame_mode_info(VP9_COMMON *const cm,
                                       MACROBLOCKD *const xd, int mi_row,
                                       int mi_col, vpx_reader *r, int x_mis,
                                       int y_mis) {}

static int read_mv_component(vpx_reader *r, const nmv_component *mvcomp,
                             int usehp) {}

static INLINE void read_mv(vpx_reader *r, MV *mv, const MV *ref,
                           const nmv_context *ctx, nmv_context_counts *counts,
                           int allow_hp) {}

static REFERENCE_MODE read_block_reference_mode(VP9_COMMON *cm,
                                                const MACROBLOCKD *xd,
                                                vpx_reader *r) {}

// Read the reference frame
static void read_ref_frames(VP9_COMMON *const cm, MACROBLOCKD *const xd,
                            vpx_reader *r, int segment_id,
                            MV_REFERENCE_FRAME ref_frame[2]) {}

static INLINE INTERP_FILTER read_switchable_interp_filter(VP9_COMMON *const cm,
                                                          MACROBLOCKD *const xd,
                                                          vpx_reader *r) {}

static void read_intra_block_mode_info(VP9_COMMON *const cm,
                                       MACROBLOCKD *const xd, MODE_INFO *mi,
                                       vpx_reader *r) {}

static INLINE int is_mv_valid(const MV *mv) {}

static INLINE void copy_mv_pair(int_mv *dst, const int_mv *src) {}

static INLINE void zero_mv_pair(int_mv *dst) {}

static INLINE int assign_mv(VP9_COMMON *cm, MACROBLOCKD *xd,
                            PREDICTION_MODE mode, int_mv mv[2],
                            int_mv ref_mv[2], int_mv near_nearest_mv[2],
                            int is_compound, int allow_hp, vpx_reader *r) {}

static int read_is_inter_block(VP9_COMMON *const cm, MACROBLOCKD *const xd,
                               int segment_id, vpx_reader *r) {}

// This macro is used to add a motion vector mv_ref list if it isn't
// already in the list.  If it's the second motion vector or early_break
// it will also skip all additional processing and jump to Done!
#define ADD_MV_REF_LIST_EB(mv, refmv_count, mv_ref_list, Done)

// If either reference frame is different, not INTRA, and they
// are different from each other scale and add the mv to our list.
#define IF_DIFF_REF_FRAME_ADD_MV_EB(mbmi, ref_frame, ref_sign_bias,       \
                                    refmv_count, mv_ref_list, Done)

// This function searches the neighborhood of a given MB/SB
// to try and find candidate reference vectors.
static int dec_find_mv_refs(const VP9_COMMON *cm, const MACROBLOCKD *xd,
                            PREDICTION_MODE mode, MV_REFERENCE_FRAME ref_frame,
                            const POSITION *const mv_ref_search,
                            int_mv *mv_ref_list, int mi_row, int mi_col,
                            int block) {}

static void append_sub8x8_mvs_for_idx(VP9_COMMON *cm, MACROBLOCKD *xd,
                                      const POSITION *const mv_ref_search,
                                      PREDICTION_MODE b_mode, int block,
                                      int ref, int mi_row, int mi_col,
                                      int_mv *best_sub8x8) {}

static uint8_t get_mode_context(const VP9_COMMON *cm, const MACROBLOCKD *xd,
                                const POSITION *const mv_ref_search, int mi_row,
                                int mi_col) {}

static void read_inter_block_mode_info(VP9Decoder *const pbi,
                                       MACROBLOCKD *const xd,
                                       MODE_INFO *const mi, int mi_row,
                                       int mi_col, vpx_reader *r) {}

static void read_inter_frame_mode_info(VP9Decoder *const pbi,
                                       MACROBLOCKD *const xd, int mi_row,
                                       int mi_col, vpx_reader *r, int x_mis,
                                       int y_mis) {}

static INLINE void copy_ref_frame_pair(MV_REFERENCE_FRAME *dst,
                                       const MV_REFERENCE_FRAME *src) {}

void vp9_read_mode_info(TileWorkerData *twd, VP9Decoder *const pbi, int mi_row,
                        int mi_col, int x_mis, int y_mis) {}