1. 18 Sep, 2017 1 commit
  2. 15 Sep, 2017 2 commits
    • Thomas Mundt's avatar
      avfilter/interlace: prevent over-sharpening with the complex low-pass filter · a7f6bfdc
      Thomas Mundt authored
      The complex vertical low-pass filter slightly over-sharpens the picture. This becomes visible when several transcodings are cascaded and the error potentises, e.g. some generations of HD->SD SD->HD.
      To prevent this behaviour the destination pixel must not exceed the source pixel when the average of the pixels above and below is less than the source pixel. And the other way around.
      
      Tested and approved in a visual transcoding cascade test by video professionals.
      SSIM/PSNR test with the first generation of an HD->SD file as a reference against the 6th generation(3 x SD->HD HD->SD):
      Results without the patch:
      SSIM Y:0.956508 (13.615881) U:0.991601 (20.757750) V:0.993004 (21.551382) All:0.974405 (15.918463)
      PSNR y:31.838009 u:48.424280 v:48.962711 average:34.759466 min:31.699297 max:40.857847
      Results with the patch:
      SSIM Y:0.970051 (15.236232) U:0.991883 (20.905857) V:0.993174 (21.658049) All:0.981290 (17.279202)
      PSNR y:34.412108 u:48.504454 v:48.969496 average:37.264644 min:34.310637 max:42.373392
      Signed-off-by: 's avatarThomas Mundt <tmundt75@gmail.com>
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      a7f6bfdc
    • Thierry Foucu's avatar
      vf_fps: when reading EOF, using current_pts to duplicate the last frame if needed. · eea64ef4
      Thierry Foucu authored
      Fix ticket #2674
      Tested with examples from ticket 2674.
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      eea64ef4
  3. 12 Sep, 2017 1 commit
  4. 08 Sep, 2017 1 commit
  5. 07 Sep, 2017 1 commit
  6. 31 Aug, 2017 2 commits
  7. 30 Aug, 2017 1 commit
  8. 25 Aug, 2017 1 commit
    • pkviet's avatar
      ffmpeg options: Enable trailing ? for map_channel · e0436dda
      pkviet authored
      The -map option allows for a trailing ? so that an error is not thrown if
      the input stream does not exist.
      This capability is extended to the map_channel option.
      This allows a ffmpeg command not to break if an input channel does not
      exist, which can be of use (for instance, scripts processing audio
      channels with sources having unset number of audio channels).
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      e0436dda
  9. 16 Aug, 2017 1 commit
  10. 15 Aug, 2017 1 commit
  11. 10 Aug, 2017 1 commit
  12. 08 Aug, 2017 1 commit
  13. 07 Aug, 2017 3 commits
  14. 05 Aug, 2017 1 commit
  15. 03 Aug, 2017 1 commit
  16. 01 Aug, 2017 4 commits
  17. 30 Jul, 2017 2 commits
  18. 27 Jul, 2017 1 commit
  19. 21 Jul, 2017 1 commit
  20. 20 Jul, 2017 1 commit
  21. 18 Jul, 2017 1 commit
  22. 15 Jul, 2017 1 commit
  23. 04 Jul, 2017 1 commit
    • Kevin Mark's avatar
      libavfilter/scale2ref: Maintain main input's DAR · d32a6c36
      Kevin Mark authored
      The scale2ref filter will now maintain the DAR of the main input and
      not the DAR of the reference input. This previous behavior was deemed
      counterintuitive for most (all?) use-cases.
      
      Before:
      scale2ref=iw/4:ow/mdar
      in  w:320 h:240 fmt:rgb24 sar:1/1
      ref w:640 h:360 fmt:rgb24 sar:1/1
      out w:160 h:120 fmt:rgb24 sar:4/3 flags:0x2
      SAR: ((120 * 640) / (160 * 360)) * (1 / 1) = 4 / 3
      DAR: (160 / 120) * (4 / 3) = 16 / 9
      (main out now same DAR as ref)
      
      Now:
      scale2ref=iw/4:ow/mdar
      in  w:320 h:240 fmt:rgb24 sar:1/1
      ref w:640 h:360 fmt:rgb24 sar:1/1
      out w:160 h:120 fmt:rgb24 sar:1/1 flags:0x2
      SAR: ((120 * 320) / (160 * 240)) * (1 / 1) = 1 / 1
      DAR: (160 / 120) * (1 / 1) = 4 / 3
      (main out same DAR as main in)
      
      The scale2ref FATE test has also been updated.
      Signed-off-by: 's avatarKevin Mark <kmark937@gmail.com>
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      d32a6c36
  24. 30 Jun, 2017 1 commit
  25. 26 Jun, 2017 1 commit
  26. 18 Jun, 2017 1 commit
    • Marton Balint's avatar
      fate: use do_md5sum instead of the md5 protocol for most md5 fate tests · 7ed6f916
      Marton Balint authored
      The md5 protocol has no seek support, but some tests use seeks. This changes
      the fate tests to actually create the output files and calculate the md5 on the
      written files, which also makes the tests independent of the size of the output
      buffers and output buffering in general.
      
      A new md5pipe fate test method is also introduced to keep the old functionality
      for tests where using a non-seekable output was intentional, and matroska md5
      tests are changed to use that.
      Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
      7ed6f916
  27. 10 Jun, 2017 1 commit
  28. 09 Jun, 2017 1 commit
    • Sasi Inguva's avatar
      lavf/mov.c: offset index timestamps by the minimum pts to make first pts zero · 93db5e3f
      Sasi Inguva authored
      If the videos starts with B frame, then the minimum composition time
      as computed by stts + ctts will be non-zero. Hence we need to shift
      the DTS, so that the first pts is zero. This was the intention of that
      code-block. However it was subtracting by the wrong amount.
      
      For example, for one of the videos in the bug nonFormatted.mp4 we have
      
      stts:
      sample_count  duration
      960           1001
      
      ctts:
      sample_count  duration
      1             3003
      2             0
      1             3003
      ....
      
      The resulting composition times are :  3003, 1001, 2002, 6006, ...
      
      The minimum composition time or PTS is 1001, which should be used to
      offset DTS. However the code block was wrongly using ctts[0] which is
      3003. Hence the PTS was negative. This change computes the minimum pts
      encountered while fixing the index, and then subtracts it from all the
      timestamps after the edit list fixes are applied.
      
      Samples files available from:
      
      https://bugs.chromium.org/p/chromium/issues/detail?id=721451
      https://bugs.chromium.org/p/chromium/issues/detail?id=723537
      
      fate-suite/h264/twofields_packet.mp4 is a similar file starting with 2
      B frames. Before this change the PTS of first two B-frames was -6006
      and -3003, and I am guessing one of them got dropped when being decoded
      and remuxed  to the framecrc before, and now it is not being dropped.
      Signed-off-by: 's avatarSasi Inguva <isasi@google.com>
      93db5e3f
  29. 05 Jun, 2017 2 commits
  30. 04 Jun, 2017 1 commit
    • Kevin Mark's avatar
      FATE: Add test for libavfilter/scale2ref · 4af49647
      Kevin Mark authored
      This new FATE test for the scale2ref filter makes use of the recently
      added scale2ref-specific variables to maintain the aspect ratio of a
      test input.
      
      Filtergraph explanation:
      [main] has an AR of 4:3. [ref] has an AR of 16:9.
      640 / 4 = 160. So the new width for [main] is 160.
      160 / ((320 / 240) * (1 / 1)) = 160 / (4 / 3) = 120. So the new
      height for [main] is 120.
      160 / 120 = 4 / 3 so [main]'s aspect ratio has been maintained while
      using [ref]'s width as a reference point.
      
      [ref] is nullsink'd since it is left unchanged by scale2ref (and so
      shouldn't need to be tested).
      
      If we were to use "iw/4:-1" in place of "iw/4:ow/mdar":
      640 / 4 = 160. So the new width for [main] would be 160.
      360 / 4 = 90. So the new height for [main] would be 90.
      160 / 90 = 16 / 9 so [main] now has the same aspect ratio as [ref]
      which is probably what you do not want.
      
      This is currently the only test for scale2ref.
      Signed-off-by: 's avatarKevin Mark <kmark937@gmail.com>
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      4af49647
  31. 25 May, 2017 1 commit