Commit Graph

77547 Commits

Author SHA1 Message Date
Ganesh Ajjanagadde
05434b0eea lavc/cook: get rid of wasteful pow in init_pow2table
The table is highly structured, so pow (or exp2 for that matter) can entirely
be avoided, yielding a ~ 40x speedup with no loss of accuracy.

sample benchmark (Haswell, GNU/Linux):
new:
4449 decicycles in init_pow2table(loop 1000),     254 runs,      2 skips
4411 decicycles in init_pow2table(loop 1000),     510 runs,      2 skips
4391 decicycles in init_pow2table(loop 1000),    1022 runs,      2 skips

old:
183673 decicycles in init_pow2table(loop 1000),     256 runs,      0 skips
182142 decicycles in init_pow2table(loop 1000),     512 runs,      0 skips
182104 decicycles in init_pow2table(loop 1000),    1024 runs,      0 skips

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:52:19 -08:00
Ganesh Ajjanagadde
b272c3a5aa lavc/dsd_tablegen: speed up table generation
Tables are bit identical.
Sample benchmark (Haswell, GNU/Linux+gcc):
old:
 814485 decicycles in dsd_ctables_tableinit,     512 runs,      0 skips

new:
 356808 decicycles in dsd_ctable_tableinit,     512 runs,      0 skips

Binary size should essentially be identical, and is in fact identical on
the configuration I tested on.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:45:19 -08:00
Ganesh Ajjanagadde
29bc293297 configure: make gcc 2 detection more robust
Solves an issue that will get triggered when gcc 20 rolls in.

Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:45:02 -08:00
Paul B Mahol
b0e23f2a37 avfilter/avf_showspectrum: add rainbow colormap
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-29 19:53:38 +01:00
Andreas Cadhalpun
b4466c9c1a oggparsedaala: check number of planes in pixel format map
This fixes crashes caused by out-of-bounds writes.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-29 18:42:14 +01:00
Ganesh Ajjanagadde
4a44bc5588 ffprobe: avoid unnecessary pow and exp2 calls
These are just for prefixes and may be hardcoded easily; see lavu/eval
for this approach.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-29 08:59:16 -08:00
Carl Eugen Hoyos
e5c16e38fe ffserver: Cast time_t value when using it in a format string.
Fixes ticket #5103.
2015-12-29 16:00:34 +01:00
Mats Peterson
bd03ee1184 lavf/qtpalette: Treat 1-bit video as palettized
This commit for qtpalette.c and qtpalette.h adds 1-bit video to the
"palettized video" category, since if the video sample description
contains a palette, the two colors in the palette can be any color, not
necessarily black & white.

Unfortunately, I've noticed that the qtrle (QuickTime Animation) decoder
blindly assumes that 1-bit video is black & white. I don't have enough
knowledge about the decoder to fix this, though.

Below is a link to a sample 1-bit QuickTime Animation clip of a rotating
earth that uses blueish colors, and they will be correctly rendered in
QuickTime, but not in FFmpeg (which will use black & white).

https://drive.google.com/open?id=0B3_pEBoLs0faUlItWm9KaGJSTEE

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-29 13:12:18 +01:00
Mark Harris
c51c08e0e7 avcodec: Use get_ue_golomb_long() when needed
get_ue_golomb() cannot decode values larger than 8190 (the maximum
value that can be golomb encoded in 25 bits) and produces the error
"Invalid UE golomb code" if a larger value is encountered.  Use
get_ue_golomb_long() instead (which supports 63 bits, up to 4294967294)
when valid h264/hevc values can exceed 8190.

This updates decoding of the following values:   (maximum)
  first_mb_in_slice                                36863* for level 5.2
  abs_diff_pic_num_minus1                         131071
  difference_of_pic_nums_minus1                   131071
  idr_pic_id                                       65535
  recovery_frame_cnt                               65535
  frame_packing_arrangement_id                4294967294
  frame_packing_arrangement_repetition_period      16384
  display_orientation_repetition_period            16384

An alternative would be to modify get_ue_golomb() to handle encoded
values of up to 49 bits as was done for get_se_golomb() in a92816c.
In that case get_ue_golomb() could continue to be used for all of
these except frame_packing_arrangement_id.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-29 13:11:51 +01:00
Paul B Mahol
efa666e0da avfilter/avf_showspectrum: properly calculate w factor
It is used in calculating loudness of each frequency bin.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-29 12:11:33 +01:00
Paul B Mahol
e30e5c83ae avfilter/avf_showspectrum: add horizontal orientation support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-29 12:11:33 +01:00
Ganesh Ajjanagadde
9f4c7b4df7 lavfi/af_anequalizer: replace pow(x,-2) by 1/(x*x)
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:48:41 -08:00
Ganesh Ajjanagadde
59ac7ce4da lavfi/af_anequalizer: replace pow(10,x) by ff_exp10(x)
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:48:27 -08:00
Ganesh Ajjanagadde
63702014fa lavfi/af_anequalizer: remove cabs, cexp dependencies
Replaces by real arithmetic. Tested the validity of these transformations separately.
Numerical differences are ~1e-15, and should not matter: it is not even
clear which is more precise mathematically.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:47:23 -08:00
Paul B Mahol
a7bf5f4117 avfilter/avf_showspectrum: use FF_ARRAY_ELEMS()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 23:04:40 +01:00
James Almer
1817643d4f x86/vf_stereo3d: make ff_anaglyph_sse4 work on x86_32
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-28 17:20:24 -03:00
James Almer
6e243d17e9 x86/vf_stereo3d: optimize register usage
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-28 17:20:12 -03:00
Paul B Mahol
4020787b5b avfilter/avf_showspectrum: make colors for log scale more user friendly
Previosly output was almost useless because background noise, due to
windowing function picked and which is not actually present in audio,
had too much brightness.
Now output of sine wave matches more with SoX.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 20:38:06 +01:00
Paul B Mahol
f88546b426 avfilter/avf_showspectrum: use ff_generate_window_func
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 18:58:46 +01:00
Paul B Mahol
45b3e6e04e avfilter: move window function generation into separate file
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 18:54:55 +01:00
Paul B Mahol
67771ac4b8 avfilter/avf_showspectrum: add rscroll sliding mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 18:16:10 +01:00
Joel Holdsworth
b9c46b5242 avformat/http: Documented http_proxy option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 16:17:28 +01:00
Rodger Combs
1b5bd4051d lavf/mpegtsenc: add automatic bitstream filtering 2015-12-28 08:40:37 -06:00
Rodger Combs
b287d7ea17 lavf/matroskaenc: add automatic bitstream filtering 2015-12-28 08:40:37 -06:00
Rodger Combs
822e80fde3 lavf: add internal API to append a bsf to a stream's list 2015-12-28 08:40:37 -06:00
Rodger Combs
1f9139b07b lavf: add automatic bitstream filtering; bump version
This solves the problem discussed in https://ffmpeg.org/pipermail/ffmpeg-devel/2015-September/179238.html
by allowing AVCodec::write_header to be delayed until after packets have been
run through required bitstream filters in order to generate global extradata.

It also provides a mechanism by which a muxer can add a bitstream filter to a
stream automatically, rather than prompting the user to do so.
2015-12-28 08:40:35 -06:00
Rodger Combs
7a161b74ad lavf/tee: use lavf API for applying bitstream filters 2015-12-28 08:37:39 -06:00
Rodger Combs
a5fd3a1a2b ffmpeg: use lavf API for applying bitstream filters 2015-12-28 08:34:30 -06:00
Rodger Combs
4caa3e1c6c lavf: add API to apply a list of bsfs to a packet 2015-12-28 08:34:30 -06:00
Paul B Mahol
3977746036 doc/filters: add one more silenceremove example
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 12:23:59 +01:00
Paul B Mahol
47aaebd63e avfilter/af_silenceremove: make size of window user configurable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 12:23:59 +01:00
Paul B Mahol
b841fe002a avfilter/af_silenceremove: lower number of operations in for loop
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-28 12:23:59 +01:00
Hendrik Leppkes
50401f5fb7 avcodec: properly check pkt_timebase for validity
Unset/invalid timebases have a zero numerator.
This makes the checks consistent with other timebase checks and fixes an
integer division by 0.
2015-12-28 10:24:15 +01:00
Michael Niedermayer
3c6781b48a Revert "ffplay: Fix auto insertion point of rotation filter"
Revert requested by Balint Marton <cus@passwd.hu>

See: [FFmpeg-devel] ffplay: insertion point of the auto rotation filter - Github ticket #141

This reverts commit 9cc1e644f3.
2015-12-28 03:44:31 +01:00
Michael Niedermayer
ca9e3cb3ce avformat/qtpalette: Move ff_get_qtpalette() doxy to header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 03:18:20 +01:00
Mats Peterson
7973603843 avformat/matroskadec: palettized QuickTime video in Matroska
Palettized QuickTime video in Matroska has hitherto not been recognized
whatsoever, and the "palette" used has been completely random.

The patch for matroskadec.c fixes this issue by adding a palette side
data packet in matroska_deliver_packet(), much in the same way as it's
done in mov.c.

Video samples for testing are available at
https://drive.google.com/open?id=0B3_pEBoLs0faWElmM2FnLTZYNlk.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 02:47:58 +01:00
Mats Peterson
57631f1851 avformat: factor ff_get_qtpalette() out of mov.c
This consists mainly of moving the palette handling from
the mov_parse_stsd_video() function to a new ff_get_qtpalette() function
in the new file qtpalette.c, which will be shared by both matroskadec.c and
mov.c.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-28 02:47:26 +01:00
Joel Holdsworth
c48122d731 avformat/hls: Added http_proxy support
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27 21:44:15 +01:00
Joel Holdsworth
9cdccd404b avformat/hls: Remember to free HLSContext::headers
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27 21:44:15 +01:00
Joel Holdsworth
b4eb1f29eb avformat/http: Added http_proxy option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27 21:44:14 +01:00
Paul B Mahol
1809894b2a avfilter/af_silenceremove: add peak detector
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-27 20:49:29 +01:00
Michael Niedermayer
3215342121 avcodec/on2avc: Fix stability issues with scale_tab generation
This also simplifies the code
the resulting values are binary identical to what pow(10, i/10.0) produces
2015-12-27 16:44:48 +01:00
Reynaldo H. Verdejo Pinochet
baf4c489e5 avio: add detail to avio_printf() size warning
Previous "currently size is limited" didn't give away
much in terms of useful info.

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Reynaldo H. Verdejo Pinochet
b25ac3c999 ffserver: add a doctype heading to our HTML pages
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Reynaldo H. Verdejo Pinochet
daaa535867 ffserver: HTML encode msgs instead of blindly stripping chars out
Fixes weirdness like our "??filename? not found" 404.

None of the chars being used from the previously blacklisted
list needs to be scaped on an UTF-8 document context

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Reynaldo H. Verdejo Pinochet
0e5c1dc9a3 ffserver: make our 404 explicitly HTML5/UTF-8
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-27 00:09:16 -08:00
Ganesh Ajjanagadde
c5b3c4c741 lavc/snowenc: replace rint by lrint
avoids float to int cast.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
5979c740f5 lavc/dds: replace rint by lrint
avoids float to int cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
e09edc62cd lavc/texturedsp: replace rint by lrint
avoids float to int cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00
Ganesh Ajjanagadde
3e2e303e4b lavfi/avf_showspectrum: replace rint by lrint
avoids float to int cast.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-26 20:29:22 -08:00