· 6 years ago · Jul 18, 2019, 05:38 PM
1commit 3759fcb7b48037a5169715ab89f80a0ab4801cdf [revision 2984][>>MASTER<<]
2Author: Anton Mitrofanov <BugMaster@narod.ru>
3Date: Wed May 8 19:19:11 2019 +0300
4
5 Remove CRT objects use between DLL boundaries
6
7 Fix crash of MSVC builds compiled with --system-libx264 and /MT (default) CRT.
8
9commit 76c5afc25b331cf98c63c6e313a90cd98c575858 [revision 2983]
10Author: Anton Mitrofanov <BugMaster@narod.ru>
11Date: Mon Apr 22 22:18:01 2019 +0300
12
13 Fix MSVS build with ./configure --enable-shared --system-libx264
14
15commit a615f027ed172e2dd5380e736d487aa858a0c4ff [revision 2982]
16Author: Anton Mitrofanov <BugMaster@narod.ru>
17Date: Fri Mar 29 17:53:14 2019 +0300
18
19 Mark explicitly DSO public API symbols and hide all other by -fvisibility=hidden
20
21 Removes need for -Bsymbolic during linking.
22
23commit b5bc5d69c580429ff716bafcd43655e855c31b02 [revision 2981]
24Author: Henrik Gramner <henrik@gramner.com>
25Date: Sat Mar 30 17:47:25 2019 +0100
26
27 x86: Perform stack realignment in C instead of assembly
28
29 Simplifies a lot of code and avoids having to export public asm functions.
30
31 Note that the force_align_arg_pointer function attribute is broken in clang
32 versions prior to 6.0.1 which may result in crashes, so make sure to either
33 use a newer clang version or a different compiler.
34
35commit 34c06d1c17ad968fbdda153cb772f77ee31b3095 [revision 2980][>>STABLE<<]
36Author: Anton Mitrofanov <BugMaster@narod.ru>
37Date: Fri Jul 12 15:23:29 2019 +0300
38
39 Strip git-hash from version in x264.pc
40
41 pkg-config doesn't like spaces in version string.
42
43commit f9af2a0f71d0fca7c1cafa7657f03a302da0ca1c [revision 2979]
44Author: Anton Mitrofanov <BugMaster@narod.ru>
45Date: Mon Jul 8 15:46:56 2019 +0300
46
47 Revert r2959: Signal Progressive and Constrained profiles
48
49 Some hardware decoders reject to decode streams with non-zero
50 constraint_set4_flag/constraint_set5_flag.
51
52commit 6d4947083a712c7dc2efca569c8149ffc8667eda [revision 2978]
53Author: Anton Mitrofanov <BugMaster@narod.ru>
54Date: Fri Jun 14 19:57:36 2019 +0300
55
56 Fix x264_picture_alloc with X264_CSP_I400 colorspace
57
58commit 6b1170cbbd4f5cf3170d9d79aa1182e863188b04 [revision 2977]
59Author: Anton Mitrofanov <BugMaster@narod.ru>
60Date: Wed May 8 17:52:15 2019 +0300
61
62 Shut up UBSan about uninitialized data read
63
64 Result was never used in that case.
65
66commit f06062f51bc5928e6a364598357dbea2d7b83cd2 [revision 2976]
67Author: Anton Mitrofanov <BugMaster@narod.ru>
68Date: Mon Apr 22 21:41:43 2019 +0300
69
70 Fix integer overflow detected by UBSan in --weightp analysis
71
72 Bug report by Xuezhi Yan.
73
74commit 3147fa431627f1a00e54c8701d5ac07f1857c981 [revision 2975]
75Author: Anton Mitrofanov <BugMaster@narod.ru>
76Date: Fri Apr 12 15:40:01 2019 +0300
77
78 checkasm: Fix heap-buffer-overflow read detected by ASan
79
80commit 6381798d2d1339c0535732a764096b5345607981 [revision 2974]
81Author: Anton Mitrofanov <BugMaster@narod.ru>
82Date: Fri Apr 12 15:38:08 2019 +0300
83
84 Fix heap-buffer-overflow read detected by ASan with interlaced encoding
85
86 Bug report by Hongxu Chen.
87
88commit bd8a88be426baa903427a10de9f9ddb5e7c32812 [revision 2973]
89Author: Konstantin Pavlov <thresh@videolan.org>
90Date: Tue Jul 16 22:38:32 2019 +0300
91
92 CI: Bump macos target to darwin18
93
94commit 352c02634d6d004c1d79ff5ccbbd2414ad32b67c [revision 2972]
95Author: Konstantin Pavlov <thresh@videolan.org>
96Date: Tue Jul 16 22:24:46 2019 +0300
97
98 CI: Use a newer aarch64 image
99
100 It now includes pkg-config, so lavf can be detected.
101
102commit 98ee9d2f215326feeb221a4434957fa586d55c18 [revision 2971]
103Author: Konstantin Pavlov <thresh@videolan.org>
104Date: Fri Apr 5 15:08:29 2019 +0300
105
106 Added gitlab CI
107
108 Supported targets:
109 - debian amd64
110 - debian aarch64
111 - windows 32 bit
112 - windows 64 bit
113 - macos 64bit
114
115 The tests are ran on all supported targets (via wine on windows).
116
117 The release jobs are only available on master/stable branches in
118 videolan/x264 repository, and must be ran manually when a developer
119 wishes to upload the artifacts.
120
121commit 5493be84cdccecee613236c31b1e3227681ce428 [revision 2970]
122Author: Henrik Gramner <henrik@gramner.com>
123Date: Thu Mar 14 14:31:22 2019 +0100
124
125 Fix warning in autocomplete.c when compiled with lavf
126
127commit d4099dd4c722f52c4f3c14575d7d39eb8fadb97f [revision 2969]
128Author: Anton Mitrofanov <BugMaster@narod.ru>
129Date: Tue Jun 6 02:30:41 2017 +0300
130
131 Remove compatibility workarounds
132
133 This will break decoding with older versions of FFmpeg/Libav.
134
135commit 120ed3afe4bdef3f7f0ac2768e57da0d935e7536 [revision 2968]
136Author: Anton Mitrofanov <BugMaster@narod.ru>
137Date: Fri Nov 9 18:37:17 2018 +0300
138
139 Remove h->rc dereferencing where possible
140
141commit 3e5aed95cc470f37e2db3e6506a8deb89b527720 [revision 2967]
142Author: Henrik Gramner <henrik@gramner.com>
143Date: Sat Feb 16 21:02:01 2019 +0100
144
145 x86inc: Add support for GFNI instructions
146
147commit d3fa8b972557bad64c2e0247b0b5276c2d49961b [revision 2966]
148Author: Henrik Gramner <henrik@gramner.com>
149Date: Sat Feb 16 17:57:21 2019 +0100
150
151 x86inc: Improve warnings for use of unsupported instructions
152
153 Warn when the following are used without the appropriate cpuflag:
154 * YMM and ZMM registers
155 * 'pextrw' with a memory operand
156 * GPR instruction set extensions
157
158commit 101bd27d89cc84c18845046c13a67ab39e443a25 [revision 2965]
159Author: Henrik Gramner <henrik@gramner.com>
160Date: Thu Jan 31 20:42:32 2019 +0100
161
162 x86inc: Support N_PEXT bit on Mach-O
163
164 Allows for marking symbols as having limited global scope, similar to
165 using 'hidden' symbol visibility on ELF.
166
167commit 6f85b3c4961810427cc4e8f520e0b706a321114d [revision 2964]
168Author: Henrik Gramner <henrik@gramner.com>
169Date: Thu Jan 31 20:21:43 2019 +0100
170
171 x86inc: Make 'non-adjacent' default in the TAIL_CALL macro
172
173commit 82721eae6edddf4955634adc51bf6eb228cc1313 [revision 2963]
174Author: Henrik Gramner <henrik@gramner.com>
175Date: Thu Jan 31 20:17:56 2019 +0100
176
177 x86inc: Add x86-32 PIC support macros
178
179commit b7e9935c3f08055a67a0fdea498499c675d00054 [revision 2962]
180Author: Henrik Gramner <henrik@gramner.com>
181Date: Thu Jan 31 20:11:01 2019 +0100
182
183 x86inc: Turn 'movsxd' into 'movifnidn' on x86-32
184
185commit ec1d32302d0f1f59d3882e0289126b8d897c9f57 [revision 2961]
186Author: Henrik Gramner <henrik@gramner.com>
187Date: Thu Jan 31 20:08:40 2019 +0100
188
189 Bump dates to 2019
190
191commit 74c051f2c4945cf2a279e36051537a2a1897c120 [revision 2960]
192Author: Henrik Gramner <henrik@gramner.com>
193Date: Sun Jul 1 20:34:48 2018 +0200
194
195 cli: Bash autocomplete support
196
197 Allows for automatic command line completion for both options and values.
198
199 Options such as --input-csp and --input-fmt will dynamically retrieve
200 supported values from libavformat when compiled with lavf support.
201
202 Execute 'source tools/bash-autocomplete.sh' in bash to enable.
203
204commit 92d36908cbafd2a6edf7e61d69f341027b57f6f8 [revision 2959]
205Author: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
206Date: Mon Apr 9 11:01:28 2018 +0900
207
208 Signal Progressive and Constrained profiles
209
210 Progressive High, Constrained High, and Progressive High 10.
211
212 Even in Main profile, constraint_set4_flag is now set to 1 if progressive,
213 and constraint_set5_flag is set to 1 if no B-slices are present.
214
215commit 57baac4ed7fe213a2c2bb07924c6c7cee8ac25f9 [revision 2958]
216Author: Alexandra Hájková <alexandra.khirnova@gmail.com>
217Date: Sat Sep 8 07:15:53 2018 +0000
218
219 ppc: Use xxpermdi in sad_x3/x4 and use macros to avoid redundant code
220
221commit de380f4aed75b0a9bf5bdfc298a9901646184375 [revision 2957]
222Author: Luca Barbato <lu_zero@gentoo.org>
223Date: Thu Sep 6 12:25:14 2018 +0200
224
225 ppc: Use the vec_xst_len for partial stores in mc
226
227 Around a ~1% speedup to the overall encoding for --slow.
228
229commit 69dfb2896cf3180fd59233b124b5589f12fb6a94 [revision 2956]
230Author: Luca Barbato <lu_zero@gentoo.org>
231Date: Thu Sep 6 12:25:13 2018 +0200
232
233 ppc: Use vec_splats in mc
234
235 No overall speedup, just tidier code.
236
237commit 40688108dd13fc0bf1847a6dfc1cf86a728654fb [revision 2955]
238Author: Luca Barbato <lu_zero@gentoo.org>
239Date: Thu Aug 23 08:30:37 2018 +0000
240
241 ppc: Use the vec_xst_len for partial stores
242
243 Seems to give about a 1-2% overall speedup on --slow.
244
245commit 0d111333bbd65b1a76b5c646abf802f45dd41e96 [revision 2954]
246Author: Luca Barbato <lu_zero@gentoo.org>
247Date: Sun Aug 19 17:27:55 2018 +0200
248
249 ppc: Use xxpermdi in VEC_STORE8
250
251 Around a ~2% speedup to the overall encoding for --slow.
252
253commit 18262ee37fedeb4d7b30d9a228f2f38ef0e13cc1 [revision 2953]
254Author: Luca Barbato <lu_zero@gentoo.org>
255Date: Sun Aug 19 17:27:54 2018 +0200
256
257 ppc: Use a single store to write the scores for sad_x4_8x8
258
259 Yet another use of xxpermdi, another 10% gain.
260
261commit 28fb2661161c12ee20c29d9bb2a75509a5af5327 [revision 2952]
262Author: Luca Barbato <lu_zero@gentoo.org>
263Date: Sun Aug 19 17:27:53 2018 +0200
264
265 ppc: Use xxpermdi to halve the computation in sad_x4_8x8
266
267 About 20% faster.
268
269commit 83acefef8990302caf962c77e5a8189bb620ca6f [revision 2951]
270Author: Luca Barbato <lu_zero@gentoo.org>
271Date: Sun Aug 19 09:28:42 2018 +0200
272
273 ppc: Rework satd_4* likewise
274
275 Now 4x4 is as slow as C and 4x8 is a 2% faster than before.
276
277commit e0d846a63313e2a3d71faa703238b70385f6a5e4 [revision 2950]
278Author: Luca Barbato <lu_zero@gentoo.org>
279Date: Sun Aug 19 09:28:41 2018 +0200
280
281 ppc: Factor out the sum of absolute
282
283 And use it on the other satd > 8.
284
285 5-10% faster depending on the size.
286
287commit 6e74eb5af2f28ab30d2c28a86f921b56e94f04f7 [revision 2949]
288Author: Luca Barbato <lu_zero@gentoo.org>
289Date: Sun Aug 19 09:28:40 2018 +0200
290
291 ppc: Rework the adds in satd8x8
292
293 10% faster.
294
295commit 4dd83955b282e722fbeb3f4ee5cc05a45dc54c7f [revision 2948]
296Author: Luca Barbato <lu_zero@gentoo.org>
297Date: Fri Aug 17 22:28:45 2018 +0200
298
299 ppc: Add quant_4x4x4
300
301 4x faster than C.
302
303commit 8f6ac77f325c70631359e5f173e76b41e3fb55d9 [revision 2947]
304Author: Luca Barbato <lu_zero@gentoo.org>
305Date: Fri Aug 17 22:28:44 2018 +0200
306
307 ppc: Cleanup quant
308
309commit 275ef5332dffec445a0c5a78dbc00c3e0766011d [revision 2946]
310Author: Henrik Gramner <henrik@gramner.com>
311Date: Sun Aug 12 17:00:13 2018 +0200
312
313 x86: Always use PIC in x86-64 asm
314
315 Most x86-64 operating systems nowadays doesn't even allow .text relocations
316 in object files any more, and there is no measurable overall performance
317 difference from using RIP-relative addressing in x264 asm.
318
319 Enforcing PIC reduces complexity and simplifies testing.
320
321commit 72db437770fd1ce3961f624dd57a8e75ff65ae0b [revision 2945]
322Author: Henrik Gramner <henrik@gramner.com>
323Date: Sat Feb 23 20:15:33 2019 +0100
324
325 x86: Fix integer overflow in intra_sa8d_x3_8x8_sse2
326
327commit 88943afa4ee6565370e0e7cdc475b3b2283ada4b [revision 2944]
328Author: Anton Mitrofanov <BugMaster@narod.ru>
329Date: Fri Nov 9 18:13:34 2018 +0300
330
331 Check that mbtree settings are consistent between passes
332
333 Also check that CQP mode is not used with 2-pass.
334
335commit 6d8af5f0e390bbcd31a65dda04ef27d3f93821c1 [revision 2943]
336Author: Anton Mitrofanov <BugMaster@narod.ru>
337Date: Mon Feb 4 22:04:56 2019 +0300
338
339 Mark frame_size_estimated as volatile
340
341 Ensures that access is atomic and that other threads sees the actual
342 value of the variable.
343
344commit a6327f8a25b72f5edd3515aca82190046d18745b [revision 2942]
345Author: Anton Mitrofanov <BugMaster@narod.ru>
346Date: Mon Feb 4 21:46:12 2019 +0300
347
348 Fix data race detected by ThreadSanitizer
349
350 Bug report by Daniel Deptford.
351
352commit 6172da4d77a574c831ed4710a10d945ea128528e [revision 2941]
353Author: Anton Mitrofanov <BugMaster@narod.ru>
354Date: Mon Dec 24 19:37:45 2018 +0300
355
356 Fix XAVC with sliced-threads
357
358commit c7ec24cfbdf720dbf0806046cb5fb9302b941ec9 [revision 2940]
359Author: Anton Mitrofanov <BugMaster@narod.ru>
360Date: Fri Dec 21 18:54:56 2018 +0300
361
362 Fix XAVC slice pattern
363
364commit 6aa4b5929d3ce92ab618e98c34ed6e0948b06bbf [revision 2939]
365Author: Henrik Gramner <henrik@gramner.com>
366Date: Sun Oct 21 14:28:59 2018 +0200
367
368 Eliminate the use of strtok()
369
370 Also fix the string parsing in param_apply_tune() to correctly compare
371 the entire string, not just the first N characters.
372
373commit d6af823959dc06f061e0a7b038dab83d9c1c9ea3 [revision 2938]
374Author: Anton Mitrofanov <BugMaster@narod.ru>
375Date: Thu Nov 8 22:01:54 2018 +0300
376
377 configure: Fix log2f misdetection on some systems
378
379 Bug report by Dirk Fieldhouse.
380
381commit b763e338e0cec4dae13c4fc2fc49c63ac6f26df1 [revision 2937]
382Author: Anton Mitrofanov <BugMaster@narod.ru>
383Date: Thu Nov 8 21:53:17 2018 +0300
384
385 Fix ultrafast preset speed regression
386
387 --trellis 0 was missed for it during 8-bit and 10-bit unification.
388 Bug report by Aleksey Vasenev.
389
390commit b048e2658ad6aec55deceb0561db5796cdb64bd2 [revision 2936]
391Author: Anton Mitrofanov <BugMaster@narod.ru>
392Date: Wed Oct 10 19:41:08 2018 +0300
393
394 Fix --crop-rect top offset with --interlaced or --fake-interlaced
395
396 Bug report by Koby Shina.
397
398commit 545de2ffec6ae9a80738de1b2c8cf820249a2530 [revision 2935]
399Author: Anton Mitrofanov <BugMaster@narod.ru>
400Date: Sun Sep 23 20:47:44 2018 +0300
401
402 Fix possible double transpose of custom CQM if --level is not set
403
404 Bug reported by Nicolas Gaullier
405
406commit b63c73dc5c37e5405bf032c9113c1daced3e45a4 [revision 2934]
407Author: Henrik Gramner <henrik@gramner.com>
408Date: Tue Aug 7 22:42:22 2018 +0200
409
410 cli: Fix linking with --system-libx264 on x86
411
412commit fb17a6b5b51d02020fb0cadea2b27c7803e734ba [revision 2933]
413Author: Anton Mitrofanov <BugMaster@narod.ru>
414Date: Tue Aug 21 15:11:21 2018 +0300
415
416 Fix CAVLC+RDO in 4:4:4
417
418commit 303c484ec828ed0d8bfe743500e70314d026c3bd [revision 2932]
419Author: Alexandra Hájková <alexandra.khirnova@gmail.com>
420Date: Wed Jul 11 19:28:20 2018 +0000
421
422 ppc: Optimize quant functions
423
424 1) using xxpermdi + merge instead of 2 merges improves quant_8x8
425 performance by 5%
426
427 2) use vec_splats instead of vec_splat
428
429 checkasm timings when compiled with gcc:
430 C: AltiVec:
431 before: after:
432 quant_2x2_dc: 57 163 46
433 quant_4x4_dc: 141 162 57
434
435 dequant_4x4_cmp: 104 101 45
436 dequant_4x4_flat: 104 106 46
437 dequant_8x8_cmp: 412 208 147
438 dequant_8x8_flat: 414 212 149
439
440commit 44f1671369b54734db1775fe5155f17041344d8f [revision 2931]
441Author: Alexandra Hajkova <alexandra.khirnova@gmail.com>
442Date: Sun Jul 8 13:04:43 2018 -0500
443
444 ppc: Add support for Power9-only vec_absd
445
446 Increases overall encoding speed on POWER9 by 8%.
447
448commit f8afe3820c84798e9e50623cf7349bdb98765926 [revision 2930]
449Author: Alexandra Hájková <alexandra.khirnova@gmail.com>
450Date: Fri Jun 29 16:50:20 2018 +0000
451
452 ppc: Optimize sub8x8_dct_dc
453
454commit 411c957d82d357250f3a3099727b1a2c84caaee9 [revision 2929]
455Author: Alexandra Hájková <alexandra.khirnova@gmail.com>
456Date: Thu Jun 21 18:36:32 2018 +0000
457
458 ppc: AltiVec add16x16_idct_dc
459
460commit 53fe16e51349c43c483e81afb1f08a39f843a234 [revision 2928]
461Author: Alexandra Hájková <alexandra.khirnova@gmail.com>
462Date: Sat Jun 23 14:58:17 2018 +0000
463
464 ppc: Optimize add8x8_idct_dc
465
466commit 62dcebbce2c3f34998aeb2ea76b89f51306e78e9 [revision 2927]
467Author: Luca Barbato <lu_zero@gentoo.org>
468Date: Thu Jul 12 10:41:22 2018 +0200
469
470 ppc: Add compatibility macros for vec_xxpermdi
471
472commit d1a53926fb90e9f4a4f1605f4b2a8a945a73e1d2 [revision 2926]
473Author: Henrik Gramner <henrik@gramner.com>
474Date: Mon Jun 25 00:09:51 2018 +0200
475
476 Prefer a monotonic clock source if available
477
478commit 1d18f0e025e994b93233b8e8afa0c691bccc8fda [revision 2925]
479Author: Kieran Kunhya <kierank@obe.tv>
480Date: Wed Aug 30 16:05:41 2017 +0100
481
482 Add Sony XAVC, a flavour of AVC-Intra
483
484commit bc136ec6a0f863c42686a3bc9fa4c7820f83d413 [revision 2924]
485Author: Anton Mitrofanov <BugMaster@narod.ru>
486Date: Mon Jul 2 20:20:03 2018 +0300
487
488 Cosmetics: Fix indentation for multiline function prototypes
489
490 It was broken in "Drop the x264 prefix" patch.
491
492commit 6dd1d3b5d9e16a5951ececb7351cd63f02b36435 [revision 2923]
493Author: Anton Mitrofanov <BugMaster@narod.ru>
494Date: Mon Apr 16 23:54:43 2018 +0300
495
496 Cosmetics: Use consistent "inline" attribute position
497
498 Place it immediately after "static".
499
500commit 3d9ec58f27f1cd6732484246aaad59158b98af47 [revision 2922]
501Author: Henrik Gramner <henrik@gramner.com>
502Date: Thu Jan 25 22:17:57 2018 +0100
503
504 x86: AVX-512 plane_copy and plane_copy_swap
505
506 Avoid the scalar C wrapper by utilizing opmasks to prevent overreading the
507 input buffer.
508
509commit 698c5a32e63a3ed6b976ed196abe479efd78530b [revision 2921]
510Author: Emanuele Ruffaldi <emanuele.ruffaldi@gmail.com>
511Date: Sat Jan 6 02:34:39 2018 +0100
512
513 4:0:0 (monochrome) encoding support
514
515 Virtually zero increase in compression efficiency compared to 4:2:0 with empty
516 chroma planes. Performance is better though, especially with fast settings.
517
518commit 814e61e88c809bb00d17c200a04e9c7d42a19bb5 [revision 2920]
519Author: Diego Biurrun <diego@biurrun.de>
520Date: Sun Feb 5 09:02:43 2017 +0100
521
522 Makefile improvements
523
524 * Coalesce some install recipe lines
525
526 * Remove empty addition of GPLed filters
527
528 * Install libdir in recipes that directly require it
529
530 * Coalesce etags/TAGS rules
531
532 * Simplify fprofiled rule
533
534commit 28e4879842a86cc6bb63db0f5f386a3e9268fd46 [revision 2919]
535Author: Henrik Gramner <henrik@gramner.com>
536Date: Sun Apr 22 22:49:15 2018 +0200
537
538 x86inc: Improve SAVE/LOAD_MM_PERMUTATION macros
539
540 Use register numbers instead of copying the full register names. This makes it
541 possible to change register widths in the middle of a function and keep the
542 mmreg permutations intact which can be useful for code that only needs larger
543 vectors for parts of the function in combination with macros etc.
544
545 Also change the LOAD_MM_PERMUTATION macro to use the same default name as the
546 SAVE macro. This simplifies swapping from ymm to xmm registers or vice versa:
547
548 SAVE_MM_PERMUTATION
549 INIT_XMM <cpuflags>
550 LOAD_MM_PERMUTATION
551
552commit 8badb910847e94abb66686009e424bdce355c9f4 [revision 2918]
553Author: Henrik Gramner <henrik@gramner.com>
554Date: Sat Mar 31 13:49:56 2018 +0200
555
556 x86inc: Optimize VEX instruction encoding
557
558 Most VEX-encoded instructions require an additional byte to encode when src2
559 is a high register (e.g. x|ymm8..15). If the instruction is commutative we
560 can swap src1 and src2 when doing so reduces the instruction length, e.g.
561
562 vpaddw xmm0, xmm0, xmm8 -> vpaddw xmm0, xmm8, xmm0
563
564commit 0a84d986e7020f8344f00752e3600b9769cc1e85 [revision 2917]
565Author: Henrik Gramner <henrik@gramner.com>
566Date: Sat Mar 31 01:16:06 2018 +0200
567
568 x86inc: Fix VEX -> EVEX instruction conversion
569
570 There's an edge case that wasn't properly handled.
571
572commit 9d33c8fefbb506377b943aba11cd99c74258c5de [revision 2916]
573Author: Anton Mitrofanov <BugMaster@narod.ru>
574Date: Tue Jul 31 22:54:33 2018 +0300
575
576 configure: Fix required version checks for lavf and swscale
577
578commit 34843deb060248514ecd9edd88d72c2c2d6b906a [revision 2915]
579Author: Anton Mitrofanov <BugMaster@narod.ru>
580Date: Fri Jul 20 08:37:43 2018 +0300
581
582 Fix float division by zero in weightp analysis
583
584commit 1c3174775c6c1789aaf10172e4cb619f91ecff4a [revision 2914]
585Author: Anton Mitrofanov <BugMaster@narod.ru>
586Date: Wed Jul 18 21:56:33 2018 +0300
587
588 Fix undefined behavior of left shift for CAVLC encoding
589
590commit a0253ebee0f4d854cf89934b5f420275862d0b5b [revision 2913]
591Author: Anton Mitrofanov <BugMaster@narod.ru>
592Date: Mon Jul 2 20:59:16 2018 +0300
593
594 Fix integer overflow in slicetype_path_cost
595
596 The path cost for high resolutions can exceed COST_MAX.
597
598commit 2af2742821f0b08a4295055b41875e660d5a7746 [revision 2912]
599Author: Henrik Gramner <henrik@gramner.com>
600Date: Fri Jun 29 13:14:01 2018 +0200
601
602 cli: Fix preset help listing
603
604 It was previously incorrect when --chroma-format or --bit-depth was
605 specified in configure.
606
607commit f5d929ab8faf2319dda10836f51803ba25f0ad07 [revision 2911]
608Author: Luca Barbato <lu_zero@gentoo.org>
609Date: Sat Jun 23 13:14:28 2018 +0200
610
611 ppc: Fix zigzag_interleave
612
613 The permv array has 3 elements
614
615commit 7737e6ad4acf1058aeb0f9802e2a3ca1e0a30d29 [revision 2910]
616Author: Henrik Gramner <henrik@gramner.com>
617Date: Sat Jun 2 20:35:10 2018 +0200
618
619 Fix clang stack alignment issues
620
621 Clang emits aligned AVX stores for things like zeroing stack-allocated
622 variables when using -mavx even with -fno-tree-vectorize set which can
623 result in crashes if this occurs before we've realigned the stack.
624
625 Previously we only ensured that the stack was realigned before calling
626 assembly functions that accesses stack-allocated buffers but this is
627 not sufficient. Fix the issue by changing the stack realignment to
628 instead occur immediately in all CLI, API and thread entry points.
629
630commit 26b99cce1f03f023dee98bef2ec3cd2eff319f8e [revision 2909]
631Author: Anton Mitrofanov <BugMaster@narod.ru>
632Date: Sun Apr 1 20:49:29 2018 +0300
633
634 Fix missing bs_flush in AUD writing
635
636commit da6b29b553bb56e16e99527733849735c2ea264c [revision 2908]
637Author: Anton Mitrofanov <BugMaster@narod.ru>
638Date: Sun Apr 1 20:39:30 2018 +0300
639
640 Fix possible undefined behavior of right shift
641
642 32-bit shifts are only defined for values in the range 0-31.
643
644commit 7e457290cdd6da592ae63aa25facc47cd09d2128 [revision 2907]
645Author: Anton Mitrofanov <BugMaster@narod.ru>
646Date: Sun Apr 1 20:34:18 2018 +0300
647
648 Make bs_align_10 imply bs_flush
649
650 Now behaves the same as bs_align_0 and bs_align_1.
651
652commit 6afb67c6d7b71fcc6fc14d167f1fcf55623846f4 [revision 2906]
653Author: Anton Mitrofanov <BugMaster@narod.ru>
654Date: Sun Apr 1 17:52:47 2018 +0300
655
656 Fix theoretically incorrect cost_mv_fpel free
657
658commit 57dd6274e2da70bdb8220bc159976e3ac2aea017 [revision 2905]
659Author: Anton Mitrofanov <BugMaster@narod.ru>
660Date: Sun Apr 1 17:42:46 2018 +0300
661
662 configure: Fix ambiguous "$(("
663
664commit 0e6425e03e28213e73ae770df5e08fffba72d290 [revision 2904]
665Author: Anton Mitrofanov <BugMaster@narod.ru>
666Date: Mon Feb 19 19:53:38 2018 +0300
667
668 Fix --qpmax default value in fullhelp
669
670commit 5f7f950c80e330728ecb07bc133e17456870121a [revision 2903]
671Author: Henrik Gramner <henrik@gramner.com>
672Date: Sat Mar 31 01:31:57 2018 +0200
673
674 x86: Correctly use v-prefix for instructions with opmasks
675
676 This was always required, but accidentally happened to work correctly
677 in a few cases.
678
679commit 3d90057e15abf257320c89bb7146fb0c92687fa6 [revision 2902]
680Author: Martin Storsjö <martin@martin.st>
681Date: Sat Mar 31 00:10:14 2018 +0300
682
683 configure: Only use gas-preprocessor with armasm for compiler=CL
684
685 This picks the right assembler automatically for arm and aarch64
686 llvm-mingw targets.
687
688 This doesn't get the right assembler for clang setups when clang
689 acts like MSVC and uses MSVC headers though (where it perhaps
690 should use armasm as before), but that's probably an even more
691 obscure setup.
692
693commit 7d0ff22e8c96de126be9d3de4952edd6d1b75a8c [revision 2901]
694Author: Anton Mitrofanov <BugMaster@narod.ru>
695Date: Wed Jan 17 22:03:06 2018 +0300
696
697 Remove ARRAY_SIZE macro which is identical to ARRAY_ELEMS
698
699commit 4a158b00943c334ec9e0aabe6a919900c32e360e [revision 2900]
700Author: Henrik Gramner <henrik@gramner.com>
701Date: Sat Jan 6 17:47:42 2018 +0100
702
703 x86inc: Correctly set mmreg variables
704
705commit 40b47eed1338cef1ac66c98b4e393dfcf5d998ae [revision 2899]
706Author: Diego Biurrun <diego@biurrun.de>
707Date: Sun Feb 5 09:02:49 2017 +0100
708
709 .gitignore: Ignore TAGS file
710
711commit 6fce82284a0fb3edfa299b904b1559452a3b1094 [revision 2898]
712Author: Diego Biurrun <diego@biurrun.de>
713Date: Sun Feb 5 09:02:51 2017 +0100
714
715 Minor configure improvements
716
717 * Drop empty addition of GPLed filters
718
719 * Replace backticks with $()
720
721commit ca5408b13cf0e58a7505051861f20a63a7a6aec1 [revision 2897]
722Author: Henrik Gramner <henrik@gramner.com>
723Date: Mon Jan 1 15:05:48 2018 +0100
724
725 Bump dates to 2018
726
727commit b019515ef4ad77022b849283c62612157e8458a7 [revision 2896]
728Author: Henrik Gramner <henrik@gramner.com>
729Date: Tue Jan 16 17:43:24 2018 +0100
730
731 Merge zero buffers
732
733 Improves cache efficiency.
734
735commit d75b93b0e82cefa93e5db2d6b0be475566101431 [revision 2895]
736Author: Anton Mitrofanov <BugMaster@narod.ru>
737Date: Wed Jan 17 18:19:44 2018 +0300
738
739 rdo: Use ALIGNED_ARRAY for stack arrays
740
741commit 9384a7389b251b59a079ccc3d1af9edd42e3d5e6 [revision 2894]
742Author: Henrik Gramner <henrik@gramner.com>
743Date: Mon Jan 15 21:42:59 2018 +0100
744
745 Correctly align buffers for AVX and AVX-512
746
747 Fixes segfaults on Windows where the stack is only 16-byte aligned.
748
749commit b00bcafe53a166b63a179a2f41470cd13b59f927 [revision 2893]
750Author: Anton Mitrofanov <BugMaster@narod.ru>
751Date: Sun Dec 24 22:59:09 2017 +0300
752
753 Cosmetics
754
755commit 7c6b3ad50d9210d27be6953dfa6d24e5d183be18 [revision 2892]
756Author: Alexandra Hájková <alexandra.khirnova@gmail.com>
757Date: Sun May 21 17:40:45 2017 +0000
758
759 ppc: Add load_deinterleave_chroma_fenc_altivec
760
761 5x speed up vs C code.
762
763commit b461e015fd7efe3bb740ef0716bc41d76eff30c9 [revision 2891]
764Author: Martin Storsjö <martin@martin.st>
765Date: Thu Oct 26 13:09:46 2017 +0300
766
767 Update to the latest upstream version of gas-preprocessor
768
769 This version supports converting aarch64 assembly for MS armasm64.exe.
770
771commit 61e8b5cc482b08d51e18b336081073736d963e7e [revision 2890]
772Author: Henrik Gramner <henrik@gramner.com>
773Date: Sun Oct 22 09:59:28 2017 +0200
774
775 input: Add a workaround for swscale overread bugs
776
777 swscale can read past the end of the input buffer, which may result in
778 crashes if such a read crosses a page boundary into an invalid page.
779
780 Work around this by adding some padding space at the end of the buffer when
781 using memory-mapped input frames. This may sometimes require copying the
782 last frame into a new buffer on Windows since the Microsoft memory-mapping
783 implementation has very limited capabilities compared to POSIX systems.
784
785commit 1221f097473a049a52fbb47aff2733321bd4661a [revision 2889]
786Author: Henrik Gramner <henrik@gramner.com>
787Date: Sun Oct 22 10:50:46 2017 +0200
788
789 filters/resize: Upgrade to a newer libavutil API
790
791 Use the AVComponentDescriptor depth field instead of depth_minus1.
792
793commit 99ca611d2e667553e026f487dc787b595dde84c5 [revision 2888]
794Author: Martin Storsjö <martin@martin.st>
795Date: Wed Oct 18 10:40:02 2017 +0300
796
797 aarch64: Use ldurb/sturb for loads/stores with negative offsets
798
799 The assembler (both gas and clang/llvm) automatically fixes this,
800 armasm64 doesn't. We can fix it in gas-preprocessor, but we should
801 also be using the right instruction form.
802
803commit f745815e593b788d846182c8d42eed4f72f7c33c [revision 2887]
804Author: Martin Storsjö <martin@martin.st>
805Date: Mon Oct 16 22:50:27 2017 +0300
806
807 configure: Add support for building with MSVC/armasm for ARM64
808
809commit 7b13b31be60ed65bee615bab28c422e2df027ee1 [revision 2886]
810Author: Martin Storsjö <martin@martin.st>
811Date: Mon Oct 16 22:50:26 2017 +0300
812
813 arm: Check for __ELF__ instead of !__APPLE__, for using .arch/.fpu
814
815 For windows, when building with armasm, we already filtered these out
816 with gas-preprocessor.
817
818 By filtering them out already in the source, we can also build directly
819 with clang for windows (which also require wrapping the assembler in
820 gas-preprocessor for converting instructions to thumb form, but
821 gas-preprocessor doesn't and shouldn't filter out them in the clang
822 configuration).
823
824commit 12ca9a69e855c4d4b9000894f478bce665e4e02c [revision 2885]
825Author: Martin Storsjö <martin@martin.st>
826Date: Mon Oct 16 22:50:25 2017 +0300
827
828 aarch64: Don't .set a symbol named st2
829
830 This confuses gas-preprocessor, which tries to replace actual
831 st2 instructions by the integer 1 or 2.
832
833commit 06c8f6bab0fc8fa9b2df9a1af5d10c87c515edb4 [revision 2884]
834Author: Henrik Gramner <henrik@gramner.com>
835Date: Sat Oct 14 14:11:26 2017 +0200
836
837 Shrink the i4x4_mode cost_table array
838
839 Only 17 elements are actually used. It was originally padded to 64 bytes to
840 avoid cache line splits in the x86 assembly, but those haven't really been
841 an issue on x86 CPU:s made in the past decade or so.
842
843 Benchmarking shows no performance impact from dropping the padding, so
844 might as well remove it and save some cache.
845
846commit 344699fd386890ac1cf80a70a68a3ae16767ed62 [revision 2883]
847Author: Henrik Gramner <henrik@gramner.com>
848Date: Wed Oct 11 18:02:26 2017 +0200
849
850 x86: Remove some legacy CPU detection hacks
851
852 Some ancient Pentium-M and Core 1 CPU:s had slow SSE units, and using MMX
853 was preferable. Nowadays many assembly functions in x264 completely lack MMX
854 implementations and falling back to C code will likely make things worse.
855
856 Some misconfigured virtualized systems could sometimes also trigger this code
857 path and cause assertions.
858
859commit 0fe75403d7b40c0209c3df992632956292065cdc [revision 2882]
860Author: Henrik Gramner <henrik@gramner.com>
861Date: Wed Oct 11 17:58:36 2017 +0200
862
863 lavf: Upgrade to the new core decoding API
864
865commit dae7f18d2cc5c7eccfb73649cda458e3c8e2256e [revision 2881]
866Author: Vittorio Giovara <vittorio.giovara@gmail.com>
867Date: Mon Oct 9 12:04:22 2017 -0400
868
869 lavf: Upgrade to some newer API:s
870
871 * Use the codec parameters API instead of the AVStream codec field.
872 * Use av_packet_unref() instead of av_free_packet().
873 * Use the AVFrame pts field instead of pkt_pts.
874
875commit 12611ec99bb52f4f2c1b114138d867b3a2aa182b [revision 2880]
876Author: Henrik Gramner <henrik@gramner.com>
877Date: Sun Oct 8 21:41:16 2017 +0200
878
879 x86: AVX-512 load_deinterleave_chroma_fdec
880
881commit d93851ec282eb069f91a6eddab3284f7766cd5bd [revision 2879]
882Author: Henrik Gramner <henrik@gramner.com>
883Date: Sun Oct 8 21:23:12 2017 +0200
884
885 x86: AVX-512 load_deinterleave_chroma_fenc
886
887commit 5b62ab59be01579ab37033cc86527df922efb843 [revision 2878]
888Author: Henrik Gramner <henrik@gramner.com>
889Date: Sat Oct 7 12:06:51 2017 +0200
890
891 x86: AVX-512 mbtree_fix8_pack and mbtree_fix8_unpack
892
893 Takes advantage of opmasks to avoid having to use scalar code for the tail.
894
895 Also make some slight improvements to the checkasm test.
896
897commit 08476ab1c0a9b741198677731373b173657fa079 [revision 2877]
898Author: Henrik Gramner <henrik@gramner.com>
899Date: Sat Oct 7 11:34:16 2017 +0200
900
901 x86: Faster mbtree_fix8_unpack
902
903 Use a different multiplier in order to eliminate some shifts.
904
905 About 25% faster than before.
906
907commit e3fae10bf7db9571d5c69ad910f10df625bad73e [revision 2876]
908Author: Anton Mitrofanov <BugMaster@narod.ru>
909Date: Fri Sep 22 17:28:18 2017 +0300
910
911 Don't force fast-intra for subme < 3
912
913 It have caused significant quality hit without any meaningful (if any) speed up.
914
915commit bdf27e783a8eb4a5bcae0cd0a950d6dc3d995bfe [revision 2875]
916Author: Anton Mitrofanov <BugMaster@narod.ru>
917Date: Fri Sep 22 17:18:55 2017 +0300
918
919 Make ref and i4x4_mode costs global instead of static
920
921 Fixes some thread safety doubts and makes code cleaner.
922 Downside: slightly higher memory usage when calling multiple encoders from the same application.
923
924commit fefc3fa1fa98a7bac4eaf3c8e6e1c52b7e427ddd [revision 2874]
925Author: Anton Mitrofanov <BugMaster@narod.ru>
926Date: Fri Sep 22 17:05:06 2017 +0300
927
928 Fix thread safety of x264_threading_init() and use of X264_PTHREAD_MUTEX_INITIALIZER with win32thread
929
930commit 694d031c1d120a8b578f60eeccf14fcf9ca4200e [revision 2873]
931Author: Anton Mitrofanov <BugMaster@narod.ru>
932Date: Fri Sep 22 16:59:13 2017 +0300
933
934 configure: Improvements
935
936 Log result of pkg-config checks to config.log.
937 Fix lavf support detection for pkg-config fallback case.
938 Fix detection of linking dependencies errors for lavf/lsmash/gpac.
939 Cosmetics.
940
941commit 5d4031618e9feedcb527fd4e5a91bc06e30b70b4 [revision 2872]
942Author: Anton Mitrofanov <BugMaster@narod.ru>
943Date: Thu Aug 17 23:51:14 2017 +0300
944
945 flv: Fix one frame video total duration
946
947commit 8b9c89d331f5a2d6335ff9b08abc8d5c94428731 [revision 2871]
948Author: Anton Mitrofanov <BugMaster@narod.ru>
949Date: Thu Aug 17 23:46:23 2017 +0300
950
951 flv: Split FrameType and CodecID values
952
953commit 95cdb743463f723cea58c8ae01d7762f7ae9965c [revision 2870]
954Author: Vittorio Giovara <vittorio.giovara@gmail.com>
955Date: Tue Aug 8 15:40:45 2017 +0200
956
957 Support writing the alternative transfer SEI message
958
959commit c98d02bebd6dd04b61306ee27712aeff96f19f29 [revision 2869]
960Author: Vittorio Giovara <vittorio.giovara@gmail.com>
961Date: Tue Aug 8 14:56:43 2017 +0200
962
963 Support 04/2017 color matrix and transfer values
964
965commit 71ed44c7312438fac7c5c5301e45522e57127db4 [revision 2868]
966Author: Vittorio Giovara <vittorio.giovara@gmail.com>
967Date: Fri Jan 6 15:23:38 2017 +0100
968
969 Unify 8-bit and 10-bit CLI and libraries
970
971 Add 'i_bitdepth' to x264_param_t with the corresponding '--output-depth' CLI
972 option to set the bit depth at runtime.
973
974 Drop the 'x264_bit_depth' global variable. Rather than hardcoding it to an
975 incorrect value, it's preferable to induce a linking failure. If applications
976 relies on this symbol this will make it more obvious where the problem is.
977
978 Add Makefile rules that compiles modules with different bit depths. Assembly
979 on x86 is prefixed with the 'private_prefix' define, while all other archs
980 modify their function prefix internally.
981
982 Templatize the main C library, x86/x86_64 assembly, ARM assembly, AARCH64
983 assembly, PowerPC assembly, and MIPS assembly.
984
985 The depth and cache CLI filters heavily depend on bit depth size, so they
986 need to be duplicated for each value. This means having to rename these
987 filters, and adjust the callers to use the right version.
988
989 Unfortunately the threaded input CLI module inherits a common.h dependency
990 (input/frame -> common/threadpool -> common/frame -> common/common) which
991 is extremely complicated to address in a sensible way. Instead duplicate
992 the module and select the appropriate one at run time.
993
994 Each bitdepth needs different checkasm compilation rules, so split the main
995 checkasm target into two executables.
996
997commit 2451a7282463f68e532f2eee090a70ab139bb3e7 [revision 2867]
998Author: Vittorio Giovara <vittorio.giovara@gmail.com>
999Date: Fri Jan 6 17:50:40 2017 +0100
1000
1001 Change default QP parameters initialization
1002
1003 qp is modified to require a valid value before use, while qp_max is set
1004 to maximum allowable value (and clipped later on).
1005
1006 This is needed so that param functions do not depend on bit depth size.
1007
1008commit 7839a9e1f03b49e3e0cbfcb3091093af7c6d54ee [revision 2866]
1009Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1010Date: Tue Jan 17 17:07:42 2017 +0100
1011
1012 aarch64: Set the function symbol prefix in a single location
1013
1014commit 498cca0b74ab90c363b761083c7fdcf56fc60904 [revision 2865]
1015Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1016Date: Tue Jan 17 17:04:19 2017 +0100
1017
1018 arm: Set the function symbol prefix in a single location
1019
1020commit 8f2437d33301faaf0e2fcaff16e2b01e9bbe27ae [revision 2864]
1021Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1022Date: Fri Jan 27 11:58:33 2017 +0100
1023
1024 Drop the x264 prefix from static functions and variables
1025
1026commit 4e2ed4087ac1621f946b83366e1f53a1326d7424 [revision 2863]
1027Author: Anton Mitrofanov <BugMaster@narod.ru>
1028Date: Thu Aug 17 23:25:31 2017 +0300
1029
1030 configure: Check for strtok_r compiler support
1031
1032commit d1eebb2927da15c41c7c180d398b0cdad3d1f396 [revision 2862]
1033Author: Henrik Gramner <henrik@gramner.com>
1034Date: Sun Aug 6 17:17:55 2017 +0200
1035
1036 cabac: Make the cabac_contexts array static
1037
1038 Also drop the x264 prefix from all static cabac arrays.
1039
1040commit 3f9f6554a4cfa4189855756860a61ceb2f2a41a3 [revision 2861]
1041Author: Henrik Gramner <henrik@gramner.com>
1042Date: Thu Aug 17 18:04:13 2017 +0200
1043
1044 x86: AVX-512 pixel_satd_x3 and pixel_satd_x4
1045
1046commit dd399ab862e2271e869bc8aefcb3166180ecdb10 [revision 2860]
1047Author: Henrik Gramner <henrik@gramner.com>
1048Date: Mon Aug 14 23:13:44 2017 +0200
1049
1050 x86: Shrink the x86-64 cabac coeff_last tables
1051
1052 Use dword instead of qword entries. Cuts the size of the tables in half
1053 which allows each table fit inside a single cache line.
1054
1055 When PIC is disabled dwords are enough to store absolute addresses.
1056
1057 When PIC is enabled we can store dword offsets relative to the start of
1058 the table and simply add the address of the table to the offset in order
1059 to calculate the full address. This approach also have the advantage of
1060 eliminating a whole bunch of run-time .data relocations.
1061
1062commit d463a92e3b6f8ec04d54cc6c437892f9ffa98e29 [revision 2859]
1063Author: Henrik Gramner <henrik@gramner.com>
1064Date: Wed Aug 16 15:59:16 2017 +0200
1065
1066 x86inc: Support creating global symbols from local labels
1067
1068 On ELF platforms such symbols needs to be flagged as functions with the
1069 correct visibility to please certain linkers in some scenarios.
1070
1071commit 67b5c961046621a4554a9577e68cd9e31a212091 [revision 2858]
1072Author: Henrik Gramner <henrik@gramner.com>
1073Date: Tue Aug 15 16:11:32 2017 +0200
1074
1075 x86inc: Use .rdata instead of .rodata on Windows
1076
1077 The standard section for read-only data on Windows is .rdata. Nasm will
1078 flag non-standard sections as executable by default which isn't ideal.
1079
1080commit f15d366510cc60d9d9b2aeb576cade5b94509f37 [revision 2857]
1081Author: Henrik Gramner <henrik@gramner.com>
1082Date: Sat Aug 5 00:43:26 2017 +0200
1083
1084 x86inc: Set the correct cpuflag for AES-NI instructions
1085
1086commit 1ae63361304e952ac625a7016f2cf4a64e39a314 [revision 2856]
1087Author: Henrik Gramner <henrik@gramner.com>
1088Date: Sat Aug 5 00:09:52 2017 +0200
1089
1090 x86inc: Enable AVX emulation for floating-point pseudo-instructions
1091
1092 There are 32 pseudo-instructions for each floating-point comparison
1093 instruction, but only 8 of them are actually valid in legacy-encoded mode.
1094 The remaining 24 requires the use of VEX-encoded (v-prefixed) instructions
1095 and can therefore be disregarded for this purpose.
1096
1097commit 1e27313c12154dd3922ef7ab9508a4320e83c2ac [revision 2855]
1098Author: Henrik Gramner <henrik@gramner.com>
1099Date: Fri Aug 4 23:09:00 2017 +0200
1100
1101 configure: Increase x86 stack alignment on clang
1102
1103commit e9a5903edf8ca59ef20e6f4894c196f135af735e [revision 2854]
1104Author: Anton Mitrofanov <BugMaster@narod.ru>
1105Date: Sun Oct 22 20:18:39 2017 +0300
1106
1107 x86: Fix stack alignment for x264_cabac_encode_ue_bypass call
1108
1109 Fix MSVS fprofiled build for win64
1110
1111commit 45e6eb6006d1d23b6f69a1cfb62a86dc67092a81 [revision 2853]
1112Author: Anton Mitrofanov <BugMaster@narod.ru>
1113Date: Sun Oct 22 16:18:29 2017 +0300
1114
1115 mips: Fix incorrect pointers to msa optimized functions
1116
1117commit 09705c0b68232a05da8cc672c7c6092071eb4a21 [revision 2852]
1118Author: Henrik Gramner <henrik@gramner.com>
1119Date: Fri Aug 11 16:41:31 2017 +0200
1120
1121 Fix cpu capabilities listing on older x86 operating systems
1122
1123 Some cpuflags would previously be displayed incorrectly when running older
1124 operating systems without AVX support on modern CPU:s.
1125
1126commit ba24899b0bf23345921da022f7a51e0c57dbe73d [revision 2851]
1127Author: Henrik Gramner <henrik@gramner.com>
1128Date: Sat Jun 24 15:12:57 2017 +0200
1129
1130 x86: AVX-512 pixel_avg_weight_w8
1131
1132commit d3214e6b102701911fc9d5fc92435e79e8b49100 [revision 2850]
1133Author: Henrik Gramner <henrik@gramner.com>
1134Date: Sat Jun 24 14:26:25 2017 +0200
1135
1136 x86: AVX-512 pixel_avg_weight_w16
1137
1138commit 1d9dee2e9be717fcde416854f902db776312f141 [revision 2849]
1139Author: Henrik Gramner <henrik@gramner.com>
1140Date: Thu Jun 22 19:51:28 2017 +0200
1141
1142 x86: AVX-512 sub8x16_dct_dc
1143
1144commit f672795407bf90045e399eb057e5b2426d79f961 [revision 2848]
1145Author: Henrik Gramner <henrik@gramner.com>
1146Date: Thu Jun 22 11:26:21 2017 +0200
1147
1148 x86: AVX-512 sub8x8_dct_dc
1149
1150commit 0af1c6d0d0cc54ba4f888db39247774edcf19b44 [revision 2847]
1151Author: Henrik Gramner <henrik@gramner.com>
1152Date: Thu Jun 1 22:13:19 2017 +0200
1153
1154 x86: AVX-512 add8x8_idct
1155
1156commit 9034085265e5ca56e801c3efbf5c538fcc17c82b [revision 2846]
1157Author: Henrik Gramner <henrik@gramner.com>
1158Date: Sat Jun 10 16:01:53 2017 +0200
1159
1160 x86: AVX-512 sub16x16_dct
1161
1162commit 774c6c76d081305d9c891091e1d4694acb3f8a68 [revision 2845]
1163Author: Henrik Gramner <henrik@gramner.com>
1164Date: Wed Jun 7 16:55:48 2017 +0200
1165
1166 x86: AVX-512 sub8x8_dct
1167
1168commit 2d653411c2135377fb8c956e897880ff997b50ec [revision 2844]
1169Author: Henrik Gramner <henrik@gramner.com>
1170Date: Thu Jun 8 21:14:08 2017 +0200
1171
1172 x86: AVX-512 sub4x4_dct
1173
1174commit 07483f72d7e1a4f7079a429dd1370f4221006862 [revision 2843]
1175Author: Henrik Gramner <henrik@gramner.com>
1176Date: Sun May 28 16:12:33 2017 +0200
1177
1178 x86: AVX-512 mbtree_propagate_list
1179
1180 Uses gathers and scatters in combination with conflict detections to
1181 vectorize the scalar part.
1182
1183 Also improve the checkasm test to try different mb_y values and check
1184 for out-of-bounds writes.
1185
1186commit 1a88481b85da964aadae1e05347342b03be17712 [revision 2842]
1187Author: James Darnley <jdarnley@obe.tv>
1188Date: Fri Jun 9 14:08:16 2017 +0200
1189
1190 x86inc: Add aesni cpuflag define
1191
1192 Upstreaming this from FFmpeg. Unused in x264.
1193
1194commit 98e9543b4c39360326e6d5bf266c0c634cb9ee2e [revision 2841]
1195Author: Martin Storsjö <martin@martin.st>
1196Date: Mon May 29 12:13:03 2017 +0300
1197
1198 aarch64: Update the var2 functions to the new signature
1199
1200 The existing functions could easily be used by just calling them
1201 twice - this would give the following cycle numbers from checkasm:
1202
1203 var2_8x8_c: 4110
1204 var2_8x8_neon: 1505
1205 var2_8x16_c: 8019
1206 var2_8x16_neon: 2545
1207
1208 However, by merging both passes into the same function, we get the
1209 following speedup:
1210 var2_8x8_neon: 1205
1211 var2_8x16_neon: 2327
1212
1213commit 824802ad5a877244fb9eb48a892ed348736af5b0 [revision 2840]
1214Author: Martin Storsjö <martin@martin.st>
1215Date: Mon May 29 12:13:02 2017 +0300
1216
1217 arm: Update the var2 functions to the new signature
1218
1219 The existing functions could easily be used by just calling them
1220 twice - this would give the following cycle numbers from checkasm:
1221
1222 Cortex A7 A8 A9 A53
1223 var2_8x8_c: 7302 5342 5050 4400
1224 var2_8x8_neon: 2645 1612 1932 1715
1225 var2_8x16_c: 14300 10528 10020 8637
1226 var2_8x16_neon: 5127 2695 3217 2651
1227
1228 However, by merging both passes into the same function, we get the
1229 following speedup:
1230 var2_8x8_neon: 2312 1190 1389 1300
1231 var2_8x16_neon: 4862 2130 2293 2422
1232
1233commit 6f8aa71ce797be01fd2ebe53c072a6696ea19828 [revision 2839]
1234Author: Henrik Gramner <henrik@gramner.com>
1235Date: Wed Feb 15 22:00:25 2017 +0100
1236
1237 Add support for levels 6, 6.1, and 6.2
1238
1239 These levels were added in the 2016-10 revision of the H.264 specification and
1240 improves support for content with high resolutions and/or high frame rates.
1241
1242 Level 6.2 supports 8K resolution at 120 fps.
1243
1244 Also shrink the x264_levels array by using smaller data types.
1245
1246commit 2baa28c880d11377115bbd5508e72053f6ba61f5 [revision 2838]
1247Author: Henrik Gramner <henrik@gramner.com>
1248Date: Thu Mar 23 17:51:09 2017 +0100
1249
1250 Use a larger integer type for the slice_table array
1251
1252 Makes it possible to use slicing with resolutions larger than 2^24 pixels.
1253
1254commit c9d2c1c80b25c6ae15c41b200ec44ac2dabce725 [revision 2837]
1255Author: Henrik Gramner <henrik@gramner.com>
1256Date: Sun Feb 19 10:48:33 2017 +0100
1257
1258 analyse: Reduce the size the cost_mv arrays
1259
1260 Use a dynamic size depending on the MV range. Reduces memory consumption by
1261 up to a few megabytes.
1262
1263 Drop a related old miscompilation check since it may otherwise cause an
1264 out-of-bounds memory access.
1265
1266 Also remove an unused extern variable declaration.
1267
1268commit d46a5a463f0de5ec479d256af72bba3de4ba2d1a [revision 2836]
1269Author: Anton Mitrofanov <BugMaster@narod.ru>
1270Date: Wed May 31 02:52:16 2017 +0300
1271
1272 Fix CABAC+8x8dct in 4:4:4
1273
1274 Use the correct ctxIdxInc calculation for coded_block_flag.
1275
1276commit 79b36f27a57dd511eefead6d5422689220c767b5 [revision 2835]
1277Author: Anton Mitrofanov <BugMaster@narod.ru>
1278Date: Tue Jun 6 02:07:21 2017 +0300
1279
1280 Fix 8x8dct in lossless encoding
1281
1282 Change V and H intra prediction in lossless (TransformBypassModeFlag == 1)
1283 macroblocks to correctly adhere to the specification. Affects lossless
1284 encoding with 8x8dct or mix of lossless with normal macroblocks.
1285
1286 8x8dct has already been disabled in lossless mode for some time due to
1287 being out-of-spec but this will allow us to re-enable it again.
1288
1289commit 68a550217c8d0fae6229c5b322b6810fe9652ef3 [revision 2834]
1290Author: Anton Mitrofanov <BugMaster@narod.ru>
1291Date: Thu Jun 8 18:35:21 2017 +0300
1292
1293 mbtree: Fix buffer overflow
1294
1295 Could occur on the 1st pass in combination with --fake-interlaced and
1296 some input heights due to allocating a too small buffer.
1297
1298commit df79067c0cf33da712d344b5f8869be7eaf326f3 [revision 2833]
1299Author: Henrik Gramner <henrik@gramner.com>
1300Date: Tue May 23 16:40:26 2017 +0200
1301
1302 x86: Avoid self-relative expressions on macho64
1303
1304 Functions that uses self-relative expressions in the form of [foo-$$]
1305 appears to cause issues on 64-bit Mach-O systems when assembled with nasm.
1306 Temporarily disable those functions on macho64 for the time being until
1307 we've figured out the root cause.
1308
1309commit f1ac7122645bbeb56e7a4401f71a7055cb2431c4 [revision 2832]
1310Author: Anton Mitrofanov <BugMaster@narod.ru>
1311Date: Mon May 22 23:59:32 2017 +0300
1312
1313 configure: Don't try to detect clang by $CC
1314
1315 Only check if option -Werror=unknown-warning-option is supported before adding it
1316
1317commit b4d811df4fd7dbb9220fe2c8f2a2c2a6ba2bbc87 [revision 2831]
1318Author: Martin Storsjö <martin@martin.st>
1319Date: Mon May 22 13:10:46 2017 +0300
1320
1321 checkasm: Use the right variable in a loop condition
1322
1323 Prior to this, this loop hasn't run at all. The condition has been
1324 the same since it was introduced in 5b0cb86f.
1325
1326 This issue was pointed out by a clang warning.
1327
1328commit a3d24462ae284bf03958f0ed41e824dd7d48e15e [revision 2830]
1329Author: Anton Mitrofanov <BugMaster@narod.ru>
1330Date: Mon May 22 22:02:34 2017 +0300
1331
1332 x86: Fix linking with 8-bit depth shared libx264
1333
1334commit d1fe6fd1c0930d88da90f23f6d5fdb6ceaf6b0a9 [revision 2829]
1335Author: Henrik Gramner <henrik@gramner.com>
1336Date: Mon May 15 00:18:36 2017 +0200
1337
1338 x86: Only enable AVX-512 in 8-bit mode
1339
1340commit 6151882671b6f9e1ceec2cdb76dd1123c8dc766f [revision 2828]
1341Author: Henrik Gramner <henrik@gramner.com>
1342Date: Fri May 12 00:43:43 2017 +0200
1343
1344 x86: AVX-512 cabac_block_residual
1345
1346commit 4579616543f2e701ee9510f5eb57e31a3ef99e10 [revision 2827]
1347Author: Henrik Gramner <henrik@gramner.com>
1348Date: Wed May 10 18:36:59 2017 +0200
1349
1350 x86: AVX-512 pixel_sad_x3 and pixel_sad_x4
1351
1352 Covers all variants: 4x4, 4x8, 8x4, 8x8, 8x16, 16x8, and 16x16.
1353
1354commit 993eb2079e45619098241e14806fc70030968af6 [revision 2826]
1355Author: Henrik Gramner <henrik@gramner.com>
1356Date: Sun May 7 23:35:49 2017 +0200
1357
1358 x86: AVX-512 pixel_sad
1359
1360 Covers all variants: 4x4, 4x8, 4x16, 8x4, 8x8, 8x16, 16x8, and 16x16.
1361
1362commit 2463174c119cef4f7e6a36a1151054fbb268b082 [revision 2825]
1363Author: Henrik Gramner <henrik@gramner.com>
1364Date: Thu May 4 21:53:28 2017 +0200
1365
1366 x86: AVX-512 decimate_score
1367
1368 Also drop the MMX versions and improve the SSE2, SSSE3 and AVX2 versions.
1369
1370commit 49fb50a67cc41e4bed2dd66f7beed12797249cd9 [revision 2824]
1371Author: Henrik Gramner <henrik@gramner.com>
1372Date: Mon May 1 14:55:45 2017 +0200
1373
1374 x86: AVX-512 pixel_var2_8x8 and 8x16
1375
1376commit 92c074e27f6bfccee42b41c183203b7b2763a94d [revision 2823]
1377Author: Henrik Gramner <henrik@gramner.com>
1378Date: Mon May 1 14:54:32 2017 +0200
1379
1380 Rework pixel_var2
1381
1382 The functions are only ever called with pointers to fenc and fdec and the
1383 strides are always constant so there's no point in having them as parameters.
1384
1385 Cover both the U and V planes in a single function call. This is more
1386 efficient with SIMD, especially with the wider vectors provided by AVX2 and
1387 AVX-512, even when accounting for losing the possibility of early termination.
1388
1389 Drop the MMX and XOP implementations, update the rest of the x86 assembly
1390 to match the new behavior. Also enable high bit-depth in the AVX2 version.
1391
1392 Comment out the ARM, AARCH64, and MIPS MSA assembly for now.
1393
1394commit 4c48f9e751e969188d606eb15aeada7f652c9db9 [revision 2822]
1395Author: Henrik Gramner <henrik@gramner.com>
1396Date: Sat Apr 29 14:26:40 2017 +0200
1397
1398 x86: AVX-512 pixel_var_8x8, 8x16, and 16x16
1399
1400 Make the SSE2, AVX, and AVX2 versions a bit faster.
1401
1402 Drop the MMX and XOP versions.
1403
1404commit 1cf7baa462ca52de7f07d6e4c795853900bb50bb [revision 2821]
1405Author: Henrik Gramner <henrik@gramner.com>
1406Date: Fri Apr 28 21:35:25 2017 +0200
1407
1408 x86: AVX-512 pixel_sa8d_8x8
1409
1410commit 386050088a66aa66bcaebb9b6b4b0a2b6af76a73 [revision 2820]
1411Author: Henrik Gramner <henrik@gramner.com>
1412Date: Thu Apr 13 23:56:04 2017 +0200
1413
1414 x86: AVX-512 pixel_satd
1415
1416 Covers all variants: 4x4, 4x8, 4x16, 8x4, 8x8, 8x16, 16x8, and 16x16.
1417
1418commit 2eceefe89fea91bbc7d5af2a1b4a9047d8da7805 [revision 2819]
1419Author: Henrik Gramner <henrik@gramner.com>
1420Date: Wed Apr 19 16:39:48 2017 +0200
1421
1422 x86: AVX-512 deblock_strength
1423
1424 Also drop the MMX version and make some slight improvements to the SSE2,
1425 SSSE3, AVX, and AVX2 versions.
1426
1427commit 3081ffa1c540d1df05123e0fab1937985573ac78 [revision 2818]
1428Author: Henrik Gramner <henrik@gramner.com>
1429Date: Wed Apr 12 16:21:09 2017 +0200
1430
1431 x86: AVX-512 plane_copy_deinterleave_v210
1432
1433commit 95dc64c4efdf16404e58be9ff9da4e0acaa1a4b2 [revision 2817]
1434Author: Henrik Gramner <henrik@gramner.com>
1435Date: Sun Apr 9 20:34:28 2017 +0200
1436
1437 x86: AVX-512 memzero_aligned
1438
1439 Reorder some elements in the x264_t.mb.pic struct to reduce the amount
1440 of padding required.
1441
1442 Also drop the MMX implementation in favor of SSE.
1443
1444commit c0cd7650cb65164d183d8f77d0697b7569a52917 [revision 2816]
1445Author: Henrik Gramner <henrik@gramner.com>
1446Date: Fri Apr 7 21:34:40 2017 +0200
1447
1448 x86: AVX and AVX-512 memcpy_aligned
1449
1450 Reorder some elements in the x264_mb_analysis_list_t struct to reduce the
1451 amount of padding required.
1452
1453 Also drop the MMX implementation in favor of SSE.
1454
1455commit f29fbc6fd23e9bc2d800eb1246e8fa19a203b831 [revision 2815]
1456Author: Henrik Gramner <henrik@gramner.com>
1457Date: Thu Apr 6 16:06:34 2017 +0200
1458
1459 x86: AVX-512 dequant_8x8_flat16
1460
1461commit 40aca29a164d5e5e6589d507bdcae6717d72f6bf [revision 2814]
1462Author: Henrik Gramner <henrik@gramner.com>
1463Date: Tue Apr 4 20:54:12 2017 +0200
1464
1465 x86: AVX-512 dequant_8x8
1466
1467commit 74f7802bb7bd301299f8229a0552a7caf2b55434 [revision 2813]
1468Author: Henrik Gramner <henrik@gramner.com>
1469Date: Tue Apr 4 20:01:26 2017 +0200
1470
1471 x86: AVX-512 dequant_4x4
1472
1473commit 3451ba3af49e58a720277615df3d8e4a4171986f [revision 2812]
1474Author: Henrik Gramner <henrik@gramner.com>
1475Date: Tue Mar 28 22:59:56 2017 +0200
1476
1477 x86: AVX-512 mbtree_propagate_cost
1478
1479 Also make the AVX and AVX2 implementations slightly faster.
1480
1481commit 75f6f9b228c3498b8c9b0d97fc925c0a7e6e6f43 [revision 2811]
1482Author: Henrik Gramner <henrik@gramner.com>
1483Date: Mon Mar 27 18:19:53 2017 +0200
1484
1485 x86: AVX-512 coeff_last
1486
1487commit c3a1d1d892a79bc460c7fc192b0bf7a32c2ce0b2 [revision 2810]
1488Author: Henrik Gramner <henrik@gramner.com>
1489Date: Sun Mar 26 18:29:37 2017 +0200
1490
1491 x86: AVX-512 zigzag_interleave_8x8_cavlc
1492
1493commit edb22f57ba03718c1cb9781ba005aec20a1e50e0 [revision 2809]
1494Author: Henrik Gramner <henrik@gramner.com>
1495Date: Sun Mar 26 11:34:18 2017 +0200
1496
1497 x86: AVX-512 zigzag_scan_8x8_field
1498
1499commit 77b9a818fc622d0cdaa96aeb37339fbd5b1ef857 [revision 2808]
1500Author: Henrik Gramner <henrik@gramner.com>
1501Date: Sat Mar 25 22:13:22 2017 +0100
1502
1503 x86: AVX-512 zigzag_scan_4x4_field
1504
1505commit 724a577237f27cdb0c0fd18ef8ed32d39430796b [revision 2807]
1506Author: Henrik Gramner <henrik@gramner.com>
1507Date: Sat Mar 25 19:14:28 2017 +0100
1508
1509 x86: AVX-512 zigzag_scan_8x8_frame
1510
1511 The vperm* instructions ignores unused bits, so we can pack the permutation
1512 indices together to save cache and just use a shift to get the right values.
1513
1514commit 2b2f039512bde7c097280255c6376cf9a901e08e [revision 2806]
1515Author: Henrik Gramner <henrik@gramner.com>
1516Date: Sat Mar 25 19:14:22 2017 +0100
1517
1518 x86: AVX-512 zigzag_scan_4x4_frame
1519
1520commit 1878c7f2af0a9c73e291488209109782c428cfcf [revision 2805]
1521Author: Henrik Gramner <henrik@gramner.com>
1522Date: Fri May 12 00:03:10 2017 +0200
1523
1524 checkasm: x86: More accurate ymm/zmm measurements
1525
1526 YMM and ZMM registers on x86 are turned off to save power when they haven't
1527 been used for some period of time. When they are used there will be a
1528 "warmup" period during which performance will be reduced and inconsistent
1529 which is problematic when trying to benchmark individual functions.
1530
1531 Periodically issue "dummy" instructions that uses those registers to
1532 prevent them from being powered down. The end result is more consitent
1533 benchmark results.
1534
1535commit 472ce3648aea3ddc16b7716eb114f4bcdb8fea8f [revision 2804]
1536Author: Henrik Gramner <henrik@gramner.com>
1537Date: Sat Mar 25 10:16:09 2017 +0100
1538
1539 x86: AVX-512 support
1540
1541 AVX-512 consists of a plethora of different extensions, but in order to keep
1542 things a bit more manageable we group together the following extensions
1543 under a single baseline cpu flag which should cover SKL-X and future CPUs:
1544 * AVX-512 Foundation (F)
1545 * AVX-512 Conflict Detection Instructions (CD)
1546 * AVX-512 Byte and Word Instructions (BW)
1547 * AVX-512 Doubleword and Quadword Instructions (DQ)
1548 * AVX-512 Vector Length Extensions (VL)
1549
1550 On x86-64 AVX-512 provides 16 additional vector registers, prefer using
1551 those over existing ones since it allows us to avoid using `vzeroupper`
1552 unless more than 16 vector registers are required. They also happen to
1553 be volatile on Windows which means that we don't need to save and restore
1554 existing xmm register contents unless more than 22 vector registers are
1555 required.
1556
1557 Also take the opportunity to drop X264_CPU_CMOV and X264_CPU_SLOW_CTZ while
1558 we're breaking API by messing with the cpu flags since they weren't really
1559 used for anything.
1560
1561 Big thanks to Intel for their support.
1562
1563commit d2b5f4873e2147452a723b61b14f030b2ee760a5 [revision 2803]
1564Author: Henrik Gramner <henrik@gramner.com>
1565Date: Sat Mar 18 18:50:36 2017 +0100
1566
1567 x86: Change assembler from yasm to nasm
1568
1569 This is required to support AVX-512.
1570
1571 Drop `-Worphan-labels` from ASFLAGS since it's enabled by default in nasm.
1572
1573 Also change alignmode from `k8` to `p6` since it's more similar to `amdnop`
1574 in yasm, e.g. use long nops without excessive prefixes.
1575
1576commit 8c2974255b01728d4eda2434cc1997c4a3ca5eff [revision 2802]
1577Author: Henrik Gramner <henrik@gramner.com>
1578Date: Sat May 6 12:26:56 2017 +0200
1579
1580 x86: Add some additional cpuflag relations
1581
1582 Simplifies writing assembly code that depends on available instructions.
1583
1584 LZCNT implies SSE2
1585 BMI1 implies AVX+LZCNT
1586 AVX2 implies BMI2
1587
1588 Skip printing LZCNT under CPU capabilities when BMI1 or BMI2 is available,
1589 and don't print FMA4 when FMA3 is available.
1590
1591commit 93bc2cbc66f0bf4616965dcd7e0eba89201c8086 [revision 2801]
1592Author: Henrik Gramner <henrik@gramner.com>
1593Date: Fri Apr 14 16:16:49 2017 +0200
1594
1595 x86: Faster SSE2 pixel_sad_16x16 and 16x8
1596
1597 Also make the order of fenc/fdec arguments a bit more consistent.
1598
1599commit 8ae2b62462176cd731a1cb8b5bdc9a38cba0fbe4 [revision 2800]
1600Author: Anton Mitrofanov <BugMaster@narod.ru>
1601Date: Mon May 15 00:40:52 2017 +0300
1602
1603 msvs/icl: Improve target host detection
1604
1605commit 181a920ad5d0acdc3a08418c0e9c95be4785b814 [revision 2799]
1606Author: Alexandra Hájková <alexandra@khirnov.net>
1607Date: Sat May 13 17:14:52 2017 +0000
1608
1609 ppc: Optimize add8x8_idct_dc
1610
1611 Increases speedup compared to C from 2x to 6x.
1612
1613commit d0b905b901c5ee5989777cf437a7f20c1fa0a794 [revision 2798]
1614Author: Henrik Gramner <henrik@gramner.com>
1615Date: Sun Feb 19 10:33:16 2017 +0100
1616
1617 analyse: Faster min/max MV clipping
1618
1619 Values only needs to be clipped in one direction.
1620
1621commit 1bde30193eb91d1bc69b00a27e6874eb88ed4eab [revision 2797]
1622Author: Henrik Gramner <henrik@gramner.com>
1623Date: Thu Feb 16 20:04:10 2017 +0100
1624
1625 slicetype_mb_cost: Clip MVs based on MV range
1626
1627 Improves cost calculations, especially when a short MV range is used.
1628
1629commit dcf406978b9dda5c2b8aab80af5c1c47c78efd92 [revision 2796]
1630Author: Henrik Gramner <henrik@gramner.com>
1631Date: Sun Jan 29 21:38:43 2017 +0100
1632
1633 Support YUYV and UYVY packed 4:2:2 raw input
1634
1635 Packed YUV is arguably more common than planar YUV when dealing with raw
1636 4:2:2 content.
1637
1638 We can utilize the existing plane_copy_deinterleave() functions with some
1639 additional minor constraints (we cannot assume any particular alignment
1640 or overread the input buffer).
1641
1642 Enables assembly optimizations on x86.
1643
1644commit aaa9aa83a111ed6f1db253d5afa91c5fc844583f [revision 2795]
1645Author: Henrik Gramner <henrik@gramner.com>
1646Date: Thu Apr 20 21:58:23 2017 +0200
1647
1648 x86: Utilize 3-arg instructions in AVX deblock
1649
1650 Avoids some redundant register-register moves.
1651
1652commit a52d41c4d135c79373a86c3a82dcc2ec3f88b025 [revision 2794]
1653Author: Martin Storsjö <martin@martin.st>
1654Date: Fri Mar 24 11:33:46 2017 +0200
1655
1656 configure: Support targeting ARM with MSVC tools
1657
1658 Set up the right gas-preprocessor as assembler frontend in these cases,
1659 using armasm as actual assembler.
1660
1661 Don't try to add the -mcpu -mfpu options in this case.
1662
1663 Check whether the compiler actually supports inline assembly.
1664
1665 Check for the ARMv7 features in a different way for the MSVC compiler.
1666
1667commit b22a5db3c481b10b4a6ec190978d97b377750a12 [revision 2793]
1668Author: Martin Storsjö <martin@martin.st>
1669Date: Fri Mar 24 11:33:45 2017 +0200
1670
1671 configure: Check for -lshell32 before forcibly adding it into LDFLAGSCLI
1672
1673 When targeting the Windows Phone API subset, there is no shell32.lib.
1674
1675 When targeting Windows Phone/RT, the CLI itself won't be built, but
1676 LDFLAGSCLI are included in all later cases of cc_check within configure.
1677 Therefore only add -lshell32 there if it actually is usable.
1678
1679commit 0aed59e74808f1cd22ee47c055a8eb4f367b2f55 [revision 2792]
1680Author: Martin Storsjö <martin@martin.st>
1681Date: Thu May 4 22:00:51 2017 +0300
1682
1683 arm: Always unconditionally declare .arch armv7-a
1684
1685 We already unconditionally declare .fpu neon and try to build all the
1686 neon codepaths (but only execute them conditionally based on a runtime
1687 check).
1688
1689 This fixes builds targeting armv6, where the rbit instruction isn't
1690 available. This instruction is only used within a neon function in
1691 any case, so there's little point in emulating it.
1692
1693commit 196d7676c8f40b7c1f8f2f4af64e09ebf4c9816b [revision 2791]
1694Author: Martin Storsjö <martin@martin.st>
1695Date: Fri Mar 24 11:33:44 2017 +0200
1696
1697 arm: Use .section .rodata for non-elf, non-mach platforms as well
1698
1699 If targeting windows with armasm, gas-preprocessor can rewrite the
1700 .section .rodata into the right construct for that platform.
1701
1702commit 9bffbabfecf0bda066362a1b76b62c5085257e18 [revision 2790]
1703Author: Martin Storsjö <martin@martin.st>
1704Date: Fri Mar 24 11:33:41 2017 +0200
1705
1706 gas-preprocessor: Support conversion of additional arm instructions into thumb
1707
1708 Convert muls into mul+cmp.
1709
1710 Convert "and r0, sp, #xx" into "mov r0, sp", "and r0, r0, #xx".
1711
1712 Convert ldr with a too large shift into add+ldr. This only works in the
1713 special case when the base register is the same as the target for the ldr.
1714
1715commit 2e9bd88f27ed8f5f058e7e220070b7a15965cb8e [revision 2789]
1716Author: Martin Storsjö <martin@martin.st>
1717Date: Fri Mar 24 11:33:40 2017 +0200
1718
1719 arm: Explicitly declare using the .text segment in the function macro
1720
1721 This fixes one issue in building with MS armasm via gas-preprocessor.
1722 Without the .text segment specification, the object files assembled
1723 fine, but linking failed. (armasm source files don't get the text/code
1724 segment implied automatically if nothing is specified.)
1725
1726commit 64843af913e76fd7fb590e9227f678add96e8a3c [revision 2788]
1727Author: Martin Storsjö <martin@martin.st>
1728Date: Fri Mar 24 11:33:39 2017 +0200
1729
1730 osdep: Use the EXPAND macro on other cases of ALIGNED_ARRAY_EMU
1731
1732 EXPAND is already used on the other cases where ALIGNED_ARRAY_EMU
1733 is used on all platforms (originally needed for ICL, later also
1734 required by MSVC); apply the same change (originally from 21ba91ae)
1735 for the cases that only are used on ARM.
1736
1737 This fixes use of ALIGNED_ARRAY_16 with MSVC when targeting ARM.
1738
1739commit 757091fe3abd0af0f45d11f52b652f0be2fb76f5 [revision 2787]
1740Author: Martin Storsjö <martin@martin.st>
1741Date: Fri Mar 24 11:33:38 2017 +0200
1742
1743 Update to the latest version of gas-preprocessor.pl
1744
1745 From http://git.libav.org/?p=gas-preprocessor.git
1746
1747 This update contains changes from myself only.
1748
1749commit d13705191cdcbcd10d87524dbb0c26ba998d8dcc [revision 2786]
1750Author: Martin Storsjö <martin@martin.st>
1751Date: Fri Mar 24 11:33:37 2017 +0200
1752
1753 arm: Skip using gas-preprocessor for iOS on arm as well
1754
1755 The few constructs that differ can easily be handled within the
1756 source itself - tested to be working since at least Xcode 6.
1757
1758commit 3a3cfe32416efa4f966c0586411148236e4703c1 [revision 2785]
1759Author: Martin Storsjö <martin@martin.st>
1760Date: Fri Mar 24 11:33:36 2017 +0200
1761
1762 arm: Use const macros in arm assembly where applicable
1763
1764 This unifies the source code style, and allows building the code
1765 with clang without gas-preprocessor.
1766
1767commit 1e92821c5a52c80ca4d1a9b6d038bec84be48b0a [revision 2784]
1768Author: Martin Storsjö <martin@martin.st>
1769Date: Fri Mar 24 11:33:35 2017 +0200
1770
1771 arm: Use commas between all macro arguments in arm assembly
1772
1773 The clang built-in assembler requires proper commas between all macro
1774 arguments. As long as gas-preprocessor is used when building with clang,
1775 this isn't an issue.
1776
1777commit a84e6a486b991bffb2cc9f86b6e236978d251d2c [revision 2783]
1778Author: Martin Storsjö <martin@martin.st>
1779Date: Fri Mar 24 11:33:34 2017 +0200
1780
1781 aarch64: Skip invoking gas-preprocessor for iOS
1782
1783 Clang can handle all the constructs used there these days, working
1784 since Xcode 6 at least.
1785
1786commit 535fd2ec9985b9874d6ed23904404d0d2f5d40d6 [revision 2782]
1787Author: Martin Storsjö <martin@martin.st>
1788Date: Fri Mar 24 11:33:33 2017 +0200
1789
1790 aarch64: Use the const macro in the aarch64 checkasm assembly source
1791
1792 This fixes building the source with clang for iOS without gas-preprocessor.
1793
1794commit bec87ba69421572282e473cf8f2e11c77285ed88 [revision 2781]
1795Author: Henrik Gramner <henrik@gramner.com>
1796Date: Wed Apr 12 23:26:32 2017 +0200
1797
1798 Windows: Add support for MSVC compilation with WSL
1799
1800 In Windows 10 version 1703 (Creators Update) WSL supports calling native
1801 Windows binaries from the Bash shell, but it requires using full file
1802 names including extension, e.g. `cl.exe` instead of `cl`.
1803
1804 We also don't have access to `cygpath`, so use a simple regex for
1805 converting the dependencies to Unix paths that `make` can understand.
1806
1807commit 43e9a6157752c2a3c2cc6c6a7fa13da72033d1dd [revision 2780]
1808Author: Henrik Gramner <henrik@gramner.com>
1809Date: Sun Jan 29 22:58:24 2017 +0100
1810
1811 cli: Improve the --fullhelp raw demuxer input-csp listing
1812
1813 Use the same logic for indentation as the lavf demuxer.
1814
1815commit 3538df12688fc4408f585c4e65ee92d5a4737b2c [revision 2779]
1816Author: Anton Mitrofanov <BugMaster@narod.ru>
1817Date: Sat May 20 21:17:59 2017 +0300
1818
1819 x86inc: Remove argument from WIN64_RESTORE_XMM
1820
1821 The use of rsp was pretty much hardcoded there and probably didn't work
1822 otherwise with stack_size > 0.
1823
1824commit e4b0974a4ea3a727f6cc8941e9accf7ef3ba0637 [revision 2778]
1825Author: Henrik Gramner <henrik@gramner.com>
1826Date: Sat Apr 22 20:30:35 2017 +0200
1827
1828 x86inc: Prefer r14/r15 over r12/r13 on x86-64
1829
1830 Due to a peculiarity in the ModR/M addressing encoding, the r12 and r13
1831 registers sometimes requires an additional byte when used as a base register.
1832
1833 r14 and r15 doesn't have that issue, so prefer using them.
1834
1835commit 46a489b5e21cae3b4fea5d41cc285dcaf79d19e3 [revision 2777]
1836Author: Henrik Gramner <henrik@gramner.com>
1837Date: Thu Apr 20 19:16:51 2017 +0200
1838
1839 x86inc: Make REP_RET identical to RET in SSSE3+ functions
1840
1841 There's no point in emitting a rep prefix before ret on modern CPUs.
1842
1843commit 50a9dd78263191474c948d53e837348abd0bf316 [revision 2776]
1844Author: Henrik Gramner <henrik@gramner.com>
1845Date: Wed Mar 29 16:43:57 2017 +0200
1846
1847 x86inc: Fix call with memory operands
1848
1849 We overload the `call` instruction with a macro, but it would misbehave when
1850 the macro argument wasn't a valid identifier. Fix it by explicitly checking
1851 if the argument is an identifier.
1852
1853commit d13b4c3a9574cd2fbd5407c7dfc58eeff72d2080 [revision 2775]
1854Author: Henrik Gramner <henrik@gramner.com>
1855Date: Sun Jan 29 16:41:33 2017 +0100
1856
1857 osdep: Rework alignment macros
1858
1859 Drop ALIGNED_N and ALIGNED_ARRAY_N in favor of using explicit alignment.
1860
1861 This will allow us to increase the native alignment without unnecessarily
1862 increasing the alignment of everything that's currently 32-byte aligned.
1863
1864commit 5840e200a0f1869a0596c5ed75c76f4d3221dd68 [revision 2774]
1865Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1866Date: Mon Jan 30 22:14:57 2017 +0100
1867
1868 Move cabac_block_residual function declarations
1869
1870commit a2d2621cc5741414b1f1adfbc08f19f1cc763847 [revision 2773]
1871Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1872Date: Mon Jan 30 22:14:59 2017 +0100
1873
1874 Recursively delete conftest files
1875
1876 On OS X, one of the conftest files might be a directory named `conftest.dSYM`.
1877
1878commit 988ce459433fd3f978d632e8fc0ef9c19c94a6a1 [revision 2772]
1879Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1880Date: Mon Jan 30 22:14:56 2017 +0100
1881
1882 Drop unused function declarations
1883
1884commit fb3f97833cbe3305eb613633e604f424d6d2d096 [revision 2771]
1885Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1886Date: Fri Jan 27 18:06:39 2017 +0100
1887
1888 x86: Adjust cache64_ssse3 function suffixes
1889
1890 Makes those function names more consistent with other similar functions.
1891
1892commit a77f3917cc6ba5e1d3c20ca649d4114217976d53 [revision 2770]
1893Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1894Date: Fri Jan 27 16:21:16 2017 +0100
1895
1896 mc: Mark a function only used within the file as static
1897
1898commit 0ca36bfa3d2bf272da88b1df5abfc0406662989a [revision 2769]
1899Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1900Date: Fri Jan 27 16:21:15 2017 +0100
1901
1902 ppc: Drop two unused static functions
1903
1904commit d32d7bf1c6923a42cbd5ac2fd540ecbb009ba681 [revision 2768]
1905Author: Henrik Gramner <henrik@gramner.com>
1906Date: Fri May 19 16:08:34 2017 +0200
1907
1908 cli: Verify that yuv/y4m input has at least one frame of data
1909
1910 Prevents a SIGBUS crash caused by attempting to access a memory-mapped
1911 region beyond the end of the input file.
1912
1913commit 959e869c20ea151917695930d9ad0a7a9a2f90c5 [revision 2767]
1914Author: Kaustubh Raste <kaustubh.raste@imgtec.com>
1915Date: Fri Apr 14 15:29:31 2017 +0530
1916
1917 mips: Fix out-of-tree build
1918
1919 Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
1920
1921commit d6eb2c9630d40a2765d5092f87637f4e4d084ed1 [revision 2766]
1922Author: Henrik Gramner <henrik@gramner.com>
1923Date: Sat Mar 25 00:02:11 2017 +0100
1924
1925 checkasm: Fix load_deinterleave_chroma_fdec test
1926
1927 The function only writes to parts of the destination buffer but the test
1928 verifies the content of the entire buffer. The problem is that some earlier
1929 IDCT functions clobbers the same part of the buffer with garbage when
1930 benchmarked which would incorrectly cause test failures.
1931
1932 Fix this by explicitly zeroing the buffers beforehand.
1933
1934commit a472b60daae0cac17d91ddf62ad4f474ded63e5b [revision 2765]
1935Author: Henrik Gramner <henrik@gramner.com>
1936Date: Fri Mar 24 22:27:42 2017 +0100
1937
1938 checkasm: Fix compilation on hardened x86-64 ELF systems
1939
1940 Normal PC-relative relocations cannot be used for resolving the address of
1941 external symbols on systems where ASLR results in the offset being larger
1942 than 32 bits. We are required to to go through the PLT instead.
1943
1944commit 469ad705b1064207b6b1068d1e25a0a591021007 [revision 2764]
1945Author: Martin Storsjö <martin@martin.st>
1946Date: Thu Mar 23 15:05:38 2017 +0200
1947
1948 aarch64: Fix building checkasm for iOS
1949
1950 On iOS, symbols are prefixed - this prefix gets added by the X()
1951 macro.
1952
1953commit 93340ca300e7ce66f49e41b7c2ef4a0492a7e57c [revision 2763]
1954Author: Martin Storsjö <martin@martin.st>
1955Date: Thu Mar 23 15:05:37 2017 +0200
1956
1957 configure: Always enable PIC in aarch64 assembly for apple platforms
1958
1959 This is similar to what we do for 32-bit ARM assembly as well.
1960
1961 Fixes linker errors such as `ld: Absolute addressing not allowed in
1962 arm64 code but used in '_x264_cabac_encode_terminal_asm' referencing
1963 '_x264_cabac_range_lps' for architecture arm64`.
1964
1965commit 90a61ec76424778c050524f682a33f115024be96 [revision 2762]
1966Author: Alexandra Hájková <alexandra@khirnov.net>
1967Date: Mon Dec 5 10:28:53 2016 +0000
1968
1969 ppc: AltiVec plane_copy_deinterleave
1970
1971commit bd6b66dbf9fcf67b7ebb23e4e9249083191fb984 [revision 2761]
1972Author: Alexandra Hájková <alexandra@khirnov.net>
1973Date: Mon Jan 2 12:56:48 2017 +0000
1974
1975 ppc: AltiVec plane_copy_deinterleave_v210
1976
1977commit 00f1670087db1b025a8088289de8938bf88a0d8b [revision 2760]
1978Author: Alexandra Hájková <alexandra@khirnov.net>
1979Date: Wed Dec 7 19:48:02 2016 +0000
1980
1981 ppc: AltiVec plane_copy_deinterleave_rgb
1982
1983 Also add some missing vector types in ppccommon.h
1984
1985commit 5e1ed367d725f895eeadf358861ab52521a420d3 [revision 2759]
1986Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1987Date: Thu Jan 19 17:43:57 2017 +0100
1988
1989 ppc: Adjust AltiVec function suffix
1990
1991 Architecture should always be the last element.
1992
1993commit 28ebb95d92278069b80ee729eb1884fe0981c6ae [revision 2758]
1994Author: Vittorio Giovara <vittorio.giovara@gmail.com>
1995Date: Mon Jan 9 22:28:20 2017 +0100
1996
1997 Move the x264_mdate() declaration to the appropriate header
1998
1999commit 1d2420981aa004f051a0869c005776084f7d2a44 [revision 2757]
2000Author: Vittorio Giovara <vittorio.giovara@gmail.com>
2001Date: Tue Jan 17 17:04:19 2017 +0100
2002
2003 arm/aarch64: Correctly prefix integral function symbols
2004
2005commit 4c4c495d58dbdea46a23947e4f202fc3b82fb891 [revision 2756]
2006Author: Anton Mitrofanov <BugMaster@narod.ru>
2007Date: Fri Jan 13 14:57:51 2017 +0100
2008
2009 x86: Avoid using hardcoded function symbol prefixes
2010
2011commit 2524fc3164d9f00b393d4254d2c5ea8f3b9d43b0 [revision 2755]
2012Author: Henrik Gramner <henrik@gramner.com>
2013Date: Wed Jan 18 21:57:14 2017 +0100
2014
2015 x86: AVX2 high bit-depth load_deinterleave_chroma
2016
2017 load_deinterleave_chroma_fenc: 50% faster than AVX
2018 load_deinterleave_chroma_fdec: 25% faster than AVX
2019
2020commit cce50082129d3c92bd41bc0afc5a8c8d93084c9c [revision 2754]
2021Author: Henrik Gramner <henrik@gramner.com>
2022Date: Wed Jan 18 21:46:55 2017 +0100
2023
2024 x86: AVX2 load_deinterleave_chroma_fenc
2025
2026 20% faster than SSSE3.
2027
2028commit c22c10ddb21e9f5af1da83d37122e6f7388e1342 [revision 2753]
2029Author: Henrik Gramner <henrik@gramner.com>
2030Date: Tue Jan 17 21:59:47 2017 +0100
2031
2032 x86: AVX2 plane_copy_deinterleave
2033
2034 50% faster than SSSE3 in 8-bit.
2035 25% faster than AVX in high bit-depth.
2036
2037 Also drop the MMX versions of deinterleave functions in favor of SSE2.
2038
2039commit f4890275ca6523dfe5b4ae60279ae8597d9dbd4b [revision 2752]
2040Author: Henrik Gramner <henrik@gramner.com>
2041Date: Thu Jan 12 22:16:53 2017 +0100
2042
2043 x86: AVX2 plane_copy_deinterleave_rgb
2044
2045 Around 15% faster than SSSE3.
2046
2047commit da71b556730c8eb6c12a0d6950a221a4e4a99ca6 [revision 2751]
2048Author: Henrik Gramner <henrik@gramner.com>
2049Date: Thu Jan 12 21:36:28 2017 +0100
2050
2051 x86: Faster plane_copy_deinterleave_rgb_sse2
2052
2053 50% faster than the previous SSE2 function.
2054
2055commit 3c7bf52c5b0a849458a45b5628ed1cc4b898da5f [revision 2750]
2056Author: Henrik Gramner <henrik@gramner.com>
2057Date: Sun Jan 15 14:52:29 2017 +0100
2058
2059 x86util: Reduce code size of high bit-depth AVX LOAD_DIFF
2060
2061 AVX supports unaligned memory operands which makes the SATD code a bit denser.
2062
2063commit c7a2e327bebd2b863c2620b6962fa18ab681e5dd [revision 2749]
2064Author: Henrik Gramner <henrik@gramner.com>
2065Date: Sun Jan 1 19:10:10 2017 +0100
2066
2067 Bump dates to 2017
2068
2069commit 97eaef2ab82a46d13ea5e00270712d6475fbe42b [revision 2748]
2070Author: Alexandra Hájková <alexandra@khirnov.net>
2071Date: Sat Jan 21 12:34:49 2017 +0000
2072
2073 ppc: Fix the pre-VSX vec_vsx_st() fallback macro
2074
2075 It would previously only work correctly with 8-bit data types.
2076
2077 Fixes compilation with --disable-vsx.
2078
2079commit 2ebe09a4f583d108c6ec1caf70b2a7a289a8820d [revision 2747]
2080Author: Alexandra Hájková <alexandra@khirnov.net>
2081Date: Wed Jan 18 09:13:39 2017 +0000
2082
2083 Fix plane_copy_deinterleave_v210 on big-endian
2084
2085commit 79288d90471e246584d19054bdb5381982114126 [revision 2746]
2086Author: Alexandra Hájková <alexandra@khirnov.net>
2087Date: Wed Dec 21 13:13:43 2016 +0000
2088
2089 ppc: Avoid instantiating unused plane_copy functions
2090
2091 Those functions are currently only used in 8-bit mode and results in
2092 warnings in other bit depths.
2093
2094commit 2ebdb90bd32c3d1618b1c5b360bff750b82b1d0b [revision 2745]
2095Author: Martin Storsjö <martin@martin.st>
2096Date: Tue Dec 27 00:22:48 2016 +0200
2097
2098 arm: Load mb_y properly in mbtree_propagate_list_internal_neon
2099
2100 The previous version, attempting to load two stack parameters at once,
2101 only would have worked if they were interpreted and loaded as 32 bit
2102 elements, not when loading them as 16 bit elements.
2103
2104commit b97ae0644f16bad2e2c9c9181264a946769a0aa0 [revision 2744]
2105Author: Anton Mitrofanov <BugMaster@narod.ru>
2106Date: Mon Oct 31 14:39:52 2016 +0300
2107
2108 analyse: Fix lambda table values
2109
2110commit b2b39dae0bd891c8d150b4f4c3a2a24d8d6c1431 [revision 2743]
2111Author: Anton Mitrofanov <BugMaster@narod.ru>
2112Date: Sat Nov 26 15:30:58 2016 +0300
2113
2114 Cosmetics
2115
2116 Also make x264_weighted_reference_duplicate() static.
2117
2118commit 9c82d2b65534e477c972b811a4dd5004d0dd262e [revision 2742]
2119Author: Alexandra Hájková <alexandra@khirnov.net>
2120Date: Mon Nov 28 14:04:10 2016 +0000
2121
2122 ppc: AltiVec store_interleave_chroma
2123
2124commit ea1fee272b20e1bcff2a862ea9a29e151c9136a9 [revision 2741]
2125Author: Alexandra Hájková <alexandra@khirnov.net>
2126Date: Mon Nov 28 10:51:54 2016 +0000
2127
2128 ppc: AltiVec plane_copy_interleave
2129
2130commit 42348a8e664b091203a05d3e15555b5085afcac1 [revision 2740]
2131Author: Alexandra Hájková <alexandra@khirnov.net>
2132Date: Sat Nov 26 20:03:34 2016 +0000
2133
2134 ppc: AltiVec plane_copy_swap
2135
2136commit 2610019af8bfb8e71f813cd2188b9eccbc287c59 [revision 2739]
2137Author: Alexandra Hájková <alexandra@khirnov.net>
2138Date: Wed Nov 23 20:53:51 2016 +0100
2139
2140 ppc: AltiVec zigzag_interleave_8x8_cavlc
2141
2142commit 25e4e06fe8151f627a953fbd2bd39302436bf689 [revision 2738]
2143Author: Alexandra Hájková <alexandra@khirnov.net>
2144Date: Wed Nov 23 20:53:50 2016 +0100
2145
2146 ppc: AltiVec zigzag_scan_8x8_frame
2147
2148commit 99863c665a6d4ec58b7fcc4a8a791e9c8f35a86e [revision 2737]
2149Author: Alexandra Hájková <alexandra@khirnov.net>
2150Date: Mon Nov 14 15:06:06 2016 +0100
2151
2152 ppc: AltiVec sub8x8_dct_dc
2153
2154commit 42cb0a6813714b5380e23871a155e3820846d991 [revision 2736]
2155Author: Alexandra Hájková <alexandra@khirnov.net>
2156Date: Mon Nov 14 15:06:05 2016 +0100
2157
2158 ppc: AltiVec add8x8_idct_dc
2159
2160commit 983acc911543453449a65bd02bbdff4c8cfe8e6a [revision 2735]
2161Author: Martin Storsjö <martin@martin.st>
2162Date: Wed Nov 16 10:57:31 2016 +0200
2163
2164 checkasm: aarch64: Add filler args to make sure all parameters are passed on the stack
2165
2166 This, combined with clobbering the stack space prior to the call,
2167 increases the chances of finding cases where 32 bit parameters
2168 are erroneously treated as 64 bit.
2169
2170commit 8ada354c9b5d72356c34c9ae3f787a6df4d61506 [revision 2734]
2171Author: Martin Storsjö <martin@martin.st>
2172Date: Wed Nov 16 10:57:30 2016 +0200
2173
2174 checkasm: aarch64: Clobber the stack before calling functions
2175
2176commit 62d604ac6dddbf553c1ff2432d899b61cc50d95a [revision 2733]
2177Author: Alexandra Hájková <alexandra@khirnov.net>
2178Date: Tue Nov 1 23:16:17 2016 +0100
2179
2180 ppc: Use vec_vsx_ld instead of VEC_LOAD/STORE macros
2181
2182 Remove VEC_LOAD*, some of VEC_STORE* macros, some PREP* macros and
2183 VEC_DIFF_H_OFFSET macro.
2184
2185 Make sure the functions do not use deprected primitives.
2186
2187commit 16142d8ee2a974060ecbad0f495b5a5c6516a75e [revision 2732]
2188Author: Luca Barbato <lu_zero@gentoo.org>
2189Date: Tue Nov 1 23:16:16 2016 +0100
2190
2191 ppc: Provide fallbacks for older architectures
2192
2193commit 2b741f81e51f92d053d87a49f59ff1026553a0f6 [revision 2731]
2194Author: Luca Barbato <lu_zero@gentoo.org>
2195Date: Tue Nov 1 23:16:14 2016 +0100
2196
2197 ppc: Add VSX support to configure
2198
2199commit 1f7518182e3204cb14e87baffb0150a848167ddc [revision 2730]
2200Author: Luca Barbato <lu_zero@gentoo.org>
2201Date: Tue Nov 1 23:16:13 2016 +0100
2202
2203 ppc: Manually unroll the horizontal prediction loop
2204
2205 Doubles the speedup from the function (from being slower to be over
2206 twice as fast than C).
2207
2208commit 0706ddb1df88d716cf73decba4d82b953011760c [revision 2729]
2209Author: Henrik Gramner <henrik@gramner.com>
2210Date: Sat Oct 8 17:20:18 2016 +0200
2211
2212 x86inc: Avoid using eax/rax for storing the stack pointer
2213
2214 When allocating stack space with an alignment requirement that is larger
2215 than the current stack alignment we need to store a copy of the original
2216 stack pointer in order to be able to restore it later.
2217
2218 If we chose to use another register for this purpose we should not pick
2219 eax/rax since it can be overwritten as a return value.
2220
2221commit 4d5c8b01a48f72f9c40651e92c39294326a0863f [revision 2728]
2222Author: Henrik Gramner <henrik@gramner.com>
2223Date: Thu Dec 1 16:05:16 2016 +0100
2224
2225 Show the correct settings for --preset slow in --fullhelp
2226
2227 The slow preset was recently adjusted but we forgot to update the
2228 corresponding --fullhelp message to reflect the change.
2229
2230commit c996ed202e2d17d1d8ae42c42d0707e51c29bb93 [revision 2727]
2231Author: Martin Storsjö <martin@martin.st>
2232Date: Mon Nov 14 23:54:51 2016 +0200
2233
2234 checkasm: arm/aarch64: Fix the amount of space reserved for stack parameters
2235
2236 Even if MAX_ARGS - 2 (for arm) or MAX_ARGS - 6 (for aarch64) parameters
2237 are passed on the stack to checkasm_checked_call, we actually only
2238 need to store MAX_ARGS - 4 (for arm) or MAX_ARGS - 8 (for aarch64)
2239 parameters on the stack when calling the tested function.
2240
2241commit cd15b354a887943d525e6fd8096ad4b75692d2b2 [revision 2726]
2242Author: Janne Grunau <janne-x264@jannau.net>
2243Date: Mon Nov 14 23:54:50 2016 +0200
2244
2245 checkasm: arm: preserve the stack alignment in x264_checkasm_checked_call
2246
2247 The stack used by x264_checkasm_checked_call_neon was a multiple of 4
2248 when the checked function is called. AAPCS requires a double word (8 byte)
2249 aligned stack public interfaces. Since both calls are public interfaces
2250 the stack is misaligned when the checked is called.
2251
2252 This can cause issues if code called within this (which includes
2253 the C implementations) relies on the stack alignment.
2254
2255commit 834e1b11e174f2694a4c81b4922c0c5f8778796a [revision 2725]
2256Author: Martin Storsjö <martin@martin.st>
2257Date: Wed Nov 16 10:56:14 2016 +0200
2258
2259 arm: Don't use vcmp.f64 for testing for an all-zeros register
2260
2261 On iOS, vcmp.f64 can behave as if the register was zero, if the
2262 register (interpreted as a f64), was a denormal number.
2263
2264 The vcmp.f64 (and other VFP instructions) will trap to the kernel
2265 (which is supposed to implement the FP operation, which it apparently
2266 doesn't do properly on iOS) if the value is a denormal. If this happens,
2267 the whole comparison ends up way more costly.
2268
2269commit a91e95fca2222ac0731e987a07f4b11c670f4556 [revision 2724]
2270Author: Janne Grunau <janne-x264@jannau.net>
2271Date: Wed Nov 16 10:49:14 2016 +0200
2272
2273 aarch64: Clear the upper half of int parameters in x264_plane_copy_core_neon
2274
2275commit 1eab3b402e1d7729da295024fa7eec8b09e30c20 [revision 2723]
2276Author: Luca Barbato <lu_zero@gentoo.org>
2277Date: Tue Nov 1 23:16:18 2016 +0100
2278
2279 ppc: Fix hadamard for little-endian
2280
2281 Extending to 16-bit works with flipped bytes.
2282
2283commit 75918e1849e1286885bfcfb0c348de885a702fb3 [revision 2722]
2284Author: Anton Mitrofanov <BugMaster@narod.ru>
2285Date: Thu Sep 22 00:17:48 2016 +0300
2286
2287 Correctly signal max_dec_frame_buffering with --keyint 1
2288
2289 According to E.2.1 it is inferred to be equal to 0 only if profile_idc is equal
2290 to 44, 86, 100, 110, 122, or 244 and constraint_set3_flag is equal to 1.
2291
2292commit 72d53ab2ac7af24597a824e868f2ef363a22f5d4 [revision 2721]
2293Author: Henrik Gramner <henrik@gramner.com>
2294Date: Sat Sep 17 21:41:52 2016 +0200
2295
2296 x86: Faster pixel_ssim_4x4x2_core
2297
2298commit 8c07263ad9218bdc3e0f5b84d578968513885df7 [revision 2720]
2299Author: Henrik Gramner <henrik@gramner.com>
2300Date: Sat Sep 17 21:14:35 2016 +0200
2301
2302 x86: Deduplicate a constant in hpel_filter_c
2303
2304commit 9521b278adb92081f052c1b7bfc4b95651d88b07 [revision 2719]
2305Author: Henrik Gramner <henrik@gramner.com>
2306Date: Sat Sep 17 14:45:08 2016 +0200
2307
2308 x86: Faster pixel_ssd_nv12
2309
2310 Also drop the MMX2 version to simplify things.
2311
2312commit 75d0f9cc8770bc4f36785062116757d24eb44604 [revision 2718]
2313Author: Henrik Gramner <henrik@gramner.com>
2314Date: Sun Sep 11 15:32:54 2016 +0200
2315
2316 x86: SSE zigzag_scan_4x4_field
2317
2318 Replaces the MMX2 version, one cycle faster.
2319
2320 Also change the checkasm test to use the correct alignment macro.
2321
2322commit 0ce77f9eb71051c9a6121ec12c2abaac99ee628a [revision 2717]
2323Author: Henrik Gramner <henrik@gramner.com>
2324Date: Wed Sep 7 19:27:31 2016 +0200
2325
2326 x86: AVX2 mbtree_propagate_list
2327
2328 SIMD part is around 25% faster than AVX on Haswell, around 7%
2329 faster when including the runtime of the scalar C wrapper.
2330
2331commit 0c36239a4826f6e5a3cb873aca1814e389a46e29 [revision 2716]
2332Author: Henrik Gramner <henrik@gramner.com>
2333Date: Wed Sep 7 19:26:42 2016 +0200
2334
2335 x86: Move predict_16x16_dc_left calculations to asm
2336
2337 1-2 cycles faster and avoids some code duplication to decrease code size.
2338
2339 Also drop the MMX2 implementation in favor of SSE2 to simplify things.
2340
2341commit 0cc8afd31212de013b26b10f58c608c9adcff2fc [revision 2715]
2342Author: Anton Mitrofanov <BugMaster@narod.ru>
2343Date: Thu Aug 18 19:00:48 2016 +0300
2344
2345 avs: support for AviSynth+ high bit-depth pixel formats
2346
2347commit dc0fe73636d34baeb3a64918b52db64d2a9e83bb [revision 2714]
2348Author: Janne Grunau <janne-x264@jannau.net>
2349Date: Fri Aug 26 20:26:56 2016 +0300
2350
2351 aarch64: implement x264_plane_copy_swap_neon
2352
2353 plane_copy_swap_c: 27054
2354 plane_copy_swap_neon: 4152
2355
2356commit eaf2fc20c8579714a48523b7ab8c05373708a25f [revision 2713]
2357Author: Anton Mitrofanov <BugMaster@narod.ru>
2358Date: Thu Aug 18 22:14:22 2016 +0300
2359
2360 Various cosmetics of semicolon use
2361
2362commit aae177c55141460f442de0572c4a434bf2ae20bc [revision 2712]
2363Author: Henrik Gramner <henrik@gramner.com>
2364Date: Thu Jul 28 21:58:40 2016 +0200
2365
2366 cli: Prefetch yuv/y4m input frames on Windows 8 and newer
2367
2368 Use PrefetchVirtualMemory() (if available) on memory-mapped input frames.
2369
2370 Significantly improves performance when the source file is not already
2371 present in the OS page cache by asking the OS to bring in those pages from
2372 disk using large, concurrent I/O requests.
2373
2374 Most beneficial on fast encoding settings. Up to 40% faster overall with
2375 --preset ultrafast, and up to 20% faster overall with --preset veryfast.
2376
2377 This API was introduced in Windows 8, so call it conditionally. On older
2378 Windows systems the previous behavior remains unchanged.
2379
2380commit 4e5adb87070c82b937c03e0cc030eae3578c251d [revision 2711]
2381Author: Henrik Gramner <henrik@gramner.com>
2382Date: Thu Jul 28 19:34:04 2016 +0200
2383
2384 Adjust --preset slow
2385
2386 * Swap --me umh for --trellis 2. They have a similar effect on performance
2387 but the latter gives slightly better results in most cases.
2388 * Change --b-adapt from 2 to 1. Negligible difference in quality since the
2389 b-adapt 1 improvements, but it's significantly faster.
2390
2391 Also remove a redundant assignment from veryfast (--me hex is set by default).
2392
2393commit 1e4fb55a283ba90fef346033027af851f2a04468 [revision 2710]
2394Author: Henrik Gramner <henrik@gramner.com>
2395Date: Thu Jul 28 19:33:57 2016 +0200
2396
2397 ratecontrol_new: Simplify an expression in HRD timescale calculation
2398
2399 Also gets rid of a false positive static analyser integer division warning.
2400
2401commit 17378b2028146fa54a1b2b90da62554935d9dcc2 [revision 2709]
2402Author: Henrik Gramner <henrik@gramner.com>
2403Date: Thu Jul 28 19:33:44 2016 +0200
2404
2405 gcc: Enable __sync_fetch_and_add() on x86-64
2406
2407 It was previously only enabled on 32-bit x86 for no reason, so 64-bit
2408 systems had to use a mutex instead of a simple `lock xadd` instruction.
2409
2410 Note that this code is only used in some very specific configurations
2411 involving sliced threads.
2412
2413commit 86b71982e131eaa70125f8d0e725fcade9c4c677 [revision 2708]
2414Author: Anton Mitrofanov <BugMaster@narod.ru>
2415Date: Tue Sep 20 18:48:22 2016 +0300
2416
2417 mips: Fix high bit-depth compilation
2418
2419commit 1ea3c682ca12c7f13ea6f82b42bdc40afcfda87f [revision 2707]
2420Author: Henrik Gramner <henrik@gramner.com>
2421Date: Sat Sep 17 15:53:59 2016 +0200
2422
2423 checkasm: Fix compilation on Windows with --disable-thread
2424
2425commit 5caef139cf7d6b41a95ee9568625d36d1ae1c107 [revision 2706]
2426Author: Janne Grunau <janne-x264@jannau.net>
2427Date: Fri Aug 26 20:26:55 2016 +0300
2428
2429 arm/aarch64: use plane_copy wrapper macros
2430
2431 Move the macros to common/mc.h to share them across all architectures.
2432 Fixes possible buffer overreads if the width of the user supplied frames
2433 is not a multiple of 16.
2434
2435 Reported-by: Kirill Batuzov <batuzovk@ispras.ru>
2436
2437commit 3f5ed56d4105f68c01b86f94f41bb9bbefa3433b [revision 2705]
2438Author: Henrik Gramner <henrik@gramner.com>
2439Date: Sun Apr 3 17:28:33 2016 +0200
2440
2441 configure: Support specifying a custom pkg-config
2442
2443commit 7c9c687d8062f72b3ec300de8997bdae8277a741 [revision 2704]
2444Author: Anton Mitrofanov <BugMaster@narod.ru>
2445Date: Wed Jun 8 22:46:17 2016 +0300
2446
2447 Add support for new VUI parameters
2448
2449 Support the new color primaries, transfer characteristics, and matrix
2450 coefficients defined in the 2016-02 edition of the H.264 specification.
2451
2452commit 92515e8ff73491ef8a44c85e0bee265ba5791070 [revision 2703]
2453Author: Henrik Gramner <henrik@gramner.com>
2454Date: Sun Apr 24 14:10:22 2016 +0200
2455
2456 configure: Add link-time optimization support
2457
2458 Enabled by using the --enable-lto configuration option.
2459
2460 May give a slight performance improvement in some cases, but it can
2461 also reduce performance in other cases (largely compiler-dependant)
2462 so don't enable it by default. It also makes compilation (and linking
2463 in particular) a fair bit slower.
2464
2465 Note that some older versions of GNU binutils will incorrectly warn
2466 about "memset used with constant zero length parameter" when linking
2467 using LTO. This is due to a bug in binutils and can safely be ignored.
2468
2469commit b6267e0ff770545de88dfb5d3f176ea73f453730 [revision 2702]
2470Author: Henrik Gramner <henrik@gramner.com>
2471Date: Sun Apr 24 13:32:43 2016 +0200
2472
2473 configure: Fix clang detection with versioned binaries
2474
2475 Correctly detect clang binaries that has the version number appended
2476 as a suffix to the file name, e.g. `clang38`.
2477
2478commit 14a58532fea2c5f9e7b93c918476d842091c4268 [revision 2701]
2479Author: Janne Grunau <janne-x264@jannau.net>
2480Date: Sun Apr 24 14:38:56 2016 +0200
2481
2482 arm: Add asm for mbtree fixed point conversion
2483
2484 7-8 times faster on a cortex-a53 vs. gcc-5.3.
2485
2486 mbtree_fix8_pack_c: 44114
2487 mbtree_fix8_pack_neon: 5805
2488 mbtree_fix8_unpack_c: 38924
2489 mbtree_fix8_unpack_neon: 4870
2490
2491commit b6f189eb4c5646483f7901293944695167e71ed9 [revision 2700]
2492Author: Janne Grunau <janne-x264@jannau.net>
2493Date: Sun Apr 24 14:38:55 2016 +0200
2494
2495 aarch64: Add asm for mbtree fixed point conversion
2496
2497 pack is ~7 times faster and unpack is ~9 times faster on a cortex-a53
2498 compared to gcc-5.3.
2499
2500 mbtree_fix8_pack_c: 41534
2501 mbtree_fix8_pack_neon: 5766
2502 mbtree_fix8_unpack_c: 44102
2503 mbtree_fix8_unpack_neon: 4868
2504
2505commit a5e06b9a435852f0125de4ecb198ad47340483fa [revision 2699]
2506Author: Anton Mitrofanov <BugMaster@narod.ru>
2507Date: Sun May 22 22:33:58 2016 +0300
2508
2509 Fix p4x4 analyse for 4:4:4 encoding with chroma ME
2510
2511commit 07221290db0a94bda1f6ece3fdf3c02675c8adce [revision 2698]
2512Author: Anton Mitrofanov <BugMaster@narod.ru>
2513Date: Sun May 22 22:18:34 2016 +0300
2514
2515 Fix 4:4:4 encoding with CQM
2516
2517commit 23ebc1f763936b7fcfc81e21530e1b65dbc503b9 [revision 2697]
2518Author: Anton Mitrofanov <BugMaster@narod.ru>
2519Date: Sun May 22 19:36:05 2016 +0300
2520
2521 Fix p4x4 RDO with CAVLC
2522
2523commit 740a8c556bd9b68e899d6991f3f987a443aa14aa [revision 2696]
2524Author: Anton Mitrofanov <BugMaster@narod.ru>
2525Date: Sat Apr 23 23:10:03 2016 +0300
2526
2527 Apply zone options a little bit earlier
2528
2529 This way things like SAR changes will have full effect from the start frame.
2530
2531commit 928bd9d5def4f0ca5071ea176a11b816a01e6495 [revision 2695]
2532Author: Anton Mitrofanov <BugMaster@narod.ru>
2533Date: Sat Apr 23 22:45:44 2016 +0300
2534
2535 Fix corruption when using encoder_reconfig() with some parameters
2536
2537 Changing parameters that affects SPS, like --ref for example, wasn't
2538 behaving correctly previously.
2539
2540 Probably a regression in r2373.
2541
2542commit 3b70645597bea052d2398005bc723212aeea6875 [revision 2694]
2543Author: Anton Mitrofanov <BugMaster@narod.ru>
2544Date: Wed Apr 13 21:54:25 2016 +0300
2545
2546 Clean up header includes
2547
2548commit 2102de2584e03fce4abac49eb37d5d7a0803380f [revision 2693]
2549Author: Henrik Gramner <henrik@gramner.com>
2550Date: Wed Apr 13 17:53:49 2016 +0200
2551
2552 Eliminate some compiler warnings on BSD
2553
2554 Include <strings.h> in addition to <string.h>. According to the POSIX
2555 specification the prototypes for strcasecmp() and strncasecmp() are
2556 declared in <strings.h>. On some systems they are also declared in
2557 <string.h> for compatibility reasons but we shouldn't rely on that.
2558
2559 Define _POSIX_C_SOURCE only when it's required to do so. Some BSD
2560 variants doesn't declare certain function prototypes otherwise.
2561
2562commit 64f4e24909924fceeea6e154d71b7dfbf586c7ea [revision 2692]
2563Author: Henrik Gramner <henrik@gramner.com>
2564Date: Tue Apr 12 21:33:54 2016 +0200
2565
2566 osx: Add -D_DARWIN_C_SOURCE to CFLAGS
2567
2568 OSX doesn't like _POSIX_C_SOURCE being defined when _DARWIN_C_SOURCE isn't.
2569
2570commit 00597d74c6223f3694e2c6614ef0574d7fca6b22 [revision 2691]
2571Author: Anton Mitrofanov <BugMaster@narod.ru>
2572Date: Tue Apr 12 20:33:42 2016 +0300
2573
2574 Remove an unused parameter from x264_slicetype_frame_cost()
2575
2576 The b_intra_penalty parameter is no longer used anywhere after the
2577 improvements to the --b-adapt 1 algorithm.
2578
2579commit aa26e880bc2cd04cc81c776051d5e21d03fc975a [revision 2690]
2580Author: Anton Mitrofanov <BugMaster@narod.ru>
2581Date: Sun Apr 10 20:17:32 2016 +0300
2582
2583 Improve the --b-adapt 1 algorithm
2584
2585 Roughly the same speed as before but with significantly better results,
2586 comparable to --b-adapt 2.
2587
2588commit 24f25b6afd21488a93bd86098f98dfaf229fc149 [revision 2689]
2589Author: Henrik Gramner <henrik@gramner.com>
2590Date: Sun Apr 3 15:49:26 2016 +0200
2591
2592 analyse: i_sub_partition write combining
2593
2594commit 1507cfe80ecf5f8e240a35e9e9dc5a92bd25e792 [revision 2688]
2595Author: Henrik Gramner <henrik@gramner.com>
2596Date: Tue Mar 15 20:16:45 2016 +0100
2597
2598 x86: Use one less register in mbtree_propagate_cost_avx2
2599
2600 Avoids the need to save and restore xmm6 on 64-bit Windows.
2601
2602commit c82c7374938f4342971adf8b2495c3a1bbe621c4 [revision 2687]
2603Author: Henrik Gramner <henrik@gramner.com>
2604Date: Fri Mar 4 17:53:08 2016 +0100
2605
2606 x86: Add asm for mbtree fixed point conversion
2607
2608 The QP offsets of each macroblock are stored as floats internally and
2609 converted to big-endian Q8.8 fixed point numbers when written to the 2-pass
2610 stats file, and converted back to floats when read from the stats file.
2611
2612 Add SSSE3 and AVX2 implementations for conversions in both directions.
2613
2614 About 8x faster than C on Haswell.
2615
2616commit be677efc6313ade5eddf722fdf097cce56df1344 [revision 2686]
2617Author: Anton Mitrofanov <BugMaster@narod.ru>
2618Date: Thu Apr 7 13:09:03 2016 +0300
2619
2620 x86inc: Enable AVX emulation in additional cases
2621
2622 Allows emulation to work when dst is equal to src2 as long as the
2623 instruction is commutative, e.g. `addps m0, m1, m0`.
2624
2625commit b5661d322866df647e6084061a471eceac214c28 [revision 2685]
2626Author: Anton Mitrofanov <BugMaster@narod.ru>
2627Date: Thu Apr 7 12:48:29 2016 +0300
2628
2629 x86inc: Improve handling of %ifid with multi-token parameters
2630
2631 The yasm/nasm preprocessor only checks the first token, which means that
2632 parameters such as `dword [rax]` are treated as identifiers, which is
2633 generally not what we want.
2634
2635commit 283663d4c13088f4811c78b75318bda59d696b2d [revision 2684]
2636Author: Anton Mitrofanov <BugMaster@narod.ru>
2637Date: Mon Mar 28 18:35:38 2016 +0300
2638
2639 x86inc: Fix AVX emulation of some instructions
2640
2641commit 54fd697668d0a04246ad0b0e9955a6583b2bb8b6 [revision 2683]
2642Author: Henrik Gramner <henrik@gramner.com>
2643Date: Fri Mar 4 17:51:41 2016 +0100
2644
2645 x86inc: Fix AVX emulation of scalar float instructions
2646
2647 Those instructions are not commutative since they only change the first
2648 element in the vector and leave the rest unmodified.
2649
2650commit eeb9b66ddb0f27d8baaa8efa9597613e61140836 [revision 2682]
2651Author: Henrik Gramner <henrik@gramner.com>
2652Date: Sat Feb 27 20:34:39 2016 +0100
2653
2654 x86: dct2x4dc asm
2655
2656 Only used in 4:2:2. MMX2 version implemented for 8-bit, SSE2 and AVX
2657 versions implemented for high bit-depth.
2658
2659 2.5x faster on 32-bit and 1.6x faster on 64-bit compared to C on Ivy Bridge.
2660
2661commit 23d1d8e89be2d99f5c6924a6055fc80d69429503 [revision 2681]
2662Author: Henrik Gramner <henrik@gramner.com>
2663Date: Sat Feb 20 20:31:22 2016 +0100
2664
2665 x86: SSE2/AVX idct_dequant_2x4_(dc|dconly)
2666
2667 Only used in 4:2:2. Both 8-bit and high bit-depth implemented.
2668
2669 Approximate performance improvement compared to C on Ivy Bridge:
2670
2671 x86-32 x86-64
2672 idct_dequant_2x4_dc 2.1x 1.7x
2673 idct_dequant_2x4_dconly 2.7x 2.0x
2674
2675 Helps more on 32-bit due to the C versions being register starved.
2676
2677commit dbbf1dd2836a21b65178442c1fb7a00ea089d7ec [revision 2680]
2678Author: Henrik Gramner <henrik@gramner.com>
2679Date: Sat Feb 20 16:53:35 2016 +0100
2680
2681 checkasm: Fix idct_dequant_2x4_(dc|dconly) tests
2682
2683 They used the wrong qp values and the dconly test had the wrong name. This
2684 was undetected before because there wasn't any assembly implementations.
2685
2686commit 0db0ac3a05b80eee7994fab08cbce2d07e8b1586 [revision 2679]
2687Author: Henrik Gramner <henrik@gramner.com>
2688Date: Sun Feb 7 14:55:26 2016 +0100
2689
2690 checkasm: Disable Windows Error Reporting
2691
2692 When developing new assembly code it's expected that checkasm may crash,
2693 and the error reporting dialog popup can be somewhat annoying.
2694
2695commit deae1b1001d134f5babc4fad3208bd951a454951 [revision 2678]
2696Author: Henrik Gramner <henrik@gramner.com>
2697Date: Sat Feb 6 18:49:46 2016 +0100
2698
2699 windows: Flag debug builds in the resource file
2700
2701commit 0082b717199bafb4abbb6638e7c30d50deaf2c1b [revision 2677]
2702Author: Henrik Gramner <henrik@gramner.com>
2703Date: Thu Feb 4 20:06:57 2016 +0100
2704
2705 cli: Refactor filter option parsing
2706
2707 The old code contained a whole bunch of memory leaks, unchecked mallocs,
2708 sections of dead code, etc. and was generally overly complex.
2709
2710 Also consolidate some memory allocations into a single one.
2711
2712commit dfe394cadc8a39752de5b3f4a0be222c1b9290f2 [revision 2676]
2713Author: Henrik Gramner <henrik@gramner.com>
2714Date: Sun Jan 31 21:50:52 2016 +0100
2715
2716 ffms: Various improvements
2717
2718 * Drop the MinGW Unicode workarounds. Those were required at the time
2719 Windows Unicode support was added to x264 but the underlying problem
2720 has since been fixed in FFMS.
2721
2722 * Use FFMS_IndexBelongsToFile() as an additional sanity check when reading
2723 an index file to ensure that it belongs to the current source video.
2724
2725 * Upgrade to the new API to prevent deprecation warnings when compiling.
2726
2727 * Fix a resource leak that would occur if FFMS_GetFirstTrackOfType() or
2728 FFMS_CreateVideoSource() failed.
2729
2730 * Minor string handling adjustments related to progress reporting.
2731
2732 This increases the FFMS version requirement from 2.16.2 to 2.21.0.
2733
2734commit 215afdbd8ecc924f2028f79851458076683e97ad [revision 2675]
2735Author: Henrik Gramner <henrik@gramner.com>
2736Date: Mon Apr 11 16:59:46 2016 +0200
2737
2738 msvc: Add snprintf/vsnprintf replacements
2739
2740 MSVC pre-VS2015 has broken snprintf/vsnprintf implementations which are
2741 incompatible with C99 and may lead to buffer overflows.
2742
2743commit 5be32efc244d96aa56be462664b5c56d7318e86d [revision 2674]
2744Author: Henrik Gramner <henrik@gramner.com>
2745Date: Sun Jan 31 20:21:01 2016 +0100
2746
2747 configure: Define feature test macros for --std=gnu99
2748
2749 Makes the printf() family functions on MinGW use the correct C99 POSIX
2750 versions instead of the broken pre-VS2015 Microsoft ones.
2751
2752 Also allows us to get rid of some _GNU_SOURCE and _ISOC99_SOURCE defines.
2753
2754commit c01bf42117b811a0469f9f6c374f4a0daa98716d [revision 2673]
2755Author: Henrik Gramner <henrik@gramner.com>
2756Date: Thu Jan 28 18:37:37 2016 +0100
2757
2758 mingw: Enable high-entropy ASLR on 64-bit Windows
2759
2760 To fully utilize HEASLR the image base address must also be set above
2761 4 GiB. For consistency use the same address as MSVC uses by default.
2762
2763 This requires binutils 2.25 which isn't available on all common
2764 distributions, so only enable it after checking that it's supported.
2765
2766commit dd6b7b974e0057da726f71e10c24d057a339605b [revision 2672]
2767Author: Henrik Gramner <henrik@gramner.com>
2768Date: Sun Jan 24 01:48:18 2016 +0100
2769
2770 msvs: WinRT support
2771
2772 To compile x264 for WinRT the following additional steps has to be performed.
2773
2774 * Ensure that the necessary SDK is installed.
2775
2776 * Set the correct environment variables in the VS command prompt as shown at
2777 https://trac.ffmpeg.org/wiki/CompilationGuide/WinRT
2778
2779 * Add one of the following to --extra-cflags depending on the target OS:
2780 "-DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP -D_WIN32_WINNT=0x0A00" (Windows 10)
2781 "-DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP -D_WIN32_WINNT=0x0603" (Windows 8.1)
2782
2783commit 7650a1367003e24f4f1b831682c012b5ba3e6c69 [revision 2671]
2784Author: Henrik Gramner <henrik@gramner.com>
2785Date: Sun Jan 24 23:58:40 2016 +0100
2786
2787 configure: Disable CLI libraries when CLI is disabled
2788
2789commit 1ce062abb47ac59621b402cb26a1f14c91bb52bc [revision 2670]
2790Author: Henrik Gramner <henrik@gramner.com>
2791Date: Fri Feb 5 18:46:13 2016 +0100
2792
2793 matroska: mk_close: Check fseek() return value
2794
2795commit de7af9185e172122cd9b800845e1988a52ad7cc3 [revision 2669]
2796Author: Henrik Gramner <henrik@gramner.com>
2797Date: Fri Feb 5 18:46:02 2016 +0100
2798
2799 parse_qpfile: Check ftell() and fseek() return values
2800
2801commit fd2c324731c2199e502ded9eff723d29c6eafe0b [revision 2668]
2802Author: Anton Mitrofanov <BugMaster@narod.ru>
2803Date: Sun Apr 10 20:13:59 2016 +0300
2804
2805 Use the correct default B-ref placement with B-pyramid
2806
2807 Cost analyse functions expects the placement of the B-ref in a sequence of
2808 an even number of B-frames to be located towards the beginning while the
2809 actual placement was towards the end.
2810
2811 Change the placement to be consistent with the analyse expectations, e.g.
2812 PbbBbP -> PbBbbP.
2813
2814commit e6a3f2989dd9eba3434c21fa94a6d9a5d1c7a9fe [revision 2667]
2815Author: Henrik Gramner <henrik@gramner.com>
2816Date: Fri Feb 5 18:45:47 2016 +0100
2817
2818 parse_zones: Fix memory leak
2819
2820commit f86756985d42ac4a14866534c588061ede860b7b [revision 2666]
2821Author: Alexey Samsonov <vonosmas@gmail.com>
2822Date: Mon Jan 25 16:05:25 2016 -0800
2823
2824 Fix float-cast-overflow in x264_ratecontrol_end function
2825
2826 According to the C standard, it is undefined behavior to cast a negative
2827 floating point number to an unsigned integer. Float-cast-overflow in
2828 general is known to produce different results on different architectures.
2829
2830 Building x264 code with Clang and -fsanitize=float-cast-overflow
2831 (http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#availablle-checks)
2832 and running it on some real-life examples occasionally produces errors
2833 of the form:
2834
2835 encoder/ratecontrol.c:1892: runtime error: value -5011.14 is outside the
2836 range of representable values of type 'unsigned short'
2837
2838 Fix these errors by explicitly coding the de-facto x86 behavior: casting
2839 float to uint16_t through int16_t.
2840
2841commit a01e33913655f983df7a4d64b0a4178abb1eb618 [revision 2665]
2842Author: Sebastian Dröge <sebastian@centricular.com>
2843Date: Sun Dec 20 23:49:35 2015 +0300
2844
2845 Fix AVC-Intra padding for non-Annex B encoding
2846
2847commit 1e4a24f305c006a95fec00131703d0e0ecae3a38 [revision 2664]
2848Author: Anton Mitrofanov <BugMaster@narod.ru>
2849Date: Mon Jan 11 21:39:22 2016 +0300
2850
2851 ppc: Only perform AltiVec detection if compiled with AltiVec enabled
2852
2853commit b5953629117adc2b8d0d0eed6eb323c00587b428 [revision 2663]
2854Author: Anton Mitrofanov <BugMaster@narod.ru>
2855Date: Tue Oct 13 15:30:16 2015 +0300
2856
2857 2-pass: Take into account possible frame reordering
2858
2859commit 20821a26ec510979e49fcfd6becc6ad7e2d8b388 [revision 2662]
2860Author: Anton Mitrofanov <BugMaster@narod.ru>
2861Date: Tue Oct 13 12:54:05 2015 +0300
2862
2863 Revise the 2-pass algorithm
2864
2865commit 065321c48d0d371c1735b3cc9d368b43e1b64aaa [revision 2661]
2866Author: Anton Mitrofanov <BugMaster@narod.ru>
2867Date: Tue Jan 5 02:41:43 2016 +0300
2868
2869 Revise the row VBV algorithm (part 2)
2870
2871 Should fix rare cases of VBV emergency mode activation caused by too much trust
2872 to the row predictors.
2873
2874commit d23d18655249944c1ca894b451e2c82c7a584c62 [revision 2660]
2875Author: Henrik Gramner <henrik@gramner.com>
2876Date: Fri Jan 1 12:44:31 2016 +0100
2877
2878 Bump dates to 2016
2879
2880commit 3d972062c8a37d1a19586e2351e889b0a70beb40 [revision 2659]
2881Author: Henrik Gramner <henrik@gramner.com>
2882Date: Mon Oct 26 19:54:20 2015 +0100
2883
2884 cli: Use memory-mapped input frames for yuv and y4m
2885
2886 Improves performance by avoiding extraneous memory copying.
2887 Most beneficial on fast settings.
2888
2889 On average around 5-10% faster overall on ultrafast but the
2890 performance improvement can be even larger in some cases.
2891
2892commit 38a5268dbec56adea750e05c4981f3bbb176e735 [revision 2658]
2893Author: Henrik Gramner <henrik@gramner.com>
2894Date: Thu Jan 7 01:59:24 2016 +0100
2895
2896 y4m: Support extended frame headers when seeking
2897
2898 Use the actual length of the frame header of the first frame instead of
2899 assuming a header without extensions when calculating the frame size.
2900
2901 Also makes the frame counter more accurate with extended frame headers.
2902
2903commit cc652c158c1fa65bfeafb6446b5be855850065d0 [revision 2657]
2904Author: Henrik Gramner <henrik@gramner.com>
2905Date: Tue Nov 3 17:55:08 2015 +0100
2906
2907 configure: Simplify cygwin/mingw/msys code
2908
2909 Avoids some code duplication.
2910
2911 Also drop the -mno-cygwin check since that option was removed back in 2008.
2912
2913commit 8b2d2a6d51abf51ad38dd8705d280448fbe63aaf [revision 2656]
2914Author: Henrik Gramner <henrik@gramner.com>
2915Date: Mon Oct 26 18:52:46 2015 +0100
2916
2917 y4m: Avoid some redundant strlen() calls
2918
2919commit 24f7705f15cf6d59028a76a894d866b9fad85f39 [revision 2655]
2920Author: Henrik Gramner <henrik@gramner.com>
2921Date: Sun Oct 25 17:15:10 2015 +0100
2922
2923 Simplify threadpool_wait
2924
2925commit 30ba5dc22fd0ae359e144847f2636574f659627d [revision 2654]
2926Author: Henrik Gramner <henrik@gramner.com>
2927Date: Fri Oct 16 19:05:34 2015 +0200
2928
2929 windows: Use native threads by default
2930
2931 --disable-win32thread can be passed as an argument to configure to compile
2932 with pthreads, which was the old default behavior.
2933
2934commit 1637239a64f3ec9a491b91202bd37097f15a253d [revision 2653]
2935Author: Henrik Gramner <henrik@gramner.com>
2936Date: Sun Oct 11 22:32:11 2015 +0200
2937
2938 x86: Avoid some bypass delays and false dependencies
2939
2940 A bypass delay of 1-3 clock cycles may occur on some CPUs when transitioning
2941 between int and float domains, so try to avoid that if possible.
2942
2943commit 7688814a7ec994f8e5984d199b465ccc068b98af [revision 2652]
2944Author: Henrik Gramner <henrik@gramner.com>
2945Date: Sun Oct 11 22:32:03 2015 +0200
2946
2947 x86: Enable high bit-depth x264_coeff_last64_avx2_lzcnt
2948
2949 The function existed but was never enabled.
2950
2951commit 366fa85885053c7b836a4272a4fbec1852103979 [revision 2651]
2952Author: Geza Lore <gezalore@gmail.com>
2953Date: Mon Oct 12 13:13:42 2015 +0100
2954
2955 x86inc: Add debug symbols indicating sizes of compiled functions
2956
2957 Some debuggers/profilers use this metadata to determine which function a
2958 given instruction is in; without it they get can confused by local labels
2959 (if you haven't stripped those). On the other hand, some tools are still
2960 confused even with this metadata. e.g. this fixes `gdb`, but not `perf`.
2961
2962 Currently only implemented for ELF.
2963
2964commit 70c3ba42e610b4182edda4fdeb10b37a2a70eb8f [revision 2650]
2965Author: Henrik Gramner <henrik@gramner.com>
2966Date: Fri Oct 16 21:28:49 2015 +0200
2967
2968 x86inc: Avoid creating unnecessary local labels
2969
2970 The REP_RET workaround is only needed on old AMD cpus, and the labels clutter
2971 up the symbol table and confuse debugging/profiling tools, so use EQU to
2972 create SHN_ABS symbols instead of creating local labels. Furthermore, skip
2973 the workaround completely in functions that definitely won't run on such cpus.
2974
2975 This patch doesn't modify any emitted instructions, and doesn't actually affect
2976 x264 at all. It's only for other projects that use x86inc.asm without an
2977 appropriate `strip` command in their buildsystem.
2978
2979 Note that EQU is just creating a local label when using nasm instead of yasm.
2980 This is probably a bug, but at least it doesn't break anything.
2981
2982commit 5c3d473a966e4b013759097fb98cd4a9cb5a34f5 [revision 2649]
2983Author: Henrik Gramner <henrik@gramner.com>
2984Date: Thu Oct 15 17:42:49 2015 +0200
2985
2986 x86inc: Simplify AUTO_REP_RET
2987
2988 cpuflags is never undefined any more, it's set to 0 instead.
2989
2990 Also fix an incorrect comment.
2991
2992commit 28d68f090c0103704f5f6a86fcf362251774cd78 [revision 2648]
2993Author: Henrik Gramner <henrik@gramner.com>
2994Date: Mon Oct 12 21:55:11 2015 +0200
2995
2996 x86inc: Use more consistent indentation
2997
2998commit 963b99efaaf1f0628b155e52b8a7c102cd1d37ff [revision 2647]
2999Author: Henrik Gramner <henrik@gramner.com>
3000Date: Mon Oct 12 20:15:18 2015 +0200
3001
3002 x86inc: Preserve arguments when allocating stack space
3003
3004 When allocating stack space with a larger alignment than the known stack
3005 alignment a temporary register is used for storing the stack pointer.
3006 Ensure that this isn't one of the registers used for passing arguments.
3007
3008commit 6e5033417a53fa66d002665618a1350d7417725e [revision 2646]
3009Author: Henrik Gramner <henrik@gramner.com>
3010Date: Sun Jan 17 00:25:47 2016 +0100
3011
3012 x86inc: Improve FMA instruction handling
3013
3014 * Correctly handle FMA instructions with memory operands.
3015 * Print a warning if FMA instructions are used without the correct cpuflag.
3016 * Simplify the instantiation code.
3017 * Clarify documentation.
3018
3019 Only the last operand in FMA3 instructions can be a memory operand. When
3020 converting FMA4 instructions to FMA3 instructions we can utilize the fact
3021 that multiply is a commutative operation and reorder operands if necessary
3022 to ensure that a memory operand is used only as the last operand.
3023
3024commit 93cba743c78959ad97812dbaf894903c608912d0 [revision 2645]
3025Author: Henrik Gramner <henrik@gramner.com>
3026Date: Sun Oct 11 22:31:53 2015 +0200
3027
3028 x86inc: Be more verbose in assertion failures
3029
3030commit 8017b33454397d59b3285ec6d2ad35b6d0deb58a [revision 2644]
3031Author: Henrik Gramner <henrik@gramner.com>
3032Date: Wed Sep 30 23:17:00 2015 +0200
3033
3034 x86inc: Make cpuflag() and notcpuflag() return 0 or 1
3035
3036 Makes it possible to use them in arithmetic expressions.
3037
3038commit 5c6570495f8f1c716b294aee1430d8766a4beb9c [revision 2643]
3039Author: Henrik Gramner <henrik@gramner.com>
3040Date: Fri Oct 30 16:55:49 2015 +0100
3041
3042 encoder_open: Fix memory leak
3043
3044 Furthermore, the x264_analyse_prepare_costs() and x264_analyse_init_costs()
3045 functions were only used in x264_encoder_open(), so move that entire section
3046 of code to analyse.c as well to simplify things.
3047
3048commit 424534537a249dcf913e02560303f6afca423489 [revision 2642]
3049Author: Janne Grunau <janne-x264@jannau.net>
3050Date: Wed Nov 18 11:08:22 2015 +0100
3051
3052 arm: do not fill mc_weight*_neon tabs for HIGH_BIT_DEPTH
3053
3054 The asm is only for 8-bit and function prototypes reflect that. Avoids
3055 numerous warnings with --bit-depth=9/10.
3056
3057commit df51d8efa8ce9afcedda64acc69c1dba2648716d [revision 2641]
3058Author: Janne Grunau <janne-x264@jannau.net>
3059Date: Tue Oct 13 23:50:11 2015 +0200
3060
3061 arm: Eliminate text relocations in asm
3062
3063 Android 6 does not link shared libraries with text relocations.
3064
3065 Make the movrel macro position independent and add movrelx for indirect
3066 loads of external symbols.
3067
3068 Move the function pointer table for the aligned memcpy variants to the
3069 data.rel.ro section on Linux/Android.
3070
3071commit a2fe237af1b68f2bd53d64ed3faed62429d3ee5a [revision 2640]
3072Author: Martin Storsjö <martin@martin.st>
3073Date: Thu Oct 15 11:50:33 2015 +0300
3074
3075 arm: Don't assume alignment in mbtree_propagate_list_internal where it isn't provided
3076
3077commit 9f422c0cd9c0abcd6a7abb10b51f8be883c39b2b [revision 2639]
3078Author: Janne Grunau <janne-x264@jannau.net>
3079Date: Tue Oct 13 23:50:12 2015 +0200
3080
3081 arm: Fix checkasm register clobber check on iOS
3082
3083 r9 is a volatile register in the iOS ABI and will therefore not be
3084 preserved by compiled functions like the luma motion compensation.
3085
3086 Add the symbol prefix to the puts() call and use blx since a switch
3087 between arm and thumb mode might be required.
3088
3089commit 75992107adcc8317ba2888e3957a7d56f16b5cd4 [revision 2638]
3090Author: Anton Mitrofanov <BugMaster@narod.ru>
3091Date: Thu Oct 1 01:02:16 2015 +0300
3092
3093 ppc: Add detection of AltiVec support for FreeBSD
3094
3095 Patch from FreeBSD ports.
3096
3097commit 479d0c1fe73833ba65e0a10f6f5cf18df6def719 [revision 2637]
3098Author: Anton Mitrofanov <BugMaster@narod.ru>
3099Date: Mon Sep 28 21:07:55 2015 +0300
3100
3101 Don't assume 16-byte stack alignment by default on x86-32
3102
3103 Some compilers depending on target OS uses 4-byte stack alignment by default.
3104 Explicitly check known good compilers and specific options for stack alignment.
3105
3106commit fad44d59b3adeb29b9c92fde0b80116cde79020e [revision 2636]
3107Author: Anton Mitrofanov <BugMaster@narod.ru>
3108Date: Tue Sep 22 21:33:07 2015 +0300
3109
3110 Fix a few static analyzer performance hints
3111
3112commit de24c8c189364013e62d58d1e8f2fef878eb62bf [revision 2635]
3113Author: Anton Mitrofanov <BugMaster@narod.ru>
3114Date: Tue Sep 22 20:19:23 2015 +0300
3115
3116 Revise the row VBV algorithm
3117
3118commit 001d30598c75d9bbc3aa80f67f9bdac17692437d [revision 2634]
3119Author: Anton Mitrofanov <BugMaster@narod.ru>
3120Date: Tue Sep 22 19:26:25 2015 +0300
3121
3122 Fix high bit depth lookahead cost compensation algorithm
3123
3124 Now high bit depth VBV should act more like 8-bit depth one.
3125
3126commit 91368390db9179226b5b4ed718a5788b754f9302 [revision 2633]
3127Author: Anton Mitrofanov <BugMaster@narod.ru>
3128Date: Tue Sep 22 19:05:52 2015 +0300
3129
3130 Correctly update the intra row predictor in B-frames
3131
3132 It was previously used but never updated from it's initialization value.
3133
3134commit e0d722f85f8599e324be2bebef9430155b25c329 [revision 2632]
3135Author: Anton Mitrofanov <BugMaster@narod.ru>
3136Date: Tue Sep 22 18:58:24 2015 +0300
3137
3138 Change the predictors update algorithm
3139
3140 Keep predictor offsets more stable. This should fix VBV misprediction in frames
3141 with a large difference in complexity between the top and bottom parts.
3142
3143commit 6f04b146875c45e6f7845a7bb5fb7fdf8e7534f1 [revision 2631]
3144Author: Martin Storsjö <martin@martin.st>
3145Date: Thu Sep 3 09:30:44 2015 +0300
3146
3147 arm: Implement x264_mbtree_propagate_{cost, list}_neon
3148
3149 The cost function could be simplified to avoid having to clobber
3150 q4/q5, but this requires reordering instructions which increase
3151 the total runtime.
3152
3153 checkasm timing Cortex-A7 A8 A9
3154 mbtree_propagate_cost_c 63702 155835 62829
3155 mbtree_propagate_cost_neon 17199 10454 11106
3156
3157 mbtree_propagate_list_c 104203 108949 84532
3158 mbtree_propagate_list_neon 82035 78348 60410
3159
3160commit 3e25eab0b7172e3c0b067b8b6d641ce148d03db9 [revision 2630]
3161Author: Martin Storsjö <martin@martin.st>
3162Date: Thu Sep 3 09:30:43 2015 +0300
3163
3164 x86: Share the mbtree_propagate_list macro with aarch64
3165
3166 This avoids having to duplicate the same code for all architectures
3167 that implement only the internal part of this function in assembler.
3168
3169commit 654901dfca73a21e2bb2366dda79eb413e9bfb66 [revision 2629]
3170Author: Martin Storsjö <martin@martin.st>
3171Date: Wed Sep 2 22:39:51 2015 +0300
3172
3173 arm: Implement luma intra deblocking
3174
3175 checkasm timing Cortex-A7 A8 A9
3176 deblock_luma_intra[0]_c 5988 4653 4316
3177 deblock_luma_intra[0]_neon 3103 2170 2128
3178 deblock_luma_intra[1]_c 7119 5905 5347
3179 deblock_luma_intra[1]_neon 2068 1381 1412
3180
3181 This includes extra optimizations by Janne Grunau.
3182
3183 Timings from a separate build, on Exynos 5422:
3184
3185 Cortex-A7 A15
3186 deblock_luma_intra[0]_c 6627 3300
3187 deblock_luma_intra[0]_neon 3059 1128
3188 deblock_luma_intra[1]_c 7314 4128
3189 deblock_luma_intra[1]_neon 2038 720
3190
3191commit e2696a60a3e58d92e88e149b63c0b06a066eea9e [revision 2628]
3192Author: Martin Storsjö <martin@martin.st>
3193Date: Mon Aug 31 22:40:31 2015 +0300
3194
3195 arm: Implement some neon 8x16c intra predict functions
3196
3197 checkasm timing Cortex-A7 A8 A9
3198 intra_predict_8x16c_dct_c 862 540 590
3199 intra_predict_8x16c_dct_neon 608 511 657
3200 intra_predict_8x16c_h_c 972 707 719
3201 intra_predict_8x16c_h_neon 722 656 672
3202 intra_predict_8x16c_p_c 10183 9819 8655
3203 intra_predict_8x16c_p_neon 2622 1972 1983
3204
3205commit 5db8b6b93aa91079ab785b9b49413625430536fd [revision 2627]
3206Author: Martin Storsjö <martin@martin.st>
3207Date: Fri Aug 28 00:15:01 2015 +0300
3208
3209 arm: Implement x264_plane_copy_neon
3210
3211 checkasm timing Cortex-A7 A8 A9
3212 plane_copy_c 13124 10925 9106
3213 plane_copy_neon 7349 5103 8945
3214
3215commit 35d32d09e163bb0f2ce60a8e13f9f22125445346 [revision 2626]
3216Author: Martin Storsjö <martin@martin.st>
3217Date: Fri Aug 28 09:40:24 2015 +0300
3218
3219 checkasm: arm: Check register clobbering
3220
3221 Cast the function pointer to a different type signature, to
3222 be able to use uint64_t as return type (instead of intptr_t) for
3223 those calls that require it.
3224
3225 Use two separate functions, depending on whether neon is available.
3226
3227commit 9cbdb635a4bd78e6767e735a062c0d9a5766b849 [revision 2625]
3228Author: Martin Storsjö <martin@martin.st>
3229Date: Fri Aug 14 00:00:57 2015 +0300
3230
3231 checkasm: Try different widths for ssd_nv12
3232
3233 To test all codepaths in the aarch64 neon implementation, one at
3234 the very least needs to test with width 8, 16, 24 and 32.
3235
3236commit 39af8c72e618a544baa06ae427fb2b440861abcd [revision 2624]
3237Author: Jerome Duval <jerome.duval@gmail.com>
3238Date: Fri Jun 13 19:56:27 2014 +0000
3239
3240 Haiku support
3241
3242 Add Haiku as supported platform in configure.
3243 Haiku has no nice() function, use the platform specific substitute instead.
3244
3245commit 59683a97b50b34c6282457a959bb6b3e9e7f8c0d [revision 2623]
3246Author: Martin Storsjö <martin@martin.st>
3247Date: Tue Aug 25 14:38:20 2015 +0300
3248
3249 checkasm: aarch64: Check register clobbering
3250
3251 Disable this on iOS, since it has got a slightly different ABI
3252 for vararg parameters.
3253
3254commit 5c13589be828b524100c787057d6bef77898c657 [revision 2622]
3255Author: Martin Storsjö <martin@martin.st>
3256Date: Tue Aug 25 23:36:45 2015 +0300
3257
3258 arm: Implement x284_decimate_score15/16/64_neon
3259
3260 checkasm timing Cortex-A7 A8 A9
3261 decimate_score15_c 764 736 535
3262 decimate_score15_neon 487 494 453
3263 decimate_score16_c 782 727 553
3264 decimate_score16_neon 487 494 521
3265 decimate_score64_c 2361 2597 2011
3266 decimate_score64_neon 1017 802 785
3267
3268commit 3902ae02a0edede5d6c44cb3ee9e24e618c66e6a [revision 2621]
3269Author: Martin Storsjö <martin@martin.st>
3270Date: Tue Aug 25 23:36:44 2015 +0300
3271
3272 arm: Implement chroma intra deblock
3273
3274 checkasm timing Cortex-A7 A8 A9
3275 deblock_chroma_420_intra_mbaff_c 1469 1276 1181
3276 deblock_chroma_420_intra_mbaff_neon 981 717 644
3277 deblock_chroma_intra[1]_c 2954 2402 2321
3278 deblock_chroma_intra[1]_neon 947 581 575
3279 deblock_h_chroma_420_intra_c 2859 2509 2264
3280 deblock_h_chroma_420_intra_neon 1480 1119 1028
3281 deblock_h_chroma_422_intra_c 6211 5030 4792
3282 deblock_h_chroma_422_intra_neon 2894 1990 2077
3283
3284commit e8b95e92792d9353277995043757430cf3dc3bf7 [revision 2620]
3285Author: Martin Storsjö <martin@martin.st>
3286Date: Tue Aug 25 14:38:17 2015 +0300
3287
3288 arm: Implement x264_pixel_sa8d_satd_16x16_neon
3289
3290 This requires spilling some registers to the stack,
3291 contray to the aarch64 version.
3292
3293 checkasm timing Cortex-A7 A8 A9
3294 sa8d_satd_16x16_neon 12936 6365 7492
3295 sa8d_satd_16x16_separate_neon 14841 6605 8324
3296
3297commit 6bbaa2758d53d0d6d645142d7d818c960d137a0e [revision 2619]
3298Author: Martin Storsjö <martin@martin.st>
3299Date: Tue Aug 25 14:38:16 2015 +0300
3300
3301 arm: Implement x264_deblock_h_chroma_mbaff_neon
3302
3303 checkasm timing Cortex-A7 A8 A9
3304 deblock_chroma_420_mbaff_c 1944 1706 1526
3305 deblock_chroma_420_mbaff_neon 1210 873 865
3306
3307commit 3c66591e859045ef79a7131b991a5f20c80ffbb4 [revision 2618]
3308Author: Martin Storsjö <martin@martin.st>
3309Date: Tue Aug 25 14:38:15 2015 +0300
3310
3311 arm: Implement x264_deblock_h_chroma_422_neon
3312
3313 checkasm timing Cortex-A7 A8 A9
3314 deblock_h_chroma_422_c 6953 6269 5145
3315 deblock_h_chroma_422_neon 3905 2569 2551
3316
3317commit 5265b927b0f2e043dd39cbbbf3909da0862d60e6 [revision 2617]
3318Author: Martin Storsjö <martin@martin.st>
3319Date: Tue Aug 25 14:38:14 2015 +0300
3320
3321 arm: Implement integral_init4/8h/v_neon
3322
3323 checkasm timing Cortex-A7 A8 A9
3324 integral_init4h_c 10466 8590 6161
3325 integral_init4h_neon 3021 1494 1800
3326 integral_init4v_c 16250 13590 13628
3327 integral_init4v_neon 3473 2073 3291
3328 integral_init8h_c 10100 8275 5705
3329 integral_init8h_neon 4403 2344 2751
3330 integral_init8v_c 6403 4632 4999
3331 integral_init8v_neon 1184 783 1306
3332
3333commit b08403b5593307b919bfe5bfbd743da825326a4c [revision 2616]
3334Author: Martin Storsjö <martin@martin.st>
3335Date: Tue Aug 25 14:38:13 2015 +0300
3336
3337 arm: Implement x264_denoise_dct_neon
3338
3339 checkasm timing Cortex-A7 A8 A9
3340 denoise_dct_c 6604 5510 5858
3341 denoise_dct_neon 1774 1139 1614
3342
3343commit ceee976bde76a5f4126bfd9d8454f0e601e67204 [revision 2615]
3344Author: Martin Storsjö <martin@martin.st>
3345Date: Tue Aug 25 14:38:12 2015 +0300
3346
3347 arm: Add x264_nal_escape_neon
3348
3349 checkasm timing Cortex-A7 A8 A9
3350 nal_escape_c 852758 879566 655497
3351 nal_escape_neon 376831 450678 371673
3352
3353commit 8feb733ed1dcb1cc94df3b0e6c98009832ea85cc [revision 2614]
3354Author: Martin Storsjö <martin@martin.st>
3355Date: Tue Aug 25 14:38:11 2015 +0300
3356
3357 arm: Add neon versions of vsad, asd8 and ssd_nv12_core
3358
3359 These are straight translations of the aarch64 versions.
3360
3361 checkasm timing Cortex-A7 A8 A9
3362 vsad_c 16234 10984 9850
3363 vsad_neon 2132 1020 789
3364
3365 asd8_c 5859 3561 3543
3366 asd8_neon 1407 1279 1250
3367
3368 ssd_nv12_c 608096 591072 426285
3369 ssd_nv12_neon 72752 33549 41347
3370
3371commit 42b3b398664349d23b2122ac940417165424542d [revision 2613]
3372Author: Martin Storsjö <martin@martin.st>
3373Date: Tue Aug 25 14:38:10 2015 +0300
3374
3375 checkasm: Check the right output range for integral_initXh
3376
3377 These functions write their output into sum+stride, while we previously
3378 only checked [0..stride-8] within the sum array.
3379
3380 This catches the previously broken aarch64 version of these functions.
3381
3382 Also check up until stride-4 elements for init4h.
3383
3384commit 3d86abab097fa26d116112f188458269c6a0415f [revision 2612]
3385Author: Janne Grunau <janne-x264@jannau.net>
3386Date: Thu Aug 20 13:55:54 2015 +0200
3387
3388 aarch64: Skip deblocking in 264_deblock_h_chroma_422_neon
3389
3390 If the parameters (alpha, beta, tc0[]) indicated that the deblocking
3391 should have been skipped, every 2nd chrome line would have deblocked
3392 anyway.
3393
3394 deblock_h_chroma_422_neon: 2259 (before)
3395 deblock_h_chroma_422_neon: 2192 (after)
3396
3397commit aec81efd3fe43008551916aa6073eb0732a58210 [revision 2611]
3398Author: Janne Grunau <janne-x264@jannau.net>
3399Date: Mon Aug 17 16:39:20 2015 +0200
3400
3401 aarch64: Optimize various intra_predict asm functions
3402
3403 Make them at least as fast as the compiled C version (tested on
3404 cortex-a53 vs. gcc 4.9.2).
3405
3406 C NEON (before) NEON (after)
3407 intra_predict_4x4_dc: 260 335 260
3408 intra_predict_4x4_dct: 210 265 200
3409 intra_predict_8x8c_dc: 497 548 493
3410 intra_predict_8x8c_v: 232 309 179 (arm64)
3411 intra_predict_8x16c_dc: 795 830 790
3412
3413commit b16268ac0826d78455d0d704ea0fc8b1edc6b6bf [revision 2610]
3414Author: Janne Grunau <janne-x264@jannau.net>
3415Date: Tue Aug 18 10:25:10 2015 +0200
3416
3417 aarch64: Faster intra_predict_4x4_h
3418
3419 Use multiplication with 0x01010101 for splats.
3420
3421 On a cortex-a53:
3422 gcc 4.9.2 llvm 3.6 neon (before) neon (after)
3423 intra_predict_4x4_h: 162 147 160/155 139/135
3424
3425commit f2a6be92e5e42e8ef1daf74f63dbdbc4819d2070 [revision 2609]
3426Author: Janne Grunau <janne-x264@jannau.net>
3427Date: Tue Aug 18 10:25:09 2015 +0200
3428
3429 aarch64: Fix coeff_level_run* macros with LLVM's assembler
3430
3431 LLVM's integrated assembler does not treat symbols as integer constants.
3432
3433commit 592e92e9a8e47c3f0d0017c8158df5a4830e0bbd [revision 2608]
3434Author: Janne Grunau <janne-x264@jannau.net>
3435Date: Tue Aug 18 10:25:08 2015 +0200
3436
3437 aarch64: Remove commas LLVM's assembler complains about
3438
3439commit 6efb57ada652fd015ec4cacffd09282632bb975b [revision 2607]
3440Author: Martin Storsjö <martin@martin.st>
3441Date: Thu Aug 13 23:59:31 2015 +0300
3442
3443 arm: Implement x264_sub8x16_dct_dc_neon
3444
3445 checkasm timing Cortex-A7 A8 A9
3446 sub8x16_dct_dc_c 6386 3901 4080
3447 sub8x16_dct_dc_neon 1491 698 917
3448
3449commit 89439b2c604c81e13eb3da9e692d2cdae5a18b53 [revision 2606]
3450Author: Martin Storsjö <martin@martin.st>
3451Date: Thu Aug 13 23:59:28 2015 +0300
3452
3453 arm: Optimize x264_deblock_h_chroma_neon
3454
3455 Shuffle both chroma components together as a 16 bit unit, and
3456 don't write the unchanged columns (like in x264_deblock_h_luma_neon
3457 and in the aarch64 version of the function).
3458
3459 This causes a minor slowdown for x264_deblock_v_chroma_neon, but
3460 it is negligible compared to the speedup.
3461
3462 checkasm timing Cortex-A7 A8 A9
3463 deblock_chroma[1]_c 4817 4057 3601
3464 deblock_chroma[1]_neon 1249 716 817 (before)
3465 deblock_chroma[1]_neon 1249 766 845 (after)
3466
3467 deblock_h_chroma_420_c 3699 3275 2830
3468 deblock_h_chroma_420_neon 2068 1414 1400 (before)
3469 deblock_h_chroma_420_neon 1838 1355 1291 (after)
3470
3471commit ff71457d71c5c11ed825d848677cab09c7639012 [revision 2605]
3472Author: Martin Storsjö <martin@martin.st>
3473Date: Thu Aug 13 23:59:27 2015 +0300
3474
3475 aarch64: Remove leftover commented out code
3476
3477commit ef6034812162fc8b51bfd5e87387f405d1cc30cb [revision 2604]
3478Author: Martin Storsjö <martin@martin.st>
3479Date: Thu Aug 13 23:59:26 2015 +0300
3480
3481 aarch64: Simplify the decimate_score functions
3482
3483 After doing a left shift by the number of bits returned by clz,
3484 only bits set to zero can be shifted out, so if the register
3485 was nonzero to start with (which is checked), it can't become
3486 zero here.
3487
3488commit d2b04a26b26d02c41ffb05cf1a605dafe9e6fa59 [revision 2603]
3489Author: Martin Storsjö <martin@martin.st>
3490Date: Thu Aug 13 23:59:25 2015 +0300
3491
3492 arm: Use aligned loads in x264_coeff_last15_neon
3493
3494 After subtracting 2, the pointer will be aligned.
3495
3496 checkasm timing Cortex-A7 A8 A9
3497 coeff_last15_c 423 375 230
3498 coeff_last15_neon 350 420 404 (before)
3499 coeff_last15_neon 350 400 394 (after)
3500
3501commit 3f89a6bbee061cb0361770cf5b8495448515a011 [revision 2602]
3502Author: Martin Storsjö <martin@martin.st>
3503Date: Thu Aug 13 23:59:24 2015 +0300
3504
3505 arm: Simplify x264_predict_8x8c_p_neon
3506
3507 This gets rid of a few unnecessary (and confusing) steps in
3508 calculating the increment to i00.
3509
3510 checkasm timing Cortex-A7 A8 A9
3511 intra_predict_8x8c_p_c 5525 4732 4755
3512 intra_predict_8x8c_p_neon 1719 1140 1262 (before)
3513 intra_predict_8x8c_p_neon 1663 1142 1255 (after)
3514
3515commit a0cd7d38acb6c31973228ab207e18344920e0aa3 [revision 2601]
3516Author: Vittorio Giovara <vittorio.giovara@gmail.com>
3517Date: Tue Sep 15 15:40:14 2015 +0200
3518
3519 lavf: Use the prefixed name for pixel format enum
3520
3521commit 63555e696a997ff795798d3357d770f8ab373cd9 [revision 2600]
3522Author: Janne Grunau <janne-x264@jannau.net>
3523Date: Thu Sep 3 00:21:58 2015 +0200
3524
3525 aarch64: fix x264_mbtree_propagate_cost_neon
3526
3527 The branch conditon caused the loop to execute one time more than
3528 intended. Detected by a memory corruption on arm with the 1 to 1 port of
3529 the function.
3530
3531commit 5c4728d8dd82ba46901824470db1609ae0f2521d [revision 2599]
3532Author: Martin Storsjö <martin@martin.st>
3533Date: Thu Aug 13 23:59:22 2015 +0300
3534
3535 aarch64: Fix integral_init4/8h_neon
3536
3537 The stride is the number of uint16_t elements and thus needs
3538 to be shifted.
3539
3540 This issue had slipped unnoticed since checkasm didn't actually
3541 verify the output of these functions.
3542
3543commit 67076513267907b5601828ae6864cc063c8c7548 [revision 2598]
3544Author: Henrik Gramner <henrik@gramner.com>
3545Date: Thu Aug 27 19:53:00 2015 +0200
3546
3547 x86: Fix integral_init4/8h_avx2
3548
3549 The AVX2 implementation was using the wrong offsets. It went undetected due to
3550 the checkasm test being incorrect.
3551
3552commit e86f3a1993234e8f26050c243aa253651200fa6b [revision 2597]
3553Author: Mark Webster <mark.webster@gmail.com>
3554Date: Wed Aug 5 04:28:17 2015 +0100
3555
3556 Simplify inclusion of x264.h in C++ projects
3557
3558 Name all structs to support forward declarations.
3559 Add a conditional extern "C" wrapper in x264.h itself instead of having to
3560 specify it in every location where it's included.
3561
3562commit 401941cc7099b322864600b62104940542497e7a [revision 2596]
3563Author: Henrik Gramner <henrik@gramner.com>
3564Date: Sun Aug 16 21:59:26 2015 +0200
3565
3566 checkasm: Properly save rdx/edx in checkasm_call() on x86
3567
3568 If the return value doesn't fit in a single register rdx/edx can in some
3569 cases be used in addition to rax/eax.
3570
3571 Doesn't affect any of the existing checkasm tests but it's more correct
3572 behavior and it might be useful in the future.
3573
3574commit 3dff8af3033a9e81d7966c5749fd361ce421467a [revision 2595]
3575Author: Henrik Gramner <henrik@gramner.com>
3576Date: Tue Aug 11 17:19:35 2015 +0200
3577
3578 x86: Enable SSE2 by default on x86-32
3579
3580 It makes more sense to tune the defaults to benefit the vast majority of users.
3581
3582 Anyone still using a Pentium III for video encoding is of course free to
3583 explicitly set different flags when compiling.
3584
3585commit 51d8aa09b777dc2969deaa954d5f6af9836c02ba [revision 2594]
3586Author: Henrik Gramner <henrik@gramner.com>
3587Date: Mon Aug 10 22:30:21 2015 +0200
3588
3589 msvs/icl: Improve default CFLAGS
3590
3591 Use -fp:fast as a substitute for -ffast-math.
3592 Increase warning level from -W0 to -W1 (the default setting).
3593 Disable -GS (stack cookies) on MSVS. It's disabled by default on ICL.
3594
3595commit 7edaf4b966aaee098ff301436f8d2b33a6fe5983 [revision 2593]
3596Author: Henrik Gramner <henrik@gramner.com>
3597Date: Wed Aug 12 22:23:31 2015 +0200
3598
3599 Use a relative $SRCPATH for out-of-tree builds
3600
3601 Fixes out-of-tree MSVS builds on Cygwin.
3602
3603commit e7b4b863dc2555ed835569c400d3a30f7ddc15ff [revision 2592]
3604Author: Henrik Gramner <henrik@gramner.com>
3605Date: Sat Aug 8 22:26:38 2015 +0200
3606
3607 cygwin: Enable MSVS support
3608
3609 `cl -showIncludes` creates absolute Windows paths for some files, attempt
3610 to convert those to Unix paths.
3611
3612 Use relative paths for dependencies located in or below the working directory
3613 in order to mimic the behavior of gcc and to make the paths more readable.
3614
3615 Make the dependency generation script a bit more robust in general.
3616
3617commit 817a4414b98e8a511c626932e7d433388bc96507 [revision 2591]
3618Author: Henrik Gramner <henrik@gramner.com>
3619Date: Sat Aug 8 18:34:21 2015 +0200
3620
3621 cltostr.sh: Minor fixes
3622
3623commit 1a3d963441eaad25972763423d60158f597c5f65 [revision 2590]
3624Author: Henrik Gramner <henrik@gramner.com>
3625Date: Sat Aug 8 12:21:54 2015 +0200
3626
3627 Simplify version.sh
3628
3629 Also remove some non-POSIX syntax and improve robustness.
3630
3631 As a bonus the script now runs about 2-3 times faster.
3632
3633 `git rev-list --count` could be used to simplify things even further,
3634 but that functionality was added in git 1.7.2 so keep `wc -l` for now
3635 to maintain compatibility with older git versions.
3636
3637commit f7f6af76ef22e812ef330e2839488e83dd553836 [revision 2589]
3638Author: 장영훈 <mieabby@gmail.com>
3639Date: Fri Aug 7 14:43:24 2015 +0900
3640
3641 msvs: Fix cl detection in non-English environments
3642
3643commit e1a55bbbff2b4460ceb843f163e349fed7d32969 [revision 2588]
3644Author: Henrik Gramner <henrik@gramner.com>
3645Date: Mon Aug 3 21:05:11 2015 +0200
3646
3647 x86inc: Sync minor changes from ffmpeg/libav
3648
3649commit 36f537b141da076032fd11f1745bb62d466dd7bf [revision 2587]
3650Author: Henrik Gramner <henrik@gramner.com>
3651Date: Wed Jul 29 19:30:52 2015 +0200
3652
3653 matroska: Add comments for the remaining element names
3654
3655commit f04062e6380cbe10453dab33a3575c373e63ff9b [revision 2586]
3656Author: Henrik Gramner <henrik@gramner.com>
3657Date: Wed Jul 29 19:30:41 2015 +0200
3658
3659 Silence various static analyzer warnings
3660
3661 Those are false positives, but it doesn't hurt to get rid of them.
3662
3663commit b1cbf7ebe4a192bbc25cc910cb2910a34992f807 [revision 2585]
3664Author: Henrik Gramner <henrik@gramner.com>
3665Date: Sun Jul 26 23:13:29 2015 +0200
3666
3667 mingw: Enable the tsaware linker flag
3668
3669 Avoids an irrelevant compatibility layer in Terminal Services environments.
3670
3671 https://msdn.microsoft.com/en-us/library/cc834995.aspx
3672
3673commit 8a1ff031ecd4b423fc373540b9b68cdf97602bbf [revision 2584]
3674Author: Henrik Gramner <henrik@gramner.com>
3675Date: Sun Jul 26 23:13:26 2015 +0200
3676
3677 msvs: Don't redefine snprintf for VS2015
3678
3679 Visual Studio 2015 has a proper snprintf implementation.
3680
3681commit aa9d22927c0264c08c11c9e72294fc651a155b3e [revision 2583]
3682Author: Henrik Gramner <henrik@gramner.com>
3683Date: Sun Jul 26 23:13:19 2015 +0200
3684
3685 msvs: Prefer link.exe from the same directory as cl.exe
3686
3687 /usr/bin/link from coreutils may be located before the MSVS linker in $PATH
3688 which causes linking to fail due to using the wrong binary.
3689
3690commit ca8bd68063d74227d917f34fd50942265f9a106c [revision 2582]
3691Author: Henrik Gramner <henrik@gramner.com>
3692Date: Mon Jul 27 00:10:00 2015 +0200
3693
3694 frame_dump: check fseek() return value
3695
3696commit 53b3b747e22f53204f6efb5106ab4a5a8eb57626 [revision 2581]
3697Author: Henrik Gramner <henrik@gramner.com>
3698Date: Mon Jul 27 00:08:38 2015 +0200
3699
3700 x264_vfprintf: use va_copy
3701
3702 It's undefined behavior to use the same va_list twice.
3703
3704 This most likely didn't cause any issues in practice since the string would
3705 have to be larger than 4 KiB to trigger the fallback path.
3706
3707 Use workaround for ICL as it doesn't define va_copy even for C99.
3708
3709commit 59e7ded846a832125cb533aadff9895487771ea7 [revision 2580]
3710Author: Henrik Gramner <henrik@gramner.com>
3711Date: Mon Jul 27 00:08:31 2015 +0200
3712
3713 param_parse: Fix framerate rounding issues
3714
3715commit 73ae2d11d472d0eb3b7c218dc1659db32f649b14 [revision 2579]
3716Author: Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
3717Date: Mon Jun 1 11:24:45 2015 +0200
3718
3719 aarch64: Remove broken CFLAGS in configure
3720
3721 GCC doesn't have an "-arch" switch, but works when that entire line is removed.
3722
3723commit cc002bd545b008b1cdc7c6d7cc0c616ba125d4d5 [revision 2578]
3724Author: Rong Yan <rongyan236@foxmail.com>
3725Date: Mon Jul 20 03:34:20 2015 -0500
3726
3727 ppc: Add little-endian PowerPC support
3728
3729commit 145f3a6275802a649b8dedb49bb0e054caf31717 [revision 2577]
3730Author: Rishikesh More <rishikesh.more@imgtec.com>
3731Date: Thu Jun 18 17:48:46 2015 +0530
3732
3733 mips: MSA quant optimizations
3734
3735 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3736
3737commit 16395d2b6f827b076612eb5b70711b79621da67e [revision 2576]
3738Author: Rishikesh More <rishikesh.more@imgtec.com>
3739Date: Thu Jun 18 17:48:45 2015 +0530
3740
3741 mips: MSA predict optimizations
3742
3743 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3744
3745commit 204e1a60237e0b3168ccbdb2905c9af8188b90ee [revision 2575]
3746Author: Rishikesh More <rishikesh.more@imgtec.com>
3747Date: Thu Jun 18 17:48:44 2015 +0530
3748
3749 mips: MSA pixel optimizations
3750
3751 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3752
3753commit 3ce6430eb11839c69d606c59c0f8c31ce0b6dd17 [revision 2574]
3754Author: Rishikesh More <rishikesh.more@imgtec.com>
3755Date: Thu Jun 18 17:48:43 2015 +0530
3756
3757 mips: MSA deblock optimizations
3758
3759 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3760
3761commit 57618eead025eaf654226add94689d6d2999ccf6 [revision 2573]
3762Author: Rishikesh More <rishikesh.more@imgtec.com>
3763Date: Thu Jun 18 17:48:42 2015 +0530
3764
3765 mips: MSA dct optimizations
3766
3767 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3768
3769commit 4ebb23aaf4f46b7a04aa8aefa3c08e7b6493de4c [revision 2572]
3770Author: Rishikesh More <rishikesh.more@imgtec.com>
3771Date: Thu Jun 18 17:48:40 2015 +0530
3772
3773 mips: MSA mc optimizations
3774
3775 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3776
3777commit cd19444d3f9915a5a33a95e308bc8021d7e62afe [revision 2571]
3778Author: Rishikesh More <rishikesh.more@imgtec.com>
3779Date: Thu Jun 18 17:48:38 2015 +0530
3780
3781 mips: Common MSA macros
3782
3783 Add macros for load/store, slide, shift, transpose and basic arithmetic
3784 operations required by subsequent patches.
3785
3786 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3787
3788commit 72b82bd98a99b1d75322b70a74365547382ce062 [revision 2570]
3789Author: Rishikesh More <rishikesh.more@imgtec.com>
3790Date: Tue May 12 19:38:09 2015 +0530
3791
3792 mips: Add MSA support to checkasm
3793
3794 Signed-off-by: Rishikesh More <rishikesh.more@imgtec.com>
3795
3796commit ce0757d9d2778e349a7c2f6445b6aa75d8765c30 [revision 2569]
3797Author: Kaustubh Raste <kaustubh.raste@imgtec.com>
3798Date: Fri Apr 17 17:38:58 2015 +0530
3799
3800 mips: Initial MSA support
3801
3802 MSA is the MIPS SIMD Architecture.
3803
3804 Add X264_CPU_MSA define.
3805 Update configure to detect MIPS platform and set flags.
3806 CPU-specific gcc options are expected through --extra-cflags.
3807
3808 Sample command line for mips32r5:
3809 ./configure --host=mipsel-linux-gnu --cross-prefix=<TOOLCHAIN>/mips-mti-linux-gnu-
3810 --extra-cflags="-EL -mips32r5 -msched-weight -mload-store-pairs"
3811
3812 Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
3813
3814commit 9140ee1fb39bd4a4ccace28091398e8a96704f07 [revision 2568]
3815Author: Anton Mitrofanov <BugMaster@narod.ru>
3816Date: Fri Jul 17 00:22:29 2015 +0300
3817
3818 Limit autodetection of threads number according to the source height
3819
3820commit aeaed2d07b5b43437bb640e1f987d42a6fab03b9 [revision 2567]
3821Author: Anton Mitrofanov <BugMaster@narod.ru>
3822Date: Thu Jul 16 19:04:59 2015 +0300
3823
3824 Fine-tune of frame's size predictors at ratecontrol start
3825
3826 This is attempt to improve VBV at start of video with a lot of threads which
3827 delay feedback for predictors.
3828
3829commit aa275158641e94203003157947d43ff4cc685068 [revision 2566]
3830Author: Anton Mitrofanov <BugMaster@narod.ru>
3831Date: Thu Jul 16 16:15:56 2015 +0300
3832
3833 Use forced frame types in slicetype analysis
3834
3835 This should improve MBTree and VBV when a lot of forced frame types are used.
3836
3837commit a83edfa053f60ad0c8a164f31e7492a680eef361 [revision 2565]
3838Author: Henrik Gramner <henrik@gramner.com>
3839Date: Mon Dec 1 22:05:42 2014 +0100
3840
3841 x86: SSSE3 and AVX2 implementations of plane_copy_swap
3842
3843 For NV21 input.
3844
3845commit 627f891c571cacb51deb5e211b23c309b14a6587 [revision 2564]
3846Author: Yu Xiaolei <dreifachstein@gmail.com>
3847Date: Fri Jun 6 16:05:27 2014 +0800
3848
3849 NV21 input support
3850
3851 Eliminates an extra copy when encoding Android camera preview images.
3852
3853 Checkasm test by Janne Grunau.
3854 ARM assembly with improvements from Janne Grunau.
3855
3856commit 6ee94dc898dc029553e308f1e76891ccefb3f0a7 [revision 2563]
3857Author: Henrik Gramner <henrik@gramner.com>
3858Date: Tue Jun 23 17:00:47 2015 +0200
3859
3860 deblock: Write combining
3861
3862commit 08a9c51919f4edbd6e484155e5521a92a0800651 [revision 2562]
3863Author: Henrik Gramner <henrik@gramner.com>
3864Date: Tue Jun 23 14:59:59 2015 +0200
3865
3866 Get rid of some tabs and trailing whitespaces
3867
3868commit b568a256b9bc6c500d7b1ffe4b9c3311ee5ff337 [revision 2561]
3869Author: Henrik Gramner <henrik@gramner.com>
3870Date: Sat May 23 19:44:16 2015 +0200
3871
3872 x86: Experimental nasm support
3873
3874 Enables the use of nasm as an alternative to yasm.
3875
3876 Note that nasm cannot assemble x264 with PIC enabled since it currently doesn't
3877 support [symbol-$$] addressing which is used extensively by x264's PIC code.
3878 This includes all 64-bit Windows and 64-bit OS X builds, even non-shared.
3879
3880 For the above reason nasm is currently intentionally not auto-detected, instead
3881 the assembler must be explicitly specified using "AS=nasm ./configure".
3882
3883 Also drop -O2 from ASFLAGS since it's simply ignored anyway.
3884
3885commit d14e38c059c9a2aecc82477b99d56ef74eb731ec [revision 2560]
3886Author: Timothy Gu <timothygu99@gmail.com>
3887Date: Tue May 26 19:12:42 2015 +0200
3888
3889 x86inc: Prevent warnings when using `struc` and `endstruc`
3890
3891 struc and endstruc attempts to revert to the previous section state set by
3892 the SECTION macro.
3893
3894 Use the primitive [SECTION] directive instead of the SECTION macro for the
3895 .note.GNU-stack section to prevent it from being emitted again during endstruc.
3896
3897commit 353b1f888c34081e94727a1ffa0e4920e2cfe8a9 [revision 2559]
3898Author: Henrik Gramner <henrik@gramner.com>
3899Date: Wed May 27 21:38:14 2015 +0200
3900
3901 x86inc: Drop SECTION_TEXT macro
3902
3903 The .text section is already 16-byte aligned by default on all supported
3904 platforms so `SECTION_TEXT` isn't any different from `SECTION .text`.
3905
3906commit b615f82e45c88b7915c5571ad09fa65a0b6130d7 [revision 2558]
3907Author: Henrik Gramner <henrik@gramner.com>
3908Date: Sat May 23 13:38:05 2015 +0200
3909
3910 x86inc: Disable vpbroadcastq workaround in newer yasm versions
3911
3912 The bug was fixed in 1.3.0, so only perform the workaround in earlier versions.
3913
3914commit 8f834d6ccc054d8c32d84310664dc07abac553ec [revision 2557]
3915Author: Henrik Gramner <henrik@gramner.com>
3916Date: Sun May 24 22:57:00 2015 +0200
3917
3918 Prefer Unicode versions of Windows API calls
3919
3920 Just for consistency, doesn't affect behavior.
3921
3922commit 3f8c8eb1758d0fa890538eba6f5e699c93dc1304 [revision 2556]
3923Author: Henrik Gramner <henrik@gramner.com>
3924Date: Sun May 24 23:21:20 2015 +0200
3925
3926 Get rid of fPIC warnings when compiling a shared library on Windows
3927
3928 PIC is always enabled when compiling for Windows so gcc complains when using
3929 -fPIC since it doesn't do anything.
3930
3931commit 0c21480fa2fdee345a3049e2169624dc6fc2acfc [revision 2555]
3932Author: Henrik Gramner <henrik@gramner.com>
3933Date: Sat Jul 25 22:42:59 2015 +0200
3934
3935 matroska: Write the correct DocTypeVersion when using frame-packing
3936
3937 The StereoMode element is only valid with DocTypeVersion 3 or higher.
3938
3939commit 791d265281af1d022a72ba9e003a987e97da5c0d [revision 2554]
3940Author: Anton Mitrofanov <BugMaster@narod.ru>
3941Date: Sat Jul 25 00:21:52 2015 +0300
3942
3943 dump_yuv: Fix file handle leak
3944
3945commit d6aa586b2f83eeb776744c2e97a8ce9e1181c59b [revision 2553]
3946Author: Anton Mitrofanov <BugMaster@narod.ru>
3947Date: Sat Jul 25 00:20:47 2015 +0300
3948
3949 mp4: Fix file handle leak
3950
3951commit 942e4e4530d0909c2b580be88acd18d1e5fa4fa8 [revision 2552]
3952Author: Henrik Gramner <henrik@gramner.com>
3953Date: Wed Jun 24 00:40:45 2015 +0200
3954
3955 flv: Check fseek() and fwrite() return values
3956
3957commit 250d5b0e13045f6a1ebfeb379933b5c5daa9cf41 [revision 2551]
3958Author: Henrik Gramner <henrik@gramner.com>
3959Date: Wed Jun 24 00:22:56 2015 +0200
3960
3961 flv: Fix memory and file handle leaks
3962
3963commit 3533520655ef095ef009af9b6b27a20b45fd13ee [revision 2550]
3964Author: Henrik Gramner <henrik@gramner.com>
3965Date: Wed Jun 24 01:23:35 2015 +0200
3966
3967 avs: Fix file handle leak
3968
3969commit df152a77e1b17065aecb40c9a2a28d5953887ac9 [revision 2549]
3970Author: Henrik Gramner <henrik@gramner.com>
3971Date: Tue Jun 23 13:38:02 2015 +0200
3972
3973 matroska: Fix memory leak
3974
3975commit 6d5249977f5d62f6e167a062bdd94d8546eca1f7 [revision 2548]
3976Author: Henrik Gramner <henrik@gramner.com>
3977Date: Tue Jun 23 13:24:29 2015 +0200
3978
3979 rdo: Fix potential CAVLC overflow issues
3980
3981commit 936e8da1a4f9d0431b181d0877bb1602d4de9441 [revision 2547]
3982Author: Henrik Gramner <henrik@gramner.com>
3983Date: Tue Jun 23 22:08:35 2015 +0200
3984
3985 slurp_file: Various minor bug fixes
3986
3987 * Fix unsigned <= 0 check.
3988 * Add additional size sanity check on 32-bit systems.
3989 * Don't read uninitialized data if fread() fails.
3990
3991commit d302526d5b97818f588b86f408f910924790242e [revision 2546]
3992Author: Henrik Gramner <henrik@gramner.com>
3993Date: Tue Jun 23 22:47:53 2015 +0200
3994
3995 param_parse: Check strdup() return value
3996
3997commit 94e476d80b9635508907893c97e8f8d9f0bc9ddf [revision 2545]
3998Author: Henrik Gramner <henrik@gramner.com>
3999Date: Tue Jun 23 15:38:16 2015 +0200
4000
4001 param_parse: Fix memory leak
4002
4003commit 45856b9787eab95434d66b4bc2e18819483f0e43 [revision 2544]
4004Author: Anton Mitrofanov <BugMaster@narod.ru>
4005Date: Fri Jun 19 16:01:12 2015 +0300
4006
4007 Add FreeBSD's stdint.h header guard to allowed list
4008
4009 Patch written by Koop Mast <kwm@FreeBSD.org>
4010
4011commit 35cf1a2cbf253e43cab7747eb903a3b844bd42c1 [revision 2543]
4012Author: Henrik Gramner <henrik@gramner.com>
4013Date: Fri May 22 19:23:33 2015 +0200
4014
4015 x86: Prevent overread of src in plane_copy_interleave
4016
4017 Could only occur in 4:2:2 with height == 1.
4018
4019 Also enable asm for inputs with different U/V strides as long as the strides
4020 have identical signs.
4021
4022commit 003414a4b3724f0972e4507dfd1432dd442d2228 [revision 2542]
4023Author: Anton Mitrofanov <BugMaster@narod.ru>
4024Date: Wed May 20 23:10:20 2015 +0300
4025
4026 checkasm: Fix incorrect memcmp size for ARM architecture
4027
4028commit e08fdc81018489217f4bafe7321a3baf372fac1f [revision 2541]
4029Author: Anton Mitrofanov <BugMaster@narod.ru>
4030Date: Sun Apr 26 20:51:05 2015 +0300
4031
4032 Fix possible use of uninitialized MVs in lookahead analysis for B-frames
4033
4034commit 0b0210857ef13214f12861dec672006455a556d6 [revision 2540]
4035Author: Anton Mitrofanov <BugMaster@narod.ru>
4036Date: Tue Apr 21 23:08:19 2015 +0300
4037
4038 Catch incorrect usage of libx264 API for delayed frames flushing
4039
4040commit 3a6bd39a650b47572743c2d2ea2fd7c214053fb2 [revision 2539]
4041Author: Anton Mitrofanov <BugMaster@narod.ru>
4042Date: Sat Mar 7 23:00:09 2015 +0300
4043
4044 Fix detection of system libx264 configuration
4045
4046commit 121396c71b4907ca82301d1a529795d98daab5f8 [revision 2538]
4047Author: Anton Mitrofanov <BugMaster@narod.ru>
4048Date: Mon Feb 23 14:23:18 2015 +0300
4049
4050 Cosmetic changes
4051
4052commit 8e71b432e5dbe835fa4516064f6841a03c79b183 [revision 2537]
4053Author: Anton Mitrofanov <BugMaster@narod.ru>
4054Date: Wed Dec 31 02:15:05 2014 +0300
4055
4056 Update configure for auto detection of system libx264 configuration
4057
4058commit 0f84192e88d6adc4512f6f320a50a09b4608634c [revision 2536]
4059Author: Anton Mitrofanov <BugMaster@narod.ru>
4060Date: Tue Feb 3 14:51:28 2015 +0300
4061
4062 Add tile format frame packing value
4063
4064 Defined in 2014-02 edition.
4065
4066commit f08b1c6b8e186ff5a931e9a80e8923e42efff0e4 [revision 2535]
4067Author: Anton Mitrofanov <BugMaster@narod.ru>
4068Date: Tue Feb 3 13:39:14 2015 +0300
4069
4070 Stricter validation of crop-rect values
4071
4072commit 196cb9ab52af9370fc66a474ffc4a52a75dc5eb4 [revision 2534]
4073Author: Vittorio Giovara <vittorio.giovara@gmail.com>
4074Date: Tue Jan 20 16:15:56 2015 +0000
4075
4076 Add mono frame packing value
4077
4078 Defined in 2013-04 edition.
4079
4080commit c8a773ebfca148ef04f5a60d42cbd7336af0baf6 [revision 2533]
4081Author: Vittorio Giovara <vittorio.giovara@gmail.com>
4082Date: Tue Jan 20 15:57:41 2015 +0000
4083
4084 Validate frame packing value instead of clipping
4085
4086commit a95584945dd9ce3acc66c6cd8f6796bc4404d40d [revision 2532]
4087Author: Christophe Gisquet <christophe.gisquet@gmail.com>
4088Date: Tue Feb 3 20:40:41 2015 +0100
4089
4090 x86inc: Correctly warn on use of SSE2 instructions in SSE functions
4091
4092 SSE2 instructions that are XMM-implementations of pre-existing MMX/MMX2
4093 instructions did not issue warnings when used in SSE functions. Handle
4094 it by also checking the register type when such instructions are used.
4095
4096commit 23d4434de9ab5ef32ebb03401d971b8579a65fc6 [revision 2531]
4097Author: Christophe Gisquet <christophe.gisquet@gmail.com>
4098Date: Tue Feb 3 18:02:30 2015 +0100
4099
4100 x86inc: Fix instantiation of YMM registers
4101
4102commit 4c75f3d729aaf3bcb00edf789c71f09495374bdf [revision 2530]
4103Author: Vittorio Giovara <vittorio.giovara@gmail.com>
4104Date: Tue Jan 20 16:28:54 2015 +0000
4105
4106 matroska: Correctly write display width and height in stereo mode
4107
4108 According to the specifications, when stereo mode is set, these values
4109 represent the single view size.
4110
4111commit c3ba2a8c595b1bb36da55b82f7f4046471349d0e [revision 2529]
4112Author: Kieran Kunhya <kierank@ob-encoder.com>
4113Date: Tue Jan 20 09:38:00 2015 -0600
4114
4115 Use POC type 0 for AVC-Intra
4116
4117 Based on a patch from Capella Systems
4118
4119commit b77cc09b9252d70f78726f2472391b63948d9895 [revision 2528]
4120Author: Anton Mitrofanov <BugMaster@narod.ru>
4121Date: Sat Jan 3 15:46:19 2015 +0300
4122
4123 Fix ARCH variable name conflict with BSD ports (bsd.port.mk) read-only variable
4124
4125commit 6e769846626f9185b59f3967e8b4ebe11497d878 [revision 2527]
4126Author: Anton Mitrofanov <BugMaster@narod.ru>
4127Date: Sat Dec 27 20:35:39 2014 +0300
4128
4129 Fix negative percentages in final stats output
4130
4131 They were caused by integer overflow when encoding long UHD video.
4132
4133commit d7ccd89f1bea53c8c524f8e6eb963d57defb6813 [revision 2526]
4134Author: Anton Mitrofanov <BugMaster@narod.ru>
4135Date: Sat Jan 3 23:35:23 2015 +0300
4136
4137 Bump dates to 2015
4138
4139commit 40bb56814e56ed342040bdbf30258aab39ee9e89 [revision 2525]
4140Author: Anton Mitrofanov <BugMaster@narod.ru>
4141Date: Mon Dec 15 18:49:23 2014 +0300
4142
4143 x86: Update intel compiler cpu dispatcher override for new versions of ICC/ICL
4144
4145commit d72a85b549acd981a8dae3dc5b71920ab2aeea4f [revision 2524]
4146Author: Anton Mitrofanov <BugMaster@narod.ru>
4147Date: Tue Sep 6 21:53:29 2011 +0400
4148
4149 New AQ mode: auto-variance AQ with bias to dark scenes
4150
4151 Also known as --aq-mode 3 or auto-variance AQ modification.
4152
4153commit f4a455a43df3088bae5208dcc98b8f6214fdce7d [revision 2523]
4154Author: Anton Mitrofanov <BugMaster@narod.ru>
4155Date: Wed Aug 29 03:02:27 2012 +0400
4156
4157 Improve HRD conformance
4158
4159commit fa3549b5f2478f39cbcbd14d2e956e59f70d18eb [revision 2522]
4160Author: Henrik Gramner <henrik@gramner.com>
4161Date: Fri Nov 28 23:24:56 2014 +0100
4162
4163 x86: SSE and AVX implementations of plane_copy
4164
4165 Also remove the MMX2 implementation and fix src overread for height == 1.
4166
4167commit 8797e0f8d416aadb91d359f144e4e7855071870a [revision 2521]
4168Author: Anton Mitrofanov <BugMaster@narod.ru>
4169Date: Mon Sep 29 23:26:19 2014 +0400
4170
4171 Update to the latest version of gas-preprocessor.pl from http://git.libav.org/?p=gas-preprocessor.git
4172
4173 Contributions by Janne Grunau, Martin Storsjo, Mans Rullgard, David Conrad, Martin Aumuller and others
4174
4175commit 59b9c252cfa6242c7fa6424a463e51913996fe6a [revision 2520]
4176Author: Janne Grunau <janne-x264@jannau.net>
4177Date: Wed Nov 19 00:33:55 2014 +0100
4178
4179 aarch64: cabac_encode_{decision,bypass,terminal}_asm
4180
4181 benchmarks on a Nexus 9 (nvidia denver):
4182 101.3 cycles in x264_cabac_encode_decision_c, 67105369 runs, 3495 skips
4183 97.3 cycles in x264_cabac_encode_decision_asm, 67105493 runs, 3371 skips
4184 132.8 cycles in x264_cabac_encode_terminal_c, 1046950 runs, 1626 skips
4185 116.1 cycles in x264_cabac_encode_terminal_asm, 1048424 runs, 152 skips
4186 92.4 cycles in x264_cabac_encode_bypass_c, 16776192 runs, 1024 skips
4187 89.6 cycles in x264_cabac_encode_bypass_asm, 16776453 runs, 763 skips
4188
4189 Cycle counts are not as stable as one would like. The dynamic code
4190 optimisation seems to produce different results for small chnages in a
4191 binary. Repeated runs with the same binary produce stable results
4192 though (ignoring the first run).
4193
4194commit a6ec424939a4d3a59e4ec1e3999cb37e4314408e [revision 2519]
4195Author: Janne Grunau <janne-x264@jannau.net>
4196Date: Thu Nov 6 09:20:17 2014 +0100
4197
4198 checkasm: add cycle counter read for aarch64
4199
4200 Needs kernel support since user space access to the cycle counter is not
4201 allowed on all available AArch64 systems (Android 5 and iOS).
4202
4203commit fa7e9d3d082327ceeacfaf85da6cde4c50fb4e5b [revision 2518]
4204Author: Janne Grunau <janne-x264@jannau.net>
4205Date: Wed Nov 5 11:35:13 2014 +0100
4206
4207 aarch64: nal_escape_neon
4208
4209 3-4 times faster.
4210
4211commit f13573e490d9f18bbcb10409fb09ec25e477035e [revision 2517]
4212Author: Janne Grunau <janne-x264@jannau.net>
4213Date: Fri Oct 31 14:49:04 2014 +0100
4214
4215 aarch64: {plane_copy,memcpy_aligned,memzero_aligned}_neon
4216
4217 2-3 times faster than C.
4218
4219commit 8d655b63b4f7bc021ad038ea64b7c4de9d0ef74b [revision 2516]
4220Author: Janne Grunau <janne-x264@jannau.net>
4221Date: Wed Oct 29 18:17:48 2014 +0100
4222
4223 aarch64: x264_mbtree_propagate_{cost,list}_neon
4224
4225 x264_mbtree_propagate_cost_neon is ~7 times faster.
4226 x264_mbtree_propagate_list_neon is 33% faster.
4227
4228commit 4d400a6ec67f17ae3b17876b0318b956b6d5c856 [revision 2515]
4229Author: Janne Grunau <janne-x264@jannau.net>
4230Date: Tue Oct 21 15:18:49 2014 +0200
4231
4232 aarch64: x264_denoise_dct_neon
4233
4234 3.5 times faster.
4235
4236commit 4e8ac132cc2feff5786d12c90fd62cf97979bae1 [revision 2514]
4237Author: Janne Grunau <janne-x264@jannau.net>
4238Date: Mon Oct 20 13:12:14 2014 +0200
4239
4240 aarch64: x264_coeff_level_run{4,8,15,16}
4241
4242 All functions ~33% faster.
4243
4244commit dd7666742d5a1a7af076fb388c6adf1b10dcdb3e [revision 2513]
4245Author: Janne Grunau <janne-x264@jannau.net>
4246Date: Tue Oct 14 19:20:52 2014 +0200
4247
4248 aarch64: NEON asm for intra luma deblocking
4249
4250 deblock_luma_intra[0]_neon is 2 times fastes,
4251 deblock_luma_intra[1]_neon is ~4 times faster.
4252
4253commit 0122fd230cbf7351845dd354d5ee883d741222ef [revision 2512]
4254Author: Janne Grunau <janne-x264@jannau.net>
4255Date: Mon Oct 13 17:29:22 2014 +0200
4256
4257 aarch64: x264_deblock_h_chroma_422_neon
4258
4259 deblock_h_chroma_422 2.5 times faster
4260
4261commit 44cb1dcdbdaafeddd98d2ebe3d02408bc380713e [revision 2511]
4262Author: Janne Grunau <janne-x264@jannau.net>
4263Date: Mon Oct 13 12:43:50 2014 +0200
4264
4265 aarch64: x264_deblock_h_chroma_mbaff_neon
4266
4267 deblock_chroma_420_mbaff_neon 2 times faster
4268
4269commit f2e439d113ae86a0a1ef8215d4d4111892aed3f7 [revision 2510]
4270Author: Janne Grunau <janne-x264@jannau.net>
4271Date: Fri Oct 10 10:29:15 2014 +0200
4272
4273 aarch64: NEON asm for intra chroma deblocking
4274
4275 deblock_h_chroma_420_intra, deblock_h_chroma_422_intra and
4276 x264_deblock_h_chroma_intra_mbaff_neon are ~3 times faster.
4277 deblock_chroma_intra[1] is ~4 times faster than C.
4278
4279commit ce6c94c0bef3350e9546302aae5909404b056fdb [revision 2509]
4280Author: Janne Grunau <janne-x264@jannau.net>
4281Date: Tue Sep 2 10:27:22 2014 +0200
4282
4283 aarch64: add myself as author to aarch64/mc.h
4284
4285commit be7e5fa6eee2731abdb1b41bc2a4c1a29e672747 [revision 2508]
4286Author: Janne Grunau <janne-x264@jannau.net>
4287Date: Thu Aug 14 14:22:50 2014 +0100
4288
4289 aarch64: NEON asm for integral init
4290
4291 integral_init4h_neon and integral_init8h_neon are 3-4 times faster than
4292 C. integral_init8v_neon is 6 times faster and integral_init4v_neon is 10
4293 times faster.
4294
4295commit eb1d35725e542968c4a6480c157db40570477a95 [revision 2507]
4296Author: Janne Grunau <janne-x264@jannau.net>
4297Date: Wed Aug 13 13:30:53 2014 +0100
4298
4299 aarch64: NEON asm for 8x16c intra prediction
4300
4301 Between 10% and 40% faster than C.
4302
4303commit 40d5db342b7f5198db9826a51f31e454bd208596 [revision 2506]
4304Author: Janne Grunau <janne-x264@jannau.net>
4305Date: Tue Aug 12 17:26:10 2014 +0200
4306
4307 aarch64: NEON asm for decimate_score
4308
4309 decimate_score15 and 16 are 60% faster, decimate_score64 is 4 times
4310 faster than C.
4311
4312commit 45e1ebf88a1c3bf37e1326ce621a9b735d155885 [revision 2505]
4313Author: Janne Grunau <janne-x264@jannau.net>
4314Date: Fri Aug 8 11:19:35 2014 +0100
4315
4316 aarch64: implement x264_sub8x16_dct_dc_neon
4317
4318 4 times faster than C.
4319
4320commit 90f0b5c1c881f345c9da15bc482055f2a92f8ceb [revision 2504]
4321Author: Janne Grunau <janne-x264@jannau.net>
4322Date: Thu Aug 7 19:46:07 2014 +0200
4323
4324 aarch64: implement x264_pixel_asd8_neon
4325
4326 7 times faster than C.
4327
4328commit f8f8d13d5978b13fc831e041e52aa617550bbdf3 [revision 2503]
4329Author: Janne Grunau <janne-x264@jannau.net>
4330Date: Thu Aug 7 16:49:12 2014 +0200
4331
4332 aarch64: NEON asm for 4x16 sad, satd and ssd
4333
4334 pixel_sad_4x16_neon: 33% faster than C
4335 pixel_satd_4x16_neon: 5 times faster
4336 pixel_ssd_4x16_neon: 4 times faster
4337
4338commit 35b91f2410dcf4fc5191dd85ccda7a42eb01eae8 [revision 2502]
4339Author: Janne Grunau <janne-x264@jannau.net>
4340Date: Wed Jul 30 15:48:25 2014 +0100
4341
4342 aarch64: implement x264_pixel_ssd_nv12_core_neon
4343
4344 13 times faster than C.
4345
4346commit 99a1ca1f1a62d51e47d1ac2c92ee9c3bf3b5712b [revision 2501]
4347Author: Janne Grunau <janne-x264@jannau.net>
4348Date: Tue Jul 29 18:26:11 2014 +0100
4349
4350 aarch64: implement x264_pixel_vsad_neon
4351
4352 35 times faster than C.
4353
4354commit 6c1632493e5afac8be1e1693377dab27f4704a1d [revision 2500]
4355Author: Janne Grunau <janne-x264@jannau.net>
4356Date: Tue Jul 29 11:06:24 2014 +0100
4357
4358 aarch64: NEON asm for missing x264_zigzag_* functions
4359
4360 zigzag_scan_4x4_field_neon, zigzag_sub_4x4_field_neon,
4361 zigzag_sub_4x4ac_field_neon, zigzag_sub_4x4_frame_neon,
4362 igzag_sub_4x4ac_frame_neon more than 2 times faster
4363
4364 zigzag_scan_8x8_frame_neon, zigzag_scan_8x8_field_neon,
4365 zigzag_sub_8x8_field_neon, zigzag_sub_8x8_frame_neon 4-5 times faster
4366
4367 zigzag_interleave_8x8_cavlc_neon 6 times faster
4368
4369commit d040d28514db7d1fbd5c3f06c37a77de14b15e5b [revision 2499]
4370Author: Janne Grunau <janne-x264@jannau.net>
4371Date: Fri Jul 25 11:53:17 2014 +0100
4372
4373 aarch64: implement x264_pixel_sa8d_satd_16x16_neon
4374
4375 ~20% faster than calling pixel_sa8d_16x16 and pixel_satd_16x16
4376 separately.
4377
4378commit 91a01d4ca95ee1c621578e118b86d767eab96b3b [revision 2498]
4379Author: Janne Grunau <janne-x264@jannau.net>
4380Date: Thu Aug 14 23:13:27 2014 +0200
4381
4382 aarch64: optimize x264_predict_8x8c_dc_left_neon
4383
4384 25% faster than the previous version.
4385
4386commit 8ae4e1cfa3d16451ccf285228d309f6f4940a747 [revision 2497]
4387Author: Henrik Gramner <henrik@gramner.com>
4388Date: Sat Aug 2 18:26:18 2014 +0200
4389
4390 x86: Make AVX2 also imply FMA3
4391
4392 All CPUs with AVX2 supports FMA3 (but not the other way around).
4393
4394commit 06882793b260824bc578d0530f64e7f30f2a9f39 [revision 2496]
4395Author: Anton Mitrofanov <BugMaster@narod.ru>
4396Date: Thu Nov 13 22:52:00 2014 +0300
4397
4398 Simplify libx264 API usage example
4399
4400commit 6a301b6ee0ae8c78fb704e1cd86f4e861070f641 [revision 2495]
4401Author: Henrik Gramner <henrik@gramner.com>
4402Date: Fri Nov 21 23:47:20 2014 +0100
4403
4404 AvxSynth: Remove a bunch of unused cruft
4405
4406commit 30140b34b879605cf70cab0634a4a8faef5b6e60 [revision 2494]
4407Author: Anton Mitrofanov <BugMaster@narod.ru>
4408Date: Wed Dec 3 22:36:12 2014 +0300
4409
4410 Fix bugs/typos in motion compensation and cache_load
4411
4412 Didn't affect output due to the incorrect values either not being used in the
4413 code path or producing equal results compared to the correct values.
4414
4415 Also deduplicate hpel_ref arrays.
4416
4417commit a46820e00ad3c86b80f5830ed92553de474b7d5c [revision 2493]
4418Author: Anton Mitrofanov <BugMaster@narod.ru>
4419Date: Sun Nov 30 23:39:28 2014 +0300
4420
4421 checkasm: Fix undefined behavior warnings
4422
4423commit 4e97ca566fdf6cd36281e26ee68f64993f4751a1 [revision 2492]
4424Author: Henrik Gramner <henrik@gramner.com>
4425Date: Sat Nov 29 18:47:52 2014 +0100
4426
4427 checkasm: Fix V210 reporting
4428
4429 It would previously report FAILED if any of the earlier plane_copy tests failed.
4430
4431commit 24e4fed388fcb34c33df7c87e7d6758b9ebed40c [revision 2491]
4432Author: Anton Mitrofanov <BugMaster@narod.ru>
4433Date: Sun Oct 12 21:01:53 2014 +0400
4434
4435 Safety check against malicious high bit-depth input which could cause crash
4436
4437commit 9bec6fed6d1b95f9921f22ba21e7398eff50b75e [revision 2490]
4438Author: Anton Mitrofanov <BugMaster@narod.ru>
4439Date: Sun Oct 12 20:45:40 2014 +0400
4440
4441 libx264 API usage example
4442
4443commit 329fe5f6498be7ab337d98ac22c17d379335c854 [revision 2489]
4444Author: Henrik Gramner <henrik@gramner.com>
4445Date: Fri Oct 17 21:35:42 2014 +0200
4446
4447 x86: AVX2 high bit-depth var_16x16
4448
4449 40->27 cycles on Haswell.
4450
4451commit 4576cfd8c391b27748d6f97f5b621cec4ed8047c [revision 2488]
4452Author: Henrik Gramner <henrik@gramner.com>
4453Date: Wed Oct 8 22:25:35 2014 +0200
4454
4455 checkasm: Serialize read_time() calls on x86
4456
4457 Improves the accuracy of benchmarks, especially in short functions.
4458
4459 To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
4460 "The RDTSC instruction is not a serializing instruction. It does not necessarily
4461 wait until all previous instructions have been executed before reading the counter.
4462 Similarly, subsequent instructions may begin execution before the read operation
4463 is performed. If software requires RDTSC to be executed only after all previous
4464 instructions have completed locally, it can either use RDTSCP (if the processor
4465 supports that instruction) or execute the sequence LFENCE;RDTSC."
4466
4467 RDTSCP would accomplish the same task, but it's only available since Nehalem.
4468
4469 This change makes SSE2 a requirement to run checkasm.
4470
4471commit b85a74a22f79c8722674c4cfd7cddf5f54c8421d [revision 2487]
4472Author: Vittorio Giovara <vittorio.giovara@gmail.com>
4473Date: Mon Sep 29 18:51:30 2014 +0100
4474
4475 Support case-independent string options
4476
4477commit 20f116b29e93574e9607d1abf2960f32b5730e52 [revision 2486]
4478Author: Anton Mitrofanov <BugMaster@narod.ru>
4479Date: Sat Sep 6 20:44:49 2014 +0400
4480
4481 Shut up gcc -Wuninitialized warnings
4482
4483commit 3df1d248dd8a4b0d0dffd149effe2bde38de49aa [revision 2485]
4484Author: Anton Mitrofanov <BugMaster@narod.ru>
4485Date: Fri Sep 5 19:43:52 2014 +0400
4486
4487 Shut up clang -Wuninitialized warning
4488
4489commit 01204b60367f4959e8393652dd30f0cfba2d2c80 [revision 2484]
4490Author: Anton Mitrofanov <BugMaster@narod.ru>
4491Date: Fri Sep 5 19:30:47 2014 +0400
4492
4493 Fix few clang -Wunused-* warnings
4494
4495commit 9df377f87702c82a2202d34919c07e32c60b40ae [revision 2483]
4496Author: Anton Mitrofanov <BugMaster@narod.ru>
4497Date: Thu Aug 28 20:13:13 2014 +0400
4498
4499 Fix inappropriate instruction use
4500
4501commit 73b8686fc22c9247d90963983d406cd7b9131068 [revision 2482]
4502Author: Anton Mitrofanov <BugMaster@narod.ru>
4503Date: Thu Aug 28 18:38:53 2014 +0400
4504
4505 x264asm: warn when inappropriate instruction used in function with specified cpuflags
4506
4507commit 204a9bd0a1bc507cbd69a77f3318afcb56ede65d [revision 2481]
4508Author: Anton Mitrofanov <BugMaster@narod.ru>
4509Date: Tue Sep 2 01:48:00 2014 +0400
4510
4511 Fix VBV with true VFR streams
4512
4513commit b36d44c68cddff00c5b6de1e6cb6a86c1af2cbfc [revision 2480]
4514Author: Anton Mitrofanov <BugMaster@narod.ru>
4515Date: Mon Sep 1 22:45:00 2014 +0400
4516
4517 Fix VBV
4518
4519commit dd79a61e0e354a432907f2d1f7137b27a12dfce7 [revision 2479]
4520Author: Anton Mitrofanov <BugMaster@narod.ru>
4521Date: Wed Jul 30 03:03:32 2014 +0400
4522
4523 Update to the current lavf API and fix memory leak when using --seek
4524
4525commit 91727d729a4a33a3f21188f838077040740cb353 [revision 2478]
4526Author: Henrik Gramner <henrik@gramner.com>
4527Date: Tue Aug 5 01:42:55 2014 +0200
4528
4529 x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags
4530
4531 Previously there was a limit of two cpuflags.
4532
4533commit d4317786b8428b00978459f6de3db219f0f6f8e6 [revision 2477]
4534Author: Henrik Gramner <henrik@gramner.com>
4535Date: Tue Aug 5 01:42:51 2014 +0200
4536
4537 x86: Minor pixel_ssim_end4 improvements
4538
4539 Reduce the number of vector registers used from 7 to 5.
4540 Eliminate some moves in the AVX implementation.
4541 Avoid bypass delays for transitioning between int and float domains.
4542
4543commit 98100b88b475227f375d9bcbaea0bac57008accc [revision 2476]
4544Author: Henrik Gramner <henrik@gramner.com>
4545Date: Tue Aug 5 01:42:47 2014 +0200
4546
4547 x86: Faster quant_4x4x4
4548
4549 Also drop the MMX version instead of doing a bunch of ifdeffery to support it after this change.
4550
4551commit 56fcb444c4c118ff67cf12838d2b2801d7b43407 [revision 2475]
4552Author: Anton Mitrofanov <BugMaster@narod.ru>
4553Date: Sun Aug 10 22:46:12 2014 +0400
4554
4555 configure: improve cc_check for clang and ICL to not ignore unknown options
4556
4557commit ecb04d08af654a7cfd5b9aa6261bd789de20613a [revision 2474]
4558Author: Henrik Gramner <henrik@gramner.com>
4559Date: Tue Aug 5 01:42:44 2014 +0200
4560
4561 checkasm: Only call x264_cpu_detect() once
4562
4563commit 1343db872b1d7d43dc7fb431a8207efb5ca31e2e [revision 2473]
4564Author: Janne Grunau <janne-x264@jannau.net>
4565Date: Fri Jul 18 14:49:10 2014 +0100
4566
4567 aarch64: deblocking NEON asm
4568
4569 Deblock chroma/luma are based on libav's h264 aarch64 NEON deblocking
4570 filter which was ported by me from the existing ARM NEON asm. No
4571 additional persons to ask for a relicense.
4572
4573commit 3c1fa5d9b2ea62f05473080313c543b7e795b307 [revision 2472]
4574Author: Janne Grunau <janne-x264@jannau.net>
4575Date: Fri Jul 18 09:29:35 2014 +0100
4576
4577 aarch64: intra predition NEON asm
4578
4579 Ported from the ARM NEON asm.
4580
4581commit 556b0e7928d14818454e0c33032754f6323f02e9 [revision 2471]
4582Author: Janne Grunau <janne-x264@jannau.net>
4583Date: Thu Jul 17 15:58:44 2014 +0100
4584
4585 aarch64: motion compensation NEON asm
4586
4587 Ported from the ARM NEON asm.
4588
4589commit 6cda439867fcd9e884a10502845fb79fc7ffed69 [revision 2470]
4590Author: Janne Grunau <janne-x264@jannau.net>
4591Date: Wed Jul 16 10:03:52 2014 +0100
4592
4593 aarch64: transform and zigzag NEON asm
4594
4595 Ported from the ARM NEON asm.
4596
4597commit db5c504aa06550f8e916157d1dcc657818e84d62 [revision 2469]
4598Author: Janne Grunau <janne-x264@jannau.net>
4599Date: Tue Jul 15 12:57:03 2014 +0100
4600
4601 aarch64: quantization and level-run NEON asm
4602
4603 Ported from the ARM NEON asm.
4604
4605commit f4a82a54885f3dad7106a6855eaef50ea085b27e [revision 2468]
4606Author: Janne Grunau <janne-x264@jannau.net>
4607Date: Wed Mar 19 13:48:21 2014 +0100
4608
4609 aarch64: pixel metrics NEON asm
4610
4611 Ported from the ARM NEON asm.
4612
4613commit 3e57554ee4db6ade7a2dccaac92cb8116f3a43d6 [revision 2467]
4614Author: Janne Grunau <janne-x264@jannau.net>
4615Date: Fri Jul 18 17:44:57 2014 +0200
4616
4617 aarch64: add utility functions for asm
4618
4619commit efaf0b88f7c703533ee8857a6a5039cf64bce3a0 [revision 2466]
4620Author: Janne Grunau <janne-x264@jannau.net>
4621Date: Wed Mar 19 13:45:17 2014 +0100
4622
4623 aarch64: add armv8 and neon cpu flags and test them
4624
4625commit 943128a527d1b98a63017d58cd1fcf53aaffcb6e [revision 2465]
4626Author: Janne Grunau <janne-x264@jannau.net>
4627Date: Tue Mar 18 22:10:24 2014 +0100
4628
4629 aarch64: initial build support
4630
4631commit ee427b69868d506182f4e22bffdc45e913f255af [revision 2464]
4632Author: Janne Grunau <janne-x264@jannau.net>
4633Date: Tue Jul 22 19:28:27 2014 +0200
4634
4635 checkasm: test zigzag_sub_8x8_{frame,field}
4636
4637commit 69740fd362ee1c0a2e80d6f4e2724d731a3c951c [revision 2463]
4638Author: Janne Grunau <janne-x264@jannau.net>
4639Date: Sun Jul 20 18:29:01 2014 +0200
4640
4641 arm: use long multiplication in mc_weight_w*_neon
4642
4643 9-19% faster on a cortex-a9.
4644
4645commit 0a05b3f9aa8c524a67119ec5eb6bcc24eb8f2f3b [revision 2462]
4646Author: Janne Grunau <janne-x264@jannau.net>
4647Date: Sun Jul 20 18:24:57 2014 +0200
4648
4649 arm: do not use aligned stores in mc_weight_w4_*neon
4650
4651 mc_weight_w4_*neon is also used for width 2 which does not guarantee
4652 4-byte aligned destination. Fixes crashes caused by random memory
4653 corruption.
4654
4655commit c2df1fc65c98e213c444134d5dbbb79d439af4db [revision 2461]
4656Author: Janne Grunau <janne-x264@jannau.net>
4657Date: Wed Apr 2 16:31:28 2014 +0200
4658
4659 checkasm: add memory clobber to read_time inline asm
4660
4661 The memory acts as compiler barrier preventing aggressive reordering
4662 of read_time calls. gcc 4.8 reorders some of initial read_time calls
4663 after the second when targeting arm.
4664
4665commit d72760401cb0602b8bf86037988e66cdc810681c [revision 2460]
4666Author: Janne Grunau <janne-x264@jannau.net>
4667Date: Sun Jul 20 13:32:10 2014 +0200
4668
4669 arm: check if the assembler supports the '.func' directive
4670
4671 The integrated assembler in llvm trunk (to be released as 3.5) is
4672 otherwise capable enough to assemble the arm asm correctly.
4673
4674commit 9463ec0004f1bddc49c05ed8e38430a4ce1738fb [revision 2459]
4675Author: Janne Grunau <janne-x264@jannau.net>
4676Date: Sun Jul 20 13:40:28 2014 +0200
4677
4678 arm/ppc: use $CC as default assembler
4679
4680commit feec4a478bfdfb4426268b2ee79bac473b97488c [revision 2458]
4681Author: Janne Grunau <janne-x264@jannau.net>
4682Date: Sun Jul 20 13:34:27 2014 +0200
4683
4684 arm: move instructions after '.rept' to separate line
4685
4686 The gas manual states "Repeat the sequence of lines between the .rept
4687 directive and the next .endr directive ...". GNU as seems to support
4688 instructions on the same line as .rept anyway but the integrated
4689 assembler in llvm trunk (to be released 3.5 in August 2014) does not.
4690
4691commit 6e8971021d2a12505cb2ad9ea677dfc8af676919 [revision 2457]
4692Author: Janne Grunau <janne-x264@jannau.net>
4693Date: Sun Jul 20 13:08:17 2014 +0200
4694
4695 arm: set .arch/.fpu from asm.S
4696
4697commit 716ee56d0b35e512e8e0ae1a3e71f26e65e86be3 [revision 2456]
4698Author: Janne Grunau <janne-x264@jannau.net>
4699Date: Sun Jul 20 12:55:53 2014 +0200
4700
4701 arm: do not append CFLAGS to ASFLAGS
4702
4703commit 021c0dc6c95c1bc239c9db78a80dd85fc856a4dd [revision 2455]
4704Author: Tristan Matthews <le.businessman@gmail.com>
4705Date: Thu Jul 17 00:03:50 2014 -0400
4706
4707 filters: fix sizeof mismatch
4708
4709commit 95beb822e61a8d84dba9743f4b20b4c303f26798 [revision 2454]
4710Author: Anton Mitrofanov <BugMaster@narod.ru>
4711Date: Thu Jul 31 16:17:32 2014 +0400
4712
4713 Fix memory leak when using select_every filter
4714
4715commit ea0ca51e94323318b95bd8b27b7f9438cdcf4d9e [revision 2453]
4716Author: Tsukasa OMOTO <henry0312@gmail.com>
4717Date: Sun Jul 20 22:17:11 2014 +0900
4718
4719 Fix cltostr.sh on OS X
4720
4721commit 08d36b3fc975d049aa3786ca34fb0b2f2ba0007c [revision 2452]
4722Author: Fiona Glaser <fiona@x264.com>
4723Date: Wed Jul 9 12:21:33 2014 -0700
4724
4725 Check pf_log is set in validate_parameters
4726
4727 Help remind people to call x264_param_default in case they didn't read the
4728 documentation.
4729
4730commit 9e93d18b7fe7668f8277b5f117d7e39be24c6070 [revision 2451]
4731Author: Anton Mitrofanov <BugMaster@narod.ru>
4732Date: Wed Jul 9 17:17:04 2014 +0400
4733
4734 Check malloc during frame dumping
4735
4736commit 8a85db879d57537f91a9908be3585512981c08b8 [revision 2450]
4737Author: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
4738Date: Thu Jun 19 05:21:29 2014 +0900
4739
4740 mp4_lsmash: Use new I/O API instead of deprecated one.
4741
4742commit f112c0e1cae71eb5b98b4f86f635f235cc7b81cb [revision 2449]
4743Author: Anton Mitrofanov <BugMaster@narod.ru>
4744Date: Sun Jun 8 22:19:46 2014 +0400
4745
4746 Remove meaningless use of abs()
4747
4748commit 6fbbb5b0c05a1d95cbd6efa7f01808ea87a39dc9 [revision 2448]
4749Author: Steven Walters <kemuri9@gmail.com>
4750Date: Sat May 31 10:31:16 2014 -0400
4751
4752 MSVS 2013 Update 2 support
4753
4754 The first MSVS compiler C99 compliant enough to build x264.
4755 Use `CC=cl ./configure` to compile with it.
4756
4757commit f53af048ed94551734265cf8f9dbe12d211a77fc [revision 2447]
4758Author: Diego Biurrun <diego@biurrun.de>
4759Date: Tue Apr 15 22:54:08 2014 +0200
4760
4761 configure: Add -Wno-maybe-uninitialized to CFLAGS
4762
4763 The warnings generated by -Wmaybe-uninitialized are mostly spurious.
4764
4765commit cbd8d7b6db1f29929d1ad347e15afe7828ad7055 [revision 2446]
4766Author: Diego Biurrun <diego@biurrun.de>
4767Date: Wed May 7 13:20:43 2014 +0200
4768
4769 build: Replace cltostr.pl by a shell script
4770
4771 This avoids a dependency on Perl to build OpenCL support.
4772
4773commit d8b6ce7f703d3c9d83dbd4e8ef44cfabc7e2f78e [revision 2445]
4774Author: Diego Biurrun <diego@biurrun.de>
4775Date: Tue Apr 15 23:02:39 2014 +0200
4776
4777 build: Simplify phony target declaration with wildcards
4778
4779 Also add etags to list of phony targets.
4780
4781commit 2bd932fdf053faace84028a66d8ba9e17d526456 [revision 2444]
4782Author: Diego Biurrun <diego@biurrun.de>
4783Date: Wed May 7 12:47:37 2014 +0200
4784
4785 configure: Drop workaround for obsolete gcc 4.2 on ARM
4786
4787commit 31311f254971e1da51d817cb580fc4fe1f4d5f20 [revision 2443]
4788Author: Diego Biurrun <diego@biurrun.de>
4789Date: Wed May 7 21:43:15 2014 +0200
4790
4791 build: Add dependencies on x86inc.asm/x86util.asm for all .asm files
4792
4793 This is a little bit overzealous, but errs on the side of caution.
4794 Generating full dependency information is also possible, but slightly
4795 slows down the build as YASM cannot do it as a sideeffect of compilation.
4796
4797commit 016831ec7b3a4a7062908243dbde62d7d89b334e [revision 2442]
4798Author: Diego Biurrun <diego@biurrun.de>
4799Date: Sun Apr 27 21:09:54 2014 +0200
4800
4801 Delete all SPARC optimizations
4802
4803 SPARC has been obsolete for a long time and makes little sense as a
4804 H.264 encoding platform.
4805
4806 Also update authors file.
4807
4808commit c7c8eb15923d1888bb87e7642a66b417fab61e76 [revision 2441]
4809Author: Diego Biurrun <diego@biurrun.de>
4810Date: Wed May 7 12:46:42 2014 +0200
4811
4812 configure: Don't check for libavcore
4813
4814 libavcore was a never-released bad idea with a short lifespan.
4815
4816commit dd5b5d3959e35c122c7709a9823a26b589c950da [revision 2440]
4817Author: Diego Biurrun <diego@biurrun.de>
4818Date: Sun Apr 27 23:19:04 2014 +0200
4819
4820 build: Set all ASFLAGS from within configure
4821
4822 This is how all other toolchain flags are handled.
4823
4824commit c15f20bd772487d863f01a2813a3ab45b1f11a6b [revision 2439]
4825Author: Diego Biurrun <diego@biurrun.de>
4826Date: Sun Apr 27 23:23:49 2014 +0200
4827
4828 opencl: Check return value of fread()
4829
4830 common/opencl.c:138:10: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]
4831
4832commit af8e768e2bd3b4398bca033998f83b0eb8874914 [revision 2438]
4833Author: Fiona Glaser <fiona@x264.com>
4834Date: Sat Jul 19 20:34:22 2014 -0700
4835
4836 Disable i8x8 in lossless
4837
4838 x264's implementation was slightly incorrect due to a vague spec, so some
4839 decoders decoded video incorrectly.
4840
4841 Minimal impact on compression.
4842
4843commit 450cf7ae2592ee0cb474bcefedf90c9911605e26 [revision 2437]
4844Author: Thomas Mundt <loudmax@yahoo.de>
4845Date: Fri Jun 27 11:12:06 2014 -0700
4846
4847 AVC-Intra: fix compatibility with Avid Transfermanager
4848
4849commit 6eb483e4ca23f34a6a8fe09f3f2e9c9f192fd76b [revision 2436]
4850Author: Henrik Gramner <henrik@gramner.com>
4851Date: Tue Jul 8 21:15:32 2014 +0200
4852
4853 x86: Fix SIGILL in high bit-depth intra_sad_x3_4x4_sse2
4854
4855 An SSE3 instruction was used in an SSE2 function.
4856
4857commit 5e58ce7a8b39ab66c7d6420b85a8e09dd08dfaaf [revision 2435]
4858Author: Anton Mitrofanov <BugMaster@narod.ru>
4859Date: Wed Jul 9 17:01:54 2014 +0400
4860
4861 Fix incorrect row predictor addressing
4862
4863 Somehow managed to not cause things to explode, but was clearly incorrect.
4864 Might improve VBV in some cases to have this working right.
4865
4866commit 3fda920e6f1e4a8f76680c001962542866408114 [revision 2434]
4867Author: Anton Mitrofanov <BugMaster@narod.ru>
4868Date: Sat Jun 21 23:52:39 2014 +0400
4869
4870 Fix b-pyramid MMCO remove for frame-packing==5
4871
4872commit 92fdb43dd47fbc3368d9d9c7ad940fbe03657bd3 [revision 2433]
4873Author: Tal Aloni <tal.aloni.il@gmail.com>
4874Date: Tue Jun 17 15:10:56 2014 -0700
4875
4876 Fix frame-packing==5 with some decoders
4877
4878 The spec mandates that frame-packing==5 requires the SEI on every frame that
4879 begins a view sequence (i.e. the input frames L0-R0-L1-R1 have 4 view sequences,
4880 but if reordered by the encoder to L0-L1-R0-R1 there are now 2 view sequences).
4881 For simplicity, we write the SEI on every frame.
4882
4883 This fixes frame-packing==5 3D playback on some decoders (PlayStation 3, Sony
4884 W8 series, possibly others).
4885
4886commit 13d6dfd83af98e472a9e9a8b6abf5c971707a893 [revision 2432]
4887Author: Anton Mitrofanov <BugMaster@narod.ru>
4888Date: Thu May 22 13:27:00 2014 +0400
4889
4890 Fix pixel_ssim_end4 asm function for x86_64 systems
4891
4892commit a5831aa256b3161f898d2577d2eb8daa838d88d2 [revision 2431]
4893Author: James Almer <jamrial@gmail.com>
4894Date: Wed Apr 9 03:33:06 2014 -0300
4895
4896 x86: XOP pixel_sad_{x3, x4} high bit-depth
4897
4898commit 0d989a4ff3298f9e495be452880b5f9bfb441e93 [revision 2430]
4899Author: James Almer <jamrial@gmail.com>
4900Date: Wed Apr 9 03:33:05 2014 -0300
4901
4902 x86: XOP pixel_ssd_nv12_core
4903
4904commit 9b77dffab04e3ea242598454282b40800e720353 [revision 2429]
4905Author: James Almer <jamrial@gmail.com>
4906Date: Wed Apr 9 03:33:04 2014 -0300
4907
4908 x86util: XOP optimized HADDD
4909
4910commit 1e517399f76b12fe2e73892970fe3aac01a178f8 [revision 2428]
4911Author: James Almer <jamrial@gmail.com>
4912Date: Wed Apr 9 03:33:03 2014 -0300
4913
4914 x86: add missing initialization for high bit-depth sa8d_satd
4915
4916commit aa00925abd6f9ab4e20216ae5a5ad79b67756162 [revision 2427]
4917Author: James Almer <jamrial@gmail.com>
4918Date: Sat Apr 5 23:46:31 2014 -0300
4919
4920 x86: add missing initializations for high bit-depth variance
4921
4922commit fadc4045f91ca78c046f301cba6065732b5d27ea [revision 2426]
4923Author: Janne Grunau <janne-x264@jannau.net>
4924Date: Tue Apr 1 22:11:45 2014 +0200
4925
4926 arm: use the weight_fn_t typedef for mc weight function arrays
4927
4928commit 644c396be97c1e6ace144f8be04afab19fb238af [revision 2425]
4929Author: Janne Grunau <janne-x264@jannau.net>
4930Date: Tue Apr 1 22:11:44 2014 +0200
4931
4932 arm: correct x264_mc_chroma_neon function declaration
4933
4934commit b2e9ca30f1e9ac25df1f592db04ff0d91faf42d4 [revision 2424]
4935Author: Janne Grunau <janne-x264@jannau.net>
4936Date: Tue Apr 1 22:11:43 2014 +0200
4937
4938 arm: do not export every asm function
4939
4940 Based on Libav's libavutil/arm/asm.S. Also prevents having the same
4941 label twice for every function on systems not defining EXTERN_ASM.
4942 Clang's integrated assembler does not like it.
4943
4944commit ceb1484da34b7492f539b535a930652690372fe5 [revision 2423]
4945Author: Janne Grunau <janne-x264@jannau.net>
4946Date: Tue Apr 1 22:11:42 2014 +0200
4947
4948 arm: move all .macro/.endm to column 0
4949
4950commit 24ab0e75db887c2b1a412d00878810ed6501061e [revision 2422]
4951Author: William Grant <wgrant@ubuntu.com>
4952Date: Sun Mar 23 09:21:52 2014 -0700
4953
4954 aarch64: require PIC in shared mode
4955
4956commit 435722c9c1870cd54fdb89be39250d492aecb598 [revision 2421]
4957Author: Janne Grunau <janne-x264@jannau.net>
4958Date: Sun Mar 16 17:21:58 2014 +0100
4959
4960 arm: x264_coeff_last8_arm
4961
4962 checkasm --bench on a coretex-a9:
4963 coeff_last8_c: 173
4964 coeff_last8_armv6: 151
4965
4966 60 instead of 73 cycles in ~130k runs on the same cpu while encoding.
4967
4968commit 2e96c571b8c324304b3d4fbb7914143518349213 [revision 2420]
4969Author: Janne Grunau <janne-x264@jannau.net>
4970Date: Sat Mar 15 20:09:18 2014 +0100
4971
4972 arm: x264_store_interleave_chroma_neon
4973
4974 store_interleave_chroma_c: 4036
4975 store_interleave_chroma_neon: 1043
4976
4977commit 1576e51e52148ad1e1d8b5e76562f9eae8d47e6e [revision 2419]
4978Author: Janne Grunau <janne-x264@jannau.net>
4979Date: Sat Mar 15 19:55:50 2014 +0100
4980
4981 arm: x264_plane_copy_interleave_neon
4982
4983 plane_copy_interleave_c: 40285
4984 plane_copy_interleave_neon: 10137
4985
4986commit 0016dec27080e53c794d7f919bd6df6b890d0128 [revision 2418]
4987Author: Janne Grunau <janne-x264@jannau.net>
4988Date: Sat Mar 15 19:21:12 2014 +0100
4989
4990 arm: x264_plane_copy_deinterleave_rgb_neon
4991
4992 plane_copy_deinterleave_rgb_c: 31543
4993 plane_copy_deinterleave_rgb_neon: 8312
4994
4995commit 5e0ca9aa4eab5e2cb4b124774c3ecebbc6f1ae35 [revision 2417]
4996Author: Janne Grunau <janne-x264@jannau.net>
4997Date: Sat Mar 15 18:22:49 2014 +0100
4998
4999 arm: load_deinterleave_chroma_f{dec,enc}_neon
5000
5001 load_deinterleave_chroma_fdec_c: 4055
5002 load_deinterleave_chroma_fdec_neon: 995
5003 load_deinterleave_chroma_fenc_c: 4071
5004 load_deinterleave_chroma_fenc_neon: 992
5005
5006commit c9a5ae0d219b6a28adebdb83faf89f291611f57b [revision 2416]
5007Author: Janne Grunau <janne-x264@jannau.net>
5008Date: Sat Mar 15 17:22:08 2014 +0100
5009
5010 arm: x264_plane_copy_deinterleave_neon
5011
5012 plane_copy_deinterleave_c: 42988
5013 plane_copy_deinterleave_neon: 10184
5014
5015commit c570be3ea9f24942c362e1c2402ec7fccbb5c330 [revision 2415]
5016Author: Janne Grunau <janne-x264@jannau.net>
5017Date: Sat Mar 15 13:29:41 2014 +0100
5018
5019 arm: implement deblock_strength_neon
5020
5021 Based on deblock_strength_avx.
5022
5023 checkasm --bench on a cortex-a9:
5024 deblock_strength_c: 14611
5025 deblock_strength_neon: 1848
5026
5027commit 2794ba5bb0007e0edf32d5325ca82cbf654f79b0 [revision 2414]
5028Author: Janne Grunau <janne-x264@jannau.net>
5029Date: Sat Mar 15 10:51:11 2014 +0100
5030
5031 arm: add missing macro instantiation for x264_pixel_avg_4x16_neon
5032
5033 checkasm --bench on a cortex-a9:
5034 avg_4x16_c: 8910
5035 avg_4x16_neon: 2091
5036
5037commit d6002ebace8194d17ee0ba607ff82c4f9075dd2d [revision 2413]
5038Author: Janne Grunau <janne-x264@jannau.net>
5039Date: Thu Mar 13 01:02:13 2014 +0100
5040
5041 arm: implement x264_predict_4x4_v_armv6
5042
5043 Alone probably not worth it but allows use of predict_4x4_dc|h_armv6
5044 in intra_sad|satd_x3_4x4_neon.
5045
5046commit d7e689680023e327de7e052e01e7faee30135799 [revision 2412]
5047Author: Roland Stigge <stigge@antcom.de>
5048Date: Sun Mar 23 09:29:37 2014 -0700
5049
5050 ppc: fix build on certain PowerPC variants without Altivec
5051
5052commit 863ea2a224cf7380c7a6ea9ae531e16b621cc0b7 [revision 2411]
5053Author: Anton Mitrofanov <BugMaster@narod.ru>
5054Date: Tue Apr 22 00:58:24 2014 +0400
5055
5056 Only add strip option '-s' for linker flags
5057
5058 Fixes some build warnings with clang.
5059
5060commit 4102614df9a11d66b506fb435132ddd0f88c6f94 [revision 2410]
5061Author: Tsukasa OMOTO <henry0312@gmail.com>
5062Date: Sat Mar 15 16:53:53 2014 +0900
5063
5064 configure: remove an unnecessary option from CFLAGS on OS X
5065
5066 Fixes Clang 3.4 compilation on OS X.
5067
5068commit b3fb718404d6cce9c82987ea2909cda5072d040c [revision 2409]
5069Author: Fiona Glaser <fiona@x264.com>
5070Date: Sun Feb 23 10:36:55 2014 -0800
5071
5072 Macroblock tree overhaul/optimization
5073
5074 Move the second core part of macroblock tree into an assembly function;
5075 SIMD-optimize roughly half of it (for x86). Roughly ~25-65% faster mbtree,
5076 depending on content.
5077
5078 Slightly change how mbtree handles the tradeoff between range and precision
5079 for propagation.
5080
5081 Overall a slight (but mostly negligible) effect on SSIM and ~2% faster.
5082
5083commit 00a00ccab316de3d50da6a82ba4af44dcb4655ec [revision 2408]
5084Author: Janne Grunau <janne-x264@jannau.net>
5085Date: Thu Mar 13 00:05:48 2014 +0100
5086
5087 arm: use available neon functions for intra_sa8d/sad/satd_x3
5088
5089 4% faster on main/medium, 15% faster on baseline/superfast on a cortex-a9.
5090
5091commit ac8f2e8a4cf21b2026957509bea8865ff7879fb4 [revision 2407]
5092Author: Janne Grunau <janne-x264@jannau.net>
5093Date: Wed Mar 12 14:35:31 2014 +0100
5094
5095 arm: implement x264_pixel_var2_8x16_neon
5096
5097 checkasm --bench on a cortex-a9:
5098 var2_8x16_c: 5677
5099 var2_8x16_neon: 1421
5100
5101commit 66836125beabdaff561da89ea1e18e566f5d202a [revision 2406]
5102Author: Janne Grunau <janne-x264@jannau.net>
5103Date: Wed Mar 12 13:16:00 2014 +0100
5104
5105 arm: implement x264_pixel_var_8x16_neon
5106
5107 checkasm --bench on a cortex-a9:
5108 var_8x16_c: 4306
5109 var_8x16_neon: 791
5110
5111commit a90ea34cf264d6b7733c5ffbe6d46882c306b50f [revision 2405]
5112Author: Henrik Gramner <henrik@gramner.com>
5113Date: Sun Feb 23 15:33:48 2014 +0100
5114
5115 x86: SSE2 and SSSE3 plane_copy_deinterleave_rgb
5116
5117 About 5.6x faster than C on Haswell.
5118
5119commit f032147ca69401165495a36cf7aba5b8c95ecb3b [revision 2404]
5120Author: Henrik Gramner <henrik@gramner.com>
5121Date: Sun Feb 16 21:24:54 2014 +0100
5122
5123 x86: Minor mbtree_propagate_cost improvements
5124
5125 Reduce the number of registers used from 7 to 6.
5126 Reduce the number of vector registers used by the AVX2 implementation from 8 to 7.
5127 Multiply fps_factor by 1/256 once per frame instead of once per macroblock row.
5128 Use mova instead of movu for dst since it's guaranteed to be aligned.
5129 Some cosmetics.
5130
5131commit 7c860f075ccd14fb7891d5fc6c9eab1a37ea555d [revision 2403]
5132Author: Henrik Gramner <henrik@gramner.com>
5133Date: Sun Feb 9 23:58:04 2014 +0100
5134
5135 x86inc: Support arbitrary stack alignments
5136
5137 If the stack is known to be at least 32-byte aligned we can safely store ymm
5138 registers on the stack without doing manual alignment.
5139
5140 Change ALLOC_STACK to always align the stack before allocating stack space for
5141 consistency. Previously alignment would occur either before or after allocating
5142 stack space depending on whether manual alignment was required or not.
5143
5144commit 039fab9203179f9e790abfd54ae5b2254ef803e7 [revision 2402]
5145Author: Anton Mitrofanov <BugMaster@narod.ru>
5146Date: Fri Feb 14 15:53:58 2014 +0400
5147
5148 x86inc: warn if XOP integer FMA instruction emulation is impossible
5149
5150 Emulation requires a temporary register if arguments 1 and 4 are the same; this
5151 doesn't obey the semantics of the original instruction, so we can't emulate
5152 that in x86inc.
5153
5154 ffmpeg has an x86util emulation for that case; I'll add it if x264's asm ever
5155 needs it.
5156
5157 Also add pmacsdql emulation.
5158
5159commit 974f2e78e0cb25e06fedbcfef70f80938f22988b [revision 2401]
5160Author: Loren Merritt <pengvado@akuvian.org>
5161Date: Sat Mar 1 02:57:56 2014 +0000
5162
5163 x86inc: free up variable name "n" in global namespace
5164
5165commit 8596dd36df38d33d402e848035b1bd31edc2c389 [revision 2400]
5166Author: Henrik Gramner <henrik@gramner.com>
5167Date: Wed Jan 22 19:09:12 2014 +0100
5168
5169 x86: Pass -Worphan-labels to yasm
5170
5171 Makes it easier to detect typos.
5172
5173commit 0bb3b2edb866dd852bb1f5faed88df4bdcf0c16f [revision 2399]
5174Author: Steve Lhomme <robux@videolan.org>
5175Date: Sun Feb 16 13:15:09 2014 +0100
5176
5177 Write 3D metadata when outputting Matroska
5178
5179 For when --frame-packing is set.
5180
5181commit f35e3fc26b99e1b3c943c131100fdfa4733fc932 [revision 2398]
5182Author: Anton Mitrofanov <BugMaster@narod.ru>
5183Date: Sun Feb 23 16:56:03 2014 +0400
5184
5185 Don't set chroma_loc_info_present_flag for non-4:2:0
5186
5187 The H.264 spec says it shouldn't be set in these cases.
5188
5189commit b7a50c16414631c8ff5e417da51b190c8999027e [revision 2397]
5190Author: Fiona Glaser <fiona@x264.com>
5191Date: Mon Mar 10 08:42:50 2014 -0700
5192
5193 x264.h: fix documentation
5194
5195 The full details of the return values of encoder_encode and encoder_headers
5196 were mistakenly removed a while ago; re-add them.
5197
5198commit de01d8821b59b85a01c8a89e544e0fed6488b958 [revision 2396]
5199Author: Anton Mitrofanov <BugMaster@narod.ru>
5200Date: Sun Feb 23 15:52:57 2014 +0400
5201
5202 Fix pointer cast warning for 64-bit builds
5203
5204commit 8b821ec19ba9425c120b8986a57ca7c6b9f088ed [revision 2395]
5205Author: Anton Mitrofanov <BugMaster@narod.ru>
5206Date: Mon Mar 10 16:48:02 2014 +0400
5207
5208 mbaff: fix mb_field_decoding_flag tracking and simplify allow skip check
5209
5210 Fixes an issue with too many forced non-skips in mbaff+cavlc, as well as
5211 non-deterministic output with mbaff+cavlc+sliced-threads.
5212
5213commit 850c8c5d6139df82e969d2174eebba69b479aa16 [revision 2394]
5214Author: Anton Mitrofanov <BugMaster@narod.ru>
5215Date: Mon Mar 10 03:22:57 2014 +0400
5216
5217 Fix memory overwrite in x264_deblock_h_chroma_mbaff_sse2
5218
5219 Fixes possible corruption with MBAFF+sliced threads.
5220
5221commit 19dddbcff73541ae15f8e57383ff1c6aa907d99d [revision 2393]
5222Author: Fiona Glaser <fiona@x264.com>
5223Date: Sun Mar 2 10:09:01 2014 -0800
5224
5225 Fix corruption with CAVLC overflow handling in MBAFF+main profile
5226
5227 Probably a regression in r2178.
5228
5229commit 48dbfa28201950f7e07e96a7d62b2951dd2dbe03 [revision 2392]
5230Author: Anton Mitrofanov <BugMaster@narod.ru>
5231Date: Mon Mar 10 21:17:19 2014 +0400
5232
5233 Fix checkasm --bench output when nop_cycles is too large
5234
5235commit ee8d5e4b51da99e576b5aea3008e70d1c7ed2372 [revision 2391]
5236Author: Anton Mitrofanov <BugMaster@narod.ru>
5237Date: Wed Jan 22 12:54:49 2014 +0400
5238
5239 Really fix quantization factor allocation
5240
5241 Actually allocate less (instead of just initialize less) and fix comments.
5242
5243commit 0d668be8d7525992c1c163c97551ee897e43c177 [revision 2390]
5244Author: Yu Xiaolei <dreifachstein@gmail.com>
5245Date: Sun Feb 23 04:12:51 2014 -0800
5246
5247 Fix build with Android NDK
5248
5249 Android NDK does not expose sched_getaffinity.
5250
5251commit 42d25196d423626c12794db3f66322c7a3f4375e [revision 2389]
5252Author: Loren Merritt <pengvado@akuvian.org>
5253Date: Thu Jan 16 13:34:46 2014 -0800
5254
5255 x86inc: speed up compilation with yasm
5256
5257 Work around yasm's inefficiency with handling large numbers of variables
5258 in the global scope.
5259
5260commit dd6a303498d1f55c73037ed925a6ece8e28a95bc [revision 2388]
5261Author: Kieran Kunhya <kieran@kunhya.com>
5262Date: Fri Jan 10 23:27:33 2014 +0000
5263
5264 Add support for AVC-Intra Class 200
5265
5266commit 41227fa2531d9263e481b80237d2d9ef6f5a450f [revision 2387]
5267Author: James Weaver <james.barrett@bbc.co.uk>
5268Date: Tue Jan 7 10:31:58 2014 +0000
5269
5270 v210 input support
5271
5272 Assembly based on code by Henrik Gramner and Loren Merritt.
5273
5274commit e2a9662751180b7dd2fe538913282ee800445445 [revision 2386]
5275Author: Fiona Glaser <fiona@x264.com>
5276Date: Tue Jan 21 13:39:33 2014 -0800
5277
5278 Fix quantization factor allocation
5279
5280 We don't need to wastefully allocate quant tables above QP_MAX_SPEC; they're
5281 never used.
5282
5283commit 8be6600d10a74ca241dbb27e096883ceed7b4082 [revision 2385]
5284Author: Henrik Gramner <henrik@gramner.com>
5285Date: Wed Jan 8 01:06:56 2014 +0100
5286
5287 Avoid some unneccesary memory loads in macroblock_encode
5288
5289commit 807aeaaae7351e4c2c536463e69dacaac218bccb [revision 2384]
5290Author: Henrik Gramner <henrik@gramner.com>
5291Date: Sun Jan 5 15:25:05 2014 +0100
5292
5293 Bump dates to 2014
5294
5295 Also update AUTHORS file and my e-mail address in the headers of various files.
5296
5297commit 02697d57d987f8d51a5c3ced5e5b81d7137012ee [revision 2383]
5298Author: Henrik Gramner <henrik@gramner.com>
5299Date: Mon Jan 6 00:18:31 2014 +0100
5300
5301 Remove tools/xyuv.c
5302
5303 It's an old stand-alone application that isn't relevant to x264.
5304
5305commit 7664014b2b490d81a66f2a13138182dfaaf4be06 [revision 2382]
5306Author: Anton Mitrofanov <BugMaster@narod.ru>
5307Date: Thu Nov 7 02:37:23 2013 +0400
5308
5309 Use 8x16c wrappers with x86 asm functions for 4:2:2 with high bit depth
5310
5311commit 6bc63417e10e135d8cd881495c71be72d322e1d3 [revision 2381]
5312Author: Henrik Gramner <henrik@gramner.com>
5313Date: Fri Dec 20 22:44:28 2013 +0100
5314
5315 CLI: Avoid redundant 16-bit upconversions in piped raw input
5316
5317 It's not possible to seek in pipes, so if we want to skip frames we have to read and
5318 discard unused ones. It's pointless to do bit-depth upconversions in those frames.
5319
5320commit 008c56ec467736bc5d3130ff890c618d28aa7511 [revision 2380]
5321Author: Anton Mitrofanov <BugMaster@narod.ru>
5322Date: Fri Jan 3 20:06:06 2014 +0400
5323
5324 Fix input support from named pipes in Windows
5325
5326commit 91481419e3acc4bb601600cf32e46e7f93ae02ab [revision 2379]
5327Author: Steve Clark <sclark@vgocom.com>
5328Date: Wed Nov 20 21:40:23 2013 +0400
5329
5330 Fix ARM asm compilation with Apple assembler
5331
5332commit a2f5d600bf866899db92e2dae40eb9fe46d44ade [revision 2378]
5333Author: Anton Mitrofanov <BugMaster@narod.ru>
5334Date: Wed Nov 13 19:24:48 2013 +0400
5335
5336 Fix uninitialized variable
5337
5338 Caused if the timebase is not specified in stats file. Found by Clang.
5339
5340commit 95d196ef2edde109cfb32f4baa9b0adc67e842e1 [revision 2377]
5341Author: Anton Mitrofanov <BugMaster@narod.ru>
5342Date: Sun Oct 27 19:27:23 2013 +0400
5343
5344 Remove --visualize option.
5345
5346 It probably wasn't used or maintained for last few years.
5347
5348commit 09c7010e3d13e66a241c0529b36ae3f7e1664ff4 [revision 2376]
5349Author: Anton Mitrofanov <BugMaster@narod.ru>
5350Date: Tue Oct 15 12:32:25 2013 +0400
5351
5352 Add L-SMASH support as preferable alternative for MP4-muxing
5353
5354commit c9f2bceb1f37aeaf6b7ed730f0fd210ef8725cab [revision 2375]
5355Author: Kieran Kunhya <kieran@kunhya.com>
5356Date: Sat Sep 21 19:16:12 2013 +0100
5357
5358 Add AVC-Intra 1080p50/60 Class 100 parameters
5359
5360 Also add some compatibility fixes.
5361
5362commit c084f6c029f016cf2024a2fc511825e82fb95865 [revision 2374]
5363Author: Fiona Glaser <fiona@x264.com>
5364Date: Mon Sep 9 12:37:59 2013 -0700
5365
5366 Add --filler option
5367
5368 Allows generation of hard-CBR streams without using NAL HRD.
5369 Useful if you want to be able to reconfigure the bitrate (which you can't do
5370 with NAL HRD on).
5371
5372commit 350b214c5abe7e82618ac46a14f23b7ab543045e [revision 2373]
5373Author: Anton Mitrofanov <BugMaster@narod.ru>
5374Date: Sun Oct 27 15:22:51 2013 +0400
5375
5376 Make x264_encoder_reconfig more threadsafe
5377
5378 Do the reconfig when the next frame's encode begins.
5379 Fixes some rare crashes with frame-threading and encoder_reconfig.
5380
5381commit 77cc44feea75106fae6d3113f6babbbe8cffba87 [revision 2372]
5382Author: Fiona Glaser <fiona@x264.com>
5383Date: Thu Oct 24 17:19:00 2013 -0700
5384
5385 chroma-me: take shortcut in BI analysis
5386
5387 ~100 cycles faster with subme>=9
5388
5389commit 7634f8c6047e9e12036778a8dc8d4cd4b06eebcb [revision 2371]
5390Author: Fiona Glaser <fiona@x264.com>
5391Date: Thu Oct 24 14:44:43 2013 -0700
5392
5393 CRF-max: don't warn if VBV underflow occurs
5394
5395 Only warn if underflow occurs for reasons other than CRF-max, as CRF-max
5396 implies that VBV underflow is desired by the user.
5397
5398commit 4b68633dc375fc372f160a3ae669a32e519b285a [revision 2370]
5399Author: Henrik Gramner <henrik@gramner.com>
5400Date: Fri Oct 18 22:43:36 2013 +0200
5401
5402 x86inc: Make ym# behave the same way as xm#
5403
5404 This makes more sense for future implementations of templates with zmm registers.
5405
5406commit b54422a858809f39c00fac46207bfa8ad16cdb28 [revision 2369]
5407Author: Henrik Gramner <henrik@gramner.com>
5408Date: Fri Oct 18 22:21:38 2013 +0200
5409
5410 Use calloc instead of malloc + memset
5411
5412commit 8b58a4ce52047b00f5892a9cdd92f9695a50a933 [revision 2368]
5413Author: Henrik Gramner <henrik@gramner.com>
5414Date: Thu Oct 10 16:54:12 2013 +0200
5415
5416 Replace gf_malloc with regular malloc in mp4 muxer
5417
5418 It was used as a workaround for a bug that only existed in the GPAC repository
5419 for a few weeks back in 2010. There's no reason to keep it anymore.
5420
5421commit 05f04384a10cb673abea7749cd319971c0017769 [revision 2367]
5422Author: Anton Mitrofanov <BugMaster@narod.ru>
5423Date: Tue Oct 8 23:20:40 2013 +0400
5424
5425 Update to current libav/ffmpeg API
5426
5427commit b7b6029f0e121b87fd96595b15d0c40fcd1b3bf1 [revision 2366]
5428Author: Rafaël Carré <funman@videolan.org>
5429Date: Fri Oct 25 07:12:24 2013 -0700
5430
5431 version.sh: change to use /bin/sh
5432
5433commit c3c73f13bb9ee60ccf40f85dbc11c91efac9d1e2 [revision 2365]
5434Author: Sean McGovern <gseanmcg@gmail.com>
5435Date: Wed Sep 4 14:15:00 2013 -0700
5436
5437 configure: don't generate a git version number if .git isn't present
5438
5439commit 12f9d499905199427a0196743c2cde56642d6d99 [revision 2364]
5440Author: Martin Storsjo <martin@martin.st>
5441Date: Tue Sep 3 14:56:18 2013 -0700
5442
5443 configure: include dependency libs in the Libs pkg-config
5444
5445 If only a static library is built, the user of the library that just
5446 tries to link to the lib using the flags provided by pkg-config
5447 might not know that only a static lib exists and that he'd have to
5448 pass --static to pkg-config to get the internal dependencies to
5449 be able to link the library.
5450
5451 For a shared build, the internal dependencies are kept in Libs.private
5452 as before.
5453
5454 This matches how libav's pkg-config files are generated.
5455
5456commit 03450be799dea03a83dad4dc833ef8ddd7f36b62 [revision 2363]
5457Author: Anton Mitrofanov <BugMaster@narod.ru>
5458Date: Fri Oct 18 00:38:06 2013 +0400
5459
5460 Fix compilation in case of HAVE_LOG2F check fails spuriously
5461
5462commit 266fdfcd4809afb018e45ab959d4a56a42712c88 [revision 2362]
5463Author: Anton Mitrofanov <BugMaster@narod.ru>
5464Date: Sat Oct 12 12:01:57 2013 +0400
5465
5466 Fix compilation of shared library for Windows with original MinGW toolchain
5467
5468commit 50a0c33b9b5fa57d0a129b7441a6af55f7a08005 [revision 2361]
5469Author: Anton Mitrofanov <BugMaster@narod.ru>
5470Date: Tue Oct 8 23:32:37 2013 +0400
5471
5472 Fix possible crashes in resize and crop filters with high bitdepth input
5473
5474commit 5b272b22d8f7511a4abece5a23ad25282bedaea8 [revision 2360]
5475Author: Tim Mooney <Tim.Mooney@ndsu.edu>
5476Date: Tue Sep 3 13:43:50 2013 -0700
5477
5478 Fix INSTALL in configure for Solaris systems
5479
5480commit 2fd292391a4d41b9fc65ee652b4663fdd9f8107e [revision 2359]
5481Author: Henrik Gramner <henrik@gramner.com>
5482Date: Wed Aug 28 00:50:31 2013 +0200
5483
5484 Workaround for FFMS indexing bug
5485
5486 If FFMS_ReadIndex is used with an empty index file it gets stuck in an infinite loop instead of returning NULL
5487 like it's supposed to do on failure. Explicitly check if the file is empty before calling it as a workaround.
5488
5489commit 5bcff2a62c050376ca54c5e5040d0529c89eb9f2 [revision 2358]
5490Author: Anton Mitrofanov <BugMaster@narod.ru>
5491Date: Mon Aug 26 21:20:31 2013 +0400
5492
5493 Fix masked access violation in KERNEL32
5494
5495 Caused crashes under gdb in Windows and might cause other unknown problems.
5496
5497commit 098b686e6397d5bb6b3a5c03cd918aa88216909f [revision 2357]
5498Author: Hiroki Taniura <boiled.sugar@gmail.com>
5499Date: Sun Aug 25 01:18:57 2013 +0900
5500
5501 Fix GPAC support on Windows
5502
5503commit fa3cac516cb71b8ece09cedbfd0ce631ca8a2a4c [revision 2356]
5504Author: Henrik Gramner <henrik@gramner.com>
5505Date: Sun Aug 11 19:50:42 2013 +0200
5506
5507 Windows Unicode support
5508
5509 Windows, unlike most other operating systems, uses UTF-16 for Unicode strings while x264 is designed for UTF-8.
5510
5511 This patch does the following in order to handle things like Unicode filenames:
5512 * Keep strings internally as UTF-8.
5513 * Retrieve the CLI command line as UTF-16 and convert it to UTF-8.
5514 * Always use Unicode versions of Windows API functions and convert strings to UTF-16 when calling them.
5515 * Attempt to use legacy 8.3 short filenames for external libraries without Unicode support.
5516
5517commit 9b94896b3735052cabb52d081de3b50020a077cb [revision 2355]
5518Author: Kieran Kunhya <kierank@ob-encoder.com>
5519Date: Sat Jul 20 18:47:59 2013 +0100
5520
5521 AVC-Intra support
5522
5523 This format has been reverse engineered and x264's output has almost exactly
5524 the same bitstream as Panasonic cameras and encoders produce. It therefore does
5525 not comply with SMPTE RP2027 since Panasonic themselves do not comply with
5526 their own specification. It has been tested in Avid, Premiere, Edius and
5527 Quantel.
5528
5529 Parts of this patch were written by Fiona Glaser and some reverse
5530 engineering was done by Joseph Artsimovich.
5531
5532commit fa1e2b746d95575b5c5b8e49fcfcad3ded9a5420 [revision 2354]
5533Author: Henrik Gramner <henrik@gramner.com>
5534Date: Mon Jul 8 12:06:42 2013 -0700
5535
5536 Transparent hugepage support
5537
5538 Combine frame and mb data mallocs into a single large malloc.
5539 Additionally, on Linux systems with hugepage support, ask for hugepages on
5540 large mallocs.
5541
5542 This gives a small performance improvement (~0.2-0.9%) on systems without
5543 hugepage support, as well as a small memory footprint reduction.
5544
5545 On recent Linux kernels with hugepage support enabled (set to madvise or
5546 always), it improves performance up to 4% at the cost of about 7-12% more
5547 memory usage on typical settings..
5548
5549 It may help even more on Haswell and other recent CPUs with improved 2MB page
5550 support in hardware.
5551
5552commit e33aac9aba5c6b9c867b92f14c7722152680a61a [revision 2353]
5553Author: Henrik Gramner <henrik@gramner.com>
5554Date: Fri Jul 5 21:15:54 2013 +0200
5555
5556 x86: SSSE3 implementation of pixel_sad_x3 and pixel_sad_x4
5557
5558commit 4becc3e9e031c4207698846369aac2bef1480d15 [revision 2352]
5559Author: Henrik Gramner <henrik@gramner.com>
5560Date: Fri Jul 5 21:15:49 2013 +0200
5561
5562 x86: Faster AVX2 pixel_sad_x3 and pixel_sad_x4
5563
5564commit 401edc3ab08f95777d495b38030e2108d7d3f0b4 [revision 2351]
5565Author: Diogo Franco <diogomfranco@gmail.com>
5566Date: Tue Jul 23 22:17:44 2013 -0300
5567
5568 configure: Support cygwin64
5569
5570commit adc99d17d8c1fbc164fae8319b40d7c45f30314e [revision 2350]
5571Author: Derek Buitenhuis <derek.buitenhuis@gmail.com>
5572Date: Fri Aug 9 13:39:27 2013 -0400
5573
5574 x86inc: Check for __OUTPUT_FORMAT__ having a value of "x64"
5575
5576 This is also a valid value for WIN64.
5577
5578commit 1430b04988c3bb344e104c974ed3aa825035c0ec [revision 2349]
5579Author: Anton Mitrofanov <BugMaster@narod.ru>
5580Date: Tue Jul 23 14:11:50 2013 -0700
5581
5582 Fix cases in which intra refresh allowed prediction from disallowed pixels
5583
5584commit a6c396f0fe01f453de115ba0d8c4aa26138aa6b4 [revision 2348]
5585Author: Anton Mitrofanov <BugMaster@narod.ru>
5586Date: Wed Aug 7 01:56:34 2013 +0400
5587
5588 Fix a few minor bugs found with a static analyzer
5589
5590commit 2d66c7c2471801aa946517226739e9150f6c1948 [revision 2347]
5591Author: Fiona Glaser <fiona@x264.com>
5592Date: Fri Jul 12 16:07:35 2013 -0700
5593
5594 Fix AVX2 detection bug with "limit CPUID" enabled in BIOS
5595
5596commit ff41804efd4caec120fc9e1b90ad226035f75aaa [revision 2346]
5597Author: Henrik Gramner <henrik@gramner.com>
5598Date: Fri Jul 5 21:15:43 2013 +0200
5599
5600 x86: Remove X264_CPU_SSE_MISALIGN functions
5601
5602 Prevents a crash if the misaligned exception mask bit is cleared for some reason.
5603
5604 Misaligned SSE functions are only used on AMD Phenom CPUs and the benefit is miniscule.
5605 They also require modifying the MXCSR control register and by removing those functions
5606 we can get rid of that complexity altogether.
5607
5608 VEX-encoded instructions also supports unaligned memory operands. I tried adding AVX
5609 implementations of all removed functions but there were no performance improvements on
5610 Ivy Bridge. pixel_sad_x3 and pixel_sad_x4 had significant code size reductions though
5611 so I kept them and added some minor cosmetics fixes and tweaks.
5612
5613commit 01087fdbf2042095cb36458fd5c5efab3f4b3a37 [revision 2345]
5614Author: Fiona Glaser <fiona@x264.com>
5615Date: Thu Jun 20 15:51:39 2013 -0700
5616
5617 Tweak i16x16-delta-quant-avoidance code
5618
5619 Don't omit the delta quant if it'd raise the quantizer to do so; this fixes
5620 a rare flickering issue caused by deblocking.
5621
5622commit bfa2f0c44cec2e41fbd7566edb55e405f6c5a49d [revision 2344]
5623Author: Fiona Glaser <fiona@x264.com>
5624Date: Sun Jun 9 09:06:27 2013 -0700
5625
5626 x86: faster AVX2 iDCT, AVX deblock_luma_h, deblock_luma_h_intra
5627
5628commit 397f60e7f23e2c6ec2cb9b168ebb75cc42983dd7 [revision 2343]
5629Author: Lucien <astrataro@gmail.com>
5630Date: Mon Jun 17 18:28:09 2013 +0000
5631
5632 Add new color primaries, transfer characteristics, matrix coefficients
5633
5634commit fa215fc9d77d131595e8b1eda0fc4e9da62c1f94 [revision 2342]
5635Author: Fiona Glaser <fiona@x264.com>
5636Date: Fri May 31 17:01:29 2013 -0700
5637
5638 Add "--stitchable" option for segmented encoding
5639
5640 Stops x264 from attempting to optimize global stream headers, ensuring that
5641 different segments of a video will have identical headers when used with
5642 identical encoding settings.
5643
5644commit 9143d5ad966a3864597009ba1f1befe87328ec61 [revision 2341]
5645Author: Fiona Glaser <fiona@x264.com>
5646Date: Thu Jun 27 08:29:06 2013 -0700
5647
5648 Interface: if vbv-maxrate < bitrate, set bitrate = vbv-maxrate
5649
5650 This probably makes more sense to the user than setting vbv-maxrate = bitrate,
5651 as before.
5652
5653commit 83d35c7bc4332e4dd27ba7b8baf96f8743c52a8b [revision 2340]
5654Author: Anton Mitrofanov <Bugmaster@narod.ru>
5655Date: Tue May 28 05:02:42 2013 -0700
5656
5657 OpenCL cosmetics
5658
5659commit ffc3ad4945da69f3caa2b40e4eed715a9a8d9526 [revision 2339]
5660Author: Anton Mitrofanov <BugMaster@narod.ru>
5661Date: Tue Jun 18 00:16:33 2013 +0400
5662
5663 Fix possible crash when writing very large filler NALUs
5664
5665 Bitstream-reallocation function didn't handle the case of filler.
5666
5667commit 25ef3f5fdbfca0f9a5ff8a97b8475e7f8b4c9202 [revision 2338]
5668Author: Loren Merritt <pengvado@akuvian.org>
5669Date: Mon Jun 17 11:27:09 2013 -0700
5670
5671 Fix build with PIC on some systems
5672
5673commit c41b629d4831cde47a8c0cde435041cc3b996d85 [revision 2337]
5674Author: Henrik Gramner <henrik@gramner.com>
5675Date: Sun Jun 2 18:41:17 2013 +0200
5676
5677 Fix potential misaligment crash in AVX2 denoise_dct
5678
5679commit e32d9c21339cbb021d6c9ad5897bfde09dcdb63a [revision 2336]
5680Author: Anton Mitrofanov <BugMaster@narod.ru>
5681Date: Tue May 28 01:48:15 2013 +0400
5682
5683 Fix building with compilers without inline asm support
5684
5685 Also fix crash in high bit depth builds compiled with unaligned stack.
5686
5687commit 3b8e924639ac67a4beb0ebe9b9663de03cdce84d [revision 2335]
5688Author: Anton Mitrofanov <BugMaster@narod.ru>
5689Date: Wed May 22 22:43:59 2013 +0400
5690
5691 Fix compilation with OpenCL on MacOS X
5692
5693 Also fix crash in the case of OpenCL error during encoding.
5694
5695commit 3aa9a67b6d62bcf11ee69397647230700a32044b [revision 2334]
5696Author: Anton Mitrofanov <BugMaster@narod.ru>
5697Date: Mon May 6 22:51:11 2013 +0400
5698
5699 OpenCL support improvement/refactoring
5700
5701 Autoload the OpenCL library so that it's not required to run an openCL-enabled
5702 build of x264.
5703
5704 Update X264_BUILD, which should have been changed with the first patch.
5705
5706commit 0b2c3d35c168011e73300da5fdc690e00a8238e0 [revision 2333]
5707Author: Fiona Glaser <fiona@x264.com>
5708Date: Thu May 16 13:51:37 2013 -0700
5709
5710 x86: shave a few instructions off AVX deblock
5711
5712commit e7cb328580c3e1bd7604a64f40abf3e03c474771 [revision 2332]
5713Author: Henrik Gramner <henrik@gramner.com>
5714Date: Tue May 14 18:57:40 2013 +0200
5715
5716 x86: AVX2 dequant_4x4_dc
5717
5718commit edf31ed3577f35e7ed3934dd74be474f9d22384a [revision 2331]
5719Author: Henrik Gramner <henrik@gramner.com>
5720Date: Tue May 14 18:53:12 2013 +0200
5721
5722 x86: AVX2 high bit-depth dequant
5723
5724commit bc88d1bb331ee061c38bea80f7a54a76797c31d0 [revision 2330]
5725Author: Fiona Glaser <fiona@x264.com>
5726Date: Thu May 9 17:20:05 2013 -0700
5727
5728 x86-64: 64-bit variant of AVX2 hpel_filter
5729
5730 ~5% faster than 32-bit.
5731
5732commit 89f067b7cacecf413569e84c6c973c23f67b1ad3 [revision 2329]
5733Author: Henrik Gramner <henrik@gramner.com>
5734Date: Mon May 6 18:41:24 2013 +0200
5735
5736 x86: AVX2 high bit-depth denoise_dct
5737
5738 28->15 cycles
5739
5740 Also reorder instructions to use fewer registers, 3 cycles faster on Ivy Bridge with 64-bit Windows.
5741
5742commit 481e4cdb52989e4b514a2f4345870a19c5c0ae92 [revision 2328]
5743Author: Henrik Gramner <henrik@gramner.com>
5744Date: Sat May 4 18:48:58 2013 +0200
5745
5746 x86: AVX2 high bit-depth quant
5747
5748 quant_4x4: 13->6 cycles
5749 quant_4x4_dc: 14->8 cycles
5750 quant_8x8: 47->24 cycles
5751 quant_4x4x4: 48->25 cycles
5752
5753commit 02aa1368da5c222c8833724abccddd8f02630fc6 [revision 2327]
5754Author: Fiona Glaser <fiona@x264.com>
5755Date: Wed May 1 14:32:11 2013 -0700
5756
5757 x86: AVX2 add16x16_idct_dc
5758
5759 27 -> 19 cycles
5760
5761commit 0c00c2c7882de130184e02cf1861599aedb425e8 [revision 2326]
5762Author: Fiona Glaser <fiona@x264.com>
5763Date: Mon Apr 29 16:16:54 2013 -0700
5764
5765 x86: faster AVX2 quant_4x4x4
5766
5767 10->9 cycles
5768
5769commit af6647e0e7d647c660003f65b78b4f1a0b186ec2 [revision 2325]
5770Author: Fiona Glaser <fiona@x264.com>
5771Date: Sat Apr 27 21:03:32 2013 -0700
5772
5773 x86: AVX2 intra_sad_x3_8x8c
5774
5775 30->22 cycles
5776
5777commit f114746df6ce6a1bcacf46c62b696cc309ab4527 [revision 2324]
5778Author: Henrik Gramner <henrik@gramner.com>
5779Date: Sun Apr 28 11:11:03 2013 +0200
5780
5781 x86: AVX2 high bit-depth intra_sad_x3_8x8
5782
5783 43->24 cycles
5784
5785commit 8e4f045f815a59ca3d6398ff4ddae7af44766dc8 [revision 2323]
5786Author: Fiona Glaser <fiona@x264.com>
5787Date: Wed Apr 24 14:22:15 2013 -0700
5788
5789 x86: AVX2 deblock strength
5790
5791 30->18 cycles
5792
5793commit 594dd84cb85e616f4e260f7fdef6ce5a34360ac7 [revision 2322]
5794Author: Henrik Gramner <henrik@gramner.com>
5795Date: Wed May 1 17:42:48 2013 +0200
5796
5797 x86: Faster high bit-depth intra_sad_x3_4x4
5798
5799 20->16 cycles on Ivy Bridge
5800
5801commit a8384178bd917576469da040923976cb531be38c [revision 2321]
5802Author: Fiona Glaser <fiona@x264.com>
5803Date: Tue Apr 30 17:36:46 2013 -0700
5804
5805 x86: faster SSSE3 hpel
5806
5807 ~7% faster using the pmulhrsw trick from mc_chroma.
5808
5809commit 1f5a32c2459ed6f42d9c150d008e3471d61af3ee [revision 2320]
5810Author: Fiona Glaser <fiona@x264.com>
5811Date: Mon Apr 29 14:22:23 2013 -0700
5812
5813 x86-64: faster SSSE3 trellis
5814
5815 ~2% faster trellis.
5816
5817commit 7cbb27f0ce5ea3e756c628ac606f65d7de57f285 [revision 2319]
5818Author: Fiona Glaser <fiona@x264.com>
5819Date: Thu May 2 17:10:26 2013 -0700
5820
5821 x86: 32-byte align the stack if possible
5822
5823 Avoids the need for manual 32 byte array alignment on compilers that support
5824 -mpreferred-stack-boundary.
5825
5826commit 30c91f62906ce08b5d227002b38ebd64f1291fae [revision 2318]
5827Author: Henrik Gramner <henrik@gramner.com>
5828Date: Sat May 11 23:39:09 2013 +0200
5829
5830 x86inc: Utilize the shadow space on 64-bit Windows
5831
5832 Store XMM6 and XMM7 in the shadow space in functions that clobbers them.
5833 This way we don't have to adjust the stack pointer as often,
5834 reducing the number of instructions as well as code size.
5835
5836commit 33c352673900bd1b362bb2fe0284e999fccd633d [revision 2317]
5837Author: Henrik Gramner <henrik@gramner.com>
5838Date: Fri May 3 23:06:10 2013 +0200
5839
5840 x86: Don't use explicitly aligned versions of SAD on AVX CPUs
5841
5842 On modern CPUs movdqu isn't slower than movdqa when used on aligned data and using the same code in both cases saves cache.
5843
5844 This was already done for the high bit-depth AVX2 implementation but the aligned version still exists as dead code so remove that.
5845
5846commit 16d037211f1dd032288e25ab74d93a569fd93d6c [revision 2316]
5847Author: Henrik Gramner <henrik@gramner.com>
5848Date: Fri May 3 20:18:03 2013 +0200
5849
5850 x86: Add missing initializations for high bit-depth sad_aligned
5851
5852commit 25e219ad2565e52a6962eb1e16cf19f3482e655b [revision 2315]
5853Author: Fiona Glaser <fiona@x264.com>
5854Date: Mon May 13 16:52:18 2013 -0700
5855
5856 x86: add Jaguar CPU detection
5857
5858commit c1e37099627b1dc2f15b295aa4c2eedd431a6dba [revision 2314]
5859Author: Henrik Gramner <henrik@gramner.com>
5860Date: Tue May 7 17:21:03 2013 +0200
5861
5862 x86inc: Remove .rodata kludges
5863
5864 The Mach-O bug was fixed in yasm 0.8.0 and we don't support versions that old.
5865
5866 a.out was superseded by ELF on sane systems a few decades ago.
5867
5868commit 5444e95a5c9ee866625b1122a19dbae6bf044008 [revision 2313]
5869Author: Henrik Gramner <henrik@gramner.com>
5870Date: Sat May 4 16:21:32 2013 +0200
5871
5872 checkasm: Use 64-bit cycle counters
5873
5874 Prevents overflows that can occur in some cases.
5875
5876commit 0e000e7a763c9bb5c14257bad365144025013fc9 [revision 2312]
5877Author: Henrik Gramner <henrik@gramner.com>
5878Date: Fri May 10 13:55:32 2013 +0200
5879
5880 checkasm: Fix stack alignment bug
5881
5882commit 3ba0fb847b1a14f9db5f3dabe209eee2d4edc91d [revision 2311]
5883Author: Fiona Glaser <fiona@x264.com>
5884Date: Wed May 8 10:48:41 2013 -0700
5885
5886 Fix invalid memcpy in sliced-threads
5887
5888 Likely didn't actually break in practice, but memcpy with src==dst
5889 is incorrect.
5890
5891commit 7f3606572957b63f1169bc793ed55bccdb549d56 [revision 2310]
5892Author: Fiona Glaser <fiona@x264.com>
5893Date: Mon Apr 29 12:14:01 2013 -0700
5894
5895 Fix two bugs in slice-min-mbs and slices-max
5896
5897 Slices-max broke slice-max-size when slice-max wasn't used.
5898 Slice-min-mbs broke in rare cases near the end of a threadslice.
5899
5900commit 67d6f602018d0fc1cb05cd6240e4fe1c2646169f [revision 2309]
5901Author: Fiona Glaser <fiona@x264.com>
5902Date: Thu Apr 4 18:00:23 2013 -0700
5903
5904 x86: SSSE3 LUT-based faster coeff_level_run
5905
5906 ~2x faster coeff_level_run.
5907 Faster CAVLC encoding: {1%,2%,7%} overall with {superfast,medium,slower}.
5908 Uses the same pshufb LUT abuse trick as in the previous ads_mvs patch.
5909
5910commit c17d12f83381913650d84004815c20a1f7092144 [revision 2308]
5911Author: Fiona Glaser <fiona@x264.com>
5912Date: Mon Mar 25 14:03:37 2013 -0700
5913
5914 x86-64: BMI2 cabac_residual functions
5915
5916commit 40316f836d42cb5aee8de5ae6b4a5e417d8446f8 [revision 2307]
5917Author: Fiona Glaser <fiona@x264.com>
5918Date: Wed Mar 20 15:08:35 2013 -0700
5919
5920 x86: SSSE3 ads_mvs
5921
5922 ~55% faster ads in benchasm, ~15-30% in real encoding.
5923 ~4% faster "placebo" preset overall.
5924
5925commit 03396f82bd1a709aa83d15de0affd0c4c5bd621d [revision 2306]
5926Author: Henrik Gramner <henrik@gramner.com>
5927Date: Tue Apr 16 23:27:53 2013 +0200
5928
5929 x86: AVX2 pixel_ssd_nv12_core
5930
5931commit dc05aebbc51b64b6cf3cfa95a1fbb20f6ffe94c6 [revision 2305]
5932Author: Henrik Gramner <henrik@gramner.com>
5933Date: Tue Apr 16 23:27:50 2013 +0200
5934
5935 x86: AVX2 high bit-depth pixel_ssd
5936
5937commit f49c2eba352a9087301dfc3c3de902ab083bd9e9 [revision 2304]
5938Author: Henrik Gramner <henrik@gramner.com>
5939Date: Tue Apr 16 23:27:46 2013 +0200
5940
5941 x86: AVX2 high bit-depth pixel_sad_x3/pixel_sad_x4
5942
5943 Also reduce the number of xmm registers used by sse2/ssse3 pixel_sad_x3.
5944
5945commit 0e69048d4f9664f1293c5eed0604522c67adaff5 [revision 2303]
5946Author: Henrik Gramner <henrik@gramner.com>
5947Date: Tue Apr 16 23:27:43 2013 +0200
5948
5949 x86: AVX2 high bit-depth vsad
5950
5951commit 9f885c112d6566388d472da68ada0301ce330311 [revision 2302]
5952Author: Henrik Gramner <henrik@gramner.com>
5953Date: Tue Apr 16 23:27:39 2013 +0200
5954
5955 x86: AVX2 high bit-depth pixel_sad
5956
5957 Also use loops instead of duplicating code; reduces code size by ~10kB with
5958 negligible effect on performance.
5959
5960commit 295f83af2afa93073d7810ab96b1d8d889a53ed2 [revision 2301]
5961Author: Henrik Gramner <henrik@gramner.com>
5962Date: Tue Apr 16 23:27:35 2013 +0200
5963
5964 x86: AVX2 high_bit_depth pixel_avg2, get_ref, mc_copy_w16, mc_luma
5965
5966 Also reduce the number of xmm registers used by mc_copy_* to avoid
5967 saving and restoring xmm6 and xmm7 on 64-bit Windows.
5968
5969commit e7a46b6536ab3ea4806f585b771b6cbb261031d1 [revision 2300]
5970Author: Henrik Gramner <henrik@gramner.com>
5971Date: Tue Apr 16 23:27:32 2013 +0200
5972
5973 x86: AVX2 nal_escape
5974
5975 Also rewrite the entire function to be faster and drop the AVX version which is no longer useful.
5976
5977commit 547a6573af56afe8d551201245775c6ba179e781 [revision 2299]
5978Author: Henrik Gramner <henrik@gramner.com>
5979Date: Tue Apr 16 23:27:29 2013 +0200
5980
5981 x86: AVX memzero_aligned
5982
5983commit 0f776f63daf47eac9b69ef77aaf7c9c16213cba9 [revision 2298]
5984Author: Henrik Gramner <henrik@gramner.com>
5985Date: Tue Apr 16 23:27:25 2013 +0200
5986
5987 x86: AVX2 predict_16x16_dc
5988
5989commit 97ad171ae33c51f48e6214abdf7c978e4dd5d2d1 [revision 2297]
5990Author: Henrik Gramner <henrik@gramner.com>
5991Date: Tue Apr 16 23:27:22 2013 +0200
5992
5993 x86: AVX2 predict_8x8c_p/predict_8x16c_p
5994
5995commit 8ecdeb2709b4b7095237330e68e9a76ea8060a2f [revision 2296]
5996Author: Henrik Gramner <henrik@gramner.com>
5997Date: Tue Apr 16 23:27:18 2013 +0200
5998
5999 x86: AVX2 predict_16x16_p
6000
6001 Also fix the AVX implementation to correctly use the SSSE3 inline asm
6002 instead of SSE2.
6003
6004commit f3d521da8163bb9a381284ef0b5c949b8a5c9f9c [revision 2295]
6005Author: Henrik Gramner <henrik@gramner.com>
6006Date: Tue Apr 16 23:27:14 2013 +0200
6007
6008 x86: AVX high bit-depth predict_16x16_v
6009
6010 Also restructure some code to reduce code size of various functions,
6011 especially in high bit-depth.
6012
6013commit fa40b44f339501917e7a7c003ab826bf3e7b6a10 [revision 2294]
6014Author: Henrik Gramner <henrik@gramner.com>
6015Date: Tue Apr 16 23:27:08 2013 +0200
6016
6017 x86: AVX2 high bit-depth predict_4x4_h
6018
6019commit 7908dc632330b6028ab7dae42834e2098e628b24 [revision 2293]
6020Author: Henrik Gramner <henrik@gramner.com>
6021Date: Tue Apr 16 23:27:04 2013 +0200
6022
6023 x86: AVX2 high bit-depth predict_16x16_h
6024
6025commit 51708c3e193438439aaeaf31c377b070ca403e0e [revision 2292]
6026Author: Henrik Gramner <henrik@gramner.com>
6027Date: Tue Apr 16 23:27:00 2013 +0200
6028
6029 x86: AVX2 high bit-depth predict_8x8c_h/predict_8x16c_h
6030
6031commit 184c50554ae95aa60edd3fa309ca8013e00a8648 [revision 2291]
6032Author: Henrik Gramner <henrik@gramner.com>
6033Date: Tue Apr 16 23:26:47 2013 +0200
6034
6035 x86util: Support ymm registers in HADD macros
6036
6037commit 0ea5be852e97d8cfdf04e384a8a78210f87c2dc0 [revision 2290]
6038Author: Fiona Glaser <fiona@x264.com>
6039Date: Tue Feb 26 16:26:34 2013 -0800
6040
6041 x86: more AVX2 framework, AVX2 functions, plus some existing asm tweaks
6042
6043 AVX2 functions:
6044 mc_chroma
6045 intra_sad_x3_16x16
6046 last64
6047 ads
6048 hpel
6049 dct4
6050 idct4
6051 sub16x16_dct8
6052 quant_4x4x4
6053 quant_4x4
6054 quant_4x4_dc
6055 quant_8x8
6056 SAD_X3/X4
6057 SATD
6058 var
6059 var2
6060 SSD
6061 zigzag interleave
6062 weightp
6063 weightb
6064 intra_sad_8x8_x9
6065 decimate
6066 integral
6067 hadamard_ac
6068 sa8d_satd
6069 sa8d
6070 lowres_init
6071 denoise
6072
6073commit 19e1a2bbf2d1aaa15ea2d2c118b0236ff64b4bd1 [revision 2289]
6074Author: Loren Merritt <pengvado@akuvian.org>
6075Date: Mon Feb 25 21:16:45 2013 +0000
6076
6077 x86inc: create xm# and ym#, analagous to m#
6078
6079 For when we want to mix simd sizes within one function.
6080
6081commit 3a8dfb2bc62be21215b6f7d47c53c5a912878656 [revision 2288]
6082Author: Fiona Glaser <fiona@x264.com>
6083Date: Fri Apr 5 16:08:35 2013 -0700
6084
6085 x86inc: fix AVX emulation of cmp(p|s)(s|d)
6086
6087commit a3f5c7326c0aa707ccbd5a938a0b65581888b549 [revision 2287]
6088Author: Fiona Glaser <fiona@x264.com>
6089Date: Tue Feb 5 17:15:00 2013 -0800
6090
6091 x86-64: cabac_block_residual assembly
6092
6093 RDO: ~20% faster than C
6094 Bitstream: ~50% faster than C
6095 1-2% faster overall, highest on preset superfast/fast/medium.
6096
6097commit f49a1b2ef6d95d8f0f186df0fc3bfe38414e264f [revision 2286]
6098Author: Steve Borho <steve@borho.org>
6099Date: Thu Feb 21 12:48:40 2013 -0600
6100
6101 OpenCL lookahead
6102
6103 OpenCL support is compiled in by default, but must be enabled at runtime by an
6104 --opencl command line flag. Compiling OpenCL support requires perl. To avoid
6105 the perl requirement use: configure --disable-opencl.
6106
6107 When enabled, the lookahead thread is mostly off-loaded to an OpenCL capable GPU
6108 device. Lowres intra cost prediction, lowres motion search (including subpel)
6109 and bidir cost predictions are all done on the GPU. MB-tree and final slice
6110 decisions are still done by the CPU. Presets which do not use a threaded
6111 lookahead will not use OpenCL at all (superfast, ultrafast).
6112
6113 Because of data dependencies, the GPU must use an iterative motion search which
6114 performs more total work than the CPU would do, so this is not work efficient
6115 or power efficient. But if there are spare GPU cycles to spare, it can often
6116 speed up the encode. Output quality when OpenCL lookahead is enabled is often
6117 very slightly worse in quality than the CPU quality (because of the same data
6118 dependencies).
6119
6120 x264 must compile its OpenCL kernels for your device before running them, and in
6121 order to avoid doing this every run it caches the compiled kernel binary in a
6122 file named x264_lookahead.clbin (--opencl-clbin FNAME to override). The cache
6123 file will be ignored if the device, driver, or OpenCL source are changed.
6124
6125 x264 will use the first GPU device which supports the required cl_image
6126 features required by its kernels. Most modern discrete GPUs and all AMD
6127 integrated GPUs will work. Intel integrated GPUs (up to IvyBridge) do not
6128 support those necessary features. Use --opencl-device N to specify a number of
6129 capable GPUs to skip during device detection.
6130
6131 Switchable graphics environments (e.g. AMD Enduro) are currently not supported,
6132 as some have bugs in their OpenCL drivers that cause output to be silently
6133 incorrect.
6134
6135 Developed by MulticoreWare with support from AMD and Telestream.
6136
6137commit 2d0c47a50622ec59ade303cf150c21b8910a2bce [revision 2285]
6138Author: Fiona Glaser <fiona@x264.com>
6139Date: Mon Mar 4 15:19:47 2013 -0800
6140
6141 weightp: improve scale/offset search, chroma
6142
6143 Rescale the scale factor if the offset clips. This makes weightp more effective
6144 in fades to/from white (and an other situation that requires big offsets).
6145
6146 Search more than 1 scale factor and more than 1 offset, depending on --subme.
6147
6148 Try to find the optimal chroma denominator instead of hardcoding it.
6149
6150 Overall improvement: a few percent in fade-heavy clips, such as a sample from
6151 Avatar: TLA.
6152
6153commit 732e4f7e8b9ab6d214cbcf059445b4712709faa4 [revision 2284]
6154Author: Fiona Glaser <fiona@x264.com>
6155Date: Tue Feb 19 13:48:44 2013 -0800
6156
6157 Add slices-max feature
6158
6159 The H.264 spec technically has limits on the number of slices per frame. x264
6160 normally ignores this, since most use-cases that require large numbers of
6161 slices prefer it to. However, certain decoders may break with extremely large
6162 numbers of slices, as can occur with some slice-max-size/mbs settings.
6163
6164 When set, x264 will refuse to create any slices beyond the maximum number,
6165 even if slice-max-size/mbs requires otherwise.
6166
6167commit fdfffa3058cb590765dbb34afa5706755dcb5319 [revision 2283]
6168Author: Fiona Glaser <fiona@x264.com>
6169Date: Thu Feb 14 17:22:02 2013 -0800
6170
6171 Add slice-min-mbs feature
6172
6173 Works in conjunction with slice-max-mbs and/or slice-max-size to avoid overly
6174 small slices.
6175 Useful with certain decoders that barf on extremely small slices.
6176
6177 If slice-min-mbs would be violated as a result of slice-max-size, x264 will
6178 exceed slice-max-size and print a warning.
6179
6180commit 8a3a41de9e5f54cb6e7b5c69486e50471a5c022d [revision 2282]
6181Author: Anton Mitrofanov <BugMaster@narod.ru>
6182Date: Tue Mar 26 18:56:21 2013 +0400
6183
6184 Disable mbtree asm with cpu-independent option
6185
6186 Results vary between versions because of different rounding results.
6187
6188commit bf52bab4e5607d7f3d98b3999a13cb8149aeef1c [revision 2281]
6189Author: Anton Mitrofanov <BugMaster@narod.ru>
6190Date: Tue Mar 26 18:30:00 2013 +0400
6191
6192 Show "avs: no" --disable-avs option instead of empty string
6193
6194commit e74287e93b0ee7afb384624f60dc440b736fec6b [revision 2280]
6195Author: Tim Walker <tdskywalker@gmail.com>
6196Date: Tue Mar 19 23:42:43 2013 +0100
6197
6198 lavf input: don't use deprecated AVStream fields
6199
6200 Fixes building against newer libavcodecs from the Libav project.
6201
6202commit aa73459b710f4c08b654d69573c22fd2fc2a99f8 [revision 2279]
6203Author: Anton Mitrofanov <BugMaster@narod.ru>
6204Date: Tue Mar 26 19:54:36 2013 +0400
6205
6206 Fix y4m input with C420paldv colorspace
6207
6208commit 42c500af62fbe09e7a55ecd47fc72331fbe4ae02 [revision 2278]
6209Author: Fiona Glaser <fiona@x264.com>
6210Date: Sat Mar 2 01:22:29 2013 -0800
6211
6212 x86: correctly check stack alignment for Atom hadamard_ac
6213
6214 Regression in r2265 (only affected compilers with broken stack alignment,
6215 like ICL on win32).
6216
6217commit bed18d0e4545e7528bf585a1a3c7fbc05ddbafa4 [revision 2277]
6218Author: Loren Merritt <pengvado@akuvian.org>
6219Date: Mon Feb 25 21:23:55 2013 +0000
6220
6221 x86inc: fix some corner cases of SWAP
6222
6223 SWAP with >=3 named (rather than numbered) args
6224 PERMUTE followed by SWAP with 2 named args
6225 used to produce the wrong permutation
6226
6227commit 3cdaca1ac2f6022b1affcd24eff397a03b59fce3 [revision 2276]
6228Author: Fiona Glaser <fiona@x264.com>
6229Date: Wed Feb 27 13:30:22 2013 -0800
6230
6231 Fix array overreads that caused miscompilation in gcc 4.8
6232
6233commit 37033444036210ddab75c3ec5b9b5c2a5abb9d52 [revision 2275]
6234Author: Fiona Glaser <fiona@x264.com>
6235Date: Thu Feb 28 13:32:37 2013 -0800
6236
6237 Fix undefined behavior in x264_ratecontrol_mb
6238
6239commit cb4547aefb624105b622368aad62c947f89cc4b1 [revision 2274]
6240Author: Stefan Groenroos <stefan.gronroos@gmail.com>
6241Date: Fri Mar 1 22:35:34 2013 +0200
6242
6243 ARM: Fix bug in x264_quant_4x4x4_neon
6244
6245 Regression in r2273.
6246
6247commit 3a8baa0ec68c50db3194ed778d0e744d6311cda3 [revision 2273]
6248Author: Stefan Groenroos <stefan.gronroos@gmail.com>
6249Date: Mon Feb 25 23:43:09 2013 +0200
6250
6251 ARM: update NEON mc_chroma to work with NV12 and re-enable it
6252
6253 Up to 10-15% faster overall.
6254
6255commit 215f2beeadb2ade3a318b397f25b8a6ad3a761d1 [revision 2272]
6256Author: Fiona Glaser <fiona@x264.com>
6257Date: Thu Feb 14 15:00:48 2013 -0800
6258
6259 CABAC/CAVLC: use the new bit-iterating macro here too
6260
6261commit 993c81e94eebaacddbbfcec665831d07d89490b7 [revision 2271]
6262Author: Fiona Glaser <fiona@x264.com>
6263Date: Fri Feb 8 15:34:38 2013 -0800
6264
6265 quant_4x4x4: quant one 8x8 block at a time
6266
6267 This reduces overhead and lets us use less branchy code for zigzag, dequant,
6268 decimate, and so on.
6269 Reorganize and optimize a lot of macroblock_encode using this new function.
6270 ~1-2% faster overall.
6271
6272 Includes NEON and x86 versions of the new function.
6273 Using larger merged functions like this will also make wider SIMD, like
6274 AVX2, more effective.
6275
6276commit 5ee1d03a8b86915d98b165d067dce377df3a87ba [revision 2270]
6277Author: Stephen Hutchinson <qyot27@gmail.com>
6278Date: Tue Feb 12 21:55:43 2013 -0500
6279
6280 Add AvxSynth support to the AviSynth input module.
6281
6282 Uses dlopen to load AvxSynth on Linux and OS X.
6283
6284 Allows the use of --demuxer avs for AvxSynth, though the only source filter it
6285 can currently use is FFMS2.
6286
6287 Add a local copy of avxsynth_c.h and its dependent headers in extras/ so that
6288 users don't need to actually have AvxSynth development headers installed to
6289 enable support for it (mirroring the AviSynth behavior).
6290
6291 Based on a patch by 0x09 (tab@lavabit.com)
6292
6293commit 7b1301e946218cfe6e072fea03702754ee0cc8a6 [revision 2269]
6294Author: Fiona Glaser <fiona@x264.com>
6295Date: Fri Feb 8 00:13:15 2013 -0800
6296
6297 Eliminate some branchiness in ME/analysis
6298
6299 Faster, fewer branch mispredictions.
6300
6301commit 7de9a9aa4bc06843dd7d8afe6bc42c02e27b6b73 [revision 2268]
6302Author: Fiona Glaser <fiona@x264.com>
6303Date: Wed Feb 6 16:55:39 2013 -0800
6304
6305 Fix some store forwarding stalls
6306 There's quite a few others, but most of them don't help to fix or there's no
6307 easy way to avoid them.
6308
6309commit 68a6268bae989c55a02b7e86b169bd1a02793a95 [revision 2267]
6310Author: Fiona Glaser <fiona@x264.com>
6311Date: Tue Feb 5 01:23:23 2013 -0800
6312
6313 x86: faster AVX satd/sa8d/sa8d_satd/hadamard_ac
6314
6315 Use Conroe-style movddup in AVX transforms; both Sandy Bridge and Bulldozer
6316 do movddup in the load unit, so it's totally free this way.
6317
6318 On Sandy Bridge:
6319 ~6% faster sa8d_satd
6320 ~5% faster hadamard_ac
6321 ~9% faster 32-bit satd
6322 ~2% faster sa8d
6323
6324commit 5d60b9c9ad794a666d0cfe0dd9d66d5b9f58e033 [revision 2266]
6325Author: Fiona Glaser <fiona@x264.com>
6326Date: Sat Feb 2 12:37:08 2013 -0800
6327
6328 x86: detect Bobcat, improve Atom optimizations, reorganize flags
6329
6330 The Bobcat has a 64-bit SIMD unit reminiscent of the Athlon 64; detect this
6331 and apply the appropriate flags.
6332
6333 It also has an extremely slow palignr instruction; create a flag for this to
6334 avoid massive penalties on palignr-heavy functions.
6335
6336 Improve Atom function selection and document exactly what the SLOW_ATOM flag
6337 covers.
6338
6339 Add Atom-optimized SATD/SA8D/hadamard_ac functions: simply combine the ssse3
6340 optimizations with the sse2 algorithm to avoid pmaddubsw, which is slow on
6341 Atom along with other SIMD multiplies.
6342
6343 Drop TBM detection; it'll probably never be useful for x264.
6344
6345 Invert FastShuffle to SlowShuffle; it only ever applied to one CPU (Conroe).
6346
6347 Detect CMOV, to fail more gracefully when run on a chip with MMX2 but no CMOV.
6348
6349commit 75d927053ef5546eb011ff5a5ac19152dd4e3c63 [revision 2265]
6350Author: Oskar Arvidsson <oskar@irock.se>
6351Date: Sat Jan 19 01:47:09 2013 +0100
6352
6353 x86: combined SA8D/SATD dsp function
6354
6355 Speedup is most apparent for 8-bit (~30%), but gives some improvements
6356 for 10-bit too (~12%).
6357 64-bit only for now.
6358
6359commit 790c648d939240808659228f57a22633fc59d6d8 [revision 2264]
6360Author: Oskar Arvidsson <oskar@irock.se>
6361Date: Tue Jan 29 23:44:32 2013 +0100
6362
6363 x86: port SSE2+ SATD functions to high bit depth
6364
6365 Makes SATD 20-50% faster across all partition sizes but 4x4.
6366
6367commit 93bf1248f7409958818b281e3e6ecca75ddb8d86 [revision 2263]
6368Author: Oskar Arvidsson <oskar@irock.se>
6369Date: Wed Feb 6 02:07:53 2013 +0100
6370
6371 x86: faster high bit depth ssd
6372
6373 About 15% faster on average.
6374
6375commit 6371c3a527a337c7521912990c89d0474288e105 [revision 2262]
6376Author: Fiona Glaser <fiona@x264.com>
6377Date: Fri Jan 18 22:55:46 2013 -0800
6378
6379 x86: optimize and clean up predictor checking
6380 Branchlessly handle elimination of candidates in MMX roundclip asm.
6381 Add a new asm function, similar to roundclip, except without the round part.
6382 Optimize and organize the C code, and make both subme>=3 and subme<3 consistent.
6383 Add lots of explanatory comments and try to make things a little more understandable.
6384 ~5-10% faster with subme>=3, ~15-20% faster with subme<3.
6385
6386commit 004640653ded52f447ffdb71a45b334dc8e6f3d1 [revision 2261]
6387Author: Fiona Glaser <fiona@x264.com>
6388Date: Tue Jan 22 12:31:55 2013 -0800
6389
6390 Fix two bugs in predictor checking
6391 pmv wasn't checked properly in some cases, as well as zero vector.
6392 Output-changing portion of the following patch.
6393
6394commit d2a9d25429b6843874865a37a5b4f6b401d89abc [revision 2260]
6395Author: Fiona Glaser <fiona@x264.com>
6396Date: Thu Jan 10 13:15:52 2013 -0800
6397
6398 Improve lookahead-threads auto selection
6399 Smarter decision to improve fast-first-pass performance in 2-pass encodes.
6400 Dramatically improves CPU utilization on multi-core systems.
6401
6402 Tested on a quad-core Ivy Bridge (12 threads, 1080p):
6403 Fast first pass:
6404 veryfast: ~7% faster
6405 faster: ~11% faster
6406 fast/medium: ~15% faster
6407 slow/slower: ~42% faster
6408 veryslow: ~55% faster
6409 CRF/1-pass:
6410 veryfast: ~9% faster
6411 (all others remained the same)
6412
6413commit 5a764328bdeba650d99fc8db47275708cce79521 [revision 2259]
6414Author: Henrik Gramner <henrik@gramner.com>
6415Date: Sun Jan 27 23:01:59 2013 +0100
6416
6417 x86: Use SSE instead of SSE2 for copying data
6418
6419 Reduces code size because movaps/movups is one byte shorter than movdqa/movdqu.
6420 Also merge MMX and SSE versions of memcpy_aligned into a single macro.
6421
6422commit c3983b811f42ae5e4bc4f9c1c919f8e548fc76e3 [revision 2258]
6423Author: Henrik Gramner <henrik@gramner.com>
6424Date: Sun Jan 13 18:27:08 2013 +0100
6425
6426 64-bit cabac optimizations
6427
6428 ~4% faster PIC
6429
6430 WIN64:
6431 ~3% faster and 16 byte shorter cabac_encode_bypass
6432 ~8% faster cabac_encode_terminal
6433 Benchmarked on Ivy Bridge
6434
6435 UNIX64:
6436 One instruction less in cabac_encode_bypass
6437
6438commit f6e0d28ae1bccbda43d95200162f7035661fe1e4 [revision 2257]
6439Author: Mike Gorchak <mike.gorchak.qnx@gmail.com>
6440Date: Sat Feb 2 23:35:00 2013 -0800
6441
6442 configure: add QNX support
6443
6444commit 5e0fca86444840752eaedbdc5ebfe4ac0b3a0053 [revision 2256]
6445Author: Henrik Gramner <henrik@gramner.com>
6446Date: Sun Jan 20 19:35:06 2013 +0100
6447
6448 Windows: Enable DEP and ASLR
6449
6450commit 5ec5c78920914a88da415c57904fa01c99deeb7b [revision 2255]
6451Author: Henrik Gramner <henrik@gramner.com>
6452Date: Thu Jan 17 19:17:24 2013 +0100
6453
6454 x86inc: Set ELF hidden visibility for global constants
6455
6456commit fd2c4a06c3a4eb02fc1375de782bc5d36eb1d744 [revision 2254]
6457Author: Diego Biurrun <diego@biurrun.de>
6458Date: Thu Jan 17 11:18:31 2013 +0100
6459
6460 x86inc: Add cvisible macro for C functions with public prefix
6461
6462 This allows defining externally visible library symbols.
6463
6464 Signed-off-by: Diego Biurrun <diego@biurrun.de>
6465
6466commit faf3dbe616c8339590409c9aa25777fa76c987a6 [revision 2253]
6467Author: Diego Biurrun <diego@biurrun.de>
6468Date: Thu Jan 17 11:30:37 2013 -0800
6469
6470 x86inc: rename program_name to private_prefix
6471 Synced from libav.
6472 The new name is more descriptive and will allow defining a separate public
6473 prefix for externally visible library symbols.
6474
6475commit 32695340b0e93e3cc7edd1b5e7db064d94cd3701 [revision 2252]
6476Author: Fiona Glaser <fiona@x264.com>
6477Date: Mon Jan 14 05:35:30 2013 -0800
6478
6479 x264.h: improve x264_encoder_reconfig documentation
6480
6481commit 6a82e49370e46914ab479d57548508ccf29da6e5 [revision 2251]
6482Author: Henrik Gramner <henrik@gramner.com>
6483Date: Sat Feb 16 19:36:50 2013 +0100
6484
6485 Cosmetics: stricter definition of parameterless functions
6486
6487commit b671762973a162705ceacf924a29999cdc6d35d2 [revision 2250]
6488Author: Neil <neilpiken@gmail.com>
6489Date: Mon Jan 28 10:47:38 2013 +0800
6490
6491 Update "Install and compile x264" in doc/regression_test.txt
6492
6493commit 43ff8f1681c1cca997ca916508723abea85d0fa2 [revision 2249]
6494Author: Anton Mitrofanov <BugMaster@narod.ru>
6495Date: Thu Jan 24 12:11:26 2013 +0400
6496
6497 Fix possible non-determinism with mbtree + open-gop + sync-lookahead
6498
6499 Code assumed keyframe analysis would only pull one frame off the list; this
6500 isn't true with open-gop.
6501
6502commit c2c2a95708685156a643e920b497d48597e0267c [revision 2248]
6503Author: Anton Mitrofanov <BugMaster@narod.ru>
6504Date: Mon Feb 25 19:28:19 2013 +0400
6505
6506 x86: don't use the red zone on win64
6507
6508commit 5743b19a8264415ab3ed443abd2fefd81a038d6a [revision 2247]
6509Author: Fiona Glaser <fiona@x264.com>
6510Date: Sun Feb 10 16:12:34 2013 -0800
6511
6512 x86-64: fix trellis asm with interlacing
6513
6514 Regression in r2145.
6515 Assembly assumed array was [2][64] when it was actually [2][63].
6516 Tiny (~0.1%) compression improvement.
6517
6518commit 9475e6ac48af90e526611b5f11a2690fa077b0ba [revision 2246]
6519Author: Ronald S. Bultje <rsbultje@gmail.com>
6520Date: Wed Jan 30 09:48:14 2013 -0800
6521
6522 x86-32: use simple nop codes for <= sse
6523
6524 The "CentaurHauls family 6 model 9 stepping 8" family of CPUs (flags:
6525 fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse up rng
6526 rng_en ace ace_en) SIGILLs on long nop codes.
6527
6528commit 732b072ae236b57cabdbc3b31cd7b482d1f9f9ff [revision 2245]
6529Author: Loren Merritt <pengvado@akuvian.org>
6530Date: Tue Jan 8 21:30:57 2013 +0000
6531
6532 Bump dates to 2013
6533
6534commit f2b4f29c636d5e5c223650c5b22bd8089adfcab9 [revision 2244]
6535Author: Henrik Gramner <hengar-6@student.ltu.se>
6536Date: Mon Dec 17 21:54:00 2012 +0100
6537
6538 x86inc: Drop tzcnt workaround
6539
6540 It is no longer needed now that we've bumped the version requirement of yasm to 1.2.0.
6541
6542commit ccda1ba4d8d902945c68aa25ec20867055d1b079 [revision 2243]
6543Author: Fiona Glaser <fiona@x264.com>
6544Date: Mon Nov 12 10:28:53 2012 -0800
6545
6546 AVX2/FMA3 version of mbtree_propagate
6547 First AVX2 function for testing.
6548 Bump yasm version to 1.2.0 for AVX2 support.
6549
6550commit 8a9608bbbdf77ceb3ee537271549111468175a2b [revision 2242]
6551Author: Henrik Gramner <hengar-6@student.ltu.se>
6552Date: Tue Dec 11 16:05:34 2012 +0100
6553
6554 x86inc: Use VEX-encoded instructions in AVX functions
6555 Automatically use VEX-encoding in AVX/AVX2/XOP/FMA3/FMA4 functions for all instructions that exists in a VEX-encoded version.
6556 This change makes it easier to extend existing code to use AVX2.
6557 Also add support for AVX emulation of a few instructions that were missing before.
6558
6559commit 4cf272851a9d24aacdf664f27a87ebdbfb50e6c2 [revision 2241]
6560Author: Loren Merritt <pengvado@akuvian.org>
6561Date: Sun Dec 2 15:56:30 2012 +0000
6562
6563 x86inc: activate REP_RET automatically
6564 Now RET checks whether it immediately follows a branch, so the programmer dosen't have to keep track of that condition.
6565 REP_RET is still needed manually when it's a branch target, but that's much rarer.
6566 The implementation involves lots of spurious labels, but that's ok because we strip them.
6567
6568commit b073e870d135ac27cd97d624330abf0f1fb1ed41 [revision 2240]
6569Author: Ronald S. Bultje <rsbultje@gmail.com>
6570Date: Thu Dec 6 15:40:13 2012 -0800
6571
6572 x86inc: support stack mem allocation and re-alignment in PROLOGUE
6573 Use this in 8-bit loopfilter functions so they can be used if
6574 there is no aligned stack (e.g. x86-32 MSVC or ICC 10.x).
6575
6576commit 9d5ec55b34a4d4f2e044fbc67e2e12a59ea27d2a [revision 2239]
6577Author: Henrik Gramner <hengar-6@student.ltu.se>
6578Date: Mon Dec 17 22:15:02 2012 +0100
6579
6580 Update config.guess and config.sub
6581
6582commit 8eddd52b6d5d638709c5c8278c420eac68a8dde1 [revision 2238]
6583Author: Anton Mitrofanov <BugMaster@narod.ru>
6584Date: Tue Jan 8 13:29:49 2013 -0800
6585
6586 Fix crash if the first frame is forced to a non-keyframe
6587 This is obviously bad user input, but x264 shouldn't crash if it happens.
6588
6589commit 05c1646333f567aa3de5f7669693b15ee667825d [revision 2237]
6590Author: Bernhard Rosenkränzer <bernhard.rosenkranzer@linaro.org>
6591Date: Sun Dec 30 12:18:00 2012 -0800
6592
6593 Fix build on ARM with binutils >= 2.23.51.0.6
6594 GAS doesn't seem to like spaces in vld1 anymore, so remove those.
6595
6596commit 23829dd2b2c909855481f46cc884b3c25d92c2d7 [revision 2236]
6597Author: Anton Mitrofanov <BugMaster@narod.ru>
6598Date: Fri Nov 23 18:26:53 2012 +0400
6599
6600 Fix pthread_join emulation on win32 and BeOS
6601 Doesn't actually affect x264, but it's more correct.
6602
6603commit 042fdd3e6a0e271f62a108da2a1a244dee936045 [revision 2235]
6604Author: Fiona Glaser <fiona@x264.com>
6605Date: Tue Nov 27 07:50:51 2012 -0800
6606
6607 Fix typo in r2222
6608 Slightly wrong numbers in level table.
6609
6610commit cd71765c0ba574bb573e75396ef3c6a5c4c00469 [revision 2234]
6611Author: Sergio Basto <sergio@serjux.com>
6612Date: Thu Nov 22 18:02:50 2012 -0800
6613
6614 configure: fix gpac detection with -Wp,-D_FORTIFY_SOURCE=2
6615
6616commit 12458a23d1374836fecbed381dfe55513b5ba119 [revision 2233]
6617Author: Sean McGovern <gseanmcg@gmail.com>
6618Date: Thu Nov 22 18:01:16 2012 -0800
6619
6620 Solaris: use sysconf to get processor count
6621 Solaris responds correctly to the same value as Cygwin, so let's use that.
6622
6623commit 0db80bee2765676c2e0e4be21afc2ace900a606c [revision 2232]
6624Author: Anton Khirnov <anton@khirnov.net>
6625Date: Tue Nov 13 21:01:24 2012 +0100
6626
6627 lavf input: allocate AVFrame correctly
6628 Allocate AVFrames correctly with avcodec_alloc_frame().
6629 This caused crashes with newer libavcodecs that try to free frame extradata.
6630
6631commit 144b79159ad20954a7faec1023451a630a65aea1 [revision 2231]
6632Author: Anton Mitrofanov <BugMaster@narod.ru>
6633Date: Sun Nov 11 03:44:02 2012 +0400
6634
6635 Fix crash when using libx264.dll compiled with ICL for X86_64
6636
6637commit bfed708c5358a2b4ef65923fb0683cefa9184e6f [revision 2230]
6638Author: Anton Mitrofanov <BugMaster@narod.ru>
6639Date: Fri Nov 9 02:31:10 2012 +0400
6640
6641 Fix possible issues with out-of-spec QP values
6642 Fixes a possible regression in r2228.
6643
6644commit 1580a74e339c59cd856100076d8cf46f2d7247b0 [revision 2229]
6645Author: Fiona Glaser <fiona@x264.com>
6646Date: Wed Sep 26 13:49:02 2012 -0700
6647
6648 Attempt to optimize PPS pic_init_qp in 2-pass mode
6649 Small compression improvement; up to ~0.5% in extreme cases.
6650 Helps more with small slice sizes (tiny resolutions or slice-max-size).
6651 Note that this changes the 2-pass stats file format.
6652
6653commit b304a7cad10a85d487fa09e7c33e81c6945186b2 [revision 2228]
6654Author: Fiona Glaser <fiona@x264.com>
6655Date: Wed Sep 26 13:05:00 2012 -0700
6656
6657 Improve slice header QP selection
6658 Use the first macroblock of each slice instead of the last of the previous.
6659 Lets us pick a reasonable initial QP for the first slice too.
6660 Slightly improved compression.
6661
6662commit 0d5f6fbae9f6c4dbba25571a5d8c643b192606b1 [revision 2227]
6663Author: Fiona Glaser <fiona@x264.com>
6664Date: Thu Oct 11 13:27:48 2012 -0700
6665
6666 Update level dpb size calculation to match newer H.264 spec
6667 Doesn't actually change encoding behavior, but makes it more correct.
6668 Warning messages should now be accurate at higher bit depths and non-4:2:0.
6669 Technically, since it redefines x264_level_t, this is an API version increment.
6670
6671commit cc61a4b4d0838b6d5f4cdaf88a0b6d06a12b6d3e [revision 2226]
6672Author: Jan Ekström <jeebjp@gmail.com>
6673Date: Sun Oct 7 21:12:05 2012 +0300
6674
6675 Add support for the ffmpeg/vapoursynth high bit depth y4m extensions
6676
6677commit 5d85879921481ef104766657deda4ef8ea4351ec [revision 2225]
6678Author: Diego Biurrun <diego@biurrun.de>
6679Date: Tue Nov 6 14:48:56 2012 +0100
6680
6681 x86inc: Rename 3dnow2 to 3dnowext
6682 The name "3dnowext" is more common than "3dnow2". Doesn't affect x264.
6683
6684commit 00cc16001b35a71ce2329e02bff6e316201cf700 [revision 2224]
6685Author: Diego Biurrun <diego@biurrun.de>
6686Date: Wed Oct 31 12:23:54 2012 -0700
6687
6688 x86inc: only define program_name if the macro is unset.
6689 This allows overriding the value from outside the file.
6690 This can be useful if x86inc.asm is used outside of x264.
6691
6692commit 3f516c5238d0c536ea03c8e5334d231facf9f31b [revision 2223]
6693Author: David Wolstencroft <d.wolstencroft@yahoo.com>
6694Date: Mon Oct 29 09:07:39 2012 -0700
6695
6696 Disable ARM NEON MRC CPU test for Apple devices
6697 The Apple A6 CPU doesn't support performance counters, so this test caused a crash.
6698
6699commit ac2d7c08452186703424dcc6933524e95b652479 [revision 2222]
6700Author: Fiona Glaser <fiona@x264.com>
6701Date: Tue Nov 6 12:03:20 2012 -0800
6702
6703 Fix crash with no-scenecut + mbtree
6704
6705commit 480bbc9067da7cce3400cf3988bf5fdfa4d9fa3f [revision 2221]
6706Author: Anton Mitrofanov <BugMaster@narod.ru>
6707Date: Fri Oct 12 23:43:40 2012 +0400
6708
6709 Fix reconfiguring to crf=0
6710 Lossless mode can't currently be enabled mid-stream.
6711
6712commit 21ba91ae6c361e4ce49ee65e61cc582b1af648ba [revision 2220]
6713Author: Derek Buitenhuis <derek.buitenhuis@gmail.com>
6714Date: Mon Sep 17 11:09:20 2012 -0700
6715
6716 Fix ALIGNED_ARRAY_EMU macros on ICL
6717 ICL's preprocessor doesn't handle it correctly.
6718 This fix is similar to libav's fix in 0db2d9.
6719
6720commit 96577475981d979d151626aae61ef317dc54df67 [revision 2219]
6721Author: Jason Martens <cacepi@gmail.com>
6722Date: Thu Sep 13 11:20:40 2012 -0700
6723
6724 Fix use of deprecated av_close_input_file call
6725
6726commit 02217bd2c31feda7aaca813f104c155fe09428b8 [revision 2218]
6727Author: Brad Smith <brad@comstyle.com>
6728Date: Wed Sep 26 14:13:27 2012 -0700
6729
6730 Fix pkg-config for dynamic vs static linking
6731
6732commit e8e8b9a44ffa9b5f585582375515140ea22985d3 [revision 2217]
6733Author: Brad Smith <brad@comstyle.com>
6734Date: Mon Sep 10 17:52:04 2012 -0700
6735
6736 Set libm in the configure script if the OS has libm
6737 Prerequisite for another configure patch after this.
6738 Idea copied from libpthread.
6739
6740commit 8980dd8afbfeeb6bcaa17b97aad0b3c24207665e [revision 2216]
6741Author: Fiona Glaser <fiona@x264.com>
6742Date: Thu Aug 16 13:40:32 2012 -0700
6743
6744 Enhance mb_info: add mb_info_update
6745 This feature lets the callee know which decoded macroblocks have changed.
6746
6747commit 033df0a8c719f991ab0e0bb0788bd4f08e8b91d7 [revision 2215]
6748Author: Fiona Glaser <fiona@x264.com>
6749Date: Thu Aug 16 13:01:17 2012 -0700
6750
6751 Fix mb_info_free with sliced threads
6752 x264 would free mb_info before it was completely done using it.
6753
6754commit f93b7865a96248621af078363d5b59691cbcd8aa [revision 2214]
6755Author: Fiona Glaser <fiona@x264.com>
6756Date: Tue Aug 7 12:43:26 2012 -0700
6757
6758 Enhance nalu_process
6759 Add the input frame opaque pointer to the arguments.
6760 This makes it easier to use with multiple simultaneous x264 encodes.
6761
6762commit 05089a37bf55a4134d9ffd014fdae729804a4e7a [revision 2213]
6763Author: Fiona Glaser <fiona@x264.com>
6764Date: Mon Aug 6 14:55:35 2012 -0700
6765
6766 Improve mb_info constant mb optimization
6767 Allow fast skipping even if the pskip MV isn't zero.
6768
6769commit cc5dcedc3b45d8e7390e2e914bb37f3fa92f6acd [revision 2212]
6770Author: Fiona Glaser <fiona@x264.com>
6771Date: Mon Jul 30 12:58:34 2012 -0700
6772
6773 Export the average effective CRF of each frame
6774 Useful to judge the resulting quality of a frame when VBV is enabled.
6775
6776commit f8fd6412a94f5f4f0eb5f8a6c0fb2062daebfab8 [revision 2211]
6777Author: Brad Smith <brad@comstyle.com>
6778Date: Mon Aug 20 23:58:19 2012 -0700
6779
6780 Remove special-casing for OpenBSD pthread handling
6781 Previously it was policy to use -pthread, but OpenBSD now recommends -lpthread.
6782 its been libpthread anyway and policy has changed to stop using -pthread.
6783
6784commit ed56837e3c56bfb880fac2e4e0025d81d6a7186b [revision 2210]
6785Author: Ronald S. Bultje <rsbultje@gmail.com>
6786Date: Thu Jul 26 18:01:49 2012 -0700
6787
6788 x86inc: automatically insert vzeroupper for YMM functions
6789 Backported from libav.
6790
6791commit cbb90707e443f0da2521bda1b98cab5705451b8f [revision 2209]
6792Author: Kieran Kunhya <kieran@kunhya.com>
6793Date: Tue Jul 24 08:47:45 2012 -0700
6794
6795 Free user supplied data when deleting a frame
6796 This eliminates a memory leak when calling x264_encoder_close.
6797
6798commit 3d03b6190c7af7b941fa746c3dff3b17e5115380 [revision 2208]
6799Author: Fiona Glaser <fiona@x264.com>
6800Date: Wed Jul 18 08:33:41 2012 -0700
6801
6802 Revert r2204
6803 People don't seem to like this so I'm just going to get rid of it.
6804
6805commit 2ec694181f8ba3eb1c4153e6b955d399d6448c25 [revision 2207]
6806Author: Fiona Glaser <fiona@x264.com>
6807Date: Tue Jul 10 14:10:44 2012 -0700
6808
6809 Faster predictor checking with subme<3
6810 Fix a typo that made an early-skip less effective.
6811 Avoid a relatively unpredictable branch.
6812 Slightly changed output due to the typo-fix.
6813 ~50 cycles faster on Core i7.
6814
6815commit d026397b0bf4c87e96b19c9fff7f43be6c4d9def [revision 2206]
6816Author: Fiona Glaser <fiona@x264.com>
6817Date: Mon Jun 25 18:01:29 2012 -0700
6818
6819 Try 8x8 transform analysis even when sub8x8 partitions are present
6820 Turn off the sub8x8 partitions, try it, and turn them back on if it didn't help.
6821 Small compression improvement with p4x4 on (~0.1-0.5%).
6822 Also update related comments.
6823
6824commit dea5d7a54b5ba948ed71d74e0264a2191bcd9815 [revision 2205]
6825Author: Fiona Glaser <fiona@x264.com>
6826Date: Fri Jun 8 18:19:59 2012 -0700
6827
6828 Support changing resolutions between passes with macroblock-tree
6829 Implement a basic separable bilinear filter to rescale the quantizer offsets.
6830 Structure inspired by swscale, but floating-point instead of fixed-point.
6831 Not as optimized as it could be, but it's quite fast already.
6832
6833 Example compression penalties on a 720p video game recording:
6834 First pass with 720p and second as 480p: ~-1.5% (vs. same res)
6835 First pass with 480p and second as 720p: ~-3% (vs. same res)
6836
6837commit 498af9c559b8da986544e93f898df02fc9e224b3 [revision 2204]
6838Author: Alexander Prikhodko <komisar666@gmail.com>
6839Date: Tue Jun 12 20:21:35 2012 +0300
6840
6841 Print elapsed time in encoding progress indicator
6842
6843commit bcd1a7070dc5224d591731dfdbabcbbaee0bb984 [revision 2203]
6844Author: Anton Mitrofanov <BugMaster@narod.ru>
6845Date: Sat Jun 2 21:27:50 2012 +0400
6846
6847 Cap ratecontrol predictor parameters
6848 Limits VBV mispredictions after long periods of relatively constant video.
6849
6850commit 5754ea2db5223b458bd48f0130c13000e3dec15c [revision 2202]
6851Author: Loren Merritt <pengvado@akuvian.org>
6852Date: Tue Jul 3 14:38:04 2012 -0700
6853
6854 x86inc: import patches from libav
6855 Allow manual invocation of WIN64_SPILL_XMM even under INIT_MMX
6856 SSE version of mova is movaps rather than movdqa.
6857 YMM version of movnta.
6858 Add mp size for named arguments.
6859 Fix DEFINE_ARGS when used outside of a cglobal.
6860 Define a few more cpuflags.
6861 3-argument wrappers for a few more instructions.
6862
6863commit 5e3aaf1a49b173df916a384942c8089dd5bd8a22 [revision 2201]
6864Author: Anton Mitrofanov <BugMaster@narod.ru>
6865Date: Fri Jun 22 22:02:24 2012 +0400
6866
6867 Fix crash with --fps 0
6868 Fix some integer overflows and check input parameters better.
6869 Also fix incorrect type specifiers for demuxer info printing.
6870
6871commit df700eae5d5ce5732f80df9ce81e6d3fe99ef56a [revision 2200]
6872Author: Fiona Glaser <fiona@x264.com>
6873Date: Tue May 8 15:42:56 2012 -0700
6874
6875 Threaded lookahead
6876
6877 Split each lookahead frame analysis call into multiple threads. Has a small
6878 impact on quality, but does not seem to be consistently any worse.
6879
6880 This helps alleviate bottlenecks with many cores and frame threads. In many
6881 case, this massively increases performance on many-core systems. For example,
6882 over 100% faster 1080p encoding with --preset veryfast on a 12-core i7 system.
6883 Realtime 1080p30 at --preset slow should now be feasible on real systems.
6884
6885 For sliced-threads, this patch should be faster regardless of settings (~10%).
6886
6887 By default, lookahead threads are 1/6 of regular threads. This isn't exacting,
6888 but it seems to work well for all presets on real systems. With sliced-threads,
6889 it's the same as the number of encoding threads.
6890
6891commit 7cfe43cc7fb5474a87f02da96ebb850cdf83d73b [revision 2199]
6892Author: Anton Mitrofanov <BugMaster@narod.ru>
6893Date: Fri May 4 17:18:12 2012 +0400
6894
6895 Add support for RGB formats in bit-depth conversion filter
6896
6897commit 44d2f0885cd95201b67ed54bab88e91f4ba1556e [revision 2198]
6898Author: Anton Mitrofanov <BugMaster@narod.ru>
6899Date: Sat May 12 13:57:49 2012 +0400
6900
6901 Fix some bugs in mb_info code
6902
6903commit 8e57a9a0b5bddfecea5e45345c8c50efb0bac10d [revision 2197]
6904Author: Fiona Glaser <fiona@x264.com>
6905Date: Thu Mar 29 14:14:07 2012 -0700
6906
6907 Add mb_info API for signalling constant macroblocks
6908 Some use-cases of x264 involve encoding video with large constant areas of the frame.
6909 Sometimes, the caller knows which areas these are, and can tell x264.
6910 This API lets the caller do this and adds internal tracking of modifications to macroblocks to avoid problems.
6911 This is really only suitable without B-frames.
6912 An example use-case would be using x264 for VNC.
6913
6914commit 4442eaceb4992098e1e4e30aa13e70bb35d2cae6 [revision 2196]
6915Author: Henrik Gramner <hengar-6@student.ltu.se>
6916Date: Sat Apr 7 00:40:09 2012 +0200
6917
6918 Faster chroma weight cost calculation
6919
6920 New assembly function with SSE2, SSSE3 and XOP implementations for calculating absolute sum of differences.
6921
6922commit e8952dffa3b09700e5b7c5e56edd196f0b80a248 [revision 2195]
6923Author: Lucien <astrataro@gmail.com>
6924Date: Sat Mar 31 13:42:49 2012 +0100
6925
6926 Add Level 5.2 support
6927
6928commit 66acbbf6ce6b143cd164d251ceb160870e4ee720 [revision 2194]
6929Author: Henrik Gramner <hengar-6@student.ltu.se>
6930Date: Thu Apr 12 19:14:43 2012 +0200
6931
6932 Eradicate all mention of Extended Profile
6933 x264 never supported it and never will because nobody uses it.
6934
6935commit b0f44f9e106afadaded17009079c2281cb18eb56 [revision 2193]
6936Author: Anton Mitrofanov <BugMaster@narod.ru>
6937Date: Tue Apr 3 21:46:52 2012 +0400
6938
6939 Fix disabling of mbtree when using 2pass encoding and zones
6940
6941commit ffea9f51f7f7e0a550c9326631a9c6f8c5c885be [revision 2192]
6942Author: Alexander Prikhodko <komisar666@gmail.com>
6943Date: Sat Mar 31 12:06:21 2012 +0300
6944
6945 configure: force select -mXX gcc option for i386/x86-64
6946 Makes multilib compilation more convenient.
6947
6948commit f4aefb3853819adf633c56062d1be77db90819b6 [revision 2191]
6949Author: Rafaël Carré <funman@videolan.org>
6950Date: Sun Apr 15 21:20:14 2012 -0400
6951
6952 Update config.guess and config.sub
6953 Adds support for a bunch of targets, including:
6954 aarch64 (armv8)
6955 arm-linux-androideabi
6956
6957commit 62d7007d35c5f0829d96b6ecf459f21d27210ef3 [revision 2190]
6958Author: Alexander Prikhodko <komisar666@gmail.com>
6959Date: Sat Mar 31 11:33:41 2012 +0300
6960
6961 configure: correct use of RC variable and add --extra-rcflags
6962
6963commit 70877e39a4abb4c24d1978a28202c9bf0dce8b47 [revision 2189]
6964Author: Steven Walters <kemuri9@gmail.com>
6965Date: Wed Mar 28 21:15:04 2012 -0400
6966
6967 ICL/MSVS: Fix shared library generation and usage
6968 MSVS requires exported variables to be declared with the DATA keyword, and requires that imported variables be declared with dllimport.
6969 This does not fix x264 cli being unable to use a shared library built by ICL however.
6970
6971commit 52f7a149ef6c39eb0d7eec7884362ba31a4b05ba [revision 2188]
6972Author: Kieran Kunhya <kierank@ob-encoder.com>
6973Date: Tue Mar 27 17:38:56 2012 +0100
6974
6975 Fix intra-refresh + hrd
6976
6977commit fff12b1b7d8ce5cc9cfcfac09f089bae06cac6d5 [revision 2187]
6978Author: Anton Mitrofanov <BugMaster@narod.ru>
6979Date: Sun Mar 25 17:34:24 2012 +0400
6980
6981 Fix frame input colorspace check
6982
6983commit 065fec2704f3c8c6f3f3f5b0fad6870a078ba48c [revision 2186]
6984Author: Fiona Glaser <fiona@x264.com>
6985Date: Thu Mar 22 13:56:50 2012 -0700
6986
6987 Fix comment in deblock.c
6988 The code does, in fact, handle CAVLC+8x8dct correctly already.
6989
6990commit bca412764eb198433ca45abd097368e5154c7fbb [revision 2185]
6991Author: Fiona Glaser <fiona@x264.com>
6992Date: Tue Mar 13 14:37:26 2012 -0700
6993
6994 Fix sliced-threads ratecontrol bug
6995 Was using qp instead of qscale; could cause NANs (not to mention less accurate results).
6996
6997commit e046ba72a4230fdd6c7907ebf7ae235edb98faf2 [revision 2184]
6998Author: Anton Mitrofanov <Bugmaster@narod.ru>
6999Date: Sun Mar 11 23:08:18 2012 -0700
7000
7001 Fix clobbering of mutex/cvs
7002 Regression in r2183.
7003 Bizarrely seemed to work on many platforms, but crashed on win64 and may have been slower.
7004 Only affected sliced threads during encoding, but could cause crashes on x264 encoder close even without sliced threads.
7005
7006commit a155572ed547a3627ef00ca70ab804ff452147cd [revision 2183]
7007Author: Fiona Glaser <fiona@x264.com>
7008Date: Fri Feb 24 13:34:39 2012 -0800
7009
7010 Sliced-threads: do hpel and deblock after returning
7011 Lowers encoding latency around 14% in sliced threads mode with preset superfast.
7012 Additionally, even if there is no waiting time between frames, this improves parallelism, because hpel+deblock are done during the (singlethreaded) lookahead.
7013 For ease of debugging, dump-yuv forces all of the threads to wait and finish instead of setting b_full_recon.
7014
7015commit 90408ecab16a06ceaa181ff2e495b8f1a9d170fa [revision 2182]
7016Author: Fiona Glaser <fiona@x264.com>
7017Date: Fri Feb 24 13:16:52 2012 -0800
7018
7019 Add full-recon API option
7020 Fully reconstruct frames even without dump-yuv.
7021
7022commit 5b2c62aec269be7d0b1ff62df09660369f4e20e0 [revision 2181]
7023Author: Fiona Glaser <fiona@x264.com>
7024Date: Wed Feb 22 13:33:36 2012 -0800
7025
7026 x86inc: switch to amdnops
7027 Recent AMD CPUs' instruction decoders choke horribly on extremely long nops (i.e. with 4 prefixes).
7028 Won't affect much, since we don't use ALIGN much.
7029
7030commit 42db5e6f8f704a2b0a9edf5d9cd4a17d80e5b816 [revision 2180]
7031Author: Fiona Glaser <fiona@x264.com>
7032Date: Tue Feb 14 16:54:03 2012 -0800
7033
7034 BMI1 decimate functions
7035 Intel was nice enough to make tzcnt equal to "rep bsf", which is backwards-compatible.
7036 This means we don't actually have to add new functions to make it work.
7037
7038commit 92b0bd9665860d7b48f313d6fd72a583ecb01ddf [revision 2179]
7039Author: Fiona Glaser <fiona@x264.com>
7040Date: Tue Feb 14 15:07:10 2012 -0800
7041
7042 Minor asm changes
7043
7044commit 2535ba17b2598f4155955857c12d52a377a75517 [revision 2178]
7045Author: Fiona Glaser <fiona@x264.com>
7046Date: Thu Feb 9 14:23:52 2012 -0800
7047
7048 Add row-reencoding support to VBV for improved accuracy
7049 Extremely accurate, possibly 100% so (I can't get it to fail even with difficult VBVs).
7050 Does not yet support rows split on slice boundaries (occurs often with slice-max-size/mbs).
7051 Still inaccurate with sliced threads, but better than before.
7052
7053commit bc473ddfd2f5925715d2895da666e214ebf04c84 [revision 2177]
7054Author: Fiona Glaser <fiona@x264.com>
7055Date: Thu Feb 9 12:38:44 2012 -0800
7056
7057 Abstract bitstream backup/restore functions
7058 Required for row re-encoding.
7059
7060commit 48e8e52e740fdc7ddca792d4afe240a213f66df5 [revision 2176]
7061Author: Anton Mitrofanov <Bugmaster@narod.ru>
7062Date: Thu Feb 9 15:27:53 2012 -0800
7063
7064 Add an small per-MB cost penalty for lowres
7065 Helps avoid VBV predictors going nuts with very low-cost MBs.
7066 One particular case this fixes is zero-cost MBs: adaptive quantization decreases the QP a lot, but (before this patch), no cost penalty gets factored in for this, because anything times zero is zero.
7067
7068commit 1b31a10c7c3210d5eb14d522aaa0cfbe0e7a25e8 [revision 2175]
7069Author: Fiona Glaser <fiona@x264.com>
7070Date: Mon Feb 13 18:31:51 2012 -0800
7071
7072 Remove explicit run calculation from coeff_level_run
7073 Not necessary with the CAVLC lookup table for zero run codes.
7074
7075commit 9da19fbee621ca5b052891b3c010f8bc89b2ba93 [revision 2174]
7076Author: Fiona Glaser <fiona@x264.com>
7077Date: Mon Feb 13 13:20:06 2012 -0800
7078
7079 Export PSNR/SSIM in x264 API
7080
7081commit 3a5f2fe30aeb5314b74f83b1960e9a40776347e9 [revision 2173]
7082Author: Ronald S. Bultje <rsbultje@gmail.com>
7083Date: Wed Feb 8 13:10:31 2012 -0800
7084
7085 x86inc: support yasm -f win64
7086 Not necessary for x264, as -m amd64 already does the right thing, but used by external users of x86inc.
7087
7088commit 3131a19cabcdca221ce4cd61a3cff68d99f1a517 [revision 2172]
7089Author: Henrik Gramner <hengar-6@student.ltu.se>
7090Date: Wed Feb 1 23:52:48 2012 +0100
7091
7092 Fix incorrect zero-extension assumptions in x86_64 asm
7093 Some x264 asm assumed that the high 32 bits of registers containing "int" values would be zero.
7094 This is almost always the case, and it seems to work with gcc, but it is *not* guaranteed by the ABI.
7095 As a result, it breaks with some other compilers, like Clang, that take advantage of this in optimizations.
7096 Accordingly, fix all x86 code by using intptr_t instead of int or using movsxd where neccessary.
7097 Also add checkasm hack to detect when assembly functions incorrectly assumes that 32-bit integers are zero-extended to 64-bit.
7098
7099commit d52d0b1e6a9323911818c2a89764f6827974e0f7 [revision 2171]
7100Author: Fiona Glaser <fiona@x264.com>
7101Date: Thu Feb 23 09:11:23 2012 -0800
7102
7103 Fix possible alignment crash when linking from MSVC
7104 x264_cavlc_init needs to be stack-aligned now.
7105
7106commit 0a369502ab83c32ccebdb1888e6981ef872baaf0 [revision 2170]
7107Author: Anton Mitrofanov <Bugmaster@narod.ru>
7108Date: Tue Feb 21 12:58:22 2012 -0800
7109
7110 Fix rare overflow in 10-bit intra_satd_x3_16x16 asm
7111
7112commit 38a26cdfc54ffd60c90651f3b96490d772e6dd73 [revision 2169]
7113Author: Steven Walters <kemuri9@gmail.com>
7114Date: Sat Feb 11 22:56:43 2012 -0500
7115
7116 ICL: fix out of tree building and resource file usage on Windows
7117
7118commit 10e1ba55803970ecd240f2057e7dfe0c22fc8efb [revision 2168]
7119Author: Oka Motofumi <chikuzen.mo@gmail.com>
7120Date: Mon Feb 6 06:07:34 2012 +0900
7121
7122 Add error handling for out-of-tree build
7123
7124commit 0fc5acc6e6c038f6380f614e4dc4e1893b716b7e [revision 2167]
7125Author: Anton Mitrofanov <BugMaster@narod.ru>
7126Date: Tue Mar 6 17:34:02 2012 +0400
7127
7128 Fix RGB colorspace input
7129 BGR/BGRA input was correct.
7130
7131commit 282c3cfb22f4ab526d96678249ccdc7f16531811 [revision 2166]
7132Author: Fiona Glaser <fiona@x264.com>
7133Date: Mon Feb 13 16:40:32 2012 -0800
7134
7135 Fix interlaced + extremal slice-max-size
7136 Broke if the first macroblock in the slice exceeded the set slice-max-size.
7137
7138commit a37a42450cdc31393dae56aed5a726a42fd540d6 [revision 2165]
7139Author: Henrik Gramner <hengar-6@student.ltu.se>
7140Date: Sun Feb 5 20:43:09 2012 +0100
7141
7142 Fix regression in r2141
7143 Broke register preservation in x264_cpu_cpuid and x264_cpu_xgetbv.
7144 Did not cause any problems.
7145
7146commit ae289e6f03b76afa8736806e683349e8e59fcc93 [revision 2164]
7147Author: Fiona Glaser <fiona@x264.com>
7148Date: Thu Jan 19 14:56:54 2012 -0800
7149
7150 TBM, AVX2, FMA3, BMI1, and BMI2 CPU detection support
7151 TBM and BMI1 are supported by Trinity/Piledriver.
7152 The others (and BMI1) will probably appear in Intel's upcoming Haswell.
7153 Also update x86inc with AVX2 stuff.
7154
7155commit e0581e0878c1995b215c51691af6bdf7a386946f [revision 2163]
7156Author: Loren Merritt <pengvado@akuvian.org>
7157Date: Fri Feb 3 06:27:18 2012 +0000
7158
7159 x86inc: add TAIL_CALL macro to abstract a common asm idiom
7160
7161commit 04c38190c60658d544801718fc38fa3f745381d9 [revision 2162]
7162Author: Fiona Glaser <fiona@x264.com>
7163Date: Wed Jan 25 16:44:38 2012 -0800
7164
7165 Minor asm optimizations/cleanup
7166
7167commit 6d7c5efcf6f8751f768177bf828973a7bd4fdcf6 [revision 2161]
7168Author: Fiona Glaser <fiona@x264.com>
7169Date: Tue Jan 24 19:03:58 2012 -0800
7170
7171 Clean up and optimize weightp, plus enable SSSE3 weight on SB/BDZ
7172 Also remove unused AVX cruft.
7173
7174commit 047175e610d3d5360f69e4f8168ff6fbafda2465 [revision 2160]
7175Author: Fiona Glaser <fiona@x264.com>
7176Date: Mon Jan 23 18:57:58 2012 -0800
7177
7178 XOP frame_init_lowres
7179 Covers both 8-bit and 16-bit, ~5-10% faster on Bulldozer.
7180
7181commit abc88d60b5e0d803d6d4f0a5d9ece7dd0bdde0f1 [revision 2159]
7182Author: Fiona Glaser <fiona@x264.com>
7183Date: Tue Jan 17 15:25:10 2012 -0800
7184
7185 XOP 8x8 zigzags
7186 Field: 35(mmx) ->16(xop) cycles
7187 Frame: 32(ssse3)->20(xop) cycles
7188
7189commit aa47955a0ec65218e8bb967d36689069baca5fd1 [revision 2158]
7190Author: Fiona Glaser <fiona@x264.com>
7191Date: Mon Jan 23 15:09:38 2012 -0800
7192
7193 AVX 32-bit hpel_filter_h
7194 Faster on Sandy Bridge.
7195 Also add details on unsuccessful optimizations in these functions.
7196
7197commit d7407cf81816fff7ab32ceb2398575724e8cc737 [revision 2157]
7198Author: Fiona Glaser <fiona@x264.com>
7199Date: Fri Jan 27 16:29:30 2012 -0800
7200
7201 x86inc: add high halfword register support
7202 Might be useful in a few cases.
7203
7204commit acabceb6530d1858bcd009b055e217c75344c442 [revision 2156]
7205Author: Ronald S. Bultje <rsbultje@gmail.com>
7206Date: Wed Jan 25 13:53:59 2012 +0800
7207
7208 Change %ifdef directives to %if directives in *.asm files
7209 This allows combining multiple conditionals in a single statement.
7210
7211commit 82d8cdde567b1c1e8d2046bbb831d0daafe8213b [revision 2155]
7212Author: Anton Mitrofanov <BugMaster@narod.ru>
7213Date: Sun Jan 22 22:13:52 2012 +0400
7214
7215 Use TV range algorithm for bit-depth conversions
7216 Such sources are more common, so better to be correct for the common case.
7217 This also produces less error for the case of full range than the previous algorithm produced for the case of TV range.
7218
7219commit 27a7b05b8330d0756e5e3f6669282561030f54fa [revision 2154]
7220Author: Hii <hiiragikei@gmail.com>
7221Date: Wed Jan 25 16:29:22 2012 +0800
7222
7223 Bump dates to 2012
7224
7225commit 762f677e095a40e1927086bb08799c01e05c2ee4 [revision 2153]
7226Author: Henrik Gramner <hengar-6@student.ltu.se>
7227Date: Sat Jan 28 21:38:27 2012 +0100
7228
7229 Add Windows resource file
7230 Displays version info in Windows Explorer.
7231
7232commit 545b41caa5903ebcb5d9336a59f9bf5a50a45037 [revision 2152]
7233Author: Sergey Radionov <RSATom@gmail.com>
7234Date: Mon Jan 16 13:22:44 2012 -0800
7235
7236 Fix win32 pthread_cond_signal
7237 Isn't used by x264 currently, so didn't cause a problem.
7238 Fix backported from libav.
7239
7240commit 697a11e8ecb1376cddd4a8d4f4fa693e41c1987e [revision 2151]
7241Author: Mans Rullgard <mans@mansr.com>
7242Date: Wed Feb 1 15:55:25 2012 -0800
7243
7244 ARM: align asm functions to 4 bytes.
7245 Some linkers apparently fail to correctly align ARM functions when mixing with Thumb code.
7246
7247commit f59b310fd87b643b59d6e109e49fdf9d0a04ce91 [revision 2150]
7248Author: Anton Mitrofanov <BugMaster@narod.ru>
7249Date: Sun Jan 22 13:00:23 2012 +0400
7250
7251 Fix normalization of colorspace when input is packed YUV 4:2:2
7252
7253commit 9fb055856a617f5ddca15a0c5745ff1c1486ad9a [revision 2149]
7254Author: Fiona Glaser <fiona@x264.com>
7255Date: Sat Jan 21 12:54:40 2012 -0800
7256
7257 Force keyint-min 1 with Blu-ray
7258 Fixes an issue with referencing across I-frames that's prohibited in Blu-ray for some godforsaken reason.
7259
7260commit 77cfcb6acf648da00eb4ddb52bcb7006bc64a61a [revision 2148]
7261Author: Oka Motofumi <chikuzen.mo@gmail.com>
7262Date: Sun Jan 29 20:34:41 2012 +0900
7263
7264 Fix crash in --demuxer y4m with unsupported colorspace
7265
7266commit 30829c0c7e6bbf40d1b3ed5fcb5a45d85407978f [revision 2147]
7267Author: Anton Mitrofanov <BugMaster@narod.ru>
7268Date: Mon Jan 16 14:02:53 2012 -0800
7269
7270 Fix overread/possible crash with intra refresh + VBV
7271
7272commit 26c8303472b837e301d789ba569eae01955cf7f6 [revision 2146]
7273Author: Loren Merritt <pengvado@akuvian.org>
7274Date: Wed Jan 18 15:47:07 2012 -0800
7275
7276 Fix trellis 2 + subme >= 8
7277 Trellis didn't return a boolean value as it was supposed to.
7278 Regression in r2143-5.
7279
7280commit 7d804baf3bca6ad33e18ccd0a838274214a8a7a0 [revision 2145]
7281Author: Loren Merritt <pengvado@akuvian.org>
7282Date: Fri Jan 6 15:53:29 2012 +0000
7283
7284 CABAC trellis opts part 4: x86_64 asm
7285 Another 20% faster.
7286 18k->12k codesize.
7287
7288 This patch series may have a large impact on encoding speed.
7289 For example, 24% faster at --preset slower --crf 23 with 720p parkjoy.
7290 Overall speed increase is proportional to the cost of trellis (which is proportional to bitrate, and much more with --trellis 2).
7291
7292commit dd354db4db2f26e63ed36eb790052c6794e5a684 [revision 2144]
7293Author: Loren Merritt <pengvado@akuvian.org>
7294Date: Fri Jan 6 15:53:04 2012 +0000
7295
7296 CABAC trellis opts part 3: make some arrays non-static
7297
7298commit 4abcf60a04e358b87da284f3a5fac3e2949b6de1 [revision 2143]
7299Author: Loren Merritt <pengvado@akuvian.org>
7300Date: Thu Dec 22 17:56:06 2011 +0000
7301
7302 CABAC trellis opts part 2: C optimizations
7303
7304 Hoist the branch on coef value out of the loop over node contexts.
7305 Special cases for each possible coef value (0,1,n).
7306 Special case for dc-only blocks.
7307 Template the main loop for two common subsets of nodes, to avoid a bunch of branches about which nodes are live.
7308 Use the nonupdating version of cabac_size_decision in more cases, and omit those bins from the node struct.
7309 CABAC offsets are now compile-time constants.
7310 Change TRELLIS_SCORE_MAX from a specific constant to anything negative, which is cheaper to test.
7311 Remove dct_weight2_zigzag[], since trellis has to lookup zigzag[] anyway.
7312
7313 60% faster on x86_64.
7314 25k->18k codesize.
7315
7316commit 253cd7baefb7f5d101725034b2c37afacc012305 [revision 2142]
7317Author: Loren Merritt <pengvado@akuvian.org>
7318Date: Thu Dec 22 17:55:06 2011 +0000
7319
7320 CABAC trellis opts part 1: minor change in output
7321 Due to different tie-break order.
7322
7323commit 0d7a9100d12c618acea3f01b8bb9cc306f475b47 [revision 2141]
7324Author: Henrik Gramner <hengar-6@student.ltu.se>
7325Date: Sun Jan 8 04:14:10 2012 +0100
7326
7327 x86inc improvements for 64-bit
7328
7329 Add support for all x86-64 registers
7330 Prefer caller-saved register over callee-saved on WIN64
7331 Support up to 15 function arguments
7332
7333commit 8a6a062e11d4074c081d076408cb0bd6def1af8e [revision 2140]
7334Author: Ilia Valiakhmetov <zakne0ne@gmail.com>
7335Date: Sun Jan 15 04:47:58 2012 -0600
7336
7337 High bit depth SSE2/AVX add8x8_idct8 and add16x16_idct8
7338 From Google Code-In.
7339
7340commit a35fd4194dd7004abe6f66679496beded405515a [revision 2139]
7341Author: Edward Wang <edward.c.wang@compdigitec.com>
7342Date: Wed Jan 4 15:35:54 2012 -0800
7343
7344 MMX/SSE2/AVX predict_8x16_p, high bit depth fdct8
7345 From Google Code-In.
7346
7347commit 9301bbd39fb0a49b1e986f9a7c29685439686de4 [revision 2138]
7348Author: Fiona Glaser <fiona@x264.com>
7349Date: Thu Dec 22 14:03:15 2011 -0800
7350
7351 XOP 8-bit fDCT
7352 Use integer MAC for one of the SUMSUB passes. About a dozen cycles faster for 16x16.
7353
7354commit c83edc0427e78c58683af99b80e0234c77b3e41a [revision 2137]
7355Author: Cristian Militaru <cristipiticul@yahoo.com>
7356Date: Wed Jan 4 12:38:08 2012 -0800
7357
7358 High bit depth intra_sad_x3_4x4
7359 From Google Code-In.
7360
7361commit 9c0fa2d63f549a44f869562cffa9c041a32ae41d [revision 2136]
7362Author: Fiona Glaser <fiona@x264.com>
7363Date: Thu Dec 8 13:45:41 2011 -0800
7364
7365 Use a large LUT for CAVLC zero-run bit codes
7366 Helps the most with trellis and RD, but also helps with bitstream writing.
7367 Seems at worst neutral even in the extreme case of a CPU with small L2 cache (e.g. ARM Cortex A8).
7368
7369commit de7aed78cd2f70017f3c479d8f8dc32d52cee607 [revision 2135]
7370Author: Matt Habel <habelinc@gmail.com>
7371Date: Fri Dec 16 23:16:09 2011 -0800
7372
7373 High bit depth intra_sad_x3_8x8, intra_satd_x3_4x4/8x8c/16x16
7374 Also add an ACCUM macro to handle accumulator-induced add-or-swap more concisely.
7375
7376commit d9dee734a9af1788461def43321f19be6a3d2d72 [revision 2134]
7377Author: Shitiz Garg <mail@dragooon.net>
7378Date: Sat Dec 3 15:34:57 2011 -0800
7379
7380 MMX 10-bit predict_8x8c_h and predict_8x16c_h
7381 From Google Code-In.
7382
7383commit 7496fc4aeaaaf5b470b1eb0f73ce8ea71d0116f2 [revision 2133]
7384Author: Aaron Schmitz <me@aaronschmitz.com>
7385Date: Wed Nov 30 00:15:45 2011 -0600
7386
7387 Some MBAFF x86 assembly functions.
7388 deblock_chroma_420_mbaff, plus 422/422_intra_mbaff implemented using existing functions.
7389 From Google Code-In.
7390
7391commit b8d7b8acb48b45afbfd7efb5baac79475682684a [revision 2132]
7392Author: George Stephanos <gaf.stephanos@gmail.com>
7393Date: Thu Dec 1 16:53:45 2011 -0800
7394
7395 More ARM NEON assembly functions
7396 predict_8x8_v, predict_4x4_dc_top, predict_8x8_ddl, predict_8x8_ddr, predict_8x8_vl, predict_8x8_vr, predict_8x8_hd, predict_8x8_hu.
7397 From Google Code-In.
7398
7399commit e269ca55e5244280afd0347c1088083cf7043d48 [revision 2131]
7400Author: Ilia <zakne0ne@gmail.com>
7401Date: Mon Nov 28 05:20:09 2011 -0800
7402
7403 More 4:2:2 asm functions
7404 High bit depth version of deblock_h_chroma_422.
7405 Regular and high bit depth versions of deblock_h_chroma_intra_422.
7406 High bit depth pixel_vsad.
7407 SSE2 high bit depth and MMX 8-bit predict_8x8_vl.
7408 Our first GCI patch this year!
7409
7410commit 5d66c5011488539f99ceafdb47b0856a8e9dae0b [revision 2130]
7411Author: Henrik Gramner <hengar-6@student.ltu.se>
7412Date: Thu Dec 8 16:14:35 2011 +0100
7413
7414 SSE2 and SSSE3 versions of sub8x16_dct_dc
7415 Also slightly faster sub8x8_dct_dc
7416
7417commit 3ea6a8b22e0aa89e3749e9c95edfeaad9d341b7e [revision 2129]
7418Author: Steven Walters <kemuri9@gmail.com>
7419Date: Mon Dec 5 08:46:34 2011 -0500
7420
7421 Resize filter updates
7422 Use AVPixFmtDescriptors to pick the most compatible x264 csp for any pixel format.
7423 Fix deprecated use of av_set_int.
7424 Now requires libavutil >= 51.19.0
7425
7426commit f71d047d0bc129eb9f4724e023bf888a9124338b [revision 2128]
7427Author: Oka Motofumi <chikuzen.mo@gmail.com>
7428Date: Thu Jan 5 14:23:50 2012 -0800
7429
7430 Add out-of-tree build support
7431
7432commit 5539220e5afc641a6747c6d95f41e5efbe5858e1 [revision 2127]
7433Author: Anton Mitrofanov <BugMaster@narod.ru>
7434Date: Fri Dec 16 18:17:00 2011 +0400
7435
7436 Limit SSIM to 100db
7437 Avoids floating point error for infinite SSIM (lossless).
7438
7439commit 13c236172f0ff40ca149a2e862498457cd32ccb9 [revision 2126]
7440Author: Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
7441Date: Wed Jan 4 13:16:12 2012 -0300
7442
7443 Fix wrong conditional inclusion of inttypes.h
7444 inttypes.h is required by encoder/ratecontrol.c for SCNxxx macros, and HAVE_STDINT_H does not imply having inttypes.h.
7445 stdint.h is a subset of inttypes.h, but this isn't enough for x264.
7446 This change fixes building x264 with Android's toolchain.
7447
7448commit 2df9d45db64110854e6da6a2037d6c432c5463fe [revision 2125]
7449Author: Anton Mitrofanov <BugMaster@narod.ru>
7450Date: Wed Dec 21 11:08:56 2011 +0400
7451
7452 Fix crash with sliced threads and input height <= 112
7453
7454commit e3d311813f3931133962f7ab8ee2305d231df83d [revision 2124]
7455Author: Phillip Blucas <pblucas@gmail.com>
7456Date: Mon Dec 19 17:43:41 2011 -0600
7457
7458 Fix loading custom 8x8 chroma quant matrices in 4:4:4
7459
7460commit 9fd7ccb2b635276d019e137844c693b525f92244 [revision 2123]
7461Author: Anton Mitrofanov <BugMaster@narod.ru>
7462Date: Fri Dec 16 01:48:07 2011 +0400
7463
7464 Fix PCM cost overflow
7465
7466commit 1d70d0e56003b762439ad4b5d8e72729b51516ae [revision 2122]
7467Author: Anton Mitrofanov <BugMaster@narod.ru>
7468Date: Fri Dec 9 01:54:22 2011 +0400
7469
7470 Fix overflow in 8-bit x86 vsad asm function
7471
7472commit b6ce6c64c17071804676435da9b1c07b902857e3 [revision 2121]
7473Author: Anton Mitrofanov <BugMaster@narod.ru>
7474Date: Wed Dec 7 19:14:52 2011 +0400
7475
7476 Fix crash in --fullhelp when compiled against recent ffmpeg
7477 Don't assume all pixel formats have a description.
7478
7479commit c3ba63bbe83bd20d06a64cfecd6b878e8f49bc13 [revision 2120]
7480Author: Fiona Glaser <fiona@x264.com>
7481Date: Tue Dec 6 14:39:21 2011 -0800
7482
7483 Fix regression in r2118
7484 Broke trellis with i16x16 macroblocks.
7485
7486commit 9dc2391576b35acb55c04773049a0b817f306969 [revision 2119]
7487Author: Fiona Glaser <fiona@x264.com>
7488Date: Wed Nov 30 13:02:12 2011 -0800
7489
7490 Modify MBAFF chroma deblock functions to handle U/V at the same time
7491 Allows for more convenient asm implementations.
7492
7493commit d0bf649fcc1a79da12e220c4364aeca6045dfbed [revision 2118]
7494Author: Fiona Glaser <fiona@x264.com>
7495Date: Thu Nov 10 16:16:13 2011 -0800
7496
7497 CABAC trellis optimizations: use SIMD quant
7498 Significant speed increase, minor change in output due to rounding.
7499
7500commit 6767f967831048669e45e65681f37011483b4fa0 [revision 2117]
7501Author: Steven Walters <kemuri9@gmail.com>
7502Date: Sun Nov 6 09:48:30 2011 -0800
7503
7504 YUV range detection and support for x264CLI
7505 Two new options: --input-range and --range.
7506 --input-range forces the range of the input in case of misdetection; auto by default.
7507 -- range sets the range of the output; x264cli will convert if necessary, TV by default.
7508 --fullrange is now removed as a CLI option (but the libx264 API is unchanged).
7509
7510commit f9a4c4d9828c1cc60135d0301981ea71fd90f6ca [revision 2116]
7511Author: Kieran Kunhya <kieran@kunhya.com>
7512Date: Fri Nov 4 20:09:13 2011 +0000
7513
7514 Pass through user data
7515
7516commit 1c774e936a315fdfb92a35c402b351a1c542a13a [revision 2115]
7517Author: Fiona Glaser <fiona@x264.com>
7518Date: Thu Oct 27 14:05:56 2011 -0700
7519
7520 Remove unpredictable branch in CABAC dqp
7521
7522commit f3a7517cb9b06a580623cbea0f140be534b99877 [revision 2114]
7523Author: Loren Merritt <pengvado@akuvian.org>
7524Date: Sun Oct 23 23:15:11 2011 +0000
7525
7526 x86inc: AVX symmetry optimization
7527 3-arg AVX ops with a memory arg can only have it in src2,
7528 whereas SSE emulation of 3-arg prefers to have it in src1 (i.e. the move).
7529 So, if the op is symmetric and the wrong one is memory, swap them.
7530 Eliminates redundant moves in some cases when using 3-operand without AVX with memory arguments.
7531 Also fix movss and movsd in some cases, and flag shufps correctly as float.
7532
7533commit 5ebbcd8748ae8d8b184db5a8f9b46a9ad865f0ae [revision 2113]
7534Author: Anton Mitrofanov <Bugmaster@narod.ru>
7535Date: Tue Nov 29 13:45:13 2011 -0800
7536
7537 checkasm: shut up gcc warnings, fix some naming of functions in results
7538
7539commit 561f71ebf741370075b970fb9d31a593cf47782f [revision 2112]
7540Author: Mans Rullgard <mans@mansr.com>
7541Date: Mon Nov 28 16:29:12 2011 -0800
7542
7543 checkasm: fix build on ARM
7544 Because of how ALIGNED_ARRAY_16 is defined on ARM, array initialisers cannot be used here. Use memset() instead.
7545
7546commit 24bf90abde21e77c574f2bd43e38a3222c3183ef [revision 2111]
7547Author: Anton Mitrofanov <BugMaster@narod.ru>
7548Date: Sat Nov 12 01:31:49 2011 +0400
7549
7550 Improve makefile rules
7551 Remove the need for "make clean" after most reconfigures.
7552
7553commit 87b23e25eee0c04bb47957445e7cf941a7d8b980 [revision 2110]
7554Author: Anton Mitrofanov <BugMaster@narod.ru>
7555Date: Sat Nov 12 00:47:48 2011 +0400
7556
7557 Mark some local functions as static, cosmetics
7558
7559commit 2ecbcd73d60d2f749696b39627c91e28a396538b [revision 2109]
7560Author: Anton Mitrofanov <BugMaster@narod.ru>
7561Date: Fri Nov 11 23:19:02 2011 +0400
7562
7563 Fix crash if timecode file opening fails
7564
7565commit f1387840b98560ae34aea9ca09d55984812ad50b [revision 2108]
7566Author: Fabian Greffrath <fabian+debian@greffrath.com>
7567Date: Fri Nov 11 13:25:43 2011 -0800
7568
7569 Configure: force PIC for shared build on PARISC and MIPS
7570
7571commit e5063ab30bcb79f94774b6d9ce91b098ade01d6d [revision 2107]
7572Author: Anton Mitrofanov <BugMaster@narod.ru>
7573Date: Sat Oct 22 19:41:07 2011 +0400
7574
7575 Improve yasm version check
7576 Previous check allowed certain earlier versions that weren't fully compatible.
7577
7578commit 12104b22820b38b4976e83a6ee00dcb59ed959f1 [revision 2106]
7579Author: Fiona Glaser <fiona@x264.com>
7580Date: Tue Oct 18 14:30:26 2011 -0700
7581
7582 Add fenc prefetching to adaptive quant
7583 Many fewer cache misses, faster adaptive quant.
7584
7585commit 9bbfc30284469a70374a75fecfa322c4740dc2b7 [revision 2105]
7586Author: Fiona Glaser <fiona@x264.com>
7587Date: Tue Oct 18 14:14:03 2011 -0700
7588
7589 Split prefetch_fenc between colorspaces
7590 Add 4:2:2 version.
7591
7592commit b63a73da3add660358a4bad1a590c2d4ed466dc4 [revision 2104]
7593Author: Fiona Glaser <fiona@x264.com>
7594Date: Tue Oct 11 17:04:32 2011 -0700
7595
7596 Some more 4:2:2 x86 asm
7597 coeff_last8, coeff_level_run8, var2_8x16, predict_8x16c_dc, satd_4x16, intra_mbcmp_8x16c_x3, deblock_h_chroma_422
7598
7599commit 50aaf8d84ac6fc78794b98cfe6a25440a09fbb82 [revision 2103]
7600Author: Loren Merritt <pengvado@akuvian.org>
7601Date: Tue Oct 11 18:12:43 2011 +0000
7602
7603 Remove obsolete versions of intra_mbcmp_x3
7604 intra_mbcmp_x3 is unnecessary if x9 exists (SSSE3 and onwards).
7605
7606commit 1111780d8e392455870898bacae30a413ae98464 [revision 2102]
7607Author: Loren Merritt <pengvado@akuvian.org>
7608Date: Mon Oct 10 05:42:36 2011 +0000
7609
7610 SSSE3/SSE4/AVX 9-way fully merged i8x8 analysis (sa8d_x9)
7611 x86_64 only for now, due to register requirements (like sa8d_x3).
7612
7613 i8x8 analysis cycles (per partition):
7614 penryn sandybridge bulldozer
7615 616->600 482->374 418->356 preset=faster
7616 892->632 725->387 598->373 preset=medium
7617 948->650 789->409 673->383 preset=slower
7618
7619commit 422979198e492d5068034a3a5b1e4991af2b63a1 [revision 2101]
7620Author: Fiona Glaser <fiona@x264.com>
7621Date: Fri Sep 30 19:09:19 2011 -0700
7622
7623 SSSE3/SSE4/AVX 9-way fully merged i8x8 analysis (sad_x9)
7624 ~3 times faster than current analysis, plus (like intra_sad_x9_4x4) analyzes all modes without shortcuts.
7625
7626commit da66eef02e8d9cb57c52aeecb7371b9968747c2b [revision 2100]
7627Author: Loren Merritt <pengvado@akuvian.org>
7628Date: Wed Oct 5 13:29:21 2011 -0700
7629
7630 Merge i4x4 prediction with intra_mbcmp_x9_4x4
7631 Avoids a redundant prediction after analysis.
7632
7633commit 9f027f4f3f9b03b5dabe081a12ca1b80c20ffc18 [revision 2099]
7634Author: Fiona Glaser <fiona@x264.com>
7635Date: Wed Oct 5 13:17:31 2011 -0700
7636
7637 Inline i4x4/i8x8 encode into intra analysis
7638 Larger code size, but faster.
7639
7640commit a5a6d0eeadbba6ae3232f620345762aebca240ab [revision 2098]
7641Author: Fiona Glaser <fiona@x264.com>
7642Date: Wed Sep 21 17:12:10 2011 -0700
7643
7644 Initial XOP and FMA4 support on AMD Bulldozer
7645 ~10% faster Hadamard functions (SATD/SA8D/hadamard_ac) plus other improvements.
7646
7647commit e73b85b56437827f881d1406e11d2cca4bbe5583 [revision 2097]
7648Author: Mans Rullgard <mans@mansr.com>
7649Date: Tue Sep 27 21:14:14 2011 +0400
7650
7651 ARM: update NEON chroma deblock functions to NV12 pixel format
7652
7653commit 9c356e2558948714bdbb991a9f9cb9a3e1f0121b [revision 2096]
7654Author: Sean McGovern <gseanmcg@gmail.com>
7655Date: Mon Oct 17 12:45:15 2011 -0700
7656
7657 Add /usr/lib/{64/}values-xpg6.o to $LDFLAGS on Solaris
7658 This is required for POSIX.1-2001 compliance.
7659
7660commit 6c50ab569d95ebb07e5fb437a38d646bf607c74b [revision 2095]
7661Author: Sean McGovern <gseanmcg@gmail.com>
7662Date: Mon Oct 17 12:44:03 2011 -0700
7663
7664 Fix linker test for -Bsymbolic
7665 The Solaris linker only accepts -Bsymbolic for objects compiled in dynamic mode (i.e. shared objects), so pass -shared to gcc.
7666 Additionally, for x86_32 unresolved textrels cause a linker error so mark the .text section as 'impure'.
7667
7668commit 421c38f22c7bdaf2981b2ffb72332c40cadd7332 [revision 2094]
7669Author: Sean McGovern <gseanmcg@gmail.com>
7670Date: Mon Oct 17 12:43:28 2011 -0700
7671
7672 Add $SOFLAGS to exported SOFLAGS make variable
7673
7674commit dd713cae59c062440b046fe75d60af83d049de3c [revision 2093]
7675Author: Henrik Gramner <hengar-6@student.ltu.se>
7676Date: Sat Sep 24 15:56:08 2011 +0200
7677
7678 Allow setting a chroma format at compile time
7679 Gives a slight speed increase and significant binary size reduction when only one chroma format is needed.
7680
7681commit 68f6db44035e8f9d4d00a73e5703eb1d7ff8d619 [revision 2092]
7682Author: Harfe Leier <astrataro@gmail.com>
7683Date: Fri Sep 30 12:49:33 2011 -0700
7684
7685 Improve profile help
7686 List high422/high444 profiles, and don't show non-high-bit-depth profiles in high bit depth builds.
7687
7688commit 675110a687459cc03685489470bbc730580a793b [revision 2091]
7689Author: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
7690Date: Thu Oct 20 03:09:51 2011 +0900
7691
7692 Fix infinite loop parsing TDecimate Mode 3 timecode v1 files
7693
7694commit 2ec99b3b94f986b456de1525087ee85b6fa79091 [revision 2090]
7695Author: Fiona Glaser <fiona@x264.com>
7696Date: Mon Oct 10 17:44:31 2011 -0700
7697
7698 Fix some integer overflows/signedness errors found by IOC
7699 The only real bug here is in slicetype.c, which may or may not affect real encodes.
7700
7701commit ae1288c43780ed9be60b59dd556d5f85df7498e2 [revision 2089]
7702Author: Fiona Glaser <fiona@x264.com>
7703Date: Wed Oct 12 09:16:32 2011 -0700
7704
7705 Fix pixel_var2 with 4:2:2 encoding
7706 Might have caused artifacts or suboptimal chroma compression.
7707
7708commit 9ac39f6078659f4f5cf548460dec940a04fd52c8 [revision 2088]
7709Author: Anton Mitrofanov <BugMaster@narod.ru>
7710Date: Sun Oct 9 19:14:16 2011 +0400
7711
7712 Fix chroma intra analysis in 4:4:4 lossless mode
7713
7714commit 294df95060118de1d605ce20fcf490cdb4f4d14c [revision 2087]
7715Author: Anton Mitrofanov <BugMaster@narod.ru>
7716Date: Sun Oct 9 01:13:29 2011 +0400
7717
7718 Fix use of uninitialized MVs in sub8x8 RDO
7719
7720commit 3ff2feee5a176ec8012c313e4a9e2b3611f29614 [revision 2086]
7721Author: Fabian Greffrath <fabian+debian@greffrath.com>
7722Date: Fri Oct 7 19:04:17 2011 -0700
7723
7724 Fix detection of Alpha CPU arch on alphaev67
7725
7726commit 2701440c515a9a8aee1c87d7c06c98e43c3d813f [revision 2085]
7727Author: Fiona Glaser <fiona@x264.com>
7728Date: Wed Sep 14 14:53:04 2011 -0700
7729
7730 Optimize x86 asm for Intel macro-op fusion
7731 That is, place all loop counter tests right before their conditional jumps.
7732
7733commit 2d481bc0ee053634fe46c0df2cbc646733dd137d [revision 2084]
7734Author: Fiona Glaser <fiona@x264.com>
7735Date: Mon Sep 12 11:51:23 2011 -0700
7736
7737 CAVLC: clean up and restructure
7738 Somewhat faster CAVLC and RD bit-counting.
7739
7740commit da768d95d5d63f1eac77a35731079ce02aaa125c [revision 2083]
7741Author: Fiona Glaser <fiona@x264.com>
7742Date: Thu Sep 8 17:27:02 2011 -0700
7743
7744 CABAC: clean up and restructure
7745 Somewhat faster CABAC and RD bit-counting.
7746
7747commit 389b401a99f2f33b41db7d74904b3ff7509d79e5 [revision 2082]
7748Author: Fiona Glaser <fiona@x264.com>
7749Date: Sun Sep 4 11:31:29 2011 +0200
7750
7751 Some initial 4:2:2 x86 asm
7752
7753commit 5b0cb86f27ba0c5433c404bed51c06a5124dfb49 [revision 2081]
7754Author: Henrik Gramner <hengar-6@student.ltu.se>
7755Date: Fri Aug 26 15:57:04 2011 +0200
7756
7757 4:2:2 encoding support
7758
7759commit 3d82e875d06b9d1e15ca2baa16b1bd9640500972 [revision 2080]
7760Author: Loren Merritt <pengvado@akuvian.org>
7761Date: Mon Aug 15 18:18:55 2011 +0000
7762
7763 SSSE3/SSE4 9-way fully merged i4x4 analysis (sad/satd_x9)
7764
7765 i4x4 analysis cycles (per partition):
7766 penryn sandybridge
7767 184-> 75 157-> 54 preset=superfast (sad)
7768 281->165 225->124 preset=faster (satd with early termination)
7769 332->165 263->124 preset=medium
7770 379->165 297->124 preset=slower (satd without early termination)
7771
7772 This is the first code in x264 that intentionally produces different behavior
7773 on different cpus: satd_x9 is implemented only on ssse3+ and checks all intra
7774 directions, whereas the old code (on fast presets) may early terminate after
7775 checking only some of them. There is no systematic difference on slow presets,
7776 though they still occasionally disagree about tiebreaks.
7777
7778 For ease of debugging, add an option "--cpu-independent" to disable satd_x9
7779 and any analogous future code.
7780
7781commit e184ff26233198932d9b77aa7feed6a49095f136 [revision 2079]
7782Author: Loren Merritt <pengvado@akuvian.org>
7783Date: Mon Aug 15 17:43:42 2011 +0000
7784
7785 Faster intra_mbcmp_x3 for versions without dedicated asm
7786 Select asm subroutines more intelligently in the wrapper functions.
7787
7788commit d94edd734304c16265f28dd11e8a2029cbdc5b7f [revision 2078]
7789Author: Loren Merritt <pengvado@akuvian.org>
7790Date: Sat Aug 13 19:01:22 2011 +0000
7791
7792 Optimize x86 intra_predict_4x4 and 8x8
7793
7794 High bit depth Penryn, Sandybridge cycles:
7795 4x4_ddl: 11->10, 9-> 8
7796 4x4_ddr: 15->13, 12->11
7797 4x4_hd: , 15->12
7798 4x4_hu: , 14->13
7799 4x4_vr: 15->14, 14->12
7800 8x8_ddl: 32->19, 19->14
7801 8x8_ddr: 42->19, 21->14
7802 8x8_hd: , 15->13
7803 8x8_hu: 21->17, 16->12
7804 8x8_vr: 33->19,
7805
7806 8-bit Penryn, Sandybridge cycles:
7807 4x4_ddr: 24->15,
7808 4x4_hd: 24->16,
7809 4x4_hu: 23->15,
7810 4x4_vr: 23->16,
7811 4x4_vl: 10-> 9,
7812 8x8_ddl: 23->15,
7813 8x8_hd: , 17->14
7814 8x8_hu: , 15->14
7815 8x8_vr: 20->16, 17->13
7816
7817commit 37b2d963b262d2880271f313a17fceeee27a3de8 [revision 2077]
7818Author: Loren Merritt <pengvado@akuvian.org>
7819Date: Sat Aug 13 06:44:28 2011 +0000
7820
7821 Use realistic alignment for intra pred benchmarks in checkasm
7822
7823commit 10ef9590e33d209a937fcb3f5ca1be66fb481a17 [revision 2076]
7824Author: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
7825Date: Wed Sep 21 01:15:38 2011 +0900
7826
7827 Fix frame packing SEI with --frame-packing 0
7828 According to the spec, when frame_packing_arrangement_type is equal to 0, quincunx_sampling_flag shall be equal to 1.
7829
7830commit cb648060484f081eba39480a26791a8e0d605989 [revision 2075]
7831Author: Oka Motofumi <chikuzen.mo@gmail.com>
7832Date: Mon Sep 5 11:50:37 2011 +0900
7833
7834 Fix install/uninstall shared libs if SYS is WINDOWS/CYGWIN
7835
7836commit d2452266ccf4bd9552d7ac94b5600b416d757d34 [revision 2074]
7837Author: Reinhard Tartler <siretart@tauware.de>
7838Date: Wed Aug 10 00:16:46 2011 -0700
7839
7840 Add Hurd support to configure
7841
7842commit 75de7be6d5e7b0e1fc0febf087be65e91c00b80b [revision 2073]
7843Author: Loren Merritt <pengvado@akuvian.org>
7844Date: Sat Aug 13 00:39:35 2011 +0000
7845
7846 Optimize x86 intra_satd_x3_*
7847 ~7% faster.
7848
7849commit b597966bfa8a481489e5af93eb25988456c51a5d [revision 2072]
7850Author: Loren Merritt <pengvado@akuvian.org>
7851Date: Fri Aug 12 19:13:07 2011 +0000
7852
7853 Optimize x86 intra_sa8d_x3_8x8
7854 ~40% faster.
7855 Also some other minor asm cosmetics.
7856
7857commit f3fc0c4485aa3ed1774bce462ad3fb92faec114b [revision 2071]
7858Author: Loren Merritt <pengvado@akuvian.org>
7859Date: Fri Aug 12 02:15:46 2011 +0000
7860
7861 Scale interlaced refs/mvs for mvr predictors
7862 Slightly improves compression and fixes a Valgrind error.
7863
7864commit ebc334f8d1d2752b9bc2c56e457fffc123ffddee [revision 2070]
7865Author: Loren Merritt <pengvado@akuvian.org>
7866Date: Thu Aug 11 15:03:12 2011 +0000
7867
7868 Optimize predict_8x8_filter and incidentally remove a valgrind false-positive
7869
7870commit 94493149bbc251d0ce4ceee85a9faa5ad8837a04 [revision 2069]
7871Author: Anton Mitrofanov <BugMaster@narod.ru>
7872Date: Mon Aug 15 12:22:18 2011 +0400
7873
7874 Don't override flat SSE2 dequant functions with non-flat AVX ones
7875 Slightly faster.
7876
7877commit 25a8bb9461bf7b0c75e7fadc8d104dbdc61bed5c [revision 2068]
7878Author: Loren Merritt <pengvado@akuvian.org>
7879Date: Mon Aug 8 13:40:53 2011 +0000
7880
7881 Shut up some valgrind false-positives
7882
7883commit ede9651875846116bdb2d3d84e3630beada7e21d [revision 2067]
7884Author: Fiona Glaser <fiona@x264.com>
7885Date: Tue Aug 16 13:02:24 2011 -0700
7886
7887 Avoid some unnecessary allocations with B-frames/CABAC off
7888
7889commit 17f16d161e386457f7eaa96866550c497af681d5 [revision 2066]
7890Author: Fiona Glaser <fiona@x264.com>
7891Date: Mon Aug 22 17:07:03 2011 -0700
7892
7893 Fix typo in p8x8 RD analysis
7894 Passed wrong idx to trellis.
7895
7896commit 5a22495a2a857b9fcd5825595422c78f0223a417 [revision 2065]
7897Author: Anton Mitrofanov <BugMaster@narod.ru>
7898Date: Sun Aug 21 02:44:45 2011 +0400
7899
7900 Fix invalid memory accesses in x86 lowres_init when width <= 16
7901
7902commit 8b72a9e4c87bbdfa1b87609fa9cde9bf61440383 [revision 2064]
7903Author: Anton Mitrofanov <BugMaster@narod.ru>
7904Date: Mon Aug 15 12:03:09 2011 +0400
7905
7906 Fix intermediate conversion for YUVJ* pixfmts with 4:4:4 encoding
7907
7908commit cec1f4039fb6f4bf1c5ef97648b94e489400e5bc [revision 2063]
7909Author: Henrik Gramner <hengar-6@student.ltu.se>
7910Date: Sun Aug 14 13:39:29 2011 +0200
7911
7912 Fix pic_out returned by x264_encoder_encode with 4:4:4
7913
7914commit eaa858d33b9dcb6e526b01cc39d0268d4ae6d8c0 [revision 2062]
7915Author: Loren Merritt <pengvado@akuvian.org>
7916Date: Thu Aug 11 22:12:26 2011 +0000
7917
7918 Fix zeroing of mvr predictors in bskip blocks
7919
7920commit 29e318fd26bd3a2e689801aeb9ff84d9e6c1d25f [revision 2061]
7921Author: Loren Merritt <pengvado@akuvian.org>
7922Date: Thu Aug 11 01:33:13 2011 +0000
7923
7924 Fix: chroma planes for weightp analysis were not initted if U early-terminates and V doesn't.
7925
7926commit af0d8d8588e9eed4c4895747fcb7485dd0210bcf [revision 2060]
7927Author: Henrik Gramner <hengar-6@student.ltu.se>
7928Date: Wed Aug 10 20:25:07 2011 +0200
7929
7930 Expand borders before chroma weightp analysis
7931 Prevents mc from using uninitialized source pixels.
7932
7933commit cfcce49df42848f601cb05086d1ef89c23675397 [revision 2059]
7934Author: Henrik Gramner <hengar-6@student.ltu.se>
7935Date: Wed Aug 10 19:29:14 2011 +0200
7936
7937 Another 4:4:4 chroma weightp bug fix
7938
7939commit 51821635e8dccf877c3521830a8a5598c2bc408b [revision 2058]
7940Author: Fiona Glaser <fiona@x264.com>
7941Date: Wed Aug 10 00:17:26 2011 -0700
7942
7943 Fix typo in help
7944
7945commit 3817e54a3aeaa387206f78d5eaee98339dd7d93b [revision 2057]
7946Author: Fiona Glaser <fiona@x264.com>
7947Date: Sat Aug 6 10:45:47 2011 -0700
7948
7949 Improve support for varying resolution between passes
7950 Should give much better quality, but still doesn't support MB-tree yet.
7951 Also check for the same interlaced options between passes.
7952 Various minor ratecontrol cosmetics.
7953
7954commit 9b9a13a98b98385884b7ac25710305ad431c62e4 [revision 2056]
7955Author: Loren Merritt <pengvado@akuvian.org>
7956Date: Sun Aug 7 22:57:27 2011 +0000
7957
7958 asm cosmetics: base-4 constants for shuffles
7959
7960commit 7e60fcd7af513e48d912dfce21026420698ed6ba [revision 2055]
7961Author: Loren Merritt <pengvado@akuvian.org>
7962Date: Wed Aug 3 14:58:50 2011 +0000
7963
7964 Enable some existing asm functions that were missing function pointers
7965 pixel_ads1_avx, predict_8x8_hd_avxx
7966 High bit depth mc_copy_w8_sse2, denoise_dct_avx, prefetch_fenc/ref, and several pixel*sse4.
7967
7968commit 52f287e84a9965f652221f535a3298c7ce0846b9 [revision 2054]
7969Author: Loren Merritt <pengvado@akuvian.org>
7970Date: Wed Aug 3 14:57:06 2011 +0000
7971
7972 Remove some unused, broken, and/or useless functions
7973 Unused frame_sort.
7974 Unused x86_64 dequant_4x4dc_mmx2, predict_8x8_vr_mmx2.
7975 Unused and broken high_depth integral_init*h_sse4, optimize_chroma_*, dequant_flat_*, sub8x8_dct_dc_*, zigzag_sub_*.
7976 Useless high_depth dequant_sse4, dequant_dc_sse4.
7977
7978commit 309ddabbb3fba9ba0a2ae4c23470ec539d052374 [revision 2053]
7979Author: Loren Merritt <pengvado@akuvian.org>
7980Date: Wed Aug 3 14:56:27 2011 +0000
7981
7982 asm cosmetics: merge all the variants of ABS macros
7983
7984commit 1921c6824e37bdf5a8436a6cbe36b0d3a8c376b3 [revision 2052]
7985Author: Loren Merritt <pengvado@akuvian.org>
7986Date: Wed Aug 3 14:53:29 2011 +0000
7987
7988 asm cosmetics part 2
7989 These changes were split out of the cpuflags commit because they change the output executable.
7990
7991commit f85be1cdbe8d9244c0465df13ed58215a8c673cc [revision 2051]
7992Author: Loren Merritt <pengvado@akuvian.org>
7993Date: Wed Aug 3 14:46:41 2011 +0000
7994
7995 asm cosmetics: INIT_MMX/XMM/YMM now support a cpuflags argument
7996
7997 Reduces the number of macro args that need to be passed around.
7998 Allows multiple implementations of a given macro (e.g. PALIGNR) to check
7999 cpuflags at the location where the macro is defined, instead of having
8000 to select implementations by %define at toplevel.
8001 Remove INIT_AVX, as it's replaced by "INIT_XMM avx".
8002
8003 This commit does not change the stripped executable.
8004
8005commit 67336688cdc0c47468cef4e6f8cf57ffd010b56e [revision 2050]
8006Author: Loren Merritt <pengvado@akuvian.org>
8007Date: Wed Aug 3 14:43:34 2011 +0000
8008
8009 Import x86inc.asm patches from libav
8010
8011commit 189c30d390d08b2b3d3007acd0a106a4e0cd17b2 [revision 2049]
8012Author: Loren Merritt <pengvado@akuvian.org>
8013Date: Wed Aug 3 14:42:12 2011 +0000
8014
8015 Cosmetics: s/mmxext/mmx2/
8016
8017commit b37de18947348199bdc392b38e979f619978126e [revision 2048]
8018Author: Henrik Gramner <hengar-6@student.ltu.se>
8019Date: Sun Aug 7 11:58:36 2011 +0200
8020
8021 Fix two bugs in 4:4:4 chroma weightp analysis
8022 Caused slightly worse compression.
8023
8024commit 014f9c8e3fa202f13f926ac037c3a8db494522ea [revision 2047]
8025Author: Loren Merritt <pengvado@akuvian.org>
8026Date: Wed Aug 3 14:40:01 2011 +0000
8027
8028 Fix "--asm avx"
8029 Previously required "--asm sse2fast,fastshuffle,sse4.2,avx".
8030
8031commit 3674cf4fd338a7894883a0172ec6bde61eac6c25 [revision 2046]
8032Author: Anton Mitrofanov <BugMaster@narod.ru>
8033Date: Fri Aug 5 15:59:20 2011 +0400
8034
8035 Re-add support for glibc <2.6, which doesn't have CPU_COUNT
8036
8037commit 1dd4b85fc700db5ec4380e20c2d73882808b3763 [revision 2045]
8038Author: Yasuhiro Ikeda <wipple625@gmail.com>
8039Date: Tue Aug 2 08:59:15 2011 +0900
8040
8041 Avoid using deprecated libavformat functions
8042 Replace av_find_stream_info with avformat_find_stream_info.
8043 Now requires libavformat 53.3.0 or newer.
8044
8045commit 191b68df93e7ad4096c6aa4df4120dcb0e83dded [revision 2044]
8046Author: Henrik Gramner <hengar-6@student.ltu.se>
8047Date: Wed Jul 27 02:23:12 2011 +0200
8048
8049 Use assembly versions of some deblocking functions in MBAFF
8050
8051commit 459ac481e85833550470d231ae4749a138146614 [revision 2043]
8052Author: Anton Mitrofanov <BugMaster@narod.ru>
8053Date: Thu Jul 28 00:26:27 2011 +0400
8054
8055 Move X264_VERSION / X264_POINTVER from config.h to x264_config.h
8056 This makes them available to external programs as part of the public API.
8057
8058commit 95f03f9e89c04b29aa4b5ad57fa4869899eedb4c [revision 2042]
8059Author: Henrik Gramner <hengar-6@student.ltu.se>
8060Date: Fri Jul 29 20:15:52 2011 +0200
8061
8062 Fix padding bug in x264_expand_border_mbpair
8063
8064commit eee242c1a64db0c4975eaf9add82565502882293 [revision 2041]
8065Author: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
8066Date: Fri Jul 29 23:39:26 2011 +0900
8067
8068 Timecode parsing: Add missing initialization
8069 Fix crash when failed to parse timecode file before malloc pts.
8070 Fix detection of user timebase considered to be exceeding H.264 maximum.
8071
8072commit e1ec7c8ae8d865165c802a69387e4d41cb004e43 [revision 2040]
8073Author: Anton Mitrofanov <BugMaster@narod.ru>
8074Date: Thu Jul 28 13:37:24 2011 +0400
8075
8076 Fix crash with high bitdepth 4:2:0 input
8077
8078commit 10dc5bb27739fd112f5b94ffb9419fa8781c5bbe [revision 2039]
8079Author: Daniel Kang <daniel.d.kang@gmail.com>
8080Date: Tue Jul 26 21:57:39 2011 -0400
8081
8082 x86 asm cosmetics
8083 Use FDEC_STRIDEB where appropriate.
8084
8085commit bbfbacc9d3fa89cd922f33feb3924b67fdf31f7b [revision 2038]
8086Author: Fiona Glaser <fiona@x264.com>
8087Date: Tue Jul 26 07:40:23 2011 -0700
8088
8089 Fix a bug in lossless sub-8x8 RD
8090 Caused crashes in rare cases with lossless encoding. Regression in 4:4:4.
8091
8092commit 10474f5af22f3b2444a4301252175657b6fb1514 [revision 2037]
8093Author: Fiona Glaser <fiona@x264.com>
8094Date: Mon Jul 18 23:10:30 2011 -0700
8095
8096 Improved p8x4/4x8 search decision
8097 Use the same thresholding as for p16x8/8x16.
8098 Does p8x4/4x8 search more often, for a small compression improvement.
8099
8100commit 4a88ee1c649d92bbdbbf128e22d547e9b833f00c [revision 2036]
8101Author: Dan Larkin <danielhlarkin@gmail.com>
8102Date: Wed Jul 13 12:45:23 2011 -0500
8103
8104 Add --subme 11, which disables all early terminations in analysis
8105 Necessary for a future trellis mode decision/motion estimation patch.
8106 Also add the slowest presets to the regression test.
8107
8108commit 330c8fdaccd63383ba6f7f1ccf787a5f1b89d09b [revision 2035]
8109Author: Dan Larkin <danielhlarkin@gmail.com>
8110Date: Wed Jul 13 11:33:48 2011 -0500
8111
8112 Some trivial changes to RD thresholds
8113 The output-changing portion of the next patch.
8114
8115commit b5e21b60fe4422c85b9f27eda6f45d7a5517e160 [revision 2034]
8116Author: Anton Mitrofanov <BugMaster@narod.ru>
8117Date: Wed Jul 20 22:54:43 2011 +0400
8118
8119 Allow setting a wider range of chroma QP offsets
8120 This allows use of the full range of chroma QP offsets, even in combination with the automatic psy-based adjustments.
8121
8122commit 1f285bd40b45dfa97fadc86f912a19c54563fa77 [revision 2033]
8123Author: Fiona Glaser <fiona@x264.com>
8124Date: Fri Jul 15 13:24:38 2011 -0700
8125
8126 Optimize macroblock_deblock_strength, add more early terminations
8127
8128commit 695bac1d7e66ead90952e333abeab0176ea7221d [revision 2032]
8129Author: Fiona Glaser <fiona@x264.com>
8130Date: Thu Jul 14 18:23:44 2011 -0700
8131
8132 Function-pointerify MBAFF deblocking functions
8133
8134commit 75466d2e4fff1aeba7e64a1947e8beea3f1235ff [revision 2031]
8135Author: Fiona Glaser <fiona@x264.com>
8136Date: Thu Jul 14 14:04:11 2011 -0700
8137
8138 Clean up MBAFF deblocking code
8139
8140commit 8ae69dbc7ec37e157a3890c21ec4904973e800f9 [revision 2030]
8141Author: Fiona Glaser <fiona@x264.com>
8142Date: Tue Jul 12 17:27:18 2011 -0700
8143
8144 Optimize frame_deblock_row
8145
8146commit 44269ed290f1a5457c24b6e2992bc65e92a70ac4 [revision 2029]
8147Author: Henrik Gramner <hengar-6@student.ltu.se>
8148Date: Wed Jul 20 22:30:59 2011 +0200
8149
8150 Shrink two arrays
8151
8152commit aea1565f5f5d793935b10cd6081bf8dbe9513db5 [revision 2028]
8153Author: Anton Mitrofanov <BugMaster@narod.ru>
8154Date: Mon Jul 18 15:20:05 2011 +0400
8155
8156 Add support for the new (4:4:4) colorspaces to x264_picture_alloc
8157
8158commit e93cfd6adcdd246372a38f2598590c0ab7c69b7d [revision 2027]
8159Author: Anton Mitrofanov <BugMaster@narod.ru>
8160Date: Wed Jul 20 18:06:41 2011 +0400
8161
8162 Various cosmetics
8163
8164commit 3ef68d34b477bfd7410267eecbeaa8ebb44bccc4 [revision 2026]
8165Author: Yasuhiro Ikeda <wipple625@gmail.com>
8166Date: Tue Jul 12 23:41:42 2011 +0900
8167
8168 Improve configure help
8169
8170commit 9dd3e96e9420fac3cb00d44eab75450c630fe231 [revision 2025]
8171Author: Yasuhiro Ikeda <wipple625@gmail.com>
8172Date: Tue Jul 12 14:46:29 2011 +0900
8173
8174 Use $optarg for some configure options
8175
8176commit f7e6610ba12319d68833526676b16879aaff415c [revision 2024]
8177Author: Rafaël Carré <rafael.carre@gmail.com>
8178Date: Thu Jul 14 18:51:43 2011 -0700
8179
8180 Linux x264_cpu_num_processors(): use glibc macros
8181 The cpu_set_t structure is considered opaque.
8182 Also handle sched_getaffinity() error case if "cpusetsize is smaller than the size of the affinity mask used by the kernel."
8183
8184commit 670d81811866e9e5045d25c5def5ba2b9f06d2ac [revision 2023]
8185Author: Anton Mitrofanov <BugMaster@narod.ru>
8186Date: Thu Jul 14 17:02:43 2011 +0400
8187
8188 Fix spurious "stream properties changed" with --seek option on some inputs
8189
8190commit aa50e72e7c723927325d031ab47b24e069dde4e3 [revision 2022]
8191Author: Anton Mitrofanov <BugMaster@narod.ru>
8192Date: Fri Jul 15 15:06:37 2011 +0400
8193
8194 Fix use of deprecated libavcodec functions
8195 Replace avcodec_open with avcodec_open2. Now requires libavcodec 53.6.0 or newer.
8196
8197commit 67c796a37233e66239226bacd74f038281d43095 [revision 2021]
8198Author: Kieran Kunhya <kieran@kunhya.com>
8199Date: Wed Jul 13 20:25:40 2011 +0100
8200
8201 Fix nalu_process callback with HRD
8202
8203commit bb784df93d92fb28f67a7998faed0da425b25623 [revision 2020]
8204Author: Anton Mitrofanov <BugMaster@narod.ru>
8205Date: Wed Jul 13 15:55:38 2011 +0400
8206
8207 Fix incorrect chroma swap for some input pixfmts
8208
8209 Problem occurred if pixfmt of lavf/ffms input was PIX_FMT_RGB24 or PIX_FMT_YUV444P.
8210
8211commit ad1c2c8e383cb0f23ba8a0ba2ae211ad9f5eba62 [revision 2019]
8212Author: Anton Mitrofanov <BugMaster@narod.ru>
8213Date: Tue Jun 28 21:39:09 2011 +0400
8214
8215 Fix resize filter crash with YUVJ* input pixfmt
8216
8217commit ce55ae08a6aad516e6aa2ed58fd93a2adf39a997 [revision 2018]
8218Author: xvidfan <xvidfan@freenet.de>
8219Date: Wed Jun 22 18:46:14 2011 -0700
8220
8221 RGB encoding support
8222 Much less efficient than YUV444, but easy to support using the YUV444 framework.
8223
8224commit a93e4c4a75d05e7bf379cb9a39caad57f615eeb0 [revision 2017]
8225Author: Fiona Glaser <fiona@x264.com>
8226Date: Wed Jun 22 03:32:53 2011 -0700
8227
8228 4:4:4 encoding support
8229
8230commit 323469e393af71dedd357763883232a293c3ab02 [revision 2016]
8231Author: Fiona Glaser <fiona@x264.com>
8232Date: Mon Jun 20 16:20:21 2011 -0700
8233
8234 Properly weight slice header lambda in chroma weightp analysis
8235
8236commit ae61d0c3c236140b6a7ee4ae5f691cf8191b2282 [revision 2015]
8237Author: Daniel Kang <daniel.d.kang@gmail.com>
8238Date: Sun Jul 3 17:32:00 2011 -0400
8239
8240 Better x86 high bit depth predict_8x8c_p
8241 Avoid the need to check for corner cases by reordering arithmetic.
8242 Also make a minor optimization to high bit depth predict_16x16_p.
8243
8244commit a8e1be77d59ff3e5ba565b6ee133a1b2364a2dfa [revision 2014]
8245Author: Fiona Glaser <fiona@x264.com>
8246Date: Thu Jun 23 11:54:42 2011 -0700
8247
8248 Eliminate extra layer of indirection for sps/pps references
8249 Also remove poc type 1 support (it didn't work anyways) to reduce sps size.
8250
8251commit 8ade503619aff45e5be0ee544d8ab8c867eb5720 [revision 2013]
8252Author: Fiona Glaser <fiona@x264.com>
8253Date: Sat Jul 9 19:21:00 2011 -0700
8254
8255 Fix SSIM calculation with sliced threads
8256
8257commit 03bf7da697967bb8ed0b014e8623532b58051240 [revision 2012]
8258Author: Anton Mitrofanov <BugMaster@narod.ru>
8259Date: Sat Jul 9 23:57:44 2011 +0400
8260
8261 Avoid possible NaNs in B-frame output stats
8262
8263commit defbf3f4d26d348bf07ec91588a304b59588d96e [revision 2011]
8264Author: Rémi Denis-Courmont <remi@remlab.net>
8265Date: Thu Jun 30 14:07:43 2011 -0700
8266
8267 ARM: do not override the toolchain default for FPU ABI
8268
8269commit fb629fcf1d280778f50db39f6c1038158321cc3c [revision 2010]
8270Author: Steven Walters <kemuri9@gmail.com>
8271Date: Thu Jun 23 20:29:01 2011 -0400
8272
8273 Fix link errors with libswscale/libavutil as shared libraries
8274
8275commit e825c625999ddc0a27fc6c5cc0b39f198c22b021 [revision 2009]
8276Author: Steven Walters <kemuri9@gmail.com>
8277Date: Sat Jun 18 14:12:34 2011 -0400
8278
8279 Fix deprecation in libavformat usage
8280 Replace av_open_input_file with avformat_open_input. Now requires libavformat 53.2.0 or newer.
8281
8282commit d89c1b43816f05e43a836d38764d74d499e82a80 [revision 2008]
8283Author: Anton Mitrofanov <BugMaster@narod.ru>
8284Date: Thu Jun 9 01:34:14 2011 +0400
8285
8286 Fix various issues with VBV+threads
8287 Eliminate the race condition with interframe row predictors and threads.
8288 Recalculate frame_size_estimated at the end of a frame, for improved update_vbv_plan.
8289 Some cosmetics.
8290
8291commit ed3b10eb9cffcc346b5a070ce47f5a2beaf9efb6 [revision 2007]
8292Author: Anton Mitrofanov <BugMaster@narod.ru>
8293Date: Mon Jun 6 13:54:44 2011 +0400
8294
8295 Fix MBAFF row VBV ratecontrol
8296 Reverts most of r1984 and implements a much simpler solution.
8297
8298commit d091d0e6038e770ada1a856c601c401ba729d083 [revision 2006]
8299Author: Fiona Glaser <fiona@x264.com>
8300Date: Mon May 23 17:01:02 2011 -0700
8301
8302 Make ratecontrol_mb less slow
8303
8304commit 63eb8bc9b48564f777e98dd2528c07cff09184b1 [revision 2005]
8305Author: Steven Walters <kemuri9@gmail.com>
8306Date: Thu Jun 2 21:23:04 2011 -0400
8307
8308 Resize filter updates
8309 Fix use of deprecated sws_getContext.
8310 Fix uses of sws_format_name.
8311 Fix stream change warning not occurring on the first resolution change.
8312 Drop cpu detection, as it is now performed internally by swscale.
8313 Update swscale version requirements.
8314
8315commit d2e8686121a0418f466a0d79ef6a5367e944f940 [revision 2004]
8316Author: Fiona Glaser <fiona@x264.com>
8317Date: Tue May 17 14:50:51 2011 -0700
8318
8319 AVX mbtree_propagate
8320 Up to ~20-30% faster than SSE2 on Sandy Bridge.
8321
8322commit 6d2b51a32bbaabee1a8762adb204d035d590331b [revision 2003]
8323Author: Fiona Glaser <fiona@x264.com>
8324Date: Tue Jun 14 10:26:56 2011 -0700
8325
8326 Use -vsync 0 with ffmpeg regression test
8327
8328commit 06fbd9df654cd2b7a025c12b3a7d4b3fb3386e23 [revision 2002]
8329Author: Henrik Gramner <hengar-6@student.ltu.se>
8330Date: Sat May 21 19:04:46 2011 +0200
8331
8332 Inline emms instructions on x86 if possible
8333
8334commit f7c6d308f38b3193dbb7bd9f427252e296dfcbfe [revision 2001]
8335Author: Fiona Glaser <fiona@x264.com>
8336Date: Tue Jun 14 09:35:03 2011 -0700
8337
8338 Make left_index_table const
8339 Should allow for some missed compiler optimizations in macroblock_cache_load.
8340
8341commit ca7852e211b5a270a8e4752526378a898f669017 [revision 2000]
8342Author: Hii <hiiragikei@gmail.com>
8343Date: Tue May 24 08:31:17 2011 +0800
8344
8345 Make --profile main/baseline force off CQMfile
8346
8347...