LCOV - code coverage report
Current view: top level - media/libvpx/libvpx/vpx_ports - vpx_timer.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 9 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 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             : #ifndef VPX_PORTS_VPX_TIMER_H_
      12             : #define VPX_PORTS_VPX_TIMER_H_
      13             : 
      14             : #include "./vpx_config.h"
      15             : 
      16             : #include "vpx/vpx_integer.h"
      17             : 
      18             : #if CONFIG_OS_SUPPORT
      19             : 
      20             : #if defined(_WIN32)
      21             : /*
      22             :  * Win32 specific includes
      23             :  */
      24             : #undef NOMINMAX
      25             : #define NOMINMAX
      26             : #ifndef WIN32_LEAN_AND_MEAN
      27             : #define WIN32_LEAN_AND_MEAN
      28             : #endif
      29             : #include <windows.h>
      30             : #else
      31             : /*
      32             :  * POSIX specific includes
      33             :  */
      34             : #include <sys/time.h>
      35             : 
      36             : /* timersub is not provided by msys at this time. */
      37             : #ifndef timersub
      38             : #define timersub(a, b, result)                       \
      39             :   do {                                               \
      40             :     (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;    \
      41             :     (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
      42             :     if ((result)->tv_usec < 0) {                     \
      43             :       --(result)->tv_sec;                            \
      44             :       (result)->tv_usec += 1000000;                  \
      45             :     }                                                \
      46             :   } while (0)
      47             : #endif
      48             : #endif
      49             : 
      50             : struct vpx_usec_timer {
      51             : #if defined(_WIN32)
      52             :   LARGE_INTEGER begin, end;
      53             : #else
      54             :   struct timeval begin, end;
      55             : #endif
      56             : };
      57             : 
      58           0 : static INLINE void vpx_usec_timer_start(struct vpx_usec_timer *t) {
      59             : #if defined(_WIN32)
      60             :   QueryPerformanceCounter(&t->begin);
      61             : #else
      62           0 :   gettimeofday(&t->begin, NULL);
      63             : #endif
      64           0 : }
      65             : 
      66           0 : static INLINE void vpx_usec_timer_mark(struct vpx_usec_timer *t) {
      67             : #if defined(_WIN32)
      68             :   QueryPerformanceCounter(&t->end);
      69             : #else
      70           0 :   gettimeofday(&t->end, NULL);
      71             : #endif
      72           0 : }
      73             : 
      74           0 : static INLINE int64_t vpx_usec_timer_elapsed(struct vpx_usec_timer *t) {
      75             : #if defined(_WIN32)
      76             :   LARGE_INTEGER freq, diff;
      77             : 
      78             :   diff.QuadPart = t->end.QuadPart - t->begin.QuadPart;
      79             : 
      80             :   QueryPerformanceFrequency(&freq);
      81             :   return diff.QuadPart * 1000000 / freq.QuadPart;
      82             : #else
      83             :   struct timeval diff;
      84             : 
      85           0 :   timersub(&t->end, &t->begin, &diff);
      86           0 :   return diff.tv_sec * 1000000 + diff.tv_usec;
      87             : #endif
      88             : }
      89             : 
      90             : #else /* CONFIG_OS_SUPPORT = 0*/
      91             : 
      92             : /* Empty timer functions if CONFIG_OS_SUPPORT = 0 */
      93             : #ifndef timersub
      94             : #define timersub(a, b, result)
      95             : #endif
      96             : 
      97             : struct vpx_usec_timer {
      98             :   void *dummy;
      99             : };
     100             : 
     101             : static INLINE void vpx_usec_timer_start(struct vpx_usec_timer *t) {}
     102             : 
     103             : static INLINE void vpx_usec_timer_mark(struct vpx_usec_timer *t) {}
     104             : 
     105             : static INLINE int vpx_usec_timer_elapsed(struct vpx_usec_timer *t) { return 0; }
     106             : 
     107             : #endif /* CONFIG_OS_SUPPORT */
     108             : 
     109             : #endif  // VPX_PORTS_VPX_TIMER_H_

Generated by: LCOV version 1.13