1. 08 Nov, 2016 1 commit
  2. 18 Oct, 2016 1 commit
  3. 12 Oct, 2016 1 commit
  4. 23 Aug, 2016 1 commit
  5. 13 Aug, 2016 2 commits
  6. 06 Apr, 2016 1 commit
    • Claudio Freire's avatar
      AAC encoder: fix valgrind errors · 8005b6de
      Claudio Freire authored
      Move wi.clipping computation outside of psy_lame_window, LFE
      channels don't even call that, and make the LFE path also
      initialize window_type[1] which is needed by analyze_channel
      8005b6de
  7. 08 Mar, 2016 1 commit
  8. 13 Feb, 2016 1 commit
  9. 12 Feb, 2016 1 commit
    • Rostislav Pehlivanov's avatar
      aacenc: make a better estimate for the audio bitrate if not provided · f0a82124
      Rostislav Pehlivanov authored
      Takes into account whether there's pairing and if there's an LFE channel.
      An SCE has more bits than CPE/2 since IS and M/S save quite a lot of bits
      when channels are paired. And most of the SCEs we have are in surround
      layouts which map it to the center channel, which usually carries all of
      the dialogue and compression artifacts there are easily audiable.
      
      Also refactors the init function a little bit and labels some parts of it.
      
      Fixes bug #5233
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      f0a82124
  10. 20 Jan, 2016 3 commits
  11. 16 Jan, 2016 1 commit
  12. 14 Jan, 2016 1 commit
  13. 13 Jan, 2016 4 commits
  14. 18 Dec, 2015 1 commit
  15. 14 Dec, 2015 1 commit
  16. 08 Dec, 2015 1 commit
  17. 07 Dec, 2015 1 commit
    • Vittorio Giovara's avatar
      lavc: Drop exporting 2-pass encoding stats · 16216b71
      Vittorio Giovara authored
      These variables are coming from mpegvideoenc where are supposedly used
      as bit counters on various frame properties. However their use is
      unclear as they lack documentation, are available only from a very small
      subset of encoders, and they are hardly used in the wild. Also frame_bits
      in aacenc is employed in a similar way.
      
      Remove this functionality from AVCodecContex, these variable are mostly
      frame properties, and too few encoders support setting them with anything
      useful.
      Signed-off-by: 's avatarVittorio Giovara <vittorio.giovara@gmail.com>
      16216b71
  18. 06 Dec, 2015 1 commit
  19. 05 Dec, 2015 5 commits
    • Rostislav Pehlivanov's avatar
    • Rostislav Pehlivanov's avatar
      aacenc: remove the experimental flag · d9791a86
      Rostislav Pehlivanov authored
      Thiss commit removes the experimental flag from the native AAC Encoder
      and thus makes it the default.
      
      After a lot of work, done by myself and Claudio Freire, the quality of
      this encoder rivals and surpasses libfdk_aac in some situations. The
      encoder had instability issues earlier which prevented it from having
      its experimental flag removed, however the last commits done by Claudio
      removed the last known source of instability and solved a lot of
      problems which were previously observed. The issues were caused by the
      various coding tools interfering with the scalefactor indices. Thus,
      with these problems solved, it should now be possible to declare this
      encoder as the default and recommend that the users should use it
      instead of others provided by external libraries, as it is both faster
      and has a subjectively higher quality with selected tracks.
      The encoder has still yet to be fine tuned for every possible audio file
      type like music or voice, so it is hoped that with the experimental flag
      removed the users should be able to provide feedback and make the
      encoder better than the alternatives for every type of audio and at
      every bitrate.
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      d9791a86
    • Rostislav Pehlivanov's avatar
      aacenc: mark coders other than twoloop as experimental · b270ec9a
      Rostislav Pehlivanov authored
      ANMR has some interesting things coming up but is currently not in a
      shape fit for non-experimental usage. Same with "FAST".
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      b270ec9a
    • Rostislav Pehlivanov's avatar
      aacenc: mark the "faac"-like coder for removal · 3a6e0208
      Rostislav Pehlivanov authored
      This coder produces a much lower quality audio than the rest, is much
      slower and is unstable. Hasn't been updated for a very long time as
      well, hence it is more appropriate to remove it since it also depends on
      a big burden of a code (the encode_window_bands_info function which is
      just as old, just as unstable and bad and in no way modifiable or
      fixable).
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      3a6e0208
    • Luca Barbato's avatar
      aac: Provide more information on the failure message · b805482b
      Luca Barbato authored
      Bug-Id: 761
      b805482b
  20. 04 Dec, 2015 1 commit
  21. 02 Dec, 2015 1 commit
    • Claudio Freire's avatar
      AAC encoder: improve SF range utilization · ca203e99
      Claudio Freire authored
      This patch does 4 things, all of which interact and thus it
      woudln't be possible to commit them separately without causing
      either quality regressions or assertion failures.
      
      Fate comparison targets don't all reflect improvements in
      quality, yet listening tests show substantially improved quality
      and stability.
      
      1. Increase SF range utilization.
      
      The spec requires SF delta values to be constrained within the
      range -60..60. The previous code was applying that range to
      the whole SF array and not only the deltas of consecutive values,
      because doing so requires smarter code: zeroing or otherwise
      skipping a band may invalidate lots of SF choices.
      
      This patch implements that logic to allow the coders to utilize
      the full dynamic range of scalefactors, increasing quality quite
      considerably, and fixing delta-SF-related assertion failures,
      since now the limitation is enforced rather than asserted.
      
      2. PNS tweaks
      
      The previous modification makes big improvements in twoloop's
      efficiency, and every time that happens PNS logic needs to be
      tweaked accordingly to avoid it from stepping all over twoloop's
      decisions. This patch includes modifications of the sort.
      
      3. Account for lowpass cutoff during PSY analysis
      
      The closer PSY's allocation is to final allocation the better
      the quality is, and given these modifications, twoloop is now
      very efficient at avoiding holes. Thus, to compute accurate
      thresholds, PSY needs to account for the lowpass applied
      implicitly during twoloop (by zeroing high bands).
      
      This patch makes twoloop set the cutoff in psymodel's context
      the first time it runs, and makes PSY account for it during
      threshold computation, making PE and threshold computations
      closer to the final allocation and thus achieving better
      subjective quality.
      
      4. Tweaks to RC lambda tracking loop in relation to PNS
      
      Without this tweak some corner cases cause quality regressions.
      Basically, lambda needs to react faster to overall bitrate
      efficiency changes since now PNS can be quite successful in
      enforcing maximum bitrates, when PSY allocates too many bits
      to the lower bands, suppressing the signals RC logic uses to
      lower lambda in those cases and causing aggressive PNS.
      
      This tweak makes PNS much less aggressive, though it can still
      use some further tweaks.
      
      Also update MIPS specializations and adjust fuzz
      
      Also in lavc/mips/aacpsy_mips.h: remove trailing whitespace
      ca203e99
  22. 27 Nov, 2015 3 commits
  23. 26 Nov, 2015 1 commit
    • Claudio Freire's avatar
      AAC encoder: Fix application of M/S with PNS · fc36d852
      Claudio Freire authored
      When both M/S coding and PNS are enabled, scalefactors
      and coding books would be mistakenly clobbered when setting
      the M/S flag on PNS'd bands. The flag needs to be set to
      signal the generation of correlated noise, but the scalefactors,
      coefficients and the coding books need to be kept intact.
      fc36d852
  24. 17 Oct, 2015 5 commits