Ronald S. Bultje
7c7e7c44a6
huffyuv: assign correct per-thread avctx pointer to HYuvContext::avctx.
...
Fixes the following tsan warning when running fate-vsynth_lena-ffvhuff:
WARNING: ThreadSanitizer: data race (pid=6484)
Write of size 8 at 0x7d64000154b8 by main thread (mutexes: write M1331):
#0 update_context_from_user src/libavcodec/pthread_frame.c:331 (ffmpeg+0x000000dca887)
[..]
Previous read of size 8 at 0x7d64000154b8 by thread T2 (mutexes: write M1334):
#0 draw_slice src/libavcodec/huffyuvdec.c:857 (ffmpeg+0x000000bcc86f)
2017-04-05 15:36:53 -04:00
Clément Bœsch
af607b7e07
lavc/huffyuvdsp: only transmit the pix_fmt instead of the whole avctx
...
Only the pixel format is required in that init function. This will also
simplify the incoming merge.
2017-03-22 16:22:20 +01:00
James Almer
6d4c9f2ade
lossless_videodsp: rename add_hfyu_left_pred_int16 to add_left_pred_int16
...
Signed-off-by: James Almer <jamrial@gmail.com>
2017-01-12 22:53:05 -03:00
James Almer
47f212329e
huffyuvdsp: move functions only used by huffyuv from lossless_videodsp
...
Signed-off-by: James Almer <jamrial@gmail.com>
2017-01-12 22:53:05 -03:00
James Almer
30c1f27299
huffyuvencdsp: move functions only used by huffyuv from lossless_videodsp
...
Signed-off-by: James Almer <jamrial@gmail.com>
2017-01-12 22:53:04 -03:00
James Almer
5ac1dd8e23
lossless_videodsp: move shared functions from huffyuvdsp
...
Several codecs other than huffyuv use them.
Signed-off-by: James Almer <jamrial@gmail.com>
2017-01-12 22:53:04 -03:00
Ganesh Ajjanagadde
2cbaa078d1
avcodec: use HAVE_THREADS header guards to silence -Wunused-function
...
When compiled with --disable-pthreads, e.g
http://fate.ffmpeg.org/report.cgi?time=20150917015044&slot=alpha-debian-qemu-gcc-4.7 ,
a bunch of -Wunused-functions are reported due to missing header guards
around threading related functions.
This patch should silence such warnings.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-04 12:47:34 -04:00
Michael Niedermayer
29d147c94d
Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
...
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
lavc: Consistently prefix input buffer defines
Conflicts:
doc/examples/decoding_encoding.c
libavcodec/4xm.c
libavcodec/aac_adtstoasc_bsf.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.h
libavcodec/asvenc.c
libavcodec/avcodec.h
libavcodec/avpacket.c
libavcodec/dvdec.c
libavcodec/ffv1enc.c
libavcodec/g2meet.c
libavcodec/gif.c
libavcodec/h264.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/huffyuvdec.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libxvid.c
libavcodec/mdec.c
libavcodec/motionpixels.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/noise_bsf.c
libavcodec/nuv.c
libavcodec/nvenc.c
libavcodec/options.c
libavcodec/parser.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/qsvdec.c
libavcodec/svq1enc.c
libavcodec/tiffenc.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/vc1dec.c
libavcodec/wmalosslessdec.c
libavformat/adxdec.c
libavformat/aiffdec.c
libavformat/apc.c
libavformat/apetag.c
libavformat/avidec.c
libavformat/bink.c
libavformat/cafdec.c
libavformat/flvdec.c
libavformat/id3v2.c
libavformat/isom.c
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mpc.c
libavformat/mpc8.c
libavformat/mpegts.c
libavformat/mvi.c
libavformat/mxfdec.c
libavformat/mxg.c
libavformat/nutdec.c
libavformat/oggdec.c
libavformat/oggparsecelt.c
libavformat/oggparseflac.c
libavformat/oggparseopus.c
libavformat/oggparsespeex.c
libavformat/omadec.c
libavformat/rawdec.c
libavformat/riffdec.c
libavformat/rl2.c
libavformat/rmdec.c
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_qdm2.c
libavformat/rtpdec_svq3.c
libavformat/sierravmd.c
libavformat/smacker.c
libavformat/smush.c
libavformat/spdifenc.c
libavformat/takdec.c
libavformat/tta.c
libavformat/utils.c
libavformat/vqf.c
libavformat/westwood_vqa.c
libavformat/xmv.c
libavformat/xwma.c
libavformat/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 23:15:19 +02:00
Michael Niedermayer
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Michael Niedermayer
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Vittorio Giovara
059a934806
lavc: Consistently prefix input buffer defines
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
7c6eb0a1b7
lavc: AV-prefix all codec flags
...
Convert doxygen to multiline and express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Andreas Cadhalpun
9a345802ed
huffyuvdec: validate image size
...
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-06-28 14:51:07 +02:00
Michael Niedermayer
2f1de5ca13
avcodec/huffyuvdec: apply vertical filter in steps of 1 line for interlaced BGRA
...
Fixes out of array read
Fixes: signal_sigsegv_3287332_2301_cov_2994954934_huffyuv.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-25 17:53:27 +01:00
Lukasz Marek
c9d39fc8c6
lavc/huffyuvdec: fix mem leak in case of init failure
...
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-11-24 04:15:48 +01:00
Reimar Döffinger
3dbf569032
huffyuvdec: avoid large stack use.
...
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 21:01:09 +02:00
Christophe Gisquet
f75baa6c9b
huffyuvdec: decode the last odd sample
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 23:24:07 +02:00
Christophe Gisquet
331b1f7d81
huffyuvdec: fix old (v1) rgba
...
Commit deadcf5e
misplaced a hunk.
Fixes ticket #3877 .
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-21 02:19:55 +02:00
Michael Niedermayer
fb33bff990
Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
...
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
cosmetics: Write NULL pointer equality checks more compactly
Conflicts:
cmdutils.c
ffmpeg_opt.c
ffplay.c
libavcodec/dvbsub.c
libavcodec/dvdsubdec.c
libavcodec/dvdsubenc.c
libavcodec/dxa.c
libavcodec/libxvid_rc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/rv10.c
libavcodec/tiffenc.c
libavcodec/utils.c
libavcodec/vc1dec.c
libavcodec/zmbv.c
libavdevice/v4l2.c
libavformat/matroskadec.c
libavformat/movenc.c
libavformat/sdp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:00:50 +02:00
Gabriel Dume
f929ab0569
cosmetics: Write NULL pointer equality checks more compactly
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 03:18:18 -07:00
Michael Niedermayer
ba47d519e5
avcodec/huffyuvdec: fix overread checks
...
Fixes: ffvhuff_f.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:17:11 +02:00
Michael Niedermayer
296b01d7f9
Merge commit 'a7153444df9040bf6ae103e0bbf6104b66f974cb'
...
* commit 'a7153444df9040bf6ae103e0bbf6104b66f974cb':
huffyuvdec: check width size for yuv422p
Conflicts:
libavcodec/huffyuvdec.c
See: 6abb9a901f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 00:08:03 +02:00
Michael Niedermayer
a7153444df
huffyuvdec: check width size for yuv422p
...
Avoid out of array accesses.
CC: libav-stable@libav.org
Bug-Id: CVE-2013-0848
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 20:01:59 +00:00
Michael Niedermayer
2793b218bd
Merge commit 'd0393d79bc3d61c9f2ff832c0e273b7774ff0269'
...
* commit 'd0393d79bc3d61c9f2ff832c0e273b7774ff0269':
huffyuv: Check and propagate function return values
Conflicts:
libavcodec/huffyuvdec.c
See: f67a0d1152
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 05:29:55 +02:00
Michael Niedermayer
d5fde13bd2
Merge commit '6234058148d6e1ee765913b678a22385a87bffac'
...
* commit '6234058148d6e1ee765913b678a22385a87bffac':
huffyuv: Return proper error codes
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:58:13 +02:00
Michael Niedermayer
e9cd8f4d20
Merge commit 'b7616f5716dce68c749d5dfeab19cf595a11807c'
...
* commit 'b7616f5716dce68c749d5dfeab19cf595a11807c':
huffyuv: Eliminate some pointless casts
Conflicts:
libavcodec/huffyuvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:42:04 +02:00
Michael Niedermayer
c1e7fb60d1
Merge commit 'c065f4a0c652cc569c927c95148111b3aa2962dc'
...
* commit 'c065f4a0c652cc569c927c95148111b3aa2962dc':
huffyuv: K&R formatting cosmetics
Conflicts:
libavcodec/huffyuvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:34:17 +02:00
Diego Biurrun
d0393d79bc
huffyuv: Check and propagate function return values
...
Bug-Id: CVE-2013-0868
inspired by a patch from Michael Niedermayer <michaelni@gmx.at>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Diego Biurrun <diego@biurrun.de>
CC: libav-stable@libav.org
2014-08-03 15:35:30 -07:00
Diego Biurrun
6234058148
huffyuv: Return proper error codes
2014-08-03 15:18:58 -07:00
Diego Biurrun
b7616f5716
huffyuv: Eliminate some pointless casts
2014-08-03 15:18:58 -07:00
Diego Biurrun
c065f4a0c6
huffyuv: K&R formatting cosmetics
2014-08-03 15:18:58 -07:00
Diego Biurrun
3160bdc7f7
huffyuv: Use avpriv_report_missing_feature() where appropriate
2014-08-03 15:18:58 -07:00
Michael Niedermayer
35bb74900b
Merge commit 'c67b449bebbe0b35c73b203683e77a0a649bc765'
...
* commit 'c67b449bebbe0b35c73b203683e77a0a649bc765':
dsputil: Split bswap*_buf() off into a separate context
Conflicts:
configure
libavcodec/4xm.c
libavcodec/ac3dec.c
libavcodec/ac3dec.h
libavcodec/apedec.c
libavcodec/eamad.c
libavcodec/flacenc.c
libavcodec/fraps.c
libavcodec/huffyuv.c
libavcodec/huffyuvdec.c
libavcodec/motionpixels.c
libavcodec/truemotion2.c
libavcodec/x86/Makefile
libavcodec/x86/dsputil_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 13:31:26 +02:00
Diego Biurrun
c67b449beb
dsputil: Split bswap*_buf() off into a separate context
2014-06-22 18:22:31 -07:00
Michael Niedermayer
5439959ef0
avcodec/huffyuvdec: do not leave alpha values uninitialized
...
fixes fate failure under valgrind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 16:59:05 +02:00
Michael Niedermayer
20c7baf832
avcodec/huffyuvdec: Fix fill value for truncated bitstreams
...
Found-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 01:07:42 +02:00
Christophe Gisquet
f6577bd9cf
huffyuvdec: use unsafe bitstream reader
...
The reader reads in chunks of 11 bits at most, and at most 3 times. The unsafe
reader therefore may read 6 chunks instead of 1 in worst case, ie 8 bytes,
which is within the padding tolerance.
The reader ends up being ~10% faster. Cumulative effect of unsafe reading and
code block swapping on 3 sequences is for 1 thread, decoding time goes from
23.3s to 19.0s.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 00:52:09 +02:00
Christophe Gisquet
29f427c239
huffyuvdec: remove somewhat deprecated code
...
The old code was reserving the 0xFFFF entry to represent an inexisting
entry/codeword. These entries are now detected through their length
being <= 0. As this entry is often used for the residuals (-1,-1), which
should be among the most frequent, it is particularly important to not
reserve it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 17:43:47 +02:00
Michael Niedermayer
e9c477059d
avcodec/huffyuvdec: assume vlcs can be 32 instead of 31 bits max
...
This should avoid a division as well
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 16:20:34 +02:00
Christophe Gisquet
9dc1791977
huffyuvdec: swap code blocks
...
The effect is not really deterministic, as it seems to be a combination
on x86_64 of fewer registers used, different jump offsets and, for all
archs, of likely branches.
Speedup is around 15%.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 15:13:28 +02:00
Christophe Gisquet
7eb5b20a87
huffyuvdec: trick for plane decoding <= 14bits
...
Refactor the code to minimize code duplication.
Before:
130870 decicycles in g, 1048139 runs, 437 skips
10bits: 9.048
12bits: 10.733
After:
126960 decicycles in g, 1048136 runs, 440 skips
10bits: 8.642
12bits: 9.656
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 21:42:52 +02:00
Christophe Gisquet
0d632b35a0
huffyuvdec: remove superfluous check in BGR code
...
Before: 154861 decicycles
After: 152912 decicycles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 01:55:27 +02:00
Christophe Gisquet
6848325acb
huffyuvdec: remove superfluous check
...
An invalid entry already has the property of having a negative number
of bits, so remove the check on the reserved value, and rearrange the
code as a consequence.
346800 decicycles in 422, 262079 runs, 65 skips
168197 decicycles in gray, 262077 runs, 67 skips
Overall time: 7.878s
319076 decicycles in 422, 262096 runs, 48 skips
159875 decicycles in gray, 262057 runs, 87 skips
Overall time: 7.394s
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 01:47:07 +02:00
Christophe Gisquet
a37020402a
huffyuvdec: trick for plane decoding, 8bits
...
10496 -> 9105 cycles.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 00:08:57 +02:00
Christophe Gisquet
35dae62204
huffyuvdec: clean up macro
...
It's no longer used inside another specific macro, so rename it.
Also remove duplicated definition and realign code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 23:55:48 +02:00
Christophe Gisquet
deadcf5e71
huffyuvdec: implement trick for BGR
...
Before:
179436 decicycles in rgb, 32735 runs, 33 skips
Stripped object size: 23188
After:
154861 decicycles in rgb, 32738 runs, 30 skips
Stripped object size: 22736
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 13:25:24 +02:00
Christophe Gisquet
11b4703813
huffyuvdec: implement trick
...
When the joint table does not contain a valid entry, the decoding restarts
from scratch. By implementing the trick of jumping to the 2nd level of the
individual table (and inlining the whole), a speed improvement of 5-10%
is possible.
On a 1000-frames YUV4:2:0 video, before:
362851 decicycles in 422, 262094 runs, 50 skips
182488 decicycles in gray, 262087 runs, 57 skips
Object size: 23584
Overall time: 8.377
After:
346800 decicycles in 422, 262079 runs, 65 skips
168197 decicycles in gray, 262077 runs, 67 skips
Object size: 23188
Overall time: 7.878
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 13:12:48 +02:00
Michael Niedermayer
7b4c46050e
rename add_hfyu_left_prediction_int16 to add_hfyu_left_pred_int16
...
This makes the naming more consistent with the 8bit variant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 19:50:44 +02:00
Michael Niedermayer
550ae6c02f
rename add_hfyu_median_prediction_int16 to add_hfyu_median_pred_int16
...
This makes the naming more consistent with the 8bit variant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 19:49:29 +02:00