FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavutil
utils.c
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#include "config.h"
20
#include "
avutil.h
"
21
#include "
avassert.h
"
22
#include "
samplefmt.h
"
23
#include "
pixdesc.h
"
24
25
/**
26
* @file
27
* various utility functions
28
*/
29
30
unsigned
avutil_version
(
void
)
31
{
32
static
int
checks_done;
33
if
(checks_done)
34
return
LIBAVUTIL_VERSION_INT
;
35
36
av_assert0
(
AV_PIX_FMT_VDA_VLD
== 81);
//check if the pix fmt enum has not had anything inserted or removed by mistake
37
av_assert0
(
AV_SAMPLE_FMT_DBLP
== 9);
38
av_assert0
(
AVMEDIA_TYPE_ATTACHMENT
== 4);
39
av_assert0
(
AV_PICTURE_TYPE_BI
== 7);
40
av_assert0
(
LIBAVUTIL_VERSION_MICRO
>= 100);
41
av_assert0
(HAVE_MMX2 == HAVE_MMXEXT);
42
43
av_assert0
(((
size_t
)-1) > 0);
// C gurantees this but if false on a platform we care about revert at least b284e1ffe343d6697fb950d1ee517bafda8a9844
44
45
if
(av_sat_dadd32(1, 2) != 5) {
46
av_log
(NULL,
AV_LOG_FATAL
,
"Libavutil has been build with a broken binutils, please upgrade binutils and rebuild\n"
);
47
abort();
48
}
49
50
if
(
llrint
(1LL<<60) != 1LL<<60) {
51
av_log
(NULL,
AV_LOG_ERROR
,
"Libavutil has been linked to a broken llrint()\n"
);
52
}
53
54
#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0
55
ff_check_pixfmt_descriptors
();
56
#endif
57
checks_done = 1;
58
return
LIBAVUTIL_VERSION_INT
;
59
}
60
61
const
char
*
avutil_configuration
(
void
)
62
{
63
return
FFMPEG_CONFIGURATION;
64
}
65
66
const
char
*
avutil_license
(
void
)
67
{
68
#define LICENSE_PREFIX "libavutil license: "
69
return
LICENSE_PREFIX
FFMPEG_LICENSE +
sizeof
(
LICENSE_PREFIX
) - 1;
70
}
71
72
const
char
*
av_get_media_type_string
(
enum
AVMediaType
media_type)
73
{
74
switch
(media_type) {
75
case
AVMEDIA_TYPE_VIDEO
:
return
"video"
;
76
case
AVMEDIA_TYPE_AUDIO
:
return
"audio"
;
77
case
AVMEDIA_TYPE_DATA
:
return
"data"
;
78
case
AVMEDIA_TYPE_SUBTITLE
:
return
"subtitle"
;
79
case
AVMEDIA_TYPE_ATTACHMENT
:
return
"attachment"
;
80
default
:
return
NULL;
81
}
82
}
83
84
char
av_get_picture_type_char
(
enum
AVPictureType
pict_type)
85
{
86
switch
(pict_type) {
87
case
AV_PICTURE_TYPE_I
:
return
'I'
;
88
case
AV_PICTURE_TYPE_P
:
return
'P'
;
89
case
AV_PICTURE_TYPE_B
:
return
'B'
;
90
case
AV_PICTURE_TYPE_S
:
return
'S'
;
91
case
AV_PICTURE_TYPE_SI
:
return
'i'
;
92
case
AV_PICTURE_TYPE_SP
:
return
'p'
;
93
case
AV_PICTURE_TYPE_BI
:
return
'b'
;
94
default
:
return
'?'
;
95
}
96
}
97
98
unsigned
av_int_list_length_for_size
(
unsigned
elsize,
99
const
void
*list, uint64_t term)
100
{
101
unsigned
i;
102
103
if
(!list)
104
return
0;
105
#define LIST_LENGTH(type) \
106
{ type t = term, *l = (type *)list; for (i = 0; l[i] != t; i++); }
107
switch
(elsize) {
108
case
1:
LIST_LENGTH
(
uint8_t
);
break
;
109
case
2:
LIST_LENGTH
(uint16_t);
break
;
110
case
4:
LIST_LENGTH
(uint32_t);
break
;
111
case
8:
LIST_LENGTH
(uint64_t);
break
;
112
default
:
av_assert0
(!
"valid element size"
);
113
}
114
return
i;
115
}
Generated on Sun Mar 23 2014 23:50:04 for FFmpeg by
1.8.2