1. 08 Jun, 2017 2 commits
  2. 06 Jun, 2017 1 commit
  3. 04 Jun, 2017 1 commit
  4. 01 Jun, 2017 2 commits
    • Kevin Mark's avatar
      libavfilter/scale2ref: Add constants for the primary input · 3385989b
      Kevin Mark authored
      Variables pertaining to the main video are now available when
      using the scale2ref filter. This allows, as an example, scaling a
      video with another as a reference point while maintaining the
      original aspect ratio of the primary/non-reference video.
      
      Consider the following graph: scale2ref=iw/6:-1 [main][ref]
      This will scale [main] to 1/6 the width of [ref] while maintaining
      the aspect ratio. This works well when the AR of [ref] is equal to
      the AR of [main] only. What the above filter really does is
      maintain the AR of [ref] when scaling [main]. So in all non-same-AR
      situations [main] will appear stretched or compressed to conform to
      the same AR of the reference video. Without doing this calculation
      externally there is no way to scale in reference to another input
      while maintaining AR in libavfilter.
      
      To make this possible, we introduce eight new constants to be used
      in the w and h expressions only in the scale2ref filter:
      
       * main_w/main_h: width/height of the main input video
       * main_a: aspect ratio of the main input video
       * main_sar: sample aspect ratio of the main input video
       * main_dar: display aspect ratio of the main input video
       * main_hsub/main_vsub: horiz/vert chroma subsample vals of main
       * mdar: a shorthand alias of main_dar
      
      Of course, not all of these constants are needed for maintaining the
      AR, but adding additional constants in line of what is available for
      in/out allows for other scaling possibilities I have not imagined.
      
      So to now scale a video to 1/6 the size of another video using the
      width and maintaining its own aspect ratio you can do this:
      
      scale2ref=iw/6:ow/mdar [main][ref]
      
      This is ideal for picture-in-picture configurations where you could
      have a square or 4:3 video overlaid on a corner of a larger 16:9
      feed all while keeping the scaled video in the corner at its correct
      aspect ratio and always the same size relative to the larger video.
      
      I've tried to re-use as much code as possible. I could not find a way
      to avoid duplication of the var_names array. It must now be kept in
      sync with the other (the normal one and the scale2ref one) for
      everything to work which does not seem ideal. For every new variable
      introduced/removed into/from the normal scale filter one must be
      added/removed to/from the scale2ref version. Suggestions on how to
      avoid var_names duplication are welcome.
      
      var_values has been increased to always be large enough for the
      additional scale2ref variables. I do not forsee this being a problem
      as the names variable will always be the correct size. From my
      understanding of av_expr_parse_and_eval it will stop processing
      variables when it runs out of names even though there may be
      additional (potentially uninitialized) entries in the values array.
      The ideal solution here would be using a variable-length array but
      that is unsupported in C90.
      
      This patch does not remove any functionality and is strictly a
      feature patch. There are no API changes. Behavior does not change for
      any previously valid inputs.
      
      The applicable documentation has also been updated.
      Signed-off-by: 's avatarKevin Mark <kmark937@gmail.com>
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      3385989b
    • Paul B Mahol's avatar
      avfilter: add audio surround upmixer · dc72d1dd
      Paul B Mahol authored
      Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
      dc72d1dd
  5. 31 May, 2017 2 commits
  6. 29 May, 2017 1 commit
    • Rostislav Pehlivanov's avatar
      lavc: remove libschroedinger encoding and decoding wrappers · 220b24c7
      Rostislav Pehlivanov authored
      The library has stopped being developed and Debian has removed it
      from its repositories citing security issues.
      The native Dirac decoder supports everything the library has and basic
      encoding support is still provided via the native vc2 (Dirac Pro, intra
      only version of Dirac) encoder. Hence, there's no reason to still support
      linking to the library and potentially leading users into security issues.
      220b24c7
  7. 28 May, 2017 1 commit
  8. 26 May, 2017 1 commit
  9. 24 May, 2017 1 commit
  10. 20 May, 2017 1 commit
  11. 19 May, 2017 1 commit
  12. 18 May, 2017 2 commits
  13. 17 May, 2017 1 commit
  14. 16 May, 2017 1 commit
  15. 15 May, 2017 3 commits
  16. 14 May, 2017 1 commit
  17. 12 May, 2017 2 commits
  18. 11 May, 2017 1 commit
  19. 10 May, 2017 3 commits
  20. 09 May, 2017 2 commits
  21. 08 May, 2017 2 commits
  22. 05 May, 2017 2 commits
  23. 04 May, 2017 1 commit
    • wm4's avatar
      cuvid: support AVCodecContext.hw_device_ctx API · c0f17a90
      wm4 authored
      This is a newer API that is intended for decoders like the cuvid
      wrapper. Until now, the wrapper required to set an awkward
      "incomplete" hw_frames_ctx to set the device. Now the device
      can be set directly, and the user can get AV_PIX_FMT_CUDA output
      for a specific device simply by setting hw_device_ctx.
      
      This still does a dummy ff_get_format() call at init time, and should
      be fully backward compatible.
      c0f17a90
  24. 02 May, 2017 1 commit
  25. 01 May, 2017 1 commit
  26. 29 Apr, 2017 3 commits