/* * This file is part of Libav. * * Libav is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * Libav is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "libavutil/common.h" #include "libavutil/log.h" #include "libavutil/rational.h" #include "libavutil/parseutils.h" int main(void) { int i; uint8_t rgba[4]; static const char *const rates[] = { "-inf", "inf", "nan", "123/0", "-123 / 0", "", "/", " 123 / 321", "foo/foo", "foo/1", "1/foo", "0/0", "/0", "1/", "1", "0", "-123/123", "-foo", "123.23", ".23", "-.23", "-0.234", "-0.0000001", " 21332.2324 ", " -21332.2324 ", }; static const char *const color_names[] = { "foo", "red", "Red ", "RED", "Violet", "Yellow", "Red", "0x000000", "0x0000000", "0xff000000", "0x3e34ff", "0x3e34ffaa", "0xffXXee", "0xfoobar", "0xffffeeeeeeee", "#ff0000", "#ffXX00", "ff0000", "ffXX00", "red@foo", "random@10", "0xff0000@1.0", "red@", "red@0xfff", "red@0xf", "red@2", "red@0.1", "red@-1", "red@0.5", "red@1.0", "red@256", "red@10foo", "red@-1.0", "red@-0.0", }; printf("Testing av_parse_video_rate()\n"); for (i = 0; i < FF_ARRAY_ELEMS(rates); i++) { int ret; AVRational q = { 0, 0 }; ret = av_parse_video_rate(&q, rates[i]); printf("'%s' -> %d/%d %s\n", rates[i], q.num, q.den, ret ? "ERROR" : "OK"); } printf("\nTesting av_parse_color()\n"); av_log_set_level(AV_LOG_DEBUG); for (i = 0; i < FF_ARRAY_ELEMS(color_names); i++) { if (av_parse_color(rgba, color_names[i], -1, NULL) >= 0) printf("%s -> R(%d) G(%d) B(%d) A(%d)\n", color_names[i], rgba[0], rgba[1], rgba[2], rgba[3]); } return 0; }