2 * Copyright (c) 2013 Georg Martius <georg dot martius at web dot de>
4 * This file is part of FFmpeg.
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.
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.
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
21 #include "vidstabutils.h"
23 /** convert AV's pixelformat to vid.stab pixelformat */
24 VSPixelFormat
ff_av2vs_pixfmt(AVFilterContext
*ctx
, enum AVPixelFormat 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
;
39 av_log(ctx
, AV_LOG_ERROR
, "cannot deal with pixel format %i\n", pf
);
44 /** struct to hold a valid context for logging from within vid.stab lib */
49 /** wrapper to log vs_log into av_log */
50 static int vs2av_log(int type
, const char *tag
, const char *format
, ...)
56 .item_name
= av_default_item_name
,
58 .version
= LIBAVUTIL_VERSION_INT
,
59 .category
= AV_CLASS_CATEGORY_FILTER
,
63 av_vlog(&ctx
, type
, format
, ap
);
68 /** sets the memory allocation function and logging constants to av versions */
71 vs_malloc
= av_malloc
;
72 vs_zalloc
= av_mallocz
;
73 vs_realloc
= av_realloc
;
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
;