chromium/third_party/libaom/source/libaom/aom_ports/aom_timer.h

/*
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved.
 *
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 */

#ifndef AOM_AOM_PORTS_AOM_TIMER_H_
#define AOM_AOM_PORTS_AOM_TIMER_H_

#include "config/aom_config.h"

#if CONFIG_OS_SUPPORT

#include <stddef.h>
#include <stdint.h>

#if defined(_WIN32)
/*
 * Win32 specific includes
 */
#undef NOMINMAX
#define NOMINMAX
#undef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#else
/*
 * POSIX specific includes
 */
#include <sys/time.h>

/* timersub is not provided by msys at this time. */
#ifndef timersub
#define timersub
#endif
#endif

struct aom_usec_timer {};

static inline void aom_usec_timer_start(struct aom_usec_timer *t) {}

static inline void aom_usec_timer_mark(struct aom_usec_timer *t) {}

static inline int64_t aom_usec_timer_elapsed(struct aom_usec_timer *t) {}

#else /* CONFIG_OS_SUPPORT = 0*/

/* Empty timer functions if CONFIG_OS_SUPPORT = 0 */
#ifndef timersub
#define timersub
#endif

struct aom_usec_timer {
  void *dummy;
};

static inline void aom_usec_timer_start(struct aom_usec_timer *t) { (void)t; }

static inline void aom_usec_timer_mark(struct aom_usec_timer *t) { (void)t; }

static inline int aom_usec_timer_elapsed(struct aom_usec_timer *t) {
  (void)t;
  return 0;
}

#endif /* CONFIG_OS_SUPPORT */

#endif  // AOM_AOM_PORTS_AOM_TIMER_H_