Answers.Body: <p>No, the <code>nlmeans_opencl</code> filter supports <code>yuv420p</code>, <code>yuv444p</code> and <code>gbrp</code>, all 8-bit planar formats.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-03-21T04:55:54.013Z
Answers.LastActivityDate: 2021-03-21T04:55:54.013Z
Answers.UserDisplayName: Gyan
Body: <p>So far I have only managed to run <code>nlmeans_opencl</code> filter with the following settings:</p>
  <pre><code>ffmpeg -init_hw_device opencl=gpu:0.0 -filter_hw_device gpu -i 10bit_input.ts \
         -vf &quot;hwupload,nlmeans_opencl,hwdownload,format=yuv420p&quot; -an output.mp4
  </code></pre>
  <p>Pretty much every other pixel format I set to <code>format=</code> fails one way or another. For example</p>
  <p>My source is <code>yuv420p10le</code>, so that is my first choice, but I get this error:</p>
  <pre><code>[hwdownload @ 0x55ab32e60c40] Invalid output format yuv420p10le for hwframe download
  [Parsed_hwdownload_2 @ 0x55ab32e61c80] Failed to configure output pad on Parsed_hwdownload_2
  Error reinitializing filters!
  Failed to inject frame into filter network: Invalid argument
  Error while processing the decoded data for stream #0:0
  Conversion failed!
  </code></pre>
  <p>With <code>yuv420p16le</code>:</p>
  <pre><code>[Parsed_nlmeans_opencl_1 @ 0x563d97d93600] input format yuv420p16le not supported
  Error while filtering: Invalid argument
  Failed to inject frame into filter network: Invalid argument
  Error while processing the decoded data for stream #0:0
  Conversion failed!
  </code></pre>
  <p>With no <code>format=...</code> at all:</p>
  <pre><code>[hwdownload @ 0x5610a4653380] Invalid output format gray for hwframe download.
  [Parsed_hwdownload_2 @ 0x5610a472a400] Failed to configure output pad on Parsed_hwdownload_2
  Error reinitializing filters!
  Failed to inject frame into filter network: Invalid argument
  Error while processing the decoded data for stream #0:0
  Conversion failed!
  </code></pre>
  <p>So, is there any way to make this work, without dropping component precision to 8 bits?</p>
  
Tags: <ffmpeg>
Title: Is there a way to use nlmeans_opencl filter with a 10 bits source?
UserDisplayName: lvella
ThreadText: # Is there a way to use nlmeans_opencl filter with a 10 bits source?
  
  (Asked by: username_0 on 2021-03-20)
  
  So far I have only managed to run `nlmeans_opencl` filter with the following settings:
  
  ```
  ffmpeg -init_hw_device opencl=gpu:0.0 -filter_hw_device gpu -i 10bit_input.ts \
         -vf "hwupload,nlmeans_opencl,hwdownload,format=yuv420p" -an output.mp4
  
  ```
  
  Pretty much every other pixel format I set to `format=` fails one way or another. For example
  
  My source is `yuv420p10le`, so that is my first choice, but I get this error:
  
  ```
  [hwdownload @ 0x55ab32e60c40] Invalid output format yuv420p10le for hwframe download
  [Parsed_hwdownload_2 @ 0x55ab32e61c80] Failed to configure output pad on Parsed_hwdownload_2
  Error reinitializing filters!
  Failed to inject frame into filter network: Invalid argument
  Error while processing the decoded data for stream #0:0
  Conversion failed!
  
  ```
  
  With `yuv420p16le`:
  
  ```
  [Parsed_nlmeans_opencl_1 @ 0x563d97d93600] input format yuv420p16le not supported
  Error while filtering: Invalid argument
  Failed to inject frame into filter network: Invalid argument
  Error while processing the decoded data for stream #0:0
  Conversion failed!
  
  ```
  
  With no `format=...` at all:
  
  ```
  [hwdownload @ 0x5610a4653380] Invalid output format gray for hwframe download.
  [Parsed_hwdownload_2 @ 0x5610a472a400] Failed to configure output pad on Parsed_hwdownload_2
  Error reinitializing filters!
  Failed to inject frame into filter network: Invalid argument
  Error while processing the decoded data for stream #0:0
  Conversion failed!
  
  ```
  
  So, is there any way to make this work, without dropping component precision to 8 bits?
  
  **Tags:** ffmpeg
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2021-03-21. Score: 1 | Accepted answer
  
  No, the `nlmeans_opencl` filter supports `yuv420p`, `yuv444p` and `gbrp`, all 8-bit planar formats.
  
  
  ---
  
  