Skip to content

Commit 604d661

Browse files
authored
Merge pull request #339 from 94xhn/fix/yuv420-chroma-scanline-timing
cpu encoder: fix chroma row advance timing in YUV420/YVU420 planar path
2 parents db96c06 + 5a18986 commit 604d661

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/ustreamer/encoders/cpu/encoder.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,11 @@ static void _jpeg_write_scanlines_yuv_planar(struct jpeg_compress_struct *jpeg,
223223
const u8 *chroma2_data = frame->data + luma_array_size + chroma_array_size;
224224

225225
while (jpeg->next_scanline < frame->height) {
226+
if (jpeg->next_scanline > 0 && jpeg->next_scanline % 2 == 0) {
227+
chroma1_data += (frame->width + padding) >> 1;
228+
chroma2_data += (frame->width + padding) >> 1;
229+
}
230+
226231
u8 *ptr = line_buf;
227232

228233
for (uint x = 0; x < frame->width; ++x) {
@@ -253,11 +258,6 @@ static void _jpeg_write_scanlines_yuv_planar(struct jpeg_compress_struct *jpeg,
253258

254259
data += frame->width + padding;
255260

256-
if (jpeg->next_scanline > 0 && jpeg->next_scanline % 2 == 0) {
257-
chroma1_data += (frame->width + padding) >> 1;
258-
chroma2_data += (frame->width + padding) >> 1;
259-
}
260-
261261
JSAMPROW scanlines[1] = {line_buf};
262262
jpeg_write_scanlines(jpeg, scanlines, 1);
263263
}

0 commit comments

Comments
 (0)