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
if
(av_sat_dadd32(1, 2) != 5) {
44
av_log
(NULL,
AV_LOG_FATAL
,
"Libavutil has been build with a broken binutils, please upgrade binutils and rebuild\n"
);
45
abort();
46
}
47
48
if
(
llrint
(1LL<<60) != 1LL<<60) {
49
av_log
(NULL,
AV_LOG_ERROR
,
"Libavutil has been linked to a broken llrint()\n"
);
50
}
51
52
ff_check_pixfmt_descriptors
();
53
checks_done = 1;
54
return
LIBAVUTIL_VERSION_INT
;
55
}
56
57
const
char
*
avutil_configuration
(
void
)
58
{
59
return
FFMPEG_CONFIGURATION;
60
}
61
62
const
char
*
avutil_license
(
void
)
63
{
64
#define LICENSE_PREFIX "libavutil license: "
65
return
LICENSE_PREFIX
FFMPEG_LICENSE +
sizeof
(
LICENSE_PREFIX
) - 1;
66
}
67
68
const
char
*
av_get_media_type_string
(
enum
AVMediaType
media_type)
69
{
70
switch
(media_type) {
71
case
AVMEDIA_TYPE_VIDEO
:
return
"video"
;
72
case
AVMEDIA_TYPE_AUDIO
:
return
"audio"
;
73
case
AVMEDIA_TYPE_DATA
:
return
"data"
;
74
case
AVMEDIA_TYPE_SUBTITLE
:
return
"subtitle"
;
75
case
AVMEDIA_TYPE_ATTACHMENT
:
return
"attachment"
;
76
default
:
return
NULL;
77
}
78
}
79
80
char
av_get_picture_type_char
(
enum
AVPictureType
pict_type)
81
{
82
switch
(pict_type) {
83
case
AV_PICTURE_TYPE_I
:
return
'I'
;
84
case
AV_PICTURE_TYPE_P
:
return
'P'
;
85
case
AV_PICTURE_TYPE_B
:
return
'B'
;
86
case
AV_PICTURE_TYPE_S
:
return
'S'
;
87
case
AV_PICTURE_TYPE_SI
:
return
'i'
;
88
case
AV_PICTURE_TYPE_SP
:
return
'p'
;
89
case
AV_PICTURE_TYPE_BI
:
return
'b'
;
90
default
:
return
'?'
;
91
}
92
}
93
94
unsigned
av_int_list_length_for_size
(
unsigned
elsize,
95
const
void
*list, uint64_t term)
96
{
97
unsigned
i;
98
99
if
(!list)
100
return
0;
101
#define LIST_LENGTH(type) \
102
{ type t = term, *l = (type *)list; for (i = 0; l[i] != t; i++); }
103
switch
(elsize) {
104
case
1:
LIST_LENGTH
(
uint8_t
);
break
;
105
case
2:
LIST_LENGTH
(uint16_t);
break
;
106
case
4:
LIST_LENGTH
(uint32_t);
break
;
107
case
8:
LIST_LENGTH
(uint64_t);
break
;
108
default
:
av_assert0
(!
"valid element size"
);
109
}
110
return
i;
111
}
Generated on Wed Jul 10 2013 23:48:06 for FFmpeg by
1.8.2