|
|
@ -695,11 +695,15 @@ static int draw_legend(AVFilterContext *ctx, int samples) |
|
|
|
inlink->channel_layout); |
|
|
|
inlink->channel_layout); |
|
|
|
|
|
|
|
|
|
|
|
text = av_asprintf("%d Hz | %s", inlink->sample_rate, chlayout_str); |
|
|
|
text = av_asprintf("%d Hz | %s", inlink->sample_rate, chlayout_str); |
|
|
|
|
|
|
|
if (!text) |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
|
|
|
|
drawtext(s->outpicref, 2, outlink->h - 10, "CREATED BY LIBAVFILTER", 0); |
|
|
|
drawtext(s->outpicref, 2, outlink->h - 10, "CREATED BY LIBAVFILTER", 0); |
|
|
|
drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, outlink->h - 10, text, 0); |
|
|
|
drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, outlink->h - 10, text, 0); |
|
|
|
if (s->stop) { |
|
|
|
if (s->stop) { |
|
|
|
char *text = av_asprintf("Zoom: %d Hz - %d Hz", s->start, s->stop); |
|
|
|
char *text = av_asprintf("Zoom: %d Hz - %d Hz", s->start, s->stop); |
|
|
|
|
|
|
|
if (!text) |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, 3, text, 0); |
|
|
|
drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, 3, text, 0); |
|
|
|
av_freep(&text); |
|
|
|
av_freep(&text); |
|
|
|
} |
|
|
|
} |
|
|
@ -766,6 +770,8 @@ static int draw_legend(AVFilterContext *ctx, int samples) |
|
|
|
for (x = 0; x < s->w && s->single_pic; x+=80) { |
|
|
|
for (x = 0; x < s->w && s->single_pic; x+=80) { |
|
|
|
float seconds = x * spp / inlink->sample_rate; |
|
|
|
float seconds = x * spp / inlink->sample_rate; |
|
|
|
char *units = get_time(ctx, seconds, x); |
|
|
|
char *units = get_time(ctx, seconds, x); |
|
|
|
|
|
|
|
if (!units) |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
|
|
|
|
drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->h + s->start_y + 6, units, 0); |
|
|
|
drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->h + s->start_y + 6, units, 0); |
|
|
|
drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->start_y - 12, units, 0); |
|
|
|
drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->start_y - 12, units, 0); |
|
|
@ -822,6 +828,8 @@ static int draw_legend(AVFilterContext *ctx, int samples) |
|
|
|
for (y = 0; y < s->h && s->single_pic; y+=40) { |
|
|
|
for (y = 0; y < s->h && s->single_pic; y+=40) { |
|
|
|
float seconds = y * spp / inlink->sample_rate; |
|
|
|
float seconds = y * spp / inlink->sample_rate; |
|
|
|
char *units = get_time(ctx, seconds, x); |
|
|
|
char *units = get_time(ctx, seconds, x); |
|
|
|
|
|
|
|
if (!units) |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
|
|
|
|
drawtext(s->outpicref, s->start_x - 8 * strlen(units) - 4, s->start_y + y - 4, units, 0); |
|
|
|
drawtext(s->outpicref, s->start_x - 8 * strlen(units) - 4, s->start_y + y - 4, units, 0); |
|
|
|
av_free(units); |
|
|
|
av_free(units); |
|
|
@ -1360,6 +1368,8 @@ static int plot_spectrum_column(AVFilterLink *inlink, AVFrame *insamples) |
|
|
|
if (s->old_pts < outpicref->pts) { |
|
|
|
if (s->old_pts < outpicref->pts) { |
|
|
|
if (s->legend) { |
|
|
|
if (s->legend) { |
|
|
|
char *units = get_time(ctx, insamples->pts /(float)inlink->sample_rate, x); |
|
|
|
char *units = get_time(ctx, insamples->pts /(float)inlink->sample_rate, x); |
|
|
|
|
|
|
|
if (!units) |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
|
|
|
|
if (s->orientation == VERTICAL) { |
|
|
|
if (s->orientation == VERTICAL) { |
|
|
|
for (y = 0; y < 10; y++) { |
|
|
|
for (y = 0; y < 10; y++) { |
|
|
|