summaryrefslogtreecommitdiff
path: root/src/lib/player_video.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-04-14 21:38:26 +0200
committerCarl Hetherington <cth@carlh.net>2020-04-14 21:38:26 +0200
commit3b31d2d8a129ae6d8d267427bd6b5bc444b40b2a (patch)
tree780947aefb2249a2614bf9e3d894b5256f015967 /src/lib/player_video.cc
parentb029cb06c4e0fca1fad9fecd78939efe5532fa9a (diff)
Use a struct rather than a std::pair as the return type from ImageProxy::image.
Diffstat (limited to 'src/lib/player_video.cc')
-rw-r--r--src/lib/player_video.cc20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/lib/player_video.cc b/src/lib/player_video.cc
index 75479136f..bd643af60 100644
--- a/src/lib/player_video.cc
+++ b/src/lib/player_video.cc
@@ -132,31 +132,29 @@ PlayerVideo::make_image (function<AVPixelFormat (AVPixelFormat)> pixel_format, b
_image_out_size = _out_size;
_image_fade = _fade;
- pair<shared_ptr<Image>, int> prox = _in->image (_inter_size);
- shared_ptr<Image> im = prox.first;
- int const reduce = prox.second;
+ ImageProxy::Result prox = _in->image (_inter_size);
Crop total_crop = _crop;
switch (_part) {
case PART_LEFT_HALF:
- total_crop.right += im->size().width / 2;
+ total_crop.right += prox.image->size().width / 2;
break;
case PART_RIGHT_HALF:
- total_crop.left += im->size().width / 2;
+ total_crop.left += prox.image->size().width / 2;
break;
case PART_TOP_HALF:
- total_crop.bottom += im->size().height / 2;
+ total_crop.bottom += prox.image->size().height / 2;
break;
case PART_BOTTOM_HALF:
- total_crop.top += im->size().height / 2;
+ total_crop.top += prox.image->size().height / 2;
break;
default:
break;
}
- if (reduce > 0) {
+ if (prox.log2_scaling > 0) {
/* Scale the crop down to account for the scaling that has already happened in ImageProxy::image */
- int const r = pow(2, reduce);
+ int const r = pow(2, prox.log2_scaling);
total_crop.left /= r;
total_crop.right /= r;
total_crop.top /= r;
@@ -168,8 +166,8 @@ PlayerVideo::make_image (function<AVPixelFormat (AVPixelFormat)> pixel_format, b
yuv_to_rgb = _colour_conversion.get().yuv_to_rgb();
}
- _image = im->crop_scale_window (
- total_crop, _inter_size, _out_size, yuv_to_rgb, _video_range, pixel_format (im->pixel_format()), aligned, fast
+ _image = prox.image->crop_scale_window (
+ total_crop, _inter_size, _out_size, yuv_to_rgb, _video_range, pixel_format (prox.image->pixel_format()), aligned, fast
);
if (_text) {