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
ff_check_pixfmt_descriptors
();
55
checks_done = 1;
56
return
LIBAVUTIL_VERSION_INT
;
57
}
58
59
const
char
*
avutil_configuration
(
void
)
60
{
61
return
FFMPEG_CONFIGURATION;
62
}
63
64
const
char
*
avutil_license
(
void
)
65
{
66
#define LICENSE_PREFIX "libavutil license: "
67
return
LICENSE_PREFIX
FFMPEG_LICENSE +
sizeof
(
LICENSE_PREFIX
) - 1;
68
}
69
70
const
char
*
av_get_media_type_string
(
enum
AVMediaType
media_type)
71
{
72
switch
(media_type) {
73
case
AVMEDIA_TYPE_VIDEO
:
return
"video"
;
74
case
AVMEDIA_TYPE_AUDIO
:
return
"audio"
;
75
case
AVMEDIA_TYPE_DATA
:
return
"data"
;
76
case
AVMEDIA_TYPE_SUBTITLE
:
return
"subtitle"
;
77
case
AVMEDIA_TYPE_ATTACHMENT
:
return
"attachment"
;
78
default
:
return
NULL;
79
}
80
}
81
82
char
av_get_picture_type_char
(
enum
AVPictureType
pict_type)
83
{
84
switch
(pict_type) {
85
case
AV_PICTURE_TYPE_I
:
return
'I'
;
86
case
AV_PICTURE_TYPE_P
:
return
'P'
;
87
case
AV_PICTURE_TYPE_B
:
return
'B'
;
88
case
AV_PICTURE_TYPE_S
:
return
'S'
;
89
case
AV_PICTURE_TYPE_SI
:
return
'i'
;
90
case
AV_PICTURE_TYPE_SP
:
return
'p'
;
91
case
AV_PICTURE_TYPE_BI
:
return
'b'
;
92
default
:
return
'?'
;
93
}
94
}
95
96
unsigned
av_int_list_length_for_size
(
unsigned
elsize,
97
const
void
*list, uint64_t term)
98
{
99
unsigned
i;
100
101
if
(!list)
102
return
0;
103
#define LIST_LENGTH(type) \
104
{ type t = term, *l = (type *)list; for (i = 0; l[i] != t; i++); }
105
switch
(elsize) {
106
case
1:
LIST_LENGTH
(
uint8_t
);
break
;
107
case
2:
LIST_LENGTH
(uint16_t);
break
;
108
case
4:
LIST_LENGTH
(uint32_t);
break
;
109
case
8:
LIST_LENGTH
(uint64_t);
break
;
110
default
:
av_assert0
(!
"valid element size"
);
111
}
112
return
i;
113
}
Generated on Sat Jan 25 2014 19:51:56 for FFmpeg by
1.8.2