Skip to content

Commit c490702

Browse files
committed
bugfix(jpeg): eliminate random black line on jpeg decoder
1 parent 8d0527d commit c490702

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

components/esp_driver_jpeg/jpeg_decode.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ esp_err_t jpeg_decoder_process(jpeg_decoder_handle_t decoder_engine, const jpeg_
247247
ret = esp_cache_msync((void*)decoder_engine->header_info->buffer_offset, decoder_engine->header_info->buffer_left, ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_UNALIGNED);
248248
assert(ret == ESP_OK);
249249

250+
// Before 2DDMA starts, invalidate cache ahead of time.
251+
ret = esp_cache_msync((void*)decoder_engine->decoded_buf, outbuf_size, ESP_CACHE_MSYNC_FLAG_DIR_M2C);
252+
assert(ret == ESP_OK);
253+
250254
ESP_GOTO_ON_ERROR(dma2d_enqueue(decoder_engine->dma2d_group_handle, &trans_desc, decoder_engine->trans_desc), err2, TAG, "enqueue dma2d failed");
251255
bool need_yield;
252256
// Blocking for JPEG decode transaction finishes.

0 commit comments

Comments
 (0)