1. 02 Mar, 2018 1 commit
    • Philip Langdale's avatar
      avcodec/nvenc: Declare support for P016 · 6a89cdc4
      Philip Langdale authored
      nvenc doesn't support P016, but we have two problems today:
      
      1) We declare support for YUV444P16 which nvenc also doesn't support.
         We do this because it's the only pix_fmt we have that can
         approximate nvenc's internal format that is YUV444P10 with data in
         MSBs instead of LSBs. Because the declared format is a 16bit one,
         it will be preferrentially chosen when encoding >10bit content,
         but that content will normally be YUV420P12 or P016 which should
         get mapped to P010 and not YUV444P10.
      
      2) Transcoding P016 content with nvenc should be possible in a pure
         hardware pipeline, and that can't be done if nvenc doesn't say it
         accepts P016. By mapping it to P010, we can use it, albeit with
         truncation. I have established that swscale doesn't know how to
         dither to 10bits so we'd get truncation anyway, even if we tried
         to do this 'properly'.
      6a89cdc4
  2. 28 Jan, 2018 4 commits
  3. 29 Nov, 2017 1 commit
  4. 20 Nov, 2017 1 commit
  5. 17 Nov, 2017 1 commit
  6. 15 Nov, 2017 2 commits
  7. 10 Oct, 2017 1 commit
  8. 07 Sep, 2017 2 commits
  9. 02 Sep, 2017 1 commit
  10. 01 Sep, 2017 2 commits
  11. 24 Jun, 2017 2 commits
    • Ben Chang's avatar
      nvenc: Minimize the surface allocation · 7cb053e4
      Ben Chang authored
      The previous default sets the allocated surfaces to 32 unless it is
      user-overridden or the lookahead parameter is set.
      
      Change the surfaces calculation for default, B-frames and lookahead scenario.
      7cb053e4
    • Ben Chang's avatar
      nvenc: Use a fifo to manage the free surface pool · 2e8d88ad
      Ben Chang authored
      Previously, if a session allocates x surfaces, only x-1 surfaces are
      used (due to combination of output delay and lock toggle logic).
      2e8d88ad
  12. 02 Jun, 2017 1 commit
    • Ganapathy Kasi's avatar
      avcodec/nvenc: fix hw accelerated transcode with bframes · 43c417ac
      Ganapathy Kasi authored
      hw accelerated transcode (h264_cuvid -> h264_nvenc with -hwaccel cuvid) was
      broken after the filtergraph initialization was changed to intialize decoder
      first followed by encoder (commit af1761f7).
      During initialzing encoder with bframes, local buffers are allocated
      internally in encoder which fails since no cuda context is available. Now
      pushing the correct cuda context before encoder initialization fixes the issue.
      Also adding push/pop cuda ctx during create/destroy/map/unmap resources and
      destroy encoder session.
      Signed-off-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
      43c417ac
  13. 01 Jun, 2017 1 commit
  14. 23 May, 2017 1 commit
  15. 10 May, 2017 2 commits
  16. 09 May, 2017 2 commits
  17. 07 May, 2017 2 commits
  18. 26 Apr, 2017 1 commit
    • Ben Chang's avatar
      avcodec/nvenc: surface allocation reduction · 8de3458a
      Ben Chang authored
      This patch aims to reduce the number of input/output surfaces
      NVENC allocates per session. Previous default sets allocated surfaces to 32
      (unless there is user specified param or lookahead involved). Having large
      number of surfaces consumes extra video memory (esp for higher resolution
      encoding). The patch changes the surfaces calculation for default, B-frames,
      lookahead scenario respectively.
      
      The other change involves surface selection. Previously, if a session
      allocates x surfaces, only x-1 surfaces are used (due to combination
      of output delay and lock toggle logic). To prevent unused surfaces,
      changing surface rotation to using predefined fifo.
      Signed-off-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
      8de3458a
  19. 23 Mar, 2017 2 commits
  20. 21 Mar, 2017 1 commit
  21. 20 Mar, 2017 1 commit
  22. 17 Mar, 2017 1 commit
  23. 09 Mar, 2017 1 commit
  24. 04 Mar, 2017 1 commit
  25. 01 Mar, 2017 2 commits
  26. 28 Feb, 2017 1 commit
  27. 25 Feb, 2017 1 commit
  28. 20 Feb, 2017 1 commit