Commit Graph
100 Commits
Author SHA1 Message Date
Clément Bœsch c921f4f687 sws/aarch64: add ff_yuv2planeX_8_neon 2016-04-11 16:27:19 +02:00
Clément Bœsch cab9661dba sws/aarch64/yuv2rgb: honor iOS calling convention
y_offset and y_coeff being successive 32-bit integers, they are packed
into 8 bytes instead of 2x8 bytes.

See https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html

> iOS diverges from Procedure Call Standard for the ARM 64-bit
> Architecture in several ways
[...]
> In the generic procedure call standard, all function arguments passed
> on the stack consume slots in multiples of 8 bytes. In iOS, this
> requirement is dropped, and values consume only the space required.
[...]
> Padding is still inserted on the stack to satisfy arguments’ alignment
> requirements.
2016-04-08 17:58:43 +02:00
Clément Bœsch 040598218f sws/aarch64: restore ff_hscale_8_to_15_neon()
Fix final scaling and required filter alignment. Pass FATE.
2016-04-05 12:00:36 +02:00
Clément Bœsch eadaef2a63 sws/aarch64: disable ff_hscale_8_to_15_neon temporarly
Looks broken.
2016-04-01 17:33:01 +02:00
Clément Bœsch 263eb76bdf sws/aarch64: add ff_hscale_8_to_15_neon
./ffmpeg -nostats -f lavfi -i testsrc2=4k:d=2 -vf bench=start,scale=1024x1024,bench=stop -f null -

    before: t:0.489726 avg:0.489883 max:0.491852 min:0.489482
    after:  t:0.256515 avg:0.256458 max:0.256999 min:0.253755
2016-03-31 10:12:55 +02:00
Clément Bœsch 277408b7f1 sws/aarch64/yuv2rgb: save a few mul and add
27ms to 26ms with UHD 2160 input.
2016-03-25 16:14:13 +01:00
Clément Bœsch 24a189e016 fate/api: add missing FLV dependency to fate-api-seek 2016-03-02 13:52:02 +01:00
Clément Bœsch f1148390d7 sws/aarch64: add {nv12,nv21,yuv420p,yuv422p}_to_{argb,rgba,abgr,rgba}_neon 2016-03-01 17:53:33 +01:00
Clément Bœsch 090621d7ce lavfi: add bench and abench filters 2016-03-01 10:36:15 +01:00
Clément Bœsch 98084adccf build: add --install-name-dir=DIR Darwin option
This option is typically useful when cross-compiling dynamic libraries
for iOS, with something such as --install-name-dir=@rpath
2016-02-29 11:01:24 +01:00
Clément Bœsch d3dbae1c71 lavfi/drawtext: fix shadow[xy] descriptions 2015-12-21 16:42:14 +01:00
Clément Bœsch 1d6308dbc6 lavfi/drawtext: hide first font load warning when fontconfig is present 2015-12-21 16:07:22 +01:00
Clément Bœsch 4cb26c3c35 lavfi/drawtext: fix crash when no text, file or timecode provided 2015-12-21 15:54:20 +01:00
Clément Bœsch b4431c80ef lavf/img2enc: add atomic_writing option
This behaviour change caused a regression on our side recently, we might
want to disable the option by default.
2015-12-21 11:19:51 +01:00
Clément Bœsch 244766e407 lavfi/scale: add nb_slices debug option 2015-12-21 10:30:52 +01:00
Clément Bœsch 91b4afd58d swscale/arm/yuv2rgb: fix slicing 2015-12-18 16:21:49 +01:00
Clément Bœsch 503d8bf74a lavu/frame: use AVPALETTE_SIZE instead of 1024 2015-12-08 17:50:40 +01:00
Clément Bœsch a8bb81a05c lavc, lavu: use avutil/thread.h instead of redundant conditional includes 2015-12-07 17:25:51 +01:00
Clément Bœsch 5e0c47d41c avutil/threadmessage: fix build without HAVE_THREADS, new attempt 2015-12-07 16:39:57 +01:00
Clément Bœsch dc97ff8380 fate/api: add w32+os2 support for fate-api-threadmessage 2015-12-07 14:57:33 +01:00
Clément Bœsch b98305f0ab fate/api: fix fate-api-threadmessage dependency 2015-12-07 14:40:10 +01:00
Clément Bœsch d4b1b33e69 avutil/threadmessage: fix build without HAVE_THREADS 2015-12-07 14:28:34 +01:00
Clément Bœsch bd5c860fdb avutil/threadmessage: split the pthread condition in two
Fix a dead lock under certain conditions. Let's assume we have a queue of 1
message max, 2 senders, and 1 receiver.

Scenario (real record obtained with debug added):
    [...]
    SENDER #0: acquired lock
    SENDER #0: queue is full, wait
    SENDER #1: acquired lock
    SENDER #1: queue is full, wait
    RECEIVER: acquired lock
    RECEIVER: reading a msg from the queue
    RECEIVER: signal the cond
    RECEIVER: acquired lock
    RECEIVER: queue is empty, wait
    SENDER #0: writing a msg the queue
    SENDER #0: signal the cond
    SENDER #0: acquired lock
    SENDER #0: queue is full, wait
    SENDER #1: queue is full, wait

Translated:
 - initially the queue contains 1/1 message with 2 senders blocking on
   it, waiting to push another message.
 - Meanwhile the receiver is obtaining the lock, read the message,
   signal & release the lock. For some reason it is able to acquire the
   lock again before the signal wakes up one of the sender. Since it
   just emptied the queue, the reader waits for the queue to fill up
   again.
 - The signal finally reaches one of the sender, which writes a message
   and then signal the condition. Unfortunately, instead of waking up
   the reader, it actually wakes up the other worker (signal = notify
   the condition just for 1 waiter), who can't push another message in
   the queue because it's full.
 - Meanwhile, the receiver is still waiting. Deadlock.

This scenario can be triggered with for example:
    tests/api/api-threadmessage-test 1 2 100 100 1 1000 1000

One working solution is to make av_thread_message_queue_{send,recv}()
call pthread_cond_broadcast() instead of pthread_cond_signal() so both
senders and receivers are unlocked when work is done (be it reading or
writing).

This second solution replaces the condition with two: one to notify the
senders, and one to notify the receivers. This prevents senders from
notifying other senders instead of a reader, and the other way around.
It also avoid broadcasting to everyone like the first solution, and is,
as a result in theory more optimized.
2015-12-07 11:39:28 +01:00
Clément Bœsch a26e4215b9 fate/api: test threadmessage 2015-12-07 11:39:28 +01:00
Clément Bœsch f98abe0ee7 avutil/threadmessage: add av_thread_message_flush() 2015-12-07 11:39:28 +01:00
Clément Bœsch 560d1e7b49 avfilter/codecview: add QP support 2015-12-05 12:24:15 +01:00
Clément Bœsch 010caed261 swscale: use AV_OPT_TYPE_BOOL for {src,dst}_range options 2015-12-04 15:43:34 +01:00
Clément Bœsch c1f114a8c4 swresample: use AV_OPT_TYPE_BOOL for linear_interp and cheby options 2015-12-04 15:43:33 +01:00
Clément Bœsch 43ecec0f03 avformat: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:43:33 +01:00
Clément Bœsch 0e62b5d1ef avfilter: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:37:06 +01:00
Clément Bœsch fb99ef0bd3 avcodec: use AV_OPT_TYPE_BOOL in a bunch of places 2015-12-04 15:37:05 +01:00
Clément Bœsch 51ee62d50b avcodec/options: remove a few more redundant "default" information 2015-10-26 15:39:09 +01:00
Clément Bœsch 90c4ccc629 avcodec/options: remove redundant and wrong default information for skipcmp option 2015-10-26 15:39:09 +01:00
Clément Bœsch 7794627032 avcodec/avdct: remove redundant "default" information in options 2015-10-26 15:39:09 +01:00
Clément Bœsch f2f55bd9ca build/videotoolbox: add missing CoreVideo framework 2015-10-15 10:43:55 +02:00
Clément Bœsch 3041618516 ffmpeg/videotoolbox: protect UTGetOSTypeFromString on both VDA and VT 2015-10-15 10:22:31 +02:00
Clément Bœsch 9898ef8139 ffmpeg/videotoolbox: try to fix compilation when cross compiling ffmpeg with VT for iOS under certain configuration
Likely a regression from 8f6f357fde
2015-10-15 10:13:02 +02:00
Clément Bœsch c793a271d5 doc/filters: fix selectivecolor example
Fixes Ticket #4927
2015-10-14 16:34:41 +02:00
Clément Bœsch 8f6f357fde build: restore videotoolbox compilation on iOS 2015-10-09 10:59:31 +02:00
Clément Bœsch 40d9d6de90 avformat/srtdec: make sure we probe a number
Fixes regression since 7218352e02: WebVTT
files were matching the SRT probing.
2015-10-09 10:53:21 +02:00
Clément Bœsch 7218352e02 avformat/srtdec: more lenient first line probing
Fixes Ticket #4898
2015-10-01 11:48:45 +02:00
Clément Bœsch d161a2a72b avformat/srtdec: fix number check for the first character 2015-10-01 11:46:05 +02:00
Clément Bœsch c8370a17f5 avformat: fix style after recent commits 2015-09-14 17:42:56 +02:00
Clément Bœsch 8e985b7271 avutil/frame: fix everythnig/everything typo 2015-04-24 10:57:03 +02:00
Clément Bœsch 1cded1f8d7 avfilter/vf_paletteuse: indent fix after 7ccc5848 2015-03-05 16:04:20 +01:00
Clément Bœsch 9b1755bce7 configure/help: consistently use "autodetect" 2015-03-02 14:56:05 +01:00
Clément Bœsch 3e0ae19f86 avfilter/palettegen: fix frame mem leak 2015-02-27 14:18:53 +01:00
Clément Bœsch a6a2da2f32 tests: add paletteuse test 2015-02-26 14:20:03 +01:00
Clément Bœsch e0f03de8f5 tests: add palettegen test 2015-02-26 14:20:02 +01:00
Clément Bœsch 4629993d99 avfilter/paletteuse: use AV_QSORT()
See previous commit for a rationale.
2015-02-26 14:20:02 +01:00
Clément Bœsch 321de03492 avfilter/palettegen: use AV_QSORT()
This makes the sorting of the colors along an axis (r, g or b)
predictible, and thus testable under FATE. The performance is not really
an issue here since the function is called only once at the end and will
need to sort very small number of entries, so an alternative would be to
make the sorting functions (see DECLARE_CMP_FUNC()) fallback on another
axis in case of equality. This approach was actually simpler.

I don't know if there is any advantage in using a multidimensional sort,
but it will affect the final palette one way or another.
2015-02-26 14:20:02 +01:00
Clément Bœsch 30f4e9d3d9 avfilter/palettegen: consistently use the same frame for dimensions 2015-02-26 14:20:02 +01:00
Clément Bœsch 4216968f85 avfilter/palettegen: use a logging context for the dupped color warning 2015-02-26 14:20:02 +01:00
Clément Bœsch ab093bdeef avfilter/palettegen: export color quantization ratio 2015-02-26 14:20:02 +01:00
Clément Bœsch 5c11f5b4a2 avfilter/palettegen: move longest variable to a local scope
Also drop initialization since it is initialized later on before any
usage.
2015-02-25 17:25:27 +01:00
Clément Bœsch cc69ccb6d4 avformat/nutdec: fix isom and mpa build deps
Fixes the following link error:
  nutdec.c:(.text+0x2d47): undefined reference to `ff_codec_movvideo_tags'
  isom.c:(.text+0x332): undefined reference to `avpriv_mpeg4audio_get_config'
  isom.c:(.text+0x39e): undefined reference to `avpriv_mpa_freq_tab'
2015-02-24 11:22:47 +01:00
Clément Bœsch c3d40e305c avfilter/palette{gen,use}: add Copyright 2015-02-23 14:00:13 +01:00
Clément Bœsch 92b7f56193 avfilter/paletteuse: add diff_mode 2015-02-23 09:56:22 +01:00
Clément Bœsch b0f5227558 avfilter/paletteuse: fix error dithering accuracy 2015-02-23 09:56:22 +01:00
Clément Bœsch 2280552057 avfilter/palettegen: raise cache size from 64k to 512k
(or 32k to 256k in 32-bit)

This is similar to a00bab3475
2015-02-19 11:17:45 +01:00
Clément Bœsch 8087632027 avfilter/showpalette: fix leak in case of error
Fixes CID1270820
Fixes CID1270818
2015-02-18 14:04:10 +01:00
Clément Bœsch 80f44eafaa avfilter/palettegen: fix leak in case of error 2015-02-18 14:04:10 +01:00
Clément Bœsch f40266560b avfilter/paletteuse: fix leak in case of error
Fixes CID1270819
2015-02-18 14:04:10 +01:00
Clément Bœsch a00bab3475 avfilter/paletteuse: raise cache size from 64k to 512k
(or 32k to 256k in 32-bit)
2015-02-17 17:20:42 +01:00
Clément Bœsch f9240ec01a avcodec/gif: fix off by one in column offsetting finding 2015-02-16 17:47:35 +01:00
Clément Bœsch a5c9befbf4 README: add ffserver 2015-02-12 11:59:22 +01:00
Clément Bœsch e1ca695d22 README: fix analisys/analysis typo 2015-02-12 11:57:34 +01:00
Clément Bœsch a83398c8d2 doc: fix showpalette position 2015-01-15 16:40:02 +01:00
Clément Bœsch f532603993 avfilter: add showpalette filter 2015-01-15 16:36:13 +01:00
Clément Bœsch 3b3229aef3 avfilter/edgedetect: fix indent 2015-01-15 11:39:41 +01:00
Clément Bœsch 11201bbf7f avformat/mov: reindent after previous commit 2015-01-02 11:38:28 +01:00
Clément Bœsch 55faf56c72 avformat/mov: move edit list heuristics into mov_build_index()
mov_read_elst() is now only responsible from storing the table in a data
structure; this is consistent with other table readers functions.
2015-01-02 11:38:21 +01:00
Clément Bœsch 0c10cf6ab1 fate: add a fate-filter-framepack rule 2014-12-30 14:28:54 +01:00
Clément Bœsch 39e18b1f40 avfilter/framepack: use FF_CEIL_RSHIFT() 2014-12-30 14:25:41 +01:00
Clément Bœsch 92fa1d9231 avformat/mov: change conjugation for "Duplicate" 2014-11-27 18:13:57 +01:00
Clément Bœsch 5ab882d728 avformat/mov: strengthen some table allocations 2014-11-27 18:12:40 +01:00
Clément Bœsch 864d124bb7 build: simplify libwebp check
Tested (compilation and runtime) with libwebp 0.2.0, 0.2.1 and 0.4.1.
2014-09-15 23:54:34 +02:00
Clément Bœsch b96d864fd6 avcodec/mjpegdec: Fix chroma width rounding
Fixes vertical line at the right side
Fixes Ticket 3929

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-13 20:25:27 +02:00
Clément Bœsch 343f07e15c RELEASE_NOTES: mention libmodplug detection change 2014-09-01 11:36:02 +02:00
Clément Bœsch 36952786a5 build: use pkg-config to detect libmodplug
Fix static build, at least for OSX.
2014-09-01 09:03:26 +02:00
Clément Bœsch f888331769 avfilter: add codecview filter 2014-08-24 14:35:11 +02:00
Clément Bœsch f5ddce0753 doc/APIChanges: fill 2 hashes from my recent API additions 2014-08-21 12:36:28 +02:00
Clément Bœsch e35fb5add4 avfilter/showwaves: add split_channels option 2014-08-20 22:18:38 +02:00
Clément Bœsch ba29746feb avfilter/showwaves: split out draw sample code 2014-08-20 22:18:35 +02:00
Clément Bœsch f2f6d45dbd avfilter/showwaves: add "cline" mode (centered line) 2014-08-20 22:16:50 +02:00
Clément Bœsch b0352b1997 avcodec: export motion vectors in frame side data on demand
The reasoning behind this addition is that various third party
applications are interested in getting some motion information out of a
video "for free" when it is available.

It was considered to export other information as well (such as the intra
information about the block, or the quantization) but the structure
might have ended up into a half full-generic, half full of codec
specific cruft. If more information is necessary, it should either be
added in the "flags" field of the AVMotionVector structure, or in
another side-data.

This commit also includes an example exporting them in a CSV stream.
2014-08-18 14:13:57 +02:00
Clément Bœsch 7e7168b82d Fix 2 coeffecient typo 2014-07-10 15:29:54 +02:00
Clément Bœsch 7ac7e8793d avcodec/mpegvideo: small indent fix in vismv code 2014-07-07 11:26:26 +02:00
Clément Bœsch 5f4dbf3c10 avcodec: make vismv option as flag types
This allows for example -vismv pf+bf+bb instead of -vismv 7.
2014-07-07 10:24:18 +02:00
Clément Bœsch f21d0beb0c Fix a few heigth/height typo. 2014-02-07 09:33:56 +01:00
Clément Bœsch ec73bd1fe8 avfilter/avectorscope: fix {} mistake in alloc check. 2013-12-26 13:49:15 +01:00
Clément Bœsch b02d87936b examples/demuxing_decoding: print the decoding error when it happens. 2013-12-13 10:37:20 +01:00
Clément Bœsch 01c9d8094a doc/Makefile: cosmetics after previous commits. 2013-11-28 14:10:34 +01:00
Clément Bœsch 0d2c832445 doc/examples: update README. 2013-11-28 14:08:06 +01:00
Clément Bœsch 1d751768f3 build: also clean the examples with debug symbols 2013-11-28 14:06:57 +01:00
Clément Bœsch fe318e143b build: split examples cleaning out of docclean. 2013-11-28 13:56:08 +01:00
Clément Bœsch 1a88e84fd5 build: integrate remaining examples. 2013-11-28 13:55:34 +01:00
Clément Bœsch a8ac2a1530 doc/examples: make fill_samples static.
This is required to build with FFmpeg compilation options.
2013-11-28 13:54:44 +01:00
Clément Bœsch 245931885f Add transcode_aac example to .gitignore. 2013-11-28 13:19:50 +01:00
Clément Bœsch e5102feb6b doc/examples: add transcode_aac to local Makefile. 2013-11-28 13:19:50 +01:00