mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-07-30 23:52:05 +00:00
Merge pull request #339 from 94xhn/fix/yuv420-chroma-scanline-timing
cpu encoder: fix chroma row advance timing in YUV420/YVU420 planar path
This commit is contained in:
@@ -223,6 +223,11 @@ static void _jpeg_write_scanlines_yuv_planar(struct jpeg_compress_struct *jpeg,
|
|||||||
const u8 *chroma2_data = frame->data + luma_array_size + chroma_array_size;
|
const u8 *chroma2_data = frame->data + luma_array_size + chroma_array_size;
|
||||||
|
|
||||||
while (jpeg->next_scanline < frame->height) {
|
while (jpeg->next_scanline < frame->height) {
|
||||||
|
if (jpeg->next_scanline > 0 && jpeg->next_scanline % 2 == 0) {
|
||||||
|
chroma1_data += (frame->width + padding) >> 1;
|
||||||
|
chroma2_data += (frame->width + padding) >> 1;
|
||||||
|
}
|
||||||
|
|
||||||
u8 *ptr = line_buf;
|
u8 *ptr = line_buf;
|
||||||
|
|
||||||
for (uint x = 0; x < frame->width; ++x) {
|
for (uint x = 0; x < frame->width; ++x) {
|
||||||
@@ -253,11 +258,6 @@ static void _jpeg_write_scanlines_yuv_planar(struct jpeg_compress_struct *jpeg,
|
|||||||
|
|
||||||
data += frame->width + padding;
|
data += frame->width + padding;
|
||||||
|
|
||||||
if (jpeg->next_scanline > 0 && jpeg->next_scanline % 2 == 0) {
|
|
||||||
chroma1_data += (frame->width + padding) >> 1;
|
|
||||||
chroma2_data += (frame->width + padding) >> 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
JSAMPROW scanlines[1] = {line_buf};
|
JSAMPROW scanlines[1] = {line_buf};
|
||||||
jpeg_write_scanlines(jpeg, scanlines, 1);
|
jpeg_write_scanlines(jpeg, scanlines, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user