summaryrefslogtreecommitdiff
path: root/libavcodec/pnmdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/pnmdec.c')
-rw-r--r--libavcodec/pnmdec.c42
1 files changed, 9 insertions, 33 deletions
diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
index 9383dc8e60..6adc348ec8 100644
--- a/libavcodec/pnmdec.c
+++ b/libavcodec/pnmdec.c
@@ -313,18 +313,9 @@ static int pnm_decode_frame(AVCodecContext *avctx, AVFrame *p,
b = (float *)p->data[1];
for (int i = 0; i < avctx->height; i++) {
for (int j = 0; j < avctx->width; j++) {
- r[j] = av_int2float(half2float(AV_RL16(s->bytestream+0),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
- g[j] = av_int2float(half2float(AV_RL16(s->bytestream+2),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
- b[j] = av_int2float(half2float(AV_RL16(s->bytestream+4),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
+ r[j] = av_int2float(half2float(AV_RL16(s->bytestream+0), &s->h2f_tables)) * scale;
+ g[j] = av_int2float(half2float(AV_RL16(s->bytestream+2), &s->h2f_tables)) * scale;
+ b[j] = av_int2float(half2float(AV_RL16(s->bytestream+4), &s->h2f_tables)) * scale;
s->bytestream += 6;
}
@@ -340,18 +331,9 @@ static int pnm_decode_frame(AVCodecContext *avctx, AVFrame *p,
b = (float *)p->data[1];
for (int i = 0; i < avctx->height; i++) {
for (int j = 0; j < avctx->width; j++) {
- r[j] = av_int2float(half2float(AV_RB16(s->bytestream+0),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
- g[j] = av_int2float(half2float(AV_RB16(s->bytestream+2),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
- b[j] = av_int2float(half2float(AV_RB16(s->bytestream+4),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
+ r[j] = av_int2float(half2float(AV_RB16(s->bytestream+0), &s->h2f_tables)) * scale;
+ g[j] = av_int2float(half2float(AV_RB16(s->bytestream+2), &s->h2f_tables)) * scale;
+ b[j] = av_int2float(half2float(AV_RB16(s->bytestream+4), &s->h2f_tables)) * scale;
s->bytestream += 6;
}
@@ -394,10 +376,7 @@ static int pnm_decode_frame(AVCodecContext *avctx, AVFrame *p,
float *g = (float *)p->data[0];
for (int i = 0; i < avctx->height; i++) {
for (int j = 0; j < avctx->width; j++) {
- g[j] = av_int2float(half2float(AV_RL16(s->bytestream),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
+ g[j] = av_int2float(half2float(AV_RL16(s->bytestream), &s->h2f_tables)) * scale;
s->bytestream += 2;
}
g += p->linesize[0] / 4;
@@ -406,10 +385,7 @@ static int pnm_decode_frame(AVCodecContext *avctx, AVFrame *p,
float *g = (float *)p->data[0];
for (int i = 0; i < avctx->height; i++) {
for (int j = 0; j < avctx->width; j++) {
- g[j] = av_int2float(half2float(AV_RB16(s->bytestream),
- s->mantissatable,
- s->exponenttable,
- s->offsettable)) * scale;
+ g[j] = av_int2float(half2float(AV_RB16(s->bytestream), &s->h2f_tables)) * scale;
s->bytestream += 2;
}
g += p->linesize[0] / 4;
@@ -501,7 +477,7 @@ static av_cold int phm_dec_init(AVCodecContext *avctx)
{
PNMContext *s = avctx->priv_data;
- half2float_table(s->mantissatable, s->exponenttable, s->offsettable);
+ init_half2float_tables(&s->h2f_tables);
return 0;
}