Commit Graph
100 Commits
Author SHA1 Message Date
Clément Bœsch 11aab8d6cb ffmpeg: look for encoding options in both avcodec and avformat
This patch is the same as 8a1714ad85 but
applied to encoding. It fixes the current clash of the -password option
between tta decoder and the icecast protocol.
2014-08-15 23:56:09 +02:00
Clément Bœsch 37bfeca78c avfilter/select: larger pixel sad computation 2014-08-14 19:11:13 +02:00
Clément Bœsch 10d96d8d66 avfilter/select: re-align a few comments 2014-08-14 18:52:53 +02:00
Clément Bœsch ec14f53dbd reset and complete RELEASE_NOTES for the next version 2014-08-13 21:03:55 +02:00
Clément Bœsch 8fcd9386ec Changelog: notify about the recent performance boost in dctdnoiz filter 2014-08-13 20:02:21 +02:00
Clément Bœsch c85e0ca68a avfilter/dctdnoiz: add slice threading 2014-08-13 19:32:00 +02:00
Clément Bœsch d7594beede avfilter/dctdnoiz: remove a few indirections in idcts
No change in the generated asm.
2014-08-09 20:34:14 +02:00
Clément Bœsch 1ba7c6ead2 avfilter/dctdnoiz: use 32-bit (float) operations instead of 64 (double) for DCTs
This makes the code about 1.5x faster without any noticeable difference
in the output.
2014-08-08 20:00:14 +02:00
Clément Bœsch eb16a6d229 avfilter/dctdnoiz: remove forward declarations after previous commit 2014-08-08 20:00:14 +02:00
Clément Bœsch aaf82dc0fa avfilter/dctdnoiz: make color [de]correlation less clumsy
This has no impact on overall performance, since the block DCT taking
most of the time anyway.
2014-08-08 20:00:13 +02:00
Clément Bœsch cec59eb63f avfilter/dctdnoiz: add 8x8 dct and make it the default
8x8 is about 5x faster than 16x16 on 1080p input. Since a block size of
8x8 makes the filter almost usable (time wise) and it's not obvious if
8x8 or 16x16 is better from a quality PoV (it really depends on the
input and parameters), the filter now defaults to 8x8, and as a result
libavfilter is micro bumped.
2014-08-07 21:24:12 +02:00
Clément Bœsch 06362ab750 avfilter/dctdnoiz: rewrite [f/i]dct
This removes the avcodec dependency and make the code almost twice as
fast. More to come.

The DCT factorization is based on "Fast and numerically stable
algorithms for discrete cosine transforms" from Gerlind Plonkaa &
Manfred Tasche (DOI: 10.1016/j.laa.2004.07.015).
2014-08-07 19:59:07 +02:00
Clément Bœsch 97478ef5fe avfilter/select: fix "t" eval variable comment 2014-08-05 21:15:13 +02:00
Clément Bœsch eaeb61c3a6 avfilter/select: remove optional avcodec dependency 2014-08-05 21:05:53 +02:00
Clément Bœsch 164b7ccf21 avfilter/mp_decimate: remove avcodec dependency 2014-08-05 21:05:52 +02:00
Clément Bœsch def03d3439 avfilter/deshake: remove avcodec dependency 2014-08-05 21:05:52 +02:00
Clément Bœsch f50ec59751 build: remove wrong avcodec dep in decimate
This was probably a mistake with mpdecimate. The decimate filter doesn't
depend on avcodec.
2014-08-05 21:05:52 +02:00
Clément Bœsch 28a2107a8d avutil: add pixelutils API 2014-08-05 21:05:52 +02:00
Clément Bœsch ee7ee9b1b4 avcodec/mpeg12dec: fix vissible typo after 17c65651 2014-08-03 00:02:23 +02:00
Clément Bœsch 28f31e78eb doc: restore default.css
This partially reverts 9ce64ba111.

FATE still needs it until its design is updated to the new website
version.
2014-07-20 02:01:50 +02:00
Clément Bœsch 7a15c22c5f build: fix build with --disable-encoders
draw_edges() should probably be moved somewhere else to avoid
mpegvideo*enc* dependency to decoders.
2014-07-15 21:26:16 +02:00
Clément Bœsch d5601cf6fc avfilter/haldclut: fix R/B swap in CLUT loading
Fixes Ticket #3751.
2014-07-05 19:35:51 +02:00
Clément Bœsch ec94c52e97 doc: remove trailing ':' at the end of sections
Also lowercase "options" in "Advanced Video Options" for consistency.
2014-06-30 15:36:26 +02:00
Clément Bœsch d5f817793e avfilter/overlay: reindent 2014-06-29 13:26:12 +02:00
Clément Bœsch b18d1b094e avfilter/buffersrc: reindent 2014-06-29 13:26:04 +02:00
Clément Bœsch 79198cb65a avfilter/hqx: add some self promotion in doxy.
This is useful to understand how it's different from the original code.
2014-06-21 22:34:15 +02:00
Clément Bœsch 4d8fc0e088 avfilter/hqx: unroll the pattern calculation
Code si smaller, no speed difference.
2014-06-21 22:32:49 +02:00
Clément Bœsch ded3c9fd32 avfilter: add hqx filter (hq2x, hq3x, hq4x)
Partially fixes Ticket #3404 (xbr filter remaining)
2014-06-21 19:22:55 +02:00
Clément BœschandClément Bœsch 88514378ba avcodec/ass: move playres parameters below scripttype
Suggested-by: wm4
2014-06-18 18:43:36 +02:00
Clément BœschandClément Bœsch 5039aadf68 avcodec/ass: explicit PlayRes[XY]
This avoids the following libass warning when using the subtitles
filter: "Neither PlayResX nor PlayResY defined. Assuming 384x288"

Subtitles tests change because the output is ASS and the PlayRes[XY]
ends up in the output.
2014-06-18 18:22:40 +02:00
Clément Bœsch 0180c46928 avfilter/showcqt: move qsort_sparsecoeff closer to where it belongs 2014-06-11 21:33:09 +02:00
Clément Bœsch 1786cd850f avfilter/showcqt: fix misc style issues 2014-06-11 21:33:09 +02:00
Clément Bœsch 76bce46d8f avfilter: add signalstats filter
Signed-off-by: Mark Heath <silicontrip@gmail.com>
Signed-off-by: Dave Rice <dave@dericed.com>
Signed-off-by: Clément Bœsch <u@pkh.me>
2014-06-11 21:17:24 +02:00
Clément Bœsch 53bac1b4bd doc: add a tutorial for writing filters. 2014-05-26 21:28:19 +02:00
Clément Bœsch 657c603263 avcodec/webvttenc: do not use EOVERFLOW.
According to doc/errno.txt EOVERFLOW is not available everywhere. The
use of -1 is consistent with avcodec/srtenc.c.
2014-05-25 10:28:16 +02:00
Clément Bœsch cba92a2226 avformat/vobsub: do not create empty streams.
Fixes NULL dereference in vobsub_read_packet() on vobsub->q[i]->subs.

Fixes ticket #3669.
2014-05-24 11:08:34 +02:00
Clément Bœsch 08c51e12b1 ffplay: support rotated video.
with -f lavfi -i testsrc=s=hd1080 as source:
  rotate=90*PI/180  vs transpose=clock:   42fps -> 64fps
  rotate=180*PI/180 vs vflip,hflip:       75fps -> 77fps
  rotate=270*PI/180 vs transpose=cclock:  43fps -> 63fps
2014-05-23 23:30:21 +02:00
Clément Bœsch e63a17bfdc avformat/mov: use av_display_rotation_get() for rotate metadata. 2014-05-23 23:30:21 +02:00
Clément Bœsch fa972dcf1a avutil/display: use hypot(). 2014-05-23 23:30:21 +02:00
Clément Bœsch 9986e50a6e configure: make vp9 decoder select the parser.
The parser is needed. FATE breaks if not present.
2014-05-17 16:13:42 +02:00
Clément Bœsch 2ca97c7802 configure: make sure pkg-config flags are populated in FT test. 2014-05-17 16:13:42 +02:00
Clément Bœsch 11e490334e avfilter/edgedetect: reuse already defined ctx. 2014-05-17 14:16:04 +02:00
Clément Bœsch bac08cf086 avfilter/vignette: reindent after previous commit. 2014-05-16 06:53:36 +02:00
Clément Bœsch ed7bc5471b avfilter/vignette: add direct rendering. 2014-05-16 06:53:18 +02:00
Clément Bœsch 8a0ba44e1a vignette: reuse already declared ctx. 2014-05-16 06:48:41 +02:00
Clément Bœsch bc2e39c4cc avfilter/lut3d: move the scale calc out of the inner loop. 2014-05-14 07:51:10 +02:00
Clément Bœsch c683e6aa2c build: move ebur128 swr dep to configure. 2014-05-13 23:13:44 +02:00
Clément Bœsch 5623a10526 avfilter/phase: make the main loop readable. 2014-05-08 23:58:34 +02:00
Clément Bœsch 5df10150d4 avfilter/phase: add some constness for RO data pointers. 2014-05-08 23:34:51 +02:00
Clément Bœsch 69d72140ac avfilter/phase: add timeline support. 2014-05-08 23:34:51 +02:00
Clément Bœsch 8de600de55 avfilter/phase: avoid a memcpy per frame. 2014-05-08 22:59:47 +02:00
Clément Bœsch 687119aa9d avfilter/phase: do not pass the whole context to analyze_plane().
Also make sure the AVFilterContext is only being used for logging by
changing the type to void*
2014-05-08 22:59:47 +02:00
Clément Bœsch 362ab940fc avfilter/phase: add comment on the context cached frame. 2014-05-08 22:59:47 +02:00
Clément Bœsch 7c3941b25c avfilter/lut3d: support 3DLUTSIZE directive for Davinci files.
Fixes Ticket #2847.
2014-05-04 10:36:53 +02:00
Clément Bœsch d53e87a837 avfilter/edgedetect: update copyright. 2014-05-03 19:10:28 +02:00
Clément Bœsch 365c79bd4e avfilter/edgedetect: reindent after previous commit. 2014-05-03 19:07:14 +02:00
Clément Bœsch b17e98ded0 avfilter/edgedetect: add a colormix mode. 2014-05-03 19:07:14 +02:00
Clément Bœsch 3f3c3318be avfilter/edgedetect: make processing functions context free. 2014-05-03 18:11:02 +02:00
Clément Bœsch b7dd250b75 avformat/vobsub: use av_make_q(). 2014-05-01 16:18:12 +02:00
Clément Bœsch 6a3a7d7af1 avformat/vobsub: remove pointless FAIL macro. 2014-05-01 16:16:54 +02:00
Clément Bœsch b2cfd1fde7 avfilter/curves: fix resource leaks.
Fixes CID1206650
2014-04-27 11:49:13 +02:00
Clément Bœsch 62d31307c1 avcodec/x86/vp9lpf: add a comment above a bunch of SWAP. 2014-04-20 21:33:58 +02:00
Clément Bœsch f0d368d758 avcodec/x86/vp9lpf: merge a few movs with other instructions. 2014-04-20 21:29:11 +02:00
Clément Bœsch 010732b73a vp9/x86: simplify FILTER_INIT.
In the 2 FILTER_INIT usages, the source is already preloaded so that
extra complexity taken from FILTER_UPDATE is not necessary.

Also add forgotten "mask" argument in FILTER_{INIT,UPDATE} comments.
2014-04-19 17:30:33 +02:00
Clément Bœsch b8d002dc95 vp9/x86: clarify mixed splatb. 2014-04-19 17:00:51 +02:00
Clément Bœsch cecb6d6f83 Changelog: remove unecessary "added" 2014-04-02 07:45:06 +02:00
Clément Bœsch af3b6aed0d avcodec/vp9dsp: fix typo in mc doxy. 2014-03-29 18:13:15 +01:00
Clément Bœsch c4148a6668 x86/vp9mc: add vp9 namespace. 2014-03-29 18:13:15 +01:00
Clément BœschandLuca Barbato 2572d07c1f http: Allow setting a Content-Type for POST requests
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Clément BœschandLuca Barbato ddfc989063 http: Support setting custom User-Agent
Contextually make the default User-Agent use the common
"Name/Version" pattern.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Clément Bœsch 57ec555e8e avcodec/pngenc: fix invalid read in sub filter.
First pixel was computed based on invalid address read, and then
corrected by the following memcpy. After the commit, it's not computed
anymore, and memcpy fills the appropriate area.

Fixes Ticket #3387
2014-02-23 20:40:52 +01:00
Clément Bœsch 0e97ec54de avfilter/curves: support slice threading. 2014-02-13 14:35:10 +01:00
Clément Bœsch 13aec744c2 avfilter/lut3d: support slice threading. 2014-02-13 13:39:23 +01:00
Clément Bœsch b6c0f07d5a avfilter/lut3d: inline whole loop in interpolation function.
84 → 92 fps here.
2014-02-12 10:12:48 +01:00
Clément Bœsch c333987876 vp9: fix compilation with !HAVE_FAST_64BIT.
Spotted-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-02-09 18:44:20 +01:00
Clément Bœsch 669d4f9053 x86/vp9lpf: simplify 2nd transpose in 44/48/88/84.
For non-avx optims, this saves 8 movs.

before:
  1785 decicycles in ff_vp9_loop_filter_h_44_16_ssse3, 524129 runs, 159 skips
  3327 decicycles in ff_vp9_loop_filter_h_48_16_ssse3, 262116 runs, 28 skips
  2712 decicycles in ff_vp9_loop_filter_h_88_16_ssse3, 4193729 runs, 575 skips
  3237 decicycles in ff_vp9_loop_filter_h_84_16_ssse3, 524061 runs, 227 skips

after:
  1768 decicycles in ff_vp9_loop_filter_h_44_16_ssse3, 524062 runs, 226 skips
  3310 decicycles in ff_vp9_loop_filter_h_48_16_ssse3, 262107 runs, 37 skips
  2719 decicycles in ff_vp9_loop_filter_h_88_16_ssse3, 4193954 runs, 350 skips
  3184 decicycles in ff_vp9_loop_filter_h_84_16_ssse3, 524236 runs, 52 skips
2014-02-08 11:10:23 +01:00
Clément Bœsch d92a725329 x86/vp9lpf: remove 8 SWAPs in 84/48 transpose. 2014-02-05 07:21:13 +01:00
Clément Bœsch 97dde561de x86/vp9lpf: remove braindead double pxor. 2014-02-05 07:21:11 +01:00
Clément Bœsch 9a3b05b0a9 x86/vp9lpf: save a few mov in flat8in/hev masks calc. 2014-02-05 07:21:09 +01:00
Clément Bœsch 91d85bb167 x86/vp9lpf: add ff_vp9_loop_filter_[vh]_44_16_{sse2,ssse3,avx}. 2014-02-05 07:21:06 +01:00
Clément Bœsch 7f42bfad5d lavfi/ebur128: add sample and true peak metering.
Metadata injection and logging. Not yet present visually.

Signed-off-by: Jean First <jeanfirst@gmail.com>
2014-02-02 20:44:56 +01:00
Clément Bœsch c5dd73b890 x86/vp9lpf: add ff_vp9_loop_filter_h_{48,84}_16_{sse2,ssse3,avx}().
5.40s → 5.30s overall decode time with -threads 1 on ped1080p.webm
(i7 920, ssse3)
2014-01-30 19:34:13 +01:00
Clément Bœsch 222c46c531 x86/vp9lpf: add ff_vp9_loop_filter_[vh]_88_16_{ssse3,avx}.
9680 decicycles in loop_filter_v_88_16_c, 4193765 runs, 539 skips
9233 decicycles in loop_filter_h_88_16_c, 4193751 runs, 553 skips

1929 decicycles in ff_vp9_loop_filter_v_88_16_ssse3, 4194118 runs, 186 skips
2738 decicycles in ff_vp9_loop_filter_h_88_16_ssse3, 4193861 runs, 443 skips

5.978 → 5.417 overall decode time on ped1080p.webm (-threads 1)

Adding SSE2 support should be relatively trivial (just a matter of
changing the pshufb [mask_mix] with something else), patch welcome.
2014-01-28 07:36:38 +01:00
Clément Bœsch 822385d775 x86/vp9lpf: add a preload system in FILTER_UPDATE.
Allow some macro refactoring in filter14().
2014-01-27 22:39:26 +01:00
Clément Bœsch 315b4775ad x86/vp9lpf: refactor v/h using common macros for P7 to Q7. 2014-01-27 22:39:26 +01:00
Clément Bœsch 5d144086cc x86/vp9lpf: faster P7..Q7 accesses.
Introduce 2 additional registers for stride3 and mstride3 to allow
direct accesses (lea drops).

3931 → 3827 decicycles in ff_vp9_loop_filter_v_16_16_ssse3

Also uses defines to clarify the code.
2014-01-27 22:37:42 +01:00
Clément Bœsch 5f4d04d084 x86/lossless_videodsp: silly one-line cosmetic. 2014-01-25 16:24:50 +01:00
Clément Bœsch 5267e85056 x86/lossless_videodsp: use common macro for add and diff int16 loop. 2014-01-25 14:27:37 +01:00
Clément Bœsch cddbfd2a95 x86/lossless_videodsp: simplify and explicit aligned/unaligned flags 2014-01-25 11:59:43 +01:00
Clément Bœsch 9cc8fa63dd vp9/x86: simplify a few mc inits. 2014-01-16 07:48:27 +01:00
Clément BœschandClément Bœsch 8b4190da93 vp9/x86: add AVX for itxfm and lpf.
4412 decicycles in ff_vp9_loop_filter_h_16_16_ssse3, 4193462 runs, 842 skips
3600 decicycles in ff_vp9_loop_filter_h_16_16_avx, 4193621 runs, 683 skips

3010 decicycles in ff_vp9_loop_filter_v_16_16_ssse3, 4193528 runs, 776 skips
2678 decicycles in ff_vp9_loop_filter_v_16_16_avx, 4193742 runs, 562 skips

23025 decicycles in ff_vp9_idct_idct_32x32_add_ssse3, 2096871 runs, 281 skips
19943 decicycles in ff_vp9_idct_idct_32x32_add_avx, 2096815 runs, 337 skips

4675 decicycles in ff_vp9_idct_idct_16x16_add_ssse3, 4194018 runs, 286 skips
3980 decicycles in ff_vp9_idct_idct_16x16_add_avx, 4194022 runs, 282 skips

967 decicycles in ff_vp9_idct_idct_8x8_add_ssse3, 16776972 runs, 244 skips
887 decicycles in ff_vp9_idct_idct_8x8_add_avx, 16777002 runs, 214 skips
2014-01-15 15:54:03 +01:00
Clément Bœsch af68bd1c06 vp9/x86: add ff_vp9_loop_filter_[vh]_16_16_ssse3().
16662 decicycles in loop_filter_h_16_16_c, 8387355 runs, 1253 skips
17510 decicycles in loop_filter_v_16_16_c, 8387516 runs, 1092 skips

4941 decicycles in ff_vp9_loop_filter_h_16_16_ssse3, 8387887 runs, 721 skips
3899 decicycles in ff_vp9_loop_filter_v_16_16_ssse3, 8387980 runs, 628 skips

Overall decode time goes from:
  ./ffmpeg -v 0 -nostats -threads 1 -i ~/samples/vp9/ped1080p.webm -f null -  8.10s user 0.02s system 99% cpu 8.126 total
to:
  ./ffmpeg -v 0 -nostats -threads 1 -i ~/samples/vp9/ped1080p.webm -f null -  6.15s user 0.04s system 99% cpu 6.199 total

(46 to 61 fps)
2014-01-12 20:20:24 +01:00
Clément Bœsch e11ceea68f vp9/x86: factor out some code in VP9_UNPACK_MULSUB_2W_4X. 2014-01-12 20:19:00 +01:00
Clément Bœsch c9aa0b8f70 vp9/x86: remove reg redundancy in VP9_MULSUB_2W_2X. 2014-01-12 20:18:55 +01:00
Clément Bœsch 7c55ee6168 vp9/x86: merge IDCT coef macros. 2014-01-12 20:18:44 +01:00
Clément BœschandMichael Niedermayer b84a7330af avformat/pjsdec: dont increase pointer when its already at the end in read_ts()
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f91f2de7764_2649_PJS_capability_tester.pjs
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 02:28:17 +01:00
Clément Bœsch 307b6b8cb4 avfilter/lut3d: fix channel order in Iridas format parsing.
According to http://doc.iridas.com/index.php?title=LUT_Formats

    for 3D textures, the data is also RGB, and ordered in such a way
    that the red coordinate changes fastest, then the green coordinate,
    and finally, the blue coordinate changes slowest:

Fixes Ticket #3236.
2014-01-04 09:42:31 +01:00
Clément Bœsch bea9394465 avcodec/vp9dsp: remove unused stride parameter in loop_filter().
The stride argument is passed either as stridea or strideb.
2013-11-23 22:19:38 +01:00
Clément Bœsch 004f3b154b avcodec/vp9dsp: pass dconly bit as macro argument. 2013-11-22 23:26:37 +01:00
Clément Bœsch 64821f5a7c avcodec/vp9dsp: add DC only versions for idct/idct.
before:
  ./ffmpeg -v 0 -nostats -i ~/samples/vp9/etv.webm -f null -  16.29s user 0.02s system 99% cpu 16.323 total
  ./ffmpeg -v 0 -nostats -i ~/samples/vp9/etv.webm -f null -  16.32s user 0.01s system 99% cpu 16.351 total
  ./ffmpeg -v 0 -nostats -i ~/samples/vp9/etv.webm -f null -  16.27s user 0.05s system 99% cpu 16.335 total

after:
  ./ffmpeg -v 0 -nostats -i ~/samples/vp9/etv.webm -f null -  15.22s user 0.03s system 99% cpu 15.257 total
  ./ffmpeg -v 0 -nostats -i ~/samples/vp9/etv.webm -f null -  15.20s user 0.02s system 99% cpu 15.237 total
  ./ffmpeg -v 0 -nostats -i ~/samples/vp9/etv.webm -f null -  15.19s user 0.02s system 99% cpu 15.227 total
2013-11-22 20:32:56 +01:00