summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-11-08 23:36:58 +0100
committerCarl Hetherington <cth@carlh.net>2020-11-16 01:40:36 +0100
commit69f1be3e258140a4835d805596ea87f2a32e2083 (patch)
tree770eec692b318fb587a9ed71e0cb552f39e8b140
parent0a599a0f32da02358d1caac11e7c61a2d5bd0aa0 (diff)
Fix limited value ranges in properties.
-rw-r--r--src/lib/ffmpeg_content.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc
index 1fb95535f..03763fc28 100644
--- a/src/lib/ffmpeg_content.cc
+++ b/src/lib/ffmpeg_content.cc
@@ -540,8 +540,10 @@ FFmpegContent::add_properties (shared_ptr<const Film> film, list<UserProperty>&
video->add_properties (p);
if (_bits_per_pixel) {
- int const sub = 219 * pow (2, _bits_per_pixel.get() - 8);
- int const total = pow (2, _bits_per_pixel.get());
+ /* Assuming there's three components, so bits per pixel component is _bits_per_pixel / 3 */
+ int const lim_start = pow(2, _bits_per_pixel.get() / 3 - 4);
+ int const lim_end = 235 * pow(2, _bits_per_pixel.get() / 3 - 8);
+ int const total = pow(2, _bits_per_pixel.get() / 3);
switch (_color_range.get_value_or(AVCOL_RANGE_UNSPECIFIED)) {
case AVCOL_RANGE_UNSPECIFIED:
@@ -554,7 +556,7 @@ FFmpegContent::add_properties (shared_ptr<const Film> film, list<UserProperty>&
/// file is limited, so that not all possible values are valid.
p.push_back (
UserProperty (
- UserProperty::VIDEO, _("Colour range"), String::compose (_("Limited (%1-%2)"), (total - sub) / 2, (total + sub) / 2)
+ UserProperty::VIDEO, _("Colour range"), String::compose(_("Limited (%1-%2)"), lim_start, lim_end)
)
);
break;