LCOV - code coverage report
Current view: top level - media/libvpx/libvpx/vp9/common - vp9_seg_common.c (source / functions) Hit Total Coverage
Test: output.info Lines: 0 19 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) 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             : #include <assert.h>
      12             : 
      13             : #include "vp9/common/vp9_blockd.h"
      14             : #include "vp9/common/vp9_loopfilter.h"
      15             : #include "vp9/common/vp9_seg_common.h"
      16             : #include "vp9/common/vp9_quant_common.h"
      17             : 
      18             : static const int seg_feature_data_signed[SEG_LVL_MAX] = { 1, 1, 0, 0 };
      19             : 
      20             : static const int seg_feature_data_max[SEG_LVL_MAX] = { MAXQ, MAX_LOOP_FILTER, 3,
      21             :                                                        0 };
      22             : 
      23             : // These functions provide access to new segment level features.
      24             : // Eventually these function may be "optimized out" but for the moment,
      25             : // the coding mechanism is still subject to change so these provide a
      26             : // convenient single point of change.
      27             : 
      28           0 : void vp9_clearall_segfeatures(struct segmentation *seg) {
      29           0 :   vp9_zero(seg->feature_data);
      30           0 :   vp9_zero(seg->feature_mask);
      31           0 :   seg->aq_av_offset = 0;
      32           0 : }
      33             : 
      34           0 : void vp9_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 vp9_seg_feature_data_max(SEG_LVL_FEATURES feature_id) {
      40           0 :   return seg_feature_data_max[feature_id];
      41             : }
      42             : 
      43           0 : int vp9_is_segfeature_signed(SEG_LVL_FEATURES feature_id) {
      44           0 :   return seg_feature_data_signed[feature_id];
      45             : }
      46             : 
      47           0 : void vp9_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 vpx_tree_index vp9_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