|
|
|
@@ -76,7 +76,7 @@ static int config_output(AVFilterLink *outlink) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int disp_palette(AVFrame *out, const AVFrame *in, int size) |
|
|
|
static void disp_palette(AVFrame *out, const AVFrame *in, int size) |
|
|
|
{ |
|
|
|
int x, y, i, j; |
|
|
|
uint32_t *dst = (uint32_t *)out->data[0]; |
|
|
|
@@ -88,12 +88,10 @@ static int disp_palette(AVFrame *out, const AVFrame *in, int size) |
|
|
|
for (j = 0; j < size; j++) |
|
|
|
for (i = 0; i < size; i++) |
|
|
|
dst[(y*dst_linesize + x) * size + j*dst_linesize + i] = pal[y*16 + x]; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
|
|
|
{ |
|
|
|
int ret; |
|
|
|
AVFrame *out; |
|
|
|
AVFilterContext *ctx = inlink->dst; |
|
|
|
const ShowPaletteContext *s = ctx->priv; |
|
|
|
@@ -105,9 +103,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
av_frame_copy_props(out, in); |
|
|
|
ret = disp_palette(out, in, s->size); |
|
|
|
disp_palette(out, in, s->size); |
|
|
|
av_frame_free(&in); |
|
|
|
return ret < 0 ? ret : ff_filter_frame(outlink, out); |
|
|
|
return ff_filter_frame(outlink, out); |
|
|
|
} |
|
|
|
|
|
|
|
static const AVFilterPad showpalette_inputs[] = { |
|
|
|
|