1. 02 Sep, 2009 2 commits
    • Steven Walters's avatar
      Threaded lookahead · 6940dcae
      Steven Walters authored
      Move lookahead into a separate thread, set to higher priority than the other threads, for optimal performance.
      Reduces the amount that lookahead bottlenecks encoding, greatly increasing performance with lookahead-intensive settings (e.g. b-adapt 2) on many-core CPUs.
      Buffer size can be controlled with --sync-lookahead, which defaults to auto (threads+bframes buffer size).
      Note that this buffer is separate from the rc-lookahead value.
      Note also that this does not split lookahead itself into multiple threads yet; this may be added in the future.
      Additionally, split frames into "fdec" and "fenc" frame types and keep the two separate.
      This split greatly reduces memory usage, which helps compensate for the larger lookahead size.
      Extremely special thanks to Michael Kazmier and Alex Giladi of Avail Media, the original authors of this patch.
      6940dcae
    • Fiona Glaser's avatar
      Force a link error in case of incompatible API · 7df6f5d6
      Fiona Glaser authored
      This is because the number of bug reports due to miscompiled ffmpeg builds is reaching critical mass.
      The name of x264_encoder_open is now #defined based on the current X264_BUILD.
      Note that this changes the calling convention required for dlopen, but not for ordinary calls to x264_encoder_open.
      7df6f5d6
  2. 01 Sep, 2009 1 commit
    • Fiona Glaser's avatar
      Get rid of "CBR" descriptor from qcomp · ec2f6f4f
      Fiona Glaser authored
      Though technically accurate in some vague way, I have never actually seen this
      option used correctly, rather it has been used by hundreds of people who can't
      read the documentation and believe that qcomp=0 is what should be used for CBR
      encoding.
      ec2f6f4f
  3. 31 Aug, 2009 3 commits
    • Loren Merritt's avatar
      Faster me=tesa · 4767b0e1
      Loren Merritt authored
      But it still spends all too much time in me_search_ref rather than asm.
      4767b0e1
    • Fiona Glaser's avatar
      Multi-slice encoding support · 4ccbb199
      Fiona Glaser authored
      Slicing support is available through three methods (which can be mixed):
      --slices sets a number of slices per frame and ensures rectangular slices (required for Blu-ray).  Overridden by either of the following options:
      --slice-max-mbs sets a maximum number of macroblocks per slice.
      --slice-max-size sets a maximum slice size, in bytes (includes NAL overhead).
      Implement macroblock re-encoding support to allow highly accurate slice size limitation.  Might be useful for other things in the future, too.
      4ccbb199
    • Fiona Glaser's avatar
      Fix a valgrind warning in b-adapt 2 · 57223706
      Fiona Glaser authored
      57223706
  4. 29 Aug, 2009 1 commit
  5. 28 Aug, 2009 3 commits
  6. 27 Aug, 2009 4 commits
  7. 25 Aug, 2009 1 commit
  8. 24 Aug, 2009 7 commits
  9. 23 Aug, 2009 1 commit
    • David Conrad's avatar
      GSOC merge part 2: ARM stack alignment · ca7da1ae
      David Conrad authored
      Neither GCC nor ARMCC support 16 byte stack alignment despite the fact that NEON loads require it.
      These macros only work for arrays, but fortunately that covers almost all instances of stack alignment in x264.
      ca7da1ae
  10. 21 Aug, 2009 1 commit
  11. 20 Aug, 2009 3 commits
  12. 19 Aug, 2009 4 commits
    • Fiona Glaser's avatar
      Improve QPRD · bde792fe
      Fiona Glaser authored
      Always check the last macroblock's QP, even if the normal search doesn't reach it.
      Raise the failure threshold when moving towards the last macroblock's QP.
      0.2-1% improved compression.
      bde792fe
    • Fiona Glaser's avatar
      Fix MB-tree with keyint<3 · 4e824bbc
      Fiona Glaser authored
      Also slightly improve VBV keyint handling.
      4e824bbc
    • Fiona Glaser's avatar
      Fix bug in VBV lookahead + no MB-tree · 678b317a
      Fiona Glaser authored
      I-frames need to have VBV lookahead run on them as well.
      678b317a
    • Fiona Glaser's avatar
      Add support for frame-accurate parameter changes · c83699f1
      Fiona Glaser authored
      Parameter structs can now be passed with individual frames.
      The previous method would only change the parameter of what was currently being encoded, which due to delay might be very far from an intended exact frame.
      Also add support for changing aspect ratio.  Only works in a stream with repeating headers and requires the caller to force an IDR to ensure instant effect.
      c83699f1
  13. 18 Aug, 2009 1 commit
  14. 17 Aug, 2009 2 commits
    • Fiona Glaser's avatar
      Fix two bugs in QPRD · ba0c0351
      Fiona Glaser authored
      QPRD could in some cases force blocks to skip when they shouldn't be ~(+0.01db)
      Force QPRD to abide by qpmin/qpmax restrictions.
      ba0c0351
    • Fiona Glaser's avatar
      Lookahead VBV · 30a82c75
      Fiona Glaser authored
      Use the large-scale lookahead capability introduced in MB-tree for ratecontrol purposes.
      (Does not require MB-tree, however.)
      Greatly improved quality and compliance in 1-pass VBV mode, especially in CBR; +2db OPSNR or more in some cases.
      Fix some other bugs in VBV, which should improve non-lookahead mode as well.
      Change the tolerance algorithm in row VBV to allow for more significant mispredictions when buffer is nearly full.
      Note that due to the fixing of an extremely long-standing bug (>1 year), bitrates may change by nontrivial amounts in CRF without MB-tree.
      30a82c75
  15. 14 Aug, 2009 2 commits
    • Fiona Glaser's avatar
      Fix bug in b-adapt 1 · 50f7afcd
      Fiona Glaser authored
      B-adapt 1 didn't use more than MAX(1,bframes-1) B-frames when MB-tree was off.
      50f7afcd
    • Fiona Glaser's avatar
      Fix a potential failure in VBV · e586d699
      Fiona Glaser authored
      If VBV does underflow, ratecontrol could be permanently broken for the rest of the clip.
      Revert part of the previous VBV changes to fix this.
      e586d699
  16. 13 Aug, 2009 4 commits