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 Sat Jan 25 2014 19:52:01 for FFmpeg by
1.8.2