1233d2500723e5594f3e7c70896ffeeef32b9c950ywan/* 2233d2500723e5594f3e7c70896ffeeef32b9c950ywan * Copyright (c) 2013 The WebM project authors. All Rights Reserved. 3233d2500723e5594f3e7c70896ffeeef32b9c950ywan * 4233d2500723e5594f3e7c70896ffeeef32b9c950ywan * Use of this source code is governed by a BSD-style license 5233d2500723e5594f3e7c70896ffeeef32b9c950ywan * that can be found in the LICENSE file in the root of the source 6233d2500723e5594f3e7c70896ffeeef32b9c950ywan * tree. An additional intellectual property rights grant can be found 7233d2500723e5594f3e7c70896ffeeef32b9c950ywan * in the file PATENTS. All contributing project authors may 8233d2500723e5594f3e7c70896ffeeef32b9c950ywan * be found in the AUTHORS file in the root of the source tree. 9233d2500723e5594f3e7c70896ffeeef32b9c950ywan */ 10233d2500723e5594f3e7c70896ffeeef32b9c950ywan 11233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifndef VPXSTATS_H_ 12233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define VPXSTATS_H_ 13233d2500723e5594f3e7c70896ffeeef32b9c950ywan 14233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include <stdio.h> 15233d2500723e5594f3e7c70896ffeeef32b9c950ywan 16233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vpx/vpx_encoder.h" 17233d2500723e5594f3e7c70896ffeeef32b9c950ywan 18233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifdef __cplusplus 19233d2500723e5594f3e7c70896ffeeef32b9c950ywanextern "C" { 20233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 21233d2500723e5594f3e7c70896ffeeef32b9c950ywan 22233d2500723e5594f3e7c70896ffeeef32b9c950ywan/* This structure is used to abstract the different ways of handling 23233d2500723e5594f3e7c70896ffeeef32b9c950ywan * first pass statistics 24233d2500723e5594f3e7c70896ffeeef32b9c950ywan */ 25233d2500723e5594f3e7c70896ffeeef32b9c950ywantypedef struct { 26233d2500723e5594f3e7c70896ffeeef32b9c950ywan vpx_fixed_buf_t buf; 27233d2500723e5594f3e7c70896ffeeef32b9c950ywan int pass; 28233d2500723e5594f3e7c70896ffeeef32b9c950ywan FILE *file; 29233d2500723e5594f3e7c70896ffeeef32b9c950ywan char *buf_ptr; 30233d2500723e5594f3e7c70896ffeeef32b9c950ywan size_t buf_alloc_sz; 31233d2500723e5594f3e7c70896ffeeef32b9c950ywan} stats_io_t; 32233d2500723e5594f3e7c70896ffeeef32b9c950ywan 33233d2500723e5594f3e7c70896ffeeef32b9c950ywanint stats_open_file(stats_io_t *stats, const char *fpf, int pass); 34233d2500723e5594f3e7c70896ffeeef32b9c950ywanint stats_open_mem(stats_io_t *stats, int pass); 35233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid stats_close(stats_io_t *stats, int last_pass); 36233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid stats_write(stats_io_t *stats, const void *pkt, size_t len); 37233d2500723e5594f3e7c70896ffeeef32b9c950ywanvpx_fixed_buf_t stats_get(stats_io_t *stats); 38233d2500723e5594f3e7c70896ffeeef32b9c950ywan 39233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifdef __cplusplus 40233d2500723e5594f3e7c70896ffeeef32b9c950ywan} // extern "C" 41233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 42233d2500723e5594f3e7c70896ffeeef32b9c950ywan 43233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif // VPXSTATS_H_ 44