summaryrefslogtreecommitdiff
path: root/src/video_out/yuv2rgb_mlib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_out/yuv2rgb_mlib.c')
-rw-r--r--src/video_out/yuv2rgb_mlib.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/video_out/yuv2rgb_mlib.c b/src/video_out/yuv2rgb_mlib.c
index d0ebd598b..a8fbd7c44 100644
--- a/src/video_out/yuv2rgb_mlib.c
+++ b/src/video_out/yuv2rgb_mlib.c
@@ -81,7 +81,7 @@ static void mlib_yuv420_rgb24 (yuv2rgb_t *this,
if (this->do_scale) {
dy = 0;
- dst_height = this->dest_height;
+ dst_height = this->next_slice (this, &image);
assert((this->dest_width&1) == 0); /* mlib needs an even YUV2 width */
for (;;) {
@@ -137,9 +137,11 @@ static void mlib_yuv420_rgb24 (yuv2rgb_t *this,
dy -= 32768;
}
} else {
+ this->next_slice (this, &image);
+
mlib_stat = mlib_VideoColorYUV2RGB420(image, py, pu, pv,
this->source_width,
- this->source_height,
+ this->slice_height,
this->rgb_stride,
this->y_stride,
this->uv_stride);
@@ -156,7 +158,7 @@ static void mlib_yuv420_argb32 (yuv2rgb_t *this,
if (this->do_scale) {
dy = 0;
- dst_height = this->dest_height;
+ dst_height = this->next_slice (this, &image);
assert((this->dest_width&1) == 0); /* mlib needs an even YUV2 width */
for (;;) {
@@ -212,9 +214,11 @@ static void mlib_yuv420_argb32 (yuv2rgb_t *this,
dy -= 32768;
}
} else {
+ this->next_slice (this, &image);
+
mlib_stat = mlib_VideoColorYUV2ARGB420(image, py, pu, pv,
this->source_width,
- this->source_height,
+ this->slice_height,
this->rgb_stride,
this->y_stride,
this->uv_stride);
@@ -231,7 +235,7 @@ static void mlib_yuv420_abgr32 (yuv2rgb_t *this,
if (this->do_scale) {
dy = 0;
- dst_height = this->dest_height;
+ dst_height = this->next_slice (this, &image);
assert((this->dest_width&1) == 0); /* mlib needs an even YUV2 width */
for (;;) {
@@ -287,9 +291,11 @@ static void mlib_yuv420_abgr32 (yuv2rgb_t *this,
dy -= 32768;
}
} else {
+ this->next_slice (this, &image);
+
mlib_stat = mlib_VideoColorYUV2ABGR420(image, py, pu, pv,
this->source_width,
- this->source_height,
+ this->slice_height,
this->rgb_stride,
this->y_stride,
this->uv_stride);