Commit 00fd38f1 authored by James Almer's avatar James Almer

avformat/mov: don't rescale mastering display values from the SmDm atom

Simplifies code.
Reviewed-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent 6174686b
...@@ -5288,9 +5288,7 @@ static int mov_read_vpcc(MOVContext *c, AVIOContext *pb, MOVAtom atom) ...@@ -5288,9 +5288,7 @@ static int mov_read_vpcc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{ {
MOVStreamContext *sc; MOVStreamContext *sc;
const int chroma_den = 50000; int i, version;
const int luma_den = 10000;
int i, j, version;
if (c->fc->nb_streams < 1) if (c->fc->nb_streams < 1)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
...@@ -5313,17 +5311,15 @@ static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom) ...@@ -5313,17 +5311,15 @@ static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (!sc->mastering) if (!sc->mastering)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) sc->mastering->display_primaries[i][0] = av_make_q(avio_rb16(pb), 1 << 16);
sc->mastering->display_primaries[i][j] = sc->mastering->display_primaries[i][1] = av_make_q(avio_rb16(pb), 1 << 16);
av_make_q(lrint(((double)avio_rb16(pb) / (1 << 16)) * chroma_den), chroma_den); }
for (i = 0; i < 2; i++) sc->mastering->white_point[0] = av_make_q(avio_rb16(pb), 1 << 16);
sc->mastering->white_point[i] = sc->mastering->white_point[1] = av_make_q(avio_rb16(pb), 1 << 16);
av_make_q(lrint(((double)avio_rb16(pb) / (1 << 16)) * chroma_den), chroma_den);
sc->mastering->max_luminance = sc->mastering->max_luminance = av_make_q(avio_rb32(pb), 1 << 8);
av_make_q(lrint(((double)avio_rb32(pb) / (1 << 8)) * luma_den), luma_den); sc->mastering->min_luminance = av_make_q(avio_rb32(pb), 1 << 14);
sc->mastering->min_luminance =
av_make_q(lrint(((double)avio_rb32(pb) / (1 << 14)) * luma_den), luma_den);
sc->mastering->has_primaries = 1; sc->mastering->has_primaries = 1;
sc->mastering->has_luminance = 1; sc->mastering->has_luminance = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment