[FFmpeg-devel] [PATCH 3/5] avcodec/hevc_refs: Optimize 16bit generate_missing_ref()
Paul B Mahol
onemda at gmail.com
Sun Aug 11 13:51:59 EEST 2019
LGTM
On Tue, Aug 6, 2019 at 11:32 PM Michael Niedermayer <michael at niedermayer.cc>
wrote:
> Fixes: Timeout (86sec -> 8sec)
> Fixes:
> 15702/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5657764929470464
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by
> <https://github.com/google/oss-fuzz/tree/master/projects/ffmpegSigned-off-by>:
> Michael Niedermayer <michael at niedermayer.cc>
> ---
> libavcodec/hevc_refs.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c
> index 7cf3a55725..7870a72fd6 100644
> --- a/libavcodec/hevc_refs.c
> +++ b/libavcodec/hevc_refs.c
> @@ -394,7 +394,7 @@ static void mark_ref(HEVCFrame *frame, int flag)
> static HEVCFrame *generate_missing_ref(HEVCContext *s, int poc)
> {
> HEVCFrame *frame;
> - int i, x, y;
> + int i, y;
>
> frame = alloc_frame(s);
> if (!frame)
> @@ -407,11 +407,11 @@ static HEVCFrame *generate_missing_ref(HEVCContext
> *s, int poc)
> frame->frame->buf[i]->size);
> } else {
> for (i = 0; frame->frame->data[i]; i++)
> - for (y = 0; y < (s->ps.sps->height >>
> s->ps.sps->vshift[i]); y++)
> - for (x = 0; x < (s->ps.sps->width >>
> s->ps.sps->hshift[i]); x++) {
> - AV_WN16(frame->frame->data[i] + y *
> frame->frame->linesize[i] + 2 * x,
> - 1 << (s->ps.sps->bit_depth - 1));
> - }
> + for (y = 0; y < (s->ps.sps->height >>
> s->ps.sps->vshift[i]); y++) {
> + uint8_t *dst = frame->frame->data[i] + y *
> frame->frame->linesize[i];
> + AV_WN16(dst, 1 << (s->ps.sps->bit_depth - 1));
> + av_memcpy_backptr(dst + 2, 2, 2*(s->ps.sps->width >>
> s->ps.sps->hshift[i]) - 2);
> + }
> }
> }
>
> --
> 2.22.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list