summaryrefslogtreecommitdiff
path: root/libswscale/slice.c
diff options
context:
space:
mode:
Diffstat (limited to 'libswscale/slice.c')
-rw-r--r--libswscale/slice.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libswscale/slice.c b/libswscale/slice.c
index b3ee06d632..db1c696727 100644
--- a/libswscale/slice.c
+++ b/libswscale/slice.c
@@ -282,7 +282,13 @@ int ff_init_filters(SwsContext * c)
c->descIndex[0] = num_ydesc + (need_gamma ? 1 : 0);
c->descIndex[1] = num_ydesc + num_cdesc + (need_gamma ? 1 : 0);
-
+ if (isFloat16(c->srcFormat)) {
+ c->h2f_tables = av_malloc(sizeof(*c->h2f_tables));
+ if (!c->h2f_tables)
+ return AVERROR(ENOMEM);
+ ff_init_half2float_tables(c->h2f_tables);
+ c->input_opaque = c->h2f_tables;
+ }
c->desc = av_calloc(c->numDesc, sizeof(*c->desc));
if (!c->desc)
@@ -393,5 +399,6 @@ int ff_free_filters(SwsContext *c)
free_slice(&c->slice[i]);
av_freep(&c->slice);
}
+ av_freep(&c->h2f_tables);
return 0;
}