From 34b573998be9f27eb1d148768ae7387a8ca5d37b Mon Sep 17 00:00:00 2001 From: Seven Du <seven@signalwire.com> Date: Wed, 14 Nov 2018 14:36:18 +0800 Subject: [PATCH] FS-11521: [mod_av] WIP add test code and add png --- conf/vanilla/autoload_configs/av.conf.xml | 1 + src/mod/applications/mod_av/test/Makefile.am | 2 +- src/mod/applications/mod_av/test/cluecon.png | Bin 0 -> 213752 bytes .../applications/mod_av/test/test_avformat.c | 110 ++++++++++++++++++ 4 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 src/mod/applications/mod_av/test/cluecon.png create mode 100644 src/mod/applications/mod_av/test/test_avformat.c diff --git a/conf/vanilla/autoload_configs/av.conf.xml b/conf/vanilla/autoload_configs/av.conf.xml index cf28fab3d3..5a53668c4d 100644 --- a/conf/vanilla/autoload_configs/av.conf.xml +++ b/conf/vanilla/autoload_configs/av.conf.xml @@ -141,5 +141,6 @@ enum AVColorRange { <configuration name="avformat.conf" description="AVFormat Config"> <settings> + <param name="colorspace" value="1"/> </settings> </configuration> diff --git a/src/mod/applications/mod_av/test/Makefile.am b/src/mod/applications/mod_av/test/Makefile.am index 4c66bd22f6..b7111a2275 100644 --- a/src/mod/applications/mod_av/test/Makefile.am +++ b/src/mod/applications/mod_av/test/Makefile.am @@ -1,4 +1,4 @@ -bin_PROGRAMS = test_mod_av +bin_PROGRAMS = test_mod_av test_avformat AM_CFLAGS = $(SWITCH_AM_CFLAGS) -I../ $(AVFORMAT_CFLAGS) $(AVCODEC_CFLAGS) $(SWSCALE_CFLAGS) $(AVUTIL_CFLAGS) $(AVRESAMPLE_CFALGS) AM_LDFLAGS = $(switch_builddir)/libfreeswitch.la $(AVFORMAT_LIBS) $(AVCODEC_LIBS) $(SWSCALE_LIBS) $(AVUTIL_LIBS) $(AVRESAMPLE_LIBS) -avoid-version -no-undefined $(SWITCH_AM_LDFLAGS) ../mod_av.la TESTS = $(bin_PROGRAMS) diff --git a/src/mod/applications/mod_av/test/cluecon.png b/src/mod/applications/mod_av/test/cluecon.png new file mode 100644 index 0000000000000000000000000000000000000000..91abe81dd83a317a250c008a0744200119988d36 GIT binary patch literal 213752 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 literal 0 HcmV?d00001 diff --git a/src/mod/applications/mod_av/test/test_avformat.c b/src/mod/applications/mod_av/test/test_avformat.c new file mode 100644 index 0000000000..248d43f930 --- /dev/null +++ b/src/mod/applications/mod_av/test/test_avformat.c @@ -0,0 +1,110 @@ +/* + * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application + * Copyright (C) 2005-2018, Anthony Minessale II <anthm@freeswitch.org> + * + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application + * + * The Initial Developer of the Original Code is + * Seven Du <seven@signalwire.com> + * Portions created by the Initial Developer are Copyright (C) + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * + * test_avformat -- avformat tests + * + */ + +#include <test/switch_test.h> + +#define SAMPLES 160 + +FST_CORE_BEGIN("conf") +{ + FST_MODULE_BEGIN(mod_av, mod_av_test) + { + FST_SETUP_BEGIN() + { + fst_requires_module("mod_av"); + } + FST_SETUP_END() + + FST_TEST_BEGIN(avformat_test) + { + switch_status_t status; + switch_image_t *img = switch_img_alloc(NULL, SWITCH_IMG_FMT_I420, 1280, 720, 1); + switch_file_handle_t fh = { 0 }; + uint8_t data[SAMPLES * 2] = { 0 }; + switch_frame_t frame = { 0 }; + switch_size_t len = SAMPLES; + uint32_t flags = SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT | SWITCH_FILE_FLAG_VIDEO; + + fst_requires(img); + + status = switch_core_file_open(&fh, "./test.mp4", 1, 8000, flags, fst_pool); + fst_requires(status == SWITCH_STATUS_SUCCESS); + fst_requires(switch_test_flag(&fh, SWITCH_FILE_OPEN)); + + status = switch_core_file_write(&fh, data, &len); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "status: %d len: %d\n", status, len); + fst_check(status == SWITCH_STATUS_SUCCESS); + // fst_requires(len == SAMPLES); + + frame.img = img; + status = switch_core_file_write_video(&fh, &frame); + fst_check(status == SWITCH_STATUS_SUCCESS); + + switch_image_t *ccimg = switch_img_read_png("./cluecon.png", SWITCH_IMG_FMT_ARGB); + fst_requires(ccimg); + + switch_rgb_color_t color = {0}; + color.a = 255; + + for (int i = 0; i < 30; i++) { + len = SAMPLES; + + if (i == 10) { + color.r = 255; + } else if (i == 20) { + color.r = 0; + color.b = 255; + } + + switch_img_fill(img, 0, 0, img->d_w, img->d_h, &color); + switch_img_patch(img, ccimg, i * 10, i * 10); + + status = switch_core_file_write(&fh, data, &len); + status = switch_core_file_write_video(&fh, &frame); + switch_yield(100000); + } + + switch_core_file_close(&fh); + switch_img_free(&img); + switch_img_free(&ccimg); + } + FST_TEST_END() + + FST_TEARDOWN_BEGIN() + { + const char *err = NULL; + switch_sleep(1000000); + fst_check(switch_loadable_module_unload_module(SWITCH_GLOBAL_dirs.mod_dir, (char *)"mod_av", SWITCH_TRUE, &err) == SWITCH_STATUS_SUCCESS); + } + FST_TEARDOWN_END() + } + FST_MODULE_END() +} +FST_CORE_END()