Browse Source

MT#55283 perf tester fixes

Change-Id: Ife254dbb50950aae6069da99837bc6ed506c056f
pull/1964/head
Richard Fuchs 6 months ago
parent
commit
3932939eaf
1 changed files with 32 additions and 6 deletions
  1. +32
    -6
      perf-tester/main.c

+ 32
- 6
perf-tester/main.c View File

@ -157,8 +157,8 @@ static const struct testparams testparams[] = {
// settings // settings
static char *source_codec = "PCMA";
static char *dest_codec = "opus";
static char *source_codec;
static char *dest_codec;
static int init_threads = 0; static int init_threads = 0;
static gboolean bidirectional = false; static gboolean bidirectional = false;
static int max_cpu = 0; static int max_cpu = 0;
@ -168,6 +168,7 @@ static int measure_time = 500;
static int repeats = 1; static int repeats = 1;
static gboolean cpu_freq; static gboolean cpu_freq;
static int freq_granularity = 50; static int freq_granularity = 50;
static bool codec_chain;
#define BLOCKED_COLOR 1 #define BLOCKED_COLOR 1
@ -292,8 +293,6 @@ static int got_packet_pkt(struct stream *s, AVPacket *pkt) {
} }
} }
av_packet_unref(pkt);
return 0; return 0;
} }
@ -372,8 +371,10 @@ static void readable(int fd, void *o) {
decoder_input_data(s->decoder, &frame, s->input_ts, got_frame, s, NULL); decoder_input_data(s->decoder, &frame, s->input_ts, got_frame, s, NULL);
else { else {
AVPacket *pkt = codec_cc_input_data(s->chain, &frame, s->input_ts, s, NULL, NULL); AVPacket *pkt = codec_cc_input_data(s->chain, &frame, s->input_ts, s, NULL, NULL);
if (pkt)
if (pkt) {
got_packet_pkt(s, pkt); got_packet_pkt(s, pkt);
av_packet_unref(pkt);
}
else else
mutex_lock(&s->lock); // was unlocked by async_init mutex_lock(&s->lock); // was unlocked by async_init
} }
@ -440,6 +441,7 @@ static void stream_free(struct stream *s) {
encoder_free(s->encoder); encoder_free(s->encoder);
if (s->decoder) if (s->decoder)
decoder_close(s->decoder); decoder_close(s->decoder);
codec_cc_free(&s->chain);
g_free(s->type); g_free(s->type);
} }
@ -458,7 +460,6 @@ static void async_finish(AVPacket *pkt, void *async_cb_obj) {
got_packet_pkt(s, pkt); got_packet_pkt(s, pkt);
} }
obj_put(s); obj_put(s);
av_packet_free(&pkt);
} }
static void new_stream_params( static void new_stream_params(
@ -1687,6 +1688,12 @@ static void options(int *argc, char ***argv) {
.description = "Granularity in ms for measuring CPU frequencies", .description = "Granularity in ms for measuring CPU frequencies",
.arg_description = "INT", .arg_description = "INT",
}, },
{
.long_name = "codec-chain",
.arg = G_OPTION_ARG_NONE,
.arg_data = &codec_chain,
.description = "Use codec-chain facilities",
},
{ NULL, } { NULL, }
}; };
@ -1698,6 +1705,11 @@ static void options(int *argc, char ***argv) {
if (init_threads <= 0) if (init_threads <= 0)
init_threads = 1; init_threads = 1;
if (!source_codec)
source_codec = g_strdup("PCMA");
if (!dest_codec)
dest_codec = g_strdup("opus");
if (max_cpu > 100 || max_cpu < 0) if (max_cpu > 100 || max_cpu < 0)
die("Invalid `max-cpu` number given"); die("Invalid `max-cpu` number given");
if (freq_granularity <= 0) if (freq_granularity <= 0)
@ -1947,6 +1959,20 @@ int main(int argc, char **argv) {
if (!find_params(&out_params, dest_codec)) if (!find_params(&out_params, dest_codec))
die("Definition for output fixture not found"); die("Definition for output fixture not found");
if (codec_chain) {
cc_init_chain(
decoder_def,
&(format_t) {
.channels = in_params.channels,
.clockrate = in_params.clock_rate,
},
encoder_def,
&(format_t) {
.channels = out_params.channels,
.clockrate = out_params.clock_rate,
});
}
load_fixture(&in_params); load_fixture(&in_params);
if (bidirectional) if (bidirectional)
load_fixture(&out_params); load_fixture(&out_params);


Loading…
Cancel
Save