1. 12 Sep, 2020 1 commit
  2. 02 Jul, 2020 1 commit
  3. 29 Feb, 2020 1 commit
  4. 06 Mar, 2019 1 commit
  5. 17 Jan, 2018 1 commit
  6. 21 Jan, 2017 1 commit
  7. 20 Sep, 2016 1 commit
  8. 16 Jan, 2016 1 commit
  9. 24 Jul, 2015 1 commit
  10. 23 Feb, 2015 1 commit
  11. 08 Jan, 2014 1 commit
  12. 25 Oct, 2013 2 commits
  13. 24 Aug, 2013 1 commit
  14. 23 Aug, 2013 1 commit
    • Henrik Gramner's avatar
      Windows Unicode support · fa3cac51
      Henrik Gramner authored
      Windows, unlike most other operating systems, uses UTF-16 for Unicode strings while x264 is designed for UTF-8.
      
      This patch does the following in order to handle things like Unicode filenames:
      * Keep strings internally as UTF-8.
      * Retrieve the CLI command line as UTF-16 and convert it to UTF-8.
      * Always use Unicode versions of Windows API functions and convert strings to UTF-16 when calling them.
      * Attempt to use legacy 8.3 short filenames for external libraries without Unicode support.
      fa3cac51
  15. 09 Jan, 2013 1 commit
  16. 03 Jul, 2012 1 commit
    • Anton Mitrofanov's avatar
      Fix crash with --fps 0 · 5e3aaf1a
      Anton Mitrofanov authored
      Fix some integer overflows and check input parameters better.
      Also fix incorrect type specifiers for demuxer info printing.
      5e3aaf1a
  17. 04 Feb, 2012 1 commit
  18. 19 Mar, 2011 1 commit
  19. 18 Feb, 2011 1 commit
  20. 25 Jan, 2011 1 commit
  21. 10 Oct, 2010 1 commit
    • Yusuke Nakamura's avatar
      Move DTS compression from libx264 to x264cli · e4b44c2e
      Yusuke Nakamura authored
      DTS compression is an ugly stupid hack and starting to encroach on unrelated areas like VBV.
      Some people want it in the mp4 muxer for devices and/or splitters that don't support Edit Boxes.
      We just say "throw these broken devices out the window".
      DTS compression will remain as a muxer option, --dts-compress, at the user's own risk.
      This option is disabled by default.
      e4b44c2e
  22. 18 Sep, 2010 1 commit
    • Fiona Glaser's avatar
      Update source file headers · 213a99d0
      Fiona Glaser authored
      Update dates, improve file descriptions, make things more consistent.
      Also add information about commercial licensing.
      213a99d0
  23. 03 Jul, 2010 1 commit
  24. 09 Jun, 2010 1 commit
  25. 31 May, 2010 1 commit
  26. 23 Apr, 2010 1 commit
    • Fiona Glaser's avatar
      Fix issues with extremely large timebases · d48c3809
      Fiona Glaser authored
      With timebase denominators >= 2^30 , x264 would silently overflow and cause odd issues.
      Now x264 will explicitly fail with timebase denominators >= 2^31 and work with timebase denominators 2^31 > x >= 2^30.
      d48c3809
  27. 05 Apr, 2010 1 commit
    • Fiona Glaser's avatar
      Massive cosmetic and syntax cleanup · 58d2349d
      Fiona Glaser authored
      Convert all applicable loops to use C99 loop index syntax.
      Clean up most inconsistent syntax in ratecontrol.c, visualize, ppc, etc.
      Replace log(x)/log(2) constructs with log2, and similar with log10.
      Fix all -Wshadow violations.
      Fix visualize support.
      58d2349d
  28. 27 Mar, 2010 4 commits
    • Yusuke Nakamura's avatar
      Fix slightly wrong mp4 duration. · 6ac9e171
      Yusuke Nakamura authored
      6ac9e171
    • Yusuke Nakamura's avatar
      Fix link errors with newest gpac cvs · ddfe4124
      Yusuke Nakamura authored
      gpac decided to randomly break API and require us to use their own custom malloc and free.
      ddfe4124
    • Kieran Kunhya's avatar
      Blu-ray support: NAL-HRD, VFR ratecontrol, filler, pulldown · bb9b16b4
      Kieran Kunhya authored
      x264 can now generate Blu-ray-compliant streams for authoring Blu-ray Discs!
      Compliance tested using Sony BD-ROM Verifier 1.21.
      Thanks to The Criterion Collection for sponsoring compliance testing!
      
      An example command, using constant quality mode, for 1080p24 content:
      x264 --crf 16 --preset veryslow --tune film --weightp 0 --bframes 3 --nal-hrd vbr --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --b-pyramid strict --slices 4 --aud --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 <input> -o <output>
      
      This command is much more complicated than usual due to the very complicated restrictions the Blu-ray spec has.
      Most options after "tune" are required by the spec.
      --weightp 0 is not, but there are known bugged Blu-ray player chipsets (Mediatek, notably) that will decode video with --weightp 1 or 2 incorrectly.
      Furthermore, note the Blu-ray spec has very strict limitations on allowed resolution/fps combinations.
      Examples include 1080p @ 24000/1001fps (NTSC FILM) and 720p @ 60000/1001fps.
      
      Detailed features introduced in this patch:
      
      Full NAL-HRD compliance, with both VBR (no filler) and CBR (filler) modes.
      Can be enabled with --nal-hrd vbr/cbr.
      libx264 now returns HRD timing information to the caller in the form of an x264_hrd_t.
      x264cli doesn't currently use it, but this information is critical for compliant TS muxing.
      
      Full VFR ratecontrol support: VBV, 1-pass ABR, and 2-pass modes.
      This means that, even without knowing the average framerate, x264 can achieve a correct bitrate in target bitrate modes.
      Note that this changes the statsfile format; first pass encodes make before this patch will have to be re-run.
      
      Pulldown support: libx264 allows the calling application to specify a pulldown mode for each frame.
      This is similar to the way that RFFs (Repeat Field Flags) work in MPEG-2.
      Note that libx264 does not modify timestamps: it assumes the calling application has set timestamps correctly for pulldown!
      x264cli contains an example implementation of caller-side pulldown code.
      
      Pic_struct support: necessary for pulldown and allows interlaced signalling.
      Also signal TFF vs BFF with delta_poc_bottom: should significantly improve interlaced compression.
      --tff and --bff should be preferred to the old --interlaced in order to tell x264 what field order to use.
      
      Huge thanks to Alex Giladi and Lamont Alston for their work on code that eventually became part of this patch.
      bb9b16b4
    • Yusuke Nakamura's avatar
      Timecode input/output · 4d3c4787
      Yusuke Nakamura authored
      --tcfile-in allows a user to specify a timecode v1 or v2 file to override input timestamps.
      Useful for dealing with VFR input, especially when FFMS/LAVF support isn't available.
      --tcfile-out writes a timecode v2 file containing the timecodes of the output file.
      New --timebase option allows a user to change the stream timebase.
      Intended primarily for forcing timebase with timecode files if necessary.
      When using --seek, note that x264 will seek in the timecode file as well.
      4d3c4787
  29. 15 Feb, 2010 2 commits
  30. 30 Jan, 2010 1 commit
    • Yusuke Nakamura's avatar
      Improve DTS generation, move DTS compression into libx264 · afc36d0b
      Yusuke Nakamura authored
      This change fixes some cases in which PTS could be less than DTS.
      
      Additionally, a new parameter, b_dts_compress, enables DTS compression.
      DTS compression eliminates negative DTS (i.e. initial delay) due to B-frames.
      The algorithm changes timebase in order to avoid duplicating DTS.
      Currently, in x264cli, only the FLV muxer uses it.  The MP4 muxer doesn't need it, as it uses an EditBox instead.
      afc36d0b
  31. 14 Jan, 2010 2 commits
    • Fiona Glaser's avatar
      Periodic intra refresh · cde39046
      Fiona Glaser authored
      Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes.
      Attempt to hide the visual appearance of the intra bar when --no-psy isn't set.
      Enabled with --intra-refresh.
      The refresh interval is controlled using keyint, but won't exceed the number of macroblock columns in the frame.
      Greatly benefits low-latency streaming by making it possible to achieve constant framesize without intra-only encoding.
      Combined with slice-max size for one slice per packet, tests suggest effective resiliance against packet loss as high as 25%.
      x264 is now the best free software low-latency video encoder in the world.
      
      Accordingly, change the API to add b_keyframe to the parameters present in output pictures.
      Calling applications should check this to see if a frame is seekable, not the frame type.
      
      Also make x264's motion estimation strictly abide by horizontal MV range limits in order for PIR to work.
      Also fix a major bug in sliced-threads VBV handling.
      Also change "auto" threads for sliced threads to "cores" instead of "1.5*cores" after performance testing.
      Also simplify ratecontrol's checking of first pass options.
      Also some minor tweaks to row-based VBV that should improve VBV accuracy on small frames.
      cde39046
    • Kieran Kunhya's avatar
      LAVF/FFMS input support, native VFR timestamp handling · 30d76a5e
      Kieran Kunhya authored
      libx264 now takes three new API parameters.
      b_vfr_input tells x264 whether or not the input is VFR, and is 1 by default.
      i_timebase_num and i_timebase_den pass the timebase to x264.
      
      x264_picture_t now returns the DTS of each frame: the calling app need not calculate it anymore.
      
      Add libavformat and FFMS2 input support: requires libav* and ffms2 libraries respectively.
      FFMS2 is _STRONGLY_ preferred over libavformat: we encourage all distributions to compile with FFMS2 support if at all possible.
      FFMS2 can be found at http://code.google.com/p/ffmpegsource/.
      --index, a new x264cli option, allows the user to store (or load) an FFMS2 index file for future use, to avoid re-indexing in the future.
      
      Overhaul the muxers to pass through timestamps instead of assuming CFR.
      Also overhaul muxers to correctly use b_annexb and b_repeat_headers to simplify the code.
      Remove VFW input support, since it's now pretty much redundant with native AVS support and LAVF support.
      Finally, overhaul a large part of the x264cli internals.
      
      --force-cfr, a new x264cli option, allows the user to force the old method of timestamp handling.  May be useful in case of a source with broken timestamps.
      Avisynth, YUV, and Y4M input are all still CFR.  LAVF or FFMS2 must be used for VFR support.
      
      Do note that this patch does *not* add VFR ratecontrol yet.
      Support for telecined input is also somewhat dubious at the moment.
      
      Large parts of this patch by Mike Gurlitz <mike.gurlitz@gmail.com>, Steven Walters <kemuri9@gmail.com>, and Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>.
      30d76a5e
  32. 15 Nov, 2009 1 commit
  33. 09 Nov, 2009 1 commit
  34. 24 Oct, 2009 1 commit