Coverage Report

Created: 2025-07-11 07:06

/src/rtpproxy/external/libelperiodic/src/prdic_fd.c
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2014-2019 Sippy Software, Inc., http://www.sippysoft.com
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
7
 * are met:
8
 * 1. Redistributions of source code must retain the above copyright
9
 *    notice, this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright
11
 *    notice, this list of conditions and the following disclaimer in the
12
 *    documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
 * SUCH DAMAGE.
25
 */
26
27
#include <sys/time.h>
28
#include <assert.h>
29
#include <math.h>
30
#include <string.h>
31
32
#include "prdic_math.h"
33
#include "prdic_timespecops.h"
34
#include "prdic_fd.h"
35
36
void
37
_prdic_FD_init(struct _prdic_FD *fd_p)
38
8
{
39
40
8
    memset(fd_p, '\0', sizeof(struct _prdic_FD));
41
8
}
42
43
double
44
_prdic_FD_get_error(struct _prdic_FD *fd_p, const struct timespec *tclk)
45
1.37k
{
46
1.37k
    double err0r;
47
1.37k
    struct timespec ttclk;
48
49
1.37k
    if (timespeciszero(&fd_p->last_tclk)) {
50
8
        fd_p->last_tclk = *tclk;
51
8
        return (0.0);
52
8
    }
53
1.36k
    timespecsub2(&ttclk, tclk, &fd_p->last_tclk);
54
1.36k
    err0r = timespec2dtime(&ttclk);
55
1.36k
    fd_p->last_tclk = *tclk;
56
1.36k
    return (1.0 - err0r);
57
1.37k
}
58
59
void
60
_prdic_FD_reset(struct _prdic_FD *fd_p)
61
0
{
62
63
0
    SEC(&fd_p->last_tclk) = 0;
64
0
    NSEC(&fd_p->last_tclk) = 0;
65
0
}