[FFmpeg-cvslog] yuv4mpegenc: add bitdepth multiplier after rounding width.
Ronald S. Bultje
git at videolan.org
Wed Apr 19 16:50:54 EEST 2023
ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Mon Apr 17 10:52:10 2023 -0400| [989ff02472acb0566416bca13a161793bc59f52e] | committer: Ronald S. Bultje
yuv4mpegenc: add bitdepth multiplier after rounding width.
Fixes output of HBD odd-width chroma.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=989ff02472acb0566416bca13a161793bc59f52e
---
libavformat/yuv4mpegenc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c
index fc6b08e0cd..2fa5ee2714 100644
--- a/libavformat/yuv4mpegenc.c
+++ b/libavformat/yuv4mpegenc.c
@@ -195,13 +195,14 @@ static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt)
/* The following code presumes all planes to be non-interleaved. */
for (int k = 0; k < desc->nb_components; k++) {
- int plane_height = height, plane_width = width * desc->comp[k].step;
+ int plane_height = height, plane_width = width;
const uint8_t *ptr = frame->data[k];
if (desc->nb_components >= 3 && (k == 1 || k == 2)) { /* chroma? */
plane_width = AV_CEIL_RSHIFT(plane_width, desc->log2_chroma_w);
plane_height = AV_CEIL_RSHIFT(plane_height, desc->log2_chroma_h);
}
+ plane_width *= desc->comp[k].step;
for (int i = 0; i < plane_height; i++) {
avio_write(pb, ptr, plane_width);
More information about the ffmpeg-cvslog
mailing list