2016-03-17 20:13:17 +02:00
|
|
|
/*
|
|
|
|
* 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 <stdint.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
2016-04-20 11:40:40 +02:00
|
|
|
#include "libavutil/common.h"
|
|
|
|
#include "libavutil/log.h"
|
|
|
|
#include "libavutil/rational.h"
|
|
|
|
#include "libavutil/parseutils.h"
|
2016-03-17 20:13:17 +02:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|