diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-11-08 23:36:58 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-11-16 01:40:36 +0100 |
| commit | 69f1be3e258140a4835d805596ea87f2a32e2083 (patch) | |
| tree | 770eec692b318fb587a9ed71e0cb552f39e8b140 | |
| parent | 0a599a0f32da02358d1caac11e7c61a2d5bd0aa0 (diff) | |
Fix limited value ranges in properties.
| -rw-r--r-- | src/lib/ffmpeg_content.cc | 8 |
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; |
