LCOV - code coverage report
Current view: top level - third_party/aom/av1/common - seg_common.c (source / functions) Hit Total Coverage
Test: output.info Lines: 0 18 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
       3             :  *
       4             :  * This source code is subject to the terms of the BSD 2 Clause License and
       5             :  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
       6             :  * was not distributed with this source code in the LICENSE file, you can
       7             :  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
       8             :  * Media Patent License 1.0 was not distributed with this source code in the
       9             :  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
      10             :  */
      11             : 
      12             : #include <assert.h>
      13             : 
      14             : #include "av1/common/av1_loopfilter.h"
      15             : #include "av1/common/blockd.h"
      16             : #include "av1/common/seg_common.h"
      17             : #include "av1/common/quant_common.h"
      18             : 
      19             : static const int seg_feature_data_signed[SEG_LVL_MAX] = { 1, 1, 0, 0 };
      20             : 
      21             : static const int seg_feature_data_max[SEG_LVL_MAX] = { MAXQ, MAX_LOOP_FILTER, 3,
      22             :                                                        0 };
      23             : 
      24             : // These functions provide access to new segment level features.
      25             : // Eventually these function may be "optimized out" but for the moment,
      26             : // the coding mechanism is still subject to change so these provide a
      27             : // convenient single point of change.
      28             : 
      29           0 : void av1_clearall_segfeatures(struct segmentation *seg) {
      30           0 :   av1_zero(seg->feature_data);
      31           0 :   av1_zero(seg->feature_mask);
      32           0 : }
      33             : 
      34           0 : void av1_enable_segfeature(struct segmentation *seg, int segment_id,
      35             :                            SEG_LVL_FEATURES feature_id) {
      36           0 :   seg->feature_mask[segment_id] |= 1 << feature_id;
      37           0 : }
      38             : 
      39           0 : int av1_seg_feature_data_max(SEG_LVL_FEATURES feature_id) {
      40           0 :   return seg_feature_data_max[feature_id];
      41             : }
      42             : 
      43           0 : int av1_is_segfeature_signed(SEG_LVL_FEATURES feature_id) {
      44           0 :   return seg_feature_data_signed[feature_id];
      45             : }
      46             : 
      47           0 : void av1_set_segdata(struct segmentation *seg, int segment_id,
      48             :                      SEG_LVL_FEATURES feature_id, int seg_data) {
      49           0 :   assert(seg_data <= seg_feature_data_max[feature_id]);
      50           0 :   if (seg_data < 0) {
      51           0 :     assert(seg_feature_data_signed[feature_id]);
      52           0 :     assert(-seg_data <= seg_feature_data_max[feature_id]);
      53             :   }
      54             : 
      55           0 :   seg->feature_data[segment_id][feature_id] = seg_data;
      56           0 : }
      57             : 
      58             : const aom_tree_index av1_segment_tree[TREE_SIZE(MAX_SEGMENTS)] = {
      59             :   2, 4, 6, 8, 10, 12, 0, -1, -2, -3, -4, -5, -6, -7
      60             : };
      61             : 
      62             : // TBD? Functions to read and write segment data with range / validity checking

Generated by: LCOV version 1.13