misc/winutils/include/libavutil/avutil.h
author Wuzzy <almikes@aol.com>
Thu, 12 Oct 2017 19:04:30 +0200
changeset 12697 c71e330d5094
parent 7813 7ac83d79b897
permissions -rw-r--r--
Add missing variable in uWorld.pas in videorec builds
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7813
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     1
/*
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     2
 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     3
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     4
 * This file is part of Libav.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     5
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     6
 * Libav is free software; you can redistribute it and/or
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     7
 * modify it under the terms of the GNU Lesser General Public
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     8
 * License as published by the Free Software Foundation; either
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
     9
 * version 2.1 of the License, or (at your option) any later version.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    10
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    11
 * Libav is distributed in the hope that it will be useful,
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    14
 * Lesser General Public License for more details.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    15
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    16
 * You should have received a copy of the GNU Lesser General Public
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    17
 * License along with Libav; if not, write to the Free Software
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    19
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    20
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    21
#ifndef AVUTIL_AVUTIL_H
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    22
#define AVUTIL_AVUTIL_H
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    23
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    24
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    25
 * @file
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    26
 * external API header
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    27
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    28
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    29
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    30
 * @mainpage
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    31
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    32
 * @section libav_intro Introduction
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    33
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    34
 * This document describes the usage of the different libraries
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    35
 * provided by Libav.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    36
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    37
 * @li @ref libavc "libavcodec" encoding/decoding library
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    38
 * @li @subpage libavfilter graph based frame editing library
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    39
 * @li @ref libavf "libavformat" I/O and muxing/demuxing library
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    40
 * @li @ref lavd "libavdevice" special devices muxing/demuxing library
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    41
 * @li @ref lavu "libavutil" common utility library
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    42
 * @li @subpage libswscale  color conversion and scaling library
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    43
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    44
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    45
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    46
 * @defgroup lavu Common utility functions
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    47
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    48
 * @brief
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    49
 * libavutil contains the code shared across all the other Libav
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    50
 * libraries
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    51
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    52
 * @note In order to use the functions provided by avutil you must include
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    53
 * the specific header.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    54
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    55
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    56
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    57
 * @defgroup lavu_crypto Crypto and Hashing
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    58
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    59
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    60
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    61
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    62
 * @defgroup lavu_math Maths
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    63
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    64
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    65
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    66
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    67
 * @defgroup lavu_string String Manipulation
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    68
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    69
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    70
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    71
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    72
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    73
 * @defgroup lavu_mem Memory Management
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    74
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    75
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    76
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    77
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    78
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    79
 * @defgroup lavu_data Data Structures
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    80
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    81
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    82
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    83
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    84
 * @defgroup lavu_audio Audio related
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    85
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    86
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    87
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    88
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    89
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    90
 * @defgroup lavu_error Error Codes
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    91
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    92
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    93
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    94
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    95
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    96
 * @defgroup lavu_misc Other
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    97
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    98
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
    99
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   100
 * @defgroup lavu_internal Internal
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   101
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   102
 * Not exported functions, for internal usage only
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   103
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   104
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   105
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   106
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   107
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   108
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   109
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   110
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   111
 * @defgroup preproc_misc Preprocessor String Macros
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   112
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   113
 * String manipulation macros
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   114
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   115
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   116
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   117
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   118
#define AV_STRINGIFY(s)         AV_TOSTRING(s)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   119
#define AV_TOSTRING(s) #s
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   120
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   121
#define AV_GLUE(a, b) a ## b
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   122
#define AV_JOIN(a, b) AV_GLUE(a, b)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   123
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   124
#define AV_PRAGMA(s) _Pragma(#s)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   125
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   126
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   127
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   128
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   129
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   130
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   131
 * @defgroup version_utils Library Version Macros
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   132
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   133
 * Useful to check and match library version in order to maintain
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   134
 * backward compatibility.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   135
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   136
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   137
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   138
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   139
#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   140
#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   141
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   142
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   143
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   144
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   145
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   146
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   147
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   148
 * @addtogroup lavu_ver
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   149
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   150
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   151
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   152
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   153
 * Return the LIBAVUTIL_VERSION_INT constant.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   154
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   155
unsigned avutil_version(void);
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   156
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   157
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   158
 * Return the libavutil build-time configuration.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   159
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   160
const char *avutil_configuration(void);
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   161
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   162
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   163
 * Return the libavutil license.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   164
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   165
const char *avutil_license(void);
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   166
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   167
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   168
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   169
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   170
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   171
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   172
 * @addtogroup lavu_media Media Type
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   173
 * @brief Media Type
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   174
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   175
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   176
enum AVMediaType {
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   177
    AVMEDIA_TYPE_UNKNOWN = -1,  ///< Usually treated as AVMEDIA_TYPE_DATA
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   178
    AVMEDIA_TYPE_VIDEO,
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   179
    AVMEDIA_TYPE_AUDIO,
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   180
    AVMEDIA_TYPE_DATA,          ///< Opaque data information usually continuous
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   181
    AVMEDIA_TYPE_SUBTITLE,
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   182
    AVMEDIA_TYPE_ATTACHMENT,    ///< Opaque data information usually sparse
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   183
    AVMEDIA_TYPE_NB
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   184
};
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   185
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   186
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   187
 * @defgroup lavu_const Constants
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   188
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   189
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   190
 * @defgroup lavu_enc Encoding specific
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   191
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   192
 * @note those definition should move to avcodec
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   193
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   194
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   195
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   196
#define FF_LAMBDA_SHIFT 7
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   197
#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   198
#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   199
#define FF_LAMBDA_MAX (256*128-1)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   200
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   201
#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   202
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   203
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   204
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   205
 * @defgroup lavu_time Timestamp specific
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   206
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   207
 * Libav internal timebase and timestamp definitions
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   208
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   209
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   210
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   211
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   212
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   213
 * @brief Undefined timestamp value
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   214
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   215
 * Usually reported by demuxer that work on containers that do not provide
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   216
 * either pts or dts.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   217
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   218
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   219
#define AV_NOPTS_VALUE          INT64_C(0x8000000000000000)
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   220
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   221
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   222
 * Internal time base represented as integer
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   223
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   224
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   225
#define AV_TIME_BASE            1000000
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   226
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   227
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   228
 * Internal time base represented as fractional value
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   229
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   230
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   231
#define AV_TIME_BASE_Q          (AVRational){1, AV_TIME_BASE}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   232
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   233
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   234
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   235
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   236
 * @defgroup lavu_picture Image related
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   237
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   238
 * AVPicture types, pixel formats and basic image planes manipulation.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   239
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   240
 * @{
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   241
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   242
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   243
enum AVPictureType {
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   244
    AV_PICTURE_TYPE_I = 1, ///< Intra
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   245
    AV_PICTURE_TYPE_P,     ///< Predicted
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   246
    AV_PICTURE_TYPE_B,     ///< Bi-dir predicted
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   247
    AV_PICTURE_TYPE_S,     ///< S(GMC)-VOP MPEG4
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   248
    AV_PICTURE_TYPE_SI,    ///< Switching Intra
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   249
    AV_PICTURE_TYPE_SP,    ///< Switching Predicted
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   250
    AV_PICTURE_TYPE_BI,    ///< BI type
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   251
};
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   252
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   253
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   254
 * Return a single letter to describe the given picture type
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   255
 * pict_type.
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   256
 *
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   257
 * @param[in] pict_type the picture type @return a single character
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   258
 * representing the picture type, '?' if pict_type is unknown
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   259
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   260
char av_get_picture_type_char(enum AVPictureType pict_type);
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   261
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   262
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   263
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   264
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   265
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   266
#include "error.h"
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   267
#include "version.h"
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   268
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   269
/**
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   270
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   271
 * @}
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   272
 */
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   273
7ac83d79b897 support video recording on windows with automation and headers
koda
parents:
diff changeset
   274
#endif /* AVUTIL_AVUTIL_H */