[FFmpeg-devel] [PATCH v2 1/6] avcodec/cbs_jpeg: Use memcpy when writing pictures
Mark Thompson
sw at jkqxz.net
Mon Feb 10 00:51:47 EET 2020
On 19/11/2019 16:12, Andreas Rheinhardt wrote:
> This is possible because the size of a scan header is always a multiple
> of a byte.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> libavcodec/cbs_jpeg.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/cbs_jpeg.c b/libavcodec/cbs_jpeg.c
> index b189cbd9b7..64fe70beab 100644
> --- a/libavcodec/cbs_jpeg.c
> +++ b/libavcodec/cbs_jpeg.c
> @@ -330,7 +330,7 @@ static int cbs_jpeg_write_scan(CodedBitstreamContext *ctx,
> PutBitContext *pbc)
> {
> JPEGRawScan *scan = unit->content;
> - int i, err;
> + int err;
>
> err = cbs_jpeg_write_scan_header(ctx, pbc, &scan->header);
> if (err < 0)
> @@ -340,8 +340,12 @@ static int cbs_jpeg_write_scan(CodedBitstreamContext *ctx,
> if (scan->data_size * 8 > put_bits_left(pbc))
> return AVERROR(ENOSPC);
>
> - for (i = 0; i < scan->data_size; i++)
> - put_bits(pbc, 8, scan->data[i]);
> + av_assert0(put_bits_count(pbc) % 8 == 0);
> +
> + flush_put_bits(pbc);
> +
> + memcpy(put_bits_ptr(pbc), scan->data, scan->data_size);
> + skip_put_bytes(pbc, scan->data_size);
> }
>
> return 0;
>
Sure, applied.
Thanks,
- Mark
More information about the ffmpeg-devel
mailing list