diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-04-14 21:38:26 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-04-14 21:38:26 +0200 |
| commit | 3b31d2d8a129ae6d8d267427bd6b5bc444b40b2a (patch) | |
| tree | 780947aefb2249a2614bf9e3d894b5256f015967 /src/lib/player_video.cc | |
| parent | b029cb06c4e0fca1fad9fecd78939efe5532fa9a (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.cc | 20 |
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) { |
