Coverage Report

Created: 2026-06-15 06:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libvpx/vpx_dsp/bitwriter.h
Line
Count
Source
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 VPX_VPX_DSP_BITWRITER_H_
12
#define VPX_VPX_DSP_BITWRITER_H_
13
14
#include <stdio.h>
15
16
#include "vpx_ports/compiler_attributes.h"
17
#include "vpx_ports/mem.h"
18
19
#include "vpx_dsp/prob.h"
20
#if CONFIG_BITSTREAM_DEBUG
21
#include "vpx_util/vpx_debug_util.h"
22
#endif  // CONFIG_BITSTREAM_DEBUG
23
24
#ifdef __cplusplus
25
extern "C" {
26
#endif
27
28
typedef struct vpx_writer {
29
  unsigned int lowvalue;
30
  unsigned int range;
31
  int count;
32
  // Whether there has been an error.
33
  int error;
34
  // We maintain the invariant that pos <= size, i.e., we never write beyond
35
  // the end of the buffer. If pos would be incremented to be greater than
36
  // size, leave pos unchanged and set error to 1.
37
  unsigned int pos;
38
  unsigned int size;
39
  uint8_t *buffer;
40
} vpx_writer;
41
42
void vpx_start_encode(vpx_writer *br, uint8_t *source, size_t size);
43
// Returns 0 on success and returns -1 in case of error.
44
int vpx_stop_encode(vpx_writer *br);
45
46
static INLINE VPX_NO_UNSIGNED_SHIFT_CHECK void vpx_write(vpx_writer *br,
47
                                                         int bit,
48
1.29G
                                                         int probability) {
49
1.29G
  unsigned int split;
50
1.29G
  int count = br->count;
51
1.29G
  unsigned int range = br->range;
52
1.29G
  unsigned int lowvalue = br->lowvalue;
53
1.29G
  int shift;
54
55
#if CONFIG_BITSTREAM_DEBUG
56
  /*
57
  int queue_r = 0;
58
  int frame_idx_r = 0;
59
  int queue_w = bitstream_queue_get_write();
60
  int frame_idx_w = bitstream_queue_get_frame_write();
61
  if (frame_idx_w == frame_idx_r && queue_w == queue_r) {
62
    fprintf(stderr, "\n *** bitstream queue at frame_idx_w %d queue_w %d\n",
63
            frame_idx_w, queue_w);
64
    assert(0);
65
  }
66
  */
67
  bitstream_queue_push(bit, probability);
68
#endif
69
70
1.29G
  split = 1 + (((range - 1) * probability) >> 8);
71
72
1.29G
  range = split;
73
74
1.29G
  if (bit) {
75
627M
    lowvalue += split;
76
627M
    range = br->range - split;
77
627M
  }
78
79
1.29G
  shift = vpx_norm[range];
80
81
1.29G
  range <<= shift;
82
1.29G
  count += shift;
83
84
1.29G
  if (count >= 0) {
85
108M
    int offset = shift - count;
86
87
108M
    if (!br->error) {
88
108M
      if ((lowvalue << (offset - 1)) & 0x80000000) {
89
1.02k
        int x = (int)br->pos - 1;
90
91
1.34k
        while (x >= 0 && br->buffer[x] == 0xff) {
92
327
          br->buffer[x] = 0;
93
327
          x--;
94
327
        }
95
96
        // TODO(wtc): How to prove x >= 0?
97
1.02k
        br->buffer[x] += 1;
98
1.02k
      }
99
100
108M
      if (br->pos < br->size) {
101
108M
        br->buffer[br->pos++] = (lowvalue >> (24 - offset)) & 0xff;
102
108M
      } else {
103
530
        br->error = 1;
104
530
      }
105
108M
    }
106
108M
    lowvalue <<= offset;
107
108M
    shift = count;
108
108M
    lowvalue &= 0xffffff;
109
108M
    count -= 8;
110
108M
  }
111
112
1.29G
  lowvalue <<= shift;
113
1.29G
  br->count = count;
114
1.29G
  br->lowvalue = lowvalue;
115
1.29G
  br->range = range;
116
1.29G
}
Unexecuted instantiation: vp9_cx_iface.c:vpx_write
Unexecuted instantiation: vp9_firstpass.c:vpx_write
Unexecuted instantiation: vp9_mcomp.c:vpx_write
Unexecuted instantiation: vp9_encoder.c:vpx_write
Unexecuted instantiation: vp9_picklpf.c:vpx_write
Unexecuted instantiation: vp9_quantize.c:vpx_write
Unexecuted instantiation: vp9_ratectrl.c:vpx_write
Unexecuted instantiation: vp9_rd.c:vpx_write
Unexecuted instantiation: vp9_segmentation.c:vpx_write
Unexecuted instantiation: vp9_speed_features.c:vpx_write
Unexecuted instantiation: vp9_svc_layercontext.c:vpx_write
Unexecuted instantiation: vp9_tokenize.c:vpx_write
Unexecuted instantiation: vp9_aq_variance.c:vpx_write
Unexecuted instantiation: vp9_aq_360.c:vpx_write
Unexecuted instantiation: vp9_aq_cyclicrefresh.c:vpx_write
Unexecuted instantiation: vp9_aq_complexity.c:vpx_write
Unexecuted instantiation: vp9_alt_ref_aq.c:vpx_write
Unexecuted instantiation: vp9_skin_detection.c:vpx_write
Unexecuted instantiation: vp9_noise_estimate.c:vpx_write
Unexecuted instantiation: vp9_ext_ratectrl.c:vpx_write
Unexecuted instantiation: vp9_temporal_filter.c:vpx_write
Unexecuted instantiation: vp9_tpl_model.c:vpx_write
Unexecuted instantiation: vp9_mbgraph.c:vpx_write
vp9_bitstream.c:vpx_write
Line
Count
Source
48
1.16G
                                                         int probability) {
49
1.16G
  unsigned int split;
50
1.16G
  int count = br->count;
51
1.16G
  unsigned int range = br->range;
52
1.16G
  unsigned int lowvalue = br->lowvalue;
53
1.16G
  int shift;
54
55
#if CONFIG_BITSTREAM_DEBUG
56
  /*
57
  int queue_r = 0;
58
  int frame_idx_r = 0;
59
  int queue_w = bitstream_queue_get_write();
60
  int frame_idx_w = bitstream_queue_get_frame_write();
61
  if (frame_idx_w == frame_idx_r && queue_w == queue_r) {
62
    fprintf(stderr, "\n *** bitstream queue at frame_idx_w %d queue_w %d\n",
63
            frame_idx_w, queue_w);
64
    assert(0);
65
  }
66
  */
67
  bitstream_queue_push(bit, probability);
68
#endif
69
70
1.16G
  split = 1 + (((range - 1) * probability) >> 8);
71
72
1.16G
  range = split;
73
74
1.16G
  if (bit) {
75
614M
    lowvalue += split;
76
614M
    range = br->range - split;
77
614M
  }
78
79
1.16G
  shift = vpx_norm[range];
80
81
1.16G
  range <<= shift;
82
1.16G
  count += shift;
83
84
1.16G
  if (count >= 0) {
85
103M
    int offset = shift - count;
86
87
103M
    if (!br->error) {
88
103M
      if ((lowvalue << (offset - 1)) & 0x80000000) {
89
948
        int x = (int)br->pos - 1;
90
91
1.24k
        while (x >= 0 && br->buffer[x] == 0xff) {
92
298
          br->buffer[x] = 0;
93
298
          x--;
94
298
        }
95
96
        // TODO(wtc): How to prove x >= 0?
97
948
        br->buffer[x] += 1;
98
948
      }
99
100
103M
      if (br->pos < br->size) {
101
103M
        br->buffer[br->pos++] = (lowvalue >> (24 - offset)) & 0xff;
102
103M
      } else {
103
503
        br->error = 1;
104
503
      }
105
103M
    }
106
103M
    lowvalue <<= offset;
107
103M
    shift = count;
108
103M
    lowvalue &= 0xffffff;
109
103M
    count -= 8;
110
103M
  }
111
112
1.16G
  lowvalue <<= shift;
113
1.16G
  br->count = count;
114
1.16G
  br->lowvalue = lowvalue;
115
1.16G
  br->range = range;
116
1.16G
}
Unexecuted instantiation: vp9_context_tree.c:vpx_write
Unexecuted instantiation: vp9_encodeframe.c:vpx_write
Unexecuted instantiation: vp9_encodemb.c:vpx_write
vp9_encodemv.c:vpx_write
Line
Count
Source
48
38.5M
                                                         int probability) {
49
38.5M
  unsigned int split;
50
38.5M
  int count = br->count;
51
38.5M
  unsigned int range = br->range;
52
38.5M
  unsigned int lowvalue = br->lowvalue;
53
38.5M
  int shift;
54
55
#if CONFIG_BITSTREAM_DEBUG
56
  /*
57
  int queue_r = 0;
58
  int frame_idx_r = 0;
59
  int queue_w = bitstream_queue_get_write();
60
  int frame_idx_w = bitstream_queue_get_frame_write();
61
  if (frame_idx_w == frame_idx_r && queue_w == queue_r) {
62
    fprintf(stderr, "\n *** bitstream queue at frame_idx_w %d queue_w %d\n",
63
            frame_idx_w, queue_w);
64
    assert(0);
65
  }
66
  */
67
  bitstream_queue_push(bit, probability);
68
#endif
69
70
38.5M
  split = 1 + (((range - 1) * probability) >> 8);
71
72
38.5M
  range = split;
73
74
38.5M
  if (bit) {
75
7.43M
    lowvalue += split;
76
7.43M
    range = br->range - split;
77
7.43M
  }
78
79
38.5M
  shift = vpx_norm[range];
80
81
38.5M
  range <<= shift;
82
38.5M
  count += shift;
83
84
38.5M
  if (count >= 0) {
85
1.12M
    int offset = shift - count;
86
87
1.12M
    if (!br->error) {
88
1.12M
      if ((lowvalue << (offset - 1)) & 0x80000000) {
89
53
        int x = (int)br->pos - 1;
90
91
81
        while (x >= 0 && br->buffer[x] == 0xff) {
92
28
          br->buffer[x] = 0;
93
28
          x--;
94
28
        }
95
96
        // TODO(wtc): How to prove x >= 0?
97
53
        br->buffer[x] += 1;
98
53
      }
99
100
1.12M
      if (br->pos < br->size) {
101
1.12M
        br->buffer[br->pos++] = (lowvalue >> (24 - offset)) & 0xff;
102
1.12M
      } else {
103
16
        br->error = 1;
104
16
      }
105
1.12M
    }
106
1.12M
    lowvalue <<= offset;
107
1.12M
    shift = count;
108
1.12M
    lowvalue &= 0xffffff;
109
1.12M
    count -= 8;
110
1.12M
  }
111
112
38.5M
  lowvalue <<= shift;
113
38.5M
  br->count = count;
114
38.5M
  br->lowvalue = lowvalue;
115
38.5M
  br->range = range;
116
38.5M
}
Unexecuted instantiation: vp9_ethread.c:vpx_write
Unexecuted instantiation: vp9_frame_scale.c:vpx_write
Unexecuted instantiation: vp9_lookahead.c:vpx_write
Unexecuted instantiation: vp9_multi_thread.c:vpx_write
Unexecuted instantiation: vp9_rdopt.c:vpx_write
Unexecuted instantiation: vp9_pickmode.c:vpx_write
vp9_subexp.c:vpx_write
Line
Count
Source
48
62.7M
                                                         int probability) {
49
62.7M
  unsigned int split;
50
62.7M
  int count = br->count;
51
62.7M
  unsigned int range = br->range;
52
62.7M
  unsigned int lowvalue = br->lowvalue;
53
62.7M
  int shift;
54
55
#if CONFIG_BITSTREAM_DEBUG
56
  /*
57
  int queue_r = 0;
58
  int frame_idx_r = 0;
59
  int queue_w = bitstream_queue_get_write();
60
  int frame_idx_w = bitstream_queue_get_frame_write();
61
  if (frame_idx_w == frame_idx_r && queue_w == queue_r) {
62
    fprintf(stderr, "\n *** bitstream queue at frame_idx_w %d queue_w %d\n",
63
            frame_idx_w, queue_w);
64
    assert(0);
65
  }
66
  */
67
  bitstream_queue_push(bit, probability);
68
#endif
69
70
62.7M
  split = 1 + (((range - 1) * probability) >> 8);
71
72
62.7M
  range = split;
73
74
62.7M
  if (bit) {
75
5.54M
    lowvalue += split;
76
5.54M
    range = br->range - split;
77
5.54M
  }
78
79
62.7M
  shift = vpx_norm[range];
80
81
62.7M
  range <<= shift;
82
62.7M
  count += shift;
83
84
62.7M
  if (count >= 0) {
85
1.35M
    int offset = shift - count;
86
87
1.35M
    if (!br->error) {
88
1.35M
      if ((lowvalue << (offset - 1)) & 0x80000000) {
89
14
        int x = (int)br->pos - 1;
90
91
14
        while (x >= 0 && br->buffer[x] == 0xff) {
92
0
          br->buffer[x] = 0;
93
0
          x--;
94
0
        }
95
96
        // TODO(wtc): How to prove x >= 0?
97
14
        br->buffer[x] += 1;
98
14
      }
99
100
1.35M
      if (br->pos < br->size) {
101
1.35M
        br->buffer[br->pos++] = (lowvalue >> (24 - offset)) & 0xff;
102
1.35M
      } else {
103
0
        br->error = 1;
104
0
      }
105
1.35M
    }
106
1.35M
    lowvalue <<= offset;
107
1.35M
    shift = count;
108
1.35M
    lowvalue &= 0xffffff;
109
1.35M
    count -= 8;
110
1.35M
  }
111
112
62.7M
  lowvalue <<= shift;
113
62.7M
  br->count = count;
114
62.7M
  br->lowvalue = lowvalue;
115
62.7M
  br->range = range;
116
62.7M
}
Unexecuted instantiation: vp9_treewriter.c:vpx_write
Unexecuted instantiation: temporal_filter_sse4.c:vpx_write
Unexecuted instantiation: highbd_temporal_filter_sse4.c:vpx_write
bitwriter.c:vpx_write
Line
Count
Source
48
28.0M
                                                         int probability) {
49
28.0M
  unsigned int split;
50
28.0M
  int count = br->count;
51
28.0M
  unsigned int range = br->range;
52
28.0M
  unsigned int lowvalue = br->lowvalue;
53
28.0M
  int shift;
54
55
#if CONFIG_BITSTREAM_DEBUG
56
  /*
57
  int queue_r = 0;
58
  int frame_idx_r = 0;
59
  int queue_w = bitstream_queue_get_write();
60
  int frame_idx_w = bitstream_queue_get_frame_write();
61
  if (frame_idx_w == frame_idx_r && queue_w == queue_r) {
62
    fprintf(stderr, "\n *** bitstream queue at frame_idx_w %d queue_w %d\n",
63
            frame_idx_w, queue_w);
64
    assert(0);
65
  }
66
  */
67
  bitstream_queue_push(bit, probability);
68
#endif
69
70
28.0M
  split = 1 + (((range - 1) * probability) >> 8);
71
72
28.0M
  range = split;
73
74
28.0M
  if (bit) {
75
0
    lowvalue += split;
76
0
    range = br->range - split;
77
0
  }
78
79
28.0M
  shift = vpx_norm[range];
80
81
28.0M
  range <<= shift;
82
28.0M
  count += shift;
83
84
28.0M
  if (count >= 0) {
85
2.89M
    int offset = shift - count;
86
87
2.89M
    if (!br->error) {
88
2.88M
      if ((lowvalue << (offset - 1)) & 0x80000000) {
89
6
        int x = (int)br->pos - 1;
90
91
7
        while (x >= 0 && br->buffer[x] == 0xff) {
92
1
          br->buffer[x] = 0;
93
1
          x--;
94
1
        }
95
96
        // TODO(wtc): How to prove x >= 0?
97
6
        br->buffer[x] += 1;
98
6
      }
99
100
2.88M
      if (br->pos < br->size) {
101
2.88M
        br->buffer[br->pos++] = (lowvalue >> (24 - offset)) & 0xff;
102
2.88M
      } else {
103
11
        br->error = 1;
104
11
      }
105
2.88M
    }
106
2.89M
    lowvalue <<= offset;
107
2.89M
    shift = count;
108
2.89M
    lowvalue &= 0xffffff;
109
2.89M
    count -= 8;
110
2.89M
  }
111
112
28.0M
  lowvalue <<= shift;
113
28.0M
  br->count = count;
114
28.0M
  br->lowvalue = lowvalue;
115
28.0M
  br->range = range;
116
28.0M
}
117
118
160M
static INLINE void vpx_write_bit(vpx_writer *w, int bit) {
119
160M
  vpx_write(w, bit, 128);  // vpx_prob_half
120
160M
}
Unexecuted instantiation: vp9_cx_iface.c:vpx_write_bit
Unexecuted instantiation: vp9_firstpass.c:vpx_write_bit
Unexecuted instantiation: vp9_mcomp.c:vpx_write_bit
Unexecuted instantiation: vp9_encoder.c:vpx_write_bit
Unexecuted instantiation: vp9_picklpf.c:vpx_write_bit
Unexecuted instantiation: vp9_quantize.c:vpx_write_bit
Unexecuted instantiation: vp9_ratectrl.c:vpx_write_bit
Unexecuted instantiation: vp9_rd.c:vpx_write_bit
Unexecuted instantiation: vp9_segmentation.c:vpx_write_bit
Unexecuted instantiation: vp9_speed_features.c:vpx_write_bit
Unexecuted instantiation: vp9_svc_layercontext.c:vpx_write_bit
Unexecuted instantiation: vp9_tokenize.c:vpx_write_bit
Unexecuted instantiation: vp9_aq_variance.c:vpx_write_bit
Unexecuted instantiation: vp9_aq_360.c:vpx_write_bit
Unexecuted instantiation: vp9_aq_cyclicrefresh.c:vpx_write_bit
Unexecuted instantiation: vp9_aq_complexity.c:vpx_write_bit
Unexecuted instantiation: vp9_alt_ref_aq.c:vpx_write_bit
Unexecuted instantiation: vp9_skin_detection.c:vpx_write_bit
Unexecuted instantiation: vp9_noise_estimate.c:vpx_write_bit
Unexecuted instantiation: vp9_ext_ratectrl.c:vpx_write_bit
Unexecuted instantiation: vp9_temporal_filter.c:vpx_write_bit
Unexecuted instantiation: vp9_tpl_model.c:vpx_write_bit
Unexecuted instantiation: vp9_mbgraph.c:vpx_write_bit
vp9_bitstream.c:vpx_write_bit
Line
Count
Source
118
121M
static INLINE void vpx_write_bit(vpx_writer *w, int bit) {
119
121M
  vpx_write(w, bit, 128);  // vpx_prob_half
120
121M
}
Unexecuted instantiation: vp9_context_tree.c:vpx_write_bit
Unexecuted instantiation: vp9_encodeframe.c:vpx_write_bit
Unexecuted instantiation: vp9_encodemb.c:vpx_write_bit
vp9_encodemv.c:vpx_write_bit
Line
Count
Source
118
251k
static INLINE void vpx_write_bit(vpx_writer *w, int bit) {
119
251k
  vpx_write(w, bit, 128);  // vpx_prob_half
120
251k
}
Unexecuted instantiation: vp9_ethread.c:vpx_write_bit
Unexecuted instantiation: vp9_frame_scale.c:vpx_write_bit
Unexecuted instantiation: vp9_lookahead.c:vpx_write_bit
Unexecuted instantiation: vp9_multi_thread.c:vpx_write_bit
Unexecuted instantiation: vp9_rdopt.c:vpx_write_bit
Unexecuted instantiation: vp9_pickmode.c:vpx_write_bit
vp9_subexp.c:vpx_write_bit
Line
Count
Source
118
10.5M
static INLINE void vpx_write_bit(vpx_writer *w, int bit) {
119
10.5M
  vpx_write(w, bit, 128);  // vpx_prob_half
120
10.5M
}
Unexecuted instantiation: vp9_treewriter.c:vpx_write_bit
Unexecuted instantiation: temporal_filter_sse4.c:vpx_write_bit
Unexecuted instantiation: highbd_temporal_filter_sse4.c:vpx_write_bit
bitwriter.c:vpx_write_bit
Line
Count
Source
118
28.0M
static INLINE void vpx_write_bit(vpx_writer *w, int bit) {
119
28.0M
  vpx_write(w, bit, 128);  // vpx_prob_half
120
28.0M
}
121
122
4.95M
static INLINE void vpx_write_literal(vpx_writer *w, int data, int bits) {
123
4.95M
  int bit;
124
125
16.4M
  for (bit = bits - 1; bit >= 0; bit--) vpx_write_bit(w, 1 & (data >> bit));
126
4.95M
}
Unexecuted instantiation: vp9_cx_iface.c:vpx_write_literal
Unexecuted instantiation: vp9_firstpass.c:vpx_write_literal
Unexecuted instantiation: vp9_mcomp.c:vpx_write_literal
Unexecuted instantiation: vp9_encoder.c:vpx_write_literal
Unexecuted instantiation: vp9_picklpf.c:vpx_write_literal
Unexecuted instantiation: vp9_quantize.c:vpx_write_literal
Unexecuted instantiation: vp9_ratectrl.c:vpx_write_literal
Unexecuted instantiation: vp9_rd.c:vpx_write_literal
Unexecuted instantiation: vp9_segmentation.c:vpx_write_literal
Unexecuted instantiation: vp9_speed_features.c:vpx_write_literal
Unexecuted instantiation: vp9_svc_layercontext.c:vpx_write_literal
Unexecuted instantiation: vp9_tokenize.c:vpx_write_literal
Unexecuted instantiation: vp9_aq_variance.c:vpx_write_literal
Unexecuted instantiation: vp9_aq_360.c:vpx_write_literal
Unexecuted instantiation: vp9_aq_cyclicrefresh.c:vpx_write_literal
Unexecuted instantiation: vp9_aq_complexity.c:vpx_write_literal
Unexecuted instantiation: vp9_alt_ref_aq.c:vpx_write_literal
Unexecuted instantiation: vp9_skin_detection.c:vpx_write_literal
Unexecuted instantiation: vp9_noise_estimate.c:vpx_write_literal
Unexecuted instantiation: vp9_ext_ratectrl.c:vpx_write_literal
Unexecuted instantiation: vp9_temporal_filter.c:vpx_write_literal
Unexecuted instantiation: vp9_tpl_model.c:vpx_write_literal
Unexecuted instantiation: vp9_mbgraph.c:vpx_write_literal
vp9_bitstream.c:vpx_write_literal
Line
Count
Source
122
379k
static INLINE void vpx_write_literal(vpx_writer *w, int data, int bits) {
123
379k
  int bit;
124
125
1.13M
  for (bit = bits - 1; bit >= 0; bit--) vpx_write_bit(w, 1 & (data >> bit));
126
379k
}
Unexecuted instantiation: vp9_context_tree.c:vpx_write_literal
Unexecuted instantiation: vp9_encodeframe.c:vpx_write_literal
Unexecuted instantiation: vp9_encodemb.c:vpx_write_literal
vp9_encodemv.c:vpx_write_literal
Line
Count
Source
122
35.9k
static INLINE void vpx_write_literal(vpx_writer *w, int data, int bits) {
123
35.9k
  int bit;
124
125
287k
  for (bit = bits - 1; bit >= 0; bit--) vpx_write_bit(w, 1 & (data >> bit));
126
35.9k
}
Unexecuted instantiation: vp9_ethread.c:vpx_write_literal
Unexecuted instantiation: vp9_frame_scale.c:vpx_write_literal
Unexecuted instantiation: vp9_lookahead.c:vpx_write_literal
Unexecuted instantiation: vp9_multi_thread.c:vpx_write_literal
Unexecuted instantiation: vp9_rdopt.c:vpx_write_literal
Unexecuted instantiation: vp9_pickmode.c:vpx_write_literal
vp9_subexp.c:vpx_write_literal
Line
Count
Source
122
4.53M
static INLINE void vpx_write_literal(vpx_writer *w, int data, int bits) {
123
4.53M
  int bit;
124
125
15.0M
  for (bit = bits - 1; bit >= 0; bit--) vpx_write_bit(w, 1 & (data >> bit));
126
4.53M
}
Unexecuted instantiation: vp9_treewriter.c:vpx_write_literal
Unexecuted instantiation: temporal_filter_sse4.c:vpx_write_literal
Unexecuted instantiation: highbd_temporal_filter_sse4.c:vpx_write_literal
Unexecuted instantiation: bitwriter.c:vpx_write_literal
127
128
#define vpx_write_prob(w, v) vpx_write_literal((w), (v), 8)
129
130
#ifdef __cplusplus
131
}  // extern "C"
132
#endif
133
134
#endif  // VPX_VPX_DSP_BITWRITER_H_