Message ID | b98612f8-7382-030d-ee75-9d242fed3f08@jkqxz.net |
---|---|
State | Accepted |
Commit | b9aff7a53d598a7882bfe3db449a3e5dc6543f05 |
Headers | show |
> -----Original Message----- > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of > Mark Thompson > Sent: Monday, November 26, 2018 3:16 AM > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: [FFmpeg-devel] [PATCH] hwcontext_opencl: Only release command > queue if it exists > > If the frames context creation fails then the command queue reference > need not exist when uninit is called. > --- > libavutil/hwcontext_opencl.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c > index c745b91775..e6cef74269 100644 > --- a/libavutil/hwcontext_opencl.c > +++ b/libavutil/hwcontext_opencl.c > @@ -1750,10 +1750,13 @@ static void > opencl_frames_uninit(AVHWFramesContext *hwfc) > av_freep(&priv->mapped_frames); > #endif > > - cle = clReleaseCommandQueue(priv->command_queue); > - if (cle != CL_SUCCESS) { > - av_log(hwfc, AV_LOG_ERROR, "Failed to release frame " > - "command queue: %d.\n", cle); > + if (priv->command_queue) { > + cle = clReleaseCommandQueue(priv->command_queue); > + if (cle != CL_SUCCESS) { > + av_log(hwfc, AV_LOG_ERROR, "Failed to release frame " > + "command queue: %d.\n", cle); > + } > + priv->command_queue = NULL; Seems ok. Ruiling > } > } > > -- > 2.19.1 > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
On 26/11/2018 12:31, Song, Ruiling wrote: > > >> -----Original Message----- >> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of >> Mark Thompson >> Sent: Monday, November 26, 2018 3:16 AM >> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> >> Subject: [FFmpeg-devel] [PATCH] hwcontext_opencl: Only release command >> queue if it exists >> >> If the frames context creation fails then the command queue reference >> need not exist when uninit is called. >> --- >> libavutil/hwcontext_opencl.c | 11 +++++++---- >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c >> index c745b91775..e6cef74269 100644 >> --- a/libavutil/hwcontext_opencl.c >> +++ b/libavutil/hwcontext_opencl.c >> @@ -1750,10 +1750,13 @@ static void >> opencl_frames_uninit(AVHWFramesContext *hwfc) >> av_freep(&priv->mapped_frames); >> #endif >> >> - cle = clReleaseCommandQueue(priv->command_queue); >> - if (cle != CL_SUCCESS) { >> - av_log(hwfc, AV_LOG_ERROR, "Failed to release frame " >> - "command queue: %d.\n", cle); >> + if (priv->command_queue) { >> + cle = clReleaseCommandQueue(priv->command_queue); >> + if (cle != CL_SUCCESS) { >> + av_log(hwfc, AV_LOG_ERROR, "Failed to release frame " >> + "command queue: %d.\n", cle); >> + } >> + priv->command_queue = NULL; > > Seems ok. Applied. Thanks! - Mark
diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c index c745b91775..e6cef74269 100644 --- a/libavutil/hwcontext_opencl.c +++ b/libavutil/hwcontext_opencl.c @@ -1750,10 +1750,13 @@ static void opencl_frames_uninit(AVHWFramesContext *hwfc) av_freep(&priv->mapped_frames); #endif - cle = clReleaseCommandQueue(priv->command_queue); - if (cle != CL_SUCCESS) { - av_log(hwfc, AV_LOG_ERROR, "Failed to release frame " - "command queue: %d.\n", cle); + if (priv->command_queue) { + cle = clReleaseCommandQueue(priv->command_queue); + if (cle != CL_SUCCESS) { + av_log(hwfc, AV_LOG_ERROR, "Failed to release frame " + "command queue: %d.\n", cle); + } + priv->command_queue = NULL; } }