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
libavfilter
vidstabutils.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013 Georg Martius <georg dot martius at web dot de>
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include "
vidstabutils.h
"
22
23
/** convert AV's pixelformat to vid.stab pixelformat */
24
VSPixelFormat
av_2_vs_pixel_format
(
AVFilterContext
*ctx,
enum
AVPixelFormat
pf)
25
{
26
switch
(pf) {
27
case
AV_PIX_FMT_YUV420P
:
return
PF_YUV420P;
28
case
AV_PIX_FMT_YUV422P
:
return
PF_YUV422P;
29
case
AV_PIX_FMT_YUV444P
:
return
PF_YUV444P;
30
case
AV_PIX_FMT_YUV410P
:
return
PF_YUV410P;
31
case
AV_PIX_FMT_YUV411P
:
return
PF_YUV411P;
32
case
AV_PIX_FMT_YUV440P
:
return
PF_YUV440P;
33
case
AV_PIX_FMT_YUVA420P
:
return
PF_YUVA420P;
34
case
AV_PIX_FMT_GRAY8
:
return
PF_GRAY8;
35
case
AV_PIX_FMT_RGB24
:
return
PF_RGB24;
36
case
AV_PIX_FMT_BGR24
:
return
PF_BGR24;
37
case
AV_PIX_FMT_RGBA
:
return
PF_RGBA;
38
default
:
39
av_log
(ctx,
AV_LOG_ERROR
,
"cannot deal with pixel format %i\n"
, pf);
40
return
PF_NONE;
41
}
42
}
43
44
/** struct to hold a valid context for logging from within vid.stab lib */
45
typedef
struct
{
46
const
AVClass
*
class
;
47
}
VS2AVLogCtx
;
48
49
/** wrapper to log vs_log into av_log */
50
static
int
vs_2_av_log_wrapper
(
int
type,
const
char
*
tag
,
const
char
*format, ...)
51
{
52
va_list ap;
53
VS2AVLogCtx
ctx;
54
AVClass
class
= {
55
.
class_name
=
tag
,
56
.item_name =
av_default_item_name
,
57
.option = 0,
58
.version =
LIBAVUTIL_VERSION_INT
,
59
.category =
AV_CLASS_CATEGORY_FILTER
,
60
};
61
ctx.
class
= &
class
;
62
va_start(ap, format);
63
av_vlog
(&ctx, type, format, ap);
64
va_end(ap);
65
return
VS_OK;
66
}
67
68
/** sets the memory allocation function and logging constants to av versions */
69
void
vs_set_mem_and_log_functions
(
void
)
70
{
71
vs_malloc =
av_malloc
;
72
vs_zalloc =
av_mallocz
;
73
vs_realloc =
av_realloc
;
74
vs_free =
av_free
;
75
76
VS_ERROR_TYPE =
AV_LOG_ERROR
;
77
VS_WARN_TYPE =
AV_LOG_WARNING
;
78
VS_INFO_TYPE =
AV_LOG_INFO
;
79
VS_MSG_TYPE =
AV_LOG_VERBOSE
;
80
81
vs_log =
vs_2_av_log_wrapper
;
82
83
VS_ERROR = 0;
84
VS_OK = 1;
85
}
Generated on Wed Jul 10 2013 23:48:11 for FFmpeg by
1.8.2