summaryrefslogtreecommitdiff
path: root/libavformat/matroskadec.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2019-10-03 20:52:20 -0300
committerJames Almer <jamrial@gmail.com>2019-10-05 22:37:41 -0300
commit3b4e9a31ea263830d6dfbc402c02e3c8d017094f (patch)
tree8bcd3487d161479acf6ea0d3386db8c4aff6c578 /libavformat/matroskadec.c
parent7da57875b57012478aed546818b2d52985d13793 (diff)
avformat/matroskadec: don't rescale mastering display values
Simplifies code. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r--libavformat/matroskadec.c33
1 files changed, 10 insertions, 23 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index a5f120b54d..c224c3447a 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2116,9 +2116,6 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) {
}
if (has_mastering_primaries || has_mastering_luminance) {
- // Use similar rationals as other standards.
- const int chroma_den = 50000;
- const int luma_den = 10000;
AVMasteringDisplayMetadata *metadata =
(AVMasteringDisplayMetadata*) av_stream_new_side_data(
st, AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
@@ -2128,29 +2125,19 @@ static int mkv_parse_video_color(AVStream *st, const MatroskaTrack *track) {
}
memset(metadata, 0, sizeof(AVMasteringDisplayMetadata));
if (has_mastering_primaries) {
- metadata->display_primaries[0][0] = av_make_q(
- round(mastering_meta->r_x * chroma_den), chroma_den);
- metadata->display_primaries[0][1] = av_make_q(
- round(mastering_meta->r_y * chroma_den), chroma_den);
- metadata->display_primaries[1][0] = av_make_q(
- round(mastering_meta->g_x * chroma_den), chroma_den);
- metadata->display_primaries[1][1] = av_make_q(
- round(mastering_meta->g_y * chroma_den), chroma_den);
- metadata->display_primaries[2][0] = av_make_q(
- round(mastering_meta->b_x * chroma_den), chroma_den);
- metadata->display_primaries[2][1] = av_make_q(
- round(mastering_meta->b_y * chroma_den), chroma_den);
- metadata->white_point[0] = av_make_q(
- round(mastering_meta->white_x * chroma_den), chroma_den);
- metadata->white_point[1] = av_make_q(
- round(mastering_meta->white_y * chroma_den), chroma_den);
+ metadata->display_primaries[0][0] = av_d2q(mastering_meta->r_x, INT_MAX);
+ metadata->display_primaries[0][1] = av_d2q(mastering_meta->r_y, INT_MAX);
+ metadata->display_primaries[1][0] = av_d2q(mastering_meta->g_x, INT_MAX);
+ metadata->display_primaries[1][1] = av_d2q(mastering_meta->g_y, INT_MAX);
+ metadata->display_primaries[2][0] = av_d2q(mastering_meta->b_x, INT_MAX);
+ metadata->display_primaries[2][1] = av_d2q(mastering_meta->b_y, INT_MAX);
+ metadata->white_point[0] = av_d2q(mastering_meta->white_x, INT_MAX);
+ metadata->white_point[1] = av_d2q(mastering_meta->white_y, INT_MAX);
metadata->has_primaries = 1;
}
if (has_mastering_luminance) {
- metadata->max_luminance = av_make_q(
- round(mastering_meta->max_luminance * luma_den), luma_den);
- metadata->min_luminance = av_make_q(
- round(mastering_meta->min_luminance * luma_den), luma_den);
+ metadata->max_luminance = av_d2q(mastering_meta->max_luminance, INT_MAX);
+ metadata->min_luminance = av_d2q(mastering_meta->min_luminance, INT_MAX);
metadata->has_luminance = 1;
}
}