Skip to content
Snippets Groups Projects
Verified Commit 9a3f8739 authored by Jean-Marc Valin's avatar Jean-Marc Valin
Browse files

Adds -lossfile option to opus_demo

parent 54ea2624
Branches opus-ng-neonwarningfix
No related tags found
No related merge requests found
...@@ -62,7 +62,8 @@ void print_usage( char* argv[] ) ...@@ -62,7 +62,8 @@ void print_usage( char* argv[] )
fprintf(stderr, "-inbandfec : enable SILK inband FEC\n" ); fprintf(stderr, "-inbandfec : enable SILK inband FEC\n" );
fprintf(stderr, "-forcemono : force mono encoding, even for stereo input\n" ); fprintf(stderr, "-forcemono : force mono encoding, even for stereo input\n" );
fprintf(stderr, "-dtx : enable SILK DTX\n" ); fprintf(stderr, "-dtx : enable SILK DTX\n" );
fprintf(stderr, "-loss <perc> : simulate packet loss, in percent (0-100); default: 0\n" ); fprintf(stderr, "-loss <perc> : optimize for loss percentage and simulate packet loss, in percent (0-100); default: 0\n" );
fprintf(stderr, "-lossfile <file> : simulate packet loss, reading loss from file\n" );
} }
static void int_to_char(opus_uint32 i, unsigned char ch[4]) static void int_to_char(opus_uint32 i, unsigned char ch[4])
...@@ -264,6 +265,7 @@ int main(int argc, char *argv[]) ...@@ -264,6 +265,7 @@ int main(int argc, char *argv[])
int delayed_decision=0; int delayed_decision=0;
int ret = EXIT_FAILURE; int ret = EXIT_FAILURE;
int lost_count=0; int lost_count=0;
FILE *packet_loss_file=NULL;
if (argc < 5 ) if (argc < 5 )
{ {
...@@ -422,6 +424,13 @@ int main(int argc, char *argv[]) ...@@ -422,6 +424,13 @@ int main(int argc, char *argv[])
} else if( strcmp( argv[ args ], "-loss" ) == 0 ) { } else if( strcmp( argv[ args ], "-loss" ) == 0 ) {
packet_loss_perc = atoi( argv[ args + 1 ] ); packet_loss_perc = atoi( argv[ args + 1 ] );
args += 2; args += 2;
} else if( strcmp( argv[ args ], "-lossfile" ) == 0 ) {
packet_loss_file = fopen( argv[ args + 1 ], "r" );
if (packet_loss_file == NULL) {
fprintf(stderr, "failed to open loss file %s\n", argv[ args + 1 ] );
exit(1);
}
args += 2;
} else if( strcmp( argv[ args ], "-sweep" ) == 0 ) { } else if( strcmp( argv[ args ], "-sweep" ) == 0 ) {
check_encoder_option(decode_only, "-sweep"); check_encoder_option(decode_only, "-sweep");
sweep_bps = atoi( argv[ args + 1 ] ); sweep_bps = atoi( argv[ args + 1 ] );
...@@ -760,7 +769,14 @@ int main(int argc, char *argv[]) ...@@ -760,7 +769,14 @@ int main(int argc, char *argv[])
} else { } else {
int fr; int fr;
int run_decoder; int run_decoder;
lost = len==0 || (packet_loss_perc>0 && rand()%100 < packet_loss_perc); if (packet_loss_file != NULL) {
if ( fscanf(packet_loss_file, "%d", &lost) != 1) {
lost = 0;
}
} else {
lost = (packet_loss_perc>0) && (rand()%100 < packet_loss_perc);
}
if (len == 0) lost = 1;
if (lost) if (lost)
{ {
lost_count++; lost_count++;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment