forked from Mirrors/freeswitch
FS-11425 add vpx test code
This commit is contained in:
parent
4ace287aac
commit
8e43604dbd
|
@ -1,6 +1,6 @@
|
|||
include $(top_srcdir)/build/modmake.rulesam
|
||||
|
||||
bin_PROGRAMS = switch_event switch_hash switch_ivr_originate switch_utils switch_core switch_console
|
||||
bin_PROGRAMS = switch_event switch_hash switch_ivr_originate switch_utils switch_core switch_console switch_vpx
|
||||
AM_LDFLAGS = -avoid-version -no-undefined $(SWITCH_AM_LDFLAGS) $(openssl_LIBS)
|
||||
AM_LDFLAGS += $(FREESWITCH_LIBS) $(switch_builddir)/libfreeswitch.la $(CORE_LIBS) $(APR_LIBS)
|
||||
AM_CFLAGS = $(SWITCH_AM_CPPFLAGS)
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Copyright (C) 2018, Signalwire, Inc. ALL RIGHTS RESERVED
|
||||
*
|
||||
* switch_vpx.c -- Tests vpx functions
|
||||
*/
|
||||
#include <test/switch_test.h>
|
||||
|
||||
FST_CORE_BEGIN("./conf")
|
||||
{
|
||||
FST_SUITE_BEGIN()
|
||||
{
|
||||
FST_SETUP_BEGIN()
|
||||
{
|
||||
}
|
||||
FST_SETUP_END()
|
||||
|
||||
FST_TEST_BEGIN(avcodec_test)
|
||||
{
|
||||
switch_status_t status;
|
||||
switch_codec_t codec = { 0 };
|
||||
switch_codec_settings_t codec_settings = { 0 };
|
||||
|
||||
// switch_set_string(codec_settings.video.config_profile_name, "conference");
|
||||
codec_settings.video.width = 1280;
|
||||
codec_settings.video.height = 720;
|
||||
|
||||
status = switch_core_codec_init(&codec,
|
||||
"VP8",
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
0,
|
||||
1, SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE,
|
||||
&codec_settings, fst_pool);
|
||||
fst_check(status == SWITCH_STATUS_SUCCESS);
|
||||
|
||||
switch_image_t *img = switch_img_alloc(NULL, SWITCH_IMG_FMT_I420, 1280, 720, 1);
|
||||
fst_requires(img);
|
||||
|
||||
uint8_t buf[SWITCH_DEFAULT_VIDEO_SIZE + 12];
|
||||
switch_frame_t frame = { 0 };
|
||||
|
||||
frame.packet = buf;
|
||||
frame.packetlen = SWITCH_DEFAULT_VIDEO_SIZE + 12;
|
||||
frame.data = buf + 12;
|
||||
frame.datalen = SWITCH_DEFAULT_VIDEO_SIZE;
|
||||
frame.payload = 96;
|
||||
frame.m = 0;
|
||||
frame.seq = 0;
|
||||
frame.timestamp = 0;
|
||||
frame.img = img;
|
||||
|
||||
int packets = 0;
|
||||
switch_status_t encode_status;
|
||||
|
||||
do {
|
||||
frame.datalen = SWITCH_DEFAULT_VIDEO_SIZE;
|
||||
encode_status = switch_core_codec_encode_video(&codec, &frame);
|
||||
|
||||
if (encode_status == SWITCH_STATUS_SUCCESS || encode_status == SWITCH_STATUS_MORE_DATA) {
|
||||
|
||||
switch_assert((encode_status == SWITCH_STATUS_SUCCESS && frame.m) || !frame.m);
|
||||
|
||||
if (frame.flags & SFF_PICTURE_RESET) {
|
||||
frame.flags &= ~SFF_PICTURE_RESET;
|
||||
// fst_check(0);
|
||||
}
|
||||
|
||||
if (frame.datalen == 0) break;
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "%02x %02x | m=%d | %d\n", buf[12], buf[13], frame.m, frame.datalen);
|
||||
packets++;
|
||||
}
|
||||
|
||||
} while(encode_status == SWITCH_STATUS_MORE_DATA);
|
||||
|
||||
fst_check(frame.m == 1);
|
||||
fst_check(packets > 0);
|
||||
|
||||
switch_core_codec_destroy(&codec);
|
||||
}
|
||||
FST_TEST_END()
|
||||
|
||||
FST_TEARDOWN_BEGIN()
|
||||
{
|
||||
switch_sleep(1000000);
|
||||
// switch_core_destroy();
|
||||
}
|
||||
FST_TEARDOWN_END()
|
||||
}
|
||||
FST_SUITE_END()
|
||||
}
|
||||
FST_CORE_END()
|
Loading…
Reference in New Issue