1. 05 Feb, 2015 3 commits
    • Michael Niedermayer's avatar
      avformat/thp: Check av_get_packet() for failure not only for partial output · f2579dbb
      Michael Niedermayer authored
      Fixes null pointer dereference
      Fixes: signal_sigsegv_db2c1f_3108_cov_163322880_pikmin2_opening1_partial.thp
      
      Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      f2579dbb
    • Lukasz Marek's avatar
      lavf/avc: add buffer padding to extradata allocation · 21051af2
      Lukasz Marek authored
      ff_avc_write_annexb_extradata() allocates extradata, but don't add
      FF_INPUT_BUFFER_PADDING_SIZE value
      Signed-off-by: 's avatarLukasz Marek <lukasz.m.luki2@gmail.com>
      21051af2
    • Philip Langdale's avatar
      avcodec/nvenc: De-compensate aspect ratio compensation of DVD-like content. · d20df260
      Philip Langdale authored
      For reasons we are not privy to, nvidia decided that the nvenc encoder
      should apply aspect ratio compensation to 'DVD like' content, assuming that
      the content is not bt.601 compliant, but needs to be bt.601 compliant. In
      this context, that means that they make the following, questionable,
      assumptions:
      
      1) If the input dimensions are 720x480 or 720x576, assume the content has
      an active area of 704x480 or 704x576.
      
      2) Assume that whatever the input sample aspect ratio is, it does not account
      for the difference between 'physical' and 'active' dimensions.
      
      From, these assumptions, they then conclude that they can 'help', by adjusting
      the sample aspect ratio by a factor of 45/44. And indeed, if you wanted to
      display only the 704 wide active area with the same aspect ratio as the full
      720 wide image - this would be the correct adjustment factor, but what if you
      don't? And more importantly, what if you're used to ffmpeg not making this kind
      of adjustment at encode time - because none of the other encoders do this!
      
      And, what if you had already accounted for bt.601 and your input had the
      correct attributes? Well, it's going to apply the compensation anyway!
      So, if you take some content, and feed it through nvenc repeatedly, it
      will keep scaling the aspect ratio every time, stretching your video out
      more and more and more.
      
      So, clearly, regardless of whether you want to apply bt.601 aspect ratio
      adjustments or not, this is not the way to do it. With any other ffmpeg
      encoder, you would do it as part of defining your input paramters or
      do the adjustment at playback time, and there's no reason by nvenc
      should be any different.
      
      This change adds some logic to undo the compensation that nvenc would
      otherwise do.
      
      nvidia engineers have told us that they will work to make this
      compensation mechanism optional in a future release of the nvenc
      SDK. At that point, we can adapt accordingly.
      Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
      Reviewed-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      d20df260
  2. 04 Feb, 2015 37 commits