Message ID | 20220201150634.4076-1-jamrial@gmail.com |
---|---|
State | Accepted |
Commit | 61b104caaace2dd182b0cb3a51265342b323eb2c |
Headers | show |
Series | [FFmpeg-devel] avcodec/libdav1d: free the Dav1dData packet on dav1d_send_data() failure | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
andriy/make_aarch64_jetson | success | Make finished |
andriy/make_fate_aarch64_jetson | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
Hi, On Tue, Feb 1, 2022 at 10:07 AM James Almer <jamrial@gmail.com> wrote: > We still own it on failure, and there's no point trying to feed it again. > > Signed-off-by: James Almer <jamrial@gmail.com> > --- > libavcodec/libdav1d.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c > index 29fa4f9c3d..872e60e000 100644 > --- a/libavcodec/libdav1d.c > +++ b/libavcodec/libdav1d.c > @@ -347,8 +347,10 @@ static int libdav1d_receive_frame(AVCodecContext *c, > AVFrame *frame) > if (res < 0) { > if (res == AVERROR(EINVAL)) > res = AVERROR_INVALIDDATA; > - if (res != AVERROR(EAGAIN)) > + if (res != AVERROR(EAGAIN)) { > + dav1d_data_unref(data); > return res; > + } > } > > res = dav1d_get_picture(dav1d->c, p); > -- > 2.34.1 > LGTM. You could at your choice maybe mention that this fixes dav1d #383 and (the FFmpeg portion of) VLC #26259. Ronald
On 2/1/2022 12:57 PM, Ronald S. Bultje wrote: > Hi, > > On Tue, Feb 1, 2022 at 10:07 AM James Almer <jamrial@gmail.com> wrote: > >> We still own it on failure, and there's no point trying to feed it again. >> >> Signed-off-by: James Almer <jamrial@gmail.com> >> --- >> libavcodec/libdav1d.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c >> index 29fa4f9c3d..872e60e000 100644 >> --- a/libavcodec/libdav1d.c >> +++ b/libavcodec/libdav1d.c >> @@ -347,8 +347,10 @@ static int libdav1d_receive_frame(AVCodecContext *c, >> AVFrame *frame) >> if (res < 0) { >> if (res == AVERROR(EINVAL)) >> res = AVERROR_INVALIDDATA; >> - if (res != AVERROR(EAGAIN)) >> + if (res != AVERROR(EAGAIN)) { >> + dav1d_data_unref(data); >> return res; >> + } >> } >> >> res = dav1d_get_picture(dav1d->c, p); >> -- >> 2.34.1 >> > > LGTM. > > You could at your choice maybe mention that this fixes dav1d #383 and (the > FFmpeg portion of) VLC #26259. Added that, applied and backported. Thanks. > > Ronald > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c index 29fa4f9c3d..872e60e000 100644 --- a/libavcodec/libdav1d.c +++ b/libavcodec/libdav1d.c @@ -347,8 +347,10 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) if (res < 0) { if (res == AVERROR(EINVAL)) res = AVERROR_INVALIDDATA; - if (res != AVERROR(EAGAIN)) + if (res != AVERROR(EAGAIN)) { + dav1d_data_unref(data); return res; + } } res = dav1d_get_picture(dav1d->c, p);
We still own it on failure, and there's no point trying to feed it again. Signed-off-by: James Almer <jamrial@gmail.com> --- libavcodec/libdav1d.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)