mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-08 16:35:40 +00:00
video-converter: Fix v210->I420 last line conversion
Last line would not be converted correctly if height was an odd number. Fixed by accounting for data type (8bit vs. 16bit) differences between respective packing and unpacking functions. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/973>
This commit is contained in:
parent
33ccabd206
commit
a102444c90
1 changed files with 7 additions and 0 deletions
|
@ -3953,6 +3953,7 @@ convert_v210_I420 (GstVideoConverter * convert, const GstVideoFrame * src,
|
|||
FConvertTask **tasks_p;
|
||||
gint n_threads;
|
||||
gint lines_per_thread;
|
||||
guint8 *tmpline_8;
|
||||
|
||||
/* I420 has half as many chroma lines, as such we have to
|
||||
* always merge two into one. For non-interlaced these are
|
||||
|
@ -3992,6 +3993,12 @@ convert_v210_I420 (GstVideoConverter * convert, const GstVideoFrame * src,
|
|||
if (h2 != height) {
|
||||
for (i = h2; i < height; i++) {
|
||||
UNPACK_FRAME (src, convert->tmpline[0], i, convert->in_x, width);
|
||||
|
||||
tmpline_8 = (guint8 *) convert->tmpline[0];
|
||||
for (int j = 0; j < width * 4; j++) {
|
||||
tmpline_8[j] = convert->tmpline[0][j] >> 8;
|
||||
}
|
||||
|
||||
PACK_FRAME (dest, convert->tmpline[0], i, width);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue