Add new tests to MediaTest
This commit is contained in:
@@ -19,11 +19,15 @@
|
|||||||
#define SNOOZE_FOR 10000000
|
#define SNOOZE_FOR 10000000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MAX_MULTI_CLIENTS 3
|
||||||
|
|
||||||
static BSimpleMediaClient* sProducer = NULL;
|
static BSimpleMediaClient* sProducer = NULL;
|
||||||
static BSimpleMediaClient* sConsumer = NULL;
|
static BSimpleMediaClient* sConsumer = NULL;
|
||||||
static BSimpleMediaClient* sFilter = NULL;
|
static BSimpleMediaClient* sFilter = NULL;
|
||||||
|
|
||||||
|
static BSimpleMediaClient* sProducers[MAX_MULTI_CLIENTS];
|
||||||
|
static BSimpleMediaClient* sConsumers[MAX_MULTI_CLIENTS];
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
_InitClients(bool hasFilter)
|
_InitClients(bool hasFilter)
|
||||||
@@ -38,6 +42,25 @@ _InitClients(bool hasFilter)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_InitClientsMulti(bool isMixer)
|
||||||
|
{
|
||||||
|
if (!isMixer) {
|
||||||
|
for (int i = 0; i < MAX_MULTI_CLIENTS; i++) {
|
||||||
|
sConsumers[i] = new BSimpleMediaClient("Test Consumer");
|
||||||
|
}
|
||||||
|
sProducer = new BSimpleMediaClient("MediaClientProducer");
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < MAX_MULTI_CLIENTS; i++) {
|
||||||
|
sProducers[i] = new BSimpleMediaClient("Test Producer");
|
||||||
|
}
|
||||||
|
sConsumer = new BSimpleMediaClient("MediaClientConsumer");
|
||||||
|
}
|
||||||
|
|
||||||
|
sFilter = new BSimpleMediaClient("MediaClientFilter");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
_DeleteClients()
|
_DeleteClients()
|
||||||
{
|
{
|
||||||
@@ -47,6 +70,24 @@ _DeleteClients()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_DeleteClientsMulti(bool isMixer)
|
||||||
|
{
|
||||||
|
if (!isMixer) {
|
||||||
|
for (int i = 0; i < MAX_MULTI_CLIENTS; i++) {
|
||||||
|
delete sConsumers[i];
|
||||||
|
}
|
||||||
|
delete sProducer;
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < MAX_MULTI_CLIENTS; i++) {
|
||||||
|
delete sProducers[i];
|
||||||
|
}
|
||||||
|
delete sConsumer;
|
||||||
|
}
|
||||||
|
delete sFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
media_format
|
media_format
|
||||||
_BuildRawAudioFormat()
|
_BuildRawAudioFormat()
|
||||||
{
|
{
|
||||||
@@ -126,6 +167,48 @@ _ProducerFilterConsumerTest()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_SplitterConfigurationTest()
|
||||||
|
{
|
||||||
|
_InitClientsMulti(false);
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_MULTI_CLIENTS; i++) {
|
||||||
|
BMediaOutput* output = sFilter->BeginOutput();
|
||||||
|
assert(sFilter->Connect(output, sConsumers[i]->BeginInput()) == B_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(sProducer->Connect(sProducer->BeginOutput(),
|
||||||
|
sFilter->BeginInput()) == B_OK);
|
||||||
|
|
||||||
|
#ifdef DELAYED_MODE
|
||||||
|
snooze(SNOOZE_FOR);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
_DeleteClientsMulti(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_MixerConfigurationTest()
|
||||||
|
{
|
||||||
|
_InitClientsMulti(true);
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_MULTI_CLIENTS; i++) {
|
||||||
|
BMediaInput* input = sFilter->BeginInput();
|
||||||
|
assert(sFilter->Connect(input, sConsumers[i]->BeginInput()) == B_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(sConsumer->Connect(sConsumer->BeginInput(),
|
||||||
|
sFilter->BeginOutput()) == B_OK);
|
||||||
|
|
||||||
|
#ifdef DELAYED_MODE
|
||||||
|
snooze(SNOOZE_FOR);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
_DeleteClientsMulti(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
media_test()
|
media_test()
|
||||||
{
|
{
|
||||||
@@ -137,4 +220,12 @@ media_test()
|
|||||||
printf("Testing Simple (1:1:1) Producer-Filter-Consumer configuration: ");
|
printf("Testing Simple (1:1:1) Producer-Filter-Consumer configuration: ");
|
||||||
_ProducerFilterConsumerTest();
|
_ProducerFilterConsumerTest();
|
||||||
printf("OK\n");
|
printf("OK\n");
|
||||||
|
|
||||||
|
printf("Testing Splitter Configuration (N:1:1): ");
|
||||||
|
_SplitterConfigurationTest();
|
||||||
|
printf("OK\n");
|
||||||
|
|
||||||
|
printf("Testing Mixer Configuration (N:1:1): ");
|
||||||
|
_SplitterConfigurationTest();
|
||||||
|
printf("OK\n");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user