From 64381a7b0f04be7f46a08d00a00ed453f94c9291 Mon Sep 17 00:00:00 2001 From: RudolfC Date: Thu, 14 May 2020 20:21:12 +0000 Subject: [PATCH] ffmpeg: fixed bytes_per_row calcs: now B_YCbCr422 works OK (video overlay) --- src/add-ons/media/plugins/ffmpeg/Utilities.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/Utilities.h b/src/add-ons/media/plugins/ffmpeg/Utilities.h index 956adb14b2..d43084928d 100644 --- a/src/add-ons/media/plugins/ffmpeg/Utilities.h +++ b/src/add-ons/media/plugins/ffmpeg/Utilities.h @@ -177,13 +177,14 @@ CalculateBytesPerRowWithColorSpaceAndVideoWidth(color_space colorSpace, int vide assert(videoWidth >= 0); const uint32 kBytesPerRowUnknown = 0; - size_t bytesPerPixel; + size_t pixelChunk; size_t rowAlignment; + size_t pixelsPerChunk; - if (get_pixel_size_for(colorSpace, &bytesPerPixel, &rowAlignment, NULL) != B_OK) + if (get_pixel_size_for(colorSpace, &pixelChunk, &rowAlignment, &pixelsPerChunk) != B_OK) return kBytesPerRowUnknown; - uint32 bytesPerRow = bytesPerPixel * videoWidth; + uint32 bytesPerRow = pixelChunk * videoWidth / pixelsPerChunk; uint32 numberOfUnalignedBytes = bytesPerRow % rowAlignment; if (numberOfUnalignedBytes == 0)