annotate libswscale/swscale_avoption.c @ 28615:15e7abed4291

Use the same code to convert fps in float to fraction as used in mencoder, it ensures all the common frame rates work right. If this causes issues, it should be changed in the same way in mencoder.c
author reimar
date Wed, 18 Feb 2009 16:49:12 +0000
parents f5565112d12f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27213
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
1 /*
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
2 * Copyright (C) 2001-2003 Michael Niedermayer <michaelni@gmx.at>
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
3 *
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
4 * This file is part of FFmpeg.
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
5 *
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
10 *
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
14 * Lesser General Public License for more details.
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
15 *
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
19 */
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
20
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
21 #include "libavutil/avutil.h"
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
22 #include "libavcodec/opt.h"
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
23 #include "swscale.h"
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
24 #include "swscale_internal.h"
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
25
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
26 static const char * sws_context_to_name(void * ptr) {
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
27 return "swscaler";
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
28 }
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
29
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
30 #define OFFSET(x) offsetof(SwsContext, x)
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
31 #define DEFAULT 0
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
32 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
33
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
34 static const AVOption options[] = {
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
35 { "sws_flags", "scaler/cpu flags", OFFSET(flags), FF_OPT_TYPE_FLAGS, DEFAULT, 0, UINT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
36 { "fast_bilinear", "fast bilinear", 0, FF_OPT_TYPE_CONST, SWS_FAST_BILINEAR, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
37 { "bilinear", "bilinear", 0, FF_OPT_TYPE_CONST, SWS_BILINEAR, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
38 { "bicubic", "bicubic", 0, FF_OPT_TYPE_CONST, SWS_BICUBIC, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
39 { "experimental", "experimental", 0, FF_OPT_TYPE_CONST, SWS_X, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
40 { "neighbor", "nearest neighbor", 0, FF_OPT_TYPE_CONST, SWS_POINT, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
41 { "area", "averaging area", 0, FF_OPT_TYPE_CONST, SWS_AREA, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
42 { "bicublin", "luma bicubic, chroma bilinear", 0, FF_OPT_TYPE_CONST, SWS_BICUBLIN, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
43 { "gauss", "gaussian", 0, FF_OPT_TYPE_CONST, SWS_GAUSS, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
44 { "sinc", "sinc", 0, FF_OPT_TYPE_CONST, SWS_SINC, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
45 { "lanczos", "lanczos", 0, FF_OPT_TYPE_CONST, SWS_LANCZOS, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
46 { "spline", "natural bicubic spline", 0, FF_OPT_TYPE_CONST, SWS_SPLINE, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
47 { "print_info", "print info", 0, FF_OPT_TYPE_CONST, SWS_PRINT_INFO, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
48 { "accurate_rnd", "accurate rounding", 0, FF_OPT_TYPE_CONST, SWS_ACCURATE_RND, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
49 { "mmx", "MMX SIMD acceleration", 0, FF_OPT_TYPE_CONST, SWS_CPU_CAPS_MMX, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
50 { "mmx2", "MMX2 SIMD acceleration", 0, FF_OPT_TYPE_CONST, SWS_CPU_CAPS_MMX2, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
51 { "3dnow", "3DNOW SIMD acceleration", 0, FF_OPT_TYPE_CONST, SWS_CPU_CAPS_3DNOW, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
52 { "altivec", "AltiVec SIMD acceleration", 0, FF_OPT_TYPE_CONST, SWS_CPU_CAPS_ALTIVEC, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
53 { "bfin", "Blackfin SIMD acceleration", 0, FF_OPT_TYPE_CONST, SWS_CPU_CAPS_BFIN, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
54 { "full_chroma_int", "full chroma interpolation", 0 , FF_OPT_TYPE_CONST, SWS_FULL_CHR_H_INT, INT_MIN, INT_MAX, VE, "sws_flags" },
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
55 { "full_chroma_inp", "full chroma input", 0 , FF_OPT_TYPE_CONST, SWS_FULL_CHR_H_INP, INT_MIN, INT_MAX, VE, "sws_flags" },
27560
f5565112d12f Add bitexact flag.
michael
parents: 27213
diff changeset
56 { "bitexact", "", 0 , FF_OPT_TYPE_CONST, SWS_BITEXACT, INT_MIN, INT_MAX, VE, "sws_flags" },
27213
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
57 { NULL }
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
58 };
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
59
aa7edc57c75e 100l, avoption splitted code added, I should double check with svn status...
lu_zero
parents:
diff changeset
60 const AVClass sws_context_class = { "SWScaler", sws_context_to_name, options };