diff mbox

[FFmpeg-devel] hwcontext_opencl: Only release command queue if it exists

Message ID b98612f8-7382-030d-ee75-9d242fed3f08@jkqxz.net
State Accepted
Commit b9aff7a53d598a7882bfe3db449a3e5dc6543f05
Headers show

Commit Message

Mark Thompson Nov. 25, 2018, 7:16 p.m. UTC
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(-)

Comments

Ruiling Song Nov. 26, 2018, 12:31 p.m. UTC | #1
> -----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
Mark Thompson Nov. 28, 2018, 12:13 a.m. UTC | #2
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 mbox

Patch

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;
     }
 }