/src/libvpx/vpx_util/vpx_timestamp.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2019 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_UTIL_VPX_TIMESTAMP_H_ |
12 | | #define VPX_VPX_UTIL_VPX_TIMESTAMP_H_ |
13 | | |
14 | | #include <assert.h> |
15 | | |
16 | | #ifdef __cplusplus |
17 | | extern "C" { |
18 | | #endif // __cplusplus |
19 | | |
20 | | // Rational Number with an int64 numerator |
21 | | typedef struct vpx_rational64 { |
22 | | int64_t num; // fraction numerator |
23 | | int den; // fraction denominator |
24 | | } vpx_rational64_t; // alias for struct vpx_rational64_t |
25 | | |
26 | 28.8k | static INLINE int gcd(int64_t a, int b) { |
27 | 28.8k | int r; // remainder |
28 | 28.8k | assert(a >= 0); |
29 | 28.8k | assert(b > 0); |
30 | 289k | while (b != 0) { |
31 | 260k | r = (int)(a % b); |
32 | 260k | a = b; |
33 | 260k | b = r; |
34 | 260k | } |
35 | | |
36 | 28.8k | return (int)a; |
37 | 28.8k | } Line | Count | Source | 26 | 4.91k | static INLINE int gcd(int64_t a, int b) { | 27 | 4.91k | int r; // remainder | 28 | 4.91k | assert(a >= 0); | 29 | 4.91k | assert(b > 0); | 30 | 52.2k | while (b != 0) { | 31 | 47.3k | r = (int)(a % b); | 32 | 47.3k | a = b; | 33 | 47.3k | b = r; | 34 | 47.3k | } | 35 | | | 36 | 4.91k | return (int)a; | 37 | 4.91k | } |
Line | Count | Source | 26 | 23.9k | static INLINE int gcd(int64_t a, int b) { | 27 | 23.9k | int r; // remainder | 28 | 23.9k | assert(a >= 0); | 29 | 23.9k | assert(b > 0); | 30 | 237k | while (b != 0) { | 31 | 213k | r = (int)(a % b); | 32 | 213k | a = b; | 33 | 213k | b = r; | 34 | 213k | } | 35 | | | 36 | 23.9k | return (int)a; | 37 | 23.9k | } |
Unexecuted instantiation: vp9_firstpass.c:gcd Unexecuted instantiation: vp9_mcomp.c:gcd Unexecuted instantiation: vp9_encoder.c:gcd Unexecuted instantiation: vp9_picklpf.c:gcd Unexecuted instantiation: vp9_quantize.c:gcd Unexecuted instantiation: vp9_ratectrl.c:gcd Unexecuted instantiation: vp9_rd.c:gcd Unexecuted instantiation: vp9_segmentation.c:gcd Unexecuted instantiation: vp9_speed_features.c:gcd Unexecuted instantiation: vp9_svc_layercontext.c:gcd Unexecuted instantiation: vp9_tokenize.c:gcd Unexecuted instantiation: vp9_aq_variance.c:gcd Unexecuted instantiation: vp9_aq_360.c:gcd Unexecuted instantiation: vp9_aq_cyclicrefresh.c:gcd Unexecuted instantiation: vp9_aq_complexity.c:gcd Unexecuted instantiation: vp9_alt_ref_aq.c:gcd Unexecuted instantiation: vp9_skin_detection.c:gcd Unexecuted instantiation: vp9_noise_estimate.c:gcd Unexecuted instantiation: vp9_ext_ratectrl.c:gcd Unexecuted instantiation: vp9_temporal_filter.c:gcd Unexecuted instantiation: vp9_tpl_model.c:gcd Unexecuted instantiation: vp9_mbgraph.c:gcd Unexecuted instantiation: vp9_bitstream.c:gcd Unexecuted instantiation: vp9_context_tree.c:gcd Unexecuted instantiation: vp9_encodeframe.c:gcd Unexecuted instantiation: vp9_encodemb.c:gcd Unexecuted instantiation: vp9_encodemv.c:gcd Unexecuted instantiation: vp9_ethread.c:gcd Unexecuted instantiation: vp9_frame_scale.c:gcd Unexecuted instantiation: vp9_lookahead.c:gcd Unexecuted instantiation: vp9_multi_thread.c:gcd Unexecuted instantiation: vp9_rdopt.c:gcd Unexecuted instantiation: vp9_pickmode.c:gcd Unexecuted instantiation: temporal_filter_sse4.c:gcd Unexecuted instantiation: highbd_temporal_filter_sse4.c:gcd |
38 | | |
39 | 28.8k | static INLINE void reduce_ratio(vpx_rational64_t *ratio) { |
40 | 28.8k | const int denom = gcd(ratio->num, ratio->den); |
41 | 28.8k | ratio->num /= denom; |
42 | 28.8k | ratio->den /= denom; |
43 | 28.8k | } vp8_cx_iface.c:reduce_ratio Line | Count | Source | 39 | 4.91k | static INLINE void reduce_ratio(vpx_rational64_t *ratio) { | 40 | 4.91k | const int denom = gcd(ratio->num, ratio->den); | 41 | 4.91k | ratio->num /= denom; | 42 | 4.91k | ratio->den /= denom; | 43 | 4.91k | } |
vp9_cx_iface.c:reduce_ratio Line | Count | Source | 39 | 23.9k | static INLINE void reduce_ratio(vpx_rational64_t *ratio) { | 40 | 23.9k | const int denom = gcd(ratio->num, ratio->den); | 41 | 23.9k | ratio->num /= denom; | 42 | 23.9k | ratio->den /= denom; | 43 | 23.9k | } |
Unexecuted instantiation: vp9_firstpass.c:reduce_ratio Unexecuted instantiation: vp9_mcomp.c:reduce_ratio Unexecuted instantiation: vp9_encoder.c:reduce_ratio Unexecuted instantiation: vp9_picklpf.c:reduce_ratio Unexecuted instantiation: vp9_quantize.c:reduce_ratio Unexecuted instantiation: vp9_ratectrl.c:reduce_ratio Unexecuted instantiation: vp9_rd.c:reduce_ratio Unexecuted instantiation: vp9_segmentation.c:reduce_ratio Unexecuted instantiation: vp9_speed_features.c:reduce_ratio Unexecuted instantiation: vp9_svc_layercontext.c:reduce_ratio Unexecuted instantiation: vp9_tokenize.c:reduce_ratio Unexecuted instantiation: vp9_aq_variance.c:reduce_ratio Unexecuted instantiation: vp9_aq_360.c:reduce_ratio Unexecuted instantiation: vp9_aq_cyclicrefresh.c:reduce_ratio Unexecuted instantiation: vp9_aq_complexity.c:reduce_ratio Unexecuted instantiation: vp9_alt_ref_aq.c:reduce_ratio Unexecuted instantiation: vp9_skin_detection.c:reduce_ratio Unexecuted instantiation: vp9_noise_estimate.c:reduce_ratio Unexecuted instantiation: vp9_ext_ratectrl.c:reduce_ratio Unexecuted instantiation: vp9_temporal_filter.c:reduce_ratio Unexecuted instantiation: vp9_tpl_model.c:reduce_ratio Unexecuted instantiation: vp9_mbgraph.c:reduce_ratio Unexecuted instantiation: vp9_bitstream.c:reduce_ratio Unexecuted instantiation: vp9_context_tree.c:reduce_ratio Unexecuted instantiation: vp9_encodeframe.c:reduce_ratio Unexecuted instantiation: vp9_encodemb.c:reduce_ratio Unexecuted instantiation: vp9_encodemv.c:reduce_ratio Unexecuted instantiation: vp9_ethread.c:reduce_ratio Unexecuted instantiation: vp9_frame_scale.c:reduce_ratio Unexecuted instantiation: vp9_lookahead.c:reduce_ratio Unexecuted instantiation: vp9_multi_thread.c:reduce_ratio Unexecuted instantiation: vp9_rdopt.c:reduce_ratio Unexecuted instantiation: vp9_pickmode.c:reduce_ratio Unexecuted instantiation: temporal_filter_sse4.c:reduce_ratio Unexecuted instantiation: highbd_temporal_filter_sse4.c:reduce_ratio |
44 | | |
45 | | #ifdef __cplusplus |
46 | | } // extern "C" |
47 | | #endif // __cplusplus |
48 | | |
49 | | #endif // VPX_VPX_UTIL_VPX_TIMESTAMP_H_ |