[FFmpeg-cvslog] lavu/fifo: fix regression
Haihao Xiang
git at videolan.org
Wed Feb 9 05:37:51 EET 2022
ffmpeg | branch: master | Haihao Xiang <haihao.xiang at intel.com> | Tue Feb 8 12:50:03 2022 +0800| [2727ff069e856c8fd098ddb8c26f42ec3b54a252] | committer: Haihao Xiang
lavu/fifo: fix regression
offset_w might be updated after growing the FIFO
Fix ticket #9630
Tested-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
Reviewed-by: mkver
Reviewed-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2727ff069e856c8fd098ddb8c26f42ec3b54a252
---
libavutil/fifo.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavutil/fifo.c b/libavutil/fifo.c
index 0af0154945..02e0ec3f0d 100644
--- a/libavutil/fifo.c
+++ b/libavutil/fifo.c
@@ -147,13 +147,15 @@ static int fifo_write_common(AVFifo *f, const uint8_t *buf, size_t *nb_elems,
AVFifoCB read_cb, void *opaque)
{
size_t to_write = *nb_elems;
- size_t offset_w = f->offset_w;
+ size_t offset_w;
int ret = 0;
ret = fifo_check_space(f, to_write);
if (ret < 0)
return ret;
+ offset_w = f->offset_w;
+
while (to_write > 0) {
size_t len = FFMIN(f->nb_elems - offset_w, to_write);
uint8_t *wptr = f->buffer + offset_w * f->elem_size;
More information about the ffmpeg-cvslog
mailing list