Compare commits

..

7243 Commits

Author SHA1 Message Date
Michael Niedermayer
bc259185cb Update for FFmpeg 2.3.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 15:30:38 +02:00
Michael Niedermayer
3b6bde3b3d avcodec/h264_mb: fix grayscale only decoding with weighted prediction
Fixes Ticket3412

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 94f60b6544)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-17 15:09:05 +02:00
Michael Niedermayer
4f187f0af1 avformat/mpegts: Use differential score for analyze()
This avoids high scores in random data that has a high 0x47 frequency

Fixes Ticket3844

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 427bcdf035)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 23:59:26 +02:00
Michael Niedermayer
10c2d22ba1 avcodec/mjpegdec: Support AV_PIX_FMT_YUV420P16 with upscale_h
Fixes assertion failure
Fixes: test42f.jpg
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5c7899a483)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 16:53:36 +02:00
Christophe Gisquet
35738e5898 proresenc_kostya: properly account for alpha
The packet buffer allocation considered as dct-coded, while it is
actually run-coded and thus requires a larger buffer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 117bc8e6ff)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 15:44:54 +02:00
Justin Jacobs
59d98fc050 avformat/matroskadec: Check avpriv_new_chapter() for failure
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 87dc8b3af9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-14 03:26:34 +02:00
Christophe Gisquet
60bfa9154d proresenc_kostya: report buffer overflow
If the allocated size, despite best efforts, is too small, exit
with the appropriate error.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 52b81ff463)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 02:40:15 +02:00
Christophe Gisquet
9794727ccd proresenc_kostya: remove unneeded parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bf10f09bcc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 02:40:14 +02:00
Michael Niedermayer
b88de7b31a Changelog: update for 2.3.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 17:06:48 +02:00
Michael Niedermayer
11420649d0 avcodec/snow: fix null pointer dereference in cleanup after allocation failure
Fixes: snowf.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9a162146ca)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:45:42 +02:00
Michael Niedermayer
dbf5d7e5cd 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>
(cherry picked from commit ba47d519e5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:32:00 +02:00
Michael Niedermayer
6badd558ce avcodec/get_bits: add BITS_LEFT() for finding the bits left with an opened reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 11512d70fa)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:31:59 +02:00
Michael Niedermayer
a1fe3b4150 avcodec/vc1dec: do not crash when flushing without an allocated frame
Fixes Ticket3837
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6801eb0a09)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:26:29 +02:00
Michael Niedermayer
c5129da726 update for FFmpeg 2.3.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
fc57959fd5 avcodec/iff: Factorize av_pix_fmt_desc_get() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9bcdb98839)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
83956309cc avcodec/iff: check pixfmt for rgb8 / rgbn
Fixes out of array access

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3539d6c63a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
ed15be7519 avformat/matroskaenc: fix MAX_CUEPOINT_SIZE calculation
Fixes assertion failure
Fixes Ticket3822

as a side-effect this makes some mkv files a few bytes smaller

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 64d029de41)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Felix Abecassis
6928193493 h264: fix interpretation of interleved stereo modes
Column and row frame packing arrangements were inverted.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
(cherry picked from commit a7e541c992)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Anton Khirnov
a72b7286e6 cdgraphics: do not return 0 from the decode function
0 means no data consumed, so it can trigger an infinite loop in the
caller.

CC:libav-stable@libav.org
(cherry picked from commit c7d9b473e2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
901e275697 avutil/cpu: add aarch64 entries to 2nd table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit efc4fe9d74)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
7a6b5d7a86 ffserver: initialize pbuffer in prepare_sdp_description()
also check pbuffer before use

Found-by: CSA
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1d8d21b90a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
fdfe94f4b1 avcodec/wavpackenc: Fix log2sample() result value
Found-by: CSA
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e706fe7640)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
b63ec0cb0f avformat/tee: flip assigment direction
Found-by: CSA
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2e6fdcb7f3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:40:50 +02:00
Michael Niedermayer
2eb72d5bdc ffmpeg_opt: Use av_guess_codec() instead of AVOutputFormat->*codec
Fixes part of ticket2236

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 956f4087c6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 03:41:46 +02:00
Michael Niedermayer
638c3aca64 avcodec/dvdsub_parser: print message if packet is smaller than the packet size field
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bcc898dd26)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:27:04 +02:00
Michael Niedermayer
76d59f1b34 avcodec/dvdsub_parser: Check buf_size before reading 32bit packet size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 81c1657a59)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:27:03 +02:00
Michael Niedermayer
aa0a8ef50e avcodec/dvdsub_parser: never return 0 when the input isnt 0
Fixes a infinite loop
Fixes Ticket3804

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cfdb30d2f1)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:27:02 +02:00
Michael Niedermayer
d6173ae341 avcodec/mpeg12dec: fix support for interlaced mpeg2 with missing last slice
Fixes Ticket3809

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f95298c913)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-01 21:20:43 +02:00
Anshul Maheswhwari
3ed27832e7 v4l2enc: adding AVClass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fcb11ec291)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 19:06:12 +02:00
Michael Niedermayer
594b1fa961 libavcodec/h264_parser: Increase parse_history, fix huge resolutions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0782fb6bcb)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 16:50:32 +02:00
Benoit Fouet
7a1262fca3 h264_mp4toannexb_bsf: account for consecutive IDR pictures.
If there are consecutive IDR pictures, then SPS/PPS should be prepended
to all of them, not only the first one.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bf428bb314)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 16:50:31 +02:00
Chris \"Koying\" Browet
6d2219e9f9 avcodec/h264_mp4toannexb_bsf: fix issue when sps/pps are already in the bistream
(cherry picked from commit ad91bf854b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 16:50:26 +02:00
Michael Niedermayer
7c2d152f56 Changelog: highlighting for 2.3.1
Suggested-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 03:17:03 +02:00
Gerion Entrup
1f58590e1e doc: add very basic libcdio documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dc315cdb4e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-31 03:08:04 +02:00
Michael Niedermayer
64bbbcd7b0 update for FFmpeg 2.3.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 23:14:25 +02:00
Michael Niedermayer
de9d3f22f0 avdevice/pulse_audio_enc: use getter function for AVFrame.channels
This is required by the API/ABI for things outside libavutil

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1e51af13c7)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 22:39:08 +02:00
Michael Niedermayer
ea5bb5613f MAINTAINERS: update list of releases i maintain
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5003b8b9c3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 22:39:08 +02:00
Michael Niedermayer
c61ac696e5 avcodec/avdct: Add avcodec_dct_get_class()
This should have been in the initial commit of AVDCT

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2f717be22a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 22:39:08 +02:00
Janne Grunau
6a250c858e fate: support testing of release branches
Adding 'branch=release/2.3' to the fate config file will check the
release/2.3 branch instead of master. If no branch is specified it will
use 'master' so that existing config are still valid.

(cherry picked from commit 42eb9154a8)

Conflicts:

	tests/fate.sh
2014-07-30 22:39:08 +02:00
Michael Niedermayer
5411040802 tests/fate.sh: If cat *.rep fails try it with a for loop.
Fixes fate on haiku, where cat dies due to too many arguments
xargs could be used too but we do not use xargs currently so it
would be an additional dependency.

Also the plain cat is left in place as it is faster than the loop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d554d004a6)

Conflicts:

	tests/fate.sh
2014-07-30 22:39:08 +02:00
Vittorio Giovara
ab1ea597bd g2meet: allow size changes within original sizes
(cherry picked from commit 14b4e64eab)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-30 22:32:01 +02:00
Michael Niedermayer
ee606fd031 version.sh: Print versions based on the last git tag for release branches
release branches are detected by checking if "git" is not in RELEASE
This changes "N-64706-g2f71aeb" to "n2.3-8-g2f71aeb"
for git master theres no change

This should improve the readability of lists of versions which come from
more than 1 release branch or master + release. fate.ffmpeg.org is
one possible example

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 14:48:50 +02:00
Michael Niedermayer
2f71aeb301 remove VERSION file
it overrides what version.sh prints and thus makes its output
from release branches rather useless

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-28 02:22:11 +02:00
Christophe Gisquet
65259b4d68 x86: hevc_mc: replace one lea by add
Should have been in 036f11bdb5.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 17:32:01 +02:00
Michael Niedermayer
8f53d32dfb avfilter/vf_spp: use AVDCT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e3fac20824)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-27 17:28:41 +02:00
Michael Niedermayer
fcc6568a10 avcodec: add avdct
This provides a public sustainable API/ABI for DCT functions.
Only externally used dct functions are included.
The structure is extensible without ABI issues compared to the
existing dct contexts.

See Mailing list and IRC log of 2014-07-26/27

Reviewed-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 932ff70956)

Conflicts:

	doc/APIchanges
2014-07-27 17:28:32 +02:00
Timothy Gu
489d066d49 RELEASE_NOTES: fix WebVTT decoder typo (-> encoder)
Found-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 065fa66872)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-25 13:22:26 +02:00
Michael Niedermayer
9cb45f6ad2 doc/APIchanges: mention FF_INPUT_BUFFER_PADDING_SIZE chage
Suggested-by: Andreas Cadhalpun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 94c4ad27dc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 05:22:25 +02:00
Andreas Cadhalpun
0f04e2741e libavformat/img2dec.c: Add a long_name to the piped image demuxers
This fixes segfaults in gst-libav1.0 compiled against FFmpeg 2.3.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 135ea609ce)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 05:21:50 +02:00
Michael Niedermayer
84642ec879 avformat/dv: implement fallback in dv_extract_pack()
Fixes Ticket2340
Fixes Ticket2341

Based-on mail from Dave Rice <dave@dericed.com>
Tested-by: Dave Rice <dave@dericed.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 88f038ac97)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 16:00:21 +02:00
Timothy Gu
bef4d9bf87 RELEASE_NOTES: update
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 02:42:16 +02:00
Michael Niedermayer
bc4f6ae88e Changelog: change "version <next>" to "version 2.3"
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit faafd1e4f1)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 02:09:50 +02:00
Michael Niedermayer
2678b25099 doc/APIchanges: update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 13a72d9b08)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 02:07:02 +02:00
Michael Niedermayer
e322496054 RELEASE_NOTES: update version numbers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 02:01:14 +02:00
Michael Niedermayer
7fa72ff19c update for FFmpeg 2.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 01:45:34 +02:00
Michael Niedermayer
cf92cc8751 avcodec/hevc: clear HEVClcList[i] on allocation
Fixes fate failure with --enable-memory-poisoning && make THREAD_TYPE=slice THREADS=7  fate-hevc-conformance-ENTP_C_Qualcomm_1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 01:34:57 +02:00
Marc Jeffreys
a0b71e9f3e avfilter/drawtext: Add basic text shaping using libfribidi
Fixes ticket #3758

Reviewed-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 00:40:39 +02:00
Hanspeter Niederstrasser
04980dbee8 avdevice/avfoundation: kCVPixelFormatType_OneComponent8 only exists from 10.8 onward
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 00:40:32 +02:00
James Almer
ad24256e7e diracdec: remove unused dsputil context
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 00:11:18 +02:00
Michael Niedermayer
e240d01c12 avformat/matroskadec: fix declaration after statement
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 00:06:15 +02:00
Vignesh Venkatasubramanian
3e73d14290 lavf: Add WebM DASH Manifest Muxer
This patch adds the ability to generate WebM DASH manifest XML using
ffmpeg. A sample command line would be as follows:

ffmpeg \
  -f webm_dash_manifest -i video1.webm \
  -f webm_dash_manifest -i video2.webm \
  -f webm_dash_manifest -i audio1.webm \
  -f webm_dash_manifest -i audio2.webm \
  -map 0 -map 1 -map 2 -map 3 \
  -c copy \
  -f webm_dash_manifest \
  -adaptation_sets “id=0,streams=0,1 id=1,streams=2,3” \
  manifest.xml

It works by exporting necessary fields as metadata tags in matroskadec
and use those values to write the appropriate XML fields as per the WebM
DASH Specification [1]. Some ideas are adopted from webm-tools project
[2].

[1]
https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification
[2]
https://chromium.googlesource.com/webm/webm-tools/+/master/webm_dash_manifest/

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 23:58:36 +02:00
Vignesh Venkatasubramanian
5a20656946 lavf/matroska: Add functions for WebM DASH Manifest
Add functions and logic to matroskadec for use by the WebM DASH Manifest
XML Muxer. The actual muxer is added in a future patch.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 23:56:17 +02:00
Stepan Bujnak
895e92eca0 Blackframe video filter now sets metadata accordingly.
the libavfilter/vf_blackframe.c filter now not only logs detected
values, but also sets frame metadata. Currently, only `pblack` value is set
but `SET_META` macro has been introduced to ease development in the future.

Signed-off-by: Stepan Bujnak <stepan.bujnak@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 23:37:27 +02:00
Michael Niedermayer
880dbe43ca avcodec/hevc: treat current_sps like sps_list
This simplifies the management of current_sps
Fixes Ticket3458

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 21:49:56 +02:00
Michael Niedermayer
0fc2045d5f avcodec/hevc_ps: prevent stale pointer in malloc failure case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 21:49:56 +02:00
Michael Niedermayer
9514472904 avutil & avdevice: remove av_bprint_fd_contents()
MSVC does not allow passing file pointers between libs
This API can thus not work with MSVC and as it was very recently added
and its it was in no release its removial should not cause any problems

A better API will be implemented, but its not finished yet, this revert is
to avoid potentially blocking the release

Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 21:49:56 +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
Michael Niedermayer
e10b62ab5d ffmpeg_opt: remove intra_dc_precision, its handled by AVOptions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 20:18:19 +02:00
Michael Niedermayer
5bda0467d2 avcodec/mpegvideo_enc: make edge for interlaced mpeg2 encoding smaller
Fixes segfault
the size can probably be reduced further for the mpeg2 case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 19:56:24 +02:00
Michael Niedermayer
339d8fb353 avcodec/mpegvideo_enc: check intra dc precission
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 19:56:23 +02:00
Michael Niedermayer
97f86cd976 avcodec/mpegvideo_enc: workaround applications specifying intra dc level based on 8 and othes based on 0bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 19:56:22 +02:00
Michael Niedermayer
8a91cf857b avcodec/options_table: add liberal limits to intra dc precission
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 19:56:21 +02:00
Michael Niedermayer
19e5114eaa avcodec/mpegvideo_enc: return proper error instead of failing assertion when max rate is not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 19:56:19 +02:00
Michael Niedermayer
01c17b5224 ffmpeg: Fix copying timebase to muxer context
Fixes Ticket3741

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 15:51:31 +02:00
Timothy Gu
7bf5084e30 doc/utils: add missing @c man end title
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 15:03:59 +02:00
Mickaël Raulet
453f8eaee2 hevc/rext: add support for Range extension tools
SPS features/flags:
- transform_skip_rotation_enabled_flag
- transform_skip_context_enabled_flag
- implicit_rdpcm_enabled_flag
- explicit_rdpcm_enabled_flag
- intra_smoothing_disabled_flag
- persistent_rice_adaptation_enabled_flag

PPS features/flags:
- log2_max_transform_skip_block_size
- cross_component_prediction_enabled_flag
- chroma_qp_offset_list_enabled_flag
- diff_cu_chroma_qp_offset_depth
- chroma_qp_offset_list_len_minus1
- cb_qp_offset_list
- cr_qp_offset_list
- log2_sao_offset_scale_luma
- log2_sao_offset_scale_chroma
(cherry picked from commit 005294c5b939a23099871c6130c8a7cc331f73ee)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 14:08:20 +02:00
Mickaël Raulet
5a41999d81 hevc/rext: basic infrastructure for supporting range extension
- support for 4:2:2 and 4:4:4 up to 12 bits
- add a new profile for range extension
(cherry picked from commit d3c067fa65bbc871758d28aa07f54123430ca346)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 13:47:35 +02:00
Mickaël Raulet
250430bf28 hevc: separate residu and prediction (needed for Range Extension)
(cherry picked from commit 6b3856ef57d66f2e59ee61fd2eb5f83b6d0d7d4a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 13:37:27 +02:00
Mickaël Raulet
255086a7e0 hevc: use local variable for split_cu_flag
(cherry picked from commit ee71e9e9c12fc47856c452efb278f9f593a923ee)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 13:31:40 +02:00
Mickaël Raulet
f5beda3bfd hevc: move restore_tqb where it should be.
(cherry picked from commit 8fafc96a9805d11bfe32537c8f78a294a5844065)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 13:25:55 +02:00
Mickaël Raulet
1241eb8870 hevc: simplify SAO computation, delay from one row its computation
(cherry picked from commit f2c5f647cec786df26f442a85e6d685a131a50c9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 13:11:33 +02:00
Timothy Gu
d595361593 RELEASE_NOTES: Mention Libav and add codename
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 03:08:41 +02:00
Anshul Maheswhwari
cdc66b651b Adding Maintainer for dvbsubdec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 00:46:30 +02:00
Mickaël Raulet
c4058b7288 hevc/cabac: add new context for new syntax elements related to Rext(cherry picked from commit 6d71e2394f52679cfc8b86fb5880f89e6bd311d4)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-15 00:00:45 +02:00
Mickaël Raulet
07b91b8d62 hevc: cleaning up, remove unused constants(cherry picked from commit 7eed32d076c57aa03011d65a64903e8bdb633978)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 23:46:36 +02:00
Michael Niedermayer
a65d6e17bd Merge commit 'f9900822fc5f0b0c7242ca318290c090bd5d0af0'
* commit 'f9900822fc5f0b0c7242ca318290c090bd5d0af0':
  fate: Use the correct, local path to samples for opus reference files

Conflicts:
	tests/fate/opus.mak

See: ad7de82218
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 22:12:16 +02:00
Michael Niedermayer
8bbadc9b6e ffmpeg: Use av_stream_get_parser() to avoid ABI issues
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 21:17:20 +02:00
Michael Niedermayer
62227a70f0 avformat: add av_stream_get_parser() to access avformat AVParser
The AVStream.parser field is considered private and its location cannot be
preserved while preserving also ABI compatibility to libav, as libav added fields
before it.
Some tools like ffmpeg.c access this field though

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 21:17:20 +02:00
Martin Storsjö
f9900822fc fate: Use the correct, local path to samples for opus reference files
This fixes running fate in configs where the samples are located
in a different path on the target.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-14 22:12:28 +03:00
Michael Niedermayer
6821572499 avformat/movenc: dont mark multichannel as mono tracks as containing the center channel
Fixes Ticket3727

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 17:11:11 +02:00
Michael Niedermayer
ec24796731 RELEASE_NOTES: fill in lib versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 16:04:43 +02:00
Michael Niedermayer
47c84c0bf7 avformat/wavdec: add basic sanity check for the sample count
Fixes Ticket3708

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 14:52:18 +02:00
Timothy Gu
2a9b4c0f05 Add a release note for 2.3
Based on a patch by Clément Bœsch <u@pkh.me>.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 11:46:59 +02:00
Muhammad Faiz
860d12978c doc/filters: fixing typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 10:43:27 +02:00
Michael Niedermayer
2db1bcf1b9 avformat/asfdec: Try to improve skip case
Fixes Ticket3761

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-14 01:16:08 +02:00
Michael Niedermayer
cc3e7a4c3d Merge commit 'acf91215c74a91eb3b86af01dcb1d3c78d0e2310'
* commit 'acf91215c74a91eb3b86af01dcb1d3c78d0e2310':
  x86: dsputil: Avoid pointless CONFIG_ENCODERS indirection

Conflicts:
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 21:51:20 +02:00
Michael Niedermayer
98227ba5fa Merge commit 'a8552ee3eb335d2fd2d6c99363367a6090298f78'
* commit 'a8552ee3eb335d2fd2d6c99363367a6090298f78':
  ppc: dsputil: Coalesce all init files

Conflicts:
	libavcodec/ppc/dsputil_altivec.h
	libavcodec/ppc/dsputil_ppc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 21:08:28 +02:00
Lukasz Marek
4cc0f79a2c lavf: add samba protocol via libsmbclient
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 20:38:55 +02:00
Michael Niedermayer
ccc4324c90 MAINTAINERS: Add ubitux for text subtitles
ubitux maintains them. It seems it was forgotten to update MAINTAINERs though

See: Re: [FFmpeg-devel] [PATCH] MAINTAINERS: add Subtitle maintainer
     Message-ID: <20140713120546.GC26262@leki>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 19:29:23 +02:00
Star Brilliant
3f815f713b AVFormat: LRC demuxer and muxer
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 19:18:31 +02:00
Diego Biurrun
acf91215c7 x86: dsputil: Avoid pointless CONFIG_ENCODERS indirection
The remaining dsputil bits are encoding-specific anyway.
2014-07-13 07:01:05 -07:00
Ben Avison
42c1cc35b7 armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)
The previous implementation targeted DTS Coherent Acoustics, which only
requires mdct_bits == 6. This relatively small size lent itself to
unrolling the loops a small number of times, and encoding offsets
calculated at assembly time within the load/store instructions of each
iteration.

In the more general case (codecs such as AAC and AC3) much larger arrays
are used - mdct_bits == [8, 9, 11]. The old method does not scale for
these cases, so more integer registers are used with non-unrolled versions
of the loops (and with some stack spillage). The postrotation filter loop
is still unrolled by a factor of 2 to permit the double-buffering of some
VFP registers to facilitate overlap of neighbouring iterations.

I benchmarked the result by measuring the number of gperftools samples
that hit anywhere in the AAC decoder (starting from aac_decode_frame())
or specifically in ff_imdct_half_c / ff_imdct_half_vfp, for the same
example AAC stream:

                  Before          After
                  Mean   StdDev   Mean   StdDev  Confidence  Change
aac_decode_frame  2368.1 35.8     2117.2 35.3    100.0%      +11.8%
ff_imdct_half_*   457.5  22.4     251.2  16.2    100.0%      +82.1%

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 15:17:04 +02:00
James Almer
276bef5340 x86/hevc_deblock: add ff_hevc_[hv]_loop_filter_luma_{8, 10}_sse2
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 13:48:31 +02:00
Ronald S. Bultje
ebd1c505d2 h264: fix direct temporal mvs for bottom-field-first poc order.
Fixes http://forum.doom9.org/showthread.php?t=170867.
Fixes: corrupt-1677.mkv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 13:26:19 +02:00
Diego Biurrun
a8552ee3eb ppc: dsputil: Coalesce all init files 2014-07-13 04:10:13 -07:00
Michael Niedermayer
1e3f77b53a swscale/x86/rgb2rgb_template: fix 1 byte overread in yuyvtoyuv420 and uyvytoyuv420
might fix ticket 3410

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 05:48:09 +02:00
Michael Niedermayer
4eb13cdfb0 avformat/asfdec: dvrms timestamps are pts not dts
Should fix Ticket3328

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 03:50:47 +02:00
Michael Niedermayer
8202c49b43 avformat/utils: do not wait for packets from discarded streams for genpts
Fixes long loop
Fixes Ticket3208

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-13 01:07:59 +02:00
Michael Niedermayer
12dddfed03 configure: fix alphabetical order of previous commit
Was requested in review

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 23:24:16 +02:00
Andreas Cadhalpun
97592faa51 Add -Wformat and -Werror=format-security compiler flags
These are part of the hardening flags used by Debian.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 23:15:23 +02:00
Andreas Cadhalpun
39a6e02fd4 fix spelling errors
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 22:33:27 +02:00
Michael Niedermayer
4470a3eeaf avformat/mpegts: dont clear programs during probing
Fixes Ticket 3763

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 21:49:15 +02:00
Michael Niedermayer
1db641cbd2 avcodec/hevc: more clearing to avoid stale pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 21:31:37 +02:00
Michael Niedermayer
ccd6911c18 avcodec/hevc_ps: do not loose all reference to pointers still in use
Fixes leaving a pointer to unreferenced memory
Fixes Ticket 3115

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 21:03:09 +02:00
Michael Niedermayer
52fafaf474 swresample/libswresample.v: hide ff_*
Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 18:40:17 +02:00
Oliver Fromme
699d2107be doc/encoders: Document "dvdsub workaround for some players"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 17:07:14 +02:00
Michael Niedermayer
e5eff191e4 ffplay: increase subtitle que size
Fixes part of Ticket2516 with ffplay

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 16:29:03 +02:00
James Almer
123649dd19 x86/dsputilenc: remove some empty if statements
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 15:04:58 +02:00
Michael Niedermayer
66558fe715 avcodec/hevc_ps: Check layer_id_included_flags count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 07:46:08 +02:00
Michael Niedermayer
6935ae22ed avcodec/hevc_ps: more complete check for vps_max_dec_pic_buffering
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 07:46:08 +02:00
Michael Niedermayer
5d88e40093 avcodec/hevc: check slice_header_extension data length
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 07:46:07 +02:00
Michael Niedermayer
c79acacd2e avcodec/hevc: fix nb_sh / nb_sps check
fixes integer overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 04:39:01 +02:00
Lukasz Marek
ca671beead lavf/libssh: set freed pointers to NULL
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 03:01:38 +02:00
Michael Niedermayer
59975de777 ffmpeg: fix integer overflows with sub->*display_time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 02:23:48 +02:00
Michael Niedermayer
2cebd17e3f avcodec/pgssubdec: Fix input pts
Fixes part of Ticket2516

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 01:09:51 +02:00
Michael Niedermayer
15e933b773 Merge commit '6cc1409ba8650fb7eaedc96e970664febc02a5e9'
* commit '6cc1409ba8650fb7eaedc96e970664febc02a5e9':
  examples/output: Remove unused variable

See: 9b211c43dc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 20:36:31 +02:00
Michael Niedermayer
b8cdf04726 Merge commit '1173320249745eab01c901a39054fc0fced33c87'
* commit '1173320249745eab01c901a39054fc0fced33c87':
  dsputil: Drop unused bit_depth parameter from all init functions

Conflicts:
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 20:29:40 +02:00
Diego Biurrun
6cc1409ba8 examples/output: Remove unused variable
doc/examples/output.c:460:9: warning: unused variable ‘i’
2014-07-11 07:23:50 -07:00
Diego Biurrun
1173320249 dsputil: Drop unused bit_depth parameter from all init functions 2014-07-11 06:38:26 -07:00
Paul B Mahol
6779bf3f0f avformat/wavenc: use av_mallocz_array()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-07-11 10:38:45 +00:00
Michael Niedermayer
c6c172d173 avformat/mpegts: skip updating programs/streams when determining duration
Fixes Ticket2441

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 16:43:27 +02:00
Michael Niedermayer
c9d64abedf avfilter/vf_decimate: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 15:32:27 +02:00
Michael Niedermayer
be55518fdb avfilter/vf_deshake: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 15:30:41 +02:00
Michael Niedermayer
4932b1e8b8 avfilter/vf_libopencv: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 15:00:49 +02:00
Michael Niedermayer
375d7ee805 Merge commit 'df2aa22203afc9377832bdf800df5dbd3aa9687e'
* commit 'df2aa22203afc9377832bdf800df5dbd3aa9687e':
  mov: Clarify tkhd flag settings

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 13:07:26 +02:00
Michael Niedermayer
4c91599484 Merge commit 'f90729699db9ede2bef2b28000f1795dab1b8996'
* commit 'f90729699db9ede2bef2b28000f1795dab1b8996':
  mov: Do not group tracks if more than one is enabled per type

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 12:41:57 +02:00
Michael Niedermayer
e1f4397e74 Merge commit '458e7c94830d1522997e33a0b5e87bd709e8a349'
* commit '458e7c94830d1522997e33a0b5e87bd709e8a349':
  hevc: implement pic_output_flag handling

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_refs.c

See: 2eddf3a6ef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 12:21:41 +02:00
Michael Niedermayer
aa56c37c8a Merge commit 'f43789b76e661acd93c21664678f140e53cfa1fa'
* commit 'f43789b76e661acd93c21664678f140e53cfa1fa':
  hevc: set the keyframe flag on output frames

See: e2760de605
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 12:16:24 +02:00
Michael Niedermayer
673a2b3818 Merge commit '1493b237bd3f9707319ac58d315ce45312900c10'
* commit '1493b237bd3f9707319ac58d315ce45312900c10':
  hevc: Replace nal type chek with equivalent IS_IRAP macro

Conflicts:
	libavcodec/hevc.c

See: e2760de605
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 11:56:37 +02:00
Michael Niedermayer
f351afb5f9 Merge commit '17e9d52c8c93f47721ff481b8867922f4b4bd663'
* commit '17e9d52c8c93f47721ff481b8867922f4b4bd663':
  hevc_ps: remove a write-only variable

Conflicts:
	libavcodec/hevc_ps.c

See: ba70563d55
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 11:43:33 +02:00
Luca Barbato
df2aa22203 mov: Clarify tkhd flag settings 2014-07-11 11:07:35 +02:00
Luca Barbato
f90729699d mov: Do not group tracks if more than one is enabled per type
The specification requires at most 1 track enabled per alternate group.
2014-07-11 11:07:06 +02:00
Gildas Cocherel
458e7c9483 hevc: implement pic_output_flag handling
Sample-Id: OPFLAG_B_Qualcomm_1.bit, OPFLAG_C_Qualcomm_1.bit
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-11 08:52:54 +00:00
Mickaël Raulet
f43789b76e hevc: set the keyframe flag on output frames
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-11 08:43:01 +00:00
Mickaël Raulet
1493b237bd hevc: Replace nal type chek with equivalent IS_IRAP macro
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-11 08:41:32 +00:00
Anton Khirnov
17e9d52c8c hevc_ps: remove a write-only variable 2014-07-11 08:38:51 +00:00
Michael Niedermayer
9195c26d45 avcodec/rv34: fix crash while seeking on very damaged file
Fixes null pointer dereference
Fixes Ticket2093

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 05:34:13 +02:00
Michael Niedermayer
0089fb79cc avformat/cdg: Do not fail if filesize cannot be determined
This fixes cdg with piped input which was broken by the previous commit

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 01:04:04 +02:00
Michael Niedermayer
20ad2152dd Merge commit '44386aaad870cbd80ae0d08247ebc663476446ff'
* commit '44386aaad870cbd80ae0d08247ebc663476446ff':
  cdg: Forward error from avio_size() in read_header() function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11 01:03:50 +02:00
Nidhi Makhijani
44386aaad8 cdg: Forward error from avio_size() in read_header() function
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-10 12:38:54 -07:00
James Almer
ddea3b7106 x86/yadif-10: remove duplicate ABS macro
And use the x86util ones instead, which are optimized for mmxext/sse2.
About ~1% increase in performance on pre SSSE3 processors.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 21:06:51 +02:00
Christophe Gisquet
4576eff05d hevc: derive partial merge list
The merge list only needs to be derived up to the merge index.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 17:27:56 +02:00
Christophe Gisquet
bbeaae96eb hevc: derive partially amvp list
When the candidate has been found, no need to derive others.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 15:35:15 +02:00
Clément Bœsch
7e7168b82d Fix 2 coeffecient typo 2014-07-10 15:29:54 +02:00
Christophe Gisquet
eca1957c4c hevc: reorder loops
iterate over memory in a more continuous order

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 14:46:49 +02:00
Christophe Gisquet
2e471e4703 hevc: simplify rounding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 14:32:18 +02:00
Yu Xiaolei
64fdcf2428 build: rawvideo decoder depends on bswapdsp
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 14:23:44 +02:00
Michael Niedermayer
5682a93841 Merge commit '5adcef9c1bf701ba2dd43363ae983ba6d74bdb9a'
* commit '5adcef9c1bf701ba2dd43363ae983ba6d74bdb9a':
  mpegts: pass MpegTSContext ptr explicitly

See: 8635954335:
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 13:14:33 +02:00
Dave Rice
a15c5c44e2 doc/filters: add a signalstats example
Signed-off-by: Dave Rice <dave@dericed.com>
2014-07-10 09:34:37 +00:00
Alexander V. Lukyanov
5adcef9c1b mpegts: pass MpegTSContext ptr explicitly
AVFormatContext->priv_data is not always a MpegTSContext, it can be
RTSPState when decoding a RTP stream. So it is necessary to pass
MpegTSContext pointer explicitly.

Within libav, the write_section_data function doesn't actually use
the MpegTSContext at all, so this doesn't change anything at the
moment (no memory was corrupted before), but it reduces the risk of
anybody trying to touch the MpegTSContext via AVFormatContext->priv_data
in the future.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-10 11:24:19 +03:00
Carl Eugen Hoyos
a1e3ea475a Fix compilation with --disable-everything. 2014-07-10 08:26:59 +02:00
James Almer
2571e8fe37 alpha/pixblockdsp: move code out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 04:01:03 +02:00
Michael Niedermayer
81538470c8 configure: fix select vs. deps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 02:32:25 +02:00
Lukasz Marek
b7cfd5c29b gitignore: add examples/transcoding
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 02:18:09 +02:00
Michael Niedermayer
c38b593904 configure: add new dependencies for spp & mpdecimate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 01:34:16 +02:00
Michael Niedermayer
2d5e9451de Merge commit 'f46bb608d9d76c543e4929dc8cffe36b84bd789e'
* commit 'f46bb608d9d76c543e4929dc8cffe36b84bd789e':
  dsputil: Split off pixel block routines into their own context

Conflicts:
	configure
	libavcodec/dsputil.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pixblockdsp_template.c
	libavcodec/x86/dsputilenc.asm
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 01:22:14 +02:00
Nicolas Martyanoff
6cc1fec412 avformat/hlsenc: correctly compute target duration
With HLS, the duration of all segments must be lower or equal to the target
duration. Therefore floor(duration + 0.5) yields incorrect results.

For example, for duration = 1.35, floor(duration + 0.5) yields 1.0, but the
correct result is 2.0.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-07-10 01:31:04 +03:00
Michael Niedermayer
92c29914de avcodec/hevc_sei: factor return 1 out of if/else chain
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 00:19:49 +02:00
Michael Niedermayer
efc66d69bf Merge commit '0569a7e0bd2006d9a5248d17a1f4bf3ca654ae50'
* commit '0569a7e0bd2006d9a5248d17a1f4bf3ca654ae50':
  hevc: parse display orientation SEI message

Conflicts:
	libavcodec/hevc.h
	libavcodec/hevc_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 00:19:43 +02:00
Michael Niedermayer
cd0dc88751 Merge commit '18e3d61e9e3b52c177aa7a1f2a054a8a753e1b09'
* commit '18e3d61e9e3b52c177aa7a1f2a054a8a753e1b09':
  h264: parse display orientation SEI message

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 00:07:04 +02:00
Michael Niedermayer
c67690f854 Merge commit 'a54f03bf07da964a1b04b03b85bc39deba76efa4'
* commit 'a54f03bf07da964a1b04b03b85bc39deba76efa4':
  display: add matrix flip api

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:57:20 +02:00
Michael Niedermayer
e8a966e361 Merge commit '33a7b453a8e1f090c694ea4f36769dc837be88f0'
* commit '33a7b453a8e1f090c694ea4f36769dc837be88f0':
  doc: mention option to mix shared/static libraries

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:47:19 +02:00
Michael Niedermayer
19b9e07ef5 Merge commit '0307cc2253e76772b1c645ac6117d08da87a147c'
* commit '0307cc2253e76772b1c645ac6117d08da87a147c':
  rtpdec: pass an AVFormatContext to ff_parse_fmtp()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:40:13 +02:00
Michael Niedermayer
f233666880 Merge commit '650d384048ed42579cc6d67bf32a94b468c0b6cb'
* commit '650d384048ed42579cc6d67bf32a94b468c0b6cb':
  yuv4mpegenc: do not access AVCodecContext.coded_frame

Conflicts:
	libavformat/yuv4mpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:34:33 +02:00
Michael Niedermayer
57fa9e9742 Merge commit '27c1f82f561932c83191bcd3e70e0cb1712485ba'
* commit '27c1f82f561932c83191bcd3e70e0cb1712485ba':
  nsvdec: remove commented out cruft

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:26:18 +02:00
Michael Niedermayer
73b1283012 Merge commit 'edb1af7c466ebb28bfdb0c076e498e527b43d24f'
* commit 'edb1af7c466ebb28bfdb0c076e498e527b43d24f':
  mov: free the dv demux context with avformat_free_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:19:06 +02:00
Michael Niedermayer
81babc432a Merge commit 'a14b61658c3302081ea5da3ea65b7d9f7b4fb2eb'
* commit 'a14b61658c3302081ea5da3ea65b7d9f7b4fb2eb':
  mtv: do not set sample_rate for video

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 23:11:09 +02:00
Michael Niedermayer
d52f874c7f Merge commit 'b8604a976128ffbd316653cdec11ba487f1025bb'
* commit 'b8604a976128ffbd316653cdec11ba487f1025bb':
  oggparsecelt: do not set AVCodecContext.frame_size

Conflicts:
	libavformat/oggparsecelt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 22:48:25 +02:00
Michael Niedermayer
e932ae5940 Merge commit 'd5cf5afabbf43f00283e70b12afbe1da030d85b6'
* commit 'd5cf5afabbf43f00283e70b12afbe1da030d85b6':
  adxdec: get rid of an avpriv function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 22:38:13 +02:00
Michael Niedermayer
1b58f13761 Merge commit 'f6ee61fb05482c617f5deee29a190d8ff483b3d1'
* commit 'f6ee61fb05482c617f5deee29a190d8ff483b3d1':
  lavc: export DV profile API used by muxer/demuxer as public

Conflicts:
	configure
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/dv_profile.c
	libavcodec/dv_profile.h
	libavcodec/version.h
	libavformat/dvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 22:27:07 +02:00
Michael Niedermayer
9098f0ecd7 ffmpeg: remove common factors from copied timebase
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 21:51:31 +02:00
Michael Niedermayer
8e7c8325d2 Merge commit '3f3232a371cc88696184d9aef1f812656264e56c'
* commit '3f3232a371cc88696184d9aef1f812656264e56c':
  avconv: set the output stream timebase

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 21:44:25 +02:00
Michael Niedermayer
4b13ec69c6 Merge commit 'c9c1265c52910578d3db1a6205c85b91ead0903f'
* commit 'c9c1265c52910578d3db1a6205c85b91ead0903f':
  avformat: update muxing doxy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 21:38:27 +02:00
Michael Niedermayer
714d9bd6ee Merge commit 'abda15a990527557c20848f6ca2f82eb85e76dc9'
* commit 'abda15a990527557c20848f6ca2f82eb85e76dc9':
  cdg: set the keyframe flag on the first packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 21:30:45 +02:00
Michael Niedermayer
76a35f7830 avcodec/roqvideoenc: Print the correct max resolution
Thanks-to: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 21:20:31 +02:00
Michael Niedermayer
9af59db6ec avcodec/roqvideoenc: More verbose warning about no power of 2 dimensions
Thanks-to: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 21:19:55 +02:00
Oliver Fromme
a32dcaaaf8 avcodec/dvdsubenc: Add dvdsub workaround for some players
The issue affects dvdsub subtitles (a.k.a. VOBSUB).

Some players -- in particular hardware players -- cut off
the lowest row of pixels if the number of rows in the subtitle
is odd.

The patch below implements a work-around for that.  If the
number of rows is odd, it is simply rounded up to an even
number, adding an invisible (i.e. fully transparent) row.
The work-around can be enabled or disabled with a new
option -even_rows_fix.  The default is disabled, so there
is no change of behaviour for users who don't care about it.

The overhead for the fix is low, and in many cases even zero:
For subtitles with an odd number of rows (i.e. in 50% of
cases on average), the size increases by two bytes because
a fully transparent row is encoded as 0x00 0x00.  However,
in the VOBSUB standard, all data packets are padded to 2KB
anyway, so in most cases the additional bytes just use some
part of the padding, so there is no overhead.  Only in the
rare case that the 2KB boundary is hit (0.1% chance), a full
2KB block is added.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 20:11:36 +02:00
Michael Niedermayer
e36916a63f avcodec/pthread_frame: fix setting hwaccel with threads and get_format()
Fixes assertion failure with vdpau and vlc
Fixes Ticket3742

Tested-by: oromit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 19:58:58 +02:00
Michael Niedermayer
31d49db75e avutil/bprint:ædd io.h, try to fix msvc build
Suggested-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 18:16:45 +02:00
Diego Biurrun
f46bb608d9 dsputil: Split off pixel block routines into their own context 2014-07-09 08:05:26 -07:00
Michael Niedermayer
b83e0903ec avformat/m4vdec: raise threshold slightly for detection
Fixes Ticket3746

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 17:02:34 +02:00
Vittorio Giovara
0569a7e0bd hevc: parse display orientation SEI message
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-09 10:18:06 -04:00
Vittorio Giovara
18e3d61e9e h264: parse display orientation SEI message
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-09 10:17:42 -04:00
Vittorio Giovara
a54f03bf07 display: add matrix flip api 2014-07-09 10:14:12 -04:00
Michael Niedermayer
f32c5d1a8d avcodec/mpegvideo: clip mv visualization arrows so that their direction is maintained
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 16:04:32 +02:00
Andrew Kelley
33a7b453a8 doc: mention option to mix shared/static libraries
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-07-09 09:57:10 -04:00
Anton Khirnov
0307cc2253 rtpdec: pass an AVFormatContext to ff_parse_fmtp()
Use it for logging, instead of NULL or the stream codec context.
2014-07-09 13:40:54 +00:00
Anton Khirnov
650d384048 yuv4mpegenc: do not access AVCodecContext.coded_frame
Its contents are meaningful only if the stream codec context is the one
actually used for encoding, which is often not the case (and is
discouraged).

Use AVCodecContext.field_order instead.
2014-07-09 13:40:39 +00:00
Anton Khirnov
27c1f82f56 nsvdec: remove commented out cruft 2014-07-09 13:38:54 +00:00
Anton Khirnov
edb1af7c46 mov: free the dv demux context with avformat_free_context() 2014-07-09 13:38:35 +00:00
Anton Khirnov
a14b61658c mtv: do not set sample_rate for video 2014-07-09 13:38:26 +00:00
Anton Khirnov
b8604a9761 oggparsecelt: do not set AVCodecContext.frame_size
It is supposed to be set by decoders only.
2014-07-09 13:38:14 +00:00
Anton Khirnov
d5cf5afabb adxdec: get rid of an avpriv function
The only thing the demuxer needs is the sample rate to set the timebase,
which can be simply read with AV_RB32.
2014-07-09 13:37:18 +00:00
Anton Khirnov
f6ee61fb05 lavc: export DV profile API used by muxer/demuxer as public 2014-07-09 13:35:07 +00:00
Anton Khirnov
3f3232a371 avconv: set the output stream timebase
This is required by the new API.
2014-07-09 13:30:33 +00:00
Anton Khirnov
c9c1265c52 avformat: update muxing doxy
The callers should now set the stream timebase, not the codec one.
2014-07-09 13:30:22 +00:00
Anton Khirnov
abda15a990 cdg: set the keyframe flag on the first packet
Bug-Id: 55
2014-07-09 13:30:11 +00:00
Carl Eugen Hoyos
d6e7881c2e Fix wmv1 encoding if all other msmpeg4-related encoders were disabled. 2014-07-09 08:51:17 +02:00
Carl Eugen Hoyos
e4dfc3f9b8 Fix wmv1 decoding if no other msmpeg4-related decoder was compiled. 2014-07-09 08:27:24 +02:00
Michael Niedermayer
c8b2cf4996 avcodec/mpegvideo: flip motion vector visualization for backward motion vectors
Also support changing arrow head/tail shape

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 03:07:25 +02:00
Michael Niedermayer
98eab98159 avdevice/pulse_audio_dec: reimplement using the non simple API
This fixes timestamps

Based-on: code from pulseaudio
Reviewed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 01:36:01 +02:00
Mark Boorer
352756ecae avformat/movenc: respect color_range when encoding dnxhd.
Set the ACLR atom appropriately for legal / full range.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-09 00:35:23 +02:00
Michael Niedermayer
7125b6ca90 avformat/segment: remove gettimeofday() use, remove sys/time.h
It causes portability issues, and would need ifdef hell if its kept

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 22:52:39 +02:00
James Almer
2375b09473 alpha/idctdsp: move idct init code out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 22:19:38 +02:00
Alexander V. Lukyanov
8635954335 avformat/mpegts: pass MpegTSContext ptr explicitly (fixes #3721)
AVFormatContext->priv_data is not always a MpegTSContext, it can be
RTSPState when decoding a RTP stream. So it is necessary to pass
MpegTSContext pointer explicitly.

This fixes memory corruption from bug #3721 (RTSPState is smaller than
MpegTSContext thus innocent memory gets overwritten).

Signed-off-by: Alexander V. Lukyanov <lavv17f@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 22:06:18 +02:00
Michael Niedermayer
fd3388d63d Merge commit '18fb38fb9ea7e2d5997c096fccfcd4cb43f70294'
* commit '18fb38fb9ea7e2d5997c096fccfcd4cb43f70294':
  mov: Remove a variable that is set but never used

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 21:53:09 +02:00
Michael Niedermayer
839688bc63 Merge commit 'cf280ed004b5c618560f8f43d14ff264bd1e4c3d'
* commit 'cf280ed004b5c618560f8f43d14ff264bd1e4c3d':
  avplay: Handle pixel aspect ratio properly

See: 32fdfdfbda
See: 99b01e458c
See: 825ec16da9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 21:52:06 +02:00
Michael Niedermayer
a26ecba075 Merge commit '52a1c32c0a86e84d43f977c5148e62975a0c6917'
* commit '52a1c32c0a86e84d43f977c5148e62975a0c6917':
  nut: Use nut->version in the version range check

Conflicts:
	libavformat/nutdec.c

Note, this bug did not affect ffmpeg
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 21:18:36 +02:00
Michael Niedermayer
eee6ad38f9 avdevice/lavfi: add io.h, should fix msvc build
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 20:29:59 +02:00
Michael Niedermayer
550bda741c avcodec/alpha/dsputil_alpha: fix build
Disable moved functions to prevent build/test failure,
patch to update and re-enable them is welcome
volunteer to maintain the alpha code is welcome too

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 20:15:31 +02:00
Martin Storsjö
18fb38fb9e mov: Remove a variable that is set but never used
This silences a warning with gcc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-08 21:14:43 +03:00
Martin Storsjö
cf280ed004 avplay: Handle pixel aspect ratio properly
This was broken (left half-implemented) in 354468fc12.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-08 21:14:43 +03:00
Luca Barbato
52a1c32c0a nut: Use nut->version in the version range check
It was wrongly left unchanged when the version field had been
introduced. (c94e2e85cb)
2014-07-08 19:04:09 +02:00
Michael Niedermayer
7cb8f7ded4 avcodec/proresenc_anatoliy: check against maximum dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 18:03:11 +02:00
Michael Niedermayer
7c7441b37d avcodec/roqvideoenc: check dimensions against maximum
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 17:33:39 +02:00
Michael Niedermayer
fe4c76b3d0 avcodec/roqvideoenc: fix infinite lambda increasing loop
The threshold was choosen so that no further size decrease happened with larger lambda
with the test video.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 17:09:56 +02:00
Michael Niedermayer
a981d1b6aa avformat/nutdec: if all else fails try to lookup video tag in isom
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 16:37:06 +02:00
Michael Niedermayer
5a4edf6f0d avformat/movenc: check that the video resolution is supported
Resolutions are stored as 16bit integers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 16:17:44 +02:00
Michael Niedermayer
1f935c3d0b Merge commit '79fce1ec8abd017593c003917fc123f7119a78d6'
* commit '79fce1ec8abd017593c003917fc123f7119a78d6':
  arm: Avoid using the 'setend' instruction on ARMv7 and newer

Conflicts:
	libavcodec/arm/h264dsp_init_arm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 14:44:12 +02:00
Michael Niedermayer
70b423e148 Merge commit '3d90f27ad5843ccd63d34fd6da4d4bff212c1bfe'
* commit '3d90f27ad5843ccd63d34fd6da4d4bff212c1bfe':
  avformat_new_stream: make the AVCodec parameter const

Conflicts:
	libavformat/utils.c

See: e12cfd044c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 14:29:47 +02:00
Michael Niedermayer
e1f729d977 Merge commit 'd3cfd7aff86ee3d449ca68aba21d67b9b2136a9b'
* commit 'd3cfd7aff86ee3d449ca68aba21d67b9b2136a9b':
  af_compand: make sure request_frame always outputs at least one frame

See: 6b68e2a43b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 13:48:26 +02:00
Martin Storsjö
79fce1ec8a arm: Avoid using the 'setend' instruction on ARMv7 and newer
This instruction is deprecated on ARMv8, and it is serializing on
some ARMv7 cores as well [1].

[1] http://article.gmane.org/gmane.linux.ports.arm.kernel/339293

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-08 12:09:09 +03:00
Roman Savchenko
3d90f27ad5 avformat_new_stream: make the AVCodec parameter const
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-08 08:24:27 +00:00
Andrew Kelley
d3cfd7aff8 af_compand: make sure request_frame always outputs at least one frame
This fixes a segmentation fault because request_frame in fifo.c assumes
that the call to ff_request_frame will populate fifo->root.next.
Before, it was possible for request_frame in af_compand to not do this,
resulting in a null pointer access. Now, request_frame in af_compand
always will return at least one frame or an error, as per the API
specifications in avfilter.h for request_frame.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-07-08 07:54:00 +00:00
Michael Niedermayer
14e2406de7 Merge commit 'a9aee08d900f686e966c64afec5d88a7d9d130a3'
* commit 'a9aee08d900f686e966c64afec5d88a7d9d130a3':
  dsputil: Split off FDCT bits into their own context

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/asvenc.c
	libavcodec/dnxhdenc.c
	libavcodec/dsputil.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 03:19:06 +02:00
Michael Niedermayer
5c7bf354dc avcodec/crystalhd: Add #if HAVE_UNISTD_H around #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:51:56 +02:00
Michael Niedermayer
0ffba9feb6 avutil/cpu: Use HAVE_UNISTD_H instead of HAVE_SYSCONF for #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:50:52 +02:00
Michael Niedermayer
576ced5530 avfilter/vf_drawtext: Add #if HAVE_UNISTD_H around #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:49:13 +02:00
Michael Niedermayer
0dbcecc8dc avdevice/oss_audio: Add #if HAVE_UNISTD_H around #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:48:51 +02:00
Timothy Gu
8e6a66b662 doc: add doxygen target tag
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:11:19 +02:00
Timothy Gu
cee98aadb1 doc: make doxygen program configurable
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:08:04 +02:00
Timothy Gu
865a761081 doc: add doxy-wrapper.sh to doc/doxygen/html dependencies
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 02:03:35 +02:00
Michael Niedermayer
307239bdb6 ffserver: add HAVE_UNISTD_H around #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 01:56:53 +02:00
Michael Niedermayer
1574eedd0e tools/yuvcmp: add HAVE_UNISTD_H around #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 01:56:33 +02:00
Michael Niedermayer
39ea21713c avcodec/libxvid: add HAVE_UNISTD_H around #include <unistd.h>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 01:55:47 +02:00
Michael Niedermayer
0ebcf87803 protect unistd.h with #if HAVE_UNISTD_H in code from recent av_bprint_fd_contents() patches
Should fix build failure on MSVC

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 01:54:30 +02:00
Timothy Gu
5b58692ed4 swresample: misc. doxy improvements
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 01:36:56 +02:00
Michael Niedermayer
9ccc7aeeea doc/Doxyfile: use 5 columns for alphabetical index
This reverts a hunk from 671005558a
Reduces diff to what we use on the server
Suggested-by: Timothy Gu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 00:43:18 +02:00
Michael Niedermayer
242b3c292a Merge commit '1e9a93bfca2c2f43a07e01f2ef9fd5cbafe6c22d'
* commit '1e9a93bfca2c2f43a07e01f2ef9fd5cbafe6c22d':
  libfdk-aacdec: Decode the first AAC frame to reliably identify the bitstream

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 23:16:59 +02:00
Michael Niedermayer
75be508f7c Merge commit 'a863c97e99bf30a88baa74f83bab9e3ab25984dc'
* commit 'a863c97e99bf30a88baa74f83bab9e3ab25984dc':
  smoothstreamingenc: Fix a memory leak on errors

See: a53c5d454e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 23:05:03 +02:00
Michael Niedermayer
154954c2ac avcodec/vmdvideo: remove unneeded include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 22:57:36 +02:00
Michael Niedermayer
b8d017adba avformat/segment: simplify localtime* use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 22:57:36 +02:00
Deti fliegl
8cda23f341 avformat/segment: Support cutting at clocktime
Signed-off-by: Deti fliegl <fliegl@baycom.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 22:56:55 +02:00
Diego Biurrun
a9aee08d90 dsputil: Split off FDCT bits into their own context 2014-07-07 12:28:45 -07:00
Andrey Utkin
2229a6dfe6 avdevice/lavfi: allow non-mmappable files for graph_file
Use av_bprint_fd_contents() instead of av_file_map()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 21:28:25 +02:00
Andrey Utkin
fcd1f6bc9d avutil/bprint: Add av_bprint_fd_contents()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 21:28:18 +02:00
Omer Osman
1e9a93bfca libfdk-aacdec: Decode the first AAC frame to reliably identify the bitstream
For implicit signaling cases (as possible for Spectral Band Replication
and Parametric Stereo Tools), the decoder must decode the first frame to
correctly identify the stream configuration (as called from
avformat_find_stream_info). The mechanism for this is built-in and only
requires adding CODEC_CAP_CHANNEL_CONF to the libfdk-aacdec AVCodec
struct.

Signed-off-by: Omer Osman <omer.osman@iis.fraunhofer.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-07 22:09:15 +03:00
Michael Niedermayer
a863c97e99 smoothstreamingenc: Fix a memory leak on errors
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-07 22:08:42 +03:00
Michael Niedermayer
06dae71d47 Merge commit '246f869590b8c7313d26e1c2ef56db01f6fd2503'
* commit '246f869590b8c7313d26e1c2ef56db01f6fd2503':
  vmd: Split audio and video decoder

Conflicts:
	libavcodec/vmdvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 18:06:39 +02:00
Nidhi Makhijani
246f869590 vmd: Split audio and video decoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-07 07:45:00 -07:00
Michael Niedermayer
5320b34b98 avcodec/cljrdec: remove unneeded include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 16:31:51 +02:00
Michael Niedermayer
3790801f9c Merge commit '3c650efb81aaa3b395ba4606ee68a47ee4efb57b'
* commit '3c650efb81aaa3b395ba4606ee68a47ee4efb57b':
  dsputil: Move draw_edges() to mpegvideoencdsp

Conflicts:
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_mmx.c
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 16:17:27 +02:00
Michael Niedermayer
020865f557 Merge commit 'c166148409fe8f0dbccef2fe684286a40ba1e37d'
* commit 'c166148409fe8f0dbccef2fe684286a40ba1e37d':
  dsputil: Move pix_sum, pix_norm1, shrink function pointers to mpegvideoenc

Conflicts:
	libavcodec/dsputil.c
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/dsputilenc.asm
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 15:36:58 +02:00
Michael Niedermayer
462c6cdb8e Merge commit '8d686ca59db14900ad5c12b547fb8a7afc8b0b94'
* commit '8d686ca59db14900ad5c12b547fb8a7afc8b0b94':
  dsputil: Split off *_8x8basis to a separate context

Conflicts:
	libavcodec/dsputil.c
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 15:08:55 +02:00
Michael Niedermayer
8324bd5186 avcodec/mpegvideo_enc: fix b frame strategy 2
Fixes Ticket3757

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 14:59:37 +02:00
Timothy Gu
3be90723e7 transcoding: fix Doxygen file path
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 13:15:32 +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
Eric Lasota
586406980f avcodec/roqvideodec: set JPEG output color range
Signed-off-by: Eric Lasota <ejlasota@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 03:06:00 +02:00
Michael Niedermayer
705eb5a177 Merge commit 'a7985cfd4c51b7fe2b870fc4ecd109707ee035d6'
* commit 'a7985cfd4c51b7fe2b870fc4ecd109707ee035d6':
  audio_fifo: Split into a separate doxygen module

Conflicts:
	libavutil/audio_fifo.h

See: 689e02808d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 00:55:52 +02:00
Michael Niedermayer
52ea7ffdfb Merge commit 'd69243d39b773b64614792487cd93f6ceb237b25'
* commit 'd69243d39b773b64614792487cd93f6ceb237b25':
  samplefmt: Add doxygen categories

Conflicts:
	libavutil/samplefmt.h

See: b27555a3a0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 00:33:09 +02:00
Michael Niedermayer
28c0319517 Merge commit 'd6902070c52151ec1e8154ce9b22283a1d0bc192'
* commit 'd6902070c52151ec1e8154ce9b22283a1d0bc192':
  dsicin: Split audio and video decoder

Conflicts:
	libavcodec/Makefile
	libavcodec/dsicinvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 00:04:22 +02:00
Diego Biurrun
3c650efb81 dsputil: Move draw_edges() to mpegvideoencdsp 2014-07-06 14:48:50 -07:00
Michael Niedermayer
96761e9306 Merge commit '2fc85fe96e7e0e5fc433b98eacebf4d3511d2d58'
* commit '2fc85fe96e7e0e5fc433b98eacebf4d3511d2d58':
  bmv: Split audio and video decoder

Conflicts:
	libavcodec/bmvvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 23:43:37 +02:00
Eric Lasota
8be23d424f avcodec/roqvideo: use JPEG color range
Signed-off-by: ejlasota <ejlasota@gmail.com>

Also update fate test checksums
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 23:34:58 +02:00
Diego Biurrun
c166148409 dsputil: Move pix_sum, pix_norm1, shrink function pointers to mpegvideoenc 2014-07-06 14:26:53 -07:00
Diego Biurrun
8d686ca59d dsputil: Split off *_8x8basis to a separate context 2014-07-06 13:09:24 -07:00
Timothy Gu
064945b3aa swresample: organize functions into doxy groups
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 22:07:15 +02:00
Timothy Gu
81f47e272d swresample: better doxy for configuration-returning functions
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 22:06:51 +02:00
Timothy Gu
2711b4708a swresample: improve Doxygen introduction
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 21:41:31 +02:00
Timothy Gu
77c5f546e7 swresample: add SwrContext doxy
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:58:58 +02:00
Timothy Gu
fc71434e84 swresample: add SwrDitherType doxy
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:58:41 +02:00
Timothy Gu
c0d9b026f9 swresample: group all the option constants in a section in doxy
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:58:34 +02:00
Timothy Gu
0c58388211 swresample: grammar/capitalization fixes
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:46:06 +02:00
Timothy Gu
02ca9efdcd avutil: actually install hash.h
This header is designed as a public header (with APIchanges entry and
everything), but it is forgotten to put into the headers to be installed
list.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:45:37 +02:00
Timothy Gu
a7985cfd4c audio_fifo: Split into a separate doxygen module
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 11:44:10 -07:00
Timothy Gu
d69243d39b samplefmt: Add doxygen categories
Categorize the enum and functions as "audio-related".

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 11:44:01 -07:00
James Almer
195f7bd23d x86/svq1enc: use unaligned mov on SSE2
Might fix fate failures on some systems

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:27:57 +02:00
Nidhi Makhijani
d6902070c5 dsicin: Split audio and video decoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 11:27:34 -07:00
Michael Niedermayer
0d1994ee3c Merge commit 'b0633f83f277c05bf1f617a99c7aedd2db8306e3'
* commit 'b0633f83f277c05bf1f617a99c7aedd2db8306e3':
  paf: split audio and video decoder

Conflicts:
	libavcodec/pafvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:11:40 +02:00
Michael Niedermayer
225c5cc815 Merge commit '373a6dda5422186bc057297342a9e559a564595e'
* commit '373a6dda5422186bc057297342a9e559a564595e':
  cljr: split decoder and encoder

Conflicts:
	libavcodec/Makefile
	libavcodec/cljrdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:00:59 +02:00
Nidhi Makhijani
2fc85fe96e bmv: Split audio and video decoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 10:58:43 -07:00
Michael Niedermayer
3a29af4efc Merge commit '02a7a5e330ec4373a761f63c292220a1de13b968'
* commit '02a7a5e330ec4373a761f63c292220a1de13b968':
  vc1test: Check malloc call

Conflicts:
	libavformat/vc1test.c

See: a807c68253
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 19:44:13 +02:00
Michael Niedermayer
d95a04547a Merge commit '77fc7b76726719746ca45df6c4a62c41abad506e'
* commit '77fc7b76726719746ca45df6c4a62c41abad506e':
  vc1test: Return proper error codes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 19:25:12 +02:00
Michael Niedermayer
1c8c4b8a89 Merge commit '865461099e062de5a3a109c2a5be98004c11d8bd'
* commit '865461099e062de5a3a109c2a5be98004c11d8bd':
  librtmp: Don't free the temp url at the end of rtmp_open

Conflicts:
	libavformat/librtmp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 19:12:52 +02:00
Nidhi Makhijani
b0633f83f2 paf: split audio and video decoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 09:36:17 -07:00
Nidhi Makhijani
373a6dda54 cljr: split decoder and encoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 09:28:20 -07:00
Nidhi Makhijani
02a7a5e330 vc1test: Check malloc call
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 09:25:52 -07:00
Nidhi Makhijani
77fc7b7672 vc1test: Return proper error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-06 07:53:58 -07:00
Martin Storsjö
865461099e librtmp: Don't free the temp url at the end of rtmp_open
librtmp can keep pointers to this string internally, and may
use them at shutdown as well.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-06 17:49:02 +03:00
Michael Niedermayer
e592bf3d2f avfilter/vsrc_cellauto: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 14:35:13 +02:00
Michael Niedermayer
d90ad5b2bb avfilter/vf_vignette: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 14:34:37 +02:00
Michael Niedermayer
11e4890eeb avfilter/unsharp_opencl: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 14:33:54 +02:00
Michael Niedermayer
a53c5d454e avformat/smoothstreamingenc: fix memleak
Fixes CID1224285
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 05:02:38 +02:00
Timothy Gu
37715b4594 swresample: split option table to a separate file
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 03:45:46 +02:00
Michael Niedermayer
02729f7a5a avcodec/mjpegenc_common: Restore removed copyright statements
These where removed by  libav while spliting the file in adcb8392c9

See: de6d9b6404
See: 723106b279

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 03:39:39 +02:00
Timothy Gu
689e02808d avutil/audio_fifo: split into a separate doxy module
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 01:41:17 +02:00
Michael Niedermayer
26b9f5bcdb avcodec/Makefile: add libutvideo.h to SKIPHEADERS
libutvideo.h is not a C header and thus fails building as a C file

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 01:38:55 +02:00
Timothy Gu
b27555a3a0 avutil/samplefmt: improve doxygen
Categorize the enum and funcs to "Audio related".

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 01:05:30 +02:00
Timothy Gu
baef3ba727 avcodec/old_codec_ids: workaround doxygen inclusion bug
Currently, http://ffmpeg.org/doxygen/trunk/group__preproc__misc.html is
broken, because of inclusion bug in Doxygen's preprocessing mode. The
now-unincluded header file is included anyway in avcodec.h, the only
place where it is used, so there should be no problem removing it.

One concern is API-compatibility, because old_codec_ids.h is a public
header. However, IMO this is not a problem because currently users
cannot include only this header and not `avcodec.h` anyway, because of
missing AV_CODEC_ID_NONE symbol.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 00:32:29 +02:00
James Almer
dad31083ae x86/svq1enc: port ssd_int8_vs_int16 to yasm
Also add an SSE2 version

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 21:43:40 +02:00
Michael Niedermayer
19b79c1429 Merge commit 'b0de1c766329dd8c9960ad1722e2f653160abc1b'
* commit 'b0de1c766329dd8c9960ad1722e2f653160abc1b':
  x86: build: Only compile FDCT code if MMX is enabled

Conflicts:
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 20:12:31 +02:00
Michael Niedermayer
5036c8b17b Merge commit '12f129e545e5a5844b6ad7f3eb6a438015cad8bc'
* commit '12f129e545e5a5844b6ad7f3eb6a438015cad8bc':
  x86: Unconditionally compile blockdsp and svq1enc init files

Conflicts:
	libavcodec/x86/Makefile

blockdsp_mmx is renamed to blockdsp_init as we already have a blockdsp file
and _init is how all other such files are called

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 19:50:05 +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
Michael Niedermayer
6bef3e55bd Merge commit '009331303a6462d07cbe94aef9c446f1a1695519'
* commit '009331303a6462d07cbe94aef9c446f1a1695519':
  x86: huffyuvdsp: Move inline assembly to init file

Conflicts:
	libavcodec/x86/Makefile
	libavcodec/x86/huffyuvdsp.h
	libavcodec/x86/huffyuvdsp_init.c
	libavcodec/x86/huffyuvdsp_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 19:11:26 +02:00
Diego Biurrun
b0de1c7663 x86: build: Only compile FDCT code if MMX is enabled
All other files containing purely inline assembly are treated the same way.
2014-07-05 04:18:34 -07:00
Diego Biurrun
12f129e545 x86: Unconditionally compile blockdsp and svq1enc init files
This avoids a link failure with MMX disabled as the init functions
are referenced unconditionally.
2014-07-05 04:18:34 -07:00
Diego Biurrun
009331303a x86: huffyuvdsp: Move inline assembly to init file
This avoids a link failure with MMX disabled as now code and
initialization are compiled under the same condition.
2014-07-05 04:18:34 -07:00
Carl Eugen Hoyos
d3e51b4118 Fix standalone compilation of the amv encoder. 2014-07-05 12:55:14 +02:00
Lukasz Marek
362cfe8ce1 doc/protocols: document unit of timeouts for ftp and http
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-07-05 12:07:11 +02:00
Stefano Sabatini
60f162946f tools/ffeval: print computed value even in case of error
This is useful for debugging purposes.
2014-07-05 11:48:24 +02:00
Stefano Sabatini
85eabd748b lavfi/drawtext: do not allocate FT_Glyph, but keep it in the Glyph structure
Slightly simplify.
2014-07-05 11:48:06 +02:00
Michael Niedermayer
d5818c37f3 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Use os/2 palette even if it contains less than 256 entries.
  Assume that old bmps do not contain transparency information.
  Do not detect jp2 images as mov files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 04:12:12 +02:00
Michael Niedermayer
4216a5082b Merge commit 'e0bfe34ea8ccf333ec5b17961fd58eb575e74f8b'
* commit 'e0bfe34ea8ccf333ec5b17961fd58eb575e74f8b':
  libfdk-aacdec: Reduce the default decoder delay by one frame

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 03:41:35 +02:00
Carl Eugen Hoyos
810294ce3d Use os/2 palette even if it contains less than 256 entries.
Fixes 11Bios13.bmp.
2014-07-05 02:11:17 +02:00
Carl Eugen Hoyos
8f6a04a279 Assume that old bmps do not contain transparency information.
Fixes MK50TEMP.BMP that has its RGB channel bit masks on the actual image.
2014-07-05 02:11:17 +02:00
Carl Eugen Hoyos
d919fdd4f7 Do not detect jp2 images as mov files. 2014-07-05 02:11:17 +02:00
Omer Osman
e0bfe34ea8 libfdk-aacdec: Reduce the default decoder delay by one frame
The default error concealment method if none is set via
aacDecoder_SetParam(AAC_CONCEAL_METHOD) is set in
CConcealment_InitCommonData within the fdk-aac library
and is set to Energy Interpolation. This method requires one frame
delay to the output. To reduce the default decoder output delay and
avoid missing the last frame in file based decoding, use Noise
Substitution as the default concealment method.

Signed-off-by: Omer Osman <omer.osman@iis.fraunhofer.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-05 00:47:36 +03:00
Timothy Gu
939d22a297 Doxyfile: imitate gcc for better libavutil/attributes.h documentation
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 23:14:17 +02:00
Timothy Gu
3679edf429 downmix_info: clarify doxygen
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 22:07:23 +02:00
Timothy Gu
beed4ac110 channel_layout: doxy: merge functions with macros
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 22:06:49 +02:00
Timothy Gu
31a6dfcbf7 Doxyfile: enable browser-based search engine
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 21:35:29 +02:00
Timothy Gu
0201ce002c avutil: fix version macros doxygen module
Without this patch, "Library Version Macros" module is not visible on
libavutil homepage in `make apidoc`.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 20:54:19 +02:00
Lukasz Marek
b7adc5b5a6 lavf/libssh: call ssh_userauth_none before ssh_userauth_list
According to doc, ssh_userauth_none must be called before ssh_userauth_list.
It solves login issue for new versions of libssh.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 20:30:48 +02:00
Michael Niedermayer
2d15554850 avcodec/mlp_parser: check ff_combine_frame() return code
Fixes CID602338

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 20:29:40 +02:00
Michael Niedermayer
d1a8659efe avformat/img2dec: remove functions from image pipe which are unneeded for image pipes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 16:44:40 +02:00
Michael Niedermayer
bd8b6ed96d avcodec/bmp: fix integer overflow in checking header sizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 15:02:08 +02:00
Michael Niedermayer
c277ab6b78 avformat/img2dec: improve bmp probe
fix probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 04:54:52 +02:00
Michael Niedermayer
d36fe733c1 avformat/img2dec: increase probe buffer to 2k
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 04:54:32 +02:00
Michael Niedermayer
a195c98cbc configure: update dependencies for vf_spp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 04:47:13 +02:00
Michael Niedermayer
0437445926 avformat/img2dec: set AVProbeData size correctly on corner cases of tiny files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 04:00:27 +02:00
Michael Niedermayer
6691eee48c avformat/img2dec: avoid seekback on probeing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 04:00:27 +02:00
Michael Niedermayer
726e253b00 avformat/img2dec: allocate and clear padding area for probe correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 04:00:27 +02:00
Michael Niedermayer
7d179b126b Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavf/ftp: always treat all response codes >= 500 as error
  lavf/ftp: explicitly enable UTF-8
  lavf/ftp: make response parsing more RFC compliant

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 02:19:07 +02:00
James Almer
9937362c54 x86/swr: use lavu helper macros to check CPU extensions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 02:12:16 +02:00
Carl Eugen Hoyos
4c145b692c Autodetect JPEG2000 imagess.
Autodetection of jp2 files does not work yet, the files are detected
as mov.
2014-07-04 02:10:26 +02:00
James Almer
8279a15284 x86/swr: split audioconvert and rematrix DSP into separate files
Also rename resample_x86_dsp.c to resample_init.c

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 02:00:11 +02:00
James Almer
857cd1f33b swr: initialize only the necessary resample dsp functions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 01:37:41 +02:00
Lukasz Marek
c82521713d lavf/ftp: always treat all response codes >= 500 as error
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-07-04 01:21:08 +02:00
Lukasz Marek
a0358db323 lavf/ftp: explicitly enable UTF-8
Most FTP servers enable UTF-8 by default, but it is not required by the standard.
Enabling it manually makes ffmpeg implementation more consistent when server
doesn't enable it by default.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-07-04 01:21:08 +02:00
Lukasz Marek
3ba6dce48d lavf/ftp: make response parsing more RFC compliant
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-07-04 01:21:08 +02:00
Michael Niedermayer
5c65aed7fd Merge commit '391ecc961ced2bde7aecb3053ac35191f838fae8'
* commit '391ecc961ced2bde7aecb3053ac35191f838fae8':
  x86: mpegvideoenc: Change SIMD optimization name suffixes to lowercase

Conflicts:
	libavcodec/x86/mpegvideoenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 01:17:39 +02:00
Michael Niedermayer
cf8c44fc47 Merge commit 'c6698dfe7cdbc7634f33245875488ed3fa4a8ced'
* commit 'c6698dfe7cdbc7634f33245875488ed3fa4a8ced':
  webpdec: Fix decoding of the huffman group indices.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 01:08:57 +02:00
Michael Niedermayer
b28fcbba0c Merge commit '9279826008b80daad7446950a821f32033ccd33f'
* commit '9279826008b80daad7446950a821f32033ccd33f':
  id3v2enc: use a case-insensitive comparison for APIC picture type

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 00:50:40 +02:00
Oliver Fromme
d73823286d avcodec/dvdsubdec: fix alpha in debuging code
improve the debugging function for saving subtitles
to PPM files: Actually use the alpha channel.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 00:35:21 +02:00
Oliver Fromme
3f0a3e9e12 avcodec/dvdsubdec: Fix off-by-one error
Fix an off-by-one error that causes the height of decoded
subtitles to be too small, thus cutting off the lowest row
of pixels.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 00:32:43 +02:00
Diego Biurrun
391ecc961c x86: mpegvideoenc: Change SIMD optimization name suffixes to lowercase 2014-07-03 13:41:41 -07:00
Michael Niedermayer
a9ce5d92e6 Merge commit '0955e57ad07640574fc20ce0bea3c0b83982ada1'
* commit '0955e57ad07640574fc20ce0bea3c0b83982ada1':
  daud: split muxer and demuxer

Conflicts:
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 21:42:16 +02:00
Justin Ruggles
c6698dfe7c webpdec: Fix decoding of the huffman group indices.
Per the specification, "The red and green components of a pixel
define the meta Huffman code used in a particular block of the ARGB
image."
2014-07-03 15:29:01 -04:00
Michael Niedermayer
524eeaca22 Merge commit 'f920d089535bf7cf10aeda900cc43201c5e18cd0'
* commit 'f920d089535bf7cf10aeda900cc43201c5e18cd0':
  ismindex: Add an option for outputting files elsewhere than in the current directory

Conflicts:
	tools/ismindex.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 21:02:56 +02:00
Anton Khirnov
9279826008 id3v2enc: use a case-insensitive comparison for APIC picture type 2014-07-03 18:40:37 +00:00
Michael Niedermayer
0d35d5ab1b Merge commit '6bc4934b75dde9354ee16a6e700ebe6775abf69e'
* commit '6bc4934b75dde9354ee16a6e700ebe6775abf69e':
  ismindex: Allow adding a path prefix to the generated .ism file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 20:37:06 +02:00
Nidhi Makhijani
0955e57ad0 daud: split muxer and demuxer
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-07-03 10:46:11 -07:00
Martin Storsjö
f920d08953 ismindex: Add an option for outputting files elsewhere than in the current directory
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-03 20:13:27 +03:00
Martin Storsjö
6bc4934b75 ismindex: Allow adding a path prefix to the generated .ism file
This allows storing the .ismv/.isma/.ismc files separately from
the .ism file on a server, without having to manually edit the
.ism file after generating it with the ismindex tool.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-03 20:13:13 +03:00
Carl Eugen Hoyos
d538dd824e avformat: Add image3 demuxers with format autodetection
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 18:14:06 +02:00
James Zern
dea377fcc0 ivfenc: support VP9
libvpx tools accept vp9 ivf files

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 15:46:26 +02:00
Leandro Santiago
4582e1162a avfilter/vf_drawtext: fix resource leak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 15:45:15 +02:00
Michael Niedermayer
a3c479fc49 avformat/avformat: minor grammar improvement
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 13:51:53 +02:00
Michael Niedermayer
44f079b27e Merge commit 'cdab9db2adeec46b3984309c8c651bdd737d2b6b'
* commit 'cdab9db2adeec46b3984309c8c651bdd737d2b6b':
  lavf: document av_dump_format()

Conflicts:
	libavformat/avformat.h

See: 61f96be08a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 13:39:23 +02:00
Michael Niedermayer
982920cfaa Merge commit 'df949b645b12d62bb4da56d629a887c81f67f2e5'
* commit 'df949b645b12d62bb4da56d629a887c81f67f2e5':
  hevc: Use the local context variable when needed

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 13:19:34 +02:00
Michael Niedermayer
33f6ba9c4e avdevice/pulse_audio_dec: clear pa_simple pointer after deallocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 13:05:58 +02:00
Paul B Mahol
b52c26c66f avfilter: add flanger filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-07-03 08:07:42 +00:00
Paul B Mahol
7e8c1f0c38 avfilter/af_aphaser: move wave table generation code into separate file
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-07-03 07:34:11 +00:00
Vittorio Giovara
cdab9db2ad lavf: document av_dump_format() 2014-07-02 23:37:21 -04:00
Luca Barbato
df949b645b hevc: Use the local context variable when needed 2014-07-02 23:30:49 -04:00
Michael Niedermayer
1265247206 avfilter/vf_format: Check pix_fmts before dereferencing it
Fixes CID1224286

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 02:29:49 +02:00
Michael Niedermayer
5ab67340f9 avfilter/avfiltergraph: dont "or" together error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-03 02:29:49 +02:00
Carl Eugen Hoyos
b02cfad7d2 Fix standalone compilation of the wtv muxer. 2014-07-02 23:41:29 +02:00
Michael Niedermayer
ce6a1ff2a1 avcodec/on2avc: Fix out of array access
Fixes CID1206648

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 20:22:12 +02:00
Michael Niedermayer
61815ef85b Merge commit '98569d89638efc325042bd0081e9a02181afdafa'
* commit '98569d89638efc325042bd0081e9a02181afdafa':
  matroskadec: Fix a double negation typo

See: 2c5b92fe90
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 20:18:16 +02:00
Anshul Maheshwari
43d70a776d avcodec: Updated comment for sub param
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 19:47:14 +02:00
Anshul Maheshwari
7d1898ebcc avcodec/dvbsubdec: removed unnecessary null check for subtitle
In refrence to coverity defect 1224278

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 19:47:14 +02:00
Michael Niedermayer
98569d8963 matroskadec: Fix a double negation typo
This typo has existed since this code was added in c16582579.
Newer versions of clang pointed out that this comparison always
was true (since the result of the negation is either 0 or 1, while
AVDISCARD_ALL has the value 48).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-02 20:15:42 +03:00
Stefano Sabatini
462c9ee3ac lavfi/overlay: show incoming frames on debug messages
This is especially useful to debug queue overflow issues.

Ideally we should be able to set the debug message at the
dualinput/framesync level, but they do not have the information related
to the filter context and the inlink, so cannot access much useful
information.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-07-02 18:42:15 +02:00
Michael Niedermayer
5307fa00a4 avcodec/dvdec: remove redundant null check
Fixes CID700682 again

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 16:37:38 +02:00
Michael Niedermayer
d266ecff4b avcodec/bitstream: remove trivial assert
Fixed CID1224273

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 16:25:40 +02:00
James Almer
b5f0eac068 swr: rename swresample_dsp init functions to swri_resample_dsp
The swresample_ prefix is not for internal functions

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 13:18:30 +02:00
Dave Rice
1619a0e2b8 doc/filters: fix typo
Signed-off-by: Dave Rice <dave@dericed.com>
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 13:09:12 +02:00
Michael Niedermayer
4930cd13d6 ffmpeg: check av_opt_set_dict() return
Fixes CID1224275

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 05:53:13 +02:00
Dave Rice
79d3eeb2b7 doc/ffprobe.xsd: fix order and missing elements/attributes
Signed-off-by: Dave Rice <dave@dericed.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 03:55:54 +02:00
James Almer
42a92a240d swr: remove obsolete resample prototypes
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 03:14:45 +02:00
James Almer
23a9edf531 Partially revert "swr: add prototypes for resample dsp functions"
Prototypes are not needed anymore now that the x86 functions don't
include resample_template.c

The DO_RESAMPLE_ONE macro is removed for that same reason as well.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 03:14:36 +02:00
James Almer
c45b7f0d80 x86/swr: add ff_resample_{common, linear}_int16_xop
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 01:11:20 +02:00
James Almer
1a69224f44 x86/swr: add ff_resample_{common, linear}_float_fma
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 01:09:53 +02:00
James Almer
a441a2437b x86: rename dsputil.asm to idctdsp.asm
Its only function is no longer part of dsputil.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 01:08:04 +02:00
Michael Niedermayer
ef7e8425e8 avcodec/mjpegdec: factorize some parts of the pix_fmt_id switch()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 23:28:18 +02:00
Michael Niedermayer
784e1cf76b avcodec/mjpegdec: handle luma upscale detection generically
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 23:26:19 +02:00
Michael Niedermayer
64d98dadc7 avcodec/mjpegdec: set upscale_h/upscale_v using generic code instead of hardcoding a list
Some code is left to handle corner cases

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 22:54:57 +02:00
Michael Niedermayer
7558e55345 avcodec/mjpegdec: Support pix_fmt_id==0x11222200
Fixes: 4858286_300.jpg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 22:12:20 +02:00
Michael Niedermayer
cd417d947e avcodec/mjpegdec: fix width for non chroma in rescaling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 22:09:19 +02:00
Michael Niedermayer
4e09300ffa mjpegdec: Support pix_fmt_id == 0x22112200
Fixes 4780490_300.jpg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 21:47:54 +02:00
Michael Niedermayer
141ee10913 Merge commit '48e6432407a73d5006d84609456e6e0bc3dd8fc4'
* commit '48e6432407a73d5006d84609456e6e0bc3dd8fc4':
  matroska: Factor out mkv_write_stereo_mode

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 20:55:42 +02:00
Michael Niedermayer
ee78b0c252 Merge commit 'b75a1f9892b5b715397edbf837e4d4cda337907b'
* commit 'b75a1f9892b5b715397edbf837e4d4cda337907b':
  matroska: Factor out write_track from mkv_write_tracks

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 20:25:35 +02:00
Michael Niedermayer
8365287e61 Merge commit 'f1f6156b3fc9eb77b439d031ba18974d80b8341e'
* commit 'f1f6156b3fc9eb77b439d031ba18974d80b8341e':
  matroska: K&R formatting cosmetics

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 19:58:57 +02:00
Michael Niedermayer
06e5d28e33 Merge commit 'd0449e754553b0c110b6cd75f6725b82144fbd2a'
* commit 'd0449e754553b0c110b6cd75f6725b82144fbd2a':
  vaapi: Update idct_permutation location after dsputil/idctdsp split

See: 581b5f0b9b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 19:29:53 +02:00
James Almer
dd2c9034b1 x86/swr: convert resample_{common, linear}_double_sse2 to yasm
Signed-off-by: James Almer <jamrial@gmail.com>

312531 -> 311528 dezicycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 17:57:36 +02:00
Luca Barbato
48e6432407 matroska: Factor out mkv_write_stereo_mode 2014-07-01 16:43:20 +02:00
Luca Barbato
b75a1f9892 matroska: Factor out write_track from mkv_write_tracks 2014-07-01 16:43:01 +02:00
Luca Barbato
f1f6156b3f matroska: K&R formatting cosmetics 2014-07-01 16:42:32 +02:00
Diego Biurrun
d0449e7545 vaapi: Update idct_permutation location after dsputil/idctdsp split 2014-07-01 07:36:22 -07:00
Michael Niedermayer
fb318def5d Merge commit '20f95f21f9b9595608ba668a6eca78f2d508be67'
* commit '20f95f21f9b9595608ba668a6eca78f2d508be67':
  mov: Support default-base-is-moof.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 16:31:57 +02:00
Michael Niedermayer
8d0c7031a8 Merge commit '79793f833784121d574454af4871866576c0749d'
* commit '79793f833784121d574454af4871866576c0749d':
  Update Fiona's name in copyright statements.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 15:43:40 +02:00
Michael Niedermayer
581b5f0b9b Merge commit 'e3fcb14347466095839c2a3c47ebecff02da891e'
* commit 'e3fcb14347466095839c2a3c47ebecff02da891e':
  dsputil: Split off IDCT bits into their own context

Conflicts:
	configure
	libavcodec/aic.c
	libavcodec/arm/Makefile
	libavcodec/arm/dsputil_init_arm.c
	libavcodec/arm/dsputil_init_armv6.c
	libavcodec/asvdec.c
	libavcodec/dnxhdenc.c
	libavcodec/dsputil.c
	libavcodec/dvdec.c
	libavcodec/dxva2_mpeg2.c
	libavcodec/intrax8.c
	libavcodec/mdec.c
	libavcodec/mjpegdec.c
	libavcodec/mjpegenc_common.h
	libavcodec/mpegvideo.c
	libavcodec/ppc/dsputil_altivec.h
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/ppc/idctdsp.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_mmx.c
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 15:22:11 +02:00
Yusuke Nakamura
20f95f21f9 mov: Support default-base-is-moof.
default-base-is-moof shall be set to track fragments compatible with DASH
Media Segments. So, this is a fundamental support for ISOBMFF ver. DASH.
This is meaningful only when base-data-offset-present is absent and two or
more track fragments are present in a movie fragment.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-01 14:36:06 +03:00
Michael Niedermayer
909f53f2b2 Merge commit 'adcb8392c9b185fd8a91a95fa256d15ab1432a30'
* commit 'adcb8392c9b185fd8a91a95fa256d15ab1432a30':
  mjpeg: Split off bits shared by MJPEG and LJPEG encoders

Conflicts:
	libavcodec/mjpegenc.c
	libavcodec/mjpegenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 13:33:11 +02:00
Diego Biurrun
79793f8337 Update Fiona's name in copyright statements. 2014-07-01 03:26:51 -07:00
Michael Niedermayer
a97137e948 avfilter/f_ebur128: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 03:50:53 +02:00
Michael Niedermayer
7faa7d3d42 avcodec/hevc: Use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 03:50:17 +02:00
Michael Niedermayer
80da227c66 cmdutils_opencl: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 03:49:36 +02:00
Muhammad Faiz
46563af79c avfilter/showcqt: adding freetype support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 21:53:14 +02:00
Michael Niedermayer
9efa7f82ce avdevice/xv: fix missing {
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 21:32:19 +02:00
Ronald S. Bultje
847bb638c0 swr: convert resample_common/linear_int16_mmx2/sse2 to yasm.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 20:11:50 +02:00
Lukasz Marek
e5c806fd67 lavd/xv: handle delete window message
User may close X11 window by close button on tray.
FFmpeg leaves in graceless way.
This commit detects it and return EPIPE error.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 19:20:32 +02:00
Michael Niedermayer
e429d6c197 avcodec/pgssubdec: remove unused variables
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 18:24:37 +02:00
Michael Niedermayer
89bcb77726 avcodec/pgssubdec: Check input buffer size in parse_presentation_segment()
Might fix overread, no testcase known though.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 18:23:08 +02:00
Michael Niedermayer
ae9a73de2a Merge commit '253d0be6a1ecc343d29ff8e1df0ddf961ab9c772'
* commit '253d0be6a1ecc343d29ff8e1df0ddf961ab9c772':
  pgssubdec: handle more complex PGS scenarios

Conflicts:
	libavcodec/pgssubdec.c

Some of this has been split out and commited in cleanly split patches immedeately
before this merge

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 18:05:39 +02:00
John Stebbins
0c911c8fbc avcodec/pgssubdec: fix end display time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 17:33:53 +02:00
John Stebbins
066a4819cc avcodec/pgssubdec: Bail out of decode_rle() if error and AV_EF_EXPLODE is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 17:31:38 +02:00
John Stebbins
fc7da418ff avcodec/pgssubdec: better error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 17:29:18 +02:00
John Stebbins
5c019ec91d avcodec/pgssubdec: Pass AVSubtitleRect to decode_rle()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 17:25:16 +02:00
John Stebbins
4701f7676c avcodec/pgssubdec: split out flush_cache()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 17:24:47 +02:00
Diego Biurrun
e3fcb14347 dsputil: Split off IDCT bits into their own context 2014-06-30 07:58:46 -07:00
Diego Biurrun
adcb8392c9 mjpeg: Split off bits shared by MJPEG and LJPEG encoders
This obviates a dependency of the LJPEG encoder on mpegvideo.
2014-06-30 07:53:40 -07:00
John Stebbins
ca7f2a7372 avcodec/pgssubdec: do not fail when part of the packet is faulty unless AV_EF_EXPLODE is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 16:46:25 +02:00
John Stebbins
376f353e3d avcodec/pgssubdec: rename PICTURE_SEGMENT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 16:39:41 +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
John Stebbins
253d0be6a1 pgssubdec: handle more complex PGS scenarios
Add ability to handle multiple palettes and objects simultaneously.
Each simultaneous object is given its own AVSubtitleRect.
Note that there can be up to 64 currently valid objects, but only
2 at any one time can be "presented".

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-30 12:18:58 +02:00
Michael Niedermayer
f054d1e7ae avformat/hdsenc: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 05:08:33 +02:00
Michael Niedermayer
ca384d708b avformat/rtsp: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 05:08:16 +02:00
Michael Niedermayer
418e5768c6 swresample/resample_template: move division out of loop for float/double swri_resample_linear()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 04:30:10 +02:00
Michael Niedermayer
86576129bd Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  configure: enable lto for icl compiler.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 22:26:46 +02:00
Michael Niedermayer
c5a405c4f0 swresample/resample_template: flip order of operations in swri_resample_linear() for 32bit
Fixes integer overflow

Found-by: BBB
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 22:19:57 +02:00
Matthew Oliver
09adb1dd36 configure: enable lto for icl compiler. 2014-06-29 19:24:12 +02:00
Michael Niedermayer
7f5d75f95b cmdutils: ignore sws_flags if swscale is not enabled
This avoids some failures during fate when swscale is disabled

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 17:27:23 +02:00
Michael Niedermayer
3f42434600 avcodec/huffyuvencdsp: try to fix misaligned access
Should fix fate on MIPS

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 16:26:38 +02:00
Michael Niedermayer
cddbf95c5f doc/examples/resampling_audio: use av_freep() for saftey
also its better in examples to use the safer functions.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 16:26:38 +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
Michael Niedermayer
f02a440814 ffmpeg_opt: route -ab to -b:a
Fixes combining -ab with -target pal-dvd
Fixes Ticket3736

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 02:47:49 +02:00
Michael Niedermayer
525a165d99 avfilter/vf_pullup: workaround bug in gcc 4.4.3 on ARM
The gcc version affected is very old and unmaintained AFAIK thus i made no
attempt to report this to the gcc developers.

The workaround is pushed as it may still affect users and does affect one
fate client

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 00:52:42 +02:00
Michael Niedermayer
4d3072ada3 doc/examples/muxing: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 21:44:38 +02:00
Michael Niedermayer
01983e50c0 Merge commit '7b0c7c9163fe3dd0081696befde28617119d2590'
* commit '7b0c7c9163fe3dd0081696befde28617119d2590':
  arm: Detect 32 bit cpu features on ARMv8 when running on a 64 bit kernel

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 21:31:18 +02:00
Michael Niedermayer
e6aba1be4c avformat/options_table: Fix flush_packet flag flags
Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 21:24:15 +02:00
Michael Niedermayer
c599c211fb avformat/mux: fix flush_packets flag with flushing buffers
Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 21:23:32 +02:00
Martin Storsjö
7b0c7c9163 arm: Detect 32 bit cpu features on ARMv8 when running on a 64 bit kernel
When running on a 64 bit kernel, /proc/cpuinfo lists different
optional features than on 32 bit kernels (because some of them
are mandatory in the 64 bit implemenations).

The kernel does list the old features properly if they are queried
via /proc/self/auxv though - however this file is not always readable
(e.g. on most android systems). The getauxval function could also
provide the same info as /proc/self/auxv even if this file isn't
readable, but this function is not always available (and thus would
need to be loaded with dlsym for compatibility with older android
versions).

The android cpufeatures library does this slightly differently,
by assuming that these are available if the "CPU architecture"
line is >= 8, see [1] for details.

It has been suggested to include the old, non-optional features in
/proc/cpuinfo as well, but that suggested patch never was merged.
See [2] for the discussion around this suggestion.

[1] https://android-review.googlesource.com/91380
[2] http://marc.info/?l=linux-arm-kernel&m=139087240101974

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-28 22:16:59 +03:00
Yao Wang
5464916677 avcodec/cavs: improve conformance with rm52j reference decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 19:53:41 +02:00
Michael Niedermayer
f9f8491ddf avcodec/cavs: make cavs_chroma_qp non static
The table is needed by multiple files

Reverts part of ef07ac1e12

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 19:08:39 +02:00
Ronald S. Bultje
faa1471ffc swr: rewrite resample_common/linear_float_sse/avx in yasm.
Linear interpolation goes from 63 (llvm) or 58 (gcc) to 48 (yasm)
cycles/sample on 64bit, or from 66 (llvm/gcc) to 52 (yasm) cycles/
sample on 32bit. Bon-linear goes from 43 (llvm) or 38 (gcc) to
32 (yasm) cycles/sample on 64bit, or from 46 (llvm) or 44 (gcc) to
38 (yasm) cycles/sample on 32bit (all testing on OSX 10.9.2, llvm
5.1 and gcc 4.8/9).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 17:06:47 +02:00
Michael Niedermayer
a348f4befe avfilter/x86/vf_pullup: fix "invalid combination of opcode and operands" with nasm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 16:06:00 +02:00
Ronald S. Bultje
ddb7b4435a swr: move dst_size == 0 handling outside DSP function.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 15:30:01 +02:00
Michael Niedermayer
cc92372722 doc/APIchanges: lengthening a hash to make it non ambigous
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 13:11:32 +02:00
Michael Niedermayer
7448afc52b APIchanges: fillin some missing data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 13:10:23 +02:00
Michael Niedermayer
823ea19a74 Merge commit '39975acc699c83af0a87a7318c0f41e189142938'
* commit '39975acc699c83af0a87a7318c0f41e189142938':
  rtpenc_jpeg: check for color_range too

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 12:40:01 +02:00
Michael Niedermayer
e925a82e24 Merge commit 'f134b5ec53b4cb51cb69bf0c64de87687ea72b12'
* commit 'f134b5ec53b4cb51cb69bf0c64de87687ea72b12':
  apichanges: fill in changes for lavu 51.19 and 51.20

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 12:33:07 +02:00
Vittorio Giovara
39975acc69 rtpenc_jpeg: check for color_range too 2014-06-28 01:51:14 -04:00
Vittorio Giovara
f134b5ec53 apichanges: fill in changes for lavu 51.19 and 51.20 2014-06-28 01:50:17 -04:00
Michael Niedermayer
504475f38e avcodec/mpegvideo: dont overwrite emu_edge buffer
Fixes vsynth3 fate failures on mips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 06:28:21 +02:00
Michael Niedermayer
21bfed5b06 avcodec/mpegvideo_enc: reduce space between blocks in emu_edge in encode_mb_internal 2014-06-28 06:27:15 +02:00
Michael Niedermayer
5bca5f87d1 Revert "x86/videodsp: add emulated_edge_mc_mmxext"
The commit causes minor out of array reads and was mainly intended for
future optimizations which turned out not to be meassurably faster.
Itself it was just 1 cpu cycle faster

Approved-by: jamrial

This reverts commit 057d2704e7.
2014-06-28 05:39:07 +02:00
Michael Niedermayer
4d1fa38d98 avcodec/mpeg12dec: Limit progressive_seq reinitilaization to where the resolution changes
Fixes Ticket3743

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 00:16:09 +02:00
Michael Niedermayer
8c22bea574 avcodec/vp8: Fix multiple ff_thread_finish_setup() calls
Fixes Ticket3725

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 22:45:43 +02:00
Michael Niedermayer
1fd0e9a56d Merge commit '5dd8c08fd5e4c04d7a08d8934f0098a8a4a35c28'
* commit '5dd8c08fd5e4c04d7a08d8934f0098a8a4a35c28':
  mpeg: Change ff_convert_matrix() to take an MpegEncContext parameter

Conflicts:
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 19:24:44 +02:00
Michael Niedermayer
3ac5114530 Merge commit 'e63b818dbe6060b606ae10eb184859f8b97d2353'
* commit 'e63b818dbe6060b606ae10eb184859f8b97d2353':
  dv: Properly split decoder and encoder initialization

Conflicts:
	libavcodec/dv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 19:13:34 +02:00
Sergey
6d2df3c00a ffmpeg: fix deadlock regression in threading error handing
Commit fc9c857c introduced deadlock regression when processing too many inputs:
  ffmpeg $(seq -f " -f lavfi -i aevalsrc=0:d=%.0f" 70) -vf concat=n=70:v=0:a=1 -f null -
Happens for different number of inputs, depending on available memory size,
overcommit settings, ulimits, etc. Easily noticeable for 32-bit builds,
that exhaust address space allocating 8-10 MB stack for each thread.
Earlier ffmpeg versions exited with unhelpful "Conversion failed!" message.

This patch fixes both problems: it frees the queue to prevent deadlock
and adds a meaningful error message if pthread_create() fails.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 17:45:38 +02:00
Anshul Maheshwari
263932c084 avcodec/dvbsubdec: fix ignoring blank frame by updating got_output
fix ticket 3737

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 14:35:58 +02:00
Diego Biurrun
5dd8c08fd5 mpeg: Change ff_convert_matrix() to take an MpegEncContext parameter
This will come in handy during dsputil splitting.
2014-06-27 05:17:11 -07:00
Diego Biurrun
e63b818dbe dv: Properly split decoder and encoder initialization 2014-06-27 05:03:06 -07:00
James Almer
5fef4afb85 configure: add missing audiodsp dependency for ra144
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 13:37:10 +02:00
James Almer
607c88126c configure: fix g729 decoder dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 13:36:50 +02:00
James Almer
a6b8aef0dc configure: remove duplicate ape_decoder_select line
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 13:36:37 +02:00
Michael Niedermayer
b96c9513f3 avcodec/snow: factor ff_snow_get_buffer() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 04:49:09 +02:00
Gaullier Nicolas
134beb9e02 avformat/mxfenc: rename very recently added option to set/force channelcount in MXF D-10
Approved-by: Tomas Härdin <tomas.hardin@codemill.se>
Approved-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 03:29:51 +02:00
Michael Niedermayer
09a7a4704e Merge commit 'd2869aea0494d3a20d53d5034cd41dbb488eb133'
* commit 'd2869aea0494d3a20d53d5034cd41dbb488eb133':
  dsputil: Move MMX/SSE2-optimized IDCT bits to the x86 subdirectory

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 03:05:33 +02:00
Michael Niedermayer
5a636383db Merge commit '24f45c16224d4c5d482e928676714766ffdda4fc'
* commit '24f45c16224d4c5d482e928676714766ffdda4fc':
  fate: Add dependencies for dct/fft/mdct/rdft tests

Conflicts:
	libavcodec/fft-test.c
	tests/fate/fft.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 02:36:45 +02:00
Michael Niedermayer
357168bcf6 Merge commit '5ec6d152e26c570c0a16ec72c1f354db95708179'
* commit '5ec6d152e26c570c0a16ec72c1f354db95708179':
  indeo4: B-frames decoding

Conflicts:
	libavcodec/ivi_common.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 02:05:22 +02:00
Diego Biurrun
d2869aea04 dsputil: Move MMX/SSE2-optimized IDCT bits to the x86 subdirectory 2014-06-26 16:15:07 -07:00
Michael Niedermayer
826726b83f Merge commit '422e14f721c22cf9c19a8e7aae051ba9d559f6b6'
* commit '422e14f721c22cf9c19a8e7aae051ba9d559f6b6':
  indeo2: rename stride to pitch for consistency with other Indeo decoders

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 01:11:59 +02:00
Diego Biurrun
24f45c1622 fate: Add dependencies for dct/fft/mdct/rdft tests 2014-06-26 16:03:21 -07:00
Michael Niedermayer
ad081e4def Merge commit 'a5864e9a253143437471dba61a533e7fa9acec1c'
* commit 'a5864e9a253143437471dba61a533e7fa9acec1c':
  output example: free the muxing format context properly

See: 9b211c43dc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 01:02:40 +02:00
Michael Niedermayer
8469c73576 Merge commit '182d3f8221c23716ea4eafa460bdb94968f71f26'
* commit '182d3f8221c23716ea4eafa460bdb94968f71f26':
  output example: rewrite encoding logic

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 00:57:04 +02:00
Michael Niedermayer
9a2850c26a Merge commit 'a7fcd4122b19b0f934020f4e261d0c44c4c32e11'
* commit 'a7fcd4122b19b0f934020f4e261d0c44c4c32e11':
  output example: store the scaling context in the stream context

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-27 00:16:34 +02:00
Michael Niedermayer
877716a79c Merge commit '6a927d7aaf5625e83a674072913b9e292a303fd1'
* commit '6a927d7aaf5625e83a674072913b9e292a303fd1':
  output example: use a macro instead of a static variable

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 23:58:00 +02:00
Michael Niedermayer
5a55d5e445 Merge commit '63fd0d866c8300a8f251a15b1535e9ce40a407fb'
* commit '63fd0d866c8300a8f251a15b1535e9ce40a407fb':
  output example: allocate the audio frame only once

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 23:22:08 +02:00
Michael Niedermayer
b9bfd888e5 Merge commit 'edd5f957646dcbf1bb55718bc7bf1e5481c25bcb'
* commit 'edd5f957646dcbf1bb55718bc7bf1e5481c25bcb':
  output example: use OutputStream for audio streams as well

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 23:01:52 +02:00
Michael Niedermayer
11991a7d90 Merge commit '5e7b125b6ae36893dfd9cb5661c99b67363cbb38'
* commit '5e7b125b6ae36893dfd9cb5661c99b67363cbb38':
  output example: use the new AVFrame API to allocate audio frames

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 22:46:11 +02:00
Michael Niedermayer
a1c4635558 Merge commit 'ac85f631c9a9cc59aaca1c8dd6894fb1f701c594'
* commit 'ac85f631c9a9cc59aaca1c8dd6894fb1f701c594':
  output example: set output channel layout

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 22:13:46 +02:00
Michael Niedermayer
8eb1174a9e Merge commit '294daf71a7a1303b5ddd3cbefebed3b732d610f3'
* commit '294daf71a7a1303b5ddd3cbefebed3b732d610f3':
  output example: use a struct to bundle the video stream variables together

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 21:55:11 +02:00
Michael Niedermayer
c9083d85df Merge commit '38d044429dabcd28928693240e955c6d4430cca9'
* commit '38d044429dabcd28928693240e955c6d4430cca9':
  output example: use the new AVFrame API for allocating the video frame

Conflicts:
	doc/examples/muxing.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 21:30:37 +02:00
Michael Niedermayer
af75a85599 Merge commit '3f4edf012593c73941caa0ef9b292da00225c3df'
* commit '3f4edf012593c73941caa0ef9b292da00225c3df':
  dump_stream: print the timebase as is, do not reduce it

See: 75511c293a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 21:03:21 +02:00
Michael Niedermayer
a9f7972844 Merge commit '1b04eb20f7e3f0a71f73ba91efcc3d60a435e443'
* commit '1b04eb20f7e3f0a71f73ba91efcc3d60a435e443':
  lavc: do not allocate edges in the default get_buffer2()

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 20:56:23 +02:00
Michael Niedermayer
e059ac59ef avcodec/snow: ensure the buffers have allocated edges
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 20:52:06 +02:00
Michael Niedermayer
932be89c26 Merge commit 'a0e1c3517a656dd32293f054a339e0ac73328138'
* commit 'a0e1c3517a656dd32293f054a339e0ac73328138':
  hevc: remove unused array min_cb_addr_zs

Conflicts:
	libavcodec/hevc_ps.c

See: f7f1f4c7ce
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 20:10:01 +02:00
Michael Niedermayer
acc7cf70dc Merge commit '9b60d9197970658e91daf4b586397f450de9af69'
* commit '9b60d9197970658e91daf4b586397f450de9af69':
  hevc: Allow out of bound values for num_reorder_pics

Conflicts:
	libavcodec/hevc_ps.c

See: bc21260e64
See: ab296c7a9f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 19:58:25 +02:00
Dirk Ausserhaus
5ec6d152e2 indeo4: B-frames decoding
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-26 19:17:33 +02:00
Kostya Shishkov
422e14f721 indeo2: rename stride to pitch for consistency with other Indeo decoders 2014-06-26 19:16:08 +02:00
James Almer
057d2704e7 x86/videodsp: add emulated_edge_mc_mmxext
This also changes hfix8_mmx and above to use mmx regs instead of
gprs, and makes emulated_edge_mc_sse and emulated_edge_mc_sse2 use
mmxext hfix and hvar functions instead of mmx where possible.

This is mostly in preparation for an ssse3 version.

Signed-off-by: James Almer <jamrial@gmail.com>

code is about 1 cpu cycle faster approximately

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 17:58:57 +02:00
Anton Khirnov
a5864e9a25 output example: free the muxing format context properly 2014-06-26 16:08:06 +02:00
Anton Khirnov
182d3f8221 output example: rewrite encoding logic
Properly generate pts for the frames sent to the encoder, avoid
using private and deprecated AVStream.pts.
2014-06-26 16:07:34 +02:00
Anton Khirnov
a7fcd4122b output example: store the scaling context in the stream context 2014-06-26 16:07:29 +02:00
Anton Khirnov
6a927d7aaf output example: use a macro instead of a static variable 2014-06-26 16:07:23 +02:00
Anton Khirnov
63fd0d866c output example: allocate the audio frame only once 2014-06-26 16:07:08 +02:00
Anton Khirnov
edd5f95764 output example: use OutputStream for audio streams as well 2014-06-26 16:07:02 +02:00
Anton Khirnov
5e7b125b6a output example: use the new AVFrame API to allocate audio frames 2014-06-26 16:06:54 +02:00
Anton Khirnov
ac85f631c9 output example: set output channel layout 2014-06-26 16:06:48 +02:00
Anton Khirnov
294daf71a7 output example: use a struct to bundle the video stream variables together 2014-06-26 16:05:24 +02:00
Anton Khirnov
38d044429d output example: use the new AVFrame API for allocating the video frame 2014-06-26 16:05:19 +02:00
Anton Khirnov
3f4edf0125 dump_stream: print the timebase as is, do not reduce it
It makes more sense to print the timebase exactly as it is set. Also,
this avoids a divide by zero when av_dump_format() is called on a format
context before writing the header.
2014-06-26 16:04:22 +02:00
Anton Khirnov
1b04eb20f7 lavc: do not allocate edges in the default get_buffer2() 2014-06-26 16:02:12 +02:00
Gildas Cocherel
a0e1c3517a hevc: remove unused array min_cb_addr_zs
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-26 15:51:54 +02:00
Yao Wang
e18b48c6fd avcodec/cavs: fix B_SUB_DIRECT col-MB is Intra MB case.
in this case current MB size is forced to 16x16 (AVS standard section 9.9.1)

Signed-off-by: Yao Wang <jiayaowang@gmail.com>
Fixes Ticket 1901

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 14:51:40 +02:00
Kieran Kunhya
9b60d91979 hevc: Allow out of bound values for num_reorder_pics
This fixes decoding for a sample that cannot be shared

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-26 07:14:57 +02:00
Michael Niedermayer
7e8fdf05e0 Merge commit '593d2326ef985cdffe413df629419938f7b07c4c'
* commit '593d2326ef985cdffe413df629419938f7b07c4c':
  dv: Replace a magic number by sizeof()

Conflicts:
	libavcodec/dv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 03:16:53 +02:00
Michael Niedermayer
11ba0c8207 Merge commit '5ab03e41e553452118113d0c224fa32b325e45e5'
* commit '5ab03e41e553452118113d0c224fa32b325e45e5':
  x86: h264dsp: Fix link failure with optimizations disabled

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 02:58:59 +02:00
Gaullier Nicolas
3eae34d50f avformat/mxfenc: set/force channelcount in MXF D-10
There are interoperability issues with D-10 related to the channelcount property in the generic sound essence descriptor.

On one side, SMPTE 386M requires channel count to be 4 or 8, other values being prohibited.
The most widespread value is 8, which seems straightforward as it is the actual size of the allocated structure/disk space.
At the end, it appears that some vendors or workflows do require this descriptor to be 8, and otherwise just "fail".

On the other side, at least AVID and ffmpeg do write/set the channel count to the exact number of channels really "used",
usually 2 or 4, or any other value. And on the decoding side, ffmpeg (for example) make use of the channel count for probing
and only expose this limited number of audio streams
(which make sense but has strong impact on ffmpeg command line usage, output, and downstream workflow).

At the end, I find it pretty usefull to simply give ffmpeg the ability to force/set the channel count to any value the user wants.
(there are turnaround using complex filters, pans, amerge etc., but it is quite boring and requires the command line to be adapted to the input file properties)

Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-26 01:01:22 +02:00
Diego Biurrun
593d2326ef dv: Replace a magic number by sizeof() 2014-06-25 15:32:58 -07:00
Diego Biurrun
5ab03e41e5 x86: h264dsp: Fix link failure with optimizations disabled
With optimzations disabled compilers have trouble doing dead code
elimination on 'if (foo && 0)' expressions, while 'if (0 && foo)'
still works, so use the latter to avoid problems.

Bug-Id: 707
2014-06-25 15:24:51 -07:00
Michael Niedermayer
b8255a4c70 avfilter/x86/vf_pullup: fix old typo
This makes C and MMX match, no change to fate as the differences where
apparently not sufficient to show up in fate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-25 18:22:48 +02:00
Michael Niedermayer
6dffc8f5aa avfilter/vf_pullup: use ptrdiff_t as stride argument for dsp functions
This should avoid issues on x86_64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-25 18:22:31 +02:00
Michael Niedermayer
1ace0ca60f avcodec/x86/hevc_idct: fix function name in comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-25 18:22:25 +02:00
plepere
9ba6b17add avcodec/x86/hevc_idct: fix number of sse registers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-25 14:59:23 +02:00
plepere
942e22c651 avcodec/x86/hevc: add avx2 dc idct
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-25 14:49:44 +02:00
Lukasz Marek
a30f1b15c7 doc/build_system: document examples and config targets
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-25 01:00:05 +02:00
Michael Niedermayer
0f59bba9cb Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: decrease audio_diff_threshold
  ffplay: decrease max audio callbacks per second
  ffplay: calculate SDL audio buffer size based on sample rate
  ffplay: pass simple integers to calculate_display_rect and set_default_window_size
  ffplay: eliminate pictq_prev_picture

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 22:26:02 +02:00
Michael Niedermayer
50daffead2 Merge commit '2deb614272e6faad8802c5341971d08c7272f74d'
* commit '2deb614272e6faad8802c5341971d08c7272f74d':
  mjpegdec: Properly set the context colorspace info

See: c11043aca7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 22:03:46 +02:00
Marton Balint
e281671e21 ffplay: decrease audio_diff_threshold
Since audio clock calculations are more accurate now, it is safe to decrease
the sync treshold to compensate the larger buffers caused by less frequent
audio callbacks.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
371f02388c ffplay: decrease max audio callbacks per second
Too many audio callbacks per second can cause buffer underruns especially under
load. As now we take into accound the elapsed time after an audio callback when
determining current audio clock, it is not that important to use small buffer
sizes and frequent audio callbacks, so lets remove the comment.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
1ca5c1784b ffplay: calculate SDL audio buffer size based on sample rate
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
ba800defa7 ffplay: pass simple integers to calculate_display_rect and set_default_window_size
No change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:21 +02:00
Marton Balint
9dd97aa3d3 ffplay: eliminate pictq_prev_picture
Instead of directly rolling back the frame queue, keep the last displayed
picture in the queue and use a boolean variable to keep track if it is
displayed or not. This makes the code cleaner because it removes the
complicated logic in pictq_prev_picture.

There should be no change in functionality.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-06-24 21:59:20 +02:00
Michael Niedermayer
f364101144 avfilter/vf_deshake: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 21:43:40 +02:00
Michael Niedermayer
0ed110133f avfilter/vf_colormatrix: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 21:43:40 +02:00
Derek Buitenhuis
2deb614272 mjpegdec: Properly set the context colorspace info
The JPEG spec requires it to be this.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-24 20:42:40 +01:00
Derek Buitenhuis
c11043aca7 mjpegdec: Properly set the context colorspace info
The JPEG spec requires it to be this.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-24 20:40:44 +01:00
Michael Niedermayer
74bd039f8c avformat/nutdec: improve probe speed by 30%
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 18:40:40 +02:00
Michael Niedermayer
501158c682 avformat/wavenc: simplify malloc failure checking
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:51:40 +02:00
Michael Niedermayer
3bd0221bc1 avformat/wavenc: more specific error return for "Writing 16 bit peak for 8 bit audio"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:50:38 +02:00
Michael Niedermayer
d34d3304a8 avformat/wavenc: do not hardcode array size in memset and other functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:38:47 +02:00
Michael Niedermayer
2e1e10a6bb avformat/wavenc: use the bitexact flag from avformat instead of the one from avcodec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:32:27 +02:00
gcocherel
ba70563d55 hevc/pps: optimized size of min_tb_addr_zs
reduce computation too
(cherry picked from commit 39c4d45c7788081c45c7fae51b7c5d0bcbaece9d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:11:40 +02:00
gcocherel
f7f1f4c7ce avcodec/hevc_ps: remove min_cb_addr_zs
(cherry picked from commit ff7926d5092f9d4158108963e977e8c992322ba4)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:06:42 +02:00
Georg Lippitsch
fd504f7c6f Peak Envelope Chunk encoder: Indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 04:37:02 +02:00
Georg Lippitsch
e3b03da772 EBU Tech 3285 - Supplement 3 - Peak Envelope Chunk encoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 04:30:29 +02:00
Michael Niedermayer
723550d3ca avfilter/vf_hqx: optimize table init
5389024880 -> 1389386610 dezicycles

This surely can be optimized more, i just didnt want to cause a slowdown
when trying to make the fate test bitexact.
Further optimization left to ubitux

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 03:16:53 +02:00
Michael Niedermayer
236aa4de2a avfilter/vf_hqx: avoid floats
this likely fixes fate failures

2748170880 -> 5389024880 dezicycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 02:40:50 +02:00
Michael Niedermayer
eab2509f8c avcodec/x86/h264_qpel_10bit: locally define pb_0
somehow old llvm-gcc manages to ignore the alignment from ff_pb_0 causing a crash on freebsd

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 02:13:43 +02:00
Michael Niedermayer
47048aa30b avcodec/h264: do not leave ret random on minor failures, causing major failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 01:54:39 +02:00
Michael Niedermayer
82e4340f1e Merge commit '772d150a6e82542c06b0c251e73dd299d98d1027'
* commit '772d150a6e82542c06b0c251e73dd299d98d1027':
  h264: error out from decode_nal_units() when AV_EF_EXPLODE is set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 01:46:30 +02:00
Michael Niedermayer
97511bc7cf Merge commit '10306e9c5fcc28bd9310a9b38f21540e9e1433e9'
* commit '10306e9c5fcc28bd9310a9b38f21540e9e1433e9':
  jpeg2000: fix dereferencing invalid pointers during cleanup

Conflicts:
	libavcodec/jpeg2000.c

See: 09927f3eaa
See: 912ce9dd20
See: 9e477a3770
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 01:45:42 +02:00
Michael Niedermayer
faa1d4b134 Merge commit 'ab72eda15e98197cf148abc08574206cfde0d9b0'
* commit 'ab72eda15e98197cf148abc08574206cfde0d9b0':
  pixfmt: mark the reserved values

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 01:09:38 +02:00
Vittorio Giovara
772d150a6e h264: error out from decode_nal_units() when AV_EF_EXPLODE is set
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-06-23 18:58:57 -04:00
Vittorio Giovara
10306e9c5f jpeg2000: fix dereferencing invalid pointers during cleanup
CC: libav-stable@libav.org
Found-by: Laurent Butti <laurentb@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-06-23 18:58:29 -04:00
Tobias Rapp
f6e772f9b5 ffprobe: add color_range and color_space to stream output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 00:35:16 +02:00
Michael Niedermayer
9326caa5fa avutil/lzo: allow selecting the compression function in the test code 2014-06-24 00:32:34 +02:00
Michael Niedermayer
49bf712a89 libavcodec/wmalosslessdec: add missing emms
prevent failure with mmx2
should fix fate failure on freebsd mmx2 client

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 23:45:20 +02:00
Vittorio Giovara
ab72eda15e pixfmt: mark the reserved values 2014-06-23 17:39:03 -04:00
James Almer
476bd3c7e4 x86/dsputil: move put_signed_pixels_clamped out of bswapdsp.asm
It's still a dsputil function

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 22:11:18 +02:00
Michael Niedermayer
d7463c6813 Merge commit 'fab9df63a3156ffe1f9490aafaea41e03ef60ddf'
* commit 'fab9df63a3156ffe1f9490aafaea41e03ef60ddf':
  dsputil: Split off global motion compensation bits into a separate context

Conflicts:
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/ppc/dsputil_altivec.h
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_mmx.c
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 21:10:10 +02:00
Michael Niedermayer
32cf26cc6a Merge commit 'f23d26a6864128001b03876b0b92fffe131f2060'
* commit 'f23d26a6864128001b03876b0b92fffe131f2060':
  h264: avoid using uninitialized memory in NEON chroma mc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 20:35:33 +02:00
Diego Biurrun
fab9df63a3 dsputil: Split off global motion compensation bits into a separate context 2014-06-23 09:58:17 -07:00
Janne Grunau
f23d26a686 h264: avoid using uninitialized memory in NEON chroma mc
Adapt commit 982b596ea6 for the arm and
aarch64 NEON asm. 5-10% faster on Cortex-A9.
2014-06-23 16:32:15 +02:00
Michael Niedermayer
957457a044 Merge commit 'ccda51b14c0fcae2fad73a24872dce75a7964996'
* commit 'ccda51b14c0fcae2fad73a24872dce75a7964996':
  lzo: Handle integer overflow

Conflicts:
	libavutil/lzo.c

This is basically not merging changes due to this being fixed differently
in FFmpeg

See: d6af26c55c
See: cf2b7c01f8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 14:52:54 +02:00
Michael Niedermayer
cf2b7c01f8 avutil/lzo: add asserts to be double sure against overflows
These asserts cannot fail since d6af26c55c

Based-on: ccda51b14c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 14:51:39 +02:00
Michael Niedermayer
d6af26c55c avutil/lzo: Fix integer overflow
Embargoed-till: 2014-06-27 requested by researcher, but embargo broken by libav today (git and mailing list)

Fixes: LMS-2014-06-16-4
Found-by: "Don A. Bailey" <donb@securitymouse.com>
See: ccda51b14c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 14:18:20 +02:00
Michael Niedermayer
b222e0773c Merge commit 'e121ac634ba324a318f4a97f978dcfb48da6b735'
* commit 'e121ac634ba324a318f4a97f978dcfb48da6b735':
  indeo45: use is_indeo4 context flag instead of checking codec ID

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 13:56:52 +02: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
Luca Barbato
ccda51b14c lzo: Handle integer overflow
get_len can overflow for specially crafted payload.

Reported-By: Don A. Baley <donb@securitymouse.com>
CC: libav-stable@libav.org
2014-06-23 10:20:57 +02:00
Dirk Ausserhaus
e121ac634b indeo45: use is_indeo4 context flag instead of checking codec ID
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-23 09:29:39 +02:00
Michael Niedermayer
56afbe8dbc Merge commit '7b9ef8d701c319c26f7d0664fe977e176764c74e'
* commit '7b9ef8d701c319c26f7d0664fe977e176764c74e':
  mpeg: Split error resilience bits off into a separate file

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 03:48:30 +02:00
Michael Niedermayer
ca350378de Merge commit 'f2f2e7627f0c878d13275af5d166ec5932665e28'
* commit 'f2f2e7627f0c878d13275af5d166ec5932665e28':
  Check mp3 header before calling avpriv_mpegaudio_decode_header().

Conflicts:
	libavformat/mp3enc.c

See: 2dd0da787c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 03:34:13 +02:00
Michael Niedermayer
2bcf34a0ef Merge commit '44127546b0a81dc9dd6190739a62d48f0044c6f3'
* commit '44127546b0a81dc9dd6190739a62d48f0044c6f3':
  Check if an mp3 header is using a reserved sample rate.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 03:25:04 +02:00
Diego Biurrun
c67b449beb dsputil: Split bswap*_buf() off into a separate context 2014-06-22 18:22:31 -07:00
Diego Biurrun
7b9ef8d701 mpeg: Split error resilience bits off into a separate file 2014-06-22 17:36:37 -07:00
Justin Ruggles
f2f2e7627f Check mp3 header before calling avpriv_mpegaudio_decode_header().
As indicated in the function documentation, the header MUST be
checked prior to calling it because no consistency check is done
there.

CC:libav-stable@libav.org
2014-06-22 20:31:58 -04:00
Justin Ruggles
44127546b0 Check if an mp3 header is using a reserved sample rate.
Fixes an invalid read past the end of avpriv_mpa_freq_tab.
Fixes divide-by-zero due to sample_rate being set to 0.

Bug-Id: 705

CC:libav-stable@libav.org
2014-06-22 20:31:57 -04:00
James Almer
c172683bf4 x86/dsputil: remove redundant global motion compensation code
The SSE version has been no different than the mmx one since commit a41bf09d

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 02:15:06 +02:00
Michael Niedermayer
42e6fc147b avcodec/apedec: optimize sign combination
48078630 -> 32533850 dezi cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 02:15:06 +02:00
Michael Niedermayer
a125f87ac4 Merge commit '463a7cde563fd805864c48a76dd1b03fc24671ed'
* commit '463a7cde563fd805864c48a76dd1b03fc24671ed':
  Differentiate assembler and assembly in documentation and comments

Conflicts:
	configure
	doc/platform.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 01:30:35 +02:00
Michael Niedermayer
49f1b869b6 Merge commit '0ef256d51518f0e483c38b9ee3b993cf0709d00e'
* commit '0ef256d51518f0e483c38b9ee3b993cf0709d00e':
  libx264: Correctly manage constant rate factor params

Conflicts:
	libavcodec/libx264.c

See: 3a1c8951bc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 01:21:39 +02:00
Michael Niedermayer
32365667cc Merge commit '73953df71a28e94d8959facba7906cf5975ca4ef'
* commit '73953df71a28e94d8959facba7906cf5975ca4ef':
  Replace av_malloc() and memset(0) by av_mallocz()

Conflicts:
	libavformat/matroskadec.c
	libavformat/rmdec.c
	libavformat/utils.c

No change, as none of the split malloc+memset existed in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 01:13:52 +02:00
Michael Niedermayer
efec730431 Merge commit 'f83896abda1e78ebbbda0f184b682b4fabadc682'
* commit 'f83896abda1e78ebbbda0f184b682b4fabadc682':
  ape: Replace memset(0) by zero initialization

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 01:03:30 +02:00
Michael Niedermayer
412015694c Merge commit '8d695dc411c1ae28477f107d6f7bf2db59af95df'
* commit '8d695dc411c1ae28477f107d6f7bf2db59af95df':
  mpeg: Mark ff_mpeg_set_erpic() static

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:57:47 +02:00
Michael Niedermayer
ffc2c095ef Merge commit 'a6a675a79287565c3c23455439b114676b63a96c'
* commit 'a6a675a79287565c3c23455439b114676b63a96c':
  configure: Drop stray error resilience dependencies

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:51:54 +02:00
Michael Niedermayer
7695a538ed Merge commit 'fbf4d2197f35bddccec00ad53185ee4ab81778a0'
* commit 'fbf4d2197f35bddccec00ad53185ee4ab81778a0':
  build: Record explicit dependency of intrax8 on error resilience

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:45:58 +02:00
Michael Niedermayer
9d91fae8a1 Merge commit 'c54e118722cbbdc04945538d1796d4472a1ff406'
* commit 'c54e118722cbbdc04945538d1796d4472a1ff406':
  build: Have the eatqi decoder depend on the MPEG-1 decoder

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:39:53 +02:00
Michael Niedermayer
9e8c92226f Merge commit '85d805d5cccb2f57e7f2e2254d7a870f05926cfd'
* commit '85d805d5cccb2f57e7f2e2254d7a870f05926cfd':
  build: Add missing object files for webm muxer

Conflicts:
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:31:22 +02:00
Michael Niedermayer
738272826f Merge commit '03391b5432a2b8b8dbc3d2db722a54dfb68737b9'
* commit '03391b5432a2b8b8dbc3d2db722a54dfb68737b9':
  build: Add missing object files for Matroska demuxer

Conflicts:
	libavcodec/Makefile
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:19:41 +02:00
Michael Niedermayer
2ca4802601 Merge commit '49470b9404583ab3aff6835f78a759349d331696'
* commit '49470b9404583ab3aff6835f78a759349d331696':
  build: Add missing replaygain object file for CAF demuxer

Conflicts:
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:13:34 +02:00
Michael Niedermayer
c69f729947 ffmpeg: fix reinitializing with threads while flushing
With threads the decoder has a delay and will thus have multiple
frames at EOF left in its buffers which will be returned when flushing
the decoder. The code that extracts such frames from the decoder at the
end does not pull frames from the filtergraph, thus when one of these
frames causes the filtergraph to be reinited, the frames still inside
the graph at that point re lost

This commit changes the flushing to be more similar to normal decoding
and 1 frame at a time

Fixes hqx fate with threads

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 00:09:09 +02:00
Diego Biurrun
463a7cde56 Differentiate assembler and assembly in documentation and comments
The language and the program that consumes the language are not the same.
2014-06-22 23:15:14 +02:00
Anshul Maheshwari
7e6cf36453 ffmpeg: fix transcoding dvbsub to dvbsub
fix ticket #2024

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 21:07:40 +02:00
Anshul Maheshwari
ca2f59e121 avcodec/dvbsubdec: support returning exact end times
fixess part of ticket #2024

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 21:06:49 +02:00
Luca Barbato
0ef256d515 libx264: Correctly manage constant rate factor params
By default they are set to -1.
2014-06-22 21:01:07 +02:00
Michael Niedermayer
9b33cdcab2 avfilter/vf_blend: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 20:49:00 +02:00
Michael Niedermayer
31f77b46b2 avfilter/unsharp_opencl: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 20:48:43 +02:00
James Almer
6ec3dc97fc x86/audiodsp: move asm code out of dsputil
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 19:53:09 +02:00
Andrey Utkin
3bb4d26a5d drawtext: drop unused draw_glyphs() arg "rgbcolor"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 19:52:44 +02:00
Diego Biurrun
73953df71a Replace av_malloc() and memset(0) by av_mallocz() 2014-06-22 18:43:11 +02:00
Diego Biurrun
f83896abda ape: Replace memset(0) by zero initialization 2014-06-22 18:43:11 +02:00
Michael Niedermayer
99497b4683 Merge commit '9a9e2f1c8aa4539a261625145e5c1f46a8106ac2'
* commit '9a9e2f1c8aa4539a261625145e5c1f46a8106ac2':
  dsputil: Split audio operations off into a separate context

Conflicts:
	configure
	libavcodec/takdec.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil.asm
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_mmx.c
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 17:58:28 +02:00
Diego Biurrun
8d695dc411 mpeg: Mark ff_mpeg_set_erpic() static
It is not used outside of the file.
2014-06-22 06:28:46 -07:00
Diego Biurrun
a6a675a792 configure: Drop stray error resilience dependencies 2014-06-22 06:28:46 -07:00
Diego Biurrun
fbf4d2197f build: Record explicit dependency of intrax8 on error resilience 2014-06-22 06:28:46 -07:00
Diego Biurrun
c54e118722 build: Have the eatqi decoder depend on the MPEG-1 decoder
eatqi uses more than just the shared mpegvideo bits.
2014-06-22 06:28:46 -07:00
Diego Biurrun
85d805d5cc build: Add missing object files for webm muxer 2014-06-22 06:28:46 -07:00
Diego Biurrun
03391b5432 build: Add missing object files for Matroska demuxer 2014-06-22 06:28:46 -07:00
Diego Biurrun
49470b9404 build: Add missing replaygain object file for CAF demuxer 2014-06-22 06:28:45 -07:00
Diego Biurrun
9a9e2f1c8a dsputil: Split audio operations off into a separate context 2014-06-22 06:20:15 -07:00
Ronald S. Bultje
0dae193d3e swr: remove another forgotten division in DSP function.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 05:20:22 +02:00
Michael Niedermayer
954a38e9bf avfilter/vf_hqx: remove << 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 05:17:23 +02:00
Michael Niedermayer
fd3c27375f fate/filter-video: fix hqx on big endian part 2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 05:02:04 +02:00
Michael Niedermayer
d7efafd63a avfilter/vf_hqx: partly fix big endian fate test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 04:55:17 +02:00
Michael Niedermayer
4abffbbc54 swscale/x86/input: prevent RGB32_TO_Y_FN from reading into the padding
This avoids reading uninitialized bytes and confusing valgrind

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 03:09:28 +02:00
Michael Niedermayer
a1a76b209b swscale/x86/input: prevent RGB32_TO_UV_FN from reading into the padding
This avoids reading uninitialized bytes and confusing valgrind

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 02:32:30 +02:00
Michael Niedermayer
84de3ed795 avfilter/deshake_opencl: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 23:11:16 +02:00
Michael Niedermayer
04776cedec avfilter/avf_showspectrum: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 23:11:16 +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
Michael Niedermayer
dc5972f886 avformat/flvdec: give live_flvdec a separate name
This should fix a infinite loop on freebsd

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 20:27:45 +02:00
Carl Eugen Hoyos
e3fd263f0b Show duration for large asf files as written in the file header.
Fixes ticket #3428.
2014-06-21 20:00:18 +02:00
Carl Eugen Hoyos
29fc468d0a Do not show libzvbi in the configure output if it was not enabled.
It is already shown in the list of external libraries if it was enabled.
2014-06-21 19:53:52 +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
Michael Niedermayer
5ab51f7535 avcodec/libtwolame: fix encoding lsf with defaults
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 17:05:09 +02:00
Michael Niedermayer
a2de7b1bd5 avcodec/bitstream: document the double volatile
Suggested-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 14:55:32 +02:00
Anshul Maheshwari
3639343478 ffmpeg: fix memleak and corruption of AVSubtitle with multiple outputs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 13:21:08 +02:00
Diego Biurrun
97578f5f3b build: Add missing object file for Matroska demuxer
Fixes compilation with --disable-everything --disable-network --enable-demuxer=matroska

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-06-21 11:53:43 +02:00
Michael Niedermayer
1caedf629a avcodec/ituh263enc: fix advanced intra coding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-21 04:05:28 +02:00
Michael Niedermayer
4667116c39 Merge commit 'ca1e36a8e4cd416142487071dbca734567bdaddf'
* commit 'ca1e36a8e4cd416142487071dbca734567bdaddf':
  h264: fix build when error resilience is disabled

Conflicts:
	libavcodec/h264_picture.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 23:18:45 +02:00
Michael Niedermayer
fe43facd65 avcodec/utils: check sar only when width/height are set
This fixes loosing the perfectly valid SAR when width=height=0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 23:02:52 +02:00
Michael Niedermayer
0dceefc5fa Merge commit '9e500efdbe0deeff1602500ebc229a0a6b6bb1a2'
* commit '9e500efdbe0deeff1602500ebc229a0a6b6bb1a2':
  Add av_image_check_sar() and use it to validate SAR

Conflicts:
	libavcodec/dpx.c
	libavcodec/dvdec.c
	libavcodec/ffv1dec.c
	libavcodec/utils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 22:20:28 +02:00
Michael Niedermayer
329898aa45 avcodec/bitstream: try to workaround internal compiler bug in gcc 4.2
gcc 4.2 seems not maintained anymore so theres no option besides
just working around it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 21:54:23 +02:00
Michael Niedermayer
33f83a2157 avcodec/x86/rv40dsp_init: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 21:36:43 +02:00
Michael Niedermayer
40cbad9ff7 avcodec/wavpackenc: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 21:36:17 +02:00
Moritz Barsnick
10b8481a26 fix several typos 2014-06-20 10:21:31 -08:00
Vittorio Giovara
ca1e36a8e4 h264: fix build when error resilience is disabled 2014-06-20 12:48:06 -04:00
Michael Niedermayer
0a995311ce Merge commit 'd349afb07bacccb62eb5369c38d6406d2909d792'
* commit 'd349afb07bacccb62eb5369c38d6406d2909d792':
  dv: cosmetics, reindent

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 18:10:33 +02:00
Michael Niedermayer
b0fdc76600 Merge commit '650dee63c8b1e6693c6cf5983f4a5ed3f571379f'
* commit '650dee63c8b1e6693c6cf5983f4a5ed3f571379f':
  dv: get rid of global non-const tables

Conflicts:
	libavcodec/dv_profile.h
	libavcodec/dvdec.c
	libavcodec/dvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 18:00:42 +02:00
Michael Niedermayer
c2b1225c16 Merge commit '778111592bf5f38630858ee6dfcfd097cd6c6da9'
* commit '778111592bf5f38630858ee6dfcfd097cd6c6da9':
  dvenc: initialize the profile only once, at init

Conflicts:
	libavcodec/dvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 17:15:39 +02:00
Michael Niedermayer
afa7ab557a Merge commit '452860d7e056f9a894cac2fe52cdedeae4c38251'
* commit '452860d7e056f9a894cac2fe52cdedeae4c38251':
  Use av_packet_rescale_ts() to simplify code.

Conflicts:
	doc/examples/muxing.c
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 17:03:58 +02:00
Michael Niedermayer
4a99333581 Merge commit '874390e163427c1fe7682ab27924a7843780dbb3'
* commit '874390e163427c1fe7682ab27924a7843780dbb3':
  lavc: add a convenience function for rescaling timestamps in a packet

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 16:40:04 +02:00
Justin Ruggles
9e500efdbe Add av_image_check_sar() and use it to validate SAR 2014-06-20 10:39:33 -04:00
James Almer
e930287900 configure: remove superfluous check for AVX/FMA3 support in Yasm
The minimum Yasm/NASM version required to compile ffmpeg supports both
instruction sets

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 15:53:58 +02:00
Timothy Gu
6fdd19cbb2 doc: remove RELEASE_NOTES
It hasn't been used since 0.11, and it does not contain any useful
information except for the code name.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 14:46:54 +02:00
Anton Khirnov
d349afb07b dv: cosmetics, reindent 2014-06-20 14:15:39 +02:00
Anton Khirnov
650dee63c8 dv: get rid of global non-const tables
Instead, store them in the context and compute on each parameter change.
2014-06-20 14:15:31 +02:00
Anton Khirnov
778111592b dvenc: initialize the profile only once, at init
We do not allow the frame parameters to change during encoding, so there
is no need to do this for each frame.
2014-06-20 14:15:16 +02:00
Anton Khirnov
452860d7e0 Use av_packet_rescale_ts() to simplify code. 2014-06-20 14:14:48 +02:00
Anton Khirnov
874390e163 lavc: add a convenience function for rescaling timestamps in a packet 2014-06-20 14:14:11 +02:00
Stefano Sabatini
d381109ce8 lavc/h264_slice: clarify informational message in case of disabled slice multi-threaded decoding
Also suggest what can be done to workaround the limitation.
2014-06-20 12:12:46 +02:00
Stefano Sabatini
8c44376799 doc/codecs: extend documentation for thread_type option
Based on avcodec.h documentation.
2014-06-20 12:12:46 +02:00
Timothy Gu
cc0057a31c tests/fate.sh: report different status for different errors
The order of error codes will be useful in my future fateserver patches.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-20 05:33:51 +02:00
Michael Niedermayer
b05d50898f Merge commit '440842c4eb1d7709654ec97cd687663d11ef499c'
* commit '440842c4eb1d7709654ec97cd687663d11ef499c':
  stereo3d: add missing include guards

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 23:47:10 +02:00
Vittorio Giovara
440842c4eb stereo3d: add missing include guards 2014-06-19 17:31:49 -04:00
James Almer
05d95c53a7 alpha/blockdsp: move clear_blocks out of dsputil
The blockdsp split did not cover Alpha optimizations

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 22:39:38 +02:00
Gaullier Nicolas
650ef18078 avformat/utils: better probing for duration in estimate_timings_from_pts()
It seems it is more secure to simply duplicate the computing routine from compute_pkt_fields to estimate_timings_from_pts.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 20:48:46 +02:00
Michael Niedermayer
5bf5e6b1c0 avcodec/h264: Use named identifier for single thread fall-back return from ff_h264_decode_slice_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 19:49:26 +02:00
Carl Eugen Hoyos
891307b4d1 s86/scale: Do not return the result of a (void) function from a void function.
Fixes compilation with Sun C 5.12.
Reported by Bradley Mitchell in ticket #3649.
2014-06-19 18:45:13 +02:00
James Almer
a5ce608fc7 x86/blockdsp: restore author attribution
See commits
649c00c96d
5fecfb7d58
73b02e2460

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 18:31:44 +02:00
Michael Niedermayer
a68c05cf13 Merge commit '852c329a69ddfd635807f60454df07d021c64901'
* commit '852c329a69ddfd635807f60454df07d021c64901':
  configure: Drop duplicate pkg-config entry from help output

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 18:00:20 +02:00
Diego Biurrun
852c329a69 configure: Drop duplicate pkg-config entry from help output 2014-06-19 17:00:11 +02:00
Michael Niedermayer
47c8d1e174 Merge commit 'b2290bf10b12b7772f55fcab014a47e18e9fdef2'
* commit 'b2290bf10b12b7772f55fcab014a47e18e9fdef2':
  i263: skip dummy frames

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 15:12:45 +02:00
Michael Niedermayer
08c5859f17 avcodec: add simpleauto idct
This will pick the "best" simple idct compatible idct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 14:28:01 +02:00
James Almer
4c9ee1590f lavf/Makefile: fix standalone compilation of live_flv demuxer
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 13:25:28 +02:00
James Almer
60a06400a9 configure: fix NASM output format on Win64
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 13:18:30 +02:00
James Almer
454c019cb5 x86/hevc_idct: fix movd parameter size in DC_ADD_INIT
Fixes compilation with NASM x86_64

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 13:18:13 +02:00
Dirk Ausserhaus
b2290bf10b i263: skip dummy frames
Intel i263 codec has special 8-byte dummy frames that should not be decoded,
so do not even attempt to decode them and skip them instead.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-19 13:13:20 +02:00
James Almer
fe782233aa x86/blockdsp: move asm code out of dsputil
Also replace INLINE_<opt> with EXTERNAL_<opt> that were wrongly
changed by commit 2b05db4f81

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 13:09:03 +02:00
Christophe Gisquet
e7fc5d53a0 huffyuv: change statistics initialization
Normally, a Laplace distribution is more typical of the residuals
encoded, but for noisy input, it's both better and simpler to be
safe and use a 1/d^2 distribution. Second hunk could use some
renormalization but it has effectively little impact.

Output size of ffvhuff on various 4:2:0 sequences:
context=0,1/d:    851974   27226   1137281
context=0,1/d²:   619081   25069   1051500
context=0,1/d³:   501983   30454   1290561
context=0,lapl:   500650   31754   1304082

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 06:03:51 +02:00
Michael Niedermayer
042a82ca37 avcodec/x86/lossless_videodsp: Fix size of values read for left/left_top
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 05:53:41 +02:00
Michael Niedermayer
2b05db4f81 Merge commit 'e74433a8e6fc00c8dbde293c97a3e45384c2c1d9'
* commit 'e74433a8e6fc00c8dbde293c97a3e45384c2c1d9':
  dsputil: Split clear_block*/fill_block* off into a separate context

Conflicts:
	configure
	libavcodec/asvdec.c
	libavcodec/dnxhddec.c
	libavcodec/dnxhdenc.c
	libavcodec/dsputil.h
	libavcodec/eamad.c
	libavcodec/intrax8.c
	libavcodec/mjpegdec.c
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/vc1dec.c
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 04:54:38 +02:00
Rong Yan
ab12373956 ppc: Fix the bug of fft for little endian environment on POWER7 and later
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-19 01:01:14 +02:00
Michael Niedermayer
8e2ade43f1 Merge commit '869fc416f7c78ed4e397e0208acd1545771c0502'
* commit '869fc416f7c78ed4e397e0208acd1545771c0502':
  hevc: Mark num_bins_in_se as unused

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 23:32:55 +02:00
Michael Niedermayer
dacc4cb115 Merge commit 'c385313d2590fd26e26bb9bdacddef78162ab490'
* commit 'c385313d2590fd26e26bb9bdacddef78162ab490':
  rtsp: Support misordered fmtp rtpmap

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 23:27:01 +02:00
Michael Niedermayer
be94f5c171 Merge commit 'c9c1e00f95350e7a36b0d05a03939c7f6438e371'
* commit 'c9c1e00f95350e7a36b0d05a03939c7f6438e371':
  rtsp: Factor out fmtp parsing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 23:22:12 +02:00
Michael Niedermayer
1ebc77bc7d Merge commit '49a242687cf44f86570b706db3c5912ff06bc6c2'
* commit '49a242687cf44f86570b706db3c5912ff06bc6c2':
  doc: Document segment_list_type

Conflicts:
	doc/muxers.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 23:13:31 +02:00
Diego Biurrun
e74433a8e6 dsputil: Split clear_block*/fill_block* off into a separate context 2014-06-18 14:07:23 -07:00
Lou Logan
eba453e03f doc/bitstream_filters: document imxdump
Partially addresses ticket #3198.

Signed-off-by: Lou Logan <lou@lrcd.com>
Tested-by: Dave Rice <dave@dericed.com>
2014-06-18 12:59:15 -08:00
Luca Barbato
869fc416f7 hevc: Mark num_bins_in_se as unused
Only its size is actually used. Silence a clang warning.
2014-06-18 22:03:40 +02:00
Joshua Kordani
c385313d25 rtsp: Support misordered fmtp rtpmap
Issue present in Avigilon IP cameras.
2014-06-18 22:03:40 +02:00
Luca Barbato
c9c1e00f95 rtsp: Factor out fmtp parsing 2014-06-18 22:03:40 +02:00
Luca Barbato
49a242687c doc: Document segment_list_type 2014-06-18 22:03:40 +02:00
Michael Niedermayer
eec55e622a ffmpeg_opt: Dont exit on avformat_find_stream_info() failure if there are streams
This allows "-codec copy -f framecrc" on files with only unindentifyable streams

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 21:35:54 +02:00
Michael Niedermayer
1d54f51084 avformat/mux: simplify ff_choose_timebase()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 20:09:55 +02:00
Michael Niedermayer
75511c293a dump_stream_format: fix division by 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 19:49:23 +02:00
Michael Niedermayer
ac293b6685 Merge commit '194be1f43ea391eb986732707435176e579265aa'
* commit '194be1f43ea391eb986732707435176e579265aa':
  lavf: switch to AVStream.time_base as the hint for the muxer timebase

Conflicts:
	doc/APIchanges
	libavformat/filmstripenc.c
	libavformat/movenc.c
	libavformat/mxfenc.c
	libavformat/oggenc.c
	libavformat/swf.h
	libavformat/version.h
	tests/ref/lavf/mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 19:49:17 +02:00
Clé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œ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
Michael Niedermayer
2d70282254 Merge commit 'd754ed41727b1fcbab335b510248a9758a73320c'
* commit 'd754ed41727b1fcbab335b510248a9758a73320c':
  riffenc: take an AVStream instead of an AVCodecContext

Conflicts:
	libavformat/nutenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 17:47:12 +02:00
Michael Niedermayer
95398aa949 Merge commit 'f792d3cbb8e8e35c54a9358a55dd596b7a40f228'
* commit 'f792d3cbb8e8e35c54a9358a55dd596b7a40f228':
  lavf: add the notimestamps flag to the muxers missing it

Conflicts:
	libavformat/adtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 17:28:10 +02:00
Michael Niedermayer
bd148ce07d Merge commit 'cfbdd7ffbd9fe14d110fd1bb89bf52f0f7bde016'
* commit 'cfbdd7ffbd9fe14d110fd1bb89bf52f0f7bde016':
  rtpenc: base max_frames_per_packet on avg_frame_rate, not codec timebase

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 17:27:06 +02:00
Michael Niedermayer
daa7bccad2 Merge commit '894682a9739eb8d4bfc024b0d4e5757fcfe47378'
* commit '894682a9739eb8d4bfc024b0d4e5757fcfe47378':
  Remove avserver.

Conflicts:
	.gitignore
	Changelog
	Makefile
	configure
	doc/ffserver.conf
	doc/ffserver.texi
	doc/general.texi
	ffserver.c
	libavformat/Makefile
	libavformat/ffm.h
	libavformat/ffmdec.c
	libavformat/ffmenc.c
	tests/fate/avformat.mak
	tests/lavf-regression.sh
	tests/ref/lavf/ffm
	tests/ref/seek/lavf-ffm

Not merged, ffserver does have a maintainer
co maintainers are welcome and needed though !

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 17:18:19 +02: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
Anton Khirnov
194be1f43e lavf: switch to AVStream.time_base as the hint for the muxer timebase
Previously, AVStream.codec.time_base was used for that purpose, which
was quite confusing for the callers. This change also opens the path for
removing AVStream.codec.

The change in the lavf-mkv test is due to the native timebase (1/1000)
being used instead of the default one (1/90000), so the packets are now
sent to the crc muxer in the same order in which they are demuxed
(previously some of them got reordered because of inexact timestamp
conversion).
2014-06-18 15:12:34 +02:00
Anton Khirnov
d754ed4172 riffenc: take an AVStream instead of an AVCodecContext
It will be useful in the following commits.

Also, rename the AVCodecContext pointer name from 'stream' to 'codec'.
2014-06-18 15:03:55 +02:00
Anton Khirnov
f792d3cbb8 lavf: add the notimestamps flag to the muxers missing it 2014-06-18 15:03:31 +02:00
Anton Khirnov
cfbdd7ffbd rtpenc: base max_frames_per_packet on avg_frame_rate, not codec timebase
Fall back to 1 (which is what is used for most cases anyway) when the
framerate is not set.
2014-06-18 15:03:16 +02:00
Anton Khirnov
894682a973 Remove avserver.
It has not been properly maintained for years and there is little hope
of that changing in the future.
It appears simpler to write a new replacement from scratch than
unbreaking it.
2014-06-18 14:55:28 +02:00
Carl Eugen Hoyos
99a8a3de8c Revert "Fix compilation on ppc64 and ppc with pic if gas-preprocessor is installed."
It broke gas-preprocessor detection on PPC64 Linux.
This reverts commit b67bcd784d.
2014-06-18 14:31:39 +02:00
Ronald S. Bultje
cbf21628a5 swr: remove div/mod from DSP functions.
Also fix a bug with resample_compensation resetting dst_incr.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 14:15:52 +02:00
Carl Eugen Hoyos
076ab9f7e3 Fix all VDPAU decoders.
Fixes ticket #3726.
2014-06-18 13:55:26 +02:00
Michael Niedermayer
a740cae4a0 avcodec/dcadec: remove unsignedness from constant
POSIX gurantees >=32bit so it all fits in signed int
Also >=32bit ints are assumed througout the codebase

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 13:46:51 +02:00
Michael Niedermayer
118d84b7e9 Merge commit 'f2ce63246f5c934429f9cb857a794e07624d7912'
* commit 'f2ce63246f5c934429f9cb857a794e07624d7912':
  dcadec: replace ldexpf with a multiplication by a constant

Conflicts:
	libavcodec/dcadec.c

See: 6da06ef6bb
See: 9ccb5455ca
See: 6b88f22e89
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 13:06:09 +02:00
Michael Niedermayer
40c9d43086 Merge commit '44671b57866aab8dd36715ff010e985e25baaf19'
* commit '44671b57866aab8dd36715ff010e985e25baaf19':
  AVFrame: factor out freeing the side data

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 12:53:42 +02:00
Niels Möller
f2ce63246f dcadec: replace ldexpf with a multiplication by a constant
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-18 08:23:15 +02:00
Roman Savchenko
44671b5786 AVFrame: factor out freeing the side data
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-18 08:11:05 +02:00
Michael Niedermayer
7f5296005c swscale/swscale: replace potentially slow % by &
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 04:24:31 +02:00
Michael Niedermayer
c932f12806 avcodec/cavsdec: simplify % 512 operations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 04:18:40 +02:00
Michael Niedermayer
0608bc6502 swresample/audioconvert: fix () in FMT_PAIR_FUNC()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 03:13:37 +02:00
Michael Niedermayer
c89be82c98 avcodec/vp8: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 03:13:37 +02:00
Michael Niedermayer
aab23f5ddd avcodec/vp9: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 03:13:37 +02:00
Michael Niedermayer
28bf111503 avcodec/wavpack: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 03:13:36 +02:00
Lou Logan
d9a61ae31e presets: remove moldering iPod presets
* Some users are trying to use them for non-ancient iDevices when
  baseline profile and level 1.3/3.0 would not be required.

* "640" and "320" no longer make sense.

* Some recommended options can be viewed at:
  <https://trac.ffmpeg.org/wiki/Encode/H.264#iOS>

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 16:15:04 -08:00
Michael Niedermayer
cb037b5db4 Merge commit '9affa784a0743b95bde135b5acfce2183afc35d8'
* commit '9affa784a0743b95bde135b5acfce2183afc35d8':
  vp9 encoder: use a decent default speed setting

Conflicts:
	libavcodec/libvpxenc.c

See: 34e32d6464
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 01:54:02 +02:00
Michael Niedermayer
3f2f87cd5a Merge commit '74bc9458057f07c0820c3d3264396c4c64442e47'
* commit '74bc9458057f07c0820c3d3264396c4c64442e47':
  flvenc: Don't over-count metadata.

Conflicts:
	tests/ref/lavf/flv_fmt
	tests/ref/vsynth/vsynth1-flashsv
	tests/ref/vsynth/vsynth1-flv
	tests/ref/vsynth/vsynth2-flashsv
	tests/ref/vsynth/vsynth2-flv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 01:44:24 +02:00
Michael Niedermayer
9f028b3f3a Merge commit '49106844929b7b71ac719064d640f8aa56c89b1f'
* commit '49106844929b7b71ac719064d640f8aa56c89b1f':
  tiffenc: fix packet size calculation

Conflicts:
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 01:29:19 +02:00
Michael Niedermayer
eb0fc73dcc avfilter/vf_spp: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 00:07:30 +02:00
Michael Niedermayer
f31fd06713 vf_sab: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 00:07:12 +02:00
Rafaël Carré
9affa784a0 vp9 encoder: use a decent default speed setting
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-17 21:38:43 +02:00
Josh Allmann
74bc945805 flvenc: Don't over-count metadata.
Over-counting occurs if framerate is not set.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-17 21:38:21 +02:00
Tristan Matthews
4910684492 tiffenc: fix packet size calculation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-17 21:24:12 +02:00
Michael Niedermayer
f9cd317223 Merge commit 'fe4d5fe9361162f9033ff1bd84bfc1b2091ba785'
* commit 'fe4d5fe9361162f9033ff1bd84bfc1b2091ba785':
  jpeg2000: Mark static data init functions as av_cold

Conflicts:
	libavcodec/jpeg2000.c
	libavcodec/jpeg2000dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 20:42:10 +02:00
Diego Biurrun
fe4d5fe936 jpeg2000: Mark static data init functions as av_cold 2014-06-17 08:44:07 -07:00
Michael Niedermayer
a50c6f99b4 ffplay: remove -ec handling code
Its handled by the generic option code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 17:31:29 +02:00
plepere
92cccb7bcd avcodec/hevc: new idct + asm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 13:23:36 +02:00
Michael Niedermayer
fa0d0fb42e Merge commit '71d6551e674c86d07c165439c2bf6613b3892307'
* commit '71d6551e674c86d07c165439c2bf6613b3892307':
  avconv: use the correct variable in comparison

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 12:58:16 +02:00
Anton Khirnov
71d6551e67 avconv: use the correct variable in comparison 2014-06-17 09:01:26 +02:00
Michael Niedermayer
61df0819d4 avcodec/cavsdec: fix low delay decoding
Fixes Ticket1095

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-17 02:30:28 +02:00
Michael Niedermayer
2fbdfba0f2 avformat/flvdec: Support live flv / NGINX RTMP streams
Fixes Ticket3553

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 23:43:11 +02:00
Michael Niedermayer
293d5d7a8e swscale/input: fix harmless integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 23:28:32 +02:00
Simon Thelen
389d45351e version string: add copyright line to version string
Show the copyright when running `ffmpeg -version'. This is useful for
end users trying to determine whether they are using FFmpeg or Libav.

Signed-off-by: Simon Thelen <ffmpeg@c-14.de>
2014-06-16 10:24:28 -08:00
Michael Niedermayer
e6f9fc4adc avcodec/bitstream: try to make vlc init code inherently thread safe
also remove spinlock, it doesnt work on AIX

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 20:09:21 +02:00
Michael Niedermayer
f7f96cf4bc avcodec/bitstream: fill invalid vlc tables entries as last pass instead of first
This avoids writing entries twice

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 19:10:32 +02:00
Michael Niedermayer
600cbf3672 avcodec/bitstream: zero vlc tables on allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 19:10:32 +02:00
Carl Eugen Hoyos
189ffeafd4 Force aix strip to work on 32 and 64 bit by default. 2014-06-16 16:46:10 +02:00
Michael Niedermayer
7eae8cd870 avcodec/h264: fix frame skip code
Fixes Ticket3475

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 13:28:52 +02:00
Michael Niedermayer
9025072e6c avcodec/h264_slice: support skipping loop filtering for non key frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 13:18:55 +02:00
Michael Niedermayer
9140d37af2 avcodec/h264: use the correct level for droping non intra frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 13:18:43 +02:00
Michael Niedermayer
8a4a84a70a Merge commit '83aa4fc3feec7389ac781fece1e994f2dfd7ebdb'
* commit '83aa4fc3feec7389ac781fece1e994f2dfd7ebdb':
  configure: Directly support Android as target OS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 13:13:47 +02:00
Michael Niedermayer
60058c1880 Merge commit '766f2d965ff1948749c37f26a714adb8aa89c4a9'
* commit '766f2d965ff1948749c37f26a714adb8aa89c4a9':
  gitignore: add dylib and swp entries

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 13:04:41 +02:00
Michael Niedermayer
f0fbd9105b Merge commit '711aa2a82727907f778fb8aa9a93aff2120170f2'
* commit '711aa2a82727907f778fb8aa9a93aff2120170f2':
  lavf: dump stream side data when probing

Conflicts:
	libavformat/dump.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 12:54:36 +02:00
Michael Niedermayer
7b7afaf849 avformat/dump: put copyright back from the file from which dump.c was split out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 12:48:19 +02:00
Michael Niedermayer
83d100baea Merge commit '2dc265619a2fc9c6f9aff7ac2bcdbcb90e9610cb'
* commit '2dc265619a2fc9c6f9aff7ac2bcdbcb90e9610cb':
  lavf: group dump functions together

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 12:48:03 +02:00
Michael Niedermayer
593dc5aed9 Merge commit '5a69ded12aaf2bd3baed5d1d644ef23cfecef87f'
* commit '5a69ded12aaf2bd3baed5d1d644ef23cfecef87f':
  vf_showinfo: print display transformation values

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 12:09:20 +02:00
Luca Barbato
83aa4fc3fe configure: Directly support Android as target OS 2014-06-16 10:52:29 +02:00
Vittorio Giovara
766f2d965f gitignore: add dylib and swp entries 2014-06-16 01:31:37 -04:00
Michael Niedermayer
b152152df3 Add nointra AVDiscard level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 04:04:13 +02:00
Michael Niedermayer
fdb6f66def Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Do not suggest to use gas-preprocessor on aix where it doesn't work.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 01:38:48 +02:00
Ronald S. Bultje
edf930472b swr: reindent.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 01:33:32 +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
Carl Eugen Hoyos
08235708d8 Do not suggest to use gas-preprocessor on aix where it doesn't work. 2014-06-16 01:01:40 +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
02bffc560f huffyuv: fate: add a BGR24 test
It was previously untested.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 00:38:03 +02:00
Kieran
bc21260e64 hevc: Fix 4K sample video
Reviewed-by: smarter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 23:24:11 +02:00
Michael Niedermayer
c1b15c16ef avformat/smoothstreamingenc: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 23:21:46 +02:00
Carl Eugen Hoyos
b67bcd784d Fix compilation on ppc64 and ppc with pic if gas-preprocessor is installed. 2014-06-15 22:51:23 +02:00
Anshul Maheshwari
fbb59a3bf4 avcodec/dvbsubdec: Split save_subtitle_set() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 20:16:49 +02:00
Anshul Maheshwari
77ade55fe5 avcodec/dvbsubdec: add AVClass to context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 19:59:26 +02:00
Anshul Maheshwari
9a11b33a2d avcodec/dvbsubdec: restructure version check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 19:56:09 +02:00
Michael Niedermayer
153b5fb2fd avformat/framecrcenc: print the checksum and size of extradata as well
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 18:07:03 +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
Christophe Gisquet
eb6f6f25dc MAINTAINERS: Add Co maintainer for huffyuv*, rv4*, vc1*
Patch by: Christophe Gisquet
Commit Message by commiter

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 16:24:39 +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
Ronald S. Bultje
083cd3d1f7 swr: compile mmx2 s16p functions only on x86-32.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 13:34:53 +02:00
Christophe Gisquet
9107612818 x86util: add and use RSHIFT/LSHIFT macros
Those macros take a byte number as shift argument, as this argument
differs between MMX and SSE2 instructions.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 13:19:27 +02:00
Christophe Gisquet
2a1158ff3b fate: yadif: add >8 bit tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 13:13:11 +02:00
Christophe Gisquet
56a795e34f aandcttab: fix spelling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 12:11:46 +02:00
Michael Niedermayer
73d820ee1e avcodec/xbmdec: remove dependancy on zero padding on input packet
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 03:50:30 +02:00
Michael Niedermayer
103f9c261a avcodec/indeo5: Fix infinite loop in skip_hdr_extension()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 03:50:30 +02:00
James Almer
7f4dfbd080 swr: add prototypes for resample dsp functions
Should fix compilation failures with MSVC and any other compiler
without inline asm support.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 01:33:17 +02:00
Michael Niedermayer
86a9370e2b avformat/mpc: attempt to allocate a packet that is not smaller than the data inside it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 01:33:17 +02:00
Ronald S. Bultje
ada8f9c046 swr: remove obsolete function prototypes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 00:07:25 +02:00
Michael Niedermayer
5ded0b390b ffmpeg: for h264 we need has_b_frames from the decoder
Other solutions welcome

Fixes Ticket3711

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 23:32:08 +02:00
Michael Niedermayer
378ad22492 ffmpeg: print values of mismatching has_b_frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 23:09:21 +02:00
Michael Niedermayer
d82ecfce07 cmdutils: implement FFREPORT=level=...
Fixes Ticket3057

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 22:54:32 +02:00
Lou Logan
3fc37a3d2f doc/filters: remove double quotes from zoompan example
Based on suggested change by Clément Bœsch.

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 12:52:40 -08:00
Michael Niedermayer
b065d0014b avcodec/ppc/idct_altivec: add plain idct()
Tested-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 20:42:28 +02:00
Ronald S. Bultje
7128a35f8c swr: split out DSP functions.
DSP bits of swri_resample go into their own mini-DSP functions; DSP
init goes from a per-call branch in multiple_resample to a proper
DSP init routine; x86 bits go into x86/; swri_resample() moves out of
resample_template.c into resample.c because it's independent of DSP
code or sample type; multiple_resample() is simplified.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 20:21:39 +02:00
Marton Balint
9236f7b5a2 mpeg12enc: add seq_disp_ext option for deciding when to write a sequence_display_extension
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 19:45:53 +02:00
Marton Balint
66f4891e64 mpeg12enc: add support for PANSCAN side data in sequence_display_extension
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 19:45:53 +02:00
Carl Eugen Hoyos
6ac3c8c6a0 Fix compilation with --disable-everything --enable-parser=vc1. 2014-06-14 19:19:52 +02:00
Michael Niedermayer
759e793823 avcodec/vc1dec: Fix support for small widths/linesizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 16:33:09 +02:00
Michael Niedermayer
4411928c64 swresample/resample: replace assert by av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 16:33:09 +02:00
Carl Eugen Hoyos
a7dedd7bce Fix standalone compilation of the H264 decoder on ppc. 2014-06-14 15:44:52 +02:00
Ronald S. Bultje
b785c62681 swr: handle initial negative sample index outside DSP function.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 14:36:18 +02:00
Michael Niedermayer
d77815eeaa fate/aic: force simple idct
This should ensure all platforms use the same idct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 12:30:38 +02:00
Timothy Gu
e9b5b9a164 MAINTAINERS: add my (Timothy Gu's) PGP fingerprint and my name for fateserver
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 12:15:35 +02:00
Vittorio Giovara
711aa2a827 lavf: dump stream side data when probing 2014-06-14 00:25:26 -04:00
Vittorio Giovara
2dc265619a lavf: group dump functions together 2014-06-14 00:24:35 -04:00
Vittorio Giovara
5a69ded12a vf_showinfo: print display transformation values 2014-06-14 00:19:14 -04:00
Ronald S. Bultje
6b9685de3a swr: remove unnecessary assignment.
I don't see dst_incr/dst_incr_frac ever being changed from their
initial value (which is the inverse of this operation), so it seems
to me that this is a no-op.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 04:30:53 +02:00
Michael Niedermayer
33834be9c8 avfilter/af_asetnsamples: fix pts handling when timebase and 1/samplerate differ
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 04:24:13 +02:00
Michael Niedermayer
10012fa961 ffmpeg: Fix bitstream filters manipulating AVCodecContext
Fixes Ticket3715

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 00:50:50 +02:00
Michael Niedermayer
0a7ad6bf51 avfilter/formats: Use av_realloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 23:15:16 +02:00
Michael Niedermayer
d03eefae4a avfilter/vf_dejudder: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 23:14:38 +02:00
Michael Niedermayer
263aeb826d avfilter/vf_unsharp: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 23:14:18 +02:00
Michael Niedermayer
043bcdcdb0 avcodec/svq1enc: fix encoding of small widths
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 20:59:24 +02:00
Michael Niedermayer
1df441eaa8 vfilter/avf_showcqt: fix 'mixed declarations and code'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 20:32:54 +02:00
Michael Niedermayer
97c285e61b Merge commit '27631796c9d1b8146ad4a16e6539ecc08afa7565'
* commit '27631796c9d1b8146ad4a16e6539ecc08afa7565':
  ac3: Only initialize float_dsp for the float encoder variant

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 19:51:35 +02:00
Michael Niedermayer
684a9152c3 Merge commit 'f0ce9913d0974ac0c7371a62c3324dd2863b5d1b'
* commit 'f0ce9913d0974ac0c7371a62c3324dd2863b5d1b':
  Rename tpel_template.c ---> pel_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 19:03:55 +02:00
Michael Niedermayer
dffb85a982 avcodec/mpegvideo: check that linesize is not too small
Note linesize is rounded up to at least a multiple of 8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 18:40:21 +02:00
Michael Niedermayer
4a0ec85b85 avcodec/rv34: fix edge emu with uv stride <= 25
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 16:21:40 +02:00
Tim.Nicholson
6a65f3fc16 MAINTAINERS: Added Tim Nicholson's key fingerprint
Signed-off-by: Tim.Nicholson <tim.nicholson@bbc.co.uk>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 16:21:40 +02:00
Derek Buitenhuis
a4bd4733c0 swscale: Allow the max filter size to be set at compile time
This can help "extreme" resizes, e.g with some 4k stuff.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-13 14:49:59 +01:00
Diego Biurrun
27631796c9 ac3: Only initialize float_dsp for the float encoder variant 2014-06-13 05:21:34 -07:00
Diego Biurrun
f0ce9913d0 Rename tpel_template.c ---> pel_template.c
The new name more accurately describes what the file is about.
2014-06-13 05:21:34 -07:00
Michael Niedermayer
681868cbbe avcodec/mpegvideo: Fix psnr calculation with slice threads
This fixes a race condition and use of the wrong field, which become shared
instead of per thread during some AVFrame changes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 13:16:27 +02:00
Michael Niedermayer
cf9050c715 libavcodec/wmv2: remove dead code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 04:26:19 +02:00
Michael Niedermayer
1c5aa64a59 Merge commit '4321e507564b2d8a5dfc630f8d6fefba6fdc1e92'
* commit '4321e507564b2d8a5dfc630f8d6fefba6fdc1e92':
  configure: use pkg-config for libx264

Not merged as requested by carl
a patch to fix this has been posted by carl to ffmpeg-devel

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 02:40:50 +02:00
Michael Niedermayer
c5fc8ae126 avcodec/mpegvideo: fix edge emulation with uvlinesize below 25
Fixes fate-vsynth3-wmv2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-13 01:56:01 +02:00
sfan5
ffe6ecc418 lavd/avfoundation: Support user selected pixel formats and pixel format autoselection.
Signed-off-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 21:31:25 +02:00
Michael Niedermayer
6286bb5c07 Merge commit 'ceada893bec1e29e457bd2b81d8a0b6fcba5f1f7'
* commit 'ceada893bec1e29e457bd2b81d8a0b6fcba5f1f7':
  libx265: Remove unneeded bit depth check

See: 7ed89addb7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 21:30:34 +02:00
Michael Niedermayer
451469fd1a Merge commit '61a344916d324c8ca52064964478f46c877f02e2'
* commit '61a344916d324c8ca52064964478f46c877f02e2':
  libx265: Add 4:2:2 support

See: 6ee95af8a1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 21:28:58 +02:00
Michael Niedermayer
ff0631ab05 Merge commit '180e6b48060f97fdd8497320395b61dc85664ecd'
* commit '180e6b48060f97fdd8497320395b61dc85664ecd':
  libx265: Actually use X265_API_IMPORTS

See: 4e9b46b056
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 21:20:40 +02:00
Vittorio Giovara
4321e50756 configure: use pkg-config for libx264 2014-06-12 14:45:20 -04:00
Michael Niedermayer
c600c8e966 Merge commit 'dca7ba4bffe3e4aeb620cb62955256a0d87561f4'
* commit 'dca7ba4bffe3e4aeb620cb62955256a0d87561f4':
  Remove some unnecessary CONFIG_FOO_COMPONENT ifdefs

Conflicts:
	libavcodec/ac3enc_float.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 20:25:48 +02:00
Derek Buitenhuis
ceada893be libx265: Remove unneeded bit depth check
This is no longer needed since the version bump.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
61a344916d libx265: Add 4:2:2 support
It is also not final yet, so require -strict experimental.

Requires a bump to version 17.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
180e6b4806 libx265: Actually use X265_API_IMPORTS
It obvously needs to be above the include statement.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
7ed89addb7 libx265: Remove unneeded bit depth check
This is no longer needed since the version bump.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:43:31 +01:00
Diego Biurrun
dca7ba4bff Remove some unnecessary CONFIG_FOO_COMPONENT ifdefs
The files are only ever compiled if that condition is true.
2014-06-12 07:10:18 -07:00
Derek Buitenhuis
6ee95af8a1 libx265: Add 4:2:2 support
It is also not final yet, so require -strict experimental.

Requires a bump to version 17.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 13:53:34 +01:00
Derek Buitenhuis
4e9b46b056 libx265: Actually use X265_API_IMPORTS
It obvously needs to be above the include statement.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 13:53:34 +01:00
Michael Niedermayer
52ce6be86b Merge commit '48e50921337984ba4ec2c1cafe45d43787f84498'
* commit '48e50921337984ba4ec2c1cafe45d43787f84498':
  avconv: make -shortest work with streamcopy

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 13:13:12 +02:00
Muhammad Faiz
0a64fb7fb0 avfilter/avf_showcqt: add option for lower resolution
Resolution can be 1920x1080 or 960x540.
2014-06-12 09:16:08 +00:00
Anton Khirnov
48e5092133 avconv: make -shortest work with streamcopy
CC: libav-stable@libav.org
2014-06-12 08:17:50 +02:00
Ronald S. Bultje
385a3420d1 vp9/x86: fix overwrite in ipred_vl_4x4_ssse3.
Fixes track ticket 3717.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 04:11:20 +02:00
Michael Niedermayer
3a1c8951bc avcodec/libx264: fix "bitrate reconfiguration" 2014-06-12 01:20:07 +02:00
Michael Niedermayer
8159fe255c Merge commit '2f4170312f605c1f02a14c01347e94cf46726dbd'
* commit '2f4170312f605c1f02a14c01347e94cf46726dbd':
  libx264: Support bitrate reconfiguration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 01:19:57 +02:00
Christophe Gisquet
508e7a5c16 x86: huffyuv: fix {add,diff}_int16
They used an extra, undeclared register. Fixes a crash in
fate-vsynth3-ffvhuff444p16

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-12 00:26:19 +02:00
Michael Niedermayer
2cf4d91cf2 Merge commit 'cd62c04d009b3baf7582556866a7029291b54573'
* commit 'cd62c04d009b3baf7582556866a7029291b54573':
  h263enc: keep block_last_index always valid during advanced intra coding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 22:53:28 +02:00
Luca Barbato
2f4170312f libx264: Support bitrate reconfiguration
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-06-11 22:51:00 +02:00
Michael Niedermayer
67911cc57b Merge commit '0ddc53dabbc6f636d062b187ea27934610aaad30'
* commit '0ddc53dabbc6f636d062b187ea27934610aaad30':
  mpegvideo: synchronize AVFrame pointers in ERContext fully

Conflicts:
	libavcodec/mpegvideo.c

See: 8ef9dcf1d7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 22:30:49 +02:00
Michael Niedermayer
67d29da4bd avcodec: increase FF_INPUT_BUFFER_PADDING_SIZE to 32
Sometimes the input buffers get directly used as raw images and
SIMD optimized video/image filters can sometimes read more than 16 bytes
over the end.
a specific example is the AVX 24bpp to yuv code

This also fixes fate-vsynth3-rgb

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 22:15:29 +02:00
Michael Niedermayer
ef8725122d avcodec/motion_est: Only clip MVs which are used
Fixes valgrind mpeg4 failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 22:15:04 +02:00
Lou Logan
edeefeaaf9 doc/filters: add forgotten " to zoompan example
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-06-11 12:01:05 -08: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
Janne Grunau
cd62c04d00 h263enc: keep block_last_index always valid during advanced intra coding
Prevents a triggered assert during fate-vsynth{1,2}-rv20 in
dct_unquantize_h263_intra_c().
2014-06-11 21:28:39 +02:00
Janne Grunau
0ddc53dabb mpegvideo: synchronize AVFrame pointers in ERContext fully
Since error resilience uses AVFrame pointers instead of references it
has to copy NULL pointers too. After a codec flush the last/next frame
pointers in MpegEncContext are NULL and the old pointers remaining in
ERContext are invalid. Fixes a crash in vlc for android thumbnailer.
Reported and debugged by Adrien Maglo <magsoft@videolan.org>.
2014-06-11 21:28:27 +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
Timothy Gu
881ee369e6 tests: Add aic decoder test
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 19:05:54 +02:00
Michael Niedermayer
27b8ef5bb7 avformat/oggparsevorbis: Dont attempt to calculate timestamps from gp=0
Fixes Ticket3710

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 18:12:14 +02:00
Timothy Gu
5c57e2b51b MAINTAINERS: numerous grammar and discrepancy fixes
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 12:42:55 +02:00
Michael Niedermayer
60ab6e2457 avcodec/mpegvideo_enc: fix padding for odd dimensions and interlaced video
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 05:02:46 +02:00
Michael Niedermayer
c69defd4d0 avcodec/qtrleenc: Check that width is a multiple of 4 for grayscale
grayscale is coded as 4 pixels at a time, the encoder lacks support
for the case where width%4 != 0, and will simply encode less data
leaving random data after decoding at the right side

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 04:02:53 +02:00
Michael Niedermayer
43d995e865 fate: Disable qtrlegray 34x34 test
The encoder lacks support for width % 4 != 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 04:01:49 +02:00
Michael Niedermayer
b2fb65cbeb Merge commit '641e57230b460bef52c88e61087d97c223910bea'
* commit '641e57230b460bef52c88e61087d97c223910bea':
  fate: add on2avc audio test

Conflicts:
	tests/fate/audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 03:10:21 +02:00
Michael Niedermayer
b3a647d9ce Merge commit 'd7705be9617ed691c7a2924a2088de2d96f38af1'
* commit 'd7705be9617ed691c7a2924a2088de2d96f38af1':
  mpegvideoenc: check color_range

Conflicts:
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 02:57:08 +02:00
Michael Niedermayer
1290143fda Merge commit '27860819d508068f056cf48473af04868791ad77'
* commit '27860819d508068f056cf48473af04868791ad77':
  ppc: Consistently use convenience macro for runtime CPU detection

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 02:50:50 +02:00
Michael Niedermayer
26be0e31fc Merge commit '205fdd4ea5e1264946917a26fde01e137a485f5a'
* commit '205fdd4ea5e1264946917a26fde01e137a485f5a':
  ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-11 02:22:53 +02:00
Vittorio Giovara
641e57230b fate: add on2avc audio test 2014-06-10 19:41:59 -04:00
Vittorio Giovara
d7705be961 mpegvideoenc: check color_range
Rework the comparison into something simpler to understand.
2014-06-10 19:41:59 -04:00
Diego Biurrun
27860819d5 ppc: Consistently use convenience macro for runtime CPU detection 2014-06-10 15:13:57 -07:00
Diego Biurrun
205fdd4ea5 ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc 2014-06-10 15:13:57 -07:00
Michael Niedermayer
aff0912da5 Merge commit 'f121dbd9f76031d7f6d56261be2f14937a19d2dd'
* commit 'f121dbd9f76031d7f6d56261be2f14937a19d2dd':
  mpegts: Provide an option to override the pcr period

Conflicts:
	doc/muxers.texi
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 23:55:57 +02:00
Carl Eugen Hoyos
723adfb1df Fix standalone compilation of the webvtt encoder. 2014-06-10 23:47:04 +02:00
Michael Niedermayer
2d99b4041f Merge commit '3f7e94eccd1c0d64679f2c4eda8bb942a158dfac'
* commit '3f7e94eccd1c0d64679f2c4eda8bb942a158dfac':
  mpegts: Move the option section to the bottom

Conflicts:
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 23:27:16 +02:00
Michael Niedermayer
ac26d7ea9d Merge commit 'a736ae1e96b8718af0962106aa40df5f4b246b55'
* commit 'a736ae1e96b8718af0962106aa40df5f4b246b55':
  doc: Document mpegts muxrate

Conflicts:
	doc/muxers.texi

See: 5b76c3a120
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 23:25:46 +02:00
Luca Barbato
f121dbd9f7 mpegts: Provide an option to override the pcr period
Certain hardware demuxer have specific restrictions for PCR periodicity.
2014-06-10 22:05:44 +02:00
Luca Barbato
3f7e94eccd mpegts: Move the option section to the bottom
Makes it consistent with the rest of the formats and ease usage
of macros constants for the defaults.
2014-06-10 22:05:44 +02:00
Luca Barbato
a736ae1e96 doc: Document mpegts muxrate 2014-06-10 22:05:44 +02:00
Christophe Gisquet
8d02a55b1b tests: add a third, 34x34, target
This should exercise the corner cases of numerous codecs.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 20:24:49 +02:00
Michael Niedermayer
1a2ff62859 Merge commit '570d4b21863b6254d6bbca9c528bede471bb4478'
* commit '570d4b21863b6254d6bbca9c528bede471bb4478':
  x86: h264: Don't keep data in the redzone across function calls on 64 bit unix

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 18:35:49 +02:00
Michael Niedermayer
a2faa3d858 Merge commit '0776e0ef6ba4160281ef3fabea43e670f3792b4a'
* commit '0776e0ef6ba4160281ef3fabea43e670f3792b4a':
  adpcm: Write the proper predictor in trellis mode in IMA QT

See: fa8f060b75
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 18:28:53 +02:00
Michael Niedermayer
fbc133915b Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Allow values >31bit for -analyzeduration.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 18:22:41 +02:00
Michael Niedermayer
3a76d7f73d avformat/nutenc: cleaner version check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 16:36:41 +02:00
Michael Niedermayer
d7f398c542 avformat/nutenc: Fix error handling in nut_write_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 15:41:33 +02:00
Martin Storsjö
570d4b2186 x86: h264: Don't keep data in the redzone across function calls on 64 bit unix
We know that the called function (ff_chroma_inter_body_mmxext)
doesn't touch the redzone, and thus will be kept intact - thus,
this doesn't fix any bug per se.

However, valgrind's memcheck tool intentionally assumes that the
redzone is clobbered on every function call and function return
(see a long comment in valgrind/memcheck/mc_main.c). This avoids
false positives in that tool, at the cost of an extra stack pointer
adjustment.

The other alternative would be a valgrind suppression for this issue,
but that's an extra burden for everybody that wants to run libavcodec
within valgrind.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-10 16:31:48 +03:00
Martin Storsjö
0776e0ef6b adpcm: Write the proper predictor in trellis mode in IMA QT
The actual predictor value, set by the trellis code, never
was written back into the variable that was written into
the block header. This was accidentally removed in b304244b.

This significantly improves the audio quality of the trellis
case, which was plain broken since b304244b.

Encoding IMA QT with trellis still actually gives a slightly
worse quality than without trellis, since the trellis encoder
doesn't use the exact same way of rounding as in
adpcm_ima_qt_compress_sample and adpcm_ima_qt_expand_nibble.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-10 16:28:47 +03:00
Michael Niedermayer
0f0f626048 avformat/rawdec: Increase probe score when "Content-Type: image/jpeg" is found at the file start
Based-on code by: Carl Eugen Hoyos and Andrey Utkin
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 14:42:19 +02:00
Carl Eugen Hoyos
5482780a3b Allow values >31bit for -analyzeduration. 2014-06-10 14:28:34 +02:00
Michael Niedermayer
ec2b6ee59a avformat/utils: dont wait for a first dts on demuxers which have AVFMT_NOTIMESTAMPS set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 14:22:13 +02:00
Michael Niedermayer
b45a451dbe avformat/rawdec: mark raw vc1 and mjpeg as having no timestamps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 14:21:24 +02:00
Michael Niedermayer
65571ee4e3 avformat/rawdec: add FF_DEF_RAWVIDEO_DEMUXER2, which allows specifying the flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 14:20:39 +02:00
Michael Niedermayer
2351ea8a2e avformat/nutenc: Fix error handling in write_sm_data()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 04:00:06 +02:00
Michael Niedermayer
9c9eac5c26 tools/fourcc2pixfmt: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-10 04:00:06 +02:00
Carl Eugen Hoyos
958168d505 lavf/mpegts: Reduce number of "Predefined SLConfigDescriptor" warnings shown. 2014-06-09 23:20:14 +02:00
Billy Shambrook
3c2d9f86c7 ffprobe: add rc_max_rate to stream output
The value is used by some bitstream to mark the maximum bit rate.

See thread:
Subject: [FFmpeg-devel] [PATCH] Add rc_max_rate to ffprobe stream output
Date: Sun,  1 Jun 2014 17:36:36 +0100
To: ffmpeg-devel@ffmpeg.org

http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/178461

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-06-09 23:19:33 +02:00
Michael Niedermayer
06f576c4ab avcodec/x86/dct_init: fix build failure with clang && disable-optimizations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 19:32:41 +02:00
Michael Niedermayer
2d3842f541 avformat: add mjpeg_probe()
Fixes Ticket3679

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 17:52:44 +02:00
Michael Niedermayer
2ffe55a64f avfilter/vf_zoompan: fix mixing of declarations and statements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 17:27:34 +02:00
Michael Niedermayer
375fa06125 Merge commit '1619274fb393f55a365cc10f88faa173c9a8e772'
* commit '1619274fb393f55a365cc10f88faa173c9a8e772':
  av_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 17:25:09 +02:00
Michael Niedermayer
383d8ddf29 Merge commit '7b06ddb8352fe7f434414d7911ced94956bb25b2'
* commit '7b06ddb8352fe7f434414d7911ced94956bb25b2':
  configure: use .altmacro for gnu as check on arm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 16:48:08 +02:00
Ronald S. Bultje
f341340552 swr: handle 64bit overflow check in multiple_resample().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 15:24:51 +02:00
Michael Niedermayer
637093a2db avcodec/utvideoenc: skip unused huffman entries
This very slightly improves compression
Found-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 15:11:53 +02:00
Michael Niedermayer
29a1164e60 avcodec/utvideodec: fix use of get_vlc2()
The max depth is 3

Found-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 14:56:00 +02:00
Michael Niedermayer
334aafe565 avcodec/huffman/ff_huff_gen_len_table: support skiping stat=0 entries
This is probably not the simplest solution but as this is needed for a bugfix,
simplification is left for later.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 14:56:00 +02:00
Carl Eugen Hoyos
673716c54b avcodec/utvideodec: Increase vlc len
Fixes a regression since fb3e380 similar to ticket #2661,
reported by fluffrabbit at aol dot com.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 14:56:00 +02:00
Paul B Mahol
4b6cb1cc69 Zoom & Pan filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-06-09 12:41:33 +00:00
Janne Grunau
1619274fb3 av_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE
av_dict_set leaks it key/value arguments if AV_DICT_DONT_OVERWRITE is
combined with AV_DICT_DONT_STRDUP_{KEY,VAL} and the key exists.
2014-06-09 12:33:19 +02:00
Janne Grunau
7b06ddb835 configure: use .altmacro for gnu as check on arm
Clang's integrated assembler (after 3.4) does not yet support the
'.altmacro' directive which is only used in arm asm. Support is planned:
http://llvm.org/bugs/show_bug.cgi?id=18918
2014-06-09 12:33:19 +02:00
Michael Niedermayer
0accf24b15 cavsdec: fix qp fixed slice handling
Fixes Ticket3400

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 05:47:49 +02:00
Michael Niedermayer
52e563bb2f avformat/cavsvideodec: Fix probing when the file extension is avs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 05:17:34 +02:00
James Almer
345f2234d1 x86/scale: fix xmm register count for hscale*_sse2
xmm6 was being clobbered in ff_hscale8to{15,19}_8_sse2 on Win64

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 04:13:23 +02:00
James Almer
6d408495b5 x86/dct32: don't build ff_dct32_float_sse on x86_64
There's an SSE2 version already, and technically the SSE version
on x86_64 was wrong (using pshufd and pshuflw, SSE2 instructions).

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 00:51:43 +02:00
Michael Niedermayer
7d8a60a442 avcodec/options_table: improve max/min rate help text
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 23:02:25 +02:00
James Almer
85065d2a7c x86/float_dsp: add missing femms
It was lost during the port.
Should fix fate on 3dnowext machines.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 20:06:28 +02:00
Michael Niedermayer
4959c4a793 avcodec/pthread_slice: Use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 16:34:50 +02:00
Michael Niedermayer
ab1e191720 avcodec/pthread_frame: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 16:34:20 +02:00
Michael Niedermayer
007547b282 avcodec: fix () in TRANSPOSE macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 15:26:18 +02:00
Michael Niedermayer
7c3af60016 avformat/movenc: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 15:26:03 +02:00
Michael Niedermayer
ee5145c05d avcodec/aacpsy: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 15:14:03 +02:00
Michael Niedermayer
6e6bd5481c avcodec/alsdec: Clear MPEG4AudioConfig so that no use of uninitialized memory is possible
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 14:30:30 +02:00
James Almer
dcaf9660b6 x86/float_dsp: port vector_fmul_window to yasm
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 12:41:32 +02:00
Michael Niedermayer
d4be3a8d63 configure: add llauddsp dependancy for wmalossless_decoder
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 03:10:24 +02:00
James Almer
fc8db12a73 x86/vp9: inital AVX2 intra_pred
tos3k-vp9-b10000.webm on a Core i5-4200U @1.6GHz

1219 decicycles in ff_vp9_ipred_dc_32x32_ssse3, 131070 runs, 2 skips
439 decicycles in ff_vp9_ipred_dc_32x32_avx2, 131070 runs, 2 skips

3570 decicycles in ff_vp9_ipred_dc_top_32x32_ssse3, 4096 runs, 0 skips
2494 decicycles in ff_vp9_ipred_dc_top_32x32_avx2, 4096 runs, 0 skips

1419 decicycles in ff_vp9_ipred_dc_left_32x32_ssse3, 16384 runs, 0 skips
717 decicycles in ff_vp9_ipred_dc_left_32x32_avx2, 16384 runs, 0 skips

2737 decicycles in ff_vp9_ipred_tm_32x32_avx, 1024 runs, 0 skips
2088 decicycles in ff_vp9_ipred_tm_32x32_avx2, 1024 runs, 0 skips

3090 decicycles in ff_vp9_ipred_v_32x32_avx, 512 runs, 0 skips
2226 decicycles in ff_vp9_ipred_v_32x32_avx2, 512 runs, 0 skips

1565 decicycles in ff_vp9_ipred_h_32x32_avx, 1024 runs, 0 skips
922 decicycles in ff_vp9_ipred_h_32x32_avx2, 1024 runs, 0 skips

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-08 02:37:20 +02:00
Michael Niedermayer
5183fac92f avcodec/hevc_sei: fix invalid get_bits() in a comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 23:37:27 +02:00
Michael Niedermayer
01ef127bf8 ffmpeg: support setting AVStream.discard
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 21:26:22 +02:00
Michael Niedermayer
5affab960c ffmpeg_opt: remove unused variable and undocumented and not working command line option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 21:13:08 +02:00
Michael Niedermayer
118c042116 avcodec/tscc2: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 17:44:23 +02:00
Michael Niedermayer
925bd174f2 avcodec/tta: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 17:44:14 +02:00
Michael Niedermayer
f240740712 avfilter/af_amix: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 15:06:14 +02:00
Michael Niedermayer
a62814abf4 avfilter/af_channelmap: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 15:05:51 +02:00
Michael Niedermayer
1c7ac94cdf avfilter/af_aphaser: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 15:05:33 +02:00
Michael Niedermayer
3a10bf93b5 avdevice/lavfi: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 15:04:50 +02:00
Michael Niedermayer
b2d1e22c2a avformat/udp: fix build on MINIX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 14:43:07 +02:00
Michael Niedermayer
74760883fc avformat/flvenc: Do not allow creating h263/mpeg4 in flv without unofficial format extensions being enabled.
Found-by: Jean-Baptiste Kempf <jb@videolan.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 12:03:31 +02:00
Michael Niedermayer
5a376976a0 avcodec/vorbisdec: Reset first_frame
This avoids returning a initial frame after seeking which does
not match what would be received when decoding from the begin.

Suggested-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-07 02:09:27 +02:00
Michael Niedermayer
71da91e887 avcodec/libvpxenc: update the ranges for "cpu_used" so it matches the "speed" alias
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:52:20 +02:00
Rafaël Carré
5265e3e40f avcodec/libvpxenc: Update the "cpu-used" options default to match the "speed" alias
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:50:03 +02:00
Michael Niedermayer
37cf695af0 Merge commit '3d79d0c93e5b37a35b1b22d6c18699c233aad1ba'
* commit '3d79d0c93e5b37a35b1b22d6c18699c233aad1ba':
  adpcm: Avoid reading out of bounds in the IMA QT trellis encoder

See: a32765c425
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:42:54 +02:00
Michael Niedermayer
faabef3d3d Merge commit '103243ca649cc305129ed0352bf4d97e5ddf4d80'
* commit '103243ca649cc305129ed0352bf4d97e5ddf4d80':
  oggenc: Set the right AVOption size for the pref_duration option

See: 536baf6cc5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:36:12 +02:00
Michael Niedermayer
cd016db425 Merge commit 'f558f0d2da9426c7f5ba346b5b8e6eb720148362'
* commit 'f558f0d2da9426c7f5ba346b5b8e6eb720148362':
  avcodec options: add enum option for color_range

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:34:44 +02:00
Michael Niedermayer
00acf5c42a Merge commit '7c29b7229bedf0c37d09bd02dab88e563adffd3c'
* commit '7c29b7229bedf0c37d09bd02dab88e563adffd3c':
  avcodec options: add enum option for colorspace

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:19:45 +02:00
Michael Niedermayer
9e1d97aa06 Merge commit 'efc2dfe6a0238ec08769626db899ea910be24407'
* commit 'efc2dfe6a0238ec08769626db899ea910be24407':
  avcodec options: add enum option for color_trc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:09:26 +02:00
Michael Niedermayer
58e501b1e9 Merge commit 'bd71c300f9ba7f9875bb5df17ce522e9128bae10'
* commit 'bd71c300f9ba7f9875bb5df17ce522e9128bae10':
  avcodec options: add enum option for color_primaries

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 23:01:31 +02:00
Michael Niedermayer
3b42a8e439 avcodec/mpeg12enc: store sequence display extension only if we have something to store in it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 22:54:22 +02:00
Michael Niedermayer
5163fb9446 Merge commit '8a06794112d02a5707f766b8b38a5d50dfd03898'
* commit '8a06794112d02a5707f766b8b38a5d50dfd03898':
  mpeg2: add sequence display extension information

Conflicts:
	libavcodec/mpeg12enc.c
	tests/ref/lavf/gxf
	tests/ref/lavf/mxf
	tests/ref/lavf/mxf_d10
	tests/ref/lavf/ts
	tests/ref/seek/lavf-gxf
	tests/ref/seek/lavf-mxf
	tests/ref/seek/lavf-ts
	tests/ref/seek/vsynth2-mpeg2-422
	tests/ref/seek/vsynth2-mpeg2-idct-int
	tests/ref/seek/vsynth2-mpeg2-ilace
	tests/ref/seek/vsynth2-mpeg2-ivlc-qprd
	tests/ref/seek/vsynth2-mpeg2-thread
	tests/ref/seek/vsynth2-mpeg2-thread-ivlc
	tests/ref/vsynth/vsynth1-mpeg2
	tests/ref/vsynth/vsynth1-mpeg2-422
	tests/ref/vsynth/vsynth1-mpeg2-idct-int
	tests/ref/vsynth/vsynth1-mpeg2-ilace
	tests/ref/vsynth/vsynth1-mpeg2-ivlc-qprd
	tests/ref/vsynth/vsynth1-mpeg2-thread
	tests/ref/vsynth/vsynth1-mpeg2-thread-ivlc
	tests/ref/vsynth/vsynth2-mpeg2
	tests/ref/vsynth/vsynth2-mpeg2-422
	tests/ref/vsynth/vsynth2-mpeg2-idct-int
	tests/ref/vsynth/vsynth2-mpeg2-ilace
	tests/ref/vsynth/vsynth2-mpeg2-ivlc-qprd
	tests/ref/vsynth/vsynth2-mpeg2-thread
	tests/ref/vsynth/vsynth2-mpeg2-thread-ivlc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 22:36:07 +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
Vignesh Venkatasubramanian
c80181352c lavf/matroskaenc: Fix Cues on Audio for WebM DASH
Fix a change that was broken by [1]. Cues must be added for audio frames
on cluster start for WebM when the DASH flag is passed. Restoring
correct functionality.

[1] http://goo.gl/xYLq7Z

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 21:36:11 +02:00
Michael Niedermayer
e374e77292 avutil/libm: fix fminf() emulation build failure due to undefined FFMIN
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 21:00:11 +02:00
Martin Storsjö
3d79d0c93e adpcm: Avoid reading out of bounds in the IMA QT trellis encoder
This was broken in 095be4fb - samples+ch (for the previous
non-planar case) equals &samples_p[ch][0]. The confusion
probably stemmed from the IMA WAV case where it originally
was &samples[avctx->channels + ch], which was correctly
changed into &samples_p[ch][1].

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 19:23:54 +03:00
Martin Storsjö
103243ca64 oggenc: Set the right AVOption size for the pref_duration option
On big endian machines, the default value set via the faulty
AVOption ended up as 2^32 times too big.

This fixes the fate-lavf-ogg test which currently is broken on
big endian machines, broken since 3831362. Since that commit,
a final zero-sized packet is written to the ogg muxer in that test,
which caused different flushing behaviour on little and big endian
depending on whether the pref_duration option was handled as it
should or not.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 19:22:14 +03:00
Michael Niedermayer
049b20b287 avcodec/adpcmenc: fix integer overflow / undefined behavior in STORE_NODE()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 18:03:31 +02:00
Michael Niedermayer
1aa60980d2 fate: enable fate-seek-acodec-adpcm-ima_qt-trellis
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 18:03:31 +02:00
Michael Niedermayer
867c02acd2 avfilter/avf_showcqt: avoid using fminf()
The loop with fminf() changes from 18093856 to 17403218 dezicycles (gcc 4.6.3, sandybridge i7)

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 17:20:05 +02:00
Michael Niedermayer
afce834843 avutil/libm: Replace macro based fminf() by function
This avoids issues when the FFMIN parameter evaluation has side effects

Reviewed-by: Clément Bœsch <u@pkh.me>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 17:18:14 +02:00
Martin Storsjö
fa8f060b75 adpcm: Write the proper predictor in trellis mode in IMA QT
The actual predictor value, set by the trellis code, never
was written back into the variable that was written into
the block header. This was accidentally removed in b304244b.

This significantly improves the audio quality of the trellis
case, which was plain broken since b304244b.

Encoding IMA QT with trellis still actually gives a slightly
worse quality than without trellis, since the trellis encoder
doesn't use the exact same way of rounding as in
adpcm_ima_qt_compress_sample and adpcm_ima_qt_expand_nibble.

Fixes part of Ticket3701

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 17:08:21 +02:00
Michael Niedermayer
fb7646d92c fate: enable adpcm-ima_qt-trellis
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 17:08:21 +02:00
Martin Storsjö
a32765c425 adpcm: Fix trellis encoding of IMA QT
This was broken in 095be4fb - samples+ch (for the previous
non-planar case) equals &samples_p[ch][0]. The confusion
probably stemmed from the IMA WAV case where it originally
was &samples[avctx->channels + ch], which was correctly
changed into &samples_p[ch][1].

Fixes part of Ticket3701

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 17:07:11 +02:00
Marc-Antoine Arnaud
f558f0d2da avcodec options: add enum option for color_range
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:40:08 +01:00
Marc-Antoine Arnaud
7c29b7229b avcodec options: add enum option for colorspace
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:39:50 +01:00
Marc-Antoine Arnaud
efc2dfe6a0 avcodec options: add enum option for color_trc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:39:34 +01:00
Marc-Antoine Arnaud
bd71c300f9 avcodec options: add enum option for color_primaries
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:39:08 +01:00
Marc-Antoine Arnaud
8a06794112 mpeg2: add sequence display extension information
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:38:10 +01:00
Michael Niedermayer
3133e7fd44 avutil/libm: use FFMIN instead of fmin()
MSVC apparently doesnt support fmin() either

Suggested/Found-by: ubitux, Daemon404, nevcairiel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 16:02:53 +02:00
Michael Niedermayer
27b893b231 avformat/mov: fix "warning: variable altitude set but not used" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 15:46:03 +02:00
Michael Niedermayer
2c1bf3fc96 avutil/libm: fix fminf typo
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 15:46:03 +02:00
Michael Niedermayer
97508af274 build: add fminf() emulation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 14:54:57 +02:00
Michael Niedermayer
a80342fe56 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Allow >2G for skip_initial_bytes.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 14:01:21 +02:00
Christophe Gisquet
adf4ee40e7 wma lossless: reuse scalarproduct_and_madd_int16
This is done by padding the coefficient buffer with 0s, because the order
may be only a multiple of 4, and the DSP function requires batches of 8.

However, no sample with such a case was found, so request one if it uses
that kind of order.

Approximate relative speedup depending on instruction set:
plain C: -6%
mmxext:  51%
sse2:    54%

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 13:51:41 +02:00
Michael Niedermayer
c2e2b29b73 Merge commit '2f7065190ad48744014a02288799d03adfa613e0'
* commit '2f7065190ad48744014a02288799d03adfa613e0':
  libfdk-aac: Relicense the library wrappers to the ISC license

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 13:41:27 +02:00
Michael Niedermayer
a083543da0 Merge commit 'e7d6d0bf3c5cc1bc048b0ddbc169a91862568e0c'
* commit 'e7d6d0bf3c5cc1bc048b0ddbc169a91862568e0c':
  mov: Export geotag metadata fields

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 13:24:30 +02:00
Martin Storsjö
2f7065190a libfdk-aac: Relicense the library wrappers to the ISC license
This reduces the number of different licenses used within libav,
and is preferrable since it has less ambiguous wordings than
the BSD license with respect to the duties of the user of the code.

Fraunhofer have now indicated that they're allowed to contribute
code under this license as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 10:48:27 +03:00
Martin Storsjö
e7d6d0bf3c mov: Export geotag metadata fields
The '?xyz' form is used by android devices (and according to apple
mailing list archives, also by older iOS devices). The 'loci' field
(defined in 3GPP 26.244) is used by recent iOS devices.

Even though the loci field can contain an altitude, it was plain
0 in my sample. Just export longitude and latitude, in a string
format matching the one used by the '?xyz' metadata field.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 10:46:10 +03:00
Carl Eugen Hoyos
d58bcc1921 Allow >2G for skip_initial_bytes. 2014-06-06 09:16:53 +02:00
James Almer
ec98f80af4 x86/dsputil: move some mmx init code inside dsputil_init_mmx()
This reduces differences with the fork

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 05:26:04 +02:00
Michael Niedermayer
0545ef7116 avcodec/mjpegdec: Improve intel jpeg flip heuristic
Fixes Ticket3698

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 01:32:22 +02:00
Michael Niedermayer
0a2004b6d1 avcodec/aic: fix quantization table permutation
Fixes Ticket3700

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 23:21:15 +02:00
Michael Niedermayer
bd650ee318 avcodec/mpegaudiodec: Reset dither and mdct state
This makes the mp3 decoder produce the same result when repeatly flushing and decoding

Suggested-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 21:25:51 +02:00
Christophe Gisquet
ccff45a0d3 apedsp: move to llauddsp
APE is not the sole codec using scalarproduct_and_madd_int16.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 20:31:59 +02:00
Michael Niedermayer
151f88d507 Merge commit 'd816e125fe1fa5c909b706d47904a4d6c1799996'
* commit 'd816e125fe1fa5c909b706d47904a4d6c1799996':
  dict: const correctness for av_dict_get() and av_dict_copy()

Conflicts:
	libavutil/dict.c
	libavutil/dict.h

See: e12a73246d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 18:55:44 +02:00
Michael Niedermayer
27856b2fe9 ffmpeg: prevent pts < dts to be passed through to the muxer on stream copy
Fixes Ticket3658

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 18:37:32 +02:00
Diego Biurrun
d816e125fe dict: const correctness for av_dict_get() and av_dict_copy() 2014-06-05 09:16:15 -07:00
Muhammad Faiz
40e938a7ed avfilter: new multimedia filter avf_showcqt.c
this filter is the same as showspectrum but with constant Q transform,
so frequency is spaced logarithmically
2014-06-05 14:04:01 +02:00
Timothy Gu
da53de0730 tests: add adpcm trellis tests
adpcm_ima_qt does not produce reproducible results, so it is temporarily
disabled (see #3701).

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 12:20:49 +02:00
Timothy Gu
591d9a072d tests: Add ac3_fixed decoder test
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 12:20:44 +02:00
Timothy Gu
fdc6e7b930 tests/swr: move the results out of the functions
This prevents all results from being declared whenever the function is called.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 12:20:39 +02:00
Michael Niedermayer
d37c620c84 avutil/ppc/intreadwrite: try to fix intreadwrite for ppc64le
Untested due to lack of hardware

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-05 03:30:58 +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
Michael Niedermayer
98ff07d1c6 avcodec/dcadec: Check dca_dmixtable index
Found-by: Niels Möller <nisse@lysator.liu.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 22:13:39 +02:00
Michael Niedermayer
47313bbb5f avcodec/dcadec: remove fishy FFMAX()
These where intended to maintain the previous behavior before dca_dmix_code()
but it is unclear (to me) which way is correct and no sample seem to trigger
the case, also they are incomplete for the purprose of error checking

Found-by: Niels Möller <nisse@lysator.liu.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 22:11:03 +02:00
Michael Niedermayer
6a0f9f27d5 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix rc_max_rate documentation.
  Fix some fate filter tests with --target-path.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 20:21:05 +02:00
Carl Eugen Hoyos
7738f925a6 Fix rc_max_rate documentation.
The mpegvideo decoder sets rc_max_rate since 25b7aa98.
2014-06-04 20:13:55 +02:00
Carl Eugen Hoyos
3c57f3ef5e Fix some fate filter tests with --target-path. 2014-06-04 20:13:40 +02:00
Michael Niedermayer
0efe3be71d Merge commit '39ec5e1cf8444f827c42effb76e5694e091bbff3'
* commit '39ec5e1cf8444f827c42effb76e5694e091bbff3':
  avconv: Report the codec and the encoder separately

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 20:08:22 +02:00
Tobias Rapp
d76f0c0378 avfilter/bufferqueue: Increase buffer queue size
Avoid buffer overruns when processing some MOV files with the amerge
filter. Files produced by Adobe Premiere Pro CC have up to one second of audio
not interleaved. With common settings (<= 48kHz) that makes up to 47 frames so
a queue length of 64 makes sense.

Fixes ticket #3510.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 18:41:04 +02:00
Michael Niedermayer
8f4b176c55 avcodec/dvbsubdec: add some basic av_log debuging support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 18:09:18 +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
Luca Barbato
39ec5e1cf8 avconv: Report the codec and the encoder separately
Bug-Id: 694
2014-06-04 13:04:40 +02:00
Michael Niedermayer
c7e54628e3 Merge commit '95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7'
* commit '95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7':
  oggenc: Support flushing the muxer

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 12:54:15 +02:00
Michael Niedermayer
a40c338a00 Merge commit 'd5a55981986ac5d1a31aef3a8d16eaff8534a412'
* commit 'd5a55981986ac5d1a31aef3a8d16eaff8534a412':
  build: check if AS supports the '.func' directive

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 12:45:35 +02:00
Martin Storsjö
95b7fa1729 oggenc: Support flushing the muxer
This allows the caller to write all buffered data to disk, allowing
the caller to know at what byte position in the file a certain
packet starts (any packet written after the flush will be located
after that byte position).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-04 12:21:10 +03:00
Michael Niedermayer
d5c9d055ea avcodec/x86/dsputilenc_mmx: fix build without yasm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 05:39:03 +02:00
Michael Niedermayer
571ab8344a avformat/avidec: allow rounding errors between scale/rate and timebase
Fixes Ticket3670

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 05:04:13 +02:00
Michael Niedermayer
19c9d1e8e7 avcodec/h264: in the absence of recovery points, be more tolerant on accepting plain I frames
Fixes: Ticket3652
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 04:25:14 +02:00
Michael Niedermayer
fbaf73a33d avcodec/lagarithrac: lag_get_rac: use normal division
maybe 0.3% faster and simpler code
2014-06-04 02:15:24 +02:00
Michael Niedermayer
d8ae0dfd99 avcodec/lagarithrac: increase LUT from 256 to 1024 bytes
about 2 cycles (~1%) faster lag_get_rac()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 02:03:34 +02:00
Michael Niedermayer
4fb4bf7289 avcodec/lagarithrac.h/lag_get_rac: drop apparently unneeded operations 2014-06-04 02:03:33 +02:00
James Almer
625ffa1457 x86/motion_est: sad_{x, y}2_mmxext functions are bitexact
Only the xy2 functions aren't.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 00:48:35 +02:00
James Almer
3ab4f96a91 motion-test: force C functions for the reference C context
It was instead using the highest available asm functions, which completely
kills the point of being a reference C context.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 00:48:28 +02:00
Michael Niedermayer
03acecae84 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix fate-aac-ln-encode with --target-path (second try).

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 00:40:11 +02:00
Carl Eugen Hoyos
12d6ae0142 Fix fate-aac-ln-encode with --target-path (second try). 2014-06-04 00:00:32 +02:00
Timothy Gu
108dec3055 x86: dsputilenc: convert hf_noise*_mmx to yasm
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Several bugfixes by: Christophe Gisquet <christophe.gisquet@gmail.com>
See: [FFmpeg-devel] [WIP] [PATCH 4/4] x86: dsputilenc: convert hf_noise*_mmx to yasm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 23:59:43 +02:00
Dave Rice
d63d964fb3 avcodec/libopenjpegenc: Add frame-threading capability
This gives a >50% speed up when encoding with libopenjpeg.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 21:17:04 +02:00
Lou Logan
88f2586adb fix various typos
Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 10:58:19 -08:00
Michael Niedermayer
137c5e115b ffmpeg: try to use the more fitting of the 2 encoder contexts
This fixes the interactively enabled encoder debug by pressing 'D'

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 19:48:25 +02:00
Michael Niedermayer
8d4d12a490 doc/muxers: Document problems of omitting nut syncpoints as well as alternatives
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 18:42:22 +02:00
Michael Niedermayer
83e8650f77 Merge commit '896a5bff64264f4d01ed98eacc97a67260c1e17e'
* commit '896a5bff64264f4d01ed98eacc97a67260c1e17e':
  arm: check if AS supports .dn

Conflicts:
	configure
	libavcodec/arm/vc1dsp_init_neon.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 18:19:21 +02:00
Michael Niedermayer
bcbd7dbce5 Merge commit '68a06b3a639ee21c78532ee4c50c3366bf890ff7'
* commit '68a06b3a639ee21c78532ee4c50c3366bf890ff7':
  aarch64: use '#' for whole line asm comments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 18:13:43 +02:00
Michael Niedermayer
40285d2659 Merge commit '6a0fa4d86f2b3e9060a1153b39fa3bfe36f1b617'
* commit '6a0fa4d86f2b3e9060a1153b39fa3bfe36f1b617':
  aarch64: remove optional :pg_hi21: for adrp instruction

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 18:03:19 +02:00
Michael Niedermayer
ab9afcdf04 Merge commit 'fd2981ea92d9a776fcb1a13377dce1c8a7db7b5e'
* commit 'fd2981ea92d9a776fcb1a13377dce1c8a7db7b5e':
  aarch64: add darwin style PAGE/PAGEOFF relocations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 18:02:42 +02:00
Michael Niedermayer
a4ed51ab40 avcodec/vp3: free tables before allocating new ones
Fixes memleak on seeking

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 17:09:17 +02:00
Michael Niedermayer
90b26d63ba avcodec/vp3: factorize out free_tables()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 17:08:32 +02:00
Michael Niedermayer
576654302b ffmpeg: use av_log_ask_for_sample() instead of duplicating avpriv_request_sample() 2014-06-03 16:05:37 +02:00
Michael Niedermayer
2422a7ffe4 Loose mplayer in MPlayer/incoming/
Found-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 16:03:44 +02:00
Michael Niedermayer
3e7b4b9fbd Add direct link to ML in missing_feature_sample()
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 15:58:27 +02:00
Michael Niedermayer
768ef0f19e ffmpeg: request sample if the decoder & demuxer has_b_frames mismatch
We cannot use avpriv_request_sample() as this is private to the libs
or rather it would be a bad usage example

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 15:24:00 +02:00
Michael Niedermayer
a0b2de77ed ffmpeg: remove "has_b_frames" backpassing
It seems working without this now for the files i tested it with, if this causes
a regression, dont hesitate to put the line back or open a ticket or fix (if possible)
the parser

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 15:23:43 +02:00
Michael Niedermayer
72e4ceeb79 avformat/asfdec: Use a parser for mpeg4-asp to find has_b_frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 15:23:30 +02:00
Janne Grunau
d5a5598198 build: check if AS supports the '.func' directive
Not supported by Clang's integrated assembler. Since it just adds
debug information it can safely omitted.
2014-06-03 14:23:03 +02:00
Janne Grunau
896a5bff64 arm: check if AS supports .dn
Move the GNU as check before the arch specific asm checks since the .dn
check requires gas compatible assembler.

Disable the VC-1 motion compensation NEON asm which is the only part
using that directive. The integrated assembler in the upcoming clang 3.5
does not support .dn/.qn without plans to change that. Too much effort
to implement it while it is rarely used.

http://llvm.org/bugs/show_bug.cgi?id=18199.
2014-06-03 14:23:03 +02:00
Janne Grunau
68a06b3a63 aarch64: use '#' for whole line asm comments
Both gnu as and clang treat lines starting with '#' as comments if they
aren't consumed by the C-style preprocessor.
Using '//' does not work with clang since comments are removed before
macro expansion.
2014-06-03 14:23:02 +02:00
Janne Grunau
6a0fa4d86f aarch64: remove optional :pg_hi21: for adrp instruction
Clang's integrated assembler does not support it.
2014-06-03 14:23:02 +02:00
Janne Grunau
fd2981ea92 aarch64: add darwin style PAGE/PAGEOFF relocations 2014-06-03 14:23:01 +02:00
Carl Eugen Hoyos
ad7de82218 Fix fate-opus and fate-aac-ln-encode with --target-path. 2014-06-03 10:43:14 +02:00
Michael Niedermayer
4e3fe65610 avcodec/utils/ff_init_buffer_info: Favor color information from AVFrame if available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-03 05:13:51 +02:00
Carl Eugen Hoyos
763e714442 Do not limit blocksize when reading PCM from aiff.
Fixes ticket #3695.
2014-06-03 03:07:55 +02:00
Lou Logan
c17973f19a doc/bsf: document noise bitstream filter
Partially addresses ticket #3198.

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-06-02 15:17:24 -08:00
Michael Niedermayer
1a426d5404 avformat/utils/avformat_find_stream_info: Move max_analyze_duration setup out of the packet loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 21:21:11 +02:00
Michael Niedermayer
2addbeef8b bfin: add README
Based on sh4/README
Suggested-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 20:18:44 +02:00
Michael Niedermayer
b55d3bbeed Merge commit '880e2aa23645ed9871c66ee1cbd00f93c72d2d73'
* commit '880e2aa23645ed9871c66ee1cbd00f93c72d2d73':
  Remove all Blackfin architecture optimizations

Conflicts:
	libavcodec/bfin/dsputil.S
	libavcodec/bfin/dsputil_init.c
	libavcodec/bfin/fdct_bfin.S
	libavcodec/bfin/hpel_pixels_no_rnd.S
	libavcodec/bfin/hpeldsp_init.c
	libavcodec/bfin/idct_bfin.S
	libavcodec/bfin/mathops.h
	libavcodec/bfin/pixels.S
	libavcodec/bfin/pixels.h
	libavcodec/bfin/vp3dsp.S
	libavcodec/bfin/vp3dsp_init.c
	libavutil/bfin/asm.h
	libavutil/bfin/attributes.h
	libswscale/bfin/internal_bfin.S
	libswscale/bfin/swscale_bfin.c
	libswscale/bfin/yuv2rgb_bfin.c
	libswscale/swscale_internal.h
	libswscale/version.h

If someone wants to maintain blackfin support in FFmpeg, please contact
ffmpeg-devel@ffmpeg.org

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 19:38:01 +02:00
Michael Niedermayer
fa4e17c140 Merge commit 'b88cc5cca111132b42c2ee99662bfefe7652e3da'
* commit 'b88cc5cca111132b42c2ee99662bfefe7652e3da':
  bink: Rename BinkDSPContext member so as not to clash with BlockDSPContext

Conflicts:
	libavcodec/bink.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 19:28:54 +02:00
Michael Niedermayer
666e29fe9e avutil/mathematics/av_add_stable: Avoid av_cmp_q() call
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 19:06:39 +02:00
Michael Niedermayer
e9add0d85b av_add_stable: Add fast special case where step can be represented exactly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 19:00:18 +02:00
Michael Niedermayer
4956d0e5a6 avutil/mathematics/av_add_stable: check for the common case of inc=1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 18:02:27 +02:00
Michael Niedermayer
5b7519fbaa avutil/mathematics/av_add_stable: avoid unneeded variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 18:00:34 +02:00
Diego Biurrun
880e2aa236 Remove all Blackfin architecture optimizations
Blackfin is a painful platform to work with, no test machines are available
and the range of multimedia applications is dubious. Thus it only represents
a maintenance burden.
2014-06-02 08:41:47 -07:00
Michael Niedermayer
6f6edfe1c0 avformat/utils: Call ff_rfps_add_frame() only for video
This avoids some unneeded computations

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 17:09:53 +02:00
Ronald S. Bultje
cdfd9717ed swr: move compensation_distance handling to swri_resample caller.
I think there's an off-by-one in terms of the switchpoint where we
switch from dst_incr to ideal_dst_incr, I don't think that's a massive
issue, but just be aware of that. It's probably trivial to prevent but
I don't care.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

I could not reproduce any off by 1 error, results are bit exact (michael)
2014-06-02 15:06:24 +02:00
Michael Niedermayer
bfb3ed1a9d avformat/mux: Dont leave stale side data pointers in ff_interleave_add_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 14:48:22 +02:00
Michael Niedermayer
74ece44373 avformat/mux: fix memleak of side data in flac fate tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 14:38:03 +02:00
Michael Niedermayer
bf0e5ac9cc fate: fate-hevc-conformance-INITQP_B_Sony_1 belongs to the 10bit kind
Fixes the test on big endian

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 13:11:42 +02:00
Diego Biurrun
b88cc5cca1 bink: Rename BinkDSPContext member so as not to clash with BlockDSPContext 2014-06-02 03:41:56 -07:00
Carl Eugen Hoyos
f284e85714 Report "unknown codec" instead of "unspecifed size" if the codec is unknown. 2014-06-02 08:33:40 +02:00
Timothy Gu
22d1b24982 tests: Replace fieldmatch test with pixfmt
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 04:12:10 +02:00
Michael Niedermayer
44a7299139 fate: add simple test for async
This only checks that things havnt changed, the values provide little
help in determining if a change is good or bad.

Improvements welcome!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 02:04:45 +02:00
Michael Niedermayer
2c23f87c85 swr/resample_template: prevent end_index from overflowing and add check for delta_frac overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 00:57:08 +02:00
Ronald S. Bultje
9b53853756 Rewrite main resampling loop (common and linear).
This removes a branch at a performance-sensitive point (in the middle
of the loop). In fate-swr-resample-s32p-8000-2626, this makes the code
about 10% faster. It also simplifies the loops, allowing us to rewrite
it in yasm at some later point.

The compensation_distance != 0 code and index < 0 code are still kind
of hairy. For compensation_distance != 0, this should likely be handled
in the caller, so that it calls swri_resample twice (once until the
dst_incr switch-point, and once with the remainder of the samples). For
index < 0, the code should probably be rewritten to break out of the
loop once sample_index >= 0, and then resume (e.g. as a tail-call) to
the common or linear resampling loops.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 00:47:54 +02:00
Michael Niedermayer
e91f27cbbb Merge commit '59cb5747ec3c5cd842b94e574c37889521c97cc4'
* commit '59cb5747ec3c5cd842b94e574c37889521c97cc4':
  rtmpproto: read metadata to set correct FLV header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-02 00:32:30 +02:00
Michael Niedermayer
6b9cbc9a11 Merge commit '3b18857ab301d2a0b3e86e9d85eed76f0798a29c'
* commit '3b18857ab301d2a0b3e86e9d85eed76f0798a29c':
  rtmppkt: Add method to read an AMF string that is not prefixed by its type

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 23:56:22 +02:00
Michael Niedermayer
8225bf95bc Merge commit 'a1859032e39d96352687186fd179e1559dea2aca'
* commit 'a1859032e39d96352687186fd179e1559dea2aca':
  flvdec: Do not default to a video and audio stream

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 23:51:41 +02:00
Christophe Gisquet
dcd2a6ca36 x86: hevc_mc: remove unneeded shift
The immediate value may be 0.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 23:34:33 +02:00
Christophe Gisquet
09fc28aed1 x86: hevcdsp_init: fix macro usage
The macro was not using the parameter but unconditionally using sse4.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 23:20:07 +02:00
Uwe L. Korn
59cb5747ec rtmpproto: read metadata to set correct FLV header
In the presence of no metadata, do not set any stream flag in the FLV
header but let the demuxer handle the detection and creation of streams
as data arrives.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-01 23:30:48 +03:00
Uwe L. Korn
3b18857ab3 rtmppkt: Add method to read an AMF string that is not prefixed by its type
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-01 23:30:33 +03:00
Uwe L. Korn
a1859032e3 flvdec: Do not default to a video and audio stream
If no streams were indicated in the FLV header, do not automatically
allocate by default a video and an audio stream. Instead, in the case
that the header did not indicate the presence of any data, allocate no
stream until data actually arrives for one type.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-01 23:29:40 +03:00
Michael Niedermayer
8b686c886c avcodec/options: use av_opt_copy() in avcodec_copy_context() to copy priv_data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 20:50:08 +02:00
Michael Niedermayer
00759d71a2 avutil/opt: add av_opt_copy()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 20:49:18 +02:00
Michael Niedermayer
f028b7af7b avutil/opt: add opt_size()
If people want, this could be exported as av_opt_size()
2014-06-01 20:47:50 +02:00
Michael Niedermayer
c4d88311cd avcodec/dpx_parser: fix off by 1 error
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 20:14:49 +02:00
Michael Niedermayer
d41a4a765b avcodec/mjpegenc: allow encoding amv with height % 16 != 0 when strict -1 is set
This should make it simpler for users to test if such videos work

Suggested-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 20:04:54 +02:00
Reimar Döffinger
6d695d7acc Fix nonsense non-mod16 AMV flipping code.
It is obviously nonsense since it produces wrong results
or even crashes (crashes should be encode-only though).
Fixes trac issue #1092.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 19:47:07 +02:00
Timothy Gu
527f5cbf64 tests: remove stale fate-update.sh script
This is the same as 5a15602a4e, which
accidentally did not get merged.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 19:05:15 +02:00
Timothy Gu
552c9904ab tests: Add pullup filter test
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 19:00:39 +02:00
Michael Niedermayer
3d820ba909 Merge commit 'f76e3669bb350ca6df150244f3d28d7dc5599f01'
* commit 'f76e3669bb350ca6df150244f3d28d7dc5599f01':
  Decode both parts of Indeo4 IP frames

Conflicts:
	libavcodec/ivi_common.c
	libavcodec/ivi_common.h

See: 8bfb4d72dd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:54:47 +02:00
Michael Niedermayer
571effb330 Merge commit '3df0d20028cb9d2daca16ac0dc6c3ab77183da37'
* commit '3df0d20028cb9d2daca16ac0dc6c3ab77183da37':
  Move Indeo4 frametypes into common header.

Conflicts:
	libavcodec/ivi_common.c

See: d24673a2c8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:39:21 +02:00
Michael Niedermayer
909dbb07eb ffmpeg_opt: fix ffserver with the 2 encoder contexts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:29:59 +02:00
Michael Niedermayer
758f929d21 ffmpeg: Fix choose_pixel_fmt() so it uses the correct encoding context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:16:08 +02:00
Michael Niedermayer
00dcb10631 ffmpeg: Fix encoder names in printout
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:15:56 +02:00
Michael Niedermayer
229022e788 ffmpeg_opt: fix attachment streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:15:56 +02:00
Michael Niedermayer
0949bbc431 ffmpeg: fix for-muxer AVCodecContext stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:15:55 +02:00
Michael Niedermayer
0949ff93c0 ffmpeg_filter: fix choose_pix_fmts() so it uses the correct encoding context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 17:15:46 +02:00
Michael Niedermayer
862120f980 Merge commit '383136264ef40452efd86cafb2d7221cd3830b3d'
* commit '383136264ef40452efd86cafb2d7221cd3830b3d':
  avconv: do not use the stream codec context for encoding

Conflicts:
	ffmpeg.c
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 15:53:23 +02:00
Michael Niedermayer
a87685d8e8 ffmpeg: add note about why has_b_frame is copied and when it can be removed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 15:32:50 +02:00
Michael Niedermayer
921d5ae3bc ffmpeg: replace remaining, ffmpeg specific ist->st->codec by ist->dec_ctx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 15:30:51 +02:00
Michael Niedermayer
9fb45334fc ffmpeg: copy b frame codec delay back from decoder to demuxer
The demuxer needs this value to generate correct timestamps in some corner cases
Ideally the parser would always set this correctly, but some parsers lac support
for extracting this value, also its not trivial.
This fixes a regression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 15:30:15 +02:00
Michael Niedermayer
d097935767 Merge commit '41776ba9c0ebbb71394cefdf7dd1b243e6c852d5'
* commit '41776ba9c0ebbb71394cefdf7dd1b243e6c852d5':
  avconv: do not use the stream codec context for decoding

Conflicts:
	ffmpeg.c
	ffmpeg_filter.c
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 14:35:53 +02:00
Michael Niedermayer
955b31a751 Merge commit 'e19d48dfce52f1417f7f06143b96fed00cbcdc52'
* commit 'e19d48dfce52f1417f7f06143b96fed00cbcdc52':
  flac muxer: support reading updated extradata from side data

Conflicts:
	libavformat/flacenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 14:16:29 +02:00
Michael Niedermayer
855e3b5700 Merge commit '0097cbea695e534fce39958ccd103af2fbf65831'
* commit '0097cbea695e534fce39958ccd103af2fbf65831':
  flac muxer: accept only STREAMINFO extradata

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 14:12:04 +02:00
Michael Niedermayer
05c5dd403d Merge commit 'ed39cda02923316b6710c1bcc34d3445370be5b4'
* commit 'ed39cda02923316b6710c1bcc34d3445370be5b4':
  flacenc: send final extradata in packet side data

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 13:55:49 +02:00
Michael Niedermayer
03bb99ae1a Merge commit '0957b274e312e985d69cb490bee2a7ff820acaa6'
* commit '0957b274e312e985d69cb490bee2a7ff820acaa6':
  lavc: add an option to enable side data-only packets during encoding

Conflicts:
	libavcodec/avcodec.h
	libavcodec/options_table.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 13:46:38 +02:00
Michael Niedermayer
0ccfcb0638 Merge commit 'eb800f120d2d42590fde2302fe828c847e41e773'
* commit 'eb800f120d2d42590fde2302fe828c847e41e773':
  libavcodec: set AVFrame colorspace fields on decoding

Conflicts:
	libavcodec/utils.c

See: a80e622924
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 13:39:31 +02:00
Michael Niedermayer
6e8e9f1e51 Merge commit '8c02adc62d71dfbb079a04753d8c16152c49de88'
* commit '8c02adc62d71dfbb079a04753d8c16152c49de88':
  lavu: add all color-related enums to AVFrame

Conflicts:
	libavcodec/avcodec.h
	libavutil/frame.c
	libavutil/frame.h
	libavutil/version.h

The version check is changed so they are available with the current ABI
FFmpeg libs should have no problems with added fields, nor should any
application using the libs, and we regularly added fields in the past.
We also moved 2 of these fields to AVFrame already previously without issues.

See: a80e622924
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 13:18:32 +02:00
Michael Niedermayer
ec1ed64506 avcodec/cljr: require (v)strict -1 to use width %4 != 0
Suggested-by: kurosu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 12:43:47 +02:00
Michael Niedermayer
754bf1212c Merge commit 'd2ef708c95ace2518deffe830a9c439aeb9edd5d'
* commit 'd2ef708c95ace2518deffe830a9c439aeb9edd5d':
  matroskaenc: Allow VP9 and Opus in webm

Conflicts:
	libavformat/matroskaenc.c

See: 820ffaed0f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 12:00:20 +02:00
Dirk Ausserhaus
f76e3669bb Decode both parts of Indeo4 IP frames
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-01 08:53:27 +02:00
Dirk Ausserhaus
3df0d20028 Move Indeo4 frametypes into common header.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-01 08:53:27 +02:00
Anton Khirnov
383136264e avconv: do not use the stream codec context for encoding 2014-06-01 08:33:21 +02:00
Anton Khirnov
41776ba9c0 avconv: do not use the stream codec context for decoding 2014-06-01 08:33:11 +02:00
Anton Khirnov
e19d48dfce flac muxer: support reading updated extradata from side data 2014-06-01 08:32:33 +02:00
Anton Khirnov
0097cbea69 flac muxer: accept only STREAMINFO extradata
The other format (full flac header blocks) should not be exported by any
demuxers anymore.

This allows to drop an avpriv_ function and also simplify the following
commits.
2014-06-01 08:31:33 +02:00
Anton Khirnov
ed39cda029 flacenc: send final extradata in packet side data 2014-06-01 08:27:01 +02:00
Anton Khirnov
0957b274e3 lavc: add an option to enable side data-only packets during encoding
Some encoders (e.g. flac) need to send side data when there is no more
data to be output. This enables them to output a packet with no data in
it, only side data.
2014-06-01 08:26:43 +02:00
wm4
eb800f120d libavcodec: set AVFrame colorspace fields on decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 08:23:05 +02:00
wm4
8c02adc62d lavu: add all color-related enums to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 08:22:02 +02:00
Tudor Suciu
d2ef708c95 matroskaenc: Allow VP9 and Opus in webm
Bug-Id: 695

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 07:50:00 +02:00
Michael Niedermayer
181b2c3724 avcodec/mjpegenc: disallow encoding amv with height%16!=0
I do not know on which side to place the padding to encode with 16x16 MBs
If someone knows or has a known to be correct sample, please contact me

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 04:00:47 +02:00
Michael Niedermayer
149be91374 avcodec/mjpegdec: request a AMV sample with non mod 16 height
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 04:00:47 +02:00
James Almer
e1bd40fe6b x86/motion_est: enable sad16_sse2 on k10 CPUs
The check is meant for k8 CPUs. sad16_sse2 is ~20% faster than sad16_mmxext on k10.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 02:10:32 +02:00
Michael Niedermayer
6dc709f0f5 avcodec/cljr: support width%4 encoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 00:48:48 +02:00
Michael Niedermayer
59a70422b1 avcodec/cljr: remove coded_frame code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 00:48:48 +02:00
James Almer
ac1077ab50 lavc/dsputil: add missing vsad8 and vsse8 functions
the mpeg encoder would try to use them if vsad or vsse were selected for frame_skip_cmp
and frame_skip_threshold or frame_skip_factor were set to values != 0

example: "ffmpeg -i INPUT -c:v mpeg2video -skipcmp vsad -skip_threshold 1 -f null -"

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 19:45:03 +02:00
Michael Niedermayer
28f7b81f9b Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Read mov files where the moov atom is hidden within a free atom.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 17:24:23 +02:00
Michael Niedermayer
e692c9672b avcodec/asvenc: fix encoding dimensions %16 != 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 17:16:44 +02:00
Michael Niedermayer
879aa062f9 avutil/frame: frame_copy_video: support copying from a smaller to a larger frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 17:16:44 +02:00
Michael Niedermayer
e868f84e83 avcodec/snow: fix 1 pixel block sizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 17:16:44 +02:00
Carl Eugen Hoyos
26b0d7198e Read mov files where the moov atom is hidden within a free atom.
Fixes ticket #1551 / issue 2226.
2014-05-31 16:57:27 +02:00
Carl Eugen Hoyos
aab2e939a9 Fix compilation with --disable-everything --enable-demuxer=matroska.
Fixes ticket #3693.
2014-05-31 16:29:02 +02:00
Carl Eugen Hoyos
e91e626182 lavc/jpeglsenc: Enable frame-threading. 2014-05-31 13:41:11 +02:00
Carl Eugen Hoyos
64afc3bb93 lavc/lclenc: Enable frame-threading. 2014-05-31 13:41:10 +02:00
Carl Eugen Hoyos
cdfe06aeb2 lavc/ljpegenc: Enable frame-threading. 2014-05-31 13:41:10 +02:00
Carl Eugen Hoyos
b91bf48f00 lavc/tiffenc: Enable frame-threading. 2014-05-31 13:41:10 +02:00
Carl Eugen Hoyos
c528d833a9 lavc/utvideoenc: Enable frame-threading. 2014-05-31 13:41:10 +02:00
Carl Eugen Hoyos
6e67852881 Use rc_max_rate in av_find_best_stream() if bitrate == 0.
Fixes ticket #2042.
2014-05-31 13:41:10 +02:00
John Peebles
925f7980eb libavformat: output cues for each subtitle block in MKV muxer
Signed-off-by: John Peebles <johnpeeb@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 13:26:48 +02:00
Michael Niedermayer
9c22e909ed Revert "avformat/movenchint: Fix movhinting with ff_rtp_chain_mux_open() from abb810db036628e11a5171134ebe320b187ee6d6"
This has become unneeded due to f797b134ca

This reverts commit 1fe40e1b05.
2014-05-31 12:54:00 +02:00
Michael Niedermayer
8c895ae73f Merge commit 'f797b134cad4d248b1c8955659997980d0668bc3'
* commit 'f797b134cad4d248b1c8955659997980d0668bc3':
  rtpenc_chain: Don't copy the time base to the source stream by default

See: 1fe40e1b05
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 12:53:46 +02:00
Martin Storsjö
f797b134ca rtpenc_chain: Don't copy the time base to the source stream by default
Only copy it manually in the muxers where it makes sense (rtspenc,
sapenc). Don't touch the original AVStream in movenchint, where
the original AVStream should be kept untouched.

This fixes the normal tracks in RTP hinted files after
abb810db - the hint tracks were ok while the normal media tracks
were broken, noticed by Michael Niedermayer.

This reverts abb810db but achieves the same effect for the other
muxers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-31 12:02:23 +03:00
Christophe Gisquet
4ba8560077 huffyuv: increase VLC_BITS to 12
May require a different tuning for arm chips?

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 04:26:41 +02:00
Michael Niedermayer
2e532aa82d avformat/flvenc: fix assertion failure after 4h muxing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 01:43:41 +02:00
James Almer
f128342df2 build: fix compilation of svq1enc_mmx.c with --disable-mmx
It's needed for ff_svq1enc_init_x86() even if simd functions are disabled.

Alternatively, svq1enc_init.c could be made and the relevant code moved there.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 00:38:24 +02:00
James Almer
4ac41a52e2 x86/huffyuvdsp: fix some prototypes
Remove duplicate prototypes and fix int -> intptr_t in another

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-31 00:29:00 +02:00
Michael Niedermayer
83b8987df7 Merge commit 'd6d767d93e532246cacf3567e6bcad76a821f838'
* commit 'd6d767d93e532246cacf3567e6bcad76a821f838':
  ppc: Fix compilation for ppc64le (ELFv2)

Conflicts:
	libavcodec/ppc/asm.S

See: 41b928c5fa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 23:15:20 +02:00
Michael Niedermayer
1fe40e1b05 avformat/movenchint: Fix movhinting with ff_rtp_chain_mux_open() from abb810db03
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 22:52:24 +02:00
Michael Niedermayer
692757062a Merge commit 'abb810db036628e11a5171134ebe320b187ee6d6'
* commit 'abb810db036628e11a5171134ebe320b187ee6d6':
  Revert "rtpenc_chain: Don't copy the time_base back to the caller"

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 22:03:51 +02:00
Thierry Fauck
d6d767d93e ppc: Fix compilation for ppc64le (ELFv2)
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-30 22:46:53 +03:00
Martin Storsjö
abb810db03 Revert "rtpenc_chain: Don't copy the time_base back to the caller"
While it strictly isn't necessary to copy the time base (since
any use of it is scaled in ff_write_chained), it still is better
to signal the actual time base to the caller, avoiding one
unnecessary rescaling. This also lets the caller know what the
actual internal time base is, in case that is useful info
for some caller.

This reverts commit 397ffde115.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-30 22:45:42 +03:00
Christophe Gisquet
d136fe6fd7 x86: huffyuvdsp: fewer functions for x86_64
When there are 2 functions that are <= SSE2, only one is needed for x86_64.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 21:39:06 +02:00
Michael Niedermayer
e0d0745560 avcodec/options: leave priv_data in avcodec_copy_context() intact
previously it was freed but the pointer not cleared

Found-by: ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 21:24:55 +02:00
Michael Niedermayer
82efa24c51 avcodec/proresenc_anatoliy: simplify get()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 18:49:25 +02:00
Michael Niedermayer
f6b1cd3936 avcodec/proresenc_anatoliy: load 4 samples at a time in get()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 18:49:25 +02:00
Michael Niedermayer
63b4d6feb8 avcodec/proresenc_anatoliy: Use fdct from DSPContext instead of direct call.
Based-on: a55546f48d by Diego Biurrun
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 18:49:25 +02:00
Michael Niedermayer
e263af3024 avcodec/proresenc_anatoliy: Set bits_per_raw_sample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 18:49:25 +02:00
Michael Niedermayer
8716605a26 avformat/nutenc: Suggest genpts if AV_NOPTS_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 18:49:25 +02:00
Carl Eugen Hoyos
3ea0d9c8a5 Fix VDPAU decoders, regression since f2f99f07. 2014-05-30 17:34:26 +02:00
Timothy Gu
154cee9292 x86: dsputilenc: convert ff_sse{8, 16}_mmx() to yasm
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 16:57:52 +02:00
Timothy Gu
0b6292b7b8 x86: dsputilenc: move all the function prototypes together
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 16:18:10 +02:00
Timothy Gu
bfb4882345 tests: Add MPEG4 nsse test
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 15:43:04 +02:00
Christophe Gisquet
f743fa9c7f x86: huffyuvdsp: add_hfyu_left_pred_bgr32
C   MMX   SSE2
Cycles: 3092  1053  578

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 15:20:36 +02:00
Michael Niedermayer
7be79c76d3 avcodec/huffyuvdsp: Change w to intptr in add_hfyu_median_pred() and add_hfyu_left_pred()
This avoids potential issues with the high 32bits being random in x86-64 asm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 15:12:58 +02:00
Christophe Gisquet
884078d2df x86: huffyuvdsp: add SSE2 median prediction
From 5010c to 4566 on lagarith YUY2.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 14:57:57 +02:00
Michael Niedermayer
b3dfebd641 avformat/matroskadec: fix off by 1 error in matroska_read_seek()
Fixes out of array read

Fixes: vp9-opus-crash.webm

Found-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 13:55:03 +02:00
Dirk Ausserhaus
8bfb4d72dd avcodec/indeo4: Decode both parts of IP frames
Fixes part of Ticket845

av_frame_move_ref() idea by Anton Khirnov

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 13:49:42 +02:00
Dirk Ausserhaus
d24673a2c8 avcodec/indeo4: Move frametypes into common header.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 13:49:25 +02:00
Carl Eugen Hoyos
ca2ec98cbe Do not overwrite the sample format with AV_SAMPLE_FMT_NONE in libspeex_decode_init().
Fixes a regression since ef48ac65 when decoding speex in f4v, reported
by irc user massdos.
2014-05-30 07:38:19 +02:00
Carl Eugen Hoyos
1acb5ca02a Improve frame size calculation in caf muxer to fix adpcm_ms remuxing.
Fixes ticket #3645.
2014-05-30 07:26:18 +02:00
Michael Niedermayer
772d46d3b3 avcodec/qpeldsp: Restore author attribution
See: 368f50359e
See:
similarity index 51%
copy from libavcodec/dsputil.c
copy to libavcodec/qpeldsp.c
index 6d41dfc..0beeab8 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/qpeldsp.c
@@ -1,9 +1,5 @@
 /*
- * DSP utils
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * gmc & q-pel & 32/64 bit based MC by Michael Niedermayer <michaelni@gmx.at>
+ * quarterpel DSP functions
  *
  * This file is part of FFmpeg.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 04:05:40 +02:00
Michael Niedermayer
8c891d90ca avcodec/x86/qpeldsp_init: Restore author attribution
See: 368f50359e
See: 44eb495128, and many others
See:
similarity index 83%
copy from libavcodec/x86/dsputil_init.c
copy to libavcodec/x86/qpeldsp_init.c
index ebbf97f..8f296a1 100644
--- a/libavcodec/x86/dsputil_init.c
+++ b/libavcodec/x86/qpeldsp_init.c
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
+ * quarterpel DSP functions
  *
  * This file is part of FFmpeg.
  *

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 04:05:29 +02:00
Michael Niedermayer
b15a3cc575 qpel_template: Restore author attribution
See: 368f50359e
See: 59fe111e81
See:
similarity index 98%
rename from libavcodec/dsputil_template.c
rename to libavcodec/qpel_template.c
index 95d966e..500c75b 100644
--- a/libavcodec/dsputil_template.c
+++ b/libavcodec/qpel_template.c
@@ -1,9 +1,5 @@
 /*
- * DSP utils
- * Copyright (c) 2000, 2001 Fabrice Bellard
- * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
- *
- * gmc & q-pel & 32/64 bit based MC by Michael Niedermayer <michaelni@gmx.at>
+ * quarterpel DSP function templates
  *
  * This file is part of FFmpeg.
  *

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 04:05:13 +02:00
Michael Niedermayer
98a6806fdd Merge commit '368f50359eb328b0b9d67451f56fda20b3255f9a'
* commit '368f50359eb328b0b9d67451f56fda20b3255f9a':
  dsputil: Split off quarterpel bits into their own context

Conflicts:
	configure
	libavcodec/dsputil.c
	libavcodec/h263dec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/vc1dec.c
	libavcodec/vc1dsp.c
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/qpeldsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 02:43:34 +02:00
Michael Niedermayer
d35899ccce Merge commit 'cb52a17cb62297802b0a77e5af9850d87c3f925b'
* commit 'cb52a17cb62297802b0a77e5af9850d87c3f925b':
  dsputil: Move Bink-specific add_pixels8 to binkdsp

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 01:23:04 +02:00
Michael Niedermayer
40f3a87c10 Merge commit '054013a0fc6f2b52c60cee3e051be8cc7f82cef3'
* commit '054013a0fc6f2b52c60cee3e051be8cc7f82cef3':
  dsputil: Move APE-specific bits into apedsp

Conflicts:
	libavcodec/arm/int_neon.S
	libavcodec/x86/dsputil.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 00:59:15 +02:00
Michael Niedermayer
5c6e94c42b Merge commit '256da0770e495176d1b2699ec6e9c7993c2a6d7b'
* commit '256da0770e495176d1b2699ec6e9c7993c2a6d7b':
  dsputil: Move mspel_pixels_tab to the only place it is used

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 00:42:36 +02:00
Michael Niedermayer
a9a312d299 Merge commit '3832a6590156e6abc575bed51cbffa78617ee5fd'
* commit '3832a6590156e6abc575bed51cbffa78617ee5fd':
  dsputil: Move ff_alternate_*_scan tables to mpegvideo

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 00:30:45 +02:00
Michael Niedermayer
c814a6c778 avcodec/x86/svq1enc_mmx: Add author attribution
See: 5900637219
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 00:30:05 +02:00
Michael Niedermayer
ea0931fb96 Merge commit '65d5d5865845f057cc6530a8d0f34db952d9009c'
* commit '65d5d5865845f057cc6530a8d0f34db952d9009c':
  dsputil: Move SVQ1 encoding specific bits into svq1enc

Conflicts:
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-30 00:01:45 +02:00
Michael Niedermayer
cb8763bda7 Merge commit '2ea2612df508abdd1f97c6a6ef56275a52c5c41e'
* commit '2ea2612df508abdd1f97c6a6ef56275a52c5c41e':
  svq1enc: Rename SVQ1Context to SVQ1EncContext

Conflicts:
	libavcodec/svq1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 23:50:56 +02:00
Michael Niedermayer
b3f4615081 ffmpeg: fix check for muxing overhead being unknown
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 23:39:54 +02:00
James Almer
02a3e327f1 x86/dsputilenc: add missing guards to ff_pix_sum16_xop
XOP support was added in Yasm 1.0.0 and Nasm 2.06, and we still
support older versions.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 22:31:28 +02:00
Christophe Gisquet
99a319c4e7 x86: huffyuvdsp: port add_bytes to yasm
C   MMX  SSE2
Cycles: 2972  587  302

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 21:56:00 +02:00
Christophe Gisquet
2267003981 x86: hpeldsp: better factorization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 21:47:40 +02:00
Christophe Gisquet
bf7e9cc82a tests: allow passing dimensions to videogen
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 21:26: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
Michael Niedermayer
40a4ab8ba4 rename sub_hfyu_median_prediction_int16 to sub_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:48:23 +02:00
James Almer
05de4d3011 x86/dsputilenc: implement XOP version of pix_sum16
SSE2: 137 cycles
XOP:   87 cycles
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 18:40:23 +02:00
Michael Niedermayer
232959f184 Merge commit '08cd92144e73195eecc28ed0348e66e255516b82'
* commit '08cd92144e73195eecc28ed0348e66e255516b82':
  aarch64: Use the correct syntax for relocations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 18:16:15 +02:00
Michael Niedermayer
fba0ac2805 avcodec/dpx_parser: Allow frame size to be too small
Fixes Ticket3402

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 17:28:06 +02:00
Michael Niedermayer
8df5d9aabf avcodec/dpx_parser: fix flushing end out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 17:22:26 +02:00
Michael Niedermayer
f518fb3318 avcodec/dpx_parser: reset index when finding a startcode, not after
This is simpler

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 17:18:47 +02:00
Diego Biurrun
368f50359e dsputil: Split off quarterpel bits into their own context 2014-05-29 06:48:31 -07:00
Diego Biurrun
cb52a17cb6 dsputil: Move Bink-specific add_pixels8 to binkdsp 2014-05-29 06:48:08 -07:00
Diego Biurrun
054013a0fc dsputil: Move APE-specific bits into apedsp 2014-05-29 06:41:15 -07:00
Diego Biurrun
256da0770e dsputil: Move mspel_pixels_tab to the only place it is used 2014-05-29 06:41:15 -07:00
Diego Biurrun
3832a65901 dsputil: Move ff_alternate_*_scan tables to mpegvideo 2014-05-29 06:41:15 -07:00
Diego Biurrun
65d5d58658 dsputil: Move SVQ1 encoding specific bits into svq1enc 2014-05-29 06:41:15 -07:00
Diego Biurrun
2ea2612df5 svq1enc: Rename SVQ1Context to SVQ1EncContext
This allows making it visible without name clashes.
2014-05-29 06:41:14 -07:00
Christophe Gisquet
25e6310a3e huffyuv: change left prediction access in BGRA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 14:46:21 +02:00
Christophe Gisquet
c609f803e1 huffyuv: avoid duplicated defines
Move the defines to the dsp header.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 14:08:35 +02:00
Martin Storsjö
08cd92144e aarch64: Use the correct syntax for relocations
This fixes building in PIC mode with gas. The examples in the gas
manual showed using a # here even though gas itself actually didn't
support that syntax (and the gas test suite only tests it without
the extra hash sign).

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-29 14:47:25 +03:00
Michael Niedermayer
4991eacc06 Merge commit '962d63157322466a9a82f9f9d84c1b6f1b582f65'
* commit '962d63157322466a9a82f9f9d84c1b6f1b582f65':
  matroskaenc: set the stream timebase earlier

Conflicts:
	tests/ref/lavf/mkv
	tests/ref/seek/lavf-mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 13:43:04 +02:00
Michael Niedermayer
e46cc1dab0 Merge commit '43e7f0797f9f821a3866a20f05e512e13c82076a'
* commit '43e7f0797f9f821a3866a20f05e512e13c82076a':
  flvenc: only write the framerate tag based on avg_frame_rate

Conflicts:
	tests/ref/lavf/flv_fmt
	tests/ref/seek/lavf-flv_fmt
	tests/ref/seek/vsynth2-flv
	tests/ref/vsynth/vsynth1-flashsv
	tests/ref/vsynth/vsynth1-flv
	tests/ref/vsynth/vsynth2-flashsv
	tests/ref/vsynth/vsynth2-flv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 13:30:12 +02:00
Michael Niedermayer
a72df4dadc Merge commit 'cf6977712c9e5abe6dc55289f6322ccbf10321a9'
* commit 'cf6977712c9e5abe6dc55289f6322ccbf10321a9':
  movenc: write avg_frame_rate as the framerate, not the codec timebase

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 13:07:33 +02:00
Michael Niedermayer
bc59d39b82 Merge commit '81eec081afea9fc017a175581ceea7c420a0dfc3'
* commit '81eec081afea9fc017a175581ceea7c420a0dfc3':
  matroskaenc: base DefaultDuration on the framerate, not the codec timebase

Conflicts:
	libavformat/matroskaenc.c
	tests/ref/lavf/mkv
	tests/ref/seek/lavf-mkv

See: ea83b032af
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 12:58:55 +02:00
Michael Niedermayer
d9c4f61dab Merge commit 'a53551cba86bb67efcb6105fdc337a36c43132bd'
* commit 'a53551cba86bb67efcb6105fdc337a36c43132bd':
  frame: fix the error path in av_frame_copy_props()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 12:35:02 +02:00
Anton Khirnov
962d631573 matroskaenc: set the stream timebase earlier
Fixes calculating the ts offset for audio codecs with delay.
2014-05-29 08:01:58 +02:00
Anton Khirnov
43e7f0797f flvenc: only write the framerate tag based on avg_frame_rate
Do not fall back on the codec timebase, since that can be anything for
VFR video.
2014-05-29 08:01:30 +02:00
Anton Khirnov
cf6977712c movenc: write avg_frame_rate as the framerate, not the codec timebase 2014-05-29 08:01:23 +02:00
Anton Khirnov
81eec081af matroskaenc: base DefaultDuration on the framerate, not the codec timebase
This results in DefaultDuration not being written when the framerate is
not known, but as this field is purely informative, this should not
break any sane demuxers.
2014-05-29 08:00:57 +02:00
Roman Savchenko
a53551cba8 frame: fix the error path in av_frame_copy_props()
First free metadata, then the side data it is contained in.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-29 07:59:56 +02:00
Michael Niedermayer
78a79a2ceb avformat/nutenc: replace conditional by assert
Its implied by sp_count==0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 04:26:18 +02:00
Michael Niedermayer
6d1aba6a29 avformat/nutenc: limit index table size if no index is going to be written
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 03:49:16 +02:00
Michael Niedermayer
82beb46e65 avformat/nutenc: add mode that omits the index
When the index is not written, several data tables become unneeded,
reducing memory and cpu requirements.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 03:37:37 +02:00
Michael Niedermayer
df889be0a8 nutenc: avoid av_tree_find() operation per syncpoint
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 03:20:04 +02:00
Michael Niedermayer
6b041cb617 avformat/nutdec: Fix handling of older 4.0 files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:48:02 +02:00
Michael Niedermayer
170a4d79c0 avformat/nutenc: bump minor version due to broadcast/pipe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:44:02 +02:00
Michael Niedermayer
45daae06fd avformat/nutenc: change check to match comment
The code appears to assume STABLE will never change

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:41:56 +02:00
Michael Niedermayer
99b15f1daa avformat/nutenc: fix used version value
The broadcast/pipe flags arent stable + 1 they would be 4 or whenever but wouldnt change based
on which is stable

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:40:07 +02:00
Michael Niedermayer
20343cfb51 Merge commit 'ad0fe2f4012031c47268f14b9835088c488e1998'
* commit 'ad0fe2f4012031c47268f14b9835088c488e1998':
  af_resample: Use avresample_get_out_samples

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:24:48 +02:00
Michael Niedermayer
bdb2e80e88 Merge commit 'b2d45654220503224aa94e78cdff19ec624e9342'
* commit 'b2d45654220503224aa94e78cdff19ec624e9342':
  avresample: Add avresample_get_out_samples

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:23:22 +02:00
Michael Niedermayer
a8499cbbe8 Merge commit 'c94e2e85cb6af8a570d8542a830556243bd32873'
* commit 'c94e2e85cb6af8a570d8542a830556243bd32873':
  nut: Support experimental NUT 4 features

Conflicts:
	doc/nut.texi
	libavformat/nut.h
	libavformat/nutdec.c
	libavformat/nutenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 01:13:59 +02:00
Michael Niedermayer
d858ee717b Merge commit '6d212599aa684f30511fb08ca30fe2378405304e'
* commit '6d212599aa684f30511fb08ca30fe2378405304e':
  avformat: Provide a standard compliance flag

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 00:20:48 +02:00
Michael Niedermayer
b50559fc0b libavcodec/x86/dsputilenc: drop and 0xffff that should have becomei redundant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 00:16:52 +02:00
James Almer
561bfc85eb x86/dsputilenc: implement SSE2 versions of pix_{sum16, norm1}
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 23:29:34 +02:00
Michael Niedermayer
d228271813 tests/fate/opus: change test to use the official reference samples
The official samples are 50% smaller
Avoid having reference samples which are strongly linked to the used resampler
implementation. (which for example would require new samples to be used if this
implementation changes)
Also its more correct to use the official samples instead of the current
decoder output

also enable tests
The tests also fully pass as well with the previous samples.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 23:12:46 +02:00
Luca Barbato
ad0fe2f401 af_resample: Use avresample_get_out_samples 2014-05-28 22:50:55 +02:00
Konrad Iturbe
c3ee6e3153 INSTALL: add markdown syntax
Reviewed-by: llogan
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 22:38:38 +02:00
Konrad Iturbe
50f4d0bb50 LICENCE: add markdown syntax
Reviewed-by: llogan
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 22:38:28 +02:00
Konrad Iturbe
c1485afe49 README: add markdown syntax
Reviewed-by: llogan
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 22:38:11 +02:00
Luca Barbato
b2d4565422 avresample: Add avresample_get_out_samples
Utility function to get the upper bound on the number of samples the
resampler would output.
2014-05-28 22:04:56 +02:00
Luca Barbato
c94e2e85cb nut: Support experimental NUT 4 features
Add the low overhead pipe mode and the extended broadcast mode.
Export the options as 'syncponts' since it impacts only that.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-28 22:04:56 +02:00
Luca Barbato
6d212599aa avformat: Provide a standard compliance flag
Provide f_strict for avconv usage.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-28 22:04:56 +02:00
Michael Niedermayer
b3f9052177 Merge commit '7dba055bb0d31b2c79d9c3a66abb849a71417d3c'
* commit '7dba055bb0d31b2c79d9c3a66abb849a71417d3c':
  oggenc: Fix the EOS flag

Conflicts:
	tests/ref/lavf/ogg

See: 919c320f72
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 22:03:34 +02:00
Michael Niedermayer
7dba055bb0 oggenc: Fix the EOS flag
This corrects the bug that caused the checksums to change in
9767d7c092.

It caused the EOS flag to be set incorrectly; the ogg spec does not
allow it to be set in the middle of a logical bitstream.

Signed-off-by: Andrew Kelley <superjoe30@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-28 21:51:38 +03:00
Vignesh Venkatasubramanian
c14045c818 lavf: Remove experimental flag for Opus in WebM
Opus in WebM is no more experimental as we have everything necessary in
the container writing code as per the spec. So removing the experimental flag.
Note that we removed the experimental suffix from the CodecId field long
ago ( http://goo.gl/O0TYRB ).

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 19:29:45 +02:00
Lazaros Koromilas
0f87b42b44 libavformat/utils: Warning about invalid cover art instead of an error
This way other streams can still be used with the -map option.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 19:12:02 +02:00
Christophe Gisquet
0810608e23 x86: hevc_mc: better register allocation
The xmm reg count was incorrect, and manual loading of the gprs
furthermore allows to noticeable reduce the number needed.

The modified functions are used in weighted prediction, so only a
few samples like WP_* exhibit a change. For this one and Win64
(some widths removed because of too few occurrences):

WP_A_Toshiba_3.bit, ff_hevc_put_hevc_uni_w
         16    32
before: 2194  3872
after:  2119  3767

WP_B_Toshiba_3.bit, ff_hevc_put_hevc_bi_w
         16    32    64
before: 2819  4960  9396
after:  2617  4788  9150

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 17:39:34 +02:00
Michael Niedermayer
ec33f59fed avcodec/mjpegdec: Support pix_fmt_id== 0x42111100
Fixes: 538782_300.jpg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 16:36:04 +02:00
Michael Niedermayer
cf3a038f50 avformat/matroskaenc: fix ident string
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 15:15:14 +02:00
Michael Niedermayer
175aeab0b4 Merge commit 'b5aa48551300eed678aaea86ced7086758598a35'
* commit 'b5aa48551300eed678aaea86ced7086758598a35':
  ppc: Move vec_unaligned_load macro to util_altivec

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 14:53:55 +02:00
Michael Niedermayer
2320731614 Merge commit '593886b5dd2b583657aa3fd80bb173f702c9710d'
* commit '593886b5dd2b583657aa3fd80bb173f702c9710d':
  ppc: util_altivec: Drop unused macros

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 14:44:55 +02:00
Michael Niedermayer
61917a104e Merge commit '106b62f4ba600f24415eaded5e020aeceb23fd59'
* commit '106b62f4ba600f24415eaded5e020aeceb23fd59':
  matroskaenc: write the channel mask for FLAC

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 13:19:26 +02:00
Michael Niedermayer
dff4aa6afd Merge commit 'efcde917af407a6031ecff68edd51fce7b83d104'
* commit 'efcde917af407a6031ecff68edd51fce7b83d104':
  vorbiscomment: simplify API by using av_dict_count()

Conflicts:
	libavformat/flacenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 13:08:50 +02:00
Michael Niedermayer
579e2b2874 Merge commit '23f741f79327e31be7b2a75ebb2e02111e06e52f'
* commit '23f741f79327e31be7b2a75ebb2e02111e06e52f':
  matroskadec: parse the channel layout mask for FLAC

Conflicts:
	libavformat/oggparsevorbis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 13:02:19 +02:00
Michael Niedermayer
1c0ce2d4e0 Merge commit '4efdadc8ec50332c812e8a95e8c67f5a260e7cb0'
* commit '4efdadc8ec50332c812e8a95e8c67f5a260e7cb0':
  matroskadec: export just the STREAMINFO block as FLAC extradata

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 12:49:28 +02:00
Michael Niedermayer
69de229bb8 Merge commit '6df478bf891b9fc5626e4a0b993899f310ba0a1c'
* commit '6df478bf891b9fc5626e4a0b993899f310ba0a1c':
  matroskadec: split parsing tracks into a separate function

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 12:41:35 +02:00
Michael Niedermayer
40beec6a43 Merge commit '5fdaf312c5541b77b6364db8b49d6abb416a25c0'
* commit '5fdaf312c5541b77b6364db8b49d6abb416a25c0':
  flac: make avpriv_flac_parse_block_header() inline

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 12:33:49 +02:00
Diego Biurrun
b5aa485513 ppc: Move vec_unaligned_load macro to util_altivec
This allows reusing it from multiple files.
2014-05-28 03:29:33 -07:00
Michael Niedermayer
61301ca786 Merge commit '54ed488b1af583df6c9d2a73b4a44f16b7e4f82c'
* commit '54ed488b1af583df6c9d2a73b4a44f16b7e4f82c':
  flac muxer: write WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag for multichannel files

Conflicts:
	libavformat/flacenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 12:28:23 +02:00
Michael Niedermayer
03ffaed3f0 Merge commit 'd6b9ce99ea384fb676561461768b8316725a4ccd'
* commit 'd6b9ce99ea384fb676561461768b8316725a4ccd':
  flac demuxer: parse the WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 12:21:50 +02:00
Michael Niedermayer
ef13967e60 Merge commit 'f13ffb6636fdecb5e3e0ddcff48f096e7b3db362'
* commit 'f13ffb6636fdecb5e3e0ddcff48f096e7b3db362':
  flacdec: do not overwrite a channel layout set by the caller

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 12:20:12 +02:00
Diego Biurrun
593886b5dd ppc: util_altivec: Drop unused macros 2014-05-28 03:11:24 -07:00
Anton Khirnov
106b62f4ba matroskaenc: write the channel mask for FLAC 2014-05-28 07:55:14 +02:00
Anton Khirnov
efcde917af vorbiscomment: simplify API by using av_dict_count() 2014-05-28 07:54:54 +02:00
Anton Khirnov
23f741f793 matroskadec: parse the channel layout mask for FLAC
It is commonly stored in a vorbiscomment block in codec private data.
2014-05-28 07:50:32 +02:00
Anton Khirnov
4efdadc8ec matroskadec: export just the STREAMINFO block as FLAC extradata
It contains all information that is used by the decoder and the other
FLAC-capable demuxers (flacdec, ogg) export only STREAMINFO as well.
2014-05-28 07:49:15 +02:00
Anton Khirnov
6df478bf89 matroskadec: split parsing tracks into a separate function 2014-05-28 07:48:59 +02:00
Anton Khirnov
5fdaf312c5 flac: make avpriv_flac_parse_block_header() inline
This avoids all the ABI troubles associated with avpriv_.
Since this function is very small and does not depend on any tables,
making it inline should have no adverse effects.
2014-05-28 07:48:30 +02:00
Anton Khirnov
54ed488b1a flac muxer: write WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag for multichannel files 2014-05-28 07:47:31 +02:00
Anton Khirnov
d6b9ce99ea flac demuxer: parse the WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag
It is used to store the channel mask for non-standard layouts.
2014-05-28 07:47:15 +02:00
Anton Khirnov
f13ffb6636 flacdec: do not overwrite a channel layout set by the caller
The channel layout mask for non-standard layouts is typically stored at
the container level (as a vorbiscomment tag) for FLAC.
2014-05-28 07:46:04 +02:00
Lukasz Marek
8518da23f5 ffmpeg: add -devices param
FFmpeg mix devices and file formats when -formats option is used.
This commit adds a -devices param to list devices only.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 03:52:50 +02:00
Lazaros Koromilas
bbc10a1aa5 libavformat/utils: Fix segfault on m4a cover artwork parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 03:35:39 +02:00
Thierry Foucu
12875df324 Timecode: Support 48fps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 03:25:41 +02:00
Michael Niedermayer
919c320f72 avformat/oggenc: fix EOS flag
This corrects the bug that caused the checksums to change in
9767d7c092

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 01:12:18 +02:00
Michael Niedermayer
b5657516b2 Merge commit '9767d7c092c890ecc5953452e8a951fd902dd67b'
* commit '9767d7c092c890ecc5953452e8a951fd902dd67b':
  oggenc: Flush after writing headers

Conflicts:
	tests/ref/lavf/ogg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 01:00:10 +02:00
Michael Niedermayer
5313d60dc0 Merge commit '1d3eb0b5735f6dd72d2bf648455cf06ac7c24bc1'
* commit '1d3eb0b5735f6dd72d2bf648455cf06ac7c24bc1':
  oggenc: Move ogg_write_pages up above ogg_write_header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 00:28:08 +02:00
Michael Niedermayer
48a6916308 Merge commit '512f3ffe9b4bb86767c2b1176554407c75fe1a5c'
* commit '512f3ffe9b4bb86767c2b1176554407c75fe1a5c':
  dsputil: Split off HuffYUV encoding bits into their own context

Conflicts:
	configure
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/huffyuv.h
	libavcodec/huffyuvenc.c
	libavcodec/pngenc.c
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-28 00:03:59 +02:00
Michael Niedermayer
e2abc0d5ca Merge commit '0d439fbede03854eac8a978cccf21a3425a3c82d'
* commit '0d439fbede03854eac8a978cccf21a3425a3c82d':
  dsputil: Split off HuffYUV decoding bits into their own context

Conflicts:
	configure
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/huffyuv.h
	libavcodec/huffyuvdec.c
	libavcodec/lagarith.c
	libavcodec/vble.c
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil.asm
	libavcodec/x86/dsputil_init.c
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 23:16:06 +02:00
Michael Niedermayer
43c57dbe14 Merge commit '888dcd86755d37e55fd74166f6d38ad66d41db58'
* commit '888dcd86755d37e55fd74166f6d38ad66d41db58':
  h264_picture: Remove pointless dsputil.h #include

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 22:34:16 +02:00
Michael Niedermayer
d84286b1ea Merge commit 'f1df0a4c08b54e722e7a2c797d0d31c7f2c531d0'
* commit 'f1df0a4c08b54e722e7a2c797d0d31c7f2c531d0':
  on2avc: Remove pointless dsputil.h #include

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 22:29:11 +02:00
Michael Niedermayer
5be8c27694 avformat/rtspdec: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 20:42:50 +02:00
Michael Niedermayer
2870617853 avcodec/vp3: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 20:42:50 +02:00
Michael Niedermayer
0674da997a avcodec/cavs: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 20:42:50 +02:00
Lou Logan
8a64ea768b doc/filters: amix only supports float samples
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-05-27 10:23:57 -08:00
Andrew Kelley
9767d7c092 oggenc: Flush after writing headers
Before, header information for ogg format files was sent with the
first encoded packet.

This patch makes it so that it is possible for API users to
differentiate between headers and encoded audio. This is useful, for
example, when creating an audio stream where you want to send one set
of headers for every client that connects and then the encoded stream
of audio.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-27 20:16:59 +03:00
Andrew Kelley
1d3eb0b573 oggenc: Move ogg_write_pages up above ogg_write_header
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-27 20:16:58 +03:00
Michael Niedermayer
1853e2cba9 avfilter/formats: Avoid using non public AV_SAMPLE_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 18:22:09 +02:00
Diego Biurrun
512f3ffe9b dsputil: Split off HuffYUV encoding bits into their own context
Also shorten HuffYUV context member names to avoid clutter.
2014-05-27 08:54:53 -07:00
Diego Biurrun
0d439fbede dsputil: Split off HuffYUV decoding bits into their own context
Also shorten HuffYUV context member names to avoid clutter.
2014-05-27 08:52:34 -07:00
Michael Niedermayer
0d26264fb4 avfilter/vf_drawtext: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:52:24 +02:00
Michael Niedermayer
ee0c91cc65 avfilter/vf_telecine: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:45:36 +02:00
Michael Niedermayer
515e8aed03 avfilter/vf_transpose: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:45:21 +02:00
Michael Niedermayer
e10ac3a12e avfilter/vf_swapuv: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:45:07 +02:00
Michael Niedermayer
cfa0ad6eec avfilter/vf_noise: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:44:45 +02:00
Michael Niedermayer
1dbc98461b avfilter/vf_mergeplanes: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:44:15 +02:00
Michael Niedermayer
c0f8801e47 avfilter/il: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:44:02 +02:00
Michael Niedermayer
5feac96fdb avfilter/hflip: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:43:46 +02:00
Michael Niedermayer
f3fdc32e2f avfilter/crop: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:43:32 +02:00
Michael Niedermayer
64fb19cc99 avfilter/formats: Avoid using non public AV_PIX_FMT_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 17:43:03 +02:00
Andreas Cadhalpun
0f17bc644c Improve the detection of architecture x86.
This fixes building on Debian GNU/Hurd.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 16:28:04 +02:00
James Almer
5863207086 x86/dsputilenc: use HADDD in ff_sse16_sse2
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 15:12:50 +02:00
Diego Biurrun
888dcd8675 h264_picture: Remove pointless dsputil.h #include 2014-05-27 03:12:17 -07:00
Diego Biurrun
f1df0a4c08 on2avc: Remove pointless dsputil.h #include 2014-05-27 03:12:17 -07:00
James Almer
e64e079ece x86/dsputilenc: implement SSE2 version of diff_pixels
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 05:55:11 +02:00
Michael Niedermayer
a0c5cd3475 avcodec/x86/dsputilenc: set the count of SSE registers correctly for get_pixels
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 05:52:25 +02:00
Michael Niedermayer
a1cb4efd2f Merge commit '7cc4c9f32f446feaec5447e3d097e8147e35f156'
* commit '7cc4c9f32f446feaec5447e3d097e8147e35f156':
  lavfi/formats: avoid using AV_{PIX,SAMPLE}_FMT_NB

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 03:23:23 +02:00
Michael Niedermayer
50ffd8439c Merge commit 'b03b2d86aa9d79670825b42d8a8a7c41f59cb444'
* commit 'b03b2d86aa9d79670825b42d8a8a7c41f59cb444':
  buffersrc: avoid using AV_PIX_FMT_NB

Conflicts:
	libavfilter/buffersrc.c

No change as AV_PIX_FMT_NB was not used by our buffersrc.c
See: 0d58bbb28d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 03:18:27 +02:00
Michael Niedermayer
cdf6a9441d Merge commit 'a7d070acb55c3ebbdd5e93e3366f32865732b8a3'
* commit 'a7d070acb55c3ebbdd5e93e3366f32865732b8a3':
  vf_fieldorder: avoid using AV_PIX_FMT_NB

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 03:02:37 +02:00
Michael Niedermayer
de5ec08825 Merge commit '862f33c10ea38ea49fa4188725df5e5246dbd1d8'
* commit '862f33c10ea38ea49fa4188725df5e5246dbd1d8':
  vf_scale: use the pixfmt descriptor API

Conflicts:
	libavfilter/vf_scale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 02:54:58 +02:00
Michael Niedermayer
a37f2cc579 avfilter/vf_format: fix duplicate ;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 02:53:17 +02:00
Michael Niedermayer
6e9dbee7c6 Merge commit '45fc73edfe071f9690e8671ed2dc402b1cb02ece'
* commit '45fc73edfe071f9690e8671ed2dc402b1cb02ece':
  vf_format: rework format list parsing

Conflicts:
	libavfilter/vf_format.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 02:46:56 +02:00
Michael Niedermayer
e222cfefcd Merge commit '4d8c28deab2488579f585406110b1be790896e59'
* commit '4d8c28deab2488579f585406110b1be790896e59':
  imgutils: make systematic palette opaque.

Conflicts:
	libavutil/imgutils.c

See: 4d8c28deab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-27 02:27:35 +02:00
Michael Niedermayer
e6a084641a avformat/utils: set max analyze duration depending on the circumstances
Fixes Ticket3673

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 22:33:01 +02:00
Michael Niedermayer
52887aa409 avformat: move default for max_analyze_duration into utils.c
this way we can do better tha a single fixed constant value

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 22:33:01 +02:00
Anton Khirnov
7cc4c9f32f lavfi/formats: avoid using AV_{PIX,SAMPLE}_FMT_NB
Thatt hardcodes the number of formats into lavfi and will break when a
shared lavu is updated, adding new formats.
2014-05-26 22:25:47 +02:00
Anton Khirnov
b03b2d86aa buffersrc: avoid using AV_PIX_FMT_NB
That hardcodes the number of pixel formats into lavfi and will break
when a shared lavu is updated, adding new pixel formats.
2014-05-26 22:25:41 +02:00
Anton Khirnov
a7d070acb5 vf_fieldorder: avoid using AV_PIX_FMT_NB
That hardcodes the number of pixel formats into lavfi and will break
when a shared lavu is updated, adding new pixel formats.
2014-05-26 22:25:26 +02:00
Anton Khirnov
862f33c10e vf_scale: use the pixfmt descriptor API
Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.
2014-05-26 22:24:46 +02:00
Anton Khirnov
45fc73edfe vf_format: rework format list parsing
Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.
2014-05-26 22:22:42 +02:00
Lou Logan
60ef61242c MAINTAINERS: add Trac maintainers
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-05-26 12:18:29 -08:00
Lou Logan
5b1a56b34b doc/ffmpeg: note that -t is also an input option
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-05-26 12:11:34 -08:00
Lou Logan
2dbf5e7038 configure: s/solving/solve
Signed-off-by: Lou Logan <lou@lrcd.com>
2014-05-26 11:54:35 -08:00
Clément Bœsch
53bac1b4bd doc: add a tutorial for writing filters. 2014-05-26 21:28:19 +02:00
Michael Niedermayer
d35000c2dc avcodec/g723_1: fix writing into input frame data and warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 21:05:03 +02:00
Carl Eugen Hoyos
2d56f0d054 Write the actual mp3 frame size when muxing into caf if available.
Fixes ticket #3648.
2014-05-26 20:28:07 +02:00
Michael Niedermayer
2db89765f3 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  ffmpeg: use thread message API.
  lavu: add thread message API.
  compat/w32pthreads: add return value to pthread_cond_init().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 16:35:52 +02:00
Neil Armstrong
99d742aac4 configure: uClibc native pthread requires -ldl
In the configure script, add a pthread detection with
-ldl added to cflags, because uClibc requires -ldl to
link with native libpthread.

Tested with a custom ARM toolchain with uClibc 0.9.33.2 and gcc 4.6.3.

Signed-off-by: Neil Armstrong <narmstrong@neotion.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 16:00:25 +02:00
Christophe Gisquet
86ae0da60c x86: hpeldsp: propagate changes across codecs
Some codecs still use mmx versions, so have them use the versions
with newer instruction sets.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 15:37:04 +02:00
Nicolas George
fc9c857c2d ffmpeg: use thread message API. 2014-05-26 11:40:21 +02:00
Nicolas George
55cc60cd6d lavu: add thread message API. 2014-05-26 11:40:15 +02:00
Nicolas George
58a10e0e2c compat/w32pthreads: add return value to pthread_cond_init(). 2014-05-26 11:33:42 +02:00
Michael Niedermayer
96470ca22b avformat/mov: allow seeking back to the begin even if nothing is marked as keyframe
Fixes Ticket 3663

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 01:23:46 +02:00
Michael Niedermayer
d2eacbb754 doc/APIchanges: fix typo in date 2014-05-26 01:22:29 +02:00
Michael Niedermayer
d236d4907c update APIchanges & version for c37d179
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 00:20:07 +02:00
Michael Niedermayer
c37d179295 avformat: add format_probesize to allow tuning the maximum amount of bytes to identify the filetype
Currently probesize is cliped at 1mb before being used for format detection.
Alternatively this cliping could be removed but this would then tie various
things like stream analysis to the file detection.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 23:54:34 +02:00
Michael Niedermayer
b0d0e29ffb avcodec/sgirledec: fix () in RBG323_TO_BGR8() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 23:08:51 +02:00
Michael Niedermayer
9f50d3b944 avcodec/rv34: Fix () in GET_PTS_DIFF() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 21:42:19 +02:00
Michael Niedermayer
a45e6b7bc5 avcodec/psymodel: Fix () in AAC_CUTOFF() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 21:41:57 +02:00
Michael Niedermayer
e5dc7439e3 avcodec/proresenc_anatoliy: Fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 21:41:35 +02:00
Michael Niedermayer
a3950a90f6 Revert "x86: dsputilenc: convert ff_sse{8, 16}_mmx() to yasm"
This reverts commit ad733089b0.

breaks with --disable-yasm
revert requested by: Christophe Gisquet <christophe.gisquet@gmail.com>
2014-05-25 19:42:18 +02:00
Michael Niedermayer
9babf13764 avcodec/msvideo1enc: Fix () in MKRGB555() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 19:26:37 +02:00
Michael Niedermayer
eb718f4c53 avcodec/opus: Fix () in ROUND_MULL() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 19:25:58 +02:00
Michael Niedermayer
d62a4707f9 avcodec/opus_celt: Fix () in CELT_PVQ_V macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 19:25:29 +02:00
Michael Niedermayer
c163f5e601 avcodec/pngdec: fix () in OP_* macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 19:25:10 +02:00
Timothy Gu
ad733089b0 x86: dsputilenc: convert ff_sse{8, 16}_mmx() to yasm
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 16:30:08 +02:00
Michael Niedermayer
6e725f19f8 configure: try to fix the disappearing "r" bug in fate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 15:44:27 +02:00
Michael Niedermayer
ee9b0199c8 Merge commit 'e0d01dc7d7fc3ce4c23f286a10870e9599c8b8b9'
* commit 'e0d01dc7d7fc3ce4c23f286a10870e9599c8b8b9':
  smoothstream: check malloc calls

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 13:07:45 +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
Carl Eugen Hoyos
4d8c28deab imgutils: make systematic palette opaque.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-25 08:33:15 +02:00
Michael Niedermayer
cf7ff0146c avcodec/mss4: Fix () in MKVAL() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 05:19:09 +02:00
Michael Niedermayer
6e720c5c81 avcodec/mss34dsp: fix () in SOP* macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 05:18:47 +02:00
Michael Niedermayer
fa160af08b avcodec/mlpdec: fix () in MSB_MASK() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 05:18:18 +02:00
Michael Niedermayer
f276bf303c avcodec/ivi_dsp: add some missing () to macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 03:45:10 +02:00
Michael Niedermayer
70f671c39e avcodec/hevc: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 03:45:10 +02:00
Michael Niedermayer
0f45e643cc avcodec/h264_slice: fix macro ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 03:45:10 +02:00
Michael Niedermayer
af62b42736 avcodec/h264: fix () in macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 03:45:10 +02:00
Michael Niedermayer
97e6b5ee3a avcodec/golomb-test: fix () in EXTEND() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 03:45:10 +02:00
Michael Niedermayer
fa915d4193 avcodec/aac: fix () in IS_CODEBOOK_UNSIGNED macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 03:45:10 +02:00
Aman Gupta
4372fb7a57 avcodec/webvttenc: add webvtt encoder
Based off the srt encoder. The following features are unimplemented:

- fonts, colors, sizes
- alignment and positioning

The rest works well. For example, use ffmpeg to convert subtitles into the .vtt format:

  ffmpeg -i input.srt output.vtt

Signed-off-by: Aman Gupta <ffmpeg@tmm1.net>
Signed-off-by: Clément Bœsch <u@pkh.me>
2014-05-25 03:04:14 +02:00
James Almer
d94e255dd1 x86/dsputilenc: make the SUM_ABS_DCTELEM macro more readable
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 02:03:54 +02:00
Michael Niedermayer
46e3883519 avcodec/opusdec: check alignment, misalignment could lead to crashes with avx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25 00:38:20 +02:00
James Almer
61eea421b2 x86/dsputilenc: port sum_abs_dctelem functions to yasm
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 21:46:25 +02:00
Michael Niedermayer
ddeb58b90c avcodec/asvenc: dont use a negative global_quality
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 20:33:49 +02:00
Michael Niedermayer
9a7d332b92 avcodec/aacenc: dont use global quality if its negative
Some applications used a negative value as default for "not set"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 20:32:37 +02:00
Christophe Gisquet
81aa0f4604 x86: hpeldsp: implement SSSE3 version of _xy2
Loading pb_1 rather than pw_8192 was benchmarked to be more efficient.
Loading of the 2 yields no advantage. Loading of one saves ~11 cycles.

decicycles count:
put8:  3223(mmx)    -> 2387
avg8:  2863(mmxext) -> 2125
put16: 4356(sse2)   -> 3553
avg16: 4481(sse2)   -> 3513

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 15:15:56 +02:00
Michael Niedermayer
726316240b Merge commit '8692e6284f5169257a537c8fc25addf32fc67c87'
* commit '8692e6284f5169257a537c8fc25addf32fc67c87':
  rdt: check malloc calls

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 13:21:33 +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
Nidhi Makhijani
e0d01dc7d7 smoothstream: check malloc calls
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-24 08:21:49 +02:00
Nidhi Makhijani
8692e6284f rdt: check malloc calls
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-24 07:51:12 +02:00
Billy Shambrook
308188be34 Add metadata injection to blackdetect
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 03:56:42 +02:00
Christophe Gisquet
9722a6a3f3 x86: hpeldsp: implement SSE2 put_pixels16_xy2
This is obviously equivalent to the avg version, without the avg.

3223(mmx) -> 2006(sse2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 03:45:17 +02:00
Christophe Gisquet
f0aca50e0b x86: hpeldsp: implement SSE2 versions
Those are mostly used in codecs older than H.264, eg MPEG-2.

put16 versions:
      mmx  mmx2  sse2
x2:  1888  1185   552
y2:  1778  1092   510

avg16 xy2: 3509(mmx2) -> 2169(sse2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 03:29:48 +02:00
Lou Logan
9eaa8c22bc MAINTAINERS: remove myself as website maintainer
I never implemented the plans I had for the site, and I prefer to work
in other areas of the project.

Signed-off-by: Lou Logan <lou@lrcd.com>
2014-05-23 16:15:22 -08:00
James Almer
7538ad2248 x86/hevc_deblock: improve chroma functions register allocation
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-24 01:16:26 +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
James Almer
584327f22f x86/dsputil: fix argument declaration in vector_clipf
Should fix fate failures in msvc x86_64

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 23:10:17 +02:00
James Almer
518cbf9b4a x86/dsputil: fix VECTOR_CLIP_INT32 macro
The inline loop was incrementing and using the value of %%i
the wrong way.

Disassembly of ff_vector_clip_int32_sse2 before and after
this patch:

    movdqa (%rdx),%xmm0      |  movdqa (%rdx),%xmm0
    movdqa 0x10(%rdx),%xmm1  |  movdqa 0x10(%rdx),%xmm1
    movdqa 0x20(%rdx),%xmm2  |  movdqa 0x20(%rdx),%xmm2
    movdqa 0x30(%rdx),%xmm3  |  movdqa 0x30(%rdx),%xmm3
[...]                        |
    movdqa %xmm0,(%rcx)      |  movdqa %xmm0,(%rcx)
    movdqa %xmm1,0x10(%rcx)  |  movdqa %xmm1,0x10(%rcx)
    movdqa %xmm2,0x20(%rcx)  |  movdqa %xmm2,0x20(%rcx)
    movdqa %xmm3,0x30(%rcx)  |  movdqa %xmm3,0x30(%rcx)
    movdqa (%rdx),%xmm0      |  movdqa 0x40(%rdx),%xmm0
    movdqa 0x20(%rdx),%xmm1  |  movdqa 0x50(%rdx),%xmm1
    movdqa 0x40(%rdx),%xmm2  |  movdqa 0x60(%rdx),%xmm2
    movdqa 0x60(%rdx),%xmm3  |  movdqa 0x70(%rdx),%xmm3
[...]                        |
    movdqa %xmm0,(%rcx)      |  movdqa %xmm0,0x40(%rcx)
    movdqa %xmm1,0x20(%rcx)  |  movdqa %xmm1,0x50(%rcx)
    movdqa %xmm2,0x40(%rcx)  |  movdqa %xmm2,0x60(%rcx)
    movdqa %xmm3,0x60(%rcx)  |  movdqa %xmm3,0x70(%rcx)
    add    $0x80,%rdx        |  add    $0x80,%rdx
    add    $0x80,%rcx        |  add    $0x80,%rcx

Other versions were unaffected.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 22:59:55 +02:00
Michael Niedermayer
6b88f22e89 avcodec/dcadec: dont use hex float, msvc doesnt support it
Found-by: nevcairiel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 22:39:14 +02:00
Michael Niedermayer
9ccb5455ca avcodec/dcadec: use a constant instead of assuming every compiler can optimize pow(2,-15)
Idea-by: nevcairiel and wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 22:19:11 +02:00
Michael Niedermayer
6da06ef6bb avcodec/dcadec: make dca_dmix_code() 650% faster
This effectively replaces the ldexpf() function call by a multiplication
with a constant.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 22:08:41 +02:00
Michael Niedermayer
9340ced47b Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Refuse to mux H.264 with fourcc H264 into avi without startcode.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 21:13:46 +02:00
Michael Niedermayer
d062db7880 Merge commit '21f68c2489cba2a1a4a41d0c5c828266e6162800'
* commit '21f68c2489cba2a1a4a41d0c5c828266e6162800':
  avcodec: bump version after rotation api

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 20:48:54 +02:00
Michael Niedermayer
4e4dbb9983 dcadec: fix xxch_dmix_coeff and xxch_dmix_sf after merge
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 20:39:21 +02:00
Michael Niedermayer
c867be03f6 Merge commit '6b7b8585d73548f08b98959df39d80b97677662f'
* commit '6b7b8585d73548f08b98959df39d80b97677662f':
  dca: Convert dca_dmixtable to integers

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 19:01:12 +02:00
Vittorio Giovara
21f68c2489 avcodec: bump version after rotation api
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-05-23 17:50:38 +02:00
Carl Eugen Hoyos
27d460fe98 Refuse to mux H.264 with fourcc H264 into avi without startcode.
Fixes ticket #3638.
2014-05-23 16:20:22 +02:00
Niels Möller
6b7b8585d7 dca: Convert dca_dmixtable to integers
Also include zero in the table, eliminating a special case in the
decoder.

Signed-off-by: Niels Möller <nisse@southpole.se>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-23 15:07:05 +02:00
James Almer
6a4832caae x86/diracdsp: mark all functions as yasm
No inline asm dirac code remains in the tree, so replace every relevant check.
This also moves all the dirac functions from dsputil_mmx.c to diracdsp_mmx.c

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 15:02:42 +02:00
Michael Niedermayer
64bf845544 avformat/mov: Dont blindly trust the stream duration in seting chapter times
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 04:39:55 +02:00
Michael Niedermayer
220df143b9 avformat/utils: Check end time in avpriv_new_chapter()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 04:33:05 +02:00
Michael Niedermayer
744df0a031 avformat/movenc: Check that packet duration is valid in ff_mov_write_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 04:00:29 +02:00
James Almer
1d36defe94 x86/dsputil: port ff_vector_clipf_sse to yasm
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-23 00:08:21 +02:00
Florent Le Coz
fdcb2873e1 Fix the mime types for MPEG and MPEG-TS formats
As per the RFCs:
http://tools.ietf.org/html/rfc3555#page-38
http://tools.ietf.org/html/rfc3003
2014-05-22 23:34:59 +02:00
Christophe Gisquet
c081ca851c x86: hpeldsp: avg_pixels_xy2 for mmx2&3dnow
This is a port of the inline assembly of the mmx version to use the
pavg(us|)b instruction.

        8    16
mmx   1498  4355
mmx2  1242  3509

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 20:17:49 +02:00
Christophe Gisquet
17ac998055 x86: hpeldsp: mark _xy2 versions as approximate
Currently, only the mmx version is bitexact, the others (mmxext and
3dnow) are not, in spite of their naming.

Therefore, make their name more obvious. Also restore a comment that
was removed in 71155d7b.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 20:17:45 +02:00
Christophe Gisquet
f8de35ebc4 x86: hpeldsp: kill hpeldsp_mmx.c
before:
1987 decicycles in 8_x2, 262121 runs, 23 skips

after:
1902 decicycles in 8_x2, 262112 runs, 32 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 20:17:40 +02:00
Vignesh Venkatasubramanian
bda8ceb9f8 maintainers: adding myself as a maintainer to webm dash
adding myself as a maintainer to webm dash (part of matroskaenc.c)

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 20:09:06 +02:00
Vignesh Venkatasubramanian
37cef8c774 libavformat/matroskaenc: Add WebM DASH support
WebM DASH specification [1] requires the Clusters and Cues to be output in a
specific way. Adding a flag to matroskaenc that will enable support for
creating WebM/Mkv files conforming to the WebM DASH specification.

[1] http://wiki.webmproject.org/adaptive-streaming/webm-dash-specification

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 18:53:13 +02:00
Michael Niedermayer
a996eacce2 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Autodetect Asterisk raw pcm with extension "sln".

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 15:27:21 +02:00
Carl Eugen Hoyos
eff913c972 Autodetect Asterisk raw pcm with extension "sln". 2014-05-22 15:15:04 +02:00
Michael Niedermayer
124c94a1c8 avdevice/v4l2: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 15:08:12 +02:00
Michael Niedermayer
aca48725af avcodec/proresdec2: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 15:05:27 +02:00
Michael Niedermayer
e8e9186a70 avcodec/pgssubdec: Use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 15:04:34 +02:00
Michael Niedermayer
f932e5f716 avcodec/vdpau_internal: move "struct vdpau_picture_context" up to avoid "#else"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 01:53:54 +02:00
Dale Curtis
d5d6b8e259 Fix compilation error around struct visibility when VDPAU disabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-22 01:53:13 +02:00
James Almer
80ee2dfcf6 x86/dsputil: port ff_put_signed_pixels_clamped_mmx to yasm
Also add an SSE2 version

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 23:33:45 +02:00
James Almer
7b05267239 x86/dsputil: port clear_block functions to yasm
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 23:33:45 +02:00
Carl Eugen Hoyos
afaa39b46d Don't overwrite codec_id with 0 in ff_mp4_read_dec_config_descr().
Fixes ticket #3660.
2014-05-21 22:48:11 +02:00
Michael Niedermayer
ce4d91ba2a sws: document color range >8bit oddity 2014-05-21 21:29:33 +02:00
Michael Niedermayer
1f359c8559 ffmpeg: use av_stream_get_end_pts()
Simplifies code and should correct timing values when -*sync drop is used

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 18:53:42 +02:00
Michael Niedermayer
7f7080dc73 avformat: add av_stream_get_end_pts()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 18:53:12 +02:00
Michael Niedermayer
91a8262b9d avcodec/utils: add error message for the recode_subtitle() without iconv case
Based on the assert command which was removed in ef0c466a0f

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 17:39:26 +02:00
Dale Curtis
ef0c466a0f Replace assert with AVERROR when recode_subtitle called w/o ICONV.
recode_subtitle() is called implicitly by avformat_find_stream_info().
As such, clients which disable ICONV always crash if a file contains
subtitles; even if they don't care about them.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 17:33:21 +02:00
Michael Niedermayer
e61055fd8b avcodec/atrac3plusdec: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 16:03:22 +02:00
Michael Niedermayer
606a49d2e6 avcodec/atrac3: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 15:59:56 +02:00
Michael Niedermayer
f0211f4189 ffprobe: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 15:59:22 +02:00
Michael Niedermayer
3d4e365073 avcodec/x86/hpeldsp_init: remove redundant if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 13:38:27 +02:00
Hendrik Leppkes
cd9e08e110 hpeldsp: fix build without inline asm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 13:37:38 +02:00
Christophe Gisquet
d1a32c3f49 x86: kill fpel_mmx.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 03:25:08 +02:00
Michael Niedermayer
19e66c7232 avcodec/libvorbisenc: dont add the duration to AV_NOPTS_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 03:02:06 +02:00
Dale Curtis
ca2fd25988 Fix compilation errors when deprecated features are disabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 22:55:28 +02:00
Michael Niedermayer
be656c362d avcodec/h264_picture: Fix build without error resilience
Found-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 21:31:40 +02:00
Alexis Ballier
c9ab879011 Fix build with --enable-ladspa --disable-frei0r.
https://bugs.gentoo.org/show_bug.cgi?id=510516

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 21:13:50 +02:00
Yu Xiaolei
2491579d47 configure: arm: do not enable fast-unaligned if it is explicitly disabled via commandline
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 15:29:57 +02:00
Michael Niedermayer
6310eb8010 avutil/cpu: force mmx on selection of higher x86 SIMD features
Fixes various runtime failures with manually set flags that represent no
existing CPU

Fixes Ticket3653

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 06:10:59 +02:00
Katerina Barone-Adesi
e50ae60d46 avcodec/fate-idct8x8: Defined behavior: eliminate negative left-shifts.
The original code left-shifts negative values, which is undefined
in the C99 specification (the one used during normal FFmpeg compilation).
This change multiplies by (1 << shift), which is functionally equivalent,
but has defined behavior.
With this change, fate-idct8x8 compiled with --fsanitize=undefined works.

Bug-Id: 686

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

The assembly generated by gcc is unchanged by this commit
2014-05-20 04:21:06 +02:00
Michael Niedermayer
7d25af1547 Merge commit 'c23c96b638cbf6c489fd301e6b3d5555632fba37'
* commit 'c23c96b638cbf6c489fd301e6b3d5555632fba37':
  lavf: add av_stream_get_side_data

Conflicts:
	doc/APIchanges
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 03:39:04 +02:00
Michael Niedermayer
9e6769d2dc Merge commit 'afe176265480880e1f702c96a8ba434b0d88728b'
* commit 'afe176265480880e1f702c96a8ba434b0d88728b':
  build: export library dependencies in ${name}_FFLIBS

Conflicts:
	common.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 03:33:30 +02:00
Michael Niedermayer
447b988b53 Merge commit '132a5711a2aaaa6c7d139a0a30046a6ad41b64aa'
* commit '132a5711a2aaaa6c7d139a0a30046a6ad41b64aa':
  check: add libavcodec/vda_internal.h to SKIPHEADERS-$(CONFIG_VDA)

See: beeb7551d6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 03:26:57 +02:00
Michael Niedermayer
9893e883ea avformat/mux: Remove localized encoder strings
Fixes muxing to end up with a encoder=Lavf... and encoder_eng=somethingelse

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 02:46:42 +02:00
Michael Niedermayer
8408720453 avcodec/smvjpegdec: Dont ignore avcodec_close() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 02:21:07 +02:00
Michael Niedermayer
0739614c9c avcodec: remove no longer needed ff_codec_close_recursive()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 02:20:30 +02:00
Michael Niedermayer
be2bbc5266 ffmpeg_opt: dont copy "encoder" metadata unless stream copy is used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 02:01:18 +02:00
Michael Niedermayer
b2a8bc3d04 ffmpeg/set_encoder_id: dont allocate encoder string if one is already set
Fixes memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 00:51:47 +02:00
Janne Grunau
c23c96b638 lavf: add av_stream_get_side_data 2014-05-20 00:43:52 +02:00
Janne Grunau
afe1762654 build: export library dependencies in ${name}_FFLIBS
Removes an ugly $(if) to avoid conflicts with $(FFLIBS-) in the
top-level MAkefile.
2014-05-20 00:43:51 +02:00
Janne Grunau
132a5711a2 check: add libavcodec/vda_internal.h to SKIPHEADERS-$(CONFIG_VDA) 2014-05-20 00:43:51 +02:00
Michael Niedermayer
6218831844 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavf/ftp: favour EPSV over PASV command
  lavf/audiointerleave: return more meaningful error codes
  lavf/audiointerleave: check for allocation failure
  lavf/audiointerleave: use av_fifo_alloc_array
  lavf/dvenc: use av_fifo_alloc_array
  lavc/flac_parser: use av_fifo_alloc_array
  lavc/frame_thread_encoder: use av_fifo_alloc_array
  lavfi/vf_fps: use av_fifo_alloc_array
  lavfi/buffersink: use av_fifo_alloc_array
  ffmpeg: use av_fifo_alloc_array
  lavd/jack_audio: use av_fifo_alloc_array
  lavu/fifo: add av_fifo_alloc_array function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 00:22:51 +02:00
Oliver Fromme
ab6228316a avcodec/dvdsubenc: accept forced flag
Reviewed-by: Anshul <anshul.ffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 00:08:08 +02:00
Lukasz Marek
b9419b5882 lavf/ftp: favour EPSV over PASV command
EPSV is newer version of PASV and allows to use IPv6.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
37fa4b9bb9 lavf/audiointerleave: return more meaningful error codes
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
2ed9e17ed1 lavf/audiointerleave: check for allocation failure
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
c61cdefa4d lavf/audiointerleave: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
74f9c5947d lavf/dvenc: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
8aa2988036 lavc/flac_parser: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
bc4f362c92 lavc/frame_thread_encoder: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:45 +02:00
Lukasz Marek
ce051ceefc lavfi/vf_fps: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:44 +02:00
Lukasz Marek
d15db8e413 lavfi/buffersink: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:44 +02:00
Lukasz Marek
4d686674b2 ffmpeg: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:44 +02:00
Lukasz Marek
51bad41a13 lavd/jack_audio: use av_fifo_alloc_array
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:44 +02:00
Lukasz Marek
7336e39f3c lavu/fifo: add av_fifo_alloc_array function
Allows to alloc fifo buffer by passing
number of elements and size of element.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-20 00:00:44 +02:00
James Almer
d43c303038 x86/hevc_deblock: use constants instead of generating values at runtime
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 23:09:33 +02:00
Thierry FAUCK
41b928c5fa avcodec/ppc/asm: fix build with ABI v2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 22:10:01 +02:00
James Almer
b82274487b lavc: define STRIDE_ALIGN as 32 when compiling with AVX support
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 22:09:43 +02:00
Michael Niedermayer
833ec9177d ffmpeg/do_video_stats: fix used timebase
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 20:54:27 +02:00
Michael Niedermayer
55fe1582cb avcodec/pthread_frame: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:36:29 +02:00
Michael Niedermayer
cd7ae5af16 Merge commit '82fc9f4b38244236a6ca7f946662ca653044a04c'
* commit '82fc9f4b38244236a6ca7f946662ca653044a04c':
  display: Include mathematics.h for fallback definition of NAN

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:28:29 +02:00
Michael Niedermayer
07941c2cb2 Merge commit '853cc025d63ee2539fc0460dab62c5b9a3fd2043'
* commit '853cc025d63ee2539fc0460dab62c5b9a3fd2043':
  mov: store display matrix in a stream side data

Conflicts:
	libavformat/isom.h
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:21:53 +02:00
Michael Niedermayer
ef1d4ee2f8 Merge commit 'bddd8cbf68551f6405b2bf77cc3e212af9fbe834'
* commit 'bddd8cbf68551f6405b2bf77cc3e212af9fbe834':
  Add transformation matrix API.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/utils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:12:30 +02:00
Michael Niedermayer
af72f62d7b Merge commit '9929b3564c0dca42ed7baa6798ef15b6f0013c83'
* commit '9929b3564c0dca42ed7baa6798ef15b6f0013c83':
  pthread_frame: simplify the code by using new AVPacket API

Conflicts:
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 19:02:36 +02:00
Michael Niedermayer
4a2fd251f4 Merge commit 'cdf58f0599c39852ee3beafe5f64af7d57d4215b'
* commit 'cdf58f0599c39852ee3beafe5f64af7d57d4215b':
  avpacket: fix copying side data in av_packet_copy_props()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 18:51:34 +02:00
Michael Niedermayer
999a99c865 Merge commit 'a312f71090ee620ee252f2034aef6b13e2dafe9c'
* commit 'a312f71090ee620ee252f2034aef6b13e2dafe9c':
  lavf: deprecate now unused AVStream.pts

Conflicts:
	libavformat/mux.c
	libavformat/version.h

mostly not merged as the code is needed for a/vsync drop handling
and what the code does is what is needed, it could maybe be moved
elsewhere or factored somehow but simply removing it would be droping
these features.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 18:38:10 +02:00
Michael Niedermayer
e3c1d9a56c Merge commit 'ed7922faac4ea4c893efc3cdf8102ebc49fcc011'
* commit 'ed7922faac4ea4c893efc3cdf8102ebc49fcc011':
  mux: drop one of the hacks comprising compute_pkt_fields2()

Conflicts:
	libavformat/mux.c

Not merged as -async drop / -vsync drop depends on this code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 18:27:56 +02:00
Michael Niedermayer
f29cdfec96 avcodec/libvorbisenc: do not attempt to flush if no data was input
this prevents the creation of a packet even though no single sample has ever
been input, which some confusion in the timestamp generation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 17:37:50 +02:00
Michael Niedermayer
ebbc33a42d avcodec/libmp3lame: do not attempt to flush lame if no data was input
this prevents the creation of a packet even though no single sample has ever
been input, which some confusion in the timestamp generation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 17:37:26 +02:00
Martin Storsjö
82fc9f4b38 display: Include mathematics.h for fallback definition of NAN
This fixes compilation with MSVC.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-19 18:34:51 +03:00
Michael Niedermayer
6552e23d56 avformat/mpegtsenc: fix dts for chained muxing aac in mpegts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 16:30:46 +02:00
Michael Niedermayer
dad54e4a62 ffmpeg: set dts for subtitles
dts is not optional, its required for muxing,
previously it was set from AVStream.pts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 16:07:50 +02:00
Michael Niedermayer
87f5ede6b5 ffmpeg: add last_mux_dts_plus_duration
Fixes 1 frame error in the duration and derived values,
introduced by not using AVStream.pts in the previous commit

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 15:35:20 +02:00
Michael Niedermayer
2de2b991ca Merge commit 'dc40d88625d7e402d58ac3f3df69fbf27aa31ea0'
* commit 'dc40d88625d7e402d58ac3f3df69fbf27aa31ea0':
  avconv: do not use poorly defined and undocumented AVStream.pts

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 15:13:16 +02:00
Michael Niedermayer
3791741cf9 Merge commit 'c9f8809ee4c576d5833865039bc1c85754448f67'
* commit 'c9f8809ee4c576d5833865039bc1c85754448f67':
  hevc/intra_pred: simplify neighboring sample derivation

Conflicts:
	libavcodec/hevcpred_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 15:03:42 +02:00
Michael Niedermayer
e98d3a7d51 Merge commit '25bb7eaf9eb14e6e00264bf584aa4d380d3bc29f'
* commit '25bb7eaf9eb14e6e00264bf584aa4d380d3bc29f':
  hevc/intra_pred: drop unnecessary conditions in loops

Conflicts:
	libavcodec/hevcpred_template.c

See: 053fdacde7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 14:47:29 +02:00
Michael Niedermayer
454920187f Merge commit '4c390b1ba98e6aec787aa0e7ea57ed7cb38283b7'
* commit '4c390b1ba98e6aec787aa0e7ea57ed7cb38283b7':
  hevc/intra_pred: optimize EXTEND_()*

Conflicts:
	libavcodec/hevcpred_template.c

See: 053fdacde7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 14:28:49 +02:00
Michael Niedermayer
8447658550 Merge commit 'a1c2b48018b09d2613f075ec0748c95bd520ac00'
* commit 'a1c2b48018b09d2613f075ec0748c95bd520ac00':
  hevc: templatize intra_pred

Conflicts:
	libavcodec/hevc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 14:10:13 +02:00
Michael Niedermayer
93318983c3 Merge commit '04db5794cd97e4b33ec2f963ef7f967722a456eb'
* commit '04db5794cd97e4b33ec2f963ef7f967722a456eb':
  hevc: templatize pred_planar

Conflicts:
	libavcodec/hevcpred_template.c

See: 053fdacde7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 13:56:56 +02:00
Vittorio Giovara
853cc025d6 mov: store display matrix in a stream side data
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 13:13:16 +02:00
Vittorio Giovara
bddd8cbf68 Add transformation matrix API.
Add AV_PKT_DATA_DISPLAYMATRIX and AV_FRAME_DATA_DISPLAYMATRIX as stream and
frame side data (respectively) to describe a display transformation matrix
for linear transformation operations on the decoded video.

Add functions to easily extract a rotation angle from a matrix and
conversely to setup a matrix for a given rotation angle.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 13:13:10 +02:00
Anton Khirnov
9929b3564c pthread_frame: simplify the code by using new AVPacket API
This also handles side data properly.
2014-05-19 13:12:46 +02:00
Anton Khirnov
cdf58f0599 avpacket: fix copying side data in av_packet_copy_props()
Side data count is incremented by by calling av_packet_new_side_data()
in the following loop, setting it explicitly results in the resulting
value being twice what it should be.

CC: libav-stable@libav.org
2014-05-19 13:12:40 +02:00
Anton Khirnov
a312f71090 lavf: deprecate now unused AVStream.pts 2014-05-19 07:14:24 +02:00
Anton Khirnov
ed7922faac mux: drop one of the hacks comprising compute_pkt_fields2()
All encoders should output proper timestamps now.
2014-05-19 07:14:18 +02:00
Anton Khirnov
dc40d88625 avconv: do not use poorly defined and undocumented AVStream.pts
Use OutputStream.last_mux_dts as an approximation of 'current' output
time instead.
2014-05-19 07:14:11 +02:00
Anton Khirnov
c9f8809ee4 hevc/intra_pred: simplify neighboring sample derivation 2014-05-19 07:12:55 +02:00
Mickaël Raulet
25bb7eaf9e hevc/intra_pred: drop unnecessary conditions in loops
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 07:12:47 +02:00
Mickaël Raulet
4c390b1ba9 hevc/intra_pred: optimize EXTEND_()*
Process 4 pixels at once.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 07:10:43 +02:00
Anton Khirnov
a1c2b48018 hevc: templatize intra_pred 2014-05-19 07:10:03 +02:00
Mickaël Raulet
04db5794cd hevc: templatize pred_planar
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 07:09:30 +02:00
Michael Niedermayer
4a30f08505 avcodec/diracdec: move mc buffer allocation to per frame
Fixes out of array accesses for non default buffers with large strides

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 06:41:32 +02:00
Olivier Langlois
76191c08f8 ffmpeg: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 02:35:07 +02:00
Carl Eugen Hoyos
e705d0ce1c Set dwSuggestBufferSize to largest chunk size for every stream in avi.
Fixes playback with WMP 9 for files with large (rawvideo) frames
as explained in ticket #2145.

Fixes ticket #2818.
2014-05-19 00:05:40 +02:00
James Almer
057ebf1222 x86/hevc_deblock: remove some duplicated instructions
Also remove a couple unnecessary cmps

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 23:28:17 +02:00
Michael Niedermayer
0c152fe916 ffmpeg: prefix encoder with "Lavc " in bitexact mode
This avoids misleading encoder names like "encoder = prores"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 22:57:20 +02:00
Michael Niedermayer
5771efde87 Merge commit '0ba5299a805e9ccaef1a757381fc2ada4d54b8a1'
* commit '0ba5299a805e9ccaef1a757381fc2ada4d54b8a1':
  movenc: use the "encoder" metadata tag to write stsd Compressorname

Conflicts:
	libavformat/movenc.c
	libavformat/movenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 22:29:27 +02:00
Michael Niedermayer
bbee02ed9c ffmpeg: Skip writing the version when -flags bitexact is used
Alternatively every fate test could be changed to pass both fflags and flags +bitexact

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 22:00:00 +02:00
Michael Niedermayer
1e49439f04 Merge commit '6656370b858329ca07a60a2de954d5e90daa0206'
* commit '6656370b858329ca07a60a2de954d5e90daa0206':
  avconv: set the "encoder" tag when transcoding

Conflicts:
	ffmpeg.c
	tests/ref/lavf/mkv
	tests/ref/seek/lavf-mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 21:31:51 +02:00
Michael Niedermayer
c01bcce495 Merge commit 'd246231e4714119faac6c7acd881d3b687bb8b11'
* commit 'd246231e4714119faac6c7acd881d3b687bb8b11':
  wavenc: use codec descriptors to get the codec name

Conflicts:
	libavformat/wavenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 21:05:46 +02:00
Michael Niedermayer
a6ba5184a5 Merge commit '968a62a9d9e3a785ce1f79b80facfe09c6c14544'
* commit '968a62a9d9e3a785ce1f79b80facfe09c6c14544':
  doc/APIchanges: mark the release 10 branch point

Conflicts:
	doc/APIchanges

Not merged, as there was no such branch in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 21:03:54 +02:00
Michael Niedermayer
6eefc578a5 Merge commit '33082af7560a18179b52734665ef66f812902d33'
* commit '33082af7560a18179b52734665ef66f812902d33':
  doc/APIchanges: fill in missing hashes and dates

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 20:57:41 +02:00
Anton Khirnov
0ba5299a80 movenc: use the "encoder" metadata tag to write stsd Compressorname
This mirrors the demuxer behaviour and avoids accessing
AVCodecContext.codec, which should not be done in muxers.
2014-05-18 20:34:03 +02:00
Anton Khirnov
6656370b85 avconv: set the "encoder" tag when transcoding 2014-05-18 20:33:46 +02:00
Anton Khirnov
d246231e47 wavenc: use codec descriptors to get the codec name
Also, return a proper error code.
2014-05-18 20:33:38 +02:00
Anshul
73a6063314 ffprobe: fix crash happening because of new streams occuring
Fix trac ticket #3603.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-05-18 20:04:02 +02:00
Christophe Gisquet
f1793fe9cd x86: hevc_mc: specify coefficients registers
By default, macro EPEL_FILTER loads the coefficients inconditionally
into m14/m15. This forces an unneeded higher register count.

Reduce that count by making them parameters of EPEL_FILTER.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 16:23:58 +02:00
Olivier Langlois
0a15067047 lavd: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Since v4l2 is compiled only on Linux where av_gettime_relative()
is monotonic, a small wrapper function av_gettime_monotonic() is used
(should be inlined the compiler) to put emphasis on that fact.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 16:10:12 +02:00
Michael Niedermayer
6e8fe44815 avcodec/wmv2enc: allocate padding for extradata and check malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 15:59:45 +02:00
Michael Niedermayer
5441eb460c avcodec/movtextenc: allocate padding for extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 15:59:03 +02:00
Michael Niedermayer
947ed8f292 avcodec/ffv1enc: allocate padding for extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 15:58:41 +02:00
Michael Niedermayer
bf718bdf12 avcodec/crystalhd: allocate padding for extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 15:58:03 +02:00
Michael Niedermayer
b06741d267 Merge commit '79f2c426fde6e71c40b29504112d0528b85be623'
* commit '79f2c426fde6e71c40b29504112d0528b85be623':
  dv: do not set codec timebase

Conflicts:
	libavformat/dv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 14:53:41 +02:00
Michael Niedermayer
8334850a99 Merge commit '93afb6c98df876b15e3d911a9450ad55f92080ce'
* commit '93afb6c98df876b15e3d911a9450ad55f92080ce':
  avconv: set output avg_frame_rate when known

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 14:38:36 +02:00
Michael Niedermayer
8636b11bdc Merge commit '7a5f4f6853047eea74a6443d73f4d74d52b2799f'
* commit '7a5f4f6853047eea74a6443d73f4d74d52b2799f':
  lavf: extend avg_frame_rate documentation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 14:27:29 +02:00
Michael Niedermayer
4f32efdff0 Merge commit 'c3311d472a7528c67f76d0d061704ae70a99b32e'
* commit 'c3311d472a7528c67f76d0d061704ae70a99b32e':
  avienc: sanitize variable naming in write_header()

Conflicts:
	libavformat/avienc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 14:14:33 +02:00
Michael Niedermayer
4fac4447d1 Merge commit 'ab3fdaa7131e2fd8e33006daea25a282724c01f0'
* commit 'ab3fdaa7131e2fd8e33006daea25a282724c01f0':
  yop: only set extradata size after it has been successfully allocated

Conflicts:
	libavformat/yop.c

See: a807c68253
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 14:10:56 +02:00
Michael Niedermayer
213e82b55c Merge commit 'b513bf6f69e26e724de6d5dca642c3582dcd0517'
* commit 'b513bf6f69e26e724de6d5dca642c3582dcd0517':
  yuv4mpegdec: do not set coded_frame properties

Conflicts:
	libavformat/yuv4mpegdec.c

See: b45a3e167f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 14:02:31 +02:00
Michael Niedermayer
56d3cd1455 Merge commit 'e4dc1000d7bbbcb5b45cf9849fc5315f19578e37'
* commit 'e4dc1000d7bbbcb5b45cf9849fc5315f19578e37':
  yuv4mpeg: split the demuxer and muxer into separate files

Conflicts:
	libavformat/yuv4mpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 13:37:25 +02:00
Michael Niedermayer
47a721348a Merge commit '3ef6c5264b2590781b4ed556443ff49709dd45fb'
* commit '3ef6c5264b2590781b4ed556443ff49709dd45fb':
  a64: check that extradata exists before reading from it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 13:25:18 +02:00
Michael Niedermayer
c7c11058ab Merge commit 'b136564909adec2043be4c94ade08b67ad443124'
* commit 'b136564909adec2043be4c94ade08b67ad443124':
  a64: remove unneeded struct qualifier

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 13:17:10 +02:00
Michael Niedermayer
6a51090924 Merge commit 'd256ed78ffe202a4dcc8d625becffc716bfa3977'
* commit 'd256ed78ffe202a4dcc8d625becffc716bfa3977':
  4xm: allocate extradata properly.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 13:10:24 +02:00
Michael Niedermayer
68c05185e2 Merge commit 'fd056029f45a9f6d213d9fce8165632042511d4f'
* commit 'fd056029f45a9f6d213d9fce8165632042511d4f':
  lavc: add avcodec_free_context().

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 13:00:50 +02:00
Michael Niedermayer
ff17d8b56e Merge commit 'e1b66778b6ee82a192b5895e23c4e135f7269326'
* commit 'e1b66778b6ee82a192b5895e23c4e135f7269326':
  lavc: remove the locking code in avcodec_close()

Conflicts:
	libavcodec/utils.c

Note, if someone knows of a external codec lib/API, hwaccel or other that requires
locking on its close/free side, please contact ffmpeg-devel.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 12:46:28 +02:00
Anton Khirnov
968a62a9d9 doc/APIchanges: mark the release 10 branch point 2014-05-18 10:53:00 +02:00
Anton Khirnov
33082af756 doc/APIchanges: fill in missing hashes and dates 2014-05-18 10:52:41 +02:00
Anton Khirnov
79f2c426fd dv: do not set codec timebase
It is not supposed to be set from outside of libavcodec.
Set average framerate instead.
2014-05-18 10:24:43 +02:00
Anton Khirnov
93afb6c98d avconv: set output avg_frame_rate when known 2014-05-18 10:24:36 +02:00
Anton Khirnov
7a5f4f6853 lavf: extend avg_frame_rate documentation. 2014-05-18 10:24:24 +02:00
Anton Khirnov
c3311d472a avienc: sanitize variable naming in write_header()
Do not call an AVCodecContext 'stream', that is highly confusing.
Also, add a local variable for the current AVStream in the loop over all
streams.
2014-05-18 10:24:02 +02:00
Anton Khirnov
ab3fdaa713 yop: only set extradata size after it has been successfully allocated
Do not leave a non-zero extradata_size set on failure
2014-05-18 10:22:42 +02:00
Anton Khirnov
b513bf6f69 yuv4mpegdec: do not set coded_frame properties
coded_frame is not meant to be changed from outside of lavc, and is not
used for decoding.
Set AVCodecContext.field_order instead.
2014-05-18 10:22:08 +02:00
Anton Khirnov
e4dc1000d7 yuv4mpeg: split the demuxer and muxer into separate files 2014-05-18 10:21:31 +02:00
Anton Khirnov
3ef6c5264b a64: check that extradata exists before reading from it 2014-05-18 10:20:19 +02:00
Anton Khirnov
b136564909 a64: remove unneeded struct qualifier 2014-05-18 10:19:54 +02:00
Anton Khirnov
d256ed78ff 4xm: allocate extradata properly.
Pad it with the required amount of zeros, check for malloc failure.
2014-05-18 10:19:35 +02:00
Anton Khirnov
fd056029f4 lavc: add avcodec_free_context().
Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.

The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.
2014-05-18 10:17:41 +02:00
Anton Khirnov
e1b66778b6 lavc: remove the locking code in avcodec_close()
This function should not modify any global state, so there should be no
reason for any locking.
2014-05-18 10:16:35 +02:00
Michael Niedermayer
17c8a06916 avformat/framehash: switch to AVFMT_FLAG_BITEXACT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 04:04:32 +02:00
Michael Niedermayer
9646ea63df avformat/mmf: switch to AVFMT_FLAG_BITEXACT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 04:04:20 +02:00
Michael Niedermayer
0421409c52 avformat/matroskaenc: switch to AVFMT_FLAG_BITEXACT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 04:04:01 +02:00
Michael Niedermayer
fab50573bb avformat/mp3enc: switch to AVFMT_FLAG_BITEXACT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 04:03:45 +02:00
Michael Niedermayer
d524d424ec avformat/nutenc: switch to AVFMT_FLAG_BITEXACT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 04:03:28 +02:00
Michael Niedermayer
0323a55cd8 avformat/rtpenc: switch to AVFMT_FLAG_BITEXACT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18 04:02:44 +02:00
Michael Niedermayer
46380e8d26 avformat/aviobuf/ff_get_line: also accept \r as end of line character
Fixes Ticket3108

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 23:49:05 +02:00
Olivier Langlois
0ca0b4c29c ffplay: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 20:28:16 +02:00
Michael Niedermayer
43c18fec6e Merge commit '584f88409062f7a134e7391887899e8e723ab6ff'
* commit '584f88409062f7a134e7391887899e8e723ab6ff':
  riff: Pass block_align to estimate frame duration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 20:22:56 +02:00
Olivier Langlois
f78bc96b7c lavf: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 20:13:33 +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
Olivier Langlois
41120e6e40 tools: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 15:51:58 +02:00
Olivier Langlois
b052bccbe4 lavc: Use av_gettime_relative()
Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 15:51:49 +02:00
Olivier Langlois
0eec06ed87 lavu: add av_gettime_relative()
These functions are using the POSIX clock_gettime() function with the
CLOCK_MONOTONIC clock id. If these are not present on the targeted
platform, the new functions will fallback on using the original realtime functions
av_gettime() and av_usleep().

Monotonic support can be added on other platforms with their
equivalent native system API eventually if possible.

Whenever time is requested to measure relative time, the monotonic clock,
when available, is superior to the system realtime clock because it is
not affected by discontinuous jumps in the system time

In a future step, offering the flexibility to let the user choose between
rt and monotonic clock for avdevices packets will be investigated.

It is very easy to experience the issues that this patch attempt to address
by rewinding back in the past the system time while ffmpeg is running.

this is breaking the ffmpeg report printing (ffmepg.c:print_report()) and
the the rate emulator functionality (-re) without the patch.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 15:28:03 +02:00
nu774
584f884090 riff: Pass block_align to estimate frame duration
Fix incorrect wSamplesPerBlock(=0) written for ADPCM_IMA_WAV

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-17 15:24:20 +02:00
Michael Niedermayer
a7320c1574 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix compilation of libavcodec/x86/hevc_deblock.asm with nasm.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 14:56:01 +02:00
Michael Niedermayer
5b0c7052fb Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: add support for toggling between multiple video filters with the w key
  ffplay: fix typo in docs
  ffplay: try multiple sample rates if audio open fails
  cmdutils: replace usages of "#ifdef __MINGW32__" with "#ifdef _WIN32" because MSVC only defines _WIN32
  ffplay: fix compilation with Visual Studio
  ffplay: increase AV_SYNC_THRESHOLD_MIN to 0.04

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 14:26:29 +02:00
Clément Bœsch
11e490334e avfilter/edgedetect: reuse already defined ctx. 2014-05-17 14:16:04 +02:00
Marton Balint
a583e2bebe ffplay: add support for toggling between multiple video filters with the w key
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:29 +02:00
Marton Balint
affc41047e ffplay: fix typo in docs
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:29 +02:00
Marton Balint
0c8d8c0c80 ffplay: try multiple sample rates if audio open fails
Should fix ticket #3509.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:29 +02:00
John Peebles
e11697759d cmdutils: replace usages of "#ifdef __MINGW32__" with "#ifdef _WIN32" because MSVC only defines _WIN32
With the previous patch, this should fix ticket #3580 as well.

Signed-off-by: John Peebles <johnpeeb@gmail.com>
2014-05-17 13:18:29 +02:00
Marton Balint
1fab67b685 ffplay: fix compilation with Visual Studio
Based on a patch by achristensen from trac.ffmpeg.org.

Partially fixes ticket #3580.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:28 +02:00
Marton Balint
ae6fe159f2 ffplay: increase AV_SYNC_THRESHOLD_MIN to 0.04
Less than 0.04 sec delays should not be noticable, and it helps us with 50fps
content where some timing errors can cause a frame dup where it is not really
necessary.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-17 13:18:28 +02:00
Carl Eugen Hoyos
ef2713747f Fix compilation of libavcodec/x86/hevc_deblock.asm with nasm.
Suggested-by: Reimar
2014-05-17 12:50:55 +02:00
Carl Eugen Hoyos
4c49d0824a Fix alaw and mulaw muxing in caf.
Fixes ticket #3644.
2014-05-17 11:38:17 +02:00
James Almer
be1fbc02b8 x86/hevc_deblock: use movhps instead of shuffling values
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 05:40:14 +02:00
James Almer
8aac77fede x86/hevc_deblock: fix label names
Also remove some unnecessary jmps

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 05:40:08 +02:00
James Almer
521eaea63a x86/hevc_deblock: fix usage of ABS1
The second argument is a temp register for non-SSSE3 cases

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 05:39:55 +02:00
James Almer
45110d2290 x86/hevc_deblock: merge movs with other instructions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 05:39:34 +02:00
Michael Niedermayer
aedc1c2ed6 doc/filters: fix typo
Found-by: bloody123
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 04:57:35 +02:00
Michael Niedermayer
be8f96e5eb Merge commit '34e2ce5dde073244ccb2b62f930e96fe612690f7'
* commit '34e2ce5dde073244ccb2b62f930e96fe612690f7':
  hlsenc: Set the default codecs to AAC and H264

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 03:13:05 +02:00
Mickaël Raulet
e2760de605 hevc: fix key_frame as an IRAP
it was always 1 before with ISOBMFF(cherry picked from commit fb1402b1ec78d80acd6ced76bf78d65560965c4c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-17 01:14:51 +02:00
Martin Storsjö
34e2ce5dde hlsenc: Set the default codecs to AAC and H264
Most HLS implementation only support these codecs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-17 01:34:16 +03:00
Reynaldo H. Verdejo Pinochet
93cade4825 rtmpproto: info out for unsupported auth vars
Should aid debugging badly formatted URLs

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-05-16 17:31:48 -04:00
Reynaldo H. Verdejo Pinochet
e83aae2839 rtmpproto: avoid setting auth var value if null
Use default values if parsed variable is found not to
have any value. Avoids crashing at strlen for salt/user
on the auth call afterwards and needless NULL assignments
for the rest (default is already NULL for those).

Should fix Coverity Scan issues #966644 and #966645

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-05-16 17:31:48 -04:00
Michael Niedermayer
627d3b8b73 Merge commit '4d25c2bc76f0a708c2ba470b6bfeb547efe37115'
* commit '4d25c2bc76f0a708c2ba470b6bfeb547efe37115':
  build: Support building using clang-usan and disable-optimization

Change not merged, as it has been fixed differently and this change
would prevent disabling optimizations with ubsan

See: bebce653e5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 22:26:53 +02:00
Michael Niedermayer
eb580d2598 Merge commit '7c377f0e74de8ab57f6baa64f3ec197c82104764'
* commit '7c377f0e74de8ab57f6baa64f3ec197c82104764':
  avisynth: set duration of audio streams

See: ae8e2d7634
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 22:03:10 +02:00
Michael Niedermayer
36f9496924 Merge commit '4735784f1ced27026fbeada5fd31505132e565e9'
* commit '4735784f1ced27026fbeada5fd31505132e565e9':
  FATE/opus: increase fuzz for the celt tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 21:22:25 +02:00
plepere
ef7c4cd001 avcodec/x86/hevc: updated to use x86util macros
Reviewed-by: James Almer <jamrial@gmail.com>
Reviewed-by: Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 21:11:07 +02:00
plepere
de7b89fd43 avcodec/x86/hevc: added DBF assembly functions
Reviewed-by: James Almer <jamrial@gmail.com>
Reviewed-by: Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 21:11:03 +02:00
Katerina Barone-Adesi
4d25c2bc76 build: Support building using clang-usan and disable-optimization
Clang Undefined Behaviour Sanitizer seems to make non-constant constant
expressions, making the compilation fail when they are used within
inline assembly if no optimization is requested.

Add -O1 to the cflags to hide the misbehaviour.

Bug-Id: 683
2014-05-16 19:58:34 +02:00
Michael Niedermayer
7ebf90ff47 avcodec/mpeg12enc: avoid floats in the aspect ratio info setup code
This fixes potential rounding issues with floats, and also
fixes a division by 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 19:42:50 +02:00
Frederic Turmel
b217e1b057 avcodec/mpeg12enc: Favor storing DAR instead of SAR
fixes Ticket 2689

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 17:55:29 +02:00
Michael Niedermayer
77a0df4b5e estimate_timings_from_pts: Execute max 1 iteration extra to find more than 1 duration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 16:13:36 +02:00
Gaullier Nicolas
68cea1bc8e estimate_timings_from_pts: Try to get the duration for all streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 16:06:55 +02:00
Michael Niedermayer
424599c7cc estimate_timings_from_pts: simplify filesize end check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 15:49:23 +02:00
Gaullier Nicolas
5d944f58db estimate_timings_from_pts: Also consider packet duration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 15:33:20 +02:00
Gaullier Nicolas
85349d8d00 estimate_timings_from_pts: Warn about A/V streams for which no duration could be set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 15:22:05 +02:00
Hendrik Leppkes
7c377f0e74 avisynth: set duration of audio streams
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-16 14:41:02 +02:00
Anton Khirnov
4735784f1c FATE/opus: increase fuzz for the celt tests
This seems to be needed on some 32bit arches.
2014-05-16 14:35:20 +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
Masa Utashiro
491d602283 avfilter/vignette: fix input frame memory leak.
Fixes Ticket #3642.
2014-05-16 06:32:26 +02:00
James Almer
a9bf713d35 swresample: add swri_resample_float_avx
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 05:27:03 +02:00
James Almer
cdff1cc98f configure: add check for AVX inline support
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 05:24:59 +02:00
Michael Niedermayer
7970959a94 avcodec/opusdec: fix some const correctness
also make a const array static
Fixes 2 warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 04:38:10 +02:00
Michael Niedermayer
1fb46858c2 avcodec/cavs: prevent out of array read
The used value should not matter as long as its within the array
as it is multiplied by 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 03:13:27 +02:00
Michael Niedermayer
a071c0b515 avcodec/utils: Fix undefined behavior in avpriv_toupper4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-16 03:13:27 +02:00
Carl Eugen Hoyos
30aeab29e4 Use av_restrict instead of restrict in libavcodec/opus_celt.c. 2014-05-16 00:43:54 +02:00
Michael Niedermayer
bebce653e5 avcodec/x86/dsputil_mmx: Fix build with clang-usan
Found-by: Katerina Barone-Adesi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 23:56:39 +02:00
Christophe Gisquet
d1310c591e x86: sbrdsp: implement SSE qmf_deint_neg
From 133 (unrolled av_intfloat32 C) to 59 cycles on Arrandale/Win64.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 23:11:18 +02:00
Michael Niedermayer
7a4424e5ed avcodec/opus: fix doxygen comments to be associated with the correct fields
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 22:41:52 +02:00
Michael Niedermayer
e9602dcb4d ffmpeg: bitstream filters require split out side data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 22:41:12 +02:00
Michael Niedermayer
f8de1caa6e Revert "avcodec/hevc: fix outputted AVFrame.key_frame"
This is not correct

Requested-by: mraulet
This reverts commit 973de9ebf8.
2014-05-15 21:34:34 +02:00
Michael Niedermayer
30cdf384d1 Merge commit 'd3f5b94762fb803c0f3b29f9ad6c5eaa813998ba'
* commit 'd3f5b94762fb803c0f3b29f9ad6c5eaa813998ba':
  aarch64: opus NEON iMDCT and FFT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 21:13:53 +02:00
Michael Niedermayer
91d7d790d1 Merge commit '7c5ca546a0747a20c7f7fb5550455c3042699ee9'
* commit '7c5ca546a0747a20c7f7fb5550455c3042699ee9':
  configure: fix enable-libopus help string

See: 434ba17b22
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 21:13:02 +02:00
Michael Niedermayer
fcb5849a62 Merge commit '5e2ba41d4b94de1fa5267081d6c4b6b262c8d86f'
* commit '5e2ba41d4b94de1fa5267081d6c4b6b262c8d86f':
  build: add avresample after avcodec to FFLIBS

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 21:01:07 +02:00
Olivier Langlois
af31d58a63 doc: Add udp broadcast option description
Describe the option added in commit f1c167496e

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 20:52:42 +02:00
Michael Niedermayer
97f856a4c2 avcodec/options: avcodec_copy_context() Check subtitle_header_size instead of setting it
The value is already copied in the generic code so it should always match

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 19:41:38 +02:00
Michael Niedermayer
098a699867 Merge commit '3b2fbe67bd63b00331db2a9b213f6d420418a312'
* commit '3b2fbe67bd63b00331db2a9b213f6d420418a312':
  lavc: properly handle subtitle_header in avcodec_copy_context()

Conflicts:
	libavcodec/options.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 19:39:06 +02:00
Michael Niedermayer
9b7cb02319 Merge commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973'
* commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973':
  lavc: preserve the original private data in avcodec_copy_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 19:32:44 +02:00
Michael Niedermayer
f478e8500a Merge commit 'c9281a01b78cc3f09e36300a0ca3f5824d1c74cf'
* commit 'c9281a01b78cc3f09e36300a0ca3f5824d1c74cf':
  lavf: drop the zero-sized packets hack

Conflicts:
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 19:24:19 +02:00
Michael Niedermayer
eacf7d650d Merge commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52'
* commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52':
  lavf: add AVFMT_FLAG_BITEXACT.

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/flacenc.c
	libavformat/movenc.c
	libavformat/oggenc.c
	libavformat/options_table.h
	libavformat/version.h
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 19:16:57 +02:00
Carl Eugen Hoyos
beeb7551d6 Fix make checkheaders if VDA is not available. 2014-05-15 19:09:36 +02:00
Michael Niedermayer
ffa05e0802 avcodec/opusdec: switch to swresample
This also fixes linking failures in doc/examples which where apparently
caused by the linking order between avcodec and avresample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 18:28:45 +02:00
Michael Niedermayer
96cb4c8718 swresample: swr_close()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 18:27:23 +02:00
Michael Niedermayer
2c7d3ecfc9 Merge commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222'
* commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222':
  lavc: add a native Opus decoder.

Conflicts:
	Changelog
	configure
	libavcodec/version.h

Fate tests pass with both avresample as well as swresample based opus decoder, but
are disabled (reference files are very large so i want to think a day or 2 about
if theres an alternative or if they could be avoided, they also dont match the
official samples)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 18:20:17 +02:00
Janne Grunau
d3f5b94762 aarch64: opus NEON iMDCT and FFT
Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on
Apple's A7.
2014-05-15 18:17:02 +02:00
Tristan Matthews
7c5ca546a0 configure: fix enable-libopus help string 2014-05-15 18:17:01 +02:00
Janne Grunau
5e2ba41d4b build: add avresample after avcodec to FFLIBS
avcodec might depend on avresample and with --as-needed required symbols
might be get removed if avresample is linked before avcodec.
Fixes link failures of avprobe and avplay on aarch64 with
--enable-neon-clobber-test.
2014-05-15 17:53:55 +02:00
Anton Khirnov
3b2fbe67bd lavc: properly handle subtitle_header in avcodec_copy_context() 2014-05-15 07:51:39 +02:00
Anton Khirnov
efc7df6c1f lavc: preserve the original private data in avcodec_copy_context()
If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.
2014-05-15 07:51:16 +02:00
Anton Khirnov
c9281a01b7 lavf: drop the zero-sized packets hack
There should not be any valid reason anymore for passing completely
empty packets to lavf.
OTOH side data-only packets can be useful.
2014-05-15 07:50:47 +02:00
Anton Khirnov
0c1959b056 lavf: add AVFMT_FLAG_BITEXACT.
Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
codec context.

Using codec options inside lavf is fragile and can easily break when the
muxing codec context is not the encoding context.
2014-05-15 07:42:07 +02:00
Anton Khirnov
b70d7a4ac7 lavc: add a native Opus decoder.
Initial implementation by Andrew D'Addesio <modchipv12@gmail.com> during
GSoC 2012.

Completion by Anton Khirnov <anton@khirnov.net>, sponsored by the
Mozilla Corporation.

Further contributions by:
Christophe Gisquet <christophe.gisquet@gmail.com>
Janne Grunau <janne-libav@jannau.net>
Luca Barbato <lu_zero@gentoo.org>
2014-05-15 06:49:34 +02:00
Alex Sukhanov
8b96f31817 libavformat/mov: Elimitate double reading of COVR metadata if MOV_EXPORT_ALL_METADATA is enabled
Problem: ffmpeg tries to read COVR atom data twice if MOV_EXPORT_ALL_METADATA is enabled.
If COVR atom is the last in the stream, a parsing of such file fails.

Solution: just return immediatelly after mov_read_covr

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 03:43:37 +02:00
Michael Niedermayer
09cd22860f avformat/libnut: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 01:56:52 +02:00
Michael Niedermayer
f6d17d2aa9 avformat/matroskaenc: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 01:56:08 +02:00
Michael Niedermayer
3af7e7b501 avfilter/vsrc_mandelbrot: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 01:54:36 +02:00
Michael Niedermayer
565c321cd0 tests/fate/libavutil: run cpu test and display the cpus detected feature set
With this the fate clients runtime cpu feature set should be visible

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 01:43:30 +02:00
Michael Niedermayer
7efe83996c tests/fate-run: add runecho command to run a test and display its output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 01:43:29 +02:00
Michael Niedermayer
56193d33be avformat/http: remove never twice executable loop
Fixes CID1197069

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 20:44:15 +02:00
Peter Kovář
973de9ebf8 avcodec/hevc: fix outputted AVFrame.key_frame
previously it was always 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 20:30:44 +02:00
batguano999
434ba17b22 configure: add encoding to --enable-libopus doc. 2014-05-14 19:07:49 +02:00
Michael Niedermayer
3690393f68 avutil/dict: delay addition of const from e12a73246d until next major ABI bump
This unbreaks API

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 15:44:01 +02:00
Michael Niedermayer
acb6f3af4f avutil/fifo: delay addition of const from 78d3453c4a until next major ABI bump
This unbreaks API, for example audacity has more build errors due to this

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 15:44:01 +02:00
Michael Niedermayer
0fdc3cd86f avutil/version: add FF_CONST_AVUTIL53
This will become "const" on the next major API version

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 15:44:01 +02:00
Michael Niedermayer
dbd1fdd214 Merge commit '7e90133f6420b1c53652f972b9561600822881ee'
* commit '7e90133f6420b1c53652f972b9561600822881ee':
  build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined

Conflicts:
	common.mak

See: efa9596831
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 14:02:19 +02:00
Michael Niedermayer
6a72260e6b Merge commit 'a738540366c9b114949b7914c0d08e2c28982cfb'
* commit 'a738540366c9b114949b7914c0d08e2c28982cfb':
  lavf: properly document the distinction between flags and ctx_flags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 13:54:21 +02:00
Janne Grunau
7e90133f64 build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined
Avoids including disabled library Makefiles.
2014-05-14 09:46:43 +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
Anton Khirnov
a738540366 lavf: properly document the distinction between flags and ctx_flags 2014-05-14 07:47:56 +02:00
Michael Niedermayer
6ab37221c8 avfilter/vf_removelogo: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 06:17:27 +02:00
Michael Niedermayer
14e2e40f3b avfilter/vf_hqdn3: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 06:17:05 +02:00
Michael Niedermayer
0aac9b76bc avcodec/libx264: Implement reference frame count limiting based on level
This makes libavcodec/libx264.c behave more similar to the x264 command line
util

Fixes Ticket3307

Implementation based on x264

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 02:57:10 +02:00
Michael Niedermayer
c3417ed7fd swscale/utils: Add check that ensures that the hardcoded struct offsets are valid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-14 01:32:11 +02:00
Clément Bœsch
c683e6aa2c build: move ebur128 swr dep to configure. 2014-05-13 23:13:44 +02:00
Michael Niedermayer
f0ae467e6c configure: swresample depends on avutil
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 22:40:47 +02:00
Michael Niedermayer
efa9596831 common.mak: fix (not)building disabled libs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 22:40:45 +02:00
Michael Niedermayer
3d7218d932 Merge commit '449511740f06a4675b0066730fa45cdb764ffafc'
* commit '449511740f06a4675b0066730fa45cdb764ffafc':
  build: handle library dependencies in configure

Conflicts:
	common.mak
	configure
	libavdevice/Makefile
	libavfilter/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 22:40:32 +02:00
Reimar Döffinger
d90ba411ab dpx: use intfloat.h instead of deprecated intfloat_readwrite.h.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-05-13 20:53:24 +02:00
Michael Niedermayer
76581ab833 Merge commit '9aa4592076d4dbb29d1198b0e258f9f85c0c00b5'
* commit '9aa4592076d4dbb29d1198b0e258f9f85c0c00b5':
  aarch64: assembler in clang-3.4 ignores the division by two

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 20:34:32 +02:00
Janne Grunau
449511740f build: handle library dependencies in configure
Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.
2014-05-13 20:02:01 +02:00
Janne Grunau
9aa4592076 aarch64: assembler in clang-3.4 ignores the division by two
Values are positive powers of two, so just replace it with right shift.
2014-05-13 19:44:09 +02:00
Matt Oliver
cef99e12bc Use rac_get_prob branchy version when used within a conditional branch.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 16:04:08 +02:00
Olivier Langlois
f1c167496e Support broadcast destination for udp protocol
Use the required socket option SO_BROADCAST to be able to stream to a broadcast
address.

Prior to the patch, trying to stream to a broadcast address was resulting to the
following error:

av_interleaved_write_frame(): Permission denied

The patch has been tested with:

ffmpeg -f v4l2 -framerate 30 -input_format yuyv422 -video_size 640x480 -i /dev/video0 \
 -c:v libx264 -profile:v high -preset ultrafast -tune zerolatency -b:v 500k -pix_fmt yuv420p \
 -f mpegts udp://192.168.1.255:5004?broadcast=1

I have added an option to let the user explicitly request broadcast in order to avoid
ffmpeg to broadcast unintentionally.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 15:51:41 +02:00
Mickaël Raulet
bb9e5116fe hevc: fixing code indenting in hevcpred(cherry picked from commit 28a5916845928de2951013b5398465573b181925)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 14:29:50 +02:00
Mickaël Raulet
38df49a068 hevc/intrapred: fix indent(cherry picked from commit ab167f3158cf37bd679bda28566170e2c3691686)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 14:14:14 +02:00
Mickaël Raulet
053fdacde7 hevc: a much faster implementation of intra prediction (up to 1s on
haswell 2.6GHz on basket ball drive all intra qp 27)(cherry picked from commit 5de9739176f0eb4c205e80a91628a0196c9924b2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 14:14:05 +02:00
Aaron Graham
72dcd48c19 avformat/asfenc: honor the maximum of 63 payloads
Fixes Ticket3634

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-13 00:54:55 +02:00
Michael Niedermayer
81d1fcf37d avcodec: add option to make is_intra_more_likely() from error concealment return "no"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 22:55:39 +02:00
Michael Niedermayer
a8bc175dd9 avformat/mp3dec: check the number of frames per buffer size
Fixes misdetection of issue3327-libc-2.17.so

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 21:05:47 +02:00
Michael Niedermayer
b3b505c73b avformat/utils: if the id3 tag is too large for data after it to become available, use the full AVPROBE_SCORE_EXTENSION if extension matches
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 20:45:36 +02:00
Michael Niedermayer
d05588e21e avformat/utils: limit probe score in the id3 case only if there is a chance that data after the id3 tag will become available
Fixes ticket3327 (sample.mp3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 20:45:03 +02:00
Carl Eugen Hoyos
ab21acecc7 Use Matroska document version 2 for WebM files if possible.
Google's plugin for the Internet Explorer refuses to play
files with another document version.

Fixes ticket #3583.
2014-05-12 18:16:48 +02:00
Carl Eugen Hoyos
a01fedd9b8 Fix compilation with --enable-lto --enable-shared with icc. 2014-05-12 18:16:48 +02:00
Hendrik Leppkes
87f2d8079a hevcdsp: correctly indicate that hevc_put_hevc_bi_epel_h uses 9 GPRs
Fixes FATE on Windows.

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 17:00:48 +02:00
Michael Niedermayer
b9cce9ee5c avfilter/buffer: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 12:24:41 +02:00
Michael Niedermayer
e951e04a4a avcodec/buffersrc: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 12:24:25 +02:00
Matt Oliver
4d93e758d7 configure: Ensure log2 is disable based on msvcrt version.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 10:08:15 +02:00
Matt Oliver
3b2ab8a783 configure: Allow log2 with msvc12 onwards.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 03:46:50 +02:00
Michael Niedermayer
96abdf2ffd avcodec/vda_h264: fix bistream typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 03:27:04 +02:00
Michael Niedermayer
5460ab73d2 Merge commit '1839fafa951308237c4672ffd9a94f927b26eac7'
* commit '1839fafa951308237c4672ffd9a94f927b26eac7':
  avconv: Support VDA hwaccel

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 02:44:28 +02:00
Michael Niedermayer
2856332719 avcodec/vda_h264: fix null pointer dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 02:25:58 +02:00
Michael Niedermayer
5449239a03 Merge commit '67afcefb35932b420998f6f3fda46c7c85848a3f'
* commit '67afcefb35932b420998f6f3fda46c7c85848a3f':
  lavc: Add new VDA hwaccel

Conflicts:
	configure
	libavcodec/vda.h
	libavcodec/vda_h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 01:57:02 +02:00
Michael Niedermayer
c6a683bf22 Merge commit '31a46750c7eafe6bce6a3e4f09853cd0a585292b'
* commit '31a46750c7eafe6bce6a3e4f09853cd0a585292b':
  vda: use hwaccel private data for internal bitstream buffer

Conflicts:
	libavcodec/vda.h
	libavcodec/vda_h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 01:04:27 +02:00
Michael Niedermayer
14aef38a69 Merge commit '66e6c8a7b4e3ac926302529606bd3e323c28b20f'
* commit '66e6c8a7b4e3ac926302529606bd3e323c28b20f':
  lavu: Add a pixel format for new VDA hwaccel

Conflicts:
	doc/APIchanges
	libavutil/pixfmt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 00:37:12 +02:00
Michael Niedermayer
2ec4586d77 Merge commit 'dd2d3b766b20196d0b65a82e3d897ccecbf7adb8'
* commit 'dd2d3b766b20196d0b65a82e3d897ccecbf7adb8':
  lavc: Add hwaccel private data and init/uninit callbacks

Conflicts:
	libavcodec/avcodec.h
	libavcodec/internal.h
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 00:21:44 +02:00
Michael Niedermayer
c4fe50b954 Merge commit 'ebc29519d1634bfeb386c20a5d8a52837aae2436'
* commit 'ebc29519d1634bfeb386c20a5d8a52837aae2436':
  hwaccel: Support specific frame allocators

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-12 00:06:35 +02:00
Michael Niedermayer
fa0f7c024e Merge commit 'a871ef0cc936612bdb0e643196be72efcf0c8986'
* commit 'a871ef0cc936612bdb0e643196be72efcf0c8986':
  hwaccel: Rename priv_data_size to frame_priv_data_size

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 23:49:13 +02:00
Michael Niedermayer
8d19dd91a5 Merge commit '08bb2567586599d62a282c4cd31567a0807f3d92'
* commit '08bb2567586599d62a282c4cd31567a0807f3d92':
  lavc: document which parts of AVHWAccel are private.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 23:40:51 +02:00
Michael Niedermayer
f2f99f07a5 Merge commit '5c1d7246cd65dc4db1b6dc36e29ce39fc1068f3f'
* commit '5c1d7246cd65dc4db1b6dc36e29ce39fc1068f3f':
  lavc: set AVCodecContext.hwaccel in ff_get_format()

Conflicts:
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 23:28:40 +02:00
Michael Niedermayer
d93cf093f8 Merge commit '632ad2248e2e5d8cd4b51e6c87c943a38c3da425'
* commit '632ad2248e2e5d8cd4b51e6c87c943a38c3da425':
  lavc: Add an internal wrapper around get_format()

Conflicts:
	libavcodec/h264_slice.c
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 21:48:32 +02:00
Michael Niedermayer
5e95551199 avcodec/dct: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 20:06:45 +02:00
Michael Niedermayer
e2c7816ab0 avcodec/cinepakenc: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 20:06:28 +02:00
Anton Khirnov
1839fafa95 avconv: Support VDA hwaccel
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-11 15:00:03 +02:00
Anton Khirnov
67afcefb35 lavc: Add new VDA hwaccel
It leverages the new hwaccel 1.2 features:

- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-11 15:00:03 +02:00
Anton Khirnov
31a46750c7 vda: use hwaccel private data for internal bitstream buffer 2014-05-11 15:00:03 +02:00
Anton Khirnov
66e6c8a7b4 lavu: Add a pixel format for new VDA hwaccel
The current hwaccel is broken and cannot be fixed in a compatible
way. It will be deprecated and replaced with a new one.
2014-05-11 14:59:59 +02:00
Anton Khirnov
dd2d3b766b lavc: Add hwaccel private data and init/uninit callbacks 2014-05-11 14:59:07 +02:00
Luca Barbato
ebc29519d1 hwaccel: Support specific frame allocators
It would reduce the boilerplate code users have to write.
2014-05-11 14:59:07 +02:00
Anton Khirnov
a871ef0cc9 hwaccel: Rename priv_data_size to frame_priv_data_size
This describes more accurately what this field is for.
2014-05-11 14:59:07 +02:00
Anton Khirnov
08bb256758 lavc: document which parts of AVHWAccel are private. 2014-05-11 14:59:07 +02:00
Anton Khirnov
5c1d7246cd lavc: set AVCodecContext.hwaccel in ff_get_format()
This way each decoder does not have to do the same thing manually.
2014-05-11 14:59:07 +02:00
Anton Khirnov
632ad2248e lavc: Add an internal wrapper around get_format()
It will be useful in the following commits.
2014-05-11 14:59:07 +02:00
Matt Oliver
efcea0b911 configure: Fix floating point conformance ith icl.
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 13:57:00 +02:00
Lukasz Marek
ab57cbb7b1 lavc/on2avc: silent warnings about const params
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 06:23:25 +02:00
Aman Gupta
72fed6d122 avformat/mpegtsenc: fix minor typo in omit_video_pes_length description
Signed-off-by: Aman Gupta <ffmpeg@tmm1.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 03:20:00 +02:00
michael
04e140daa2 libmpcodecs/vf_uspp: check avcodec_open() return code
Fixes CID1135747

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-11 02:13:28 +02:00
Reynaldo H. Verdejo Pinochet
e0877aa544 ffserver: don't leak poll_table if poll fails
Should fix Coverity Scan issue #732265

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-05-10 18:16:19 -04:00
Reimar Döffinger
97bcb05889 Add missing "const" to pointer arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-05-10 21:57:28 +02:00
Michael Niedermayer
6b9e0bf42f avfilter/vf_removelogo: fix memleak on failure
Fixes CID751770

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 21:29:24 +02:00
James Almer
8e07800001 hevcdsp: include stddef.h for ptrdiff_t definition
Including stdint.h was enough for systems like Mingw, but apparently not for Linux.
This should fix make checkheaders failures on every platform

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 18:23:30 +02:00
Matt Oliver
c6bf660bef opencl: Make init_mtx static with volatile lock
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 15:07:33 +02:00
James Almer
fa23190a7a hevcdsp: add missing header include
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 14:55:03 +02:00
Michael Niedermayer
2e55f3e907 avfilter/vf_lut3d: check size in parse_dat()
Fixes CID1212261
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 14:46:58 +02:00
Michael Niedermayer
dc6b99d6b2 avformat/movenc: Check ff_put_wav_header() return code
Fixes CID1212260
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 03:51:49 +02:00
Andrey Utkin
8cc6e91f69 Document smoothstreaming muxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-10 00:06:32 +02:00
Matthew Lindner
b372f67342 avcodec: better level/index printing 2014-05-09 22:05:57 +02:00
Michael Niedermayer
398e3a591f avcodec: replace uses of deprecated avcodec_set_dimensions()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 19:43:30 +02:00
Matt Oliver
3554c2fafc libmpcodecs: Fix compilation due to missing static in suncc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 18:33:55 +02:00
Michael Niedermayer
8a21613821 Merge commit '9880a0d4b131ef36694d62f78060350a81f08b80'
* commit '9880a0d4b131ef36694d62f78060350a81f08b80':
  pcm-dvd: Fix 20bit decoding

See: 5db49fc38d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 16:44:25 +02:00
nu774
9880a0d4b1 pcm-dvd: Fix 20bit decoding
Increment the pointer as needed.

Bug-Id: 592

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-09 16:07:15 +02:00
Diego Elio 'Flameeyes' Pettenò
a7b554f863 rtpdec: make the NTP time values unsigned.
As per RFC3550, section 4, the NTP time is provided as 64-bit unsigned
integer, so follow the same logic here.

Reviewed-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 15:10:57 +02:00
Hendrik Leppkes
bc47801968 configure: check for recent dxva2api headers with fixed COBJMACROS defines
This fixes build failures on older mingw chains (before 2012).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 14:18:05 +02:00
Michael Niedermayer
2201d1a0f8 avcodec/hevc: Fix undefined shifts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 13:34:12 +02:00
Michael Niedermayer
0be95996d0 avcodec/mpegaudiodec_template: make shift unsigned to avoid undefined behavior
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 13:17:39 +02:00
Michael Niedermayer
341cacb9ac avcodec/x86/hevcdsp_init: fix build failure with --disable-mmx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 05:16:27 +02:00
Michael Niedermayer
e54c052bee avcodec/mpeg4videodec: print run/level/index values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 02:03:54 +02:00
Michael Niedermayer
6df33c4926 avcodec: include GET_RL_VLC() in trace output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 02:03:54 +02:00
plepere
63832e01c3 hvcodec/x86/hevcdsp: make macros more modular to support functions that are not sse4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-09 00:14:50 +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
Michael Niedermayer
996fffbbb3 Merge commit '0bacfa8d37710b904897e7cbeb8d6f96fbf75e2e'
* commit '0bacfa8d37710b904897e7cbeb8d6f96fbf75e2e':
  rtmpproto: Check the buffer sizes when copying app/playpath strings

Conflicts:
	libavformat/rtmpproto.c

See: 0c2a6dabce
See: 02ac3398eb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 22:44:58 +02:00
Michael Niedermayer
126927c58e avcodec/exr: mark gama option as experimental / unsupported
Suggested-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 21:10:53 +02:00
Gonzalo Garramuno
cd3daad77e avcodec/exr: Add a gamma flag to exr loader to avoid banding
This is needed to avoid banding artifacts when gammaing the picture.
Currently, if done with a video filter, the process is done on uints
instead of full float.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 21:00:56 +02:00
Michael Niedermayer
0c2a6dabce avformat/rtmpproto: add FFMIN() to av_strlcpy()
Suggested-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 18:19:38 +02:00
Martin Storsjö
0bacfa8d37 rtmpproto: Check the buffer sizes when copying app/playpath strings
As pointed out by Reimar Döffinger.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-08 19:02:43 +03:00
Michael Niedermayer
aff352be63 avcodec/mjpegdec: zero gb to silence warning about it being possibly uninitialized
The code is not speed relevant, also its more robust if the pointers are NULL instead of random.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 17:37:40 +02:00
Michael Niedermayer
ce4ae18405 avcodec/takdec: Always initialize hsize, silence "may be used uninitialized" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 17:33:28 +02:00
Michael Niedermayer
62a9725bc9 avcodec/dcadec: add an assert to silence a uninitialized variable warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 16:48:41 +02:00
Michael Niedermayer
7e79d72c28 avcodec/dcadec: remove always true if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 16:47:20 +02:00
Michael Niedermayer
364e8904ce avcodec/cinepakenc: Fix "may be used uninitialized in this function" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 16:40:58 +02:00
Michael Niedermayer
6c23a85000 avfilter/af_compand: Silence "may be used uninitialized" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 06:53:16 +02:00
Michael Niedermayer
c71f8d40be Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavc: use av_fifo_freep
  lavf: use av_fifo_freep
  ffmpeg: use av_fifo_freep
  lavd/jack_audio: use av_fifo_freep
  lavfi: use av_fifo_freep
  lavu/fifo: add av_fifo_freep function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-08 03:49:12 +02:00
Lukasz Marek
9b60d907ae lavc: use av_fifo_freep
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
Lukasz Marek
ce1eefe691 lavf: use av_fifo_freep
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
Lukasz Marek
a5f2f33a67 ffmpeg: use av_fifo_freep
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
Lukasz Marek
75a19f5eec lavd/jack_audio: use av_fifo_freep
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
Lukasz Marek
70b63419ee lavfi: use av_fifo_freep
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:47 +02:00
Lukasz Marek
351f6118c7 lavu/fifo: add av_fifo_freep function
Function allows to free fifo and reset freed pointer.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-07 23:39:42 +02:00
Michael Niedermayer
9e58677438 avcodec/huffyuvenc: Make version 3 of ffvhuff non experimental
Tested-by: Tim Nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 23:24:38 +02:00
Michael Niedermayer
54ae58802e avcodec/cinepakenc: drop coded_frame init
Fixes const being lost warning

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 17:54:48 +02:00
Michael Niedermayer
a6e9448dc6 avcodec/cinepakenc: Zero AVPictures, silence "may be used uninitialized" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 17:54:03 +02:00
Michael Niedermayer
a779602584 avcodec/eamad: silence uninitialized variable warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 17:48:04 +02:00
Michael Niedermayer
eeb48353ab avcodec/ac3enc: silence 2 warnings about "possibly uninitialized" variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 16:52:36 +02:00
Michael Niedermayer
efbf107f5b avfilter/aeval: silence "may be used uninitialized" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 16:15:50 +02:00
Matt Oliver
1898c2f49d inline asm: fix arrays as named constraints.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 15:02:45 +02:00
Michael Niedermayer
134206ca7a avformat/utils: fix const warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 06:15:02 +02:00
Michael Niedermayer
8dd435f0cf cmdutils: include config.h, fix "is not defined" warning due to CONFIG_OPENCL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 06:14:57 +02:00
Michael Niedermayer
cd20b93e2f avformat/h263dec/h263_probe: Check TR
Fixes missdetection of Misdetection_345.mp3
Fixes missdetection of Misdetection_421.mp3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 03:42:21 +02:00
Michael Niedermayer
3ad21c50af avformat/h263dec/h263_probe: Check PSC bit 9 and 13 in
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 03:20:13 +02:00
Michael Niedermayer
04b15a6055 avformat/h263dec: shift data in state to make more bits available to probe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 03:12:34 +02:00
Michael Niedermayer
326463893b avcodec/wavpack: initialize pointers to silence warning about them possibly being uninitialized
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 02:13:56 +02:00
Michael Niedermayer
84655bdaed avcodec/hevc: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 02:07:12 +02:00
James Almer
4cdea92976 swresample/resample: add missing xmm clobbers
Might fix fate-swr on ICL

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 01:32:40 +02:00
Michael Niedermayer
d68ed9f257 Merge commit '7ce3bd9614717e545af8fb8455032c807e389b78'
* commit '7ce3bd9614717e545af8fb8455032c807e389b78':
  rtmpproto: Support alternative slist parameter in rtmp URLs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-07 00:39:54 +02:00
Uwe L. Korn
7ce3bd9614 rtmpproto: Support alternative slist parameter in rtmp URLs
Support the URL scheme where the playpath is in an RTMP URL is
passed as the slist argument and the app is given infront of the
query part of the URL:

rtmp://host[:port]/[app]?slist=[playpath]

(other arguments in the query part are stripped as they are not used)

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-06 23:41:56 +03:00
Michael Niedermayer
fc7d0d8201 avcodec/x86/hevcdsp_init: fix SSE4 checks
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 18:27:49 +02:00
Michael Niedermayer
7be230b5fa avcodec/x86/Makefile: remove duplicate line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 18:23:42 +02:00
Michael Niedermayer
3b3db02f2e avcodec/x86/hevcdsp_init: fix build on 32bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 18:23:42 +02:00
plepere
7a2491c436 HEVC : added assembly MC functions
pretty print x86

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 18:23:36 +02:00
Mickaël Raulet
83976e40e8 hevc: C code update for new motion compensation
pretty print C

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 18:22:34 +02:00
Michael Niedermayer
760a9ef451 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  mpegts: always reset pes packet state on new packet
  mpegts: unref buffer in reset_pes_packet_state
  mpegts: factorize pes packet state reset function
  mpegts: fix indentation after last commit
  mpegts: only emit new packets if data buffer exists
  mpegts: remove uneeded buf_size check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 15:39:56 +02:00
Matt Oliver
ac9869ffb0 x86/mpegaudiodsp.c: msvc compilation error without sse/avx_external
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 14:15:02 +02:00
Lukasz Marek
38b722e7d7 gitignore: add tools/uncoded_frame
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 14:14:32 +02:00
Michael Niedermayer
7db0f9bef1 avcodec/mpeg4videoenc: fix alternative implementation of mpeg4_encode_dc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 05:36:10 +02:00
Michael Niedermayer
141a84688f avcodec/mpeg4videodec: fix mcbpc error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 05:34:00 +02:00
Michael Niedermayer
2baf1c8c60 avcodec/snowenc: Fix "incompatible pointer type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 01:03:58 +02:00
Michael Niedermayer
5fc4c00972 avfilter/af_bs2b: Fix incompatible pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-06 01:01:02 +02:00
Michael Niedermayer
89d2fc62db avcodec/svq3: Fix "incompatible pointer type" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 23:30:35 +02:00
Michael Niedermayer
1394e0a9e0 avformat/segment: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 23:11:04 +02:00
Marton Balint
6c5375100c mpegts: always reset pes packet state on new packet
Fixes ticket #3584.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-05 22:33:52 +02:00
Marton Balint
a78274329c mpegts: unref buffer in reset_pes_packet_state
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-05 22:33:52 +02:00
Marton Balint
d7ca914988 mpegts: factorize pes packet state reset function
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-05 22:33:52 +02:00
Marton Balint
e2752de344 mpegts: fix indentation after last commit
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-05 22:33:52 +02:00
Marton Balint
9ba8debce9 mpegts: only emit new packets if data buffer exists
I don't think this can acutally happen in the current code, but better safe
than sorry.

Fixes Coverity CID 732217.

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-05 22:33:52 +02:00
Marton Balint
a82e87618f mpegts: remove uneeded buf_size check
It is already ensured by the loop condition

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-05-05 22:33:52 +02:00
Michael Niedermayer
4aa7848eb8 avutil/file_open: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 19:00:38 +02:00
Michael Niedermayer
e77ffaa0ac tests/tiny_ssim: more correct error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 19:00:14 +02:00
Michael Niedermayer
2ded57216e avutil/audio_fifo: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 18:59:56 +02:00
Michael Niedermayer
b395167d56 tools/ismindex: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 18:47:24 +02:00
Michael Niedermayer
a69e16a97e tests/tiny_ssim: check dimensions
Fix integer overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 18:47:24 +02:00
Lukasz Marek
78d3453c4a lavu/fifo: add const to arguments
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 17:32:24 +02:00
Michael Niedermayer
47550e62bf avformat/astenc: avoid using AVCodecContext.frame_number
Theres no gurantee that the user application has initialized it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 16:46:47 +02:00
Michael Niedermayer
ba040d4c8c Merge commit '3828eb8519c1530392ab8820b1aa784602128afc'
* commit '3828eb8519c1530392ab8820b1aa784602128afc':
  libfdk-aac: Relicense the library wrappers to 2-clause BSD

Conflicts:
	libavcodec/libfdk-aacdec.c
	libavcodec/libfdk-aacenc.c

<Daemon404> michaelni, fyi, for the fdk relicensing, wbs also contact all the ffmpeg-only contributers
<Daemon404> so it should be fine to merge.

Thanks-to: Martin Storsjö <martin@martin.st>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 16:18:15 +02:00
Michael Niedermayer
db9c138616 Merge commit '15fa856b82ea7dbbf69edc1074eb13dd00b0fa84'
* commit '15fa856b82ea7dbbf69edc1074eb13dd00b0fa84':
  libfdk-aacenc: Enable 7.1 channel encoding

See: 91489d28ba, and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 15:58:40 +02:00
Michael Niedermayer
d5ec1ddf7b Merge commit '9580818c5d934bde65a95efd2cee61c174721092'
* commit '9580818c5d934bde65a95efd2cee61c174721092':
  avconv: rename OutputStream.opts to OutputStream.encoder_opts

Conflicts:
	ffmpeg.c
	ffmpeg.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 15:51:55 +02:00
Michael Niedermayer
22ffa5390f Merge commit '01947f07b81a57fb1e15114b710f6d5ae4f70a11'
* commit '01947f07b81a57fb1e15114b710f6d5ae4f70a11':
  avconv: remove a useless line

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 15:09:55 +02:00
Michael Niedermayer
1efc089218 Merge commit '65ed9e7585e86e6c728bc762ac9944b157e39f8d'
* commit '65ed9e7585e86e6c728bc762ac9944b157e39f8d':
  avconv: rename 'codec' to 'enc_ctx'

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 15:03:52 +02:00
Michael Niedermayer
1f40536cca Merge commit '650a5206a944fd36a42d92f98e745972056b1f7c'
* commit '650a5206a944fd36a42d92f98e745972056b1f7c':
  avconv: rename 'icodec' to 'dec_ctx'

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 14:55:26 +02:00
Michael Niedermayer
42b7bda41a Merge commit 'f3a6ad22c977c8fea87c4c5e4535061db6324d66'
* commit 'f3a6ad22c977c8fea87c4c5e4535061db6324d66':
  avconv: rename InputStream.opts to InputStream.decoder_opts

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 14:44:33 +02:00
Michael Niedermayer
6e39707438 Merge commit '73ed8558a61c4f1d0ce8d1f35183ac1a0a4e31e3'
* commit '73ed8558a61c4f1d0ce8d1f35183ac1a0a4e31e3':
  avconv: simplify exit_program() by using more local vars

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 14:39:13 +02:00
Martin Storsjö
3828eb8519 libfdk-aac: Relicense the library wrappers to 2-clause BSD
This should make it possible for Fraunhofer to contribute to these
wrappers - they didn't want to contribute to code under LGPL2.1 with
the "or any later version" clause (which allowed using the code
under the LGPL3 license).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-05 14:18:43 +03:00
Jean First
15fa856b82 libfdk-aacenc: Enable 7.1 channel encoding
7.1(wide) and 7.1(wide-side) channel layouts are supported in
fdk-aac since the 0.1.3 release.

The earlier versions of fdk-aac didn't include any library
version defines in the public headers, thus checking for
the AACENCODER_LIB_VL0 define is enough to know that we're
building against a new enough version of fdk-aac.

This change includes contributions by Tim Walker,
Michael Niedermayer and Timothy Gu.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-05 14:01:53 +03:00
Carl Eugen Hoyos
db01de4c0a Fix standalone compilation of sonic lossless encoder. 2014-05-05 09:14:31 +02:00
Michael Niedermayer
6bd1741231 avfilter/f_select: fix incompatible pointer type warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 05:51:50 +02:00
Michael Niedermayer
ebf2c2c3a8 avcodec/lossless_videodsp: fix incompatible pointer type warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 05:49:18 +02:00
Hendrik Leppkes
ae8e2d7634 avisynth: set duration of audio streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 04:38:33 +02:00
Michael Niedermayer
656fe7ecce swscale/utils: use FF_ALLOC(Z)_ARRAY_OR_GOTO() and av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 19:49:06 +02:00
Michael Niedermayer
beecfa81ac avutil/pca: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 19:00:16 +02:00
Michael Niedermayer
35e16b1bab MAINTANERS: update snow/ffv1/nut entries as these are no longer in a single file
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 18:57:15 +02:00
Michael Niedermayer
aeeb3d4605 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Map --enable-lto to -ipo when compiling with icc.
  Disable inline_asm_direct_symbol_refs if lto was requested.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 18:30:06 +02:00
Carl Eugen Hoyos
431c7bd3f4 Map --enable-lto to -ipo when compiling with icc. 2014-05-04 17:16:26 +02:00
Carl Eugen Hoyos
a64df19c5b Disable inline_asm_direct_symbol_refs if lto was requested.
This fixes link time optimizations with gcc without disabling inline asm.

Fixes ticket #2941.
2014-05-04 17:09:21 +02:00
Lukasz Marek
c9a12fdd2d lavf/mux: pass options to nested structs of priv data
This is continuation of commit 330d547e
Nested struct is set in two places.
Previous commit set nested struct only in one case.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 14:46:37 +02:00
Michael Niedermayer
336901e060 avcodec/h263dec: use AV_EF_IGNORE_ERR
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 13:24:40 +02:00
Michael Niedermayer
e94b08f002 avformat: add AV_EF_IGNORE_ERR
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 13:24:40 +02:00
Michael Niedermayer
d7ade20adb avcodec: add AV_EF_IGNORE_ERR
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 13:24:40 +02:00
Michael Niedermayer
928e2a7d64 doc/codecs: document ignore_err
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 13:24:40 +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
Lukasz Marek
3316556cf7 MAINTAINERS: add myself as lavd/xv maintainer
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 04:48:41 +02:00
Matt Oliver
c25b0b7788 Maintainers: add myself for msvc and icl.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 03:26:45 +02:00
Matt Oliver
a6b0c0e123 Enable inline asm in intel compiler on windows.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 03:26:40 +02:00
Michael Niedermayer
8b132bb7b9 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Initialize riff and wav size fields to -1 instead of 0.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 01:23:58 +02:00
Michael Niedermayer
32388e04a8 Merge commit 'dcbfb7805a655757e0dac2a647dfcd3de0ab0510'
* commit 'dcbfb7805a655757e0dac2a647dfcd3de0ab0510':
  probe: Support AAC_LATM in set_codec_from_probe_data

Conflicts:
	libavformat/utils.c

See: 7bdc5de33d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 01:14:30 +02:00
Michael Niedermayer
4210cbf193 Merge commit 'f66d0c57b13c1b7102e1e353237af178960dd3c5'
* commit 'f66d0c57b13c1b7102e1e353237af178960dd3c5':
  latm: Add a probe function

Conflicts:
	libavformat/rawdec.c

See: 47818b2a67
See: 097f668047
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-04 00:19:35 +02:00
Michael Niedermayer
bc4b424dfa Merge commit 'de69aedf9935631b7f78e8b8da6e460422a9bc5f'
* commit 'de69aedf9935631b7f78e8b8da6e460422a9bc5f':
  mathematics: K&R formatting cosmetics

Conflicts:
	libavutil/mathematics.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 23:46:36 +02:00
Michael Niedermayer
1c4110be90 Merge commit '3a177a9cca924e097265b32f9282814f6b653e08'
* commit '3a177a9cca924e097265b32f9282814f6b653e08':
  swscale: Fix an undefined behaviour

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 23:36:54 +02:00
Michael Niedermayer
039630631e Merge commit '925c37874b617816b6f460c6f229c18b46548b46'
* commit '925c37874b617816b6f460c6f229c18b46548b46':
  vp9: Read the frame size as unsigned

Conflicts:
	libavcodec/vp9.c

See: c72f587353
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 23:29:20 +02:00
Michael Niedermayer
0c06ca7a8a Merge commit 'a90d92ce2aeea8eaae5c616958d20e000e20b964'
* commit 'a90d92ce2aeea8eaae5c616958d20e000e20b964':
  aac: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 23:21:26 +02:00
Michael Niedermayer
3ea5beab8f Merge commit 'c6b42e85493915a3c3891345f57422f9031a0b4f'
* commit 'c6b42e85493915a3c3891345f57422f9031a0b4f':
  flv: K&R formatting cosmetics

Conflicts:
	libavcodec/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 23:15:37 +02:00
Michael Niedermayer
0a5cc20d4a avcodec/jpeglsdec: add cast to silence pointer type warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 22:54:01 +02:00
Michael Niedermayer
6b79ef00fd avfilter/vf_deshake: dont pass the wrong context into the SAD functions
This fixes pointer type warnings
The context should have been unused so this should not fix any real bug

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 22:52:17 +02:00
Michael Niedermayer
a520d8fd35 avcodec/snow_dwt: fix "incompatible pointer type" warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 22:49:21 +02:00
Carl Eugen Hoyos
c2b0ce70ad Initialize riff and wav size fields to -1 instead of 0.
WMP doess not play the output files if the fields are
set to 0 and not overwritten (using pipe output).

Fixes ticket #3346.
2014-05-03 22:21:00 +02:00
Michael Niedermayer
5918c5a4cc avcodec/kgv1dec: add casts to silence "assignment from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 22:09:26 +02:00
Michael Niedermayer
bb605ef8ab avcodec/xbmdec: fix pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 22:07:54 +02:00
Anton Khirnov
9580818c5d avconv: rename OutputStream.opts to OutputStream.encoder_opts
This makes it more clear what is this variable for exactly.
2014-05-03 21:44:24 +02:00
Anton Khirnov
01947f07b8 avconv: remove a useless line
Doing anything with that field when we are doing streamcopy (so the
encoder is not opened) should have absolutely no effect.
2014-05-03 21:44:10 +02:00
Anton Khirnov
65ed9e7585 avconv: rename 'codec' to 'enc_ctx'
This more clearly describes what is the variable used for.

Also, move its declaration into the block where it is actually used.
2014-05-03 21:43:43 +02:00
Anton Khirnov
650a5206a9 avconv: rename 'icodec' to 'dec_ctx'
This more clearly describes what is the variable used for.
2014-05-03 21:43:24 +02:00
Anton Khirnov
f3a6ad22c9 avconv: rename InputStream.opts to InputStream.decoder_opts
This makes it more clear what is this variable for exactly.
2014-05-03 21:43:05 +02:00
Anton Khirnov
73ed8558a6 avconv: simplify exit_program() by using more local vars 2014-05-03 21:42:02 +02:00
Michael Niedermayer
56cc178485 avcodec/h263dec: fix "incompatible pointer type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 20:23:12 +02:00
Michael Niedermayer
00948ff876 avfilter/audio: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 20:08:18 +02:00
Michael Niedermayer
77df9de78c avcdoec/snowenc: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 20:08:18 +02:00
Michael Niedermayer
cc86158173 avcodec/ffv1dec: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 20:08:18 +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
Luca Barbato
dcbfb7805a probe: Support AAC_LATM in set_codec_from_probe_data 2014-05-03 18:51:37 +02:00
Luca Barbato
f66d0c57b1 latm: Add a probe function 2014-05-03 18:51:17 +02:00
Luca Barbato
de69aedf99 mathematics: K&R formatting cosmetics 2014-05-03 18:31:18 +02:00
Luca Barbato
3a177a9cca swscale: Fix an undefined behaviour
Prevent a division by zero down the codepath.

Sample-Id: 00001721-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-05-03 18:25:17 +02:00
Luca Barbato
925c37874b vp9: Read the frame size as unsigned
Sample-Id: 00001723-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-05-03 18:25:17 +02:00
Clément Bœsch
3f3c3318be avfilter/edgedetect: make processing functions context free. 2014-05-03 18:11:02 +02:00
Matt Oliver
3c3e02b8d1 x86/cavdsp: prevent named constraints appearing twice. 2014-05-03 17:47:55 +02:00
Carl Eugen Hoyos
4aea0afbbb Remove two duplicated named asm constraints.
This fixes compilation of libmpcodecs/vf_fspp.c with gcc and
INLINE_ASM_DIRECT_SYMBOL_REFS disabled.
2014-05-03 17:00:18 +02:00
Michael Niedermayer
681e008d06 vfilter/vf_yadif: fix request_frame after 0f9f24c9
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 16:14:32 +02:00
Michael Niedermayer
7ef01a7878 avcodec/h264: mark recovery_cnt==0 frames as keyframes
Fixes Ticket3063

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 16:01:45 +02:00
Carl Eugen Hoyos
a75349d0c8 Fix standalone compilation of dsd planar decoders. 2014-05-03 08:53:57 +02:00
Carl Eugen Hoyos
4116cbeaf5 Fix oga muxer standalone compilation. 2014-05-03 08:51:27 +02:00
Michael Niedermayer
09725c1d2b avfilter/vf_showinfo: also calculate and show mean and standard deviation
Fixes Ticket3013

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 06:02:42 +02:00
Michael Niedermayer
719e72c971 doc/APIchanges: more dates and hashes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 03:36:08 +02:00
Lukasz Marek
8b02e1c21d doc/APIchanges: add hashes and dates
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 03:35:21 +02:00
mplayer developers
80dd0aff33 libavfilter/libmpcodecs: sync existing filters with mplayer HEAD (ebcacb8b3ca91ef90acb93785b62fd8c5e5dae41)
Authors from svn:
cehoyos (2):
      Support playback of JPEG 2000 digital cinema files.
      Add name for image format IMGFMT_440P.

ib (1):
      Get rid of VOCTRL_GUI_NOWINDOW.

Matt Oliver (4):
      Fix libmpcodecs inline asm on ICL.
      Use DECLARE_ALIGNED helper macros.
      Remove some superfluous commas from inline asm for better compatibility.
      Use numeric labels in inline asm for consistency and better     compatibility.

reimar (10):
      Fix bpp calculation for XYZ format.
      Avoid duplicating the mouse autohide code.
      Add NV12/NV21 support to some helper functions.
      Add support for rotating the video via OpenGL.
      Add options to determine where borders will be added when adjusting for aspect.
      Apply forgotten move of apply_border_pos function.
      Extract window creation code to common file.
      Make VDPAU support work again with latest FFmpeg.
      img_format: document why mp_get_chroma_shift does not work for NV12/NV21
      Minor spelling/grammar fixes.

For detailed line by line authorship please see svn log of mplayer
svn://svn.mplayerhq.hu/mplayer/trunk

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 02:37:27 +02:00
Lukasz Marek
eb434f712d doc: fix message names in opengl doc
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 00:56:21 +02:00
Michael Niedermayer
64e448994c avcodec/h263dec: print MB position for each MB when TRACE is enabled
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 22:47:11 +02:00
Michael Niedermayer
cea9ee5dbd Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/xv: reident after previous commits
  lavf/mux: pass options to nested structs of priv data
  lavu/opt: add av_opt_set_dict2() function
  lavd/opengl_enc: fix window size correction code
  lavd/opengl_enc: add window size param
  lavd/opengl_enc: use flag to mark inited context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 18:46:25 +02:00
Lukasz Marek
fa4f7b17bc lavd/xv: reident after previous commits
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 18:04:05 +02:00
Lukasz Marek
330d547ef3 lavf/mux: pass options to nested structs of priv data
This commit allows to benefit from implementing child_next
callback for muxers' AVClasses.
Without that, options cannot be set in nested structs.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 18:04:05 +02:00
Lukasz Marek
ba52fb11dc lavu/opt: add av_opt_set_dict2() function
Existing av_opt_set_dict doesn't accept flags.
It doesn't allow to pass options to nested structs.
New function alllows that.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 18:04:05 +02:00
Lukasz Marek
db4b03146c lavd/opengl_enc: fix window size correction code
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 18:04:05 +02:00
Lukasz Marek
45601854b1 lavd/opengl_enc: add window size param
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 18:03:52 +02:00
Lukasz Marek
41e4c6d8c5 lavd/opengl_enc: use flag to mark inited context
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-05-02 17:46:37 +02:00
Michael Niedermayer
41a679000f avcodec/mpegvideo: fix gray*() parameter types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 17:12:42 +02:00
Michael Niedermayer
c60b266eac avcodec/mpegvideo: support disabling motion compensation
This allows analyzing videos without having prior and current frames mixed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 16:51:39 +02:00
Matt Oliver
1ccd1a3860 Enable opencl wihtout pthreads.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 05:37:07 +02:00
Michael Niedermayer
0f9f24c9cf avfilter/vf_yadif: fix filtering a single image
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-02 02:33:24 +02:00
Michael Niedermayer
e881a96632 avcodec/libxvid: improve return codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 23:08:01 +02:00
Michael Niedermayer
2ff81d0916 avcodec/utils/ff_init_buffer_info factor avctx->internal->pkt; out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 22:59:59 +02:00
Michael Niedermayer
bbc604020f avcodec/utils: merge ff_decode_frame_props() and ff_init_buffer_info()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 22:01:38 +02:00
Michael Niedermayer
77811482ab avcodec/utils: ff_decode_frame_props: set pkt_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 22:01:38 +02:00
Michael Niedermayer
a3477fef2b ffmpeg: put the sizeof() second in av_malloc_array()
This is purely a cosmetic change
Suggested-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 22:01:38 +02:00
Matt Oliver
5b9bb4d9ec opencl: add support for non-pthread locking
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 19:28:31 +02:00
Peter Ross
be098f6237 avformat/wtvdec: ignore mpeg2 extradata
Files produced by windows media center contain meaningless mpeg1 sequence
header. The mpeg2 decoder detects the presence mpeg1 sequence header start
codes and attempts to decode the stream as mpeg1. (This problem introduced
in 73a2d16b.)

Fixes ticket #3601.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 18:36:27 +02:00
Michael Niedermayer
58f4d1266b Merge commit 'ba71c74017c287681153ec8f6f1cba650d797275'
* commit 'ba71c74017c287681153ec8f6f1cba650d797275':
  lavc: deprecate AVCodecContext.codec_name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 18:04:53 +02:00
Michael Niedermayer
d1c359777f Merge commit 'e7fc9796d82abc99ef0af71027fb9aaa5311d137'
* commit 'e7fc9796d82abc99ef0af71027fb9aaa5311d137':
  lavc: do not use AVCodecContext.codec_name in avcodec_string()

Conflicts:
	libavcodec/utils.c

See: d2d7b7134f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 18:03:55 +02:00
Michael Niedermayer
b917d7024e Merge commit 'ef9732162cd4b593c6db28fdd352ebef21b5c1ca'
* commit 'ef9732162cd4b593c6db28fdd352ebef21b5c1ca':
  rmdec: do not export anything to AVCodecContext.codec_name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 17:49:57 +02:00
Michael Niedermayer
bb5657fabf Merge commit '6072184e702b4b631ac72f1b66b75e5f21e0ce2d'
* commit '6072184e702b4b631ac72f1b66b75e5f21e0ce2d':
  asfenc: use codec descriptors instead of AVCodecs to write codec info

Conflicts:
	tests/ref/lavf/asf
	tests/ref/seek/lavf-asf

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 17:40:14 +02:00
Michael Niedermayer
00c3ff26f2 Merge commit '92e4b643dfdafdb6528f1baffdbea2b9a028d7c0'
* commit '92e4b643dfdafdb6528f1baffdbea2b9a028d7c0':
  oggparseskeleton: do not use AVCodecContext.codec_name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 17:26:06 +02:00
Michael Niedermayer
7426acff1a Merge commit '18f2514c4037befd37b02e4d4f10c159edf3b26f'
* commit '18f2514c4037befd37b02e4d4f10c159edf3b26f':
  mov: export stsd Compressorname in metadata

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 17:13:05 +02:00
Michael Niedermayer
e77b9853ea Merge commit 'a2941c8cb216bdc144953cace64973f5600ffa2d'
* commit 'a2941c8cb216bdc144953cace64973f5600ffa2d':
  lavc: move CODEC_FLAG_MV0 to mpegvideo

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 17:03:59 +02:00
Michael Niedermayer
e40ae8cc00 Merge commit '6484149158b6fc6d13d2b2ef84cb26a2d3275400'
* commit '6484149158b6fc6d13d2b2ef84cb26a2d3275400':
  lavc: make the xvid-specific "gmc" flag a private option of libxvid

Conflicts:
	libavcodec/libxvid.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 16:56:40 +02:00
Michael Niedermayer
1851643987 Merge commit 'b2c31710c96fa47d9dcd40b64d39663e8957f683'
* commit 'b2c31710c96fa47d9dcd40b64d39663e8957f683':
  lavc: move CODEC_FLAG_NORMALIZE_AQP to mpegvideo

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 16:46:38 +02:00
Michael Niedermayer
cac07d0e10 Merge commit '5fccedaa67390ccddd6347c8e1c71b7664558bcd'
* commit '5fccedaa67390ccddd6347c8e1c71b7664558bcd':
  lavc: deprecate CODEC_FLAG_INPUT_PRESERVED

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 16:41:41 +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
Michael Niedermayer
97edb195f4 Merge commit '141fdc763c2841b572d29a2ad78513e8d5325870'
* commit '141fdc763c2841b572d29a2ad78513e8d5325870':
  matroska: add the Opus mapping

Conflicts:
	libavformat/matroska.c

See: 30549294ef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 16:03:30 +02:00
Michael Niedermayer
82e4f39883 Merge commit 'a1aa37dd0b96710d4a17718198a3f56aea2040c1'
* commit 'a1aa37dd0b96710d4a17718198a3f56aea2040c1':
  matroskaenc: write CodecDelay

Conflicts:
	libavformat/matroskaenc.c
	tests/ref/lavf/mkv
	tests/ref/seek/lavf-mkv

This is largely not merged as it causes assertion failures and av sync errors
Further investigation of this is warranted if the changes are found to
fix/improve something in relation to d92b1b1bab

See: d92b1b1bab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 15:56:38 +02:00
Michael Niedermayer
154d80eae7 Merge commit '1c0210c7981b6a61043d9171f506b435ff5a1f5e'
* commit '1c0210c7981b6a61043d9171f506b435ff5a1f5e':
  lavfi: add Bauer stereo-to-binaural audio filter

Conflicts:
	Changelog
	configure
	doc/filters.texi
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 14:14:10 +02:00
Luca Barbato
a90d92ce2a aac: K&R formatting cosmetics 2014-05-01 13:00:57 +02:00
Luca Barbato
c6b42e8549 flv: K&R formatting cosmetics 2014-05-01 13:00:57 +02:00
ValdikSS
7a0e689c45 lavfi/subtitles: introduce stream_index
Signed-off-by: ValdikSS <iam@valdikss.org.ru>
2014-05-01 12:52:33 +02:00
Anton Khirnov
ba71c74017 lavc: deprecate AVCodecContext.codec_name
It is undocumented and has no real use.
2014-05-01 09:31:32 +02:00
Anton Khirnov
e7fc9796d8 lavc: do not use AVCodecContext.codec_name in avcodec_string()
That field will be deprecated.
2014-05-01 09:26:57 +02:00
Anton Khirnov
ef9732162c rmdec: do not export anything to AVCodecContext.codec_name
That field will be deprecated and the value that is written there is not
particularly useful.
2014-05-01 09:26:51 +02:00
Anton Khirnov
6072184e70 asfenc: use codec descriptors instead of AVCodecs to write codec info
Also, stop using AVCodecContext.codec_name as fallback, since it will be
deprecated.

Changes the result of the lavf-asf test (and its associated seektest),
since 'msmpeg4v3' gets written instead of just 'msmpeg4'.
2014-05-01 09:26:20 +02:00
Anton Khirnov
92e4b643df oggparseskeleton: do not use AVCodecContext.codec_name
That field is undocumented, of dubious use, and will be deprecated.
2014-05-01 09:26:02 +02:00
Anton Khirnov
18f2514c40 mov: export stsd Compressorname in metadata
Stop using the undocumented to-be-deprecated AVCodecContext.codec_name
field.
2014-05-01 09:25:46 +02:00
Anton Khirnov
a2941c8cb2 lavc: move CODEC_FLAG_MV0 to mpegvideo 2014-05-01 09:24:18 +02:00
Anton Khirnov
6484149158 lavc: make the xvid-specific "gmc" flag a private option of libxvid 2014-05-01 09:24:02 +02:00
Anton Khirnov
b2c31710c9 lavc: move CODEC_FLAG_NORMALIZE_AQP to mpegvideo 2014-05-01 09:23:19 +02:00
Anton Khirnov
5fccedaa67 lavc: deprecate CODEC_FLAG_INPUT_PRESERVED
The addition of reference-counted frames makes it pointless.
2014-05-01 09:22:47 +02:00
Anton Khirnov
141fdc763c matroska: add the Opus mapping 2014-05-01 08:04:33 +02:00
Anton Khirnov
a1aa37dd0b matroskaenc: write CodecDelay 2014-05-01 08:03:51 +02:00
Alessandro Ghedini
1c0210c798 lavfi: add Bauer stereo-to-binaural audio filter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-01 08:00:30 +02:00
Michael Niedermayer
91736025b2 avformat/avidec: set average frame rate from header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 05:40:00 +02:00
Michael Niedermayer
8bf90562f6 Merge commit 'eb3b5501e8b85bfea09d533314cb6920efc42639'
* commit 'eb3b5501e8b85bfea09d533314cb6920efc42639':
  matroskadec: read the CodecDelay element

Conflicts:
	libavformat/matroska.h
	libavformat/matroskadec.c

See: d6f86d74ed
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 04:29:40 +02:00
Michael Niedermayer
feaa31d354 ffmpeg: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 02:23:08 +02:00
Michael Niedermayer
82ccefb904 avformat/nut: support storing RFC 3389 comfort noise
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 02:13:31 +02:00
Michael Niedermayer
617e866e25 Move av_find_best_pix_fmt_of_2() from avcodec to avutil
This avoids a dependancy of libavfilter on libavcodec

See Ticket 3592
Fixes Ticket2784

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 23:14:05 +02:00
Lukasz Marek
8ff72924cf lavd/opengl_enc: fix pixel data alignment
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 22:03:32 +02:00
Mickaël Raulet
bd4dc9e717 fate/hevc: update with new sequences from jctvc(cherry picked from commit de6d9c586bd3852dfbe629a88ccc8c0f0a2bfcbb)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 21:51:58 +02:00
Michael Niedermayer
a1ac27bc66 Merge commit '7d027b9d6d6290557cc5d4fc56f4b9ed630a7feb'
* commit '7d027b9d6d6290557cc5d4fc56f4b9ed630a7feb':
  librtmp: Map native options to librtmp ones when possible

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 21:43:56 +02:00
Michael Niedermayer
554a1ecab7 Merge commit '7266e24f176389d2e81bfc7c829934f7c8ae361c'
* commit '7266e24f176389d2e81bfc7c829934f7c8ae361c':
  hls: Sync the file number with the start sequence

Conflicts:
	libavformat/hlsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 21:29:04 +02:00
Michael Niedermayer
5b4c8aac97 Merge commit 'a16431034d9bd44182bf844d6bbde2c98bc4e6b5'
* commit 'a16431034d9bd44182bf844d6bbde2c98bc4e6b5':
  hls: Factor the sequence computation

Conflicts:
	libavformat/hlsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 21:14:56 +02:00
Anton Khirnov
eb3b5501e8 matroskadec: read the CodecDelay element 2014-04-30 21:00:01 +02:00
Michael Niedermayer
8522dd380b Merge commit 'c7603b3c243331057300337a61464e6ac4a605cb'
* commit 'c7603b3c243331057300337a61464e6ac4a605cb':
  hls: Print start_number as first sequence value

Conflicts:
	libavformat/hlsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 20:52:58 +02:00
Michael Niedermayer
67979b5936 Merge commit '87a3ea3192bf5e4aafa08bca8686a2b577eae818'
* commit '87a3ea3192bf5e4aafa08bca8686a2b577eae818':
  segment: Report the current media sequence

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 20:14:50 +02:00
Michael Niedermayer
f21f969a3f Merge commit '344f7b5a7e0d50573dec402dfe6228676f3889d9'
* commit '344f7b5a7e0d50573dec402dfe6228676f3889d9':
  hls: Report the current media sequence

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 20:03:06 +02:00
Luca Barbato
7d027b9d6d librtmp: Map native options to librtmp ones when possible
Makes the two protocols nearly seamless.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-30 18:56:43 +02:00
Michael Niedermayer
0eb9482e32 avcodec/flacenc: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 18:28:40 +02:00
Michael Niedermayer
f08ca91b05 avcodec/ivi_common: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 18:27:51 +02:00
Michael Niedermayer
8532566e80 avcodec/mjpegdec: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 18:26:28 +02:00
Luca Barbato
7266e24f17 hls: Sync the file number with the start sequence 2014-04-30 17:52:49 +02:00
Luca Barbato
a16431034d hls: Factor the sequence computation 2014-04-30 17:52:33 +02:00
Luca Barbato
c7603b3c24 hls: Print start_number as first sequence value
The option now behaves as expected.
2014-04-30 17:52:17 +02:00
Luca Barbato
87a3ea3192 segment: Report the current media sequence
Useful for debugging mostly.
2014-04-30 17:52:03 +02:00
Luca Barbato
344f7b5a7e hls: Report the current media sequence
Useful for debugging mostly.
2014-04-30 17:51:50 +02:00
Michael Niedermayer
1e25afc181 avcodec/tiff: Support 410 and 440 YCbCr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 17:41:31 +02:00
Daniel Verkamp
5e7d21c7ad ff_put_wav_header: add flag to force WAVEFORMATEX
Partially undoes commit 2c4e08d893:

    riff: always generate a proper WAVEFORMATEX structure in
    ff_put_wav_header

A new flag, FF_PUT_WAV_HEADER_FORCE_WAVEFORMATEX, is added to force the
use of WAVEFORMATEX rather than PCMWAVEFORMAT even for PCM codecs.

This flag is used in the Matroska muxer (the cause of the original
change) and in the ASF muxer, because the specifications for
these formats indicate explicitly that WAVEFORMATEX should be used.

Muxers for other formats will return to the original behavior of writing
PCMWAVEFORMAT when writing a header for raw PCM.

In particular, this causes raw PCM in WAV to generate the canonical
44-byte header expected by some tools.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 16:41:35 +02:00
Michael Niedermayer
bb6d00f014 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/pulse_audio_enc: respect minreq while checking buffer fullness
  lavd/pulse_audio_enc: signal that buffer is still writable after write
  lavd/pulse_audio_enc: add pointer checks
  lavd/pulse_audio_enc: add more buffer attributes
  lavd/fbdev_dec: implement fbdev_get_device_list callback
  lavd/fbdev_enc: move list device code to fbdev_common
  lavd/fbdev_enc: remove redundant assignments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 14:34:59 +02:00
Michael Niedermayer
421b21ca8a sws: dont use the optimized 410->420 unscaled conversion when height%4
Fixes Ticket3594
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 06:23:39 +02:00
Michael Niedermayer
f0c78b0769 avcodec/vorbisdec: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 05:23:44 +02:00
Michael Niedermayer
0a266cb55a avcodec/vorbisdec: try to workaround libvorbisenc bug
Fixes Ticket3590

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 05:23:37 +02:00
Michael Niedermayer
5b393766ba Merge commit 'a7c5fddac8137654cb503295c4dfb6492df43643'
* commit 'a7c5fddac8137654cb503295c4dfb6492df43643':
  avconv_dxva2: define all used GUIDs directly instead of relying on the dxva2api.h header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 00:46:38 +02:00
Michael Niedermayer
37ce3188de Merge commit '9d76dd952ffd9fffc7f9fb5cc5af6d093ba54521'
* commit '9d76dd952ffd9fffc7f9fb5cc5af6d093ba54521':
  h264: drop commented out cruft

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 00:38:13 +02:00
Lukasz Marek
5bef4878d3 lavd/pulse_audio_enc: respect minreq while checking buffer fullness
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:36:14 +02:00
Lukasz Marek
f817d55049 lavd/pulse_audio_enc: signal that buffer is still writable after write
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:36:06 +02:00
Lukasz Marek
a1e5be5c1a lavd/pulse_audio_enc: add pointer checks
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:35:42 +02:00
Lukasz Marek
954a8f4483 lavd/pulse_audio_enc: add more buffer attributes
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:35:42 +02:00
Lukasz Marek
e2ebaa0933 lavd/fbdev_dec: implement fbdev_get_device_list callback
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:35:42 +02:00
Lukasz Marek
279ff8d2f6 lavd/fbdev_enc: move list device code to fbdev_common
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:35:42 +02:00
Lukasz Marek
3050e53f2b lavd/fbdev_enc: remove redundant assignments
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-30 00:35:42 +02:00
Michael Niedermayer
b3d48c315d Merge commit 'c1f92d13589d431e576d719dd44427486a5e05cd'
* commit 'c1f92d13589d431e576d719dd44427486a5e05cd':
  mpegvideo: remove unused MpegEncContext.b4_stride

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 00:28:51 +02:00
Michael Niedermayer
8b30702c44 Merge commit '6a13505c069890cb0e2a07e29fd819a0cf2e73c1'
* commit '6a13505c069890cb0e2a07e29fd819a0cf2e73c1':
  mpegvideo: move the MpegEncContext fields used from arm asm to the beginning

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 00:23:01 +02:00
Michael Niedermayer
ed72dae4cf ffmpeg: dont print "Conversion failed" if conversion has never started
Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 23:45:22 +02:00
gcocherel
2eddf3a6ef avcodec/hevc: fix no output of prior pics and pic output flags(cherry picked from commit e99b96dff1d76d74cb5633aa9702828d863050e2)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 22:43:25 +02:00
Michael Niedermayer
978c193d47 cmdutils: omit deprecated codec ids in help output
These ids should be meaningless for the end user and would only
confuse

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 22:13:35 +02:00
Michael Niedermayer
375a0c03a9 avformat/xwma: fix memleak of dpds_table
Fixes CID1087092
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 20:48:03 +02:00
Michael Niedermayer
cf4dbe9aff avformat/xwma: improve error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 20:47:00 +02:00
Michael Niedermayer
c31ad87bc6 avformat/xwma: use NULL instead of 0 for pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 20:41:58 +02:00
Michael Niedermayer
03b88f6b39 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavfi/drawtext: allow to format pts as HH:MM:SS.mmm.
  lavf/concatdec: implement automatic conversions.
  lavf/concatdec: reindent after last commit.
  lavf/concatdec: always do stream matching.
  lavf/concatdec: check match_streams() return value.
  lavf/concatdec: use a structure for each stream.
  ffprobe: use the codec descriptor if no decoder was found.
  lavf/matroska: add "binary" pseudo-MIME type.
  lavc: minor bump and APIchanges for AVCodecDescriptor.mime_types.
  lavc: add a mime_types field to codec descriptors.
  lavc: add AV_CODEC_ID_BIN_DATA.
  lavc: add codec descriptors for TTF and OTF.
  lavc: add codec descriptors for deprecated ids.
  lavc/codec_desc: add separation comment.
  tools/ffhash: implement base64 output.
  tools/ffhash: use av_hash_final_hex().
  lavu/hash: add hash_final helpers.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 19:29:48 +02:00
Michael Niedermayer
4506ed336f avformat/img2_alias_pix: fix 2 unused variable warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 18:47:27 +02:00
Michael Niedermayer
f694ca7ca7 avcodec/tiff: support 4:2:2 and 4:1:1 YCbCr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 18:39:24 +02:00
Hendrik Leppkes
a7c5fddac8 avconv_dxva2: define all used GUIDs directly instead of relying on the dxva2api.h header
This avoids issues with inconsistent headers with different versions of mingw-w64 and older MSVC variants.

Fixes FATE builds of MSVC 2010.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-29 16:50:43 +02:00
Michael Niedermayer
217f6c53e5 Merge commit '5a70a783f04919514efec7751d710b64d8975fd7'
* commit '5a70a783f04919514efec7751d710b64d8975fd7':
  hls: Add an option to prepend a baseurl to the playlist entries

Conflicts:
	doc/muxers.texi
	libavformat/hlsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 16:37:22 +02:00
Michael Niedermayer
fd601ba6b1 Merge commit '5c08ae4f37281441188447cd04dcaf7cd7ce031f'
* commit '5c08ae4f37281441188447cd04dcaf7cd7ce031f':
  segment: Add an option to prepend a string to the list entries

Conflicts:
	doc/muxers.texi
	libavformat/segment.c

See: 5e278c19c7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 15:57:43 +02:00
Michael Niedermayer
6a0b5e3476 avcodec/mpegvideo: fix null pointer dereference
Fixes: 111342.ogm with ffplay
Found-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 14:52:12 +02:00
Anton Khirnov
9d76dd952f h264: drop commented out cruft 2014-04-29 14:49:42 +02:00
Anton Khirnov
c1f92d1358 mpegvideo: remove unused MpegEncContext.b4_stride 2014-04-29 14:49:42 +02:00
Anton Khirnov
6a13505c06 mpegvideo: move the MpegEncContext fields used from arm asm to the beginning
This should reduce the frequency with which the offsets need to be
updated.
2014-04-29 14:49:42 +02:00
Nicolas George
41334fcab4 lavfi/drawtext: allow to format pts as HH:MM:SS.mmm. 2014-04-29 13:25:59 +02:00
Nicolas George
50ed6e3ce6 lavf/concatdec: implement automatic conversions. 2014-04-29 13:25:59 +02:00
Nicolas George
9d24a536a3 lavf/concatdec: reindent after last commit. 2014-04-29 13:25:59 +02:00
Nicolas George
b24d6c5303 lavf/concatdec: always do stream matching. 2014-04-29 13:25:59 +02:00
Nicolas George
c27939d871 lavf/concatdec: check match_streams() return value. 2014-04-29 13:25:59 +02:00
Nicolas George
e973cf04f6 lavf/concatdec: use a structure for each stream. 2014-04-29 13:25:59 +02:00
Nicolas George
43ca94a633 ffprobe: use the codec descriptor if no decoder was found. 2014-04-29 13:25:59 +02:00
Nicolas George
c9212abf95 lavf/matroska: add "binary" pseudo-MIME type.
Avoid long scan and "Could not find codec parameters for stream"
error when an attachment has this type.
2014-04-29 13:25:59 +02:00
Nicolas George
70beebe357 lavc: minor bump and APIchanges for AVCodecDescriptor.mime_types.
The minor bump also covers AV_CODEC_ID_BIN_DATA.
2014-04-29 13:25:52 +02:00
Nicolas George
1bf6396498 lavc: add a mime_types field to codec descriptors. 2014-04-29 13:24:18 +02:00
Nicolas George
6ea1196673 lavc: add AV_CODEC_ID_BIN_DATA. 2014-04-29 13:24:18 +02:00
Nicolas George
892e2c2ad8 lavc: add codec descriptors for TTF and OTF. 2014-04-29 13:24:18 +02:00
Nicolas George
fa7bc7ed8b lavc: add codec descriptors for deprecated ids. 2014-04-29 13:24:18 +02:00
Nicolas George
e419e29e1c lavc/codec_desc: add separation comment. 2014-04-29 13:24:17 +02:00
Nicolas George
73c4b6ce4b tools/ffhash: implement base64 output.
Also fix usage string: the algorithm is not optional.
2014-04-29 13:24:17 +02:00
Nicolas George
3926a30b58 tools/ffhash: use av_hash_final_hex(). 2014-04-29 13:24:17 +02:00
Nicolas George
b804eb4323 lavu/hash: add hash_final helpers.
The helpers use local memory to compute the final hash,
making AV_HASH_MAX_SIZE safe to use.
2014-04-29 13:24:11 +02:00
Luca Barbato
5a70a783f0 hls: Add an option to prepend a baseurl to the playlist entries
Useful to generate playlists with absolute paths.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-29 12:14:11 +02:00
Enrique Arizón Benito
5c08ae4f37 segment: Add an option to prepend a string to the list entries
Useful to generate lists with absolute urls.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-29 12:14:00 +02:00
Reynaldo H. Verdejo Pinochet
5b881499a8 ffserver: do not ignore lseek() return
Should fix FFmpeg Coverity Scan issue #732177

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-29 01:08:06 -04:00
Reynaldo H. Verdejo Pinochet
898192e029 ffserver: do not ignore getsockname() return
Should fix FFmpeg Coverity Scan issue #732176

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-28 23:54:58 -04:00
Reynaldo H. Verdejo Pinochet
e79bc6a88a ffserver: do not ignore send() return
Should fix Coverity Scan issue #732178

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-28 23:54:58 -04:00
Reynaldo H. Verdejo Pinochet
8baa5b32a5 ffserver: do not ignore setsockopt return
Should fix FFmpeg Coverity Scan issue #732181

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-28 23:54:58 -04:00
Reynaldo H. Verdejo Pinochet
6d953ae2c4 ffserver: do not ignore ff_socket_nonblock return
Should fix FFmpeg Coverity Scan issues #732180 & #732182

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-28 23:54:46 -04:00
Michael Niedermayer
ede411dd03 avcodec/vc1_parser: fix use of uinitialized memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 04:30:53 +02:00
Michael Niedermayer
7c71076470 avutil/log: fix memleak from 669a09fb37
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 03:13:51 +02:00
Michael Niedermayer
648f7a6ec5 ffmpeg_dxva2: fix mixing of declarations and statements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 01:54:42 +02:00
Michael Niedermayer
21c7e99659 Merge commit 'a61c2115fb936d50b8b0328d00562fe529a7c46a'
* commit 'a61c2115fb936d50b8b0328d00562fe529a7c46a':
  configure: rework dxva in avconv handling

Conflicts:
	Makefile
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 01:47:53 +02:00
Michael Niedermayer
c6eee3120a Merge commit '35177ba77ff60a8b8839783f57e44bcc4214507a'
* commit '35177ba77ff60a8b8839783f57e44bcc4214507a':
  avconv: add support for DXVA2 decoding

Conflicts:
	Makefile
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 01:22:22 +02:00
Michael Niedermayer
9c6eef6f5f Merge commit 'b2b4afe8115fe3c8b005d663610e5af06f110165'
* commit 'b2b4afe8115fe3c8b005d663610e5af06f110165':
  hwaccel: fix dxva2 & vaapi loop filter parameters

See: 0ad8f73f13
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 01:04:44 +02:00
Michael Niedermayer
0f630b7b12 Merge commit 'ed4b757177f9b563412cdbc8ee3405d82e10fc05'
* commit 'ed4b757177f9b563412cdbc8ee3405d82e10fc05':
  dxva2_h264: add a workaround for old Intel GPUs

Conflicts:
	doc/APIchanges
	libavcodec/version.h

See: 8b2a130d3f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 00:52:05 +02:00
Michael Niedermayer
2548f8a237 Merge commit '2fcef90bee98bffeff1d95b7197738f50c450d86'
* commit '2fcef90bee98bffeff1d95b7197738f50c450d86':
  dxva2_h264: set the correct ref frame index in the long slice struct

Conflicts:
	libavcodec/dxva2_h264.c

See: 276839b8de
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 00:38:50 +02:00
Michael Niedermayer
fed0acebad ffmpeg: print an error at the end if conversion failed
Fixes Ticket3477

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 00:09:08 +02:00
Michael Niedermayer
68c3e6025f Fix convertion typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 00:09:08 +02:00
Anton Khirnov
a61c2115fb configure: rework dxva in avconv handling
Move the dxva check after the dependencies have been detected, make sure
the ole32 library exists.

Fixes build on non-Windows.
2014-04-28 23:02:56 +02:00
Hendrik Leppkes
35177ba77f avconv: add support for DXVA2 decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 21:21:54 +02:00
Michael Niedermayer
8120668351 avcodec/hevc_cabac: decrease CABAC_MAX_BIN
Prevents shifts with undefined behavior

Fixes CID1206634
Fixes CID1206635
Fixed CID1206636

Reviewed-by: smarter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 20:37:48 +02:00
Michael Niedermayer
b2b4afe811 hwaccel: fix dxva2 & vaapi loop filter parameters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 20:23:17 +02:00
Hendrik Leppkes
ed4b757177 dxva2_h264: add a workaround for old Intel GPUs
Old Intel GPUs expect the reference frame index to the actual surface,
instead of the index into RefFrameList as specified by the spec.

This workaround should be set when using one of the "ClearVideo" decoder
devices.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 20:21:59 +02:00
James Almer
096de451b0 configure: add support for new CPUs
Add new -march values for Intel CPUs (introduced with GCC 4.9.x), add support
for the missing AMD btver* CPUs, and improve SunCC flags accordingly.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 20:16:40 +02:00
Hendrik Leppkes
2fcef90bee dxva2_h264: set the correct ref frame index in the long slice struct
The latest H.264 DXVA specification states that the index in this
structure should refer to a valid entry in the RefFrameList of the picture
parameter structure, and not to the actual surface index.

Fixes H.264 DXVA2 decoding on recent Intel GPUs (tested on Sandy and Ivy)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 20:12:44 +02:00
Michael Niedermayer
a215b15815 avformat/utils: Set the average frame rate from the r_frame_rate if the stream appears to be cfr
This permits the average fps to be set in more cases

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 18:51:15 +02:00
Michael Niedermayer
34e7d3c368 avformat/utils: Ensure that average fps is probed if requested by the user even if tb_unreliable() is 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 16:30:50 +02:00
Michael Niedermayer
502a8f56b9 Merge commit '1eb57e1d9b59db0aa63348c21bf3290bd3f5efcb'
* commit '1eb57e1d9b59db0aa63348c21bf3290bd3f5efcb':
  lavc: eliminate tb_unreliable()

Conflicts:
	libavformat/utils.c

tb_unreliable() is used in several other parts of libavformat and thus isnt removed
The remaining change is a removial of a call to tb_unreliable() which would cause
a practically unconditional delay of about 1 second in startup for live streams.
I will implement what the commit message claims the change should do in the next
commit

This is thus, not merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 16:26:18 +02:00
Michael Niedermayer
1f249d2ca7 avformat/utils: prevent r frame rate from being set larger than 1/tb
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 15:49:51 +02:00
Michael Niedermayer
4394f82f52 avformat/utils: add gif to tb_unreliable()
This improves the used timebases when gif is the source

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 15:20:38 +02:00
Anton Khirnov
1eb57e1d9b lavc: eliminate tb_unreliable()
If framerate estimation is enabled, it makes sense to always apply it,
instead of limiting it to a few specific cases.
2014-04-28 11:34:59 +02:00
Michael Niedermayer
18af0ce62d avfilter/graphdump: Fix pointer to local outside scope
Fixes CID1194435
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 04:01:50 +02:00
Michael Niedermayer
2cf514354b avcodec/mpeg12enc: increase declared size of block function argument
Fixes CID1047236
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 01:11:04 +02:00
Michael Niedermayer
d80e7ba9b7 ffmpeg_filter: make *jpeg_formats static const
Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 00:22:38 +02:00
Michael Niedermayer
e31727bd53 avcodec/mjpegdec: make type of shift unsigned to avoid undefined behavior
Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 00:22:38 +02:00
Michael Niedermayer
4260ed462b avcodec/h264_cabac: fix indention
Fixes CID1087088
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-28 00:22:38 +02:00
Michael Niedermayer
1fc28cf164 avcodec/g729postfilter: avoid potential negative shift
Fixes CID1194402

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 23:12:42 +02:00
Michael Niedermayer
d03defa778 avcodec/tiff: Support yuv 420 and 444
Fixes Ticket416
Trolled-by: jb
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 21:03:15 +02:00
Michael Niedermayer
1ca21e1b76 avcodec/tiff: parse subsample factors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 18:44:58 +02:00
Lukasz Marek
4930e529bf lavd/fbdev_enc: fix not closed handles
Fixes CID 1206651

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 16:36:29 +02:00
Peter Ross
b3c0d010c3 avformat/mlvdec: close any additional .Mxx files
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:34:27 +02:00
Peter Ross
8bd6837e51 avformat/mlvdec: remove unused MlvContext.buffer
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:34:22 +02:00
Michael Niedermayer
ef312b8f0f Fix bistream typos
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:30:25 +02:00
Michael Niedermayer
3a5ca79b0c fix bistream typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:21:48 +02:00
Michael Niedermayer
9341e9497b Fix overriden typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:20:45 +02:00
Michael Niedermayer
a5e20d9f4d Fix teh typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:16:13 +02:00
Michael Niedermayer
466988ab75 Fix dont and doesnt typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:14:32 +02:00
Michael Niedermayer
e2a5557cbb Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavf/mpeg.h: Remove an unused definition.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 15:04:00 +02:00
Carl Eugen Hoyos
4abbea0243 lavf/mpeg.h: Remove an unused definition.
Fixes a warning when compiling mpegts.c.
2014-04-27 14:54:29 +02:00
Michael Niedermayer
e9ad121ba5 Fix skiping typos
Found-by: Alessandro Ghedini <alessandro@ghedini.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 14:50:14 +02:00
Peter Ross
9abf08f79f avformat/mlvdec: print unsigned chunk size
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 14:37:54 +02:00
Peter Ross
bdab0c2d76 avformat/mlvdec: process ff_get_wav_header return value
Fixes CID1206640.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 14:37:18 +02:00
goodthanks
c9cfd45838 avformat/mpegtsenc: Allow DTS audio copy to TS streams
This doesn't allow encoding of DTS or TrueHD. It just sets the correct
stream ID in the TS output file when a DTS or TrueHD audio stream is copied.

Fixes ticket #1398

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 14:24:29 +02:00
Michael Niedermayer
7e7b668ef5 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Try mov tags if the fourcc in V_MS/VFW mkv files cannot be found in bmp tags.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 13:29:28 +02:00
Michael Niedermayer
e20ebe491c avcodec/shorten: check bitshift
Fixes invalid shift
Fixes CID1194400

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 13:03:28 +02:00
Carl Eugen Hoyos
ade5851be0 Try mov tags if the fourcc in V_MS/VFW mkv files cannot be found in bmp tags.
Fixes decoding of broken mkv files containing ProRes video from ticket #3434.
2014-04-27 12:52:34 +02:00
Clément Bœsch
b2cfd1fde7 avfilter/curves: fix resource leaks.
Fixes CID1206650
2014-04-27 11:49:13 +02:00
Michael Niedermayer
b432960528 avcodec/mjpegdec: Fix undefined shift
Fixes CID1194388

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 05:32:56 +02:00
Michael Niedermayer
bc3234062d avcodec/truemotion2: replace impossible condition by av_assert2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 05:20:04 +02:00
Michael Niedermayer
09b16619d3 ffmpeg_filter: fix pointer to local outside scope
Fixes CID1206652
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 05:07:29 +02:00
Michael Niedermayer
6956b048d8 avfilter/vf_drawtext: fix resource leaks
Fixes CID1206649

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-27 03:18:57 +02:00
Michael Niedermayer
66e30a2e65 avformat/mpegtsenc: check avformat_new_stream() return
Fixes CID1206645
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 22:08:37 +02:00
Michael Niedermayer
24725f8e09 avformat/matroskaenc: fix indention level
Fixes CID1206644
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 22:01:48 +02:00
Michael Niedermayer
9b1d7d4fd3 avformat/oggparsecelt: fix memleak
Fixes: CID1108605

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 21:31:15 +02:00
Michael Niedermayer
68de2115ca avformat/tee: print errors for each failed bitstream filter
Fixes CID1108584

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 21:08:44 +02:00
Michael Niedermayer
ebfe154bd5 avcodec/apedec: tmpk==32 is not supported, prevent undefined behavior
Fixes CID1206639
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 20:56:31 +02:00
tue46wsdgxfjrt
669a09fb37 Add AV_LOG_PRINT_LEVEL flag to include log severity in default log formatting.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 19:27:33 +02:00
tue46wsdgxfjrt
262ea965e7 cmdutils: preserve unchanged log flags when setting AV_LOG_SKIP_REPEATED
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 19:21:59 +02:00
Lukasz Marek
b217dc91bf lavfi/avfilter: clarify avfilter_graph_get_filter() doxygen
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 02:16:56 +02:00
Michael Niedermayer
3ba77ea369 avcodec/vc1dec: print debug message if a b frame without reference is skiped
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 01:41:31 +02:00
Michael Niedermayer
8b2c3d2ae9 Merge commit 'cdf6eb5a9710566be217a3f17d3d94ac4e4d2662'
* commit 'cdf6eb5a9710566be217a3f17d3d94ac4e4d2662':
  vc1: Do not return an error when skipping b frames

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-26 01:06:15 +02:00
Reynaldo H. Verdejo Pinochet
7228bdeebd ffserver: fix missing frees at connection setup
Should fix FFmpeg Coverity Scan issue #732266 and some of #732265

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-25 19:49:55 -03:00
Reynaldo H. Verdejo Pinochet
1404e2a389 ffserver: free AVStream st before wiping context
Should fix FFmpeg Coverity Scan issue #732269

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-25 19:49:55 -03:00
Reynaldo H. Verdejo Pinochet
107f2468c4 ffserver: free nacl as needed
Should fix FFmpeg Coverity Scan issue #732268

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-25 19:49:55 -03:00
Lukasz Marek
b2682db34c lavfi/avfilter: fix typos in doxgens
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 23:49:11 +02:00
Michael Niedermayer
e0e60c9211 avcodec/dpx: extract frame rate
Fixes part of Ticket3511

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 23:40:59 +02:00
Michael Niedermayer
af165acefa avformat/movenc: dont store invalid tapt atom
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 21:51:34 +02:00
Michael Niedermayer
c9e0f7a080 Merge commit '99e22b7859177f6d3ed6121040924b337dce5497'
* commit '99e22b7859177f6d3ed6121040924b337dce5497':
  mov: Emit the correct tags for clcp tracks

Conflicts:
	libavformat/movenc.c

See: a5f6720f13
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 21:33:18 +02:00
Michael Niedermayer
944a744bf5 Merge commit '802385dbc2c57abd76f6a00e32f3df35e9526c08'
* commit '802385dbc2c57abd76f6a00e32f3df35e9526c08':
  mov: Write prof section of tapt tag

See: 8a9b48bfa9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 20:52:59 +02:00
Don Moir
62056d09b1 avformat/avidec: skip len=0 entries from the index
Reduces cpu & memory requirements for the index
See Ticket 3531

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 18:56:05 +02:00
Alessandro Ghedini
cdf6eb5a97 vc1: Do not return an error when skipping b frames
This caused mpv (and possibly others) to fallback to software decoding after
seeking a VC1 stream.

Bug-Id: 667

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-25 18:22:25 +02:00
Miles Gould
99e22b7859 mov: Emit the correct tags for clcp tracks
Bug-Id: 664

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-25 17:38:19 +02:00
Aidan Skinner
802385dbc2 mov: Write prof section of tapt tag
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-25 17:38:19 +02:00
James Almer
cdac3ab59f swresample: add swri_resample_double_sse2
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 16:46:07 +02:00
Michael Niedermayer
92cc6d5163 avcodec/mdct_template: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 15:07:31 +02:00
Michael Niedermayer
681a5b8d6f avcodec/ttaenc: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 15:04:42 +02:00
Michael Niedermayer
abbcc6b26b avcodec/utils: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 15:03:26 +02:00
Michael Niedermayer
2f2629c870 Merge commit '6d69f9f37689c999815a65a2d99999fad3a41705'
* commit '6d69f9f37689c999815a65a2d99999fad3a41705':
  vp9: write uveob as 16-bit value for 16x16/32x32 transforms.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 13:55:44 +02:00
Ronald S. Bultje
6d69f9f376 vp9: write uveob as 16-bit value for 16x16/32x32 transforms.
This fixes make fate-vp9-00-quantizer-01 THREADS=2.
2014-04-25 07:51:39 -04:00
James Almer
c7b089048d vp9: use LOCAL_ALIGNED_32 for left/top intra_pred pointers
This is needed for future AVX2 implementations

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 06:13:15 +02:00
James Almer
25d5ea6d5a lavu: add LOCAL_ALIGNED_32
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 06:12:51 +02:00
Y.C. Liu
cebe06a0bf avutil/opencl: fix a segmentfault in libavutil/opencl.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 05:29:21 +02:00
Michael Niedermayer
6e5cce1cbe configure: allow overriding ranlib
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 04:28:43 +02:00
Ben Avison
a0d7f9ec9a vc-1: Optimise parser (with special attention to ARM)
The previous implementation of the parser made four passes over each input
buffer (reduced to two if the container format already guaranteed the input
buffer corresponded to frames, such as with MKV). But these buffers are
often 200K in size, certainly enough to flush the data out of L1 cache, and
for many CPUs, all the way out to main memory. The passes were:

1) locate frame boundaries (not needed for MKV etc)
2) copy the data into a contiguous block (not needed for MKV etc)
3) locate the start codes within each frame
4) unescape the data between start codes

After this, the unescaped data was parsed to extract certain header fields,
but because the unescape operation was so large, this was usually also
effectively operating on uncached memory. Most of the unescaped data was
simply thrown away and never processed further. Only step 2 - because it
used memcpy - was using prefetch, making things even worse.

This patch reorganises these steps so that, aside from the copying, the
operations are performed in parallel, maximising cache utilisation. No more
than the worst-case number of bytes needed for header parsing is unescaped.
Most of the data is, in practice, only read in order to search for a start
code, for which optimised implementations already existed in the H264 codec
(notably the ARM version uses prefetch, so we end up doing both remaining
passes at maximum speed). For MKV files, we know when we've found the last
start code of interest in a given frame, so we are able to avoid doing even
that one remaining pass for most of the buffer.

In some use-cases (such as the Raspberry Pi) video decode is handled by the
GPU, but the entire elementary stream is still fed through the parser to
pick out certain elements of the header which are necessary to manage the
decode process. As you might expect, in these cases, the performance of the
parser is significant.

To measure parser performance, I used the same VC-1 elementary stream in
either an MPEG-2 transport stream or a MKV file, and fed it through ffmpeg
with -c:v copy -c:a copy -f null. These are the gperftools counts for
those streams, both filtered to only include vc1_parse() and its callees,
and unfiltered (to include the whole binary). Lower numbers are better:

                Before          After
File  Filtered  Mean   StdDev   Mean   StdDev  Confidence  Change
M2TS  No        861.7  8.2      650.5  8.1     100.0%      +32.5%
MKV   No        868.9  7.4      731.7  9.0     100.0%      +18.8%
M2TS  Yes       250.0  11.2     27.2   3.4     100.0%      +817.9%
MKV   Yes       149.0  12.8     1.7    0.8     100.0%      +8526.3%

Yes, that last case shows vc1_parse() running 86 times faster! The M2TS
case does show a larger absolute improvement though, since it was worse
to begin with.

This patch has been tested with the FATE suite (albeit on x86 for speed).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 02:36:29 +02:00
Ben Avison
9d8ecdd8ca vc-1: Add platform-specific start code search routine to VC1DSPContext.
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 02:36:11 +02:00
Ben Avison
270cede3f3 h264: Move search code search functions into separate source files.
This permits re-use with parsers for codecs which use similar start codes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 02:35:56 +02:00
Michael Niedermayer
e148a5820d Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Enable muxing ac-3 in caf.
  Use correct msvc type specifiers for ptrdiff_t and size_t.
  Fix vf_eq.c and vf_eq2.c compilation with !HAVE_6REGS.
  Fix libpostproc compilation with !HAVE_6REGS.
  Never write 0 as maximum bitrate for asf files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 01:56:23 +02:00
Michael Niedermayer
817627d925 Merge commit '8de77b665d2a2f1cd560d2183fd4664298b30715'
* commit '8de77b665d2a2f1cd560d2183fd4664298b30715':
  fate: Add fic-in-avi test

Conflicts:
	tests/ref/fate/fic-avi

See: d66de5006b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 01:33:41 +02:00
Michael Niedermayer
e32fc9b45b Merge commit 'a24a252709dd38f12aa4929ce4981f87091a5113'
* commit 'a24a252709dd38f12aa4929ce4981f87091a5113':
  aarch64: NEON optimized FIR audio resampling

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 01:19:27 +02:00
Michael Niedermayer
26953ed2e3 Merge commit 'cae8df78759c2e69257f7fe58842f34c0d98a7ec'
* commit 'cae8df78759c2e69257f7fe58842f34c0d98a7ec':
  lavr: define ResampleContext in resample.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 01:17:15 +02:00
Michael Niedermayer
06e664366a Merge commit 'a88e1d1c598e641eecd5d43730211d91c82787c6'
* commit 'a88e1d1c598e641eecd5d43730211d91c82787c6':
  lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 00:55:40 +02:00
James Almer
5ac10d40fb x86/mpegaudiodsp: define apply_window_mp3 as SSE
None of the handwritten asm in this function seems to be SSE2

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 00:38:01 +02:00
Derek Buitenhuis
d66de5006b fate: Add fic-in-avi test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-24 22:01:33 +01:00
Derek Buitenhuis
8de77b665d fate: Add fic-in-avi test
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-24 22:00:50 +01:00
Michael Niedermayer
ca9cc6fdcc Merge commit '152b797cd687e96a582a1cb908dddf3d330d7637'
* commit '152b797cd687e96a582a1cb908dddf3d330d7637':
  flv: Do not mangle dts values for negative cts

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-24 21:50:28 +02:00
Michael Niedermayer
7da5ff5c18 Merge commit '5d983fdbca5570a1545a892583a372cfb3fffe92'
* commit '5d983fdbca5570a1545a892583a372cfb3fffe92':
  flv: Warn only once

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-24 21:37:26 +02:00
Michael Niedermayer
277ae5a7b3 Merge commit '374fdc8c071dcd96422378b0a1a0d453336d8a01'
* commit '374fdc8c071dcd96422378b0a1a0d453336d8a01':
  flv: Improve log messages

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-24 21:27:09 +02:00
Janne Grunau
a24a252709 aarch64: NEON optimized FIR audio resampling
Optimized for the default filter length 16.

30% faster opus silk decoding.
2014-04-24 18:28:26 +02:00
Janne Grunau
cae8df7875 lavr: define ResampleContext in resample.h
Required for arch optimized resampling.
2014-04-24 18:28:26 +02:00
Janne Grunau
a88e1d1c59 lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsets 2014-04-24 18:28:26 +02:00
Carl Eugen Hoyos
18e7e21e2f Enable muxing ac-3 in caf.
The files play fine with QuickTime.
2014-04-24 18:02:20 +02:00
Carl Eugen Hoyos
ced0d6c14d Use correct msvc type specifiers for ptrdiff_t and size_t.
The Windows runtime aborts if it finds %t or %z.
Fixes ticket #3472.

Reviewed-by: Ronald Bultje
2014-04-24 18:01:30 +02:00
Carl Eugen Hoyos
9cc4bc973c Fix vf_eq.c and vf_eq2.c compilation with !HAVE_6REGS. 2014-04-24 17:50:27 +02:00
Carl Eugen Hoyos
a19bcf4ee8 Fix libpostproc compilation with !HAVE_6REGS. 2014-04-24 17:50:02 +02:00
Carl Eugen Hoyos
eeee59ba4d Never write 0 as maximum bitrate for asf files.
WMP refuses to play such streams.
2014-04-24 17:47:49 +02:00
Michael Niedermayer
31f2357fd0 avdevice/qtkit: fix include
Fixes: Ticket 3588

Found-by: jeremyhu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-24 05:12:07 +02:00
YuDenzel
443936d8b9 configure: Fix ld flags when rpath is enabled.
Provide correct rpath flags to ld when --enable-rpath is provided.
2014-04-24 03:03:45 +02:00
Michael Niedermayer
291d464161 swresample: fix AV_CH_LAYOUT_STEREO_DOWNMIX input
Fixes Ticket 3542

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-24 01:25:46 +02:00
Michael Niedermayer
417ae6281b Merge commit '7cade8ea2bb19e78dae42b29720535a70fb2ae84'
* commit '7cade8ea2bb19e78dae42b29720535a70fb2ae84':
  on2avc: change a comment at #endif to match actual define

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 23:03:20 +02:00
Michael Niedermayer
23cd5cb18f avcodec/fic: avoid 2 additions per idct row
before:
5225 decicycles in IDCT, 32756 runs, 12 skips

after:
5057 decicycles in IDCT, 32765 runs, 3 skips

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 22:34:31 +02:00
Michael Niedermayer
c26b4b6f55 fate/libswresample: use linear interpolation on both aresample filters
This also tests LINEAR_CORE_FLT_SSE

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 22:05:47 +02:00
Michael Niedermayer
fc145e576a avformat/h263dec: Fix h263 probe
The code was missing 1 bit in the src format

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 21:54:13 +02:00
Luca Barbato
152b797cd6 flv: Do not mangle dts values for negative cts
Some applications really mean to send negative pts.
2014-04-23 21:20:17 +02:00
Luca Barbato
5d983fdbca flv: Warn only once
No point in sending the message multiple time.
2014-04-23 21:19:27 +02:00
Michael Niedermayer
2c4862e7a1 avfilter/avcodec: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 21:13:53 +02:00
Michael Niedermayer
0bfb1e9238 avdevice/jack_audio: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 21:13:31 +02:00
Luca Barbato
374fdc8c07 flv: Improve log messages
Messages should start with a capital letter and possibly end with a "."
if they are statements.
2014-04-23 21:04:20 +02:00
Kostya Shishkov
7cade8ea2b on2avc: change a comment at #endif to match actual define 2014-04-23 20:54:29 +02:00
Michael Niedermayer
56efd98a65 Merge commit 'e2834567d73bd1e46478ba67ac133cb8ef5f50fd'
* commit 'e2834567d73bd1e46478ba67ac133cb8ef5f50fd':
  On2 AVC decoder

Conflicts:
	Changelog
	configure
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 20:47:13 +02:00
Michael Niedermayer
ecb815e511 Merge commit 'd7eb8f903338048c0b222d92357d67f5d3b54295'
* commit 'd7eb8f903338048c0b222d92357d67f5d3b54295':
  fic: Make warning message more accurate
  fic: Remove redundant clips
  fic: Simplify alpha blending

See: 14da7f9eb7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 20:38:30 +02:00
Kostya Shishkov
e2834567d7 On2 AVC decoder 2014-04-23 19:57:44 +02:00
Derek Buitenhuis
14da7f9eb7 fic: Support rendering cursors
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-23 13:31:22 -04:00
Derek Buitenhuis
d7eb8f9033 fic: Make warning message more accurate
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-23 17:53:00 +01:00
Derek Buitenhuis
7596fc3d4b fic: Remove redundant clips
The equations can't overflow or underflow anyway.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-23 12:40:39 -04:00
Michael Niedermayer
1aa388d439 avcodec/jpeg2000dwt: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 15:52:45 +02:00
Michael Niedermayer
7de2cea8a9 avcodec/motionpixels: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 15:52:28 +02:00
Michael Niedermayer
c161134035 avcodec/snow_dwt: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 15:51:41 +02:00
kyh96403
f21c263c89 avformat/rtmppkt: Fix random crash
Fixes Ticket3564

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 15:10:42 +02:00
Stefano Sabatini
1ba59b1cbe ffprobe: fix scaling of vali in value_string() in case -prefix is selected
Fix trac ticket #3523.
2014-04-23 10:32:42 +02:00
Stefano Sabatini
bf411fffd4 examples: rename avcodec.c to decoding_encoding.c
Restore the old name, which was more meaningful and consistent with the
names of the other examples.
2014-04-23 10:32:42 +02:00
Michael Niedermayer
dc6a17cf74 avformat/mux: Check for and remove invalid packet durations
Fixes assertion failure
Fixes Ticket3575

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 06:55:33 +02:00
Michael Niedermayer
b9017fdd42 avformat/flvdec: also include file position in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 03:55:41 +02:00
Michael Niedermayer
e79b15f5f1 avutil/avutil.h: remove duplicate rational.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 00:58:15 +02:00
Michael Niedermayer
d3f3035f08 Merge commit 'b0bdc2a7123abd0287de435726ab68e9e475a8d8'
* commit 'b0bdc2a7123abd0287de435726ab68e9e475a8d8':
  avutil: move av_get_time_base_q() after include rational.h

See: c7251fec39
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 00:48:02 +02:00
Michael Niedermayer
c2cd0945c9 Merge commit '502512ea0f179165782777265f441d4061ff6012'
* commit '502512ea0f179165782777265f441d4061ff6012':
  avutil: Add av_get_time_base_q()

Conflicts:
	doc/APIchanges
	libavutil/utils.c
	libavutil/version.h

See: dac7e8a94e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 00:38:39 +02:00
Michael Niedermayer
4b6bb7bfe1 Merge commit '9155c595f1a9c5a089a59e2c0aefdfabd0a6c59b'
* commit '9155c595f1a9c5a089a59e2c0aefdfabd0a6c59b':
  fic: Support rendering cursors

Not merged as the commit is missing changes that where replied to with "done" on ffmpeg-devel

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-23 00:19:12 +02:00
Michael Niedermayer
83412f00e9 Merge commit '40b331e1f41cf118bd1b0807cac801437255636f'
* commit '40b331e1f41cf118bd1b0807cac801437255636f':
  fic: Use proper quantization matrix index

See: 6d149d2818
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 23:58:21 +02:00
Derek Buitenhuis
e299cb2cd3 fic: Simplify alpha blending
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 17:51:43 -04:00
Michael Niedermayer
cc17ff8826 Merge commit '3956a5e0ea46ed7e27ca888fe11c47986ad99261'
* commit '3956a5e0ea46ed7e27ca888fe11c47986ad99261':
  aarch64: NEON vorbis_inverse_coupling

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 23:51:19 +02:00
Michael Niedermayer
59bfddfcda Merge commit '8f9fe6ae3461ce270bce6b7083fda5ec314cdad4'
* commit '8f9fe6ae3461ce270bce6b7083fda5ec314cdad4':
  aarch64: NEON fixed/floating point MPADSP apply_window

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 23:45:50 +02:00
Michael Niedermayer
b0bdc2a712 avutil: move av_get_time_base_q() after include rational.h
Fix compilation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 17:35:51 -04:00
Michael Niedermayer
96a4d0c1c3 Merge commit 'f4d5a2cc35fcdf06ec031fabe8b0710e995fe924'
* commit 'f4d5a2cc35fcdf06ec031fabe8b0710e995fe924':
  aarch64: NEON float to s16 audio conversion

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 23:33:07 +02:00
Michael Niedermayer
ef1961e7fc Merge commit 'ee2bc5974fe64fd214f52574400ae01c85f4b855'
* commit 'ee2bc5974fe64fd214f52574400ae01c85f4b855':
  aarch64: NEON float (i)MDCT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 23:27:02 +02:00
Michael Niedermayer
13f4428915 Merge commit '650c4300d94aa9398ff1dd4f454bf39eaa285f62'
* commit '650c4300d94aa9398ff1dd4f454bf39eaa285f62':
  aarch64: NEON float FFT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 23:06:24 +02:00
Michael Niedermayer
c7251fec39 avutil: move av_get_time_base_q() after include rational.h
Fix compilation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 22:44:14 +02:00
Derek Buitenhuis
dac7e8a94e avutil: Add av_get_time_base_q()
This fixes usage of AV_TIME_BASE_Q in C++ applications, which
cannot use compound literals directly in their code.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-22 16:38:33 -04:00
Derek Buitenhuis
502512ea0f avutil: Add av_get_time_base_q()
This fixes usage of AV_TIME_BASE_Q in C++ applications, which
cannot use compound literals directly in their code.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-22 16:32:35 -04:00
Derek Buitenhuis
6d149d2818 fic: Use proper quantization matrix index
The matrices are not zigzagged.

Fixes artefacting.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 16:22:08 -04:00
Derek Buitenhuis
9155c595f1 fic: Support rendering cursors
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 21:20:23 +01:00
Derek Buitenhuis
40b331e1f4 fic: Use proper quantization matrix index
The matrices are not zigzagged.

Fixes artefacting.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 21:20:23 +01:00
Janne Grunau
3956a5e0ea aarch64: NEON vorbis_inverse_coupling
From the ARMv7 NEON version. 16 times faster as the C version, overall
more than 12% faster vorbis decoding on Apple's A7.
2014-04-22 22:01:45 +02:00
Janne Grunau
8f9fe6ae34 aarch64: NEON fixed/floating point MPADSP apply_window
30%/25% (fixed/float) faster mp3 decoding on Apple's A7. The floating
point decoder is approximately 7% faster.
2014-04-22 22:01:45 +02:00
Reimar Döffinger
ab14bcb104 Add "const" to avoid compiler warning.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Reimar Döffinger
3bd7a7149f Add missing ';'.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Reimar Döffinger
8cbf0827e1 Various small spelling fixes.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Michael Niedermayer
994a582a02 avcodec/dvbsubdec: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 20:08:30 +02:00
Michael Niedermayer
ea8e089ff7 avcodec/cook: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 20:08:30 +02:00
Michael Niedermayer
b20d6cf603 avcodec/dsddec: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 20:08:30 +02:00
Janne Grunau
f4d5a2cc35 aarch64: NEON float to s16 audio conversion 2014-04-22 19:35:41 +02:00
Janne Grunau
ee2bc5974f aarch64: NEON float (i)MDCT
Approximately as fast as the ARM NEON version on Apple's A7.
2014-04-22 19:35:41 +02:00
Janne Grunau
650c4300d9 aarch64: NEON float FFT
Approximately as fast as the ARM NEON version on Apple's A7.
2014-04-22 19:35:40 +02:00
Michael Niedermayer
f1c48c3a4d avformat/mpegtsenc: make the pes packet length omission optional
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 16:11:12 +02:00
Graham Booker
60fcc19b90 avformat/mpegtsenc: Changed Video PES packet length to 0.
The rational for this is another issue that plex has exposed.  When it is
conducting a transcode of video to HLS for streaming, my father noticed
artifacts when played on his GoogleTV (NSZ-GT1).  He sent me a test file
and I reproduced it on my device of the same model.  It is important to
note that the artifacts were not present when streaming to VLC or QuickTime
Player.  I copied the command-line that plex used, and conducted all of the
following tests using FFmpeg git.

Transcode to HLS: artifacts on playback
Transcode to TS: playback is fine
Cat HLS segments into a single TS: playback is fine
Segment single TS file to segments: artifacts on playback
Segment single TS file to segments using Apple's HLS segmenter: playback is
fine

At this point I carefully examined the differences between Apple's HLS
segmenter output and FFmpeg's.  Among the considerable differences, I
noticed that the video PES packets always had a 0 length.  So I continued:

Transcode to HLS using FFmpeg with 0 length PES packets: playback is fine.
Segment single TS to segments with 0 length PES packets: playback is fine.

All failures mentioned are only on the GTV since it is the only player on
which I could reproduce artifacts.  I only tested the GTV, VLC, and
QuickTime Player though, so my test case is limited.  I do not know if
other players exhibit this issue.

Since it was useful last time, I have uploaded the test file as
hls_pes_packet_length.m4v along with its associated txt file which contains
the transcode command-line that was used.

Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 16:05:25 +02:00
Hendrik Leppkes
5809c2a99d vc1dsp: fix build without inline asm
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 14:01:53 +02:00
Michael Niedermayer
8064c6ac5f Merge commit 'f9157463dbcd2db8fe9504197c0c04d0d7d04f31'
* commit 'f9157463dbcd2db8fe9504197c0c04d0d7d04f31':
  lavf: do not use the parser duration for video

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 13:56:29 +02:00
Michael Niedermayer
3bf189bb00 Merge commit '1ae8198bca749a0cff205196cc83d35b9962849b'
* commit '1ae8198bca749a0cff205196cc83d35b9962849b':
  avconv: always reset packet pts after decoding an audio frame

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 13:45:34 +02:00
Michael Niedermayer
5e6be52bac Merge commit 'b19a5e51981be5b69cf550a3bc17fe5300d0dbc9'
* commit 'b19a5e51981be5b69cf550a3bc17fe5300d0dbc9':
  lavc: improve AVCodecContext.delay doxy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 13:34:43 +02:00
Michael Niedermayer
57123dc67e Merge commit 'a4ed995cabf220029f1d0e185a6fb45eed7b4091'
* commit 'a4ed995cabf220029f1d0e185a6fb45eed7b4091':
  txd: do not set the codec timebase.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 13:30:23 +02:00
Anton Khirnov
f9157463db lavf: do not use the parser duration for video
The parser has no way of knowing video duration, and therefore no video
parsers set it.
2014-04-22 07:46:03 +02:00
Anton Khirnov
1ae8198bca avconv: always reset packet pts after decoding an audio frame
Currently, if a decoder sets AVFrame.pts, we'd send the same timestamp
to it twice, which is wrong.
2014-04-22 07:45:49 +02:00
Anton Khirnov
b19a5e5198 lavc: improve AVCodecContext.delay doxy 2014-04-22 07:44:40 +02:00
Anton Khirnov
a4ed995cab txd: do not set the codec timebase.
It is not supposed to be changed from outside of lavc.
Set the stream timebase and average framerate instead.
2014-04-22 07:44:16 +02:00
Michael Niedermayer
57fb570908 avformat/avidec: Speed up keyframe detection code
Fixes Ticket3531

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 04:33:20 +02:00
Derek Buitenhuis
84d6ba60db MAINTAINERS: Add myself as FIC maintainer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 21:27:32 -04:00
Michael Niedermayer
da621ffbcf avcodec/wma: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 02:41:05 +02:00
Michael Niedermayer
658f5d1f63 avfilter/pthread: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 02:40:20 +02:00
Michael Niedermayer
dcad6ba68a avcodec/libxavs: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 02:39:23 +02:00
Michael Niedermayer
78fb5f6e2a avcodec/cngenc: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 02:38:03 +02:00
Michael Niedermayer
0dadbbbfd1 avcodec/snow: use FF_ALLOC(Z)_ARRAY_OR_GOTO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 02:12:02 +02:00
Michael Niedermayer
47ec0b0b0f avutil/internal: add FF_ALLOC_ARRAY_OR_GOTO & FF_ALLOCZ_ARRAY_OR_GOTO
These are similar to the existing FF_ALLOCZ_OR_GOTO & FF_ALLOC_OR_GOTO

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-22 02:09:55 +02:00
Michael Niedermayer
5e5aced585 Merge commit '1c7b71a5bdb88ebb69734100405bbb5441b871e8'
* commit '1c7b71a5bdb88ebb69734100405bbb5441b871e8':
  mpegvideo: Use the current_picture pts

See: c354576457
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 23:57:07 +02:00
Michael Niedermayer
60fdf7dd9e Merge commit '6f243b17c537646b894857d43dfdac65f85ab377'
* commit '6f243b17c537646b894857d43dfdac65f85ab377':
  avcodec/fic: Fix return value check

See: 230db1426d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 23:54:09 +02:00
Michael Niedermayer
e0cdc68bdc Merge commit '144f7a561d32ae9bc657a217e2b4c6dd9a0d7df9'
* commit '144f7a561d32ae9bc657a217e2b4c6dd9a0d7df9':
  avcodec/fic: clear slice_data

See: 1db8bc5648
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 23:52:46 +02:00
Michael Niedermayer
359a719f5f Merge commit 'f34d3173fcfc7f3228095d509a64c4fa4b37b575'
* commit 'f34d3173fcfc7f3228095d509a64c4fa4b37b575':
  avcodec/fic: fix slice checks

See: d46ef40129
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 23:42:37 +02:00
Michael Niedermayer
1c7b71a5bd mpegvideo: Use the current_picture pts
The picture slot can be recycled by select_input_picture and
only current_picture is populated with the valid pts.

Unbreak timestamps when in cbr mode.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-21 21:58:58 +02:00
Michael Niedermayer
6f243b17c5 avcodec/fic: Fix return value check
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 14:56:17 -04:00
Michael Niedermayer
144f7a561d avcodec/fic: clear slice_data
Fixes artifacts
Fixes use of freed memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 14:56:17 -04:00
Michael Niedermayer
f34d3173fc avcodec/fic: fix slice checks
fix integer overflows

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 14:56:17 -04:00
Michael Niedermayer
451c78740a Merge commit '93e15a323871613fd26f1f1e317029a50b5b24ca'
* commit '93e15a323871613fd26f1f1e317029a50b5b24ca':
  fic: use correct IDCT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 20:20:39 +02:00
Kostya Shishkov
93e15a3238 fic: use correct IDCT
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 12:37:54 -04:00
Michael Niedermayer
59c7615d58 avfilter/filtfmts: Support dynamically allocated in/outputs
Fixes crash
Fixes Ticket3468

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 11:33:17 +02:00
Michael Niedermayer
f3743901d7 avformat: Fix decoder search in find stream info
Fixes Ticket3548

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 05:27:08 +02:00
Michael Niedermayer
369cdf917a avformat/asfenc: dont allow non interleaved packets
The muxer does not support this currently

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 02:49:05 +02:00
Michael Niedermayer
5b19fc7aae avformat/pmpdec: remove cur_dts timestamp hack
It appears the demuxer works fine without it

Fixes Ticket3534

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-21 01:29:08 +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
Lukasz Marek
4d09bc9897 lavf/pcm: remove redundant check
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 20:56:02 +02:00
Michael Niedermayer
af89a685c4 avcodec/arm/vc1dsp_init_neon: fix code so it compiles and passes fate-vc1
The original patch  seems to be missing a 16x16 function though

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 20:32:21 +02:00
Christophe Gisquet
319235c67c vc1dsp: introduce cases for 8x8 and 16x16
This allows further unrolling the DSP implementation where possible.

x86 and ARM DSP modified by simply moving the multiple calls from vc1dec
to the DSP code. Decoding improvements should only occurs because of the
compiler actually able to unroll more.

Decoding time: ~8.80s -> 8.64s (ie around 2%)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 18:25:36 +02:00
Michael Niedermayer
de9cd58848 avcdoec/webp: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 17:35:19 +02:00
Michael Niedermayer
8c88ea76df avcodec/tiff: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 17:32:17 +02:00
Michael Niedermayer
1fd5c7f1ee avcodec/ratecontrol: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 17:30:15 +02:00
Michael Niedermayer
69bbe27b45 avcodec/huffman: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 17:25:01 +02:00
Michael Niedermayer
e70b9b32d5 avcodec/exif: do not follow 0 offsets
Fixes exif decoding failure of 1295328_300.jpg

Reviewed-by; Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 17:02:16 +02:00
Michael Niedermayer
a94de50ba0 avcodec/exif/exif_add_metadata: add support for SSHORT & SBYTE
No working testcase, this omission was just spoted when the parser apparently went out of
sync.

Reviewed-by; Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 17:01:46 +02:00
Michael Niedermayer
cd4faed893 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/xv: implement repaint message
  lavd/xv: add window id param
  lavd/xv: keep aspect ratio

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 05:43:26 +02:00
Peter Ross
f57ac37228 avformat/iff: extend IFF demuxer to decode DSDIFF 64-bit chunks
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-20 00:22:20 +02:00
Michael Niedermayer
373d7dd371 Merge commit '911fa05b514e1be009e00b79d7004b93717c023b'
* commit '911fa05b514e1be009e00b79d7004b93717c023b':
  mvc: Specify the pixel format for the mv-mvc* tests

Conflicts:
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 22:43:16 +02:00
Martin Storsjö
911fa05b51 mvc: Specify the pixel format for the mv-mvc* tests
Also set the RGBA pixel format correctly as the native endian format,
which is what it returns.

This fixes the tests on big endian.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-19 21:41:34 +03:00
Michael Niedermayer
75ef907db8 Merge commit '6dfd99c93808d6504dd5cb1fad847d68cb179352'
* commit '6dfd99c93808d6504dd5cb1fad847d68cb179352':
  fate: add tests for SGI RLE and MVC1&2 decoders

Conflicts:
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 20:40:02 +02:00
Michael Niedermayer
01a39a978c Merge commit '55ddd700c67529ff2c6c4e976673f1341bba7a82'
* commit '55ddd700c67529ff2c6c4e976673f1341bba7a82':
  Silicon Graphics Movie demuxer

Conflicts:
	Changelog
	libavformat/mvdec.c
	libavformat/version.h

See: 6fb40779cd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 20:17:33 +02:00
Michael Niedermayer
0c67ef2729 Merge commit '86a0432688216562926d4aee36118f01be6d5e1b'
* commit '86a0432688216562926d4aee36118f01be6d5e1b':
  Silicon Graphics Motion Video Compressor 1 & 2 decoder

Conflicts:
	Changelog
	libavcodec/avcodec.h
	libavcodec/mvcdec.c
	libavcodec/version.h

See: 746b1dcc98
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 19:47:58 +02:00
Michael Niedermayer
e37dbfddda Merge commit '07761294fc3f08e139e8a406ef7d5b63aaf1ecee'
* commit '07761294fc3f08e139e8a406ef7d5b63aaf1ecee':
  Silicon Graphics RLE 8-bit video decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/avcodec.h
	libavcodec/sgirledec.c
	libavcodec/version.h

See: afa1617b93
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 19:26:46 +02:00
Michael Niedermayer
928b5708f9 Merge commit '34c5a6660a9e5e3cf301691bb29d011638953dc2'
* commit '34c5a6660a9e5e3cf301691bb29d011638953dc2':
  h264: codec reinit: remove statements without effect

Conflicts:
	libavcodec/h264_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 18:50:32 +02:00
Michael Niedermayer
c1bc20bfd9 Merge commit '6ef96292d99302a59f824713fc763f6abd3754df'
* commit '6ef96292d99302a59f824713fc763f6abd3754df':
  utils: add yvyu422 to avcodec_align_dimensions2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 18:38:39 +02:00
Michael Niedermayer
6ca0a976b2 Merge commit 'd23fc8846d255e31896453136b4c77bc6d5e873f'
* commit 'd23fc8846d255e31896453136b4c77bc6d5e873f':
  filtfmts: remove unused lavf include

A include for channel_layout.h, is added otherwise compile would break

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 18:30:37 +02:00
Michael Niedermayer
74a8dbe1c4 Merge commit '58400ac133bcfb6bf8196b4e5208bc178307739b'
* commit '58400ac133bcfb6bf8196b4e5208bc178307739b':
  lavfi: name anonymous structs

Conflicts:
	libavfilter/buffersink.c
	libavfilter/f_select.c
	libavfilter/src_movie.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_overlay.c
	libavfilter/vf_showinfo.c
	libavfilter/vf_unsharp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 18:20:17 +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
Vittorio Giovara
6dfd99c938 fate: add tests for SGI RLE and MVC1&2 decoders 2014-04-19 16:24:27 +02:00
Peter Ross
55ddd700c6 Silicon Graphics Movie demuxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:27 +02:00
Peter Ross
86a0432688 Silicon Graphics Motion Video Compressor 1 & 2 decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:26 +02:00
Peter Ross
07761294fc Silicon Graphics RLE 8-bit video decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:26 +02:00
Janne Grunau
34c5a6660a h264: codec reinit: remove statements without effect
avctx->coded_{height,width} will always equal h->{height,width} since
init_dimensions() does that explicitly, Size changes are detected by
changes in mb_{height,width} earlier and propagated through the
needs_reinit variable.
2014-04-19 16:22:06 +02:00
Vittorio Giovara
6ef96292d9 utils: add yvyu422 to avcodec_align_dimensions2 2014-04-19 16:20:58 +02:00
Vittorio Giovara
d23fc8846d filtfmts: remove unused lavf include 2014-04-19 16:20:57 +02:00
Vittorio Giovara
58400ac133 lavfi: name anonymous structs 2014-04-19 16:20:57 +02:00
James Almer
3b06208a57 x86/float_dsp: remove duplicated code from vector_dmul_scalar
Use the xm# and ym# aliases as they remain in sync with m# after a SWAP.
No actual changes to the assembly.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 14:21:51 +02:00
Michael Niedermayer
c91a798a2c Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix compilation with !HAVE_6REGS.
  Use MANGLE in cavsdsp.c to save two registers using gcc.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 14:17:51 +02:00
Michael Niedermayer
e8fc91e22a Merge commit '4936ef6492f640e1606c6507f2c4e495164d3974'
* commit '4936ef6492f640e1606c6507f2c4e495164d3974':
  configure: Handle armcc 5.0

Conflicts:
	configure

See: db55365d0f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 13:39:32 +02:00
Martin Storsjö
4936ef6492 configure: Handle armcc 5.0
The first line of the "armcc --vsn" output in one version is
"Product: ARM Compiler 5.04".

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-19 12:49:20 +03:00
Carl Eugen Hoyos
b38910c979 Fix compilation with !HAVE_6REGS.
Can be tested with:
$ ./configure --cc='cc -m32' --disable-optimizations --enable-pic
2014-04-19 09:56:01 +02:00
Carl Eugen Hoyos
72c93abaad Use MANGLE in cavsdsp.c to save two registers using gcc.
Fixes compilation with !HAVE_6REGS.
2014-04-19 09:54:26 +02:00
Peter Ross
f45a840907 avformat/mlv: add fate sample
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 05:06:06 +02:00
Peter Ross
ab683efb2b Magic Lantern Video (MLV) demuxer
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 05:06:00 +02:00
Peter Ross
5331773cc3 ff_id3v2_read: add option to limit ID3 magic number search
Several chunked formats (AIFF, IFF,DSF) store ID3 metadata within an 'ID3 '
chunk tag. If such chunks are stored sequentially, it is possible for the
ID3v2 parser to confuse the chunk tag for the ID3 magic number. e.g.

[1st chunk tag ('ID3 ') | chunk size] [ID3 magic number | metadata ...]
[2nd chunk tag ('ID3 ') | chunk size] [ID3 magic number | metadata ...]

Fixes ticket #3530.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 04:25:01 +02:00
Peter Ross
c94305ae23 ff_id3v2_free_extra_meta: set the pointer pointing to extra_meta to NULL
Fixes ticket #3530.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 04:24:24 +02:00
csheng
549bbdfb4b avformat/wavdec: enlarge probe_packets for wav
fix issue https://trac.ffmpeg.org/ticket/3550

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 03:54:10 +02:00
James Almer
d8f40ca251 fate: add DTS-ES test
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 03:26:20 +02:00
Lukasz Marek
de705e52d4 lavd/xv: implement repaint message
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-19 02:18:45 +02:00
Lukasz Marek
9fcdfac894 lavd/xv: add window id param
Device is able to use existing window, that can be a
part of existing GUI - instead of newly created one.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-19 02:18:45 +02:00
Lukasz Marek
5053897b6a lavd/xv: keep aspect ratio
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-19 02:18:45 +02:00
Michael Niedermayer
d340dabb76 avfilter/vf_rotate: make int*90° rotates suck less speedwise
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 01:23:23 +02:00
Michael Niedermayer
c9aab1ee7f avfilter/vf_rotate: fix several of by 1 errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 01:23:14 +02:00
Michael Niedermayer
4ebfb2c5ec avfilter/vf_rotate: fix location of update operation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 01:22:42 +02:00
Michael Niedermayer
a47cc877a0 avfilter/vf_rotate: increase fixed point precision
This ensures int_sins output doesnt have "random" lsbs

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 01:22:06 +02:00
Carl Eugen Hoyos
3a1feb01da Fix standalone compilation of image2_alias_pix and image2_brender_pix demuxers. 2014-04-19 00:46:23 +02:00
Michael Niedermayer
60c8c7144e avcodec/qtrleenc: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 20:43:02 +02:00
Michael Niedermayer
683b6e3183 avcodec/smacker: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 20:43:02 +02:00
Michael Niedermayer
9b888fb159 avcodec/roqvideoenc: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 20:43:02 +02:00
Justin Ruggles
591c0c26b5 mjpeg: cosmetics: indentation
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-18 12:41:17 -04:00
Justin Ruggles
39ef000e19 mjpeg: Do not fail jpeg decoding on bad EXIF data.
It is not required to correctly decode the image.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-18 12:41:10 -04:00
James Almer
968c44ce89 configure: Remove deprecated incompatible_fork_abi option
It's been deprecated since ffmpeg 2.0

Signed-off-by: James Almer <jamrial@gmail.com>
Analysis of the usage of the switches by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 18:14:40 +02:00
Michael Niedermayer
71f8cdcc16 avcodec/snow: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 15:22:29 +02:00
Michael Niedermayer
bb0d9aedcb avcodec/tta: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 15:19:09 +02:00
Michael Niedermayer
b9831364de avcodec/vc1dec: use av_realloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 15:15:08 +02:00
Peter Ross
0a13487b1a avformat/dsddec: create audio stream before processing id3
This ensures stream[0] is always the audio stream (an assumption made
in dsf_read_packet).

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 14:33:57 +02:00
Carl Eugen Hoyos
941b2240f2 Do not overwrite VDPAU structures in ff_MPV_frame_start().
Fixes crashes with VDR and MPlayer as reported by irc user crow.
2014-04-18 05:08:24 +02:00
Michael Niedermayer
a614f892a6 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/pulse_audio_enc: implement pause messages
  lavd/pulse_audio_enc: implement volume messages
  lavd/avdevice: add volume messages
  lavd/pulse_audio_enc: add buffer fullness messages
  lavd/pulse_audio_enc: add nonblocking mode
  lavd/pulse_audio_enc: replace simple API with async API
  lavd/pulse_audio_enc: cosmetics
  lavd/pulse_audio_common: add context helper functions
  lavd/pulse_audio_common: rename variables and enums

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 04:57:23 +02:00
Peter Ross
27998451d8 DSD Stream File (DSF) demuxer
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 03:25:58 +02:00
Lukasz Marek
35bf7a491e lavd/pulse_audio_enc: implement pause messages
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 02:15:56 +02:00
Lukasz Marek
eb9136a7d6 lavd/pulse_audio_enc: implement volume messages
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 02:15:56 +02:00
Lukasz Marek
4c0f36412a lavd/avdevice: add volume messages
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 02:15:56 +02:00
Lukasz Marek
cef1180329 lavd/pulse_audio_enc: add buffer fullness messages
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 02:15:50 +02:00
Lukasz Marek
bc31a57902 lavd/pulse_audio_enc: add nonblocking mode
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 01:42:18 +02:00
Lukasz Marek
eb9dee2d0d lavd/pulse_audio_enc: replace simple API with async API
Async API allows to use full capabilites of PulseAudio.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 01:42:18 +02:00
Lukasz Marek
10627e7e10 lavd/pulse_audio_enc: cosmetics 2014-04-18 01:42:17 +02:00
Lukasz Marek
176046d2b5 lavd/pulse_audio_common: add context helper functions
Functions allow to connect and disconnect from server.
Helpfull to implement utility functions with nested loops.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 01:42:17 +02:00
Lukasz Marek
24e5f5cd3e lavd/pulse_audio_common: rename variables and enums
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-18 01:42:17 +02:00
Michael Niedermayer
97751e1324 avformat/replaygain: fix mixed declaration and statement
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 01:16:27 +02:00
Michael Niedermayer
e48fb4e1a5 ffmpeg: fix mixed merged & split side data with the stream->packet hack
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 01:01:38 +02:00
Michael Niedermayer
cdc166acd8 Merge commit '32d05934abc7427bb90380a4c1ab20a15fd7d821'
* commit '32d05934abc7427bb90380a4c1ab20a15fd7d821':
  mp3dec: decode more data from Info header

Conflicts:
	libavformat/mp3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-18 00:38:07 +02:00
Michael Niedermayer
a8d01a7378 Merge commit '0983d48111f578e17e8c1967d25ce593fce62b63'
* commit '0983d48111f578e17e8c1967d25ce593fce62b63':
  crc: add ANSI CRC16 LE

Conflicts:
	doc/APIchanges
	libavutil/crc.c
	libavutil/crc.h
	libavutil/version.h
	tests/ref/fate/crc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 22:38:51 +02:00
Michael Niedermayer
39edcadc07 Merge commit 'fbd8e042107ec63e0ddf155588c59dcb76007641'
* commit 'fbd8e042107ec63e0ddf155588c59dcb76007641':
  mp3dec: move XING/Info and VBRI parsing into their own functions

Conflicts:
	libavformat/mp3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 22:27:17 +02:00
Michael Niedermayer
d35efda21a Merge commit 'ae43c10e36197000de2f3cc99ea35727ce98a796'
* commit 'ae43c10e36197000de2f3cc99ea35727ce98a796':
  replaygain: allow exporting already decoded replaygain values

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 21:45:58 +02:00
Michael Niedermayer
11d187b377 Merge commit '21d8f4da91673051ad7055cf63d989488a56368e'
* commit '21d8f4da91673051ad7055cf63d989488a56368e':
  resample: remove an unneeded context variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 21:07:25 +02:00
Alessandro Ghedini
32d05934ab mp3dec: decode more data from Info header
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-17 20:08:19 +02:00
Alessandro Ghedini
0983d48111 crc: add ANSI CRC16 LE
This adds the reversed byte-order version of the ANSI CRC16.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-17 20:08:19 +02:00
Alessandro Ghedini
fbd8e04210 mp3dec: move XING/Info and VBRI parsing into their own functions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-17 20:08:19 +02:00
Alessandro Ghedini
ae43c10e36 replaygain: allow exporting already decoded replaygain values
This adds a function to export raw replaygain values (i.e. in the (u)int32_t
form). It first checks whether AV_PKT_DATA_REPLAYGAIN side data is present, in
which case it does nothing.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-17 20:08:19 +02:00
Anton Khirnov
21d8f4da91 resample: remove an unneeded context variable 2014-04-17 20:08:19 +02:00
Carl Eugen Hoyos
a3bd33af9e Write sample_aspect_ratio to asf files.
Fixes ticket #3528.
2014-04-17 14:55:49 +02:00
Carl Eugen Hoyos
6c18200c2f Only insert the icpf atom in ProRes mkv packets if it isn't already present.
The patch allows to read broken mkv files containing ProRes as written by
the Haali muxer.
Fixes a part of ticket #3434.
2014-04-17 14:46:11 +02:00
James Almer
197fe392db x86/dsputil: use HADDD where applicable
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 14:15:35 +02:00
James Almer
76ed71a72b x86: move horizontal add macros to x86util
Also port relevant AVX2/XOP optimizations from x264 with permission
to relicense to LGPL from the corresponding authors

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 14:15:09 +02:00
Michael Niedermayer
443261cbbd Merge commit 'f1b239ec8b38474d31f3bfea1f0b1693774fa432'
* commit 'f1b239ec8b38474d31f3bfea1f0b1693774fa432':
  drawtext: Add fontconfig support

Conflicts:
	configure
	doc/filters.texi
	libavfilter/vf_drawtext.c

See: 40b7a27bad
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-17 05:15:26 +02:00
Luca Barbato
f1b239ec8b drawtext: Add fontconfig support
Introduce the `font` option and make it optional to pass a fontfile.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-17 00:41:30 +02:00
Anh
c150e2cf32 Fix compilation with --disable-everything --enable-muxer=avi --disable-network.
Fixes ticket #3568.
2014-04-16 20:00:17 +02:00
Michael Niedermayer
58a53123ba avcodec/vble: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 19:45:43 +02:00
Michael Niedermayer
7999b41d48 avfilter/vf_pixdesctest: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 19:44:23 +02:00
Michael Niedermayer
dd77f6469a avformat/ico: use avmalloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 19:41:41 +02:00
James Almer
11b36b1ee0 x86/float_dsp: unroll loop in vector_fmac_scalar
~6% faster SSE2 performance. AVX/FMA3 are unaffected.

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 18:36:52 +02:00
Matt Oliver
27f184ef40 Fix OpenGL device compilation with msvc gl.h
Reveiwed-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 18:05:40 +02:00
Michael Niedermayer
572f5eb1af avformat/mpegenc: try to improve the VBV buffer warning
Maybe fixes Ticket 3494
Part of the message suggested by: rogerdpack
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 17:20:07 +02:00
James Almer
3b808900af x86/float_dsp: use SWAP in vector_fmac_scalar Win64
The mova is unnecessary

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 15:46:21 +02:00
Michael Niedermayer
cb53beb81a iavcodec/vc1dec: Fix missing {}
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 03:56:39 +02:00
Michael Niedermayer
73734282e0 avfilter/vf_deshake: fix loss of precission with odd resolutions
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 03:44:57 +02:00
Michael Niedermayer
5a8ef3c66b avfilter/f_select: fix loss of precission in SAD calculation
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 03:44:57 +02:00
Michael Niedermayer
1457f3fd90 avcodec/g723_1: add assert to help static code analyzers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:55:13 +02:00
Michael Niedermayer
b8598f6ce6 avcodec/diracdec: fix undefined behavior with shifts
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:51:41 +02:00
Michael Niedermayer
ff6fa0b4b9 avformat/mpegts: Remove redundant check
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:35:50 +02:00
Michael Niedermayer
230db1426d avcodec/fic: Fix return value check
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:32:37 +02:00
Michael Niedermayer
f202af29c9 avcodec/dcadec: fix error message suppression code
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:24:12 +02:00
Michael Niedermayer
256f530603 avcodec/mjpegen: Fix declared argument size
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:14:14 +02:00
Michael Niedermayer
14fa7fc6a8 swscale/swscale: fix srcStride/srcSlice typo
Fixes part of Ticket3466
Found by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 02:09:39 +02:00
Michael Niedermayer
79d82a6574 avformat/hnm: fix decoding of 256x256 video
Fixes Ticket3464
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 01:37:38 +02:00
Michael Niedermayer
bdc812ab9e avformat/flacdec/flac_read_timestamp: free the correct packet
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-16 00:23:31 +02:00
Michael Niedermayer
6d8ccc7ac7 avformat/flacdec/flac_read_timestamp: dont modify AVStream state
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 23:53:31 +02:00
Peter Ross
5f4f9ee99f Direct Stream Digital (DSD) decoder
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 20:35:57 +02:00
Lars Hammarstrand
add5d7a8ce configure: allow the gas-preprocessor to be called with an absolute path.
Allow the configure tool to call the gas-preprocessor with an absolute
path when included with either the "--as" or with a separate "--gas"
option.  The patch is backward compatible and will not break any current
configuration setups.

The new behavior that comes with this option can be utilized in the
following ways:

Examples:

- Just as single option that includes both the gas-preprocessor.pl and
  cc/as at the same time:

  $ configure --as="/opt/app/build-tools/gas-preprocessor.pl \
                   /Applications/Xcode.app/.../Developer/usr/bin/gcc"

- Call gas-preprocessor with a separate option in conjunction with --as:

  $ configure --gas="/opt/app/build-tools/gas-preprocessor.pl" \
               --as="/Applications/Xcode.app/.../Developer/usr/bin/gcc"

- Address only the the gas-preprocessor and it will automatically fall
  back to as or cc whichever that's defined:
  $ configure --gas="/opt/app/build-tools/gas-preprocessor.pl"

- Or if no gas-preprocessor.pl is explicitly defined, it falls back to
  the old behaivor.
2014-04-15 18:23:00 +02:00
Michael Niedermayer
37f3f32d51 fate: force 128kb/sec for mp2 test
This fixes rounding differences between platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 16:43:38 +02:00
Michael Niedermayer
c6902f96d7 avcodec/mpegaudioenc_template: Fix integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 15:09:57 +02:00
Michael Niedermayer
4615ff0d61 avutil/frame: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 13:51:48 +02:00
Michael Niedermayer
eead2cddb7 avformat/xmv: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 13:51:48 +02:00
Michael Niedermayer
337f74868c avformat/mpegtsenc: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 13:51:48 +02:00
Michael Niedermayer
083b6e739b avformat/utils: fix typo
Found-by: reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 13:51:48 +02:00
Michael Niedermayer
2b58c9c945 swresample/resample_template: try to consider src_size more exactly
This should avoid slight differences in the output causes by input
size alignment differences between archs

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 06:35:35 +02:00
Michael Niedermayer
0bf25c7b08 configure: fix arm osx build
Fixes Ticket3561

Solution suggested by jeremyhu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 04:37:32 +02:00
Michael Niedermayer
ef818d8bf0 avformat: add av_format_inject_global_side_data(), and disable it by default
After this commit applications needs to call av_format_inject_global_side_data()
or handle AVStream side data by some other means if they want it not to be lost.

This fixes a API incompatibility with libav.
libav API does not allow the data to be passed through AVPackets

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 02:37:40 +02:00
Michael Niedermayer
2adcd15f2e Merge commit 'a6ac4fcce44108f6f87278b8d12e890576f46a62'
* commit 'a6ac4fcce44108f6f87278b8d12e890576f46a62':
  vp78: Align the intra4x4_pred_mode_top array within VP8Macroblock

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 01:23:00 +02:00
Michael Niedermayer
4959a4fcf7 swscale/utils: fix changing src/dst range after initializing the context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-15 00:40:39 +02:00
Michael Niedermayer
fa98885be4 swscale/utils: move handling of unscaled case to the end of init function
This way all context fields get initialized and can be used without needing to reinit the context

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 23:32:41 +02:00
Michael Niedermayer
a2f088c0f9 swscale: factor ff_sws_init_range_convert() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 23:25:28 +02:00
Michael Niedermayer
3751e5a821 swscale/swscale: clear to/from convert pointers when they used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 23:15:31 +02:00
Michael Niedermayer
b465aaa59f avformat/img2dec: fix typo
Found-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 21:40:59 +02:00
Martin Storsjö
a6ac4fcce4 vp78: Align the intra4x4_pred_mode_top array within VP8Macroblock
This array is written using AV_WN32A, assuming alignment.

This hopefully fixes the failing vp7 fate test on sparc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-14 21:27:20 +03:00
Michael Niedermayer
3df787a1ef Merge branch 'flac' of https://github.com/FernetMenta/FFmpeg
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 18:35:02 +02:00
Michael Niedermayer
46d5625f44 avcodec/x86/idct_sse2_xvid: fix non C99 inline function
Found-by: Matt Oliver <protogonoi@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 18:04:57 +02:00
Rainer Hochecker
d8b19ee672 fate: update seeking reference for flac 2014-04-14 17:43:25 +02:00
Rainer Hochecker
e1fcd3a007 flac demuxer: improve seeking 2014-04-14 17:43:19 +02:00
Carl Eugen Hoyos
ef48ac6523 Set the bitrate when decoding speex.
The bitrate of the first frame is used as bitrate for the speex stream.
2014-04-14 15:36:01 +02:00
Carl Eugen Hoyos
63c03ea98d Fix writing RGB 5:5:5 rawvideo into avi.
WMP expects bits per pixel to be set to 16 for RGB 5:5:5 rawvideo.
2014-04-14 15:34:38 +02:00
Michael Niedermayer
9468e9e5a2 Merge commit 'b3d905b702dcdda9e3ae2bcb7b5580ca77a96ab7'
* commit 'b3d905b702dcdda9e3ae2bcb7b5580ca77a96ab7':
  dcadec: Delete redundant init_get_bits call

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 14:44:58 +02:00
Michael Niedermayer
b11265c989 Merge commit '4d40e073dcdef335215c124d340ea156bc4bdf13'
* commit '4d40e073dcdef335215c124d340ea156bc4bdf13':
  rtmpproto: Handle RTMP chunk size packets before the connect packet

Conflicts:
	libavformat/rtmpproto.c

See: 36b9c27dae
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 14:32:08 +02:00
Stephan Soller
36b9c27dae avformat/rtmpproto: Added handling of an initial RTMP chunk size packet.
Fixes ticket #2911.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 14:28:22 +02:00
Michael Niedermayer
8e5f840472 Merge commit '6477139721f559b26eafd415e23e13ea2b0c27e1'
* commit '6477139721f559b26eafd415e23e13ea2b0c27e1':
  rtmpproto: Make sure to pass on the error code if read_connect failed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 14:12:47 +02:00
Niels Möller
b3d905b702 dcadec: Delete redundant init_get_bits call
No initialization is needed in dca_decode_frame, because the next
thing it does is calling dca_parse_frame_header, which takes care of
the needed initialization.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-14 11:56:26 +02:00
Stephan Soller
4d40e073dc rtmpproto: Handle RTMP chunk size packets before the connect packet
In all other cases where ff_rtmp_packet_read is used, the packet returned
is passed to rtmp_parse_result more or less immediately. In this single
case, the content of the packet was required to be a connect packet.

Some clients, e.g. Open Broadcaster Software, send a chunk size packet
before the connect packet. If the first packet is a chunk size packet,
handle it and read another one, requiring this to be a connect packet
instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-14 11:09:26 +03:00
Martin Storsjö
6477139721 rtmpproto: Make sure to pass on the error code if read_connect failed
Previously, if read_connect failed, the ret variable was unmodified
and had the value 0, indicating success, which then was returned from
the rtmp_open function, even though it actually failed.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-14 11:09:20 +03:00
Michael Niedermayer
5e379cd3ee swresample/resample: simplify index/consumed calculation for the filter = 1 case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 02:23:04 +02:00
Michael Niedermayer
6c8ee74af2 swresample/resample: Fix fractional part of index in the filter_size = 1 filters = 1 case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 02:22:17 +02:00
Michael Niedermayer
161ec197ac fate/libswresample: add tests with filter_size=1 phase_shift=0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-14 00:56:00 +02:00
Michael Niedermayer
4b8e7a1414 avcodec/utils: prettify remap_deprecated_codec_id()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 23:54:49 +02:00
Michael Niedermayer
2ebacb0fc4 avformat/network: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 23:39:49 +02:00
Michael Niedermayer
d42a61922b avcodec/psymodel: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 23:36:59 +02:00
Michael Niedermayer
5ec8192949 avcodec/fft-test: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 23:36:59 +02:00
Michael Niedermayer
eccec20397 avformat/mp3enc: drop redundant and uninitialized variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 20:03:24 +02:00
Michael Niedermayer
82796aacab avformat/utils: reinject global side data on seeks
This fixes ffplay replaygain with seeking

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 18:27:05 +02:00
Michael Niedermayer
c0d62d999d avformat/utils: factorize if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 18:02:42 +02:00
Michael Niedermayer
289f02f923 avformat/utils: Inject global side data into first packet.
This fixes replaygain handling in ffplay and probably other applications.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 18:02:05 +02:00
Michael Niedermayer
a31547ce2e avutil/avstring: do not lose ascii characters when decoding non utf-8 with av_utf8_decode()
Fixes Ticket3363

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 15:33:23 +02:00
Michael Niedermayer
ca6dd53a73 ffprobe: do not lose non ascii characters in non utf8 strings
Fixes Ticket3363

Using U+FFFD REPLACEMENT CHARACTER as suggested by nicolas

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 15:21:20 +02:00
Peter Ross
e311b7446a avformat/iff: indent
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:48:36 +02:00
Peter Ross
d95c9679f7 avformat/iff: remove unused code
bits_per_coded_sample and block_align are calculated again at end of if() block

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:48:29 +02:00
Michael Niedermayer
b6c1e80bf4 Merge commit '0f524b6c690962d7ebbd59ded74288e1e9b0f009'
* commit '0f524b6c690962d7ebbd59ded74288e1e9b0f009':
  x86/synth_filter: remove the fma3 version ifdefs

See: 7d2116dd09
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:47:26 +02:00
Michael Niedermayer
878f8b0d26 Merge commit 'aaab192df24a90f4450285cfb73b395cf495b462'
* commit 'aaab192df24a90f4450285cfb73b395cf495b462':
  af_volume: implement replaygain clipping prevention

Conflicts:
	doc/filters.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:39:51 +02:00
Michael Niedermayer
c11aa9d29a Merge commit 'ac976ed91e323754e9a84509873ebdb437372797'
* commit 'ac976ed91e323754e9a84509873ebdb437372797':
  lavr: allocate the resampling buffer with a positive size

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:33:42 +02:00
Michael Niedermayer
c955525f72 Merge commit '13164e479f1c87829096c19003d2cc658ccc1fd4'
* commit '13164e479f1c87829096c19003d2cc658ccc1fd4':
  FATE: add tests for more resampling modes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:24:09 +02:00
Michael Niedermayer
cbfa71d689 Merge commit 'f7c5fd81516fb7b186c64c66dc080e1139586226'
* commit 'f7c5fd81516fb7b186c64c66dc080e1139586226':
  resample: implement flushing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 14:03:02 +02:00
Facundo Gaich
7e6b3ad693 lavfi/subtitles: load attached fonts to libass.
Videos with complex typesetting usually have font files embedded
as attachment streams. vf_subtitles now finds all attachment
streams with a MIME type associated with fonts and loads them
to libass so it can use them for rendering.

The code was basically ported from mpv's loadfile.c@929793be7

Signed-off-by: Facundo Gaich <facugaich@gmail.com>
2014-04-13 12:06:24 +02:00
James Almer
0f524b6c69 x86/synth_filter: remove the fma3 version ifdefs
This fixes compilation failures with --disable-fma3

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-13 11:29:28 +02:00
Alessandro Ghedini
aaab192df2 af_volume: implement replaygain clipping prevention
This adds a new "replaygain_noclip" option to the filter, and, if enabled,
limits the gain applied for tracks where clipping would occur.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-13 11:25:06 +02:00
Anton Khirnov
ac976ed91e lavr: allocate the resampling buffer with a positive size
This fixes cases where very few input samples (fewer than needed for one
output sample) are passed to lavr at the beginning.
CC:libav-stable@libav.org
2014-04-13 11:21:20 +02:00
Anton Khirnov
13164e479f FATE: add tests for more resampling modes 2014-04-13 11:20:49 +02:00
Anton Khirnov
f7c5fd8151 resample: implement flushing 2014-04-13 11:15:45 +02:00
Lukasz Marek
88c4e5a049 lavd/avdevice: fix buildbreak when included to C++ code
class is reserved keyword in C++ and compilator complains about that variable.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 04:59:35 +02:00
Michael Niedermayer
1dc2d4a8ef avcodec/tiff: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 04:33:20 +02:00
Michael Niedermayer
a676e48d39 Merge commit '801c39e1e3058fc4ba822bfb5d8612d777111e32'
* commit '801c39e1e3058fc4ba822bfb5d8612d777111e32':
  dcadec: Use correct channel count in stereo downmix check

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 04:23:56 +02:00
Michael Niedermayer
952614b899 Merge commit 'c8cf461c19e8e35df4b7364d9b90aa42f1ab4560'
* commit 'c8cf461c19e8e35df4b7364d9b90aa42f1ab4560':
  dcadec: Do not decode the XCh extension when downmixing to stereo

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 04:07:27 +02:00
Michael Niedermayer
d7644e0fdb Merge commit 'e75ef2b7f48b96a9b6c8646058713899d5ea5731'
* commit 'e75ef2b7f48b96a9b6c8646058713899d5ea5731':
  tiffdec: support predictor type 2 with RGB48 pixel format

Conflicts:
	libavcodec/tiff.c

See: 72381b2b47
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 04:02:09 +02:00
Michael Niedermayer
a64d6d5152 Merge commit '345a96c327e8f2a8077189af9f5e8d2b3f4ad5fe'
* commit '345a96c327e8f2a8077189af9f5e8d2b3f4ad5fe':
  tiffdec: remove an unneeded variable

Conflicts:
	libavcodec/tiff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 03:54:11 +02:00
Michael Niedermayer
b9b2f9d218 Merge commit 'a9b046fb0ae5395c4d1d8a82cd0d3e354b5034ed'
* commit 'a9b046fb0ae5395c4d1d8a82cd0d3e354b5034ed':
  tiff: use a better name and enum values for PhotometricInterpretation

Conflicts:
	libavcodec/tiff.c
	libavcodec/tiff.h
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 03:45:45 +02:00
Michael Niedermayer
75b4e40137 Merge commit 'fdbe18b7b0545f9b5923d25a5433e4f735719ecc'
* commit 'fdbe18b7b0545f9b5923d25a5433e4f735719ecc':
  tiffdec: use a single strip if RowsPerStrip is 0

Conflicts:
	libavcodec/tiff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 03:30:02 +02:00
Michael Niedermayer
94cf83ff91 Merge commit '0a467a9b594dd67aa96bad687d05f8845b009f18'
* commit '0a467a9b594dd67aa96bad687d05f8845b009f18':
  tiffdec: use bytestream2 to simplify overread/overwrite protection

Conflicts:
	libavcodec/tiff.c

See: 1ec83d9a9e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 03:20:09 +02:00
Michael Niedermayer
31876ea620 Merge commit '5748faf291fec297ef25d81962b52b3438f54278'
* commit '5748faf291fec297ef25d81962b52b3438f54278':
  bytestream: add bytestream2_copy_buffer() functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 02:06:47 +02:00
Michael Niedermayer
d06a7530f7 Merge commit 'de9d2705f61ef569487ec5f8974a9c7ce34ec783'
* commit 'de9d2705f61ef569487ec5f8974a9c7ce34ec783':
  bytestream: add functions for accessing size of buffer

See: 0ee5be4ee4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 02:05:15 +02:00
Michael Niedermayer
b394b9013e Merge commit '58bc38a5f224d29b79338200459792c765c25fd5'
* commit '58bc38a5f224d29b79338200459792c765c25fd5':
  tiffdec: use correct data type for palette entries and set alpha to 0xFF

Conflicts:
	libavcodec/tiff.c

See: dbfdb288c1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 02:01:31 +02:00
Michael Niedermayer
6145b1d9c1 Merge commit 'bf2064f046af64c59a416c814474a39b0a457569'
* commit 'bf2064f046af64c59a416c814474a39b0a457569':
  tiffdec: rename variables for consistency and fix variable shadowing

Conflicts:
	libavcodec/tiff.c

See: 251345a3fe
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 01:49:19 +02:00
Michael Niedermayer
69505a89f1 Merge commit 'd9a542ace1b9ca5c0ea6d758127d03d4124b7801'
* commit 'd9a542ace1b9ca5c0ea6d758127d03d4124b7801':
  swscale: Set alpha to opaque for internal palettes.

Conflicts:
	libswscale/swscale_unscaled.c

See: dbfdb288c1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 01:44:27 +02:00
Michael Niedermayer
57570052e2 Merge commit '20c38c9c18b75e62f6c489d9b95bea88efdf3915'
* commit '20c38c9c18b75e62f6c489d9b95bea88efdf3915':
  swscale: fix some undefined signed left shifts

Conflicts:
	libswscale/swscale_unscaled.c

See: 7a32ab5ed0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 01:39:31 +02:00
Michael Niedermayer
28875c4188 Merge commit '60c4660ba035bbfbcc84ac34129ce40e037c70ad'
* commit '60c4660ba035bbfbcc84ac34129ce40e037c70ad':
  swscale: fix an implementation-defined unsigned-to-signed conversion

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 01:26:49 +02:00
Michael Niedermayer
d3284a6208 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/qtkit: add device category
  lavd/fbdev_enc: implement get_device_list
  lavd: no default device unless explicitly set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 00:50:37 +02:00
Michael Niedermayer
275155081f Merge commit 'd4a8a86c6863ecea208fa2f774690b6df4b5bc71'
* commit 'd4a8a86c6863ecea208fa2f774690b6df4b5bc71':
  doc: Libavfilter English cleanup

Conflicts:
	doc/filters.texi
	doc/libavfilter.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-13 00:37:32 +02:00
Tim Walker
801c39e1e3 dcadec: Use correct channel count in stereo downmix check
s->prim_channels is greater than num_core_channels
when an XCh extension is present in the bitstream.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-12 23:05:37 +02:00
Tim Walker
c8cf461c19 dcadec: Do not decode the XCh extension when downmixing to stereo
This is neither necessary nor currently supported.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-12 23:05:07 +02:00
Michael Niedermayer
571d2ffa47 Merge commit '617a1a98a6be3e59db6fbfc21afab2fb9a049c03'
* commit '617a1a98a6be3e59db6fbfc21afab2fb9a049c03':
  mp3enc: Properly write bitrate value in XING header

Conflicts:
	libavformat/mp3enc.c

See: 40176fc314
See: d62bf5d4e7
See: various others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 21:26:20 +02:00
Jean First
e75ef2b7f4 tiffdec: support predictor type 2 with RGB48 pixel format 2014-04-12 14:52:10 -04:00
Justin Ruggles
345a96c327 tiffdec: remove an unneeded variable 2014-04-12 14:52:10 -04:00
Justin Ruggles
a9b046fb0a tiff: use a better name and enum values for PhotometricInterpretation
Also add additional known values and log as missing features.
2014-04-12 14:52:07 -04:00
Justin Ruggles
fdbe18b7b0 tiffdec: use a single strip if RowsPerStrip is 0
The spec does not specify that 0 is an error condition, and there
are samples which use 0 when the whole image is in one strip.
2014-04-12 14:49:08 -04:00
Justin Ruggles
0a467a9b59 tiffdec: use bytestream2 to simplify overread/overwrite protection
Based on a patch by Paul B Mahol <onemda@gmail.com>

CC:libav-stable@libav.org
2014-04-12 14:49:08 -04:00
Justin Ruggles
5748faf291 bytestream: add bytestream2_copy_buffer() functions
This is basically an overread/overwrite-safe memcpy between a
GetByteContext and a PutByteContext.

CC:libav-stable@libav.org
2014-04-12 14:49:08 -04:00
Paul B Mahol
de9d2705f6 bytestream: add functions for accessing size of buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2014-04-12 14:49:08 -04:00
Justin Ruggles
58bc38a5f2 tiffdec: use correct data type for palette entries and set alpha to 0xFF 2014-04-12 14:49:07 -04:00
Jean First
bf2064f046 tiffdec: rename variables for consistency and fix variable shadowing
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2014-04-12 14:49:07 -04:00
Michael Niedermayer
4f698be8f6 avutil/log: add av_log_get_flags()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 20:25:10 +02:00
Justin Ruggles
d9a542ace1 swscale: Set alpha to opaque for internal palettes.
Fixes conversion of pal8 to rgb formats with alpha.

Updated references for 2 FATE tests which previously encoded fully
transparent images.

Based on a patch by Baptiste Coudurier <baptiste.coudurier@gmail.com>
2014-04-12 14:07:19 -04:00
Lukasz Marek
defb87eef4 lavd/qtkit: add device category
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-12 19:50:09 +02:00
Lukasz Marek
afc898e7ce lavd/fbdev_enc: implement get_device_list
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-12 19:47:58 +02:00
Justin Ruggles
20c38c9c18 swscale: fix some undefined signed left shifts
Based on a patch by Michael Niedermayer <michaelni@gmx.at>
2014-04-12 13:24:47 -04:00
Justin Ruggles
60c4660ba0 swscale: fix an implementation-defined unsigned-to-signed conversion 2014-04-12 13:24:47 -04:00
Lukasz Marek
c1c3c3611e lavd: no default device unless explicitly set
AVDeviceInfoList was allocated with first device set as default
even though there is no device after allocation.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-12 19:14:57 +02:00
Michael Niedermayer
e89f3d0ed2 avcodec/ffv1: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 15:41:00 +02:00
Michael Niedermayer
713e62e91d avcodec/faxcompr: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 15:37:57 +02:00
Michael Niedermayer
36053aeff6 vcodec/error_resilience: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 15:33:55 +02:00
Katerina Barone-Adesi
d4a8a86c68 doc: Libavfilter English cleanup
This aims to standardize the English used in the libavfilter
documentation, describing the same thing in the same way more often,
and significantly reduce the amount of outright errors, including
run-on sentences and sentence fragments.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-12 14:34:11 +02:00
Michael Niedermayer
617a1a98a6 mp3enc: Properly write bitrate value in XING header
Instead of using a fixed bitrate_idx, calculate a matching bitrate for
the XING header.

Using a fixed bitrate_idx causes tools such as file(1) and mediainfo(1)
to report wrong bitrate and bitrate mode when using CBR.

Bug-Id: https://bugs.debian.org/736088

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-12 13:29:55 +02:00
Michael Niedermayer
fb4ac46d7f avcodec/elbg: Use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 05:40:37 +02:00
Michael Niedermayer
46375e9a97 avcodec/diracdec: use av_malloc(z)_array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 05:38:31 +02:00
Michael Niedermayer
f683895dee avformat/img2dec: support nanosecond file times
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 04:52:01 +02:00
Michael Schenk
513a431e07 avformat/hls: reduce memory usage by using dynamically allocated url/key
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-12 03:14:52 +03:00
Michael Niedermayer
66e959682c avcodec/mpegvideo_enc: override bitrate tolerance when its value is too small
Fixes Ticket3257

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 01:29:20 +02:00
Michael Niedermayer
27763db928 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Improve amr bitrate calculation for VBR files.
  Warn if rawvideo and an unreadable pix_fmt are written.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-12 00:17:35 +02:00
Michael Niedermayer
88ceede1fd avcodec/jpegls: print coding parameters stored in LSE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 23:39:09 +02:00
Carl Eugen Hoyos
c43222f436 Improve amr bitrate calculation for VBR files.
Fixes ticket #3541.
2014-04-11 23:38:53 +02:00
Carl Eugen Hoyos
8b122937af Warn if rawvideo and an unreadable pix_fmt are written.
Print an error if a combination of rawvideo and an unusual pix_fmt
that will be impossible to decode are written to avi or mov.
Fixes ticket #3545.
2014-04-11 23:35:11 +02:00
Michael Niedermayer
662a8d8827 Merge commit '254c95cdd1b669a722204a4a65974fc2523c8f83'
* commit '254c95cdd1b669a722204a4a65974fc2523c8f83':
  resample: split linear into its own function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 20:39:04 +02:00
Michael Niedermayer
65088b925a Merge commit 'be394968c81019887ef996a78a526bdd85d1e216'
* commit 'be394968c81019887ef996a78a526bdd85d1e216':
  resample: add initial padding explicitly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 20:38:38 +02:00
Michael Niedermayer
6d6bd16fce Merge commit 'eed752d61da332fb13e9893a175a90fed7b1d7d3'
* commit 'eed752d61da332fb13e9893a175a90fed7b1d7d3':
  resample: drop useless abs()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 20:23:33 +02:00
Michael Niedermayer
fb7d64df7e Merge commit '3c84f6b5d20cd345fac706f8cfb70c55e541ffb5'
* commit '3c84f6b5d20cd345fac706f8cfb70c55e541ffb5':
  resample: reindent

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 19:34:31 +02:00
Michael Niedermayer
671f908657 Merge commit 'f20892eb67a7b4b5a3c080388a35a3380516a805'
* commit 'f20892eb67a7b4b5a3c080388a35a3380516a805':
  resample: split the nearest neighbour path into a separate function pointer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 19:34:03 +02:00
Michael Niedermayer
c04961fa0f Merge commit 'b9dea23766f52b8e059e72d34980bb7b456efe8f'
* commit 'b9dea23766f52b8e059e72d34980bb7b456efe8f':
  resample: fix avresample_get_delay() return value

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 19:24:03 +02:00
Thilo Borgmann
d2417061ef Add AVFoundation input device.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 17:51:33 +02:00
Anton Khirnov
254c95cdd1 resample: split linear into its own function 2014-04-11 16:34:02 +02:00
Anton Khirnov
be394968c8 resample: add initial padding explicitly
This simplifies the code, since we do not have to deal with a possibly
negative source index anymore.
2014-04-11 16:33:46 +02:00
Anton Khirnov
eed752d61d resample: drop useless abs()
negative sample_index is handled in the block above.
2014-04-11 16:28:11 +02:00
Anton Khirnov
3c84f6b5d2 resample: reindent 2014-04-11 16:27:22 +02:00
Anton Khirnov
f20892eb67 resample: split the nearest neighbour path into a separate function pointer 2014-04-11 16:26:36 +02:00
Anton Khirnov
b9dea23766 resample: fix avresample_get_delay() return value
The correct "next" input sample is not the first sample of the
resampling buffer, but the center sample of the filter_length-sized
block at the beginning.

CC:libav-stable@libav.org
2014-04-11 16:21:25 +02:00
Lukasz Marek
c02e3dca2d lavd: add control message enums
Adds messages that allows to control (audio) buffer and play/pause state.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
2014-04-11 15:37:56 +02:00
Lukasz Marek
6db42a2b6b lavd: add device capabilities API
Provides API to query device capabilities.
Each device must implement callbacks to benefit from this API.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-04-11 15:37:43 +02:00
Michael Niedermayer
4899ccd295 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  DNxHD: convert inline asm to yasm

Conflicts:
	libavcodec/x86/Makefile
	libavcodec/x86/dnxhdenc.asm

See: 9d34dce05b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 14:42:02 +02:00
Michael Niedermayer
ee2a43798c Merge commit '676856204b84dfaffe329dce8502e834a0dbdb19'
* commit '676856204b84dfaffe329dce8502e834a0dbdb19':
  DNxHD: make get_pixel_8x4_sym accept ptrdiff_t as stride

Conflicts:
	libavcodec/dnxhdenc.h
	libavcodec/x86/dnxhdenc_init.c

See: cb11b9e89e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 14:28:19 +02:00
Michael Niedermayer
bad101ab8a Merge commit '89ef08c992c484a46711b1a68a988303679c288e'
* commit '89ef08c992c484a46711b1a68a988303679c288e':
  DNxHD: K&R formatting cosmetics

Conflicts:
	libavcodec/dnxhd_parser.c
	libavcodec/dnxhddec.c
	libavcodec/dnxhdenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 14:04:10 +02:00
Timothy Gu
71c32ed533 DNxHD: convert inline asm to yasm 2014-04-11 12:09:09 +02:00
Timothy Gu
676856204b DNxHD: make get_pixel_8x4_sym accept ptrdiff_t as stride 2014-04-11 12:09:09 +02:00
Vittorio Giovara
89ef08c992 DNxHD: K&R formatting cosmetics 2014-04-11 12:09:08 +02:00
Michael Niedermayer
d9fef740bd avcodec/dnxhdenc: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 06:31:45 +02:00
Michael Niedermayer
1de8a4f736 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mp2: Do not force a samplerate

Conflicts:
	libavcodec/mpegaudioenc_template.c

Only libtwolame changes, as the forcing of a sample rate was not merged for the native mp2 encoder

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 01:26:07 +02:00
Michael Niedermayer
268b1eae22 avcodec/mpegaudioenc_template: default to 384k bitrate as default
If 384k is too high for the samplerate, choose the closest
possible

Idea to increase the bitrate from: 46439e1562
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 01:13:16 +02:00
Luca Barbato
a7448064c5 mp2: Do not force a samplerate
The default should be not to resample.
2014-04-11 00:09:34 +02:00
Anssi Hannula
39b192b8e1 avformat/hls: do not call ffurl_seek/ffurl_size on crypto protocol
ffurl_seek() will not work even when it should be a no-op, so do not
call it on crypto protocol.

Also replace use of ffurl_size() for the same reason.

Reported-by: Michael Schenk <Michael.Schenk@albistechnologies.com>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-11 00:04:34 +03:00
Michael Niedermayer
517cc81e93 ffmpeg: stop protocols on interrupt when no transcoding has happened yet
Fixes Ticket3344

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 22:29:23 +02:00
Carl Eugen Hoyos
ecb80fe78c Cosmetics: Remove an outdated comment from lavc/rawdec.c.
The missing swscale feature was implemented in 2011.
2014-04-10 22:25:39 +02:00
Michael Niedermayer
6290ba0052 avfilter/settb: remove duplicate #include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 21:58:03 +02:00
James Almer
09c1654208 lavf/rtspcodes: add missing header include
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 21:57:04 +02:00
Michael Niedermayer
a4662cd6b1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libx265: Only set the SAR if it is valid
  libx265: Use 16-bit SAR
  libx265: Use x265_param_parse to set the SAR

See: 8945dcbb52
See: fcc43e02d3
See: cdd21f1f03
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 21:34:08 +02:00
Michael Niedermayer
4d4bc89409 avformat/mov: merge mov_read_custom_metadata() and mov_read_custom()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 21:25:51 +02:00
Michael Niedermayer
6e573b7759 Merge commit '9a07fac678a8540d076e635061bbaa4ed09a9431'
* commit '9a07fac678a8540d076e635061bbaa4ed09a9431':
  mov: read hydrogenaudio replaygain information

Conflicts:
	libavformat/Makefile
	libavformat/mov.c

See: 37a15f3e66
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 21:25:15 +02:00
Michael Niedermayer
c486cfab79 avcodec/imgconvert: fix nb_components and depth for PAL8 in get_pix_fmt_score()
This causes us to favor RGB8 over PAL8 when FF_LOSS_COLORQUANT is used

It probably makes sense to reinvestigate the exact scoring of pal8 when
our pal8 support improves to be supperior to rgb8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 19:58:14 +02:00
Derek Buitenhuis
cdd21f1f03 libx265: Only set the SAR if it is valid
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 16:49:03 +01:00
Derek Buitenhuis
fcc43e02d3 libx265: Use 16-bit SAR
The spec says it is 16 bits.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 16:49:03 +01:00
Matt Oliver
d1e6e5c887 avcodec/x86: Exclude broken get_cabac under icl.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 17:47:22 +02:00
Michael Niedermayer
4764714952 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libavfilter: Add asettb filter for setting timebase for audio

Conflicts:
	Changelog
	doc/filters.texi
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/settb.c
	libavfilter/version.h

See: ba856c0be5 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 15:08:04 +02:00
Derek Buitenhuis
25fbfeed98 libx265: Only set the SAR if it is valid
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:28:59 +01:00
Derek Buitenhuis
cd0ac6f6e5 libx265: Use 16-bit SAR
The spec says it is 16 bits.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:28:55 +01:00
Derek Buitenhuis
8945dcbb52 libx265: Use x265_param_parse to set the SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:08:01 +01:00
Derek Buitenhuis
4a2226451e libx265: Use x265_param_parse to set the SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:06:45 +01:00
Anton Khirnov
9a07fac678 mov: read hydrogenaudio replaygain information 2014-04-10 13:53:32 +02:00
Nicolas George
ad8159e0fe libavfilter: Add asettb filter for setting timebase for audio
Ported asettb (including the sr option for audio sample rate) from FFmpeg,
and copied/modified the existing settb documentation for asettb.

Signed-off-by: Katerina Barone-Adesi <katerinab+libav@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-10 12:52:19 +02:00
Lukasz Marek
e1c48e3593 lavf/utils: fix mem leak
Calling avformat_free_context() right after avformat_alloc_output_context2()
leaved option's default values not freed.
Options were freed only in av_write_trailer().

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 03:24:07 +02:00
Lukasz Marek
fbf05759e3 sws: fix warning about RGB_PACK24_B_OPERANDS redefinition
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 02:07:07 +02:00
Michael Niedermayer
421c116fc4 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix a typo in amr.c.
  Remove an unneeded include of avassert.h from amr.c.
  Do not allow writing invalid wav channel layouts by default.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-10 00:33:57 +02:00
Michael Niedermayer
849d40dce6 avcodec/mpegvideo_enc: change some asserts to av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:57:18 +02:00
Michael Niedermayer
968516cebf avformat/nut: add ff_nut_audio_extra_tags to demuxer too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:37:55 +02:00
Carl Eugen Hoyos
cf79f20275 Fix a typo in amr.c. 2014-04-09 23:21:38 +02:00
Carl Eugen Hoyos
2a3ff9fbba Remove an unneeded include of avassert.h from amr.c. 2014-04-09 23:21:38 +02:00
Carl Eugen Hoyos
bf87d582b1 Do not allow writing invalid wav channel layouts by default.
Neither WMP nor QT play wav files with too large channel layouts.
Fixes ticket #3543.
2014-04-09 23:21:38 +02:00
Michael Niedermayer
f703dae7aa avcodec/cngdec: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:18:32 +02:00
Michael Niedermayer
2773ab36cc avcodec/jpeglsdec/ff_jpegls_decode_lse: check len field validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:12:44 +02:00
Michael Niedermayer
020600eed1 avcodec/jpeglsdec: ask for sample for "oversized image"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:12:44 +02:00
Michael Niedermayer
375013e3d6 avcodec/mpeg12dec: drop confusing av_dlog()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:12:44 +02:00
Anthoine Bourgeois
d8ab7f31dd avcodec/dirac_arith: Fix build with PIC and stack-check options
Fixes Ticket3540

The function dirac_get_arith_bit in libavcodec/dirac_arith.h can't be
built with PIC and check-stack because the asm code needs 6 registers
and PIC and check-stack options take 1 each and x86 is quite limited
in this area.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 19:41:48 +02:00
Michael Niedermayer
7ac2f7e413 avutil/log: factor "level != AV_LOG_INFO/8" checks out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 16:30:16 +02:00
Michael Niedermayer
dddacf780f avcodec/sanm: use named consant instead of literal number
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 16:23:57 +02:00
Michael Niedermayer
acf112ba6e avcodec/mpegvideo: remove AVFrame padding, as the hack isnt needed anymore
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 16:17:22 +02:00
Michael Niedermayer
2ca553ed9c avcodec/snowenc: remove operations that have become redundant with AVFrame pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 16:17:22 +02:00
Michael Niedermayer
59a53842d3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: operate with pointers to AVFrames instead of whole structs

Conflicts:
	libavcodec/h261dec.c
	libavcodec/h263dec.c
	libavcodec/intrax8.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/mpegvideo_xvmc.c
	libavcodec/msmpeg4.c
	libavcodec/ratecontrol.c
	libavcodec/vaapi.c
	libavcodec/vc1dec.c
	libavcodec/vdpau_vc1.c

See: fc567ac49e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 15:18:46 +02:00
Michael Niedermayer
60ef0c6f90 Merge commit '60fd7d36c47d62d4c603bf16c213b1a924f5cfcf'
* commit '60fd7d36c47d62d4c603bf16c213b1a924f5cfcf':
  fate: correctly set sample rate for mp2 tests

Conflicts:
	tests/fate/acodec.mak
	tests/lavf-regression.sh

one hunk has been ommited as it breaks fate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 13:58:55 +02:00
Thilo Borgmann
c740e083bc configure: Fail on missing prototypes in check_oc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 13:30:40 +02:00
Michael Niedermayer
44841528c1 avcodec/mpegaudioenc_template: reorder operations to prevent integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 07:04:12 +02:00
Michael Niedermayer
9d66aa2c8f avcodec/mpegaudioenc_template: dont crash on bitrate=0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 05:16:52 +02:00
Michael Niedermayer
d98688efb1 swscale/input: replace assert() by av_assert1()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 05:14:34 +02:00
Michael Niedermayer
624327988f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Completely document the x264 options

Conflicts:
	doc/encoders.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 04:54:26 +02:00
Michael Niedermayer
43935842bd Merge commit '0d671ade99059fd47b155df85c10c35eb6d54878'
* commit '0d671ade99059fd47b155df85c10c35eb6d54878':
  doc: Use a 3 columns multitable

Conflicts:
	doc/encoders.texi

No change as we dont use a multitable for this list
we could of course switch to one though if it looks better
comments welcome

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 04:49:15 +02:00
Michael Niedermayer
8f23045b16 Merge commit 'be59675add2a05a7400b1abf86201ab069d7b1dd'
* commit 'be59675add2a05a7400b1abf86201ab069d7b1dd':
  doc: Change the multitable rendering in texi2pod

Conflicts:
	doc/texi2pod.pl

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 04:26:20 +02:00
Michael Niedermayer
e40d92b1e4 Merge commit '59388dac69f9a79eddb003d1c6aad5ec89d4287b'
* commit '59388dac69f9a79eddb003d1c6aad5ec89d4287b':
  fate: update tests for YVYU422 pixel format

Conflicts:
	tests/ref/fate/filter-pixdesc
	tests/ref/fate/filter-pixfmts-copy
	tests/ref/fate/filter-pixfmts-null
	tests/ref/fate/filter-pixfmts-scale
	tests/ref/fate/filter-pixfmts-vflip

No change as the fate tests where updated in the merges that changed
the scores

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 04:16:35 +02:00
Michael Niedermayer
233dbee3bc Merge commit 'b6a09ef700786b4e1e871dfa0f5c386ea43bbd0a'
* commit 'b6a09ef700786b4e1e871dfa0f5c386ea43bbd0a':
  rawvideo: Support decoding YVYU422 FourCC

See: ab7d6cb8f7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 04:06:35 +02:00
Michael Niedermayer
ed962414bd Merge commit '92b099daf4b8ef93513e38b43899cb8458a2fde3'
* commit '92b099daf4b8ef93513e38b43899cb8458a2fde3':
  swscale: support converting YVYU422 pixel format

Conflicts:
	libswscale/input.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 03:36:38 +02:00
Michael Niedermayer
0a1cc04e6c Merge commit '8b17243d1742279bcb2368f8d325ea71e66736c8'
* commit '8b17243d1742279bcb2368f8d325ea71e66736c8':
  lavu: Add packed YVYU422 pixel format

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 03:07:47 +02:00
Michael Niedermayer
352e13e2a9 Merge commit '46439e156219d27f059cf687743ba5aacf238b87'
* commit '46439e156219d27f059cf687743ba5aacf238b87':
  mp2: match twolame default options

Not merged as the change breaks fate, also forcing resampling to specific sample rate
reduces quality, and would be like rescaling every movie to 1080.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 02:59:43 +02:00
Michael Niedermayer
6c019f05ed Merge commit '718907cd881a0b593264aed059c0e00da13f9e15'
* commit '718907cd881a0b593264aed059c0e00da13f9e15':
  libtwolame MP2 encoding support

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/Makefile
	libavcodec/libtwolame.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 02:17:56 +02:00
wm4
f6774f905f mpegvideo: operate with pointers to AVFrames instead of whole structs
The most interesting parts are initialization in ff_MPV_common_init() and
uninitialization in ff_MPV_common_end().

ff_mpeg_unref_picture and ff_thread_release_buffer have additional NULL
checks for Picture.f, because these functions can be called on
uninitialized or partially initialized Pictures.

NULL pointer checks are added to ff_thread_release_buffer() stub function.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-09 02:12:19 +02:00
Vittorio Giovara
60fd7d36c4 fate: correctly set sample rate for mp2 tests 2014-04-09 02:11:25 +02:00
Michael Niedermayer
1752b1459d swscale/utils: scale filter_size in warning so that it can be used as max for the compile time define
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 00:57:12 +02:00
Michael Niedermayer
7b2b06eb43 swscale/utils: dont print message about filter size when the cause is a malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 00:57:12 +02:00
Luca Barbato
e6e8be542b doc: Completely document the x264 options
And fix an option mismatch.
2014-04-08 23:24:42 +02:00
Luca Barbato
0d671ade99 doc: Use a 3 columns multitable
Make the html output much nicer.
2014-04-08 23:24:42 +02:00
Luca Barbato
be59675add doc: Change the multitable rendering in texi2pod
Makes it working better for our documentation purposes.
2014-04-08 23:24:42 +02:00
Vittorio Giovara
59388dac69 fate: update tests for YVYU422 pixel format 2014-04-08 23:24:41 +02:00
Vittorio Giovara
b6a09ef700 rawvideo: Support decoding YVYU422 FourCC 2014-04-08 23:24:36 +02:00
Michael Niedermayer
2daf580284 avcodec/j2kenc: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 23:12:26 +02:00
Michael Niedermayer
8ff061095f avcodec/libzvbi-teletextdec: remove * 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 23:12:26 +02:00
Michael Niedermayer
818aaa7636 avcodec/libopencore-amr: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 23:12:26 +02:00
Anshul Maheshwari
5b30f27592 rtspcodes: don't check for >0 on error codes macro
Avoids a warning with gcc 4.7 and -Wtype-limits. Albeit
superfluous (At least gcc 4.8 didnt consider this been
a problem).

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-08 18:05:02 -03:00
Schenk, Michael
358f9ae639 configure: AVI demux needs exif
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 20:14:49 +02:00
Michael Niedermayer
2fcef4a044 swscale/swscale_internal: remove obsolete warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 19:09:05 +02:00
Michael Niedermayer
955d7e26b6 swscale/swscale_internal: make the offset strings update themselfs when the MAX_FILTER_SIZE is changed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 18:51:34 +02:00
Michael Niedermayer
f6759d9ad4 swscale/x86/swscale_template: loose hardcoded dstw_offset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 18:39:39 +02:00
Michael Niedermayer
e20e854ca0 vcodec/bitstream: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 16:18:29 +02:00
Michael Niedermayer
33c9bb943b avcodec/avpacket: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 16:17:40 +02:00
Michael Niedermayer
e4c180c05a avcodec/a64multienc: use av_malloc(z)_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 16:15:32 +02:00
Michael Niedermayer
53487268e5 cmdutils: use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 15:44:32 +02:00
Michael Niedermayer
c8a1f10cf4 avcodec/ac3enc_float: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 15:35:47 +02:00
Michael Niedermayer
9b467d3cd5 examples/transcoding: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 15:35:14 +02:00
Michael Niedermayer
b176320545 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix compilation with --disable-everything --enable-decoder=rawvideo.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 02:29:06 +02:00
Michael Niedermayer
e36aaeca3a avfilter/vf_colormatrix: fix memleak on error
Fixes CID1197065
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 01:25:00 +02:00
Michael Niedermayer
5027f39712 swresample/resample: use av_malloc_array() where appropriate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 00:29:26 +02:00
Michael Niedermayer
a5290cb1ac swresample/dither: use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 00:29:20 +02:00
Michael Niedermayer
f9158b01d0 swresample/resample: Limit filter length
Related to CID1197063

The limit choosen is arbitrary and much larger than what makes sense.
It avoids the need for checking arithmetic operations with the length for overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-08 00:25:49 +02:00
Carl Eugen Hoyos
7fcb4f6c51 Fix compilation with --disable-everything --enable-decoder=rawvideo. 2014-04-08 00:04:25 +02:00
Vittorio Giovara
92b099daf4 swscale: support converting YVYU422 pixel format 2014-04-07 23:50:34 +02:00
Vittorio Giovara
8b17243d17 lavu: Add packed YVYU422 pixel format 2014-04-07 23:50:34 +02:00
Vittorio Giovara
46439e1562 mp2: match twolame default options 2014-04-07 23:50:33 +02:00
Paul B Mahol
718907cd88 libtwolame MP2 encoding support
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-07 23:50:33 +02:00
Michael Niedermayer
0d225863f2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libxvid: fix missing end of line character

Conflicts:
	libavcodec/libxvid.c

No change as the buggy modification wasnt merged, ffmpeg handles the
case where both lumi and variance masking are set, differently

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 20:53:34 +02:00
Carl Eugen Hoyos
836b60ce2b Fix standalone compilation of vp7 and vp8 decoder.
Fixes ticket #3536.
2014-04-07 15:30:48 +02:00
Carl Eugen Hoyos
993a5afaad Read aspect ratio from tiff image files. 2014-04-07 15:30:48 +02:00
Vittorio Giovara
17a75a8c09 libxvid: fix missing end of line character
Error introduced in 5ce7ca68b8.
2014-04-07 14:56:25 +02:00
Schenk, Michael
845414bbb1 avformat/oggdec: reset nstreams in close
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 14:55:35 +02:00
Schenk, Michael
b0a8521383 avformat/mov: reset drefs_count in close
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 14:51:36 +02:00
Matt Oliver
158a80cc0b Remove leal op to fix icl inline asm.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 13:02:54 +02:00
Reynaldo H. Verdejo Pinochet
02497a5dc8 ffserver: don't hardcode RTSP status codes
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-07 00:24:00 -03:00
Reynaldo H. Verdejo Pinochet
5267a5d783 rtspcodes: add full list of RTSP status codes
Also add reason phrases from http://www.ietf.org/rfc/rfc2326.txt
and macro to translate.

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-07 00:24:00 -03:00
Reynaldo H. Verdejo Pinochet
0c5a6ef886 ffserver: nits & typos
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-04-07 00:24:00 -03:00
Thilo Borgmann
fdaf8372c2 configure: Check for generated output in check_header_oc.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 05:11:47 +02:00
Michael Niedermayer
a75ba1e116 avcodec/h264/find_start_code: factorize addition out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 04:18:21 +02:00
Michael Niedermayer
13aa575764 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  xtea: Add Doxy @file and group

See: 50f52a5498
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 04:16:47 +02:00
Michael Niedermayer
a6fa3a476a Merge commit 'f73495686d109ffffaa8c0387e790e7997326229'
* commit 'f73495686d109ffffaa8c0387e790e7997326229':
  adler32: Fix doxy group definition

See: 624672fcce and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 04:15:59 +02:00
Michael Niedermayer
0ecb3075c1 Merge commit 'e10fd08aa7fbe8645545ad2e8721f0ed03c8e06a'
* commit 'e10fd08aa7fbe8645545ad2e8721f0ed03c8e06a':
  h264: Refactor decode_nal_units

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 03:59:22 +02:00
Michael Niedermayer
a7a82f2f22 Merge commit 'c389a804943095ebf078daec6b64690d2c97069c'
* commit 'c389a804943095ebf078daec6b64690d2c97069c':
  libxvid: Add SSIM displaying through a libxvidcore plugin

Conflicts:
	libavcodec/libxvid.c
	libavcodec/version.h

See: 3b3c1ed076
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 03:20:23 +02:00
Michael Niedermayer
072278c777 Merge commit '5ce7ca68b86856ee8e9d6530dffdadc4eca4f8d1'
* commit '5ce7ca68b86856ee8e9d6530dffdadc4eca4f8d1':
  libxvid: add working lumimasking and variance AQ

Conflicts:
	libavcodec/libxvid.c
	libavcodec/version.h

See: ccb212b6c3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 03:08:25 +02:00
Michael Niedermayer
190106e884 Merge commit 'd3789eeeed3423bd1ca9dc40030a2f7a21ea5332'
* commit 'd3789eeeed3423bd1ca9dc40030a2f7a21ea5332':
  aarch64: implement videodsp.prefetch

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 02:51:05 +02:00
Michael Niedermayer
4c57c6a765 Merge commit '8675bcb0addb1c7fb0b04682d1f3f95d5b8dae14'
* commit '8675bcb0addb1c7fb0b04682d1f3f95d5b8dae14':
  aarch64: add armv8 CPU flag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 02:15:18 +02:00
Stephan Hilb
541bebd414 lavc/cpia: use avpriv_report_missing_feature()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 01:33:53 +02:00
Stephan Hilb
5dae3cf357 lavc/cpia: fix typo in log message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 01:33:10 +02:00
Timothy Gu
486e3649ce xtea: Add Doxy @file and group 2014-04-07 01:31:36 +02:00
Timothy Gu
f73495686d adler32: Fix doxy group definition
Based on a patch by James Almer <jamrial@gmail.com>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-07 01:31:02 +02:00
Michael Niedermayer
01a5d71789 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Set Matroska private data when muxing Prores.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:57:42 +02:00
Michael Niedermayer
9e7f1474dd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add tests for SANM and VIMA

Conflicts:
	tests/fate/video.mak
	tests/ref/fate/sanm

See: 4cdff58206
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:43:02 +02:00
Carl Eugen Hoyos
3d5c859fa6 Set Matroska private data when muxing Prores.
The specification requires the mov code point to be written as "fourcc".
2014-04-06 23:35:17 +02:00
Luca Barbato
e10fd08aa7 h264: Refactor decode_nal_units 2014-04-06 23:33:17 +02:00
Michael Niedermayer
5297003aa7 Merge commit 'eeadcdfd1a6f3089b6bf6e194d6ece8d3f113123'
* commit 'eeadcdfd1a6f3089b6bf6e194d6ece8d3f113123':
  LucasArts SMUSH demuxer

Conflicts:
	Changelog
	doc/general.texi
	libavformat/smush.c
	libavformat/version.h

See: bef8fd7099
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:29:47 +02:00
Timothy Gu
c389a80494 libxvid: Add SSIM displaying through a libxvidcore plugin
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 23:23:13 +02:00
Timothy Gu
5ce7ca68b8 libxvid: add working lumimasking and variance AQ
The old implementation is unusable due to changes in the Xvid API.
Further fixes by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 23:23:13 +02:00
Michael Niedermayer
787be6d074 Merge commit '6f273093e54cba130f3ffde3d6433e74baa4ad89'
* commit '6f273093e54cba130f3ffde3d6433e74baa4ad89':
  LucasArts SMUSH VIMA audio decoder

Conflicts:
	Changelog
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/version.h
	libavcodec/vima.c

This commit adds a AV_CODEC_ID_ADPCM_VIMA alias in addition to the previously
used AV_CODEC_ID_VIMA, as well as a AVCodec with name "adpcm_vima" in addition
to the previously used name "vima"
These changes are needed for compatibility with the renamed codec in libav

See: b18357326c and others

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:14:23 +02:00
Michael Niedermayer
881f4e8d34 Merge commit 'a420ccd4f2a011887451a7d5e1bebba4fd7c40e2'
* commit 'a420ccd4f2a011887451a7d5e1bebba4fd7c40e2':
  LucasArts SMUSH SANM video decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/sanm.c
	libavcodec/version.h

See: 69254f4628 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 22:19:16 +02:00
Reimar Döffinger
a0568ed254 rtspdec: check for strchr returning NULL.
Fixes CID 732244.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-06 22:04:03 +02:00
Janne Grunau
d3789eeeed aarch64: implement videodsp.prefetch
8% faster h264 decoding on Apple A7.
2014-04-06 21:18:49 +02:00
Janne Grunau
8675bcb0ad aarch64: add armv8 CPU flag 2014-04-06 21:18:49 +02:00
Reimar Döffinger
57d10a28f4 pulseaudio: move NULL check up before dereference.
Fixes CID 1197068.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-06 19:38:51 +02:00
Hendrik Leppkes
fc7e02f0ff dcadsp: fix SSE code to not use SSE2 instructions.
movq from SSE register to memory is an SSE2 instruction.
Instead, use SSE movlps, which does the same thing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:31:22 +02:00
Michael Niedermayer
4ccd7cb45b avformat/oggdec/ogg_read_packet(): factorize failure code path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:10:47 +02:00
Michael Niedermayer
c1b24ca762 avformat/oggdec: check for av_packet_new_side_data() failure
Fixes CID1197062
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:10:47 +02:00
Michael Niedermayer
28f8114bd2 avcodec/vp8: fix checking vp7_feature_value_size
Fixes CID1197061

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:10:47 +02:00
Vladlen Y. Koshelev
cdbd9e218d avformat/hls: support for seeking on event playlists
This allows clients to seek between first played segment
and the last one in the live stream playlist with #EXT-X-PLAYLIST-TYPE:EVENT attribute.
2014-04-06 17:55:04 +03:00
Anssi Hannula
f29cb45bf2 avformat/hls: flush the subdemuxer when seeking
Since we are basically seeking the AVIOContext under the subdemuxer, we
need to flush the subdemuxer to avoid old packets from being read from
the packet queue after the seek.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:04 +03:00
Anssi Hannula
9aa0606e87 avformat/hls: properly take stream_index into account when seeking
Properly take stream_index into account so that a keyframe will be
looked for in the specified stream_index only.

Similarly, only check timestamp validity against the specified
stream_index.

Also remove code for stream_index == -1 case which does not actually
happen as it is handled by generic code.

This is based on an initial patch by James Deng.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:04 +03:00
Anssi Hannula
ad701326b4 avformat/hls: open playlists immediately when AVDISCARD_ALL is dropped
Do not try to delay opening newly required playlists until a segment
switch. Applications expect that newly selected undiscarded streams are
available immediately, especially with alternative rendition streams
(selectable audio/subtitle tracks).

One might think that delaying variant stream switch until a segment
switch would allow a "seamless" switch without us having to download a
specific segment from two different variant playlists. However, that is
not the case, since the application would have to keep the previous
stream available (undiscarded) until the first packet of the newly
selected stream arrives, but by that time the demuxer would have already
downloaded the next segment of both variants.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:04 +03:00
Anssi Hannula
05ce529a59 avformat/hls: factor identical playlist allocations out of parse_playlist
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
6b4b73e75d avformat/hls: do not use sequence numbers for packet ordering
As per spec 3.4.3 ("A client MUST NOT assume that segments with the same
sequence number in different Media Playlists contain matching content.")
we cannot use sequence numbers for packet ordering.

This can be seen e.g. in the subtitle streams of
bipbop_16x9_variant.m3u8 that have considerably longer segments and
therefore different numbering.

Since the code now exclusively syncs using timestamps that may wrap, add
some additional checking for that.

According to the HLS spec all the timestamps should be in 33-bit MPEG
format and synced together.

v2: cleaner wrap detection
v3: further wrap detection improvements

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
8fd6875c83 avformat/hls: do not care about stream start timestamps
While selecting a packet to return to caller in read_packet(), the code
corrects the timestamps for starting timestamps.

However, this is wrong, since for live streams the initial timestamps
might differ just because of the time delay between the retrieval of the
various Media Playlists.

Fortunately, spec 6.2.4 mandates that all variant streams must have
matching timestamps, so we do not need to correct for initial
timestamps.

Drop the correction code.

Note that ID3 timestamps were previously ignored, so this code was
previously actually needed.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
d549b0910c avformat/hls: avoid unnecessary segment retrievals
Check if the playlist is still needed just before requesting the next
segment instead of after exhausting the previous segment.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
4e85202bcc avformat/hls: improve segment selection when restarting list reception
Improve selection of the segment sequence number when restarting the
reception of a playlist after it was suspended due to being unneeded
(due to discard flags).

The current code assumes that each playlist contains matching data with
the same sequence number, while spec 3.4.3 specifically says that that
is not the case. Often subtitle playlists also have longer target
durations as well, causing the selection to be completely wrong.

Instead prefer using the playlist segment duration information for
non-live playlists, and other means if that is not possible.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
61e1a70278 avformat/hls: track seeking on a per-playlist basis
Seeking needs to be tracked on a per-playlist basis, since the resyncing
code in hls_read_packet() has to sync each playlist to the seek
timestamp instead of stopping after the first playlist has reached it.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
01b184e68d avformat/hls: parse ID3 timestamps for elementary audio streams
HLS provides MPEG TS timestamps via ID3 tags in the beginning of each
segment of elementary audio streams.

v2: fix issues with streams that have multiple ID3 tags

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
1cb8d986b8 avformat/hls: split read_from_url() out of read_data()
Useful for ID3 parsing.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
f7c7fc1369 avformat/hls: add some logging messages
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Anssi Hannula
da7759b357 avformat/hls: add support for byte-ranged segments
Add support for EXT-X-BYTERANGE added in HLS protocol v4.

v2: Better comment explaining ffurl_seek call and fix cur_seg_offset not
being updated.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Anssi Hannula
cc1162d775 avformat/hls: always return EOF for unneeded playlist streams
Even if we returned AVERROR_EOF previously due to playlist no longer
being needed, we may still be called again, and we do not want to
trigger a segment download in that case.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Anssi Hannula
edf4406c4d avformat/hls: add support for alternative renditions
HLS protocol version 4 added alternative renditions to the
specification (e.g. alternative audio tracks).

The EXT-X-MEDIA tags can also contain metadata for "renditions" (i.e.
tracks) of the main Media Playlist.

Add support for those.

Note that the same rendition (AVStream) may be associated with multiple
variants (AVPrograms).

Alternative subtitle tracks will require additional work and are
therefore not enabled yet.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Paul B Mahol
a027d2a873 fate: add tests for SANM and VIMA
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:42:15 +02:00
Paul B Mahol
eeadcdfd1a LucasArts SMUSH demuxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:41:41 +02:00
Paul B Mahol
6f273093e5 LucasArts SMUSH VIMA audio decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:41:39 +02:00
Paul B Mahol
a420ccd4f2 LucasArts SMUSH SANM video decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:40:27 +02:00
Thilo Borgmann
33462542cf configure: Add workaround for qtkit detection using ICC compiler.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 15:52:31 +02:00
Michael Niedermayer
754f84663e avcodec/msrle: check return code for success before use
The check is possibly redundant, but better to check for errors
that dont occur than to skip the check and crash

Fixes CID1197060

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 04:01:24 +02:00
Michael Niedermayer
f87b3d5523 avcodec/pthread_frame: fix missing unlock on error
Fixes CID1197057
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 03:51:46 +02:00
Carl Eugen Hoyos
59c1023ef5 Consider aspect ratio when writing tiff dpi.
TIFFTAG_YRESOLUTION gets now adjusted to sample_aspect_ratio.
2014-04-06 02:42:31 +02:00
Michael Niedermayer
b978391ed5 avformat/oggparsevorbis: remove non functional null check
Fixes CID1197055

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 01:34:48 +02:00
Michael Niedermayer
419800acc4 examples/avio_reading: fix null dereference on error
Fixed CID1197052
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 00:39:58 +02:00
Michael Niedermayer
1fec720afa avformat/cinedec: ask for sample when biBitCount isnt supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 00:34:09 +02:00
Michael Niedermayer
47b03415f3 avformat/cinedec: remove redundant zero termination
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 23:00:23 +02:00
Michael Niedermayer
af2e5061bb avformat/mov: Fix width/height typo
Fixes CID1197050
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 22:49:17 +02:00
Michael Niedermayer
49579c9637 avformat/cinedec: fix sizeof()
Fixes CID1197047
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 22:37:10 +02:00
Michael Niedermayer
a84f9c75bc avformat/omadec: fix probetest failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 22:07:43 +02:00
Michael Niedermayer
d167faafe9 avcodec/wma: use av_freep(), do not leave stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 21:34:03 +02:00
Michael Niedermayer
26e70fd5ba avcodec/vp8: fix name of copy_luma()
This function was introduced by ac4b32df71

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 21:33:53 +02:00
Michael Niedermayer
47fc82b5b3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: Move DV-specific ff_zigzag248_direct table to dvdata

Conflicts:
	libavcodec/dv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:43:28 +02:00
Michael Niedermayer
e6f69b324e Merge commit '57b5b84e208ad61ffdd74ad849bed212deb92bc5'
* commit '57b5b84e208ad61ffdd74ad849bed212deb92bc5':
  x86: dsputil: Move ff_apply_window_int16_* bits to ac3dsp, where they belong

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:36:21 +02:00
Michael Niedermayer
e3c3f277a9 Merge commit 'c2c5be57494e6117086771bca34c8cd4c72c8e99'
* commit 'c2c5be57494e6117086771bca34c8cd4c72c8e99':
  x86: h264_qpel: Simplify an #if conditional

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:30:44 +02:00
Michael Niedermayer
ebb21887b8 Merge commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8'
* commit '01c5779f56cf708e6cb88b11cfdc248cae7e2ee8':
  x86: Drop some unnecessary YASM ifdefs

Conflicts:
	libavfilter/x86/vf_yadif_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:16:39 +02:00
Michael Niedermayer
865c94bb57 Merge commit 'b718b24bbe83d3e8787c1dc6449ccbffcd13a4e7'
* commit 'b718b24bbe83d3e8787c1dc6449ccbffcd13a4e7':
  ppc: Drop a bunch of unnecessary dsputil_altivec.h #includes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:10:00 +02:00
Michael Niedermayer
874f27a8f7 Merge commit 'b42f49e42f8cde25a788b2d13d03e99ca2956647'
* commit 'b42f49e42f8cde25a788b2d13d03e99ca2956647':
  x86: dsputil: Eliminate some unnecessary dsputil_x86.h #includes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 19:05:00 +02:00
Michael Niedermayer
5440151fa4 Merge commit '3dc6272bed7890a49080e18eacf3c7a4a6594b0d'
* commit '3dc6272bed7890a49080e18eacf3c7a4a6594b0d':
  Remove a number of unnecessary dsputil.h #includes

Conflicts:
	libavcodec/h264pred.c
	libavcodec/vc1dsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 18:54:15 +02:00
James Almer
a1ac12bddd x86/dcadsp: add ff_dca_lfe_fir0_fma3
~10% faster than the SSE version.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 13:55:59 +02:00
Michael Niedermayer
3c728ceec6 configure: use TMPM in check_header_oc
Some compilers when given -x objective-c will tell that they dont support
that but return success. Using a .m file instead returns proper failure in
that case

This should fix a build failure on freebsd

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 13:30:27 +02:00
Michael Niedermayer
323c049c7e configure: more properly disable header when check_header_oc() fails
This should make no difference currently

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 13:29:28 +02:00
James Almer
7d2116dd09 x86/synth_filter: compile avx and fma3 functions unconditionally
Fixes compilation failures with "--disable-{avx,fma3} --disable-optimizations"

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 05:15:27 +02:00
Thilo Borgmann
ec8789ac63 Reindent after last commit.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 03:32:11 +02:00
Thilo Borgmann
2f08dad028 lavf/avidec: Read metadata EXIF tags from AVIF tag. Based on patch by Gregory Wolfe (Kodak Alaris) <gregory.wolfe@kodakalaris.com>.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 03:32:06 +02:00
Thilo Borgmann
8c161d7884 lavc/exif: Make EXIF IFD decoding part of private API/ABI.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 03:31:56 +02:00
Michael Niedermayer
7a5537fd3f Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Allow .y as extension for image2.
  Show stream number when warning about stream without start time.
  Force gif aspect ratio multiplication to 64bit.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 03:23:47 +02:00
Carl Eugen Hoyos
90d93eeb38 Allow .y as extension for image2. 2014-04-05 02:18:09 +02:00
Michael Niedermayer
a2c6a99ba5 configure: Fix testing of objective-c headers for qtkit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 02:03:15 +02:00
Carl Eugen Hoyos
9f4ab4e5f9 Show stream number when warning about stream without start time. 2014-04-05 01:15:12 +02:00
Carl Eugen Hoyos
87f2999641 Force gif aspect ratio multiplication to 64bit.
Avoids a possible integer overflow.
2014-04-05 01:13:47 +02:00
Michael Niedermayer
b6850e132f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  af_ashowinfo: print a more descriptive name for AV_MATRIX_ENCODING_DOLBY

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 00:42:47 +02:00
Michael Niedermayer
37af487170 Merge commit 'a49aa440c939e221194f8d95bf98673f8cf38a06'
* commit 'a49aa440c939e221194f8d95bf98673f8cf38a06':
  af_volume: implement replaygain pre-amplification

Conflicts:
	doc/filters.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 00:16:53 +02:00
Michael Niedermayer
490d53e335 avcodec/x86/dcadsp_init: fix compilation failure without FMA3
alternatively the call could be put under #if or the #if
over the function removed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 00:11:48 +02:00
Michael Niedermayer
51fd962c0b Merge commit 'c74b86699c86bdf62e8570f41d8a38be5710baa3'
* commit 'c74b86699c86bdf62e8570f41d8a38be5710baa3':
  x86/synth_filter: add synth_filter_fma3
  x86/synth_filter: add synth_filter_avx
  x86/synth_filter: add synth_filter_sse

Conflicts:
	libavcodec/x86/dcadsp.asm
	libavcodec/x86/dcadsp_init.c

See: 6467209836
See: 68c3ed936a
See: 7fd64e3e36
See: aa1f38015c
See: dfd865e51b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 23:40:08 +02:00
Michael Niedermayer
b00f6bb90a Merge commit 'b97f2c7c49e35724f3963677f8aeee28089dc64e'
* commit 'b97f2c7c49e35724f3963677f8aeee28089dc64e':
  replaygain: remove unused variable

See: c01ddf845d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 23:24:21 +02:00
Michael Niedermayer
849a8c4cdb Merge commit '0048deb84cb6d22ba7f4fd7c8b4ecc054fcc22d4'
* commit '0048deb84cb6d22ba7f4fd7c8b4ecc054fcc22d4':
  oggparsevorbis: export replaygain tags from Vorbis comments

Conflicts:
	libavformat/Makefile
	libavformat/oggparsevorbis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 23:17:33 +02:00
Michael Niedermayer
8e8c8607fc Merge commit '1d55f8d5f6f2cd74fa27170e2be37a72441d9202'
* commit '1d55f8d5f6f2cd74fa27170e2be37a72441d9202':
  flacdec: export replaygain tags from Vorbis comments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 22:59:28 +02:00
Michael Niedermayer
c1d053621c Merge commit '8542f9c4f17125d483c40c0c5723842f1c982f81'
* commit '8542f9c4f17125d483c40c0c5723842f1c982f81':
  replaygain: correctly parse peak values

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 22:52:12 +02:00
Michael Niedermayer
6520613139 Merge commit '25b6837f7cacd691b19cbc12b9dad1ce84a318a1'
* commit '25b6837f7cacd691b19cbc12b9dad1ce84a318a1':
  replaygain: fix gain sign decoding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 22:44:17 +02:00
Christophe Gisquet
dfd865e51b x86/synth_filter: remove the main loop when it's not needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 22:35:45 +02:00
Lukasz Marek
3aac5fcfa9 lavu/opt: validate range before dereference
This change make error handling simplier.
av_opt_freep_ranges may be called when some ranges are NULL,
for example after memory allocation fail.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 22:09:57 +02:00
Michael Niedermayer
506064ed10 ffmpeg: frame droping due to fps should not be a warning
This reverts part of 41e7e46cac

See: http://thread.gmane.org/gmane.comp.video.ffmpeg.user/51229
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 21:15:31 +02:00
Diego Biurrun
5f92204370 dsputil: Move DV-specific ff_zigzag248_direct table to dvdata 2014-04-04 19:08:05 +02:00
Diego Biurrun
57b5b84e20 x86: dsputil: Move ff_apply_window_int16_* bits to ac3dsp, where they belong 2014-04-04 19:08:05 +02:00
Diego Biurrun
c2c5be5749 x86: h264_qpel: Simplify an #if conditional
The extra conditions are covered by previous #ifs and conditional compilation.
2014-04-04 19:08:05 +02:00
Diego Biurrun
01c5779f56 x86: Drop some unnecessary YASM ifdefs
Dead code elimination is enough to avoid undefined references in these cases.
2014-04-04 19:08:05 +02:00
Diego Biurrun
b718b24bbe ppc: Drop a bunch of unnecessary dsputil_altivec.h #includes 2014-04-04 19:08:05 +02:00
Diego Biurrun
b42f49e42f x86: dsputil: Eliminate some unnecessary dsputil_x86.h #includes 2014-04-04 19:08:05 +02:00
Diego Biurrun
3dc6272bed Remove a number of unnecessary dsputil.h #includes 2014-04-04 19:08:05 +02:00
Anton Khirnov
9c21c08fa7 af_ashowinfo: print a more descriptive name for AV_MATRIX_ENCODING_DOLBY 2014-04-04 18:54:47 +02:00
Alessandro Ghedini
a49aa440c9 af_volume: implement replaygain pre-amplification
This adds a new "replaygain_preamp" option to the filter, and simply adds its
value to the replaygain gain value.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 18:53:05 +02:00
Roman Fietze
5bb3f88255 avcodec.h, avpacket.c: use const AVPacket pointers in copy functions
Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 18:36:48 +02:00
James Almer
c74b86699c x86/synth_filter: add synth_filter_fma3
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
Michael Niedermayer
b97f2c7c49 replaygain: remove unused variable
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
Alessandro Ghedini
0048deb84c oggparsevorbis: export replaygain tags from Vorbis comments
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
Alessandro Ghedini
1d55f8d5f6 flacdec: export replaygain tags from Vorbis comments
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
James Almer
81e02fae6e x86/synth_filter: add synth_filter_avx
Sandy Bridge Win64:
180 cycles in ff_synth_filter_inner_sse2
150 cycles in ff_synth_filter_inner_avx

Also switch some instructions to a three operand format to avoid
assembly errors with Yasm 1.1.0 or older.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
James Almer
2025d8026f x86/synth_filter: add synth_filter_sse
Build only on x86_32 targets.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
Alessandro Ghedini
8542f9c4f1 replaygain: correctly parse peak values
According to the ReplayGain spec, the peak amplitude may overflow and may result
in peak amplitude values greater than 1.0 with psychoacoustically coded audio,
such as MP3. Fully compliant decoders must allow peak overflows.

Additionally, having peak values in the 0<->UINT32_MAX scale makes it more
difficult for applications to actually use the peak values (e.g. when
implementing clipping prevention) since values have to be rescaled down.

This patch corrects the peak parsing by removing the rescaling of the decoded
values between 0 and UINT32_MAX and the 1.0 upper limit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:19 +02:00
Peter Ross
0cc685e3ad avformat/wtvdec: populate codec_tag from BITMAPINFOHEADER
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 17:20:38 +02:00
Peter Ross
8348bd198f avformat/wtvdec: ignore MPEG2VIDEO extradata when count is invalid
Fixes ticket #3522.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 17:11:47 +02:00
Alessandro Ghedini
25b6837f7c replaygain: fix gain sign decoding
The gain sign was incorrectly decoded: since the FFSIGN() macro treats 0 as
negative, gain values starting with "0." were always decoded as negative.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:04:37 +02:00
James Almer
0f62982335 oggenc: check return value of av_mallocz()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 15:56:52 +02:00
Michael Niedermayer
35617366b5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: asm decode_block_coeffs_internal is vp8 specific

See: 89f2f5dbd7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 15:28:41 +02:00
Michael Niedermayer
a20480e659 Merge commit '287432430c5c9cb8ffe1da1376949de494f24e45'
* commit '287432430c5c9cb8ffe1da1376949de494f24e45':
  fate: add a VP7 test

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 15:09:52 +02:00
Michael Niedermayer
fb61ed1e9f Merge commit 'ac4b32df71bd932838043a4838b86d11e169707f'
* commit 'ac4b32df71bd932838043a4838b86d11e169707f':
  On2 VP7 decoder

Conflicts:
	Changelog
	libavcodec/arm/h264pred_init_arm.c
	libavcodec/arm/vp8dsp.h
	libavcodec/arm/vp8dsp_init_arm.c
	libavcodec/arm/vp8dsp_init_armv6.c
	libavcodec/arm/vp8dsp_init_neon.c
	libavcodec/avcodec.h
	libavcodec/h264pred.c
	libavcodec/version.h
	libavcodec/vp8.c
	libavcodec/vp8.h
	libavcodec/vp8data.h
	libavcodec/vp8dsp.c
	libavcodec/vp8dsp.h
	libavcodec/x86/h264_intrapred_init.c
	libavcodec/x86/vp8dsp_init.c

See: 89f2f5dbd7 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 14:46:10 +02:00
Janne Grunau
f37815b1d5 arm: asm decode_block_coeffs_internal is vp8 specific
Unbreaks compilation on arm due to conflicting types for
'ff_decode_block_coeffs_armv6'.
2014-04-04 10:39:29 +02:00
James Darnley
16509d3a28 log: allow color highlighting in Cygwin's mintty
Configure will detect the availability of the Windows' console functions and set
HAVE_SETCONSOLETEXTATTRIBUTE.  Meaning av_log will use those functions to
control colours.  When ffmpeg is run in Cygwin's mintty terminal emulator it
will not use colour highlighting in this case.

Mintty responds to the usual escape code colours (it even supports 256 colours).
Windows' cmd.exe does not.  Fortunately it seems that Cygwin's emulation layer
now translates the basic 16 colours into Windows' Console command functions.

That means that we can have av_log use the standard colour commands and let
ffmpeg print colours in both mintty and cmd.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 04:20:14 +02:00
Vittorio Giovara
287432430c fate: add a VP7 test 2014-04-04 04:00:11 +02:00
Peter Ross
ac4b32df71 On2 VP7 decoder
Further performance improvements and security fixes by
Vittorio Giovara, Luca Barbato and Diego Biurrun.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-04 04:00:11 +02:00
Michael Niedermayer
634636eb5a Merge remote-tracking branch 'qatar/master'
* qatar/master: (31 commits)
  riff: Add an additional AAC TwoCC
  riff: support 0xa100 TwoCC for G723_1
  riff: add 0x594a TwoCC for Xan DPCM
  riff: add 0x64 to g726
  riff: add G723_1 wav tag
  riff: map 0x0038 to amrnb
  riff: Support FLIC FourCC
  riff: add escape130 FourCC
  riff: support 'aas4' FourCC
  riff: add "YUV8" FourCC
  riff: Add "S263" FourCC
  riff: Support XMPG as mpeg1
  riff: support BW10 as mpeg1
  riff: Add SLDV FourCC for dvvideo
  riff: Support NTSC forward dvcpro videos
  riff: add dvis/pdvc FourCCs
  riff: add "GXVE" FourCC for WMV2
  riff: add PLV1 fourcc to mpeg4
  riff: Support decoding ASP variant from QNAP Systems
  riff: add "SM4V" FourCC
  ...

Conflicts:
	libavformat/riff.c

See: various commits, all the merged changes where in ffmpeg already

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 02:54:53 +02:00
Michael Niedermayer
1946ad4d8c Merge commit '121b5b7e0476d22408d748b914799b7c00acc3a4'
* commit '121b5b7e0476d22408d748b914799b7c00acc3a4':
  isom: add some BOXX tags
  isom: add 'flic' tag
  isom: add 'm1v ' tag

Conflicts:
	libavformat/isom.c

See: ca8623e1a5
See: 8a3f976498
See: fca62f0500
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 02:44:56 +02:00
Michael Niedermayer
069e462beb Merge commit 'ad8f736b7404503d8f5164f4879175a2258dd64b'
* commit 'ad8f736b7404503d8f5164f4879175a2258dd64b':
  mxf: Remove typo

also See: [FFmpeg-devel] [PATCH 3/3] lavf/mxfdec: delete trailing semi-colon

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 02:18:32 +02:00
Michael Niedermayer
a692ff93ef Merge commit '9464b69da6b373d1eeb6b3d269ad029d9647b498'
* commit '9464b69da6b373d1eeb6b3d269ad029d9647b498':
  log: Unbreak windows support

Conflicts:
	libavutil/log.c

No change as we didnt use print_256color() in our implementation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 02:09:20 +02:00
James Darnley
7307a7fd93 configure: check and use -Wempty-body
Would have shown the trailing semi-colon in lavu/log.c that broke detection of
256 colour capable terminals.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-04 01:37:17 +02:00
Carl Eugen Hoyos
ce58ead40d riff: Add an additional AAC TwoCC
Mentioned on http://msdn.microsoft.com/en-us/library/dd341376%28prot.20%29.aspx
2014-04-04 01:29:29 +02:00
Piotr Bandurski
1e8c4fb8fc riff: support 0xa100 TwoCC for G723_1
Sample-Id: 4790b7f1c44f98e35f3b806468fa615f5930a5b3.wav
2014-04-04 01:29:29 +02:00
Piotr Bandurski
00ccdcd88c riff: add 0x594a TwoCC for Xan DPCM
Sample-Id: crusader-no-regret.avi
2014-04-04 01:29:29 +02:00
Compn
7b600ea0da riff: add 0x64 to g726
Sample-Id: g726-test1.wav
2014-04-04 01:29:28 +02:00
Piotr Bandurski
b7a12ab95b riff: add G723_1 wav tag 2014-04-04 01:29:28 +02:00
Compn
10a14bd574 riff: map 0x0038 to amrnb
Sample-Id: 40709.avi
2014-04-04 01:29:28 +02:00
Paul B Mahol
228af18a98 riff: Support FLIC FourCC 2014-04-04 01:29:28 +02:00
Michael Niedermayer
fb6c21fa8c riff: add escape130 FourCC 2014-04-04 01:29:27 +02:00
Piotr Bandurski
ae58466994 riff: support 'aas4' FourCC 2014-04-04 01:29:27 +02:00
Piotr Bandurski
7100f3c07d riff: add "YUV8" FourCC
Sample-Id: MAILTEST.AVI
2014-04-04 01:29:27 +02:00
Piotr Bandurski
c9787f034c riff: Add "S263" FourCC 2014-04-04 01:29:27 +02:00
Michael Niedermayer
9ff6429b07 riff: Support XMPG as mpeg1 2014-04-04 01:29:26 +02:00
Michael Niedermayer
771cb3e592 riff: support BW10 as mpeg1 2014-04-04 01:29:26 +02:00
Piotr Bandurski
eaec09a575 riff: Add SLDV FourCC for dvvideo 2014-04-04 01:29:25 +02:00
Carl Eugen Hoyos
a1c58b3acd riff: Support NTSC forward dvcpro videos
PAL looks incorrect.
2014-04-04 01:29:25 +02:00
Piotr Bandurski
6aa7cbd58c riff: add dvis/pdvc FourCCs 2014-04-04 01:29:24 +02:00
Piotr Bandurski
adf0ff0000 riff: add "GXVE" FourCC for WMV2
Sample-Id: vivd.avi
2014-04-04 01:29:24 +02:00
Compn
96dd7b2332 riff: add PLV1 fourcc to mpeg4
Sample-Id: york-water-meteor.avi
2014-04-04 01:29:24 +02:00
Carl Eugen Hoyos
f5f18aecef riff: Support decoding ASP variant from QNAP Systems 2014-04-04 01:29:23 +02:00
Piotr Bandurski
ade32b4a84 riff: add "SM4V" FourCC 2014-04-04 01:29:23 +02:00
Compn
684e43c5e3 riff: add DYM4 mpeg4 fourcc 2014-04-04 01:29:23 +02:00
Piotr Bandurski
32b0942c99 riff: add DM4V FourCC 2014-04-04 01:29:23 +02:00
Compn
fa6a021121 riff: add G264 to mpeg4, only decodes keyframes 2014-04-04 01:29:22 +02:00
Piotr Bandurski
9ab2d5a33c riff: add "lsvm" FourCC for H263. 2014-04-04 01:29:22 +02:00
Carl Eugen Hoyos
915524e541 riff: Support H.264 fourcc UMSV 2014-04-04 01:29:22 +02:00
Carl Eugen Hoyos
dcb6e145eb riff: add FourCC for GeoVision cameras 2014-04-04 01:29:22 +02:00
Carl Eugen Hoyos
9d9d319a3c riff: Add V264 for H264 in CCTV recordings 2014-04-04 01:29:21 +02:00
Carl Eugen Hoyos
51ace0fb92 riff: add H264 from QNAP Systems 2014-04-04 01:29:21 +02:00
Piotr Bandurski
a52a1bc912 riff: add SMV2 FourCC for H264
Sample-Id: smv2.avi
2014-04-04 01:29:21 +02:00
Clément Bœsch
235bf1dab5 riff: add ISMP/timecode tag 2014-04-04 00:28:28 +02:00
James Almer
fa570a5548 riff: Add ITRK tag
Some players, like foobar2000 or modern versions of WMP, create WAV
files using the ITRK tag for track instead of IPRT
2014-04-04 00:28:28 +02:00
Piotr Bandurski
121b5b7e04 isom: add some BOXX tags 2014-04-04 00:20:12 +02:00
Reimar Döffinger
b0a54516eb isom: add 'flic' tag 2014-04-04 00:20:12 +02:00
Carl Eugen Hoyos
5a85cf0fc2 isom: add 'm1v ' tag
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-04 00:20:10 +02:00
Michael Niedermayer
8710ee11d7 avcodec/h264: clear cur_pic structure instead of duplicating it in ff_h264_update_thread_context()
Fixes crash

Found-by: iive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 23:57:32 +02:00
Luca Barbato
ad8f736b74 mxf: Remove typo
Reported-By: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-03 23:45:05 +02:00
Luca Barbato
9464b69da6 log: Unbreak windows support
Add the missing define.
2014-04-03 23:43:47 +02:00
Michael Niedermayer
609ef89703 avutil/log: remove stray ;
regression since  5a18b215f7

Reported-by: J_Darnley
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 22:59:39 +02:00
Michael Niedermayer
49e040e868 avutil/log: fix negative log levels
These where broken by 7763118cae

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 22:44:04 +02:00
Michael Niedermayer
1f8a6bef78 avutil/log: add code to test av_log()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 22:38:30 +02:00
Michael Niedermayer
5a18b215f7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  log: Do not assume the TERM variable is always set

Conflicts:
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 22:18:26 +02:00
Michael Niedermayer
d9ac00ca7a Merge commit '42ba1c51d9e843135772a3b9e5cf036a37b28bdb'
* commit '42ba1c51d9e843135772a3b9e5cf036a37b28bdb':
  log: Document AV_LOG_C usage

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 21:07:32 +02:00
Michael Niedermayer
002feaf6e2 Merge commit '28b9ac4e48f3405a82e8e87ead336188215cf1e6'
* commit '28b9ac4e48f3405a82e8e87ead336188215cf1e6':
  log: Remove undefined behaviour

Conflicts:
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 20:53:30 +02:00
Michael Niedermayer
c16e006181 Merge commit '7763118cae4eb468b032dbd29af15a011c2c233b'
* commit '7763118cae4eb468b032dbd29af15a011c2c233b':
  log: Support for 256color terminals

Conflicts:
	doc/APIchanges
	libavutil/log.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 20:44:14 +02:00
Luca Barbato
061e340c05 log: Factorize check_color_terminal() out 2014-04-03 20:04:34 +02:00
Michael Niedermayer
4169d8f601 doc/ffmpeg: restore ascii arrows in Simple filtergraphs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 19:25:15 +02:00
Michael Niedermayer
0768fee964 Merge commit '006c253346d90f4abaf69d78083c8ba031628598'
* commit '006c253346d90f4abaf69d78083c8ba031628598':
  doc: Fit the graph in 80 cols

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 19:25:03 +02:00
Lukasz Marek
8c27292373 lavu/opt: dont crash on freeing NULL AVOptionRanges
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 19:05:19 +02:00
Luca Barbato
4ede1862dc log: Do not assume the TERM variable is always set 2014-04-03 18:43:25 +02:00
Luca Barbato
42ba1c51d9 log: Document AV_LOG_C usage
And move outside the wrong doxygen group.
2014-04-03 18:43:24 +02:00
Luca Barbato
28b9ac4e48 log: Remove undefined behaviour 2014-04-03 18:43:24 +02:00
Michael Niedermayer
09656707cc Merge commit 'lukaszmluki/master^'
* commit 'lukaszmluki/master^':
  lavu/opt: extend AVOptionRange by extra values

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 17:03:44 +02:00
Luca Barbato
7763118cae log: Support for 256color terminals
And provide extended coloring capabilities for debugging.
The default colors do not change in 256 more to keep
supporting people using Black on White, White on Black and
Solarized terminals.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-03 15:54:49 +02:00
Roman Fietze
f5d718ac7e avfilter.h, buffer.c: use const src pointer in avfilter_copy_buffer_ref_props
Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 13:49:13 +02:00
Roman Fietze
74aeb6b584 libavformat/utils.c: av_pkt_dump_log2: use const pointers
Use const pointers to AVPacket and AVStream.

Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 13:31:13 +02:00
Lukasz Marek
eaed4da96a lavu/opt: extend AVOptionRange by extra values
AVOptionRange is not flexible enough to store AV_OPT_TYPE_IMAGE_SIZE
ranges. Current implementation can only store pixel count.
This patch aims to keep backward compatibility and extend
AVOptionRange with possibility to store width/height ranges.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-04-03 13:28:13 +02:00
Roman Fietze
e12a73246d dict: const pointers to dictionary where possible
This avoids temporaries or ugly casting in the calling code where
const dictionaries are used. Esp. helpful when writing C++ wrappers
for an AVDictionary having const member functions and CTORs with const
references.

Signed-off-by: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 13:13:25 +02:00
Luca Barbato
006c253346 doc: Fit the graph in 80 cols
Some man pagers do not reflow the text/graphs on resize
and the graphs did not fit the traditional 80cols due
the pod2man excessive indent.
2014-04-03 11:49:30 +02:00
Michael Niedermayer
fd2bcfc4d6 avcodec/jpeglsdec: fix palette parsing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 03:26:27 +02:00
Michael Niedermayer
a025815373 MAINTAINER: Add CC for dshow maintainer
Requested-by: Roger Pack
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 01:41:23 +02:00
Michael Niedermayer
8a0c16448c MAINTAINERS: add gdi maintainer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 01:41:08 +02:00
Calvin Walton
08909fb56b Add Win32 GDI-based screen grabbing
Based on original code by Christophe Gisquet in 2010, updated to work
with current ffmpeg APIs.

Supports grabbing a single window or an area of the screen, including
support for multiple monitors (Windows does funky stuff with negative
coordinates here).

I've moved most of the configuration to AVOptions; the input file name
is now only the string "desktop", or "title=<windowname>" to select a
single window. The AVOptions are the same as x11grab where possible.

Code has been added to support a "show_region" mode, like x11grab, which
will draw a rectangle on the screen around the area being captured.

Instead of duplicating code for paletted image handling, I make use of
the GDI API's ability to output DIB (BMP) images, which can be run
through ffmpeg's existing BMP decoder.

Signed-off-by: Calvin Walton <calvin.walton@kepstin.ca>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 00:41:45 +02:00
Michael Niedermayer
f359bac27c avformat/hlsenc: remove unneeded l prefix from %lf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 00:27:53 +02:00
Senthilnathan M
96b8e7a9cd hlsenc: added floating point time support.
Necessary for HLS version 3 and above.  Fixes ticket #3505.

Signed-off-by: Senthilnathan M <senthil.codr@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 23:06:21 +02:00
Michael Niedermayer
4754d4b372 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Write aspect ratio when muxing gif.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 22:46:57 +02:00
Thilo Borgmann
4654774aaf lavd/qtkit: Support choosing the input device by index or by name.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 22:40:32 +02:00
James Almer
23d1c75efa lavc/kbdwin: add missing stdint.h include
Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 20:01:37 +02:00
Michael Niedermayer
37f69cd93e swscale: add full bgra64 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 19:44:08 +02:00
Michael Niedermayer
cc8b45c0ce avformat/avidec: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 19:04:58 +02:00
Michael Niedermayer
0652ffc69a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_settb: rename to settb

Conflicts:
	libavfilter/Makefile
	libavfilter/f_settb.c
	libavfilter/settb.c
	libavfilter/vf_settb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 18:25:15 +02:00
Michael Niedermayer
91a0d3af65 Merge commit '9d599e3f6e61438772d8cddd6c9b7c495251f51e'
* commit '9d599e3f6e61438772d8cddd6c9b7c495251f51e':
  avi: Improve non-interleaved detection

Conflicts:
	libavformat/avidec.c

See: 8df774be88 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 18:03:02 +02:00
Michael Niedermayer
3428a9b8d5 Merge commit '0ca0924c10d9617a5793964bf79655424ef32b68'
* commit '0ca0924c10d9617a5793964bf79655424ef32b68':
  swscale: add endianness conversion for AV_PIX_FMT_BGRA64|RGBA64

Conflicts:
	libswscale/swscale_unscaled.c
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 17:46:19 +02:00
Katerina Barone-Adesi
b33c64e4c2 vf_settb: rename to settb
An audio version of settb (asettb) will be added to this file.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-02 12:14:10 +02:00
Michael Niedermayer
9d599e3f6e avi: Improve non-interleaved detection
Additional fixes by Nigel Touati-Evans <nigel.touatievans@gmail.com>.

Check the index for streams with a time drift of 2s or a buffer drift
of 64MB.

Bug-Id: 666
CC: libav-stable@libav.org
Sample-Id: yet-another-broken-interleaved-avi.avi

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-02 12:11:31 +02:00
Janne Grunau
0ca0924c10 swscale: add endianness conversion for AV_PIX_FMT_BGRA64|RGBA64 2014-04-02 11:39:26 +02:00
Carl Eugen Hoyos
45782a98b6 Write aspect ratio when muxing gif. 2014-04-02 09:49:30 +02:00
Clément Bœsch
cecb6d6f83 Changelog: remove unecessary "added" 2014-04-02 07:45:06 +02:00
Michael Niedermayer
c00f368caa avcodec/ac3dec: use av_freep() for saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 04:38:16 +02:00
Michael Niedermayer
27f77a372b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1dec: fix a possible unitialized variable warning

Conflicts:
	libavcodec/vc1dec.c

No change as the variables where not uninitialized in ffmpeg
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 03:25:29 +02:00
Michael Niedermayer
61b3b3315c Merge commit 'f1c4a54f6ecbf77a29aaaee09ca70c5468d0c509'
* commit 'f1c4a54f6ecbf77a29aaaee09ca70c5468d0c509':
  lavf: add supported extension to avi and mov demuxers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 03:15:19 +02:00
Michael Niedermayer
45ba9d8545 Merge commit 'cba4e6062a02d5bf684e13a770be88aa1fec717e'
* commit 'cba4e6062a02d5bf684e13a770be88aa1fec717e':
  More correct printf format specifiers

Conflicts:
	libavcodec/h264_ps.c
	libavcodec/h264_refs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 02:54:09 +02:00
Michael Niedermayer
119cf2a44b Merge commit '80035db88c1f7cc23110c7472a2b13a4d2d8b73e'
* commit '80035db88c1f7cc23110c7472a2b13a4d2d8b73e':
  lavu: add missing formats to av_pix_fmt_swap_endianness

Conflicts:
	libavutil/pixdesc.c

No change as our av_pix_fmt_swap_endianness() does not need formats to be listed individually

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 02:44:00 +02:00
Michael Niedermayer
e03f093318 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  mpeg12enc: always set closed gop flag on the first gop
  mpeg12enc: always write closed gops for intra only outputs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 00:32:34 +02:00
Vittorio Giovara
c611148340 vc1dec: fix a possible unitialized variable warning 2014-04-02 00:28:05 +02:00
Marc-Antoine Arnaud
f1c4a54f6e lavf: add supported extension to avi and mov demuxers 2014-04-02 00:27:53 +02:00
Diego Biurrun
cba4e6062a More correct printf format specifiers
This avoids compiler warnings about argument and specifier type mismatch.
2014-04-02 00:27:22 +02:00
Janne Grunau
80035db88c lavu: add missing formats to av_pix_fmt_swap_endianness 2014-04-02 00:27:22 +02:00
Michael Niedermayer
d063bb63cb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  VP3: K&R formatting cosmetics

Conflicts:
	libavcodec/vp3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 00:25:21 +02:00
Vittorio Giovara
d2264740e6 VP3: K&R formatting cosmetics 2014-04-01 23:47:25 +02:00
Michael Niedermayer
909757fabd Merge commit '66d04c068a30751750818dcfbb6555ab74eb3f6d'
* commit '66d04c068a30751750818dcfbb6555ab74eb3f6d':
  fate: Explicitly use gray16le in fate-sgi-gray16

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 21:00:26 +02:00
Marton Balint
a0cf87780d mpeg12enc: always set closed gop flag on the first gop
Improves compatibility with XDCAM HD formats. It has been set for a long time
in ffmbc.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-04-01 20:52:37 +02:00
Marton Balint
51c61e64cb mpeg12enc: always write closed gops for intra only outputs
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-04-01 20:52:09 +02:00
Michael Niedermayer
3b37f22861 avcodec/ac3dec_fixed: add missingAVprefix to CODEC_ID
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
2014-04-01 19:58:51 +02:00
Michael Niedermayer
91b105ce5b avcodec/ac3dec: avoid #if, use if() instead, its cleaner and shorter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
2014-04-01 19:58:47 +02:00
Michael Niedermayer
b219142921 avcodec/ac3: rename identifier used to select the fixed point variant
the CONFIG_ prefix is used by configure, using it for other things
is potentially confusing to the reader

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
2014-04-01 19:58:31 +02:00
Nedeljko Babic
696e34a6e1 libavcodec: Implementation of AC3 fixedpoint decoder
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 19:01:57 +02:00
Michael Niedermayer
d506deaeaa avutil/fixed_dsp: remove redundant cast
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 17:57:30 +02:00
Nedeljko Babic
284cfc7180 libavutil: Add fixed_dsp
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 17:36:33 +02:00
Michael Niedermayer
254f653b24 avcodec/jpeglsdec: add PAL8 support
Fixes Ticket3478

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 13:43:44 +02:00
Martin Storsjö
66d04c068a fate: Explicitly use gray16le in fate-sgi-gray16
This fixes the test on big endian.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-01 12:05:15 +03:00
Michael Niedermayer
879072018f avcodec/exr: use av_freep() for saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 05:18:26 +02:00
Michael Niedermayer
9595f36700 Makefile: fix out of tree builds of .m files
should fix fate failures on darwin

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 05:12:39 +02:00
Michael Niedermayer
6537b89843 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add SGI tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 04:52:20 +02:00
Michael Niedermayer
767b1daf4b Merge commit 'd613091f8858d87789916e2bd7a84ea3144077d4'
* commit 'd613091f8858d87789916e2bd7a84ea3144077d4':
  sgi: decode 16bit RLE images

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 04:19:27 +02:00
Michael Niedermayer
4ebfcd62af Merge commit '6c1df1f2287401b6022773e382ebc3a3bfed0b38'
* commit '6c1df1f2287401b6022773e382ebc3a3bfed0b38':
  sgi: encode images with 4 channels at 8 and 16 bits

Conflicts:
	Changelog
	libavcodec/sgienc.c

See: 21a1006109
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 04:13:53 +02:00
Michael Niedermayer
23290c86bf Merge commit 'f8dea10d3f09376894613d0266c34d1a16ac735f'
* commit 'f8dea10d3f09376894613d0266c34d1a16ac735f':
  sgi: decode images with 4 channels at 8 and 16 bits

Conflicts:
	Changelog

See: 0b1f20e23c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 04:03:31 +02:00
Michael Niedermayer
5628b9f5fb Merge commit 'ab7c64624a1254d509b71c2a4945336567e93845'
* commit 'ab7c64624a1254d509b71c2a4945336567e93845':
  sgi: remove redundant argument from read_uncompressed_sgi()

Conflicts:
	libavcodec/sgidec.c

See: 0f65693529
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:55:45 +02:00
Michael Niedermayer
5b03caf949 Merge commit '6d9ccee4519f41155c88655c77bfb1ef085797fd'
* commit '6d9ccee4519f41155c88655c77bfb1ef085797fd':
  sgi: set the row boundary to the correct value

Conflicts:
	libavcodec/sgidec.c

See: 39c56ef921
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:51:52 +02:00
Michael Niedermayer
013aa222c6 Merge commit '0279d1d0946a854aa08919abd05b7f2da433823e'
* commit '0279d1d0946a854aa08919abd05b7f2da433823e':
  sgi: fix end of line boundary detection

See: 6fd7bf7b03
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:42:47 +02:00
Michael Niedermayer
b3fa78cea1 Merge commit 'e7cd53bf662a93330810981f1d057bdf2ead669e'
* commit 'e7cd53bf662a93330810981f1d057bdf2ead669e':
  sgi: check maximum supported resolution

Conflicts:
	libavcodec/sgienc.c

See: 59352cc219
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:37:27 +02:00
Michael Niedermayer
be4ae3f532 Merge commit 'a7dbfcf6cb6ab8a8981d74332fd02fb90360d22f'
* commit 'a7dbfcf6cb6ab8a8981d74332fd02fb90360d22f':
  sgi: K&R formatting cosmetics

Conflicts:
	libavcodec/sgidec.c
	libavcodec/sgienc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:29:29 +02:00
Michael Niedermayer
0054bbd664 Merge commit 'ca36aa9e6b8f2fed15478245ad533fc594a35c37'
* commit 'ca36aa9e6b8f2fed15478245ad533fc594a35c37':
  codec_desc: set lossless attribute for SGI and DPX

Conflicts:
	libavcodec/codec_desc.c

See: 5b802cf567
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:27:10 +02:00
Michael Niedermayer
42138f6357 Merge commit '06688e96fb9577bc7466a380bf7a14fa745208db'
* commit '06688e96fb9577bc7466a380bf7a14fa745208db':
  fate: add exr tests

Conflicts:
	tests/fate/image.mak

See: 87888c043d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:24:50 +02:00
Michael Niedermayer
95582b5ccc Merge commit '38389058c3308758c6365abd0f6b45c5e62bb90b'
* commit '38389058c3308758c6365abd0f6b45c5e62bb90b':
  OpenEXR decoder

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/avcodec.h
	libavcodec/exr.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 03:16:56 +02:00
Michael Niedermayer
9e3c8f61fe Merge commit '678e455f1dc09265464b13d936d9fda62bc2bf43'
* commit '678e455f1dc09265464b13d936d9fda62bc2bf43':
  dxva2: Directly use AVFrames

Conflicts:
	libavcodec/dxva2_h264.c

See: 29be9b5301
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 02:08:19 +02:00
Vittorio Giovara
55c6e59906 fate: add SGI tests 2014-04-01 01:19:04 +02:00
Vittorio Giovara
d613091f88 sgi: decode 16bit RLE images 2014-04-01 01:19:03 +02:00
Vittorio Giovara
6c1df1f228 sgi: encode images with 4 channels at 8 and 16 bits 2014-04-01 01:19:03 +02:00
Carl Eugen Hoyos
f8dea10d3f sgi: decode images with 4 channels at 8 and 16 bits 2014-04-01 01:19:03 +02:00
Paul B Mahol
ab7c64624a sgi: remove redundant argument from read_uncompressed_sgi() 2014-04-01 01:19:03 +02:00
Michael Niedermayer
6d9ccee451 sgi: set the row boundary to the correct value 2014-04-01 01:18:55 +02:00
Michael Niedermayer
d56c373391 avcodec/mjpegdec: fix cmyk 420 with adobe_transform == 2
Fixes Ticket3516

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 01:14:26 +02:00
Michael Niedermayer
0279d1d094 sgi: fix end of line boundary detection 2014-04-01 01:13:18 +02:00
Piotr Bandurski
e7cd53bf66 sgi: check maximum supported resolution
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:18 +02:00
Vittorio Giovara
a7dbfcf6cb sgi: K&R formatting cosmetics 2014-04-01 01:13:18 +02:00
Paul B Mahol
ca36aa9e6b codec_desc: set lossless attribute for SGI and DPX 2014-04-01 01:13:17 +02:00
Paul B Mahol
06688e96fb fate: add exr tests
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:17 +02:00
Jimmy Christensen
38389058c3 OpenEXR decoder
Additional fixes and enhancements by Vittorio Giovara, Gonzalo Garramuno,
Nicolas George, Paul B Mahol and Michael Niedermayer.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:09 +02:00
Michael Niedermayer
678e455f1d dxva2: Directly use AVFrames
The assumption of (MPEG) Picture and H264Picture layout matching might
not hold true in the future.

Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
2014-04-01 00:10:15 +02:00
Michael Niedermayer
1f361124d9 avformat/img2dec: zero probe buffer
Fixes use of uninitialized memory
Fixes valgrind failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 23:47:29 +02:00
rogerdpack
0cc8a62a78 dshow: fixup some COM objects, based on patches from Don Moir
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 23:11:35 +02:00
Thilo Borgmann
d5c0036d4a lavd/qtkit: Fix non-constant initializer element for some clang compilers.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 22:21:07 +02:00
Michael Niedermayer
9d013fe840 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mov: Unbreak sbtl writing

Conflicts:
	libavformat/movenc.c

See: 8a9d0a1561
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 22:08:11 +02:00
Michael Niedermayer
0f714abb49 Merge commit '654c7446a806c5dc8ec7800874c49a4c1ba2ce80'
* commit '654c7446a806c5dc8ec7800874c49a4c1ba2ce80':
  vc1dec: improve hwaccel #ifdefs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 22:04:25 +02:00
Michael Niedermayer
c43ebd94e4 Merge commit '33259118155764ce27a3433894659dda1d148b5f'
* commit '33259118155764ce27a3433894659dda1d148b5f':
  h263: improve hwaccel #ifdefs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 21:50:24 +02:00
Michael Niedermayer
4ea333d7de Merge commit 'c042cbc3a68d09a20cfd75fb4a4eff0534253081'
* commit 'c042cbc3a68d09a20cfd75fb4a4eff0534253081':
  libx265: Use the repeat headers flag when not using global headers

See: 1b28d9b357
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 21:49:02 +02:00
Michael Niedermayer
4a6dce9f9f Merge commit 'cd60631752cafe106b406f00966ac0323ad2ce1f'
* commit 'cd60631752cafe106b406f00966ac0323ad2ce1f':
  libx265: Bump version requirement

See: 32998ee957
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 20:26:48 +02:00
Michael Niedermayer
f94371b1db mov: Unbreak sbtl writing 2014-03-31 19:31:41 +02:00
Rémi Denis-Courmont
654c7446a8 vc1dec: improve hwaccel #ifdefs 2014-03-31 17:52:42 +02:00
Rémi Denis-Courmont
3325911815 h263: improve hwaccel #ifdefs 2014-03-31 17:52:38 +02:00
Michael Niedermayer
559c8b9ee9 avcodec/mjpegdec: support subsampled 420 CMYK
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 17:47:04 +02:00
Michael Niedermayer
798490812a avcodec/mjpegdec: upgrade upscale_v to support multiple planes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 17:47:04 +02:00
Michael Niedermayer
f9059ce794 avcodec/mjpegdec: upgrade upscale_h to support multiple planes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 17:47:04 +02:00
Marcus Gustafsson
c042cbc3a6 libx265: Use the repeat headers flag when not using global headers
This allows proper muxing and seeking in things like MPEG-TS, by
placing headers by random access points.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 16:24:05 +01:00
Derek Buitenhuis
cd60631752 libx265: Bump version requirement
Build 13 has a crucial fix which makes x265_encode_headers work
as its always been documented.

Previous to this, the check was incorrect.

Also allows for use of the repeat headers flag.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 16:24:05 +01:00
Marcus Gustafsson
1b28d9b357 libx265: Use the repeat headers flag when not using global headers
This allows proper muxing and seeking in things like MPEG-TS, by
placing headers by random access points.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 13:13:46 +01:00
Derek Buitenhuis
32998ee957 libx265: Bump version requirement
Build 13 has a crucial fix which makes x265_encode_headers work
as its always been documented.

Previous to this, the check was incorrect.

Also allows for use of the repeat headers flag.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 13:13:45 +01:00
Peter Ross
bf7d93e157 avcodec/adpcm: also squelch 'mismatch in coded sample count' warning for AV_CODEC_ID_ADPCM_EA_R1
AV_CODEC_ID_ADPCM_EA_R1/R2/R3 all use an internal offset. For some
samples there is padding between the offset table and ADPCM data.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 13:18:19 +02:00
Thilo Borgmann
a9ccec5270 configure: Remove invalid option --disable-qtkit.
QTKit can/should be disabled by "--disable-indev=qtkit".

Found by Justin Derrick.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 13:14:39 +02:00
Michael Niedermayer
e818ee090a avfilter/vf_pullup: fix gray8
Fixes segfault
Fixes Ticket3469

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 03:22:20 +02:00
Michael Niedermayer
75621cdf5d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libmp3lame: add ABR support

Conflicts:
	libavcodec/libmp3lame.c
	libavcodec/version.h

See: d3211cfaed
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 02:23:26 +02:00
Michael Niedermayer
e4fc7e3d4d Merge commit '292dbe5e8a95d38c1324b0432fbaca67f8fe4b73'
* commit '292dbe5e8a95d38c1324b0432fbaca67f8fe4b73':
  libmp3lame: add comments about CBR/VBR modes

Conflicts:
	libavcodec/libmp3lame.c

See: 07e7bc9cbd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 02:18:24 +02:00
Michael Niedermayer
801b94a782 Merge commit '729d821fd864a0568f4068e64d3a70faa23b9309'
* commit '729d821fd864a0568f4068e64d3a70faa23b9309':
  libmp3lame: allow joint stereo to be disabled

Conflicts:
	libavcodec/libmp3lame.c
	libavcodec/version.h

See: 1de11a7cab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 02:16:41 +02:00
Michael Niedermayer
46ff8108f6 Merge commit '12789d96361ed8e9804bfbb9db31ea4110e75c58'
* commit '12789d96361ed8e9804bfbb9db31ea4110e75c58':
  mov: call mov_rewrite_dvd_sub_extradata() after parsing dimensions from tkhd

Conflicts:
	libavformat/isom.c

See: e21235f9b9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 02:10:01 +02:00
Michael Niedermayer
1ffbaa88c9 Merge commit 'fce28c3c6d603b7f42a5dbe36bf240d0470469c8'
* commit 'fce28c3c6d603b7f42a5dbe36bf240d0470469c8':
  mov: fill in subtitle dimensions after parsing tkhd

See: 8ba432bc56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 01:58:14 +02:00
Michael Niedermayer
20bc5924a0 Merge commit '96138e8c8da4b9397e627c934a33c22988d1192b'
* commit '96138e8c8da4b9397e627c934a33c22988d1192b':
  isom: only write the size if its non zero in mov_rewrite_dvd_sub_extradata()

Conflicts:
	libavformat/isom.c

See: b6ad5893ce
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 01:55:12 +02:00
Michael Niedermayer
36d37edf01 Merge commit '9bd4a9f4eec8c8843b54126253bb9d77af95bbb3'
* commit '9bd4a9f4eec8c8843b54126253bb9d77af95bbb3':
  isom: Simplify mov_rewrite_dvd_sub_extradata()

Conflicts:
	libavformat/isom.c

See: f6f3c85c0e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 01:44:13 +02:00
Michael Niedermayer
8e8276e0bc Merge commit '3e4e2142d246699a1a3a0045ba7124b18bc34d7a'
* commit '3e4e2142d246699a1a3a0045ba7124b18bc34d7a':
  fate: Convert the paletted output in the brenderpix tests to rgb24

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-31 01:32:02 +02:00
Timothy Gu
09fda6bb50 libmp3lame: add ABR support 2014-03-31 01:11:16 +02:00
Timothy Gu
292dbe5e8a libmp3lame: add comments about CBR/VBR modes 2014-03-31 01:11:16 +02:00
Paul B Mahol
729d821fd8 libmp3lame: allow joint stereo to be disabled 2014-03-31 01:11:16 +02:00
Michael Niedermayer
12789d9636 mov: call mov_rewrite_dvd_sub_extradata() after parsing dimensions from tkhd
This also moves mov_rewrite_dvd_sub_extradata() to mov.c.

Sample-Id: NeroRecodeSample.mp4
2014-03-31 01:08:23 +02:00
Michael Niedermayer
fce28c3c6d mov: fill in subtitle dimensions after parsing tkhd
Sample-Id: NeroRecodeSample.mp4
2014-03-31 01:08:18 +02:00
Michael Niedermayer
96138e8c8d isom: only write the size if its non zero in mov_rewrite_dvd_sub_extradata()
Sample-Id: NeroRecodeSample.mp4
2014-03-31 01:08:12 +02:00
Michael Niedermayer
9bd4a9f4ee isom: Simplify mov_rewrite_dvd_sub_extradata()
This avoids the 2nd buffer and fixes the palette truncated check
2014-03-31 01:05:11 +02:00
Martin Storsjö
3e4e2142d2 fate: Convert the paletted output in the brenderpix tests to rgb24
This makes the output consistent on big-endian systems.
2014-03-31 01:04:05 +02:00
Matt Oliver
0f2588d7e5 Use intel compliant CDQ instead of CLTD in inline asm.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 23:14:36 +02:00
Thilo Borgmann
6d9bdd9d8b doc/indevs: Fix example for QTKit usage.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 21:29:25 +02:00
Michael Niedermayer
9c77e57393 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: make the ASCII flow charts narrower to fit onto TTY

Conflicts:
	doc/ffmpeg.texi

See: 8fe1076094
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 21:20:58 +02:00
Michael Niedermayer
f22d9b1e0b Merge commit '68e95ab81be1aa3f47ab148dceb8711ef5f4212d'
* commit '68e95ab81be1aa3f47ab148dceb8711ef5f4212d':
  dnxhdenc: return meaningful return codes

Conflicts:
	libavcodec/dnxhdenc.c

See: b9bedb0b28
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 21:11:01 +02:00
Michael Niedermayer
ce0ec108cd Merge commit '9e4e35b4d7c43a908944183a58aa389a23116fd6'
* commit '9e4e35b4d7c43a908944183a58aa389a23116fd6':
  avconv_opt: fix avio_open2() return code check

See: 774239be71
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 21:00:14 +02:00
Vadim Kalinsky
234f0bcb0c lavd: Add QTKit input device.
Signed-off-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 20:45:07 +02:00
Timothy Gu
3a5a965493 avconv: make the ASCII flow charts narrower to fit onto TTY
These charts in man page are currently destroyed.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-30 18:02:14 +02:00
Peter Ross
92d657b5f1 avformat/wtvenc: advise user when H264 startcode is not present
Fixes ticket #3473.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 16:36:47 +02:00
Peter Ross
e61973db6c avformat/mpegtsenc: move startcode validity check to ff_check_h264_startcode
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 16:36:22 +02:00
Michael Niedermayer
7aa3979b8c avformat/avio: also set generic URL context options
This should have no effect currently as there are no such options yet.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 15:00:03 +02:00
Michael Niedermayer
d9a3501c33 avutil/opt: dont crash on av_opt_set_dict() with NULL
This allows calling the function without the need to check if the
dictionary contains any entries

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 15:00:03 +02:00
Timothy Gu
68e95ab81b dnxhdenc: return meaningful return codes 2014-03-30 14:55:09 +02:00
Timothy Gu
9e4e35b4d7 avconv_opt: fix avio_open2() return code check
avio_open2() only return < 0 when error.
2014-03-30 14:55:08 +02:00
Peter Ross
31ac3f306c avformat/wtvenc: pad judiciously when writing mpeg2 extradata
Padding rule described here http://msdn.microsoft.com/en-us/library/windows/desktop/dd390707(v=vs.85).aspx

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 06:22:54 +02:00
Peter Ross
73a2d16bfa avformat/wtvdec: demux mpeg2 extradata
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 06:22:50 +02:00
Michael Niedermayer
c01ddf845d avformat/replaygain: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 03:23:13 +02:00
Michael Niedermayer
30e159366e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  golomb: Fix the implementation of get_se_golomb_long

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 03:03:28 +02:00
Michael Niedermayer
ae3313e154 Merge commit '53c20f17c78d1d8a0fc2505868f201e69ff59cc5'
* commit '53c20f17c78d1d8a0fc2505868f201e69ff59cc5':
  vp8: K&R formatting cosmetics

Conflicts:
	libavcodec/vp8.c
	libavcodec/vp8.h
	libavcodec/vp8data.h
	libavcodec/vp8dsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-30 01:55:31 +01:00
Martin Storsjö
508a84e672 golomb: Fix the implementation of get_se_golomb_long
This was only used in hevc muxing code so far.

This makes the return values match what get_se_golomb returns for
the same bitstream reader instances.

The logic for producing a signed golomb code out of an unsigned one
was based on the corresponding code in get_se_golomb, which operated
directly on the bitstream reader buffer - not on the equivalent
return value from get_ue_golomb.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-30 00:28:27 +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
Michael Niedermayer
bcd5fd5346 Merge commit 'lukaszmluki/master^'
* commit 'lukaszmluki/master^':
  lavd/pulse_audio_enc: implement get_device_list callback
  lavd/pulse_audio_dec: implement get_device_list callback
  lavd/pulse_audio_common: add device detecting code
  lavu/mem: add av_dynarray_add_nofree function
  lavd/pulse_audio_enc: implement write_uncoded_frame callback
  tools/uncoded_frame: fix audio codec generation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 17:07:26 +01:00
Vittorio Giovara
53c20f17c7 vp8: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-29 16:11:09 +01:00
Michael Niedermayer
8a9d0a1561 avformat/movenc: fix if vs if else
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 15:38:20 +01:00
Michael Niedermayer
b8f5b0713e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  movenc: Add dvd subtitle support

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 15:04:56 +01:00
Michael Niedermayer
d840266633 Merge commit '85698be461c07be10d873dd34348bcfe9ffc56e0'
* commit '85698be461c07be10d873dd34348bcfe9ffc56e0':
  cmdutils: Mark exit_program as av_noreturn

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 14:33:39 +01:00
Lukasz Marek
3937b40e87 lavd/pulse_audio_enc: implement get_device_list callback
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-29 09:54:16 +01:00
Lukasz Marek
255cf03af8 lavd/pulse_audio_dec: implement get_device_list callback
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-29 09:54:09 +01:00
Lukasz Marek
85ed32d2ed lavd/pulse_audio_common: add device detecting code
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-29 09:48:56 +01:00
Lukasz Marek
cd50a44beb lavu/mem: add av_dynarray_add_nofree function
av_dynarray_add_nofree function have similar functionality
as existing av_dynarray_add, but it doesn't deallocate memory
on fails.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-29 09:48:48 +01:00
Lukasz Marek
27256e69ab lavd/pulse_audio_enc: implement write_uncoded_frame callback
Provided implementation doesn't support planar formats yet.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-29 09:26:10 +01:00
Lukasz Marek
fd786bad63 tools/uncoded_frame: fix audio codec generation
Codec id is guessed from uninitialized sample format.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-29 09:25:14 +01:00
Michael Niedermayer
46f72ea507 avcodec/vp7: check buffer size
Fixes overread
Fixes Ticket 3501
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 04:27:00 +01:00
Michael Niedermayer
067ada04d1 avcodec/xbmdec: redesign parser to handle more cases
The new code is more tolerant on the syntax

Fixes decoding of bm1.xbm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 03:50:25 +01:00
Michael Niedermayer
657cee1aef avformat/img2_alias_pix: rewrite probe function
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 00:38:51 +01:00
Michael Niedermayer
2cffdcbdd7 avformat/img2dec: try to read PROBE_BUF_MIN instead of just enough for .pix probing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-29 00:38:51 +01:00
Michael Niedermayer
1c13e1ef36 avformat/img2dec: Use avformat probing interface to identify format if it has not been otherwise identified
This is used only for distinguishing .pix formats for now.
Which is the only case that has image2 demuxers currently

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 23:54:51 +01:00
Michael Niedermayer
075d6c066b avformat: add image2 brender pix demuxer
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 23:54:51 +01:00
Michael Niedermayer
13bcb4de33 avformat: add image2 alias pix demuxer
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 23:54:51 +01:00
Michael Niedermayer
067a9cf81a avformat/img2dec: make image2dec capable to be used from seperate demuxers
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 23:54:51 +01:00
Michael Niedermayer
de96e20be9 avfilter/lavfutils: call av_find_stream_info() before reading various information about the stream
No testcase with unmodified source is known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 17:29:26 +01:00
Michael Niedermayer
2b4543ff69 cmdutils/filter_codec_opts: do not discard all options for CODEC_ID_NONE
This fixes cases where the codec is detect later than the stream creation
No testcase with unmodified source known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 17:29:26 +01:00
John Stebbins
6adf3bc42e movenc: Add dvd subtitle support
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-28 17:15:30 +01:00
Michael Niedermayer
92005c2636 fate/aliaspix: Use standard test sample
This also uses samples with odd resolution which should provide better coverage

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 12:55:54 +01:00
Michael Niedermayer
e1d1001703 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add a bmpparser test

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 12:03:23 +01:00
Michael Niedermayer
a696b0917d Merge commit 'fb5cf145b6bcfa4f83af94398e5560c1132cc410'
* commit 'fb5cf145b6bcfa4f83af94398e5560c1132cc410':
  bmp: add a standalone parser

Conflicts:
	Changelog
	libavcodec/bmp_parser.c
	libavcodec/version.h

See: 011ce89dba and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 11:00:27 +01:00
Michael Niedermayer
2b570c9569 Merge commit '991362fab49b60d34d89b7b7d6dd00fbec3ce022'
* commit '991362fab49b60d34d89b7b7d6dd00fbec3ce022':
  fate: add XBM tests

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 05:50:38 +01:00
Michael Niedermayer
1da1866767 avcodec/xbmdec: support X10 format
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 05:34:25 +01:00
Michael Niedermayer
4618084a5c avcodec/xbmdec: merge ptr increase into dereference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 05:33:13 +01:00
Michael Niedermayer
296e63efa5 Merge commit '678082b409aca711f9cf991df6b0200116489322'
* commit '678082b409aca711f9cf991df6b0200116489322':
  X-Bitmap decoder

Conflicts:
	Changelog
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/version.h
	libavcodec/xbmdec.c

See: a0340dfbd7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 05:26:24 +01:00
Michael Niedermayer
6bd05ed8bb Merge commit '792e4c21f212979f0e29bcdf107cb6b4f51645a4'
* commit '792e4c21f212979f0e29bcdf107cb6b4f51645a4':
  xbm: use av_frame_free on close

Conflicts:
	libavcodec/xbmenc.c

No change as the buggy code is not part of FFmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 04:45:24 +01:00
Michael Niedermayer
8a8472dd49 Merge commit 'a7a5e3850ecd94e726ad2272295b9e6c91841cf8'
* commit 'a7a5e3850ecd94e726ad2272295b9e6c91841cf8':
  fate: add PAF audio and video tests

Conflicts:
	tests/fate/audio.mak
	tests/fate/video.mak

See: 101615c7ff
See: 409cc45883
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 04:44:25 +01:00
Michael Niedermayer
16ddc58bd7 Merge commit '70daeacd6ef8b354dd7d2d77ad393831a5bbf033'
* commit '70daeacd6ef8b354dd7d2d77ad393831a5bbf033':
  PAF demuxer and decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/paf.c
	libavcodec/version.h
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/paf.c
	libavformat/version.h

See: 7de4a16508, and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 04:32:05 +01:00
Michael Niedermayer
03e4c2d833 Merge commit 'd37c96213a2a9e1fd8669122d5405f4ce6a99ed8'
* commit 'd37c96213a2a9e1fd8669122d5405f4ce6a99ed8':
  lavc: restore copy_block{4,16} functions

Conflicts:
	libavcodec/copy_block.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 03:26:43 +01:00
Luca Barbato
85698be461 cmdutils: Mark exit_program as av_noreturn 2014-03-28 00:40:43 +01:00
rogerdpack
773eb74bab dshow: show device name when outputting buffer overflow log message
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 00:22:55 +01:00
Vittorio Giovara
e8e560f2a2 fate: add a bmpparser test 2014-03-28 00:08:24 +01:00
Paul B Mahol
fb5cf145b6 bmp: add a standalone parser
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-28 00:08:24 +01:00
Michael Niedermayer
64b79141bd avcodec/libx264: move where x264opts is applied down so it isnt overridden by avctx & defaults
fixes x264opts opengop=1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 00:05:33 +01:00
Vittorio Giovara
991362fab4 fate: add XBM tests 2014-03-27 23:59:13 +01:00
Vittorio Giovara
678082b409 X-Bitmap decoder 2014-03-27 23:59:13 +01:00
Vittorio Giovara
792e4c21f2 xbm: use av_frame_free on close 2014-03-27 23:57:51 +01:00
Paul B Mahol
a7a5e3850e fate: add PAF audio and video tests
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-27 23:34:47 +01:00
Paul B Mahol
70daeacd6e PAF demuxer and decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-27 23:34:47 +01:00
Vittorio Giovara
d37c96213a lavc: restore copy_block{4,16} functions
They were removed in 9e31729d69.
2014-03-27 23:25:39 +01:00
Timothy Gu
9d34dce05b x86: convert DNxHDenc inline asm to yasm
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 23:16:17 +01:00
Timothy Gu
cb11b9e89e dnxhdenc: make get_pixel_8x4_sym accept ptrdiff_t as stride
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 23:09:10 +01:00
Michael Niedermayer
72bff8da47 avcodec: Make ff_print_debug_info2() independant of Picture struct
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 22:43:05 +01:00
Michael Niedermayer
a4f27a3f57 avcodec/brenderpix: propagate error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 22:07:49 +01:00
Michael Niedermayer
8506423318 avcodec/brenderpix: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 22:06:59 +01:00
Michael Niedermayer
09ebd87a34 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add BRender PIX tests

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 21:33:41 +01:00
Michael Niedermayer
f392949f1a Merge commit 'ae17878fb2ab100264226c84c58f5b95a703312f'
* commit 'ae17878fb2ab100264226c84c58f5b95a703312f':
  BRender PIX image decoder

Conflicts:
	doc/general.texi
	libavcodec/Makefile
	libavcodec/version.h

See: 492a5f835c, and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 21:09:17 +01:00
Michael Niedermayer
68014c6ed9 Merge commit 'c3a0b3eb64be441ca897629e8ecd80d5b51fded7'
* commit 'c3a0b3eb64be441ca897629e8ecd80d5b51fded7':
  arm: build: Maintain decoder objects separate from infrastructure objects

Conflicts:
	libavcodec/arm/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 20:10:51 +01:00
Vittorio Giovara
bb36b9aa7e fate: add BRender PIX tests 2014-03-27 18:27:23 +01:00
Aleksi Nurmi
ae17878fb2 BRender PIX image decoder
Further enhancements by Vittorio Giovara and Paul B Mahol.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-27 18:27:23 +01:00
Diego Biurrun
c3a0b3eb64 arm: build: Maintain decoder objects separate from infrastructure objects 2014-03-27 03:00:05 -07:00
Michael Niedermayer
57e939d963 avcodec/vp7: Fix null pointer dereference in vp7_decode_frame_header()
This simply copies the "interframe without a prior keyframe" check
thats done later into vp7_decode_frame_header()

Found-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 05:02:18 +01:00
Michael Niedermayer
d5c9843cd2 configure: fix VP7 standalone build
Found-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 04:23:59 +01:00
Andreas Cadhalpun
d473f2d18a Fix spelling errors in texi files: more informations --> more information allows to --> allows one to
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 03:58:56 +01:00
Andreas Cadhalpun
cf3bfc970c Fix texinfo error due to wrong @subsubsection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 03:58:29 +01:00
Michael Niedermayer
62094e2fdd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add Alias PIX tests

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 01:59:32 +01:00
Michael Niedermayer
12ab07be44 Merge commit 'e50f5d3cf9ef9a16982a5cb4d8b1916cd963aa5b'
* commit 'e50f5d3cf9ef9a16982a5cb4d8b1916cd963aa5b':
  Alias PIX image encoder and decoder

Conflicts:
	Changelog
	libavcodec/allcodecs.c
	libavcodec/version.h
	libavformat/img2enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-27 01:10:28 +01:00
Michael Niedermayer
61b5ef7754 libavformat/aviobuf: keep track of the original buffer-size and restore it after probe/ensure-seekback
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 23:58:48 +01:00
Michael Niedermayer
0d4a66ee7f avformat/aviobuf: ffio_ensure_seekback: only copy the initialized part of the buffer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 23:52:38 +01:00
Vittorio Giovara
9718c31ef6 fate: add Alias PIX tests 2014-03-26 23:25:02 +01:00
Vittorio Giovara
e50f5d3cf9 Alias PIX image encoder and decoder 2014-03-26 23:25:02 +01:00
Michael Niedermayer
50b68e323c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  truehd: add hand-scheduled ARM asm version of ff_mlp_pack_output.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 21:23:09 +01:00
Michael Niedermayer
fc64e128f0 Merge commit 'b9eb03416d93a5c4ece27ffef5e6e11c81bec6fa'
* commit 'b9eb03416d93a5c4ece27ffef5e6e11c81bec6fa':
  truehd: break out part of output_data into platform-specific callback.

Conflicts:
	libavcodec/mlpdec.c

See: b01a2562ae
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 21:00:27 +01:00
Michael Niedermayer
179cf14832 Merge commit 'fcf5fc444522d24caa9907225802817ae788f511'
* commit 'fcf5fc444522d24caa9907225802817ae788f511':
  truehd: tune VLC decoding for ARM.

Conflicts:
	libavcodec/mlpdec.c

See: e555e1bc39
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:58:03 +01:00
Ben Avison
b01a2562ae truehd: break out part of output_data into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:56:38 +01:00
Michael Niedermayer
44dc373d4a Merge commit '483321fe789566dcb27b6387c00ea16dd86bc587'
* commit '483321fe789566dcb27b6387c00ea16dd86bc587':
  truehd: add hand-scheduled ARM asm version of ff_mlp_rematrix_channel.

See: 89135716fd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:50:43 +01:00
Ben Avison
89135716fd truehd: add hand-scheduled ARM asm version of ff_mlp_rematrix_channel.
Profiling results for overall audio decode and the rematrix_channels function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     370.8  17.0     348.8  20.1    99.9%       +6.3%
6:2 function  46.4   8.4      45.8   6.6     18.0%       +1.2%  (insignificant)
8:2 total     343.2  19.0     339.1  15.4    54.7%       +1.2%  (insignificant)
8:2 function  38.9   3.9      40.2   6.9     52.4%       -3.2%  (insignificant)
6:6 total     658.4  15.7     604.6  20.8    100.0%      +8.9%
6:6 function  109.0  8.7      59.5   5.4     100.0%      +83.3%
8:8 total     896.2  24.5     766.4  17.6    100.0%      +16.9%
8:8 function  223.4  12.8     93.8   5.0     100.0%      +138.3%

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:50:05 +01:00
Michael Niedermayer
80e67feda8 Merge commit '4e5aa080bb8d83cb6de1ffbdd7b37ec34bc6b30b'
* commit '4e5aa080bb8d83cb6de1ffbdd7b37ec34bc6b30b':
  truehd: break out part of rematrix_channels into platform-specific callback.

See: 3f4e73afe9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:42:49 +01:00
Ben Avison
3f4e73afe9 truehd: break out part of rematrix_channels into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:41:48 +01:00
Michael Niedermayer
f38af0143c Merge commit '15a29c39d9ef15b0783c04b3228e1c55f6701ee3'
* commit '15a29c39d9ef15b0783c04b3228e1c55f6701ee3':
  truehd: add hand-scheduled ARM asm version of mlp_filter_channel.

Conflicts:
	libavcodec/arm/Makefile
	libavcodec/arm/mlpdsp_init_arm.c

See: 87b128d5ef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:39:10 +01:00
Ben Avison
87b128d5ef truehd: add hand-scheduled ARM asm version of mlp_filter_channel.
Profiling results for overall audio decode and the mlp_filter_channel(_arm)
function in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     380.4  22.0     370.8  17.0    87.4%       +2.6%  (insignificant)
6:2 function  60.7   7.2      36.6   8.1     100.0%      +65.8%
8:2 total     357.0  17.5     343.2  19.0    97.8%       +4.0%  (insignificant)
8:2 function  60.3   8.8      37.3   3.8     100.0%      +61.8%
6:6 total     717.2  23.2     658.4  15.7    100.0%      +8.9%
6:6 function  140.4  12.9     81.5   9.2     100.0%      +72.4%
8:8 total     981.9  16.2     896.2  24.5    100.0%      +9.6%
8:8 function  193.4  15.0     103.3  11.5    100.0%      +87.2%

Experiments with adding preload instructions to this function yielded no
useful benefit, so these have not been included.

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:22:18 +01:00
Michael Niedermayer
3017239d3a avfilter/vf_pullup: add comment to explain memset(0)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 20:05:57 +01:00
Ben Avison
3b5946bcce truehd: add hand-scheduled ARM asm version of ff_mlp_pack_output.
Profiling results for overall decode and the output_data function in
particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     339.6  15.1     329.3  16.0    95.8%       +3.1%  (insignificant)
6:2 function  24.6   6.0      9.9    3.1     100.0%      +148.5%
8:2 total     324.5  15.5     323.6  14.3    15.2%       +0.3%  (insignificant)
8:2 function  20.4   3.9      9.9    3.4     100.0%      +104.7%
6:6 total     572.8  20.6     539.9  24.2    100.0%      +6.1%
6:6 function  54.5   5.6      16.0   3.8     100.0%      +240.9%
8:8 total     741.5  21.2     702.5  18.5    100.0%      +5.6%
8:8 function  63.9   7.6      18.4   4.8     100.0%      +247.3%

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:32 +02:00
Ben Avison
b9eb03416d truehd: break out part of output_data into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:29 +02:00
Ben Avison
fcf5fc4445 truehd: tune VLC decoding for ARM.
Profiling on a Raspberry Pi revealed the best performance to correspond
with VLC_BITS = 5. Results for overall audio decode and the get_vlc2 function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     348.8  20.1     339.6  15.1    88.8%       +2.7%  (insignificant)
6:2 function  38.1   8.1      26.4   4.1     100.0%      +44.5%
8:2 total     339.1  15.4     324.5  15.5    99.4%       +4.5%
8:2 function  33.8   7.0      27.3   5.6     99.7%       +23.6%
6:6 total     604.6  20.8     572.8  20.6    100.0%      +5.6%
6:6 function  95.8   8.4      68.9   8.2     100.0%      +39.1%
8:8 total     766.4  17.6     741.5  21.2    100.0%      +3.4%
8:8 function  106.0  11.4     86.1   9.9     100.0%      +23.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:12 +02:00
Ben Avison
483321fe78 truehd: add hand-scheduled ARM asm version of ff_mlp_rematrix_channel.
Profiling results for overall audio decode and the rematrix_channels function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     370.8  17.0     348.8  20.1    99.9%       +6.3%
6:2 function  46.4   8.4      45.8   6.6     18.0%       +1.2%  (insignificant)
8:2 total     343.2  19.0     339.1  15.4    54.7%       +1.2%  (insignificant)
8:2 function  38.9   3.9      40.2   6.9     52.4%       -3.2%  (insignificant)
6:6 total     658.4  15.7     604.6  20.8    100.0%      +8.9%
6:6 function  109.0  8.7      59.5   5.4     100.0%      +83.3%
8:8 total     896.2  24.5     766.4  17.6    100.0%      +16.9%
8:8 function  223.4  12.8     93.8   5.0     100.0%      +138.3%

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:10 +02:00
Ben Avison
4e5aa080bb truehd: break out part of rematrix_channels into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:05 +02:00
Ben Avison
15a29c39d9 truehd: add hand-scheduled ARM asm version of mlp_filter_channel.
Profiling results for overall audio decode and the mlp_filter_channel(_arm)
function in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     380.4  22.0     370.8  17.0    87.4%       +2.6%  (insignificant)
6:2 function  60.7   7.2      36.6   8.1     100.0%      +65.8%
8:2 total     357.0  17.5     343.2  19.0    97.8%       +4.0%  (insignificant)
8:2 function  60.3   8.8      37.3   3.8     100.0%      +61.8%
6:6 total     717.2  23.2     658.4  15.7    100.0%      +8.9%
6:6 function  140.4  12.9     81.5   9.2     100.0%      +72.4%
8:8 total     981.9  16.2     896.2  24.5    100.0%      +9.6%
8:8 function  193.4  15.0     103.3  11.5    100.0%      +87.2%

Experiments with adding preload instructions to this function yielded no
useful benefit, so these have not been included.

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:53:52 +02:00
Michael Niedermayer
a44409e692 avfilter/vf_pullup: zero freed memory for saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 18:37:15 +01:00
wm4
5b0ce5d4e3 vf_pullup: simplify, fix double free error
The memory allocation for f->diffs was freed multiple times in some
corner cases. Simplify the code so that this doesn't happen.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 18:27:25 +01:00
Michael Niedermayer
54e2e9fbc1 avutil/frame: undeprecate AVFrame.motion_val API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 18:22:49 +01:00
Michael Niedermayer
289b149cec avcodec/h264_mp4toannexb_bsf: prepend global headers before any in stream parameter sets
Fixes h264_mp4toannexb_bsf_failure.mkv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 18:09:23 +01:00
Michael Niedermayer
4998a72b49 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: hpeldsp: Keep all rnd_template instantiations in hpeldsp_init

Conflicts:
	libavcodec/x86/rnd_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 16:55:46 +01:00
Michael Niedermayer
b7f0d39d26 Merge commit '55d7f26e7bcf1dfb69ee986aa9fc21c62e0b3ae6'
* commit '55d7f26e7bcf1dfb69ee986aa9fc21c62e0b3ae6':
  hpeldsp_template: Move content to hpeldsp

Conflicts:
	libavcodec/hpeldsp_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 15:53:33 +01:00
Michael Niedermayer
a49bdcdee5 Merge commit '09d4389de10b03ea65a84eaf3d6c4b7a7538ad75'
* commit '09d4389de10b03ea65a84eaf3d6c4b7a7538ad75':
  hpeldsp_template: Drop av_unused attribute from *_no_rnd_pixels16_8_c functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 15:41:02 +01:00
Michael Niedermayer
2d15e0c01d Merge commit '92ba965103d3884609730ba9bf293772dc78a9ef'
* commit '92ba965103d3884609730ba9bf293772dc78a9ef':
  dsputil: Move draw_edges and clear_block* out of dsputil_template

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 15:36:27 +01:00
Michael Niedermayer
b4f64c58fc Merge commit 'da5be235250a61d6994408b054e3e3acf2e0f90f'
* commit 'da5be235250a61d6994408b054e3e3acf2e0f90f':
  dsputil: Move RV40-specific bits into rv40dsp

Conflicts:
	libavcodec/dsputil.c
	libavcodec/rv40dsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 15:24:50 +01:00
Michael Niedermayer
6967cf3c6c Merge commit '8011ac911b3f282b9fb64a0fc15404f8bfc7b7ed'
* commit '8011ac911b3f282b9fb64a0fc15404f8bfc7b7ed':
  hpeldsp_template: Detemplatize the code

Conflicts:
	libavcodec/hpeldsp_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 15:08:46 +01:00
Michael Niedermayer
e9c6b93bda Merge commit '2c01ad8b206d326700974438f7193f22be416eb1'
* commit '2c01ad8b206d326700974438f7193f22be416eb1':
  dsputil_template: Detemplatize the code

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 14:59:50 +01:00
Michael Niedermayer
0371eaebcd Merge commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f'
* commit 'aba70bb5387f12dfa5e6cd8cb861c9c7e668151f':
  Add missing headers to make template files compile (more) standalone

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 14:50:55 +01:00
Michael Niedermayer
3262069101 Merge commit 'e7373585f827d4ec05d952daa3877e8decfe3c08'
* commit 'e7373585f827d4ec05d952daa3877e8decfe3c08':
  dsputil_template: Move bits that are used templatized into separate file

Conflicts:
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 14:40:49 +01:00
Michael Niedermayer
152c8fd856 Merge commit 'd3c3c1664a958923f234283e66fbcbfe69a6927f'
* commit 'd3c3c1664a958923f234283e66fbcbfe69a6927f':
  dsputil: Move hpel_template #include out of dsputil_template

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 14:32:24 +01:00
Michael Niedermayer
8e8347b892 Merge commit 'd0aabeab23755ee906440505ad2097c0f1493e80'
* commit 'd0aabeab23755ee906440505ad2097c0f1493e80':
  x86: h264_qpel: Fix typo in CALL_2X_PIXELS macro invocation

See: c8246d3766
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 14:17:43 +01:00
Diego Biurrun
efc7290eb6 x86: hpeldsp: Keep all rnd_template instantiations in hpeldsp_init
There is no point in having a separate file just for the instantiation
that provides the public functions.
2014-03-26 04:31:27 -07:00
Diego Biurrun
55d7f26e7b hpeldsp_template: Move content to hpeldsp
There is no point in having this separate; it is not used as a template.
2014-03-26 04:31:27 -07:00
Diego Biurrun
09d4389de1 hpeldsp_template: Drop av_unused attribute from *_no_rnd_pixels16_8_c functions 2014-03-26 04:31:27 -07:00
Diego Biurrun
92ba965103 dsputil: Move draw_edges and clear_block* out of dsputil_template
The functions are not used templatized.
2014-03-26 04:31:27 -07:00
Diego Biurrun
da5be23525 dsputil: Move RV40-specific bits into rv40dsp 2014-03-26 04:31:27 -07:00
Diego Biurrun
8011ac911b hpeldsp_template: Detemplatize the code
The indirection makes no sense without multiple instantiation.
2014-03-26 04:31:27 -07:00
Diego Biurrun
2c01ad8b20 dsputil_template: Detemplatize the code
The indirection makes no sense without multiple instantiation.
2014-03-26 04:31:27 -07:00
Diego Biurrun
aba70bb538 Add missing headers to make template files compile (more) standalone 2014-03-26 04:31:27 -07:00
Diego Biurrun
e7373585f8 dsputil_template: Move bits that are used templatized into separate file
This allows detemplatizing the bits that are not instantiated twice.
2014-03-26 04:31:27 -07:00
Diego Biurrun
d3c3c1664a dsputil: Move hpel_template #include out of dsputil_template
Multiple inclusion makes no sense as it is only used in the 8-bit case.
2014-03-26 04:31:26 -07:00
Diego Biurrun
d0aabeab23 x86: h264_qpel: Fix typo in CALL_2X_PIXELS macro invocation
This fixes FATE with mmxext CPUFLAGS set.
2014-03-26 12:00:01 +01:00
Michael Niedermayer
c05065aac0 avcodec/h261: move b_stride/b_xy under the if() where they are used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 04:22:39 +01:00
Michael Niedermayer
6795dcfa65 avcodec/hevc: Export picture type
This only uses the first slice, improvement here is welcome
analyzing all slices the trivial way would interfere with threads

Fixes Ticket3185

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 04:20:52 +01:00
Michael Niedermayer
4090d5baa8 avcodec/h261dec: fix motion vector vissualization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 01:12:03 +01:00
Michael Niedermayer
8f20e3d4df Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec: add missing includes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 19:39:00 +01:00
Michael Niedermayer
41e7e46cac Merge commit 'aa499568afc01d59215eef7e5b14b949a9671afc'
* commit 'aa499568afc01d59215eef7e5b14b949a9671afc':
  avconv: More descriptive message about framedrop

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 19:25:10 +01:00
Michael Niedermayer
10e931d514 Merge commit '6ee55c7b111eec6c51dfdc0fddbd46f5dd867fa3'
* commit '6ee55c7b111eec6c51dfdc0fddbd46f5dd867fa3':
  vf_transpose: K&R formatting cosmetics

Conflicts:
	libavfilter/vf_transpose.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 19:17:38 +01:00
James Almer
2d9821a208 x86/cpu: check for OS support before enabling AVX2
AV_CPU_FLAG_AVX is enabled at this point only if there's OS support.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 17:56:43 +01:00
rogerdpack
4d9881e1cc udp: mention default in documentation
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 17:53:14 +01:00
rogerdpack
10056bc964 dshow: log error and continue if unable to set audio buffer
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 17:32:39 +01:00
Carl Eugen Hoyos
0816abae1e Add an .oga muxer. 2014-03-25 15:47:55 +01:00
Carl Eugen Hoyos
e6fe804bdd Do not set swscale sizeFactor to -1.
Fixes ticket #3495.
2014-03-25 15:46:35 +01:00
Øyvind Kolås
3e6016622e swscale: add two spatially stable dithering methods
Both of these dithering methods are from http://pippin.gimp.org/a_dither/ for
GIF they can be considered better than bayer (provides more gray-levels), and
spatial stability - often more than twice as good compression and less visual
flicker than error diffusion methods (the methods also avoids error-shadow
artifacts of diffusion dithers).

These methods are similar to blue/green noise type dither masks; but are
simple enough to generate their mask on the fly. They are still research work
in progress; though more expensive to generate masks (which can be used in a
LUT) like 'void and cluster' and similar methods will yield superior results
2014-03-25 13:48:06 +01:00
Peter Ross
a490970af2 libavcodec/*/vp8dsp_init: indent
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 13:29:29 +01:00
Peter Ross
4a031ce3c6 avformat/riff: add On2 VP7 fourccs
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 13:29:29 +01:00
Peter Ross
89f2f5dbd7 On2 VP7 decoder
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: BBB
previous patch reviewed by jason
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 13:29:05 +01:00
Peter Ross
7d4c0220f1 avcodec/vp8: vp8_find_free_buffer
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 13:11:38 +01:00
Vittorio Giovara
dc0c70e018 avcodec: add missing includes 2014-03-25 12:28:22 +01:00
Vittorio Giovara
aa499568af avconv: More descriptive message about framedrop 2014-03-25 12:26:24 +01:00
Vittorio Giovara
6ee55c7b11 vf_transpose: K&R formatting cosmetics 2014-03-25 12:24:39 +01:00
Michael Niedermayer
a81ee2651f avcodec/svq1enc: fix undefined pointer operation
Fixes Ticket3152

This also removes the dependance on ff_init_block_index/ff_update_block_index()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 03:34:00 +01:00
Michael Niedermayer
c25d2cd20b avcodec/x86/mpegvideoenc_template: fix integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-25 00:15:52 +01:00
Michael Niedermayer
575b957758 dox/scaler:fix bicubiclin typo
See Ticket3486

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 22:04:52 +01:00
Michael Niedermayer
5d39ec2188 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libx265: Only use one memcpy for headers

See: ecb5b9c098
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 21:24:55 +01:00
Michael Niedermayer
fc2de9b7cf Merge commit '60728e8bab8d2a5f6bbb4baa7d53142dbc6047ed'
* commit '60728e8bab8d2a5f6bbb4baa7d53142dbc6047ed':
  libx265: Write global extradata when requested

See: dded5ed9c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 21:08:45 +01:00
Michael Niedermayer
ab8d9fe9b8 Merge commit '8ef33497a6a3ed05d2f931809c074ef3d1878834'
* commit '8ef33497a6a3ed05d2f931809c074ef3d1878834':
  build: Add config option for CABAC code

Conflicts:
	configure
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 20:55:23 +01:00
Michael Niedermayer
bce2abc936 avcodec/h264: use ff_h264_set_erpic() instead of memset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 20:09:19 +01:00
Michael Niedermayer
cb640eb335 ffmpeg: move packet deallocation into write_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 19:50:39 +01:00
Michael Niedermayer
33a7e288ab Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: don't warn on multiple frames per packet for codecs that expect it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 16:46:06 +01:00
Michael Niedermayer
1046cd60d4 Merge commit '4754345027eb85cfa51aeb88beec68d7b036c11e'
* commit '4754345027eb85cfa51aeb88beec68d7b036c11e':
  avconv: print verbose per-stream transcoding statistics

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 16:40:35 +01:00
Michael Niedermayer
afa442c198 Merge commit 'a220b07b0f971f88213aef012aea51af2800be62'
* commit 'a220b07b0f971f88213aef012aea51af2800be62':
  avconv: split printing the final statistics into a separate function

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 16:30:29 +01:00
Derek Buitenhuis
ecb5b9c098 libx265: Only use one memcpy for headers
They're guaranteed by the x265 API to be contiguous in memory.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:28:20 +00:00
Derek Buitenhuis
206d5330f6 libx265: Simple cosmetic fix
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:28:11 +00:00
Derek Buitenhuis
21a561176e libx265: Only use one memcpy for headers
They're guaranteed by the x265 API to be contiguous in memory.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:27:41 +00:00
Michael Niedermayer
60728e8bab libx265: Write global extradata when requested
Matroska, MP4, and other containers require it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-24 15:27:41 +00:00
Michael Niedermayer
13278b97ae Merge commit 'baeb59d89beda499688e528c6a269d2b255b66f2'
* commit 'baeb59d89beda499688e528c6a269d2b255b66f2':
  avconv: rewrite output data size tracking

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 16:11:13 +01:00
Michael Niedermayer
8a9878b4ff Merge commit 'f759f66e367bc62ed7738a51040f775b656a60d8'
* commit 'f759f66e367bc62ed7738a51040f775b656a60d8':
  avconv: explicitly report when the muxing overhead is unknown

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 15:52:50 +01:00
Michael Niedermayer
c31b3e3878 Merge commit '781d97fd54b1f0d8f4f7536dbd932dca6445476e'
* commit '781d97fd54b1f0d8f4f7536dbd932dca6445476e':
  avconv: remove unused nb_frames_dup

Conflicts:
	ffmpeg.c

No change, as the variable is not unused

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 15:45:47 +01:00
Diego Biurrun
8ef33497a6 build: Add config option for CABAC code
This allows for more elegant dependency and object declarations.
2014-03-24 15:35:18 +01:00
Michael Niedermayer
15fe694e5c Merge commit 'b4679ecdbd80ae050094733f137ccd7ebf1316ab'
* commit 'b4679ecdbd80ae050094733f137ccd7ebf1316ab':
  {v,a}f_showinfo: print frame side data

Conflicts:
	libavfilter/af_ashowinfo.c
	libavfilter/vf_showinfo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 15:32:48 +01:00
Michael Niedermayer
1034fbdf53 Merge commit '15c5a8d22d12d29a364ca2ab6438f1dee2fa08c7'
* commit '15c5a8d22d12d29a364ca2ab6438f1dee2fa08c7':
  mp3dec: export replaygain tags from ID3v2

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 15:11:08 +01:00
Michael Niedermayer
8de75f703a Merge commit '06c3cd3c0186803619bc6aad2d8f06c3e9015d15'
* commit '06c3cd3c0186803619bc6aad2d8f06c3e9015d15':
  af_volume: support using replaygain frame side data

Conflicts:
	doc/filters.texi
	libavfilter/af_volume.c
	libavfilter/af_volume.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 15:04:47 +01:00
Michael Niedermayer
3e1f24131a Merge commit 'd161ae0a37900cbd36c1390ca32a56b892c02ab5'
* commit 'd161ae0a37900cbd36c1390ca32a56b892c02ab5':
  frame: add a function for removing side data from a frame

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 14:51:44 +01:00
Michael Niedermayer
82e6660ae2 Merge commit '59444c76e6d43529a12dbd80b6dd29c6ba4079a9'
* commit '59444c76e6d43529a12dbd80b6dd29c6ba4079a9':
  avconv: add stream-global side data to the first demuxed packet

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 14:44:22 +01:00
Michael Niedermayer
c08e523586 Merge commit '4a0f6651434c6f213d830140f575b4ec7858519f'
* commit '4a0f6651434c6f213d830140f575b4ec7858519f':
  libavcodec: when decoding, copy replaygain side data to decoded frames

Conflicts:
	libavcodec/internal.h
	libavcodec/rawdec.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 14:26:17 +01:00
Michael Niedermayer
83e8978798 Merge commit '5a7e35dd2351c30bab45177b9482cb8833a0ca78'
* commit '5a7e35dd2351c30bab45177b9482cb8833a0ca78':
  Add replaygain side data type and code for parsing replaygain tags.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/version.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 14:03:55 +01:00
Michael Niedermayer
595ba3b962 Merge commit '25b32586566f285d797737863c97a1c5c9c84e2b'
* commit '25b32586566f285d797737863c97a1c5c9c84e2b':
  lavf: add an AVStream field for exporting stream-global side data

Conflicts:
	libavformat/utils.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 13:41:49 +01:00
Michael Niedermayer
bd34e26b27 Merge commit '0e2c3ee9a335d8a0a5edf0509e222e804d7b2619'
* commit '0e2c3ee9a335d8a0a5edf0509e222e804d7b2619':
  lavc: give a typedeffed name to the AVPacket.side_data struct

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 13:27:33 +01:00
Anton Khirnov
d1780e01b8 avconv: don't warn on multiple frames per packet for codecs that expect it 2014-03-24 06:21:13 +01:00
Anton Khirnov
4754345027 avconv: print verbose per-stream transcoding statistics 2014-03-24 06:20:38 +01:00
Anton Khirnov
a220b07b0f avconv: split printing the final statistics into a separate function 2014-03-24 06:17:19 +01:00
Anton Khirnov
baeb59d89b avconv: rewrite output data size tracking
Store a variable per OutputStream instead of globals for
audio/video/extradata. This makes the code simpler and cleaner and fixes
2pass with multiple output streams.
2014-03-24 06:17:04 +01:00
Anton Khirnov
f759f66e36 avconv: explicitly report when the muxing overhead is unknown 2014-03-24 06:16:58 +01:00
Anton Khirnov
781d97fd54 avconv: remove unused nb_frames_dup
Frame duplication now happens in vf_fps.
2014-03-24 06:16:31 +01:00
Anton Khirnov
b4679ecdbd {v,a}f_showinfo: print frame side data 2014-03-24 06:14:55 +01:00
Anton Khirnov
15c5a8d22d mp3dec: export replaygain tags from ID3v2 2014-03-24 06:13:39 +01:00
Michael Niedermayer
9456a8628b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Remove dcbzl check for e500v1 and e500v2 architectures

See: d5733936d8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 06:09:31 +01:00
Anton Khirnov
06c3cd3c01 af_volume: support using replaygain frame side data 2014-03-24 06:07:51 +01:00
Anton Khirnov
d161ae0a37 frame: add a function for removing side data from a frame 2014-03-24 06:07:51 +01:00
Anton Khirnov
59444c76e6 avconv: add stream-global side data to the first demuxed packet 2014-03-24 06:07:51 +01:00
Anton Khirnov
4a0f665143 libavcodec: when decoding, copy replaygain side data to decoded frames 2014-03-24 06:07:51 +01:00
Anton Khirnov
5a7e35dd23 Add replaygain side data type and code for parsing replaygain tags. 2014-03-24 06:07:51 +01:00
Anton Khirnov
25b3258656 lavf: add an AVStream field for exporting stream-global side data 2014-03-24 06:07:51 +01:00
Anton Khirnov
0e2c3ee9a3 lavc: give a typedeffed name to the AVPacket.side_data struct 2014-03-24 06:07:50 +01:00
Michael Niedermayer
fecebb7aba Merge commit '5b8f0a5eac75d16376af60a6f6bb79b3e9e6dab7'
* commit '5b8f0a5eac75d16376af60a6f6bb79b3e9e6dab7':
  mpeg: K&R formatting cosmetics

Conflicts:
	libavformat/mpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 05:28:07 +01:00
Michael Niedermayer
c9c0451224 swscale/swscale: fix integer overflow
Should fix fate failure with clang ftrapv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 05:01:32 +01:00
Michael Niedermayer
8683fa541b fate: add tests for linearly interpolated resampling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 04:25:44 +01:00
Michael Niedermayer
e03c3ac539 tests/tiny_psnr: Print information about the supported sample types in the help and error texts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 04:02:51 +01:00
James Almer
63dbba655e swresample/resample: sse float linear interpolation
About two times faster

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 02:34:02 +01:00
James Almer
fa25c4c400 swresample/resample: mmx2/sse2 int16 linear interpolation
About three times faster

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 02:33:16 +01:00
Peter Krefting
54f7881615 configure: Remove dcbzl check for e500v1 and e500v2 architectures
The DCBZL instruction is not available for the e500v1 and e500v2
architectures, but may still be recognized by the toolchain, so we
need to explicitly disable it for these architectures.

References: PowerPC™ e500 Core Family Reference Manual (Freescale)

Found-by: Ståle Kristoffersen <staalebk@ifi.uio.no>

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-24 02:22:16 +01:00
Tanja Batchelor
5b8f0a5eac mpeg: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-24 02:22:15 +01:00
Michael Niedermayer
ffd77f94a2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: Split h264 slice decoding from nal decoding

Conflicts:
	libavcodec/Makefile
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 01:33:02 +01:00
Michael Niedermayer
0626211b56 Merge commit 'e9a77f4bc084e5174baba3a8bc869ce4d102c4f0'
* commit 'e9a77f4bc084e5174baba3a8bc869ce4d102c4f0':
  h264: move macroblock decoding into its own file

Conflicts:
	libavcodec/Makefile
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 00:46:20 +01:00
Michael Niedermayer
3bf5c05925 Merge commit 'ede2b451ccb1b2317858c7a32784a9b739ba45f4'
* commit 'ede2b451ccb1b2317858c7a32784a9b739ba45f4':
  build: Sort h264 objects

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 00:26:46 +01:00
Michael Niedermayer
0dd4eff588 Merge commit 'fb7127b2c836b53ad5168887cd12871312c8708d'
* commit 'fb7127b2c836b53ad5168887cd12871312c8708d':
  build: h264 parser depends on full h264 decoder

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 00:20:56 +01:00
Michael Niedermayer
3788b8dbe6 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavu: add myself as dynarray.h maintainer.
  ffmpeg: sub2video: send a last blank frame before closing.
  tools: add dvd2concat.
  lavf/concatdec: allow to match streams by id.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 00:05:23 +01:00
Luca Barbato
f51d0f39c0 h264: Split h264 slice decoding from nal decoding 2014-03-23 22:41:12 +01:00
Vittorio Giovara
e9a77f4bc0 h264: move macroblock decoding into its own file 2014-03-23 22:41:12 +01:00
Luca Barbato
ede2b451cc build: Sort h264 objects 2014-03-23 22:41:11 +01:00
Luca Barbato
fb7127b2c8 build: h264 parser depends on full h264 decoder 2014-03-23 22:41:11 +01:00
Michael Niedermayer
5dfbecb3a3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  RELEASE_NOTES: mention new filters

Conflicts:
	doc/RELEASE_NOTES

Not merged as these things where in past ffmpeg releases already.
Or at least some of them where, volunteers to checks this and update
our release notes are welcome

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 19:52:45 +01:00
Nicolas George
c0c1fe797c lavu: add myself as dynarray.h maintainer. 2014-03-23 19:17:20 +01:00
Nicolas George
521707d42e ffmpeg: sub2video: send a last blank frame before closing.
Fix trac ticket #3420.
2014-03-23 19:16:35 +01:00
Nicolas George
27cff4f6f8 tools: add dvd2concat. 2014-03-23 19:15:07 +01:00
Nicolas George
26dea7731e lavf/concatdec: allow to match streams by id.
That makes the concat demuxer usable with MPEG-PS streams,
even when the streams in the different parts are detected
in different order.
2014-03-23 19:15:07 +01:00
Carl Eugen Hoyos
cc6d549adb Always pass the configure option sysroot to --sysroot and -isysroot.
On darwin, --sysroot may be ignored.
2014-03-23 19:01:16 +01:00
Carl Eugen Hoyos
942cded690 Autodetect VDA like all other hardware acccelerations.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 17:47:28 +01:00
Vittorio Giovara
2a38651033 RELEASE_NOTES: mention new filters 2014-03-23 17:30:52 +01:00
Michael Niedermayer
c8246d3766 avcodec/x86/h264_qpel: Fix typo introduced by 322a1dda97
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 15:04:53 +01:00
Michael Niedermayer
82a90e7764 Move avpriv_find_pix_fmt() to utils.c
Fixes build with --disable-everything

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 13:25:42 +01:00
wm4
686e662676 http: restructure http_connect error handling path
The authstr memory allocations make it annoying to error in the middle
of the header setup code, so apply the usual C error handling idiom to
make it easier to error at any point.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 05:56:35 +01:00
Michael Niedermayer
6ee2911996 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: drop ff_pixfmt_list_420

Conflicts:
	libavcodec/flvdec.c
	libavcodec/msmpeg4dec.c
	libavcodec/rv10.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 03:56:43 +01:00
Michael Niedermayer
acb8d655d7 Merge commit 'd5717bc4e9cc253a933ae8130eea3a9c8bc33c0b'
* commit 'd5717bc4e9cc253a933ae8130eea3a9c8bc33c0b':
  changelog: switch libx265 and compand entries

Conflicts:
	Changelog

Not many changes as libx265 and compand are placed correctly for us

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 03:46:40 +01:00
Michael Niedermayer
1abb031959 Merge commit '0f0d1d056e1a3ad3db32b7d1a06286b2841e91b1'
* commit '0f0d1d056e1a3ad3db32b7d1a06286b2841e91b1':
  configure: Always use -DOPJ_STATIC when checking for openjpeg

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 03:32:00 +01:00
Michael Niedermayer
802e5fc8f8 Merge commit '1e9db41e2a2166be5671b088ef4ad06a40af459f'
* commit '1e9db41e2a2166be5671b088ef4ad06a40af459f':
  movenc: Allow override of major brand in ftyp atom

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 03:22:20 +01:00
Vittorio Giovara
6f6c029464 lavc: drop ff_pixfmt_list_420 2014-03-23 01:56:58 +01:00
Vittorio Giovara
d5717bc4e9 changelog: switch libx265 and compand entries 2014-03-23 01:56:58 +01:00
Luca Barbato
0f0d1d056e configure: Always use -DOPJ_STATIC when checking for openjpeg
Unbreaks windows systems not providing pkgconf files.

Reported-By: Rafaël Carré <funman@videolan.org>
2014-03-23 01:14:31 +01:00
John Stebbins
1e9db41e2a movenc: Allow override of major brand in ftyp atom
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-03-23 00:31:54 +01:00
Michael Niedermayer
fc567ac49e avcodec: Add padding after the remaining AVFrames
This limits ABI issues in case libavcodec is linked to a libavutil with larger AVFrame
Which can happen if they are shiped in seperate binary packages and libavutil is upgraded

A cleaner alternative would be to replace them by pointers but this would likely cause
a small speedloss

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 00:28:51 +01:00
Michael Niedermayer
2765c2ec7d Merge remote-tracking branch 'cus/stable'
* cus/stable:
  mpegts: fix teletext pts of streams with standalone pcr pid
  mpegts: add pcr filter for tracking standalone pcr pids
  mpegts: factorize mpegts filter creator code
  mpegts: move last_pcr to MpegTSFilter level

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 23:50:49 +01:00
Michael Niedermayer
de182701ac Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lagarith: Fix typo in printf format string

Conflicts:
	libavcodec/lagarith.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 23:44:28 +01:00
Michael Niedermayer
9d6a27d533 Merge commit '57f09608e1600d1cf1679885a46f5004d522d68f'
* commit '57f09608e1600d1cf1679885a46f5004d522d68f':
  dsputil: Move thirdpel-related bits into their own context

Conflicts:
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 23:26:23 +01:00
Michael Niedermayer
74fed968d1 Merge commit '82dd1026cfc1d72b04019185bea4c1c9621ace3f'
* commit '82dd1026cfc1d72b04019185bea4c1c9621ace3f':
  x86: dsputil: Move hpeldsp-related declarations to a separate header

Conflicts:
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 23:21:54 +01:00
Michael Niedermayer
816d7936a7 Merge commit 'ae116cd3ed908d28b69d5198712217ec743d74f6'
* commit 'ae116cd3ed908d28b69d5198712217ec743d74f6':
  ppc: dsputil: Move hpeldsp-related declarations to a separate header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 23:17:03 +01:00
Michael Niedermayer
9333bba6ed Merge commit '6655c933a887a2d20707fff657b614aa1d86a25b'
* commit '6655c933a887a2d20707fff657b614aa1d86a25b':
  x86: dsputil: Move fpel declarations to a separate header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 23:08:22 +01:00
Michael Niedermayer
77bc342975 Merge commit '322a1dda973e802db7b57f2007fad3efcd5bab81'
* commit '322a1dda973e802db7b57f2007fad3efcd5bab81':
  dsputil: Refactor duplicated CALL_2X_PIXELS / PIXELS16 macros

Conflicts:
	libavcodec/arm/hpeldsp_init_arm.c
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 22:53:33 +01:00
Michael Niedermayer
672c610d84 Merge commit 'f9279ee74936b4990fc46287c27816ef828cc06c'
* commit 'f9279ee74936b4990fc46287c27816ef828cc06c':
  dsputil: Move ff_zigzag_direct and ff_crop_tab declarations to mathops.h

Conflicts:
	libavcodec/imgconvert.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 22:23:04 +01:00
Michael Niedermayer
d6d3cfb0aa Merge commit '600b854ad8173995518bd917e7f86120b5505088'
* commit '600b854ad8173995518bd917e7f86120b5505088':
  imgconvert: Move ff_deinterlace_line_*_mmx declarations out of dsputil

Conflicts:
	libavcodec/imgconvert.c
	libavcodec/x86/dsputil_x86.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 22:17:54 +01:00
Michael Niedermayer
8fbc6e5911 Merge commit '1a8d0cf77ed2611e542ae98f341d4c43a04467bd'
* commit '1a8d0cf77ed2611e542ae98f341d4c43a04467bd':
  x86: dsputil: Move inline assembly macros to a separate header

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 22:11:27 +01:00
Michael Niedermayer
32da2fd422 Merge commit '1df0b061621b10edde87e3ab7ea83aed381c574f'
* commit '1df0b061621b10edde87e3ab7ea83aed381c574f':
  nuv: Reuse the DSPContext from RTJpegContext

Conflicts:
	libavcodec/nuv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 21:58:04 +01:00
Michael Niedermayer
82c742377a avutil/dynarray: remove debug av_log() from AV_DYNARRAY_ADD
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 21:47:38 +01:00
Michael Niedermayer
9ba1190297 avutil/mem: avoid using intptr_t to access void* in av_dynarray_add()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 21:14:57 +01:00
Nicolas George
b0dcf76530 lavu/mem: reimplement the dynarray functions with the macro.
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 20:53:36 +01:00
Nicolas George
7b9a310d0e lavu: add AV_DYNARRAY_ADD() macro.
Signed-off-by: Nicolas George <george@nsup.org>
Reviewed-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 20:53:31 +01:00
Michael Niedermayer
cd1d4b51e3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  float_dsp: Replace arch optimization ifdefs by if cascade

Conflicts:
	libavutil/float_dsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 18:52:21 +01:00
Michael Niedermayer
8d024c5107 Merge commit 'cc8163e1a3601a56f722a4720516e860bf1c6198'
* commit 'cc8163e1a3601a56f722a4720516e860bf1c6198':
  avcodec: more correct printf specifiers

Conflicts:
	libavcodec/4xm.c
	libavcodec/alsdec.c
	libavcodec/dfa.c
	libavcodec/h264_ps.c
	libavcodec/jpeg2000dec.c
	libavcodec/lagarith.c
	libavcodec/mpeg12dec.c
	libavcodec/rv10.c
	libavcodec/svq3.c
	libavcodec/wmaprodec.c
	libavcodec/xwddec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 18:43:40 +01:00
Diego Biurrun
4f4840377f lagarith: Fix typo in printf format string
libavcodec/lagarith.c:671:16: warning: '#' flag used with ‘%u’ gnu_printf format [-Wformat]
2014-03-22 18:36:33 +01:00
Michael Niedermayer
7ef8d97b1a Merge commit '7513234bdd93f80593bfee3eb2da8c8f0d3992da'
* commit '7513234bdd93f80593bfee3eb2da8c8f0d3992da':
  avfilter: more correct printf format specifiers

Conflicts:
	libavfilter/af_ashowinfo.c
	libavfilter/vf_showinfo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 18:21:10 +01:00
Peter Ross
54df8b4fea fate: add cine demux test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 17:50:02 +01:00
Michael Niedermayer
ae4b11df0d avcodec/snowenc: make snow non experimental
After this commit the created bitstream will be supported by future
decoders.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 16:52:51 +01:00
rogerdpack
3eafe1d71c udp: try to clarify verbiage on buffer_size
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 16:46:06 +01:00
rogerdpack
0b4c5c99bc avformat/udp: cleanup comments, add a warning if receive buffer is unexpectedly unable to be set high enough
which can happen easily in linux

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 16:40:46 +01:00
Diego Biurrun
57f09608e1 dsputil: Move thirdpel-related bits into their own context 2014-03-22 06:17:30 -07:00
Diego Biurrun
82dd1026cf x86: dsputil: Move hpeldsp-related declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
ae116cd3ed ppc: dsputil: Move hpeldsp-related declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
6655c933a8 x86: dsputil: Move fpel declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
322a1dda97 dsputil: Refactor duplicated CALL_2X_PIXELS / PIXELS16 macros 2014-03-22 06:17:29 -07:00
Diego Biurrun
f9279ee749 dsputil: Move ff_zigzag_direct and ff_crop_tab declarations to mathops.h 2014-03-22 06:17:29 -07:00
Diego Biurrun
600b854ad8 imgconvert: Move ff_deinterlace_line_*_mmx declarations out of dsputil 2014-03-22 06:17:29 -07:00
Diego Biurrun
1a8d0cf77e x86: dsputil: Move inline assembly macros to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
1df0b06162 nuv: Reuse the DSPContext from RTJpegContext
There is no point in populating NuvContext with another DSPContext.

Also split static and dynamic initialization bits to avoid running the
static initialization parts over and over.
2014-03-22 06:17:29 -07:00
Diego Biurrun
46caba4a65 float_dsp: Replace arch optimization ifdefs by if cascade
Arch-specific optimizations are handled this way everywhere else.
2014-03-22 14:11:22 +01:00
Diego Biurrun
cc8163e1a3 avcodec: more correct printf specifiers 2014-03-22 14:08:20 +01:00
Matt Oliver
cd5cf395f6 Additional icl inline asm fix.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 14:07:03 +01:00
Marton Balint
d2f60547c2 mpegts: fix teletext pts of streams with standalone pcr pid
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-22 13:55:01 +01:00
Marton Balint
d83a5b5218 mpegts: add pcr filter for tracking standalone pcr pids
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-22 13:55:01 +01:00
Marton Balint
6bab55b84c mpegts: factorize mpegts filter creator code
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-22 13:54:59 +01:00
Marton Balint
4acc86bcfb mpegts: move last_pcr to MpegTSFilter level
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-22 13:41:22 +01:00
Diego Biurrun
7513234bdd avfilter: more correct printf format specifiers 2014-03-22 13:21:16 +01:00
James Darnley
f02832904d lavc/libx264: add a warning when using qscale
This addresses ticket #3238.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 13:13:07 +01:00
rogerdpack
6abc56e892 dshow: use distinct buffers per stream.
Basically sometimes if you start dropping video packets, you also drop audio packets. Now they each have separate buffers to avoid this unexpected behavior.

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 03:46:10 +01:00
Michael Niedermayer
87ecefdab0 elbg: change utility_inc to 64bit
Fixes integer overflow
Fixes Ticket3462

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 03:12:18 +01:00
Michael Niedermayer
d003a0cd2e avformat/mp3enc: use av_copy_packet()
Fixes double free
Fixes Ticket3476

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-22 01:26:48 +01:00
Michael Niedermayer
1b4f2fb165 avcodec/snowdec: also print qbias and mvscale in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 21:05:00 +01:00
Michael Niedermayer
2fb388fc9d avcodec/snowdec: forward error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 21:02:02 +01:00
Michael Niedermayer
296aa4ac01 avcodec/snowdec: return more specific error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 21:01:34 +01:00
Michael Niedermayer
8a5ea5b9ef avcodec/snowenc: simplify spatial_decomposition_count seting code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 20:58:33 +01:00
wm4
76c8fbc5f2 http: never send 'Cookie: (null)' to the server
If a domain has some cookies set, but matching the cookie fails due to
the port being different, get_cookies() succeeds, but sets cookies to
NULL. The caller of get_cookies() didn't check for the NULL value.

This also avoids passing NULL to libc string functions, which is
undefined behavior

Fixes Ticket2180

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 20:32:09 +01:00
Michael Niedermayer
2fd14f062c avcodec/snowenc: allow larger mb variances
Fixes assertion failure
Fixes Ticket3463

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 18:34:54 +01:00
Michael Niedermayer
b4356c9cc2 avcodec/ratecontrol: make (mc_)mb_var_sum(_last) 64bit
This avoids hypothetical integer overflows
2014-03-21 18:34:54 +01:00
Michael Niedermayer
e92a78a409 avcodec/mpegvideo: make mc_mb_var_sum / mb_var_sum 64bit
This avoids a hypothetical integer overflow with very high resolution video

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 18:24:56 +01:00
Michael Niedermayer
c3272674c9 avcodec/mpegvideo: make mc_mb_var_sum_temp / mb_var_sum_temp 64bit
This avoids a hypothetical integer overflow with very high resolution video

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 18:12:58 +01:00
Michael Niedermayer
db55365d0f configure: Try to fix detection of ARM Compiler 5.04
Fixes Ticket 3364

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 17:51:16 +01:00
Michael Niedermayer
9dca02ee54 ffmpeg: dont call exit_program() from a signal hander
This is unsafe and can deadlock amongth other things

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 17:09:56 +01:00
Anshul Maheshwari
6d25e90262 doc/examples/avcodec: information regarding gop_size ignored if frame->pic-type is AV_PICTURE_TYPE_I
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 15:21:15 +01:00
Michael Niedermayer
1cd107f637 avcodec/x86/snowdsp: add missing clobbers to inner_add_yblock_bw_8_obmc_16_bh_even_sse2() and inner_add_yblock_bw_16_obmc_32_sse2()
Note, these functions are currently disabled

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 03:38:48 +01:00
Michael Niedermayer
45ad7bc423 avcodec/snowdec: provide information about the wavelet with -debug 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 02:44:54 +01:00
Michael Niedermayer
19139d8516 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame

Conflicts:
	libavcodec/vaapi.c
	libavcodec/vaapi_internal.h

See: 377cfc28a2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 23:08:58 +01:00
Michael Niedermayer
1ec295a5c5 Merge commit '1b1094a19d9e41baf3253c83841f9e5343cecbd0'
* commit '1b1094a19d9e41baf3253c83841f9e5343cecbd0':
  vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame

Conflicts:
	libavcodec/vdpau_internal.h
	libavcodec/vdpau_vc1.c

See: 2a37e560dc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 22:48:58 +01:00
Michael Niedermayer
4d216420be Merge commit '7948a51b5c3d08e1a1173442a7ff72b220def303'
* commit '7948a51b5c3d08e1a1173442a7ff72b220def303':
  vdpau: don't assume Picture and H264Picture are the same

Conflicts:
	libavcodec/vdpau.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 22:39:54 +01:00
Michael Niedermayer
e98bac82e5 Merge commit '82bb3048013201c0095d2853d4623633d912252f'
* commit '82bb3048013201c0095d2853d4623633d912252f':
  dsputil: Use correct type in me_cmp_func function pointer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 22:36:40 +01:00
Michael Niedermayer
011d83de48 Merge commit '0e083d7e43805db1a978cb57bfa25fda62e8ff18'
* commit '0e083d7e43805db1a978cb57bfa25fda62e8ff18':
  build: Group general components separate from de/encoders in arch Makefiles

Conflicts:
	libavcodec/arm/Makefile
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 22:26:31 +01:00
Michael Niedermayer
3775224b2f Merge commit '54a6e08a650a71fd375551585b0ea40a3a06d228'
* commit '54a6e08a650a71fd375551585b0ea40a3a06d228':
  dsputil: Conditionally compile dsputil code on all architectures

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 22:12:11 +01:00
Michael Niedermayer
ba85bfabf3 Merge commit '5169e688956be3378adb3b16a93962fe0048f1c9'
* commit '5169e688956be3378adb3b16a93962fe0048f1c9':
  dsputil: Propagate bit depth information to all (sub)init functions

Conflicts:
	libavcodec/arm/dsputil_init_arm.c
	libavcodec/arm/dsputil_init_armv5te.c
	libavcodec/arm/dsputil_init_armv6.c
	libavcodec/arm/dsputil_init_neon.c
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/ppc/dsputil_ppc.c
	libavcodec/x86/dsputil_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 22:06:01 +01:00
Michael Niedermayer
a87188ebdb Merge commit 'cf7a2167570e6ccb9dfbd62e9d8ba8f4f065b17e'
* commit 'cf7a2167570e6ccb9dfbd62e9d8ba8f4f065b17e':
  arm: dsputil: K&R formatting cosmetics

Conflicts:
	libavcodec/arm/dsputil_init_arm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:58:16 +01:00
Michael Niedermayer
b20b772474 Merge commit '1675975216ecbea8e4826235f204dc0f4234383f'
* commit '1675975216ecbea8e4826235f204dc0f4234383f':
  ppc: dsputil: Drop trailing semicolon from macros

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:51:17 +01:00
Michael Niedermayer
ba91ac5c0e Merge commit 'b7d24fd4b2213104c001ed504074495568600b9c'
* commit 'b7d24fd4b2213104c001ed504074495568600b9c':
  ppc: dsputil: Merge some declarations and initializations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:50:35 +01:00
Michael Niedermayer
eb680f2ab0 Merge commit 'b045283f2126637477a597f184638ebef09bf898'
* commit 'b045283f2126637477a597f184638ebef09bf898':
  ppc: dsputil: Simplify some ifdeffed function definitions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:44:59 +01:00
Michael Niedermayer
d648ffe446 Merge commit '8bd6f88266740068415f7da0628117f1b802efb9'
* commit '8bd6f88266740068415f7da0628117f1b802efb9':
  ppc: dsputil: Drop some unnecessary parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:44:39 +01:00
Michael Niedermayer
adf82fe4f7 Merge commit '022184a646896c6b27c6cca387039b030685266e'
* commit '022184a646896c6b27c6cca387039b030685266e':
  ppc: dsputil: more K&R formatting cosmetics

Conflicts:
	libavcodec/ppc/gmc_altivec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:30:21 +01:00
Michael Niedermayer
13405ecdfe Merge commit '30f3f959879eee7890973e8cc9ce076450ced111'
* commit '30f3f959879eee7890973e8cc9ce076450ced111':
  ppc: dsputil: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:29:37 +01:00
Michael Niedermayer
047cf46e97 Merge commit '82ee14d2cedd7867920529b408ed6c7ec2f13ff1'
* commit '82ee14d2cedd7867920529b408ed6c7ec2f13ff1':
  ppc: dsputil: comment formatting and wording/grammar improvements

Conflicts:
	libavcodec/ppc/gmc_altivec.c
	libavcodec/ppc/idct_altivec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:09:57 +01:00
Michael Niedermayer
75cc29a8a8 Merge commit 'cce791b17becc99f47e097adb93f4b4bbd382e7e'
* commit 'cce791b17becc99f47e097adb93f4b4bbd382e7e':
  hpeldsp_template: Merge some declarations and initializations

Conflicts:
	libavcodec/hpeldsp_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 21:08:30 +01:00
Michael Niedermayer
76d7676fcc Merge commit '2539cf1c814190a017cb8986b41aa2f949e37fd9'
* commit '2539cf1c814190a017cb8986b41aa2f949e37fd9':
  hpeldsp_template: K&R formatting cosmetics

Conflicts:
	libavcodec/hpeldsp_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 20:52:19 +01:00
Michael Niedermayer
8b66b43128 Merge commit '2972087e398454122a82a970ed07924185175c6d'
* commit '2972087e398454122a82a970ed07924185175c6d':
  hpel_template: Drop some unnecessary parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 20:50:04 +01:00
Michael Niedermayer
da760a64d1 Merge commit 'e8eace32765da4b42ac3c575fdb2c70cce8aa224'
* commit 'e8eace32765da4b42ac3c575fdb2c70cce8aa224':
  hpel_template: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 20:32:27 +01:00
wm4
8b6136d3d1 vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:01:59 +01:00
wm4
1b1094a19d vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame
This gets rid of aliasing completely unrelated structs to Picture.

Fixes the remaining compilation warnings in the vdpau code.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:00:39 +01:00
wm4
7948a51b5c vdpau: don't assume Picture and H264Picture are the same
The code passed H264Picture* and Picture*, and assumed the
hwaccel_picture_private field was in the same place in both
structs. Somehow this happened to work in Libav, but broke in
FFmpeg (and probably subtly breaks in Libav too).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 16:59:46 +01:00
Michael Niedermayer
d3ed8a4d2b ffmpeg: try to avoid calling av_log() from sigterm_handler()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 16:24:17 +01:00
Michael Niedermayer
9d60527a13 configure: fix direct symbol ref support detection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 13:14:33 +01:00
Diego Biurrun
82bb304801 dsputil: Use correct type in me_cmp_func function pointer 2014-03-20 05:03:23 -07:00
Diego Biurrun
0e083d7e43 build: Group general components separate from de/encoders in arch Makefiles
This is in line with how the top-level libavcodec Makefile is structured.
2014-03-20 05:03:23 -07:00
Diego Biurrun
54a6e08a65 dsputil: Conditionally compile dsputil code on all architectures 2014-03-20 05:03:23 -07:00
Diego Biurrun
5169e68895 dsputil: Propagate bit depth information to all (sub)init functions
This avoids recalculating the value over and over again.
2014-03-20 05:03:23 -07:00
Diego Biurrun
cf7a216757 arm: dsputil: K&R formatting cosmetics 2014-03-20 05:03:23 -07:00
Diego Biurrun
1675975216 ppc: dsputil: Drop trailing semicolon from macros
This allows for a more natural macro usage.
2014-03-20 05:03:22 -07:00
Diego Biurrun
b7d24fd4b2 ppc: dsputil: Merge some declarations and initializations 2014-03-20 05:03:22 -07:00
Diego Biurrun
b045283f21 ppc: dsputil: Simplify some ifdeffed function definitions 2014-03-20 05:03:22 -07:00
Diego Biurrun
8bd6f88266 ppc: dsputil: Drop some unnecessary parentheses 2014-03-20 05:03:22 -07:00
Diego Biurrun
022184a646 ppc: dsputil: more K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Diego Biurrun
30f3f95987 ppc: dsputil: K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Diego Biurrun
82ee14d2ce ppc: dsputil: comment formatting and wording/grammar improvements 2014-03-20 05:03:22 -07:00
Diego Biurrun
cce791b17b hpeldsp_template: Merge some declarations and initializations 2014-03-20 05:03:22 -07:00
Diego Biurrun
2539cf1c81 hpeldsp_template: K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Diego Biurrun
2972087e39 hpel_template: Drop some unnecessary parentheses 2014-03-20 05:03:22 -07:00
Diego Biurrun
e8eace3276 hpel_template: K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Michael Niedermayer
3d04b1aab1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  float-dsp-test: do not use C99's predefined  __func__

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 12:53:41 +01:00
Janne Grunau
6a74ebc34d float-dsp-test: do not use C99's predefined __func__
It is not supported by all compilers on FATE. Fixes "some test were
skipped" errors.
2014-03-20 11:16:06 +01:00
James Almer
32291ba6ea swresample: add swri_resample_float_sse
At least two times faster than the C version.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-20 06:01:06 +01:00
Ben Avison
e555e1bc39 truehd: tune VLC decoding for ARM.
Profiling on a Raspberry Pi revealed the best performance to correspond
with VLC_BITS = 5. Results for overall audio decode and the get_vlc2 function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     348.8  20.1     339.6  15.1    88.8%       +2.7%  (insignificant)
6:2 function  38.1   8.1      26.4   4.1     100.0%      +44.5%
8:2 total     339.1  15.4     324.5  15.5    99.4%       +4.5%
8:2 function  33.8   7.0      27.3   5.6     99.7%       +23.6%
6:6 total     604.6  20.8     572.8  20.6    100.0%      +5.6%
6:6 function  95.8   8.4      68.9   8.2     100.0%      +39.1%
8:8 total     766.4  17.6     741.5  21.2    100.0%      +3.4%
8:8 function  106.0  11.4     86.1   9.9     100.0%      +23.1%

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 22:24:32 +01:00
Michael Niedermayer
f502234f93 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  float_dsp: Use LOCAL_ALIGNED for instead of DECLARE_ALIGNED within functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 21:20:14 +01:00
Michael Niedermayer
9da88d5e56 Merge commit '606cc8afa1cb782311f68560c8f9bad978cdcc32'
* commit '606cc8afa1cb782311f68560c8f9bad978cdcc32':
  configure: ppc: Disable ldbrx instruction by default

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 21:14:32 +01:00
Michael Niedermayer
2ef6c0fdf5 Merge commit 'af9481d7019d46c9f18c4ccac77a5d0c54cf6004'
* commit 'af9481d7019d46c9f18c4ccac77a5d0c54cf6004':
  mxf: Lowercase UL strings

Conflicts:
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 21:09:16 +01:00
Michael Niedermayer
3e59db606e Merge commit '6920fb2b33f84b114ea4561ae1c623f4a26562e5'
* commit '6920fb2b33f84b114ea4561ae1c623f4a26562e5':
  mxf: Verbose debug logging

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 20:54:35 +01:00
Michael Niedermayer
8263c14691 Merge commit '842ea36c747eb6537c4236114346cb7a3e9a8df1'
* commit '842ea36c747eb6537c4236114346cb7a3e9a8df1':
  mxf: Override faulty PreviousPartition entries

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 20:46:52 +01:00
Michael Niedermayer
bd9e0127c9 Merge commit '92ebb332157195b7c1212e734c5668afbf19cf2b'
* commit '92ebb332157195b7c1212e734c5668afbf19cf2b':
  mxf: Add additional H264 PictureEssenceCoding

Conflicts:
	libavformat/mxf.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 20:39:05 +01:00
Martin Storsjö
ae23809184 float_dsp: Use LOCAL_ALIGNED for instead of DECLARE_ALIGNED within functions
This fixes fate-float_dsp-test on RVCT 4.0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-19 20:02:34 +02:00
Michael Niedermayer
dde16f5aae avcodec/mjpegdec: Switch default interlaced polarity for MJPG to 1
Fixes Ticket3229

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 18:16:42 +01:00
Michael Niedermayer
493296800c avcodec/mjpegdec: parse avid data from extradata
Makes no difference for any file tested but is needed
for following bug-fix

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 18:16:42 +01:00
Michael Niedermayer
046a75eea0 avcodec/mjpeg: print info from parse_avid() if requested
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 18:16:42 +01:00
Michael Niedermayer
98f9aa389b avcodec/mjpegdec: switch interlaced_polarity to 0 for PAL AVID
0 should have been the default, this change should make no difference
but this is needed for the following bugfix

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 18:16:42 +01:00
Michael Niedermayer
1083c479eb avcodec/mjpegdec: factorize parse_avid out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 18:16:42 +01:00
Diego Biurrun
606cc8afa1 configure: ppc: Disable ldbrx instruction by default
Only enable it for CPUs that support it.
This restores the behavior prior to 7a650caf.
2014-03-19 17:14:11 +01:00
Luca Barbato
af9481d701 mxf: Lowercase UL strings
The specification uses lower case most of the time.
2014-03-19 12:04:15 +01:00
Luca Barbato
6920fb2b33 mxf: Verbose debug logging
Print the UL in code format and in the short format used by the
specification.
2014-03-19 12:04:06 +01:00
Luca Barbato
842ea36c74 mxf: Override faulty PreviousPartition entries
Some files set the PreviousPartition field to point to its own offset.

If we are parsing forward the Previous partition is immediately known
and its value could be used, otherwise we can safely point to the
header.

Reported-By: Jean Baptiste Kempf <jb@videolan.org>
2014-03-19 11:56:33 +01:00
Luca Barbato
92ebb33215 mxf: Add additional H264 PictureEssenceCoding
Unbreak some MXF Proxy files.
2014-03-19 11:51:08 +01:00
Carl Eugen Hoyos
074db4b764 Add APIchanges entry and bump libswscale micro version for making gray16 full-scale. 2014-03-19 09:11:22 +01:00
Carl Eugen Hoyos
5e3689caed Add the H.264 decoder as a dependency for the fate-mkv test. 2014-03-19 03:00:19 +01:00
Carl Eugen Hoyos
57fdc74c34 Add one forgotten named inline asm operand in libavcodec/x86/motion_est.c. 2014-03-19 03:00:19 +01:00
Michael Niedermayer
ce9d3daa8a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aarch64: float_dsp NEON assembler

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 02:52:08 +01:00
Michael Niedermayer
a2339ef7b9 Merge commit '1b51b7ba00ed72b6ce4c3bcd6897839caa32478c'
* commit '1b51b7ba00ed72b6ce4c3bcd6897839caa32478c':
  libopenjpeg: Support rgba64 decoding

See: b7a928b2d1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 02:43:04 +01:00
Michael Niedermayer
1d8e97c79c Merge commit '8f45bd1433a1d8534d7b3997219c4ca31a669042'
* commit '8f45bd1433a1d8534d7b3997219c4ca31a669042':
  libopenjpeg: Support rgba64 encoding

Conflicts:
	libavcodec/libopenjpegenc.c

See: 36397ea1c7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 01:32:05 +01:00
Michael Niedermayer
543a46e0d1 Merge commit '1ea9fa15c3f9074f6199f68bdd6258c5a2bb89e0'
* commit '1ea9fa15c3f9074f6199f68bdd6258c5a2bb89e0':
  libopenjpeg: K&R formatting cosmetics

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-19 01:06:29 +01:00
Matt Oliver
8236747511 Automatically change MANGLE() into named inline asm operands when direct symbol reference in inline asm are not supported.
This is part of the patch-set for intel C inline asm on windows support

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 23:39:30 +01:00
Matt Oliver
b2d3a45598 avcodec/x86/mlpdsp: Only use asm when non-local inline asm lables are supported
This is part of the patch-set for intel C inline asm on windows support

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 23:37:50 +01:00
Janne Grunau
dbd12523a4 aarch64: float_dsp NEON assembler
Ported from arm NEON and added vector_dmul_scalar.

Functions between 1.5 and 5 times faster than the C implementations
using Apple's clang-503.0.19 on A7.
2014-03-18 22:56:07 +01:00
Carl Eugen Hoyos
37c07d4529 swscale/utils: Fix color range of gray16
Improves rgb -> gray16 conversion

Fixes Ticket3422

The pam and png output files look visually similar, in both cases the
dynamics increase to 0x0 -> 0xfffb.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 22:15:15 +01:00
Vittorio Giovara
1b51b7ba00 libopenjpeg: Support rgba64 decoding 2014-03-18 21:54:31 +01:00
Carl Eugen Hoyos
8f45bd1433 libopenjpeg: Support rgba64 encoding 2014-03-18 21:54:31 +01:00
Vittorio Giovara
1ea9fa15c3 libopenjpeg: K&R formatting cosmetics 2014-03-18 21:54:25 +01:00
Michael Niedermayer
05d7059ac6 avcodec/h264pred_template: fix declarations after statements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 20:53:37 +01:00
Yogender Kumar Gupta
6f7ca1f55b avcodec/h264: fix Lossless Decoding (Profile 244) for 8x8 Intra Prediction
This is limited to the case where x264_build = -1, to not break x264 decoding

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 20:37:26 +01:00
Michael Niedermayer
7ab315ec69 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  float_dsp: add test program and use it as fate test

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 20:04:28 +01:00
Michael Niedermayer
61ad2b42a1 Merge commit 'd961a79eb07a8911540a0bd356d68ae0cf93c6a1'
* commit 'd961a79eb07a8911540a0bd356d68ae0cf93c6a1':
  sbrdsp: move #if to disable all educational code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 19:59:00 +01:00
Michael Niedermayer
ae9b468b08 Merge commit 'c829b35c08ad8e1df45cca1cd12f084cf1183d07'
* commit 'c829b35c08ad8e1df45cca1cd12f084cf1183d07':
  lavc: er: remove unused variable size

No change as the variable is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 19:52:44 +01:00
James Almer
3d48cbc56c swresample: reuse COMMON_CORE asm where possible
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 16:08:34 +01:00
Daniel Verkamp
cf3fccce06 ff_put_wav_header: remove manual byte counting
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 15:54:37 +01:00
James Almer
7c8bf09edd swresample: change COMMON_CORE_INT16 asm from SSSE3 to SSE2
pshuf+paddd is slightly faster than phaddd.
The real gain is in pre-ssse3 processors like AMD K8 and K10, which get
a big boost in performance compared to the mmxext version

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 15:00:50 +01:00
Michael Niedermayer
c56d25c476 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  svq3: directly set pix_fmt and color_range

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 14:08:40 +01:00
Michael Niedermayer
7ae5cadb0a Merge commit 'ca80e15814b77efe8d0ff5a5b0220754bb6c4065'
* commit 'ca80e15814b77efe8d0ff5a5b0220754bb6c4065':
  mpegts: Forward error codes in various functions

Conflicts:
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 13:30:20 +01:00
Michael Niedermayer
ceb0d79f46 Merge commit '86ba2327e1cf35c6f77d5fb516a1a7a8dce0b98a'
* commit '86ba2327e1cf35c6f77d5fb516a1a7a8dce0b98a':
  mpegts: K&R formatting cosmetics

Conflicts:
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 13:19:24 +01:00
Janne Grunau
f0f687446e float_dsp: add test program and use it as fate test 2014-03-18 13:08:00 +01:00
Janne Grunau
d961a79eb0 sbrdsp: move #if to disable all educational code
Avoids a warning of the unused function 'autocorrelate'.
2014-03-18 13:08:00 +01:00
Janne Grunau
c829b35c08 lavc: er: remove unused variable size
The code using it was removed in d66e305bd1.
2014-03-18 13:07:52 +01:00
Vittorio Giovara
3795ec6858 svq3: directly set pix_fmt and color_range 2014-03-18 08:21:29 +01:00
Keiji Costantini
ca80e15814 mpegts: Forward error codes in various functions
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-18 08:20:35 +01:00
Keiji Costantini
86ba2327e1 mpegts: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-18 08:07:43 +01:00
Michael Niedermayer
48f7d5f0cf avfilter/src_movie: Check that the pixel format hasnt changed
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 03:59:20 +01:00
Michael Niedermayer
aa86cccd11 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix TARGET_SAMPLES and TARGET_PATH for some fate tests.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 02:07:24 +01:00
Marton Balint
2daf6be011 MAINTAINERS: add myself az mpegts demuxer maintainer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 02:05:44 +01:00
Michael Niedermayer
8ab8070784 avcodec/utils: fix sizeof(AVFrame) dependence in avcodec_encode_audio2()
This is a bit tricky, we allocate a correctly sized AVFrame but then only
copy the compile time AVFrame size, this is to ensure that user applications
which do not use the correct av frame API dont end with out of array reads.
Note, applications using the correct API have set extended_data and the
changed code will never be executed for them.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-18 02:03:30 +01:00
Carl Eugen Hoyos
bb97bcec6b Fix TARGET_SAMPLES and TARGET_PATH for some fate tests.
This allows running more fate tests on remote targets
without the source tree.
2014-03-18 01:29:50 +01:00
James Almer
aa1f38015c x86/synth_filter: improve FMA version
Replace mulps+subps with fnmaddps, resulting in two less instructions inside the
inner loops.
About 1% faster FMA3 performance.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 21:04:15 +01:00
Andrey Utkin
e10ab43614 doc/examples: Add example transcoding.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 20:56:33 +01:00
Michael Niedermayer
e21235f9b9 avformat/mov: call mov_rewrite_dvd_sub_extradata() after parsing dimensions from tkhd
This also moves mov_rewrite_dvd_sub_extradata() to mov.c

Fixes: NeroRecodeSample.mp4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 18:36:25 +01:00
Michael Niedermayer
8ba432bc56 avformat/mov: fill in subtitle dimensions after parsing tkhd
Sample: NeroRecodeSample.mp4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 18:21:11 +01:00
Michael Niedermayer
b6ad5893ce avformat/isom: only write the size if its non zero in mov_rewrite_dvd_sub_extradata()
Fixes regression with NeroRecodeSample.mp4

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 17:09:33 +01:00
Michael Niedermayer
f6f3c85c0e avformat/isom: Simplify mov_rewrite_dvd_sub_extradata()
This avoids the 2nd buffer and fixes the palette truncated check

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 17:06:30 +01:00
Michael Niedermayer
b1eb92a6bc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libx264: check color_range

Conflicts:
	libavcodec/libx264.c

See: 48d39c8786
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 16:33:28 +01:00
Michael Niedermayer
34e325efa5 Merge commit 'bf0d7da7cbbf869605086c2a47cdf87f0a533e24'
* commit 'bf0d7da7cbbf869605086c2a47cdf87f0a533e24':
  ljpeg: check color_range

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 16:23:01 +01:00
Michael Niedermayer
987b873049 Merge commit '2183432e6dc8aedf1ef3db63006a2a8195479abd'
* commit '2183432e6dc8aedf1ef3db63006a2a8195479abd':
  mdec: set color_range

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 16:14:28 +01:00
Michael Niedermayer
020baa0be6 Merge commit '1c1fbc70cae44c10af8ff865826e31c17bc9f347'
* commit '1c1fbc70cae44c10af8ff865826e31c17bc9f347':
  mjpeg: set color_range

Conflicts:
	libavcodec/mjpegdec.c

See: 2f870e262e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 16:12:25 +01:00
Michael Niedermayer
ca0e6fa731 Merge commit '6612a03d7470af4aa6b8aa313b1eff013691d181'
* commit '6612a03d7470af4aa6b8aa313b1eff013691d181':
  fraps: set color_range

Conflicts:
	libavcodec/fraps.c

See: 79f452f4e6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 15:58:02 +01:00
Michael Niedermayer
1c79ca272d Merge commit '5b1b91cfb82d56c09846c68b09d2b8b7c8faccc4'
* commit '5b1b91cfb82d56c09846c68b09d2b8b7c8faccc4':
  tiff: Support rgba encoding

Conflicts:
	libavcodec/tiffenc.c

See: d7fc100694
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 15:55:18 +01:00
Michael Niedermayer
ba7cdb970f Merge commit '6d78e852fbf3cab438a2085bcb64b90457c4a851'
* commit '6d78e852fbf3cab438a2085bcb64b90457c4a851':
  img2: add j2c file extension

Conflicts:
	libavformat/img2enc.c

See: e8df18270a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 15:51:45 +01:00
Michael Niedermayer
c738ffcf2c Merge commit '58c215961a9067bb670387bbd72286c30de04b93'
* commit '58c215961a9067bb670387bbd72286c30de04b93':
  raw, nut: Support rgba64 encoding

Conflicts:
	libavcodec/raw.c
	libavformat/nut.c

See: edf34c346e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 15:43:55 +01:00
Michael Niedermayer
3731c40989 Merge commit 'cccac7654f3f6b82967bc6ae08b35ae8b4fbe1a9'
* commit 'cccac7654f3f6b82967bc6ae08b35ae8b4fbe1a9':
  png: Support rgb48 and rgba64 encoding

Conflicts:
	libavcodec/pngenc.c

See: f94ce3bcab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 15:33:17 +01:00
Michael Niedermayer
a00d4c5956 Merge commit 'c598b569fb3d1f4b6c4868fe64f6989254df5186'
* commit 'c598b569fb3d1f4b6c4868fe64f6989254df5186':
  png: K&R formatting cosmetics

Conflicts:
	libavcodec/png.c
	libavcodec/pngdec.c
	libavcodec/pngenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 15:29:42 +01:00
Michael Niedermayer
b361a0bf1f Merge commit 'f7518f1a0e0a1788c303de3c6198da07e575710c'
* commit 'f7518f1a0e0a1788c303de3c6198da07e575710c':
  codec_desc: update dvaudio tag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 14:53:05 +01:00
Michael Niedermayer
85d28a8656 Merge commit '6d7b22fb8f247a51e668c83b2f2460a9b3e948a8'
* commit '6d7b22fb8f247a51e668c83b2f2460a9b3e948a8':
  isom: fix C99-style declaration

See: cd0982e189
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 14:50:53 +01:00
Michael Niedermayer
6b1ca1709f Merge commit '1481d24c3a0abf81e1d7a514547bd5305232be30'
* commit '1481d24c3a0abf81e1d7a514547bd5305232be30':
  RGBA64 pixel formats

Conflicts:
	doc/APIchanges
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	libavutil/version.h
	libswscale/utils.c

See: 9569a3c9f4
See: 92afb43162, as well as others
Note: the enum values added in libav are incompatible/different to what ffmpeg used since 3 years
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 14:41:13 +01:00
Michael Niedermayer
ad9a6e19e1 Merge commit 'd24e9a99a40166bf881ccd2e3ae5688af4726658'
* commit 'd24e9a99a40166bf881ccd2e3ae5688af4726658':
  h264 does not depend on mpegvideo any more

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:46:23 +01:00
Michael Niedermayer
3e3b0b3a40 avcodec/vdpau: update ff_vdpau_h264_set_reference_frames() to H264Picture
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:35:23 +01:00
Michael Niedermayer
dc226c023d Merge commit '7245a0ae872d4f65396a37d13f5d1d2c2efe11c2'
* commit '7245a0ae872d4f65396a37d13f5d1d2c2efe11c2':
  mpegvideo: remove h264-only fields

Conflicts:
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:31:28 +01:00
Michael Niedermayer
329a3286d6 Merge commit 'be039278b5ebd8075d90a3508db2aed5adf59e02'
* commit 'be039278b5ebd8075d90a3508db2aed5adf59e02':
  mpegvideo: move ff_draw_horiz_band() to mpegutils.c

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:23:48 +01:00
Michael Niedermayer
29be9b5301 avcodec/dxva2: fix pointers after H264Picture
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:22:40 +01:00
Michael Niedermayer
2a37e560dc avcodec/vdpau: fix ff_vdpau_get_surface_id() argument after H264Picture
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 13:05:13 +01:00
Michael Niedermayer
377cfc28a2 avcodec/vaapi: fix pointer types after H264Picture changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 12:45:36 +01:00
Michael Niedermayer
9517900bef Merge commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b'
* commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b':
  mpegvideo: move mpegvideo formats-related defines to mpegutils.h

Conflicts:
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c
	libavcodec/h264_mvpred.h
	libavcodec/svq1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 12:36:48 +01:00
Michael Niedermayer
3e5833802e Merge commit '136034d86b5cb1819a2c3e6ecdfeb05dcba7140d'
* commit '136034d86b5cb1819a2c3e6ecdfeb05dcba7140d':
  h264: Remove MotionEstContext and move the relevant fields to H264Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 12:26:09 +01:00
Michael Niedermayer
bb3c0571d3 Merge commit 'e3c2d0f3d41f79f7be7ba944aaca2e287c7d5c7c'
* commit 'e3c2d0f3d41f79f7be7ba944aaca2e287c7d5c7c':
  h264: Replace mpegvideo-specific MAX_THREADS by private define

Conflicts:
	libavcodec/h264.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 06:17:29 +01:00
Michael Niedermayer
a81a2b514e Merge commit '5d1c2e53ab3ce27b48c138d22bb01ff8e8304f27'
* commit '5d1c2e53ab3ce27b48c138d22bb01ff8e8304f27':
  h264: Replace mpegvideo-specific MAX_PICTURE_COUNT by private define

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 06:05:19 +01:00
Michael Niedermayer
6102dda1d7 avcodec/h264: h264_set_erpic() clear destination
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:52:05 +01:00
Michael Niedermayer
c237e88d51 Merge commit '9b749c8274f6b6f35dde2cf29b99fa4f719abf87'
* commit '9b749c8274f6b6f35dde2cf29b99fa4f719abf87':
  h264: move relevant fields from Picture to H264Picture

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:51:27 +01:00
Michael Niedermayer
4f22e39e65 avcodec/error_resilience: fix the case when MVs are not available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:36:17 +01:00
Michael Niedermayer
8ef9dcf1d7 avcodec/mpegvideo: ff_mpeg_set_erpic() clear destination
Fixes crash

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:13:59 +01:00
Michael Niedermayer
533bc4c0a3 Merge commit 'd66e305bd1b4f3e91ae4e7e549148509d0811672'
* commit 'd66e305bd1b4f3e91ae4e7e549148509d0811672':
  er: move relevant fields from Picture to ERPicture

Conflicts:
	libavcodec/error_resilience.c
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:08:46 +01:00
Michael Niedermayer
3dab9e804a Merge commit '1c79b1625d4d257bfd01eccb84cc0ab355fb9a9e'
* commit '1c79b1625d4d257bfd01eccb84cc0ab355fb9a9e':
  h264: directly use frames in ff_h264_draw_horiz_band()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 04:41:36 +01:00
Michael Niedermayer
3ddf9b5b77 Merge commit '75af13a'
* commit '75af13a':
  mpegvideo: directly use frames in ff_draw_horiz_band()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 04:35:48 +01:00
Matt Oliver
b73aae6fe9 avcodec/x86/idct_sse2_xvid: move offsets out of MANGLE()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 04:19:59 +01:00
Michael Niedermayer
8e92ff2546 avcodec/h264: be more tolerant on what pixel format changes trigger reinits
Fixes Ticket3260

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 02:37:29 +01:00
Matt Oliver
9eb3f11c55 Add missing external declarations.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 00:48:09 +01:00
Matt Oliver
590805b7c3 Fixed 64bit conformance with mvzbl.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 00:13:50 +01:00
Michael Niedermayer
2f955d572b swscale/x86/swscale: remove unused constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 00:06:45 +01:00
Vittorio Giovara
75177b2f5e libx264: check color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
bf0d7da7cb ljpeg: check color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
2183432e6d mdec: set color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
1c1fbc70ca mjpeg: set color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
6612a03d74 fraps: set color_range 2014-03-16 23:31:30 +01:00
Carl Eugen Hoyos
5b1b91cfb8 tiff: Support rgba encoding 2014-03-16 23:31:29 +01:00
Jean First
6d78e852fb img2: add j2c file extension
Some applications use the j2c extension for jpeg2000 codestream files.
2014-03-16 23:31:29 +01:00
Carl Eugen Hoyos
58c215961a raw, nut: Support rgba64 encoding 2014-03-16 23:29:51 +01:00
Carl Eugen Hoyos
cccac7654f png: Support rgb48 and rgba64 encoding 2014-03-16 23:29:51 +01:00
Vittorio Giovara
c598b569fb png: K&R formatting cosmetics 2014-03-16 23:29:50 +01:00
Vittorio Giovara
f7518f1a0e codec_desc: update dvaudio tag 2014-03-16 23:05:48 +01:00
Michael Niedermayer
6d7b22fb8f isom: fix C99-style declaration 2014-03-16 23:05:48 +01:00
Jean First
1481d24c3a RGBA64 pixel formats
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-16 23:05:47 +01:00
Vittorio Giovara
d24e9a99a4 h264 does not depend on mpegvideo any more 2014-03-16 23:05:47 +01:00
Vittorio Giovara
7245a0ae87 mpegvideo: remove h264-only fields 2014-03-16 23:05:47 +01:00
Vittorio Giovara
be039278b5 mpegvideo: move ff_draw_horiz_band() to mpegutils.c
Drop the mpegvideo dependency for svq3 in configure.
2014-03-16 23:05:39 +01:00
Vittorio Giovara
e0c16e4e32 mpegvideo: move mpegvideo formats-related defines to mpegutils.h 2014-03-16 23:04:41 +01:00
Vittorio Giovara
136034d86b h264: Remove MotionEstContext and move the relevant fields to H264Context
Unused buffers scratchpad and temp have been dropped too.
2014-03-16 23:01:01 +01:00
Vittorio Giovara
e3c2d0f3d4 h264: Replace mpegvideo-specific MAX_THREADS by private define 2014-03-16 23:01:01 +01:00
Vittorio Giovara
5d1c2e53ab h264: Replace mpegvideo-specific MAX_PICTURE_COUNT by private define 2014-03-16 23:01:01 +01:00
Vittorio Giovara
9b749c8274 h264: move relevant fields from Picture to H264Picture 2014-03-16 23:01:00 +01:00
Vittorio Giovara
d66e305bd1 er: move relevant fields from Picture to ERPicture
This is done to disentangle ER from mpegvideo. In order to use a
classic Picture, callers can use ff_mpeg_set_erpic() or use a custom function
to set the fields. Please note that buffers need to be allocated before
calling ff_er_frame_end().
2014-03-16 23:01:00 +01:00
Vittorio Giovara
1c79b1625d h264: directly use frames in ff_h264_draw_horiz_band() 2014-03-16 23:01:00 +01:00
Vittorio Giovara
75af13a0e4 mpegvideo: directly use frames in ff_draw_horiz_band() 2014-03-16 23:01:00 +01:00
Michael Niedermayer
0efacc7f9a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacdec: Lower the number of frames required to detect ADTS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 22:38:05 +01:00
Michael Niedermayer
6dd007ad99 Merge commit '0412cb67cda05b08dfca6bfc4ff664ea917fa932'
* commit '0412cb67cda05b08dfca6bfc4ff664ea917fa932':
  aacdec: Don't count probed ADTS frames if there are false positives

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 22:25:15 +01:00
Martin Storsjö
3b1c9eb0ff aacdec: Lower the number of frames required to detect ADTS
For live audio streams, requiring 500 frames for a stream to
be detected is a bit overkill.

This allows live ADTS streams that don't start nicely at
a frame boundary to start up more quickly, e.g.
http://mp3.streampower.be/radio1.aac.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-16 21:04:00 +02:00
Martin Storsjö
0412cb67cd aacdec: Don't count probed ADTS frames if there are false positives
If a portion of the probe buffer seem to resemble ADTS frames,
but some data at the end is a mismatch, disregard the whole
probing attempt. If it actually is ADTS data, there shouldn't be
any mismatches within the sequential frame data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-16 20:58:41 +02:00
Michael Niedermayer
b74792a027 Changelog: move post 2.2 branching entries out of the 2.2 changelog
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 19:15:58 +01:00
Peter Ross
40f88796c6 Phantom Cine demuxer (iteration 2014.3)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 18:24:30 +01:00
Peter Ross
97bb0076c5 avcodec/rawdec: decode 16-bit aligned and packed 'raw' pixel formats where bits_per_coded_sample < 16
The bit packing method is communicted via codec_tag:
    BIT[0]  big-endian packing
    BIT[16] 16-bit little endian packing
    BIT[32] 32-bit little-endian packing

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 18:24:23 +01:00
Jasper Taylor
0d5ae023b2 avfilter/vf_tinterlace: Fix vf_tinterlace mode 6 (interlacex2)
The purpose of this filter mode is to allow interlaced content to
display properly in interlaced video modes, as described in
http://forum.xbmc.org/showthread.php?tid=81834 and
https://github.com/mpv-player/mpv/issues/624#issuecomment-37685195 . The
filter doubles the video frame rate, but does not work properly because:
(1) it does not set the properties of the output stream to indicate the
doubled frame rate, and
(2) it does not set an appropriate PTS on the extra frames.
The attached patch fixes these problems by settling these values the
same way they are set in vf_yadif mode 1 (field) which also doubles the
frame rate.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 17:25:54 +01:00
Michael Niedermayer
9b1d264e87 avformat/movenc: omit avformat ident from isml_manifest for bitexact mode
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 16:34:46 +01:00
Michael Niedermayer
10c14264db avformat/movenc: omit LIBAVCODEC_IDENT for bitexact mode from uuidusmt_tag
This code is apparently not tested by fate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 16:33:34 +01:00
Michael Niedermayer
a17ee4117d avformat/movenc: only ommit encoder tag of the metadata for bitexact mode
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 16:26:35 +01:00
Michael Niedermayer
25bcf24d4d ffmpeg_opt: check that a subtitle encoder is available before auto mapping streams
Fixes Ticket3470

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 15:15:02 +01:00
Michael Niedermayer
267c5723e0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: add a test for the ONE_STR mapping mode of the channelmap filter

Conflicts:
	tests/fate/filter-audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 14:32:47 +01:00
Michael Niedermayer
c198af648a Merge commit 'e843612695007cc623813073754c651ab43021f7'
* commit 'e843612695007cc623813073754c651ab43021f7':
  af_channelmap: fix ONE_STR mapping mode

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 14:18:01 +01:00
Michael Niedermayer
cd0982e189 avformat/isom: fix mix of declaration and statement
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 14:05:14 +01:00
Michael Niedermayer
09680951df Merge commit '8f629a986c46f227abda1811a6ad1f449871ca35'
* commit '8f629a986c46f227abda1811a6ad1f449871ca35':
  isom: convert mp4 dvdsub extradata to vobsub format

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 13:34:38 +01:00
Anton Khirnov
a84c8af042 FATE: add a test for the ONE_STR mapping mode of the channelmap filter 2014-03-16 07:44:03 +01:00
Anton Khirnov
e843612695 af_channelmap: fix ONE_STR mapping mode
get_channel() returns 0 on success

CC:libav-stable@libav.org
2014-03-16 07:43:52 +01:00
Michael Niedermayer
4d17179b37 ffmpeg: fix printing INT64_MIN pts at the end
Fixes Ticket3427

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-16 06:26:40 +01:00
Michael Niedermayer
6c47a4e972 swscale/x86/swscale: fix missing xmm clobbers in yuv2yuvX_sse3()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 22:52:22 +01:00
Michael Niedermayer
8803b970ef ffmpeg_opt: Check ist is valid before using it in audio_channels_map init
Fixes segfault and instead provides an error message
Fixes Ticket3465

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 22:14:08 +01:00
Michael Niedermayer
06a3185e38 avcodec/mpegvideo_enc: dont use direct mode for unaligned input
Fixes Ticket3456

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 14:56:42 +01:00
Michael Niedermayer
da89572004 avcodec: Move STRIDE_ALIGN to internal.h
The next commit/bugfix will need it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 14:56:42 +01:00
wm4
8f629a986c isom: convert mp4 dvdsub extradata to vobsub format
mp4 files embedding DVD subtitles do not use the same extradata format
as the rest of Libav expects. The subtitle decoder in libavcodec in
particular does not understand this format.

Convert the extradata to the vobsub .idx format. mp4 stores the palette
as binary 32 bit ints in YUV. The subtitle resolution is stored
separately in the track header, which we access through AVStream.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-15 14:32:58 +01:00
Peter Ross
847d8af59a avformat/id3v2: decode compilation metadata
Described http://id3.org/iTunes%20Compilation%20Flag

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 04:29:19 +01:00
Peter Ross
ac9bfb1faf avformat/movenc: encode compilation metadata
Fixes ticket #2960.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 04:29:11 +01:00
Peter Ross
dadf668df2 avformat/mov: decode compilation metadata
This flag is known as 'Part of a compilation' in Apple iTunes.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 04:28:58 +01:00
Peter Ross
d1bb17940d avcodec/adpcm: ADPCM_IMA_DK3 packets are padded to 16-bit packet boundary
Fixes ticket #3461.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 01:34:42 +01:00
Michael Niedermayer
41d08ca575 avcodec/arm/cabac: fix inline cabac reader with the UNCHECKED bitstream reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 01:08:45 +01:00
Michael Niedermayer
2b8d28439b avcodec/h264_cabac: move the arm unchecked_bitstream reader special case closer to where the issue is
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 01:02:31 +01:00
Michael Niedermayer
669235e0b3 avcodec/h264_cabac: disable the unchecked bitstream reader for arm & aarch64
The newly added optimizations do not work with the unchecked reader

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-15 00:58:48 +01:00
Yu Xiaolei
fbe9ae482d avfilter: make avfilter_graph_get_filter use const string name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 23:18:59 +01:00
Michael Niedermayer
c17dea05f7 configure: factorize mips arch extensions out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 19:49:02 +01:00
Michael Niedermayer
f6122ed375 configure: remove unused identifer that was added by cleanups
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 19:47:46 +01:00
Michael Niedermayer
a8a84fa8b2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  codec_desc: group image codecs together

Conflicts:
	libavcodec/codec_desc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 19:36:46 +01:00
Michael Niedermayer
4d10b93bd1 Merge commit 'd42ea06798b83d87397449ec6aad40cb5ea46e43'
* commit 'd42ea06798b83d87397449ec6aad40cb5ea46e43':
  codec_desc: add missing .long_name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 19:24:09 +01:00
Michael Niedermayer
11e66d20d5 Merge commit '999d31d354f1f0616a09691913659ac0abdcc899'
* commit '999d31d354f1f0616a09691913659ac0abdcc899':
  codec_desc: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 19:16:04 +01:00
Michael Niedermayer
56a498bbba Merge commit '7a650caf6436ddfe417bdcb5ce520c96c779af7b'
* commit '7a650caf6436ddfe417bdcb5ce520c96c779af7b':
  configure: Split some logical blocks off from HAVE_LIST

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 19:08:14 +01:00
Michael Niedermayer
332f169855 Merge commit 'd0adf55c05beaf80420747dded2d1884bff377ec'
* commit 'd0adf55c05beaf80420747dded2d1884bff377ec':
  configure: Split some logical blocks off from CONFIG_LIST

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 18:40:29 +01:00
Michael Niedermayer
2b94189e96 Merge commit '07ea8a7e943ea6a7bdcd736e2fc3ed357dc15c57'
* commit '07ea8a7e943ea6a7bdcd736e2fc3ed357dc15c57':
  configure: Group and sort function/struct/type checks

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 18:30:03 +01:00
Michael Niedermayer
5e5d8ace8a Merge commit '36b822b8be7f9ecd6f9d87acaa786b128a873cd9'
* commit '36b822b8be7f9ecd6f9d87acaa786b128a873cd9':
  arm: dsputil: Drop restrict keyword from add_pixels_clamped_armv6 prototype

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 18:25:04 +01:00
Vittorio Giovara
f20977921b codec_desc: group image codecs together 2014-03-14 17:50:35 +01:00
Vittorio Giovara
d42ea06798 codec_desc: add missing .long_name 2014-03-14 17:50:35 +01:00
Vittorio Giovara
999d31d354 codec_desc: K&R formatting cosmetics 2014-03-14 17:50:34 +01:00
James Almer
722b48bc12 configure: add missing avx2 support check
AVX2 support was introduced in Yasm 1.2.0, and some distros
like Debian still feature version 1.1.0

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 17:28:00 +01:00
Peter Ross
7380201451 avcodec/adpcm: squelch 'mismatch in coded sample count' warning for AV_CODEC_ID_ADPCM_EA_R2/3
These ADPCM codecs include a per-frame flag that enables a raw 16-bit mode. Therefore
the the number of samples returned by get_nb_samples() is only ever approximate.

Fixes ticket #3460.

Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 17:21:59 +01:00
Michael Niedermayer
2c9e5cb1a6 avcodec/arm/fft_fixed_neon: reduce diff by 2 spaces to libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 14:28:28 +01:00
Diego Biurrun
7a650caf64 configure: Split some logical blocks off from HAVE_LIST 2014-03-14 13:45:40 +01:00
Diego Biurrun
d0adf55c05 configure: Split some logical blocks off from CONFIG_LIST 2014-03-14 13:45:40 +01:00
Diego Biurrun
07ea8a7e94 configure: Group and sort function/struct/type checks
Group checks into logical groups and sort alphabetically within those groups
unless checks have close coupling. Keep closely coupled checks together.
2014-03-14 13:45:40 +01:00
Diego Biurrun
36b822b8be arm: dsputil: Drop restrict keyword from add_pixels_clamped_armv6 prototype
The function is assigned to a function pointer that does not have the
restrict keyword for that parameter.

This fixes compilation for MSVC builds that don't recognize "restrict",
broken since ed9625eb62.
2014-03-14 13:45:40 +01:00
Michael Niedermayer
b5bdd04f08 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aac: K&R formatting cosmetics

Conflicts:
	libavformat/aacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 12:00:45 +01:00
Michael Niedermayer
0c402810fa Merge commit '2e708f17083fc41f10161f2406d57ec154c75468'
* commit '2e708f17083fc41f10161f2406d57ec154c75468':
  ljpeg: fix duplicated pixel format entry

Conflicts:
	libavcodec/ljpegenc.c

No change as there was no duplicate entry in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 11:52:28 +01:00
Michael Niedermayer
dded5ed9c5 avcodec/libx265: fill headers in extradata
Fixes Ticket3457

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 04:26:24 +01:00
Michael Niedermayer
f3d3e3fa4e Merge commit 'eb2b8bce39c93d16a02656238248c6cf697f447f'
* commit 'eb2b8bce39c93d16a02656238248c6cf697f447f':
  bfin: Use more sensible file names

Conflicts:
	libavcodec/bfin/pixels.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 02:12:45 +01:00
Michael Niedermayer
be60e20498 Merge commit '929ec39ec4497827f7530f2aaa31646ef35462ee'
* commit '929ec39ec4497827f7530f2aaa31646ef35462ee':
  bfin: hpeldsp: Split no_rnd pixel operations off into a separate file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 02:06:21 +01:00
Michael Niedermayer
26f4a50982 Merge commit 'a7cc4ac9d99bd586c8939f4312f8c9e56d5f5730'
* commit 'a7cc4ac9d99bd586c8939f4312f8c9e56d5f5730':
  bfin: dsputil: Unconditionally compile hpel pixels code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 02:04:56 +01:00
Michael Niedermayer
866e11b33b Merge commit '13ae97b210f35d77290f4edb0d6846269271729a'
* commit '13ae97b210f35d77290f4edb0d6846269271729a':
  bfin: hpeldsp: "nornd" ---> "no_rnd" function name suffix for consistency

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 02:04:42 +01:00
Michael Niedermayer
c49797637f Merge commit 'bbf0ef57e9d2d7bb2995f664dd74c8229bca25f5'
* commit 'bbf0ef57e9d2d7bb2995f664dd74c8229bca25f5':
  bfin: Move all assembly declarations only used within one .c file there

Conflicts:
	libavcodec/bfin/dsputil_bfin.h
	libavcodec/bfin/vp3_bfin.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:57:41 +01:00
Michael Niedermayer
cbf190f7ae Merge commit '80173c71bab3b8817c148837bdc920557018f428'
* commit '80173c71bab3b8817c148837bdc920557018f428':
  bfin: hpeldsp: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:56:45 +01:00
Michael Niedermayer
3141b04c7f Merge commit 'da785231ea0b82b5c2526babbb2871c935b21a87'
* commit 'da785231ea0b82b5c2526babbb2871c935b21a87':
  bfin: Refactor duplicated assembly-related macros

Conflicts:
	libavcodec/bfin/hpel_pixels_bfin.S

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:56:25 +01:00
Michael Niedermayer
91a61c4c15 Merge commit 'e99af2a3b1660b4f328335149980064692097cad'
* commit 'e99af2a3b1660b4f328335149980064692097cad':
  bfin: Refactor duplicated l1_text/l1_data_B macros

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:49:44 +01:00
Michael Niedermayer
edf4261350 Merge commit 'a3e7562621bd96ce909e07149c419b6ba85cc54f'
* commit 'a3e7562621bd96ce909e07149c419b6ba85cc54f':
  bfin: dsputil: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:48:57 +01:00
Michael Niedermayer
a4369dbb8f Merge commit '1e33095b83addd8d24bc16bd08aa734fa161d515'
* commit '1e33095b83addd8d24bc16bd08aa734fa161d515':
  bfin: dsputil: Drop broken and trivial profiling code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:48:39 +01:00
Michael Niedermayer
2b02c1a698 Merge commit 'f5f099766816aab3ad805c63e85f12cb664dc9a8'
* commit 'f5f099766816aab3ad805c63e85f12cb664dc9a8':
  bfin: hpeldsp: Drop broken put_pixels_*_xy2_nornd bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:43:08 +01:00
Michael Niedermayer
c686cf23aa Merge commit '14efbe694ac5beff98f5c5e652c166603f1738cf'
* commit '14efbe694ac5beff98f5c5e652c166603f1738cf':
  bfin: dsputil: Drop broken vsad bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:42:47 +01:00
Michael Niedermayer
0f95856834 Merge commit '671c8785596ea4a45817ba302289004ff456630a'
* commit '671c8785596ea4a45817ba302289004ff456630a':
  bfin: dsputil: Remove unused global variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:42:20 +01:00
Michael Niedermayer
5dd97d5809 Merge commit 'db3f61a04f1f66746660f921bb2780ddf1141f3b'
* commit 'db3f61a04f1f66746660f921bb2780ddf1141f3b':
  x86: dsputil_init: Drop some unnecessary parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:25:57 +01:00
Michael Niedermayer
27cab16ce7 Merge commit '441b093915717afa7d24be34bdab2a4911b30a57'
* commit '441b093915717afa7d24be34bdab2a4911b30a57':
  x86: dsputil_init: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:25:36 +01:00
Michael Niedermayer
236874a571 Merge commit '4cb4680c1087a2cd13d4b0c9167a2eb3147f99d8'
* commit '4cb4680c1087a2cd13d4b0c9167a2eb3147f99d8':
  x86: dsputil_x86.h: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:25:19 +01:00
Luca Barbato
afdf94689c aac: K&R formatting cosmetics
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-14 01:24:31 +01:00
Michael Niedermayer
925ce6faf4 Merge commit 'f8bbebecfd7ea3dceb7c96f931beca33f80a3490'
* commit 'f8bbebecfd7ea3dceb7c96f931beca33f80a3490':
  x86: motion_est: K&R formatting cosmetics

Conflicts:
	libavcodec/x86/motion_est.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:20:43 +01:00
Michael Niedermayer
b7a5f5dc66 Merge commit 'a36947c167d7278b891453083b57dc56b7a7f5c5'
* commit 'a36947c167d7278b891453083b57dc56b7a7f5c5':
  dsputilenc_mmx: K&R formatting cosmetics

Conflicts:
	libavcodec/x86/dsputilenc_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:09:57 +01:00
Michael Niedermayer
d926c4b240 Merge commit '38675229a879aa5258a8c71891fc8cbf74cf139f'
* commit '38675229a879aa5258a8c71891fc8cbf74cf139f':
  dsputil_mmx: K&R formatting cosmetics

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 01:01:37 +01:00
Michael Niedermayer
55f53f6c29 Merge commit '6a8b35dc88b4a1a452f192fbbf53ae7f59bc3f23'
* commit '6a8b35dc88b4a1a452f192fbbf53ae7f59bc3f23':
  dsputilenc_mmx: Merge two assignment blocks with identical conditions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:57:25 +01:00
Michael Niedermayer
fdf4eb7911 Merge commit '945673f792eb4141860ed66664156df685f7b7f0'
* commit '945673f792eb4141860ed66664156df685f7b7f0':
  dsputil_template: K&R formatting cosmetics

Conflicts:
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:52:07 +01:00
Michael Niedermayer
3a27f968f9 Merge commit 'acd2b8e42df25d46440583f93c12e5f285aebb31'
* commit 'acd2b8e42df25d46440583f93c12e5f285aebb31':
  rnd_avg.h: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:45:26 +01:00
Michael Niedermayer
6016b8329b Merge commit '05563ccacc98fd185affdbf8cbaf094caf36b852'
* commit '05563ccacc98fd185affdbf8cbaf094caf36b852':
  dsputil: cosmetics: Lose camelCase on ff_cropTbl and ff_squareTbl names

Conflicts:
	libavcodec/bit_depth_template.c
	libavcodec/motionpixels_tablegen.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:39:51 +01:00
Michael Niedermayer
16f619f57c Merge commit '635ec127d4bc0c49ae0ac4a50acd3da1ca8c2150'
* commit '635ec127d4bc0c49ae0ac4a50acd3da1ca8c2150':
  dsputil: Merge variable declarations and initializations

Conflicts:
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:37:28 +01:00
Michael Niedermayer
dd7c2e9bce Merge commit 'bb12c2e9c00e3d3c393885849b8fa31cd849dc92'
* commit 'bb12c2e9c00e3d3c393885849b8fa31cd849dc92':
  dsputil: K&R formatting cosmetics

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:31:48 +01:00
Michael Niedermayer
db94b144e9 Merge commit '503dda7d4f5b4d76eed0239e9da66993a182b009'
* commit '503dda7d4f5b4d76eed0239e9da66993a182b009':
  dsputil.h: K&R formatting cosmetics

Conflicts:
	libavcodec/dsputil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:18:38 +01:00
Michael Niedermayer
153557dfcb Merge commit '8199bb7be0db423bcbbd252d092386634fcf1d68'
* commit '8199bb7be0db423bcbbd252d092386634fcf1d68':
  dsputil.h: Clean up comments

Conflicts:
	libavcodec/dsputil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:10:31 +01:00
Michael Niedermayer
ea2bd139b7 Merge commit '0a8f91b1fbc1b627d8db8c734c812beb32102936'
* commit '0a8f91b1fbc1b627d8db8c734c812beb32102936':
  dsputil: Remove disabled avg_no_rnd_qpel leftovers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:07:47 +01:00
Michael Niedermayer
4104eb44e6 Merge commit '55519926ef855c671d084ccc151056de9e3d3a77'
* commit '55519926ef855c671d084ccc151056de9e3d3a77':
  x86: Make function prototype comments in assembly code consistent

Conflicts:
	libavcodec/x86/sbrdsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:01:30 +01:00
Michael Niedermayer
a9b1936a4e Merge commit 'edd1f833fa145eb9c5026877c699ebe6efca00a0'
* commit 'edd1f833fa145eb9c5026877c699ebe6efca00a0':
  x86: h264_idct_10_bit: Use proper type in function prototype comments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-14 00:00:16 +01:00
Michael Niedermayer
1c788eaca9 Merge commit '831a1180785a786272cdcefb71566a770bfb879e'
* commit '831a1180785a786272cdcefb71566a770bfb879e':
  Update dsputil- and SIMD-related comments to match reality more closely

Conflicts:
	libavcodec/x86/hpeldsp.asm
	libavutil/arm/float_dsp_init_arm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:59:56 +01:00
Michael Niedermayer
be879af217 Merge commit 'd1184b8110b4847013bf25222e6809eb3462913c'
* commit 'd1184b8110b4847013bf25222e6809eb3462913c':
  arm: dsputil: Add a bunch of missing #includes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:41:40 +01:00
Michael Niedermayer
d61e1156be Merge commit '17608f6ee3d2088cdb8d1e704276d8b34f01160d'
* commit '17608f6ee3d2088cdb8d1e704276d8b34f01160d':
  x86: Add some more missing headers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:41:17 +01:00
Michael Niedermayer
e52d97a7ac Merge commit 'fd9e2221bd3b2c5d62605134b62efa26eb9ef0f7'
* commit 'fd9e2221bd3b2c5d62605134b62efa26eb9ef0f7':
  ppc: Add some missing headers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:40:55 +01:00
Michael Niedermayer
5dce8e56c6 Merge commit 'ed9625eb62be1e1c44cecdd73ea0d80077a15d48'
* commit 'ed9625eb62be1e1c44cecdd73ea0d80077a15d48':
  dsputil: Move intreadwrite.h #include from header file to .c files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:30:43 +01:00
Michael Niedermayer
f5e6b49cd2 Merge commit '9103185bd116930f90b847090e66a64fa9971ce2'
* commit '9103185bd116930f90b847090e66a64fa9971ce2':
  dsputil: Drop ff_check_alignment() function

Conflicts:
	libavcodec/dsputil.c

Not merged, as this check can safe the user and us some time
debuging misalignment issues.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 23:24:50 +01:00
Michael Niedermayer
1306359ea9 Merge commit '49676eb7301e775d08bdbba5380159b106ee258f'
* commit '49676eb7301e775d08bdbba5380159b106ee258f':
  dsputil: Remove prototypes for nonexisting optimization functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 22:56:08 +01:00
Vittorio Giovara
2e708f1708 ljpeg: fix duplicated pixel format entry 2014-03-13 22:55:37 +01:00
Michael Niedermayer
8ccf21839a Merge commit '08dba0e1c3df3b71270ebce4527bffa155b91b97'
* commit '08dba0e1c3df3b71270ebce4527bffa155b91b97':
  x86: mpegvideoenc: Remove some remnants of the long-gone libmpeg2 IDCT

Not merged as the removed code is still used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 22:52:52 +01:00
Michael Niedermayer
b7cffc81b7 avcodec/sparc: add note about the removial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 22:37:38 +01:00
Michael Niedermayer
3fc2362aef Merge commit 'b4dd424d96f09f9bafb88e47f37df65dc4529143'
* commit 'b4dd424d96f09f9bafb88e47f37df65dc4529143':
  Remove all SPARC architecture optimizations

Conflicts:
	Makefile
	configure
	libavcodec/sparc/dsputil_vis.c
	libavcodec/sparc/dsputil_vis.h
	libavcodec/sparc/hpeldsp_vis.c
	libavcodec/sparc/simple_idct_vis.c
	libavcodec/sparc/vis.h
	libswscale/sparc/yuv2rgb_vis.c
	libswscale/swscale_internal.h

If someone wants to maintain these (or other) SPARC optimizations, please
contact me or ffmpeg-devel.
I am happy to revert this removial if theres someone considering to
maintain this code.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 22:35:47 +01:00
Michael Niedermayer
fb1b70c1ed libavcodec/sh4: add note about the removial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 22:24:19 +01:00
Michael Niedermayer
7ac1e27f0f Merge commit 'd6096a67422534918405abb46dafbbac4608cbc3'
* commit 'd6096a67422534918405abb46dafbbac4608cbc3':
  Remove all SH4 architecture optimizations

Conflicts:
	libavcodec/sh4/dsputil_sh4.c
	libavcodec/sh4/dsputil_sh4.h
	libavcodec/sh4/idct_sh4.c
	libavcodec/sh4/sh4.h

If someone wants to maintain these (or other) SH4 optimizations, please
contact me or ffmpeg-devel.
I am happy to revert this removial if theres someone considering to
maintain this code.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 22:06:01 +01:00
Michael Niedermayer
cbfc9046e1 Merge commit 'bbb64356cca65d7a2a33f59b2267ee58f28a061a'
* commit 'bbb64356cca65d7a2a33f59b2267ee58f28a061a':
  build: Record dependency of eatqi decoder on dsputil

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:40:41 +01:00
Michael Niedermayer
96b02460fc Merge commit 'b5f112d820934ade66e809ef30bfcfc8210929f8'
* commit 'b5f112d820934ade66e809ef30bfcfc8210929f8':
  configure: Add explicit dsputil dependency to mpegvideoenc

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:35:56 +01:00
Michael Niedermayer
daded4f89a Merge commit 'cd832f032f945a57a1f1dd385942c2fadc7ce4e5'
* commit 'cd832f032f945a57a1f1dd385942c2fadc7ce4e5':
  ffv1: Drop bogus dependency on dsputil

Conflicts:
	configure
	libavcodec/ffv1.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:26:49 +01:00
Michael Niedermayer
981aa02338 Merge commit '0e29c5e1285eeb5b4842d96d00dfe06898cd87e5'
* commit '0e29c5e1285eeb5b4842d96d00dfe06898cd87e5':
  build: Drop stray LPC dependency on dsputil

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:23:42 +01:00
Michael Niedermayer
2631d155ba Merge commit '6cd76e5412d794dbd1cc6ab0e4c9f2ee53cf028f'
* commit '6cd76e5412d794dbd1cc6ab0e4c9f2ee53cf028f':
  build: Drop stray MJPEG encoder dependency on dsputil

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:17:46 +01:00
Michael Niedermayer
07dbdcf9d0 Merge commit '9ecf1b62f37ef9cbdf2d7300a052cd704c4ba731'
* commit '9ecf1b62f37ef9cbdf2d7300a052cd704c4ba731':
  build: Drop stray MLP decoder dependency on dsputil

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:16:13 +01:00
Michael Niedermayer
ecf16f039d Merge commit '7d7be44f3e8bc14224540a477ef0607f18964421'
* commit '7d7be44f3e8bc14224540a477ef0607f18964421':
  build: Drop stray PNG decoder dependency on dsputil

Conflicts:
	configure

No change as the stray dependency was not in our configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:10:43 +01:00
Michael Niedermayer
4b50de88a4 Merge commit '88b240646f57a62299c6c4c4d7554f0a80c3a29a'
* commit '88b240646f57a62299c6c4c4d7554f0a80c3a29a':
  build: Drop stray mpc8 decoder dependency on dsputil

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:06:42 +01:00
Michael Niedermayer
a47dfdfa7d Merge commit 'fb9a5bdc516b75b4ba1e36ca2223dec46571dea3'
* commit 'fb9a5bdc516b75b4ba1e36ca2223dec46571dea3':
  Prepare for 11_alpha1 Release

Conflicts:
	RELEASE

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 21:01:14 +01:00
Michael Niedermayer
8b02dfd37c avutil/timestamp: Warn about missing __STDC_FORMAT_MACROS for C++ use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 17:32:15 +01:00
Diego Biurrun
eb2b8bce39 bfin: Use more sensible file names
Drop non-informative _bfin suffix, rename some files for consistency with
other architectures, rename others to reflect their content.
2014-03-13 08:15:53 -07:00
Diego Biurrun
929ec39ec4 bfin: hpeldsp: Split no_rnd pixel operations off into a separate file
This saves some space in configurations that do not enable hpeldsp.
2014-03-13 08:15:53 -07:00
Diego Biurrun
a7cc4ac9d9 bfin: dsputil: Unconditionally compile hpel pixels code
The functions it contains are used from unconditionally compiled code.
2014-03-13 08:15:53 -07:00
Diego Biurrun
13ae97b210 bfin: hpeldsp: "nornd" ---> "no_rnd" function name suffix for consistency 2014-03-13 08:15:53 -07:00
Diego Biurrun
bbf0ef57e9 bfin: Move all assembly declarations only used within one .c file there
This is done similarly for all other architectures.
2014-03-13 08:15:53 -07:00
Diego Biurrun
80173c71ba bfin: hpeldsp: K&R formatting cosmetics 2014-03-13 08:15:52 -07:00
Diego Biurrun
da785231ea bfin: Refactor duplicated assembly-related macros 2014-03-13 08:15:52 -07:00
Diego Biurrun
e99af2a3b1 bfin: Refactor duplicated l1_text/l1_data_B macros 2014-03-13 08:15:52 -07:00
Diego Biurrun
a3e7562621 bfin: dsputil: K&R formatting cosmetics
Also add a few #endif comments.
2014-03-13 08:15:52 -07:00
Diego Biurrun
1e33095b83 bfin: dsputil: Drop broken and trivial profiling code 2014-03-13 08:15:52 -07:00
Diego Biurrun
f5f0997668 bfin: hpeldsp: Drop broken put_pixels_*_xy2_nornd bits
They were marked as broken and disabled in 2009 and will never get fixed.
2014-03-13 08:15:52 -07:00
Diego Biurrun
14efbe694a bfin: dsputil: Drop broken vsad bits
They were marked as broken and disabled in 2009 and will never get fixed.
2014-03-13 08:15:52 -07:00
Diego Biurrun
671c878559 bfin: dsputil: Remove unused global variable 2014-03-13 08:15:51 -07:00
Diego Biurrun
db3f61a04f x86: dsputil_init: Drop some unnecessary parentheses 2014-03-13 08:15:51 -07:00
Diego Biurrun
441b093915 x86: dsputil_init: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
4cb4680c10 x86: dsputil_x86.h: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
f8bbebecfd x86: motion_est: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
a36947c167 dsputilenc_mmx: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
38675229a8 dsputil_mmx: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
6a8b35dc88 dsputilenc_mmx: Merge two assignment blocks with identical conditions 2014-03-13 08:15:51 -07:00
Diego Biurrun
945673f792 dsputil_template: K&R formatting cosmetics 2014-03-13 08:15:50 -07:00
Diego Biurrun
acd2b8e42d rnd_avg.h: K&R formatting cosmetics 2014-03-13 08:15:50 -07:00
Diego Biurrun
05563ccacc dsputil: cosmetics: Lose camelCase on ff_cropTbl and ff_squareTbl names
Also switch from "tbl" to "tab" name suffixes.
2014-03-13 08:12:44 -07:00
Diego Biurrun
635ec127d4 dsputil: Merge variable declarations and initializations 2014-03-13 08:12:44 -07:00
Diego Biurrun
bb12c2e9c0 dsputil: K&R formatting cosmetics 2014-03-13 08:12:39 -07:00
Diego Biurrun
503dda7d4f dsputil.h: K&R formatting cosmetics 2014-03-13 08:11:00 -07:00
Diego Biurrun
8199bb7be0 dsputil.h: Clean up comments 2014-03-13 08:11:00 -07:00
Diego Biurrun
0a8f91b1fb dsputil: Remove disabled avg_no_rnd_qpel leftovers 2014-03-13 08:10:52 -07:00
Michael Niedermayer
f385a099c1 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix hardware detection on aix.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 15:00:53 +01:00
Michael Niedermayer
bb6de15d92 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: Match stream id

Conflicts:
	cmdutils.c
	doc/fftools-common-opts.texi

See: ea07063fd8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 14:21:27 +01:00
Diego Biurrun
55519926ef x86: Make function prototype comments in assembly code consistent
This helps grepping for functions, among other things.
2014-03-13 05:50:29 -07:00
Diego Biurrun
edd1f833fa x86: h264_idct_10_bit: Use proper type in function prototype comments 2014-03-13 05:50:29 -07:00
Diego Biurrun
831a118078 Update dsputil- and SIMD-related comments to match reality more closely 2014-03-13 05:50:29 -07:00
Diego Biurrun
d1184b8110 arm: dsputil: Add a bunch of missing #includes 2014-03-13 05:50:28 -07:00
Diego Biurrun
17608f6ee3 x86: Add some more missing headers 2014-03-13 05:50:28 -07:00
Diego Biurrun
fd9e2221bd ppc: Add some missing headers 2014-03-13 05:50:28 -07:00
Diego Biurrun
ed9625eb62 dsputil: Move intreadwrite.h #include from header file to .c files 2014-03-13 05:50:28 -07:00
Diego Biurrun
9103185bd1 dsputil: Drop ff_check_alignment() function
The function is supposed to confirm that the compiler provided enough
alignment, but in practice it is only run in certain code paths and
insufficient alignment problems are restricted to legacy compilers.
2014-03-13 05:50:28 -07:00
Diego Biurrun
49676eb730 dsputil: Remove prototypes for nonexisting optimization functions 2014-03-13 05:50:28 -07:00
Diego Biurrun
08dba0e1c3 x86: mpegvideoenc: Remove some remnants of the long-gone libmpeg2 IDCT 2014-03-13 05:50:28 -07:00
Diego Biurrun
b4dd424d96 Remove all SPARC architecture optimizations
SPARC is no longer being used in any multimedia-related fields and the
VIS optimizations only represent a maintenance burden.
2014-03-13 05:50:28 -07:00
Diego Biurrun
d6096a6742 Remove all SH4 architecture optimizations
SH4 has been end-of-lifed and no more test machines are available.
2014-03-13 05:50:28 -07:00
Diego Biurrun
bbb64356cc build: Record dependency of eatqi decoder on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun
b5f112d820 configure: Add explicit dsputil dependency to mpegvideoenc
Previously, it was an implicit dependency through mpegvideo. Change
this, as implicit dependencies can cause all sorts of trouble.
2014-03-13 05:50:27 -07:00
Diego Biurrun
cd832f032f ffv1: Drop bogus dependency on dsputil
ffv1 does not use any part of the dsputil framework.
2014-03-13 05:50:27 -07:00
Diego Biurrun
0e29c5e128 build: Drop stray LPC dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun
6cd76e5412 build: Drop stray MJPEG encoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun
9ecf1b62f3 build: Drop stray MLP decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun
7d7be44f3e build: Drop stray PNG decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun
88b240646f build: Drop stray mpc8 decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Reinhard Tartler
fb9a5bdc51 Prepare for 11_alpha1 Release 2014-03-13 08:24:11 -04:00
Luca Barbato
81498ceb5b avconv: Match stream id
Quite useful to select by pid in MPEG-TS.
2014-03-13 11:59:34 +01:00
Carl Eugen Hoyos
aac9e56759 Fix hardware detection on aix. 2014-03-13 08:34:45 +01:00
James Almer
7d7487e85c x86/float_dsp: add ff_vector_{fmul_add, fmac_scalar}_fma3
~7% faster than AVX

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 04:34:05 +01:00
Michael Niedermayer
12ce58bebd doc/texi2pod: fix encoding type
docs say:
'A document having more than one "=encoding" line should be considered an error. '

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 03:54:48 +01:00
Michael Niedermayer
72d44f1583 mvformat/movenc: fix IMX
fixes Ticket3351

Tested-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-13 01:28:43 +01:00
Michael Niedermayer
11ed7ec092 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  http: Properly initialize icy headers string

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 23:24:19 +01:00
Michael Niedermayer
b5c6b23acd doc/platform: mention that yuvis gas-preprocessor is currently missing some changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 23:08:41 +01:00
Michael Niedermayer
98eb99d20b tools/build_libstagefright: switch git urls to https
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 23:07:00 +01:00
Michael Niedermayer
675a66a93b doc: switch github urls to https
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 23:05:26 +01:00
Michael Niedermayer
835f41376d Merge commit 'd15c536123a44362ace6299c391a492c90b83fc7'
* commit 'd15c536123a44362ace6299c391a492c90b83fc7':
  doc: Point to the correct, actually maintained gas-preprocessor repo

Conflicts:
	doc/platform.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 23:02:56 +01:00
Michael Niedermayer
e5920425b0 Merge commit '5a7f382a5d33d9a26890affe6c8c5070a48dfc22'
* commit '5a7f382a5d33d9a26890affe6c8c5070a48dfc22':
  armv6: vp8: use explicit labels in motion compensation asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 22:03:00 +01:00
Michael Niedermayer
58b8d268d9 Merge commit 'aa807425395caa17a85ed2833133278e8bd44a76'
* commit 'aa807425395caa17a85ed2833133278e8bd44a76':
  configure: Support older version of openjpeg1

Conflicts:
	configure

Not merged as the problematic pkg config code wasnt merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 21:45:02 +01:00
Michael Niedermayer
990f956ce6 Merge commit 'b4e355c89e23664b8dac26936bf3fa7e7bc2110f'
* commit 'b4e355c89e23664b8dac26936bf3fa7e7bc2110f':
  copy_block: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 21:35:58 +01:00
Michael Niedermayer
aa175983a1 Merge commit 'b3c6ee199e75bbad2908253f11e871500dd38531'
* commit 'b3c6ee199e75bbad2908253f11e871500dd38531':
  configure: Group toolchain options together in help output

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 21:05:00 +01:00
Michael Niedermayer
7e6c6c45ec Merge commit 'e77a2ea9505863e50bf013706f66bf8b7325e524'
* commit 'e77a2ea9505863e50bf013706f66bf8b7325e524':
  http: Declare more parameters as const where possible

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 20:50:29 +01:00
Alessandro Ghedini
6998a9f4c4 http: Properly initialize icy headers string
The icy_metadata_headers string never gets initialized, so,
during the first call to av_strlcatf() in parse_icy(),
strlen() will be called on a pointer to uninitialized memory.
At best this causes some garbage data to be left at the
start of the string.

By initializing icy_metadata_headers to the empty string, the
first call to strlen() will always return 0, so that data is
appended from the start of the string.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-12 20:13:36 +01:00
Martin Storsjö
d15c536123 doc: Point to the correct, actually maintained gas-preprocessor repo
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-12 20:43:55 +02:00
Janne Grunau
5a7f382a5d armv6: vp8: use explicit labels in motion compensation asm
The integrated arm assembler in clang-503.0.38 (Xcode-5.1) fails
to assemble a branch to 'label + offset' in thumb mode.
2014-03-12 15:06:05 +01:00
Luca Barbato
aa80742539 configure: Support older version of openjpeg1
It should work best for debian stable and people not installing the .pc
file.
2014-03-12 14:06:21 +01:00
Vittorio Giovara
b4e355c89e copy_block: K&R formatting cosmetics 2014-03-12 14:01:41 +01:00
Diego Biurrun
b3c6ee199e configure: Group toolchain options together in help output 2014-03-12 14:00:19 +01:00
Michael Niedermayer
ad341b3bc6 update doc/APIchanges
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 13:51:09 +01:00
Fred Rothganger
3f3229cd10 avformat: extracting NTP timestamp from RTCP
For muxing, it accepts
both 0 and AV_NOPTS_VALUE. For demuxing, it will present
AV_NOPTS_VALUE when start_time_realtime is unknown.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 13:33:14 +01:00
Bryce McLeod
581957cd86 avformat/movenc: rescale when copying duration to timecode track
Fixes Ticket3453

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 12:52:27 +01:00
Stephen Hutchinson
5336cd6374 doc/general.texi: Adjust the notes on AviSynth
FFmpeg provides local copies of these headers in compat/avisynth/,
and there is no restriction against using 2.5.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 12:45:24 +01:00
Martin Storsjö
e77a2ea950 http: Declare more parameters as const where possible
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-12 13:24:58 +02:00
Michael Niedermayer
3ddf76ee07 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Revert "Allow stream-copying grayscale mov files."

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 12:20:06 +01:00
Michael Niedermayer
1f36ebf63a avformat: revert %c changes from d92024f18f
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 05:09:28 +01:00
Michael Niedermayer
cd25412f59 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  http: Allow setting a Content-Type for POST requests

Conflicts:
	libavformat/http.c

See: c01d1d4ddf
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 04:53:54 +01:00
Michael Niedermayer
0d487654ea Merge commit 'fe568b3d27ca2c5cca3878b2a7a3a968e605aec4'
* commit 'fe568b3d27ca2c5cca3878b2a7a3a968e605aec4':
  http: Improve options descriptions

Conflicts:
	doc/protocols.texi
	libavformat/http.c

See: 255ec768da
See: 0a7cd74043
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 04:43:21 +01:00
Michael Niedermayer
1cc9468289 Merge commit 'ab76d9f628ad46e1d3bbf26c5bf1f87083f239ab'
* commit 'ab76d9f628ad46e1d3bbf26c5bf1f87083f239ab':
  http: Always allow no-op seek

Conflicts:
	libavformat/http.c

See: 857841c1b6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 04:29:54 +01:00
Michael Niedermayer
76a939d0e5 Merge commit '2ec33d27127251bbc45e1f88e60691ad59cf2319'
* commit '2ec33d27127251bbc45e1f88e60691ad59cf2319':
  http: Add support for selecting a request range

Conflicts:
	doc/protocols.texi
	libavformat/http.c

See: d52882faef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 04:12:30 +01:00
Michael Niedermayer
f36da16ede Merge commit 'ddfc98906373d1f17f6205cedd14c68d7a75995f'
* commit 'ddfc98906373d1f17f6205cedd14c68d7a75995f':
  http: Support setting custom User-Agent

Conflicts:
	doc/protocols.texi
	libavformat/http.c

See: 2bb1c713cc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 03:45:16 +01:00
Michael Niedermayer
c03af3ac1c Merge commit 'e58c85b0686892960042232e51c77168b264838a'
* commit 'e58c85b0686892960042232e51c77168b264838a':
  http: Export Content-Type information

Conflicts:
	doc/protocols.texi
	libavformat/http.c

See: 76d851b656
See: 20899c54f0
See: 255ec768da
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 03:33:14 +01:00
Michael Niedermayer
ca2369cdee Merge commit '8075c3d8bb1f6aade0cc7c5c40db9bc1bcd84cab'
* commit '8075c3d8bb1f6aade0cc7c5c40db9bc1bcd84cab':
  http: Add support reading ICY metadata

Conflicts:
	doc/protocols.texi
	libavformat/http.c

See: a92fbe16f2
See: 636273d3d4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 03:18:12 +01:00
Michael Niedermayer
21d4c571fa Merge commit '4ff99ab3d7d5576e99e6b8a411b4a44500ed88fa'
* commit '4ff99ab3d7d5576e99e6b8a411b4a44500ed88fa':
  http: Refactor process_line

Conflicts:
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 02:52:17 +01:00
Michael Niedermayer
df41cbee85 Merge commit '7a2fddb4480121712df560cf619c1c3566cae3ff'
* commit '7a2fddb4480121712df560cf619c1c3566cae3ff':
  http: K&R formatting cosmetics

Conflicts:
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 02:45:34 +01:00
Michael Niedermayer
b752d02f42 Merge commit '78b21c1d7177e1d61ad3c9225f67699da089aa7c'
* commit '78b21c1d7177e1d61ad3c9225f67699da089aa7c':
  http: Drop doxy comments

Conflicts:
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 02:39:46 +01:00
Michael Niedermayer
03fd80dcb1 Merge commit '55a215ba63d9fa79cd7ee265ee2e777ee86b200c'
* commit '55a215ba63d9fa79cd7ee265ee2e777ee86b200c':
  http: Return meaningful error codes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 02:34:02 +01:00
Michael Niedermayer
3a05d7a9e5 Merge commit '390acbea0697a60300f249602dbf701e04274693'
* commit '390acbea0697a60300f249602dbf701e04274693':
  configure: Provide --pkg-config-flags

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 02:22:16 +01:00
Michael Niedermayer
85e1368f57 Merge commit 'db9d39b4b5e5a3c20aeecf787ddeadd88f4906cf'
* commit 'db9d39b4b5e5a3c20aeecf787ddeadd88f4906cf':
  avformat: Report the duration analysis reached

Conflicts:
	libavformat/utils.c

See: 8529f9b36b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 02:11:47 +01:00
Michael Niedermayer
dbc3e1109c avformat/flvdec: discard inconsistent timestamps
Fixes Ticket3425

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 01:50:41 +01:00
Michael Niedermayer
774668763a ffplay: display information on stream cycling
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 00:32:38 +01:00
Clément Bœsch
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
Alessandro Ghedini
fe568b3d27 http: Improve options descriptions
Add documentation where missing.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Anssi Hannula
ab76d9f628 http: Always allow no-op seek
This also allows checking stream position as per ffurl_seek() doxy.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Anssi Hannula
2ec33d2712 http: Add support for selecting a request range
Comment from Reimar Döffinger included as pro memoria.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Clément Bœsch
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
Michael Niedermayer
e58c85b068 http: Export Content-Type information
Bug-Id: https://bugs.debian.org/740421

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Luca Barbato
8075c3d8bb http: Add support reading ICY metadata
Export the metadata as a icy_metadata_packet avoption.
Based on the work of wm4 and Alessandro Ghedini.

Bug-Id: https://bugs.debian.org/739936

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 22:08:57 +01:00
Luca Barbato
4ff99ab3d7 http: Refactor process_line 2014-03-11 22:08:56 +01:00
Luca Barbato
7a2fddb448 http: K&R formatting cosmetics 2014-03-11 22:08:56 +01:00
Luca Barbato
78b21c1d71 http: Drop doxy comments 2014-03-11 22:08:56 +01:00
Luca Barbato
55a215ba63 http: Return meaningful error codes 2014-03-11 22:08:56 +01:00
Luca Barbato
390acbea06 configure: Provide --pkg-config-flags
Should be used only to pass extra flags to pkgconf invocation,
e.g. --static.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 21:55:11 +01:00
Luca Barbato
db9d39b4b5 avformat: Report the duration analysis reached 2014-03-11 21:55:11 +01:00
Michael Niedermayer
50a3c82302 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Add section about AviSynth support

Conflicts:
	doc/general.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 21:24:54 +01:00
Michael Niedermayer
a1b92569db Merge commit '5926603ad65e5fd4fefe8f0d72c381059f71cd59'
* commit '5926603ad65e5fd4fefe8f0d72c381059f71cd59':
  configure: Document --pkg-config option

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 21:12:57 +01:00
Michael Niedermayer
28ee7757f5 Merge commit 'd92024f18fa3d69937cb2575f3a8bf973df02430'
* commit 'd92024f18fa3d69937cb2575f3a8bf973df02430':
  lavf: more correct printf format specifiers

Conflicts:
	libavformat/asfdec.c
	libavformat/cafdec.c
	libavformat/dxa.c
	libavformat/framecrcenc.c
	libavformat/hnm.c
	libavformat/iff.c
	libavformat/mov.c
	libavformat/mxfdec.c
	libavformat/rmdec.c
	libavformat/rpl.c
	libavformat/smacker.c
	libavformat/xmv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 21:05:34 +01:00
Michael Niedermayer
5171ae781a avcodec/vorbisdec: use the stored previous window type only when the actual previous is not known
Fixes Ticket3432

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 20:45:29 +01:00
Stephen Hutchinson
908836e207 doc: Add section about AviSynth support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-11 20:37:19 +01:00
Carl Eugen Hoyos
54bbe3e2a6 Revert "Allow stream-copying grayscale mov files."
This reverts commit 691dec6201.

The commit did not fix ticket #3215, it was fixed one commit earlier.
The revert may break other use-cases but they should be fixed differently,
the offending commit introduced too many problems.

Fixes ticket #3377.
Fixes ticket #3378.
2014-03-11 20:09:07 +01:00
Luca Barbato
5926603ad6 configure: Document --pkg-config option 2014-03-11 19:52:40 +01:00
Michael Niedermayer
5d75730c58 avformat/avidec: Check required demuxing buffer sizes in guess_ni_flag()
Fixes Ticket3421

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 19:20:47 +01:00
Michael Niedermayer
01000064c9 avidec: calculate missing bitrates from index
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 19:20:47 +01:00
Michael Niedermayer
52b6db848d Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Decode png images without iend chunk.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 13:57:55 +01:00
Anshul Maheshwari
61f96be08a Documented av_dump_format
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 13:24:53 +01:00
Matt Oliver
99b48fd448 Fix modplug linkage on Windows.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 13:22:49 +01:00
Diego Biurrun
d92024f18f lavf: more correct printf format specifiers 2014-03-11 13:13:41 +01:00
Carl Eugen Hoyos
666749f669 Decode png images without iend chunk.
Fixes ticket #3357.
2014-03-11 09:56:38 +01:00
Michael Niedermayer
e161c1bbfc avcodec/mjpegdec: support adob transform 2
Fixes Ticket3426

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 04:20:23 +01:00
Michael Niedermayer
e893440a28 configure: make it possible to disable xlib dependancy
The unconditional dependancy was added in 7671dd7cd7

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 03:12:34 +01:00
Michael Niedermayer
9a05e8a385 doc/APIchanges: fill in dates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 01:21:56 +01:00
Michael Niedermayer
4775424446 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Define ff_log2_run[] in libavcodec/internal.h.
  Replace an incorrect av_free() in movenc.c with av_freep().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 00:53:24 +01:00
Michael Niedermayer
4da8dc64be Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: miscellaneous cosmetics

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-11 00:09:56 +01:00
Michael Niedermayer
cbe92a9302 Merge commit '77e9123fe5d64b0960158de6e1713d3c6c7878a7'
* commit '77e9123fe5d64b0960158de6e1713d3c6c7878a7':
  lavf: always use av_free

See: 88c8e4afea
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 23:55:41 +01:00
Diego Biurrun
7caf48e036 configure: miscellaneous cosmetics
Sort lists of components. Add some whitespace where it helps readability.
Consistently use double instead of single quotes around component lists.
2014-03-10 23:52:52 +01:00
Michael Niedermayer
7f90055470 Merge commit '34bbc81de8a49fbddb92b76dc733f40890480b2b'
* commit '34bbc81de8a49fbddb92b76dc733f40890480b2b':
  lavf: simplify ff_hevc_annexb2mp4_buf

Conflicts:
	libavformat/hevc.c
	libavformat/hevc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 23:38:01 +01:00
Michael Niedermayer
182c674f68 Merge commit '4a8562394b685e83ae4a38a93eef43625755a231'
* commit '4a8562394b685e83ae4a38a93eef43625755a231':
  configure: Use the right pkgconf file for openjpeg

Conflicts:
	configure

No change as the incorrect code wasnt in ffmpegs configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 23:00:55 +01:00
Michael Niedermayer
b73cf4eb15 Merge commit 'ee17be3fdd37f63f4b77676820e387858908b0f4'
* commit 'ee17be3fdd37f63f4b77676820e387858908b0f4':
  hevc: Use get_se_golomb_long

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 22:51:49 +01:00
Michael Niedermayer
d79d5aed6d Merge commit '5eacbb53289570834f9a1acb15fd406ea224eef6'
* commit '5eacbb53289570834f9a1acb15fd406ea224eef6':
  golomb: Add a get_se_golomb_long

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 22:33:32 +01:00
Michael Niedermayer
77e9123fe5 lavf: always use av_free
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-03-10 18:02:55 +01:00
Tim Walker
34bbc81de8 lavf: simplify ff_hevc_annexb2mp4_buf
Use ff_hevc_annexb2mp4 instead of duplicating
its functionality, and update the documentation
to match the new behavior.
2014-03-10 18:02:36 +01:00
Carl Eugen Hoyos
5968415156 Define ff_log2_run[] in libavcodec/internal.h.
This avoids defining the array with different sizes in
different source files.
2014-03-10 13:37:12 +01:00
Carl Eugen Hoyos
d68ac92dc2 Replace an incorrect av_free() in movenc.c with av_freep(). 2014-03-10 13:30:51 +01:00
Michael Niedermayer
27b4d154ca Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Work around broken floating point limits on some systems.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 12:05:02 +01:00
Michael Niedermayer
4c63beeefe Merge commit '8cafeb8bca5d079041739dbd72ccec0ead138eaf'
* commit '8cafeb8bca5d079041739dbd72ccec0ead138eaf':
  mxfdec: Validate parameters to strftime

Conflicts:
	libavformat/mxfdec.c

See: 423089e964
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 11:51:40 +01:00
Luca Barbato
4a8562394b configure: Use the right pkgconf file for openjpeg
The current release of version 1 uses libopenjpeg1.
2014-03-10 11:48:04 +01:00
Luca Barbato
ee17be3fdd hevc: Use get_se_golomb_long
Do not use inline functions that refer to tables present in other
libraries.
2014-03-10 10:59:48 +01:00
Luca Barbato
5eacbb5328 golomb: Add a get_se_golomb_long
Useful in libavformat mostly.
2014-03-10 10:58:37 +01:00
Anton Khirnov
e854b8f9f4 Work around broken floating point limits on some systems.
The values of {FLT,DBL}_{MAX,MIN} macros on some systems (older musl
libc, some BSD flavours) are not exactly representable, i.e.
(double)DBL_MAX == DBL_MAX is false
This violates (at least some interpretations of) the C99 standard and
breaks code (e.g. in vf_fps) like
double f = DBL_MAX;
[...]
if (f == DBL_MAX) { // f has not been changed yet
    [....]
}
2014-03-10 10:27:17 +01:00
Martin Storsjö
8cafeb8bca mxfdec: Validate parameters to strftime
The MSVCRT version of strftime calls the invalid parameter handler
if the struct values in struct tm are invalid. In case no invalid
parameter handler is set for the process, the process is aborted.

This fixes fate failures on MSVC builds since 570af382.

Based on a patch by Hendrik Leppkes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-10 11:11:08 +02:00
Timothy Gu
53eb4e0799 Add fieldmatch test
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 02:59:01 +01:00
Michael Niedermayer
fb0023639e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  matroskaenc: enable Annex B to MP4 conversion for HEVC tracks.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 23:41:02 +01:00
Michael Niedermayer
38aee6408a Merge commit 'a823d0948683bd97dd58556b5740e434166209a8'
* commit 'a823d0948683bd97dd58556b5740e434166209a8':
  matroskaenc: write private data in hvcC format for HEVC.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 23:34:17 +01:00
Michael Niedermayer
88c8e4afea avformat/hevc: fix mix of av_malloc() with free()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 23:27:31 +01:00
Michael Niedermayer
9563e67e07 Merge commit '4f3db5d3418a24f3b90422e98ad75388052c4284'
* commit '4f3db5d3418a24f3b90422e98ad75388052c4284':
  movenc: allow muxing HEVC in MODE_MP4.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 23:13:37 +01:00
Michael Niedermayer
5d5e2bd862 avformat/hevc: Make return codes consistent and more flexible
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 23:12:45 +01:00
Michael Niedermayer
a379813cee Merge commit 'b6c61fb83e876d404ac3b0b3657ebfcafdcd1926'
* commit 'b6c61fb83e876d404ac3b0b3657ebfcafdcd1926':
  movenc: enable Annex B to MP4 conversion for HEVC tracks.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 23:08:33 +01:00
Michael Niedermayer
cb403b2570 avformat: fix hevcs use of golomb from avformat
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:59:46 +01:00
Michael Niedermayer
1b1d77ae9b Merge commit '20b40a597cdd4969cf1147d7c7efee2b6232524b'
* commit '20b40a597cdd4969cf1147d7c7efee2b6232524b':
  movenc: write hvcC tag for HEVC.

Conflicts:
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:48:08 +01:00
Michael Niedermayer
ce1ad8d775 Merge commit '1d9014f0b008485eac4c19d5f5e11ede59237167'
* commit '1d9014f0b008485eac4c19d5f5e11ede59237167':
  movenc: use 'hev1' tag for HEVC in MODE_MOV.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:31:55 +01:00
Michael Niedermayer
7a69ffaf0d Merge commit '3e0175d89a6c5ee8393ae05e1b40abdca1204919'
* commit '3e0175d89a6c5ee8393ae05e1b40abdca1204919':
  riff: add VP9 fourcc

See: eb7f7b797f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:30:58 +01:00
Michael Niedermayer
4aa48e467b Merge commit 'fb0a988f94c3b8907610172295a7f6bf78c57105'
* commit 'fb0a988f94c3b8907610172295a7f6bf78c57105':
  riff: IPJ2 decodes with JPEG2000 decoder

See: b18c27def8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:29:17 +01:00
Michael Niedermayer
0cf6b3b5b7 Merge commit '9e71cc81f3655cacf0f91860fba3043f13b64059'
* commit '9e71cc81f3655cacf0f91860fba3043f13b64059':
  movdec: handle 0x7fff langcode as macintosh per the specs

See: e636aa1a56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:27:37 +01:00
Michael Niedermayer
858d9947e4 Merge commit '8a0bc40545a216a49f43db5d9a42a63961333354'
* commit '8a0bc40545a216a49f43db5d9a42a63961333354':
  libspeex: support ZygoAudio (quality 10 mode)

Conflicts:
	libavformat/isom.c

See: e26b066cd8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:25:41 +01:00
Michael Niedermayer
9f71e5d39e Merge commit '360022bd3b894cc01ea112b275fa4c8f53881808'
* commit '360022bd3b894cc01ea112b275fa4c8f53881808':
  isom: lpcm in mov default to big endian

See: 8b3964ecd1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:23:55 +01:00
Michael Niedermayer
c68e53f272 Merge commit 'db32f14c3dfd75290b57a086183d6577457beac4'
* commit 'db32f14c3dfd75290b57a086183d6577457beac4':
  isom: add "MNG" FourCC

See: 8d0ec6e060
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:22:23 +01:00
Michael Niedermayer
76367f453f Merge commit '073cd30fb4dc1c2a885c62540e3cfaac1f17c21b'
* commit '073cd30fb4dc1c2a885c62540e3cfaac1f17c21b':
  isom: Support MPEG-2 video mov files from FPC5

See: 0aded6bf02
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:21:12 +01:00
Michael Niedermayer
d32245e5b1 Merge commit '31e558fbcfec8fa9fddf564ab8360384706e41c0'
* commit '31e558fbcfec8fa9fddf564ab8360384706e41c0':
  isom: add "NO16" FourCC

Conflicts:
	libavformat/isom.c

See: 96e2507363
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:15:32 +01:00
Michael Niedermayer
2030b3a4ab Merge commit '6509012398435252979e149ea4a73438d2107600'
* commit '6509012398435252979e149ea4a73438d2107600':
  isom: add Radius DV YUV FourCCs

See: a489db6cde
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:14:02 +01:00
Michael Niedermayer
6783b3eb76 avformat/isom: remove duplicated line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:12:37 +01:00
Michael Niedermayer
2f41b18696 Merge commit 'eeae858596a5ce5a84797283f590a16add5704f4'
* commit 'eeae858596a5ce5a84797283f590a16add5704f4':
  isom: Support Sony XAVC in mov

See: 5b9f39860d
See: 6e65e34837
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:11:08 +01:00
Michael Niedermayer
8a5397d88b Merge commit 'c09804684a47e6572ee82ded5d84c8b282815da6'
* commit 'c09804684a47e6572ee82ded5d84c8b282815da6':
  isom: add xd51 hdcam

See: 4110828e15
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 22:06:35 +01:00
Michael Niedermayer
eaaa5801ef Merge commit '4d33873c2990b8d6096f60fef384f0efc4482b55'
* commit '4d33873c2990b8d6096f60fef384f0efc4482b55':
  hevc: make pps/sps ids unsigned where necessary

Conflicts:
	libavcodec/hevc.h
	libavcodec/hevc_ps.c

See: d1e6602665
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 21:44:40 +01:00
Michael Niedermayer
06219db935 Merge commit 'ed06e5d92b4c67b49068d538461fbbe0a53a8c5e'
* commit 'ed06e5d92b4c67b49068d538461fbbe0a53a8c5e':
  hevc: Do not turn 32bit timebases into negative numbers

Conflicts:
	libavcodec/hevc.c

See: bf2ce19e51
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 21:16:33 +01:00
Michael Niedermayer
26568c04a8 Merge commit '6cc94e971933cd38c452172bb048bf760e65cc3e'
* commit '6cc94e971933cd38c452172bb048bf760e65cc3e':
  hevc: use av_mallocz() for allocating tab_ipm

See: 0999f1613b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 21:13:30 +01:00
Michael Niedermayer
e15a57b67a Merge commit '920c01adce6c273fc043513ff237a6266e612152'
* commit '920c01adce6c273fc043513ff237a6266e612152':
  hevc: Use get_bits_long() in decode_vui()

See: b818637b84
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 20:57:02 +01:00
Tim Walker
558b20d729 matroskaenc: enable Annex B to MP4 conversion for HEVC tracks. 2014-03-09 18:09:40 +01:00
Tim Walker
a823d09486 matroskaenc: write private data in hvcC format for HEVC. 2014-03-09 18:09:40 +01:00
Tim Walker
4f3db5d341 movenc: allow muxing HEVC in MODE_MP4. 2014-03-09 18:09:40 +01:00
Tim Walker
b6c61fb83e movenc: enable Annex B to MP4 conversion for HEVC tracks. 2014-03-09 18:09:40 +01:00
Tim Walker
20b40a597c movenc: write hvcC tag for HEVC. 2014-03-09 18:09:40 +01:00
Tim Walker
1d9014f0b0 movenc: use 'hev1' tag for HEVC in MODE_MOV.
'hvc1' requires that parameter set NAL units be
present only in the samples entry, but not in the
samples themselves, requiring that additional
parameter sets, if present, be filtered out of the
samples and placed in new, additional sample entries
if they override or otherwise conflict with the
parameter sets present in the first sample entry.
We do not have any way of doing this at present, so
the files we produce can only comply with the
restrictions set for the 'hev1' sample entry name in
ISO/IEC 14496-15.
2014-03-09 18:09:40 +01:00
James Zern
3e0175d89a riff: add VP9 fourcc 2014-03-09 18:09:39 +01:00
Ben Littler
fb0a988f94 riff: IPJ2 decodes with JPEG2000 decoder
Samples can be made from mencoder and jp2avi.dll codec.
2014-03-09 18:09:39 +01:00
Baptiste Coudurier
9e71cc81f3 movdec: handle 0x7fff langcode as macintosh per the specs
The correct point that seperates ISO and MAC language codes is 0x400
according to the current QT spec. Old QT specs did not list where this
seperation is but apparently only defined the meaning of the first 137.
2014-03-09 18:09:39 +01:00
Piotr Bandurski
8a0bc40545 libspeex: support ZygoAudio (quality 10 mode) 2014-03-09 18:09:39 +01:00
Mark Himsley
360022bd3b isom: lpcm in mov default to big endian
It is my understanding that "Unless otherwise stated, all data in a
QuickTime movie is stored in big-endian byte ordering" [1] in MOV files.

I have a couple of thousand files, which technically are invalid because
their sound sample description element 4CC is 'lpcm' but its version is
0 - and "Version 0 supports only uncompressed audio in raw ('raw ') or
twos-complement ('twos') format" [2]

Because isom.c only contains a mapping for 4CC 'lpcm' to
AV_CODEC_ID_PCM_S16LE, these files have their audio decoded as LE when
it is actually BE.

This commit adds AV_CODEC_ID_PCM_S16BE as the first match for 4CC 'lpcm'.

[1]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 21
[2]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 178

Reviewed-by: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
2014-03-09 18:09:39 +01:00
Piotr Bandurski
db32f14c3d isom: add "MNG" FourCC 2014-03-09 18:09:39 +01:00
Carl Eugen Hoyos
073cd30fb4 isom: Support MPEG-2 video mov files from FPC5 2014-03-09 18:09:39 +01:00
Piotr Bandurski
31e558fbcf isom: add "NO16" FourCC 2014-03-09 18:09:39 +01:00
Piotr Bandurski
6509012398 isom: add Radius DV YUV FourCCs 2014-03-09 18:09:38 +01:00
Carl Eugen Hoyos
eeae858596 isom: Support Sony XAVC in mov
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-09 18:09:38 +01:00
Ben Littler
c09804684a isom: add xd51 hdcam
Someone needs to binary search FCP for new isom...
2014-03-09 18:09:38 +01:00
Vittorio Giovara
4d33873c29 hevc: make pps/sps ids unsigned where necessary
Fixes integer overflow and out of array accesses.
Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
2014-03-09 17:23:08 +01:00
Michael Niedermayer
ed06e5d92b hevc: Do not turn 32bit timebases into negative numbers
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-03-09 17:22:53 +01:00
Michael Niedermayer
6cc94e9719 hevc: use av_mallocz() for allocating tab_ipm
Fixes use of uninitialized memory and out of stack array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-03-09 17:08:11 +01:00
Michael Niedermayer
8dfd0e62f5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  float_dsp: fix errors in documentation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 15:37:35 +01:00
Michael Niedermayer
4159f702a7 avutil/timer: Fix units for x86 after c708b54033
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 15:22:02 +01:00
Michael Niedermayer
c2923100f5 Merge commit 'c708b5403346255ea5adc776645616cc7c61f078'
* commit 'c708b5403346255ea5adc776645616cc7c61f078':
  timer: use mach_absolute_time as high resolution clock on darwin

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 14:30:24 +01:00
Michael Niedermayer
fa4f573997 Merge commit '634d9d8b398982647b3d7160641198744901d8d8'
* commit '634d9d8b398982647b3d7160641198744901d8d8':
  arm: get_cabac inline asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 13:37:29 +01:00
Michael Niedermayer
cbee7ff0b7 Merge commit 'dfe224f377be3e45758c69d881ca7874b82d647a'
* commit 'dfe224f377be3e45758c69d881ca7874b82d647a':
  aarch64: get_cabac inline asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 13:27:04 +01:00
Michael Niedermayer
fc1d7811ef Merge commit '4506a854a4d846692ba71daeeff661dc214c8fa2'
* commit '4506a854a4d846692ba71daeeff661dc214c8fa2':
  arm: vp3: remove incorrect const in ff_vp3_idct_dc_add_neon declaration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 13:06:31 +01:00
Michael Niedermayer
920c01adce hevc: Use get_bits_long() in decode_vui()
Fix assertion failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-03-09 08:25:39 +01:00
Michael Niedermayer
ea9399f8f7 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  libzvbi-teletextdec: split dvb packet to slices
  libzvbi-teletextdec: use av_dlog where possible

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 02:54:40 +01:00
Michael Niedermayer
9c99bc1f3f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Use pkg-config for openjpeg

Conflicts:
	configure

Not merged / merge just for metadata at request of carl

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 02:05:03 +01:00
Michael Niedermayer
9827f3db88 Merge commit '565e0c6d866ce08d4b06427456d3d1f4fd856e9c'
* commit '565e0c6d866ce08d4b06427456d3d1f4fd856e9c':
  movenc: allow override of "writing application" tag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 01:50:17 +01:00
Michael Niedermayer
4cb6814160 Merge commit '0092c1dd8dac2d9e185b58503b447a0d3fb5230d'
* commit '0092c1dd8dac2d9e185b58503b447a0d3fb5230d':
  matroskaenc: allow override of "writing application" tag

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 01:41:55 +01:00
Michael Niedermayer
b39e895024 Merge commit '61985ad72c47bbb668f2d3923bf5c9df83e79323'
* commit '61985ad72c47bbb668f2d3923bf5c9df83e79323':
  arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 01:16:21 +01:00
Michael Niedermayer
2beb81522e Merge commit '8c09532672d7d3196ec52afefa2c96633bc17b62'
* commit '8c09532672d7d3196ec52afefa2c96633bc17b62':
  rv10: K&R formatting cosmetics

Conflicts:
	libavcodec/rv10.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 01:05:37 +01:00
Michael Niedermayer
0c1353ae33 Merge commit 'b4d372e091f6b30758db2a43a5a9fe2510ec2b13'
* commit 'b4d372e091f6b30758db2a43a5a9fe2510ec2b13':
  rv10: Forward error from rv10_decode_packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 00:59:00 +01:00
Janne Grunau
74cc901905 float_dsp: fix errors in documentation 2014-03-09 00:45:35 +01:00
Janne Grunau
c708b54033 timer: use mach_absolute_time as high resolution clock on darwin
Not guaranteed to be in nanosecond resolution. On iOS 7 the duration
of one tick is 125/3 ns which is still more than an order of magnitude
better then microseconds.

Replace decicycles with the neutral UNITS. Decicycles is strange but
tenths of a nanosecond and unspecific "deci"-ticks for mach_absolute_time
is just silly.
2014-03-09 00:45:34 +01:00
Janne Grunau
634d9d8b39 arm: get_cabac inline asm
Based on the aarch64 asm. CPU cycle counts on cortex-a9 compared to
gcc 4.8.2:
before: 475 decicycles in get_cabac_noinline, 67106035 runs, 2829 skips
after:  393 decicycles in get_cabac_noinline, 67106474 runs, 2390 skips

Overall speedup is above 2%. Code generated by clang 3.4 is slower on
the same hardware and the relative change is a little larger.
2014-03-09 00:45:34 +01:00
Janne Grunau
dfe224f377 aarch64: get_cabac inline asm
Based on the x86 branchless get_cabac asm. get_cabac_noinline() gets
approximately 20% faster (no cycle counts available) compared to clang
from Xcode 5.1 beta5. More than 6% faster overall. A part of the overall
speedup might be explained by additional inlining of get_cabac().
2014-03-09 00:45:33 +01:00
Janne Grunau
4506a854a4 arm: vp3: remove incorrect const in ff_vp3_idct_dc_add_neon declaration
Was missed in aeaf268e52 when integrating
clear_blocks into the idct.
2014-03-09 00:45:33 +01:00
Michael Niedermayer
17a5dbacf5 Merge commit 'a801453423420915425f902bf9f9cbe982a55d87'
* commit 'a801453423420915425f902bf9f9cbe982a55d87':
  g2meet: K&R formatting cosmetics

Conflicts:
	libavcodec/g2meet.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-09 00:41:47 +01:00
Marton Balint
085ca7dcdb libzvbi-teletextdec: split dvb packet to slices
Instead of using the demux function of libzvbi to split the packet to slices
(vbi lines), lets do it ourselves.

- eliminates the 1 frame delay between page input and output
- handles non-ascending line numbers more gracefully
- enables us to return error codes on some invalid packets instead of silently
  ignoring them

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-08 21:58:12 +01:00
Marton Balint
ae017c2632 libzvbi-teletextdec: use av_dlog where possible
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-03-08 21:58:12 +01:00
Pierre Lejeune
0e0cefb222 build: Use pkg-config for openjpeg
Bug-Id: 387
CC: libav-stable@libav.org
2014-03-08 19:42:32 +01:00
John Stebbins
565e0c6d86 movenc: allow override of "writing application" tag
Signed-off-by: Tim Walker <tdskywalker@gmail.com>

CC: libav-stable@libav.org
2014-03-08 18:59:35 +01:00
John Stebbins
0092c1dd8d matroskaenc: allow override of "writing application" tag
Signed-off-by: Tim Walker <tdskywalker@gmail.com>

CC: libav-stable@libav.org
2014-03-08 18:56:49 +01:00
Janne Grunau
61985ad72c arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
The overread avoidance fix in cbddee1cca
broke the computation for the last row since it prevented the safe
reading from the height+1-th row.

CC: libav-stable@libav.org
2014-03-08 18:31:57 +01:00
Keiji Costantini
8c09532672 rv10: K&R formatting cosmetics
Also sort #includes into canonical order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-08 17:41:59 +01:00
Keiji Costantini
b4d372e091 rv10: Forward error from rv10_decode_packet
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-08 17:19:56 +01:00
Diego Biurrun
a801453423 g2meet: K&R formatting cosmetics 2014-03-08 16:35:20 +01:00
Michael Niedermayer
b28c371567 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavf/concatdec: reindent after last commit.
  lavf/concatdec: more reliable test for absolute URLs.
  lavf: add subfile protocol.
  lavfi/af_atempo: clear references before returning error.
  lavd/xv: take aspect ratio into account.
  lavc/pthread: copy packet side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 15:00:36 +01:00
Don Moir
24e2a82f75 Make 32bit RGB dshow input opaque. 2014-03-08 13:46:05 +01:00
Carl Eugen Hoyos
6208bb965d Set codec_tag in dshow device, needed to distinguish between YUV and YVU.
Fixes ticket #3447.
2014-03-08 13:42:47 +01:00
Nicolas George
6bffa83bbe lavf/concatdec: reindent after last commit. 2014-03-08 12:44:45 +01:00
Nicolas George
8a670f52a5 lavf/concatdec: more reliable test for absolute URLs.
ff_make_absolute_url() recognizes the "://" pattern usual
in HTTP-like protocols, but consider relative URLs starting
with just the protocol name or using the comma syntax for
options.
2014-03-08 12:38:31 +01:00
Nicolas George
97e87e09c8 lavf: add subfile protocol. 2014-03-08 12:36:57 +01:00
Nicolas George
bc6901c949 lavfi/af_atempo: clear references before returning error.
Once the frame has been given to ff_filter_frame(), it can
no longer be used, even on error.

Fix trac ticket #3430.
2014-03-08 12:31:00 +01:00
Nicolas George
c37bbe54f4 lavd/xv: take aspect ratio into account. 2014-03-08 12:29:32 +01:00
Nicolas George
ea6825fd09 lavc/pthread: copy packet side data. 2014-03-08 12:27:02 +01:00
Michael Niedermayer
742d860103 avcodec/vorbis: fix decoding of single element huffman trees
Fixes Ticket2893

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 05:13:05 +01:00
Michael Niedermayer
b918d6e2e6 avcodec/vorbis: return proper error codes from ff_vorbis_len2vlc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 04:59:56 +01:00
Michael Niedermayer
d1122b7ce5 avcodec/wmadec: initialize max_exponent to valid values
Fixes generation of NaN output
Fixes: nan_example.wma
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 01:46:22 +01:00
Michael Niedermayer
6eb08783a9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fic: Properly handle skip frames

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 00:21:22 +01:00
Michael Niedermayer
fabf69f37a Merge commit 'f69befe5eefef12172a6479dd9cef3c01bddec7a'
* commit 'f69befe5eefef12172a6479dd9cef3c01bddec7a':
  matroskadec: cosmetics: Fix "attachement" vs. "attachment" typo

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 00:13:20 +01:00
Michael Niedermayer
b3d9ab1829 Merge commit '84cfce9f99805a144df684417e166c1ae6f95421'
* commit '84cfce9f99805a144df684417e166c1ae6f95421':
  matroskadec: K&R formatting cosmetics

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 23:52:44 +01:00
compn
84bccae8e9 doc: fix typo 2014-03-07 17:07:37 -05:00
Hendrik Leppkes
61ff0431ba dxva2_vc1: include the start code in wMBbitOffset
This resolves a decoding failure on Intel GPUs.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 16:03:50 +01:00
Hendrik Leppkes
930f67b712 dxva2_vc1: fix intensity compensation condition with interlaced fields
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 16:03:03 +01:00
Derek Buitenhuis
f87a6e500b fic: Properly handle skip frames
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-07 14:54:33 +00:00
Michael Niedermayer
4fc339faea Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmppkt: Rename the ts_delta field to ts_field

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 14:09:35 +01:00
Diego Biurrun
f69befe5ee matroskadec: cosmetics: Fix "attachement" vs. "attachment" typo 2014-03-07 13:54:18 +01:00
Michael Niedermayer
9baef60ae4 Merge commit '8bbb02ae4f44f1cddc1ce1e74a71fa2022e93da3'
* commit '8bbb02ae4f44f1cddc1ce1e74a71fa2022e93da3':
  rtmppkt: Properly handle extended timestamps when writing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 13:42:22 +01:00
Keiji Costantini
84cfce9f99 matroskadec: K&R formatting cosmetics
Also sort #includes into canonical order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-07 13:39:07 +01:00
Michael Niedermayer
94ec27131c Merge commit '48cfb5f4114048383a4ee85b2f500eefce24cad2'
* commit '48cfb5f4114048383a4ee85b2f500eefce24cad2':
  rtmppkt: Add a descriptive comment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 12:58:43 +01:00
Michael Niedermayer
d540e7577a Merge commit '5b2ad78f97d43299adcb038c04346999fe9b196c'
* commit '5b2ad78f97d43299adcb038c04346999fe9b196c':
  rtmppkt: Handle extended timestamp field even for one-byte header

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 12:53:02 +01:00
Michael Niedermayer
774d0c9dba Merge commit '93d216d37a3f95190ecb9d51cf72f54ea4e04ec7'
* commit '93d216d37a3f95190ecb9d51cf72f54ea4e04ec7':
  dict: K&R formatting cosmetics

Conflicts:
	libavutil/dict.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 12:44:09 +01:00
Martin Storsjö
77eed91fab rtmppkt: Rename the ts_delta field to ts_field
Based on a suggestion by Martin Panter. This is more descriptive,
since it's the actual timestamp field from the RTMP packet,
which might or might not be a delta depending on context (in
some packets it's a delta, in some packets it's an absolute
timestamp, and in some packets it's 0xffffff to indicate that
the actual delta or absolute timestamp is transmitted separately).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:51 +02:00
Martin Panter
8bbb02ae4f rtmppkt: Properly handle extended timestamps when writing
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:47 +02:00
Martin Panter
48cfb5f411 rtmppkt: Add a descriptive comment
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:37 +02:00
Martin Panter
5b2ad78f97 rtmppkt: Handle extended timestamp field even for one-byte header
Related fix in "rtmpdump":
https://repo.or.cz/w/rtmpdump.git/commitdiff/79459a2

Adobe's RTMP specification (21 Dec 2012), section 5.3.1.3 ("Extended
Timestamp"), says "this field is present in Type 3 chunks". Type 3 chunks are
those with the one-byte header size.

This resolves intermittent hangs and segfaults caused by the read function,
and also includes an untested fix for the write function.

The read function was tested with ABC (Australia) News 24 streams, however
they are probably restricted to only Australian internet addresses. Some of
the packets at the start of these streams seem to contain junk timestamp
fields, often requiring the extended field. Test command:

avplay rtmp://cp81899.live.edgefcs.net/live/news24-med@28772

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-07 10:43:26 +02:00
Patrice Clement
93d216d37a dict: K&R formatting cosmetics 2014-03-07 01:19:22 +01:00
Michael Niedermayer
64e4bd7414 doc/APIchanges: update versions & hashes 2014-03-07 00:47:55 +01:00
Hendrik Leppkes
8b2a130d3f dxva2_h264: add a workaround for old intel GPUs
Old Intel GPUs expect the reference frame index to the actual surface,
instead of the index into RefFrameList as specified by the spec.

This workaround should be set when using one of the "ClearVideo" decoder
devices.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 00:33:34 +01:00
Hendrik Leppkes
276839b8de dxva2_h264: set the correct ref frame index in the long slice struct
The latest H.264 DXVA specification states that the index in this
structure should refer to a valid entry in the RefFrameList of the picture
parameter structure, and not to the actual surface index.

Fixes H.264 DXVA2 decoding on recent Intel GPUs (tested on Sandy and Ivy)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 00:33:19 +01:00
Michael Niedermayer
0707a34dd8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libx265: Support API version 9

See: 69ead9af75
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 00:15:49 +01:00
Michael Niedermayer
b7c1f6f9cc Merge commit 'b66382101cff33e2ce66500327a90d0a105eedeb'
* commit 'b66382101cff33e2ce66500327a90d0a105eedeb':
  dxva2: Increase maximum number of slices for mpeg2

See: bceeccc648
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-07 00:06:43 +01:00
Michael Niedermayer
39f5003a07 Merge commit '5b977c1d4fd99f325049d48fb8f0a3240d50eef8'
* commit '5b977c1d4fd99f325049d48fb8f0a3240d50eef8':
  mxf: Return meaningful errors

Conflicts:
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 23:53:36 +01:00
Michael Niedermayer
618d2262d7 Merge commit 'f06f6daaf8538eb8ceeb690b761f1256771b6ba6'
* commit 'f06f6daaf8538eb8ceeb690b761f1256771b6ba6':
  mxf: Parse random index pack

Conflicts:
	libavformat/mxfdec.c

See: f5ed83c383
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 23:45:05 +01:00
Michael Niedermayer
5a4852bc4d Merge commit '570af382eea902afe09f3562e5e1b483981cca7e'
* commit '570af382eea902afe09f3562e5e1b483981cca7e':
  mxf: Handle identification metadata

Conflicts:
	libavformat/mxfdec.c

See: 25b143aa7b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 22:59:35 +01:00
Michael Niedermayer
3ce8581413 Merge commit '5b930092c3afd2ae01f1c8aa7fb405911d6ad416'
* commit '5b930092c3afd2ae01f1c8aa7fb405911d6ad416':
  mxf: Set audio packets pts

Conflicts:
	libavformat/mxfdec.c

See: 83cab07a4c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 22:50:06 +01:00
Michael Niedermayer
2265212396 Merge commit 'e118bb1a33889d4df56f28975b4fd0793b4f5c32'
* commit 'e118bb1a33889d4df56f28975b4fd0793b4f5c32':
  mxf: Introduce ff_mxf_get_samples_per_frame

Conflicts:
	libavformat/mxf.c
	libavformat/mxf.h

See: 906a263813
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 22:21:57 +01:00
Michael Niedermayer
1618f162a9 Merge commit 'd48430c367947a64647c6959cf472f2c01778b17'
* commit 'd48430c367947a64647c6959cf472f2c01778b17':
  build: Let the SVQ3 decoder depend on the H.264 decoder

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 22:04:51 +01:00
Michael Niedermayer
85d2b0987b Merge commit '84bf8817206126dab3c9abf6055b593389bcb241'
* commit '84bf8817206126dab3c9abf6055b593389bcb241':
  configure: Split x86 SIMD architecture extensions into separate list

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 21:58:46 +01:00
Derek Buitenhuis
d67dbfa7c1 libx265: Support API version 9
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-06 20:21:27 +00:00
Andreas Cadhalpun
9898bd9a82 Fix spelling errors in texi files: accomodate -> accommodate allows to -> allows one to choosen -> chosen compability -> compatibility explictly -> explicitly overriden -> overridden specifed -> specified Trasmission -> Transmission
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 21:12:40 +01:00
Andreas Cadhalpun
eeb3baf7f7 Fix spelling error 'Inconsistant -> Inconsistent'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 20:44:45 +01:00
Andreas Cadhalpun
64b6164b72 Correct the FSF address for two avisynth files to '51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 20:44:33 +01:00
Rainer Hochecker
b66382101c dxva2: Increase maximum number of slices for mpeg2
Some content requires an higher number of slices in order to
render properly.

Rise the number to 1024 and warn if ever it exceeds.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Luca Barbato
5b977c1d4f mxf: Return meaningful errors 2014-03-06 19:28:20 +01:00
Paul B Mahol
f06f6daaf8 mxf: Parse random index pack
Get the last partition offset and use it when footer partition
offset is missing.

Footer partition may not be present and even if present footer
partition offset may not be set in any partition except last one.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron
570af382ee mxf: Handle identification metadata
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron
5b930092c3 mxf: Set audio packets pts
Extrapolate audio timestamps based on the number of samples demuxed.

Deal with some MXF nastiness involving fractional number of
samples per EditUnit when seeking (the specs handwave this away).

Further fixes from Tomas Härdin.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Matthieu Bouron
e118bb1a33 mxf: Introduce ff_mxf_get_samples_per_frame
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
James Almer
9e0e1f9067 x86/dsputil: add emms to ff_scalarproduct_int16_mmxext()
Also undo the changes to ra144enc.c from previous commits.
Should fix ticket #3429

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 18:23:55 +01:00
Diego Biurrun
d48430c367 build: Let the SVQ3 decoder depend on the H.264 decoder
The SVQ3 decoder reuses large parts of the H.264 decoder so it
makes no sense to enable the former but not the latter.

Also drop unnecessary h263.o object from SVQ3 decoder object list.
2014-03-06 18:23:41 +01:00
sfan5
69ead9af75 libx265: Use ctx->vui. instead of ctx-> for some options A recent change in libx265 moved some options such as sar_width into a 'vui' struct.
Signed-off-by: sfan5 <sfan5@live.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 17:07:46 +01:00
Michael Niedermayer
ffe7e7c195 avfilter/vf_shuffleplanes: Fix flags / add AV_OPT_FLAG_FILTERING_PARAM
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 16:58:24 +01:00
James Almer
99b4da73c8 lavd/Makefile: Add fbdev_common.h to SKIPHEADERS
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 15:42:15 +01:00
Michael Niedermayer
d168729004 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_shuffleplanes: fix the type of the mapping indices

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 15:18:14 +01:00
Michael Niedermayer
2d99de66b7 Merge commit '3bfdee00cd92ff07c364d4901c4aefda32780756'
* commit '3bfdee00cd92ff07c364d4901c4aefda32780756':
  x86: dcadsp: Fix linking with yasm and optimizations disabled

Conflicts:
	libavcodec/x86/dcadsp_init.c

See: 206167a295
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 14:10:27 +01:00
Diego Biurrun
84bf881720 configure: Split x86 SIMD architecture extensions into separate list
This avoids checking inline/external assembly dependencies for x86
extensions that do not play a role in inline/external assembly.
2014-03-06 13:29:00 +01:00
Michael Niedermayer
7011aab501 Merge commit 'e1f2987b10112489f6da5501d4c8735a798c9e3f'
* commit 'e1f2987b10112489f6da5501d4c8735a798c9e3f':
  FATE: add tests for the shuffleplanes filter

Conflicts:
	tests/fate/filter-video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 13:09:06 +01:00
Michael Niedermayer
2fb0027c26 Merge commit '599b81ca9a8e04a27ddad94af462171d16063167'
* commit '599b81ca9a8e04a27ddad94af462171d16063167':
  lavfi: add shuffleplanes filter

Conflicts:
	Changelog
	doc/filters.texi
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 13:07:20 +01:00
Michael Niedermayer
b76059058a Merge commit 'bba2a7cc5f7c7aaa32a938f3d4edd9f555f39cdb'
* commit 'bba2a7cc5f7c7aaa32a938f3d4edd9f555f39cdb':
  lavfi: use the correct filter context for logging an error.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 12:38:09 +01:00
Anton Khirnov
713d3f98c8 vf_shuffleplanes: fix the type of the mapping indices
They are TYPE_INT AVOptions, so they must be ints
2014-03-06 09:24:53 +01:00
Lukasz Marek
bba7b6fc41 Revert "lavu/buffer: add release function"
This reverts commit 3144440004.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 03:23:40 +01:00
Michael Niedermayer
c832bf0c38 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/avdevice: always free detected devices on error
  lavf/http: return error from seek on invalid whence
  lavf/http: return error on seeking to negative postion
  lavf/avio: fix ffurl_alloc error checks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-06 02:04:18 +01:00
Lukasz Marek
2475fdbd04 lavd/avdevice: always free detected devices on error
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-06 00:34:50 +01:00
Lukasz Marek
1aa262f460 lavf/http: return error from seek on invalid whence
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-06 00:32:24 +01:00
Lukasz Marek
4ba6a534dc lavf/http: return error on seeking to negative postion
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-06 00:32:20 +01:00
Lukasz Marek
f495fbe76a lavf/avio: fix ffurl_alloc error checks
ffurl_alloc doc says it returns >= 0 in case of success.
avio treats non-zero as errors.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-06 00:30:27 +01:00
Diego Biurrun
3bfdee00cd x86: dcadsp: Fix linking with yasm and optimizations disabled
Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.
2014-03-05 23:16:21 +01:00
wm4
636273d3d4 http: handle ICY in presence of chunked transfer encoding
Some http servers send an ICY stream in combination with chunked
transfer encoding. This case was handled incorrectly by the ICY code:
instead of handling chunked encoding before anything ICY related, both
were mixed.

Fix this by separating the ICY code from normal http reading. Move the
normal http reading to a new function http_read_stream(), while
http_read() handles ICY on top of http_read_stream().

The server identified itself as: cloudflare-nginx

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 22:49:36 +01:00
Andrey Myznikov
9deecdf85f Fix pthread-related compile errors in iec61883.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 22:19:33 +01:00
Michael Niedermayer
91550f46cd doc/APIchanges: fill in missing version for "2013-11-14 - 31c09b7 / 728c465 - lavc 55.26.0 - vdpau.h"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 22:02:09 +01:00
Anton Khirnov
e1f2987b10 FATE: add tests for the shuffleplanes filter 2014-03-05 21:52:03 +01:00
Anton Khirnov
599b81ca9a lavfi: add shuffleplanes filter 2014-03-05 21:52:02 +01:00
Anton Khirnov
bba2a7cc5f lavfi: use the correct filter context for logging an error. 2014-03-05 21:52:02 +01:00
Michael Niedermayer
a74bab7079 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: hpeldsp: prevent overreads in armv6 asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 21:35:30 +01:00
Michael Niedermayer
146b476ba0 Merge commit '3741aa37c2a0d0717faff74a5c4cc357d16f6d1d'
* commit '3741aa37c2a0d0717faff74a5c4cc357d16f6d1d':
  x86: cabac: Use correct #includes to make header compile standalone

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 21:33:44 +01:00
Michael Niedermayer
12b97dd375 avformat/oggparsevorbis: dont use invalid granules
Fixes Ticket3437

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 17:07:28 +01:00
Jason Hsu
8fb4dba89d doc/examples/remuxing: dont use the input codec_tag, it may be invalid tor the output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 16:10:06 +01:00
Janne Grunau
cbddee1cca arm: hpeldsp: prevent overreads in armv6 asm
Based on a patch by Russel King <rmk+libav@arm.linux.org.uk>

Bug-Id: 646
CC: libav-stable@libav.org
2014-03-05 14:30:57 +01:00
Michael Niedermayer
100e8f8b67 avcodec/ra144enc: avoid calling emms when the SSE2 version is used
emms is a rather slow operation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 14:20:03 +01:00
Christophe Gisquet
93c4cd618c ra144enc: fix use of scalarprod_int16
c3390fd56c made use of the DSP function
but did not complement it with a call to emms, which is done here before
computations involving floats are performed.

Fixes ticket #3429, which affected MMX/MMXExt machines.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 13:56:06 +01:00
Michael Niedermayer
e3c93f1f84 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avfilter: Add missing emms_c when needed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 13:51:44 +01:00
Michael Niedermayer
5abbeefd5e Merge commit '5ddc9f5052316608799b932c604f9e7561f8ce24'
* commit '5ddc9f5052316608799b932c604f9e7561f8ce24':
  configure: enable PIC on s390(x)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 13:45:23 +01:00
Diego Biurrun
3741aa37c2 x86: cabac: Use correct #includes to make header compile standalone 2014-03-05 13:32:25 +01:00
Michael Niedermayer
a44a27b5c8 Merge commit 'eeaf4f3b87815cbae4c12856cfaafb3a2dae8e0c'
* commit 'eeaf4f3b87815cbae4c12856cfaafb3a2dae8e0c':
  av_vdpau_get_profile: mask out H.264 intra profile flag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 11:49:27 +01:00
Luca Barbato
e995cf1bcc avfilter: Add missing emms_c when needed
Arch specific calls should have an emms_c following to keep the cpu
state consistent.

Reported-By: wm4
CC: libav-stable@libav.org
2014-03-05 11:00:05 +01:00
Reinhard Tartler
5ddc9f5052 configure: enable PIC on s390(x)
The s390 architecture requires shared libraries to be built in PIC mode.
Otherwise applications will get wrong relocations at run-time, leading
to confusing segmentation faults.

CC: libav-stable@libav.org
2014-03-04 21:40:36 -05:00
Marton Balint
d08bb065f2 mpegts: use goto out instead of break on truncated or invalid pmt tables
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 02:28:25 +01:00
James Almer
7fd64e3e36 x86/synth_filter: add synth_filter_fma3
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 01:58:16 +01:00
Andrey Utkin
bc764d786f Add "prefer_tcp" flag to "rtsp_flags"
If set, and if TCP is available as RTSP RTP transport, then TCP will be
tried first as RTP transport.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 22:54:13 +01:00
Rémi Denis-Courmont
eeaf4f3b87 av_vdpau_get_profile: mask out H.264 intra profile flag
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-03-04 22:48:55 +01:00
James Almer
206167a295 x86/synth_filter: add missing HAVE_YASM guard
Should fix compilation failures with --disable-yasm on some compilers

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 22:47:28 +01:00
Michael Niedermayer
309171bea9 Merge commit '3407172b36a93cec410c6a287dbeec0f41257512'
* commit '3407172b36a93cec410c6a287dbeec0f41257512':
  avienc: K&R formatting cosmetics

Conflicts:
	libavformat/avienc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 22:21:58 +01:00
Michael Niedermayer
adaba6a108 Merge commit '4c41a7a1798dd6c60e40f79be12faa98a9347151'
* commit '4c41a7a1798dd6c60e40f79be12faa98a9347151':
  vf_frei0r: fix missing end of line character

Conflicts:
	libavfilter/vf_frei0r.c

No change as the token parsing change was not merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 22:01:24 +01:00
Michael Niedermayer
4a59994e03 Merge commit 'a18ef7a76c735bcf78ed4825e33ad7f9f6f77a54'
* commit 'a18ef7a76c735bcf78ed4825e33ad7f9f6f77a54':
  doc: fix a couple of typos in frame.h

Conflicts:
	libavutil/frame.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 21:55:16 +01:00
Keiji Costantini
3407172b36 avienc: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-04 18:53:58 +01:00
Vittorio Giovara
4c41a7a179 vf_frei0r: fix missing end of line character
Error introduced in 61b323ce7c.
2014-03-04 18:27:09 +01:00
Vittorio Giovara
a18ef7a76c doc: fix a couple of typos in frame.h 2014-03-04 16:12:11 +01:00
olugbone
b2880a3de9 avformat/mpegtsenc: fix HEVC MPEG TS stream type
Allowing HEVC video using TS stream type 0x24

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 15:44:04 +01:00
Michael Niedermayer
efc4439c89 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  put_bits: Remove unused includes

Conflicts:
	libavcodec/put_bits.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 15:09:58 +01:00
Michael Niedermayer
8cc581fbf7 Merge commit '5397386effba2e53e4ff82852a86f6be4d59e9c1'
* commit '5397386effba2e53e4ff82852a86f6be4d59e9c1':
  mathops: move macro to the only place it is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 13:38:04 +01:00
Michael Niedermayer
d63b032d64 Merge commit '61b323ce7c7cdc101eadfd7de2203922b8a39e8d'
* commit '61b323ce7c7cdc101eadfd7de2203922b8a39e8d':
  vf_frei0r: refactor library loading from env variable

Conflicts:
	configure
	libavfilter/vf_frei0r.c

Not merged, we use av_strtok() which leads to simpler code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 13:26:48 +01:00
Michael Niedermayer
bfe03205a8 Merge commit '4e0be9c86f2003dd3ba2eb8fad01e8d0e538075e'
* commit '4e0be9c86f2003dd3ba2eb8fad01e8d0e538075e':
  vf_frei0r: prevent a segfault when filter parameters are not set

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 13:17:25 +01:00
Michael Niedermayer
2b0ff8d642 Merge commit '8accddeb5806cd98e3803b4ddf2a2ef576d0e4d9'
* commit '8accddeb5806cd98e3803b4ddf2a2ef576d0e4d9':
  vf_frei0r: adjust error messages

Conflicts:
	libavfilter/vf_frei0r.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 12:41:31 +01:00
Vittorio Giovara
973dc4e8d4 put_bits: Remove unused includes
This requires adding includes to other files that relied on these being
included implicitly.
2014-03-04 11:45:32 +01:00
Vittorio Giovara
5397386eff mathops: move macro to the only place it is used
This helps in disentangling lavf and lavc too.
2014-03-04 11:45:31 +01:00
Vittorio Giovara
61b323ce7c vf_frei0r: refactor library loading from env variable
strtok_r is not needed any more, so remove it from configure.
2014-03-04 11:39:02 +01:00
Vittorio Giovara
4e0be9c86f vf_frei0r: prevent a segfault when filter parameters are not set 2014-03-04 11:19:03 +01:00
Vittorio Giovara
8accddeb58 vf_frei0r: adjust error messages 2014-03-04 11:19:03 +01:00
Michael Niedermayer
f34cceb1fc Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/avdevice: add device iterators
  lavd: add categories to device implementations
  lavu/log: add device categories

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 03:41:49 +01:00
Michael Niedermayer
ec6d043f8e avcodec/h263dec: Workaround H263 end padding bug
Fixes: H263PaddingBugFixVID_6647.MOV

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-04 02:47:12 +01:00
Lukasz Marek
06fed44051 lavd/avdevice: add device iterators
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-03 23:39:07 +01:00
Lukasz Marek
f607767d93 lavd: add categories to device implementations
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-03 23:34:46 +01:00
Lukasz Marek
19b3a25048 lavu/log: add device categories
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-03-03 23:34:31 +01:00
wm4
b416517cce avformat/microdvd: export the declared frame rate
MicroDVD files are normally frame-based (i.e. there are no absolute
timestamps), but can have an optional frame rate header. If this
header is missing, the timestamps depend on the frame rate of the
video they were created for.

The demuxer will use a fallback frame rate if it's missing from the
header. Currently, applications using libavformat can't know whether
the time base is based on the fallback value, or if a frame rate
header was present.

This commit introduces a subfps AVOption for MicroDVD, and the
demuxer sets it if and only if a frame rate header was present.

Signed-off-by: Clément Bœsch <u@pkh.me>
2014-03-03 23:33:47 +01:00
wm4
0786598f51 avformat/microdvd: skip BOM properly
The BOM is already skipped in the probe function, but not the header
read function. This could cause the header to be misparsed, such as
not interpreting the FPS line.
2014-03-03 23:26:27 +01:00
Michael Niedermayer
b79dfd16cb ffmpeg: dont try to run the subtitle encoder on non subtitle streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-03 21:06:24 +01:00
Michael Niedermayer
ab5d46df16 avformat/httpauth: add comment about "" and algorithm
Suggested-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-03 17:04:57 +01:00
Willy Aubry
65c95de213 avformat/HLS: modified EXT-X-MEDIA-SEQUENCE header in order to follow the HLS standard
When using the wrap option the EXT-X-MEDIA-SEQUENCE header of the playlist file was reset instead of being incremented.
It is now incremented by one for every media URI removed from the playlist file as the standard states.

Signed-off-by: Willy Aubry <waubry@viotech.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-03 16:46:22 +01:00
Jan Ekström
40feed5248 libutvideoenc: Add support for the new BT.709 FourCCs for YCbCr
With cli usage the decoder might have not set the colorspace during
encoder init, manual colorspace override might be needed in such
cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>

This applies commit 5de64bb3 (the source of the above commit message)
to libutvideoenc as well.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-03 13:06:25 +01:00
Michael Niedermayer
2dcaa1b9d1 avformat/utils: detect MPEG streams with faulty DTS and discard affected DTS
Fixes issue2.ts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-03 02:27:07 +01:00
Michael Niedermayer
411f8f4c9a Merge commit '5c9c305d14730faf2af206e5d519df4948de0ed2'
* commit '5c9c305d14730faf2af206e5d519df4948de0ed2':
  ass: K&R formatting cosmetics

Conflicts:
	libavformat/assdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 21:44:44 +01:00
Michael Niedermayer
dfefc9097e avcodec/hevcpred_template: also initialize top[-1] for constrained intra prediction
Fixes out of array read
Fixes: 387713a12dc5cfa27fcb4178084ce1ea-asan_stack-oob_131176a_1182_cov_3861068719_CAINIT_C_SHARP_3.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 21:23:40 +01:00
Michael Niedermayer
8b8ae298af avcodec/g2meet: also reset local got_header when reseting the context got_header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 15:22:52 +01:00
Michael Niedermayer
6b53c1aa82 avcodec/g2meet: fix error returns
Fixes out of array accesses

This should not affect any release

Fixes: 8ab69af9e5a7a7e20fe04cdd25c0d6e7-asan_heap-oob_e72b82_5505_cov_2278389485_g2m4.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 15:22:30 +01:00
Patrice Clement
5c9c305d14 ass: K&R formatting cosmetics 2014-03-02 13:23:13 +01:00
Michael Niedermayer
0bf882864e Revert "mpegts: do not set pts for missing dts in video streams"
This reverts commit f65afef1df.

If only pts is coded then dts must be equal pts
See Rec. ITU-T H.222.0 (06/2012) / ISO/IEC 13818-1:2013 (E) 2.7.5

Found-by: Baptiste Coudurier
2014-03-02 13:12:31 +01:00
James Almer
884e085d1e x86/synth_filter: Revert the switch to float ops with SSE2
This reverts the changes 6467209836
and 68c3ed936a did to the SSE2 version,
which generated a hit of about 5 cycles.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 11:58:10 +01:00
Michael Niedermayer
f5d1d1e466 avformat/oggparsevorbis: check packet size before reading new_len from it
Fixes out of array read
Fixes: 34260c7981118fb38fba61809bf4dd5a-asan_heap-oob_93b923_1508_cov_951051643_DivX640x480_oggvorbis.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 05:13:29 +01:00
Michael Niedermayer
52a2138656 avformat/avidec: Use a buffer with sufficient padding in read_gab2_sub()
Fixes out of array read
Fixes: 0ff9841c2a102f06e0d582bfc3376cbd-asan_heap-oob_495589_6836_cov_1763916974_mewmew_ssa.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 04:38:30 +01:00
Michael Niedermayer
73f930ee71 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ituh263: reject b-frame with pp_time = 0

See: bb01be8046
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 01:46:29 +01:00
James Almer
68c3ed936a x86/synth_filter: add synth_filter_avx
Sandy Bridge Win64:
180 cycles on ff_synth_filter_inner_sse2
150 cycles on ff_synth_filter_inner_avx

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 01:00:55 +01:00
Michael Niedermayer
171dd67520 avformat/mp3dec: optimize mp3_seek() for dir < 0
this minimizes the amount of protocol seeks and reading needed in that case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-02 00:20:31 +01:00
Michael Niedermayer
9600486d10 avformat/aviobuf: optimize sequential backward seeking
This reduces the number of protocol seeks

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 23:57:40 +01:00
Michael Niedermayer
2adf422ce2 avformat/aviobuf: factorize buffer_size out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 23:27:37 +01:00
Keiji Costantini
9514440337 ituh263: reject b-frame with pp_time = 0
Avoid a division by 0 in ff_mpeg4_set_one_direct_mv.

Sample-Id: 00000168-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-01 23:17:30 +01:00
Michael Niedermayer
7e268a8afa RELEASE: update for 2.2
Found-by: Timothy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 17:09:12 +01:00
James Almer
6467209836 x86/synth_filter: add synth_filter_sse
Build only on x86_32 targets.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 15:32:40 +01:00
Senthilnathan M
561bfce203 HLS: Handle the case when hls_list_size=0. Playlist file should contain all the segments. Fixes bug #3376.
Signed-off-by: Senthilnathan M <senthil.codr@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 15:13:23 +01:00
Michael Niedermayer
5972bcfac9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  qt-faststart: Add a note about the -movflags +faststart feature

Conflicts:
	tools/qt-faststart.c

See: 2574d62d0d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 15:08:05 +01:00
Michael Niedermayer
06fe29c41d Merge commit 'ea7f79f93796d68559a495be824b6bbd94dfe5f6'
* commit 'ea7f79f93796d68559a495be824b6bbd94dfe5f6':
  qt-faststart: Avoid unintentionally sign extending BE_32

See: 582f36ca3f
See: 69ce34c796
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 14:44:58 +01:00
Michael Niedermayer
7fa3ec88da Merge commit 'bb95334c34d0d9abccea370ae25c4765d7764ab8'
* commit 'bb95334c34d0d9abccea370ae25c4765d7764ab8':
  qt-faststart: Check offset_count before reading from the moov_atom buffer

Conflicts:
	tools/qt-faststart.c

See: 0ea4742341
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 14:33:45 +01:00
Michael Niedermayer
77c235206a Merge commit '63848854256a024a19435e87d6bc76fffa65e81e'
* commit '63848854256a024a19435e87d6bc76fffa65e81e':
  qt-faststart: Check the ftello() return codes

Conflicts:
	tools/qt-faststart.c

See: 4a2297294f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 14:19:04 +01:00
Michael Niedermayer
817f8138cb Merge commit '03c2a66fcff9707f71ffef7e61ce5e3973220d4b'
* commit '03c2a66fcff9707f71ffef7e61ce5e3973220d4b':
  qt-faststart: Fix the signedness of variables keeping the ftello return values

Conflicts:
	tools/qt-faststart.c

See: 1838961357
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 14:12:39 +01:00
Michael Niedermayer
11c4bc9a74 Merge commit '5612244351b2eb3cb4e6225861a0f55aa5d0c475'
* commit '5612244351b2eb3cb4e6225861a0f55aa5d0c475':
  qt-faststart: Check fseeko() return codes

Conflicts:
	tools/qt-faststart.c

See: 0de41ead6f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:55:16 +01:00
Michael Niedermayer
0bb474f686 Merge commit 'ea15a9a5d8fa6a71af3101b2af18c4dcac07987f'
* commit 'ea15a9a5d8fa6a71af3101b2af18c4dcac07987f':
  qt-faststart: Simplify code by using a MIN() macro

Conflicts:
	tools/qt-faststart.c

See: 59003fe7c0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:47:08 +01:00
Michael Niedermayer
eea2cd23e9 Merge commit '3cbc7ef3d60b6af3617079f24a4f401d83353003'
* commit '3cbc7ef3d60b6af3617079f24a4f401d83353003':
  qt-faststart: Increase the copy buffer size to 64 KB

Conflicts:
	tools/qt-faststart.c

See: f4d9148fe2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:37:07 +01:00
Michael Niedermayer
a22907e9ea Merge commit 'd1f9563d502037239185c11578cc614bdf0c5870'
* commit 'd1f9563d502037239185c11578cc614bdf0c5870':
  pthread_frame: flush all threads on flush, not just the first one

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:26:51 +01:00
Michael Niedermayer
f0ce3854fd Merge commit 'bc6461c2861b7d482a037d3b3e2b44ad48805fa0'
* commit 'bc6461c2861b7d482a037d3b3e2b44ad48805fa0':
  af_compand: replace strtok_r() with av_get_token()

Conflicts:
	configure
	libavfilter/af_compand.c

Not merged as requested by ubitux
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:18:25 +01:00
Michael Niedermayer
cd88d89493 Merge commit 'fb3b2f5d923a6e19d80f21eb4e081674bceec810'
* commit 'fb3b2f5d923a6e19d80f21eb4e081674bceec810':
  configure: Set the thread type after resolving dependencies

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 13:07:36 +01:00
Michael Niedermayer
80793afb17 Merge commit '2f02bbcca050936686482453078e83dc25493da0'
* commit '2f02bbcca050936686482453078e83dc25493da0':
  build: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder

Conflicts:
	configure
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 12:37:38 +01:00
Michael Niedermayer
11146a9b44 Merge commit '34150be515cd9c43b0b679806b8d01774960af78'
* commit '34150be515cd9c43b0b679806b8d01774960af78':
  build: Let the iac decoder depend on the imc decoder

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 12:27:59 +01:00
Michael Niedermayer
ad48c9374e Merge commit '8e0cf39faf02536dca08f4fe628a66d1ae022fde'
* commit '8e0cf39faf02536dca08f4fe628a66d1ae022fde':
  build: Let all MJPEG-related decoders depend on the MJPEG decoder

Conflicts:
	configure
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 12:17:51 +01:00
Michael Niedermayer
c4c2b2ea5c Merge commit '0a36988e48dd581d29e77f768f987738bdf365f0'
* commit '0a36988e48dd581d29e77f768f987738bdf365f0':
  build: Let AMV decoder depend on the SP5X decoder

Conflicts:
	configure
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 05:11:37 +01:00
Michael Niedermayer
5aab33dea3 Merge commit 'f4bd9fe326ad1315a74206939ae56df93b940a09'
* commit 'f4bd9fe326ad1315a74206939ae56df93b940a09':
  h264: fix clang warning about uninitialized variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 05:03:59 +01:00
Michael Niedermayer
153b870d1e Merge commit '17a63ff0cd187b9e50e4a47862750295976853b1'
* commit '17a63ff0cd187b9e50e4a47862750295976853b1':
  h264: update flag name in ff_h264_decode_ref_pic_list_reordering()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 05:02:58 +01:00
Michael Niedermayer
983c7f4015 Merge commit 'ee6280ca12696a67535ce2245c77190edc513794'
* commit 'ee6280ca12696a67535ce2245c77190edc513794':
  h264: parse two additional constraint flags

Conflicts:
	libavcodec/h264_ps.c

See: 9091ba9dfa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 04:51:05 +01:00
Michael Niedermayer
3ec3f70ddb Merge commit 'e70ab7c1f5005041bba0e4efc1165410f83495b2'
* commit 'e70ab7c1f5005041bba0e4efc1165410f83495b2':
  h264: add MVCD to the list of High profiles in SPS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 04:30:57 +01:00
Michael Niedermayer
e4a6310cce update for 2.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 03:34:59 +01:00
Michael Niedermayer
0a8c90202b avcodec/utvideoenc: fix slice_bits size
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 02:57:15 +01:00
Michael Niedermayer
0c9dd939cd avformat/ac3dec: Use avpriv_ac3_parse_header2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 01:56:25 +01:00
Michael Niedermayer
eadc21cfe7 avcodec/ac3_parser: add avpriv_ac3_parse_header2() and use it in libavcodec
The new function has the ability to allocate the structure, allowing it to grow
without needing major bumps

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 01:51:01 +01:00
Michael Niedermayer
df6d21c1e7 avcodec/ac3: move new field to the end of AC3HeaderInfo
This structure is used in the interface between libs and thus cannot have
fields added in the middle without major bump

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 01:45:49 +01:00
Michael Niedermayer
52d928daf9 avutil/opt: allow max=min=0 for pixel formats
This is neccessary for maintaining ABI compatibility with FFmpeg 2.1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 00:31:38 +01:00
Lou Logan
700687ebe0 qt-faststart: Add a note about the -movflags +faststart feature
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:25:17 +02:00
Martin Storsjö
ea7f79f937 qt-faststart: Avoid unintentionally sign extending BE_32
Without this cast, the BE_32() expression is sign extended when
assigned to an uint64_t, since the uint8_t|uint8_t expression
is promoted to an int.

Also avoid undefined behaviour when left shifting an uint8_t
by 24 by casting it to an uint32_t explicitly before shifting.

Based on a patch by Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:25:08 +02:00
Michael Niedermayer
bb95334c34 qt-faststart: Check offset_count before reading from the moov_atom buffer
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:25:04 +02:00
Michael Niedermayer
6384885425 qt-faststart: Check the ftello() return codes
This silences a warning in the coverity static analyzer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:25:00 +02:00
Michael Niedermayer
03c2a66fcf qt-faststart: Fix the signedness of variables keeping the ftello return values
These variables are assigned the return values of ftello, which
returns an off_t, which is a signed type. On errors, ftello returns
-1, thus make sure this error return value can be stored properly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:24:55 +02:00
Michael Niedermayer
5612244351 qt-faststart: Check fseeko() return codes
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:24:52 +02:00
Michael Niedermayer
ea15a9a5d8 qt-faststart: Simplify code by using a MIN() macro
qt-faststart doesn't use the normal libav headers at all since
it's supposed to be a completely standalone tool, so we implement
the macro locally in this file.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:24:47 +02:00
Martin Storsjö
3cbc7ef3d6 qt-faststart: Increase the copy buffer size to 64 KB
Copying data in chunks of 1 KB is a little wasteful.

64 KB should still easily fit on the stack, so there's no need
to allocate it dynamically.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-01 00:24:42 +02:00
Michael Niedermayer
d46c3b8171 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  latm: Always reconfigure if no extradata was set previously

See: d039b6074c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 22:40:58 +01:00
Anton Khirnov
d1f9563d50 pthread_frame: flush all threads on flush, not just the first one
avcodec_flush_buffers() must release all internally held references
according to its documentation, for which all the threads need to be
flushed.

CC:libav-stable@libav.org
Bug-Id: vlc/9665
2014-02-28 21:55:46 +01:00
Anton Khirnov
bc6461c286 af_compand: replace strtok_r() with av_get_token() 2014-02-28 21:55:46 +01:00
Michael Niedermayer
fe6603745e Merge commit '6e4009d4cdf5927bdaedf58fcfc5e813b14c366b'
* commit '6e4009d4cdf5927bdaedf58fcfc5e813b14c366b':
  arm: dcadsp: implement decode_hf as external NEON asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 21:52:25 +01:00
Michael Niedermayer
fb3c33f3cd Merge commit '4cb6964244fd6c099383d8b7e99731e72cc844b9'
* commit '4cb6964244fd6c099383d8b7e99731e72cc844b9':
  dcadec: simplify decoding of VQ high frequencies

Conflicts:
	configure
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 21:41:19 +01:00
Michael Niedermayer
ffb7d7195b avcodec/dcadec: use brackets to ensure that no slow division is used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 21:32:24 +01:00
Michael Niedermayer
747b0337e7 Merge commit '7686afd049be98d18663682b92d983340fa2c305'
* commit '7686afd049be98d18663682b92d983340fa2c305':
  dca: factorize scaling in inverse ADPCM

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 21:32:14 +01:00
Diego Biurrun
fb3b2f5d92 configure: Set the thread type after resolving dependencies
A threading type might be detected originally, but later disabled
if one of its dependencies is unavailable.

This makes sure that the threading support item in the configure
output is right for setups where w32threads are available but
native atomics aren't.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-28 22:27:05 +02:00
Diego Biurrun
2f02bbcca0 build: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder
Almost all of the code is shared so there is little point in
enabling one decoder/encoder without the other.
2014-02-28 21:17:01 +01:00
Diego Biurrun
34150be515 build: Let the iac decoder depend on the imc decoder
Almost all of the code is shared so there is little point in
enabling one decoder without the other.
2014-02-28 21:11:53 +01:00
Diego Biurrun
8e0cf39faf build: Let all MJPEG-related decoders depend on the MJPEG decoder
These codecs compile all of the MJPEG code anyway, so there is little
point in not enabling the MJPEG decoder directly. This also simplifies
the dependency declarations for the MJPEG codec family.
2014-02-28 20:51:10 +01:00
Diego Biurrun
0a36988e48 build: Let AMV decoder depend on the SP5X decoder
This codec compiles all of the SP5X code anyway, so there is little
point in not enabling the decoder directly. This also simplifies the
dependency declaration for the AMV decoder.
2014-02-28 20:44:53 +01:00
Michael Niedermayer
baf3adc621 Merge commit '08e3ea60ff4059341b74be04a428a38f7c3630b0'
* commit '08e3ea60ff4059341b74be04a428a38f7c3630b0':
  x86: synth filter float: implement SSE2 version

Conflicts:
	libavcodec/x86/dcadsp.asm
	libavcodec/x86/dcadsp_init.c

See: 2cdbcc0048
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 20:38:39 +01:00
Christophe Gisquet
2cdbcc0048 x86: synth filter float: implement SSE2 version
Timings for Arrandale:
          C    SSE
win32:  2108   334
win64:  1152   322

Factorizing the inner loop with a call/jmp is a >15 cycles cost, even with
the jmp destination being aligned.

Unrolling for ARCH_X86_64 is a 20 cycles gain.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 20:34:40 +01:00
Michael Niedermayer
5333e0dd66 Merge commit '57b1eb9f75b04571063ddec316e290c216c114ac'
* commit '57b1eb9f75b04571063ddec316e290c216c114ac':
  dcadsp: scan coefficients linearly in dca_lfe_fir

Conflicts:
	libavcodec/dcadsp.c

See: 9ae8e23188
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 19:40:40 +01:00
Michael Niedermayer
e346a59383 Merge commit 'ad507d7907457e678900bac132122ba7be4644cb'
* commit 'ad507d7907457e678900bac132122ba7be4644cb':
  x86: dcadsp: implement SSE lfe_dir

Conflicts:
	libavcodec/x86/dcadsp.asm

See: 169243112c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 19:22:00 +01:00
Christophe Gisquet
169243112c x86: dcadsp: implement SSE lfe_dir
Results for Arrandale/Windows:
32: 1670 -> 316
64:  728 -> 298

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 19:20:03 +01:00
Vittorio Giovara
f4bd9fe326 h264: fix clang warning about uninitialized variable 2014-02-28 18:15:15 +01:00
Vittorio Giovara
17a63ff0cd h264: update flag name in ff_h264_decode_ref_pic_list_reordering()
This is the name used in the specifications.
2014-02-28 18:14:34 +01:00
Vittorio Giovara
ee6280ca12 h264: parse two additional constraint flags 2014-02-28 18:14:34 +01:00
Vittorio Giovara
e70ab7c1f5 h264: add MVCD to the list of High profiles in SPS
Also comment all previous profiles.
2014-02-28 18:14:33 +01:00
Michael Niedermayer
90f674d55b Merge commit '87ec849fe9acba075c843e67bcd01f256f481a18'
* commit '87ec849fe9acba075c843e67bcd01f256f481a18':
  dcadec: remove scaling in lfe_interpolation_fir

Conflicts:
	libavcodec/dcadec.c
	libavcodec/dcadsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 18:14:12 +01:00
Michael Niedermayer
810eb285e3 Merge commit 'a55546f48d55e3d1155840541b2be5f4f8cf18ab'
* commit 'a55546f48d55e3d1155840541b2be5f4f8cf18ab':
  proresenc: Reuse proper dsputil infrastructure for FDCT

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 18:06:12 +01:00
Michael Niedermayer
2e88f82a8a Merge commit '92e598a57a7ce4b8ac9ea56274af39f5fd888311'
* commit '92e598a57a7ce4b8ac9ea56274af39f5fd888311':
  prores: Drop DSP infrastructure for prores encoder bits

Conflicts:
	libavcodec/Makefile
	libavcodec/proresdsp.c
	libavcodec/proresenc_kostya.c

Note, these changes only affect one of the 2 prores encoders we have
If someone wants to add optimizations to the affected encoder, or needs/wants
this infrastructure, then iam happy to revert this

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 18:02:00 +01:00
Michael Niedermayer
18d870da83 Merge commit 'd6acefe05862af244fd5a30ae946ed507c063994'
* commit 'd6acefe05862af244fd5a30ae946ed507c063994':
  proresenc: Drop unnecessary DCT permutation bits

Conflicts:
	libavcodec/proresenc_kostya.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 17:26:37 +01:00
Michael Niedermayer
5ba1648318 Merge commit 'b23650491fbd579a4365f42bd42575afb7b53f7e'
* commit 'b23650491fbd579a4365f42bd42575afb7b53f7e':
  prores: Use consistent names for DSP arch initialization functions

Conflicts:
	libavcodec/proresdsp.c
	libavcodec/proresdsp.h
	libavcodec/x86/proresdsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 17:13:00 +01:00
Hendrik Leppkes
3aca10bf76 latm: Always reconfigure if no extradata was set previously
AAC LOAS can have new audio config objects in the stream itself.

Make sure the decoder reconfigures itself when the first one arrives
midstream.

Bug-Id: 644
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-28 14:51:20 +01:00
Michael Niedermayer
f3eef02746 avcodec/msvideo1: Fix palette in case of seek before decode
Fixes Ticket3212

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 13:20:22 +01:00
Janne Grunau
6e4009d4cd arm: dcadsp: implement decode_hf as external NEON asm 2014-02-28 13:12:19 +01:00
Christophe Gisquet
4cb6964244 dcadec: simplify decoding of VQ high frequencies
The vector dequantization has a test in a loop preventing effective SIMD
implementation. By moving it out of the loop, this loop can be DSPized.

Therefore, modify the current DSP implementation. In particular, the
DSP implementation no longer has to handle null loop sizes.

The decode_hf implementations have following timings:

For x86 Arrandale:
        C  SSE SSE2 SSE4
win32: 260 162  119  104
win64: 242 N/A   89   72

The arm NEON optimizations follow in a later patch as external asm. The
now unused check for the y modifier in arm inline asm is removed from
configure.
2014-02-28 13:03:22 +01:00
Janne Grunau
7686afd049 dca: factorize scaling in inverse ADPCM
Based on a patch from Christophe Gisquet.

Unrolling of the m == 0 case avoids a possible use of the uninitilized
value sum when s->predictor_history is not set. I failed to find a
sample for it. It also reduced the cycle count from 220 to 150 on
sandy bridge, x86_64 linux, gcc 4.8.2 compared to his patch.
2014-02-28 13:00:48 +01:00
Christophe Gisquet
08e3ea60ff x86: synth filter float: implement SSE2 version
Timings for Arrandale:
          C    SSE
win32:  2108   334
win64:  1152   322

Factorizing the inner loop with a call/jmp is a >15 cycles cost, even with
the jmp destination being aligned.

Unrolling for ARCH_X86_64 is a 20 cycles gain.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:48 +01:00
Christophe Gisquet
57b1eb9f75 dcadsp: scan coefficients linearly in dca_lfe_fir
This change is inspired by x86 asm where it frees a register.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:47 +01:00
Christophe Gisquet
ad507d7907 x86: dcadsp: implement SSE lfe_dir
Results for Arrandale/Windows:
32: 1670 -> 316
64:  728 -> 298

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:47 +01:00
Christophe Gisquet
87ec849fe9 dcadec: remove scaling in lfe_interpolation_fir
The scaling factor is constant so it is faster to scale the
FIR coefficients in the tables during compilation.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:47 +01:00
Diego Biurrun
a55546f48d proresenc: Reuse proper dsputil infrastructure for FDCT 2014-02-28 11:19:47 +01:00
Diego Biurrun
92e598a57a prores: Drop DSP infrastructure for prores encoder bits
None of the encoder bits are arch-optimized.
2014-02-28 11:17:25 +01:00
Diego Biurrun
d6acefe058 proresenc: Drop unnecessary DCT permutation bits
No permutation is necessary for the FDCT.
2014-02-28 11:00:24 +01:00
Diego Biurrun
b23650491f prores: Use consistent names for DSP arch initialization functions 2014-02-28 10:34:55 +01:00
Michael Niedermayer
669043db81 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  lavfi/frei0r: factorize plugin loading with static path
  lavfi/frei0r: search plugins in lib64 dirs on all architectures

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 03:31:10 +01:00
Michael Niedermayer
e8e91a32e5 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavf/ftp: fix seek to nagative position
  lavf/libssh: fix seek to nagative position

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 02:14:22 +01:00
Michael Niedermayer
5c634cbeb7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Give IDCT matrix transpose macro a more descriptive name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-28 02:08:11 +01:00
Lukasz Marek
9f4b55ef49 lavf/ftp: fix seek to nagative position
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-28 00:07:31 +01:00
Lukasz Marek
0025f13005 lavf/libssh: fix seek to nagative position
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-28 00:04:29 +01:00
James Almer
2163a40a46 x86/imdct36: use sse3 instructions in the last BUTTERF step when possible
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 23:28:15 +01:00
James Almer
fbf98375e4 x86/imdct36: don't build imdct36_float_sse on x86_64 targets
There's an SSE2 version as well, and x86_64 guarantees that
instruction set is present.

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 22:54:03 +01:00
Diego Biurrun
f2408ec9d7 Give IDCT matrix transpose macro a more descriptive name
This also avoids a macro name clash and related warning on ARM.
2014-02-27 13:38:00 -08:00
Michael Niedermayer
a05635ee01 avcodec/mjpegdec: convert CMYK to GBRAP
Fixes Ticket2799

This should be moved into swscale once we have a CMYK pixel format

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 22:18:34 +01:00
Michael Niedermayer
501beae6f9 avcodec/mjpegdec: fix decoding 4th plane
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 21:49:46 +01:00
Michael Niedermayer
6904168c79 avcodec/mjpegdec: Print error in case of CMYK
Also fail if AV_EF_EXPLODE is set.
We do not fail by default, but rather return some image as it may be usefull to the
end user to see what is on the image, for example text could be read quite fine and
objects recognized.

Possibly fixes Ticket3424

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 20:24:39 +01:00
Michael Niedermayer
681e72a668 avcodec/mjpegdec: parse adobe_transform
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 20:13:48 +01:00
Michael Niedermayer
7e8be7081f avcodec/mjpegdec: Print human readable string for APPx
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 19:35:37 +01:00
Carl Eugen Hoyos
3ba056017f Fix http authentication.
Add parenthesis around "MD5" in the request string as required by
RFC 2069.

Fixes ticket #3417.

Reported and tested by Haarman
Analyzed-by: Eugen-Andrei Gavriloaie
2014-02-27 16:56:30 +01:00
Michael Niedermayer
4f4cc43fd8 avcodec/h264: allow mixing idr and non idr slices with frame threading again
This combination exists in the wild
Fixes Ticket3131

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 15:49:25 +01:00
Michael Niedermayer
622d24e4eb avformat/mov: simplify code setting needs_parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 13:52:55 +01:00
Michael Niedermayer
649686d89b avcodec/h264_refs: remove lost frames instead of disfavoring them
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 11:16:23 +01:00
Michael Niedermayer
33a2b45c2e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  af_compand: add a dependency on strtok_r

Conflicts:
	configure

Not merged as FFmpegs compand filter does not depend on strtok_r
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 10:34:31 +01:00
Michael Niedermayer
64bb64f704 avcodec/h264: fix droped frame handling also for threads > 1
Seems i mistakely tested just with threads=1
Fixes part of Ticket3386

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 08:07:46 +01:00
Michael Niedermayer
b5005def8a avcodec/h264: avoid using lost frames as references
Fixes Ticket3386

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 03:26:03 +01:00
Marton Balint
ead0dd3cf6 lavfi/frei0r: factorize plugin loading with static path
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-02-26 22:48:37 +01:00
Marton Balint
35ead1f281 lavfi/frei0r: search plugins in lib64 dirs on all architectures
As Reimar Döffinger pointed out there are non-x86 64bit architectures as well.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-02-26 22:46:15 +01:00
Michael Niedermayer
c4c5351f08 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Do not redundantly specifiy H.263-related object files for MSMPEG4v*

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 22:02:23 +01:00
Anton Khirnov
291e49d4e7 af_compand: add a dependency on strtok_r 2014-02-26 21:59:14 +01:00
Diego Biurrun
a63ac1106d build: Do not redundantly specifiy H.263-related object files for MSMPEG4v*
These are already covered through dependencies specified in configure.
2014-02-26 19:44:55 +01:00
Peter Ross
1524b0fa68 libavcodec/rawdec: avoid memcpy when performing 16-bit samples shift
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 19:44:34 +01:00
Timothy Gu
baa650cc79 configure: use pkg-config to detect libbluray
The current configure fails when static libbluray is compiled with libxml2
support.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 18:57:43 +01:00
Michael Niedermayer
bdadf05ec8 avcodec/parser: put lost comments back
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 18:57:43 +01:00
Paul B Mahol
9d297641ee avformat/sdr2: h264 stream needs parsing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-02-26 17:46:45 +00:00
Paul B Mahol
9f2a3bcee7 avfilter: remove superflous lines
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-02-26 16:37:59 +00:00
Paul B Mahol
a2e4b4e968 avfilter/af_compand: some more cosmetics to decrease difference with qatar
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-02-26 15:03:09 +00:00
Michael Niedermayer
8f946ac8ea avfilter: remove af_compand_fork
All relevant changes except the float/double one have been merged

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 13:21:29 +01:00
Michael Niedermayer
c62d83a5e7 avfilter/af_compand: more cosmetics from libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 13:12:38 +01:00
Michael Niedermayer
05412f4cd4 avfilter/af_compand: cosmetics from libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 13:00:09 +01:00
Michael Niedermayer
5e02ff3e3d avfilter/af_compand: switch defaults to libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 13:00:09 +01:00
Michael Niedermayer
619d6b8f55 avfilter/af_compand: "use local variable for channels" from libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 13:00:09 +01:00
Michael Niedermayer
e509df4bc8 avfilter/af_compand: error checks from libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 13:00:09 +01:00
Michael Niedermayer
4b87975147 avfilter/af_compand: pts init code from libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 12:46:04 +01:00
Michael Niedermayer
5c78fe08b0 avfilter/af_compand: cosmetics and doxy comment from libavfilter/af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 12:42:47 +01:00
Michael Niedermayer
66ad3292eb avfilter/af_compand: add Andrew Kelley to the copyright
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 12:40:33 +01:00
Michael Niedermayer
86a191e25b avfilter/af_compand: merge avframe code from af_compand_fork
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 12:33:28 +01:00
Michael Niedermayer
27ba05adbc avfilter/af_compand: merge uninit() calls on error from af_compand_fork.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 12:11:33 +01:00
Michael Niedermayer
8b80485960 avfilter/af_compand: also support '|' as seperator
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 12:04:00 +01:00
Michael Niedermayer
1df1a1fe61 avfilter/af_compand_fork: avoid strtok_r() so as not to break build
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 11:48:34 +01:00
Michael Niedermayer
22307f170f avfilter/af_compand: whitespace changes from af_compand_fork
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 11:41:36 +01:00
Michael Niedermayer
5d166de258 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavfi: add compand audio filter

Conflicts:
	Changelog
	doc/filters.texi
	libavfilter/Makefile
	libavfilter/af_compand.c
	libavfilter/allfilters.c
	libavfilter/version.h

The filter is added as new one so as to ease clean merging of its changes
in debug-able steps
See: 6b68e2a43b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-26 11:27:02 +01:00
Andrew Kelley
738f83582a lavfi: add compand audio filter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-26 08:09:58 +01:00
Carl Eugen Hoyos
96fc2908f0 Read bits_per_coded_sample from V_MS/VFW/FOURCC mkv files.
Fixes ticket #3425.
2014-02-26 00:02:51 +01:00
Michael Niedermayer
2673357048 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  parser: cosmetics: Drop some unnecessary parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 20:52:45 +01:00
Michael Niedermayer
1f2bacc897 Merge commit 'e7dfaf16a403972eb6aed5ce8f84c0085bd2fb5a'
* commit 'e7dfaf16a403972eb6aed5ce8f84c0085bd2fb5a':
  libavfilter: example audio filtering program

Conflicts:
	.gitignore
	configure
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 20:26:00 +01:00
Andrew Kelley
9e329185d7 avfilter/af_compand: fix invalid read
Fixes #3383.
2014-02-25 19:00:14 +00:00
Michael Niedermayer
72d580f819 Merge commit 'a1c699659d56b76c0bf399307f642c6fd6d28281'
* commit 'a1c699659d56b76c0bf399307f642c6fd6d28281':
  parser: K&R formatting cosmetics

Conflicts:
	libavcodec/parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 19:12:30 +01:00
Michael Niedermayer
0306436416 Merge commit 'ed61f3ca8a0664a697782253b354055136c5d303'
* commit 'ed61f3ca8a0664a697782253b354055136c5d303':
  parser: Remove commented-out cruft

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 19:03:45 +01:00
Hendrik Leppkes
bc249bd673 mpegvideo: re-indent buffer clearing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 13:47:16 +01:00
Hendrik Leppkes
fa84231ee8 mpegvideo: fix overwriting hwaccel surface objects
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 13:47:10 +01:00
Diego Biurrun
4ec336484d parser: cosmetics: Drop some unnecessary parentheses 2014-02-25 13:40:47 +01:00
Anton Khirnov
e7dfaf16a4 libavfilter: example audio filtering program
Based on a patch by Andrew Kelley <superjoe30@gmail.com>

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-25 13:22:10 +01:00
Peter Ross
bef6b27f10 avcodec/vp8dsp: use AV_ZERO64 to clear idct coefficient rows
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 12:49:35 +01:00
Luca Barbato
a1c699659d parser: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-25 12:28:33 +01:00
Diego Biurrun
ed61f3ca8a parser: Remove commented-out cruft 2014-02-25 11:59:05 +01:00
Michael Niedermayer
a8ad7e47fb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  texi2pod: always declare the pod file as UTF-8 encoded

Conflicts:
	doc/texi2pod.pl

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 09:02:57 +01:00
Lukasz Marek
3144440004 lavu/buffer: add release function
new function allows to unref buffer and obtain its data.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 01:38:52 +01:00
Timothy Gu
774239be71 ffmpeg_opt: get_preset_file_2(): fix avio_open2() return code check
avio_open2() only return < 0 when error.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-25 00:05:37 +01:00
Janne Grunau
5ea14d48a8 texi2pod: always declare the pod file as UTF-8 encoded 2014-02-24 23:36:09 +01:00
Michael Niedermayer
75f6ed8dc2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: fix one accented word

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 22:29:24 +01:00
Michael Niedermayer
26dad980ba Merge commit '48d1ed9c83ee0c388e8c2898e81ffb4add509ab9'
* commit '48d1ed9c83ee0c388e8c2898e81ffb4add509ab9':
  doc: name correct header

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 22:19:41 +01:00
Michael Niedermayer
6b06f9f1bc Merge commit '39c2880eeae6930b1036ce1f479afc1e1152c13f'
* commit '39c2880eeae6930b1036ce1f479afc1e1152c13f':
  af_volume: preserve frame properties

Conflicts:
	libavfilter/af_volume.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 22:13:42 +01:00
Michael Niedermayer
fc10ed2cac Merge commit 'dcc7e4bf1d0913123bfafbc58bf47bd41dd5848d'
* commit 'dcc7e4bf1d0913123bfafbc58bf47bd41dd5848d':
  af_resample: preserve frame properties

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 21:46:00 +01:00
Michael Niedermayer
70a25587d2 Merge commit '67f2a688143b644f99360565a9f36c61a5f052e9'
* commit '67f2a688143b644f99360565a9f36c61a5f052e9':
  avconv: remove a write-only variable

Conflicts:
	ffmpeg.c
	ffmpeg.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 21:08:19 +01:00
Michael Niedermayer
e66247e926 Merge commit '8aca00cc2b25810bdd85b75f5632844a5614b707'
* commit '8aca00cc2b25810bdd85b75f5632844a5614b707':
  libx265: Properly handled dynamic linking with MSVC

See: 87769d6c8f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 21:06:45 +01:00
Michael Niedermayer
e1991c7d5f Merge commit '0f7fa48cf1a36ed135c9e0cb01a6b84179aea25b'
* commit '0f7fa48cf1a36ed135c9e0cb01a6b84179aea25b':
  libx265: Support SAR

See: 73ee4cf307
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 21:03:47 +01:00
Michael Niedermayer
3d53bbd0ac Merge commit '2142b2efcd631db05e4c7c26785e337ecf1258ff'
* commit '2142b2efcd631db05e4c7c26785e337ecf1258ff':
  libx265: Support 4:4:4

See: d102925a6d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 21:02:36 +01:00
Michael Niedermayer
a88cbdfb90 Merge commit 'd00a504b244e136a0c82a55e21ed94659e0674ad'
* commit 'd00a504b244e136a0c82a55e21ed94659e0674ad':
  libx265: Update API usage

Conflicts:
	libavcodec/libx265.c

See: d373647194
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 20:53:10 +01:00
Michael Niedermayer
a908de7f49 avformat/options_table: add named constants for avoid_negative_ts
Idea-by: ubitux
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 19:46:11 +01:00
Vittorio Giovara
c91488ab33 doc: fix one accented word 2014-02-24 17:54:03 +01:00
Vittorio Giovara
48d1ed9c83 doc: name correct header 2014-02-24 17:54:03 +01:00
Anton Khirnov
39c2880eea af_volume: preserve frame properties 2014-02-24 17:32:26 +01:00
Anton Khirnov
dcc7e4bf1d af_resample: preserve frame properties 2014-02-24 17:30:48 +01:00
Anton Khirnov
67f2a68814 avconv: remove a write-only variable 2014-02-24 17:30:48 +01:00
Derek Buitenhuis
6d18154f61 libx265: Use proper error code
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:10:23 -05:00
Derek Buitenhuis
87769d6c8f libx265: Properly handled dynamic linking with MSVC
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:10:23 -05:00
Derek Buitenhuis
73ee4cf307 libx265: Support SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:10:23 -05:00
Derek Buitenhuis
d102925a6d libx265: Support 4:4:4
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:10:17 -05:00
Derek Buitenhuis
d373647194 libx265: Update API usage
Framerate is now a sane rational instead of an integer, and
inputDepth is changed to what it actually is.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:09:30 -05:00
Derek Buitenhuis
8aca00cc2b libx265: Properly handled dynamic linking with MSVC
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:07:33 -05:00
Derek Buitenhuis
0f7fa48cf1 libx265: Support SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:07:33 -05:00
Derek Buitenhuis
2142b2efcd libx265: Support 4:4:4
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:06:59 -05:00
Derek Buitenhuis
d00a504b24 libx265: Update API usage
Framerate is now a sane rational instead of an integer, and
inputDepth is changed to what it actually is.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 15:50:04 +00:00
Michael Niedermayer
2a3cb1cfca Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Use av_frame_copy() to simplify code where appropriate.

Conflicts:
	libavfilter/vf_copy.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 10:47:47 +01:00
Michael Niedermayer
7a9946d386 Merge commit '8feac29cc46270cc89d6016340e7bac780877131'
* commit '8feac29cc46270cc89d6016340e7bac780877131':
  lavc: use AVFrame API properly in ff_reget_buffer()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 10:15:19 +01:00
Michael Niedermayer
74bb1ca82c avutil/frame_copy_audio: also check that channels match
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 10:12:33 +01:00
Michael Niedermayer
fff5262301 Merge commit '1155fd02ae7bac215acab316e847c6bb25f74fc3'
* commit '1155fd02ae7bac215acab316e847c6bb25f74fc3':
  frame: add a convenience function for copying AVFrame data

Conflicts:
	doc/APIchanges
	libavutil/frame.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 09:38:32 +01:00
Michael Niedermayer
cc6cc84bc4 Merge commit '746dca483a2f0f2639265f6e1c0085c8861875a1'
* commit '746dca483a2f0f2639265f6e1c0085c8861875a1':
  avconv: support forcing codec tags for input streams

Conflicts:
	doc/ffmpeg.texi

See: 6bca574a98
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 09:15:46 +01:00
James Almer
3f3d748cab x86: Move XOP emulation to x86util
We need the emulation to support the cases where the first
argument is the same as the fourth. To achieve this a fifth
argument working as a temporary may be needed.
Emulation that doesn't obey the original instruction semantics
can't be in x86inc.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 08:30:19 +01:00
Michael Niedermayer
6c6e4dd139 swr: check that the context for swr_convert() has been initialized
Reviewed-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 08:23:42 +01:00
Michael Niedermayer
a66be60888 swresample: add swr_is_initialized()
Idea-from/based-on: 7e86c27b4e
Reviewed-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 08:23:22 +01:00
Anton Khirnov
30517a9f05 Use av_frame_copy() to simplify code where appropriate. 2014-02-24 07:25:07 +01:00
Anton Khirnov
8feac29cc4 lavc: use AVFrame API properly in ff_reget_buffer() 2014-02-24 07:25:07 +01:00
Anton Khirnov
1155fd02ae frame: add a convenience function for copying AVFrame data 2014-02-24 07:25:07 +01:00
Anton Khirnov
746dca483a avconv: support forcing codec tags for input streams 2014-02-24 07:25:07 +01:00
James Almer
313a6c65b7 oggdec: validate VP8 keyframes
Fixes seeking with broken files

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-24 02:24:21 +01:00
Michael Niedermayer
bd8d73ea8b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: add detection for Bit Manipulation Instruction sets

Conflicts:
	libavutil/x86/cpu.c

See: 0bc3de19ff
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:52:58 +01:00
Michael Niedermayer
d9574069c1 Merge commit '1b932eb1508f550fac9e911923a0383efda53aa3'
* commit '1b932eb1508f550fac9e911923a0383efda53aa3':
  x86: add detection for FMA3 instruction set

Conflicts:
	configure
	libavutil/cpu.h
	libavutil/x86/cpu.c

See: a2af8eddab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:43:08 +01:00
Michael Niedermayer
0982433253 Merge commit '10b0161d78148f46eaffb29ea022378947eaef2c'
* commit '10b0161d78148f46eaffb29ea022378947eaef2c':
  x86: add missing XOP checks and macros

Conflicts:
	configure
	libavutil/x86/cpu.h

See: 6c12b1de06
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:35:23 +01:00
Michael Niedermayer
38336f0fb1 Merge commit '5800ba0db667630e6ff81d30f03961ea10726aa6'
* commit '5800ba0db667630e6ff81d30f03961ea10726aa6':
  configure: disable cpunop if the check fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:25:13 +01:00
Diego Biurrun
96ea3dea58 configure: Move cpunop into ARCH_EXT_LIST_X86
It is a processor feature, so it belongs there.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:24:51 +01:00
Michael Niedermayer
1287b640f0 Merge commit '8eeacf31c5ea37baf6b222dc38d20cf4fd33c455'
* commit '8eeacf31c5ea37baf6b222dc38d20cf4fd33c455':
  hevc: Do not left shift a negative value in hevc_loop_filter_chroma

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:18:09 +01:00
Michael Niedermayer
a2e4b23bfe Merge commit 'ff486c0f7f6b2ace3f0238660bc06cc35b389676'
* commit 'ff486c0f7f6b2ace3f0238660bc06cc35b389676':
  hevc: Do not right shift a negative value in get_pcm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:11:51 +01:00
Michael Niedermayer
c2b5981afa Merge commit '50c988aa6d6c6f0ceb8f922bcea34800b56b85d9'
* commit '50c988aa6d6c6f0ceb8f922bcea34800b56b85d9':
  hevc: Drop unnecessary shifts in deblocking_filter_CTB

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 22:05:12 +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
Michael Niedermayer
72e6913140 avcodec/h264: clear chroma planes when flags gray is used
Fixes Ticket3397
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 18:22:13 +01:00
Michael Niedermayer
42361bdf51 avcodec/mpegvideo: fix buffer clear code so it should work with negative linesizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 18:14:59 +01:00
James Almer
d59fcdaff3 x86: add detection for Bit Manipulation Instruction sets
Based on x264 code

Signed-off-by: James Almer <jamrial@gmail.com>
2014-02-23 15:29:36 +01:00
James Almer
1b932eb150 x86: add detection for FMA3 instruction set
Based on x264 code

Signed-off-by: James Almer <jamrial@gmail.com>
2014-02-23 15:29:36 +01:00
James Almer
10b0161d78 x86: add missing XOP checks and macros
Signed-off-by: James Almer <jamrial@gmail.com>
2014-02-23 15:29:36 +01:00
Janne Grunau
5800ba0db6 configure: disable cpunop if the check fails
Moving cpunop from the HAVE_LIST to the ARCH_EXT_LIST_X86 has the side
effect of enabling it. The semantics of the check have to be changed
from enable if successful to disable if unsuccessful. This was missing
in 2b0bb69997 causing build errors with
nasm.
2014-02-23 15:29:20 +01:00
Luca Barbato
8eeacf31c5 hevc: Do not left shift a negative value in hevc_loop_filter_chroma 2014-02-23 14:34:41 +01:00
Luca Barbato
ff486c0f7f hevc: Do not right shift a negative value in get_pcm 2014-02-23 14:34:40 +01:00
Luca Barbato
50c988aa6d hevc: Drop unnecessary shifts in deblocking_filter_CTB
beta_offset is pre-multiplied by 2.
2014-02-23 14:34:34 +01:00
Carl Eugen Hoyos
5642dd41cc Add more Bayer colour spaces to the video4linux2 device wrapper. 2014-02-23 13:42:41 +01:00
Peter Ross
dd5abb0bac avdevice/v4l2: add V4L2_PIX_FMT_SRGGB8 2014-02-23 13:42:41 +01:00
Sylvain Fabre
526049ce61 Issue-#3407 : Enhance precision for double to string conversion, useful for GEOTIFF double values
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 13:03:18 +01:00
Peter Ross
02b63246cf libswscale: bayer to rgb24 & yv12 colorspace converters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 02:38:22 +01:00
Peter Ross
7e23cfba76 avcodec/rawdec: for 16-bit pix fmts, shift pixels when bits_per_coded_sample < 16
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 02:38:17 +01:00
Peter Ross
a3a4d07d6a avutil/pixdesc: set bayer pixfmt descriptor flags
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 02:24:03 +01:00
Dave Yeo
e5858fef38 configure: Revert commit 5176e9651b
This fixes cpunop detection and unbreaks NASM assembly

Signed-off-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-23 01:34:05 +01:00
Carl Eugen Hoyos
5d6fac114b Support old qclp-in-mov files that do not store bytes_per_frame in the header.
Fixes ticket #2649.
2014-02-23 00:41:53 +01:00
Carl Eugen Hoyos
0aded6bf02 Support MPEG-2 video mov files with sample description mp2v. 2014-02-23 00:31:50 +01:00
Michael Niedermayer
717ec57c7e avformat/movenc: shift positive timestamps to 0 if edit lists cannot be used
Fix handling of timestamps which start  far away from 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 22:39:50 +01:00
Michael Niedermayer
a89c012531 avformat/mux: support shifting timestamps so they start at 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 22:39:49 +01:00
Michael Niedermayer
f284e2a58a swresample: factorize clear_context() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 21:36:30 +01:00
Michael Niedermayer
246eae98cf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: return an error if a avresample_open() is called on an open context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 21:12:02 +01:00
Michael Niedermayer
5367c0be62 Merge commit '7e86c27b4ee9e5a3fbe6cf5249b9d918b2a5e731'
* commit '7e86c27b4ee9e5a3fbe6cf5249b9d918b2a5e731':
  lavr: add a function for checking whether AVAudioResampleContext is open

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 21:06:02 +01:00
Anton Khirnov
1db03a6864 lavr: return an error if a avresample_open() is called on an open context 2014-02-22 20:53:09 +01:00
Anton Khirnov
7e86c27b4e lavr: add a function for checking whether AVAudioResampleContext is open 2014-02-22 20:52:36 +01:00
Peter Ross
55479f42ce avformat/nut: add bayer colorspaces
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 20:51:13 +01:00
Peter Ross
6236debe1a avcodec/raw: add bayer formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 18:29:17 +01:00
James Almer
0bc3de19ff x86: add detection for Bit Manipulation Instruction sets
Based on x264 code

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 17:26:00 +01:00
James Almer
a2af8eddab x86: add detection for FMA3 instruction set
Based on x264 code

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 17:25:52 +01:00
Michael Niedermayer
f98821dddb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: Fix a typo from the previous commit

See: 76dd01ecd4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 15:58:57 +01:00
Michael Niedermayer
3c096751ff avformat/utils: compute_pkt_fields: Fix DTS for the case where has_b_frames is too large but the correct one is constant
Fixes issue1.m2ts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 14:31:23 +01:00
Michael Niedermayer
d4dfa97ae3 avformat/utils: reset pts_buffer in estimate_timings_from_pts()
This fixes the first few dts after find_stream_info

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 14:31:23 +01:00
Michael Niedermayer
f288e1b67c avformat/utils: factorize h264/hevc checks out in compute_pkt_fields()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 14:31:23 +01:00
Paul B Mahol
8bcacd9f42 SDR2 demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-02-22 11:40:27 +00:00
Luca Barbato
d922c5a5fb h264: Fix a typo from the previous commit
f777504f64 changed a - in +

CC: libav-stable@libav.org
2014-02-22 12:26:32 +01:00
Carl Eugen Hoyos
b89596a432 Fix FSF address in colormatrix and libzvbi license headers.
As reported by irc user aca.
The files in compat/avisynth are maintained elsewhere, no changes.
2014-02-22 11:17:56 +01:00
Michael Niedermayer
44b22bba42 avcodec/h264_ps: fix printed num_reorder_frames value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-22 02:55:55 +01:00
Michael Niedermayer
8c55ff3933 avcodec/h264: use subsample factors of the used pixel format
Fixes out of array read
Fixes: 1cb91c36c4e55463f14aacb9bdf55b38-asan_heap-oob_106cbce_5617_cov_11212800_h264_mmx_chroma_intra_lf.mp4
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 23:53:49 +01:00
Michael Niedermayer
9aa59a9ce6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mxf: Add DNxHD UL

See: 2ff540a0fe
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 21:15:08 +01:00
Michael Niedermayer
f93bd82ee6 Merge commit 'a9099e04026f300924ac363fa6f8aef912677d90'
* commit 'a9099e04026f300924ac363fa6f8aef912677d90':
  mxf: Add uncompressed 422 8-bit rawvideo UL

Conflicts:
	libavformat/mxf.c

See: 51d632cc8f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 21:08:53 +01:00
Reynaldo H. Verdejo Pinochet
b295bce148 qcelp: grammar
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-21 16:57:26 -03:00
Reynaldo H. Verdejo Pinochet
84cdd2fd80 qcelpdec: break some too-long lines
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-21 16:57:26 -03:00
Michael Niedermayer
c8f3c3a579 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Do not warn about missing start time for unknown streams.
  Only complain about missing frame rate for video streams.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 18:45:16 +01:00
Michael Niedermayer
a0f8e6ad67 tests/tiny_ssim: drop isatty() support
tiny_ssim is build on the host, not the target and the HAVE_* are set for the
target.
This patch fixes building tiny_ssim when HAVE_* differed between target and host

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 17:29:58 +01:00
Carl Eugen Hoyos
f5fe6a4f79 Do not warn about missing start time for unknown streams. 2014-02-21 17:27:37 +01:00
Carl Eugen Hoyos
1f7e9be0b0 Only complain about missing frame rate for video streams. 2014-02-21 17:27:20 +01:00
Tomas Härdin
c416b5cdf1 mxf: Add DNxHD UL
Note that the old DNxHD UL is actually JPEG 2000 according to RP224.
Leaving it as-is for now.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-21 15:46:10 +01:00
Philip de Nier
a9099e0402 mxf: Add uncompressed 422 8-bit rawvideo UL
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-21 15:46:05 +01:00
Michael Niedermayer
6e63867771 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libvorbis: Give consistent names to all functions, structs, and defines

Conflicts:
	libavcodec/libvorbisenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 13:56:53 +01:00
Diego Biurrun
dc9e05e279 libvorbis: Give consistent names to all functions, structs, and defines 2014-02-21 11:08:09 +01:00
Michael Niedermayer
20fa3fb93d avformat/movenc: assert that get_cluster_duration() value is valid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 04:41:21 +01:00
Michael Niedermayer
1b872de8f4 avformat/movenc: check that the input timestamps are within the range that can be stored in mov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 04:41:21 +01:00
Michael Niedermayer
76dd01ecd4 avcodec/h264: fix sign error
regression since f777504f64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 00:33:57 +01:00
Michael Niedermayer
0ad8f73f13 avcodec: fix dxva2 & vaapi after removing the +52 offset from the loop filter parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 00:21:22 +01:00
Michael Niedermayer
de7b50e9cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: Lower bound check for slice offsets

Conflicts:
	libavcodec/h264.c

See: 91253839e1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-21 00:20:55 +01:00
Michael Niedermayer
f2387152bc Merge commit '5c79d2e12d13959fc6aed92d102c25194a06de05'
* commit '5c79d2e12d13959fc6aed92d102c25194a06de05':
  avconv: Do not divide by zero

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:59:09 +01:00
Michael Niedermayer
9026c49c82 Merge commit 'd6a27f885b5d4cba7a82e50af423c741d2f37c3e'
* commit 'd6a27f885b5d4cba7a82e50af423c741d2f37c3e':
  configure: Add usan to the toolchain presets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:39:49 +01:00
Michael Niedermayer
5176e9651b Merge commit '2b0bb69997c2416e74f41aa1400ce983bf8775c0'
* commit '2b0bb69997c2416e74f41aa1400ce983bf8775c0':
  configure: Move cpunop into ARCH_EXT_LIST_X86

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:27:13 +01:00
Michael Niedermayer
36eec03211 Merge commit '6adf4290ebcf65ac8243d74f34ba0a508f561633'
* commit '6adf4290ebcf65ac8243d74f34ba0a508f561633':
  configure: Move inet_aton check into network function check block

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:18:11 +01:00
Michael Niedermayer
490215cbd7 Merge commit '9c029f67ca82147ddfa83a1546ee1e109e11fbd4'
* commit '9c029f67ca82147ddfa83a1546ee1e109e11fbd4':
  aarch64: use EXTERN_ASM consistently for exported symbols

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:13:13 +01:00
Michael Niedermayer
1859b1de31 Merge commit '996697e266c8adc0ad9b7fc7568406c7529c97cf'
* commit '996697e266c8adc0ad9b7fc7568406c7529c97cf':
  x86: float dsp: unroll SSE versions

See: 133b34207c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:11:38 +01:00
Michael Niedermayer
1bef9c5e83 Merge commit 'ef010f08ae53479c54e2f16be5a7e1a809a9e268'
* commit 'ef010f08ae53479c54e2f16be5a7e1a809a9e268':
  dca: replace some memcpy by AV_COPY128

See: 5a48caa34b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:07:34 +01:00
Michael Niedermayer
4d943cec68 Merge commit '982b596ea6640bfe218a31f6c3fc542d9fe61c31'
* commit '982b596ea6640bfe218a31f6c3fc542d9fe61c31':
  h264: avoid undefined behavior in chroma motion compensation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 23:02:38 +01:00
Vittorio Giovara
f777504f64 h264: Lower bound check for slice offsets
And use the value from the specification.

Sample-Id: 00000451-google
Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-20 18:58:38 +01:00
Luca Barbato
5c79d2e12d avconv: Do not divide by zero 2014-02-20 18:58:38 +01:00
Luca Barbato
d6a27f885b configure: Add usan to the toolchain presets
clang-3.4 and gcc-4.9 have it.
2014-02-20 18:58:38 +01:00
Diego Biurrun
2b0bb69997 configure: Move cpunop into ARCH_EXT_LIST_X86
It is a processor feature, so it belongs there.
2014-02-20 18:20:08 +01:00
Diego Biurrun
6adf4290eb configure: Move inet_aton check into network function check block 2014-02-20 18:20:07 +01:00
Michael Niedermayer
0c803eba2f avformat/mov: make invalid sampledelta error more verbose
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 18:04:44 +01:00
Michael Niedermayer
d089e9a4d1 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  ffmpeg: make reading packets from thread blocking.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 16:29:15 +01:00
Michael Niedermayer
c427b2b86e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg4video_parser: Drop pointless av_-prefix from static function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 15:43:03 +01:00
Michael Niedermayer
add54280bf Merge commit '984e3398662d460e15904f9e4a6df9ef759070cb'
* commit '984e3398662d460e15904f9e4a6df9ef759070cb':
  avcodec: Consistently name encoder init functions foo_encode_init

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 15:27:03 +01:00
Janne Grunau
9c029f67ca aarch64: use EXTERN_ASM consistently for exported symbols
Based on e3fec3f095 for arm.
2014-02-20 15:24:35 +01:00
Michael Niedermayer
8372aaf721 Merge commit '017a06a9ee86b047079166c2694c9c655ff03356'
* commit '017a06a9ee86b047079166c2694c9c655ff03356':
  x86: dsputil: Use correct file name as multiple inclusion guard

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 14:58:04 +01:00
Michael Niedermayer
a0cfec2e2b Merge commit 'ba42c852477e87f6e47a5587e8f7829c46c52032'
* commit 'ba42c852477e87f6e47a5587e8f7829c46c52032':
  bit_depth_template: Use file name as multiple inclusion guard

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 14:57:31 +01:00
Michael Niedermayer
e948f17369 Merge commit '61e7c7f27b0a2652bf5cd282b97762ee99d025ef'
* commit '61e7c7f27b0a2652bf5cd282b97762ee99d025ef':
  svq3: Adjust #endif comment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 14:44:57 +01:00
Michael Niedermayer
fdba564585 Merge commit '192ccc5034ad4ac1b5022fc16c1162267add6a0f'
* commit '192ccc5034ad4ac1b5022fc16c1162267add6a0f':
  build: The MPEG-4 video parser depends on h263dsp

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 14:39:33 +01:00
Christophe Gisquet
996697e266 x86: float dsp: unroll SSE versions
vector_fmul and vector_fmac_scalar are guaranteed that they can process in
batch of 16 elements, but their SSE versions only does 8 at a time.

Therefore, unroll them a bit.
299 to 261c for 256 elements in vector_fmac_scalar on Arrandale/Win64.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-20 14:18:05 +01:00
Christophe Gisquet
ef010f08ae dca: replace some memcpy by AV_COPY128
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-20 14:16:43 +01:00
Janne Grunau
982b596ea6 h264: avoid undefined behavior in chroma motion compensation
Makes fate-h264 pass under valgrind --undef-value-errors=yes with
-cpuflags none. {avg,put}_h264_chroma_mc8_8 approximately 5% faster,
{avg,put}_h264_chroma_mc4_8 2% faster both on x86 and arm.
2014-02-20 14:02:06 +01:00
Diego Biurrun
4bcca3611d mpeg4video_parser: Drop pointless av_-prefix from static function 2014-02-20 04:16:15 -08:00
Diego Biurrun
984e339866 avcodec: Consistently name encoder init functions foo_encode_init 2014-02-20 04:16:15 -08:00
Diego Biurrun
017a06a9ee x86: dsputil: Use correct file name as multiple inclusion guard 2014-02-20 04:16:15 -08:00
Diego Biurrun
ba42c85247 bit_depth_template: Use file name as multiple inclusion guard 2014-02-20 04:16:15 -08:00
Diego Biurrun
61e7c7f27b svq3: Adjust #endif comment 2014-02-20 04:16:15 -08:00
Diego Biurrun
192ccc5034 build: The MPEG-4 video parser depends on h263dsp
The dependency is indirect through the h263/mpegvideo code.
CC: libav-stable@libav.org
2014-02-20 11:55:12 +01:00
Nicolas George
299a56879d ffmpeg: make reading packets from thread blocking.
If a packet is not ready on the input selected by ffmpeg,
it will read from another input instead. If that happens
repeatedly, frames will accumulate somewhere later in the
processing to ensure streams synchronization. It can happen
in particular when reading from a slow medium or an
expensive lavfi filter graph.

Make reading from normal demuxers on non-streamed data and
from the lavfi pseudo-device blocking to avoid that.

Should fix trac ticket #3079.
2014-02-20 11:22:55 +01:00
Michael Niedermayer
3edc3b1595 avcodec/mpeg4videodec: Check for bitstream overread in decode_vol_header()
Fixes out of array read
Fixes: 08e48e9daae7d8f8ab6dbe3919e797e5-asan_heap-oob_157461c_5295_cov_1266798650_firefing.mpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 05:49:52 +01:00
Nicolas George
916a79227e lavf/mux: check av_dup_packet() return value.
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 02:58:39 +01:00
Michael Niedermayer
cbd9cc5997 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavfi/pan: use extended_data instead of data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 02:53:39 +01:00
Michael Niedermayer
8f33810ed2 avfilter/vf_fps: fix rounding error accumulation
Fixes Ticket3329

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 02:36:02 +01:00
Michael Niedermayer
c849b00b80 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libavformat/mpegts: expose raw packet size

Conflicts:
	libavformat/mpegts.c

See: f9b997c337
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 02:10:05 +01:00
Michael Niedermayer
6a24d77929 Merge commit 'c3ecd968f0e78da6e77f0c06c2f785b266d83cf1'
* commit 'c3ecd968f0e78da6e77f0c06c2f785b266d83cf1':
  AVOptions: add flags for read/read-only options

Conflicts:
	libavutil/opt.c
	libavutil/opt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 02:01:13 +01:00
Michael Niedermayer
f4c8d00223 Merge commit '6bb8720f00e2e6209665f819fb351fd42b82d5d0'
* commit '6bb8720f00e2e6209665f819fb351fd42b82d5d0':
  AVOptions: deprecate unused AV_OPT_FLAG_METADATA

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-20 01:50:26 +01:00
Michael Niedermayer
ca9f7e1832 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hevc: Always consider VLC NALU type mismatch fatal

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 22:34:41 +01:00
Michael Niedermayer
ef08d554e0 Merge commit '175e5063320f585118a5461f15dbacf2ce17e97d'
* commit '175e5063320f585118a5461f15dbacf2ce17e97d':
  hevc: Mention the missing SPS in the error message

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 22:10:27 +01:00
Michael Niedermayer
4ba03e37fd Merge commit '93632a70f9ac2cb2ebf0e69d21fdfaae68ff02fd'
* commit '93632a70f9ac2cb2ebf0e69d21fdfaae68ff02fd':
  doc: Name the MOV muxer as it should be called

Conflicts:
	doc/muxers.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 22:09:10 +01:00
Michael Niedermayer
ca5b45b9b3 Merge commit 'a7b3216cbdc7796a9d14cd22a863fae3556098ba'
* commit 'a7b3216cbdc7796a9d14cd22a863fae3556098ba':
  doc: Sort the muxer documentation

Conflicts:
	doc/muxers.texi

No change as ours was already sorted

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 22:06:12 +01:00
Michael Niedermayer
0a30ad3473 Merge commit '874c751cc5b99cd68932e21c2c3a0d21134207e0'
* commit '874c751cc5b99cd68932e21c2c3a0d21134207e0':
  threads: Check w32threads dependencies at the configure stage

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 21:53:58 +01:00
Leandro Dorileo
8370a6fa59 libavformat/mpegts: expose raw packet size
We cannot easily determine if an mpeg TS's packet size is DVHS, FEC
or so on, for that we need to expose the internal raw_packet_size
field.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-19 21:52:17 +01:00
Anton Khirnov
c3ecd968f0 AVOptions: add flags for read/read-only options 2014-02-19 21:52:17 +01:00
Anton Khirnov
6bb8720f00 AVOptions: deprecate unused AV_OPT_FLAG_METADATA
It was never used since it was added and the things it was intended for
are now exported differently.
2014-02-19 21:52:17 +01:00
Michael Niedermayer
4332b01c30 avcodec/huffyuv: simplify allocation of temporaries
This also fixes a null pointer dereference with rgb and plane prediction

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 20:32:02 +01:00
Carl Eugen Hoyos
a88dee8eea Add decklink_enc.h to SKIPHEADERS.
Fixes make checkheaders without decklink headers.
2014-02-19 19:55:14 +01:00
Michael Niedermayer
3734c3ea51 ffmpeg: reduce frame rate for mpeg4 to be within the spec limits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 18:40:27 +01:00
Michael Niedermayer
2969fb4393 avformat/utils: av_guess_frame_rate() favor avg_frame_rate if r_frame_rate has a comparably unlikely value
Fixes Ticket3399
Fixes Ticket2958

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 18:40:27 +01:00
Carl Eugen Hoyos
9c070ae03e Fix dctdnoiz dependencies, the filter should select dct, not fft.
Fixes compilation with --disable-everything --enable-filter=dctdnoiz
2014-02-19 17:27:36 +01:00
Luca Barbato
521726ff57 hevc: Always consider VLC NALU type mismatch fatal
Sample-Id: 00001667-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-19 16:59:40 +01:00
Luca Barbato
175e506332 hevc: Mention the missing SPS in the error message 2014-02-19 16:59:40 +01:00
Luca Barbato
93632a70f9 doc: Name the MOV muxer as it should be called
The section name is the muxer, not the format.
2014-02-19 16:59:40 +01:00
Luca Barbato
a7b3216cbd doc: Sort the muxer documentation
Keep the sections alphabetically sorted.
2014-02-19 16:59:40 +01:00
Michael Niedermayer
b14517d3cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_interlace: deprecate lowpass option

Conflicts:
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 16:16:41 +01:00
Michael Niedermayer
130c33af35 Merge commit 'b23bc95920e2f10b9621857e829c45b064f356c0'
* commit 'b23bc95920e2f10b9621857e829c45b064f356c0':
  x86: dca: Add missing multiple inclusion guards

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 15:44:48 +01:00
Diego Biurrun
874c751cc5 threads: Check w32threads dependencies at the configure stage
Also add warning comment about threading implementations without matching
atomics implementation to the atomics fallback implementation.
2014-02-19 15:12:37 +01:00
Michael Niedermayer
d808dce4a9 Merge commit '294a51e18ab7df4d658249361a03f0d716a4e9f0'
* commit '294a51e18ab7df4d658249361a03f0d716a4e9f0':
  gitignore: Add all examples below doc/examples

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 14:33:22 +01:00
Michael Niedermayer
3f461566b7 avformat/movenc: simplify code, decrease difference to libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 14:20:22 +01:00
Michael Niedermayer
ef1aae6ea9 Merge commit '1e142d5b4842dcb39fcb0e92e4aacbc9977bfa66'
* commit '1e142d5b4842dcb39fcb0e92e4aacbc9977bfa66':
  movenc: Add a fallback fragmentation method for plain mp4 as well

Conflicts:
	libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 14:19:45 +01:00
Michael Niedermayer
53d11f7b2d Merge commit '543156d7518f5e5d731123da066d86278f9fa492'
* commit '543156d7518f5e5d731123da066d86278f9fa492':
  arm: Mark the stack as non-executable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 14:07:26 +01:00
Michael Niedermayer
36fb07d1ab avcodec/mpeg4videodec: set field durations to safe values when they are invalid
Fixes division by 0
Fixes: 3c980274cecaca6ca5d6e517c0c1983e-signal_sigabrt_7ffff7125425_410_cov_3621042467_2_audio_streams.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 13:45:39 +01:00
Vittorio Giovara
35b05c5184 vf_interlace: deprecate lowpass option 2014-02-19 12:26:34 +01:00
Nicolas George
6c27aea811 lavfi/pan: use extended_data instead of data.
Fix trac ticket #3380.
2014-02-19 11:29:15 +01:00
Diego Biurrun
b23bc95920 x86: dca: Add missing multiple inclusion guards 2014-02-19 10:19:15 +01:00
Diego Biurrun
294a51e18a gitignore: Add all examples below doc/examples 2014-02-19 10:19:15 +01:00
Martin Storsjö
1e142d5b48 movenc: Add a fallback fragmentation method for plain mp4 as well
Previously the default fragmentation method was only enabled
if writing an ISM file.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-19 09:58:14 +02:00
Martin Storsjö
543156d751 arm: Mark the stack as non-executable
If linking in an object file without this attribute set, the
linker will assume that an executable stack might be needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-19 09:57:19 +02:00
Ronald S. Bultje
b9936e59e8 tiny_ssim: add per-frame metrics and final ssim db number.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 02:39:05 +01:00
Michael Niedermayer
d0e236292d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: informative error reporting in decode_slice_header()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 02:25:02 +01:00
Michael Niedermayer
2d93f76f8a Merge commit '96f9fbe10933944b3eba86efa1d1ca094f2c28f8'
* commit '96f9fbe10933944b3eba86efa1d1ca094f2c28f8':
  h264: fix slice_type value reported in decode_slice_header()

See: ec51b3308e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-19 02:24:13 +01:00
Luca Barbato
fea6db064b h264: informative error reporting in decode_slice_header()
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-18 23:47:55 +01:00
Luca Barbato
96f9fbe109 h264: fix slice_type value reported in decode_slice_header()
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-18 23:47:32 +01:00
Michael Niedermayer
8f853159f6 avutil/opt: preserve fractions in set_string_number()
This avoids going over a double precission float, which may loose precission

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 21:49:56 +01:00
Michael Niedermayer
3e70c7023e ffmpeg: support setting the chroma intra matrix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 18:19:28 +01:00
Michael Niedermayer
cbcfd7da4d avcodec: support setting the chroma intra matrix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 18:19:27 +01:00
Gonzalo Garramuno
3d20260157 avcodec/exr: read layers
EXR files have, like tiffs, multiple channels and layers.  I have a
patch for exr.c that allows you to select the layer you want to process
thru a -layer flag.  It is not bulletproof but works for all layers that
have 3 channels in them (normals, motion vectors, etc).
The calling convention for ffmpeg is:

ffmpeg -layer Diffuse -i myexr.%d.exr test.mov

Here's an exr image with multiple layers:

http://www.datafilehost.com/d/e45d9a1c

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 18:11:23 +01:00
Hendrik Leppkes
7716eda0aa vp9/x86: set correct number of registers used in intra pred asm
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 17:20:14 +01:00
Michael Niedermayer
9bb1af8f36 avcodec/huffyuvdec: use RGB0 for 24bit rgb output instead of BGRA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 16:07:54 +01:00
Michael Niedermayer
1355cafcb6 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix libswresample compilation with Apple Neon assembler.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 15:40:53 +01:00
Michael Niedermayer
469de4f583 avcodec/huffyuvdec: use the correct height field
Fixes Ticket3395

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 13:51:25 +01:00
Michael Niedermayer
61d59703c9 avcodec/snow: split block clipping checks
Fixes out of array read
Fixes: d4476f68ca1c1c57afbc45806f581963-asan_heap-oob_2266b27_8607_cov_4044577381_snow_chroma_bug.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-18 02:54:18 +01:00
Michael Niedermayer
c57fc97e95 avformat/bink: Check return value of av_add_index_entry()
Fixes null pointer dereference
Fixes: cdbf15cbd0a27cee958dd0b8800e452e-signal_sigsegv_737991_2083_cov_317652874_LBSTART.BIK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 23:47:05 +01:00
Michael Niedermayer
6742614c23 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doxygen: Replace @parblock syntax with manual linebreaks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 21:26:59 +01:00
Michael Niedermayer
f3bb5f28d3 Merge commit '4d7ab5cfebef91820af2933ef2f622ea598e6b53'
* commit '4d7ab5cfebef91820af2933ef2f622ea598e6b53':
  doxygen: Add a number of missing function parameter descriptions

Conflicts:
	libavformat/avformat.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 21:11:29 +01:00
Michael Niedermayer
27f55beba2 Merge commit '614b9e4db8f3d7c23fc0410fc04745a727a82f4e'
* commit '614b9e4db8f3d7c23fc0410fc04745a727a82f4e':
  h264: use avpriv_request_sample for chroma_format_idc

Conflicts:
	libavcodec/h264_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 20:59:51 +01:00
Michael Niedermayer
d42ec8433c avcodec/ansi: fix integer overflow
Fixes out of array read
Fixes: 5f9698e86d92f19bb08d54ff0d57027f-signal_sigsegv_b30756_3795_cov_2693691257_ansi256.ans
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 20:50:33 +01:00
Peter Ross
911eb71133 avcodec/vp8dsp: evaluate CONFIG_VP7_DECODER/CONFIG_VP8_DECODER
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 18:22:06 +01:00
Reimar Döffinger
e535897fad Fix libswresample compilation with Apple Neon assembler.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-02-17 17:40:10 +01:00
Diego Biurrun
2f2b2efd31 doxygen: Replace @parblock syntax with manual linebreaks
@parblock is only supported in very recent Doxygen versions.
2014-02-17 15:36:17 +01:00
Diego Biurrun
4d7ab5cfeb doxygen: Add a number of missing function parameter descriptions 2014-02-17 15:36:09 +01:00
James Almer
07b4b0ca62 tta/x86: add ff_ttafilter_process_dec_{ssse3, sse4}
Results are from a Win64 build running on an AMD FX 6300

1121 decicycles in ttafilter_process_dec_c, 16777112 runs, 104 skips
522 decicycles in ff_ttafilter_process_dec_ssse3, 16777149 runs, 67 skips
477 decicycles in ff_ttafilter_process_dec_sse4, 16777156 runs, 60 skips

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 13:51:19 +01:00
Michael Niedermayer
341639fe80 doc/examples: remove pathes from doxy examples
This makes the examples page less cluttered

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 13:50:53 +01:00
Ronald S. Bultje
21a0451167 vp9: split decode_coeff_b loop inside txsz branch.
The advantage of this is that the is32x32 division branch in
decode_coeffs_b is removed from the inner loop to outside the block
coef decoding loop in decode_coeffs. Also, it allows us to merge the
txsz branches from the block coef decoding loop, the context merge
and the context split.
2014-02-17 13:39:00 +01:00
Ronald S. Bultje
fdb093c4e4 vp9/x86: intra prediction SIMD.
Partially based on h264_intrapred. (I hope to eventually merge these
two intrapred implementations back together.)
2014-02-17 13:39:00 +01:00
Michael Niedermayer
38a08e0aea Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd: add list devices API
  lavd/opengl_enc_shaders: fix gray* shader

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 03:18:44 +01:00
Nicholas Robbins
b02b783417 MAINTAINERS: add myself as vf_dejudder.c maintainer
Signed-off-by: Nicholas Robbins <nickrobbins@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 03:13:55 +01:00
Peter Ross
a707d18a48 avcodec/vp8dsp: zeroise input coefficient array after use in vp7 idct functions
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 03:12:34 +01:00
Michael Niedermayer
c97c7c2adf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Fix project name typo

Merge for metadata only

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 02:47:20 +01:00
Michael Niedermayer
1fc74926a5 Merge commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90'
* commit 'b339182eba34f28de5f1a477cdd2c84f1ef35d90':
  Move all example programs to doc/examples

Conflicts:
	configure
	doc/Makefile
	doc/doxy-wrapper.sh
	doc/examples/avcodec.c
	doc/examples/decoding_encoding.c
	doc/examples/metadata.c
	doc/examples/muxing.c
	doc/examples/transcode_aac.c
	libavcodec/Makefile
	libavcodec/api-example.c
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 02:22:01 +01:00
Michael Niedermayer
91253839e1 avcodec/h264: more completely check the loop filter parameters
Fixes out of array read
Fixes: caa65cc01655505705129b677189f036-signal_sigsegv_fdcc43_2681_cov_3043376737_PPH422I5_Panasonic_A.264
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-17 01:29:34 +01:00
Vittorio Giovara
614b9e4db8 h264: use avpriv_request_sample for chroma_format_idc 2014-02-16 23:51:44 +01:00
Michael Niedermayer
c919e1ca2e avcodec/msrle: use av_image_get_linesize() to calculate the linesize
Fixes out of array access
Fixes: 14a74a0a2dc67ede543f0e35d834fbbe-asan_heap-oob_49572c_556_cov_215466444_44_001_engine_room.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 23:20:57 +01:00
Alexander Strasser
2218fbe05e doc/APIchanges: Update for new function avio_find_protocol_name
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2014-02-16 22:49:43 +01:00
Alexander Strasser
2b17c7685f ffmpeg_opt: assert_file_overwrite: Work for all file protocol outputs
Currently the file overwrite check does not work for paths that
contain a colon.

Use avio_find_protocol to always execute the existence check if
the file protocol is going to be used.

Fix remaining part of ticket #3249.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2014-02-16 22:34:21 +01:00
Alexander Strasser
db3c9701f4 lavf/avio: Introduce avio_find_protocol_name
Make it possible to find out what protocol will be chosen
for a given URL.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2014-02-16 22:34:21 +01:00
Diego Biurrun
f53e274f4c doc: Fix project name typo 2014-02-16 22:08:21 +01:00
Diego Biurrun
b339182eba Move all example programs to doc/examples
Also drop support for building examples in library directories.
2014-02-16 21:37:21 +01:00
Michael Niedermayer
a392bf6570 avcodec/dxtory: fix src size checks
Fixes integer overflow
Fixes out of array read
Fixes: d104661bb59b202df7671fb19a00ca6c-asan_heap-oob_d6429d_5066_cov_1729501105_dxtory_mic.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 21:13:02 +01:00
Michael Niedermayer
573a8ce8f9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  g2meet: validate bpp and bitmasks in the display info

Conflicts:
	libavcodec/g2meet.c

See: ae95b2f810
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 20:39:14 +01:00
Lukasz Marek
81c3f81d6f lavd: add list devices API
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-16 20:07:08 +01:00
Lukasz Marek
d3cf9b24cf lavd/opengl_enc_shaders: fix gray* shader
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-16 19:56:53 +01:00
Michael Niedermayer
05e9e3342f avformat/mov: fix avg_frame_rate calculation
Fixes integer overflow
Fixes Ticket3390

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 19:05:49 +01:00
Nicholas Robbins
b4d308c04f lavfi: adding dejudder filter to remove judder produced by partially telecined material.
Signed-off-by: Nicholas Robbins <nickrobbins@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 17:43:58 +01:00
Maxim Poliakovski
77fbc03265 g2meet: validate bpp and bitmasks in the display info
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-02-16 16:32:53 +01:00
Michael Niedermayer
18f94df8af avcodec/alsdec: check predictor order against block length
Fixes out of array access
Fixes: abd3c041acbcb816be113455d138166b-asan_heap-oob_b11634_3707_cov_1707137151_als_05_2ch48k16b.mp4
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 13:13:34 +01:00
James Almer
ec482e738d x86/fladsp: add missing check to ff_flacdsp_init_x86()
Fixes compilation with flac decoder disabled and encoder enabled

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 12:06:04 +01:00
Timothy Gu
8fe1076094 doc/ffmpeg: make the ASCII flow charts narrower to fit onto TTY
These charts in man page are currently destroyed.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 03:10:38 +01:00
Hendrik Leppkes
45581ed15d oggdec/vorbis: fix stream duration condition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 02:30:54 +01:00
Michael Niedermayer
bbd8fd0371 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Prepare for 10_beta1 Release

Conflicts:
	RELEASE

merge only for metadata

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 02:24:52 +01:00
Michael Niedermayer
1db87da351 Merge commit '9cd4bc41760f8ad879e248920eacbe1e7757152c'
* commit '9cd4bc41760f8ad879e248920eacbe1e7757152c':
  ac3dec: set AV_FRAME_DATA_DOWNMIX_INFO side data.

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 02:18:58 +01:00
Michael Niedermayer
a2bc6c116d Merge commit 'c98f3169bfb578c1a4e407b44524f0bfa3b4dc0c'
* commit 'c98f3169bfb578c1a4e407b44524f0bfa3b4dc0c':
  lavu: add AV_FRAME_DATA_DOWNMIX_INFO side data type.

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 02:05:29 +01:00
Michael Niedermayer
fdf8b59b28 Merge commit '9c0e4b3395cad79c560d03d2a94595d89e017885'
* commit '9c0e4b3395cad79c560d03d2a94595d89e017885':
  ac3: update AC3PreferredStereoDownmixMode.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 01:56:31 +01:00
Michael Niedermayer
e5c7229999 avcodec/utils: set AVFrame format unconditional
Fixes inconsistency and out of array accesses
Fixes: 10cdd7e63e7f66e3e66273939e0863dd-asan_heap-oob_1a4ff32_7078_cov_4056274555_mov_h264_aac__mp4box_frag.mp4
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 01:34:35 +01:00
Michael Niedermayer
d1e6602665 avcodec/hevc: make *ps_id unsigned
Fixes integer overflow
Fixes out of array accesses
Fixes 2f65e7dbd02a12f426a423bd7bf880b4-signal_sigsegv_127c952_2793_cov_2517424539_RPLM_A_qualcomm_4.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 23:27:20 +01:00
Michael Niedermayer
bf2ce19e51 avcodec/hevc: Dont turn 32bit timebases into negative numbers
Fixes assertion failure
Fixes: 499f6ecaeae8e3f79a115a72c61ffd15-asan_static-oob_124a175_2792_cov_1782273879_RPLM_A_qualcomm_4.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 23:17:53 +01:00
Reinhard Tartler
f58dcfb32e Prepare for 10_beta1 Release 2014-02-15 16:49:04 -05:00
Michael Niedermayer
b818637b84 avcodec/hevc_ps: Use get_bits_long() in decode_vui()
Fix assertion failure
Fixes: a225222ef88a0f5b1e93e1d0432debc3-asan_static-oob_124a17d_1448_cov_77608227_DBLK_E_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 22:30:40 +01:00
Tim Walker
9cd4bc4176 ac3dec: set AV_FRAME_DATA_DOWNMIX_INFO side data. 2014-02-15 22:25:00 +01:00
Tim Walker
c98f3169bf lavu: add AV_FRAME_DATA_DOWNMIX_INFO side data type. 2014-02-15 22:24:53 +01:00
Tim Walker
9c0e4b3395 ac3: update AC3PreferredStereoDownmixMode.
'11b' is reserved in the A/52 specification,
but newer encoders use it to indicate a Dolby
Pro Logic II compatible Lt/Rt downmix.
2014-02-15 22:24:48 +01:00
Michael Niedermayer
f3a862935d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264_parser: use enum values in h264_find_frame_end()

Conflicts:
	libavcodec/h264_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 21:05:31 +01:00
James Darnley
91126dc481 flacdsp_lpc_template: add comment to explain the CONFIG_SMALL code
I found the optimisation of 2 samples per iteration obscured the
underlying algorithm.  I had to write it out on paper and translate into
a mathematical sum to see that the two samples are unconnected.  I hope
that if anyone else is struggling to understand the code that this will
be useful.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 20:48:25 +01:00
Christophe Gisquet
9ae8e23188 dcadsp: scan coefficients linearly instead.
This change is inspired by x86 asm, where this frees a register.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 20:08:08 +01:00
Christophe Gisquet
5a48caa34b dca: replace some memcpy by AV_COPY128
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 19:03:10 +01:00
Christophe Gisquet
133b34207c x86: float dsp: unroll SSE versions
vector_fmul and vector_fmac_scalar are guaranteed that they can process in
batch of 16 elements, but their SSE versions only does 8 at a time.

Therefore, unroll them a bit.
299 to 261c for 256 elements in vector_fmac_scalar on Arrandale/Win64.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 18:54:21 +01:00
Vittorio Giovara
dc971acf4a h264_parser: use enum values in h264_find_frame_end() 2014-02-15 18:29:49 +01:00
Michael Niedermayer
1db8bc5648 avcodec/fic: clear slice_data
Fixes artifacts
Fixes use of freed memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 17:19:59 +01:00
Michael Niedermayer
d46ef40129 avcodec/fic: fix slice checks
fix integer overflows

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 17:19:32 +01:00
Michael Niedermayer
ed1a687856 avcodec/lossless_videodsp: add_hfyu_left_prediction_int16_c: fix harmless integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 16:51:33 +01:00
Michael Niedermayer
042ab7c49e doc/doxy-wrapper.sh: fix execute flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 16:51:06 +01:00
Michael Niedermayer
3c7220fc60 avcodec/frame_thread_encoder: warn about huffyuv limitations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 15:16:51 +01:00
Michael Niedermayer
f7459bcfc5 avcodec/frame_thread_encoder: restructure huffyuv checks
This makes them similar to the other checks

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 15:14:46 +01:00
Michael Niedermayer
59279bf21f avcodec/huffyuvenc: only allocate stats_out when it will be used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 15:06:29 +01:00
Lukasz Marek
776cda748d lavc/motion_est: remove unused variable
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 13:07:54 +01:00
Paul B Mahol
709746b6af avfilter/af_compand: do not leak frames on error
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2014-02-15 11:38:32 +00:00
Michael Niedermayer
d601106ab1 avcodec/x86/lossless_videodsp: fix w type
Fixes fate issues on mingw64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 06:41:38 +01:00
Michael Niedermayer
baaa6d6785 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavfi doxy: add buffer{src,sink}.h to the main lavfi doxy group

Conflicts:
	libavfilter/buffersink.h
	libavfilter/buffersrc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 04:05:04 +01:00
Michael Niedermayer
efe4a06929 Merge commit 'f758ea6e99af6ebd24bbe222898a921c222e5593'
* commit 'f758ea6e99af6ebd24bbe222898a921c222e5593':
  buffersink: document special error codes returned from av_buffersink_get_frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 04:03:09 +01:00
Peter Ross
b8664c9294 avcodec/vp8dsp: add VP7 idct and loop filter
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 02:15:35 +01:00
Lukasz Marek
a91d9e4b63 lavc/ffv1enc: add const to silent warning
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 01:50:47 +01:00
Lukasz Marek
ffe50a92a8 lavc/tiff_common: add const to silent warnings
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-15 01:50:41 +01:00
Peter Ross
c551431792 avcodec/h264pred: deconflict DC_128_PRED and HOR_VP8_PRED
Both are required by the VP7 decoder.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 23:20:57 +01:00
Anton Khirnov
ba7dfe5c50 lavfi doxy: add buffer{src,sink}.h to the main lavfi doxy group 2014-02-14 22:02:39 +01:00
Anton Khirnov
f758ea6e99 buffersink: document special error codes returned from av_buffersink_get_frame 2014-02-14 22:02:25 +01:00
Michael Niedermayer
f11905763c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ppc: reduce overreads when loading 8 pixels in altivec dsp functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 22:00:12 +01:00
Michael Niedermayer
e136579ca3 Merge commit '3fbad00714698f59c6326edfcc63db87f525e7c0'
* commit '3fbad00714698f59c6326edfcc63db87f525e7c0':
  utvideoenc: Enable support for multiple slices and use them

Conflicts:
	libavcodec/utvideoenc.c
	tests/fate/utvideo.mak

See: efec857c9f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 21:50:21 +01:00
Jan Ekström
efec857c9f utvideoenc: Enable support for multiple slices and use them
The official Ut Video decoder only threads with slices, thus until
now any files encoded by the libavcodec encoder have only been
decodable with a single thread. The default slice count is now
set to subsampled_height / 120.

Also sets slices to 1 for the Ut Video encoder tests to keep them
green.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 21:38:00 +01:00
Michael Niedermayer
92225877ce Merge commit '4127e6aeb6e9ef53f5acf06e99c06f4b2c0cce34'
* commit '4127e6aeb6e9ef53f5acf06e99c06f4b2c0cce34':
  libx265: Remove redundant default param call

See: 25bc8390bb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 21:36:09 +01:00
Michael Niedermayer
374576d6ee Merge commit '41836c4e306e572ecf80d5a714aaec532c7ece60'
* commit '41836c4e306e572ecf80d5a714aaec532c7ece60':
  libx265: Fix use of uninitialized input picture

See: 955544e4d0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 21:29:51 +01:00
Michael Niedermayer
480af3a35c avformat/utils: skip the MPEG-2 style dts/pts code for HEVC
This extends the exception from H264 to H264 + HEVC

Fixes Ticket3385

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 20:51:10 +01:00
Michael Niedermayer
68a959cb27 avcodec/utils: improve guess_correct_pts() by considerng mixed dts/pts use caused by NOPTSs
No testcase known, this is a theoretical improvment

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 20:42:13 +01:00
Janne Grunau
98fdfa9970 ppc: reduce overreads when loading 8 pixels in altivec dsp functions
Altivec can only load naturally aligned vectors. To handle possibly
unaligned data a second vector is loaded from an offset of the original
location and the data is recovered through a vector permutation.
Overreads are minimal if the offset for second load points to the last
element of data. This is 7 for loading eight 8-bit pixels and overreads
are reduced from 16 bytes to 8 bytes if the pixels are 64-bit aligned.
For unaligned pixels the overread is reduced from 23 bytes to 15 bytes
in the worst case.
2014-02-14 18:34:04 +01:00
Reynaldo H. Verdejo Pinochet
9ed876ac92 MAINTAINERS: add myself as ffserver maintainer
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-14 14:31:42 -03:00
Reynaldo H. Verdejo Pinochet
87079bd055 ffserver: merge RTSP's teardown & pause routines
They were basically the same.

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-14 14:31:42 -03:00
Reynaldo H. Verdejo Pinochet
720530e52a ffserver: cosmetics
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-14 14:31:41 -03:00
Reynaldo H. Verdejo Pinochet
35e525b732 ffserver: fix some comments
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-14 14:31:41 -03:00
Reynaldo H. Verdejo Pinochet
ba6186d6eb ffserver: factor out connection closing from handler
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-14 14:31:41 -03:00
Reynaldo H. Verdejo Pinochet
5df2a502f2 ffserver: avoid useless substitution
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-14 14:31:41 -03:00
Werner Robitza
1ffac25d31 doc/filters/histogram: copyedit for grammar
There were a few grammar and spelling mistakes in this filter
description. I went through it and corrected them without changing
the meaning.
2014-02-14 15:11:46 +00:00
Jan Ekström
3fbad00714 utvideoenc: Enable support for multiple slices and use them
The official Ut Video decoder only threads with slices, thus until
now any files encoded by the libavcodec encoder have only been
decodable with a single thread. The default slice count is now
set to subsampled_height / 120.

Also sets slices to 1 for the Ut Video encoder tests to keep them
green.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-14 15:09:39 +00:00
Michael Niedermayer
fba1592f35 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc/examples: misc Doxygen markup improvements

Conflicts:
	doc/examples/muxing.c
	doc/examples/transcode_aac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 15:31:14 +01:00
Derek Buitenhuis
4127e6aeb6 libx265: Remove redundant default param call
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-14 14:27:45 +00:00
Derek Buitenhuis
41836c4e30 libx265: Fix use of uninitialized input picture
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-14 14:27:45 +00:00
Michael Niedermayer
71052d85c1 Merge commit '3a26ccbf0d9f806d067e76a3f484170abecb36b3'
* commit '3a26ccbf0d9f806d067e76a3f484170abecb36b3':
  build: doxy: Include code examples in Doxygen documentation

Conflicts:
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 15:23:29 +01:00
Michael Niedermayer
cbf09bb63f Merge commit '19d3127867f001d007f98bc8c5a85c5409abf788'
* commit '19d3127867f001d007f98bc8c5a85c5409abf788':
  doxygen: Set EXAMPLE_PATH from within doxy-wrapper.sh

Conflicts:
	doc/Doxyfile
	doc/doxy-wrapper.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 15:12:32 +01:00
Michael Niedermayer
2fd0b5bd60 Merge commit 'f1f42cfc66804907d1df9231469e4296472bb0f5'
* commit 'f1f42cfc66804907d1df9231469e4296472bb0f5':
  build: Do not pass HTML snippets and stylesheet as input to Doxygen

Conflicts:
	doc/Makefile

See: 0f378d8632
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 14:53:54 +01:00
Michael Niedermayer
c0c6f9aba5 Merge commit 'e6c175dfd51e4b0e6deeae72cd8a161b22af3492'
* commit 'e6c175dfd51e4b0e6deeae72cd8a161b22af3492':
  Doxyfile: Only set HTML_{HEADER|FOOTER|STYLESHEET} from doxy_wrapper.sh

Conflicts:
	doc/Doxyfile

See: 7d0ca5b7e4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 14:38:21 +01:00
Michael Niedermayer
a062bee1c1 Merge commit '066ad249843bde656265b59110c2521e2b1ce131'
* commit '066ad249843bde656265b59110c2521e2b1ce131':
  h264_sei: reorder headers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 14:18:04 +01:00
Michael Niedermayer
1d91af5aba Merge commit '304e916a92bc17385a485bec2f957e192257ddb6'
* commit '304e916a92bc17385a485bec2f957e192257ddb6':
  h264_sei: name buffering period type consistently

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 14:13:06 +01:00
Michael Niedermayer
a7eb93b367 Merge commit '15210354cf27cf4e24d91f84d66cf471511ce718'
* commit '15210354cf27cf4e24d91f84d66cf471511ce718':
  h264: drop outdated comments

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 14:07:19 +01:00
Michael Niedermayer
99b12357f4 Merge commit '3a0576702825423abecb32627c530dbc4c0f73bc'
* commit '3a0576702825423abecb32627c530dbc4c0f73bc':
  h264: store current_sps_id inside the current sps

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_ps.c

The current_sps_id is not removed as it used in security related code.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 13:58:02 +01:00
Michael Niedermayer
60b46a00c6 Merge commit '73e8fab31dc19c4371499e612856accbc00b2820'
* commit '73e8fab31dc19c4371499e612856accbc00b2820':
  h264: print values in case of error

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_ps.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 13:35:45 +01:00
Michael Niedermayer
5cbd7ce016 Merge commit 'f8c507f44b4c994895fc7ad954f009f61de69b1c'
* commit 'f8c507f44b4c994895fc7ad954f009f61de69b1c':
  h264: Refactor ff_h264_decode_ref_pic_list_reordering

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 13:24:30 +01:00
Diego Biurrun
0b9716c455 doc/examples: misc Doxygen markup improvements
Add properly formatted @example tag and fix Doxygen syntax.
2014-02-14 12:01:36 +01:00
Diego Biurrun
3a26ccbf0d build: doxy: Include code examples in Doxygen documentation 2014-02-14 12:01:35 +01:00
Diego Biurrun
19d3127867 doxygen: Set EXAMPLE_PATH from within doxy-wrapper.sh
This allows using the libav source path as the example path.
2014-02-14 12:01:35 +01:00
Diego Biurrun
f1f42cfc66 build: Do not pass HTML snippets and stylesheet as input to Doxygen
These files are referenced elsewhere and only generate warnings if
presented to Doxygen as input files.
2014-02-14 12:01:35 +01:00
Diego Biurrun
e6c175dfd5 Doxyfile: Only set HTML_{HEADER|FOOTER|STYLESHEET} from doxy_wrapper.sh 2014-02-14 11:07:35 +01:00
Lukasz Marek
1e5cb426c6 lavd/avdevice: add param to create window buffer message
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 05:13:33 +01:00
Vittorio Giovara
066ad24984 h264_sei: reorder headers
Also drop unused assert.h.
2014-02-14 05:10:58 +01:00
Vittorio Giovara
304e916a92 h264_sei: name buffering period type consistently 2014-02-14 05:08:47 +01:00
Vittorio Giovara
15210354cf h264: drop outdated comments 2014-02-14 05:08:37 +01:00
Vittorio Giovara
3a05767028 h264: store current_sps_id inside the current sps
In preparation for MVC support.
2014-02-14 05:05:46 +01:00
Vittorio Giovara
73e8fab31d h264: print values in case of error
Also make error style consistent and drop redundant information.
2014-02-14 05:05:35 +01:00
Michael Niedermayer
abe3f79d62 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg12dec: do not add stereo3D side data to a non-existing frame

Conflicts:
	libavcodec/mpeg12dec.c

See: fe285b04bb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 04:11:37 +01:00
Michael Niedermayer
8dc5a46466 Merge commit 'd261719319a505e1716e8b52fc955bef0503ff96'
* commit 'd261719319a505e1716e8b52fc955bef0503ff96':
  configure: do not link libraries against program-specific dependencies

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 02:45:45 +01:00
Michael Niedermayer
fd982f2b40 Merge commit '60e6cecf9bc7d6a238e6b316da52edcc6d1ef7f8'
* commit '60e6cecf9bc7d6a238e6b316da52edcc6d1ef7f8':
  configure: avserver does not need $ldl

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 02:10:15 +01:00
Michael Niedermayer
abb6821e43 Merge commit '8a2250344b19a343d830a902dbcf4c0b929ea49b'
* commit '8a2250344b19a343d830a902dbcf4c0b929ea49b':
  jv: detect partial packets in the demuxer

Conflicts:
	libavformat/jvdec.c

See: 9d0c71e5e3
See: b948ab8132
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 01:51:17 +01:00
Michael Niedermayer
84873794ad Merge commit 'f795a8a8bf5e312dad2c2829c543b9d309376ca1'
* commit 'f795a8a8bf5e312dad2c2829c543b9d309376ca1':
  h264: make context_count unsigned

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 01:24:26 +01:00
Michael Niedermayer
70acb15159 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/opengl_enc: implement uncoded frame callback
  lavd/opengl_enc: add gray8/16 formats

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 00:02:30 +01:00
mrlika
e2707a7cf7 avformat/mpegts: DVB subtitles multiple languages support
Copy multiple languages data from PMT to extradata. New 5 bytes
per language extradata format.

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 00:01:28 +01:00
Luca Barbato
f8c507f44b h264: Refactor ff_h264_decode_ref_pic_list_reordering
In preparation for MVC support.
2014-02-13 23:34:50 +01:00
Lukasz Marek
db4a704482 lavd/opengl_enc: implement uncoded frame callback
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-13 23:33:05 +01:00
Lukasz Marek
db403023c0 lavd/opengl_enc: add gray8/16 formats
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-13 23:33:05 +01:00
Derek Buitenhuis
c107769c68 MAINTANERS: Add myself as libx265 maintainer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-13 22:22:56 +00:00
Derek Buitenhuis
25bc8390bb libx265: Remove redundant default param call
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-13 22:22:21 +00:00
Derek Buitenhuis
955544e4d0 libx265: Fix use of uninitialized input picture
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-13 22:22:20 +00:00
James Almer
e87974bc00 flac/x86: add ff_flac_lpc_32_xop()
Tested on an AMD FX 6300

679081 decicycles in ff_flac_lpc_32_xop, 32768 runs
774425 decicycles in ff_flac_lpc_32_sse4, 32768 runs

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 22:14:59 +01:00
James Almer
23a8c63452 x86inc: Extend FMA_INSTR functionality
Support the cases where the first and last operand of
the XOP instruction are the same.

Also add vpmacsdql emulation.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 22:14:24 +01:00
James Darnley
623f380a18 lavc: fix flac encoder and decoder dependencies
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 21:00:32 +01:00
Clément Bœsch
0e97ec54de avfilter/curves: support slice threading. 2014-02-13 14:35:10 +01:00
Michael Niedermayer
842b6c14bc avformat/mpegtsenc: Check data array size in mpegts_write_pmt()
Prevents out of array writes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 14:14:12 +01:00
mrlika
af786236cc mpegts muxer: DVB subtitles multiple languages support
* restore multiple languages data from extradata to PMT table
* setting correctly hearing empaired subtitling type

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 13:43:57 +01:00
Clément Bœsch
13aec744c2 avfilter/lut3d: support slice threading. 2014-02-13 13:39:23 +01:00
Janne Grunau
73eca738ac mpeg12dec: do not add stereo3D side data to a non-existing frame
User data is usually coded before slice data. That means the frame
the user data belongs to is not available while parsing the user data.
The stereo3D side data has to use the same indirection over the private
context as pan scan information and A53 captions.

Bug-Id:632
2014-02-13 13:03:01 +01:00
Janne Grunau
d261719319 configure: do not link libraries against program-specific dependencies
Bug-Id: 635
2014-02-13 13:01:49 +01:00
Michael Niedermayer
ccc48b318b avcodec/arm/int_neon: fix handling sizes % 16 != 0
This assumes the array is sufficiently padded with 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 02:20:08 +01:00
James Almer
429f742a61 tta: split off hybrid filter processing as ttadsp
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 01:34:33 +01:00
Lukasz Marek
9c3478c234 tools/uncoded_frame: fix double free
in case av_interleaved_write_uncoded_frame fails it seems
frame is freed for the second time in fail section.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>

This commit also removes 1 trailing whitespace as otherwise the push hook rejects it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 01:29:01 +01:00
Michael Niedermayer
e03c1af55e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp9: add a new segmentation sample.

Conflicts:
	tests/fate/vpx.mak
	tests/ref/fate/vp9-segmentation-aq-akiyo
	tests/ref/fate/vp9-segmentation-sf-akiyo

See: 65f41b5c5c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 00:41:40 +01:00
Michael Niedermayer
89c5de6652 Merge commit '91be8df20b57a18307e90f1c4886a35ea7b28880'
* commit '91be8df20b57a18307e90f1c4886a35ea7b28880':
  vp9: add fate sample for parallelmode.

Conflicts:
	tests/fate/vpx.mak
	tests/ref/fate/vp9-parallelmode-akiyo

See: 1d6bb21348
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 00:33:31 +01:00
Janne Grunau
60e6cecf9b configure: avserver does not need $ldl
Loadable plugins were removed in d010e95f86.
2014-02-13 00:29:14 +01:00
Michael Niedermayer
86316039ab Merge commit '50ea93158d4c480f64069e8bd1da388486dcf4ba'
* commit '50ea93158d4c480f64069e8bd1da388486dcf4ba':
  Add libx265 encoder

Conflicts:
	Changelog
	LICENSE
	configure
	libavcodec/allcodecs.c
	libavcodec/libx265.c
	libavcodec/version.h

See: bb6b1731eb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-13 00:15:28 +01:00
Janne Grunau
8a2250344b jv: detect partial packets in the demuxer
Fixes fate-jv under valgrind which reports a different CRC for the last
frame from a partial read.
2014-02-12 20:12:18 +01:00
Michael Niedermayer
c320485633 avformat/asfdec: pass on error code from avio_seek()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 17:10:26 +01:00
Michael Niedermayer
3e8b17f05b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  asfdec: fix seeking with fragmented packets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 16:36:15 +01:00
Michael Niedermayer
f73901f815 Merge commit '0c082565965258dca143767cc6cb25e38b6e9ea3'
* commit '0c082565965258dca143767cc6cb25e38b6e9ea3':
  asfdec: short-circuit seeking to the start of stream

Conflicts:
	libavformat/asfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 16:16:16 +01:00
Michael Niedermayer
5634c9518f Merge commit '0ebb523f072322972ea446616676fff32e9603c6'
* commit '0ebb523f072322972ea446616676fff32e9603c6':
  asfdec: check ff_get_guid() return values during seeking

Conflicts:
	libavformat/asfdec.c

The code that pretends that a truncated index is correct and complete is not merged
as it obviously would cause problems if a really truncated index is encountered
If someone has samples that work better with that hack, please share them / mail me

also the bug this apparently attempts to fix isnt reproducable before this in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 16:04:26 +01:00
Michael Niedermayer
d32926db7f avformat/riff: return error code from ff_get_guid()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 15:59:15 +01:00
Janne Grunau
f795a8a8bf h264: make context_count unsigned
Removes the bogus but scary looking warning 'libavcodec/h264.c:4529:49:
warning: array subscript is below array bounds [-Warray-bounds]'.
2014-02-12 15:48:03 +01:00
Ronald S. Bultje
dff1c19140 vp9: add a new segmentation sample.
The old one didn't use segmentation. One uses segmentation in all frame
types (--aq-mode=1), and the other uses all segmentation features, but
only in inter frames (mbgraph).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-12 15:18:21 +01:00
Ronald S. Bultje
91be8df20b vp9: add fate sample for parallelmode.
This disables backward probability updates, which makes the codec more
friendly for frame-level multi-threading.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-12 15:17:40 +01:00
Michael Niedermayer
8c5fece11f Merge commit '462d5e8e6c050eae7cbb1f2d5c34628088bd0eb6'
* commit '462d5e8e6c050eae7cbb1f2d5c34628088bd0eb6':
  aacdec: set AVFrame sample_rate

Conflicts:
	libavcodec/aacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 15:00:03 +01:00
Michael Niedermayer
1bc3f1b73d Merge commit '4a7d3837b4dd17fff270b55166597c093204e542'
* commit '4a7d3837b4dd17fff270b55166597c093204e542':
  buffersrc: Have function parameter names match between .c and .h file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 14:49:29 +01:00
Michael Niedermayer
74744790a3 Merge commit '25a1ba814ad80056247fd357ec4c6911324a3f66'
* commit '25a1ba814ad80056247fd357ec4c6911324a3f66':
  log: Have function parameter names match between .c and .h file

Conflicts:
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 14:41:24 +01:00
Derek Buitenhuis
50ea93158d Add libx265 encoder
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-12 13:13:17 +00:00
Derek Buitenhuis
bb6b1731eb Add libx265 encoder
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-12 13:12:22 +00:00
Janne Grunau
f5d92d9cab asfdec: fix seeking with fragmented packets
After seeking fragments with an offset > 0 must be skipped to correctly
assemble packets.

Bug-Id: 43
2014-02-12 12:52:28 +01:00
Andrew Kelley
0c08256596 asfdec: short-circuit seeking to the start of stream
Bug-id: 43

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-12 12:52:28 +01:00
Janne Grunau
0ebb523f07 asfdec: check ff_get_guid() return values during seeking
Hitting EOF during seeking is quite likely. Fixes use of uninitialized
data during fate-seek-lavf-asf.
2014-02-12 12:52:28 +01:00
John Stebbins
462d5e8e6c aacdec: set AVFrame sample_rate
AVFrame.sample_rate is set in ff_get_buffer, but aacdec calls
ff_get_buffer before the samplerate is known. So it needs to be
set again before returning the frame.
2014-02-12 12:52:28 +01:00
Diego Biurrun
4a7d3837b4 buffersrc: Have function parameter names match between .c and .h file
This fixes two related Doxygen warnings.  Also document one parameter.
2014-02-12 12:08:02 +01:00
Diego Biurrun
25a1ba814a log: Have function parameter names match between .c and .h file
This fixes two related Doxygen warnings.
2014-02-12 12:08:02 +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
Michael Niedermayer
a0911b0597 avformat/mov: fix keyframe flags for sample from chromium Issue 340865
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 06:42:04 +01:00
Michael Niedermayer
058a3d6542 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavf/lavd: version bump and APIchanges for uncoded frames.
  tools: add uncoded_frame test program.
  lavf: add uncodedframecrc test muxer.
  lavd/xv: preliminary support of uncoded frame.
  lavd/alsa: preliminary support of uncoded frame.
  lavf: add write_uncoded_frame() API.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 00:37:54 +01:00
Michael Niedermayer
c33351f3e7 avcodec/mpegaudio_parser: Delay setting codec_id if it appears wrong
Fixes mp1/mp3 in mp4 misdetection

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 00:11:16 +01:00
Michael Niedermayer
5669ae8401 avcodec/mpegaudio_parser: treat codec_id like the other parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-12 00:10:35 +01:00
Michael Niedermayer
d3068d25ca avcodec: Add avpriv_mpa_decode_header2()
The difference to avpriv_mpa_decode_header() is that it doesnt need or modify the context

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 23:57:47 +01:00
Michael Niedermayer
707a07f3c2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: set AVFrame pkt_pts and reordered_opaque in reget_buffer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 23:21:03 +01:00
Michael Niedermayer
bde58d9901 Merge commit '6477449243db4aab15a4db356e8354c60b5366ec'
* commit '6477449243db4aab15a4db356e8354c60b5366ec':
  g2meet: make JPEG tile decoder operate on 8x8 block mask

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 23:12:29 +01:00
Michael Niedermayer
852dcf336b Merge commit 'd6d78518018a12fb495baab5663708a830f3aab6'
* commit 'd6d78518018a12fb495baab5663708a830f3aab6':
  g2meet: factor out seeking to the chunk end

Conflicts:
	libavcodec/g2meet.c

See: 3f826039dd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 23:02:41 +01:00
John Stebbins
52771346dc lavc: set AVFrame pkt_pts and reordered_opaque in reget_buffer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-11 14:25:01 +01:00
Kostya Shishkov
6477449243 g2meet: make JPEG tile decoder operate on 8x8 block mask
This is needed for upcoming Go2Meeting (G2M2/G2M3) decoder.
2014-02-11 12:46:27 +01:00
Maxim Poliakovski
d6d7851801 g2meet: factor out seeking to the chunk end
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-02-11 12:46:11 +01:00
Nicolas George
edc7e67669 lavf/lavd: version bump and APIchanges for uncoded frames. 2014-02-11 10:34:32 +01:00
Nicolas George
8400368f31 tools: add uncoded_frame test program. 2014-02-11 10:31:29 +01:00
Nicolas George
dcda5ef1ea lavf: add uncodedframecrc test muxer. 2014-02-11 10:29:02 +01:00
Nicolas George
d201a0f0f8 lavd/xv: preliminary support of uncoded frame. 2014-02-11 10:29:02 +01:00
Nicolas George
62106fcc23 lavd/alsa: preliminary support of uncoded frame. 2014-02-11 10:29:02 +01:00
Nicolas George
1b05ac220e lavf: add write_uncoded_frame() API. 2014-02-11 10:29:02 +01:00
James Almer
6c12b1de06 x86: add missing XOP checks and macros
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 03:46:52 +01:00
Marton Balint
8e41240047 lavfi/frei0r: load plugins from lib64 folders as well on 64bit builds
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 03:25:00 +01:00
Matt Oliver
1ff42685fe avformat/libssh: Fix libssh defaulting to shared linkage.
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Lukasz M <lukasz.m.luki@gmail.com>
See: [FFmpeg-devel] Fix libssh static linkage on Windows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-11 01:31:18 +01:00
Michael Niedermayer
8f92edf6f8 avcodec/ra144: remove redundant AV_ZERO128
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 21:52:45 +01:00
Christophe Gisquet
c3390fd56c ra144: use scalarproduct_int16
The buffer holding the coefficients must be padded with 0 so as to use DSP
functions that may overread. Currently, the SSE2/3 versions is an example,
as they process batches of 16 bytes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 21:45:55 +01:00
Michael Niedermayer
dfc99ca04d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rpza: limit the number of blocks to the total remaining blocks in the frame

See: 3819db745d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 21:28:38 +01:00
Michael Niedermayer
996fdca8fb Merge commit 'a46dc49744bdc4f2e31725b63ac8e41f701e4fa1'
* commit 'a46dc49744bdc4f2e31725b63ac8e41f701e4fa1':
  rpza: move some variables to the blocks where they are used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 20:46:03 +01:00
Michael Niedermayer
0a4311dee5 Merge commit 'c7769df178fd670156f1c11f6c8410ddd59bbfee'
* commit 'c7769df178fd670156f1c11f6c8410ddd59bbfee':
  rpza: use fixed-width int types

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 20:41:00 +01:00
Michael Niedermayer
8b0befe451 Merge commit 'e1218ce9149aad0ae9770a32a78d77ad2210bd64'
* commit 'e1218ce9149aad0ae9770a32a78d77ad2210bd64':
  rpza: switch to bytestream2

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 20:32:15 +01:00
Michael Niedermayer
3868e97c6b ffmpeg: fix vstats
Broken by: 394fb56c29
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 20:31:06 +01:00
Michael Niedermayer
8560fdc451 Merge commit '394fb56c29eee7f4f8f0334d8b5d30d3c54ac703'
* commit '394fb56c29eee7f4f8f0334d8b5d30d3c54ac703':
  lavf: always unref the packet passed to av_interleaved_write_frame() on error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 20:30:58 +01:00
Michael Niedermayer
e93674c4a3 doc/APIchanges: fill in FFmpeg hashes & versions
Entries that have no hash at all are not filled in

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 19:10:12 +01:00
Zhang Rui
4958628ba6 avformat/concatdec: pass the interrupt callback on
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 15:42:48 +01:00
Anton Khirnov
77bb0004bb rpza: limit the number of blocks to the total remaining blocks in the frame
Fixes invalid writes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-10 15:22:28 +01:00
Anton Khirnov
a46dc49744 rpza: move some variables to the blocks where they are used 2014-02-10 15:22:01 +01:00
Anton Khirnov
c7769df178 rpza: use fixed-width int types 2014-02-10 15:21:35 +01:00
Anton Khirnov
e1218ce914 rpza: switch to bytestream2 2014-02-10 15:18:21 +01:00
Anton Khirnov
394fb56c29 lavf: always unref the packet passed to av_interleaved_write_frame() on error 2014-02-10 15:08:06 +01:00
Michael Niedermayer
1c1bb203dd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: fix examples compilation when EXESUF is not empty

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 14:24:15 +01:00
Michael Niedermayer
ec8e232b53 Merge commit '18c896be3d8e926ef806e7de29c4a168d7763389'
* commit '18c896be3d8e926ef806e7de29c4a168d7763389':
  lavf: extend / improve the AVFormatContext doxy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 14:18:47 +01:00
Michael Niedermayer
c84280b09c Merge commit '54f7e79d4706a8343dad1d8da51b7d3d3b2cd3b2'
* commit '54f7e79d4706a8343dad1d8da51b7d3d3b2cd3b2':
  lavf: add some basic documentation of the muxing process

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 14:09:29 +01:00
Michael Niedermayer
6fd7ea44b2 Merge commit '4c750599509c3973afbe2850953a1fb963f696e5'
* commit '4c750599509c3973afbe2850953a1fb963f696e5':
  lavf: rewrite the av_write_frame() doxy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 13:51:56 +01:00
Michael Niedermayer
58fdc6db6c Merge commit 'ad7f2b69a546ec65ef6b11e1a0fd58e6bb66bc4b'
* commit 'ad7f2b69a546ec65ef6b11e1a0fd58e6bb66bc4b':
  lavf: rewrite the av_interleaved_write_frame() doxy

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 13:37:37 +01:00
Michael Niedermayer
6fb8684a24 Merge commit 'b36bc81ccaa2fc85dc4bae7dc546c71e8833573d'
* commit 'b36bc81ccaa2fc85dc4bae7dc546c71e8833573d':
  avplay: add support for seeking to chapter marks

Conflicts:
	doc/ffplay.texi
	ffplay.c

ffplay uses pageup/down for seeking by +-10min
thus this use of the keys conflicts.
The merge thus uses them to seek to chapters when there are some or
+-10min when there are not

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 13:26:31 +01:00
Christophe Gisquet
682b2a809b build: fix examples compilation when EXESUF is not empty
Due to a wrong substitution doc/examples is not added as a prerequisite
for the objects of the example programs. This results in compiler error
due to the non-existing output directory.

Bug-Id: 636

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-10 13:23:21 +01:00
Marton Balint
6421111b52 lavf: allow av_find_best_stream to return AV_DISPOSITION_*_IMPAIRED wanted_streams
Previously these type of streams were not returned even if wanted stream was
set to a stream of such. Now they are only skipped if they are not wanted
streams.

Fixes ffplay -sst <stream number> out.ts where stream number is a *_IMPAIRED stream.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 12:58:59 +01:00
Michael Niedermayer
919791f99d Merge commit 'f548f9f9e7a2a08c780e88dac63b9d5d2c55efb0'
* commit 'f548f9f9e7a2a08c780e88dac63b9d5d2c55efb0':
  hevc: update conformance streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 12:58:17 +01:00
Michael Niedermayer
1e5656bf8a Merge commit 'b5f851ed7e59f88b4130a420033d9fe191ec9e2f'
* commit 'b5f851ed7e59f88b4130a420033d9fe191ec9e2f':
  FATE: force FLAC in the lavf ogg test

Conflicts:
	tests/lavf-regression.sh

See: 28caf13ac3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 12:39:55 +01:00
Michael Niedermayer
6732f4350d Merge commit '38893dc028e458eaf3f906833d4ee515689edb7e'
* commit '38893dc028e458eaf3f906833d4ee515689edb7e':
  pcmdec: replace a reachable assert with an error check

Conflicts:
	libavformat/pcmdec.c

No assert removed as there was none in FFmpeg in the equivalent function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 12:36:32 +01:00
Michael Niedermayer
ee2c1e6dd3 Merge commit 'cca4742a5e663cfe4dbd71f01f0c0fb042fddc1d'
* commit 'cca4742a5e663cfe4dbd71f01f0c0fb042fddc1d':
  doc/APIchanges: mark the place where 9 was branched

Conflicts:
	doc/APIchanges

Not merged, as "9" was not a FFmpeg release and not branched anywhere from our APIChanges list

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 12:29:05 +01:00
Michael Niedermayer
2e99867a4e Merge commit 'd711d839ca6714a5ef5b53ee51bc7632e62cf203'
* commit 'd711d839ca6714a5ef5b53ee51bc7632e62cf203':
  doc/APIchanges: fill in missing hashes and dates

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 12:17:35 +01:00
Anton Khirnov
18c896be3d lavf: extend / improve the AVFormatContext doxy 2014-02-10 11:46:49 +01:00
Anton Khirnov
54f7e79d47 lavf: add some basic documentation of the muxing process 2014-02-10 11:44:21 +01:00
Anton Khirnov
4c75059950 lavf: rewrite the av_write_frame() doxy
Remove some vague / incorrect statements and make the text more specific
and less confusing.
2014-02-10 11:37:30 +01:00
Anton Khirnov
ad7f2b69a5 lavf: rewrite the av_interleaved_write_frame() doxy
Remove some vague / incorrect statements and make the text more specific
and less confusing.
2014-02-10 11:34:41 +01:00
Anton Khirnov
b36bc81cca avplay: add support for seeking to chapter marks 2014-02-10 11:23:01 +01:00
Guillaume Martres
f548f9f9e7 hevc: update conformance streams
New streams: LTRPSPS_A_Qualcomm_1, SLPPLP_A_VIDYO_1, VPSID_A_VIDYO_1
Updated streams: EXT_A_ericsson_4, NUT_A_ericsson_5, RPS_C_ericsson_5,
  RPS_D_ericsson_6

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-10 07:48:41 +01:00
Anton Khirnov
b5f851ed7e FATE: force FLAC in the lavf ogg test
Since b0c2c09, vorbis would be used if libvorbis is compiled in.
2014-02-10 07:43:40 +01:00
Anton Khirnov
38893dc028 pcmdec: replace a reachable assert with an error check
Libavformat should not make any assumptions about values returned from
other libraries. This assert is easily reachable by using a non-raw
codec id.
2014-02-10 07:41:21 +01:00
Anton Khirnov
cca4742a5e doc/APIchanges: mark the place where 9 was branched 2014-02-10 07:29:27 +01:00
Anton Khirnov
d711d839ca doc/APIchanges: fill in missing hashes and dates 2014-02-10 07:29:27 +01:00
Michael Niedermayer
03911c418f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hevc: Conceal zero td

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 03:54:54 +01:00
Michael Niedermayer
51290068fa Merge commit 'e95018b694c0774477abec5bbf86ecc7946a9a28'
* commit 'e95018b694c0774477abec5bbf86ecc7946a9a28':
  dnxhd: Support DNx444

Conflicts:
	Changelog
	libavcodec/dnxhddata.c
	libavcodec/dnxhddec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 03:42:06 +01:00
Michael Niedermayer
d84f1a60e0 Merge commit '2f6eec65acc953faed3951fb8f1eabed830fdd2f'
* commit '2f6eec65acc953faed3951fb8f1eabed830fdd2f':
  vp8: fix PPC assembly to work if src_stride != dst_stride

See: 34b429d5ba
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 02:21:40 +01:00
Michael Niedermayer
ec1a1be54f Merge commit 'b37effdc52835e121a0e259e57273a19f9cd61a3'
* commit 'b37effdc52835e121a0e259e57273a19f9cd61a3':
  mxfdec: free descriptor extradata in .read_close()

See: 9f92e590ba
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-10 01:08:51 +01:00
Michael Niedermayer
682e289b97 Merge commit '6a8475dc4f10d65edb7faa8df6e035af0ddcce19'
* commit '6a8475dc4f10d65edb7faa8df6e035af0ddcce19':
  asvenc: free avctx->coded_frame on codec close

Not merged as we do not allocate coded_frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 22:40:41 +01:00
Michael Niedermayer
b7c6ccc1e6 Merge commit 'd6eac2f1bcce0cb85fac5d50fcfe94bc490d4a5e'
* commit 'd6eac2f1bcce0cb85fac5d50fcfe94bc490d4a5e':
  arm: Remove a stray .fpu directive

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 20:57:55 +01:00
Michael Niedermayer
8c596864cd Merge commit '28e508a94677d5dffde009c5f8ca7d6a4d2ca8e8'
* commit '28e508a94677d5dffde009c5f8ca7d6a4d2ca8e8':
  dnxhddec: return proper error code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 20:52:05 +01:00
Michael Niedermayer
28caf13ac3 fate: fix lavf-ogg test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 20:10:02 +01:00
Michael Niedermayer
cf0e5b7fd4 Merge commit 'b0c2c097e422b9e10a7d856582f8321d28af821e'
* commit 'b0c2c097e422b9e10a7d856582f8321d28af821e':
  lavf: default .ogg audio to libvorbis if we can

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 20:04:01 +01:00
Michael Niedermayer
5b23c7ed6f Merge commit 'bc3f03567a04a9f7e412bcf2ca09c163f3f13941'
* commit 'bc3f03567a04a9f7e412bcf2ca09c163f3f13941':
  g2meet: rename FRAME_INFO to more appropriate DISPLAY_INFO

Conflicts:
	libavcodec/g2meet.c

See: cb2162adba
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 20:02:07 +01:00
Luca Barbato
246d3bf0ec hevc: Conceal zero td
It was done only in check_mvset(), while mv_scale() is called also by
dist_scale().

Sample-Id: 00001579-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-09 19:53:43 +01:00
Kostya Shishkov
e95018b694 dnxhd: Support DNx444
Bug-Id: 99
Bug-Id: videolan/9620
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-09 19:53:35 +01:00
Michael Niedermayer
ffe987b96d Merge commit '722554788b77c13748e83458f626a9ac38b70072'
* commit '722554788b77c13748e83458f626a9ac38b70072':
  Add raw HEVC muxer

Conflicts:
	libavformat/version.h

See: ef5d32b9c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 19:43:18 +01:00
Ronald S. Bultje
2f6eec65ac vp8: fix PPC assembly to work if src_stride != dst_stride
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-09 18:50:53 +01:00
Janne Grunau
b37effdc52 mxfdec: free descriptor extradata in .read_close()
Fixes memleak in fate-mxf-demux.
2014-02-09 18:50:53 +01:00
Janne Grunau
6a8475dc4f asvenc: free avctx->coded_frame on codec close 2014-02-09 18:50:53 +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
Martin Storsjö
d6eac2f1bc arm: Remove a stray .fpu directive
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:16 +01:00
Alexandra Khirnova
28e508a946 dnxhddec: return proper error code
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:16 +01:00
Andrew Kelley
b0c2c097e4 lavf: default .ogg audio to libvorbis if we can
Since 2007, the Xiph.org Foundation recommends that .ogg only be used
for Ogg Vorbis audio files.

Source: http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions

However we only do it if we have libvorbis available because the
built in vorbis encoder is not as good.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:15 +01:00
Ronald S. Bultje
0d4d223353 vp9: invert order in l[] intra prediction array.
The directional intra predictors either don't care about order (dc, h,
dc_left, tm), or they prefer inverted order (vr, dr, hd). This allows
more efficient SIMD implementations.
2014-02-09 18:07:15 +01:00
Ronald S. Bultje
37c6eac296 vp9: remove memset in loopfilter level setting loop.
Use same function for segmentation map writing also.
2014-02-09 18:07:14 +01:00
Ronald S. Bultje
45245e202e vp9: coef decoding context-splat speedup. 2014-02-09 18:07:14 +01:00
Ronald S. Bultje
fccd7d81b6 vp9: decode_mode context optimizations. 2014-02-09 18:07:14 +01:00
Ronald S. Bultje
1dc8559e25 vp9: more aligned zeroes. 2014-02-09 18:07:14 +01:00
Ronald S. Bultje
0c30c8ddc1 vp9: faster skip-block coefficient blanking. 2014-02-09 18:07:14 +01:00
Ronald S. Bultje
cdfcd06126 vp9: coef context reading optimization. 2014-02-09 18:07:14 +01:00
Ronald S. Bultje
9aeca1c572 vp9: just disallow temporal or no-update segmentation on size-change.
The spec doesn't describe how it should be decoded so this is probably
the safest thing to do. Fixes valgrind errors on fuzzed11.ivf and fixes
valgrind errors on fuzzed10.ivf differently.
2014-02-09 18:07:14 +01:00
Ramiro Polla
5965adeb20 lavd: add decklink output device
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 17:15:19 +01:00
mrlika
36a6297953 avcodec/dvbsubdec: DVB subtitles decoder: support of 5 bytes extradata format
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 17:14:57 +01:00
Maxim Poliakovski
bc3f03567a g2meet: rename FRAME_INFO to more appropriate DISPLAY_INFO
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-02-09 16:13:23 +01:00
Derek Buitenhuis
ef5d32b9c5 Add raw HEVC muxer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-09 14:29:07 +00:00
Derek Buitenhuis
722554788b Add raw HEVC muxer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-09 14:15:44 +00:00
Michael Niedermayer
4040b56f5a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mlp_parser: fix request_channel_layout behavior.

Conflicts:
	libavcodec/mlp_parser.c

See: bd35d58463
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 02:37:17 +01:00
Michael Niedermayer
73be2ebe96 Merge commit 'f90a4bfc43c9192e89d9b4c81d80789cd9b38a2f'
* commit 'f90a4bfc43c9192e89d9b4c81d80789cd9b38a2f':
  mlpdec: fix request_channel_layout behavior.

See: 1a8050ad61
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-09 01:32:17 +01:00
Maxim Poliakovski
ae95b2f810 g2meet: Validate bpp and bitmasks in the display info
That prevents processing of media files with
incompatible or unsupported settings.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 23:30:02 +01:00
Maxim Poliakovski
3f826039dd g2meet: factor out chunk seeking
This version requires fewer code and is safer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 23:09:57 +01:00
Maxim Poliakovski
cb2162adba g2meet: Rename FRAME_INFO to more appropriate DISPLAY_INFO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 23:01:14 +01:00
Ronald S. Bultje
0c67864a37 vp9: don't allow retaining old segmentation maps after a size change.
Fixes valgrind warnings on fuzzed10.ivf.
2014-02-08 22:08:20 +01:00
Tim Walker
c1e7de8f62 mlp_parser: fix request_channel_layout behavior.
When request_channel_layout is 0,
all substreams should be decoded.

Thanks to Michael Niedermayer for spotting.

Also fix a mismatch between the parser and
decoder when request_channel_layout is a
subset of Stereo.
2014-02-08 20:10:51 +01:00
Michael Niedermayer
f90a4bfc43 mlpdec: fix request_channel_layout behavior.
When request_channel_layout is 0,
all substreams should be decoded.

Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-02-08 20:10:35 +01:00
Michael Niedermayer
0c4bf87b29 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Mirillis FIC video decoder

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/avcodec.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 19:02:46 +01:00
Michael Niedermayer
b08f554fdc Merge commit '76a75c523cd3c63560185394a0a5cd7249db962a'
* commit '76a75c523cd3c63560185394a0a5cd7249db962a':
  lavr: mix front center channel as indicated in the ATSC A/52 specification.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 18:38:17 +01:00
Ronald S. Bultje
7f0f47b3df vp9: some variable re-arrangements for alignment. 2014-02-08 18:30:17 +01:00
Ronald S. Bultje
af63ea7078 vp9: re-allocate block buffers on uses_2pass change w/o size change.
Fixes valgrind errors and crashes in fuzzed9.ivf.
2014-02-08 18:30:17 +01:00
Michael Niedermayer
bd35d58463 avcodec/mlp_parser: fix multichannel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 18:13:34 +01:00
Michael Niedermayer
1a8050ad61 avcodec/mlpdec: fix mulichannel output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 18:08:01 +01:00
Michael Niedermayer
aedc10137d Merge commit 'c0c45188e56cfa3050bb39f8299025345b8a204c'
* commit 'c0c45188e56cfa3050bb39f8299025345b8a204c':
  mlp: improve request_channel_layout behavior.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 17:31:30 +01:00
Michael Niedermayer
df98b36aa6 Merge commit '5c1c6e82261b856214499b9fef3a08bf3ff6e0ae'
* commit '5c1c6e82261b856214499b9fef3a08bf3ff6e0ae':
  dca: include dcadsp.h in {arm,x86}/dca.h for checkheaders

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 17:25:31 +01:00
Michael Niedermayer
3a0e4f6c90 Merge commit '6398d8fd813490fc3900baf8c788f803d8e17b73'
* commit '6398d8fd813490fc3900baf8c788f803d8e17b73':
  configure: clang: add -Qunused-arguments to as|ld_flags as well

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 17:15:36 +01:00
Michael Niedermayer
4df9d9ca4f Merge commit 'b141c7b37eb52aca41ac83738f159b63b9c09d5c'
* commit 'b141c7b37eb52aca41ac83738f159b63b9c09d5c':
  h264: give numbers to nalus

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 17:09:39 +01:00
Michael Niedermayer
dd2b330347 Merge commit '0cffd6fff59f192120dc93aa6c3cb8180f5506e3'
* commit '0cffd6fff59f192120dc93aa6c3cb8180f5506e3':
  x86: use the inline int8x8_fmul_int32 only if inline SSE2 is availbale

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 17:06:57 +01:00
Kostya Shishkov
cde7df25ef Mirillis FIC video decoder
Does not contain cursor rendering yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-08 15:04:13 +00:00
Tim Walker
76a75c523c lavr: mix front center channel as indicated in the ATSC A/52 specification.
When mixing 3 front channels into 2, the center channel is mixed into left and right with the center mix level, not -3dB.
2014-02-08 13:42:55 +01:00
Tim Walker
c0c45188e5 mlp: improve request_channel_layout behavior.
Don't decode further substreams if request_channel_layout
is a subset of the current substream's channel_layout.

Before, we would only discard further substreams if
request_channel_layout matched the substream's
channel_layout extactly, thus decoding additional
channels which the caller would probably end up downmixing.
2014-02-08 13:39:37 +01:00
Janne Grunau
5c1c6e8226 dca: include dcadsp.h in {arm,x86}/dca.h for checkheaders 2014-02-08 13:38:36 +01:00
Janne Grunau
6398d8fd81 configure: clang: add -Qunused-arguments to as|ld_flags as well 2014-02-08 13:38:36 +01:00
Vittorio Giovara
b141c7b37e h264: give numbers to nalus
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-08 13:38:31 +01:00
Ronald S. Bultje
c72f587353 vp9/parser: change size type to unsigned.
Fixes valgrind errors in fuzzed8.ivf because size >= 0x80000000.
2014-02-08 12:53:59 +01:00
Michael Niedermayer
3b6655ebff avcodec/hevc: remove FFUMOD() in slice qp_y init
This has become redundant

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 12:27:00 +01:00
Michael Niedermayer
1e263133cc avcodec/hevc: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 12:27:00 +01:00
Lukasz Marek
20fe316e47 lavd/sdl: reset context variables after destroy
SDL device reports double free or hangs when quiting.
Reseting variables solves the issue.

The issue is caused by double call of write_trailer callback.
It is called for the first time in write_packet when quit flag is set.
Second call comes from ffmpeg.c or may come from other client application.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 12:27:00 +01:00
Lukasz Marek
18c3313e65 lavd/sdl: make waiting spurious wakeup aware
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 12:27:00 +01:00
Janne Grunau
0cffd6fff5 x86: use the inline int8x8_fmul_int32 only if inline SSE2 is availbale
Fixes compilation with MSVC. Also does not rely on on earlier config.h
include but include it directly.
2014-02-08 12:10:56 +01:00
Carl Eugen Hoyos
4bcc6febcf Fix compilation with --disable-everything --enable-encoder=flac. 2014-02-08 12:06:49 +01:00
Ronald S. Bultje
bbc3425fa2 vp9: fix mix-up of last-frame/cur-frame in frame size checks.
Fixes invalid reads in fuzzed7.ivf.
2014-02-08 11:18:37 +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
Reynaldo H. Verdejo Pinochet
958d98cc1c ffserver: drop unneeded delay1 var
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-08 00:30:29 -03:00
Reynaldo H. Verdejo Pinochet
db93c2d031 ffserver: move misplaced comment
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-08 00:29:39 -03:00
Reynaldo H. Verdejo Pinochet
1507e2a095 ffserver: drop obvious comment
Following code line is self explanatory

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-08 00:29:39 -03:00
Reynaldo H. Verdejo Pinochet
47ba472814 ffserver: cosmetics and grammar
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-08 00:29:39 -03:00
Lukasz Marek
3f47e24cbe lavc/mpegvideo: add missing const
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 02:55:51 +01:00
Lukasz Marek
aeb2905fb7 lavc/jpeg2000dec: silent warning discards qualifiers
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 02:54:37 +01:00
Michael Niedermayer
5794e9fce2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dcadsp: split lfe_dir cases

Conflicts:
	libavcodec/arm/dcadsp_init_arm.c

See: 45854df9a5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 02:27:27 +01:00
Christophe Gisquet
45854df9a5 dcadsp: split lfe_dir cases
The x86 runs short on registers because numerous elements are not static.
In addition, splitting them allows more optimized code, at least for x86.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 02:04:12 +01:00
Michael Niedermayer
82ae8a44e6 Merge commit '5b59a9fc6152169599561f04b4f66370edda5c9c'
* commit '5b59a9fc6152169599561f04b4f66370edda5c9c':
  x86: dcadsp: implement int8x8_fmul_int32

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 01:20:33 +01:00
Michael Niedermayer
7ffe78a445 Merge commit '2bd44cb705340c4f7bd7e459a1efed5074bf45fc'
* commit '2bd44cb705340c4f7bd7e459a1efed5074bf45fc':
  dcadsp: add int8x8_fmul_int32 to dsp context

See: 481a46a462
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:56:32 +01:00
Christophe Gisquet
481a46a462 dcadsp: add int8x8_fmul_int32 to DSP context
It is currently declared as a macro who is set to inlinable functions,
among which a Neon and a default C implementations.

Add a DSP parameter to each inline function, unused except by the
default C implementation which calls a function from the DSP context.

On an Arrandale CPU, gain for an inlined SSE2 function vs. a call:
- Win32: 29 to 26 cycles
- Win64: 25 to 23 cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:55:42 +01:00
Michael Niedermayer
a7574a36af Merge commit 'e3fec3f095ab5ea08ee662942d98526aaf5e3635'
* commit 'e3fec3f095ab5ea08ee662942d98526aaf5e3635':
  arm: Add EXTERN_ASM to the .func and .type declarations for exported symbols

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:49:28 +01:00
Michael Niedermayer
bf90abe1dd Merge commit '5bcbb516f2ff45290ef7995b081762e668693672'
* commit '5bcbb516f2ff45290ef7995b081762e668693672':
  arm: Add X() around all references to extern symbols

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:48:26 +01:00
Michael Niedermayer
64278039e5 avcodec/hevc: Simplify get_qPy_pred()
Fixes use of uninitialized memory
Fixes: 93728afd9aa074ba14a09bfd93a632fd-asan_static-oob_124a17d_1445_cov_1021181966_DBLK_D_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:22:49 +01:00
Michael Niedermayer
1a3ed056c5 avcodec/hevc: make check for previous slice segment tighter
This ensures the previous one is matching the curent and not just any

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:22:49 +01:00
Christophe Gisquet
5fdbfcb5b7 dcadsp: split lfe_dir cases
The x86 runs short on registers because numerous elements are not static.
In addition, splitting them allows more optimized code, at least for x86.

Arm asm changes by Janne Grunau.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:54:18 +01:00
Christophe Gisquet
5b59a9fc61 x86: dcadsp: implement int8x8_fmul_int32
For the callable function (as opposed to the inline one):
         C  SSE  SSE2  SSE4
Win32:  47   42   29    26
Win64:  30   33   25    23
The SSE version is neither compiled nor set for ARCH_X86_64, as the
inlinable function takes over.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:52:40 +01:00
Christophe Gisquet
2bd44cb705 dcadsp: add int8x8_fmul_int32 to dsp context
It is currently declared as a macro who is set to inlinable functions,
among which a Neon and a default C implementations.

Add a DSP parameter to each inline function, unused except by the
default C implementation which calls a function from the DSP context.

On an Arrandale CPU, gain for an inlined SSE2 function vs. a call:
- Win32: 29 to 26 cycles
- Win64: 25 to 23 cycles

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:51:59 +01:00
Lukasz Marek
7bb8b87654 lavc/adpcm_data: fix const misplacement
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-07 19:33:20 +00:00
Lukasz Marek
0792b87335 lavc/evrcdec: fix const misplacement
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-07 19:32:16 +00:00
Michael Niedermayer
ec9578d54d avcodec/wmalosslessdec: fix mclms_coeffs* array size
Fixes corruption of context
Fixes: 8835659dde6a4f7dcdf341de6a45c6c8-signal_sigsegv_1dce67b_4564_cov_2504444599_classical_22_16_1_14000_v3c_0_extend_0_29.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 15:36:30 +01:00
Michael Niedermayer
2a03eb4c99 avcodec/wmalosslessdec: use sizeof() instead of literal number
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 15:36:30 +01:00
Martin Storsjö
e3fec3f095 arm: Add EXTERN_ASM to the .func and .type declarations for exported symbols
This makes the generated assembly more internally consistent,
avoiding declaring two labels for the same function (for cases
where EXTERN_ASM is empty) and not declaring a separate unprefixed
label in other cases.

This also makes sure the .func and .type delcarations have the same
prefix. They have previously not been used on the platforms
that have prefixed symbols on arm (iOS), but gas-preprocessor
has recently started using the .func declarations for adding
.thumb_func declarations for such functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-07 15:14:06 +02:00
Martin Storsjö
5bcbb516f2 arm: Add X() around all references to extern symbols
Don't rely on the fact that an unprefixed label currently exists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-07 15:13:58 +02:00
Clément Bœsch
f21d0beb0c Fix a few heigth/height typo. 2014-02-07 09:33:56 +01:00
Michael Niedermayer
6ef57f4d9a avcodec/hevc: hls_decode_entry: check that the previous slice segment is available before decoding the next
Fixes use of uninitialized memory
Fixes out of array read
Fixes assertion failure
Fixes part of cb307d24befbd109c6f054008d6777b5/asan_static-oob_124a175_1445_cov_2355279992_DBLK_D_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 04:40:37 +01:00
Michael Niedermayer
a18f111582 avcodec/hevc: clear tab_slice_address of ctb on error.
This allows us to detect which areas have failed to decode

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 04:30:31 +01:00
Michael Niedermayer
56985d26d7 avcodec/hevc: clear tab_slice_address in hevc_frame_start()
Fixes inconsistencies
Fixes use of uninitilaized memory
Fixes part of  cb307d24befbd109c6f054008d6777b5/asan_static-oob_124a175_1445_cov_2355279992_DBLK_D_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 03:47:49 +01:00
Michael Niedermayer
951793717a avcodec/hevc_filter: assert validity of qp predictor input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 01:55:17 +01:00
Michael Niedermayer
9707b539b9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp8: fix bilinear C code to work if src_stride != dst_stride.

See: 34b429d5ba
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 00:58:38 +01:00
James Almer
a4e4948ffe x86/cpu: add missing avx2 AVOption in av_parse_cpu_flags()
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 22:45:57 +01:00
Ronald S. Bultje
5351964a2b vp8: fix bilinear C code to work if src_stride != dst_stride.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-06 22:45:29 +01:00
Peter Krefting
d5733936d8 configure: Remove dcbzl check for e500v1 and e500v2 architectures
The DCBZL instruction is not available for the e500v1 and e500v2
architectures, but may still be recognized by the toolchain, so we need to
remove the test for it explicitly for these architectures.

References: PowerPC™ e500 Core Family Reference Manual (Freescale)

Found-by: Ståle Kristoffersen <staalebk@ifi.uio.no>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 22:31:43 +01:00
Timothy Gu
474db7a696 doc/texi2pod: make references bold
Inspired by GCC r86635.

This is more consistent with other man pages. For example in `man git`,
all the "git-help(1)" kind of cross refs are bold.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 16:18:26 +01:00
Michael Niedermayer
c73445a45c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp8: Use 2 registers for dst_stride and src_stride in neon bilin filter

Conflicts:
	libavcodec/arm/vp8dsp_neon.S

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 15:33:54 +01:00
Martin Storsjö
49ec551595 vp8: Use 2 registers for dst_stride and src_stride in neon bilin filter
Based on a patch by Ronald S. Bultje.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-06 09:32:26 +02:00
Loren Merritt
9c978f243a flac/x86: add ff_flac_lpc_32_sse4()
benchmarked on sandybridge x86_64:
1358232 decicycles in flac_lpc_32_c
1244575 decicycles in flac_lpc_32_sse4, James Almer's patch
 650045 decicycles in flac_lpc_32_sse4, this patch

I haven't tested the edgecases such as odd block lengths

odd block length tested-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 02:51:19 +01:00
Timothy Gu
4a37e2977c libfdk-aacenc: disable hard version requirements
Enable compilation on machines with an old libfdk-aac.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 02:33:33 +01:00
Michael Niedermayer
927696aab2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: force the simple idct for xvid custom matrix test

Conflicts:
	tests/fate/xvid.mak
	tests/ref/fate/xvid-custom-matrix

See: ef034cbf18
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 00:35:05 +01:00
Michael Niedermayer
a3be0c334e Merge commit 'a1e1f35203bbcbea0efb51d93e96769c826b8c64'
* commit 'a1e1f35203bbcbea0efb51d93e96769c826b8c64':
  lavu: add missing log.h include in timer.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 23:48:41 +01:00
Ben Boeckel
5a633ec2dd vorbis: extract metadata from the middle of a stream
If a special comment packet shows up in the middle of the stream, we
should extract it out into the vorbis stream metadata dictionary.

Also, if there is metadata in the packet on the way in, it might linger
since we only add data to the dictionary causing stale metadata to be
inserted into the stream. Instead, clear it to remove any doubt about
what is new and old.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 22:37:07 +01:00
Ben Boeckel
0dc66553ad vorbis: append data from tags together
Currently, if there are multiple 'performer' tags, the last one is the
only one which appears. Instead, join them with a semicolon.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 22:36:48 +01:00
Ben Boeckel
7eb84f2c3b ogg: allow streams to update metadata
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 22:36:42 +01:00
Vignesh Venkatasubramanian
129e24f78e lavf/oggparseopus: Setting seek_preroll in AVCodecContext
Setting seek_preroll value in AVCodecContext for Opus streams
embedded in ogg container.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 21:16:36 +01:00
Janne Grunau
5a0bccd281 fate: force the simple idct for xvid custom matrix test
The original test without a forced idct is still useful since it tests
the switching of the idct algorithm/permutation on x86 with MMX. MMXext
or SSE2. Make sure the test runs only if MMX inline asm is available and
force -cpuflags to all.
Add the required bitexact flag for both tests.
2014-02-05 21:02:39 +01:00
Janne Grunau
a1e1f35203 lavu: add missing log.h include in timer.h 2014-02-05 21:00:51 +01:00
Timothy Gu
9a4a559d6f configure: use real libfdk-aac version instead of API version in help text
Also use real name with a '-' instead of '_'.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 16:06:20 +01:00
Michael Niedermayer
95b13fb96f Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: flush subtitle codecs as well with null packets
  ffplay: reorder the filters to ensure that inputs of the custom filters are merged first

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 14:12:50 +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
Michael Niedermayer
acd7505351 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg: K&R formatting cosmetics

Conflicts:
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 03:59:37 +01:00
Michael Niedermayer
6e380cc28f Merge commit '9ecb858775483a76c137e8e1ad45a95e318bca61'
* commit '9ecb858775483a76c137e8e1ad45a95e318bca61':
  doxy: Format @code blocks so they render properly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 03:27:13 +01:00
Michael Niedermayer
3adb5f8d8b Merge commit 'd9ae1031f5edbd25c8526b4cb51aba66d3bee931'
* commit 'd9ae1031f5edbd25c8526b4cb51aba66d3bee931':
  lavf: improve handling of sparse streams when muxing

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/mux.c
	libavformat/options_table.h
	libavformat/version.h

See: 37ed5df5c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 03:19:22 +01:00
Michael Niedermayer
6a4cc50980 Merge commit '4c3e1956ee35fdcc5ffdb28782050164b4623c0b'
* commit '4c3e1956ee35fdcc5ffdb28782050164b4623c0b':
  lagarith: reallocate rgb_planes when needed

Conflicts:
	libavcodec/lagarith.c

See: 9eef41b848
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 02:47:46 +01:00
Michael Niedermayer
2b88cb2f46 Merge commit '2240e2078d53d3cfce8ff1dda64e58fa72038602'
* commit '2240e2078d53d3cfce8ff1dda64e58fa72038602':
  truemotion1: check the header size

See: e7b43e8e84
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 02:25:34 +01:00
Michael Niedermayer
cd04f0da60 Merge commit '1713eec29add37b654ec6bf262b843d139c1ffc6'
* commit '1713eec29add37b654ec6bf262b843d139c1ffc6':
  shorten: pad the internal bitstream buffer

See: 89d998f1c1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 02:13:36 +01:00
Michael Niedermayer
e7724f346a Merge commit '5430839144c6da0160e8e0cfb0c8db01de432e94'
* commit '5430839144c6da0160e8e0cfb0c8db01de432e94':
  eacmv: clear references on frame dimensions change

Conflicts:
	libavcodec/eacmv.c

See: e9d443cf08
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 01:42:06 +01:00
Michael Niedermayer
d80b9ea11d Merge commit '0e830094ad0dc251613a0aa3234d9c5c397e02e6'
* commit '0e830094ad0dc251613a0aa3234d9c5c397e02e6':
  samplefmt: avoid integer overflow in av_samples_get_buffer_size()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 01:30:24 +01:00
Michael Niedermayer
bd9492174d Merge commit '190d4a447bc6ae4ecbbbb1c70f482a9c1fb6026c'
* commit '190d4a447bc6ae4ecbbbb1c70f482a9c1fb6026c':
  avcodec: Suppress deprecation warnings from avcodec_alloc_frame()

Conflicts:
	libavcodec/utils.c

No change as we dont call this deprecated function
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 01:27:48 +01:00
Michael Niedermayer
dcbc748ad1 Merge commit 'd509ae5be0a9bac35a4cedbe68b774a74446bb27'
* commit 'd509ae5be0a9bac35a4cedbe68b774a74446bb27':
  jvdec: K&R formatting cosmetics

Conflicts:
	libavcodec/jvdec.c
	libavformat/jvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 01:18:48 +01:00
Marton Balint
23e77f0e33 ffplay: flush subtitle codecs as well with null packets
Signed-off-by: Marton Balint <cus@passwd.hu>
2014-02-05 00:00:23 +01:00
Marton Balint
cec6dec7c8 ffplay: reorder the filters to ensure that inputs of the custom filters are merged first
For more info see http://ffmpeg.org/pipermail/ffmpeg-user/2013-December/018761.html

Signed-off-by: Marton Balint <cus@passwd.hu>
2014-02-05 00:00:23 +01:00
Vittorio Giovara
a91d3658d9 mpeg: K&R formatting cosmetics
Also adjust header #include order and some comments.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-04 22:29:53 +01:00
Luca Barbato
9ecb858775 doxy: Format @code blocks so they render properly
@code command reports verbatim everything between it and @endcode.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 22:09:47 +01:00
Luca Barbato
d9ae1031f5 lavf: improve handling of sparse streams when muxing
Currently ff_interleave_packet_per_dts() waits until it gets a frame for
each stream before outputting packets in interleaved order.

Sparse streams (i.e. streams with much fewer packets than the other
streams, like subtitles or audio with DTX) tend to add up latency and in
specific cases end up allocating a large amount of memory.

Emit the top packet from the packet_buffer if it has a time delta
larger than a specified threshold.

Original report of the issue and initial proposed solution by
mus.svz@gmail.com.

Bug-id: 31
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 22:01:42 +01:00
Anton Khirnov
4c3e1956ee lagarith: reallocate rgb_planes when needed
Fixes invalid writes on pixel format changes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 22:00:27 +01:00
Anton Khirnov
2240e2078d truemotion1: check the header size
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 22:00:13 +01:00
Anton Khirnov
1713eec29a shorten: pad the internal bitstream buffer
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 21:59:57 +01:00
Anton Khirnov
5430839144 eacmv: clear references on frame dimensions change
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 21:59:14 +01:00
Michael Niedermayer
20be510887 avcodec/vc1dec: remove blocks_off use from vc1_pred_b_mv()
it should always be 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 20:56:09 +01:00
Michael Niedermayer
41f9742053 avcodec/vc1dec: vc1_pred_b_mv() is not used for fields, simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 20:12:54 +01:00
Justin Ruggles
0e830094ad samplefmt: avoid integer overflow in av_samples_get_buffer_size()
CC:libav-stable@libav.org
2014-02-04 12:32:47 -05:00
Michael Niedermayer
c93e691369 Merge commit '1f097d168d9cad473dd44010a337c1413a9cd198'
* commit '1f097d168d9cad473dd44010a337c1413a9cd198':
  h264: reset data partitioning at the beginning of each decode call

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 16:44:32 +01:00
Michael Niedermayer
9a082fec1a Merge commit 'e46ad30a808744ddf3855567e162292a4eaabac7'
* commit 'e46ad30a808744ddf3855567e162292a4eaabac7':
  vp8: use a fixed-size edge emu buffer

Conflicts:
	libavcodec/vp8.c
	libavcodec/vp8.h

See: face578d56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 16:14:30 +01:00
Michael Niedermayer
c18cfd1001 ffserver: use avformat_alloc_context()
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 16:01:02 +01:00
Michael Niedermayer
073e771c9c Merge commit '33c859c142ef3f49b7a6227014ad92a680cf4d74'
* commit '33c859c142ef3f49b7a6227014ad92a680cf4d74':
  lavf: ignore attachment streams for interleaving purposes

Conflicts:
	libavformat/avformat.h
	libavformat/internal.h
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 15:37:05 +01:00
Michael Niedermayer
5144d91996 Merge commit '7b03b65bf0d02519c86750d2da33f413e11cf0c6'
* commit '7b03b65bf0d02519c86750d2da33f413e11cf0c6':
  lavf: do basic sanity checking on muxed packets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 15:17:29 +01:00
Michael Niedermayer
40fc1e2dda Merge commit '5de64bb34d68d6c224dca90003172d7a27958825'
* commit '5de64bb34d68d6c224dca90003172d7a27958825':
  utvideoenc: Add support for the new BT.709 FourCCs for YCbCr

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 15:09:02 +01:00
Michael Niedermayer
cddbe9fa2e avfilter/dualinput: fix repeatlast to match docs and eof_action=pass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 14:54:14 +01:00
Michael Niedermayer
905cd28a5a Merge commit 'de203abd71baae7f120313259b45cf935c85203e'
* commit 'de203abd71baae7f120313259b45cf935c85203e':
  vf_overlay: add eof_action switch

Conflicts:
	doc/filters.texi
	libavfilter/vf_overlay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 14:33:33 +01:00
Diego Biurrun
190d4a447b avcodec: Suppress deprecation warnings from avcodec_alloc_frame()
The function is itself obsolete and slated for removal.
2014-02-04 13:46:20 +01:00
Michael Niedermayer
a0d5204cd9 Merge commit 'b25e84b7399bd91605596b67d761d3464dbe8a6e'
* commit 'b25e84b7399bd91605596b67d761d3464dbe8a6e':
  hevc: check that the VCL NAL types are the same for all slice segments of a frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 13:44:39 +01:00
Vittorio Giovara
d509ae5be0 jvdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-04 12:35:38 +01:00
Anton Khirnov
1f097d168d h264: reset data partitioning at the beginning of each decode call
Prevents using GetBitContexts with data from previous calls.

Fixes access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 11:26:17 +01:00
Anton Khirnov
e46ad30a80 vp8: use a fixed-size edge emu buffer
The reason is the same as for e588615d93

Based on a patch by Ronald S. Bultje <rsbultje@gmail.com>
2014-02-04 11:21:07 +01:00
Anton Khirnov
33c859c142 lavf: ignore attachment streams for interleaving purposes
Those streams should never get any packets by definition.
2014-02-04 11:17:06 +01:00
Anton Khirnov
7b03b65bf0 lavf: do basic sanity checking on muxed packets
Reject packets for non-existing or attachment streams.
2014-02-04 11:10:55 +01:00
Jan Ekström
5de64bb34d utvideoenc: Add support for the new BT.709 FourCCs for YCbCr
With cli usage the decoder might have not set the colorspace during
encoder init, manual colorspace override might be needed in such
cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 10:59:28 +01:00
Keith Lawson
de203abd71 vf_overlay: add eof_action switch
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 10:54:26 +01:00
Anton Khirnov
b25e84b739 hevc: check that the VCL NAL types are the same for all slice segments of a frame
Fixes possible invalid memory access for mismatching skipped/non-skipped
slice segments.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Sample-Id: 00001533-google
2014-02-04 10:39:07 +01:00
Michael Niedermayer
8a3b85f3a7 avcodec/h264: update current_sps & sps->new only after the whole slice header decoder and init code finished
This avoids them being cleared before the full initialization finished

Fixes out of array read
Fixes: asan_heap-oob_f0c5e6_7071_cov_1605985132_mov_h264_aac__Demo_FlagOfOurFathers.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 04:49:25 +01:00
Michael Niedermayer
e708424b70 avcodec/h264: Disallow pps_id changing between slices
Such changes are forbidden in H.264 and lead to race conditions

Fixes out of array read
Fixes: signal_sigsegv_f9796a_1613_cov_3114610371_FM1_BT_B.h264
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 00:07:27 +01:00
Michael Niedermayer
1a96b27ebf avcodec/h264: clear dequant8_coeff pointers if 8x8 mode is not enabled
This prevents stale pointers from being left

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 22:15:32 +01:00
Matt Oliver
3e309c5d18 Fix compilation with msvc/icl due to missing header and define.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 19:48:41 +01:00
Michael Niedermayer
e9314f1968 Merge remote-tracking branch 'dilaroga/master'
* dilaroga/master:
  vda: fix crash when a frame is dropped.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 15:34:00 +01:00
Alex Sukhanov
889afca369 avcodec/aac_adtstoasc_bsf: Fix memory leak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 15:06:41 +01:00
Ståle Kristoffersen
8658390336 libavformat/utils.c: Cosmetics: Fix incorrect comma placement 2014-02-03 11:35:19 +01:00
Michael Niedermayer
6e42ccb9db avcodec/aacdec: Fix pulse position checks in decode_pulses()
Fixes out of array read
Fixes: asan_static-oob_1efed25_1887_cov_2013541199_HeyYa_RA10_AAC_192K_30s.rm
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 05:15:41 +01:00
Michael Niedermayer
4d7d9a5782 avcodec/hnm4video: check offset before subtraction in decode_interframe_v4a()
Fixes out of array read
Fixes: signal_sigsegv_1326a09_1752_cov_245452111_GRTH301.HNS
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 03:11:48 +01:00
addr-see-the-website@aetey.se
8e36fc0c33 RoQ encoder: support different integer framerates
Even though the most common framerate for RoQ is 30fps,
the format supports other framerates too.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 02:04:38 +01:00
Michael Niedermayer
1bc2fa447c avformat: use AVPROBE_SCORE_STREAM_RETRY, instead of AVPROBE_SCORE_RETRY - 1
This makes the code clearer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 23:50:00 +01:00
Voyager1
9f6f4962fb avformat/utils: dvd still frames read thru libdvdnav ended up in internal lavf buffer
This is the solution we've been using in XBMC for over 2 years for dvd still frames.
The problem is that the demuxer asks for probing of the codec in the mpeg stream.
This causes lavf to read the whole menu structure into internal buffers.
After which, it won't read from input stream anymore and no events triggers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 23:40:06 +01:00
Lukasz Marek
c81a9d13f4 lavd/opengl_enc: fix parentheses in if condition
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 22:14:34 +01:00
Jean First
2384cada12 lavfi/ebur128: add true peak metering per frame
Signed-off-by: Jean First <jeanfirst@gmail.com>
2014-02-02 20:45:09 +01:00
Jean First
6ef2315aaf lavfi/ebur128: print peak metering in dBFS
Signed-off-by: Jean First <jeanfirst@gmail.com>
2014-02-02 20:45:09 +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
Andrey Utkin
6d7119dbd2 lavfi/drawtext: fix reinit command
Problem was that reinit argument wasn't used.
Regression came in at commit fd6228e657

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-02-02 16:21:50 +01:00
Stefano Sabatini
e756effd58 lavfi/movie: fix display of pushed frame information
It was broken since 7e350379f8.

Also fix warnings:
libavfilter/src_movie.c: In function ‘describe_frame_to_str’:
libavfilter/src_movie.c:392:5: warning: ‘type’ is deprecated (declared at ./libavutil/frame.h:313) [-Wdeprecated-declarations]
libavfilter/src_movie.c:408:9: warning: ‘type’ is deprecated (declared at ./libavutil/frame.h:313) [-Wdeprecated-declarations]
2014-02-02 15:54:26 +01:00
Stefano Sabatini
bf96e547b7 doc/APIchanges: fix weird reindent 2014-02-02 13:16:28 +01:00
Stefano Sabatini
5871ee5072 lavf: add output_ts_offset option to AVFormatContext
This option can be generally useful to set an output offset, needed when
setting an absolute index in the output.
2014-02-02 13:16:17 +01:00
Stefano Sabatini
a535d3952c lavf/avformat.h: fix typos 2014-02-02 13:11:59 +01:00
Stefano Sabatini
290da7e754 ffmpeg: tweak debug_ts logging and add more of it
Help with debugging timestamp issues.
2014-02-02 13:11:52 +01:00
Stefano Sabatini
60251c13e3 examples/avio_reading: remove stray empty line 2014-02-02 12:35:46 +01:00
Stefano Sabatini
5fc4dea39c examples: add avio_reading.c example 2014-02-02 11:58:23 +01:00
Stefano Sabatini
a270f63e83 lavfi/overlay: add yuv422 format mode 2014-02-02 11:50:21 +01:00
Reynaldo H. Verdejo Pinochet
95d1809981 libavformat/mtv: add test for audio magic
MTV files have the string "MP3" as audio magic on their
header. Always.

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-02-01 21:09:14 -08:00
Michael Niedermayer
ef034cbf18 fate/xvid: fix idct & bitexact flag
should fix test to match on all platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 05:56:30 +01:00
Michael Niedermayer
d9bb7fc3cb Merge commit '816e5b997028c8215c804b1e58b2388592ed612b'
* commit '816e5b997028c8215c804b1e58b2388592ed612b':
  hevc: Reject impossible slice segment

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 05:40:30 +01:00
Michael Niedermayer
493f750e7a Merge commit '09e2203b8ba6943d5c0fe6d73b65b145c3fdf98e'
* commit '09e2203b8ba6943d5c0fe6d73b65b145c3fdf98e':
  hevc: Consider first quantization group any reference to 0, 0

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 05:32:12 +01:00
Michael Niedermayer
23e48cd01f Merge commit 'c716624853339ea4b1086a3957b334829370204c'
* commit 'c716624853339ea4b1086a3957b334829370204c':
  mxf: Read field dominance flag

Conflicts:
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 05:23:59 +01:00
Michael Niedermayer
8fb67c1026 Merge commit '7d56f2fffc14ad02001ee0689bee76a759da9ede'
* commit '7d56f2fffc14ad02001ee0689bee76a759da9ede':
  mxf: Handle negative edit_rate

Conflicts:
	libavformat/mxfdec.c

See: 83cab07a4c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 05:07:42 +01:00
Michael Niedermayer
549f052239 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/opengl_enc: remove inlines
  lavd/opengl_enc: fix window caption
  lavd/opengl_enc: simplify opengl_load_procedures usage
  lavd/opengl_enc: factorize deinit_context function
  lavd/opengl_enc: factorize create/release window functions
  lavd/opengl_enc: rename GL_RED_COMPONENT define
  lavd/opengl_enc: create format description table
  lavd/opengl_enc_shaders: make shaders code static and const

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 02:42:15 +01:00
Michael Niedermayer
96c4ba2392 avcodec/hevc: propagate error code from hls_coding_quadtree()
Fixes use of uninitialized memory
Fixes out of array read
Fixes: asan_static-oob_123cee5_2630_cov_1869071233_PICSIZE_A_Bossen_1.bin
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 02:35:11 +01:00
Lukasz Marek
5059d8dfe3 lavd/opengl_enc: remove inlines
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 02:26:02 +01:00
Lukasz Marek
69b19f2642 lavd/opengl_enc: fix window caption
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 02:23:25 +01:00
Lukasz Marek
1fb1ddf647 lavd/opengl_enc: simplify opengl_load_procedures usage
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 02:23:25 +01:00
Lukasz Marek
c8275331ba lavd/opengl_enc: factorize deinit_context function
This commit also fixes opengl deinitialization.
Program and shaders where not deleted.
Could impact MacOS implementation based on SDL window.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 02:23:25 +01:00
Lukasz Marek
4afe1c1178 lavd/opengl_enc: factorize create/release window functions
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 02:23:25 +01:00
Lukasz Marek
c9074b992e lavd/opengl_enc: rename GL_RED_COMPONENT define
Rename GL_RED_COMPONENT into FF_GL_RED_COMPONENT
to explicity mark it is internal define, not OpenGL API.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 02:23:08 +01:00
Michael Niedermayer
a744064c41 avcodec/tiff: reset geotag_count in free_geotags()
Fixes null pointer dereference
Fixes: signal_sigsegv_19d922e_3688_cov_1577641655_aletrek_tiff.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 01:48:34 +01:00
Lukasz Marek
c72f916c15 lavd/opengl_enc: create format description table
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 01:03:45 +01:00
Lukasz Marek
ffe46e5d13 lavd/opengl_enc_shaders: make shaders code static and const
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-02 00:50:44 +01:00
Michael Niedermayer
0997c2504b avdevice/v4l2: only use average frame rate if set
It might be unset on some platforms with some drivers and some input

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 00:15:11 +01:00
Michael Niedermayer
4aa4533ee8 avdevice/v4l2: only use frame period from v4l2 if valid
There is evidence that some drivers do not set a valid value

See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718805
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 00:13:01 +01:00
addr-see-the-website@aetey.se
392b0345d6 RoQ-encoder: introducing Quake 3 compatibility option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 22:32:28 +01:00
addr-see-the-website@aetey.se
80a79f2641 RoQ decoder: Remove misleading diagnostics.
It is not necessarily an error when a chunk does not cover a whole block.
Messages did not reflect the actual situation either.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 22:30:22 +01:00
Michael Niedermayer
b51e935477 avcodec/vc1: reset fcm/field_mode in non advanced header parsing
Fixes NULL pointer dereference
Fixes: signal_sigsegv_1ab8bf4_2847_cov_4254117347_SA10091.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 19:07:01 +01:00
Michael Niedermayer
dcf5bfbdb6 avcodec/vc1: Check bfraction_lut_index
Fixes: out of array read
Fixes: asan_static-oob_1b40507_2849_SA10143.vc1
Fixes: asan_static-oob_1b40a15_2849_cov_1182297305_SA10143.vc1
Fixes: asan_static-oob_1b40f15_2849_cov_2159513432_SA10143.vc1
Fixes: asan_static-oob_1b40f15_2849_cov_3230311510_SA10143.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 17:10:48 +01:00
Michael Niedermayer
388b4cf86e avcodec/vc1: factor read_bfraction() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 17:06:24 +01:00
Luca Barbato
816e5b9970 hevc: Reject impossible slice segment
A dependent slice cannot have address 0.
Prevent an out of array bound load in ff_hevc_cabac_init().

Sample-Id: 00001406-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-01 17:04:49 +01:00
Luca Barbato
09e2203b8b hevc: Consider first quantization group any reference to 0, 0
According to my understanding of T-REC-H.265-2013044 chapter 8.6.1.

Sample-Id: 00001438-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-01 17:02:35 +01:00
Matthieu Bouron
c716624853 mxf: Read field dominance flag
And export the information in field_order.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-01 16:26:44 +01:00
Luca Barbato
7d56f2fffc mxf: Handle negative edit_rate
Default to 1/25.
2014-02-01 16:25:07 +01:00
Michael Niedermayer
f4b288a639 avcodec/vc1dec: Print warning for frame pictures with direct mode MBs, followed by field pictures
This case is not implemented
No non fuzzed samples are known to use this

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 06:59:35 +01:00
Michael Niedermayer
85d51d8e32 avcodec/vc1dec: field pictures with direct mode MBs, followed by frame pictures are not supported
This case could occur when cuting and concatenating bitstreams

Fixes out of array read
Fixes: asan_heap-oob_1b33fdd_2849_cov_478905890_SA10143.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-01 06:48:44 +01:00
Michael Niedermayer
dce93218d7 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Auto-detect hevc in mpeg-ts.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 22:50:40 +01:00
Michael Niedermayer
19b41f8645 avcodec/mjpegdec: use the correct linesize in the flipping code
Fixes out of array access
No releases should be affected
Depends on 7c3700cd1d, do not backport without this one

Fixes: asan_heap-oob_14a37fe_9111_cov_1692584941_test4.amv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 21:47:44 +01:00
Michael Niedermayer
f58eab1512 avcodec/takdec: always check bits_per_raw_sample
Fixes out of array access
Fixes: asan_heap-oob_19c7a94_6470_cov_1453611734_luckynight-partial.tak
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 19:54:27 +01:00
Ståle Kristoffersen
16097efb8c Auto-detect hevc in mpeg-ts.
Fixes decoding of files without PMT/PAT.

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-01-31 19:05:08 +01:00
Michael Niedermayer
0de9d72b7c mxpeg_decode_end: zero bitmask size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 18:34:14 +01:00
Michael Niedermayer
2884688bd5 avcodec/mjpegdec: pass into ff_mjpeg_decode_sos() and check bitmask size
Fixes: heap array overread
Fixes: asan_heap-oob_149b2bc_6577_m1.mxg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 18:34:08 +01:00
Michael Niedermayer
13aa82bbbb avformat/flac_picture: clear padding area
aviod use of uninitialized memory

Fixes: asan_heap-oob_1487fa4_4706_cov_364534849_cover_art.flac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 17:32:32 +01:00
Michael Niedermayer
fff2953163 avformat/flac_picture: allocate buffer padding for picture
Fixes: heap array overread
Fixes: asan_heap-oob_14876d9_4706_cov_815472558_cover_art.flac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 17:22:48 +01:00
Michael Niedermayer
aa36dcf534 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add xvid test for custom matrices

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 15:26:53 +01:00
Michael Niedermayer
3f9e2aad34 Merge commit '7716dd9fbbcea2700a100c995df967d5547c2eb9'
* commit '7716dd9fbbcea2700a100c995df967d5547c2eb9':
  xvid: switch to xvid mmx idct as soon as possible

Conflicts:
	libavcodec/mpeg4videodec.c

Not merged, as the bug was not merged either

See: 6c9b82b6a0, and related commits
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 15:18:44 +01:00
Michael Niedermayer
e53ec2fe38 Merge commit '78987a88a88b28d93d03ed6c228bcb33f178444f'
* commit '78987a88a88b28d93d03ed6c228bcb33f178444f':
  lavf: include 60 fps in guessed standard frame rates

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 14:58:28 +01:00
Michael Niedermayer
dd4237f87d Merge commit '5312818524484a995433b986a2a7a6602572d4db'
* commit '5312818524484a995433b986a2a7a6602572d4db':
  atrac3plus: Make initialization dependant on channel count rather than channel map

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 14:53:06 +01:00
Michael Niedermayer
8eaa66212c Merge commit '9ee9c679a7d444db223cf932e89cd39351f54f2d'
* commit '9ee9c679a7d444db223cf932e89cd39351f54f2d':
  x86: videodsp: Fix a bug in a %if statement where we used '%%' instead of '&&'.

See: cd86eb265f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 14:36:35 +01:00
Michael Niedermayer
de17ccc774 Merge commit '51daafb02eaf96e0743a37ce95a7f5d02c1fa3c2'
* commit '51daafb02eaf96e0743a37ce95a7f5d02c1fa3c2':
  x86: videodsp: Properly mark sse2 instructions in emulated_edge_mc as such.

Conflicts:
	libavcodec/x86/videodsp_init.c

See: 1b3a7e1f42
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 14:30:30 +01:00
Janne Grunau
04ffd22030 fate: add xvid test for custom matrices
Test sample is made from the sample in Bug-Id: videolan/7411
2014-01-31 11:12:31 +01:00
Janne Grunau
7716dd9fbb xvid: switch to xvid mmx idct as soon as possible
The idct implementation cannot be changed after the quantization matrices
are read since it use a different permutaion.

Bug-Id: videolan/7411
2014-01-31 11:09:11 +01:00
Janne Grunau
78987a88a8 lavf: include 60 fps in guessed standard frame rates
Due to what looks like an off-by-one error 60 * 12 * 1001 / 12 * 1001
is not tested as standard frame rate in avformat_find_stream_info().
2014-01-31 11:09:10 +01:00
Jan Ekström
5312818524 atrac3plus: Make initialization dependant on channel count rather than channel map
Makes it easier to recreate an AVCodecContext for ATRAC3+ decoding,
which is needed in multimedia frameworks, as well as in general cases
where demuxing and decoding are separate entities.
2014-01-31 11:09:10 +01:00
Michael Niedermayer
a85a718f26 doc/examples/decoding_encoding: Check all av_samples_get_buffer_size() returns
Fixed CID1135755
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 03:27:37 +01:00
Michael Niedermayer
c89f8f80cc avformat/hdsenc: check mkdir() return code
This also returns failure if the mkdir failure is not due to an already existing
path.

Fixed CID1135749

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 03:08:49 +01:00
Michael Niedermayer
2e02d71237 ffmpeg: print data size too in statistic
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-31 01:36:47 +01:00
Stefano Sabatini
4111856545 doc/APIchanges: apply minor formatting fixes 2014-01-31 00:48:31 +01:00
James Darnley
9a6d91b6b6 Changelog: add entries relating to metadata_header_padding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 20:37:07 +01:00
Michael Niedermayer
be7b76230f ffmpeg: also count data streams bytes
Fixes wrong error message about empty output file

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 20:17:10 +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
Michael Niedermayer
6dc9d2cf47 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: document correct option to list encoders

Conflicts:
	doc/encoders.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 16:00:47 +01:00
Ronald S. Bultje
9ee9c679a7 x86: videodsp: Fix a bug in a %if statement where we used '%%' instead of '&&'.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-30 15:33:23 +01:00
Ronald S. Bultje
51daafb02e x86: videodsp: Properly mark sse2 instructions in emulated_edge_mc as such.
Should fix crashes or corrupt output on pre-SSE2 CPUs when they were
using SSE2-code (e.g. AMD Athlon XP 2400+ or Intel Pentium III) in
hfix or hvar single-edge (left/right) extension functions.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-30 15:30:01 +01:00
Michael Niedermayer
d85284d4aa Merge commit 'a17ab0e46a9fec7c31cc1be363828184c6ecebf7'
* commit 'a17ab0e46a9fec7c31cc1be363828184c6ecebf7':
  doc: add decoders.texi

Conflicts:
	doc/decoders.texi
	doc/ffmpeg.texi
	doc/ffplay.texi

See: 5e45f03420
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 15:19:51 +01:00
Michael Niedermayer
3c7195a969 Merge commit '23d461fe8714a20ee5e6929f22c61512fdda568e'
* commit '23d461fe8714a20ee5e6929f22c61512fdda568e':
  ac3dec: Allow asymmetric application of DRC when drc_scale > 1

Conflicts:
	libavcodec/ac3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 14:55:03 +01:00
Carl Eugen Hoyos
3f35a31ee9 Add rangecoder to the sonic dependencies in configure.
Fixes compilation with --disable-everything --enable-decoder=sonic
and --disable-everything --enable-encoder=sonic.
2014-01-30 12:15:28 +01:00
Carl Eugen Hoyos
e1cb6dc59e Warn the user if mjpeg cbr encoding with frame threading was requested. 2014-01-30 01:37:27 +01:00
Michael Niedermayer
1a5e8511d4 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Force automatic thread_count to 1 for cbr mjpeg frame threading.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 00:55:29 +01:00
Michael Niedermayer
b80073c05f avcodec/mjpegdec: use av_freep() instead of av_free()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 00:50:43 +01:00
Michael Niedermayer
ed56c021e7 avcodec/mjpegdec Fix potential memleak of stereo3D at the end in case of decoding failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 00:25:04 +01:00
Carl Eugen Hoyos
cfc36666f6 Force automatic thread_count to 1 for cbr mjpeg frame threading.
Constant bit rate mjpeg encoding fails for threads > 1 and frame threading.
2014-01-30 00:22:25 +01:00
Kirill Gavrilov
e9e7e68516 mjpegdec: parse JPS extension and save relevant stereo3d information
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 00:17:02 +01:00
Michael Niedermayer
72afa381b3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avformat: utils: Refactor duplicated PRINT macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-29 23:40:51 +01:00
John Stebbins
64ba831da9 doc: document correct option to list encoders 2014-01-29 23:27:37 +01:00
John Stebbins
a17ab0e46a doc: add decoders.texi
Only documents ac3 decoder options at this point.
2014-01-29 23:27:18 +01:00
John Stebbins
23d461fe87 ac3dec: Allow asymmetric application of DRC when drc_scale > 1
Amplification of quiet sounds is enhanced.
Inspired by gbooker's A52Decoder.
2014-01-29 23:26:25 +01:00
Michael Niedermayer
fbafd64acc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg: Drop unused parameters from ff_draw_horiz_band()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-29 17:05:51 +01:00
Diego Biurrun
d67cfdeb53 avformat: utils: Refactor duplicated PRINT macro 2014-01-29 17:04:35 +01:00
Diego Biurrun
54b2ce7418 mpeg: Drop unused parameters from ff_draw_horiz_band() 2014-01-29 16:37:23 +01:00
Carl Eugen Hoyos
cfe282ec80 Remove now unneeded Makefile dependency for the wtv muxer. 2014-01-29 09:59:45 +01:00
Michael Niedermayer
29986885ef avformat/mpegts: Continue parsing PMTs until at least 2 streams are found or 100kb are reached
This (ugly) hack fixes Ticket3348
If someone has an idea on how to fix this nicer, that would be very welcome
but the stream contains several PMTs with just one of the 2 streams at the start

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-29 05:44:03 +01:00
Michael Niedermayer
ad61419bbf avformat/mpegts: drop stray space
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-29 05:43:39 +01:00
Carl Eugen Hoyos
bf9a8d183d Support writing E-AC3 in wav. 2014-01-29 00:48:50 +01:00
Carl Eugen Hoyos
862174ec83 Move GUID-related objects to riffenc.c and riff.c.
This simplifies the following eac3-in-wav patch.
2014-01-29 00:44:59 +01:00
Carl Eugen Hoyos
4151b9953e Add elbg Makefile dependency to the cinepak encoder. 2014-01-28 22:39:45 +01:00
Michael Niedermayer
b50efe85ea avfilter/vf_colormatrix: update output AVFrame colorspace
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 21:52:02 +01:00
Michael Niedermayer
3e41e747d6 avfilter/vf_colormatrix: Support using the source AVFrame colorspace if none is specified
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 21:52:00 +01:00
Mikael Finstad
5846d8a91e avformat/hls: Fix cookies and user agent with encrypted HLS streams
Session data (cookies, user-agent) is not being sent on payload requests with
encrypted HLS streams This causes services like Akamai to give a 403 forbidden
when requesting the TS files, because they expect the same cookies
and user-agent on all requests
2014-01-28 18:50:58 +01:00
Lukasz Marek
406cb21b63 doc/general: update device and protocol status
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 17:58:22 +01:00
Lukasz Marek
9ff2cc685b MAINTAINERS: add myself as opengl_enc.c maintainer
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 15:30:49 +01:00
Lukasz Marek
4115cd0e76 doc/APIchanges: add avdevice_*_control_message functions
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 15:30:45 +01:00
Michael Niedermayer
bb7a711156 avcodec/huffyuvenc: frame multi-threading support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 14:51:42 +01:00
James Almer
644c32ea4b x86/vp9lpf: add ff_vp9_loop_filter_[vh]_88_16_sse2()
Similar gains as the ssse3 version once again

Signed-off-by: James Almer <jamrial@gmail.com>
2014-01-28 09:30:55 +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
Michael Niedermayer
2a9c50798b avcodec/huffyuv: dont depend on bitstream_bpp having a specific value for version>2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-28 00:27:57 +01:00
Michael Niedermayer
c94ed2a729 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd: add opengl device
  lavd: add avdevice_dev_to_app_control_message API
  lavd: add avdevice_app_to_dev_control_message API

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 23:45:22 +01:00
Michael Niedermayer
673ce8e46a avcodec/libfdk-aacenc: change MODE_7_1_FRONT_CENTER to map to AV_CH_LAYOUT_7POINT1_WIDE_BACK
This was suggested by Rodeo on IRC
<Rodeo> for consistency with the rest, MODE_7_1_FRONT_CENTER would be AV_CH_LAYOUT_7POINT1_WIDE_BACK (since LS+RS is mapped to back channels in other modes)

Reviewed-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 23:33:10 +01:00
Michael Niedermayer
a38842120a avcodec/libfdk-aacenc: change MODE_7_1_REAR_SURROUND to map to AV_CH_LAYOUT_7POINT1
This was suggested by Rodeo on IRC
<Rodeo> sorry, I meant MODE_7_1_REAR_SURROUND would probably be AV_CH_LAYOUT_7POINT1

Reviewed-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 23:33:10 +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
Xidorn Quan
31a0ca9e75 vda: fix crash when a frame is dropped.
Signed-off-by: Sebastien Zwickert <dilaroga@gmail.com>
2014-01-27 20:36:42 +01:00
Lukasz Marek
ded6b3af41 lavd: add opengl device
It can render to OpenGL context provided by application or into SDL window

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-27 15:18:18 +01:00
Lukasz Marek
102bd64168 lavd: add avdevice_dev_to_app_control_message API
New API allows to send messages from devices to application.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-27 15:18:17 +01:00
Lukasz Marek
7151411b9c lavd: add avdevice_app_to_dev_control_message API
New API allows to send messages from application to devices.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-27 15:18:17 +01:00
Carl Eugen Hoyos
05e5bb6107 Fix decoding of some 8 < bpc < 16 signed j2k samples with libopenjpeg.
No testcase known.

Reviewed-by: Michael Bradshaw
2014-01-27 14:38:59 +01:00
Rainer Hochecker
bceeccc648 dxva2: bump maximum number of slieces for mpeg2
Suggested by heleppkes on https://trac.ffmpeg.org/ticket/3133

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 14:24:29 +01:00
Lukasz Marek
9d087ab5ef ffplay: remove redundant prototype
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 13:36:01 +01:00
Michael Niedermayer
6369766f01 avcodec/huffyuv: support gbrp9/10/12/14
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 02:11:29 +01:00
Michael Niedermayer
7cf8918b0d avcodec/huffyuv: update years in copyright
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-27 01:45:57 +01:00
Michael Niedermayer
17e7048d30 Merge commit 'b7d0d10a1d54073501b728dbe166a32e2b7b26f1'
* commit 'b7d0d10a1d54073501b728dbe166a32e2b7b26f1':
  x86inc: Speed up assembling with Yasm

See: 4d55fe7204
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 23:42:20 +01:00
Michael Niedermayer
896d6a7736 Merge commit '50ecf15712354a1d5b3f4dc9a57ff90ed7ee9654'
* commit '50ecf15712354a1d5b3f4dc9a57ff90ed7ee9654':
  avformat: utils: K&R formatting cosmetics

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 23:35:38 +01:00
Ronald S. Bultje
c2871568cf vp9: fix invalid ref frame w/h on size change.
Fixes invalid reads and crashes in vp90-2-05-resize.webm and fuzzed6.ivf.
The output is still not identical to what libvpx does (because we don't
actually scale in MC).

Reviewed-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 20:16:01 +01:00
Ronald S. Bultje
d9343c3484 vp9: disable use_last_frame_mvs on resolution change (scalable).
Prevents some invalid memory accesses after resolution change in
vp90-2-05-resize.webm, and libvpx does this too.

Reviewed-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 20:15:45 +01:00
Michael Niedermayer
e6c0da70fc avcodec/huffyuvdec: optimize >8bps VLC reading
97479 -> 54891 decicycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 19:59:57 +01:00
Loren Merritt
b7d0d10a1d x86inc: Speed up assembling with Yasm
Work around Yasm's inefficiency with handling large numbers of variables
in the global scope.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-01-26 18:40:08 +01:00
Stefano Sabatini
37baa2af43 configure: add missing dependency for the remuxing example 2014-01-26 18:31:03 +01:00
Diego Biurrun
50ecf15712 avformat: utils: K&R formatting cosmetics
Also adjust some comment wording / spelling and reorder header #includes.
2014-01-26 18:09:00 +01:00
Stefano Sabatini
9651239f67 ffmpeg: use intermediary variables in reap_filters, increase readability 2014-01-26 18:06:39 +01:00
Stefano Sabatini
68c5ba1f05 doc/filters: re-edit notes on filtergraph escaping
State the escaping rules more explicitly, reword various sentences and
drop confusing quoting example.

Should fix trac issue #3334.
2014-01-26 18:06:39 +01:00
Michael Niedermayer
599e629f88 avcodec/huffyuvenc: fix end pointer for stats_out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 16:24:36 +01:00
Michael Niedermayer
a301bb63f0 avcodec/huffyuvenc: fail if stats_out is too small instead of silently truncating
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 16:23:45 +01:00
Michael Niedermayer
bc11b2c3e6 fate: add test for 16bps ffvhuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 04:51:38 +01:00
Jean First
91489d28ba avcodec/libfdk_aacenc: enable 7.1 channel encoding
7.1(wide) and 7.1(wide-side) channel layouts are supported in fdk_aac since october 2013 (commit fa3eba1644)

Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 03:31:42 +01:00
Michael Niedermayer
c46faacdf4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: clang: explicitly state dep file and rule name in DEPFLAGS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 03:23:51 +01:00
Michael Niedermayer
0e2dd05c22 Merge commit 'fb87e69ff77f96536768dbae01d82db70c8b41f3'
* commit 'fb87e69ff77f96536768dbae01d82db70c8b41f3':
  configure: add missing x86 dependency for i686

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 03:19:38 +01:00
Michael Niedermayer
7667afffb8 avcodec/mpeg12dec: Revert Change to mpeg2_fast_decode_block_non_intra
This fixes the speed regression from 20626f53e9
and still checks sufficiently to prevent out of allocated memory accesses
due to the index

Before:
1823 decicycles in mpeg2_fast_decode_block_non_intra, 8388493 runs, 115 skips
After:
1808 decicycles in mpeg2_fast_decode_block_non_intra, 8388494 runs, 114 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 02:57:40 +01:00
Michael Niedermayer
6a92598e14 avcodec/mpeg12dec: Redesign index checks for mpeg2_fast_decode_block_intra
This fixes the speed regression from 20626f53e9
and still checks sufficiently to prevent out of allocated memory accesses
due to the index

Before:
1681 decicycles in mpeg2_fast_decode_block_intra, 4194238 runs, 66 skips
After:
1658 decicycles in mpeg2_fast_decode_block_intra, 4194248 runs, 56 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 02:57:29 +01:00
Michael Niedermayer
20626f53e9 Merge commit '6d93307f8df81808f0dcdbc064b848054a6e83b3'
* commit '6d93307f8df81808f0dcdbc064b848054a6e83b3':
  mpeg12: check scantable indices in all decode_block functions

Benchmarks

Before:
1878 decicycles in mpeg2_decode_block_non_intra, 8388487 runs, 121 skips
1700 decicycles in mpeg2_decode_block_intra, 4194239 runs, 65 skips
1808 decicycles in mpeg2_fast_decode_block_non_intra, 8388492 runs, 116 skips
1669 decicycles in mpeg2_fast_decode_block_intra, 4194248 runs, 56 skips
--
2056 decicycles in mpeg1_decode_block_inter, 65535 runs, 1 skips
2346 decicycles in mpeg1_decode_block_intra, 32768 runs, 0 skips
2011 decicycles in mpeg1_fast_decode_block_inter, 65533 runs, 3 skips
----------------
After:
1858 decicycles in mpeg2_decode_block_non_intra, 8388490 runs, 118 skips
1691 decicycles in mpeg2_decode_block_intra, 4194233 runs, 71 skips
1823 decicycles in mpeg2_fast_decode_block_non_intra, 8388493 runs, 115 skips
1681 decicycles in mpeg2_fast_decode_block_intra, 4194238 runs, 66 skips
--
2010 decicycles in mpeg1_decode_block_inter, 65535 runs, 1 skips
2322 decicycles in mpeg1_decode_block_intra, 32766 runs, 2 skips
1995 decicycles in mpeg1_fast_decode_block_inter, 65535 runs, 1 skips

All benchmarks are the best scores of several runs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 02:52:21 +01:00
Michael Niedermayer
3e6088f732 avutil/internal.h: add timer.h back
Without this a developer would have to add a include every time he
wants to benchmark some code, this is a moderate inconvenience.

This reverts the specific hunk from fb0c9d41d6

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 02:23:26 +01:00
Michael Niedermayer
965fa6b0d9 Merge commit 'fb0c9d41d685abb58575c5482ca33b8cd457c5ec'
* commit 'fb0c9d41d685abb58575c5482ca33b8cd457c5ec':
  avutil: remove timer.h include from internal.h

Conflicts:
	libavcodec/ffv1dec.c
	libavutil/internal.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 01:54:55 +01:00
Michael Niedermayer
53167ecfdb avcodec/huffyuv: support AV_PIX_FMT_YUV(A)4XYP16 and GRAY16
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-26 00:23:03 +01:00
Janne Grunau
9e057f53aa configure: clang: explicitly state dep file and rule name in DEPFLAGS
Fixes dependency file generation with gas-preprocessor.pl and clang.
Flags copied from GCC and tested with Apple's clang from Xcode 5 and
5.1 and clang 3.2, 3.3, 3.4 on Linux.
2014-01-25 21:50:21 +01:00
Janne Grunau
fb87e69ff7 configure: add missing x86 dependency for i686 2014-01-25 21:50:20 +01:00
Janne Grunau
6d93307f8d mpeg12: check scantable indices in all decode_block functions
Add checks to the fast functions used with CODEC_FLAGS2_FAST and move
the check for all other functions to before the invalid memory is
accessed. Fixes https://trac.videolan.org/vlc/ticket/9713 with
CODEC_FLAGS2_FAST.

CC: libav-stable@libav.org
2014-01-25 21:50:20 +01:00
Janne Grunau
fb0c9d41d6 avutil: remove timer.h include from internal.h
Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
2014-01-25 21:50:20 +01:00
Michael Niedermayer
214a3b8bf9 avfilter/vf_scale: simplify alignment code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 16:54:24 +01:00
Michael Niedermayer
1e48c39ece avfilter/vf_scale: do aspect ratio and scale factor compensation together
Fixes rounding error

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 16:48:13 +01:00
Michael Niedermayer
682ddb89cf Merge branch 'scale-filter-factor' of https://github.com/lkiesow/FFmpeg
* 'scale-filter-factor' of https://github.com/lkiesow/FFmpeg:
  Documentation for scale filter factor
  Documentation for scale filter factor
  Fixed factor for scale filter
  Factors for scale filter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 16:35:07 +01:00
Michael Niedermayer
018e2b57ca avcodec/libx264: also consider ticks per frame for fps/timebase setup
Setting fps = 1/timebase is not correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 16:31:30 +01:00
Clément Bœsch
5f4d04d084 x86/lossless_videodsp: silly one-line cosmetic. 2014-01-25 16:24:50 +01:00
Lars Kiesow
c49b036096 Documentation for scale filter factor 2014-01-25 15:34:23 +01:00
Lars Kiesow
69b1d1d99b Documentation for scale filter factor 2014-01-25 15:02:15 +01:00
Lars Kiesow
e395f8de5a Fixed factor for scale filter 2014-01-25 15:00:02 +01:00
Lars Kiesow
7fc4c18463 Factors for scale filter 2014-01-25 14:40:48 +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
Ramiro Polla
78a9f185eb lavfi/drawtext: add option for drawing border around text
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 04:59:28 +01:00
Ramiro Polla
222fb8276d lavfi/drawtext: get bitmap from glyph in a separate step
This change makes it possible to transform the glyph or get its border before
turning it into a bitmap.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 04:46:38 +01:00
Michael Niedermayer
5554c6dd45 Merge remote-tracking branch 'rbultje/vp9-simd'
* rbultje/vp9-simd:
  vp9: fix memory corruption if header decoding fails after size change.
  vp9/x86: use explicit register for relative stack references.
  vp9/x86: iwht4x4 (lossless) mmx.
  vp9/x86: 4x4 iadst SIMD (ssse3) variants.
  vp9/x86: 8x8 iadst SIMD (ssse3/avx) variants.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 01:43:54 +01:00
Michael Niedermayer
4b84a69ebb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dxtory: compressed RGB555/RGB565 decoding support

Conflicts:
	libavcodec/dxtory.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 01:39:19 +01:00
Michael Niedermayer
2d0d1f7eb3 Merge commit '0e1ad2f591b87e944550c15b54e54f8189743289'
* commit '0e1ad2f591b87e944550c15b54e54f8189743289':
  dxtory: add more compressed and uncompressed modes

Conflicts:
	libavcodec/dxtory.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 01:33:42 +01:00
Ronald S. Bultje
4147b337c1 vp9: fix memory corruption if header decoding fails after size change. 2014-01-24 19:25:26 -05:00
Ronald S. Bultje
c9e6325ed9 vp9/x86: use explicit register for relative stack references.
Before this patch, we explicitly modify rsp, which isn't necessarily
universally acceptable, since the space under the stack pointer might
be modified in things like signal handlers. Therefore, use an explicit
register to hold the stack pointer relative to the bottom of the stack
(i.e. rsp). This will also clear out valgrind errors about the use of
uninitialized data that started occurring after the idct16x16/ssse3
optimizations were first merged.
2014-01-24 19:25:25 -05:00
Ronald S. Bultje
97474d527f vp9/x86: iwht4x4 (lossless) mmx. 2014-01-24 19:25:25 -05:00
Ronald S. Bultje
d43efa68bd vp9/x86: 4x4 iadst SIMD (ssse3) variants.
Cycle measurements for intra itxfm_4x4_add on ped1080p.webm:
idct_idct:    66 -> 67 cycles (noise measurement)
idct_iadst:  199 -> 79 cycles
iadst_idct:  165 -> 70 cycles
iadst_iadst: 183 -> 82 cycles
2014-01-24 19:25:25 -05:00
Ronald S. Bultje
baf47020cd vp9/x86: 8x8 iadst SIMD (ssse3/avx) variants.
Cycle measurements for intra itxfm_8x8_add on ped1080p.webm:
idct_idct:   133 -> 135 cycles (noise measurement)
idct_iadst:  900 -> 241 cycles
iadst_idct:  864 -> 215 cycles
iadst_iadst: 973 -> 310 cycles
2014-01-24 19:25:25 -05:00
Michael Niedermayer
cf812d8129 avcodec/dvbsubdec: Remove unused display_list_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 01:22:48 +01:00
Wim Vander Schelden
af09be4f4b Fixed a memory leak in dvbsubenc.c: sub->num_rects was reduced without freeing the associated rects.
Signed-off-by: Wim Vander Schelden <lists@fixnum.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-25 00:41:57 +01:00
James Darnley
2efdccac87 lavf/avienc: cosmetic indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 23:00:17 +01:00
James Darnley
fa20babb46 lavf/avienc: use metadata_header_padding
The muxer will write at least the number of bytes requested and possibly
up to 3 bytes more.  This is because the muxer writes 32-bit integers
and the format requires 4-byte alignment anyway.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:58:59 +01:00
James Darnley
67270ccd3a lavf/id3v2enc: update comment about minimum padding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:52:33 +01:00
James Darnley
0de03fd6a1 lavf/id3v2enc: use metadata_header_padding
As with the change to flacenc this allows the user to control the amount
of padding they want added to the file.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:50:06 +01:00
James Darnley
c14b011a97 lavf/flacenc: fix comment after previous change
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:41:06 +01:00
James Darnley
72eeb18468 lavf/flacenc: use metadata_header_padding
Allows a user to control the amount, if any, of padding they want added
to the file.  If set to zero the block will not be written at all.  If
set to some positive number four more bytes will be added to the file
due to the small header required for the block.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:40:23 +01:00
James Darnley
86bee7984e AVFormatContext: add metadata_header_padding field
This field is used to store the number of bytes that should be written
as padding to a metadata header of a file.  For example:
 - The FLAC format's METADATA_BLOCK_PADDING [1]
 - The ID3v2 tag format's padding           [2]

[1] http://xiph.org/flac/format.html#metadata_block_padding
[2] http://id3.org/id3v2.3.0#ID3v2_overview

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:33:21 +01:00
Serhii Marchuk
1d07385053 mpegts demuxer: store PMT values of DVB teletext to extradata
* Using extradata by TS demuxer to store values from PMT
* Support of multiple languages in one DVB teletext stream:
  comma separated language codes in metadata "language" field

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:14:01 +01:00
Serhii Marchuk
2ebee19e1e mpegts muxer: restore PMT table of DVB teletext from extradata
* Using extradata by TS muxer to correctly restore PMT table
* PES_header_data_length should be always 0x24 for DVB teletext,
  according to DVB standard

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:07:40 +01:00
Serhii Marchuk
f8051bd31a mpegts muxer: Change the default subtitle language to "und"
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:01:37 +01:00
João Bernardo
290326711b avutil/opt: Better print representation of number limits
Signed-off-by: João Bernardo Oliveira <jbvsmo@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 21:14:02 +01:00
Kostya Shishkov
28e1eed3c2 dxtory: compressed RGB555/RGB565 decoding support 2014-01-24 20:09:51 +01:00
Kostya Shishkov
0e1ad2f591 dxtory: add more compressed and uncompressed modes 2014-01-24 20:09:44 +01:00
Michael Niedermayer
934bb11ad7 avcodec/mpeg12dec: fix mis-indented line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:17 +01:00
Michael Niedermayer
5f54756f7e avcodec/mpeg12dec: Disable the checked bitstream reader
Mpeg1/2 should not need it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:17 +01:00
Michael Niedermayer
76b5e99ce9 avcodec/mpeg12dec: Check for overread in mpeg_decode_slice()
This is needed in case the checked bitstream reader is disabled

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:17 +01:00
Michael Niedermayer
d82eccea2b avcodec/mpeg12dec: check block index in mpeg2_fast_decode_block_non_intra()
Prevents some overreads at the cost of 1 cpu cycle

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:16 +01:00
Michael Niedermayer
0c8e5fb211 avcodec/mpeg12dec: Optimize mpeg1_decode_block_intra()
sandybridge i7 274->260 cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:16 +01:00
Michael Niedermayer
0a59055167 avcodec/mpeg12dec: check for overread in mpeg1_fast_decode_block_inter()
No speedloss meassured

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:16 +01:00
Michael Niedermayer
746350ea0f avcodec/mpeg12dec: Make mpeg2_fast_decode_block_intra() more robust by breaking out on invalid vlcs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 18:09:16 +01:00
Michael Niedermayer
a0e9dfb5ae Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp9: fix bugs in updating coef probabilities with parallelmode=1

Conflicts:
	libavcodec/vp9.c

No change, the bug/buggy code doesnt seem to be in FFmpeg
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 12:47:31 +01:00
Michael Niedermayer
3672458573 Merge commit 'bd01412313c728400f1fc5448ede0ad8b51da0d1'
* commit 'bd01412313c728400f1fc5448ede0ad8b51da0d1':
  vp9: fix mvref finding to adhere to bug in libvpx.

Conflicts:
	libavcodec/vp9mvs.c

No change
See: dd3d0f46bd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 12:37:12 +01:00
Stefano Sabatini
ca57659440 examples/filtering_audio,video: do not call avcodec_register_all()
It is implied by av_register_all(). Simplify.
2014-01-24 12:20:46 +01:00
Stefano Sabatini
433b153b68 doc/ffmpeg: reference time syntax sections in ffmpeg-utils for itsoffset and timestamp options
Avoid doc duplication and desynching.
2014-01-24 12:20:46 +01:00
Guillaume Martres
50866c8d95 vp9: fix bugs in updating coef probabilities with parallelmode=1
- The memcpy was completely wrong because
s->prob_ctx[s->framectxid].coef is a [4][2][2][6][6][3] array, whereas
s->prob.coef is a [4][2][2][6][6][11] array.
- The additional check was committed to ffmpeg by Ronald S. Bultje.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-24 07:03:11 +01:00
Ronald S. Bultje
bd01412313 vp9: fix mvref finding to adhere to bug in libvpx.
Fixes a particular youtube video that I unfortunately can't share.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-24 07:02:56 +01:00
Michael Niedermayer
4b8c599e84 avformat/nutenc: fix missing break in switch
Fixes CID1163848
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 04:17:15 +01:00
Michael Niedermayer
41003da94a avfilter/avfilter: fix use of uninitialized pointer
Fixes CID1163852
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 04:14:52 +01:00
Michael Niedermayer
40c218c60d avcodec/vc1: fix type of tmp
Fixes CID1163850
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 03:40:37 +01:00
Michael Niedermayer
9b68538fdd avcodec/libopenjpegenc: Replace av_frame_alloc() and av_frame_ref() by av_frame_clone()
Simplifies code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 03:25:47 +01:00
Michael Niedermayer
a26e9c1040 avcodec/mjpegenc: Use av_frame_clone() instead of av_frame_ref()
This avoids the need for double error checking
Fixes CID1163843

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 03:24:55 +01:00
Michael Niedermayer
52d2bcc786 avcodec/libopenjpegenc: Check the return code of av_frame_ref()
Fixes CID1163842

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 02:58:20 +01:00
Michael Niedermayer
7853024071 avcodec/h264_cabac: Fix use with the checked bitstream-reader
Found-by: Dale Curtis <dalecurtis@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 00:05:17 +01:00
Reynaldo H. Verdejo Pinochet
4d888a0ad8 libavformat/mtv: add missing MTV_ prefix to macro
Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-01-23 17:40:58 -03:00
Reynaldo H. Verdejo Pinochet
ba15aab4a4 libavformat/mtv: make clear we assume bpp is always 16
All samples in the wild are RGB565/555 and we are already
acting on this assumption when pushing out the video frames,
so if we get anything != than 16 for bpp we just override
this value for doing any calculations making our approach
consistent.

Also avoid repeatedly shifting bpp.

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-01-23 17:40:58 -03:00
Reynaldo H. Verdejo Pinochet
d467e7df1a libavformat/mtv: donwgrade probe score for < 512
MTV has a 512 bytes header. We should be able to
parse required fiels from the first 57 (rest is
padding) but if we haven't seen enough data then
go with SCORE_EXTENSION.

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-01-23 17:40:58 -03:00
Reynaldo H. Verdejo Pinochet
30f4c58f6f libavformat/mtv: Check for min header size first
Abort immediately if we are not getting enough
data to extract the required fields.

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
2014-01-23 17:40:58 -03:00
addr-see-the-website@aetey.se
bf23642dcc Cinepak encoder: adding option handling for flexibility
Now it is possible to adjust compression speed vs R/D when needed
and also skip vintage players compatibility at will.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 20:27:06 +01:00
Michael Niedermayer
c1333a762c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec_asf: Copy the need_parsing field from the chained demuxer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 20:15:21 +01:00
Martin Storsjö
2aec9e228c rtpdec_asf: Copy the need_parsing field from the chained demuxer
This fixes playback of mp3 streams in rtp/asf. This used to work
until c6f1dc8, but mostly by coincidence.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-23 17:37:10 +02:00
Stefano Sabatini
094516a5d0 ffmpeg: use av_err2str() macro
Simplify.
2014-01-23 16:29:44 +01:00
Stefano Sabatini
9f956d9d8d ffmpeg: apply misc cosmetics to process_input() code 2014-01-23 16:29:39 +01:00
Michael Niedermayer
8456bd2c0f avformat/matroskaenc: wrap V_QUICKTIME codec private in something that looks like its part of quicktime stsd
This is needed for matroska spec compliance
Fixes playback of SVQ3 in matroska with vlc
Fixes Ticket 3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 14:49:50 +01:00
Eli Kara
da25a6573f avformat/http: Properly handle cookies that specify sub-domain where the URL.
Fixes ticket #3336

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 14:39:36 +01:00
Matt Oliver
306e1ac012 avformat/tls: Fix windows build with openSSL enabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 14:33:56 +01:00
Michael Niedermayer
e6d1c66d74 avcodec/x86/lossless_videodsp: disable median optimizations for 16bps
They only support upto 15bps

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 01:51:24 +01:00
Michael Niedermayer
eaacfc7dd1 avcodec/lossless_videodsp: Pass AVCodecContext to init
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 01:43:00 +01:00
Michael Niedermayer
622d463000 avcodec/bitstream: assert that no integer overflow happened when writing codes in build_table()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-23 01:43:00 +01:00
Stefano Sabatini
35fe88bb51 examples/muxing: reindent after previous commit 2014-01-23 01:08:24 +01:00
Stefano Sabatini
c92d2f98db examples/muxing: flush encoders at the end 2014-01-23 00:54:33 +01:00
Michael Niedermayer
0269b30fef Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo_enc: Don't call ff_h263dsp_init unconditionally

Conflicts:
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 23:36:33 +01:00
Michael Niedermayer
ef00ef7553 avcodec/x86/lossless_videodsp: port sub_hfyu_median_prediction_int16 to yasm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 23:27:27 +01:00
Michael Niedermayer
fad49aae28 avcodec/x86/lossless_videodsp: Port sub_hfyu_median_prediction_mmxext to int16
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 22:55:49 +01:00
Michael Niedermayer
fee97f25fa avcodec/x86/lossless_videodsp: port add_hfyu_median_prediction_mmxext to 16bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 21:11:40 +01:00
Michael Niedermayer
631939bde6 avcodec/x86/lossless_videodsp: add diff_int16_mmx/sse2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 19:41:21 +01:00
Martin Storsjö
cff480e49d mpegvideo_enc: Don't call ff_h263dsp_init unconditionally
This fixes builds with e.g. --disable-decoders --disable-encoders
--enable-encoder=mjpeg.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-22 18:42:38 +02:00
Michael Niedermayer
7b89e24151 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  bfin: vp3: Mark all binary object sections appropriately

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 16:08:24 +01:00
Michael Niedermayer
0e59e30b14 Merge commit 'ea49f60523c4f4c43cb06a35166b44478d473e51'
* commit 'ea49f60523c4f4c43cb06a35166b44478d473e51':
  h264: skip chroma edges at the picture boundary while deblocking 4:4:4

Conflicts:
	libavcodec/h264.c

See: f27b22b497
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 16:02:12 +01:00
Michael Niedermayer
383d2339e0 Merge commit '8267f9363532b23b3b8b4e27491ee2d412a8aec3'
* commit '8267f9363532b23b3b8b4e27491ee2d412a8aec3':
  configure: Set default HOSTCFLAGS/HOSTCPPFLAGS after compiler detection

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 15:31:52 +01:00
addr-see-the-website@aetey.se
762c4dc082 avcodec/cinepakenc: fixes and improvements
Fixed/improved multistrip adaptivity.
Improved R/D by optimized codebook generation.
Support for the correct color space.
Vintage compatibility.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 15:23:53 +01:00
Tomas Härdin
59dbc36f49 Adding Cinepak encoder
With permission of Tomas Härdin applied by Rl aetey.se

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 14:41:24 +01:00
Diego Biurrun
19987fa18c bfin: vp3: Mark all binary object sections appropriately
This fixes a leftover from e44d7c659b.
2014-01-22 05:38:15 -08:00
Janne Grunau
ea49f60523 h264: skip chroma edges at the picture boundary while deblocking 4:4:4
This handles macroblock edges for the chroma components in the same way
as for the luma compoment for 4:4:4 streams. The Spec explicitly states
that the deblocking filter is not applied to edges at the boundary of
the picture.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-22 13:44:28 +01:00
Diego Biurrun
8267f93635 configure: Set default HOSTCFLAGS/HOSTCPPFLAGS after compiler detection
This prevents the default HOSTCFLAGS from getting clobbered by flags
passed to configure on the command line.
2014-01-22 10:33:04 +01:00
Michael Niedermayer
94a52417cb Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavf/ftp: remove double space
  lavf/libssh: fix seek with whence==SEEK_CUR
  lavf/libssh: rename context variable from s into libssh
  lavf/libssh: add av_cold attributes
  lavf/libssh: factorize create_sftp_session function
  lavf/libssh: factorize create_ssh_session function
  lavf/libssh: factorize file_stat function
  lavf/libssh: factorize open_file function
  lavf/libssh: add private_key option

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 01:12:23 +01:00
Lukasz Marek
9ef441c525 lavf/ftp: remove double space
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
e0d124a920 lavf/libssh: fix seek with whence==SEEK_CUR
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
b271aac536 lavf/libssh: rename context variable from s into libssh
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
522814455c lavf/libssh: add av_cold attributes
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
7fb5f55e1e lavf/libssh: factorize create_sftp_session function
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
77fadab1be lavf/libssh: factorize create_ssh_session function
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
bf5d73b04d lavf/libssh: factorize file_stat function
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
8d3f14e11b lavf/libssh: factorize open_file function
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Lukasz Marek
7e8f304846 lavf/libssh: add private_key option
Allows to specify private key to use during authorization.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
Michael Niedermayer
28bc1d94b7 avformat/mov: redesign the fps calculation
This uses STTS and TRUN information to calculate the fps
It seems to work with more files than the previous code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-22 00:33:38 +01:00
Michael Niedermayer
977abf9aed Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rgb2rgb_template: add MMX/SSE2/AVX-optimized deinterleaveBytes

Conflicts:
	libswscale/x86/rgb2rgb_template.c

See: 3033cd7555
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 22:20:26 +01:00
Michael Niedermayer
ef25595b71 Merge commit '7597e6efe492cb2449bb771054d64cc7fdf62ff5'
* commit '7597e6efe492cb2449bb771054d64cc7fdf62ff5':
  swscale/x86/rgb2rgb: add support for AVX

Conflicts:
	libswscale/x86/rgb2rgb_template.c

See: 4729b529e6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 22:03:28 +01:00
Michael Niedermayer
53feab7a4e Merge commit '9047491f8bcd87673eed55fb310647a03b0981e9'
* commit '9047491f8bcd87673eed55fb310647a03b0981e9':
  swscale: add nv12/nv21->yuv420 converter

Conflicts:
	libswscale/rgb2rgb.c
	libswscale/rgb2rgb_template.c

See: ef627bf9ec
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 21:55:20 +01:00
Michael Niedermayer
797d807869 Merge commit 'eb01a25fe1452740a7f3ae2cbaff356a5c6e7806'
* commit 'eb01a25fe1452740a7f3ae2cbaff356a5c6e7806':
  swscale: fix stride used in planarToNv12Wrapper()

Conflicts:
	libswscale/swscale_unscaled.c

See: 94d7ca2b58
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 21:45:24 +01:00
Michael Niedermayer
8a77baae6e Merge commit 'e0ab5078a7d865f8f6fd6a6d3cbe0f380ead4a3d'
* commit 'e0ab5078a7d865f8f6fd6a6d3cbe0f380ead4a3d':
  lavc: do not force the emu edge flag

Conflicts:
	libavcodec/utils.c

There should be no such bugs in ffmpeg, but merging it anyway
as its safer.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 21:26:13 +01:00
Michael Niedermayer
a298f934ec Merge commit '025fd76e1a2623c858d8c686a73cc30980a314b0'
* commit '025fd76e1a2623c858d8c686a73cc30980a314b0':
  dxtory: change error code for unexpected slice configuration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 21:17:16 +01:00
Michael Niedermayer
9eb954b91d Merge commit 'e91a3f1bdba9b4945e42c191d2e35e9844625fb4'
* commit 'e91a3f1bdba9b4945e42c191d2e35e9844625fb4':
  dxtory: correctly handle YUV slices with average odd height

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 21:01:36 +01:00
Michael Niedermayer
57a0c5fa9c Merge commit 'ade4ecb42d2dacd18d04eb8df2afa8131e5ad653'
* commit 'ade4ecb42d2dacd18d04eb8df2afa8131e5ad653':
  dxva2: Use correct printf format strings

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 20:45:55 +01:00
Michael Niedermayer
075989c33c Merge commit '766df7ca89a2398e71182f5f2b46053e3aa9bd69'
* commit '766df7ca89a2398e71182f5f2b46053e3aa9bd69':
  dxva2: Add missing #includes

See: 9056d0c94a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 20:40:23 +01:00
Stefano Sabatini
f57baf743f lavf/segment: drop pointless variable oc from seg_write_packet() 2014-01-21 20:08:36 +01:00
Stefano Sabatini
169065fbfb lavf/segment: remove duplicated and inconsistent cleanup code in seg_write_packet()
In particular, avoid to leave around the seg->avf pointer to freed
structure, and fix crash with:
ffmpeg -f lavfi -i testsrc -c:v h264 -map 0 -f segment foo-%d.ts
2014-01-21 20:08:36 +01:00
Stefano Sabatini
a2e78161ce lavf/mpegtsenc: fix weird indent 2014-01-21 20:08:36 +01:00
Stefano Sabatini
b539a72bba examples/filtering_audio,video: drop call to avcodec_get_frame_defaults()
The avcodec_get_frame_defaults() function is deprecated and its use
doesn't seem required.
2014-01-21 20:08:36 +01:00
Michael Niedermayer
8e5e84c2a2 avformat/mov: Ignore the last frame for duration and fps calculation if it looks suspect
The used heuristic will potentially need to be finetuned
Fixes daemon404s fps.mov

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 19:48:05 +01:00
Reimar Döffinger
76421982d0 lossless_videodsp.asm: fix compilation.
Fixes these errors with nasm:
libavcodec/x86/lossless_videodsp.asm:86: error: invalid combination of opcode and operands
libavcodec/x86/lossless_videodsp.asm:88: error: invalid combination of opcode and operands
I don't know whether movd or movq was meant, but either way
maskq vs. maskd must match the mov size.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-01-21 19:46:02 +01:00
Michael Niedermayer
91c981857b rgb2rgb_template: add MMX/SSE2/AVX-optimized deinterleaveBytes
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-21 18:03:41 +01:00
Michael Niedermayer
7597e6efe4 swscale/x86/rgb2rgb: add support for AVX
This does not yet include any actual AVX code

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-21 18:01:29 +01:00
Michael Niedermayer
9047491f8b swscale: add nv12/nv21->yuv420 converter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-21 17:55:07 +01:00
Michael Niedermayer
eb01a25fe1 swscale: fix stride used in planarToNv12Wrapper()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-21 17:54:40 +01:00
Anton Khirnov
e0ab5078a7 lavc: do not force the emu edge flag
The default get_buffer2() implementation (and possibly some
user ones) does not allocate edges when this flag is set, which may
expose bugs in some decoders. Until the 10 release is out, it is safer
to remove this part.
2014-01-21 17:54:09 +01:00
Kostya Shishkov
025fd76e1a dxtory: change error code for unexpected slice configuration 2014-01-21 17:47:50 +01:00
Kostya Shishkov
e91a3f1bdb dxtory: correctly handle YUV slices with average odd height 2014-01-21 17:47:50 +01:00
Michael Niedermayer
91f4394ed3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dxva2: Log errors verbosely

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 16:02:13 +01:00
Michael Niedermayer
9056d0c94a Merge commit '5b2b23f2d69e05c5fcd1c933e383fe60e185574d'
* commit '5b2b23f2d69e05c5fcd1c933e383fe60e185574d':
  dxva2: Retry IDirectXVideoDecoder_BeginFrame()

This also adds a missig #include to prevent breaking building

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:56:03 +01:00
Michael Niedermayer
a69dd1163b Merge commit 'e22ebd04bcab7f86548794556c28ecca46d9c2ac'
* commit 'e22ebd04bcab7f86548794556c28ecca46d9c2ac':
  hevc: Bound check cu_qp_delta

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:42:51 +01:00
Michael Niedermayer
58f437c3f6 Merge commit '0d999333f96a34903448579bf13a3209deaee9da'
* commit '0d999333f96a34903448579bf13a3209deaee9da':
  hevc: Bound check slice_qp

Conflicts:
	libavcodec/hevc.c

See: aead772b58
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:38:29 +01:00
Michael Niedermayer
5b93b2722d Merge commit '838740e6420538ad45982da6b1d3aa3ae91307f5'
* commit '838740e6420538ad45982da6b1d3aa3ae91307f5':
  hevc: Prevent some integer overflows

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:31:04 +01:00
Michael Niedermayer
c7b454f7a4 Merge commit 'faf03ecba03155bb1f5416713bd01da043863b43'
* commit 'faf03ecba03155bb1f5416713bd01da043863b43':
  hevc: Remove useless clip

See: b00a8b4d19
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:29:05 +01:00
Michael Niedermayer
ee3e1951af Merge commit 'a246d06fe0dc6c2ea65e95327624b4537ff9bd0d'
* commit 'a246d06fe0dc6c2ea65e95327624b4537ff9bd0d':
  hevc: clip pixels when transquant bypass is used

See: c9fe0caf7a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:26:14 +01:00
Michael Niedermayer
29ba1cff2b Merge commit 'b37e796082b2d787aff3cd5631bb89c4fd374708'
* commit 'b37e796082b2d787aff3cd5631bb89c4fd374708':
  hevc: Use uint64 to check for tile dimensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:19:39 +01:00
Michael Niedermayer
7c4b96f55e Merge commit 'd5c15ebeaf1914ea5e3e0599d4316d7c4cf74434'
* commit 'd5c15ebeaf1914ea5e3e0599d4316d7c4cf74434':
  hevc: Fix modulo operations

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_filter.c

See: 4ced5d7780
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:12:53 +01:00
Michael Niedermayer
42a29015e1 Merge commit 'a7a07cc98ac548297b5b0628cb81280e11952e3f'
* commit 'a7a07cc98ac548297b5b0628cb81280e11952e3f':
  hevc: check that VPS referenced from SPS exists

Conflicts:
	libavcodec/hevc_ps.c

See: d66bab0a69
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 15:04:24 +01:00
Diego Biurrun
ade4ecb42d dxva2: Use correct printf format strings 2014-01-21 14:42:44 +01:00
Diego Biurrun
766df7ca89 dxva2: Add missing #includes 2014-01-21 14:42:23 +01:00
Sam Lantinga
9d80b1ae95 dxva2: Log errors verbosely
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 12:46:29 +01:00
Sam Lantinga
5b2b23f2d6 dxva2: Retry IDirectXVideoDecoder_BeginFrame()
If the function returns E_PENDING retry for a fixed number of times.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 12:46:28 +01:00
Luca Barbato
e22ebd04bc hevc: Bound check cu_qp_delta
The T-REC-H.265-2013044 page 91 states it has to be in the range
[-(26 + s->sps->qp_bd_offset / 2), (25 + s->sps->qp_bd_offset / 2)].
2014-01-21 11:59:54 +01:00
Luca Barbato
0d999333f9 hevc: Bound check slice_qp
The T-REC-H.265-2013044 page 79 states it has to be in the range
[-s->sps->qp_bd_offset, 51].

Sample-Id: 00001386-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-01-21 11:59:30 +01:00
Luca Barbato
838740e642 hevc: Prevent some integer overflows
get_ue_golomb_long() returns an unsigned.

Sample-Id: 00001541-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-01-21 11:59:18 +01:00
Guillaume Martres
faf03ecba0 hevc: Remove useless clip
The src buffer should only contain values in the interval
[0, (1 << BIT_DEPTH) - 1].

Since shift = (BIT_DEPTH - 5), src[x] >> shift must be in
the interval [0, 31], so no clip is needed.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:58:52 +01:00
Guillaume Martres
a246d06fe0 hevc: clip pixels when transquant bypass is used
The reconstructed picture should always be clipped (see section 8.6.5),
previously we did not clip coding units where
cu_transquant_bypass_flag == 1.

Sample-Id: 00001325-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:58:37 +01:00
Luca Barbato
b37e796082 hevc: Use uint64 to check for tile dimensions
And use unsigned datatypes.

Otherwise it would overflow.

Sample-Id: 00001315-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-01-21 11:57:51 +01:00
Michael Niedermayer
d5c15ebeaf hevc: Fix modulo operations
Keep qp fields within the range.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:57:43 +01:00
Michael Niedermayer
a7a07cc98a hevc: check that VPS referenced from SPS exists
This matches how its done for SPS/PPS.
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:57:36 +01:00
Stefano Sabatini
e34ad128a3 examples/muxing: reduce duration, remove wrong and misleading comment
Set duration to 10 seconds, after it was increased from 5 to 200 seconds
in 8d80f3cb87.

200 seconds will generate too much data which is annoying especially when
testing.
2014-01-21 11:52:14 +01:00
Michael Niedermayer
a459891e62 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1: Always reset numref when parsing a new frame header.

Conflicts:
	libavcodec/vc1.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 04:29:59 +01:00
Michael Niedermayer
1c7d287044 Merge commit '89564be444d24f75ea5add8b6987e414cf7aa7d5'
* commit '89564be444d24f75ea5add8b6987e414cf7aa7d5':
  rtmpproto: Send a full, absolute timestamp if it isn't monotonically growing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 04:20:50 +01:00
Michael Niedermayer
ca9d7c57f4 Merge commit '24eb3c791606fe98a1591c13a8b2ba6c342bb3b5'
* commit '24eb3c791606fe98a1591c13a8b2ba6c342bb3b5':
  rtmpproto: Avoid using uninitialized memory

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 04:13:57 +01:00
Michael Niedermayer
e9b836cd87 Merge commit 'd01e684186bc1631bc176f06b89d33c27ec0d24d'
* commit 'd01e684186bc1631bc176f06b89d33c27ec0d24d':
  mov: do not set avg_frame_rate in the demuxer

Conflicts:
	libavformat/mov.c

Not merged
The default fallback code that sets avg_frame_rate guesses the value
from a very small number of frames at the videos start and is wrong in
some cases for the file as a whole.
Now that makes it guess vs guess, but the code in mov is much faster

Also ideally the mov code should be fixed and give a exact avg_frame_rate
based on the actual cts from the index (CTTS/STTS)

If someone has sample(s) which show wrong fps values, please open a ticket
on trac or mail me if its private.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 04:10:44 +01:00
Michael Niedermayer
13e0109a5f fate: add a few tests for >8bpc ffvhuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 03:20:39 +01:00
Michael Niedermayer
3715f9e2c6 avcodec/lossless_videodsp: fix diff_int16_c on MIPS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 03:20:39 +01:00
Michael Niedermayer
83b67ca056 avcodec/x86/lossless_videodsp: Port lorens add_hfyu_left_prediction_ssse3/sse4 to 16bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 02:55:41 +01:00
Michael Niedermayer
63d2be7533 avcodec/x86/lossless_videodsp: use SPLATW in add_int16
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21 02:33:20 +01:00
Michael Niedermayer
dd2d0039b6 vc1: Always reset numref when parsing a new frame header.
Fixes an issue where the B-frame coding mode switches from interlaced
fields to interlaced frames, causing incorrect decisions in the motion
compensation code and resulting in visual artifacts.

CC: libav-stable@libav.org
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-01-20 23:22:30 +01:00
Michael Niedermayer
d9779d648e Move sub_hfyu_median_prediction_int16() to losslessviddsp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 23:02:58 +01:00
Michael Niedermayer
13c33c8e1f Move add_hfyu_median_prediction_int16() to losslessviddsp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 22:25:45 +01:00
Michael Niedermayer
883570e6b7 Move add_hfyu_left_prediction_int16 to losslessviddsp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 22:21:24 +01:00
Michael Niedermayer
f9c7b14c04 avcdoec/huffyuvenc: optimize sub_left_prediction()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 22:12:56 +01:00
Michael Niedermayer
f70d7eb20c Move add/diff_int16 to lossless_videodsp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 21:32:47 +01:00
Martin Storsjö
89564be444 rtmpproto: Send a full, absolute timestamp if it isn't monotonically growing
The normal differential timestamps can't handle negative
differences, thus send a full packet header with an absolute
timestamp in these cases.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-20 21:57:02 +02:00
Martin Storsjö
24eb3c7916 rtmpproto: Avoid using uninitialized memory
If the url ends with .flv, we stripped it but didn't initialize
rt->playpath, doing av_strlcat on an uninitialized buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-20 21:56:57 +02:00
Justin Ruggles
d01e684186 mov: do not set avg_frame_rate in the demuxer
The track duration is often not reliable or is not the duration
represented by the number of frames. In those cases, avg_frame_rate
was reported incorrectly. Removing this code falls back to the
default calculation in avformat_find_stream_info().

This is a partial revert of commit c3aeaa540.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-01-20 19:15:36 +00:00
Michael Niedermayer
78e39aa7ee Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Avoid a possible overflow when reading Nikon avi files.
  Add h263dsp dependency to mpeg1video and mpeg2video encoders.
  Fix compilation with --disable-hwaccel=mpeg1_xvmc,mpeg2_xvmc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 19:54:45 +01:00
Michael Niedermayer
eef74b2e97 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: deprecate CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width().

Conflicts:
	doc/APIchanges
	libavcodec/utils.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 18:55:22 +01:00
Michael Niedermayer
8001e9f7d1 avcodec/jpeg2000dec: fix error detection in pix_fmt_match()
Fixes out of array accesses with CODEC_FLAG_EMU_EDGE

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 18:46:38 +01:00
Michael Niedermayer
723e7b86ea avcodec/jpeg2000dec: calculate planar and pixelsize from pixel format descriptor
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 18:46:37 +01:00
Michael Niedermayer
6ba02602aa avcodec/vmnc: Check that rectangles are within the picture
Prevents out of array accesses with CODEC_FLAG_EMU_EDGE

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 18:46:37 +01:00
Michael Niedermayer
7c6cf689d8 avcodec/diracdec: allocate edges internally instead of depending on CODEC_FLAG_EMU_EDGE being not set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 17:52:55 +01:00
Michael Niedermayer
d83707c641 Merge commit '024db24912a39316b0ef0b7d793307d62da038f4'
* commit '024db24912a39316b0ef0b7d793307d62da038f4':
  mpegvideo: allocate edges when encoding.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 17:09:35 +01:00
Michael Niedermayer
d08dd32863 avcodec/mpegvideo_enc: disable direct mode in load_input_picture() for dimensions%16 != 0
We currently read a whole 16x16 block from the input at a few places

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 17:04:57 +01:00
Michael Niedermayer
ea4b477a1b Merge commit 'f7e85ee996b3886c2b13e928b83277382311af96'
* commit 'f7e85ee996b3886c2b13e928b83277382311af96':
  lavc: allow the caller to override dimensions in ff_get_buffer()

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 15:07:45 +01:00
Stefano Sabatini
9ab8f3738a examples/muxing: remove redundant {} 2014-01-20 13:10:10 +01:00
Stefano Sabatini
b933c72b5e examples/muxing: change error checks, from "ret != 0" to "ret < 0"
More consistent and more future-proof.
2014-01-20 13:10:10 +01:00
Stefano Sabatini
d72c742d47 examples/muxing: factorize write_interleave code
Also log output packet information.
2014-01-20 13:10:10 +01:00
Stefano Sabatini
5e2b8e4934 examples: add remuxing example
Show how to perform streamcopy from one container to another.
2014-01-20 13:10:10 +01:00
Anton Khirnov
93c553c71e lavc: deprecate CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width(). 2014-01-20 12:52:28 +01:00
Anton Khirnov
024db24912 mpegvideo: allocate edges when encoding.
Allocating edges will be removed from generic code, so the encoder must
handle this explicitly.
2014-01-20 12:50:14 +01:00
Anton Khirnov
f7e85ee996 lavc: allow the caller to override dimensions in ff_get_buffer()
This will be useful for allocating edges in the encoders.
2014-01-20 12:49:47 +01:00
Carl Eugen Hoyos
b7702fafb3 Avoid a possible overflow when reading Nikon avi files.
Suggested-by: Reimar
2014-01-20 11:40:35 +01:00
Carl Eugen Hoyos
9b78abae19 Add h263dsp dependency to mpeg1video and mpeg2video encoders.
Fixes compilation with:
configure --disable-everything --enable-encoder=mpeg2video --disable-asm
2014-01-20 11:25:55 +01:00
Carl Eugen Hoyos
c892621577 Fix compilation with --disable-hwaccel=mpeg1_xvmc,mpeg2_xvmc 2014-01-20 11:20:46 +01:00
Michael Niedermayer
4014b401b0 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Allow decoding of slightly broken Nikon avi files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 04:24:02 +01:00
Michael Niedermayer
a493f8541d avcodec/x86/dsp: add_int16_mmx / add_int16_sse2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 04:06:46 +01:00
Michael Niedermayer
da0684820a avcodec/dsputil/huffyuv: move diff int16 and add int16 to dsputil
This also fixes masking the bits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-20 04:06:04 +01:00
Carl Eugen Hoyos
f9c2d4d17e Allow decoding of slightly broken Nikon avi files.
Fixes ticket #3330.
2014-01-20 01:44:07 +01:00
Peter Ross
f29cdbe1b5 vp8: remove redundant "equals 1" test
mb_layout is either zero or non-zero.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 22:26:43 +01:00
wm4
1a193c438c lavf: add avformat_get_mov_video_tags() and avformat_get_mov_audio_tags()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 22:15:32 +01:00
Michael Niedermayer
fde2afd9fb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  eac3: cosmetics, re-indent.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 21:53:25 +01:00
Michael Niedermayer
10f1ee2f92 Merge commit 'ade75fb811500f3e3f284737f123938d83be728f'
* commit 'ade75fb811500f3e3f284737f123938d83be728f':
  (e)ac3: clip surround mix level indexes.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 21:46:32 +01:00
Michael Niedermayer
3a5a039ade Merge commit 'c229f571fd3c7d7b567c27c87b2bbcdaee1b0e9f'
* commit 'c229f571fd3c7d7b567c27c87b2bbcdaee1b0e9f':
  (e)ac3: parse and store the Lt/Rt and LFE mix levels.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 21:37:06 +01:00
Michael Niedermayer
c3d1215683 Merge commit '1f604f96ea70503caa642f68a85be6074a5b3f46'
* commit '1f604f96ea70503caa642f68a85be6074a5b3f46':
  ac3: set default matrix encoding modes in parse_frame_header.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 21:18:18 +01:00
Michael Niedermayer
9d13432a90 avformat/matroskadec: identify SMI as SVQ3
Fixes part of Ticket3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 20:13:38 +01:00
Tim Walker
0d43b114cc eac3: cosmetics, re-indent. 2014-01-19 19:12:58 +01:00
Tim Walker
ade75fb811 (e)ac3: clip surround mix level indexes.
Values 0-2 are reserved, 3 (-1.5dB) should be used instead.
2014-01-19 19:12:52 +01:00
Tim Walker
c229f571fd (e)ac3: parse and store the Lt/Rt and LFE mix levels. 2014-01-19 19:12:42 +01:00
Tim Walker
1f604f96ea ac3: set default matrix encoding modes in parse_frame_header.
Deduplicates some code.
2014-01-19 19:12:33 +01:00
Michael Niedermayer
48218580e1 avformat/matroskadec: support QDM2 as generated by mkvtoolnix-6.7.0
Fixes part of Ticket3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 18:48:49 +01:00
Michael Niedermayer
5800b08572 avformat/matroskadec: support SVQ3 as generated by mkvtoolnix-6.6.0
Fixes part of Ticket3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 18:48:11 +01:00
Michael Niedermayer
0500623d58 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavfi/dualinput: fix shortest option.
  lavfi/vf_tile: use av_make_q.
  lavfi/avf_concat: use av_make_q.
  lavfi/af_amerge: use av_make_q.
  lavu/rational: add syntactic sugar.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 17:48:07 +01:00
Michael Niedermayer
ad8d063f23 avcodec/mjpegdec: Dont skip picture allocation if theres no picture allocated
Fixes Ticket 3245
2014-01-19 17:30:22 +01:00
Nicolas George
2dc5980d61 lavfi/dualinput: fix shortest option.
Fix trac ticket #3315.
2014-01-19 17:13:36 +01:00
Nicolas George
77b8d4e521 lavfi/vf_tile: use av_make_q. 2014-01-19 17:13:02 +01:00
Nicolas George
c4b7ad324b lavfi/avf_concat: use av_make_q. 2014-01-19 17:12:50 +01:00
Nicolas George
bf9908c627 lavfi/af_amerge: use av_make_q. 2014-01-19 17:12:40 +01:00
Nicolas George
3532dd52c5 lavu/rational: add syntactic sugar.
Add a function to create a rational
and macros for common values.
2014-01-19 17:12:22 +01:00
Timothy Gu
5607242155 doc/muxers: add "Options", "Examples", "Syntax", etc. subsections
More consistent with codec docs. Also some minor reorganization of sentences
to fit the new document hierarchy.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-01-19 13:40:37 +01:00
Timothy Gu
093439b481 doc/encoders: add libx264rgb doc and supported pixfmts for libx264(rgb)
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-01-19 13:40:32 +01:00
Stefano Sabatini
529573591a doc/muxers/segment: fix formula for computing the segment_time_delta value 2014-01-19 12:20:10 +01:00
Stefano Sabatini
3dc494f8b9 lavfi/vidstabtransform: apply various documentation/option minor fixes
Improve consistency with the rest of the documentation.
2014-01-19 12:20:10 +01:00
Michael Niedermayer
676a395ab9 avcodec/aacdec: Dont fail if channels arent known yet
Fixes Ticket3312

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 06:20:46 +01:00
Michael Niedermayer
31e703e899 avcodec/mjpegdec: Dont treat the lack of a startcode differently from end of the bitstream
Fixes Ticket3303

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 05:03:16 +01:00
Michael Niedermayer
361e27a3d8 avcodec/mjpegdec: only run EOI emulation code when there was a scan
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 04:57:03 +01:00
Michael Niedermayer
8893f31e20 avcodec/mjpegdec: update cur_scan also for non-LS jpeg
This should make no difference but the variable will be used in a subsequent commit

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 04:57:03 +01:00
Timothy Gu
b9bedb0b28 avcodec/dnxhdenc: return meaningful return codes
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 00:09:36 +01:00
Michael Niedermayer
a52fbe5119 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: check that an IDR NAL only contains I slices

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 23:13:33 +01:00
Michael Niedermayer
2510e820c4 Merge commit '9ecabd7892ff073ae60ded3fc0a1290f5914ed5c'
* commit '9ecabd7892ff073ae60ded3fc0a1290f5914ed5c':
  h264: reset num_reorder_frames if it is invalid

Note, num_reorder_frames is not used in the failure case

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 22:59:46 +01:00
Michael Niedermayer
87e46dd5fb Merge commit '0652e024c680420d298cdf3719d0a0c030173fe3'
* commit '0652e024c680420d298cdf3719d0a0c030173fe3':
  h264: reset ref count if decoding the slice header fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 22:51:59 +01:00
Michael Niedermayer
59fb3c4be8 Merge commit '98cc9efc5f6b4dc847ed3b9b60b1c3bcd14e6791'
* commit '98cc9efc5f6b4dc847ed3b9b60b1c3bcd14e6791':
  h264: prevent two matching fields from being both a short/long ref combination

See: 92002db3eb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 22:41:49 +01:00
Michael Niedermayer
329610303a Merge commit '00dbff4c3e048b4abd01bf805725aabff0fa5ee1'
* commit '00dbff4c3e048b4abd01bf805725aabff0fa5ee1':
  h264: do not call field_end if we do not have a current picture

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 21:51:40 +01:00
Michael Niedermayer
f2cb3b36ac Merge commit '7f0e81db3c4ee6f8ce15058bafa72ce928a89f3f'
* commit '7f0e81db3c4ee6f8ce15058bafa72ce928a89f3f':
  h264: limit allowed pred modes in ff_h264_check_intra_pred_mode() to 3

Conflicts:
	libavcodec/h264.c

See: d6a33f5d20
See: 2005fddcbb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 21:44:18 +01:00
Michael Niedermayer
357a733f91 Merge commit 'd1b3fabe6945e511bb20fc9ca52b47eb952526ee'
* commit 'd1b3fabe6945e511bb20fc9ca52b47eb952526ee':
  h264: reset first_field if frame_start() fails for missing refs

See: d7599bd8e2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 21:29:37 +01:00
Michael Niedermayer
06637c9295 Merge commit '210881110d3e22cca36edeaca118b5e22c998266'
* commit '210881110d3e22cca36edeaca118b5e22c998266':
  Prepare for 10_alpha2 Release

Conflicts:
	RELEASE

Not merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 21:13:36 +01:00
Anton Khirnov
8b2e5e42bb h264: check that an IDR NAL only contains I slices
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:53:31 +01:00
Anton Khirnov
9ecabd7892 h264: reset num_reorder_frames if it is invalid
An invalid VUI is not considered a fatal error, so the SPS containing it
may still be used. Leaving an invalid value of num_reorder_frames there
can result in writing over the bounds of H264Context.delayed_pic.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:53:06 +01:00
Anton Khirnov
0652e024c6 h264: reset ref count if decoding the slice header fails
Otherwise the ER code might try to use some already freed references.

Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:51:04 +01:00
Anton Khirnov
98cc9efc5f h264: prevent two matching fields from being both a short/long ref combination
Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:42:39 +01:00
Anton Khirnov
00dbff4c3e h264: do not call field_end if we do not have a current picture
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:42:21 +01:00
Anton Khirnov
7f0e81db3c h264: limit allowed pred modes in ff_h264_check_intra_pred_mode() to 3
Higher modes are not allowed for 16x16/chroma, which is what this
function is used for. Otherwise this function would return 0 (vertical
prediction) for invalid higher modes, which could result in invalid
reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:41:59 +01:00
Anton Khirnov
d1b3fabe69 h264: reset first_field if frame_start() fails for missing refs
In this case we may not have a current frame, while first_field being
set implies we do.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:41:24 +01:00
Martin Storsjö
3dd04cbcf7 swresample: Add arm&x86 clobber tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 18:38:57 +01:00
James Almer
26800e3864 vp9/x86: rename ff_avg[48]_sse to ff_avg[48]_mmxext
pavgb is an sse integer instruction, so the mmxext flag is enough

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 17:08:25 +01:00
Reinhard Tartler
210881110d Prepare for 10_alpha2 Release 2014-01-18 10:27:27 -05:00
Michael Niedermayer
0117ba5594 avcodec/mpegvideo_enc: fix custom matrixes with jpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 06:33:45 +01:00
Loren Merritt
4d55fe7204 x86inc: speed up compilation with yasm
Work around yasm's inefficiency with handling large numbers of variables
in the global scope.
2014-01-18 01:19:16 +01:00
Michael Niedermayer
740e6042a0 ffmpeg: change ost->finished to an enum
Idea-by: ramiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:57:02 +01:00
Michael Niedermayer
d73f897669 ffmpeg: update statistics only when a packet is actually muxed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:47:39 +01:00
Michael Niedermayer
5c459504f6 ffmpeg/flush_encoders: dont mux packets once ost->finished has been set
Fixes muxing frames after av_interleaved_write_frame() failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:47:38 +01:00
Michael Niedermayer
706741e8d7 ffmpeg: properly close down muxers on av_interleaved_write_frame() failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:47:38 +01:00
Michael Niedermayer
4ff77d4451 ffmpeg: check ost->finished in check_output_constraints()
No testcase but it seems logic to stop when finished is set

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:47:37 +01:00
Michael Niedermayer
7d91fb305e ffmpeg: check ost->finished in reap_filters()
This avoids finished output streams continuing to receive frames

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:47:36 +01:00
Michael Niedermayer
ed7f1a5c20 avformat/metadata: allow ff_metadata_conv() to be called with NULL saftely
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 23:09:52 +01:00
João Bernardo
447d71b892 avfilter/vf_elbg: Fixed seed range of elbg filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 21:17:43 +01:00
Michael Niedermayer
19df5dcb47 avcodec/dnxhdenc: check that qmax is within the supported range
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 20:58:43 +01:00
Michael Niedermayer
f1caaa1c61 dnxhdenc: fix mb_rc size
Fixes out of array access with RC_VARIANCE set to 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 20:24:36 +01:00
Michael Niedermayer
ee27b11306 avformat/riff: fix demuxing of h264 INMC
Its said that there was a mpeg4 sample with the same fourcc, but noone has it
if someone finds it please tell me so i can fix detection of both.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 17:58:36 +01:00
Michael Niedermayer
68ed0b6cd1 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix libxvid crash on failing initialisation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 16:57:49 +01:00
Michael Niedermayer
f1edf881ef Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avisynth: fix setting packet properties

See: 4cb9c20136
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 16:45:43 +01:00
Michael Niedermayer
cd259cdaa9 Merge commit '104a97beaffa6348e6fd2c2d07d67c1402322bb3'
* commit '104a97beaffa6348e6fd2c2d07d67c1402322bb3':
  buffersrc: handle non-refcounted frames in av_buffersrc_add_frame() correctly

Conflicts:
	libavfilter/buffersrc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 16:38:10 +01:00
Michael Niedermayer
6e2d3ba0ee Merge commit '5ef11b8dcc054b230deb9b20493255c14a80597d'
* commit '5ef11b8dcc054b230deb9b20493255c14a80597d':
  yuv4mpeg: set average frame rate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 16:18:40 +01:00
Michael Niedermayer
206c06d96f Merge commit '2ce8bca51f7264b47027f69d50dd8e49aa2fd683'
* commit '2ce8bca51f7264b47027f69d50dd8e49aa2fd683':
  avconv: print a warning when falling back to default 25fps

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 16:11:53 +01:00
Michael Niedermayer
58770db2ae Merge commit '33018907bd07b34e0e70d5ae12097265eb3734d7'
* commit '33018907bd07b34e0e70d5ae12097265eb3734d7':
  mp3enc: allow omitting the id3v2 header with -id3v2_version 0

Conflicts:
	doc/muxers.texi
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 15:34:24 +01:00
Michael Niedermayer
5049b6a1fe Merge commit 'f9cc6883a4e5cf72cbfa21d17e1908a2a432f6bd'
* commit 'f9cc6883a4e5cf72cbfa21d17e1908a2a432f6bd':
  mp3enc: add an option for disabling the Xing frame.

Conflicts:
	doc/muxers.texi
	libavformat/mp3enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 15:23:11 +01:00
Michael Niedermayer
045d80076a Merge commit '045654f422e74be8ed09a0819d39051d67633a09'
* commit '045654f422e74be8ed09a0819d39051d67633a09':
  doxy: Document better the available AVFrame flags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 15:05:24 +01:00
Michael Niedermayer
68ebf70f66 Merge commit 'ff23c4e4935e96e62d8ff2212a1955a43add88e1'
* commit 'ff23c4e4935e96e62d8ff2212a1955a43add88e1':
  doxy: Add AVFrame to the structured modules

Conflicts:
	libavutil/frame.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 14:55:08 +01:00
Carl Eugen Hoyos
ee3fc8aa86 Fix libxvid crash on failing initialisation.
Fixes ticket #3297.
2014-01-17 14:52:55 +01:00
Michael Niedermayer
c8b99f8ad0 Merge commit '87acd33c092ab9e7d73686627e9105d99c1e4928'
* commit '87acd33c092ab9e7d73686627e9105d99c1e4928':
  aviocat: Add support for specifying the input duration

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 14:38:33 +01:00
Michael Niedermayer
9f3a555b84 Merge commit '03f2de5856ec8571fcf5f4cf6dccc713294af545'
* commit '03f2de5856ec8571fcf5f4cf6dccc713294af545':
  aviocat: Check the argv array length before reading element i+1

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 14:31:19 +01:00
James Almer
d2a7314f1e vp9/x86: add ff_vp9_loop_filter_[vh]_16_16_sse2().
Similar gains in performance as the SSSE3 version

Signed-off-by: James Almer <jamrial@gmail.com>
2014-01-17 14:16:38 +01:00
Michael Niedermayer
c9db8694a8 avisynth: fix setting packet properties
Reviewed-by: Stephen Hutchinson <qyot27@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-17 11:11:08 +01:00
Anton Khirnov
104a97beaf buffersrc: handle non-refcounted frames in av_buffersrc_add_frame() correctly 2014-01-17 10:30:45 +01:00
Anton Khirnov
5ef11b8dcc yuv4mpeg: set average frame rate 2014-01-17 10:30:45 +01:00
Anton Khirnov
2ce8bca51f avconv: print a warning when falling back to default 25fps 2014-01-17 10:30:45 +01:00
Anton Khirnov
33018907bd mp3enc: allow omitting the id3v2 header with -id3v2_version 0 2014-01-17 10:30:45 +01:00
Anton Khirnov
f9cc6883a4 mp3enc: add an option for disabling the Xing frame. 2014-01-17 10:30:45 +01:00
Luca Barbato
045654f422 doxy: Document better the available AVFrame flags 2014-01-17 10:00:18 +01:00
Luca Barbato
ff23c4e493 doxy: Add AVFrame to the structured modules 2014-01-17 10:00:18 +01:00
Martin Storsjö
87acd33c09 aviocat: Add support for specifying the input duration
This avoids the caller having to calculate the byte rate if wanting
to push a file in a rate resembling realtime.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-17 09:32:09 +02:00
Martin Storsjö
03f2de5856 aviocat: Check the argv array length before reading element i+1
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-17 09:31:53 +02:00
Michael Niedermayer
3ca7085ae2 avcodec: make "bitrate tolerance too small for bitrate" error more verbose
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 03:10:42 +01:00
Michael Niedermayer
d0004a1959 avcodec/kgv1dec: fix memleak, reintroduce lost decode_flush() call
fixes regression since 80d44190c4 and 1a0370ad94
this reverts the buggy changes in these 2 commits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 02:50:50 +01:00
Michael Niedermayer
2fd39642c9 avcodec/huffyuv: fix median prediction for >8bps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 18:33:17 +01:00
Michael Niedermayer
3d87927959 avcodec/huffyuv: add YUVA{420,422,444}P{9,10} support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 17:43:24 +01:00
Michael Niedermayer
ef0282125c avcodec/huffyuv: add YUV{420,422,444}P{9,10,12,14} support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 17:29:58 +01:00
Michael Niedermayer
b53aab1a58 libavcodec/huffyuv: >8 bit support
This adds only yuv420p10, others are trivial to add after this commit
and will be added in a subsequent commit.
Currently the implementation is not optimized, optimizations will be
added later

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 16:59:15 +01:00
Michael Niedermayer
6c004e8aad avcodec/huffyuvenc: init bps from pixel descriptor
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 16:24:24 +01:00
Michael Niedermayer
534a89478d avcodec/huffyuv: add a field that represents the number of symbols
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-16 16:24:16 +01:00
Ronald S. Bultje
8173d1ffc0 vp9/x86: 16x16 iadst_idct, idct_iadst and iadst_iadst (ssse3+avx).
Sample timings on ped1080p.webm (of the ssse3 functions):
iadst_idct:  4672 -> 1175 cycles
idct_iadst:  4736 -> 1263 cycles
iadst_iadst: 4924 -> 1438 cycles
Total decoding time changed from 6.565s to 6.413s.
2014-01-16 13:49:31 +01:00
Stefano Sabatini
a64333db5f lavfi/vidstabtransform: apply various cosmetical nits 2014-01-16 12:35:17 +01:00
Georg Martius
7012a9dc10 configure: add version check for pkg libraries, and use it for vidstab
Also fix trac ticket #3296.

Signed-off-by: Georg Martius <martius@mis.mpg.de>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-01-16 12:35:04 +01:00
Georg Martius
2727dbb053 lavfi/vidstabdetect,vidstabtransform: update to vid.stab 0.98
In particular:
* set default value for accuracy to 15 (max)
* add zoomspeed for dynamic zoom (optzoom=2)
* make camera path optimization algorithm configurable
* update optzoom documenation in code to use new localmotions calculation function commandline arguments
* add debug option in vidstabtransform

Signed-off-by: Georg Martius <martius@mis.mpg.de>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-01-16 12:23:48 +01:00
Clément Bœsch
9cc8fa63dd vp9/x86: simplify a few mc inits. 2014-01-16 07:48:27 +01:00
Carl Eugen Hoyos
fe9f575924 Warn if s16be is muxed into flv.
Players that conform to the specification can only playback such
files correctly on big-endian hardware.
2014-01-16 00:38:27 +01:00
Carl Eugen Hoyos
cb36e441de Never favour an audio stream with 0 channels in av_find_best_stream().
Fixes ticket #3311.
2014-01-16 00:36:27 +01:00
Carl Eugen Hoyos
1132937077 Do not read mkv audio bit_depth if bits_per_coded_sample is already set.
This allows decoding broken mkv files containing G.726 audio.
2014-01-15 23:37:47 +01:00
Carl Eugen Hoyos
565102dcac Do not set mkv bit_depth to av_get_bytes_per_sample() for G.726.
The value is wrong and leads to broken files.
2014-01-15 23:35:22 +01:00
Michael Niedermayer
b948ab8132 avformat/jvdec: clear packet padding after downsize
Fixes: use of uninitialized memeory
Fixes: msan_uninit-mem_7fbf26b5fefe_5981_intro.jv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 23:13:03 +01:00
Michael Niedermayer
1a01dc8343 avcodec/pgssubdec: Use av_fast_padded_malloc() for rle buffer
Fixes: use of uninitialized memeory
Fixes: msan_uninit-mem_7fa421d0e222_1765_Girl_With_The_Dragon_Tattoo_2_23_56.mkv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 23:09:22 +01:00
James Almer
b90c71cc59 fate: add WebP Exif metadata test
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 21:20:47 +01:00
Michael Niedermayer
6391dec82a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: Simplify xvmc deprecation conditional

Conflicts:
	libavcodec/x86/dsputil_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 20:41:08 +01:00
Michael Niedermayer
221dc52d03 Merge commit 'dc4d726bab59f349d366916ba01df16289e5c81f'
* commit 'dc4d726bab59f349d366916ba01df16289e5c81f':
  build: Add separate hidden config option for the intrax8 code

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 20:05:18 +01:00
Michael Niedermayer
fd334b9b6e avformat/mxfdec: fix typo in error check of mxf_edit_unit_absolute_offset()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 18:01:26 +01:00
Michael Niedermayer
949adce125 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aarch64: port neon clobber test from arm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:49:22 +01:00
Michael Niedermayer
92d07ea4b5 Merge commit 'f896bca03fc63b93851c1c14c9321c20b3cd44a6'
* commit 'f896bca03fc63b93851c1c14c9321c20b3cd44a6':
  aarch64: h264 (bi)weight NEON optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:36:37 +01:00
Michael Niedermayer
bf0470a5be Merge commit '36e3b1f2fd262028834a9d7b1eb533c1218ee6c2'
* commit '36e3b1f2fd262028834a9d7b1eb533c1218ee6c2':
  aarch64: h264 loop filter NEON optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:27:26 +01:00
Diego Biurrun
aab40bbfd5 x86: dsputil: Simplify xvmc deprecation conditional 2014-01-15 15:23:46 +01:00
Diego Biurrun
dc4d726bab build: Add separate hidden config option for the intrax8 code
This allows for slightly cleaner dependency specification.
2014-01-15 15:23:46 +01:00
Michael Niedermayer
28207bfafb Merge commit 'c65d67ef50241886b9749e88fd333c52090f70c7'
* commit 'c65d67ef50241886b9749e88fd333c52090f70c7':
  aarch64: hpeldsp NEON optimizations

Conflicts:
	libavcodec/hpeldsp.c
	libavcodec/hpeldsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:20:30 +01:00
Michael Niedermayer
19fc3c0122 Merge commit 'd5dd8c7bf0f0d77c581db3236e0d938f06fd5591'
* commit 'd5dd8c7bf0f0d77c581db3236e0d938f06fd5591':
  aarch64: h264 qpel NEON optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:13:41 +01:00
Michael Niedermayer
fb1c786a9d Merge commit '8438b3f09f6b225d0886cc385117c38eb44ca0c1'
* commit '8438b3f09f6b225d0886cc385117c38eb44ca0c1':
  aarch64: h264 idct NEON assembler optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:06:47 +01:00
Michael Niedermayer
6f001d87ff Merge commit '71617884a2a673908bd5c0f73d4f91fdca3da82a'
* commit '71617884a2a673908bd5c0f73d4f91fdca3da82a':
  aarch64: h264 chroma motion compensation NEON optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 15:00:06 +01:00
Michael Niedermayer
d5560f1fec Merge commit 'b7b17ed66e199afc7246e642bf3b35c3f8eca217'
* commit 'b7b17ed66e199afc7246e642bf3b35c3f8eca217':
  aarch64: add cpuflags support for NEON and VFP

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 14:42:49 +01:00
Michael Niedermayer
d01f8790d9 Merge commit '1e9265cd8f0821acbeca1db437be1361a3976b85'
* commit '1e9265cd8f0821acbeca1db437be1361a3976b85':
  dct-test: test ff_simple_idct_neon only on ARM for now

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 14:19:29 +01:00
Michael Niedermayer
fb37d03a87 Merge commit '2620df13104ddaa136158eb6bb1195adbf9d7692'
* commit '2620df13104ddaa136158eb6bb1195adbf9d7692':
  mov: Free an earlier allocated array if allocating a new one

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 14:13:17 +01:00
Michael Niedermayer
04cc753d07 Merge commit 'd51f09962d5b4bc999fb70c040f330dd1873212e'
* commit 'd51f09962d5b4bc999fb70c040f330dd1873212e':
  mov: Free intermediate arrays in the normal cleanup function

Conflicts:
	libavformat/mov.c

See: a6b3e6d0b4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 14:06:27 +01:00
Clé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
Janne Grunau
fe96769bed aarch64: port neon clobber test from arm 2014-01-15 12:31:07 +01:00
Janne Grunau
f896bca03f aarch64: h264 (bi)weight NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:31:07 +01:00
Janne Grunau
36e3b1f2fd aarch64: h264 loop filter NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:31:04 +01:00
Janne Grunau
c65d67ef50 aarch64: hpeldsp NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:30:24 +01:00
Janne Grunau
d5dd8c7bf0 aarch64: h264 qpel NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:17:49 +01:00
Janne Grunau
8438b3f09f aarch64: h264 idct NEON assembler optimizations
Ported from ARMv7 NEON.
2014-01-15 12:13:41 +01:00
Janne Grunau
71617884a2 aarch64: h264 chroma motion compensation NEON optimizations
Since RV40 and VC-1 use almost the same algorithm so optimizations for
those two decoders are easy to do and included.
2014-01-15 12:07:18 +01:00
Janne Grunau
b7b17ed66e aarch64: add cpuflags support for NEON and VFP
NEON and VFP are currently mandatory for all ARMv8 profiles. Both are
handled as extensions as far as cpuflags are concerned. This is
consistent with handling x86_64 which always has SSE2, but still
handles it as an extension.
2014-01-15 12:05:09 +01:00
Janne Grunau
1e9265cd8f dct-test: test ff_simple_idct_neon only on ARM for now
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-15 11:58:39 +01:00
Martin Storsjö
2620df1310 mov: Free an earlier allocated array if allocating a new one
It could probably also be considered an error if the pointer isn't
null at this point, but then we might risk rejecting some
slightly broken files that we might have handled so far.

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-15 09:57:38 +02:00
Martin Storsjö
d51f09962d mov: Free intermediate arrays in the normal cleanup function
These arrays are normally freed at the end of mov_read_trak,
but make sure they're freed in case mov_read_trak returned
early (due to errors) or in case the atoms that allocate arrays
are encountered at some other point than within a trak (which
we don't have checks against).

Sample-Id: 00000496-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-15 09:57:26 +02:00
Michael Niedermayer
53e6977c07 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aarch64: bswap inline assembly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 05:23:03 +01:00
Michael Niedermayer
9d22867613 Merge commit '032d4da8af353e32ab5c86ee3a210f6065921a4a'
* commit '032d4da8af353e32ab5c86ee3a210f6065921a4a':
  aarch64: configure: set arch dependent features

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 05:16:21 +01:00
Michael Niedermayer
2df53e0f7c Merge commit '8b4119187b62d6932e07aded11d33d3b24e1b42f'
* commit '8b4119187b62d6932e07aded11d33d3b24e1b42f':
  cabac: remove leftovers from the cabac encoder

Not merged, as we have not removed the cabac test which uses these

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 05:10:19 +01:00
Michael Niedermayer
ab296c7a9f avcodec/hevc_ps: Override max_dec_pic_buffering when its inconsistent with num_reorder_pics
Fixes Ticket3304

Alternatively max_dec_pic_buffering could be removed completely as its not used.

Based on a patch by Jose Santiago <santiago@haivision.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 04:45:42 +01:00
James Almer
8bfa5f7fab webp: fix capitalization of the word Exif
Also remove "webp:" from log messages. Using the AVCodecContext is enough.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 02:54:36 +01:00
Michael Niedermayer
785dc14654 avcodec/adpcm: fix sample count for stereo SBPRO3
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f9b9902ed90_7462_new_alaw.voc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15 01:30:38 +01:00
Michael Niedermayer
05fac0b45b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mxf: Fix potential leak in mxf_read_local_tags()

See: fbb39f44f1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 22:57:09 +01:00
Michael Niedermayer
6332146676 Merge commit '8b708f1c6b1baf3b97ed93226bf5dae1a9b13fb7'
* commit '8b708f1c6b1baf3b97ed93226bf5dae1a9b13fb7':
  mxf: Correctly support files from Pinnacle Thunder

See: a61fada380
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 22:44:46 +01:00
Michael Niedermayer
bd8788ea17 Merge commit '0d6605c7ef43f97a88950542af09078adef33b6d'
* commit '0d6605c7ef43f97a88950542af09078adef33b6d':
  mxf: Fix a possible leak of extradata

Conflicts:
	libavformat/mxfdec.c

See: b65570808c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 22:30:44 +01:00
Michael Niedermayer
e3c0fcadda Merge commit '1a4e4ad0e0c5486dcab05e54b587672a498dd7cf'
* commit '1a4e4ad0e0c5486dcab05e54b587672a498dd7cf':
  mxf: Use av_malloc_array

Conflicts:
	libavformat/mxfdec.c

See: 8ce41721a4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 22:20:52 +01:00
Janne Grunau
d0cd2a8c46 aarch64: bswap inline assembly
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-14 22:19:38 +01:00
Janne Grunau
032d4da8af aarch64: configure: set arch dependent features
Stack is always 16 byte aligned and clz, 64bit operations and unaligned
memory access are fast in aarch64 mode on ARMv8.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-14 22:19:27 +01:00
Janne Grunau
8b4119187b cabac: remove leftovers from the cabac encoder
The cabac encoder was only used by the removed cabac test.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-14 22:19:03 +01:00
Michael Niedermayer
84ca7c28ce Merge commit 'f5fbbbc022f723d3ccf99afd5d658a977b51c08a'
* commit 'f5fbbbc022f723d3ccf99afd5d658a977b51c08a':
  mxf: Drop unnecessary checks

Conflicts:
	libavformat/mxfdec.c

See: c5714097eb
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 22:03:32 +01:00
Michael Niedermayer
d938a013af Merge commit 'aa0cb16c15a5b30f78542f18e3fa65de005cf084'
* commit 'aa0cb16c15a5b30f78542f18e3fa65de005cf084':
  mxf: Fix off by one error in d10 aes3 decoding

Conflicts:
	libavformat/mxfdec.c

See: 3be02afb56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 21:54:11 +01:00
Michael Niedermayer
1171ad647e Merge commit '42f9132218ca11a8e9a3c82a175b46bca092113e'
* commit '42f9132218ca11a8e9a3c82a175b46bca092113e':
  mxf: Do not use int to check the seek position

Conflicts:
	libavformat/mxfdec.c

See: 007989c7a2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 21:37:42 +01:00
Michael Niedermayer
8721dda1c5 Merge commit 'd84bd4650b1bed882e2ac1651b4a86206aa0e363'
* commit 'd84bd4650b1bed882e2ac1651b4a86206aa0e363':
  mxf: Set AV_FIELD_PROGRESSIVE

See: def01739c1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 21:22:14 +01:00
Michael Niedermayer
afbe8c6a84 avcodec/mpegaudiodec_template: decode_frame_mp3on4: conceal errors in decoding instead of discarding data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 21:00:58 +01:00
Michael Niedermayer
2545182c29 avcodec/mpegaudiodec_template/mp3on4: check that all channels have been decoded before returnig a frame
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f80bf9a259e_5774_id5_1.mp4
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 20:56:08 +01:00
Michael Niedermayer
b2ae92110f avcodec/flashsv: check avio_read() return in mov_read_udta_string()
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f3f90a8606a_3018_Sequence_1-Apple_ProRes_422_LT.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 18:35:14 +01:00
Tomas Härdin
cc1e3ace63 mxf: Fix potential leak in mxf_read_local_tags()
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 18:23:00 +01:00
Tomas Härdin
8b708f1c6b mxf: Correctly support files from Pinnacle Thunder
Such files have IndexTableSegments which when parsed cover EditUnit
ranges like this:

 [0,1)
 [249,250)
 [249,377)
 [0,249)

where each interval is

 [IndexStartPosition, IndexStartPosition + IndexDuration)

This would be reduced to a sparse index like:

 [0,1), [249,250)

instead of the full range:

 [0,249), [249,377)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 18:13:29 +01:00
Michael Niedermayer
0d6605c7ef mxf: Fix a possible leak of extradata
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 18:13:29 +01:00
Luca Barbato
1a4e4ad0e0 mxf: Use av_malloc_array 2014-01-14 18:13:29 +01:00
Luca Barbato
f5fbbbc022 mxf: Drop unnecessary checks
av_reallocp_array does the check already.
2014-01-14 18:13:29 +01:00
Marton Balint
aa0cb16c15 mxf: Fix off by one error in d10 aes3 decoding
Without this fix the last sample was missing from the packet.
2014-01-14 18:13:22 +01:00
Luca Barbato
42f9132218 mxf: Do not use int to check the seek position
Overly large files are to be expected.

Reported-by: Jean-Baptiste Kempf <jb@videolan.org>
2014-01-14 17:29:03 +01:00
Reimar Döffinger
d84bd4650b mxf: Set AV_FIELD_PROGRESSIVE
Needed for AVC-intra

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 17:28:48 +01:00
Michael Niedermayer
b821def9f5 avcodec/proresdsp: rename CLIP_AND_BIAS to BANANA
See: IRC log
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 16:33:16 +01:00
Michael Niedermayer
cb613657ee avcodec/x86/proresdsp_init: x86 prores IDCT is bitexact again
reenable it for for bitexact mode

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 15:59:00 +01:00
Michael Niedermayer
4b0cad6596 avcodec/simple_idct_template: fix rounding of the special DC case for 10bit
MSE doesnt change for the test as the code only triggers
for very sparse matrixes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 15:58:59 +01:00
Michael Niedermayer
a7ea733b72 avcodec/simple_idct_template: fix row rounder
MSE changes from 0.04890000 to 0.02969844

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 15:58:59 +01:00
Michael Niedermayer
cca2772e16 avcodec/simple_idct_template: change the idct coefficients so that they match the x86 code
no changes in either standard deviation or PSNR is seen in any of the changed fate
cases

MSE changes from 0.05012422 to 0.04890000

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 15:58:58 +01:00
Michael Niedermayer
d9e556ebd0 avcodec/proresdsp & idct: move biasing from after the IDCT into the IDCT
This replaces 64 additions by 8 additions

MSE Changes from 0.04873672 to 0.05012422

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 15:58:57 +01:00
Michael Niedermayer
12bc33d7cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_yadif: Relicense from GPL to LGPL

Conflicts:
	LICENSE
	configure
	libavfilter/vf_yadif.c
	libavfilter/x86/vf_yadif.asm
	libavfilter/x86/vf_yadif_init.c
	libavfilter/yadif.h

See: 194ef56ba7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:59:01 +01:00
Michael Niedermayer
b148a39d55 Merge commit '46bacb5cc6169ff5e8e982495c4925467c1d8bb7'
* commit '46bacb5cc6169ff5e8e982495c4925467c1d8bb7':
  x86: Consistently use cpu flag detection macros in places that still miss it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:44:59 +01:00
Michael Niedermayer
7766c7b7a0 Merge commit '7151c5d04aed3b496c21f713dcb603e2cbdb9c49'
* commit '7151c5d04aed3b496c21f713dcb603e2cbdb9c49':
  arm: Use full filenames as multiple inclusion guards

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:38:10 +01:00
Robert Krüger
194ef56ba7 Change license of yadif from GPL to LGPL
Signed-off-by: Robert Krüger <krueger@lesspain.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:19:15 +01:00
Robert Krüger
6109399366 Revert "avfilter/yadif: Revert "lavfi: convert input/ouput list compound literals to named objects""
This reverts commit 4ef4bb4a20.

Signed-off-by: Robert Krüger <krueger@lesspain.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:19:15 +01:00
Robert Krüger
99c4abfe88 Revert "Revert "yadif: add parens around macro parameters""
This reverts commit ab00800cde.

Signed-off-by: Robert Krüger <krueger@lesspain.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:19:14 +01:00
Robert Krüger
4a38eeec38 Revert "Revert "vf_yadif: move x86 init code to x86/yadif.c""
This reverts commit 975110a85e.

Signed-off-by: Robert Krüger <krueger@lesspain.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 14:19:14 +01:00
James Almer
0b54bc24db webp: add support for EXIF metadata chunks
Based on mjpeg code by Thilo Borgmann

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 05:08:22 +01:00
Andrey Myznikov
b79bccba80 avformat/librtmp: Fix memory leak if RTMP_ConnectStream() fails
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 01:59:23 +01:00
Michael Niedermayer
05c78f345b avformat/utils: av_probe_input_buffer2 decrease difference to libav
This removes the initialization of 2 unused fields
The change was part of c1868e7ee7
but wasnt merged as the fields could still be used

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-14 01:59:11 +01:00
Robert Krüger
d8e763fda7 vf_yadif: Relicense from GPL to LGPL
All copyright holders have agreed to the relicensing.
2014-01-14 00:04:59 +01:00
Diego Biurrun
46bacb5cc6 x86: Consistently use cpu flag detection macros in places that still miss it 2014-01-14 00:04:58 +01:00
Diego Biurrun
7151c5d04a arm: Use full filenames as multiple inclusion guards 2014-01-14 00:04:52 +01:00
Michael Niedermayer
05886c9d4e avformat/utils/av_probe_input_buffer2: fix buffer passed to ffio_rewind_with_probe_data()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 22:24:30 +01:00
Michael Niedermayer
8c3b026a0e avformat/utils/av_probe_input_buffer2: fix offset check
The check could fail if avio_read() read less than requested

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 22:23:40 +01:00
Michael Niedermayer
6a2064820b avformat/utils/av_probe_input_buffer2: Fix pd.buf_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 22:14:02 +01:00
Michael Niedermayer
cdce0e8a50 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: make av_probe_input_buffer more robust

Conflicts:
	libavformat/utils.c

Not merged as it depends on previous buggy changes

See: e74cd2f470
See: ececbedaa8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 22:12:53 +01:00
Michael Niedermayer
220f0927b8 Merge commit '8b76362836f3c373c3aadc544522edcbef16dd5f'
* commit '8b76362836f3c373c3aadc544522edcbef16dd5f':
  lavf: use a fixed width type

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 21:34:42 +01:00
Michael Niedermayer
ececbedaa8 Merge commit 'c1868e7ee7b07b40a0fe15f50df89fe499a01a50'
* commit 'c1868e7ee7b07b40a0fe15f50df89fe499a01a50':
  lavf: simplify handling of offset in av_probe_input_buuffer()

Conflicts:
	libavformat/utils.c

The simplification is broken and does not work at least for ffmpeg,
thus this change is not merged.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 21:23:24 +01:00
Anton Khirnov
2115a35974 lavf: make av_probe_input_buffer more robust
Always use the actually read size as the offset instead of making
possibly invalid assumptions.

Addresses: CVE-2012-6618
2014-01-13 15:00:09 +01:00
Anton Khirnov
8b76362836 lavf: use a fixed width type
It's shorter and more consistent with the rest of the code.
2014-01-13 15:00:09 +01:00
Anton Khirnov
c1868e7ee7 lavf: simplify handling of offset in av_probe_input_buuffer() 2014-01-13 15:00:09 +01:00
Michael Niedermayer
9ace154186 Merge commit '99e20125232d40ea239a5b54d26bbfe526506114'
* commit '99e20125232d40ea239a5b54d26bbfe526506114':
  x86/arm: Add clobber tests to libavresample

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 14:36:55 +01:00
Michael Niedermayer
a067445b45 Merge commit '49b9badcaab513b65b79be371b1a9c1012e482ea'
* commit '49b9badcaab513b65b79be371b1a9c1012e482ea':
  vc1: Enable the interlaced B-frame codepath.

See: 33f2a49423
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 14:27:44 +01:00
Michael Niedermayer
58eb9b9299 Merge commit '6d98959c8a5a749592a878b9523b31eccea5d102'
* commit '6d98959c8a5a749592a878b9523b31eccea5d102':
  vc1: Add avg_no_rnd_vc1_chroma_mc4_c()

Conflicts:
	libavcodec/vc1dsp.c

See: dd6e291e40
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 14:19:15 +01:00
Michael Niedermayer
1df53ff22d Merge commit 'c798a6fedc3dd9ed3ac1fb2d95819af58705a87e'
* commit 'c798a6fedc3dd9ed3ac1fb2d95819af58705a87e':
  vc1: Factorize out chroma MC

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 14:04:58 +01:00
Martin Storsjö
99e2012523 x86/arm: Add clobber tests to libavresample
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-13 14:13:27 +02:00
Tim Walker
49b9badcaa vc1: Enable the interlaced B-frame codepath.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-13 10:23:01 +01:00
Michael Niedermayer
6d98959c8a vc1: Add avg_no_rnd_vc1_chroma_mc4_c()
Needed for proper interlaced support.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-13 10:22:58 +01:00
Luca Barbato
c798a6fedc vc1: Factorize out chroma MC 2014-01-13 10:21:53 +01:00
Michael Niedermayer
22bfb4be28 avcodec/hevc: Check entry point arrays for malloc failure
Fixes null pointer dereference
Fixes: signal_sigsegv_e1d3b6_2192_DBLK_F_VIXS_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 05:04:13 +01:00
Luca Barbato
aead772b58 hevc: Bound check slice_qp
The T-REC-H.265-2013044 page 79 states they have to be into the range
[-s->sps->qp_bd_offset, 51].

Fixes: asan_stack-oob_eae8e3_9522_WP_MAIN10_B_Toshiba_3.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 05:04:13 +01:00
Luca Barbato
48a5b15543 hevc: Reject impossible dependent tile
The tile 0 cannot depend on a previous one.
Prevent an out of array bound load in ff_hevc_cabac_init().

Fixes: asan_heap-oob_e3a924_1630_DBLK_A_MAIN10_VIXS_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Reviewed-by: Guillaume Martres <smarter@ubuntu.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 02:51:53 +01:00
Michael Niedermayer
7a8318fbb1 avcodec/huffman: raise the input capability of ff_huff_gen_len_table() from 8 to 14bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 01:30:24 +01:00
Michael Niedermayer
7b41cbac7f avcodec/huffman: extend ff_huff_gen_len_table() to allow >8bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-13 01:22:43 +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
Michael Niedermayer
4daf8bc31b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1dsp: K&R formatting cosmetics

Conflicts:
	libavcodec/vc1dsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 20:04:35 +01:00
Michael Niedermayer
6bd001d766 swscale: disable ARM code until its build failure with clang/iphone is fixed
See: "19:40 Yu Xiaolei Re: [FFmpeg-devel] [PATCH] fix build with gas-preprocessor.pl"

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 19:58:38 +01:00
Luca Barbato
a1f5164814 vc1dsp: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-01-12 18:33:25 +01:00
Michael Niedermayer
6044f161d3 Revert "swscale: disable ARM code until its build failure with clang/iphone is fixed"
This reverts commit c8c7736c10.
2014-01-12 18:01:39 +01:00
Yu Xiaolei
842b8f4ba2 fix build with gas-preprocessor.pl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 18:01:39 +01:00
Serhii Marchuk
c917cde9cc mpegts muxer, DVB subtitles encoder: common DVB subtitles payload
Improved DVB subtitles encoder to generate AVPacket.data in the same
format as generates MPEGTS demuxer + DVB subtitles parser. So now single
format of DVB subtitles data is used across all the components of FFmpeg:
only subtitles payload WITHOUT 0x20 0x00 bytes at the beginning and 0xFF
trailing byte.

Improved MPEGTS muxer to support format of DVB subtitles in
AVPacket.data described above: while muxing we add two bytes 0x20 0x00 to
the beginning of and 0xFF to the end of DVB subtitles payload.

The patch fixes DVB subtitle copy problems: tickets #2989 fully and #2024
partly.

Signed-off-by: Clément Bœsch <u@pkh.me>
2014-01-12 16:40:52 +01:00
Stefano Sabatini
d497141b85 examples/muxing: simplify video PTS setting
Rely on frame_count. Also more consistent with audio path.
2014-01-12 09:25:48 +01:00
Michael Niedermayer
2ce4543286 avcodec/dct-test: add support for C prores IDCT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 04:15:20 +01:00
Guillaume Martres
b00a8b4d19 hevc: remove useless clip in FUNC(sao_band_filter)()
The src buffer should only contain values in the interval
[0, (1 << BIT_DEPTH) - 1]. Since shift = (BIT_DEPTH - 5), src[x] >> shift
must be in the interval [0, 31], so no clip is needed.

This removes the code that was changed in 5856bca360
as the clip that was repositioned in that commit is removed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 01:03:19 +01:00
Guillaume Martres
c9fe0caf7a hevc: clip pixels when transquant bypass is used
Fixes: asan_stack-oob_eae8e3_7333_WPP_B_ericsson_MAIN10_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

This is a more proper fix than 5856bca360

The reconstructed picture should always be clipped (see section 8.6.5),
previously we did not clip coding units where
cu_transquant_bypass_flag == 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 00:49:11 +01:00
Michael Niedermayer
65801040c6 avcodec/dct-test: reproduce 4..1019 clipping when testing prores IDCT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-12 00:21:07 +01:00
Michael Niedermayer
2981f6a79f avcodec/dct-test: correct output bias of prores idct
This way the output values make sense

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 23:57:47 +01:00
Ronald S. Bultje
0065d2d520 vp9: fix mt-related hang a parser infinite loop.
Fixes trac ticket 3274.

Looked-at-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 22:35:14 +01:00
Michael Niedermayer
7dc0aba3fb avcodec/mjpegenc: use a seperate chroma matrix when luma and chroma differ
drop hardcoded TWOMATRIX code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 21:45:41 +01:00
Michael Niedermayer
b8ff951ce0 avcodec/mpegvideo_enc: init chroma matrix for mjpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 21:38:11 +01:00
Michael Niedermayer
859d74040e avcodec/mjpegenc: pass chroma quantization matrix through as well, not just luma
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 21:26:51 +01:00
Michael Niedermayer
419787a2ff Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flv: Workaround for buggy Omnia A/XE encoder

Conflicts:
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 20:56:29 +01:00
Luca Barbato
5856bca360 hevc: Clip the pixel before shifting
Prevent an out of array bound read.

Fixes: asan_stack-oob_eae8e3_7333_WPP_B_ericsson_MAIN10_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 20:33:05 +01:00
Michael Niedermayer
0999f1613b avcodec/hevc: use av_mallocz() for allocating tab_ipm
Fixes use of uninitialized memory and out of stack array read
Fixes: signal_sigsegv_ecc526_7846_WPP_C_ericsson_MAIN_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 20:30:22 +01:00
Benjamin Larsson
547f834537 flv: Workaround for buggy Omnia A/XE encoder
The Omnia A/XE encoder writes the explicit extra data incorrectly
and wrongly disables parametric stereo. Truncating the extra data
by setting the size to 2 works around this. The AAC extra data
parser will then only parse the correct parts.

Bug-id: 599
2014-01-11 13:14:20 +01:00
Michael Niedermayer
d5af400713 avcodec/alac: warn if not all channels where decoded
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 04:44:42 +01:00
Michael Niedermayer
e11983bda0 avcodec/alac: only set *got_frame_ptr when all channels have been decoded
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f8b64436530_7895_quicktime_newcodec_applelosslessaudiocodec.m4a
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 04:37:27 +01:00
Michael Niedermayer
9d5cc55f0f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: Add an option for making sure NEON registers aren't clobbered

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 03:08:10 +01:00
Clément Bœsch
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
Michael Niedermayer
6b18a6839b avcodec/wmalosslessdec: shrink output on error so no uninitialized data is returned
Fixes use of uninitialized memory
partly fixes: msan_uninit-mem_7f7834b6a530_6473_luckynight-partial.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 02:04:01 +01:00
Michael Niedermayer
ae3856dcaf avcodec/wmalosslessdec: deallocate uninitialized frame on decode_tilehdr() failure
Fixes use of uninitialized memory
partly fixes: msan_uninit-mem_7f7834b6a530_6473_luckynight-partial.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 02:03:20 +01:00
Michael Niedermayer
03fff09b32 avcodec/wmalosslessdec: Pass on error code from decode_tilehdr()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 01:58:36 +01:00
Michael Niedermayer
7cd46acdd5 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Cast signed libopenjpeg data values to unsigned before shifting.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-11 00:14:42 +01:00
Carl Eugen Hoyos
26fc6ffec4 Cast signed libopenjpeg data values to unsigned before shifting.
This avoids undefined behaviour on left-shift.

Reviewed-by: Michael Bradshaw
2014-01-11 00:03:37 +01:00
Hendrik Leppkes
23bc1351ad vdpau: restore compatibility with deprecated fields in AVVDPAUContext
Fixes ticket #3133.

Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
Tested-by: EricV
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 23:54:14 +01:00
Michael Niedermayer
a1ed1c2193 avformat/matroskadec: check generic audio deinterleaver sub_packet_size against frame_size
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f67d052a530_7517_nosound.mkv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 23:45:43 +01:00
Martin Storsjö
44a0a98f92 arm: Add an option for making sure NEON registers aren't clobbered
This is pretty much based on the same test for XMM registers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-11 00:03:00 +02:00
Michael Niedermayer
c881f46a9c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Explicitly specify the rgb555le pixel format for the mss2 rgb555 tests

See: 34e90b2e6d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 21:07:08 +01:00
Michael Niedermayer
396ddcf22d avformat/flvdec: initialize context before reading from it
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f9b8387069e_5377_flv_with_pcm_s16be_audio_track.flv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 20:59:25 +01:00
Michael Niedermayer
e2bb185e62 nut: Support XYZ12 rawvideo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 17:51:13 +01:00
Michael Niedermayer
ab9d7e0b12 swscale: fix rgb48Toxyz12() endianness
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 17:26:39 +01:00
Michael Niedermayer
e1d8ef4c21 avcodec/mss2: fix chroma dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 17:08:04 +01:00
Martin Storsjö
f8558780bb fate: Explicitly specify the rgb555le pixel format for the mss2 rgb555 tests
This fixes these fate tests on big endian.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-10 18:05:40 +02:00
Michael Niedermayer
4cb9c20136 avformat/avisynth simplify packet allocation
Reviewed-by: Stephen Hutchinson <qyot27@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 15:38:59 +01:00
Carl Eugen Hoyos
8298b54179 Fix libopenjpeg colour range adjust for 8<bpp<16.
Fixes ticket #3284.

Reviewed-by: Michael Bradshaw
2014-01-10 10:57:43 +01:00
Carl Eugen Hoyos
8b7cce441c Support signed j2k images via libopenjpeg.
Fixes ticket #3283.

Reviewed-by: Michael Bradshaw
2014-01-10 10:55:51 +01:00
Carl Eugen Hoyos
693a36b6f8 Unscaled 16bit packed RGB to planar GBR converter.
Fixes r210(rgb48) -> ffv1 (gbrp10) -> r210 roundtrip
as reported by forum user JasonCA.
2014-01-10 10:47:46 +01:00
Michael Niedermayer
34e90b2e6d fate: fix MSS2 tests on big endian
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 05:51:15 +01:00
Michael Niedermayer
c47fc0339a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avutil: do not use avcodec header in frame.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 03:58:00 +01:00
Michael Niedermayer
d9481dcd61 Merge commit 'abb5e37f64c48bba8bd0fde2bada0f7544defa24'
* commit 'abb5e37f64c48bba8bd0fde2bada0f7544defa24':
  avfilter: fix leaks on error in ff_filter_frame

Conflicts:
	libavfilter/avfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 03:46:28 +01:00
Michael Niedermayer
8788d31606 Merge commit '5655732c77f2df9c1dfbddc30cd4844390a6921f'
* commit '5655732c77f2df9c1dfbddc30cd4844390a6921f':
  avfilter: add needs_writable field to the internal AVFilterPad structure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 03:37:03 +01:00
Michael Niedermayer
48276731d6 Merge commit 'd44bd7fb27d4121512eae0ffce5e48bac25e82dc'
* commit 'd44bd7fb27d4121512eae0ffce5e48bac25e82dc':
  avfilter: add documentation for needs_writable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 03:34:52 +01:00
Michael Niedermayer
7f2367fb9e Merge commit '11d704dc94c029058ac366f85951f6728638fb9c'
* commit '11d704dc94c029058ac366f85951f6728638fb9c':
  fate: add framepack filter test

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 03:29:19 +01:00
Michael Niedermayer
402a411406 Merge commit 'a7d0e7ead95e584c4866617f046b2493066975c6'
* commit 'a7d0e7ead95e584c4866617f046b2493066975c6':
  lavfi: add framepack filter

Conflicts:
	Changelog
	doc/filters.texi
	libavfilter/allfilters.c
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 03:00:48 +01:00
Michael Niedermayer
3b8299c1e1 Merge commit 'aa69cbc9e08281db6ecb98a2c8b4f60e8b12e558'
* commit 'aa69cbc9e08281db6ecb98a2c8b4f60e8b12e558':
  flac muxer: add option to disable writing the global header

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 02:32:12 +01:00
Michael Niedermayer
4162ceea93 avformat/mxfdec: check avio_read(UID) result
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fc9ba2fd98e_82_02785736.mxf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 02:12:30 +01:00
Michael Niedermayer
7f9697aa11 avformat/nutdec: fix packet end clearing
The code was buggy, using the wrong variable, also it missed the case
where the packet become smaller due to sidedata/metadata being extracted
which left a few bytes uninitialized

Fixes use of uninitialized memory
Fixed: msan_uninit-mem_7f6abbe44530_6838_mewmew_vorbis_ssa.nut
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-10 00:34:15 +01:00
Michael Niedermayer
77d2a1ca59 avformat/rmdec: when reading audio blocks, dont leave holes when reading fails
The fate test is changed because the reference file depends on the use of
non cleared data at the very
end. Alternatively we could upload a new reference file, though that would
then have to be changed every time the handling of a truncated frame changes
or theres a change to error concealment, each time adding a new file ...

Fixes use of uninitialized memory
Fixed: msan_uninit-mem_7f3c02b81363_2787_RLG2_19.rm
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 23:50:59 +01:00
Vittorio Giovara
02b9fafcca avutil: do not use avcodec header in frame.h 2014-01-09 23:13:05 +01:00
Vittorio Giovara
abb5e37f64 avfilter: fix leaks on error in ff_filter_frame 2014-01-09 23:13:05 +01:00
Vittorio Giovara
5655732c77 avfilter: add needs_writable field to the internal AVFilterPad structure 2014-01-09 23:13:05 +01:00
Vittorio Giovara
d44bd7fb27 avfilter: add documentation for needs_writable 2014-01-09 23:13:05 +01:00
Vittorio Giovara
11d704dc94 fate: add framepack filter test 2014-01-09 23:13:05 +01:00
Vittorio Giovara
a7d0e7ead9 lavfi: add framepack filter 2014-01-09 23:13:05 +01:00
Justin Ruggles
aa69cbc9e0 flac muxer: add option to disable writing the global header
The global header is not explicitly required for playback, and
omitting it allows for simple concatenation.
2014-01-09 16:09:41 -05:00
Michael Niedermayer
ebfa1264aa avcodec/mjpegdec: allow lowres with amv
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 21:40:13 +01:00
Michael Niedermayer
7c3700cd1d avcodec/mjpegdec: use the AVFrame width/height for flipping
This makes it possible to use the code with lowres

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 21:40:13 +01:00
Michael Niedermayer
af15c17daa avcodec/mjpegdec: remove new flipping code
It stored images wrong in the user provided buffers (that is you would
end up with a wrongly flipped image if you used direct rendering).
Also it used wrong dimensions as noticed by ubitux

Enable the old code unconditionally so flipping works correctly
again.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 21:36:21 +01:00
Michael Niedermayer
268d931724 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ATRAC3+ decoder

Conflicts:
	Changelog
	configure
	libavcodec/atrac3plus.c
	libavcodec/atrac3plus.h
	libavcodec/atrac3plus_data.h
	libavcodec/atrac3plusdec.c
	libavcodec/atrac3plusdsp.c
	libavcodec/version.h

See: 2e1fb96af3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 20:58:03 +01:00
Michael Niedermayer
92b2404571 Merge commit '4c642d8d98703faf52983243098f35865e15b312'
* commit '4c642d8d98703faf52983243098f35865e15b312':
  x86: hpeldsp: Add missing av_cold attribute to init function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 20:32:53 +01:00
Michael Niedermayer
390452bab6 Merge commit 'b0be1ae792ac8bbfb0fc7b9b9cb39eaf0feb489b'
* commit 'b0be1ae792ac8bbfb0fc7b9b9cb39eaf0feb489b':
  x86: avcodec: Add a bunch of missing #includes for av_cold

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 20:24:15 +01:00
Michael Niedermayer
b4f97d4a0e Merge commit '4b48201d4d9d57a2a1ecf8504bc928aff83cb99a'
* commit '4b48201d4d9d57a2a1ecf8504bc928aff83cb99a':
  ac3tab.h: #include the correct headers

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 20:23:41 +01:00
Maxim Polijakowski
e6f0bb6527 ATRAC3+ decoder
Cleanup by Diego Biurrun.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-01-09 19:33:07 +01:00
Andre Anjos
23ffc4c70d doc/examples/muxing: Fixes frame initialization.
Fixes use of the example with encoders which use tha AVFrame w/h/pix_fmt fields
FFV1 is one of these codecs

We cannot easily workaround the not set fields in common code because the API
has AVFrame constant for the encoders.
Alternatives would be to fix the API or to duplicate the struct and fill in
missing fields. Or as is to require all user apps to set this correctly and
maybe simplify for that case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 18:12:24 +01:00
Michael Niedermayer
cab5315519 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mjpegdec: apply flipping after decoding, not before

Conflicts:
	libavcodec/mjpegdec.c
	libavcodec/mjpegdec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 15:46:31 +01:00
Michael Niedermayer
c1362ca047 Merge commit 'e588615d938f8581f0d6f3771662d08cadfc00de'
* commit 'e588615d938f8581f0d6f3771662d08cadfc00de':
  hevc: fix decoding of one PU wide files

Conflicts:
	libavcodec/hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 15:30:50 +01:00
Diego Biurrun
4c642d8d98 x86: hpeldsp: Add missing av_cold attribute to init function 2014-01-09 15:09:07 +01:00
Diego Biurrun
b0be1ae792 x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
Diego Biurrun
4b48201d4d ac3tab.h: #include the correct headers 2014-01-09 15:09:07 +01:00
Michael Niedermayer
2b318f8ca9 Merge commit 'a246af86e47044dec243db2f708cc125d608ea78'
* commit 'a246af86e47044dec243db2f708cc125d608ea78':
  FATE: add MSS2 tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 15:05:44 +01:00
Michael Niedermayer
3773738e26 Merge commit 'ca96e337169093979d7c763064ad9dae12b3108c'
* commit 'ca96e337169093979d7c763064ad9dae12b3108c':
  vp9: drop support for real (non-emulated) edges

Conflicts:
	libavcodec/vp9block.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 14:41:23 +01:00
Michael Niedermayer
7904dfed73 Merge commit 'ef8c93e2f18c624d0c266687e43ab99af7921dd3'
* commit 'ef8c93e2f18c624d0c266687e43ab99af7921dd3':
  vp8: drop support for real (non-emulated) edges

Conflicts:
	tests/fate/vpx.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 14:32:09 +01:00
Michael Niedermayer
2830f287e2 Merge commit 'ebfe622bb1ca57cecb932e42926745cba7161913'
* commit 'ebfe622bb1ca57cecb932e42926745cba7161913':
  mpegvideo: drop support for real (non-emulated) edges

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_motion.c
	libavcodec/wmv2.c

If this is slower on a major platform then it should be investigated
and potentially reverted.

See: 8fc52a5ef9
See: 3969b4b861
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 14:19:24 +01:00
Timothy Gu
bba73f5574 doc: remove encoder/muxer/sinks docs from ffplay- and ffprobe-all
ffplay and ffprobe are read-only.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2014-01-09 12:12:10 +01:00
Stefano Sabatini
094c500caf examples/muxing: set timestamps in output audio packet
In particular, fix trac ticket #3231.
2014-01-09 10:54:38 +01:00
Stefano Sabatini
8d22d37e54 examples/muxing: use av_frame_free() in place of av_free() 2014-01-09 10:51:57 +01:00
Stefano Sabatini
9abe4a10fd examples/muxing: reuse global audio frame
Simplify logic, avoid multiple unnecessary alloc/free operations.
2014-01-09 10:51:52 +01:00
Stefano Sabatini
80bca6eabe examples/muxing: honour distinction between encoder PTS timebase and stream timebase
Fix PTS set on the frame when encoding, which must be specified in the
encoder timebase or this will confuse the encoder.

When muxing the packet, the PTS/DTS generated by the encoder is then
rescaled to the stream timebase.
2014-01-09 10:51:47 +01:00
Stefano Sabatini
eadc421259 examples/muxing: set sample formats from list of codec supported sample formats
Avoid the need of tweaking, also show how to get list of supported sample
formats.
2014-01-09 10:51:41 +01:00
Anton Khirnov
d48132b7de mjpegdec: apply flipping after decoding, not before
This is simpler and removes a silly restriction on edges being present.
2014-01-09 09:56:51 +01:00
Guillaume Martres
e588615d93 hevc: fix decoding of one PU wide files
For those the block size may be larger than the source linesize (if the
edges are not allocated).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-09 09:46:13 +01:00
Anton Khirnov
a246af86e4 FATE: add MSS2 tests 2014-01-09 09:44:48 +01:00
Anton Khirnov
ca96e33716 vp9: drop support for real (non-emulated) edges
They are not measurably faster on x86, they might be somewhat faster on
other platforms due to missing emu edge SIMD, but the gain is not large
enough to justify the added complexity.
2014-01-09 09:43:59 +01:00
Anton Khirnov
ef8c93e2f1 vp8: drop support for real (non-emulated) edges
They are not measurably faster on x86, they might be somewhat faster on
other platforms due to missing emu edge SIMD, but the gain is not large
enough to justify the added complexity.
2014-01-09 09:41:24 +01:00
Anton Khirnov
ebfe622bb1 mpegvideo: drop support for real (non-emulated) edges
Several decoders disable those anyway and they are not measurably faster
on x86. They might be somewhat faster on other platforms due to missing
emu edge SIMD, but the gain is not large enough (and those decoders
relevant enough) to justify the added complexity.
2014-01-09 09:41:19 +01:00
Michael Niedermayer
fb8f5d0510 avcodec/msvideo1enc: fix SKIPS_MAX
Fixes Ticket3270

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 04:04:40 +01:00
Michael Niedermayer
c0a33c4770 avfilter: avfilter_register() that works in O(1) time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-09 00:53:04 +01:00
Lou Logan
00bef6431e doc/filters: add rotate example using degrees 2014-01-09 00:39:16 +01:00
rogerdpack
2be1e1b223 avformat/udp: debug log udp socket size
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 23:56:05 +01:00
Michael Niedermayer
48ad1f392a avcodec/libstagefright: drop dependancy on sizeof(AVFrame)
untested (noone tested within about a month) and the change is
quite trivial so should be ok. While the code before this change
is broken.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 23:56:05 +01:00
Michael Niedermayer
1a0370ad94 avcodec/kgv1dec: remove unused function and variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 20:17:23 +01:00
Michael Niedermayer
c8c7736c10 swscale: disable ARM code until its build failure with clang/iphone is fixed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 17:17:34 +01:00
Ronald S. Bultje
c6fe984f2f vp9/x86: make STORE_2X2 macro local.
Prevents this assembler warning:
libavcodec/x86/vp9itxfm.asm:1208: warning: (VP9_IDCT32_1D:309)
redefining multi-line macro `STORE_2X2'

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 14:07:15 +01:00
Michael Niedermayer
9d098ea32f avcodec/huffyuvenc: Factorize store_huffman_tables() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 14:01:22 +01:00
Michael Niedermayer
9e7b477c8c avcodec/ffv1enc: choose 1.2 by default for higher resolutions to ensure multi-threaded decodability
Reviewed-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 13:24:37 +01:00
Michael Niedermayer
dcc9009e14 Merge remote-tracking branch 'rbultje/vp9-simd'
* rbultje/vp9-simd:
  vp9: make mv bounds 32bit.
  vp9: reset contextual caches on frame size change with mt enabled.
  vp9/x86: idct_32x32_add_ssse3 sub-8x8-idct.
  vp9/x86: idct_32x32_add_ssse3 sub-16x16-idct.
  vp9/x86: idct_32x32_add_ssse3.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 13:02:53 +01:00
Stephen Hutchinson
16ae337bd8 avisynth: Use av_packet_from_data instead of av_new_packet
If the audio changes from 9eac7c4 were merged as they were, this
would cause scripts with both video+audio to fail with a lot of
audio decoding errors (the video would be fine). Scripts with
only one of either video or audio were unaffected. Additionally,
the av_packet changes in general caused seeking to break.

Using av_packet_from_data allows video+audio scripts to work as
expected, without audio decoding errors.  It also fixes seeking.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 12:54:27 +01:00
Anton Khirnov
02dd178d9d avisynth: More av_new_packet changes
These are the remaining av_packet-related bits from 9eac7c4
that didn't get merged at that time.

Changes authored by Anton Khirnov <anton@khirnov.net>, split out
from 9eac7c4 by Stephen Hutchinson <qyot27@gmail.com>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 12:54:22 +01:00
Michael Niedermayer
5d4541007f avcodec/huffyuvenc: fix -context 1 encoding
Fixes Ticket3281

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 12:39:31 +01:00
Stefano Sabatini
2358458a75 doc/muxers/image2: apply several formatting changes 2014-01-08 10:20:42 +01:00
Ramiro Polla
6a99ecb84e doc/muxers/image2: document strftime option
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2014-01-08 10:10:32 +01:00
Helmut K. C. Tessarek
db70f2d36c doc/muxers/matroska: add information to the matroska metadata language entry 2014-01-08 09:50:57 +01:00
Stefano Sabatini
e9edf001d4 doc/ffmpeg: remove documentation for removed vlang/slang options 2014-01-08 09:47:53 +01:00
Stefano Sabatini
a008deb17b doc/muxers/matroska: reformat documentation 2014-01-08 09:46:51 +01:00
Michael Niedermayer
8be8dddd13 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: Add a missing # as prefix for an immediate constant

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 05:44:56 +01:00
Michael Niedermayer
edba54630b Merge commit '5dae4872357613a0b51120b54a4c5221e0ec3f69'
* commit '5dae4872357613a0b51120b54a4c5221e0ec3f69':
  arm: Allow overriding the alignment set in the function macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 05:36:56 +01:00
Michael Niedermayer
3c00d4c5f0 Merge commit 'b7b932f5e3602bd34c3cc634b71c8bbbc0fb8dc0'
* commit 'b7b932f5e3602bd34c3cc634b71c8bbbc0fb8dc0':
  arm: Remove a leftover define for the pld instruction

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 05:21:18 +01:00
Michael Niedermayer
9ef7c0c551 Merge commit '67bb3a4e285a5871770cbaa2d78bf9024961dd0f'
* commit '67bb3a4e285a5871770cbaa2d78bf9024961dd0f':
  arm: cosmetics: Reindent the h264dsp neon init function

Conflicts:
	libavcodec/arm/h264dsp_init_arm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 05:13:25 +01:00
Michael Niedermayer
1c010fd035 avformat/mxfdec: detect loops during header parsing
The header parser uses forward and backward parsing, making the
bulletproof prevention of loops difficult, thus this simple
detection code.
If someone improves the forward/backward parsing so it cannot loop
then this commit should be reverted

Fixes Ticket3278

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-08 04:55:42 +01:00
Ronald S. Bultje
024fac5cd4 vp9: make mv bounds 32bit.
Fixes an assert in file from trac ticket 3188.
2014-01-07 20:43:35 -05:00
Ronald S. Bultje
5b0fc07819 vp9: reset contextual caches on frame size change with mt enabled.
Fixes crash/valgrind errors in trac ticket 3188 and hang in 3274.
2014-01-07 20:43:35 -05:00
Ronald S. Bultje
04a187fb2a vp9/x86: idct_32x32_add_ssse3 sub-8x8-idct.
Runtime of the full 32x32 idct goes from 2446 to 2441 cycles (intra) or
from 1425 to 1306 cycles (inter). Overall runtime is not significantly
affected.
2014-01-07 20:43:35 -05:00
Ronald S. Bultje
37b001d14d vp9/x86: idct_32x32_add_ssse3 sub-16x16-idct.
Runtime of all IDCTs together goes from 3327 to 2473 cycles (intra, i.e.
~35% faster) or from 2312 to 1448 cycles (inter, i.e. ~60% faster). Total
decode time of ped1080p.webm goes from 8.086sec to 7.974sec (1.4% faster).
2014-01-07 20:43:34 -05:00
Ronald S. Bultje
e84d14df10 vp9/x86: idct_32x32_add_ssse3.
Sub-IDCTs will follow later. ped1080.webm goes from 9.295s to 8.191s
(13.5% faster). The IDCT itself goes from 4372 (intra) or 4337 (inter)
to 403 (intra) or 329 (inter) cycles for the DC-only form, 23755 (intra)
or 23723 (inter) to 3497 (intra) or 3607 (inter) cycles for the no-DC
form, which averages from 23393 (intra) or 16612 (inter) to 3449 (intra)
or 2392 (inter) for all 32x32s together, i.e. about ~7x faster (all
tests done on ped1080p.webm).
2014-01-07 20:43:30 -05:00
Carl Eugen Hoyos
94cf4f8bac Use the h264 parser when decoding VSSH in avi.
Fixes ticket #3261 visually.

Analyzed-by: Michael Doilnitsyn
2014-01-07 22:49:05 +01:00
Werner Robitza
53df11eb73 doc/filters/equalizer: add examples for equalizer
Add two examples on the usage of the equalizer filter.
2014-01-07 21:10:53 +01:00
Lou Logan
2574d62d0d tools/qt-faststart: add -movflags +faststart note 2014-01-07 10:59:04 -09:00
Michael Niedermayer
243b9fea90 avformat/takdec: zero padding area before use
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fcecee73d71_6470_luckynight-partial.tak
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 19:48:13 +01:00
Martin Storsjö
952d3187d8 arm: Add a missing # as prefix for an immediate constant
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:30:13 +02:00
Martin Storsjö
5dae487235 arm: Allow overriding the alignment set in the function macro
The function macro always sets .align 2 before declaring the
function label (since 5c5e1ea3) and always sets the section to
.text (since 278caa6a).

The .align 5 before certain functions, added in fc252eba, were added
before .text and .align were added to the function macro and thus
became useless/unused when the function macro got them.

This restores the original intention, to align the loop entry
points.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:29:56 +02:00
Martin Storsjö
b7b932f5e3 arm: Remove a leftover define for the pld instruction
This file no longer uses the pld instruction at all, all such uses
have been split into hpeldsp_arm.S.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:29:42 +02:00
Martin Storsjö
67bb3a4e28 arm: cosmetics: Reindent the h264dsp neon init function
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:29:31 +02:00
Michael Niedermayer
8aead3ffa8 avformat/adxdec: dont return random data on EOF
Fixes use of uninitialized memory
Partly fixes; msan_uninit-mem_7fb7d24780d0_2744_R03T.CAK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 16:05:56 +01:00
Michael Niedermayer
2303b45112 avformat/segafilm: drop song and dance, this seems not to do anything anymore since a long time
Fixes use of uninitialized memory
Partly fixes; msan_uninit-mem_7fb7d24780d0_2744_R03T.CAK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 15:02:31 +01:00
Michael Niedermayer
8ca9a68f19 avcodec/flacdec: check rice_order against blocksize
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f6e13c220d0_8489_short.flac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 14:02:53 +01:00
Michael Niedermayer
77274d5c79 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  network.h: Add #endif comments to improve readability

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 13:16:55 +01:00
Michael Niedermayer
99b6357f37 rename CONFIG_FFT_FIXED_32 -> FFT_FIXED_32
This matches FFT_FLOAT

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 13:11:06 +01:00
Michael Niedermayer
7778979f6f Merge commit '794fcf79a89eca2d4e889803b2c804a0b1defbb3'
* commit '794fcf79a89eca2d4e889803b2c804a0b1defbb3':
  Rename CONFIG_FFT_FLOAT ---> FFT_FLOAT

Conflicts:
	libavcodec/fft-internal.h
	libavcodec/fft-test.c
	libavcodec/fft_fixed.c
	libavcodec/fft_float.c
	libavcodec/fft_template.c
	libavcodec/mdct_fixed.c
	libavcodec/mdct_float.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 13:10:56 +01:00
Stefano Sabatini
2503928a2f examples/decoding_encoding: fix style nits 2014-01-07 13:08:11 +01:00
Michael Niedermayer
b0517467c0 avformat/webvttdec: Dont skip over a never checked byte after -->
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f49667d83db_3396_WebVTT_capability_tester.vtt
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 04:09:19 +01:00
Michael Niedermayer
21b25537fb avcodec/mpeg4videodec: use av_fast_padded_malloc() for bitstream buffer
Fixes use of uninitialized memory with vlc (sample from ticket3277)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 01:29:38 +01:00
Michael Niedermayer
0bad50522d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libopusenc: Change default frame duration to 20 ms

See: 74906d3727
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 00:39:36 +01:00
Michael Niedermayer
ed1eb9602c avformat/rmdec: check that sub_packet_size fit in the packet for DEINT_ID_GENR
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fa8c49400d0_3923_audiosig.rm
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 00:26:33 +01:00
Michael Niedermayer
71fe97a60a avformat/nutdec: check avio_read() return code
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f2785ab8669_6838_mewmew_vorbis_ssa.nut
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-07 00:26:33 +01:00
Michael Niedermayer
523a803b73 Merge commit '9409c9bdbfd829353473ee6cc3e91c726481c069'
* commit '9409c9bdbfd829353473ee6cc3e91c726481c069':
  configure: Disable networking if winsock2.h is available but winsock functions aren't

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 22:25:34 +01:00
Michael Niedermayer
00f25e0a99 Merge commit '01d245ef4392152dbdc78a6ba4dfa0a6e8b08e6f'
* commit '01d245ef4392152dbdc78a6ba4dfa0a6e8b08e6f':
  random_seed: Rewrite the generic clock() based seed code

Conflicts:
	libavutil/random_seed.c

See: 66531c75d3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 22:12:29 +01:00
Michael Niedermayer
13f3092b38 avcodec/huffyuv: add YUVA420P, YUVA422P, YUVA444P, GBRAP, GRAY8A
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 21:19:32 +01:00
Diego Biurrun
9997cee04d network.h: Add #endif comments to improve readability 2014-01-06 21:16:54 +01:00
Michael Niedermayer
60ab582a4e avcodec/huffyuv: add GRAY8 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 20:00:25 +01:00
Michael Niedermayer
22f59a8cbe avcodec/huffyuv: add GBRP support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 19:56:52 +01:00
Diego Biurrun
794fcf79a8 Rename CONFIG_FFT_FLOAT ---> FFT_FLOAT
The define does not originate from configure, so it should not
have a name that is CONFIG_-prefixed.
2014-01-06 19:12:48 +01:00
Paul B Mahol
63debaa74c libopusenc: Change default frame duration to 20 ms
20 ms is the default in the libopus encoder, and gives better
quality than 10 ms.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-06 18:56:44 +02:00
Martin Storsjö
9409c9bdbf configure: Disable networking if winsock2.h is available but winsock functions aren't
Previously, if neither of the checks for the closesocket function
succeeded, we still kept winsock2.h and networking in general
enabled.

When targeting the WinRT API subset, the winsock2.h header is
available (making the check for it succeed, giving the impression
that winsock is available), but tests that actually try to use
such a function will fail. In this case, disable the winsock2.h
feature and networking in general, as if the winsock2.h header
test would have failed in the first place.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-06 18:55:04 +02:00
Michael Niedermayer
01d245ef43 random_seed: Rewrite the generic clock() based seed code
The new code is faster and reuses the previous state in case of
multiple calls.

The previous code could easily end up in near-infinite loops,
if the difference between two clock() calls never was larger than
1.

This makes fate-parseutils finish in finite time when run in wine,
if CryptGenRandom isn't available (which e.g. isn't available if
targeting Windows RT/metro).

Patch originally by Michael Niedermayer but with some modifications
by Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-06 18:53:58 +02:00
Michael Niedermayer
49a5912440 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Update freetype check to follow upstream

Conflicts:
	configure

Not merged, as its broken (Reported by ubitux)

See: cea5812fa7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 17:41:54 +01:00
Michael Niedermayer
d1dc0d2184 Merge commit 'd68dc3c9446e38b4d686cc0f55433c9e8d7c128b'
* commit 'd68dc3c9446e38b4d686cc0f55433c9e8d7c128b':
  drawtext: Drop pointless header

See: cea5812fa7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 17:26:40 +01:00
Michael Niedermayer
2a58d5fc0e Merge commit '6892d145a0c80249bd61ee7dd31ec851c5076bcd'
* commit '6892d145a0c80249bd61ee7dd31ec851c5076bcd':
  segafilm: fix leaks if reading the header fails

Conflicts:
	libavformat/segafilm.c

See: ca5456db7f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 17:13:09 +01:00
Michael Niedermayer
8367bc6be8 Merge commit '9cbf2d78f0a9c19129e7a70b2281a450d386c6d9'
* commit '9cbf2d78f0a9c19129e7a70b2281a450d386c6d9':
  pthread_frame: unref decoded frames on failure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 17:01:20 +01:00
Michael Niedermayer
30056fd0be Merge commit 'a03a642d5ceb5f2f7c6ebbf56ff365dfbcdb65eb'
* commit 'a03a642d5ceb5f2f7c6ebbf56ff365dfbcdb65eb':
  h264: do not use 422 functions for monochrome

See: 07abf13da4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 16:51:23 +01:00
Michael Niedermayer
64591f8f86 Merge commit '9eef9eb3014b2ed9c3ff4aac510a9f04edb555cf'
* commit '9eef9eb3014b2ed9c3ff4aac510a9f04edb555cf':
  h264: check that execute_decode_slices() is not called too many times

Conflicts:
	libavcodec/h264.c

The check is replaced by an assert() as the mb index should not ever go out
of bounds.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 16:39:38 +01:00
Michael Niedermayer
a60abb1ee0 Merge commit 'bfd26b7ce6efea594f2b99441d900419df3af638'
* commit 'bfd26b7ce6efea594f2b99441d900419df3af638':
  h264: reject mismatching luma/chroma bit depths during sps parsing

Conflicts:
	libavcodec/h264_ps.c

See: bdeb61ccc6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 16:28:55 +01:00
Michael Niedermayer
98dcbb47fa avcodec/h264: reset list_count too in case of error in ff_set_ref_count()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 16:17:45 +01:00
Michael Niedermayer
7ee8a1c562 Merge commit '9a026c72982faf20e1c8dfbe48f0b312cdea69c8'
* commit '9a026c72982faf20e1c8dfbe48f0b312cdea69c8':
  h264: rebuild the default ref list if the reference count changes

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 16:17:38 +01:00
Michael Niedermayer
a4f8a56495 Merge commit '4736d003fac30af4afd8390182f12f480ad78801'
* commit '4736d003fac30af4afd8390182f12f480ad78801':
  cavsdec: check ff_get_buffer() return value

Conflicts:
	libavcodec/cavsdec.c

See: eee8c94f50
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 15:52:44 +01:00
Michael Niedermayer
3328d105f7 Merge commit '50079a6aa93291e6dc9d9fb8d33da83f79e9311d'
* commit '50079a6aa93291e6dc9d9fb8d33da83f79e9311d':
  lavc: do not leak the internal frame if opening the codec fails

Conflicts:
	libavcodec/utils.c

See: 8b285f03f7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 15:44:11 +01:00
Michael Niedermayer
76c63bc5d8 Merge commit '3867f3718ba82ff11d3e24c6d84beb520d0b174f'
* commit '3867f3718ba82ff11d3e24c6d84beb520d0b174f':
  lavf: remove a pointless check

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 15:34:45 +01:00
Michael Niedermayer
59725592a9 Merge commit '75647dea6f7db79b409bad66a119f5c73da730f3'
* commit '75647dea6f7db79b409bad66a119f5c73da730f3':
  oggparseogm: check timing variables

See: 9ed388f598
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 15:28:24 +01:00
Michael Niedermayer
4e276b84e6 Merge commit '8058284ce09030b47512746d726fb2ad3ae8a20f'
* commit '8058284ce09030b47512746d726fb2ad3ae8a20f':
  lavc: add 422/444 YUV with alpha to align_dimensions()

Conflicts:
	libavcodec/utils.c

Only cosmetical changes happen as these formats already where in the list before

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 15:17:34 +01:00
Michael Niedermayer
b7697d29ed Merge commit '2f97094608cfd2665660f7a26a3291559b186752'
* commit '2f97094608cfd2665660f7a26a3291559b186752':
  lagarith: do not call simd functions on unaligned lines

Conflicts:
	libavcodec/lagarith.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 15:07:35 +01:00
Michael Niedermayer
e86cd37a70 Merge commit 'f4a8a0080537484154bb74e08ec76cbcbd25484b'
* commit 'f4a8a0080537484154bb74e08ec76cbcbd25484b':
  sgidec: fix buffer size check in expand_rle_row()

Conflicts:
	libavcodec/sgidec.c

See: 39c56ef921
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 14:43:04 +01:00
Michael Niedermayer
80d44190c4 Merge commit 'adb199d1bc7f86aa6b85986f40190ec17f99d34f'
* commit 'adb199d1bc7f86aa6b85986f40190ec17f99d34f':
  kgv1dec: replace forcing EMU_EDGE by a copy

Conflicts:
	libavcodec/kgv1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 14:23:01 +01:00
Michael Niedermayer
d1134ababd Merge commit 'fe80fa53bc4977ef6e8e749a9df8ca5590a09307'
* commit 'fe80fa53bc4977ef6e8e749a9df8ca5590a09307':
  4xm: replace forcing EMU_EDGE by a copy

Conflicts:
	libavcodec/4xm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 13:51:01 +01:00
Michael Niedermayer
d701f5996d Merge commit 'fffca3d278c2a2422c2f61f21c5a9d5f690d328e'
* commit 'fffca3d278c2a2422c2f61f21c5a9d5f690d328e':
  4xm: return a proper error code.

Conflicts:
	libavcodec/4xm.c

See: a5e382ad7f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 13:31:59 +01:00
Michael Niedermayer
8d86e7b495 Merge commit '060667195e6e6bc0fa63ce13c47e23aabe70d122'
* commit '060667195e6e6bc0fa63ce13c47e23aabe70d122':
  hevc: rename some HEVC conformance streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 13:24:48 +01:00
Michael Niedermayer
0db6402d91 Merge commit '98c0cd0b99254cd12f312bf6a4c24cd3ec5886b5'
* commit '98c0cd0b99254cd12f312bf6a4c24cd3ec5886b5':
  hevc: add new conformance streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 13:11:19 +01:00
Luca Barbato
e61b8fa560 configure: Update freetype check to follow upstream
The freetype tutorial suggests to use #include FT_FREETYPE_H.

Bug-Id: 616
2014-01-06 11:44:10 +01:00
Luca Barbato
d68dc3c944 drawtext: Drop pointless header
It should be forward compatible with newer freetype.
2014-01-06 11:44:10 +01:00
Anton Khirnov
6892d145a0 segafilm: fix leaks if reading the header fails
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:26:09 +01:00
Anton Khirnov
9cbf2d78f0 pthread_frame: unref decoded frames on failure
This is similar to what the non-threaded code already does.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:55 +01:00
Anton Khirnov
a03a642d5c h264: do not use 422 functions for monochrome
Fixes invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:36 +01:00
Anton Khirnov
9eef9eb301 h264: check that execute_decode_slices() is not called too many times
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:25 +01:00
Anton Khirnov
bfd26b7ce6 h264: reject mismatching luma/chroma bit depths during sps parsing
There is no point in delaying the check and it avoids bugs with a
half-initialized context.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:23:45 +01:00
Anton Khirnov
9a026c7298 h264: rebuild the default ref list if the reference count changes
Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:23:17 +01:00
Anton Khirnov
4736d003fa cavsdec: check ff_get_buffer() return value
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:22:48 +01:00
Anton Khirnov
50079a6aa9 lavc: do not leak the internal frame if opening the codec fails 2014-01-06 08:21:58 +01:00
Anton Khirnov
3867f3718b lavf: remove a pointless check
AVStream.codec is always non-NULL
2014-01-06 08:21:53 +01:00
Anton Khirnov
75647dea6f oggparseogm: check timing variables
Fixes a potential divide by zero.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:21:38 +01:00
Anton Khirnov
8058284ce0 lavc: add 422/444 YUV with alpha to align_dimensions()
Aligns frame dimensions to 16, which fixes potential invalid writes.
2014-01-06 08:20:56 +01:00
Kostya Shishkov
2f97094608 lagarith: do not call simd functions on unaligned lines
They end up overwriting past the line end.

Partially based on a patch by Michael Niedermayer <michaelni@gmx.at>

Bug-Id: vlc/9700
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-06 08:19:29 +01:00
Anton Khirnov
f4a8a00805 sgidec: fix buffer size check in expand_rle_row()
Right now it will spuriously fail if the linesize is exactly equal to
the data width.

CC:libav-stable@libav.org
2014-01-06 08:18:45 +01:00
Anton Khirnov
adb199d1bc kgv1dec: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()
implementations.

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
2014-01-06 08:15:36 +01:00
Anton Khirnov
fe80fa53bc 4xm: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()
implementations.

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
2014-01-06 08:14:14 +01:00
Anton Khirnov
fffca3d278 4xm: return a proper error code. 2014-01-06 08:13:50 +01:00
Guillaume Martres
060667195e hevc: rename some HEVC conformance streams
Some HEVC conformance streams zip on
http://wftp3.itu.int/av-arch/jctvc-site/bitstream_exchange/draft_conformance/
were updated without changing the actual stream. Rename them in FATE
accordingly to make it easier to track future stream updates.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-06 08:05:17 +01:00
Guillaume Martres
98c0cd0b99 hevc: add new conformance streams
Also remove superseded conformance streams. The conformance streams all
come from http://wftp3.itu.int/av-arch/jctvc-site/bitstream_exchange/draft_conformance/

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-06 08:03:35 +01:00
Michael Niedermayer
4ced5d7780 avcodec/hevc: Fix modulo operations
Fixes qp fields becoming out of range
Fixes: asan_static-oob_e393a3_6998_WPP_A_ericsson_MAIN10_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 04:32:37 +01:00
Michael Niedermayer
d66bab0a69 avcodec/hevc_ps: check that VPS referenced from SPS exists
This matches how its done for SPS/PPS.
An alternative to this is to check it when its used.

Fixes null pointer dereference
Fixes: signal_sigsegv_e30a43_1437_CIP_A_Panasonic_3.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 04:30:04 +01:00
Michael Niedermayer
4816d63fb7 avcodec/huffyuvdec: optimize decode_plane_bitstream(), use joint tables for new yuv formats
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 01:38:14 +01:00
Michael Niedermayer
1bef9bfc77 fate: test version 3 of ffvhuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 01:37:22 +01:00
Michael Niedermayer
27b1e63f32 avcodec/huffyuv: Support more 8bit YUV formats
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 01:02:26 +01:00
Michael Niedermayer
67999d3d12 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cmdutils: update copyright year to 2014.

Conflicts:
	cmdutils.c

See: 0b1cfc4f28
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 23:23:53 +01:00
Michael Niedermayer
d18234f319 Merge commit '7840c40445c9f52aeccba96de3d27613398bfbf2'
* commit '7840c40445c9f52aeccba96de3d27613398bfbf2':
  (e)ac3dec: set AV_FRAME_DATA_MATRIXENCODING side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 23:14:26 +01:00
Michael Niedermayer
7b3c78b5e6 Merge commit '13345fc1f86fc3615789e196d5a339c1c27c9068'
* commit '13345fc1f86fc3615789e196d5a339c1c27c9068':
  (e)ac3: parse and store the Dolby Surround, Surround EX and Headphone mode flags.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 23:06:53 +01:00
Michael Niedermayer
85b424a45e Merge commit 'e92123093dfdca0ef6608998240e2f9345d63bff'
* commit 'e92123093dfdca0ef6608998240e2f9345d63bff':
  mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 23:00:22 +01:00
Michael Niedermayer
b4107f7805 Merge commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09'
* commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09':
  mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream.

Conflicts:
	libavcodec/mlp_parser.h
	libavcodec/mlpdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:53:13 +01:00
Michael Niedermayer
ae01af2475 Merge commit '30d70e79a6b4ac7f4eb66446a9da275161ef6ea7'
* commit '30d70e79a6b4ac7f4eb66446a9da275161ef6ea7':
  dcadec: set AV_FRAME_DATA_MATRIXENCODING side data.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:34:21 +01:00
Michael Niedermayer
bc7f76377c Merge commit '6bfdb2de881372048be7fbda643417e1fd3ce93c'
* commit '6bfdb2de881372048be7fbda643417e1fd3ce93c':
  dcadec: set the output channel mode more accurately.

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:27:34 +01:00
Michael Niedermayer
4cf4da9dc5 Merge commit '5b4797a21db900b7d509660b7a4d49829089b004'
* commit '5b4797a21db900b7d509660b7a4d49829089b004':
  avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:12:41 +01:00
Michael Niedermayer
751385fe3f Merge commit '5c437fb'
* commit '5c437fb':
  lavu: Add values for various Dolby flags to the AVMatrixEncoding enum.

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 21:55:58 +01:00
Ronald S. Bultje
847072873c vp9_parse: don't use AVCodecParserContext as av_log context.
Fixes trac ticket 3273.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 21:45:24 +01:00
Johan Andersson
7ce88e5ec4 cmdutils: update copyright year to 2014.
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-05 22:39:35 +02:00
Michael Niedermayer
ee16e0cacc avfilter/vf_format: check that the format list is not empty
Fixes Ticket3210

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 20:14:03 +01:00
Federico Simoncelli
b53d6ce3fd pulse: get latency only when needed
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 18:44:18 +01:00
Federico Simoncelli
b13d6c837f pulse: set time_base as multiple of sample_rate
The stream time_base has been changed to be a multiple of the
device sample_rate. Now the frame_duration computation is simpler
and a message will warn about problematic frame_size values.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 18:44:06 +01:00
Michael Niedermayer
d04aceb7d0 avformat/nutdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 17:27:23 +01:00
Tim Walker
7840c40445 (e)ac3dec: set AV_FRAME_DATA_MATRIXENCODING side data. 2014-01-05 16:41:56 +01:00
Tim Walker
13345fc1f8 (e)ac3: parse and store the Dolby Surround, Surround EX and Headphone mode flags. 2014-01-05 16:41:56 +01:00
Tim Walker
e92123093d mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data. 2014-01-05 16:41:56 +01:00
Tim Walker
4b7f1a7ced mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream. 2014-01-05 16:41:56 +01:00
Tim Walker
30d70e79a6 dcadec: set AV_FRAME_DATA_MATRIXENCODING side data. 2014-01-05 16:41:56 +01:00
Tim Walker
6bfdb2de88 dcadec: set the output channel mode more accurately.
When downmixing 2.1 to 2-channel, if the 2.0 portion is Lt/Rt, sum-difference or dual mono, the actual output will be the same (with the LFE either mixed-in or discarded).

Also, when downmixing an arbitrary layout to 2-channel, if the bitstream contains custom downmix coefficients targeting Lt/Rt, then the output will be Lt/Rt rather than regular Stereo.
2014-01-05 16:41:56 +01:00
Tim Walker
5b4797a21d avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Includes a libavcodec utility function to update a frame's side data.
2014-01-05 16:41:56 +01:00
Tim Walker
5c437fb672 lavu: Add values for various Dolby flags to the AVMatrixEncoding enum. 2014-01-05 16:41:56 +01:00
Federico Simoncelli
b1ad931233 v4l2: setting device parameters early
Setting the v4l2 device parameters may influence video properties
such as width, height and pixel format.
This patch moves v4l2_set_parameters to be executed before fetching
the video properties, avoiding errors such as (pal vs ntsc):

 The v4l2 frame is 829440 bytes, but 691200 bytes are expected

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 14:02:06 +01:00
Michael Niedermayer
05286b6a9c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Support preprocessor macros as header names

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 13:29:44 +01:00
Diego Biurrun
52ccc4a0ec configure: Support preprocessor macros as header names
New versions of FreeType have moved the location of their API
header(s) and hide the location behind a macro.

Since the location changes between versions and no other way
to know the location exists, this workaround becomes necessary.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-05 11:48:13 +01:00
Peter Ross
f5f6e59495 avformat/matroskaenc: warn when muxing video codec not supported by format
This occurs for video codecs that have codec_tag set, but are are not listed
in ff_codec_bmp_tags (e.g. AV_CODEC_ID_BINKAUDIO, AV_CODEC_ID_IFF_ILBM).

Fixes ticket #3269.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 04:33:24 +01:00
Michael Niedermayer
70937d9708 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  sdp: Check that fmt->oformat is non-null before accessing it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 02:38:57 +01:00
Michael Niedermayer
a57da850c0 Merge commit '9d18a7d3ec09d6d933d648570643fde924aa391a'
* commit '9d18a7d3ec09d6d933d648570643fde924aa391a':
  fate: Update AAC ELD 5.1 ref for recent bugfixes.

also reenable fate-aac-er_ad6000np_44_ep0, as this commit updates the pcm
reference, so that the test works again

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 02:37:22 +01:00
Michael Niedermayer
fd53f9d985 Merge commit '7f29644108c5fbd80f160930b31b78b8704c1a49'
* commit '7f29644108c5fbd80f160930b31b78b8704c1a49':
  aac: Fix low delay windowing.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 02:18:57 +01:00
Michael Niedermayer
f200ec20b8 Merge commit '42d1b41983971da63302ac3d12091cad1f3d6324'
* commit '42d1b41983971da63302ac3d12091cad1f3d6324':
  fate: Add a test vector for AAC ELD with TNS.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 02:09:55 +01:00
Michael Niedermayer
4195ae0fd8 Merge commit 'b2212dec0f011893ec68eecaa990170fa24050d7'
* commit 'b2212dec0f011893ec68eecaa990170fa24050d7':
  aac: Fix TNS decoding for the 512 sample window family.

also temporarily disable fate-aac-er_ad6000np_44_ep0 as this commit
causes a mismatch with the reference pcm file
The test will be reenabled after all fixes and with a new pcm reference

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 02:02:02 +01:00
Michael Niedermayer
c69906151b Merge commit 'e2096e2eaa9e75663d6bf0c37d342752aa5a146d'
* commit 'e2096e2eaa9e75663d6bf0c37d342752aa5a146d':
  fate: Add a downsampled SBR testvector

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 01:13:48 +01:00
Michael Niedermayer
7546ac2fee avformat/mp3dec: fix start time in light of initial skip samples
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 01:05:16 +01:00
Stefano Sabatini
22fa50d159 lavf/file: fix help message first character casing for trunc option 2014-01-05 00:51:38 +01:00
Stefano Sabatini
92e145acbb doc/protocols/file: fix semantical reverse
Change "read" to "write" in introductory description.

Spotted-by: Alexander Strasser <eclipse7@gmx.net>
2014-01-05 00:43:51 +01:00
Stefano Sabatini
98ecbf0093 doc/protocols/file: document general file protocol URL syntax
Also drop confusing ff* tools reference about exceptions to the
file:FILENAME syntax, which is not ff* tool specific.

With various edits by Alexander Strasser <eclipse7@gmx.net>.
2014-01-05 00:43:51 +01:00
Martin Storsjö
82b9799bb2 sdp: Check that fmt->oformat is non-null before accessing it
This avoids crashes when avserver tries to create an SDP, since
d77f4af.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-05 01:33:46 +02:00
Alex Converse
9d18a7d3ec fate: Update AAC ELD 5.1 ref for recent bugfixes. 2014-01-04 14:42:38 -08:00
Alex Converse
7f29644108 aac: Fix low delay windowing.
AAC LD uses a low overlap sine window instead of a KBD window.
2014-01-04 14:42:38 -08:00
Alex Converse
42d1b41983 fate: Add a test vector for AAC ELD with TNS. 2014-01-04 14:42:38 -08:00
Alex Converse
b2212dec0f aac: Fix TNS decoding for the 512 sample window family. 2014-01-04 14:42:38 -08:00
Alex Converse
e2096e2eaa fate: Add a downsampled SBR testvector 2014-01-04 14:42:38 -08:00
Alexander Strasser
77015443a8 lavf/file: file_check: Handle file URLs that start with "file:"
Handle the URL analog to file_open, it may contain a "file:"
prefix. Skip it. Make access checks to file URLs starting
with "file:" work.

Fix part of ticket #3249.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2014-01-04 23:19:37 +01:00
Mark Harris
262451878b avformat/oggparseopus: fix segmented timestamps
Fix timestamp calculation for code 3 Ogg Opus packets with less than
2 bytes in the last segment (e.g. packet length 255 or 256).
A sample that would seek incorrectly in ffplay can be created with:
  ffmpeg -i in.wav -b:a 34k -vbr off -frame_duration 60 out.opus
and libopus 1.1

Also do not read past the end of the buffer when a packet has length 0.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 22:39:07 +01:00
Michael Niedermayer
5e0c7eab2a avformat/oggdec: dont read timestamps from EOS pages of ogm videos
Some muxers store invalid timestamps there, which breaks seeking
Fixes Ticket2739

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 18:39:42 +01:00
Michael Niedermayer
863f4c3c71 avformat/utils: fix rounding error accumulation for generated dts in compute_pkt_fields()
This only updates the case where there is no B frame reordering delay.

Tested-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 15:10:44 +01:00
Michael Niedermayer
cd7037dd7a avutil/rational: av_add_stable() test code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 15:10:14 +01:00
Michael Niedermayer
b317f9459f avutil/mathematics: add av_add_stable()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 15:10:09 +01:00
Michael Niedermayer
de5b6c736b Changelog: add nuts side & metadata support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 15:07:52 +01:00
Michael Niedermayer
8113e838a8 avformat/nut: add support for per frame side & meta data with version 4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 14:13:31 +01:00
Michael Niedermayer
d8e65e9224 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: Use the matching endfunc macro instead of the assembler directive directly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 13:19:54 +01:00
Michael Niedermayer
63ce041a7d Merge commit '2ad4ee345a4216aef3999f57dd14c56128d27a13'
* commit '2ad4ee345a4216aef3999f57dd14c56128d27a13':
  arm: Add a missing endfunc macro call

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 13:13:39 +01:00
Martin Storsjö
3348e3492d arm: Use the matching endfunc macro instead of the assembler directive directly
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-04 13:53:08 +02:00
Martin Storsjö
2ad4ee345a arm: Add a missing endfunc macro call
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-04 13:53:02 +02: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
Michael Niedermayer
be524ffc16 avcodec/rv30: put the rpr check back in init with the max vs bits bug fixed
Its usefull to know immediatly if extradata is wrong and not just when later
the decoder tries to use it.

This check was removed by: a6a2282c25
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 04:33:01 +01:00
Michael Niedermayer
d08c6e1101 avcodec/rv30: check rpr before use against maximum
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 04:17:15 +01:00
Michael Niedermayer
a881b9aa08 avcodec/rv30: cleanup rpr handling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 04:16:46 +01:00
Michael Niedermayer
958e311974 avcodec/rv10: cleanup rpr handling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 04:15:22 +01:00
Michael Niedermayer
adc09a353c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: remove disabled bfin asm

Conflicts:
	libavcodec/bfin/mpegvideo_bfin.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 03:13:54 +01:00
Michael Niedermayer
9b9f64fe31 Merge commit 'a4d0c6e0503562d4cc8f9f6d02d84d7b32583b15'
* commit 'a4d0c6e0503562d4cc8f9f6d02d84d7b32583b15':
  mpegvideo: move dct_unquantize functions up to avoid forward declarations

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 03:03:02 +01:00
Michael Niedermayer
fb17f03dad Merge commit 'aec25b1c4650944d32706bfd40eb02bbd5587303'
* commit 'aec25b1c4650944d32706bfd40eb02bbd5587303':
  mpegvideo: split the encoding-only parts of frame_start() into a separate function

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:56:29 +01:00
Michael Niedermayer
ad5e4e0f94 Merge commit 'b318106fae65149356934fc72feafef3272fd4ea'
* commit 'b318106fae65149356934fc72feafef3272fd4ea':
  FATE: add a test for the lavr mixing case fixed in fc6a3ef40d

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:47:34 +01:00
Michael Niedermayer
cf867517f1 Merge commit 'a8cc88b1a23dc1515f27cfa98af16a273c539091'
* commit 'a8cc88b1a23dc1515f27cfa98af16a273c539091':
  tests/Makefile: allow FILTER* to be called with lists of filter names

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:35:11 +01:00
Michael Niedermayer
781fd58838 Merge commit 'cc976a75dffa148d655b52604331679ff669e8a2'
* commit 'cc976a75dffa148d655b52604331679ff669e8a2':
  audio_mix: print (SKIP) instead of 0.0 for matrix columns removed along with output zeroing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:30:07 +01:00
Michael Niedermayer
4b8bc6d2b0 Merge commit 'fc6a3ef40d34ce8443ae57c2452f3f273d7d4891'
* commit 'fc6a3ef40d34ce8443ae57c2452f3f273d7d4891':
  audio_mix: fix zeroing output channels in certain cases

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:16:33 +01:00
Michael Niedermayer
fadec4f6db Merge commit '3d95d27376e59de14f984e7a22a52e066d85df35'
* commit '3d95d27376e59de14f984e7a22a52e066d85df35':
  audio_mix: initialize the data pointers to NULL

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:11:33 +01:00
Michael Niedermayer
8e6af036b9 Merge commit '58312b2472d3a44d7458865c459d59ef2e02bf1a'
* commit '58312b2472d3a44d7458865c459d59ef2e02bf1a':
  h264: reset data_partitioning if decoding the slice header for NAL_DPA fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:06:21 +01:00
Michael Niedermayer
508229adb9 Merge commit 'e89aa4bf56e5b5c45f569eb12733519789e057da'
* commit 'e89aa4bf56e5b5c45f569eb12733519789e057da':
  lzw: switch to bytestream2

Conflicts:
	libavcodec/lzw.c

See: 44c4170c52
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 02:00:07 +01:00
Michael Niedermayer
4a055f91be Merge commit '1b5d065ca722eb8028c7a08e054b6da3419faf5d'
* commit '1b5d065ca722eb8028c7a08e054b6da3419faf5d':
  pmpdec: check that there is at least one audio packet.

Conflicts:
	libavformat/pmpdec.c

See: 8b1cd25ca7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 01:36:06 +01:00
Michael Niedermayer
3929c17405 Merge commit '94a417acc05cc5151b473abc0bf51fad26f8c5a0'
* commit '94a417acc05cc5151b473abc0bf51fad26f8c5a0':
  mathematics: remove asserts from av_rescale_rnd()

Conflicts:
	libavutil/mathematics.c

The asserts are left in place for now as no code checks the return
value, but we sure can change this if application developers
prefer

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 01:27:59 +01:00
Michael Niedermayer
405b1ef898 Merge commit '24057c83207d6ea8bfd824155ac37be8a33dfd0c'
* commit '24057c83207d6ea8bfd824155ac37be8a33dfd0c':
  eacmv: check the framerate before setting it.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 01:07:05 +01:00
Michael Niedermayer
c13e73c25b Merge commit '5569146d48f06564e8fa393424782cceed510916'
* commit '5569146d48f06564e8fa393424782cceed510916':
  adx: check that the offset is not negative

See: 30bce34b67
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 01:00:19 +01:00
Michael Niedermayer
3cf1503beb Merge commit 'a6a2282c25abe43e352010a7c3fbc92994c0bc1c'
* commit 'a6a2282c25abe43e352010a7c3fbc92994c0bc1c':
  rv30: fix extradata size check.

Conflicts:
	libavcodec/rv30.c

See: 09c5f990bc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 00:39:51 +01:00
Michael Niedermayer
532b93b516 Merge commit 'feded990e3ef9af4a0b827d5b6d8fe86f0b94942'
* commit 'feded990e3ef9af4a0b827d5b6d8fe86f0b94942':
  mpegvideo: set reference/pict_type on generated reference frames

Conflicts:
	libavcodec/mpegvideo.c

The picture type is left at P type as it was explicitly set before

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-04 00:16:58 +01:00
Michael Niedermayer
5047849584 avformat/utils: fix order of buffers in timestamp update code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 23:27:28 +01:00
Michael Niedermayer
950fb8acb4 avcodec/mpegvideo: fix ac/dc_val and coded_block table sizes
With interlaced vc1 it was possible that accesses could happen outside these
tables before this.

Regression since 017e234c20
Reproduced with a sample from Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Fixes (again) : 480i30__codec_WVC1__mode_2__framerate_29.970__type_2__preproc_17.SIGFPE.bfa.390.wmv
No releases are affected by this

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 20:35:55 +01:00
Michael Niedermayer
9c5260e73a avutil/mathematics: fix 2 typos in the doxy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 18:01:49 +01:00
Stefano Sabatini
d392619a46 doc/faq: remove "-profile option fails when encoding H.264 video with AAC audio" entry
The error was fixed in commit ce9bd30379
more than one year ago, and does not affect all the currently supported
versions.

In particular, fix trac issue #1535.
2014-01-03 17:05:44 +01:00
Stefano Sabatini
d52dd2430b doc/ffserver: mention how to access streams through RTSP 2014-01-03 17:03:43 +01:00
Anton Khirnov
a3a55645f0 mpegvideo: remove disabled bfin asm
It has been disabled as 'broken' over 3 years ago in b716a792
2014-01-03 16:54:24 +01:00
Anton Khirnov
a4d0c6e050 mpegvideo: move dct_unquantize functions up to avoid forward declarations 2014-01-03 16:54:00 +01:00
Anton Khirnov
aec25b1c46 mpegvideo: split the encoding-only parts of frame_start() into a separate function
This introduces some code duplication. However, much of it should go
away once the decoders stop using MpegEncContext.
2014-01-03 16:52:49 +01:00
Anton Khirnov
b318106fae FATE: add a test for the lavr mixing case fixed in fc6a3ef40d 2014-01-03 16:44:03 +01:00
Anton Khirnov
a8cc88b1a2 tests/Makefile: allow FILTER* to be called with lists of filter names 2014-01-03 16:43:41 +01:00
Anton Khirnov
cc976a75df audio_mix: print (SKIP) instead of 0.0 for matrix columns removed along with output zeroing 2014-01-03 16:43:25 +01:00
Anton Khirnov
fc6a3ef40d audio_mix: fix zeroing output channels in certain cases
Specifically, when the corresponding input channel exists and its matrix
column is all-zero (which is necessary for zeroing the output), the
matrix column must be removed from the matrix.

This is not done currently, so the mixing code would end up using
uninitialized pointers from stack.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-01-03 16:42:46 +01:00
Anton Khirnov
3d95d27376 audio_mix: initialize the data pointers to NULL
This should make it easier to catch problems where some of those
pointers are used uninitialized, since reading from NULL should always
crash, while random numbers from stack can turn out to be valid
pointers, so random memory may be silently overwritten.
2014-01-03 16:42:23 +01:00
Anton Khirnov
58312b2472 h264: reset data_partitioning if decoding the slice header for NAL_DPA fails
If it was set before then we can end up trying to decode a slice without
a valid slice header, which can lead to invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:42:02 +01:00
Anton Khirnov
e89aa4bf56 lzw: switch to bytestream2
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:40:43 +01:00
Anton Khirnov
1b5d065ca7 pmpdec: check that there is at least one audio packet.
The code cannot handle there being none, but that should not happen for
valid files.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:40:22 +01:00
Anton Khirnov
94a417acc0 mathematics: remove asserts from av_rescale_rnd()
It is a public function, it must not assert on its parameters.
2014-01-03 16:39:30 +01:00
Anton Khirnov
24057c8320 eacmv: check the framerate before setting it.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:39:09 +01:00
Anton Khirnov
5569146d48 adx: check that the offset is not negative
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:38:36 +01:00
Anton Khirnov
a6a2282c25 rv30: fix extradata size check.
It has been checking the number of bits in the offset instead of the
actual offset.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:38:33 +01:00
Anton Khirnov
feded990e3 mpegvideo: set reference/pict_type on generated reference frames
Otherwise the generic code will unref them, which can then result in
last_picture_ptr == current_picture_ptr, which causes deadlocks at least
in rv40.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:36:43 +01:00
Michael Niedermayer
0389f9abe9 avcodec/avcodec: document that some video decoders do not support linesizes changing between frames.
Omission in the documentation found by: Sebastian Dröge
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 15:35:11 +01:00
Peter Ross
57cfcbf347 avformat/bink: display audio track ids
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 14:11:07 +01:00
Anssi Hannula
6275d93d1f MAINTAINERS: add myself for spdif* and hls.c
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-01-03 15:05:48 +02:00
Anssi Hannula
9371d70bad avformat/hls: decouple playlists from variants
Not all "sub-playlists" are variant playlists (containing the same
content with a different bitrate, etc) in the current version of the HLS
specification. They can now also be alternative renditions, containing
e.g. alternative audio tracks etc.

Decouple playlists from variants to prepare for handling the new
features.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-01-03 15:05:48 +02:00
Anssi Hannula
857841c1b6 avformat/http: always allow no-op seek
This also allows checking stream position as per ffurl_seek() doxy.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-01-03 15:05:48 +02:00
Peter Ross
0588acaffa avformat/bink: seek to first frame
Some rare bink files include unused bytes between the frame table index
and first frame data.

Fixes ticket #3266.

This patch has also been tested with non-seekable protocols.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 13:50:11 +01:00
James Almer
2c759d7018 matroskadec: Export the MuxingApp element value as metadata
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 04:09:00 +01:00
Michael Niedermayer
8a1714ad85 ffmpeg: do not fail when options are routed to libavformat and libavcodec and only one can be used
Fixes setting frame_size for pulse demuxer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-03 02:24:27 +01:00
Dale Curtis
4feca2214a h264: Clear ERContext.cur_pic when unref'ing current picture.
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
2014-01-02 23:49:06 +01:00
Michael Niedermayer
2e59ffbb79 avcodec/mace: check buffer size
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f9d2775e090_8782_surge-2-8-MAC3.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 22:07:09 +01:00
Michael Niedermayer
c925e960e8 mp3on4: fail when the header check fails
It seems the code assumed that when one out of multiple blocks fail
some span of time is correct, its not, its some channels
that are correct

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f44a03ba3ce_5692_id5_1.mp4
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 18:53:41 +01:00
Michael Niedermayer
6433b393ba avcodec/aacps: fix number of bands used with ipd/opd
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f861d16355f_1664_File1_fixed.aac
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 17:48:01 +01:00
Michael Niedermayer
4843227b2c avcodec/iff: ensure that runs with insufficient input dont leave uninitialized bytes in the output
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fa0dea15eae_8988_test.iff
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 14:52:02 +01:00
Peter Ross
7340718d1c avformat/bink: recognize bink2 files
Support demuxing of audio streams in bink2 files.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 12:15:07 +01:00
Stefano Sabatini
e3868cc588 doc/muxers/hls: change "can used" to "can be used"
Spotted-by: Alexander Strasser <eclipse7@gmx.net>
2014-01-02 09:37:43 +01:00
James Almer
8feaa83d47 fate: Add OggVP8 demux test
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 02:31:24 +01:00
Maxim Poliakovski
4663a550f5 atrac3plus: Add forgotten initialization of an internal struct
This patch also fixes trac ticket 3254.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 02:25:37 +01:00
Michael Niedermayer
0f378d8632 doc/doxy: remove unused files
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 02:17:59 +01:00
Michael Niedermayer
9c29967ae6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Makefile: add html template files to the doxygen deps

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-02 02:02:21 +01:00
Stefano Sabatini
0aa325457d doc/muxers/segment: clarify ambiguos reference
Replace "The segmenter muxer" with "This muxer". The "segmenter muxer"
was never defined before, and thus it is a slightly ambiguous term.
2014-01-02 00:52:01 +01:00
Stefano Sabatini
6cceef2ff9 doc/muxers/segment: reference hls muxer 2014-01-02 00:51:56 +01:00
Stefano Sabatini
f6707f0689 doc/muxers/hls: extend documentation
In particular, reference segment muxer and clarify difference between
segment filename number and playlist sequence number.

Should fix trac ticket #2601.
2014-01-02 00:48:36 +01:00
Michael Niedermayer
e9a26dc5bf avformat/mux: fix "no tag found" check in validate_codec_tag()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 22:30:31 +01:00
Michael Niedermayer
06bb1de1c7 avformat/vqf: check avio_read()s return value more completely
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f180a523a71_5052_esvorbei_extd.vqf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 16:53:54 +01:00
Michael Niedermayer
e6364ea26d avcodec/vqavideo: use av_mallocz() for decode_buffer()
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f62eaba897d_595_4D6EFA92.VQA
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 15:35:34 +01:00
Anton Khirnov
58f0d164de Makefile: add html template files to the doxygen deps 2014-01-01 13:07:57 +01:00
Stefano Sabatini
0b1cfc4f28 configure: bump year number 2013 -> 2014
Happy new year!
2014-01-01 13:04:07 +01:00
Stefano Sabatini
8c8c3ca91e doc/protocols/rtsp, lavf/rtsp: fix/extend options documentation 2014-01-01 12:57:15 +01:00
Werner Robitza
704c217ff3 ffplay: add documentation for "s" key
With various edits suggested by Stefano Sabatini and Clément Bœsch.
2014-01-01 12:57:15 +01:00
Michael Niedermayer
07728a1115 avcodec/binkaudio: clear padding area of packet_buffer
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f0dba198b34_2970_Snd0a3a2ad4.dee
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 03:31:09 +01:00
Hendrik Leppkes
3d8eeea620 dxva2_vc1: signal skipped p frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:57:56 +01:00
Hendrik Leppkes
c5562890c7 dxva2_vc1: fix signaling of intensity compensation values
lumscale/lumshift don't get reset back to their default values if
intensity compensation is not active, and a wrong signaling here can
cause playback issues.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:57:51 +01:00
Hendrik Leppkes
719f1ce5fb vc1: set chromaformat = 1 for simple/main profile
1 is the only valid value for VC-1/WMV3, and setting it here makes sure
no invalid value is send to a hw accelerator, for example.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:57:44 +01:00
Hendrik Leppkes
e1facd3f81 dxva2_vc1: set PQUANT as described by the 2010 spec update
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:57:33 +01:00
Hendrik Leppkes
3021d1be9e dxva2_vc1: set bfraction in slice info according to spec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:57:23 +01:00
Hendrik Leppkes
8abdf46b38 dxva2_vc1: set refdist value according to spec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:57:16 +01:00
Michael Niedermayer
46b06bd894 avcodec/mpegvideo_enc: implement frame skip score normalization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-01 02:46:39 +01:00
Michael Niedermayer
21a2fb7e05 avcodec/hevc: clear HEVClc when its deallocated in hevc_decode_free()
Fixes reading freed memory
Fixes: asan_heap-uaf_1abf8ef_3987_NUT_A_ericsson_4.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-31 15:19:59 +01:00
Michael Niedermayer
97fca5492a avformat/version: bump micro for addition of internal field to AVStream
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-31 14:16:27 +01:00
Michael Niedermayer
4bfcedb33f avformat: dont run update_initial_duration() twice
This should avoid floods of first_dts not matching debug messages

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-31 14:13:51 +01:00
Reimar Döffinger
cbeaf67888 Avoid using empty macro arguments.
These are not supported by all compilers (gcc 2.95 but also older SPARC
compilers, see gcc bug #33304 for example), and there is no real need for them.
One use of this feature remains in libavdevice/v4l2.c which can't be
replaced quite as easily.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-31 12:19:59 +01:00
Anssi Hannula
7fdf245ab9 avformat/id3v2: allow ID3 parsing without AVFormatContext
Add ff_id3v2_read_dict() for parsing without AVFormatContext, but
instead with AVIOContext and AVDictionary.

AVFormatContext is still used for logging, if available.

Chapter parsing is the only non-logging functionality that actually
needs AVFormatContext, and AFAICS it should be modified to write the
data to ID3v2ExtraMeta first, from where it can be implanted to
AVFormatContext by a separate function (like it is done with
read_apic() and ff_id3v2_parse_apic()). That is outside the scope of
this patch, though.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2013-12-31 05:15:19 +02:00
Anssi Hannula
d52882faef avformat/http: allow the caller to select a request range
Add AVOptions for setting the initial offset and the ending offset, so
they can be used for setting an appropriate Range header.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2013-12-31 03:18:53 +02:00
Anssi Hannula
53765ae33b avformat/id3v2: parse ID3 Private frames as extra metadata
They are used in HLS.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2013-12-31 03:18:53 +02:00
Anssi Hannula
4a4437c0fb avformat/mpegts: demux timed ID3 metadata
Used in some HLS streams ("Timed Metadata for HTTP Live Streaming").

This is just ID3 tags at arbitrary stream positions, but I still added
"timed" to the codec name to avoid confusion with regular non-stream ID3
tags.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2013-12-31 03:13:12 +02:00
Michael Niedermayer
61d43a2651 avcodec/lagarith: check and propagate return value from init_get_bits8()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 14:27:33 +01:00
Michael Niedermayer
afd1245433 avcodec/lagarith: use init_get_bits8()
Suggested-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 13:49:49 +01:00
Michael Niedermayer
6f1b296771 avcodec/lagarith: reenable buggy lag_decode_zero_run_line()
This is to prevent regressions in case the old code was able to partly
decode frames (no way to say without a testcase)
Add a memset to prevent use of uninitialized memory until we have a
testcase and can test/fix it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 13:47:34 +01:00
Michael Niedermayer
905bac2cd3 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavc/mjpegenc: use proper error codes.
  lavc/mjpegenc: check av_frame_alloc() failure.
  lavc/libopenjpegenc: check av_frame_alloc() failure.
  lavc/diracdec: check av_frame_alloc() failure.
  lavc/utils: check av_frame_alloc() failure.
  ffprobe: check av_frame_alloc() failure.
  lavc/ffwavesynth: fix dependency sizeof(AVFrame).

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 13:29:51 +01:00
Reimar Döffinger
3cc0f335fe af_aresample: remove only use of array compound literals with non-const initializers in FFmpeg.
Some older compilers might have particular trouble with them,
and they do not really seem worth it to me.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-30 12:38:04 +01:00
Reimar Döffinger
311f61e1b4 configure: check that pthreads is compatible with compiler.
In particular the mutex initialization for example won't actually
compile with e.g. gcc 2.95.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-30 12:38:04 +01:00
Reimar Döffinger
b74eead27b compat: provide va_copy for old gcc versions.
Since we have this compat/va_copy.h header already we might just as well make
use of it for more than one compiler.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-30 12:38:03 +01:00
Michael Niedermayer
8ccc58bb7d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavu: Move preprocessor macros in a separate file

Conflicts:
	libavutil/avutil.h
	libavutil/utils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 11:23:32 +01:00
Nicolas George
2ebaadf35c lavc/mjpegenc: use proper error codes. 2013-12-30 10:58:02 +01:00
Nicolas George
19a2d101ac lavc/mjpegenc: check av_frame_alloc() failure. 2013-12-30 10:58:02 +01:00
Nicolas George
97af2faaba lavc/libopenjpegenc: check av_frame_alloc() failure. 2013-12-30 10:58:02 +01:00
Nicolas George
a91394f4de lavc/diracdec: check av_frame_alloc() failure. 2013-12-30 10:58:01 +01:00
Nicolas George
38004051b5 lavc/utils: check av_frame_alloc() failure. 2013-12-30 10:58:01 +01:00
Nicolas George
a55692a960 ffprobe: check av_frame_alloc() failure. 2013-12-30 10:58:01 +01:00
Nicolas George
bcfcb8b852 lavc/ffwavesynth: fix dependency sizeof(AVFrame). 2013-12-30 10:58:01 +01:00
James Almer
d890db5f53 oggdec: add support for VP8 demuxing
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 04:05:27 +01:00
Michael Niedermayer
4aa9c91508 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix condition for transparency warning in xsub encoder.
  Allow hiding the banner.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 02:12:53 +01:00
Michael Niedermayer
e80aa47abf avcodec/lagarith: fix init_get_bits() size in lag_decode_arith_plane()
untested due to lack of sample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 00:55:32 +01:00
Michael Niedermayer
3410122c68 avcodec/lagarith: fix src/src_size for esc_count < 8
untested due to lack of sample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 00:55:32 +01:00
Michael Niedermayer
100a54da52 avcodec/lagarith: disable lag_decode_zero_run_line() and ask for a sample
The code seems to have never been tested
fixing it should be quite easy but needs a sample/testcase

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f9a862dfabf_413_2889_assassin_OL.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-30 00:52:24 +01:00
Carl Eugen Hoyos
de40905f55 Fix condition for transparency warning in xsub encoder. 2013-12-29 23:18:10 +01:00
Carl Eugen Hoyos
b4c89c90ff Allow hiding the banner.
Fixes ticket #3246.
2013-12-29 22:57:20 +01:00
Luca Barbato
9a4c10e3af lavu: Move preprocessor macros in a separate file
And remove all the circular inclusions of avutil.h while at it.
2013-12-29 22:52:04 +01:00
Michael Niedermayer
9ed640015b Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavd/xv: report if no adaptor present.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 21:11:29 +01:00
Michael Niedermayer
12fc0c89dc Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavf/libssh: improve authentication
  lavf/libssh: fix file mode

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 21:11:03 +01:00
Nicolas George
fde219cfa8 lavd/xv: report if no adaptor present. 2013-12-29 19:51:42 +01:00
Michael Niedermayer
828ac6d1b5 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: do not wait for the picture allocation to finish on exit
  ffplay: remove two unneeded av_free_packet calls
  ffplay: remove some unneded av_frame_unref calls
  ffplay: remove unneeded avcodec_get_frame_defaults
  ffplay: use precalculated frame size and bytes per sec values
  ffplay: precalculate audio output frame size and byte per sec

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 16:32:46 +01:00
Lukasz Marek
8ba77dfbc2 lavf/libssh: improve authentication
- Add authentication using keys
- Provide better message on fail

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-12-29 16:24:07 +01:00
Lukasz Marek
247a8fa70f lavf/libssh: fix file mode
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-12-29 16:24:07 +01:00
Michael Niedermayer
1acd029f40 avformat/wc3movie: Check strings before printing.
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f7812ca062f_2812_SC_32_part.MVE
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 14:06:47 +01:00
Michael Niedermayer
8a0d446ad6 avformat/siff: check avio_read() return value before returning packet
Fixes: /ld/michael/ffmpeg_uninit/ffmpeg_uninit/done/msan_uninit-mem_7fb3e0fa86e9_1980_INTRO_B.VB
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 13:25:13 +01:00
Marton Balint
ac7b4bfdeb ffplay: do not wait for the picture allocation to finish on exit
When SDL could not allocate a YUV overlay or open a window, the video thread
got locked up because it waited for the allocation to finish forever.

Reported-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-29 13:19:19 +01:00
Marton Balint
e90aef9195 ffplay: remove two unneeded av_free_packet calls
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-29 13:19:19 +01:00
Marton Balint
e3ff6938b5 ffplay: remove some unneded av_frame_unref calls
av_buffersrc_add_frame implicitly unreferences the added frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-29 13:19:19 +01:00
Marton Balint
379caaa778 ffplay: remove unneeded avcodec_get_frame_defaults
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-29 13:19:19 +01:00
Marton Balint
e37d4920c1 ffplay: use precalculated frame size and bytes per sec values
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-29 13:19:19 +01:00
Marton Balint
e98cd24a89 ffplay: precalculate audio output frame size and byte per sec
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-29 13:19:18 +01:00
Timothy Gu
f4c62b9f64 doc/encoders: add wavpackenc doc
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-29 13:10:11 +01:00
Timothy Gu
eb38e684b4 doc/encoders: reformat libwavpack documentation
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-29 13:10:11 +01:00
Lukasz Marek
ff8def2131 configure: remove git url check
This part of the script doesn't check if git command is available and produce error if not.
It is 2 years since address changed and it is more reasonable to remove it than fix it.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 12:48:13 +01:00
Michael Niedermayer
5c74fa6ce0 avcodec/alsdec: skip cases where the master channel equals the current channel
Fixes: msan_uninit-mem_7f6c73c97cf9_3571_als_04_2ch48k16b.mp4
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 12:35:57 +01:00
Michael Niedermayer
74a9c92840 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: namespace the decode function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 11:37:42 +01:00
Michael Niedermayer
fead24141a avcodec/vda_h264_dec: avoid declaring int in for arguments
Some compilers dont support that

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 03:16:28 +01:00
Michael Niedermayer
3477874abd Merge branch 'master' of https://github.com/upsuper/ffmpeg-vdadec
* 'master' of https://github.com/upsuper/ffmpeg-vdadec:
  avcodec/vda_h264_dec: add format check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 03:16:09 +01:00
Maxim Poliakovski
54bb30bae2 omadec: Disable "Unsupported codec ATRAC3+" warning
Also add a list of supported decoders.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 01:11:21 +01:00
Maxim Poliakovski
2e1fb96af3 ATRAC+ decoder
Cleanup by Diego Biurrun.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 01:11:16 +01:00
Michael Niedermayer
8e90c7285d avformat/iff: check avio_read() return in get_metadata()
Fixes: msan_uninit-mem_7f9539ba8461_4760_dasboot_in_compressed
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-29 00:58:13 +01:00
Michael Niedermayer
55fa898969 avcodec/jpeg2000dec: zero Jpeg2000QuantStyle structure before use in get_qcd()
Fixes: msan_uninit-mem_7f50b84aac30_6823_mjp2.mov
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-28 22:08:49 +01:00
Michael Niedermayer
833501657b avutil/frame: increase padding for frames
This matches what avcodec uses

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-28 19:10:45 +01:00
Michael Niedermayer
6ea05ef278 avcodec/h264: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-28 18:19:46 +01:00
Yu Xiaolei
af228a9f9f swscale/arm: fix build error with --enable-shared
use string comparison in assembler derivatives to prevents assembler from treating names in test expressions as imported symbols

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-28 14:28:25 +01:00
Michael Niedermayer
8efde6d80c avformat/mov: clear padding area in mov_read_extradata()
Fixes: msan_uninit-mem_7f58816b71e3_7025_mov_svq3___svq3_weird_prediction2.mov
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-28 03:42:40 +01:00
Michael Niedermayer
4156df59f5 avformat/mov: check avio_read() return in mov_read_dref()
Fixes: msan_uninit-mem_7f4960453a02_7264_mr_cork_jpeg.mov
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 23:37:17 +01:00
Michael Niedermayer
c09bb235bf Merge remote-tracking branch 'rbultje/vp9-simd'
* rbultje/vp9-simd:
  vp9/x86: 16px MC functions (64bit only).
  vp9/x86: 16x16 sub-IDCT for top-left 8x8 subblock (eob <= 38).

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 13:57:38 +01:00
Michael Niedermayer
7ad6515fd4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doxy: Update the css to have a flat style

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 13:24:00 +01:00
Michael Niedermayer
8102cdfc04 Merge commit '9ace13db77a22fd59c217175596a95775c5d25aa'
* commit '9ace13db77a22fd59c217175596a95775c5d25aa':
  doxy: Fix link in badge color

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 12:59:35 +01:00
Stefano Sabatini
8ea1501878 doc/protocols: fix level of udp examples subsection 2013-12-27 12:43:35 +01:00
Michael Niedermayer
25b243759c Merge commit 'b83d1ee3b41cfe8357836e2582104db2f3364cb0'
* commit 'b83d1ee3b41cfe8357836e2582104db2f3364cb0':
  avutil: Move library version related macros to version.h

Conflicts:
	libavcodec/version.h
	libavresample/version.h
	libavutil/avutil.h
	libavutil/utils.c

See: 183117fed7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 12:01:23 +01:00
Michael Niedermayer
e630ca5111 avformat/mpegts: check sl.timestamp_len
Fixes: msan_uninit-mem_7ff4404547ba_4883_dmbts.ts
Fixes assertion failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 11:53:53 +01:00
Luca Barbato
4d2bb28931 h264: namespace the decode function
Make much easier debugging.
2013-12-27 07:48:13 +01:00
Ronald S. Bultje
18175baa54 vp9/x86: 16px MC functions (64bit only).
Cycle counts for large MCs (old -> new on ped1080p.webm, mx!=0&&my!=0):
16x8:    876 ->   870  (0.7%)
16x16:  1444 ->  1435  (0.7%)
16x32:  2784 ->  2748  (1.3%)
32x16:  2455 ->  2349  (4.5%)
32x32:  4641 ->  4084 (13.6%)
32x64:  9200 ->  7834 (17.4%)
64x32:  8980 ->  7197 (24.8%)
64x64: 17330 -> 13796 (25.6%)
Total decoding time goes from 9.326sec to 9.182sec.
2013-12-26 21:05:10 -05:00
Michael Niedermayer
f55bc96a54 avcodec/pcm-dvd: reset last header on errors
Fixes: msan_uninit-mem_7f4fff975a2c_4957_dvd_audio_sample.aob
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 03:00:52 +01:00
Luca Barbato
1ab91c7d4a doxy: Update the css to have a flat style
Drop references to the doxy image gradients and style a the code blocks to
keep the whitespace and indent properly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-27 02:53:25 +01:00
Luca Barbato
9ace13db77 doxy: Fix link in badge color
Green on blue was not exactly optimal.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-27 02:53:25 +01:00
Michael Niedermayer
42b6805cc1 avcodec/huffyuvdec: clear remainder of the array on end of input in decode_422_bitstream()
Fixes: msan_uninit-mem_7f909423efcd_9923_yuv_predmed.avi
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-27 00:26:57 +01:00
Diego Biurrun
b83d1ee3b4 avutil: Move library version related macros to version.h
This is a more sensible place for these macros.
2013-12-26 19:05:22 +01:00
Michael Niedermayer
0875a9e4fc avformat/oggparseogm: check input size before reading t
Makes no difference in outcome, as the checks on t have no effect
when t was uninitialized

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fa2b7b5d97c_3598_anOTHERS_DixX_in_Ogg_Sample.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 16:56:10 +01:00
Michael Niedermayer
6359872877 avformat/oggparseogm: check input size before reading parameters
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f4d0daad100_3599_anOTHERS_DixX_in_Ogg_Sample.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 16:19:01 +01:00
Michael Niedermayer
d164ad3298 avcodec/ivi_common: use av_mallocz() to allocate mbs array
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f1dffa1c016_8245_sasha.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 14:53:39 +01:00
Xidorn Quan
344d6db978 avcodec/vda_h264_dec: add format check
Fix crash when using this decoder for unsupported format on some version
of OS X.
2013-12-27 00:06:11 +11:00
Michael Niedermayer
14bec7dcf8 avcodec/wnv1: clear padding area of rbuf
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7faa48586020_2145_MAILTEST.AVI
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 13:53:15 +01:00
Clément Bœsch
ec73bd1fe8 avfilter/avectorscope: fix {} mistake in alloc check. 2013-12-26 13:49:15 +01:00
Ronald S. Bultje
0d9375fc90 vp9/x86: 16x16 sub-IDCT for top-left 8x8 subblock (eob <= 38).
Sub8x8 speed (w/o dc-only case) goes from ~750 cycles (inter) or ~735
cycles (intra) to ~415 cycles (inter) or ~430 cycles (intra). Average
overall 16x16 idct speed goes from ~635 cycles (inter) or ~720 cycles
(intra) to ~415 cycles (inter) or ~545 (intra) - all measurements done
using ped1080p.webm.
2013-12-26 07:40:25 -05:00
Michael Niedermayer
6b36f577a1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mms: Remove non-utf8 characters

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 13:24:43 +01:00
Stefano Sabatini
cd355d4d59 lavfi/abuffersrc: use AV_OPT_TYPE_SAMPLE_FMT for sample_fmt option
Simplify/extend syntax.
2013-12-26 11:35:27 +01:00
Stefano Sabatini
334e2e2363 lavu,lavc,lswr: do not hardcode AV_SAMPLE_FMT_NB value when setting sample format max value
The constant may change in libavutil but the library may be compiled
against an older version, thus rejecting a value which is otherwise
supported by the new libavutil.

INT_MAX is used here to denote the max allowed value for a sample format.

The opt-test code is changed to provide a valid reference example.
2013-12-26 11:35:27 +01:00
Stefano Sabatini
3b8c7da7a3 lavu,lavfi,lavd: do not hardcode AV_PIX_FMT_NB value when setting pixel format max value
The constant may change in libavutil but the library may be compiled
against an older version, thus rejecting a value which is otherwise
supported by the new libavutil.

INT_MAX is used here to denote the max allowed value for a pixel format.

The opt-test code is changed to provide a valid reference example.
2013-12-26 11:35:27 +01:00
Stefano Sabatini
55f046be11 lavu/opt: apply range checks also when setting format string value
Previously when setting a pixel/sample format as a string range checks
were not performed. This is consistent with the
av_opt_set_pixel/sample_fmt() interface.
2013-12-26 11:35:27 +01:00
Stefano Sabatini
1575a96b3a lavu/opt: factorize setting of format values from string
Simplify incoming patch.
2013-12-26 11:35:27 +01:00
Stefano Sabatini
e2b54464c6 lavu/opt: fix range check logic in set_format()
In particular, allow to reject undefined values. Previously the code
was only accepting values in the range -1 .. NB_FORMATS-1.
2013-12-26 11:35:26 +01:00
Luca Barbato
1716b4c7b8 mms: Remove non-utf8 characters
Certain softwares get badly confused.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-26 06:07:35 +01:00
Michael Niedermayer
165f96cd2d avformat/rmdec: move packet allocation down
Fixes memleak
Fixes: msan_uninit-mem_7fc5d73327d4_6192_kuerti.ra
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 04:16:10 +01:00
Michael Niedermayer
4e394a98f2 avformat/rmdec: check against mismatching int4 interleaver parameters which would leave uninitialized holes
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f9cf38857c0_4582_coop.ra
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 04:02:40 +01:00
Michael Niedermayer
1486ed0815 avcodec/shorten: clear bitstream buffer
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f3ca95606fb_6393_luckynight-partial.shn
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 01:35:00 +01:00
Michael Niedermayer
f371a4a57d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Explicitly disable w32threads if the test for it fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 00:12:49 +01:00
Michael Niedermayer
26ce266e3d avformat/mpc8: check avio_read() return in mpc8_parse_seektable()
no sample / testcase known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-26 00:11:49 +01:00
Michael Niedermayer
e33b6ccfa7 avformat/mpc8: clear buffer padding area
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fa6a48cd1d5_8853_sv8_notags.mpc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 23:54:27 +01:00
Carl Eugen Hoyos
e079661d23 ffmpeg_opt: Fix -target vcd
The removed line makes no sense and doesnt work

fixes ticket #3239

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 21:31:19 +01:00
Michael Niedermayer
565f786d1d ffprobe: Dont clear AVFrame between uses.
The old API required this clearing in the past, the new API does not
require it.

Fixes memleak
Regression introduced by 37a749012a

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 20:53:37 +01:00
Stefano Sabatini
baeda2bf92 lavfi/volume: fix NULL reference in filter_frame()
Fix crash.
2013-12-25 19:13:23 +01:00
Stefano Sabatini
1b4da43ce0 doc/protocols/tcp,lavf/tcp: apply minor fixes to TCP protocol documentation 2013-12-25 18:42:26 +01:00
Stefano Sabatini
702d9a23b3 lavf/tcp: honor listen option value in a tag
Consistent with what is done in udp.c, allow to explicitly disable listen
with listen=0.
2013-12-25 18:42:20 +01:00
Stefano Sabatini
b80cf46090 doc/protocols/udp,lavf/udp: apply minor documentation fixes 2013-12-25 18:42:15 +01:00
Stefano Sabatini
ca0d8e839e lavfi/volume: extend volume logging 2013-12-25 18:26:34 +01:00
Stefano Sabatini
97aa554634 lavfi/volume: implement process_command() callback, with the volume command
Address trac ticket #2868.
2013-12-25 18:25:53 +01:00
Stefano Sabatini
7619a87cc8 lavfi/volume: support volume expression and per-frame expression evaluation
The eval mode allows to evaluate the expression per-frame or just at
init.

In particular, address ticket #3234.
2013-12-25 18:25:04 +01:00
Michael Niedermayer
239a0543a6 avformat/westwood_vqa: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:30 +01:00
Michael Niedermayer
6fb29535fd avformat/vc1test: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:30 +01:00
Michael Niedermayer
2e2cab6e4f avformat/rsd: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:30 +01:00
Michael Niedermayer
fd335aa326 avformat/rmdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
61883a2e89 avformat/rl2: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
0b9ca70243 avformat/riffdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
bb6101d4de avformat/nuv: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
0cedc6c066 avformat/nutdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
6f7daae043 avformat/mpc8: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
a1ce41c9a4 avformat/mpc: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
3e5a7dffe8 avformat/mov: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
28cc7062c8 avformat/isom: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
215759a925 avformat/idcin: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:38:29 +01:00
Michael Niedermayer
d8d5258bb7 avformat/flvdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:24:09 +01:00
Michael Niedermayer
c633aeba45 avformat/ffmdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:23:55 +01:00
Michael Niedermayer
773f2a563f avformat/cafdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:23:39 +01:00
Michael Niedermayer
5ce04c54dd avformat/bink: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:23:25 +01:00
Michael Niedermayer
e93bc3efbf avformat/avidec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:23:13 +01:00
Michael Niedermayer
f04fc386dc avformat/apetag: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:22:49 +01:00
Michael Niedermayer
9e5fa1e55d avformat/apc: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:14:32 +01:00
Michael Niedermayer
b59740eae5 avformat/aiffdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:14:32 +01:00
Michael Niedermayer
482b2042cd avformat/adxdec: use ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:14:32 +01:00
Michael Niedermayer
ee4e805093 avformat: add ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 17:14:32 +01:00
Michael Niedermayer
ac480cb58d avformat/isom: free extradata on failure to read it
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f607d80f661_6965_mov00003.mqv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 16:25:17 +01:00
Michael Niedermayer
2a5fb0b13e avformat/mov: check avio_read return in mov_read_dvc1()
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f46d5199ee1_9456_vc1-wmapro.ism
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 14:55:28 +01:00
James Almer
0d944ee343 matroskadec: Fix bug when parsing realaudio codec parameters
flavor can be 0.

This fixes tract ticket #3214

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 13:36:25 +01:00
Diego Biurrun
bd0fba8797 configure: Explicitly disable w32threads if the test for it fails
This avoids false positive enabling of w32threads if explicitly
requested on the command line, but dependencies are missing.
2013-12-25 13:00:49 +01:00
Michael Niedermayer
2c0b246b5b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  error.h: Do not circularly depend on avutil.h

See: 7c2bb79f3b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 12:39:23 +01:00
Michael Niedermayer
459db51271 avformat/ape: free packet on avio_read() failure
Fixes memleak
Fixes: msan_uninit-mem_7fcc198b365b_8417_sh3.ape
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 02:32:40 +01:00
Michael Niedermayer
804ea14b35 avformat/nut: add minor_version field with version>=4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 02:03:19 +01:00
Michael Niedermayer
6aa50374bf avformat/nut: store version in the context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 02:03:08 +01:00
Michael Niedermayer
3cfa310c5d avformat/ape: zero seektable&bittable and warn when they where only partially filled
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fcc198b365b_8417_sh3.ape
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 02:01:46 +01:00
Michael Niedermayer
f07ca542e3 avcodec/vmdav: return the amount of data that has been unpacked from lz_unpack() (as well as errors)
and setup the bytestream buffer size accordingly

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fdcc513cd45_229_12.vmd
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-25 00:44:58 +01:00
Diego Biurrun
d06ca2040c error.h: Do not circularly depend on avutil.h 2013-12-25 00:12:05 +01:00
Michael Niedermayer
bb9f55163f avcodec/eatgv: use av_mallocz() for frame_buffer
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fbf6159587b_2571_ORIGIN.TGV
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 23:20:30 +01:00
Michael Niedermayer
51fed95dde swscale/utils: fix wrong deprecated message with rgb0
Fixes Ticket3242
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 22:47:49 +01:00
Carl Eugen Hoyos
691dec6201 Allow stream-copying grayscale mov files.
This reverts 0de2157f / r12272.
Fixes ticket #3215.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 22:22:16 +01:00
Carl Eugen Hoyos
d63e994361 avformat/mov: Do not compute a grayscale palette for cinepak in mov.
This was never done for avi files, the decoder always produced
output no matter if a palette was computed or not.
Since a non-standard palette was needed, this simplifies the code.
See issue 1067 and ticket #165.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 22:22:06 +01:00
Alex Sukhanov
251c96a70b avformat/matroskadec: Fix start_time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 18:59:46 +01:00
Ronald S. Bultje
acafbb4dd2 vp9: fix crash if segmentation=1, keyframe/intraonly=1 and updatemap=0.
The reference map is never used in such cases, but we accidently copied
it anyway. This could cause crashes if this map has not yet been
allocated. Fixes trac ticket 3188.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 11:43:53 +01:00
Ronald S. Bultje
4a55bffad3 vp9: fix bug in updating of coef probabilities with parallelmode=1.
Fixes trac ticket 3228.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 11:43:08 +01:00
Jan Gerber
b2597042e5 avcodec/libopusdec: Set codec->delay to pre_skip not fixed value
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-24 04:53:52 +01:00
Carl Eugen Hoyos
05c3c568dc Read pictures in id3v2.2 2013-12-23 23:41:37 +01:00
Michael Niedermayer
95953c1cfd avcodec/wavpack fix *void pointer arithmetic
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 23:12:35 +01:00
Peter Ross
e93a73cbef wtvenc: output ff_format_none if ff_put_wav_header fails
This occurs when muxing E-AC-3.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 19:51:32 +01:00
Peter Ross
e4be076570 wtvenc: use codec tag + MEDIASUBTYPE_BASE_GUID, if there is no suitable guid
This permits H264, AAC, AAC-LATM muxing.

Fixes ticket #536.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 19:51:17 +01:00
Peter Ross
686b6dc33a wtv: make ff_format_videoinfo2 visible to wtv encoder
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 19:43:09 +01:00
Stefano Sabatini
129ce05b02 tools/zmqsend: rename ctx to zmq_ctx
The new name is more explicit.
2013-12-23 18:44:52 +01:00
Stefano Sabatini
dd00f9cac3 tools/zmqsend: use valid NULL log context
The zmq context is not a valid log context. Fix crash.
2013-12-23 18:44:52 +01:00
Michael Niedermayer
99978320c0 avcodec/apedec: use av_fast_padded_malloc()
Fixes use of uninitialized memory
Fixes part of msan_uninit-mem_7fa0d8c8bd58_8417_sh3.ape
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 18:11:35 +01:00
Michael Niedermayer
d5128fce38 avcodec/apedec: more checks for k
Fixes assertion failure
Fixes part of msan_uninit-mem_7fa0d8c8bd58_8417_sh3.ape
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 18:10:44 +01:00
Michael Niedermayer
d94633409b avcodec/libopencore-amr: remove av_free coded_frame.
There seems to be nothing that sets coded_frame
also av_free is wrong

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 17:38:39 +01:00
Michael Niedermayer
57c63c92c5 MAINTAINERS: drop 2.0 from the releases that i maintain
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 17:24:12 +01:00
Michael Niedermayer
5c3079aaa9 avformat/iss: check sscanf() return code
Fixes use of uninitialized data
Fixes: msan_uninit-mem_7f883205ce82_15_0001010100.iss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 16:28:44 +01:00
Peter Ross
6da21c1f81 wtvenc: populate VIDEOINFOHEADER2
Fixes ticket #2835.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 15:55:54 +01:00
Peter Ross
f93b0abe40 avformat/riffenc: indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 15:55:47 +01:00
Peter Ross
fcbb94712d riffenc: add option to ff_put_bmp_header to ignore extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 15:42:35 +01:00
Peter Ross
d08ea75a82 wtvenc: test avio_size() validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 13:33:45 +01:00
Michael Niedermayer
5a1bfa7ed7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavu: fix typo in documentation.

See: e53061154f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 13:05:44 +01:00
Michael Niedermayer
5a8b4ed580 Merge commit '57ead8449e44bd07b3d4a5bd42f1aab64566f92e'
* commit '57ead8449e44bd07b3d4a5bd42f1aab64566f92e':
  doc: fix link to the ISC license text in the developer documentation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 12:52:50 +01:00
Michael Niedermayer
5b4c7b7dcf Merge commit '6c0e83511705e7f8f5100e7852a1e7fd16aa8877'
* commit '6c0e83511705e7f8f5100e7852a1e7fd16aa8877':
  doc: fix a coding style error in the developer documentation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 11:58:36 +01:00
Michael Niedermayer
8b285f03f7 avcodec/utils: fix memleak on avcodec_open2() failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 01:54:13 +01:00
Michael Niedermayer
866c44d4b0 avcodec/wavpack: clear remainder of data in case of error in wv_unpack_mono/stereo()
Fixes use of uninitialized data
Fixes: msan_uninit-mem_7fd85b654950_4005_because.wv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-23 00:56:18 +01:00
Tim Walker
10d982480f lavu: fix typo in documentation. 2013-12-22 22:35:23 +01:00
Tim Walker
57ead8449e doc: fix link to the ISC license text in the developer documentation. 2013-12-22 22:35:11 +01:00
Tim Walker
6c0e835117 doc: fix a coding style error in the developer documentation. 2013-12-22 22:34:58 +01:00
Michael Niedermayer
911676c643 avutil/avstring: add av_strnlen()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 22:25:15 +01:00
Ivan Kalvachev
1c63aed232 Convert XvMC to hwaccel v3
Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 22:03:47 +01:00
Michael Niedermayer
c19f193c6b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1: Fix intensity compensation performance regression

Conflicts:
	libavcodec/vc1.c

See: ed5bed4152
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 21:39:10 +01:00
Michael Niedermayer
102b794e09 configure: support raising major version in soname
this allows seperate installation of shared libs that should not conflict with
whatever is already installed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 20:21:18 +01:00
Michael Niedermayer
88956f73f2 ffmpeg: use timestamp from before and after the decoder to detect backward moving dts for discontinuity detection
This should make discontinuity detection more robust and detect
more cases. Timestamps after the decoder can be delayed due to threads,
timestamps before can be missing

no testcase available/known

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 19:48:00 +01:00
Michael Niedermayer
de2a2caf4d nutenc/write_index: warn if 2 consecutive keyframes have the same PTS and discard the 2nd
This fixes an assertion failure and regression and restores previous behaviour
Fixes Ticket3197

An alternative would be to fail hard in this case and refuse to mux such data.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 19:00:28 +01:00
Mason Carter
61ae993957 vc1: Fix intensity compensation performance regression
Introduced by 28243b0d35

Intensity compensation is always used once it was encountered, because
v->next_use_ic is never set back to zero.

Reset v->next_use_ic, when resetting v->next_luty/uv.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-22 18:31:44 +01:00
Michael Niedermayer
64b98df389 vc1: simplify *_use_ic initialization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 14:59:31 +01:00
Mason Carter
ed5bed4152 VC1: Fix intensity compensation performance regression
Fix https://trac.ffmpeg.org/ticket/3204

The problem was that intensity compensation was always used once it was
encountered. This is because v->next_use_ic was never set back to zero.
To fix this, when resetting v->next_luty/uv, also reset v->next_use_ic.

This improved (restored) performance by 85% when decoding
http://bit.ly/bbbwmv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 14:05:06 +01:00
Michael Niedermayer
5410a5dc66 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hevc: move DSP declarations from hevc.h into hevcdsp.h

Conflicts:
	libavcodec/hevc.h
	libavcodec/hevcdsp.c
	libavcodec/hevcdsp.h

See: c8dd048ab8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 12:46:19 +01:00
Michael Niedermayer
6fe5f770db Merge commit 'be7c323176e2e5fcf30e3d2ff20975b2f936811b'
* commit 'be7c323176e2e5fcf30e3d2ff20975b2f936811b':
  Add a libwebp encoder

Conflicts:
	Changelog
	doc/encoders.texi
	doc/general.texi
	libavcodec/version.h
	libavformat/img2enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 11:53:41 +01:00
Guillaume Martres
7398e0516f hevc: move DSP declarations from hevc.h into hevcdsp.h
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-22 03:49:11 +01:00
Michael Niedermayer
9b195dd579 avformat/4xm: shrink packet if it was only partially initialized
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f6c76ab7950_4920_dracula.4xm
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 01:48:33 +01:00
Michael Niedermayer
2c635fabbf avformat/isom: check avio_read() result
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f7aa4151661_4885_dmbts3.ts
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-22 01:48:33 +01:00
Michael Niedermayer
b797a00f63 avformat/rmdec: zero string destination before use
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f9677850d99_4635_crashed.rm
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 23:27:09 +01:00
Justin Ruggles
be7c323176 Add a libwebp encoder 2013-12-21 17:01:42 -05:00
Michael Niedermayer
ea1e630c47 vcodec/rv34: use av_mallocz() to allocate tables
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f75e2a55b88_4146_brokenaudio.rmvb
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 18:42:00 +01:00
Michael Niedermayer
55328d5f72 avformat/electronicarts: detect endianness by comparing sizes instead of using an arbitrary threshold
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 14:09:45 +01:00
Michael Niedermayer
a07d4bc80a avformat/gxfenc: dont use a int intermediate to store in a unsigned int table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 13:52:10 +01:00
Michael Niedermayer
587e3c3426 avformat/electronicarts: use 64bit variable for avio_tell() result
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 13:48:15 +01:00
Michael Niedermayer
03acb035d1 avcodec/vqavideo: clear uninitialized parts of the decode buffer
Fixes use of uninitialized memory
Fixes part of msan_uninit-mem_7f841fe2ab3b_4608_cow2_1.vqa
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 13:16:32 +01:00
Michael Niedermayer
263105deeb avcodec/vqavideo: check destination size on all exit pathes
Fixes part of msan_uninit-mem_7f841fe2ab3b_4608_cow2_1.vqa
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 13:16:00 +01:00
Ilya Basin
d1b8e01ef1 examples/muxing: fix memleaks in resampler
- do not allocate resample dst buffer when resample is off
  - free sample buffers in addition to freeing data pointer arrays

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 12:22:49 +01:00
Ilya Basin
7d1d0b3ecf examples/muxing: use S16 sample_fmt for resample src regardless of codec sample_fmt
We generate S16 samples and we should allocate the right buffer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 12:21:05 +01:00
Ilya Basin
b6714fa077 examples/muxing: fix av_frame_free() not called when got_packet is false
Hi list! Since my last patch (fix 2 memleaks in doc/examples/muxing.c)
I found more problems to fix.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 12:20:44 +01:00
Peter Ross
8baaa924bd wtvdec: when testing for truncated files, actually check the .wtv file size
Previously the demuxer was testing against avio_tell, and this would generate
many false warnings.

Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 11:45:14 +01:00
Michael Niedermayer
70d6ce783c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  arm: Don't clobber callee saved registers in scalarproduct

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 01:19:59 +01:00
Michael Niedermayer
88839718b5 Merge commit '5c3fa74b94fdedfd63b606f36920d7fbbc069b72'
* commit '5c3fa74b94fdedfd63b606f36920d7fbbc069b72':
  hevc: support luma bit depth != chroma bit depth for PCM coding units

Conflicts:
	libavcodec/hevc.c

See: 0afa254d4e
See: a7e300649a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 01:04:30 +01:00
Michael Niedermayer
9567162237 Merge commit '78d0b7f36e39bb4745613e312024ddd508e2f0fb'
* commit '78d0b7f36e39bb4745613e312024ddd508e2f0fb':
  hevc: warn when an unknown profile is used

See: a21839149c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:54:15 +01:00
Michael Niedermayer
3cd36b07dd Merge commit '259cddb137988a25607f091c2414158ff81ca7d6'
* commit '259cddb137988a25607f091c2414158ff81ca7d6':
  hevc_ps: fix indentation

See: 36658c978f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:52:00 +01:00
Michael Niedermayer
e00281b6f5 Merge commit '2d18aaa14bc2233b0647d2c5abb72e0bc828c2a8'
* commit '2d18aaa14bc2233b0647d2c5abb72e0bc828c2a8':
  hevc: refactor Profile Tier Level
  hevc: don't check for errors in PTL code

Conflicts:
	libavcodec/hevc_ps.c

See: 36658c978f
See: dddc9b7a8e
See: ecb21d2437
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:44:44 +01:00
Michael Niedermayer
2fb9e77ac2 Merge commit '321cb8b048c7a8c0d2950f9278f36d912a886fa0'
* commit '321cb8b048c7a8c0d2950f9278f36d912a886fa0':
  hevc: store profile and level in AVCodecContext

See: fb7d70c1cd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:31:05 +01:00
Michael Niedermayer
d6b7ea06f1 Merge commit '2a41826bea3833895dc06939831b7f35ca1f597e'
* commit '2a41826bea3833895dc06939831b7f35ca1f597e':
  lavc: add HEVC profiles names

Conflicts:
	libavcodec/hevc.c
	libavcodec/version.h

See: fb7d70c1cd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:24:43 +01:00
Michael Niedermayer
6fc9f5e0ff Merge commit 'f412b2c9f3a7add0ab8021262ec4bad249347e30'
* commit 'f412b2c9f3a7add0ab8021262ec4bad249347e30':
  flv: Use the correct type to hold the file offset

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:14:11 +01:00
Michael Niedermayer
0c16f6449b Merge commit '15739a9bd19a7d47ad8afb25348c684a3bdd6ef2'
* commit '15739a9bd19a7d47ad8afb25348c684a3bdd6ef2':
  jvdec: Do not feed the decoder with known wrong data

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:06:13 +01:00
Michael Niedermayer
b9f33ad320 Merge commit 'e518cb863edc931888ccca6cad86f73ca7430cef'
* commit 'e518cb863edc931888ccca6cad86f73ca7430cef':
  jvdec: Fix memory leak of jv->frames

See: 596814f978
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:59:05 +01:00
Michael Niedermayer
d2344afb90 Merge commit '027712e851da4d124a842c9e2802f95d50582553'
* commit '027712e851da4d124a842c9e2802f95d50582553':
  jvdec: Return EOF on end of file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:50:58 +01:00
Michael Niedermayer
ce612fc186 Merge commit 'dfc50ac85e9d68a771b556297b7c411650206f3b'
* commit 'dfc50ac85e9d68a771b556297b7c411650206f3b':
  x86: mpegvideo: move denoise_dct asm to mpegvideoenc

Conflicts:
	libavcodec/x86/mpegvideo.c
	libavcodec/x86/mpegvideoenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:44:31 +01:00
Michael Niedermayer
4fa91b88c6 Merge commit 'b254490bdabb21bd517c05b1a68717f9952ac8c4'
* commit 'b254490bdabb21bd517c05b1a68717f9952ac8c4':
  vc1: arm: Add NEON no_rnd chroma MC

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:33:15 +01:00
Michael Niedermayer
69278d94c4 Merge commit '832e19063209a5f355af733d1a45f5051f49ce33'
* commit '832e19063209a5f355af733d1a45f5051f49ce33':
  vc1: arm: Add NEON assembly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:12:16 +01:00
Michael Niedermayer
eedd914873 avformat/pva: Make sure the header is large enough before reading the timestamp from it
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f34b5dc6d58_2674_PVA_test-partial.pva
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:04:51 +01:00
Michael Niedermayer
5ec3c7b7c1 avformat/pva: Make sure the first byte of pes_header_data has been initialized
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f53c1d0e95c_2674_PVA_test-partial.pva
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 23:04:51 +01:00
Martin Storsjö
d307e408d4 arm: Don't clobber callee saved registers in scalarproduct
q4-q7/d8-d15 are supposed to not be clobbered by the callee.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-20 20:48:30 +02:00
Mickaël Raulet
5c3fa74b94 hevc: support luma bit depth != chroma bit depth for PCM coding units
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:53 +01:00
Guillaume Martres
78d0b7f36e hevc: warn when an unknown profile is used
Bitstreams conforming to the spec should not use profiles not defined
in it.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:38 +01:00
Gildas Cocherel
259cddb137 hevc_ps: fix indentation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:10 +01:00
Gildas Cocherel
2d18aaa14b hevc: refactor Profile Tier Level
Also store a few PTL flags which were skipped before

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:38:59 +01:00
Guillaume Martres
67bbaed5c4 hevc: don't check for errors in PTL code
According to the spec, the value of XXX_reserved_zero_44bits should be
ignored, so don't report an error when it's not zero.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:36:44 +01:00
Gildas Cocherel
321cb8b048 hevc: store profile and level in AVCodecContext
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:36:24 +01:00
Gildas Cocherel
2a41826bea lavc: add HEVC profiles names
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:35:27 +01:00
Stefano Sabatini
d055a1395c lavfi/hue: show first decimal value of saturation 2013-12-20 19:25:42 +01:00
Stefano Sabatini
028d8dd367 lavfi/hue: use av_clip_uint8() instead of av_clip_uint8_c()
The generic version should be faster if optimized.
2013-12-20 19:13:42 +01:00
Stefano Sabatini
70e74e0072 lavfi/hue: force table initialization for the first frame 2013-12-20 19:13:42 +01:00
Michael Niedermayer
b07a5e9b6b avformat/smacker: check for format mismatch more completely
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f6e83322950_9769_wetlogo.smk
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 18:31:42 +01:00
Michael Niedermayer
632fdec9f4 avformat/nistspheredec: initialize header_size to -1
Fixes use of uninitialized memory
This also avoids the need to check the scanf() return as the subsequent check catches it
Fixes: msan_uninit-mem_7f712e4dc173_7414_nist_ulaw.nist
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 18:08:58 +01:00
Luca Barbato
f412b2c9f3 flv: Use the correct type to hold the file offset 2013-12-20 17:44:20 +01:00
Luca Barbato
15739a9bd1 jvdec: Do not feed the decoder with known wrong data
Still assume the size value is right in non-explode mode.
2013-12-20 17:44:20 +01:00
Paul B Mahol
e518cb863e jvdec: Fix memory leak of jv->frames
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-20 17:44:20 +01:00
Luca Barbato
027712e851 jvdec: Return EOF on end of file 2013-12-20 17:44:20 +01:00
Anton Khirnov
dfc50ac85e x86: mpegvideo: move denoise_dct asm to mpegvideoenc
This function is encoding-only.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-12-20 17:16:11 +01:00
Michael Niedermayer
34fe125f4b avcodec/mpegvideo_enc: fix frame skipping with intra only codecs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 15:04:40 +01:00
Michael Niedermayer
241eccd628 avcodec/mpegvideo_enc: fix integer overflow with -skip_exp >= 2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 14:10:34 +01:00
Mason Carter
b254490bda vc1: arm: Add NEON no_rnd chroma MC
Apply David Conrad's old patch to the modern codebase.

http://ffmpeg.org/pipermail/ffmpeg-devel/2009-April/059877.html

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-20 14:53:42 +02:00
Mason Carter
832e190632 vc1: arm: Add NEON assembly
For:

ff_vc1_inv_trans_{8,4}x{8,4}_{dc_,}neon
ff_put_pixels8x8_neon
ff_put_vc1_mspel_mc{0,1,2,3}{0,1,2,3}_neon (except for 00)

Based on ARM assembly code in libavcodec/arm by Rob Clark and Mans
Rullgard.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-20 14:53:39 +02:00
Michael Niedermayer
3f307d79d3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  atomics: cosmetics: Restructure ifdefs for greater clarity

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 13:16:56 +01:00
Michael Niedermayer
3b6e8634c3 Merge commit '8558595a59913a4667f57d5a4658b1340f1a4354'
* commit '8558595a59913a4667f57d5a4658b1340f1a4354':
  configure: Express atomics/thread deps through the dependency system

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 13:00:21 +01:00
Diego Biurrun
e1b9de4fe1 atomics: cosmetics: Restructure ifdefs for greater clarity
Also fix the #endif comment in a few places and #include config.h to
avoid assuming it is #included implicitly.
2013-12-20 11:23:13 +01:00
Michael Niedermayer
a165964f3c avformat/sierravmd: Check avio_read return value
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f82af392dae_1848_HR060606.VMD
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-20 01:03:19 +01:00
Jan Gerber
200cfab8c4 remuxing .opus files to .webm codec->delay must be copied too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 23:43:14 +01:00
Michael Niedermayer
8fe06e7ae8 avformat/nistspheredec: check sscanf() success before using the result
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f935c3c6c1a_7413_nist_pcms8.nist
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 21:46:47 +01:00
Michael Niedermayer
b3f44eafa5 avcodec/iff: warn about truncated input to decode_byterun() and clear remaining output
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fe205e395ed_8988_test.iff
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 21:22:43 +01:00
Diego Biurrun
8558595a59 configure: Express atomics/thread deps through the dependency system 2013-12-19 20:53:56 +01:00
Michael Niedermayer
5eeeb4abf9 rpl: Dont fill the index with entries that failed to be parsed
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fd10a199a3c_6204_landing.rpl
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 19:24:10 +01:00
Leandro Dorileo
f9b997c337 libavformat/mpegts: expose raw packet size
We cannot easily determine if an mpeg TS's packet size is DVHS, FEC
or so on, for that we need to expose the internal raw_packet_size
field.

Signed-off-by: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 19:06:32 +01:00
Michael Niedermayer
ae09db1023 avformat/dxa: check avio_read() return
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7fd4d4323ddd_2453_MUSOSP1.dxa
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 18:36:49 +01:00
Michael Niedermayer
5a5c1b2442 avcodec/dxa: check for overread in decode_13()
Fixes use of uninitialized memory
Fixes part of msan_uninit-mem_7f5ea8284fb7_8317_scummvm.dxa
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 17:16:34 +01:00
Michael Niedermayer
f6c95f4f8c avcodec/dxa: add padding to decomp_buf
Fixes use of uninitialized memory
Fixes part of msan_uninit-mem_7f5ea8284fb7_8317_scummvm.dxa
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 17:16:01 +01:00
Michael Niedermayer
a33c7dd213 avcodec/flashsv: check decode_hybrid() for overread
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f906558274e_268_14_244486_2009_04_28.flv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 16:28:26 +01:00
Lenny Wang
d943330dc0 lavfi/deshake_opencl: optimze transform filter
Reviewed-by: Wei Gao <highgod0401@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 13:31:31 +01:00
Michael Niedermayer
f5d039840a avformat/swfdec: clear 4 bytes at the end of a packet if they are not initialized
Fixes use of uninitialized memory
Fixes part of msan_uninit-mem_7f055dd0ab1b_9558_videopop_guitar_300k.swf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 05:07:22 +01:00
Michael Niedermayer
e72f5abbc6 avformat/swfdec: check avio_read() return code
Fixes use of uninitialized memory
Fixes part of msan_uninit-mem_7f055dd0ab1b_9558_videopop_guitar_300k.swf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 05:07:13 +01:00
Michael Niedermayer
d2d794f3aa Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Explicitly specify the pixel format for the pngparser test

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 03:18:07 +01:00
Michael Niedermayer
fde74d1b9d avformat/swfdec: check avio_read() return code
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7f90d9cce964_9558_videopop_guitar_300k.swf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 01:49:07 +01:00
Michael Niedermayer
8eb76217d0 avcodec/interplayvideo: Check that enough data is available for opcode_0x7/8/D
Fixes hypothetical use of uninitialized memory, no sample available

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 00:38:11 +01:00
Michael Niedermayer
66875798eb avcodec/interplayvideo: Check that enough data is available for opcode_0x9
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fd5185b45df_5895_interplay-logo-2MB.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 00:38:11 +01:00
Michael Niedermayer
ff1e30c059 avcodec/interplayvideo: Check that enough data is available for opcode_0xA
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f90e5be6b30_3965_baldursgate_camp.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-19 00:38:11 +01:00
Michael Niedermayer
4e575adeff avformat/ipmovie: Check palette size in OPCODE_SET_PALETTE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 23:46:37 +01:00
Michael Niedermayer
947e40b9fe avformat/ipmovie: Check that OPCODE_SET_PALETTE size is large enough
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fec1f40656c_4819_descent3_level5_16bit_partial.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 23:44:52 +01:00
Michael Niedermayer
5f0d552c9b avformat/ipmovie: remove superflous ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 23:15:52 +01:00
Michael Niedermayer
8faabf3bd2 avformat/ipmovie: Check that the OPCODE_INIT_AUDIO_BUFFERS size is large enough
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f75b03c1f19_4820_descent3_level5_16bit_partial.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 23:15:18 +01:00
Michael Niedermayer
cb079b1b2b avcodec/pngdec: fix signed overflow
fixes fate ftrapv failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 22:15:32 +01:00
Martin Storsjö
e121a725c3 fate: Explicitly specify the pixel format for the pngparser test
The RGB32 pixel format is RGBA/BGRA depending on target
endianness - make sure to convert it to one specific format for
the framecrc tests.

This fixes the pngparser fate test on big endian.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-18 21:21:41 +02:00
Michael Niedermayer
03a5c44fae Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Prepare release notes for Libav 10 "Eks"

Conflicts:
	doc/RELEASE_NOTES

Not merged because all that stuff has been in past releases

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 19:54:04 +01:00
Michael Niedermayer
d8b4ba3c5a avformat/isom: zero MPEG4AudioConfig to avoid leaving fields uninitialized
Fixes: use of uninitialized memory
Fixes: msan_uninit-mem_7f392c443e0d_1433_Crowd_Applause_01.caf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 19:40:08 +01:00
Michael Niedermayer
4a2570f50a avcodec/nuv: zero buffer padding
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7f4a141261de_7405_nirvana.nuv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 18:15:15 +01:00
Michael Niedermayer
1935173fd1 avcodec/dirac_dwt: initialize support value for fidelity wavelet
Avoids use of uninitialized memory
Fixes: msan_uninit-mem_7f15e1988a6e_2748_RL_420p_ffdirac.drc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 15:52:08 +01:00
Anton Khirnov
fe533ffdcf Prepare release notes for Libav 10 "Eks"
Additional editing by Diego Biurrun
2013-12-18 09:18:42 -05:00
Stefano Sabatini
aeccb522eb lavf/concatdec: fix crash in case a file in script cannot be opened 2013-12-18 15:14:58 +01:00
Stefano Sabatini
8937af7b6f lavf/segment: increase logging level for message with segment start information
Help debugging.
2013-12-18 15:14:58 +01:00
Michael Niedermayer
b8f8f7c7fe Merge remote-tracking branch 'qatar/master'
* qatar/master:
  png_parser: Fix parsing on big endian

See: 3d42addf33
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 12:38:33 +01:00
Michael Niedermayer
09d6ceac4d Merge commit 'd8fd183683b7495566b7e510a6536ae2efe8dfed'
* commit 'd8fd183683b7495566b7e510a6536ae2efe8dfed':
  vc1: Fix mb_height for field pictures

See: 017e234c20
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 12:29:03 +01:00
Martin Storsjö
b3189aff8b png_parser: Fix parsing on big endian
Since pc.state is populated by shifting in from the end of the
32 bit word, the content within pc.state is already in native endian
and should not be read with the AV_R{L,B} functions.

This was already done correctly for state64 above.

This fixes the fate-corepng test on big endian.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-18 12:12:19 +02:00
Anssi Hannula
e10fccf62a avcodec/aacdec: default to non-wide 7.1 in non-strict mode
AAC specification has 7.1(wide) as a default layout for 8-channel
streams (channel config 7). However, at least Nero AAC encoder encodes
non-wide 7.1 streams using the default channel config 7, mapping the
side channels of the original audio stream to the second
AAC_CHANNEL_FRONT pair in the AAC stream. Similarly, e.g. FAAD decodes
the second AAC_CHANNEL_FRONT pair as side channels, therefore decoding
the incorrect streams as if they were correct (and as the encoder
intended).

FFmpeg currently decodes such files by-the-spec, i.e. after decoding the
original front pair will be in AV_CH_FRONT_x_OF_CENTER and the original
side pair will be in AV_CH_FRONT_x.

As actual intended 7.1(wide) streams are very rare while misencoded 7.1
files actually exist in the wild, default to assuming a 7.1 layout was
intended unless in strict mode.

Fixes playback of e.g. 8_Channel_ID.m4a in samples.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-18 05:25:01 +01:00
Michael Niedermayer
645c94b61b Revert "Merge commit '3bc2e89c76e88ae6f1fd5287e0b11abcfc3c601c'" (Bump libavutil major version to account for the LLS API/ABI changes.)
This reverts commit 792845e436, reversing
changes made to 1d6666a6b8.

Bumping libavutil requires all libraries that use libavutil to have their
major version bumped (yes breakage has been confirmed this is not a hypotheses)

One case of breakage is due to new types being added to AVOptions and
applications that linked to old libavutil and libswresample
then trying to use old libavutil (its soname changed so the old isnt updated)
and new swresample (its soame didnt change so it is updated)
the new swresample contains AVOption types that the old libavutil doesnt
know of thus the application attempting to access these avoptions
fails

AVOptions are used by all libs so the issue can potentially happen with
any other lib, libswresample was just the first that showed the problem
ive not checked if the other libs are affected currently by the same issue
or not

Also in addition to AVOptions, AVFrames are also defined in
libavutil, bumping it without all libs that use AVFrames could lead to
serious inconsistencies when 2 libs/app end up using 2 different libavutils

The alternative of bumping all is still possible after this revert, if it
turns out to be the preferred solution
2013-12-18 03:05:25 +01:00
Michael Niedermayer
3e626548ce avcodec/vc1dec: use av_mallocz for luma_mv
This ensures that no mvs are uninitialized at the time of loop filtering
Fixes: msan_uninit-mem_7f0b6dfe293c_2786_SA20021.vc1
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 21:54:20 +01:00
Michael Niedermayer
d8fd183683 vc1: Fix mb_height for field pictures
Tables are always allocated now with sufficient space for either progressive
or interlaced content. The alternative would be to detect a change
and reallocate.

This fixes decoding of a sample.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-17 22:01:45 +02:00
Michael Niedermayer
9be63be1b2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  apidoc: fix warning from stereo3d.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 19:37:50 +01:00
Michael Niedermayer
d6acf45ec2 Merge commit '3d9fc21e593aa89b5877bd739268499b079052f2'
* commit '3d9fc21e593aa89b5877bd739268499b079052f2':
  h264: Refactor decode_frame_packing_arrangement

Conflicts:
	libavcodec/h264_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 19:30:57 +01:00
Michael Niedermayer
4e1dc600a1 Merge commit '3a149e23d37f06d49ab0bb013a3b9cb0224bba5c'
* commit '3a149e23d37f06d49ab0bb013a3b9cb0224bba5c':
  hevc: Refactor decode_nal_sei_frame_packing_arrangement

Conflicts:
	libavcodec/hevc_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 19:04:32 +01:00
Michael Niedermayer
682b28b410 Merge commit 'cfb4ee30977732674d30c20e93a761c33c743972'
* commit 'cfb4ee30977732674d30c20e93a761c33c743972':
  fate: add a pngparser test

Conflicts:
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 18:55:15 +01:00
Michael Niedermayer
b22989da47 Merge commit 'eddff165b4cdc1f064245a4bad6f4265581c12b1'
* commit 'eddff165b4cdc1f064245a4bad6f4265581c12b1':
  fate: add utility function to test parser, demuxer, and decoder

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 18:08:50 +01:00
Michael Niedermayer
47cc616864 Merge commit '6fd99e78def3c795bdd0bc31f3ae0998d24bc94c'
* commit '6fd99e78def3c795bdd0bc31f3ae0998d24bc94c':
  png: add a standalone parser

Conflicts:
	Changelog
	libavcodec/png_parser.c
	libavcodec/version.h

See: 2ee6dca3b8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 17:58:53 +01:00
Michael Niedermayer
c90f31146e avcodec/utils: drop 2 dependancies on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 17:26:10 +01:00
Michael Niedermayer
3c8b085764 avcodec/libvorbisenc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 17:18:29 +01:00
Michael Niedermayer
bf1c87ee7a ffprobe: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 17:11:00 +01:00
Michael Niedermayer
b8f4410ff6 avcodec/flashsv2enc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 16:58:06 +01:00
Michael Niedermayer
8443b27072 avcodec/j2kenc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 16:57:58 +01:00
Michael Niedermayer
1458f0647c avcodec/libopenjpegenc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 16:35:04 +01:00
Michael Niedermayer
5b3f4b3ef5 avcodec/mjpegenc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 16:32:09 +01:00
Michael Niedermayer
c81234651f avcodec/msvideo1enc: drop dependancy on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 16:27:36 +01:00
Michael Niedermayer
fca7943850 avcodec/diracdec: avoid depending on sizeof(AVFrame)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 15:45:24 +01:00
Michael Niedermayer
c5f7c8f9a9 avcodec/svq3: set last/next frames to defaults before use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 15:45:24 +01:00
Michael Niedermayer
5abdda214d avcodec/utils: implement avcodec_alloc_frame() through av_alloc_frame()
This ensures that theres just one AVFrame allocation function and libs dont
produce multiple AVFrame variants after a minor lib update

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 14:03:38 +01:00
Michael Niedermayer
6aed7bfd84 avcodec: use av_frame_unref() to set frame defaults
This ensures that the code isnt duplicated and cant become out of sync

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 14:02:29 +01:00
Vittorio Giovara
bd316109b3 apidoc: fix warning from stereo3d.h 2013-12-17 09:34:08 +01:00
Vittorio Giovara
3d9fc21e59 h264: Refactor decode_frame_packing_arrangement
Directly set the fields when necessary.
2013-12-17 09:34:08 +01:00
Luca Barbato
3a149e23d3 hevc: Refactor decode_nal_sei_frame_packing_arrangement
Directly set the fields when necessary.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-12-17 09:34:08 +01:00
Vittorio Giovara
cfb4ee3097 fate: add a pngparser test 2013-12-17 09:34:08 +01:00
Vittorio Giovara
eddff165b4 fate: add utility function to test parser, demuxer, and decoder 2013-12-17 09:34:08 +01:00
Peter Holik
6fd99e78de png: add a standalone parser
Useful for reading png images from a pipe.
2013-12-17 09:34:08 +01:00
Michael Niedermayer
745c40a47f avcodec/gifdec: check that the correct number of bytes was decoded
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f084c646637_9261_top_title_green_frog.gif
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 02:33:19 +01:00
Stoian Ivanov
5fe415f0f4 UDP: join multicast group on the interface specified with &localaddr=
When joining multicast groups, ffmpeg was using INADDR_ANY as interface address
which leads to enabling the multicast group on the interface with "default gateway".
Often multicast traffic is received over dedicated interface, which scenario ffmpeg was
unable to handle. With this patch, ffmpeg will enable multicast group to the interfaces
configured with address specified in &localaddr= parameter of udp:// URL. To avoid
loacal_addr resolve at udp_close(...) the UDPContext structure was extended with
struct sockaddr_storage local_addr_storage member, which is populated in udp_open(..)
and passed to udp_join_multicast_group()  and udp_leave_multicast_group().

Signed-off-by: Stoian Ivanov <s.ivanov@teracomm.bg>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 01:14:28 +01:00
Michael Niedermayer
49f10c9cb1 avformat/format: av_register_output_format() and av_register_intput_format() that work in O(1) time
Reviewed-by: Stefano Sabatini
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 01:07:43 +01:00
Michael Niedermayer
ec464c9683 avcodec/utils: av_register_codec & hwaccel() that work in O(1) time
Its possible to implement this with a few lines less code but it then
would flip the order of the list and require registration of external
codecs to be done first, also it could break user applications due to
this. Thus to maintain ABI this slighty more complex solution is
used.

Reviewed-by: Stefano Sabatini
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 01:06:34 +01:00
Michael Niedermayer
196f7da7c8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avutil: Remove deprecated intfloat_readwrite code

Conflicts:
	libavutil/intfloat_readwrite.c
	libavutil/intfloat_readwrite.h

The files are left in place as they are still used by some projects
mplayer is one.
Theres no hurry in removing the code, it can as well be removed once
no projects use it anymore

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-17 00:26:01 +01:00
Michael Niedermayer
a67387913e Merge commit '11bb5e10c36539bcc303ceaac6f88d9ecb66e07f'
* commit '11bb5e10c36539bcc303ceaac6f88d9ecb66e07f':
  build: Define __printf__ to __gnu_printf__ on MinGW*/gcc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 23:57:29 +01:00
Michael Niedermayer
a788949255 Merge commit '6d3ea1957f681b3bf9c752e6d21a501cc8d4180d'
* commit '6d3ea1957f681b3bf9c752e6d21a501cc8d4180d':
  Bump major of libavfilter for reference counted buffer API changes.

Conflicts:
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 22:07:24 +01:00
Michael Niedermayer
792845e436 Merge commit '3bc2e89c76e88ae6f1fd5287e0b11abcfc3c601c'
* commit '3bc2e89c76e88ae6f1fd5287e0b11abcfc3c601c':
  Bump libavutil major version to account for the LLS API/ABI changes.

Conflicts:
	libavutil/version.h

Bump done to stay compatible with libav, its not neccessary otherwise for ffmpeg
as we have the new ABI/API under LLS2 and the old (unused) under LLS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 21:52:51 +01:00
Stefano Sabatini
1d6666a6b8 ffserver: extend report_config_error() facilities, and use it for warnings 2013-12-16 19:19:04 +01:00
Stefano Sabatini
9985710a5a ffserver: add stream Metadata option
Also deprecate Author, Comment, Copyright, and Title options, and update
docs to use the new Metadata option.
2013-12-16 19:18:45 +01:00
Stefano Sabatini
33f10fa657 ffserver: fix spacing typoin error message 2013-12-16 18:30:21 +01:00
Stefano Sabatini
e3eb0988c6 lavu/dict.h: extend/clarify av_dict_get() doxy 2013-12-16 18:30:04 +01:00
Stefano Sabatini
023693d786 lavfi/buffersrc: set min and max values for pix_fmt option
Currently the min and max values are not honored, but this will change in
a following patch.
2013-12-16 18:08:17 +01:00
Diego Biurrun
0d882e9e7b avutil: Remove deprecated intfloat_readwrite code
It was deprecated over two years ago.
2013-12-16 17:51:00 +01:00
Torsten Jager
48d39c8786 avcodec/libx264: Set colorspace details correctly
After adding colorspace support to xine-lib, I insist in proper
settings within media files at least when they do not follow
that implicit SD/HD routine.
2013-12-16 16:59:02 +01:00
Diego Biurrun
11bb5e10c3 build: Define __printf__ to __gnu_printf__ on MinGW*/gcc
This is necessary to avoid GCC assuming MS style printf arguments.
2013-12-16 15:21:42 +01:00
Michael Niedermayer
a8d702859b avcodec/mlpdec: check that streamtype matches the codec
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7f126c8ed1ac_5945_issue1731_nonpublic.mpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 15:04:49 +01:00
Michael Niedermayer
e2742d6ad6 avcodec/wmalosslessdec: completely initialize contains_subframe
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f60c46325d7_6415_luckynight.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 12:50:16 +01:00
Michael Niedermayer
4ecac81678 avformat/psxstr: zero packet to prevent uninitialized data to leak through to the decoder
Fixes: msan_uninit-mem_7f150abf2e84_4817_descent-partial.str
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 04:32:50 +01:00
Michael Niedermayer
f618cb1a4b swscale/x86/rgb2rgb_template: try to fix build failure with avx disabled
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 03:38:13 +01:00
Tomer Barletz
fe285b04bb avcodec/mpeg12dec: Don't create side data when current picture ptr is NULL.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 03:25:44 +01:00
James Zern
7a994d777a configure: (vp9) ensure bitstream compatibility
avoids picking up a library that could produce invalid bitstreams and
fixes build issues with the same.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 03:17:39 +01:00
Yu Xiaolei
1c67ad9d93 swscale: NEON optimized unscaled rgba to nv12 conversion
Signed-off-by: Yu Xiaolei <dreifachstein@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-16 00:47:39 +01:00
Michael Niedermayer
ffbcb1c6f0 avformat/id3v2: Check avio_read() return value in read_chapter()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 22:11:28 +01:00
Michael Niedermayer
460f8fca9c avformat/id3v2: factor free code to the end of read_chapter()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 21:43:19 +01:00
Joakim Plate
6eda91ad54 mpegts: stop analyzing when pmt for all programs have been found
This disables NOHEADER after finding PMT for all programs to
avoid find_stream_info always exhausting probe size for mpegts.

This is very important for live streams since read speed
will be limited. rtsp, udp and any protocol streaming a live
mpegts will have dramatically faster startup time.

Note, lack of codec parameters for streams can still cause
the full probe size to be exhausted.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 21:43:19 +01:00
Michael Niedermayer
d600b18f22 avformat/utils: limit rfps to values larger than fps
This avoids some nonsense values being produced by totally corrupted input

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 21:43:19 +01:00
Michael Niedermayer
476aceaa22 vformat/id3v2: check avio_read for short reads in addition to errors
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 20:13:45 +01:00
Stefano Sabatini
b2a4316287 examples/decoding_encoding: check av_samples_get_buffer_size() for a negative value
Fix broken != 0 check.
2013-12-15 20:09:26 +01:00
Stefano Sabatini
81eff6e7a2 doc/muxers/tee: add example showing second level escaping 2013-12-15 20:04:06 +01:00
Stefano Sabatini
2364b4031d doc/muxers/tee: use @ref to reference other sections 2013-12-15 20:04:06 +01:00
Stefano Sabatini
d37d4b6e40 lavf/mux: improve feedback in case of no streams in muxer 2013-12-15 20:04:06 +01:00
Michael Niedermayer
4511531582 avformat/oggparsetheora: zero extradata padding area
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f66fa0ac09d_9197_theora_a4_v6_k250_s0.ogg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 19:21:48 +01:00
Michael Niedermayer
e838c9852e avcodec/bink: use av_mallocz for data
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7fe8a5fd759d_2838_SPECTRE.BIK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 16:53:32 +01:00
Michael Niedermayer
0e0f6bd4a5 avformat/id3v2: Check avio_read() return code in id3v2_parse()
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f5a04a9b50d_7087_mp3__mp3__tooSmallFinal.mp3
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 15:45:44 +01:00
Michael Niedermayer
037fc3b054 swscale/utils: check chroma width for fast bilinear scaler
Fixes artifacts where fast bilinear was used for downscaling chroma

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 14:13:55 +01:00
Michael Niedermayer
554e913fd7 swscale/utils: remove useless ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 14:10:02 +01:00
Michael Niedermayer
dc54bd4e8d swscale/utils: factor (d + 1 < 4) out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 13:49:20 +01:00
Michael Niedermayer
61edda9a4a avcodec/msmpeg4dec: initialize dir_ptr in error cases
Fixes use of uinitialized memory
Fixes: msan_uninit-mem_7f01b8799186_7278_msnaudio.asf
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 13:24:05 +01:00
Michael Niedermayer
81230e2612 avcodec/msmpeg4dec: print error in case of invalid vlc in msmpeg4_decode_dc for version <=2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 13:22:03 +01:00
Michael Niedermayer
d408d3dbc3 fate: update after 5f6c21117f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 12:22:07 +01:00
wm4
5f6c21117f ffprobe: show best_effort_timestamp in the frame section
This is useful for debugging.

Reference and ffprobe.xsd changes done and tested by Stefano Sabatini.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-12-15 10:46:46 +01:00
Alex Sukhanov
cc0e2ba1aa Enable parser in FLV demuxer for H264 codec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 04:18:13 +01:00
Michael Niedermayer
f6cd447bf1 avformat/utils: treat flv like mov with timestamp discarding
This prevents a regression when using an avparser with flv h264

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 04:18:13 +01:00
Michael Niedermayer
ec13849ce2 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  libzvbi-teletextdec: set bitmap teletext canvas dimensions
  libzvbi-teletextdec: add chopped top row size to y offset
  libzvbi-teletextdec: use defined constants for bitmap char width and height
  libzvbi-teletextdec: cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 03:27:11 +01:00
Michael Niedermayer
6f9be91063 avformat/iff: fix memleak of packet
Fixes: msan_uninit-mem_7f65b9788da6_388_24.iff
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 01:44:04 +01:00
Michael Niedermayer
2b31a9c613 avformat/iff: shrink packets to the initialized data
Fixes use of uninitialized data
Fixes: msan_uninit-mem_7f65b9788da6_388_24.iff
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 01:34:14 +01:00
Michael Niedermayer
b2361cfb94 avcodec/svq3: cleanup context in case init fails
Fixes memleaks

Fixes: msan_uninit-mem_7ff57193e77e_2715_RAW512K_Stream_004.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 00:37:19 +01:00
Michael Niedermayer
7a5d3a41fe avformat/mov: Check avio_read() return code in mov_read_extradata() and shrink the extradata if needed / return an error
Fixes use of uninitialized data
Fixes: msan_uninit-mem_7ff57193e77e_2715_RAW512K_Stream_004.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-15 00:16:53 +01:00
Michael Niedermayer
12e8104120 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec_h264: Check the return value of functions doing allocations

See: c5f15f40b9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 22:39:57 +01:00
Michael Niedermayer
09c13ff7bd Merge commit '6451c8853a07ff2e28bda950fb5e83fcf88c5cf4'
* commit '6451c8853a07ff2e28bda950fb5e83fcf88c5cf4':
  sdp: Check theora colorspace before producing the configuration string

See: db8a53d86a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 22:32:46 +01:00
Reinhard Tartler
6d3ea1957f Bump major of libavfilter for reference counted buffer API changes.
Applications that have been linked against an older release of Libav and pick up
updated libraries experience segmentation faults because they pick up the new
libavfilter, which assumes AVFrames have been allocated by libavutil and thus
contain new reference-counting related fields. This will break for AVFrames that
have been allocated by old libavcodec.

All scheduled API changes are deferred to the next bump.
2013-12-14 16:31:32 -05:00
Reinhard Tartler
3bc2e89c76 Bump libavutil major version to account for the LLS API/ABI changes.
Commit 41578f70cf changed the LLS API, which was
called from libavcodec. Thus using an old libavcodec with a new libavutil will
break.

All scheduled API changes are deferred to the next bump.
2013-12-14 16:31:09 -05:00
Michael Niedermayer
6659364d3a Merge commit '797f2a791397210ec1b591b326658805c5dbf104'
* commit '797f2a791397210ec1b591b326658805c5dbf104':
  hdsenc: Check the init_file() return code
  hdsenc: Fix an off by one error in an array size check
  hdsenc: Avoid integer overflow

Conflicts:
	libavformat/hdsenc.c

See: 572965c9a6
See: 3dbf9afe85
See: 6722e564a8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 22:17:17 +01:00
Michael Niedermayer
f357ef2e0c Merge commit '5db4e88ecd32485341f6150c00f5ee5bfa74f62d'
* commit '5db4e88ecd32485341f6150c00f5ee5bfa74f62d':
  configure: Detect Solaris libc in an OpenIndiana/illumos compatible way

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 22:14:01 +01:00
Michael Niedermayer
892562e921 avformat/ipmovie: Check OPCODE_CREATE_TIMER size
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f81e836ef8c_5930_ipmovie_interplayvideo_interplay_dpcm__bislogo.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 21:59:28 +01:00
Stefano Sabatini
de9ea40a40 doc/bitstream_filters: remove mp3_header_decompress filter
It was removed in commit c6080d8900.
2013-12-14 21:47:51 +01:00
Timothy Gu
96093fe180 Changelog: correct typo
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-14 21:47:17 +01:00
Yu Xiaolei
20bc574b86 build fix: apetag.c depends on img2.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 18:51:17 +01:00
Michael Niedermayer
2d50ebc20b Merge remote-tracking branch 'rbultje/vp9-simd'
* rbultje/vp9-simd:
  vp9/x86: idct_add_16x16_ssse3.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 18:13:07 +01:00
Ronald S. Bultje
8d4c616fc0 vp9/x86: idct_add_16x16_ssse3.
Currently only dc-only and full 16x16. Other subforms will follow in the
near future. Total decoding time of ped1080p.webm goes from 9.7 to 9.3
seconds. DC-only goes from 957 -> 131 cycles, and the full IDCT goes
from ~4050 to ~745 cycles.
2013-12-14 12:13:26 -05:00
Michael Niedermayer
2224159c78 avcodec/vc1: fix DIFF2/NORM2 with width<=16
Fixes read of uninitialized memory
Fixes msan_uninit-mem_7f785da000e8_585_480i30__codec_WVC1__mode_2__framerate_29.970__type_2__preproc_17.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 18:02:01 +01:00
Michael Niedermayer
c9f72e4b81 avcodec/vc1dec: fix mby_start for interlaced content
Fixes first frame of Ticket2531

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 17:12:18 +01:00
Michael Niedermayer
017e234c20 avcodec/vc1: fix mb_height for field pictures
Fixes ticket2531

Tables are always allocated now with sufficient space for either progressive
or interlaced content. The alternative would be to detect a change
and reallocate.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 16:50:21 +01:00
Michael Niedermayer
9aba0a6f7b rtpdec_h264: Check the return value of functions doing allocations
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:46 +02:00
Martin Storsjö
6451c8853a sdp: Check theora colorspace before producing the configuration string
This avoids a memory leak (or having to worry about freeing the
config string) if the colorspace isn't accepted.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:46 +02:00
Michael Niedermayer
797f2a7913 hdsenc: Check the init_file() return code
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:46 +02:00
Michael Niedermayer
b8ed15d637 hdsenc: Fix an off by one error in an array size check
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:42 +02:00
Michael Niedermayer
417927af3c hdsenc: Avoid integer overflow
Also remove a silly leftover pair of parentheses.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-14 17:48:28 +02:00
Marton Balint
97f880e7a9 libzvbi-teletextdec: set bitmap teletext canvas dimensions
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:44 +01:00
Marton Balint
c77e0c2130 libzvbi-teletextdec: add chopped top row size to y offset
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:44 +01:00
Marton Balint
249a435989 libzvbi-teletextdec: use defined constants for bitmap char width and height
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:44 +01:00
Marton Balint
b50968169d libzvbi-teletextdec: cosmetics
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-14 15:57:43 +01:00
Diego Biurrun
5db4e88ecd configure: Detect Solaris libc in an OpenIndiana/illumos compatible way 2013-12-14 14:09:40 +01:00
Timothy Gu
c65fe9e982 examples/decoding_encoding: check av_samples_get_buffer_size() return code
Fixes CID1135756.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-14 14:02:49 +01:00
Timothy Gu
b242c156e5 examples/resample_audio: check av_samples_get_buffer_size() return code
Fixes CID1135757.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-12-14 14:02:33 +01:00
Stefano Sabatini
66a703ea01 ffprobe: only show tags when explicitly requested 2013-12-14 13:22:04 +01:00
Stefano Sabatini
2cfe70ff3e lavf/movenc: return meaningful error code from mov_write_header() 2013-12-14 13:21:58 +01:00
Stefano Sabatini
54c596fe7a lavf/movenc: improve feedback in case of unsupported codec 2013-12-14 13:21:51 +01:00
Michael Niedermayer
688c3d944d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doxy: Define a group for libswscale documentation

Conflicts:
	libavutil/avutil.h
	libswscale/swscale.h

See: 18d9398143
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 13:09:30 +01:00
Michael Niedermayer
f5013913da Merge commit 'a5a3b398fd9dce38ca50b20f182b17a256d209f2'
* commit 'a5a3b398fd9dce38ca50b20f182b17a256d209f2':
  configure: Reorder pthreads checks

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 12:37:40 +01:00
Michael Niedermayer
7431923da8 Merge commit '7cbe1ea9df83ec66403fbf6400353bcb2242bf06'
* commit '7cbe1ea9df83ec66403fbf6400353bcb2242bf06':
  configure: Move the bz2 and zlib checks below phtreads

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 11:23:57 +01:00
Michael Niedermayer
acda7c8e20 Merge commit '70a7b24d56a823894440a372c46e89e212b89c35'
* commit '70a7b24d56a823894440a372c46e89e212b89c35':
  avutil: Add deprecation ifdefs around obsolete intfloat code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 11:13:55 +01:00
Michael Niedermayer
2cfccd8060 avcodec/vc1: Factorize imode enum out / remove duplication
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 05:16:25 +01:00
Guillaume Martres
ecb21d2437 hevc: rename ptl structs and variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 03:01:56 +01:00
Guillaume Martres
c90cdf4b64 hevc: pack PTL representation using uint8_t
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 03:01:51 +01:00
Guillaume Martres
8e72e19f64 hevc: remove unused PTL flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 03:01:46 +01:00
Guillaume Martres
dddc9b7a8e hevc: don't check for errors in PTL code
The value of XXX_reserved_zero_44bits should be ignored, no need to
report an error when it's not zero.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 03:01:35 +01:00
Guillaume Martres
c6afd0aacc hevc: fix PTL parsing
This was broken in commit 36658c978f

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 03:01:22 +01:00
Michael Niedermayer
445c58a8c6 swscale/x86/rgb2rgb: Make sure COMPILE_TEMPLATE_AVX is defined
Found-by: iive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 02:54:28 +01:00
Michael Niedermayer
3f4290a206 swscale/x86/rgb2rgb_template: try to fix build without AVX
Found-by: iive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 02:22:44 +01:00
Michael Niedermayer
48016f8feb avcodec/vc1dec: propagate errors from vc1_parse_sprites()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 01:46:11 +01:00
Michael Niedermayer
5f00b333a4 avcodec/vc1dec: zero SpriteData struct
Fixes use of uninitialized data, as alternative alpha could be
calculated conditionally

Fixes part of msan_uninit-mem_7f51a8b0b3b0_1009_Arlington.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 01:46:11 +01:00
Michael Niedermayer
cf95dee3de avcodec/vc1dec: dont calculate unused values from uninitialized sprites
Fixes use of uninitialized data
Fixes part of msan_uninit-mem_7f51a8b0b3b0_1009_Arlington.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 00:59:43 +01:00
Luca Barbato
c85aad9cb2 doxy: Define a group for libswscale documentation
Uniform the style and eliminate a warning on newer doxygen version..
2013-12-13 23:53:30 +01:00
Luca Barbato
a5a3b398fd configure: Reorder pthreads checks
Some pthreads symbols might be present in libc (as shown on various *BSD)
but not all of them, leading to false positives.

Check for the most common compiler flags before the plain symbol check
to avoid known pitfalls.
2013-12-13 23:53:30 +01:00
Luca Barbato
7cbe1ea9df configure: Move the bz2 and zlib checks below phtreads
There are alternate implementations of those libraries that use pthreads.
2013-12-13 23:53:30 +01:00
Diego Biurrun
70a7b24d56 avutil: Add deprecation ifdefs around obsolete intfloat code
This long-deprecated code should disappear at the next version bump.
2013-12-13 23:45:54 +01:00
Michael Niedermayer
f5cf0ea93a avformat/asf: clear uninitialized areas of packets before returning them
Fixes use of uninitialized variables
Fixes msan_uninit-mem_7f839282b6ce_7273_msn08_VBRq70_800x600.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 23:32:45 +01:00
Michael Niedermayer
0f242e62b4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Merge pthreads/w32threads OBJS declarations

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 21:33:13 +01:00
Michael Niedermayer
1e3718e2a1 Merge commit '7c3388711b7243d059db39aa04b754baf2156934'
* commit '7c3388711b7243d059db39aa04b754baf2156934':
  configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW32

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 21:26:13 +01:00
Michael Niedermayer
2a459f5d87 Merge commit 'bdc111a162094c14660d1e88839d103a4d79e42a'
* commit 'bdc111a162094c14660d1e88839d103a4d79e42a':
  configure: Detect newer (>=4.1) versions of MinGW32

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 20:49:22 +01:00
Michael Niedermayer
7b2a19cb9e Merge commit 'a1d7d5524799bd90bc5d12e8b3063238cc0c02dd'
* commit 'a1d7d5524799bd90bc5d12e8b3063238cc0c02dd':
  build: Do not add -g to HOSTCFLAGS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 20:39:45 +01:00
James Almer
782d48c3c1 configure: remove redundant definition of __USE_MINGW_ANSI_STDIO
No need to define it twice on mingw-w64 >= v3.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-12-13 14:36:37 -05:00
Michael Niedermayer
0c23ee1312 avcodec/mjpegdec: use mallocz for progressive blocks
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f849c599487_6828_mjpeg.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 20:26:38 +01:00
Michael Niedermayer
7d7a701362 avformat/ipmovie: Fix use of uninitialized memory in OPCODE_INIT_VIDEO_BUFFERS
Fixes: msan_uninit-mem_7ffe323a25f3_5929_ipmovie_interplayvideo_interplay_dpcm__bislogo.mve
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 19:51:47 +01:00
Michael Niedermayer
7439475e69 avformat/network: check ff_socket_nonblock() return and print a debug message
Fixes CID1026744
Fixes CID1026743

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 17:08:03 +01:00
Pierre Yves MORDRET
0f02ea0afe libavcodec/dvbsub: fix for Display Definition Segment
Given ETSI EN 300 743 V1.3.1 (2006-11), 7.2.1 Display definition segment
display window parameters are given in this order XMin, XMax, YMin, YMax
if  display_window_flag is set, but here this is not the case.
As a consequence the DVB subtitles are not displayed upon some videos.

Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 16:53:22 +01:00
Diego Biurrun
79d9884e95 build: Merge pthreads/w32threads OBJS declarations 2013-12-13 16:47:50 +01:00
Diego Biurrun
7c3388711b configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW32
This enables a more C99-compliant implementation of printf et al.
2013-12-13 16:47:49 +01:00
Diego Biurrun
bdc111a162 configure: Detect newer (>=4.1) versions of MinGW32
The MinGW32 project is deprecating its old version macros.
2013-12-13 16:47:49 +01:00
Diego Biurrun
a1d7d55247 build: Do not add -g to HOSTCFLAGS
The flag is not unconditionally added to CFLAGS either and the
programs built on the host do not get habitually fed to a debugger.
2013-12-13 16:47:49 +01:00
Michael Niedermayer
1d0995e3a5 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Force one stream in caf muxer.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 15:44:45 +01:00
Michael Niedermayer
47eb15b989 avfilter/vf_pullup: fix memleak on error
Fixes CID1108604

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 15:14:03 +01:00
Michael Niedermayer
8f9569cfac avfilter/vf_pullup: Factor free_field_queue() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 15:13:01 +01:00
Carl Eugen Hoyos
fb5518cfb7 Force one stream in caf muxer.
Based on eeb975f5
2013-12-13 11:57:39 +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
Even Wiik Thomassen
43f116d162 examples/demuxing_decoding: return error when no codec found
The open_codec_context function, when it fails to find a codec, now
return AVERROR(EINVAL) to signal an error.

Before it would return the stream index, which was always >= 0, and
continue as if a codec was found. This change make it fail faster,
instead of repeated failed tries to decode frames with no codec.

Signed-off-by: Even Wiik Thomassen <e.thomassen@sportradar.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-12-13 09:45:54 +01:00
Stefano Sabatini
65a3429e7a ffprobe: add cosmetical empty line 2013-12-13 09:42:15 +01:00
Stefano Sabatini
93f0882725 ffserver: improve error feedback in case of av_write_frame() error 2013-12-13 09:42:15 +01:00
Stefano Sabatini
bed4eeab33 MAINTAINERS: remove ffserver maintainership status notice
Privately approved by Baptiste.
2013-12-13 09:42:15 +01:00
Lou Logan
d546a59a81 docs/outdevs: add a few simple ALSA examples 2013-12-12 18:21:52 -09:00
Michael Niedermayer
5d8e4f6da0 avformat/rtpenc: check av_packet_get_side_data() return, fix null ptr dereference
Fixes CID1035715

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 02:09:20 +01:00
Michael Niedermayer
c5f15f40b9 avformat/rtpdec_h264: fix null pointer dereferences
Fixes CID733716

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 02:09:20 +01:00
Michael Niedermayer
db8a53d86a avformat/sdp: fix memleak on error
Fixes CID700640
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 00:27:25 +01:00
Michael Niedermayer
180a0b1bcb avcodec/hevc_sei: fix use of uninitialized variables in decode_nal_sei_frame_packing_arrangement()
Fixes CID1135773/1135774/1135775
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-13 00:07:06 +01:00
Michael Niedermayer
3dbf9afe85 libavformat/hdsenc: check init_file() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 21:04:24 +01:00
Michael Niedermayer
7830c882fa Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegts: add HEVC registration descriptor

Conflicts:
	libavformat/mpegts.c

See: d0b7d24b80
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 20:23:58 +01:00
Michael Niedermayer
93cf43ec3f Merge commit 'a2eeed619de3bb257e82f0e06d1a580101bce54c'
* commit 'a2eeed619de3bb257e82f0e06d1a580101bce54c':
  changelog: drop redundant new attribute

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 19:55:06 +01:00
Michael Niedermayer
2644df82e6 Merge commit 'ae9d13f03e6c81ea00fafe6aa74b4a849ec8da1a'
* commit 'ae9d13f03e6c81ea00fafe6aa74b4a849ec8da1a':
  img2: add stereo 3d still picture file extensions

Conflicts:
	libavformat/img2.c

See: 6fe12c7ff2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 19:48:36 +01:00
Michael Niedermayer
30aa9b727d Merge commit '46c0cbd5dc01196949105e49f2ded10aa85a6e39'
* commit '46c0cbd5dc01196949105e49f2ded10aa85a6e39':
  rtsp: suppress a incompatible pointer types warning

Conflicts:
	libavformat/rtsp.c

See: 0079232299
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 19:37:46 +01:00
Michael Niedermayer
a435a03374 Merge commit '6b45f05ef5b241fd1513702119af9c30056a0ac5'
* commit '6b45f05ef5b241fd1513702119af9c30056a0ac5':
  parseutils: fix discarding const attribute warning

Conflicts:
	libavutil/parseutils.c

See: fe87b2e79c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 19:12:33 +01:00
Michael Niedermayer
d780fdb904 avformat/hlsenc: copy metadata
Fixes Ticket2296

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 18:41:39 +01:00
James Almer
c619e14c31 avformat/oggparseopus: Check opus_duration() return value
Regression since 39d11d599c

os->pduration would be wrongly assigned a negative value on invalid packets
instead of aborting.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 17:26:19 +01:00
Carl Eugen Hoyos
9fa75be96d mpegts: add HEVC registration descriptor 2013-12-12 16:10:15 +01:00
Vittorio Giovara
a2eeed619d changelog: drop redundant new attribute 2013-12-12 16:10:15 +01:00
Martin Lambers
ae9d13f03e img2: add stereo 3d still picture file extensions 2013-12-12 16:10:15 +01:00
Vittorio Giovara
46c0cbd5dc rtsp: suppress a incompatible pointer types warning 2013-12-12 16:10:14 +01:00
Vittorio Giovara
6b45f05ef5 parseutils: fix discarding const attribute warning 2013-12-12 16:10:14 +01:00
Michael Niedermayer
30ee4b3393 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mp3adu: Set the channel layout properly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 13:02:20 +01:00
Martin Storsjö
35686a289f mp3adu: Set the channel layout properly
This fixes decoding, broken since 7e35037.

This is similar to what was done for the normal mp3 decoder in
f4a86bc9.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-12 10:18:25 +02:00
Michael Niedermayer
551a679795 avformat/oggdec: reset end_trimming when it has been used, so it cannot be used twice by mistake
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 05:33:21 +01:00
Dale Curtis
9c0dd7b462 avformat/oggdec: reset end_trimming in ogg_reset()
Fixes the output when seeking back to the start

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 05:33:02 +01:00
Michael Niedermayer
3efe5e3b09 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtspdec: Fix keep-alive request for ACTi cameras

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:41:02 +01:00
Michael Niedermayer
44967ab60a Merge commit 'd7b3ee9a3a03ab88d61a5895fbdbc6689f4dd671'
* commit 'd7b3ee9a3a03ab88d61a5895fbdbc6689f4dd671':
  lavc: deprecate avcodec_get_frame_defaults().

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:32:15 +01:00
Michael Niedermayer
e3578fd525 Merge commit '598ce4ab4f1893e0661fc038101487e511937877'
* commit '598ce4ab4f1893e0661fc038101487e511937877':
  h264: call av_frame_unref() instead of avcodec_get_frame_defaults().

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:25:31 +01:00
Michael Niedermayer
525a7d9b78 Merge commit '48d17ee6dc2b2a552f645484f200c2946bf24607'
* commit '48d17ee6dc2b2a552f645484f200c2946bf24607':
  api-example: remove an unneeded call to avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:19:53 +01:00
Michael Niedermayer
0506cc2cc3 Merge commit '281a40e18f923510f2067d05c5b0cf08cc49dfee'
* commit '281a40e18f923510f2067d05c5b0cf08cc49dfee':
  lavf: remove an unneeded call to avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:14:21 +01:00
Michael Niedermayer
3b2b07397c Merge commit '2d1f4288dd02a624cb8b86ab06371d6434c9da69'
* commit '2d1f4288dd02a624cb8b86ab06371d6434c9da69':
  mpegvideo: call av_frame_unref() instead of avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-12 00:08:08 +01:00
Michael Niedermayer
efb5ebe832 Merge commit 'b06c8bce02b15115a4789252365df2dda0c4713c'
* commit 'b06c8bce02b15115a4789252365df2dda0c4713c':
  mpegvideo: remove an unneeded call to avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:55:51 +01:00
Michael Niedermayer
5a15bd6f2f Merge commit '84f131921ffb43d8070d5680e91f6a24d66ccac4'
* commit '84f131921ffb43d8070d5680e91f6a24d66ccac4':
  avplay: do not call avcodec_get_frame_defaults().

Conflicts:
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:49:44 +01:00
Michael Niedermayer
27e7977982 Merge commit '95a8a5aca60ce37d3abdf121a0285c2e317cf521'
* commit '95a8a5aca60ce37d3abdf121a0285c2e317cf521':
  lavc: call av_frame_unref() instead of avcodec_get_frame_defaults().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:41:27 +01:00
Michael Niedermayer
e22e943ef9 Merge commit '674fa49110a661694188a958be13d529b7c8c5dd'
* commit '674fa49110a661694188a958be13d529b7c8c5dd':
  avconv: do not call avcodec_get_frame_defaults()

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:36:10 +01:00
Michael Niedermayer
409a143e4b Merge commit '943135621830ac3857d3cf766cfc280a95bb3c13'
* commit '943135621830ac3857d3cf766cfc280a95bb3c13':
  lavc: deprecate avcodec_free_frame()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:24:48 +01:00
Michael Niedermayer
4cbf3eb9e6 Merge commit 'eb891b3114f499e96b9faddd0b0ae856345dfbd9'
* commit 'eb891b3114f499e96b9faddd0b0ae856345dfbd9':
  Replace all uses of avcodec_free_frame with av_frame_free().

Conflicts:
	doc/examples/decoding_encoding.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:18:51 +01:00
Michael Niedermayer
dee6d5f51c Merge commit '17a10d51b8351ce9a57fcb6537b6a3c6ec8ba5e9'
* commit '17a10d51b8351ce9a57fcb6537b6a3c6ec8ba5e9':
  hevc: set time_base when possible

See: f90281ca97
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:16:09 +01:00
Michael Niedermayer
12a4042445 Merge commit '33452aede6acab78f726cd1924824585f00765cc'
* commit '33452aede6acab78f726cd1924824585f00765cc':
  hevc: store the VPS list as an AVBufferRef, just like the others *PS

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_ps.c

See: 36658c978f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:08:45 +01:00
Michael Niedermayer
1dbb3cfa17 Merge commit 'b769cf4b44c8112827c2fdfcab74bd95600fd6d3'
* commit 'b769cf4b44c8112827c2fdfcab74bd95600fd6d3':
  hevc: do not dereference pointer before NULL check in verify_md5()

See: f2eca8d060
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 23:03:01 +01:00
Michael Niedermayer
95ad2483c3 Merge commit '3bb91a1b5c4a0c5ec9c4d3b6649b23285c3d7f26'
* commit '3bb91a1b5c4a0c5ec9c4d3b6649b23285c3d7f26':
  configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW64

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 22:52:28 +01:00
Michael Niedermayer
37437d97a8 tools/probetest: Check av_realloc() return code
Fixess CID1135761
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 22:29:22 +01:00
Michael Niedermayer
f6173fed60 postproc: fix null pointer dereference with invalid option strings
Fixes CID1135760
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 22:28:42 +01:00
Rumin Sam
70e981cf5d rtspdec: Fix keep-alive request for ACTi cameras
Some ACTi cameras fail if "*" is passed as the URI.

Signed-off-by: Ismael Luceno <ismael.luceno@corp.bluecherry.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-11 22:48:55 +02:00
Michael Niedermayer
9ab5cf5417 avutil/avstring: fix () position
Fixes CID1135751

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 21:13:51 +01:00
Anton Khirnov
d7b3ee9a3a lavc: deprecate avcodec_get_frame_defaults().
Also bump libavcodec micro and add an APIchanges entry saying that
av_frame_* should now be used instead of the lavc AVFrame functions.
2013-12-11 20:39:55 +01:00
Anton Khirnov
598ce4ab4f h264: call av_frame_unref() instead of avcodec_get_frame_defaults().
This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
2013-12-11 20:39:55 +01:00
Anton Khirnov
48d17ee6dc api-example: remove an unneeded call to avcodec_get_frame_defaults().
avcodec_decode_audio4() resets the frame itself.
2013-12-11 20:39:55 +01:00
Anton Khirnov
281a40e18f lavf: remove an unneeded call to avcodec_get_frame_defaults().
avcodec_decode_*() resets the frame itself.
2013-12-11 20:39:55 +01:00
Anton Khirnov
2d1f4288dd mpegvideo: call av_frame_unref() instead of avcodec_get_frame_defaults().
This is a temporary workaround to allow deprecating
avcodec_get_frame_defaults(). The proper solution will be using a
properly allocated AVFrame in Picture.
2013-12-11 20:39:55 +01:00
Anton Khirnov
b06c8bce02 mpegvideo: remove an unneeded call to avcodec_get_frame_defaults().
ff_mpeg_unref_picture() already resets the frame.
2013-12-11 20:39:55 +01:00
Anton Khirnov
84f131921f avplay: do not call avcodec_get_frame_defaults().
avcodec_decode_audio4() will reset the frame itself.
2013-12-11 20:39:55 +01:00
Anton Khirnov
95a8a5aca6 lavc: call av_frame_unref() instead of avcodec_get_frame_defaults().
avcodec_get_frame_defaults() will be deprecated.
2013-12-11 20:39:55 +01:00
Anton Khirnov
674fa49110 avconv: do not call avcodec_get_frame_defaults()
Strictly speaking it is not correct to call it on refcounted frames, in
any case it is unnecessary, since filtered_frame is always unreferenced
after poll_filter() returns.
2013-12-11 20:39:54 +01:00
Anton Khirnov
9431356218 lavc: deprecate avcodec_free_frame()
av_frame_free() should be used instead.
2013-12-11 20:39:54 +01:00
Anton Khirnov
eb891b3114 Replace all uses of avcodec_free_frame with av_frame_free(). 2013-12-11 20:39:54 +01:00
Guillaume Martres
17a10d51b8 hevc: set time_base when possible
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-11 20:39:54 +01:00
Gildas Cocherel
33452aede6 hevc: store the VPS list as an AVBufferRef, just like the others *PS
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-11 20:39:54 +01:00
Michael Niedermayer
b769cf4b44 hevc: do not dereference pointer before NULL check in verify_md5()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-11 20:39:54 +01:00
Michael Niedermayer
81c1197494 avformat/utils: Check avcodec_open2() return code in av_find_stream_info()
Fixes CID1135750

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 20:32:05 +01:00
Diego Biurrun
3bb91a1b5c configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW64
This enables a more POSIX-compliant printf implementation, that
allows using length modifiers like 'z'.
2013-12-11 20:25:28 +01:00
Michael Niedermayer
6722e564a8 avformat/hdsenc: fix off by 1 error in array size check
Fixes CID1135763, CID1135764

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 20:23:31 +01:00
Timothy Gu
d6c5fd9f15 tools/: Add gen-rc tool for generating Windows resource files
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 19:27:35 +01:00
Michael Niedermayer
572965c9a6 avformat/hdsenc: fix unintentional integer overflow in hds_write_packet()
Fixes CID1135762

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 16:33:26 +01:00
Michael Niedermayer
95d2fc6a76 avformat/hdsenc: Check rename() return value
Fixes CID1135748
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 16:30:07 +01:00
Michael Niedermayer
7441d1ec33 avformat/aviobuf: fix null dereference in avio_close_dyn_buf()
Fixes CID1135769

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 16:16:04 +01:00
Michael Niedermayer
0fe6906d96 avfilter/aeval: Fix use of uninitialized variable
Fixes CID1135776

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 15:31:32 +01:00
Michael Niedermayer
b6eee405ff avcodec/utils: Print warning if avcodec_set_dimensions() failed
Fixes CID1135744
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 15:28:27 +01:00
Michael Niedermayer
0f65503799 avcodec/bitstream: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 14:34:45 +01:00
Carl Eugen Hoyos
945a440d11 Force one stream for raw muxers.
Based on eeb975f5
Fixes ticket #3217.

Reviewed-by: Nicolas George
2013-12-11 13:15:49 +01:00
Michael Niedermayer
7f39352a1b avformat/oggparseopus: calculate pts/dts for initial packets after seeking
based on code from oggparsevorbis
Fixes Ticket3124
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 05:00:50 +01:00
Michael Niedermayer
39d11d599c avformat/oggparseopus: factor opus_duration() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 04:17:19 +01:00
Michael Niedermayer
43f9255368 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  alsdec: check block length

See: 0ceca269b6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 01:24:35 +01:00
Michael Niedermayer
42874666a6 avcodec/snowdec: check av_frame_ref() return value
Fixes CID1135742

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 01:13:24 +01:00
Michael Niedermayer
11679e1b90 avcodec/pthread_frame: Fix memleak of AVCodecContext on error
Fixes CID1135767
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 00:27:09 +01:00
Michael Niedermayer
81ed7efbe2 avcodec/indeo3: check the return code of ff_set_dimensions()
This is currently redundant as the checks before it are tighter than
the checks in ff_set_dimensions() but its more robust not to depend
on that.

Fixes CID1135740
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-11 00:05:34 +01:00
Michael Niedermayer
d9339ab553 avcodec/h264: fix code that blindly dereferences NULL DPB
Fixes mixed flushing and decoding NULL packets
Found-by: wm4

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 23:50:08 +01:00
Michael Niedermayer
e23b18321f avcodec/hnm4video: change width/height to int
Fixes hypothetical integer overflows
Related to CID1135770 & CID1135771

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 23:50:08 +01:00
Michael Niedermayer
3af9d8269e avcodec/g2meet: check the return code of ff_set_dimensions()
This is currently redundant as the checks before it are tighter than
the checks in ff_set_dimensions() but its more robust not to depend
on that.

Fixes CID1135739
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 18:34:52 +01:00
Michael Niedermayer
7fa9f7ef1c dvdsub_parse_extradata: fix memleak
Fixes CID1135765
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 18:30:44 +01:00
Guillaume Martres
f90281ca97 hevc: Correctly set time_base
- Try reading the time_base information from the VPS too, not just the VUI
- Only set time_base when an SPS is activated, not when it's decoded.
- Reduce the fraction before setting it.
- Don't set anything if the fraction is invalid (because the VUI is not
  present or because the encoded value is invalid).

Conflicts:
	libavcodec/hevc_ps.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 16:20:53 +01:00
Guillaume Martres
679a6377e4 hevc: avoid some unnecessary differences with libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 16:20:48 +01:00
Michael Niedermayer
6026a5ad4f sonic: Switch to rangecoder
significantly improves compression rate

This also bumps version to 2 and drops support for version 0/1
If someone used version 0/1 despite their experimental status then support
for these can and should be added back

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 16:18:51 +01:00
Michael Niedermayer
c61daa68e4 avcodec/sonic: add larger version and minor_version fields with version >= 2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 15:56:01 +01:00
Michael Niedermayer
4c32629b82 avcodec/sonic: move version to the context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 15:50:12 +01:00
Michael Niedermayer
ec4d761c74 avcodec/sonic: fix memleaks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 14:42:17 +01:00
Michael Niedermayer
8477e63d3c sonic: use M_SQRT2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 14:38:38 +01:00
Reinhard Tartler
2a0fb7286d alsdec: check block length
Fix writing over the end

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Addresses: CVE-2013-0845
2013-12-10 07:21:40 -05:00
Michael Niedermayer
f8d8d2e235 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Move log2 dependency declaration to a place it takes effect

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 11:52:51 +01:00
Diego Biurrun
1a5fdf9519 configure: Move log2 dependency declaration to a place it takes effect
It was incorrectly moved in c869fcdeac.
2013-12-10 10:25:12 +01:00
Michael Niedermayer
8e5a2989a3 avcodec/libvpx: set CODEC_CAP_EXPERIMENTAL correctly instead of testing at codec open time
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 04:02:10 +01:00
Michael Niedermayer
0e575c24d6 ffv1.4: use 2 coefficients for calculating the Y plane in the RCT
0-0.7% improved compression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 03:16:58 +01:00
Michael Niedermayer
2bdda9a15c avcodec/ffv1enc: fix use of uninitalized variable in choose_rct_params()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 02:53:04 +01:00
Michael Niedermayer
2836ef688b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Split host and target libc detection

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 01:56:49 +01:00
Michael Niedermayer
1311ae8eee Merge commit 'c869fcdeac3b7cd71a852b928902daadeca55685'
* commit 'c869fcdeac3b7cd71a852b928902daadeca55685':
  configure: Move toolchain dependency declarations to a more appropriate place

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 01:45:37 +01:00
Michael Niedermayer
985c5f226a avcodec/utils: check that extended data has been set correctly instead of forcing it in avcodec_decode_video2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 01:11:32 +01:00
Michael Niedermayer
7102083a26 avcodec/libutvideodec: free coded_frame with av_frame_free() instead if av_free*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 01:11:32 +01:00
Michael Niedermayer
4c1b4ae1ba avcodec/libutvideodec: use av_frame_move_ref()
AVFrames cannot be copied literally, their definition is in
avutil and their extended_data can point to their data[]

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 01:11:32 +01:00
Michael Niedermayer
999ee28124 avcodec/utils: dont depend on the channel layout in unrefcount_frame()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 01:11:32 +01:00
Carl Eugen Hoyos
aae5c4d40e doc: Fix adelay example.
Fixes ticket #3211.
2013-12-09 23:56:23 +01:00
Michael Niedermayer
31a52a60c9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hevc: parse frame packing arrangement SEI messages and save relevant stereo3d information

Conflicts:
	libavcodec/hevc.h
	libavcodec/hevc_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 22:25:38 +01:00
Michael Niedermayer
33dfddf653 Merge commit '3d1d175367f1f22e0c4952299a258272e2e2acf1'
* commit '3d1d175367f1f22e0c4952299a258272e2e2acf1':
  mpeg12enc: set frame packing information when relevant metadata is found

Conflicts:
	libavcodec/mpeg12enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 22:16:27 +01:00
Michael Niedermayer
1dab49c344 Merge commit 'bacc2869f37b17b2a89e1083289fdaf7f95f27bc'
* commit 'bacc2869f37b17b2a89e1083289fdaf7f95f27bc':
  mpeg12dec: parse frame packing arrangement user_data and save relevant stereo3d information

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 22:10:57 +01:00
Michael Niedermayer
2c9fc694f5 Merge commit '09cb75cdeba420d680bcb165a1ef668d8f381fed'
* commit '09cb75cdeba420d680bcb165a1ef668d8f381fed':
  libx264: set frame packing information when relevant information is found

Conflicts:
	libavcodec/libx264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 22:04:29 +01:00
Michael Niedermayer
be6e81463c Merge commit '5b10ef729f610fcbc9c485e7b643ce53268144cb'
* commit '5b10ef729f610fcbc9c485e7b643ce53268144cb':
  h264: parse frame packing arrangement SEI messages and save relevant stereo3d information

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 21:53:23 +01:00
Michael Niedermayer
7a60348053 Merge commit '7e244c68600f479270e979258e389ed5240885fb'
* commit '7e244c68600f479270e979258e389ed5240885fb':
  avframe: add codec-independent stereoscopic metadata

Conflicts:
	Changelog
	libavutil/Makefile
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 21:33:51 +01:00
Lenny Wang
64f73acd1d cmdutils & opencl: add -opencl_bench option to test and show available OpenCL devices
Reviewed-by: Wei Gao <highgod0401@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 21:21:36 +01:00
Michael Niedermayer
8e702bd3a8 Merge commit 'd64341e498fa46c6cf4c23d408177d7489559654'
* commit 'd64341e498fa46c6cf4c23d408177d7489559654':
  configure: Prefix libc-related variables with "libc_"

Conflicts:
	libavdevice/Makefile
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 20:52:14 +01:00
Michael Niedermayer
c9afeda55e Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Fix remuxing of IMA_QT in mov.
  Do not detect "00000000..." (and other non-changing values) as adp.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 20:45:52 +01:00
Michael Niedermayer
3a5cbc91a4 Merge commit '61b203ffe6c71789acb14f51483d63fe9e516842'
* commit '61b203ffe6c71789acb14f51483d63fe9e516842':
  configure: detect Solaris libc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 20:45:26 +01:00
Michael Niedermayer
8c677a9f06 Merge commit '9b8d11a76ae7bca8bbb58abb822138f8b42c776c'
* commit '9b8d11a76ae7bca8bbb58abb822138f8b42c776c':
  avcodec: Use av_reallocp where suitable

Conflicts:
	libavcodec/bitstream.c
	libavcodec/eatgv.c
	libavcodec/flashsv.c
	libavcodec/libtheoraenc.c
	libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 20:31:29 +01:00
Michael Niedermayer
94a849b8b6 Merge commit 'd4f1188d1a662fed5347e70016da49e01563e8a8'
* commit 'd4f1188d1a662fed5347e70016da49e01563e8a8':
  dv: use AVFrame API properly

Conflicts:
	libavcodec/dvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 20:10:15 +01:00
Michael Niedermayer
785066ae8a Merge commit 'c9ca220ef26e36abd22085e6fa156c0dbc43bbf0'
* commit 'c9ca220ef26e36abd22085e6fa156c0dbc43bbf0':
  ac3dec: make drc_scale exponentially

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 19:58:07 +01:00
Michael Niedermayer
7a901eb33a Merge commit '37a749012aaacc801fe860428417a6d7b81c103f'
* commit '37a749012aaacc801fe860428417a6d7b81c103f':
  lavc: rework handling of refcounted_frames=0

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 19:37:53 +01:00
Diego Biurrun
2756516466 configure: Split host and target libc detection 2013-12-09 18:41:37 +01:00
Diego Biurrun
c869fcdeac configure: Move toolchain dependency declarations to a more appropriate place 2013-12-09 18:41:13 +01:00
Michael Niedermayer
58f70f1701 Merge commit 'df7aba52b51007db50410abe15fe28391abd8757'
* commit 'df7aba52b51007db50410abe15fe28391abd8757':
  frame: cosmetics, reindent

Conflicts:
	libavutil/frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 18:16:35 +01:00
Michael Niedermayer
3f5f955c53 Merge commit 'c342132fa8a29692e28c98238e3a31da5c407e42'
* commit 'c342132fa8a29692e28c98238e3a31da5c407e42':
  frame: copy flags in av_frame_copy_props()

Conflicts:
	libavutil/frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 17:59:33 +01:00
Michael Niedermayer
f3acdd44bf Merge commit 'a1ee1648690726b34e98eaf8db04fd7b3303cfc8'
* commit 'a1ee1648690726b34e98eaf8db04fd7b3303cfc8':
  lavc/decode_video(): always unref the frame if there is no output in decode_video

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 17:48:24 +01:00
Michael Niedermayer
04dac5d1e0 Merge commit '85f947aefb3dae81f65f518acdffa8e31c679654'
* commit '85f947aefb3dae81f65f518acdffa8e31c679654':
  lavc: remove a pointless check in decode_audio4()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 16:13:42 +01:00
Michael Niedermayer
f4332e9591 Merge commit 'd4f0f2d1e80b76260eb6b9cdde472ac069dfda56'
* commit 'd4f0f2d1e80b76260eb6b9cdde472ac069dfda56':
  lavc: use buf[0] instead of data[0] as the indicator of an allocated frame

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 16:07:17 +01:00
Vittorio Giovara
acb77dff6a hevc: parse frame packing arrangement SEI messages and save relevant stereo3d information 2013-12-09 16:02:43 +01:00
Vittorio Giovara
3d1d175367 mpeg12enc: set frame packing information when relevant metadata is found 2013-12-09 16:02:43 +01:00
Vittorio Giovara
bacc2869f3 mpeg12dec: parse frame packing arrangement user_data and save relevant stereo3d information 2013-12-09 16:02:43 +01:00
Vittorio Giovara
09cb75cdeb libx264: set frame packing information when relevant information is found 2013-12-09 16:02:43 +01:00
Vittorio Giovara
5b10ef729f h264: parse frame packing arrangement SEI messages and save relevant stereo3d information 2013-12-09 16:02:43 +01:00
Vittorio Giovara
7e244c6860 avframe: add codec-independent stereoscopic metadata 2013-12-09 16:02:43 +01:00
Michael Niedermayer
cefabaad3e Merge commit 'e5419709f50593769037ab77d7102f82d9260784'
* commit 'e5419709f50593769037ab77d7102f82d9260784':
  lavc: remove the extended_data workarounds.

Conflicts:
	libavcodec/utils.c

One hunk is not merged as not all codecs are updated yet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 14:32:19 +01:00
Carl Eugen Hoyos
362383b743 Fix remuxing of IMA_QT in mov.
Fixes ticket #1603.
2013-12-09 14:24:46 +01:00
Carl Eugen Hoyos
c5a837658a Do not detect "00000000..." (and other non-changing values) as adp. 2013-12-09 13:51:00 +01:00
Michael Niedermayer
45fd4ec9ef Merge commit 'd351ef47d0e0ccb7de96b37f137c16b2885580ac'
* commit 'd351ef47d0e0ccb7de96b37f137c16b2885580ac':
  pthread_frame: use the AVFrame API properly.

Conflicts:
	libavcodec/pthread_frame.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 13:25:17 +01:00
Carl Eugen Hoyos
b8667bccad Revert: flvenc: Don't pretend to support muxing "plain" VP6
Muxing VP6 is used by applications and works with Flashplayer.

Reported-by: David Bertrand
2013-12-09 13:18:29 +01:00
Michael Niedermayer
8947f47fdf Merge commit 'b605b123ef1d3bac0e7c221d8d7fa74cd8c7253c'
* commit 'b605b123ef1d3bac0e7c221d8d7fa74cd8c7253c':
  mxpegdec: use the AVFrame API properly.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 13:02:20 +01:00
Michael Niedermayer
37945584bf Merge commit 'afa21a12bf084f905187615706b0a8d92bc98661'
* commit 'afa21a12bf084f905187615706b0a8d92bc98661':
  p*menc: use the AVFrame API properly.

Conflicts:
	libavcodec/Makefile
	libavcodec/pamenc.c
	libavcodec/pnmenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 12:54:59 +01:00
Michael Niedermayer
6393038676 Merge commit 'e2274aa555f023e4f4e4819bf29b2d7e0adec7d5'
* commit 'e2274aa555f023e4f4e4819bf29b2d7e0adec7d5':
  mjpegdec: use the AVFrame API properly.

Conflicts:
	libavcodec/mjpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 12:42:10 +01:00
anatoly
2fade10cb0 Add support for picture_ptr field in MJpegDecodeContext
Signed-off-by: Anton Khirnov <anton@khirnov.net>
(cherry picked from commit e0e3b8b297)

Conflicts:

	libavcodec/jpeglsdec.c
	libavcodec/mjpegbdec.c
	libavcodec/mjpegdec.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 12:24:50 +01:00
Michael Niedermayer
9eac7c435f Merge commit 'f0b234ab9e406efee85c17eb435db646092a943b'
* commit 'f0b234ab9e406efee85c17eb435db646092a943b':
  avformat: AviSynth demuxer rewrite

Conflicts:
	configure
	libavformat/avisynth.c

See: b9ad009475 (as well as later commits)
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 12:03:09 +01:00
Diego Biurrun
d64341e498 configure: Prefix libc-related variables with "libc_"
Simplifies host/target libc detection splitting.
2013-12-09 11:47:43 +01:00
Sean McGovern
61b203ffe6 configure: detect Solaris libc
Add preprocessor flags for API availability as necessary.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-12-09 11:46:44 +01:00
Alexandra Khirnova
9b8d11a76a avcodec: Use av_reallocp where suitable
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-09 12:27:51 +02:00
Anton Khirnov
d4f1188d1a dv: use AVFrame API properly 2013-12-09 09:10:14 +01:00
John Stebbins
c9ca220ef2 ac3dec: make drc_scale exponentially
The a52 spec suggests that "partial compression" should scale the
drc value in this manner.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-09 08:54:42 +01:00
Anton Khirnov
37a749012a lavc: rework handling of refcounted_frames=0
Use only proper AVFrame API (no assigning of whole frames, since that
hardcodes sizeof(AVFrame) into lavc).

Make a copy of the side data, so the caller can use av_frame_unref/free
on non-refcounted frames, eliminating the need for
avcodec_get_frame_defaults()/avcodec_free_frame().
2013-12-09 08:54:29 +01:00
Anton Khirnov
df7aba52b5 frame: cosmetics, reindent 2013-12-09 08:45:08 +01:00
Anton Khirnov
c342132fa8 frame: copy flags in av_frame_copy_props()
Flags can be considered metadata (at least those that are defined now).
2013-12-09 08:45:01 +01:00
Anton Khirnov
a1ee164869 lavc/decode_video(): always unref the frame if there is no output in decode_video
Not just on failure. This is the same thing that is done in the audio
path and should prevent leaks in decoders that allocate a frame, but
then end up not writing into it.
2013-12-09 08:44:34 +01:00
Anton Khirnov
85f947aefb lavc: remove a pointless check in decode_audio4()
av_frame_unref() works fine on unallocated frames.
2013-12-09 08:44:24 +01:00
Anton Khirnov
d4f0f2d1e8 lavc: use buf[0] instead of data[0] as the indicator of an allocated frame
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-12-09 08:44:11 +01:00
Anton Khirnov
e5419709f5 lavc: remove the extended_data workarounds.
All decoders should now handle it properly.
2013-12-09 08:42:52 +01:00
Anton Khirnov
d351ef47d0 pthread_frame: use the AVFrame API properly.
Remove the extended_data workaround, all decoders should now handle this
properly.
2013-12-09 08:42:25 +01:00
Anton Khirnov
b605b123ef mxpegdec: use the AVFrame API properly. 2013-12-09 08:41:57 +01:00
Anton Khirnov
afa21a12bf p*menc: use the AVFrame API properly. 2013-12-09 08:41:20 +01:00
Anton Khirnov
e2274aa555 mjpegdec: use the AVFrame API properly. 2013-12-09 08:40:29 +01:00
Michael Niedermayer
2d4ef7c905 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Move adding of compat objects out of libc detection

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 04:47:20 +01:00
Michael Niedermayer
8e70fdab36 Merge commit '4958f35a2ebc307049ff2104ffb944f5f457feb3'
* commit '4958f35a2ebc307049ff2104ffb944f5f457feb3':
  dsputil: Move apply_window_int16 to ac3dsp

Conflicts:
	libavcodec/arm/ac3dsp_init_arm.c
	libavcodec/arm/ac3dsp_neon.S
	libavcodec/x86/ac3dsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 04:12:40 +01:00
James Almer
a12f679a5d common.mak: Less ugly version of the previous windres fix
Using subst here is a really ugly hack

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 02:47:55 +01:00
James Almer
0cde2ae3f1 configure: Move MinGW64 specific check to the correct place
It was misplaced during merge of commit 120797e2ef

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 02:06:21 +01:00
James Almer
5f302b1f38 common.mak: fix the current fate failures with windres
Tested-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 02:02:37 +01:00
Michael Niedermayer
b07da13ac0 avcodec/ffv1enc: support forcing experimental 1.4 version
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 00:39:02 +01:00
Michael Niedermayer
7854d2d251 avcodec/ffv1: support adjusting the g vs r + b coefficient in the RCT
about 1% better compression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 00:37:38 +01:00
d s
f0b234ab9e avformat: AviSynth demuxer rewrite
Directly loads AviSynth through LoadLibrary instead of relying on
Video for Windows, and supports using AvxSynth (via dlopen) to
open scripts on Linux and OS X.

Error messages from AviSynth/AvxSynth are now reported through
av_log and exit, rather than the traditional behavior of generating
an error video that the user would need to watch to diagnose.

The main rewrite was authored by d s <avxsynth.testing@gmail.com>
from the AvxSynth team, with additional contributions by

Oka Motofumi <chikuzen.mo@gmail.com>
Stephen Hutchinson <qyot27@gmail.com>
Diego Biurrun <diego@biurrun.de>
Anton Khirnov <anton@khirnov.net>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-08 21:54:50 +01:00
Diego Biurrun
19c20a0a1a configure: Move adding of compat objects out of libc detection 2013-12-08 21:09:02 +01:00
Michael Niedermayer
1b26460788 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Separate MinGW32 and MinGW64 libc handling

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-08 19:01:02 +01:00
Andrey Utkin
c1b9d7189d avformat/rtpdec: Enable GSM RTP depacketization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-08 18:38:01 +01:00
Alexander Strasser
cea5812fa7 configure: Special case libfreetype test
Include the freetype header, in-directly through a macro, like it
is done in the drawtext filter. Do not break if the header is moved.

Unfortunately the drawtext filter included the file where the include
macros are defined in a wrong way. This is not needed and breaks the
build. Remove that #include line too.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2013-12-08 18:21:46 +01:00
Diego Biurrun
4958f35a2e dsputil: Move apply_window_int16 to ac3dsp
The (optimized) functions are used nowhere else.
2013-12-08 17:57:15 +01:00
Michael Niedermayer
bc9cee98c0 avfilter/vf_mergeplanes: specify pixel format min/max
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-08 16:07:19 +01:00
Michael Niedermayer
6faf426470 avcodec/mpeg4video: fix 2 more incorrectly associated comments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-08 16:06:23 +01:00
Michael Niedermayer
eb87d1f678 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libvpx: do not mark VP9 as experimental when using libvpx >= 1.3.0

Conflicts:
	libavcodec/libvpxdec.c
	libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-08 13:49:16 +01:00
Diego Biurrun
120797e2ef configure: Separate MinGW32 and MinGW64 libc handling 2013-12-08 01:00:36 +01:00
James Almer
ae330070ee libvpxenc: token_parts is VP8 specific
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-08 00:38:40 +01:00
Guillaume Martres
9aa053cede libvpx: do not mark VP9 as experimental when using libvpx >= 1.3.0
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-12-08 00:28:27 +01:00
James Almer
e2f800f8b7 windres: Track dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 19:10:27 +01:00
Michael Niedermayer
d042c8251d Merge remote-tracking branch 'rbultje/vp9-simd'
* rbultje/vp9-simd:
  vp9: implement top/left half (4x4) sub-8x8-IDCT.
  vp9: split pre-load of 11585x2 out of 1d idct macro.
  vp9: minor refactorings in idct ssse3 assembly.
  vp9: split x86 assembly in two files.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 19:00:09 +01:00
Ronald S. Bultje
92436e8ad9 vp9: implement top/left half (4x4) sub-8x8-IDCT.
For that specific case (eob>3&&eob<=12), runtime of idct8x8 goes from
668 to 477 cycles. For all idct8x8, runtime goes from 521 to 490 cycles.
2013-12-07 12:39:36 -05:00
Ronald S. Bultje
b2045c44a9 vp9: split pre-load of 11585x2 out of 1d idct macro.
This allows us to load it only once, instead of twice, in this function.
2013-12-07 12:39:36 -05:00
Ronald S. Bultje
f9a0d4c6e0 vp9: minor refactorings in idct ssse3 assembly.
Make register usage in macros explicit; change mulsub_2w_4x to use 2
instead of 3 temp registers.
2013-12-07 12:39:35 -05:00
Ronald S. Bultje
8729964b99 vp9: split x86 assembly in two files.
(And in future, loopfilter or intra pred could be put in their own
respective files also.)
2013-12-07 12:39:35 -05:00
Michael Niedermayer
c6959918f6 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: set default window size before starting audio
  ffplay: factor out function setting default window size
  ffplay: remove no longer necessary codec flush
  ffplay: do not wait for flushing the picture queue on flush packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 16:11:25 +01:00
Michael Niedermayer
e8ac905dae avutil/opt: Implement av_opt_set_defaults* in O(N) instead of O(N²) time
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:09:36 +01:00
Michael Niedermayer
0aedf90e62 avutil/opt: factor set_string_color() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:08:20 +01:00
Michael Niedermayer
758d4e4067 avutil/opt: factor set_string_video_rate() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:08:19 +01:00
Michael Niedermayer
9648c4fe9c avutil/opt: factor set_string_image_size() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 14:07:52 +01:00
Michael Niedermayer
7f763775aa avformat/utils: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 11:59:53 +01:00
Michael Niedermayer
4dfc8f69b2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dcadec: Decode LFE to avoid adding random data when downmixing with LFE

See: 6e7de11444
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 11:52:42 +01:00
Michael Niedermayer
1770da18f7 avformat/utils: reject poorly fitting rfps values earlier
This avoids collecting statistics for rfps values that very likely
will get rejected later.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 04:20:05 +01:00
Michael Niedermayer
ba189b1db4 avformat/mov: use rfps_add_frame() only for video
it makes no sense for other streams

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 03:23:49 +01:00
Michael Niedermayer
4d18060e56 swscale/utils: fill xyz tables only when they will be used
makes the first call to sws_getContext() 1ms faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-07 02:04:31 +01:00
Michael Niedermayer
f52852098d avutil/utils: run ff_check_pixfmt_descriptors() only when ASSERT_LEVEL is > 0
this safes about 0.1ms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 23:51:58 +01:00
Michael Niedermayer
b6a9719941 dcadec: Decode LFE to avoid adding random data when downmixing with LFE
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-06 23:37:05 +01:00
Michael Niedermayer
a044a183a3 avutil/log: skip IO calls on empty strings
These occur when no context is set for example, thus they are common

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 23:30:34 +01:00
Michael Niedermayer
d6838309fe avutil/log: skip setting color for default (AV_LOG_INFO) level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 23:28:57 +01:00
Michael Niedermayer
2c21e2ee4c avutil/log: merge calls that set ansi color and print the string
about 1/3 or so faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 23:27:45 +01:00
James Almer
22ef9cb46d avresample: Include libavutil/avutil.h in version.h
Should fix issues compiling lavr's Windows resource file.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 22:13:20 +01:00
Michael Niedermayer
59398c1342 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/fbdev_enc: add default device

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 20:26:48 +01:00
Marton Balint
ad01fae86d ffplay: set default window size before starting audio
Fixes ticket #2381.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-06 19:57:45 +01:00
Marton Balint
2b377fb4c0 ffplay: factor out function setting default window size
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-06 19:57:45 +01:00
Marton Balint
eff4820eb2 ffplay: remove no longer necessary codec flush
It was introduced in c2e8691c07, but since we no
longer no longer provide a custom get_buffer callback, the original cause of
the issue is gone.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-06 19:57:45 +01:00
Marton Balint
318bf57c3f ffplay: do not wait for flushing the picture queue on flush packet
It is no longer necessary. Also do frame timer and video current pos reset in
the main thread because with the wait removed, the timing would not be optimal
in the read thread.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-12-06 19:57:44 +01:00
James Almer
618bdb7f58 lavf/mux: Don't write "encoder" metadata tag when bitexact is requested
Since we don't write lavf's string when bitexact is requested, this will
prevent the tag from being copied from the source stream.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 19:33:41 +01:00
Lukasz Marek
fa3bfeb1c1 lavd/fbdev_enc: add default device
Use device specified by environment variable FRAMEBUFFER or /dev/fb0 as default.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-12-06 19:15:47 +01:00
Michael Niedermayer
90539cea33 avcodec/error_resilience: check that er is supported before attempting to read the status of the previous slice
Fixes incorrectly set error_occured and improves speed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 16:49:35 +01:00
Michael Niedermayer
afb18c5578 avcodec/error_resilience: factor er_supported() check out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 16:49:00 +01:00
Michael Niedermayer
976fc5911c avcodec/qdm2: move static init to normal init to avoid initializing tables that might never be used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 15:40:44 +01:00
Michael Niedermayer
133fbfc781 do O(1) instead of O(n) atomic operations in register functions
about 1ms faster startup time

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 15:27:36 +01:00
Michael Niedermayer
2b215f3939 mjpeg/ljpegenc: factor ff_mjpeg_init_hvsample() out
This reduces the amount of duplicated code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:31:23 +01:00
Michael Niedermayer
535af2c222 avcodec/mpegvideo_enc/frame_end(): remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:19:33 +01:00
Michael Niedermayer
9a0d719b10 avcodec/mjpegenc/ff_mjpeg_escape_FF: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:19:11 +01:00
Michael Niedermayer
82c7d704fd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  webp: add a special case for a huffman table with only 1 symbol

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:13:33 +01:00
Michael Niedermayer
db44eff197 Merge commit 'f51e3a1971045c7ed0c3d9d29d3254a4d940198e'
* commit 'f51e3a1971045c7ed0c3d9d29d3254a4d940198e':
  webp: do not call av_frame_free() on the user-provided frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:07:08 +01:00
Michael Niedermayer
711c664a0e Merge commit 'b73a8922d818c7f909855557718d4c3bfacbd92d'
* commit 'b73a8922d818c7f909855557718d4c3bfacbd92d':
  ljpegenc: split yuv encoding into a separate function

Conflicts:
	libavcodec/ljpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 14:01:54 +01:00
Michael Niedermayer
1fd323f31e Merge commit 'fa4476815d0d27996eb199452f2cdbfccdd244a5'
* commit 'fa4476815d0d27996eb199452f2cdbfccdd244a5':
  ljpegenc: split bgr encoding into a separate function

Conflicts:
	libavcodec/ljpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:55:37 +01:00
Michael Niedermayer
fb98ca575d Merge commit 'daffed3b173c59d64907747bf3309e98a8974f4e'
* commit 'daffed3b173c59d64907747bf3309e98a8974f4e':
  ljpegenc: accept bgr24 instead of bgra

Conflicts:
	libavcodec/ljpegenc.c
	libavcodec/mjpegenc.c

Only whitespace merged, we continue to support both formats

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:48:20 +01:00
Michael Niedermayer
6f7dbb9cc1 Merge commit '0cdbc4d39394965bd8712395b19160da8f3fe144'
* commit '0cdbc4d39394965bd8712395b19160da8f3fe144':
  ljpegenc: rename the encoding function.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:38:30 +01:00
Michael Niedermayer
6deaab360c Merge commit '72c0b8f724a71d2784aecad0e5221e7ab6206371'
* commit '72c0b8f724a71d2784aecad0e5221e7ab6206371':
  ljpeg: remove a commented-out line

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:37:09 +01:00
Michael Niedermayer
0ebdf8d9ec avcodec/mjpegenc: fix and use lossless flag in ff_mjpeg_encode_picture_header()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:31:14 +01:00
Michael Niedermayer
93947d88f2 Merge commit '24abd806ea0cfb0d988d2f0044eac79cff12918c'
* commit '24abd806ea0cfb0d988d2f0044eac79cff12918c':
  ljpegenc: deMpegEncContextize

Conflicts:
	libavcodec/ljpegenc.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	tests/ref/vsynth/vsynth1-ljpeg
	tests/ref/vsynth/vsynth2-ljpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 13:30:23 +01:00
Michael Niedermayer
d756b2b530 avcodec/ljpegenc: Dont use ff_mjpeg_encode_stuffing()
This avoids a use of MpegEncContext

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 12:01:28 +01:00
Michael Niedermayer
978ae13f23 avcodec/mjpegenc: move end padding/alignment to ff_mjpeg_escape_FF()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 12:01:28 +01:00
Michael Niedermayer
9fcd58ab26 avcodec/mjpegenc: make escape_FF() non static
This will be used by ljpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 11:49:53 +01:00
Michael Niedermayer
f2d8e3c031 avcodec/ljpegenc: fix mem allocation failure return code encode_picture_lossless()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 11:49:17 +01:00
Michael Niedermayer
0f057ea3c5 Merge commit '86eb2eaac629909d6ee4067c6f1e485a4e70473d'
* commit '86eb2eaac629909d6ee4067c6f1e485a4e70473d':
  mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc()

Conflicts:
	libavcodec/mjpegenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 11:40:30 +01:00
Michael Niedermayer
b342ea603f Merge commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed'
* commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed':
  mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()

Conflicts:
	libavcodec/ljpegenc.c
	libavcodec/mjpegenc.c
	libavcodec/mjpegenc.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 11:33:07 +01:00
Michael Niedermayer
d8fb209a7f Merge commit '058d5f2feb730846f22c1812e433f92f670ad751'
* commit '058d5f2feb730846f22c1812e433f92f670ad751':
  mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header()

Conflicts:
	libavcodec/mjpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 11:16:05 +01:00
Stefano Sabatini
8f1edc73a8 lavfi: rename asrc_aevalsrc.c to aeval.c
The file now contains both source and filter, the new name looks more
appropriate.
2013-12-06 10:57:28 +01:00
Stefano Sabatini
e424abc3a0 lavfi: add aeval filter 2013-12-06 10:57:26 +01:00
Stefano Sabatini
405b3eb535 lavfi/aevalsrc: duplicate last expression for the missing channels
Use last expression for the missing channel expressions in case the
channel layout was specified. Enhance flexibility.
2013-12-06 10:51:12 +01:00
Stefano Sabatini
5b073da7a1 doc: add script to compute texi files dependencies
Replace the inline awk script with a Perl script which tracks the
dependencies recursively.

This allows to correctly track dependencies for files including files
with a second level include (for example: ffmpeg-devices.texi ->
devices.texi -> outdevs.texi).

This also adds a dependency on perl for computing the dependencies, which
should not be a problem since perl is already required all the way for
building documentation.

This is a variant of commit 628ceac652
which was reverted due to out-of-tree build failure.
2013-12-06 10:40:38 +01:00
Michael Niedermayer
5cda499d66 Merge commit '6d70639c7d5fe762c5f18de574eafa817fb53ef7'
* commit '6d70639c7d5fe762c5f18de574eafa817fb53ef7':
  mjpegenc: do not pass MpegEncContext to jpeg_table_header()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 10:28:20 +01:00
Michael Niedermayer
5ac5581132 Merge commit 'e1eaaec765d2e726618633fcbd2e06fded7647a8'
* commit 'e1eaaec765d2e726618633fcbd2e06fded7647a8':
  mjpegenc: remove commented out never-to-be-finished WIP cruft

Conflicts:
	libavcodec/mjpegenc.c

The unfinished 2-matrix code is left in place and not removed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 10:06:43 +01:00
Michael Niedermayer
4a0d8277d5 Merge commit 'ff506c75b71d7aaa1062b49043e0b881b1e263e9'
* commit 'ff506c75b71d7aaa1062b49043e0b881b1e263e9':
  mjpegenc: do not pass MpegEncContext to put_huffman_table()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 05:01:07 +01:00
Michael Niedermayer
b22c16daaf Merge commit 'a1ba1f20b350cb89e645f17bdb237d027170db33'
* commit 'a1ba1f20b350cb89e645f17bdb237d027170db33':
  mjpegenc: cosmetics, reformat jpeg_put_comments()

Conflicts:
	libavcodec/mjpegenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 04:25:56 +01:00
Michael Niedermayer
fb06b8ba93 Merge commit '0812f5a40a0a190172b6de6e91755b882472ddc5'
* commit '0812f5a40a0a190172b6de6e91755b882472ddc5':
  mjpegenc: write the JFIF header if the sample aspect ratio is set

Conflicts:
	libavcodec/mjpegenc.c

See: f3ce748d34
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 04:19:26 +01:00
Michael Niedermayer
0d9f2f5c47 Merge commit '66499f34b56fc6a9fdef25543bd9d576fc787895'
* commit '66499f34b56fc6a9fdef25543bd9d576fc787895':
  mpegvideo: do not set current_picture_ptr in decoders

Conflicts:
	libavcodec/mss2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 04:09:47 +01:00
Michael Niedermayer
28eacd1351 Merge commit '58a868968df445068a143f327ced03b6a02baf0d'
* commit '58a868968df445068a143f327ced03b6a02baf0d':
  FATE: drop the last partial frame in the wmv8-drm test

Conflicts:
	tests/ref/fate/wmv8-drm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 04:03:05 +01:00
Michael Niedermayer
dfd11eb2a5 Merge commit 'ac1fc92ea410c396594fcd79f5d4491fe6a8cc90'
* commit 'ac1fc92ea410c396594fcd79f5d4491fe6a8cc90':
  vc1dec: move setting repeat_pict after frame_start() has been called.

Conflicts:
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:55:12 +01:00
Michael Niedermayer
52b69fa142 Merge commit '282c6a1a0ef3e8c8e180c15b39cfe5b89704d848'
* commit '282c6a1a0ef3e8c8e180c15b39cfe5b89704d848':
  mpegvideo: make ff_release_unused_pictures() static

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:46:47 +01:00
Michael Niedermayer
f1db3f5f59 Merge commit 'c99307caee01441cfde24f3b7b0db3037b7022dc'
* commit 'c99307caee01441cfde24f3b7b0db3037b7022dc':
  mpegvideo: make frame_size_alloc() static.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:29:33 +01:00
Michael Niedermayer
08667c2678 Merge commit '0b0a7a751de02464a33717e70352f696372ba1c4'
* commit '0b0a7a751de02464a33717e70352f696372ba1c4':
  mpegvideo: move encode-only parts of common_end() to encode_end()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 03:12:10 +01:00
Michael Niedermayer
e3b7f0e184 Merge commit 'd0d111d0592bfd6b2b8bcd2321986c0fc493455d'
* commit 'd0d111d0592bfd6b2b8bcd2321986c0fc493455d':
  mpegvideo: remove commented out cruft from ff_MPV_frame_end()

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:54:45 +01:00
Michael Niedermayer
b6e7834ac6 avcodec/mpegvideo_enc: fix linesizes in frame_end()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:53:10 +01:00
Michael Niedermayer
26c2e3bf1a Merge commit '381a722562bcc0b623acf6a00a583fe989bcb72a'
* commit '381a722562bcc0b623acf6a00a583fe989bcb72a':
  mpegvideo: split the encoding-only parts of ff_MPV_frame_end() into a separate function

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:48:09 +01:00
Justin Ruggles
d085f80fa1 webp: add a special case for a huffman table with only 1 symbol
The vlc reader cannot handle 0-bit huffman codes. For most
situations WebP uses the "simple" huffman coding for this case,
but that will only handle symbols up to 255. For the LZ77 distance
codes, larger symbol values are needed, so it can happen in rare
cases that a normal huffman table is used that only has a single
symbol.
2013-12-05 20:37:06 -05:00
Justin Ruggles
f51e3a1971 webp: do not call av_frame_free() on the user-provided frame
Fixes double-free on error.
2013-12-05 20:36:54 -05:00
Michael Niedermayer
d5050bae80 Merge commit 'b7254288d222013e20539c530b1ec5d324ed5352'
* commit 'b7254288d222013e20539c530b1ec5d324ed5352':
  mpegvideo: do not update last_non_b_pict_type in update_thread_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:18:50 +01:00
Michael Niedermayer
20b28fc7b0 Merge commit '1f8eb69079880ef1f394c498dfdf471f91222a06'
* commit '1f8eb69079880ef1f394c498dfdf471f91222a06':
  mpegvideo: move encoding-only initialization from common_init() to encode_init()

Conflicts:
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 02:12:59 +01:00
Michael Niedermayer
2951b7fb1d Merge commit 'bedf952bb80ae26427854dcde56c139ecb87d4a0'
* commit 'bedf952bb80ae26427854dcde56c139ecb87d4a0':
  mpegvideo: move setting encoding-only vars from common_defaults() to encode_defaults()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:58:55 +01:00
Michael Niedermayer
16338b4fb9 Merge commit '2cab011f0f02fcff8a0629a611bcac2f0459f04a'
* commit '2cab011f0f02fcff8a0629a611bcac2f0459f04a':
  mpegvideo: don't copy input_picture_number in update_thread_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:52:53 +01:00
Michael Niedermayer
cf948200bd Merge commit 'ff7ffe48097f32417781fe8b2b417eff05a52c55'
* commit 'ff7ffe48097f32417781fe8b2b417eff05a52c55':
  mpeg4videodec: move showed_packed_warning from MpegEncContext to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:46:51 +01:00
Michael Niedermayer
36e2ec4068 Merge commit 'f7d228676cb7669059889c4225c8a8dc56708c24'
* commit 'f7d228676cb7669059889c4225c8a8dc56708c24':
  mpeg4videodec: move intra_dc_threshold from MpegEncContext to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:38:55 +01:00
Michael Niedermayer
db7580b4f6 Merge commit 'a097f0049b28dc3ed13625e4a42619292c92492f'
* commit 'a097f0049b28dc3ed13625e4a42619292c92492f':
  mpeg12dec: move first_slice from MpegEncContext to Mpeg1Context

Conflicts:
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:33:17 +01:00
Michael Niedermayer
85d3bc33b1 Merge commit 'ff300e435e5337b03dc7a8f1c0be6c9937059c1e'
* commit 'ff300e435e5337b03dc7a8f1c0be6c9937059c1e':
  mpegvideo: remove an unused variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:21:39 +01:00
Michael Niedermayer
92e10e34b1 Merge commit 'e41ff4210ac1192c62de3052b33a38c7bcf772f2'
* commit 'e41ff4210ac1192c62de3052b33a38c7bcf772f2':
  mpeg4videodec: move use_intra_dc_vlc from MpegEncContext to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-06 01:14:46 +01:00
James Almer
56572787ae Add Windows resource file support for shared libraries
Originally written by James Almer <jamrial@gmail.com>

With the following contributions by Timothy Gu <timothygu99@gmail.com>

* Use descriptions of libraries from the pkg-config file generation function
* Use "FFmpeg Project" as CompanyName (suggested by Alexander Strasser)
* Use "FFmpeg" for ProductName as MSDN says "name of the product with which the
  file is distributed" [1].
* Use FFmpeg's version (N-xxxxx-gxxxxxxx) for ProductVersion per MSDN [1].
* Only build the .rc files when --enable-small is not enabled.

[1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 23:42:07 +01:00
Carl Eugen Hoyos
af7562a035 Ignore es_map_length when parsing mpeg program stream map.
Fixes ticket #3195.
2013-12-05 21:17:21 +01:00
Michael Niedermayer
e2bf00ce46 avformat/mov: calculate rfps from the first 100 frames of the index
This reduces the amount of frames that need to be demuxed in av_find_stream_info()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 17:46:40 +01:00
Michael Niedermayer
1565a9a9e9 avformat/utils: factor rfps calculation out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 17:30:13 +01:00
Michael Niedermayer
dc1b0a54f9 avformat/utils: provide more IO statistics in debug output at start and end of av_find_streaminfo()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 16:09:11 +01:00
Michael Niedermayer
6005ab3e0e avcodec/mjpegenc: use av_log2_16bit() in encode_block()
This reduces the number of operations done per non zero coefficient

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 14:15:28 +01:00
Anton Khirnov
b73a8922d8 ljpegenc: split yuv encoding into a separate function 2013-12-05 13:38:07 +01:00
Anton Khirnov
fa4476815d ljpegenc: split bgr encoding into a separate function 2013-12-05 13:37:56 +01:00
Anton Khirnov
daffed3b17 ljpegenc: accept bgr24 instead of bgra
The alpha plane is not encoded.
2013-12-05 13:37:41 +01:00
Anton Khirnov
0cdbc4d393 ljpegenc: rename the encoding function.
The new name is more consistent with the rest of Libav.
2013-12-05 13:37:32 +01:00
Anton Khirnov
72c0b8f724 ljpeg: remove a commented-out line 2013-12-05 13:37:09 +01:00
Anton Khirnov
24abd806ea ljpegenc: deMpegEncContextize
The encoder uses almost none of the mpegvideo infrastructure, only some
fields from MpegEncContext.

The FATE results change because now an all-zero quant matrix is written
into the file. Since it is not used for anything for ljpeg, this should
not be a problem.
2013-12-05 13:35:55 +01:00
Anton Khirnov
86eb2eaac6 mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc()
This will allow deMpegEncContextizing the LJPEG encoder.
2013-12-05 13:35:30 +01:00
Anton Khirnov
3360ad9955 mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()
This will allow deMpegEncContextizing the LJPEG encoder.
2013-12-05 13:35:15 +01:00
Anton Khirnov
058d5f2feb mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header()
This will allow deMpegEncContextizing the LJPEG encoder.
2013-12-05 13:34:26 +01:00
Anton Khirnov
6d70639c7d mjpegenc: do not pass MpegEncContext to jpeg_table_header()
Pass the three needed fields from it directly.
This will allow to deMpegEncContextize the LJPEG encoder.
2013-12-05 13:34:13 +01:00
Anton Khirnov
e1eaaec765 mjpegenc: remove commented out never-to-be-finished WIP cruft 2013-12-05 13:34:01 +01:00
Anton Khirnov
ff506c75b7 mjpegenc: do not pass MpegEncContext to put_huffman_table()
It only needs PutBitContext from it, so pass that directly.
2013-12-05 13:33:40 +01:00
Anton Khirnov
a1ba1f20b3 mjpegenc: cosmetics, reformat jpeg_put_comments() 2013-12-05 13:33:29 +01:00
Anton Khirnov
0812f5a40a mjpegenc: write the JFIF header if the sample aspect ratio is set
MpegEncContext.aspect_ratio_info is never set for mjpeg, so this was
never written before.
2013-12-05 13:28:32 +01:00
Anton Khirnov
66499f34b5 mpegvideo: do not set current_picture_ptr in decoders
This code was originally added in
5f1948111a to h263 to set decoded frame
pts to some random numbers (removed in
a1c5cc429d) and then cargo culted to other
decoders.

The code is left in h263dec for now, since some part of the decoder
(apparently OBMC) relies on the specific previous frame to be reused.
2013-12-05 13:28:05 +01:00
Anton Khirnov
58a868968d FATE: drop the last partial frame in the wmv8-drm test
This has already been done in eb066a4ce9,
but the number of frames produced from that file changed due to
timestamps changes since then.
2013-12-05 13:27:52 +01:00
Anton Khirnov
ac1fc92ea4 vc1dec: move setting repeat_pict after frame_start() has been called.
This will allow removing the hacks where each decoder sets
current_picture_ptr on its own.
2013-12-05 13:27:24 +01:00
Anton Khirnov
282c6a1a0e mpegvideo: make ff_release_unused_pictures() static
It is only called from one place in mpegvideo.c now. Also remove the
remove_current parameter, which is always 1.
2013-12-05 13:26:50 +01:00
Anton Khirnov
c99307caee mpegvideo: make frame_size_alloc() static.
It is not called from outside of mpegvideo.c anymore.
2013-12-05 13:25:46 +01:00
Anton Khirnov
0b0a7a751d mpegvideo: move encode-only parts of common_end() to encode_end() 2013-12-05 13:25:26 +01:00
Anton Khirnov
d0d111d059 mpegvideo: remove commented out cruft from ff_MPV_frame_end() 2013-12-05 13:25:15 +01:00
Anton Khirnov
381a722562 mpegvideo: split the encoding-only parts of ff_MPV_frame_end() into a separate function 2013-12-05 13:23:55 +01:00
Anton Khirnov
b7254288d2 mpegvideo: do not update last_non_b_pict_type in update_thread_context()
It is used for encoding only.
2013-12-05 13:23:33 +01:00
Anton Khirnov
1f8eb69079 mpegvideo: move encoding-only initialization from common_init() to encode_init() 2013-12-05 13:23:03 +01:00
Anton Khirnov
bedf952bb8 mpegvideo: move setting encoding-only vars from common_defaults() to encode_defaults() 2013-12-05 13:22:55 +01:00
Anton Khirnov
2cab011f0f mpegvideo: don't copy input_picture_number in update_thread_context()
It is encoding-only, frame threading is not used for encoding.
2013-12-05 13:22:46 +01:00
Anton Khirnov
ff7ffe4809 mpeg4videodec: move showed_packed_warning from MpegEncContext to Mpeg4DecContext 2013-12-05 13:22:37 +01:00
Anton Khirnov
f7d228676c mpeg4videodec: move intra_dc_threshold from MpegEncContext to Mpeg4DecContext 2013-12-05 13:22:18 +01:00
Anton Khirnov
a097f0049b mpeg12dec: move first_slice from MpegEncContext to Mpeg1Context 2013-12-05 13:22:03 +01:00
Anton Khirnov
ff300e435e mpegvideo: remove an unused variable 2013-12-05 13:21:57 +01:00
Anton Khirnov
e41ff4210a mpeg4videodec: move use_intra_dc_vlc from MpegEncContext to Mpeg4DecContext 2013-12-05 13:19:22 +01:00
Michael Niedermayer
5b4d57455d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: Initialize mmxext after amd3dnow optimizations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 11:55:41 +01:00
Michael Niedermayer
be99054e77 avcodec/cavsdec: print error messages in case of errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 03:53:39 +01:00
Michael Niedermayer
bc1b828536 avcodec/cavsdec: use more specific error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 03:51:08 +01:00
Michael Niedermayer
9ca32b2060 avcodec/cavsdec: print warning if no frame has been decoded
Fixes ticket3128

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 02:17:15 +01:00
Michael Niedermayer
63f74cedc9 avcodec/cavsdec: reset stc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 02:16:59 +01:00
Michael Niedermayer
0538b29ae8 avcodec/cabac: force get_cabac to be not inlined
works around bug in gccs inline asm register assignment
Fixes Ticket3177

gcc from 4.4 to 4.6 is affected at least, no non affected gccs known
clang seems not affected

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-05 01:49:35 +01:00
Michael Niedermayer
8dd4f5ecf9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Detect msvcrt libc with a CPP check instead of a link check

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 22:07:37 +01:00
Michael Niedermayer
517ec80859 Merge commit '5ec467328122b80fac94c2d5e3e7540d50381868'
* commit '5ec467328122b80fac94c2d5e3e7540d50381868':
  configure: Add detected C library and host compiler to informative output

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 20:50:23 +01:00
Michael Niedermayer
a6af5da7a2 swresample: use the internal buffer for resampling the last few samples
Fixes out of array read
Fixes Ticket3193

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 20:40:42 +01:00
Diego Biurrun
3d7c84747d x86: Initialize mmxext after amd3dnow optimizations
The mmxext optimizations should be at least equally fast if available and
amd3dnow optimizations are being deprecated. Thus the former should
override the latter, not the other way around.
2013-12-04 18:52:48 +01:00
Diego Biurrun
bd8b6185f6 configure: Detect msvcrt libc with a CPP check instead of a link check
Simplifies host/target libc detection splitting.
2013-12-04 11:50:59 -05:00
Diego Biurrun
5ec4673281 configure: Add detected C library and host compiler to informative output 2013-12-04 09:53:58 -05:00
Michael Niedermayer
f3008f30fb avformat/utils: move update_wrap_reference() up
simplifies code
also remove extra {}

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 14:36:36 +01:00
Michael Niedermayer
34b16e2d36 avformat/utils: reorder operations in update_wrap_reference()
prevents a integer overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 14:36:35 +01:00
Michael Niedermayer
f1783c05f1 Revert "avcodec/hevc: calculate checksum only if AV_EF_EXPLODE is set"
This reverts commit 758b6d39f6.

Requested-by: smarter
"now that http://git.videolan.org/?p=ffmpeg.git;a=commit;h=97de206b44a48da726807cc3e7b9448a8112760b
 has been merged, http://git.videolan.org/?p=ffmpeg.git;a=commit;h=758b6d39f685a510f48ff9e4c05fffa859d23c42
 could be reverted, this would reduce the delta with libav
 (and it makes sense)"
2013-12-04 11:46:31 +01:00
Michael Niedermayer
c302811643 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: initialize hwaccel_pix_fmt

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 04:30:46 +01:00
Rainer Hochecker
f65afef1df mpegts: do not set pts for missing dts in video streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 02:18:04 +01:00
Michael Niedermayer
394b0c830a avformat/utils: correct for timestamp wrap earlier
This uses dts & pts as reference instead of first_dts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 02:18:04 +01:00
Michael Niedermayer
d7ead9ad44 avformat/utils: also fix wrapping of start_time in update_initial_timestamps()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 02:18:04 +01:00
Michael Niedermayer
dd5f925927 avformat/utils: Fix pts_wrap_behavior calculation with negative first_dts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-04 02:18:04 +01:00
Stefano Sabatini
704cc5e75d ffprobe: free shared writer context on exit
Fix leak.

Spotted-by: Michael Niedermayer
2013-12-03 21:27:14 +01:00
Michael Niedermayer
babb611d35 libavcodec/mpegaudio: change CONFIG_FLOAT to USE_FLOAT
The CONFIG_ name-space is set by configure, so its better to use a
different prefix here.
This also unifies the encoder & decoder define that is used

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 21:12:00 +01:00
Michael Niedermayer
04e06cdf7d avcodec: split mp2 encoder into float and fixed
This makes the USE_FLOATS == 0 available to the end user
More float optimizations can easily be added as well now
common code should be factored out into a common file once all
fixed point & floating point optimizations are done, this is to
avoid having to move code back and forth between files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 21:12:00 +01:00
Anton Khirnov
c255f0b001 avconv: initialize hwaccel_pix_fmt
Fixes an assertion failure in vdpau_get_buffer() when -hwaccel auto is
used, but hwaccel init fails.
2013-12-03 18:11:27 +01:00
Ronald S. Bultje
9695fb2622 vp9_parser: handle zero-sized packets.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 14:06:34 +01:00
Michael Niedermayer
0e15a344c1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  alsa-audio-dec: explicitly cast the delay to a signed int64

Conflicts:
	libavdevice/alsa-audio-dec.c

no change as the buggy code has been replaced in ffmpeg

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 12:20:44 +01:00
Anton Khirnov
089fac77a6 alsa-audio-dec: explicitly cast the delay to a signed int64
Otherwise the expression will be evaluated as unsigned, which will break
when the result should be negative.
CC:libav-stable@libav.org
2013-12-03 12:04:26 +01:00
Michael Niedermayer
0cc5011f9a avfilter/vf_pad: fix req_end
Fixes out of array accesses
Fixes Ticket3190

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 04:09:10 +01:00
Michael Niedermayer
4d0ac9aee9 Makefile: add dependancies for ffversion.h
It has to be build before the objects that use it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 01:30:04 +01:00
Michael Niedermayer
210a78aeb5 doc/examples/filtering_audio: init packet0.data
Fixes use of uinitialized data and crash

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-03 00:01:07 +01:00
Stefano Sabatini
6ca0ac5e55 doc/ffserver: remove spurious NoAudio option from stream example 2013-12-02 23:52:24 +01:00
Stefano Sabatini
d5d51cf04d lavfi/volume: support all channel counts 2013-12-02 23:52:24 +01:00
Michael Niedermayer
830be99ae1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dv: Split off DV video encoder into its own file

Conflicts:
	libavcodec/dv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 23:04:05 +01:00
Michael Niedermayer
b58c1dd632 Merge commit '21710ea82118c9d19bea9277b2a85a33096fdd95'
* commit '21710ea82118c9d19bea9277b2a85a33096fdd95':
  dv: Move DV VLC data tables out of header file

Conflicts:
	libavcodec/dv_vlc_data.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 20:24:02 +01:00
Michael Niedermayer
6f9be8120d Merge commit '5a9fcc7d2524d6c0f86b2855019ee9f4cf360276'
* commit '5a9fcc7d2524d6c0f86b2855019ee9f4cf360276':
  build: Add rule for building host-specific object files

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 20:17:36 +01:00
Michael Niedermayer
a6c455cf6b Merge commit 'ad477710244c761ad1c21246c34e0075fee12d11'
* commit 'ad477710244c761ad1c21246c34e0075fee12d11':
  build: Add shorthand for HOSTCC compile macro

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 20:08:01 +01:00
Stefano Sabatini
c490cd4c1a doc/examples/filtering_audio: fix chunked audio decoding
Support the case when multiple frames are contained in a single packet.
In particular, fix fate-samples/lossless-audio/luckynight-partial.shn
sample decoding.
2013-12-02 15:21:52 +01:00
Stefano Sabatini
893f33e7f0 doc/examples/filtering_audio: fix style 2013-12-02 15:08:00 +01:00
Stefano Sabatini
c7a99d99bd doc/examples/filtering_video: do not make use of AVBufferSinkParams
Set the value on the filter context instead. Simplify.
2013-12-02 14:35:40 +01:00
Stefano Sabatini
3aa6018010 doc/examples/filtering_video: add some error handling in init_filters() 2013-12-02 14:35:39 +01:00
Stefano Sabatini
a12bf9f50f doc/examples/README: fix typo 2013-12-02 14:35:39 +01:00
Stefano Sabatini
55c57658d2 doc/examples/filtering_audio: add more error checks 2013-12-02 14:35:39 +01:00
Stefano Sabatini
82e74ee6e4 doc/examples/filtering: make use of av_err2str()
Simplify.
2013-12-02 14:35:31 +01:00
Diego Biurrun
97d19c2fec dv: Split off DV video encoder into its own file 2013-12-02 13:13:09 +01:00
Diego Biurrun
21710ea821 dv: Move DV VLC data tables out of header file 2013-12-02 13:13:09 +01:00
Diego Biurrun
5a9fcc7d25 build: Add rule for building host-specific object files 2013-12-02 13:13:09 +01:00
Diego Biurrun
ad47771024 build: Add shorthand for HOSTCC compile macro 2013-12-02 13:13:09 +01:00
Lenny Wang
7b2534b0ea libavutil & opencl: remove opencl default device type
CL_DEVICE_TYPE_DEFAULT makes duplicated device entries for each
platform using av_opencl_get_device_list()

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Reviewed-by: highgod0401 <highgod0401@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 12:07:27 +01:00
Michael Niedermayer
749eb46d64 configure: put pthread_create() check back
Unbreaks freebsd, broken since f058f384a0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 11:11:56 +01:00
Michael Niedermayer
be2312aa8f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo

If someone optimizes dct_quantize for non x86 SIMD, then this
probably needs to be reverted.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 10:59:48 +01:00
Diego Biurrun
7ffaa19570 dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo
The table is MMX-specific and used nowhere else.
2013-12-02 04:05:18 +01:00
Michael Niedermayer
e3d7a3978b avcodec/h264_refs: improve key frame detection heuristic
Fixes Ticket3186

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 02:36:58 +01:00
Michael Niedermayer
ab6ea7a819 avcodec/h264_refs: split conditions of if() up for better readability
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 02:12:39 +01:00
Michael Niedermayer
b2c89453dc avformat/avisynth: remove duplicate av_new_packet() call
Found-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 22:12:57 +01:00
Michael Niedermayer
003f405caf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Try to find nonstandard Perl path from the environment

Conflicts:
	doc/texi2pod.pl

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 21:50:13 +01:00
Michael Niedermayer
d426863415 Merge commit '3cd612d44789948f72b52944474e0870c5c60964'
* commit '3cd612d44789948f72b52944474e0870c5c60964':
  gitignore: Ignore multilibrary example programs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 21:18:11 +01:00
Michael Niedermayer
975110a85e Revert "vf_yadif: move x86 init code to x86/yadif.c"
This reverts commit a87b17f328.
This reduces the amount of non LGPL code, making a relicensing to LGPL
easier

Conflicts:

	libavfilter/vf_yadif.c
	libavfilter/x86/yadif.c
	libavfilter/x86/yadif_template.c
	libavfilter/yadif.h

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 20:26:26 +01:00
Michael Niedermayer
ab00800cde Revert "yadif: add parens around macro parameters"
This reverts commit 49e617f956.
This reduces the amount of non LGPL code, making a relicensing to LGPL
easier

Conflicts:

	libavfilter/vf_yadif.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 20:26:26 +01:00
Michael Niedermayer
4ef4bb4a20 avfilter/yadif: Revert "lavfi: convert input/ouput list compound literals to named objects"
This reverts commit 568c70e79e.
This reduces the amount of non LGPL code, making a relicensing to LGPL
easier

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 20:26:26 +01:00
Stefano Sabatini
4d028f9280 doc/ffserver: fix misc minor typos 2013-12-01 20:24:49 +01:00
Diego Biurrun
7b05845b15 doc: Try to find nonstandard Perl path from the environment 2013-12-01 12:59:10 -05:00
Anton Khirnov
c46ab34d81 avisynth: make avs_library statically allocated.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 13:14:47 +01:00
Stephen Hutchinson
801c186440 avisynth: Move to av_new_packet/av_free_packet.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-01 13:14:42 +01:00
Diego Biurrun
3cd612d447 gitignore: Ignore multilibrary example programs 2013-12-01 12:36:39 +01:00
Carl Eugen Hoyos
2ccc6ff03a Add an Opus and a Speex muxer.
Fixes ticket #3181.
2013-12-01 12:03:34 +01:00
Carl Eugen Hoyos
4ba90392bc Support AC-3 in Sega Dreamcast Sofdec files.
Fixes ticket #3184
2013-12-01 12:02:21 +01:00
Ronald S. Bultje
f068aed7b8 vp9: make decode_coeffs() return value void.
It was previously int and would return error if decode_coeffs_b()
returns an error; however, that can never happen, so refactor all
that code to make all dependent functions return void also (all the
way up to decode_coeffs_sb()).
2013-11-30 16:26:14 -05:00
Ronald S. Bultje
65f41b5c5c vp9: add a new segmentation sample.
The old one didn't use segmentation. One uses segmentation in all frame
types (--aq-mode=1), and the other uses all segmentation features, but
only in inter frames (mbgraph).
2013-11-30 16:26:14 -05:00
Ronald S. Bultje
1d6bb21348 vp9: add fate sample for parallelmode.
This disables backward probability updates, which makes the codec more
friendly for frame-level multi-threading.
2013-11-30 16:26:14 -05:00
Ronald S. Bultje
47c6d9403d vp9: cosmetics. 2013-11-30 16:26:14 -05:00
Ronald S. Bultje
76bd878d95 vp9: add a 2-pass decoding mode, and add frame-mt support.
For a random 1080p sample, decoding time went from 9.7sec (1 threads)
to 6.0sec (2 threads) and 5.2sec (4 threads) in 2-pass decoding mode.
I don't have any samples that use the parallelmode feature, but the
gains should be higher.
2013-11-30 16:26:13 -05:00
Ronald S. Bultje
46955ae430 vp9: allocate 'b', 'block/uvblock' and 'eob/uveob' dynamically. 2013-11-30 16:26:13 -05:00
Ronald S. Bultje
fc7d910b2e vp9: split last/cur_frame from the reference buffers.
We need more information from last/cur_frame than from reference
buffers, so we can use a simplified structure for reference buffers,
and then store mvs and segmentation map information in last/cur.
2013-11-30 16:26:13 -05:00
Ronald S. Bultje
39b244002a vp9: move some entries out of VP9Block into VP9Context.
They aren't really block-related variables in the sense that they are
not block-coded, rather they are state trackers.
2013-11-30 16:26:12 -05:00
Ronald S. Bultje
84d362f020 vp9: split packet parsing into an AVParser. 2013-11-30 16:26:12 -05:00
Ronald S. Bultje
816737ea5d vp9: use proper refcounting.
Based on something similar in libav. Author is likely Anton Khirnov
<anton@khirnov.net> but I'm not sure.
2013-11-30 16:26:12 -05:00
Michael Niedermayer
16f4e2ab27 Makefile: remove version.h on distclean
Without this nothing will remove it even if it isnt generated in newer
versions anymore.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 21:52:39 +01:00
Timothy Gu
82b2e9cb1d build: rename version.h to libavutil/ffversion.h
Also the libavutil/ffversion.h will be installed.

Rationale:
* Applications might want to know FFmpeg's version besides the individual
  libraries'.
* Avoids file name clash between FFmpeg's ./version.h and lib*/version.h when
  a library source file includes both and is compiled on an out-of-tree build.

Fixes #1769.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 21:42:55 +01:00
Timothy Gu
c580691091 version.sh: add preprocessing guards
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 21:42:03 +01:00
Timothy Gu
3c5c4cfa15 version.sh: add a little usage comment
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 21:17:58 +01:00
Michael Niedermayer
a3b9f53d7b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dcadec: Add some logging before returning on error

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 21:09:42 +01:00
Michael Niedermayer
d43d627a24 Merge commit 'f058f384a0d76bfd125f4738dceab7c890186432'
* commit 'f058f384a0d76bfd125f4738dceab7c890186432':
  configure: Do not use pthread_create to check for pthread

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 20:40:59 +01:00
Michael Niedermayer
a235af93bd avcodec/mpeg4video: fix doxycomments so they are not associated with random unrelated fields
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 20:30:11 +01:00
Michael Niedermayer
98a6578468 Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavc/srtenc: use bprint for text buffers.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 17:48:21 +01:00
Timothy Gu
802ba5f557 version.sh: make it independant of version.h file name
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 15:04:24 +01:00
Stefano Sabatini
f2f17dd874 doc/ffserver: clarify documentation for Feed MaxFileSize option 2013-11-30 14:47:26 +01:00
Stefano Sabatini
8209dd332f doc/ffserver: clarify that note in NoDaemon option documentation 2013-11-30 14:46:53 +01:00
Stefano Sabatini
b58161d6b6 ffserver: print error code description in case of write_header() failure
Improve feedback.
2013-11-30 14:35:33 +01:00
Stefano Sabatini
889509d241 doc/ffserver: add "Detailed description" chapter
Also move FFM section up in the file, and rename it.
2013-11-30 14:35:33 +01:00
Stefano Sabatini
0bacc320c2 doc/ffserver: remove more mentions to LAME and build 2013-11-30 14:35:33 +01:00
Nicolas George
4b1c9b720e lavc/srtenc: use bprint for text buffers.
Fix trac ticket #3120.
2013-11-30 13:57:53 +01:00
James Almer
19e301b9ed lavfi/Makefile: Don't compile lavfutils.c and lswsutils.c if they are not needed
They are only needed by removelogo.
This fixes a link failure in shared builds when compiling with
removelogo disabled but Lavf/SwS enabled

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 13:29:27 +01:00
Tim Walker
7dc827b709 dcadec: Add some logging before returning on error
Based on a patch by Michael Niedermayer.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-11-30 13:01:35 +01:00
Luca Barbato
f058f384a0 configure: Do not use pthread_create to check for pthread
Certain instrumentation addons leads to a false positive in configure
and link failures at the end of the build phase.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-11-30 13:01:35 +01:00
Michael Niedermayer
bd9de4f594 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffmpeg: ensure that -fix_sub_duration doesnt create subtitles with zero duration
  ffmpeg: free empty subtitles as well in transcode_subtitles
  ffmpeg: do not pass possibly undefined subtitles to sub2video_update

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 05:07:19 +01:00
Michael Niedermayer
5d9e663064 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  go2meeting: disallow tile dimensions that are not multiple of 16

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:49:54 +01:00
Michael Niedermayer
f09f295109 Merge commit 'e026ee0446de27fc38e33e98704fada012fdc763'
* commit 'e026ee0446de27fc38e33e98704fada012fdc763':
  mpeg4videodec: move sprite_{shift,traj} from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:40:51 +01:00
Michael Niedermayer
7f18cb9101 Merge commit '513d849bb605d3d862da1ada709bd2ca1ac68f58'
* commit '513d849bb605d3d862da1ada709bd2ca1ac68f58':
  mpeg4videodec: move num_sprite_warping_points from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:34:46 +01:00
Michael Niedermayer
4c55aa8f93 Merge commit '9ba3fc3e3d12c9ef00dcb0222b7ea0ccb5c4a091'
* commit '9ba3fc3e3d12c9ef00dcb0222b7ea0ccb5c4a091':
  mpeg4videodec: move sprite_brightness_change from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:29:26 +01:00
Michael Niedermayer
ae4e7f7ba6 Merge commit '58c120a9290eef057dbf26761a4f89b7f67bbde1'
* commit '58c120a9290eef057dbf26761a4f89b7f67bbde1':
  mpeg4videodec: move scalability from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:23:43 +01:00
Michael Niedermayer
b27ba2e540 Merge commit '6e81597d5a89f64dfab5c7e99e46b4355139e324'
* commit '6e81597d5a89f64dfab5c7e99e46b4355139e324':
  mpeg4videodec: move enhancement_type from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:15:46 +01:00
Michael Niedermayer
aeead42789 Merge commit '2992afda83a7d5c0a9ec45bdce76d8abbe0961c5'
* commit '2992afda83a7d5c0a9ec45bdce76d8abbe0961c5':
  mpeg4videodec: remove a write-only variable from MpegEncContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 04:02:14 +01:00
Michael Niedermayer
1897c4a119 Merge commit '3b1c0f686d5a162ceb5048910a7ce0bf7ed3a1ab'
* commit '3b1c0f686d5a162ceb5048910a7ce0bf7ed3a1ab':
  mpeg4videodec: move new_pred from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:55:39 +01:00
Michael Niedermayer
47e5eaf8c9 Merge commit 'e89247debd5276d57ce4a26516224204f9541af0'
* commit 'e89247debd5276d57ce4a26516224204f9541af0':
  mpeg4videodec: replace MpegEncContext.reduced_res_vop with a local variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:46:53 +01:00
Michael Niedermayer
f4c28aea38 Merge commit '8cebc9eaac8631adb23dd1e46c37ad8474139a07'
* commit '8cebc9eaac8631adb23dd1e46c37ad8474139a07':
  mpeg4videodec: remove a write-only variable from MpegEncContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:40:09 +01:00
Michael Niedermayer
0cea39fdd3 Merge commit 'b1aacd56685cd131f517e0551834a0bbd3f5f809'
* commit 'b1aacd56685cd131f517e0551834a0bbd3f5f809':
  mpeg4videodec: move t_frame from MpegEncContext to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:20:11 +01:00
Michael Niedermayer
79c1cdd973 mpeg4_update_thread_context: copy the whole mpeg4 specific context instead of variables one by one
This simplifies the code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:12:41 +01:00
Michael Niedermayer
3e5cd34cd0 Merge commit '038890740014dc33d2e2f04da7cf0a9da821264e'
* commit '038890740014dc33d2e2f04da7cf0a9da821264e':
  mpeg4videodec: move cplx_estimation_* fields from MpegEncContext to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:11:16 +01:00
Michael Niedermayer
b08ff07d8d avcodec/mpeg4videodec: update bug workaround related variables like they where before
This fixes the code after the variables have been moved into the
mpeg4 decoder.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 03:06:40 +01:00
Michael Niedermayer
b4ef7447eb Merge commit '43af264de8606668c6b2fa7f96c946bdc3dbe072'
* commit '43af264de8606668c6b2fa7f96c946bdc3dbe072':
  mpeg4videodec: move mpeg4-specific bug workaround variables from MpegEncContext to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 02:52:09 +01:00
Michael Niedermayer
ec5499d8ba Merge commit 'e2ceb17642f374a7df8f1f5d3d2b2446525bc7fb'
* commit 'e2ceb17642f374a7df8f1f5d3d2b2446525bc7fb':
  mpeg4videodec: move mpeg4-specific post-frame-decode code from h264dec to mpeg4videodec

Conflicts:
	libavcodec/h263dec.c
	libavcodec/mpeg4video.h
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 02:42:56 +01:00
Michael Niedermayer
b239f3f69d avcodec/h263dec: move call to ff_mpeg4_workaround_bugs() under codec_id check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 02:35:13 +01:00
Michael Niedermayer
2b1922d964 Merge commit 'b452d5ae866942cec00aa1432fe29498b38b49fc'
* commit 'b452d5ae866942cec00aa1432fe29498b38b49fc':
  mpeg4videodec: move mpeg4-specific bug detection from h263 generic code to mpeg4

Conflicts:
	libavcodec/h263dec.c

not merged, the header decode function is not the right place
See: 6c9b82b6a0

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 02:27:41 +01:00
Michael Niedermayer
6c9b82b6a0 avcodec/mpeg4videodec: move bug workaround code into seperate function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 02:12:11 +01:00
Michael Niedermayer
ee9d53e572 Merge commit '48e139409556861c9e561ce34133891d8eecc3cf'
* commit '48e139409556861c9e561ce34133891d8eecc3cf':
  mpeg4videodec: move MpegEncContext.resync_marker into Mpeg4DecContext.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 01:28:04 +01:00
Michael Niedermayer
2d2b363c65 h263: remove unused ff_h263_find_resync_marker()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 00:58:33 +01:00
Michael Niedermayer
2d614e9be1 Merge commit 'c2f7417eeb9cc31f75e71f7be2780f90f1628d7e'
* commit 'c2f7417eeb9cc31f75e71f7be2780f90f1628d7e':
  vc1: move MpegEncContext.resync_marker into VC1Context.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 00:49:34 +01:00
Michael Niedermayer
26b526e776 Merge commit 'a5a71992cae34b321ceb8374f44ce17a945a3881'
* commit 'a5a71992cae34b321ceb8374f44ce17a945a3881':
  mpeg4videoenc: don't set MpegEncContext.resync_marker

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:55:00 +01:00
Michael Niedermayer
f5d6541ba0 Merge commit 'ad09f52586eae4c5473c3a6a803d73e1ba56c0eb'
* commit 'ad09f52586eae4c5473c3a6a803d73e1ba56c0eb':
  h263dec: remove commented out cruft

Conflicts:
	libavcodec/h263dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:46:30 +01:00
Michael Niedermayer
91c63cb053 avcodec/mpeg4videodec: copy rvlc in mpeg4_update_thread_context too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:40:15 +01:00
Michael Niedermayer
9c835acc1d Merge commit 'bc5abfb19e7ff00b859120561d6ffd622c7904fe'
* commit 'bc5abfb19e7ff00b859120561d6ffd622c7904fe':
  mpeg4videodec: move MpegEncContext.rvlc to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:27:30 +01:00
Michael Niedermayer
cdc21e4abe Merge commit '9f0617d2137bb7231b181d74392cd84ef4844cd7'
* commit '9f0617d2137bb7231b181d74392cd84ef4844cd7':
  mpeg4videodec: remove write-only sprite variables from MpegEncContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:20:35 +01:00
Michael Niedermayer
36068709b3 avcodec/mpeg4videodec: Fix code so it also works after moving vol_sprite_usage around
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:13:54 +01:00
Michael Niedermayer
68c90fc086 Merge commit '1a89025793ca73d9685a8ce8e3194efa64dd6844'
* commit '1a89025793ca73d9685a8ce8e3194efa64dd6844':
  mpeg4videodec: move MpegEncContext.vol_sprite_usage to Mpeg4DecContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 23:04:26 +01:00
Michael Niedermayer
f602e22122 Merge commit '75bd07f732fb575c2b88dc7cd08a6bb12c2e24ea'
* commit '75bd07f732fb575c2b88dc7cd08a6bb12c2e24ea':
  mpeg4videoenc: write 0 instead of vol_sprite_usage

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:59:02 +01:00
Michael Niedermayer
e2f63be012 Merge commit 'e62a43f6b1a9c0c82e1df33c0c038e32029c0aa4'
* commit 'e62a43f6b1a9c0c82e1df33c0c038e32029c0aa4':
  mpeg4videodec: move MpegEncContext.time_increment_bits to Mpeg4DecContext

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:45:05 +01:00
Michael Niedermayer
ad13b8ca9b Merge commit 'ee8af2dd99dcb7a01a667deedec81d1aa2a00d72'
* commit 'ee8af2dd99dcb7a01a667deedec81d1aa2a00d72':
  mpeg4videodec: move MpegEncContext.shape to Mpeg4DecContext

Conflicts:
	libavcodec/h263dec.c
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:35:52 +01:00
Michael Niedermayer
be0b869b04 Merge commit '35e0833d410e31d9fd35695ad798c5d13de2af58'
* commit '35e0833d410e31d9fd35695ad798c5d13de2af58':
  mpeg4videodec: add a mpeg4-specific private context.

Conflicts:
	libavcodec/mpeg4video_parser.c
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:27:28 +01:00
Michael Niedermayer
f924d6e40b Merge commit '95fd52c11bff1aad93a29aed3bd5472bd2981d1f'
* commit '95fd52c11bff1aad93a29aed3bd5472bd2981d1f':
  mxfdec: set extradata size

Conflicts:
	libavformat/mxfdec.c

no change as ffmpeg was not affected by this bug

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 22:18:40 +01:00
Kostya Shishkov
01f6df01b6 go2meeting: disallow tile dimensions that are not multiple of 16
Original decoder seems to always use 176x128 tiles anyway and this helps
avoiding lots of issues with odd tile sizes in fuzzed files.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-29 17:37:59 +01:00
Anton Khirnov
e026ee0446 mpeg4videodec: move sprite_{shift,traj} from MpegEncContext to Mpeg4DecContext 2013-11-29 17:37:16 +01:00
Anton Khirnov
513d849bb6 mpeg4videodec: move num_sprite_warping_points from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:57 +01:00
Anton Khirnov
9ba3fc3e3d mpeg4videodec: move sprite_brightness_change from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:43 +01:00
Anton Khirnov
58c120a929 mpeg4videodec: move scalability from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:28 +01:00
Anton Khirnov
6e81597d5a mpeg4videodec: move enhancement_type from MpegEncContext to Mpeg4DecContext 2013-11-29 17:36:05 +01:00
Anton Khirnov
2992afda83 mpeg4videodec: remove a write-only variable from MpegEncContext 2013-11-29 17:35:57 +01:00
Anton Khirnov
3b1c0f686d mpeg4videodec: move new_pred from MpegEncContext to Mpeg4DecContext 2013-11-29 17:35:13 +01:00
Anton Khirnov
e89247debd mpeg4videodec: replace MpegEncContext.reduced_res_vop with a local variable 2013-11-29 17:34:34 +01:00
Timothy Gu
a677fb664a RELEASE: update to 2.1.git
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 16:41:42 +01:00
Anton Khirnov
8cebc9eaac mpeg4videodec: remove a write-only variable from MpegEncContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
b1aacd5668 mpeg4videodec: move t_frame from MpegEncContext to Mpeg4DecContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
0388907400 mpeg4videodec: move cplx_estimation_* fields from MpegEncContext to Mpeg4DecContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
43af264de8 mpeg4videodec: move mpeg4-specific bug workaround variables from MpegEncContext to Mpeg4DecContext 2013-11-29 14:19:48 +01:00
Anton Khirnov
e2ceb17642 mpeg4videodec: move mpeg4-specific post-frame-decode code from h264dec to mpeg4videodec 2013-11-29 14:19:47 +01:00
Anton Khirnov
b452d5ae86 mpeg4videodec: move mpeg4-specific bug detection from h263 generic code to mpeg4 2013-11-29 14:19:47 +01:00
Anton Khirnov
48e1394095 mpeg4videodec: move MpegEncContext.resync_marker into Mpeg4DecContext. 2013-11-29 14:19:47 +01:00
Anton Khirnov
c2f7417eeb vc1: move MpegEncContext.resync_marker into VC1Context.
The field still remains in MpegEncContext because it is used by the
mpeg4 decoder.
2013-11-29 14:19:47 +01:00
Anton Khirnov
a5a71992ca mpeg4videoenc: don't set MpegEncContext.resync_marker
It is only used in one place immediately after it is set.
2013-11-29 14:19:47 +01:00
Anton Khirnov
ad09f52586 h263dec: remove commented out cruft 2013-11-29 14:19:47 +01:00
Anton Khirnov
bc5abfb19e mpeg4videodec: move MpegEncContext.rvlc to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
9f0617d213 mpeg4videodec: remove write-only sprite variables from MpegEncContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
1a89025793 mpeg4videodec: move MpegEncContext.vol_sprite_usage to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
75bd07f732 mpeg4videoenc: write 0 instead of vol_sprite_usage
That field is never set for encoding.
2013-11-29 14:19:47 +01:00
Anton Khirnov
e62a43f6b1 mpeg4videodec: move MpegEncContext.time_increment_bits to Mpeg4DecContext
The field remains in MpegEncContext for use in the encoder.
2013-11-29 14:19:47 +01:00
Anton Khirnov
ee8af2dd99 mpeg4videodec: move MpegEncContext.shape to Mpeg4DecContext 2013-11-29 14:19:47 +01:00
Anton Khirnov
35e0833d41 mpeg4videodec: add a mpeg4-specific private context. 2013-11-29 14:19:47 +01:00
Anton Khirnov
95fd52c11b mxfdec: set extradata size
The line setting it was mistakenly removed in
ecf442a58b
2013-11-29 14:19:47 +01:00
Michael Niedermayer
6e7de11444 avcodec/dcadec: decode LFE so we dont just add random data when downmixing with LFE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 14:13:05 +01:00
Stefano Sabatini
73b8730475 ffserver: improve error feedback in case of write_header() failure 2013-11-29 12:11:39 +01:00
Stefano Sabatini
b133ec6244 ffserver: improve feedback in case no feed is defined for a stream 2013-11-29 12:11:34 +01:00
Stefano Sabatini
0083514727 ffserver: improve feedback in case of stream with unknown feed name 2013-11-29 12:11:28 +01:00
Stefano Sabatini
0d640c08eb doc/ffserver: specify missing argument for ACL feed option 2013-11-29 10:28:03 +01:00
Stefano Sabatini
6dac34b853 doc/ffserver: fix RTSPOtion tpo
Spotted-by: ubitux
2013-11-29 10:28:03 +01:00
Stefano Sabatini
98e47c1a7e doc/ffserver: extend documentation for Feed/File stream options 2013-11-29 10:28:03 +01:00
Stefano Sabatini
0e64edda18 doc/ffserver: uncomment line in stream section example 2013-11-29 10:28:03 +01:00
Stefano Sabatini
cdff4c5313 doc/ffserver: reorder encoding options, and mark them as such
Also add notice about ffmpeg -override_ffserver option.
2013-11-29 10:28:03 +01:00
Stefano Sabatini
f87e189ee0 doc/ffserver: extend documentation for various file-related options 2013-11-29 10:28:03 +01:00
Stefano Sabatini
b1049f89fa ffserver: deprecate inconsistent parsing behavior of Truncate option
Also make it accept the more consistent behavior (boolean option set to
true when specified).
2013-11-29 10:28:03 +01:00
Stefano Sabatini
0124fca03f ffserver: extend feedback in http_start_receive_data() 2013-11-29 10:28:03 +01:00
Michael Niedermayer
d2e46b11e4 avcodec/dcadec: set AV_CLASS_CATEGORY
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:56:37 +01:00
Michael Niedermayer
55bd20a841 avcodec/dcadec: AVClass is const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:56:18 +01:00
Michael Niedermayer
5b3c684147 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dcadec: add disable_xch private option.

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:39:52 +01:00
Michael Niedermayer
3f41e57fa8 Merge commit '220494ad0b2e9e980ef703b46b69308236f29be5'
* commit '220494ad0b2e9e980ef703b46b69308236f29be5':
  dcadec: treat all 2-channel modes as Stereo in dca_downmix.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:21:34 +01:00
Michael Niedermayer
97468463a2 Merge commit 'aaa44d0299338e3bc90128816c21dbfab06cdb48'
* commit 'aaa44d0299338e3bc90128816c21dbfab06cdb48':
  dca: support mixing LFE in dca_downmix.

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:00:59 +01:00
Michael Niedermayer
7ea9c4a94c Merge commit '149438cfe5d233c46bb18341b7c574fe643dd5f2'
* commit '149438cfe5d233c46bb18341b7c574fe643dd5f2':
  dca: improve default stereo downmix coefficients.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 03:48:29 +01:00
Michael Niedermayer
12235a3ed2 avcodec/dcadec: print more details about errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 03:42:03 +01:00
Michael Niedermayer
43ec456320 Merge commit '44b17d794aa508ae21f438ae80bfe8aaf4b426e1'
* commit '44b17d794aa508ae21f438ae80bfe8aaf4b426e1':
  dca: extract core substream's embedded downmix coeffcient codes, if present.

Conflicts:
	libavcodec/dcadata.h
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 03:28:15 +01:00
Michael Niedermayer
c122e697fa Merge commit '27245b4e1bbb7a863341db321b5bdc5792e427d9'
* commit '27245b4e1bbb7a863341db321b5bdc5792e427d9':
  dca: remove embedded downmix coefficient extraction.

Conflicts:
	libavcodec/dcadata.h
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 01:12:02 +01:00
Michael Niedermayer
a7f8817720 Merge commit 'b6d5e6aa10a2f09351f287e876f7ed4504e1f75d'
* commit 'b6d5e6aa10a2f09351f287e876f7ed4504e1f75d':
  dca: convert dca_default_coeffs to float.

Conflicts:
	libavcodec/dcadata.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 00:32:14 +01:00
Michael Niedermayer
e9a47896a0 Merge commit '25609b63d2e07d26d610f485a22082d32c96c0f5'
* commit '25609b63d2e07d26d610f485a22082d32c96c0f5':
  dcadec: store the stereo downmix coefficients as float in the DCAContext.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 00:24:41 +01:00
Michael Niedermayer
cb751a6a96 Merge commit '89de5157b1cbe7807d3ec1d51bd56a75e98c002e'
* commit '89de5157b1cbe7807d3ec1d51bd56a75e98c002e':
  dcadec: implement request_channel_layout.

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 00:18:42 +01:00
Stefano Sabatini
d1daa71f9d doc/ffserver: mention remaining stream options 2013-11-29 00:04:17 +01:00
Stefano Sabatini
f652f70e32 doc/ffserver: move general stream options upwards in the list 2013-11-29 00:04:17 +01:00
Stefano Sabatini
a42c20f089 doc/ffserver: reorder/extend stream video encoding options 2013-11-29 00:04:17 +01:00
Stefano Sabatini
b9a3ac89c8 doc/ffserver: fix bitrate unit for bitrate option 2013-11-29 00:04:17 +01:00
Stefano Sabatini
ab89d2dd2a ffserver: fix typo in comment: defaut -> default 2013-11-28 23:13:46 +01:00
Stefano Sabatini
6aea3d597e doc/ffserver: add notice about re-launch behavior 2013-11-28 23:13:46 +01:00
Stefano Sabatini
2a0349786a doc/ffserver: document InputFormat stream option 2013-11-28 23:13:45 +01:00
Stefano Sabatini
77f5cb92af ffserver: factorize code setting ReadOnlyFile/File options 2013-11-28 23:13:45 +01:00
Stefano Sabatini
0e1e5d0053 ffserver: improve error feedback in open_input_stream() 2013-11-28 23:13:45 +01:00
Stefano Sabatini
ddab41995f ffserver: drop stream AudioQuality option
It has no effect, and it was never documented.
2013-11-28 23:13:45 +01:00
Stefano Sabatini
4f60d53b18 ffserver: add comment about how Launch path program is created 2013-11-28 23:13:45 +01:00
Stefano Sabatini
7cbbc4f7e7 ffserver: extend error handling when parsing the configuration file
In particular, abort immediately in case of memory error, avoid potential
crashes.
2013-11-28 23:13:45 +01:00
Stefano Sabatini
04702a0d3d ffserver: add some error handling to main() 2013-11-28 23:13:45 +01:00
Michael Niedermayer
3adb825650 Merge commit 'cf7860db608df7c76471d8b61f07abbd5aad8dd5'
* commit 'cf7860db608df7c76471d8b61f07abbd5aad8dd5':
  x86: dsputil: Suppress deprecation warnings for XvMC bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 22:47:37 +01:00
Michael Niedermayer
f21ca39e81 Merge commit 'd1916d13e28b87f4b1b214231149e12e1d536b4b'
* commit 'd1916d13e28b87f4b1b214231149e12e1d536b4b':
  dsputil/pngdsp: fix signed/unsigned type in end comparison

Conflicts:
	libavcodec/dsputil.c

See: 454a11a1c9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 22:02:55 +01:00
Tim Walker
3c8507a845 dcadec: add disable_xch private option.
This supplements the deprecated request_channels-based control of XCh decoding.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
220494ad0b dcadec: treat all 2-channel modes as Stereo in dca_downmix.
The check for (prim_channels > 2) before calling dca_downmix made these
cases unreachable, but now 2.1 layouts will go through the downmix code.
Having dual mono, Lt/Rt and sum-difference layouts print errors when
regular Stereo doesn't seems pointless.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
aaa44d0299 dca: support mixing LFE in dca_downmix.
Embedded downmix coefficients can use this.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
149438cfe5 dca: improve default stereo downmix coefficients.
Previous coefficients were producing a non-normalized, incorrect Lt/Rt downmix.

The new coefficients produce a standard Lo/Ro downmix with 3dB attenuation.

This should match the typical default coefficients used by DTS encoders.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
44b17d794a dca: extract core substream's embedded downmix coeffcient codes, if present.
As per ETSI TS 102 114 V1.4.1 specification.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
27245b4e1b dca: remove embedded downmix coefficient extraction.
It was based on an old, seemingly incorrect specification, so default
coefficients were always used anyway.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:50 +01:00
Michael Niedermayer
e975c147e1 library.mak: only run asm strip if ASMSTRIP flags are set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 21:52:46 +01:00
Tim Walker
b6d5e6aa10 dca: convert dca_default_coeffs to float.
Easier to read, modify, and avoids relying on an outdated table.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:38:22 +01:00
Tim Walker
25609b63d2 dcadec: store the stereo downmix coefficients as float in the DCAContext.
The 7-bit codes previously used are absent from the ETSI 102 114 V1.4.1 spec.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:35:22 +01:00
Michael Niedermayer
191454f26e configure: remove code that disables striping in the absence of some flags
This prevents breaking (non asm) striping in that case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 21:35:12 +01:00
Marton Balint
31bb172be2 ffmpeg: ensure that -fix_sub_duration doesnt create subtitles with zero duration
When fix_sub_duration is used, and the duration fixing code is generating 0
duration, that is definitely zero, and not undefined or infinite (which may be
the case for decoded AVSubtitles depending on the codec), so it is safe to drop
it.

It fixes teletext subtitle sources, when the subtitles are transmitted twice
after each other for some reason.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Nicolas George <george@nsup.org>
2013-11-28 21:30:03 +01:00
Marton Balint
4d6f2ff524 ffmpeg: free empty subtitles as well in transcode_subtitles
Even if it does not matter at the moment, because subtitles with num_rect == 0
have no memory allocated, this is how we expect the users to use the API, a
returned AVSubtitle should be freed with avsubtitle_free.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Nicolas George <george@nsup.org>
2013-11-28 21:30:03 +01:00
Marton Balint
3e396ca8ed ffmpeg: do not pass possibly undefined subtitles to sub2video_update
It should not matter for real-life usage, it is just cleaner this way.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Nicolas George <george@nsup.org>
2013-11-28 21:29:54 +01:00
Michael Niedermayer
e283c26c35 build sys: rename STRIPFLAGS to ASMSTRIPFLAGS
This more closely matches the actual use, also we use plain
strip without these flags for striping

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 21:29:13 +01:00
Michael Niedermayer
71b95f2ab6 Merge commit '0673ede985a6560e7efb86dab1c58fb7f95ce587'
* commit '0673ede985a6560e7efb86dab1c58fb7f95ce587':
  configure: add strip flags checks

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 21:27:17 +01:00
Tim Walker
89de5157b1 dcadec: implement request_channel_layout.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:10:29 +01:00
Stefano Sabatini
58010e57b2 doc/ffserver: fix documentation for CustomLog 2013-11-28 20:17:15 +01:00
Stefano Sabatini
805b607484 doc/ffserver: extend documentation for VideoBitRateRange 2013-11-28 20:17:10 +01:00
Stefano Sabatini
bcbf8920ed doc/ffserver: clarify/extend documentation about status streams 2013-11-28 20:17:00 +01:00
Stefano Sabatini
312d075e5d doc/ffserver: move ACL syntax section before the global option sections 2013-11-28 20:16:53 +01:00
Stefano Sabatini
4e39962f0c doc/ffserver: document "Launch" feed option 2013-11-28 20:16:46 +01:00
Stefano Sabatini
07315da149 doc/ffserver: fix documentation for -n option
Launch option is defined in the Feed section.
2013-11-28 18:59:29 +01:00
Stefano Sabatini
1ee9341a70 doc/ffserver: extend documentation for CustomLog option 2013-11-28 18:59:21 +01:00
Stefano Sabatini
2121945770 doc/ffserver: fix RTPS -> RTSP ttypo
Spotted-by: lazy ubitux
2013-11-28 17:28:27 +01:00
Stefano Sabatini
b89983c4ea doc/ffserver: clearly specify whence ffserver reads the configuration file 2013-11-28 17:28:22 +01:00
Stefano Sabatini
bb097d037c doc/ffserver: add notice about case-insensitiveness 2013-11-28 17:13:40 +01:00
Stefano Sabatini
e79f299caf doc/ffserver: remove tip about MaxBandwidth
Should be redundant now that the option is documented.
2013-11-28 17:13:35 +01:00
Stefano Sabatini
398479050e doc/ffserver: specify default value for Preroll 2013-11-28 17:13:27 +01:00
Stefano Sabatini
2989281d4d doc/ffserver: document NoDaemon deprecated option 2013-11-28 17:03:09 +01:00
Stefano Sabatini
0003379926 doc/ffserver: improve rendering for -n option text 2013-11-28 17:03:09 +01:00
Stefano Sabatini
6dc90334e3 doc/ffserver: remove "What can this do?" section
The section shows only a limited use case, contains only redundant
information, and various mysterious mentions about things which don't
work correctly.
2013-11-28 17:03:09 +01:00
Stefano Sabatini
80193a12e0 doc/ffserver: use @command{} for specifying ffserver 2013-11-28 17:03:09 +01:00
Stefano Sabatini
39192b76f8 doc/ffserver: remove more pointless/outdated entries
Mentioning build options, or bugs, or mysterious limitations should not
be done in the manual.
2013-11-28 17:03:08 +01:00
Diego Biurrun
cf7860db60 x86: dsputil: Suppress deprecation warnings for XvMC bits
These parts are scheduled for removal on the next version bump.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-28 16:04:30 +01:00
Michael Niedermayer
d1916d13e2 dsputil/pngdsp: fix signed/unsigned type in end comparison
Fixes out of array accesses and integer overflows.
2013-11-28 15:37:55 +01:00
Vittorio Giovara
0673ede985 configure: add strip flags checks
This will check if -wN '..@*' is available and fall back on -x if not;
when none are available, do not run strip at all to prevent removing
functions that might be actually needed.
2013-11-28 15:37:10 +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
Michael Niedermayer
03beb5792a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h263dec: sanitize a condition.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 11:21:52 +01:00
Michael Niedermayer
0a5ca63c24 Merge commit '4d388c0cd05dd4de545e8ea333ab4de7d67ad12d'
* commit '4d388c0cd05dd4de545e8ea333ab4de7d67ad12d':
  h264_refs: make sure not to write over the bounds of the default ref list

Conflicts:
	libavcodec/h264_refs.c

This condition should be impossible and was checked for by asserts.
the asserts are moved up in this merge to gurantee that no out of array
access can happen even if the state is "impossible".
Also if such impossible states could somehow be created, that should
be dealt with and not silently ignored.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 10:45:53 +01:00
Timothy Gu
a212d66c2a doc/default.css: sync with ffmpeg-web
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-11-28 10:27:25 +01:00
Stefano Sabatini
15f2cac018 doc/ffserver: remove outdated troubleshoot entry about audio 2013-11-28 10:19:12 +01:00
Stefano Sabatini
f7fbb7ac99 ffserver: clarify feedback in case of wrong AVOptionAudio/Video error 2013-11-28 10:19:03 +01:00
Stefano Sabatini
c4a03ac3b8 doc/ffserver: document configuration syntax
While still incomplete, this is better than nothing at all.
2013-11-28 10:18:55 +01:00
Michael Niedermayer
738ebb4a0e ffmpeg: set VCFR when copying timestamps
This fixes unreasonable initial frame repeats
Fixes Ticket3176

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 02:28:50 +01:00
Michael Niedermayer
0075a22f41 Revert "configure: add #include "version.h" to config.h"
This reverts commit ca21116b3f.

Revert suggested by Jamal:
"Bad secondary effect i just noticed: Every time version.h is changed
 (git pull for example), anything that includes config.h will be
 recompiled. And that means pretty much every single file in the tree.
"
2013-11-28 00:19:45 +01:00
Timothy Gu
ca21116b3f configure: add #include "version.h" to config.h
Avoid clash with version.h of the libraries.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 23:06:13 +01:00
Anton Khirnov
8733799392 h263dec: sanitize a condition.
Call ff_mpeg4_decode_picture_header() only when the decoder has the
MPEG4 codec id, not based on a vaguely related value of h263_pred.
2013-11-27 22:24:50 +01:00
Anton Khirnov
4d388c0cd0 h264_refs: make sure not to write over the bounds of the default ref list
Fixes invalid writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-27 22:24:40 +01:00
Michael Niedermayer
b723c4e67e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc/platform: Update to reflect current MSVC build situation

Conflicts:
	doc/platform.texi

See: ec0b0c2b58
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 17:29:11 +01:00
Michael Niedermayer
808c10e728 avutil/log: check that len is within the buffer before reading it
Fixes out of array read
Fixes: asan_heap-oob_19d6979_6857_mmw_deadzy.ogg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 17:06:42 +01:00
Stefano Sabatini
6b58488f92 doc/ffmpeg: use @command{} for programs mentioned in -override_ffserver 2013-11-27 15:48:19 +01:00
Stefano Sabatini
8adaee56c4 ffserver: factorize opt_audio/video_codec
Simplify.
2013-11-27 15:48:19 +01:00
Michael Niedermayer
f13f139feb avcodec/qpeg: make qpeg_decode_inter() noinline
This should workaround an apparent mis-compilation with gcc 4.2 on BSD
The function is rarely called and not inlining should have no speed
effect

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 14:41:16 +01:00
Derek Buitenhuis
ec0b0c2b58 doc/platform: Update to reflect current MSVC build situation
Also update the C99 converter URL, since it uses GitHub Releases
to host the binaries now.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-11-27 13:39:42 +00:00
Derek Buitenhuis
fa515c2088 doc/platform: Update to reflect current MSVC build situation
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-11-27 13:39:03 +00:00
Michael Niedermayer
ba728c1a25 doc/examples/transcode_aac: remove non converted codepath
This codepath is not implemented and just crashes, also its simpler
without special cases, which makes sense for an example

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 11:22:19 +01:00
Michael Niedermayer
7497c894cd doc/examples/transcode_aac: switch to swresample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 11:15:48 +01:00
Michael Niedermayer
60b099c371 get_audio_buffer: fix usage where channels are not set but layout is
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 10:52:26 +01:00
Michael Niedermayer
02abc905cd doc/examples/transcode_aac: fix project name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 10:52:05 +01:00
Michael Niedermayer
715f3623f8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add an audio transcoding example.

Conflicts:
	configure
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 10:31:08 +01:00
Lukasz Marek
3aaa50a997 lavd/pulse_audio_enc: add buffer size control options
Add options to control the size of the PulseAudio buffer.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-27 10:12:54 +01:00
Andreas Unterweger
10421bcf0a Add an audio transcoding example.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-27 09:20:05 +01:00
Michael Niedermayer
a12b4bd107 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Check for pod2man instead of perl for manual page generation

Conflicts:
	configure
	doc/Makefile

The code that this changes is mostly not part of ffmpeg
thus only a few whitespaces end up being merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 02:35:38 +01:00
Michael Niedermayer
6f24566f56 Merge commit '4da3f410d176dd1a55d7cbe5d2e2ead342027f13'
* commit '4da3f410d176dd1a55d7cbe5d2e2ead342027f13':
  configure: Restore doc option to disable building the documentation

Conflicts:
	configure

See: eff2edae56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 02:27:24 +01:00
Michael Niedermayer
5b326f398e doc/Makefile: fix building examples if a program suffix is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 02:23:55 +01:00
Michael Niedermayer
875f9aea3e Merge commit 'dc80e2f7a529d6e4416b40b68699be16fed62d6c'
* commit 'dc80e2f7a529d6e4416b40b68699be16fed62d6c':
  Makefile: Fix building programs on systems with a nonempty executable suffix

Conflicts:
	Makefile

See: f1db007e00
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 02:09:16 +01:00
Michael Niedermayer
6d9dad6a7c avcodec/g2meet: check available space before copying palette
Fixes out of array read
Fixes: asan_heap-uaf_ae6067_5415_g2m4.wmv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 00:10:23 +01:00
Michael Niedermayer
83f7bd6dcf avcodec/g2meet: fix stride calculation, use correct format field
Fixes out of array accesses
Fixes: asan_heap-oob_ae5f63_5415_g2m4.wmv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-27 00:10:23 +01:00
Diego Biurrun
92f0abb27f build: Check for pod2man instead of perl for manual page generation
Some systems provide Perl without pod2man.
2013-11-26 13:49:06 -08:00
Diego Biurrun
4da3f410d1 configure: Restore doc option to disable building the documentation
Also add appropriate dependency declarations for perl and texi2html.
2013-11-26 13:49:06 -08:00
Martin Storsjö
dc80e2f7a5 Makefile: Fix building programs on systems with a nonempty executable suffix
This fixes leftover issues from 14abeaa4 which caused make
rules for programs to not match up properly when the executable
suffix was nonempty.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-26 23:31:09 +02:00
Stefano Sabatini
7043311969 lavd/sdl: add delay when no events are found in the event queue
Avoid busy loops and decrease CPU usage.

Suggested-By: Roger Pack
2013-11-26 18:38:48 +01:00
Stefano Sabatini
35349bbb97 lavd/sdl: apply misc cosmetics to options 2013-11-26 18:15:58 +01:00
Stefano Sabatini
b23dea27fd lavd/sdl: allow to change window size 2013-11-26 18:15:24 +01:00
Stefano Sabatini
0464d272ff lavd/sdl: move compute_overlay_rect() before event_thread()
It will be used in event_thread() in a pending patch.
2013-11-26 18:15:18 +01:00
Stefano Sabatini
7467b4f71b lavd/sdl: factorize overlay rect size in a separate function 2013-11-26 18:15:12 +01:00
Stefano Sabatini
7de3b1394b lavd/sdl: add event handler thread
SDL_Init() is called on the event handler thread, as required by SDL in
Windows to avoid deadlocks as discovered by Roger Pack.

Fix trac ticket #1743 and #1744.
2013-11-26 18:14:52 +01:00
gcocherel
3c846fda1c HEVC : valgrind fix : vps_list
cherry picked from commit 211c39ade87bc079eabc862a6b684544dc88a786

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 13:22:01 +01:00
Michael Niedermayer
75ec40b083 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: remove mp3_header_(de)compress bitstream filters

Conflicts:
	Changelog
	libavcodec/mp3_header_compress_bsf.c
	libavcodec/mp3_header_decompress_bsf.c

The decompress filter is left in place for interoperability and support of
files that used the compress filter.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 13:13:45 +01:00
Michael Niedermayer
625b29037e Merge commit '1eaac1d6f7bb8e52d82e1a114c88a59a9a8e5025'
* commit '1eaac1d6f7bb8e52d82e1a114c88a59a9a8e5025':
  mpeg12dec: Extract CC user data into frame side data

Conflicts:
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 13:00:46 +01:00
Michael Niedermayer
cd51d9a984 Revert "avcodec/gsmdec: reject unsupported msn audio modes"
they should be supported now

This reverts commit 1ee1a3d9f4.
2013-11-26 12:38:03 +01:00
Michael Niedermayer
8c87658fdc Merge commit 'a16577d9857206089fd8bce6a342b31dbd7fb9b0'
* commit 'a16577d9857206089fd8bce6a342b31dbd7fb9b0':
  MSN Audio support

Conflicts:
	libavformat/riff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 12:37:20 +01:00
Michael Niedermayer
ac021fdc40 Merge commit '56d061ce9da954560892e3551513d5ecc0439846'
* commit '56d061ce9da954560892e3551513d5ecc0439846':
  metasound: add last missing modes (8kHz @ 6kbps per channel)

Conflicts:
	Changelog
	doc/general.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 12:28:31 +01:00
Michael Niedermayer
0290a646ac Merge commit 'de44dfc7c0ec02bda7d846ef713145c890bfae3f'
* commit 'de44dfc7c0ec02bda7d846ef713145c890bfae3f':
  vc1: Reset numref if fieldmode is not set

This change is redundant, numref is already reset

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 12:23:39 +01:00
Stefano Sabatini
8bf7ea8ac2 cmdutils: remove this_year constant, use CONFIG_THIS_YEAR instead
Simplify.
2013-11-26 10:03:32 +01:00
Stefano Sabatini
4c4710a745 configure: define CONFIG_THIS_YEAR at the configure level
The macro value can be shared between configure script and cmdutils.c.
2013-11-26 09:54:40 +01:00
Anton Khirnov
c6080d8900 lavc: remove mp3_header_(de)compress bitstream filters
They mangle the mp3 header in a non-standard way to save a few bytes.
People who care about space so much should just use a more efficient
codec.
2013-11-26 09:27:50 +01:00
John Stebbins
1eaac1d6f7 mpeg12dec: Extract CC user data into frame side data
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-26 08:37:22 +01:00
Kostya Shishkov
a16577d985 MSN Audio support
This is essentially a MS GSM decoder extension that supports more
sampling rates and lower bitrates.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-26 08:31:10 +01:00
Kostya Shishkov
56d061ce9d metasound: add last missing modes (8kHz @ 6kbps per channel)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-26 08:29:42 +01:00
Michael Niedermayer
a9a3afec1a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacsbr: Add some const casts to silence warnings in ff_sbr_apply()

Conflicts:
	libavcodec/aacsbr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 02:15:47 +01:00
Michael Niedermayer
f1db007e00 doc/Makefile fix PROGS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 02:06:59 +01:00
Michael Niedermayer
325c918fa3 Makefile: Fix building progs out of progs_g
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 02:06:41 +01:00
Michael Niedermayer
6d34aa245d Merge commit 'ab81f24ad43bddf77ddd25cba86780c1c884996c'
* commit 'ab81f24ad43bddf77ddd25cba86780c1c884996c':
  build: Integrate multilibrary examples into the build system

Conflicts:
	configure
	doc/Makefile
	doc/examples/muxing.c
	doc/examples/output.c
	libavformat/Makefile
	libavformat/output-example.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 01:31:00 +01:00
Michael Niedermayer
5ded4332f1 Merge commit '14abeaa43d021afdce9119d906891abe89c03b88'
* commit '14abeaa43d021afdce9119d906891abe89c03b88':
  build: Separate building programs linking against libav* from building av*

Conflicts:
	Makefile
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-26 01:12:24 +01:00
Kostya Shishkov
de44dfc7c0 vc1: Reset numref if fieldmode is not set
There are samples in the wild with B-frames and P-frames with different
interlace mode.

CC: libav-stable@libav.org
Reported-by: Jean-Baptiste Kempf <jb@videolan.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-11-26 00:34:12 +01:00
Michael Niedermayer
4782c4284f avcodec/ac3dec: check bap before use.
Fixes out of array read
Fixes assertion failure
Fixes asan_static-oob_16431c0_8036_rio_bravo_mono_64_spx.ac3

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-25 23:17:17 +01:00
Diego Biurrun
5145ccf02b aacsbr: Add some const casts to silence warnings in ff_sbr_apply() 2013-11-25 21:04:29 +01:00
Diego Biurrun
ab81f24ad4 build: Integrate multilibrary examples into the build system
This includes moving libavformat/output-example to doc/examples/output.
2013-11-25 11:57:29 -08:00
Diego Biurrun
14abeaa43d build: Separate building programs linking against libav* from building av*
This will allow cleaner integration of building example programs.
2013-11-25 11:57:29 -08:00
Michael Niedermayer
c3d5cd1ebf Revert "Merge remote-tracking branch 'qatar/master'" (43dec5ef9a)
Fixes out of array accesses
Fixes asan_static-oob_eb9812_5961_iv41.avi
This reverts the merge of c9ef6b0932

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2013-11-25 19:55:32 +01:00
Marton Balint
a02860351d ffprobe: add support for subtitle frames
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-25 19:51:27 +01:00
Stefano Sabatini
c0f2e07135 lavf/segment: add a few log messages when avio_open2() fails 2013-11-25 19:20:11 +01:00
Stefano Sabatini
5e278c19c7 lavf/segment: add segment_list_entry_prefix option
This option allows to add a prefix to the segment list entry filenames.

Also set by default the list entry filenames to the corresponding
segment basename, consistent with the HLS muxer.

Based on an idea by Steven Liu <lingjiujianke@gmail.com>.
2013-11-25 19:12:16 +01:00
Vignesh Venkatasubramanian
7f11c530dc lavf: Exporting opus pre_skip in AVCodecContext
Opus Pre Skip is exported in AVCodecContext->delay similar to how
it is done for matroska. Doing the same for ogg too.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-25 15:29:49 +01:00
Michael Niedermayer
25010f511c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: Add the host executable suffix for the print_options dependency

See: d48f014ff1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-25 11:30:49 +01:00
Martin Storsjö
09cd0a3176 doc: Add the host executable suffix for the print_options dependency
This fixes building on windows.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-25 11:20:55 +02:00
Hendrik Leppkes
841c0aafa5 avcodec/pthread: check packet buffer allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-25 02:22:43 +01:00
James Almer
eff2edae56 Partially revert "Merge commit 'f187557ab4612776f7f527ecf3d40062975c3e4c'"
This partially reverts commit c0237d19a0
Some scripts make use of --disable-doc

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-25 01:53:12 +01:00
Stefano Sabatini
5e1c57f5cb ffplay: do not call avcodec_register_all() explicitly
avcodec_register_all() is implicitly called by av_register_all().
2013-11-25 00:03:20 +01:00
Michael Niedermayer
988bda8a69 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Import makedef script from c99-to-c89

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 23:27:32 +01:00
Derek Buitenhuis
dedfa00107 build: Import makedef script from c99-to-c89
This allows MSVC 2013 and ICL to build with no external
dependencies.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-11-24 19:36:09 +00:00
Michael Niedermayer
e78d038187 avformat/asfdec: ignore packet_segments
Fixes Ticket1708
Based on patch by Alberto Delmás

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 20:33:26 +01:00
Alberto Delmás
edf7d15eb0 avformat/asfdec: reset packet_time_start when asf_read_frame_header() failed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 20:33:26 +01:00
Michael Niedermayer
76dad833e9 avformat/asfdec: remove duplicated packet_segments reset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 20:23:22 +01:00
Stefano Sabatini
25c675b5a7 lavd/sdl: do not manually free window_title and icon_title fields
They are automatically freed when calling av_write_trailer(). Simplify.
2013-11-24 19:35:36 +01:00
Stefano Sabatini
8446bb33d1 doc/outdevs/sdl: fix confusing text about window_fullscreen default value 2013-11-24 19:35:36 +01:00
Carl Eugen Hoyos
e043298cb1 lavf/mpegenc: Print a warning if ac3, pcm_s16be or dts are muxed into mpeg1.
Some media players don't play the resulting files.
The warning should help users to avoid the issues described in ticket #1720.
2013-11-24 10:37:52 +01:00
Michael Niedermayer
ccdfa3e271 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add missing #includes for *INT64_MAX and *INT64_C

Conflicts:
	ffmpeg.c
	ffmpeg_filter.c
	ffplay.c
	libavformat/assdec.c
	libavformat/avidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 05:21:19 +01:00
Michael Niedermayer
f67ec7f3a2 Merge commit '0eeeb9647e9c92c9edfd0b18c7cb5da7ac666f85'
* commit '0eeeb9647e9c92c9edfd0b18c7cb5da7ac666f85':
  mpegaudiodec: Consistently handle fixed/float templating

Conflicts:
	libavcodec/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 05:12:07 +01:00
Michael Niedermayer
ceaaf0d97e Merge commit '48b24bd2d208ce0f124029ac4c5ac5cb1fca4175'
* commit '48b24bd2d208ce0f124029ac4c5ac5cb1fca4175':
  ac3dec: Fix out-of-array read

Conflicts:
	libavcodec/ac3dec.c

See: 2cbf27b08a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 05:05:09 +01:00
Michael Niedermayer
c0237d19a0 Merge commit 'f187557ab4612776f7f527ecf3d40062975c3e4c'
* commit 'f187557ab4612776f7f527ecf3d40062975c3e4c':
  build: more fine-grained dependencies for documentation build tools

Conflicts:
	configure
	doc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 04:55:35 +01:00
Michael Niedermayer
3d5a5e86be avcodec/jpeg2000dec: Check precno before using it in JPEG2000_PGOD_CPRL
Fixes out of array reads
Fixes: asan_heap-oob_f0de57_6823_mjp2.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-24 04:02:24 +01:00
Paul B Mahol
638d79a9d0 ffprobe: use designated initializer for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-23 22:23:52 +00: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
Diego Biurrun
8f8bc92365 Add missing #includes for *INT64_MAX and *INT64_C 2013-11-23 21:55:52 +01:00
Diego Biurrun
0eeeb9647e mpegaudiodec: Consistently handle fixed/float templating 2013-11-23 21:36:49 +01:00
Tim Walker
48b24bd2d2 ac3dec: Fix out-of-array read
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-23 21:36:49 +01:00
Michael Niedermayer
321b338762 avcodec/hnm4video: allocate frame only when theres a coded frame
Fixes memleak
Fixes: asan_heap-oob_e76bdf_2224_MOTHOO.HNM

This patch also removes the setting of palette_has_changed,
which was set on a frame that was never returned

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 21:05:29 +01:00
Diego Biurrun
f187557ab4 build: more fine-grained dependencies for documentation build tools
Perl is needed to build the manual pages, texi2html for the HTML pages.
2013-11-23 09:45:06 -08:00
James Zern
34e32d6464 libvpxenc: update cpu-used default
3 -> 1. vp8 encoding speed has improved since the initial release and 1
is a reasonable default for vp9 as well.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 16:59:05 +01:00
James Zern
6819eaf31b libvpxdec: set CODEC_CAP_DR1 for vp9
it shares vp8_decode() with vp8 which already has the flag set

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 16:58:03 +01:00
Michael Niedermayer
f63ee2aa14 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libschroedingerenc: do not assert on values from external libraries

Conflicts:
	libavcodec/libschroedingerenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 14:53:39 +01:00
Michael Niedermayer
3e641b4842 Merge commit '7671dd7cd7d51bbd637cc46d8f104a141bc355ea'
* commit '7671dd7cd7d51bbd637cc46d8f104a141bc355ea':
  avconv: add support for VDPAU decoding

Conflicts:
	Changelog
	Makefile
	configure
	ffmpeg.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 14:46:48 +01:00
Michael Niedermayer
62e10c3759 Merge commit '07fd0a22192805d56c635eb294dc26b0a54ae325'
* commit '07fd0a22192805d56c635eb294dc26b0a54ae325':
  avconv: add infrastructure for using hwaccels

Conflicts:
	ffmpeg.c
	ffmpeg.h
	ffmpeg_filter.c
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 14:31:15 +01:00
Michael Niedermayer
94194bdcd7 Merge commit 'd4df02131b5522a99a4e6035368484e809706ed5'
* commit 'd4df02131b5522a99a4e6035368484e809706ed5':
  ac3dec: Remove write-only channel_layout field from AC3DecodeContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 13:45:09 +01:00
Michael Niedermayer
2cbf27b08a libavcodec/ac3dec: fix channel_layout
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 13:36:15 +01:00
Michael Niedermayer
2e5780a53f Merge commit 'b53285462263ef8a795f0e289abd5799b4c57652'
* commit 'b53285462263ef8a795f0e289abd5799b4c57652':
  ac3: implement request_channel_layout.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 12:18:33 +01:00
Michael Niedermayer
8733b363ac Merge commit 'c16bfb147df8a9d350e8a0dbc01937b78faf5949'
* commit 'c16bfb147df8a9d350e8a0dbc01937b78faf5949':
  swscale: x86: Consistently use lowercase function name suffixes

Conflicts:
	libswscale/x86/rgb2rgb.c
	libswscale/x86/swscale.c

See: 1de064e21e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-23 12:10:40 +01:00
Alexandra Khirnova
6f270da61b libschroedingerenc: do not assert on values from external libraries
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-23 12:08:53 +01:00
Anton Khirnov
7671dd7cd7 avconv: add support for VDPAU decoding 2013-11-23 11:55:53 +01:00
Anton Khirnov
07fd0a2219 avconv: add infrastructure for using hwaccels 2013-11-23 11:55:43 +01:00
Reimar Döffinger
97a0bad87c Add --enable-rpath option to add -Wl,-rpath to pkg-config files.
This allows installing into e.g. /usr/lib/ffmpeg and binaries linked
against ffmpeg will pick these .so file while binaries linked against
some fork or different version will pick the libraries in /usr/lib.
There will be still some issues for binaries that (indirectly) end up
depending on multiple variants, but for the simpler cases it should allow
different applications to use different (compatible) variants that
are installed at the same time.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-11-23 09:57:38 +01:00
Michael Niedermayer
ffe31c654d avcodec/hnm4video: check writeoffset in decode_interframe_v4a()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 23:52:08 +01:00
Michael Niedermayer
5c4aa72b75 avformat/hnm: check chunk_size == 0
Fixes potential infinite loop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 23:52:08 +01:00
Michael Niedermayer
bd8d28e2d2 avcodec/hnm4video: check dimensions for validity
Fixes out of array read
Fixes: asan_heap-oob_e76e18_1244_CASSE.HNM
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 23:52:08 +01:00
Tim Walker
d4df02131b ac3dec: Remove write-only channel_layout field from AC3DecodeContext
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-22 23:27:34 +01:00
Tim Walker
b532854622 ac3: implement request_channel_layout.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-22 23:27:33 +01:00
Clément Bœsch
004f3b154b avcodec/vp9dsp: pass dconly bit as macro argument. 2013-11-22 23:26:37 +01:00
Diego Biurrun
c16bfb147d swscale: x86: Consistently use lowercase function name suffixes 2013-11-22 23:01:51 +01:00
Michael Niedermayer
b33f3246e2 avcodec/hnm4video: fix missing newlines in error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 22:31:47 +01:00
Michael Niedermayer
78446f0d9d avcodec/hnm4video: fix write offset checks in decode_interframe_v4()
Fixes: asan_heap-oob_e76a51_1244_CASSE.HNM

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 22:31:46 +01:00
Michael Niedermayer
5a08ba5381 avcodec/hnm4video: check offset in decode_interframe_v4() more completely
Fixes out of array reads
Fixes: signal_sigsegv_e74c1e_1092_BROCIME.HNM
Fixes: signal_sigsegv_e74e85_2620_PLAQUE0.HNM

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 22:12:27 +01:00
Michael Niedermayer
a7f27453f6 avformat/mov: Check that we have a stream before accessing it in mov_read_ares()
Fixes out of array read
Fixes: signal_sigsegv_6f1855_3910_avid_test_alpha.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 22:04:03 +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
Michael Niedermayer
2e97e24409 avformat/ipmovie: check OPCODE_INIT_VIDEO_BUFFERS size more completely
Fixes use of uninitialized data

Fixes: signal_sigsegv_1571228_5930_ipmovie_interplayvideo_interplay_dpcm__bislogo.mve

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 19:49:25 +01:00
Michael Niedermayer
e4eb2c957b avcodec/rv10: revert hunk from ce9f5b13ed
Fixes segfault
Fixes: signal_sigsegv_103f872_2759_RVTR_behere_ivideo_motor_cross_interview_final_56kbps.rm

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 19:31:39 +01:00
Michael Niedermayer
9c00f9ada6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hls: Avoid reading outside of the allocated array

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 18:15:12 +01:00
Michael Niedermayer
9440e47067 Merge commit '8c929098141ebc94ad3f303521c520bb3dc6d8f6'
* commit '8c929098141ebc94ad3f303521c520bb3dc6d8f6':
  hls: Check whether the AVIOContext contains a new redirected URL

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 18:08:53 +01:00
Michael Niedermayer
15b2ec57cc Merge commit 'be4edda6731a341d3fdeaa0e57753dc396790362'
* commit 'be4edda6731a341d3fdeaa0e57753dc396790362':
  http: Expose the content location via an AVOption

Conflicts:
	libavformat/http.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:48:45 +01:00
Michael Niedermayer
1d19f1b196 Merge commit '393d80cc278e2b2f5c9e7805db176e6f28335a33'
* commit '393d80cc278e2b2f5c9e7805db176e6f28335a33':
  http: Support relative URL redirection

Conflicts:
	libavformat/http.c

See: 4a4c93cb3f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:41:45 +01:00
Timothy Gu
45ab71a8b8 doc: delete git-howto.txt
This is already available in Texinfo version.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-22 17:26:32 +01:00
Michael Niedermayer
6d648dcfc9 Merge commit '76267ecc82e3018e1913a2483d5fc47d0949cbd8'
* commit '76267ecc82e3018e1913a2483d5fc47d0949cbd8':
  http: Remove an unrelated and mistakenly set AVOption unit name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:18:52 +01:00
Michael Niedermayer
51268aaed2 avutil/utf8: put under #ifdef TEST
All other test programs are under #ifdef TEST too
with the implementation and test code being generally in the same file

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:16:11 +01:00
Michael Niedermayer
0398b7cbd3 avcodec/hnm4video: check intraframe size
Fixes hypothetical integer overflow with HNM4_CHUNK_ID_IZ

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:02:00 +01:00
Michael Niedermayer
6060234d43 avcodec/mjpegdec: check len in mjpeg_decode_app() more completely
Avoids len from becoming negative and causing assertion failure

Fixes: signal_sigabrt_7ffff7126425_5140_fd44dc63fa7bdd12ee34fc602231ef02.jpg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:02:00 +01:00
Michael Niedermayer
ba992711f7 avcodec/hnm4video: check that packetsize is at least 8
Fixes integer overflow and assertion failure
Fixes: signal_sigabrt_7ffff7126425_1243_CASSE.HNM

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:02:00 +01:00
Michael Niedermayer
7865759409 avformat/avidec: Dont assert the existence of an index for video streams.
Its possible in various rare cases that an index cannot be created or allocated.
Fixes assertion failure
Fixes: signal_sigabrt_7ffff7126425_7712_pokem.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 17:02:00 +01:00
Stefano Sabatini
d20241c9b1 ffprobe: remove various useless ","
Nitted-By: ubitux
2013-11-22 16:58:24 +01:00
Stefano Sabatini
cbba331aa0 ffprobe: implement string validation setting
This should fix trac tickets #1163, #2502.
2013-11-22 16:51:56 +01:00
Stefano Sabatini
11cba3ba9d ffprobe: add support for nested options in writer contexts 2013-11-22 16:51:19 +01:00
Stefano Sabatini
e87190f5d2 ffprobe: check for errors, and abort immediately
This allows to make use of validation features.
2013-11-22 16:51:12 +01:00
Stefano Sabatini
68590650f0 lavu/avstring: add av_utf8_decode() function 2013-11-22 16:51:05 +01:00
Stefano Sabatini
e782eea183 lavu/dict.h: extend/clarify docs for av_dict_parse_string() 2013-11-22 15:51:20 +01:00
Stefano Sabatini
320389f88b lavu/dict.h: apply various fixes/extensions to doxy
In particular, document AV_DICT_MATCH_CASE, AV_DICT_IGNORE_SUFFIX, and
extend documentation for av_dict_get().
2013-11-22 15:51:10 +01:00
Stefano Sabatini
e2ad4e65a1 doc/encoders/libfdk_aac: state that VBR support is experimental 2013-11-22 14:55:01 +01:00
Stefano Sabatini
9459569897 doc/encoders/libfdk_aac: fix a few typos 2013-11-22 14:55:01 +01:00
Stefano Sabatini
80c85460fd doc/encoders/libfdk_aac: use @ref to reference libfaac 2013-11-22 14:45:43 +01:00
Martin Storsjö
56c2337004 hls: Avoid reading outside of the allocated array
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-22 14:27:10 +02:00
Martin Storsjö
8c92909814 hls: Check whether the AVIOContext contains a new redirected URL
This allows both the main playlist itself as well as the variant
playlists to handle redirects combined with relative URLs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-22 14:27:08 +02:00
Martin Storsjö
be4edda673 http: Expose the content location via an AVOption
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-22 14:27:07 +02:00
Zhang Rui
393d80cc27 http: Support relative URL redirection
In RFC 2616, this was explicitly said to be an absolute URL,
while in an upcoming draft [1] it is allowed to be relative as well.

[1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-25#section-7.1.2

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-22 14:27:04 +02:00
Martin Storsjö
76267ecc82 http: Remove an unrelated and mistakenly set AVOption unit name
This was due to a copypaste oversight.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-22 14:27:01 +02:00
Michael Niedermayer
9e22b8aca0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacps: Adjust some const qualifiers to suppress warnings

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 13:01:11 +01:00
Michael Niedermayer
8617be28d0 Merge commit '430d12196432ded13f011a3bf7690f03c9b2e5d6'
* commit '430d12196432ded13f011a3bf7690f03c9b2e5d6':
  pcx: round up in bits->bytes conversion in a buffer size check

Conflicts:
	libavcodec/pcx.c

See: 6462268e74
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:51:00 +01:00
Michael Niedermayer
bdf831859f Merge commit 'c918e08b9cc9ce8d06159c51da55ec5ab018039a'
* commit 'c918e08b9cc9ce8d06159c51da55ec5ab018039a':
  truemotion1: make sure index does not go out of bounds

See: fd4c1c0b70
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:43:45 +01:00
Michael Niedermayer
4b3b702f92 Merge commit 'ce9bba5340a5fb6f38974a19af019dd6aa2da035'
* commit 'ce9bba5340a5fb6f38974a19af019dd6aa2da035':
  avidec: fix a memleak in the dv init code.

Conflicts:
	libavformat/avidec.c

See: 8993c25695
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:38:58 +01:00
Michael Niedermayer
d7fbb63122 Merge commit 'de4ec972c06d9047bc1b73bb13f858a5d77d8df0'
* commit 'de4ec972c06d9047bc1b73bb13f858a5d77d8df0':
  vc1: fix a memleak.

Conflicts:
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:28:49 +01:00
Michael Niedermayer
8c63ee4296 Merge commit 'ca41c72c6d9515d9045bd3b68104525dee81b8d0'
* commit 'ca41c72c6d9515d9045bd3b68104525dee81b8d0':
  motionpixels: clip VLC codes.

Not merged, the change is wrong, the condition is not possible unless
there are serious bugs elsewhere. No such bugs should exist in ffmpeg.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:25:01 +01:00
Michael Niedermayer
d86e27758f Merge commit '8b516f154a0a08655cec2d13d12aadc58cae0b1c'
* commit '8b516f154a0a08655cec2d13d12aadc58cae0b1c':
  matroskadec: use correct compression parameters for current track CodecPrivate

See: dc6c36ce46
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:09:30 +01:00
Michael Niedermayer
1ddc849bde Merge commit '30be1ea33e5525266ad871bed60b1893a53caeaf'
* commit '30be1ea33e5525266ad871bed60b1893a53caeaf':
  matroskadec: pad EBML_BIN data.

Conflicts:
	libavformat/matroskadec.c

See: c63e76ba35
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 12:07:53 +01:00
Michael Niedermayer
fe540ae6b7 Merge commit 'f0259a587ee3419dd894873ea617b4c98eeaca1c'
* commit 'f0259a587ee3419dd894873ea617b4c98eeaca1c':
  h264: check buffer size before accessing it

Conflicts:
	libavcodec/h264.c

See: ea0ac11e52
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 11:56:46 +01:00
Michael Niedermayer
7a88b7a9ad Merge commit '1f3e56b6dcc163a705704e98569d4850a31d651c'
* commit '1f3e56b6dcc163a705704e98569d4850a31d651c':
  gifdec: convert to bytestream2

Conflicts:
	libavcodec/gifdec.c
	libavcodec/lzw.c
	libavcodec/lzw.h

See: 3fd60d8049
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 11:46:08 +01:00
Michael Niedermayer
564ae836fb avcodec/gifdec: print error if image is not within dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 11:00:02 +01:00
Michael Niedermayer
8b2578ab45 Merge commit 'c453723ad7d14abc5e82677eebaa6025fa598f08'
* commit 'c453723ad7d14abc5e82677eebaa6025fa598f08':
  gifdec: check that the image dimensions are non-zero

Conflicts:
	libavcodec/gifdec.c

See: 286930d302
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 10:57:41 +01:00
Michael Niedermayer
ededb5ffed Merge commit '074c769de93bf12e9f44d77e58a8c7167f9dfb13'
* commit '074c769de93bf12e9f44d77e58a8c7167f9dfb13':
  h264_cavlc: check the size of the intra PCM data.

This check is redundant, but does no harm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 10:47:04 +01:00
Diego Biurrun
0ba8ba165b aacps: Adjust some const qualifiers to suppress warnings 2013-11-22 08:21:38 +01:00
Michael Niedermayer
9cbe834dfd avformat/avidec: Skip duplicate strf chunks
Fixes Ticket3119

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 02:06:03 +01:00
gcocherel
fb7d70c1cd hevc : add hevc profile
(cherry picked from commit 0c8dfd8ad6400b33da55a9f4d9aa8d3f5c9d209f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 01:29:02 +01:00
gcocherel
36658c978f hevc : update hevc_ps.c
(cherry picked from commit 088f2eb1ae42bffc63c2cee4e7eba8f47056043b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 01:29:02 +01:00
Michael Niedermayer
7c98c834e0 avformat/avidec: also print position in print_tag()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 01:29:02 +01:00
Stefano Sabatini
50a28b1393 doc/examples: do not check NULL values for avcodec_close()
avcodec_close() does nothing in case the argument is NULL. Simplify.
2013-11-21 23:29:56 +01:00
Stefano Sabatini
98786aa2f0 lavfi/aevalsrc: initialize pointer to expression to NULL
Fix crash in case of expression parsing failure.
2013-11-21 23:14:38 +01:00
Clément Bœsch
616da59542 avcodec/x86/vp9dsp: merge a few SWAP together. 2013-11-21 23:06:21 +01:00
gcocherel
81d0252dac hevc : update hls_decode_neighbour(cherry picked from commit 14341c6d9a6885657ba365807223e96a67d6c0ed)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 22:51:51 +01:00
gcocherel
0afa254d4e hevc : fix pcm(cherry picked from commit 12bbfdba1899d11044d2bd8457159fc8b4b52a76)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 22:51:51 +01:00
Anton Khirnov
430d121964 pcx: round up in bits->bytes conversion in a buffer size check
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:58:27 +01:00
Anton Khirnov
c918e08b9c truemotion1: make sure index does not go out of bounds
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:58:08 +01:00
Anton Khirnov
ce9bba5340 avidec: fix a memleak in the dv init code.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:57:58 +01:00
Anton Khirnov
de4ec972c0 vc1: fix a memleak.
Happens on a B-frame when neither low_delay nor last_picture_ptr is set
(probably corrupted streams only).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2013-11-21 20:57:36 +01:00
Anton Khirnov
ca41c72c6d motionpixels: clip VLC codes.
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:57:20 +01:00
Aurelien Jacobs
8b516f154a matroskadec: use correct compression parameters for current track CodecPrivate
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-21 20:54:55 +01:00
Anton Khirnov
30be1ea33e matroskadec: pad EBML_BIN data.
It might be passed to code requiring padding, such as lzo decompression.

Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:54:30 +01:00
Anton Khirnov
f0259a587e h264: check buffer size before accessing it
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:54:20 +01:00
Anton Khirnov
1f3e56b6dc gifdec: convert to bytestream2 2013-11-21 20:53:06 +01:00
Anton Khirnov
c453723ad7 gifdec: check that the image dimensions are non-zero
Also add an error message an return a more suitable error code
(INVALIDDATA, not EINVAL);
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:52:42 +01:00
Anton Khirnov
074c769de9 h264_cavlc: check the size of the intra PCM data.
Fixes invalid reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-21 20:52:34 +01:00
Michael Niedermayer
6a7980e2cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dct/fft: Give consistent names to fixed/float template files

Conflicts:
	libavcodec/fft_fixed.c
	libavcodec/fft_float.c
	libavcodec/mdct_fixed.c
	libavcodec/mdct_float.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 19:26:01 +01:00
Michael Niedermayer
c0caf7e814 Merge commit 'dd249245d012c1eceb57c166e256fc95e74f4bb1'
* commit 'dd249245d012c1eceb57c166e256fc95e74f4bb1':
  filter docs: reference scale and fps filters

Conflicts:
	doc/filters.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 19:09:12 +01:00
Michael Niedermayer
c8a0a2e990 Merge commit 'd28fc7b29a728bd2f88c10121abbd0442c341746'
* commit 'd28fc7b29a728bd2f88c10121abbd0442c341746':
  avconv_filter: add new line after error message

See: c790ae0265
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 19:06:31 +01:00
Michael Niedermayer
a486dec4fd Merge commit '874838dc6589d978611c89a40694a5074f892a76'
* commit '874838dc6589d978611c89a40694a5074f892a76':
  fate: add one select filter test

Conflicts:
	tests/fate/filter-video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 18:49:41 +01:00
Michael Niedermayer
bc140fb568 Merge commit '305d3d9f1f7f0bdc18744f376a0ff5b012e4e6cf'
* commit '305d3d9f1f7f0bdc18744f376a0ff5b012e4e6cf':
  mpeg4videoenc: restore macro parentheses

No change, as the bug was spoted by ubitux and not merged

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 18:43:15 +01:00
Michael Niedermayer
d7ac887cd6 cmdutils&ffmpeg: use av_fopen_utf8() for passlogfile
might fix Ticket3056

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 18:27:46 +01:00
Diego Biurrun
ac0e03bab0 dct/fft: Give consistent names to fixed/float template files 2013-11-21 15:59:46 +01:00
Vittorio Giovara
dd249245d0 filter docs: reference scale and fps filters 2013-11-21 14:48:40 +01:00
Vittorio Giovara
d28fc7b29a avconv_filter: add new line after error message 2013-11-21 14:48:27 +01:00
Michael Niedermayer
78bfc417d4 Merge branch 'master' of https://github.com/upsuper/ffmpeg-vdadec
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 14:40:10 +01:00
Michael Niedermayer
fdc0b3f8c1 avcodec/utils: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 14:17:00 +01:00
Vittorio Giovara
874838dc65 fate: add one select filter test
This test selects alternate frames from input.
2013-11-21 13:01:00 +01:00
Vittorio Giovara
305d3d9f1f mpeg4videoenc: restore macro parentheses
These were erroneously removed in 8769113acc.
2013-11-21 12:58:12 +01:00
Clément Bœsch
4e70eeef3a cmdutils: randomize spaces after 69cf626f9. 2013-11-21 12:52:30 +01:00
Michael Niedermayer
8c9df116cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Avoid requiring c99wrap for working around msys path issues

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 12:10:15 +01:00
Michael Niedermayer
074b89f1e2 Merge commit 'a7b87ca9111bafb220ab94d53ab4e4ed48111800'
* commit 'a7b87ca9111bafb220ab94d53ab4e4ed48111800':
  libxavs: rename and fix a variable name

Conflicts:
	libavcodec/libxavs.c

See: 260fc0d95b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 11:59:06 +01:00
Martin Storsjö
ea9f7173ae configure: Avoid requiring c99wrap for working around msys path issues
Msys is unable to convert unix style absolute paths to windows style
paths when combined with certain multichar MSVC options such as
-Fo<file>. We used to work around this issue by passing them as two
separate parameters separated by a space to c99wrap, which then mapped
them back to the actual parameter format that MSVC uses.

The only paths that actually are an issue are absolute unix style
paths, and the only place such absolute paths are used with the output
arguments (-Fo, -Fe, -Fi, -out:) are for the temp files within configure.

By setting TMPDIR to . for msvc/icl builds, we never need to use
absolute unix style paths for the file output, and we can use the
actual proper form of the file output parameters. This avoids requiring
the c99wrap wrapper for remapping the parameters for cases where the
c99 converter isn't invoked at all (MSVC2013 and ICL).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-21 12:35:24 +02:00
Michael Niedermayer
f0f75dfa34 avformat/utils: inject audio skip side data before the side data merge code
This ensures that its handled the same way as other side data

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 03:21:23 +01:00
Michael Niedermayer
01923bab98 avcodec: move end zeroing code from av_packet_split_side_data() to avcodec_decode_subtitle2()
This code changes the input packet, which is read only and can in
rare circumstances lead to decoder errors. (i run into one of these in
the audio decoder, which corrupted the packet during av_find_stream_info()
so that actual decoding that single packet failed later)
Until a better fix is implemented, this commit limits the problem.
A better fix might be to make the subtitle decoders not depend on
data[size] = 0 or to copy their input when this is not the case.
2013-11-21 03:13:26 +01:00
Michael Niedermayer
98fc81b20d avformat/utils: move side data merge after parser
merging before the parser can conflict with the parser, also
future changes depend on it being done later

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 01:02:11 +01:00
Sean McGovern
a7b87ca911 libxavs: rename and fix a variable name
It was mis-spelled in b18c7c8d3d.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-20 21:06:31 +01:00
Michael Niedermayer
e50278348a avcodec/avpacket: fix order of operations in case of too large allocation
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 19:44:21 +01:00
Ben Boeckel
34b7c82dd3 avcodec/utils: use the unpack_dictionary function
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 18:23:24 +01:00
Michael Niedermayer
fcb1b0078d avcodec/avpacket: use size_t, fix potential integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 17:35:48 +01:00
Ben Boeckel
c28b61caf0 Document new APIs for av_packet_{un, }pack_dictionary()
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reveiwed-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 17:03:19 +01:00
Ben Boeckel
51a84a6bca avpacket: add pack/unpack functions for AVDictionary
These functions are intended for use with side_data which comes in an
AVPacket.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reviewed-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 16:48:51 +01:00
Ben Boeckel
1e506a2cc5 avcodec: add side_data type for updated metadata
This type is intended to be used to allow codecs to pass updated
metadata to applications.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reviewed-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 16:48:51 +01:00
Clément Bœsch
ddaf543aa6 avfilter/showspectrum: use 0 dummies for range in const.
This is consistent with other options.
2013-11-20 16:38:09 +01:00
Clément Bœsch
9343fc30e2 avfilter/showspectrum: reindent const options. 2013-11-20 16:37:34 +01:00
Clément Bœsch
9c8b240806 avfilter/showspectrum: add blackman window. 2013-11-20 16:35:48 +01:00
Clément Bœsch
3e69f7c221 avfilter/showspectrum: add win_func option. 2013-11-20 16:22:05 +01:00
Xidorn Quan
973b1a6b90 vda_h264_dec: backup context before overriding
Some of context fields which must be overrided by this wrapper decoder
may be set and used by user, so we have to save and restore them before
and after invoking the inner decoder to secure user.
2013-11-20 22:40:54 +08:00
Michael Niedermayer
ec312c1fd0 fate: test -mbd rd for h261
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 15:38:56 +01:00
Michael Niedermayer
6c04c5f733 avcodec/h261enc: dont use current_mv_x/y
Fixes -mbd rd
Fixes Ticket3151

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 15:28:46 +01:00
Michael Niedermayer
cccdaa406a avcodec/h261enc: avoid use of current/previous_mba
Fixes part of Ticket3151

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 15:14:01 +01:00
Michael Niedermayer
bb7f3ddd42 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  win{32,64}: Hard disable symbol versioning

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 04:21:36 +01:00
Michael Niedermayer
61f40fbb52 Merge commit 'ffb0af7f17eb0da86e9b140e86a1404d3c6c9e79'
* commit 'ffb0af7f17eb0da86e9b140e86a1404d3c6c9e79':
  ac3dec: simplify an expression

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 04:20:36 +01:00
Michael Niedermayer
df87cfd798 ffmpeg: fix do_streamcopy() so it copies side data too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 00:23:23 +01:00
Michael Niedermayer
05493c6e72 avcodec/avpacket: correctly set the number of side data elements in av_copy_packet_side_data()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 00:23:23 +01:00
Michael Niedermayer
f95b5d2a11 cmdutils: cosmetics
requested by multiple people

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-20 00:23:23 +01:00
Stefano Sabatini
80e5859d7a doc/muxers/segment: remove wrong default indication for segment_list_flags option 2013-11-19 23:24:54 +01:00
Michael Niedermayer
f836b0c581 swscale/x86: SIMD deinterleaveBytes() depends on YASM
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 22:36:27 +01:00
Derek Buitenhuis
03f6d4e0f1 win{32,64}: Hard disable symbol versioning
ICL doesn't return an error on unknown parameters, and will
always pass the symver_gnu_asm test, and since Windows
never has symbol versioning, just always disable it.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-11-19 21:30:13 +00:00
Stephen Hutchinson
69cf626f9c cmdutils: Add -buildconf option.
The output is formatted to display one option per line.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 22:09:48 +01:00
Michael Niedermayer
d5d29ae3b0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dv_tablegen: Remove CONFIG_SMALL preprocessor check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 22:03:27 +01:00
Compn
ef7f751642 riff: add DYM4 mpeg4 fourcc 2013-11-19 14:24:25 -05:00
Tim Walker
ffb0af7f17 ac3dec: simplify an expression
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 18:52:17 +01:00
Michael Niedermayer
066dbfe165 Merge commit '6f1ec8edf2416441e2348f3a0915c9fee179d7da'
* commit '6f1ec8edf2416441e2348f3a0915c9fee179d7da':
  avcodec.h: include version.h before using version macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 18:19:06 +01:00
Michael Niedermayer
6a71efff33 avfilter/vf_tinterlace: check clone return value
Inspired by: 3a16ec19d2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 18:08:58 +01:00
Michael Niedermayer
0a382aa99b Merge commit '3a16ec19d2426457419cb8a7304f97982699efda'
* commit '3a16ec19d2426457419cb8a7304f97982699efda':
  vf_interlace: check one av_frame_clone allocation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 18:06:40 +01:00
Michael Niedermayer
8983dea426 Merge commit 'c673fc919c374c60b1e6d80d8822712eadf67f16'
* commit 'c673fc919c374c60b1e6d80d8822712eadf67f16':
  hevc_sei: drop unused parameter

Conflicts:
	libavcodec/hevc_sei.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 17:59:47 +01:00
Michael Niedermayer
2c6e693c97 Merge commit 'd234c7a07c1313fd215e8e242492bf71f5f3321e'
* commit 'd234c7a07c1313fd215e8e242492bf71f5f3321e':
  mpeg4videodec: K&R formatting cosmetics

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 17:53:14 +01:00
Michael Niedermayer
18df75fa2f Merge commit '8769113accf1f3b78634dec60b37f7354ed6d88d'
* commit '8769113accf1f3b78634dec60b37f7354ed6d88d':
  mpeg4videoenc: K&R formatting cosmetics

Conflicts:
	libavcodec/mpeg4videoenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 16:19:42 +01:00
Diego Biurrun
57f13fd7e9 dv_tablegen: Remove CONFIG_SMALL preprocessor check
The code does in no way depend on CONFIG_SMALL.
2013-11-19 16:04:27 +01:00
Michael Niedermayer
3033cd7555 swscale/x86/rgb2rgb_template: add mmx/sse2/avx optimized deinterleaveBytes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 15:13:48 +01:00
Michael Niedermayer
1de064e21e swscale/x86/rgb2rgb: change cpu optim identifiers to lower case
This makes the code more similar to the other optims and allows us
to use the same macros to build function names

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 15:13:48 +01:00
Michael Niedermayer
4729b529e6 swscale/x86/rgb2rgb: extend framework to also include AVX
This does not yet include any actual AVX code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 15:13:48 +01:00
Michael Niedermayer
94d7ca2b58 swscale: fix used stride in planarToNv12Wrapper()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 15:13:48 +01:00
Michael Niedermayer
ef627bf9ec swscale: add nv12/nv21->yuv420 converter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 15:13:48 +01:00
Vittorio Giovara
6f1ec8edf2 avcodec.h: include version.h before using version macro 2013-11-19 14:48:36 +01:00
Vittorio Giovara
3a16ec19d2 vf_interlace: check one av_frame_clone allocation 2013-11-19 14:48:36 +01:00
Vittorio Giovara
c673fc919c hevc_sei: drop unused parameter 2013-11-19 14:48:36 +01:00
Vittorio Giovara
d234c7a07c mpeg4videodec: K&R formatting cosmetics 2013-11-19 14:48:36 +01:00
Vittorio Giovara
8769113acc mpeg4videoenc: K&R formatting cosmetics 2013-11-19 14:48:36 +01:00
Clément Bœsch
722fb81dc5 avformat/jacosubdec: make probing less tolerant.
Fixes a failure with probetest:
  ./tools/probetest 8192 500000
  [...]
  Failure of jacosub probing code with score=51 type=1 p=CAB size=16

Random data was:
  00000000  40 37 40 30 93 01 48 e0 09 96 10 90 78 0f 0c 10 @7@0..H.....x...
2013-11-19 12:53:20 +01:00
Michael Niedermayer
b31587af4b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Don't use symlinks for creating the out of tree makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 11:34:50 +01:00
Clément Bœsch
1f7b7d5447 doc/examples: fix mem issues in filtering_video. 2013-11-19 10:31:39 +01:00
Martin Storsjö
fa48be9b95 configure: Don't use symlinks for creating the out of tree makefile
On some platforms (such as msys), symlinks are (poorly) emulated
by simply creating a copy of the file.

This means that when building out of tree, the build tree gets
a copy of the original makefile, which can lead to unintuitive
build errors when the original makefile gets updated later.

Instead simply create a stub makefile which includes the real
one.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-19 10:12:58 +02:00
Michael Niedermayer
0dd8e96b32 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: Fix swapping of UV planes for VCR2

See: bae14f38d9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 04:15:57 +01:00
Michael Niedermayer
32ab5b82f4 Merge commit '69d4dbfd1faa99563065329656bbe597d612ca03'
* commit '69d4dbfd1faa99563065329656bbe597d612ca03':
  aac_ac3_parser: simplify an expression

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 04:14:21 +01:00
Michael Niedermayer
8540368582 Merge commit '37a3cac78c6b13dc4e2c4f33ef53eed722d6f7b9'
* commit '37a3cac78c6b13dc4e2c4f33ef53eed722d6f7b9':
  dcadec: simplify an expression

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 04:09:03 +01:00
Michael Niedermayer
56e122787e Merge commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23'
* commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23':
  lavc: use buf[0] instead of data[0] in checks whether a frame is allocated

Conflicts:
	libavcodec/h264_refs.c
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 03:56:53 +01:00
Kostya Shishkov
16e7b189c5 mpegvideo: Fix swapping of UV planes for VCR2 2013-11-19 02:05:51 +01:00
Tim Walker
69d4dbfd1f aac_ac3_parser: simplify an expression
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 02:02:53 +01:00
Tim Walker
37a3cac78c dcadec: simplify an expression
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 02:02:49 +01:00
Michael Niedermayer
f0f04fd842 avcodec/asvenc: remove code allocating dummy coded_frame
Fixes memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 23:21:20 +01:00
Michael Niedermayer
918cab1a9f avcodec/pcm-dvd: print actual block size values in block size changed warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 21:00:03 +01:00
Michael Niedermayer
4adf1fe34f avcodec/pcm-dvd: fix incorrectly printed warning about changed block sizes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 21:00:03 +01:00
Michael Niedermayer
ab184b298d avcodec/pcm-dvd: fix 20/24bit 1 channel
Fixes part of ticket3122

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 21:00:03 +01:00
Michael Niedermayer
5db49fc38d avcodec/pcm-dvd: fix 20bit 2 channels
Fixes part of ticket3122

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 21:00:03 +01:00
Carl Eugen Hoyos
2974050cf5 Add a lavc Makefile dependency for the elbg filter.
Fixes compilation with --disable-encoders

Reported by trac user Julian in ticket #3140.
2013-11-18 18:12:11 +01:00
Anton Khirnov
a553c6a347 lavc: use buf[0] instead of data[0] in checks whether a frame is allocated
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-11-18 18:09:48 +01:00
Carl Eugen Hoyos
3f2ce316cd Add a Makefile rule for the little-endian G.726 decoder.
Fixes compilation with --disable-everything --enable-decoder=adpcm_g726le
2013-11-18 17:51:28 +01:00
Carl Eugen Hoyos
d4a6133ab8 Add decoder dependency to the HEVC parser.
Fixes compilation with --disable-everything --enable-parser=hevc
2013-11-18 17:48:17 +01:00
Michael Niedermayer
7d0e927a31 avformat/mpegts: fix resync seek
The seek ended up seeking before the begin, which caused problems
Fixes initial sync issues with libbluray
Fixes Ticket3117

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 16:38:12 +01:00
Michael Niedermayer
cbefb3d909 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmphttp: Check for both 0 and AVERROR_EOF

Conflicts:
	libavformat/rtmphttp.c

See: d04b7de786
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 16:02:50 +01:00
Valeriy Argunov
cc20fbcd39 rtmphttp: Check for both 0 and AVERROR_EOF
This makes RTMPT work again - it was broken by 5d876be87a.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-18 12:36:32 +02:00
Paul B Mahol
74906d3727 avcodec/libopusenc: change default frame duration to 20 ms
20 ms is used by libopus encoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-18 01:46:32 +00:00
Michael Niedermayer
cda3c00475 avcodec/h261enc: remove unused variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 10:04:17 +01:00
Clément Bœsch
260fc0d95b avcodec/libxavs: 2nd attempt to fix compilation after b18c7c8d. 2013-11-18 08:08:41 +01:00
Clément Bœsch
71cd83e34c avcodec/libxavs: attempt to fix compilation after b18c7c8d. 2013-11-18 07:53:15 +01:00
Michael Niedermayer
a8dec360c5 avformat/utils: dont count attached pics toward the probesize
Such pics behave more like headers which we also dont count.
Fixes Ticket3146

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 03:02:36 +01:00
Vallimar
6f5c36832d avfilter/vf_mp: fix missing FF_API_XVMC check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 01:22:30 +01:00
Vallimar
6f8a27dd3b avcodec/old_codec_ids: fix missing FF_API_XVMC check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-18 01:22:30 +01:00
Clément Bœsch
e0434cfcfc avcodec/x86: remove 3 sub in pred4x4_tm_vp8_8.
before:
  411 decicycles in ff_pred4x4_tm_vp8_8_ssse3, 8388289 runs, 319 skips

after:
  389 decicycles in ff_pred4x4_tm_vp8_8_ssse3, 8388308 runs, 300 skips

Tested on i7 920.
2013-11-17 23:12:35 +01:00
Michael Niedermayer
c017f15dde qpeg: remove faulty avcodec_get_frame_defaults()
Found-by: {V}
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 21:20:17 +01:00
Michael Niedermayer
9f630e8346 avcodec/mpegaudioenc: prevent overflow in fixed point code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 21:14:15 +01:00
Michael Niedermayer
b382d09d29 avutil: reintroduce lls1 as the 52 ABI needs it
lls1 taken from ff130d7

This is incompatible with libavcodec version
55.18.100 to 55.43.100 except 55.39.101
This incompatibility is caused by these libavcodec versions depending on
a libavutil 52 which is ABI incompatible with the previous ABI 52

you can avoid this incompatibility by upgrading your libavcodec so it
does no longer depend on the invalid ABI

See: 502ab21af0
See: cc6714bb16
See: 41578f70cf
See: Ticket3136
Tested-by: marillat
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 16:44:32 +01:00
Michael Niedermayer
c3814ab654 rename new lls code to lls2 to avoid conflict with the old which has a different ABI
also remove failed attempt at a compatibility layer, the code simply cannot work

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 16:41:08 +01:00
Michael Niedermayer
bbe66ef912 avutil: rename lls to lls2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 16:30:23 +01:00
Michael Niedermayer
74a8fe9483 doc/ffmpeg: document qscale and video stream special case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 16:08:06 +01:00
Michael Niedermayer
459c7cb256 fate: add h261 trellis quantization test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 15:08:56 +01:00
Michael Niedermayer
331a90cec4 avcodec/h261: trellis quantization support
Fixes ticket3143

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 15:08:56 +01:00
Michael Niedermayer
be1e6e7503 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo_enc: use the AVFrame API properly.
  ffv1: use the AVFrame API properly.
  jpegls: use the AVFrame API properly.
  huffyuv: use the AVFrame API properly.

Conflicts:
	libavcodec/ffv1.c
	libavcodec/ffv1.h
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c

Changes to ffv1 are more redone than merged due to them being based on
an ancient codebase and a good part of that having being done already
as well.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 13:55:50 +01:00
Michael Niedermayer
f4f7888bab Merge commit 'ffe04c330335add4c6d70ab0bb98e6b3f4f7abfa'
* commit 'ffe04c330335add4c6d70ab0bb98e6b3f4f7abfa':
  libxvid: use the AVFrame API properly.
  pcxenc: use the AVFrame API properly.
  roqvideo: remove unused variables
  libschroedingerenc: use the AVFrame API properly.

Conflicts:
	libavcodec/pcxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 12:41:42 +01:00
Michael Niedermayer
a0c0629dd9 Merge commit '97168b204a0b6b79bb6c5f0d40efdf7fc2262476'
* commit '97168b204a0b6b79bb6c5f0d40efdf7fc2262476':
  eatgv: use the AVFrame API properly.
  libxavs: use the AVFrame API properly.
  nuv: use the AVFrame API properly.
  flashsvenc: use the AVFrame API properly.

Conflicts:
	libavcodec/eatgv.c
	libavcodec/nuv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 12:33:27 +01:00
Michael Niedermayer
5b0c70c249 Merge commit '57e7b3a89f5a0879ad039e8f04273b48649799a8'
* commit '57e7b3a89f5a0879ad039e8f04273b48649799a8':
  dnxhdenc: use the AVFrame API properly.
  libx264: use the AVFrame API properly.
  svq1enc: use the AVFrame API properly.
  gif: use the AVFrame API properly.

Conflicts:
	libavcodec/gif.c
	libavcodec/svq1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 12:19:55 +01:00
Michael Niedermayer
3ea168edeb Merge commit '45bde93eefa78c1bdb0936109fbd2e2fb27fbfe7'
* commit '45bde93eefa78c1bdb0936109fbd2e2fb27fbfe7':
  sunrastenc: use the AVFrame API properly.
  targaenc: use the AVFrame API properly.
  tiffenc: use the AVFrame API properly.
  pngenc: use the AVFrame API properly.

Conflicts:
	libavcodec/pngenc.c
	libavcodec/sunrastenc.c
	libavcodec/targaenc.c
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 12:06:34 +01:00
Michael Niedermayer
85b7b0c519 Merge commit '0ea430c75b8d90449d2878ad84669a2da2ad3cbc'
* commit '0ea430c75b8d90449d2878ad84669a2da2ad3cbc':
  lclenc: use the AVFrame API properly.

Conflicts:
	libavcodec/lclenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 11:46:51 +01:00
Michael Niedermayer
92cbd77568 Merge commit 'd48c20630214a4effcc920e93a5044bee4e2002e'
* commit 'd48c20630214a4effcc920e93a5044bee4e2002e':
  qtrleenc: use the AVFrame API properly.
  ulti: use the AVFrame API properly.
  vc1: use the AVFrame API properly.
  flashsv: use the AVFrame API properly.

Conflicts:
	libavcodec/flashsv.c
	libavcodec/qtrleenc.c
	libavcodec/ulti.c
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 03:31:32 +01:00
Michael Niedermayer
9ad477d909 Merge commit 'e4155f15b35c4272a235f5521d2dc6c2aabdd462'
* commit 'e4155f15b35c4272a235f5521d2dc6c2aabdd462':
  eamad: use the AVFrame API properly.
  dpxenc: use the AVFrame API properly.
  bmpenc: use the AVFrame API properly.
  sgienc: use the AVFrame API properly.

Conflicts:
	libavcodec/bmpenc.c
	libavcodec/dpxenc.c
	libavcodec/eamad.c
	libavcodec/sgienc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 03:17:48 +01:00
Michael Niedermayer
8d193a24f2 Merge commit '730bac7bab3c7dcd9fcb7c70f154e5f4cfaef9a7'
* commit '730bac7bab3c7dcd9fcb7c70f154e5f4cfaef9a7':
  mss4: use the AVFrame API properly.
  mss3: use the AVFrame API properly.
  mss2: use the AVFrame API properly.
  mss1: use the AVFrame API properly.

Conflicts:
	libavcodec/mss1.c
	libavcodec/mss2.c
	libavcodec/mss3.c
	libavcodec/mss4.c

See: 02fe531afe
See: ff1c13b133
See: 310bf28354
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 02:48:17 +01:00
Michael Niedermayer
72df87088c Merge commit '508b37557bf36eae83c18e64d42f27b44a321d81'
* commit '508b37557bf36eae83c18e64d42f27b44a321d81':
  tiertexseqv: use the AVFrame API properly.
  smc: use the AVFrame API properly.
  truemotion2: use the AVFrame API properly.
  truemotion1: use the AVFrame API properly.

Conflicts:
	libavcodec/smc.c
	libavcodec/tiertexseqv.c
	libavcodec/truemotion1.c
	libavcodec/truemotion2.c

See: e999f2339a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 02:35:23 +01:00
Michael Niedermayer
4362f272c0 Merge commit '4a4841d4e0f0dc50998511bf6c48b518012024db'
* commit '4a4841d4e0f0dc50998511bf6c48b518012024db':
  fraps: use the AVFrame API properly.
  rpza: use the AVFrame API properly.
  motionpixels: use the AVFrame API properly.
  vmdvideo: use the AVFrame API properly.

Conflicts:
	libavcodec/fraps.c
	libavcodec/motionpixels.c
	libavcodec/rpza.c
	libavcodec/vmdav.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 02:24:27 +01:00
Michael Niedermayer
8af7774c7a Merge commit '3c8ea9d4a74fd4d7493d40c818ca64ee492709f3'
* commit '3c8ea9d4a74fd4d7493d40c818ca64ee492709f3':
  vmnc: use the AVFrame API properly.
  xan: use the AVFrame API properly.
  xxan: use the AVFrame API properly.
  zerocodec: use the AVFrame API properly.

Conflicts:
	libavcodec/vmnc.c
	libavcodec/xan.c
	libavcodec/xxan.c

See: cf5ab8b6f7
See: ad438f450b
See: 67607e20e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 02:12:51 +01:00
Michael Niedermayer
fe3808edde Merge commit 'a837c4f2df96a30bf9aa4115b426d608487c7101'
* commit 'a837c4f2df96a30bf9aa4115b426d608487c7101':
  zmbvenc: use the AVFrame API properly.
  flicvideo: use the AVFrame API properly.
  smacker: use the AVFrame API properly.
  mmvideo: use the AVFrame API properly.

Conflicts:
	libavcodec/flicvideo.c
	libavcodec/mmvideo.c
	libavcodec/smacker.c
	libavcodec/zmbvenc.c

See: 76e27b1d05
See: 099e57bc38
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 01:55:38 +01:00
Michael Niedermayer
9f890a1656 Merge commit '2e09096da912f563c4dd889a8f25c314529bbaa6'
* commit '2e09096da912f563c4dd889a8f25c314529bbaa6':
  kgv1: use the AVFrame API properly.
  indeo2: use the AVFrame API properly.
  iff: use the AVFrame API properly.
  msrle: use the AVFrame API properly.

Conflicts:
	libavcodec/iff.c
	libavcodec/indeo2.c
	libavcodec/kgv1dec.c
	libavcodec/msrle.c

See: 451b2ca1b4
See: 80e9e63c94
See: 057dce5f21
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 01:38:41 +01:00
Michael Niedermayer
10ac6f3ce9 Merge commit '952f943d40e9dbcd68bc851460cc99268091a294'
* commit '952f943d40e9dbcd68bc851460cc99268091a294':
  FATE: add a jv test

Conflicts:
	tests/fate/video.mak
	tests/ref/fate/jv

See: 7c52070131
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 01:22:35 +01:00
Michael Niedermayer
ddfdcd2b5e Merge commit 'b7462a3904d71ff799584faf5b875cad59ca2f31'
* commit 'b7462a3904d71ff799584faf5b875cad59ca2f31':
  jvdec: use the AVFrame API properly.

Conflicts:
	libavcodec/jvdec.c

See: 678431d3f2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 01:17:18 +01:00
Michael Niedermayer
5219afc09d Merge commit '2d2a92f72199823a92e4e226c32e42a27ec801c0'
* commit '2d2a92f72199823a92e4e226c32e42a27ec801c0':
  dxa: use the AVFrame API properly.
  qpeg: use the AVFrame API properly.
  cin video: use the AVFrame API properly.
  msvideo1: use the AVFrame API properly.

Conflicts:
	libavcodec/dsicinav.c
	libavcodec/dxa.c
	libavcodec/msvideo1.c
	libavcodec/qpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 01:07:37 +01:00
Michael Niedermayer
bfb1f44d24 Merge commit 'a639ea7f4bc44bf6bfa452675558a342924a66a9'
* commit 'a639ea7f4bc44bf6bfa452675558a342924a66a9':
  escape124: use the AVFrame API properly.
  qtrle: use the AVFrame API properly.
  cljr: use the AVFrame API properly.
  cinepak: use the AVFrame API properly.

Conflicts:
	libavcodec/cinepak.c
	libavcodec/cljr.c
	libavcodec/qtrle.c

See: 80e9e63c libavcodec/cinepak.c
See: 71c378984b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 00:51:01 +01:00
Michael Niedermayer
21c41e76d7 Merge commit 'cec5ce49229d61e4eb1f331a6d0dff3aa24f6655'
* commit 'cec5ce49229d61e4eb1f331a6d0dff3aa24f6655':
  cdxl: remove an unused variable
  c93: use the AVFrame API properly.
  bethsoftvid: use the AVFrame API properly.
  avs: use the AVFrame API properly.

Conflicts:
	libavcodec/bethsoftvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 00:21:16 +01:00
Michael Niedermayer
cc4a643563 Merge commit '6139f481ac9feb1bee4e7d04789fb15d7f24ebbf'
* commit '6139f481ac9feb1bee4e7d04789fb15d7f24ebbf':
  asvenc: use the AVFrame API properly.
  a64multienc: use the AVFrame API properly.

Conflicts:
	libavcodec/vaapi_mpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 00:11:33 +01:00
Michael Niedermayer
29c83d23e8 Merge commit 'b9fb59d2ab05fdfe89d3fb0d7ecbbd91e560f57d'
* commit 'b9fb59d2ab05fdfe89d3fb0d7ecbbd91e560f57d':
  lavc: deprecate avcodec_alloc_frame().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-17 00:01:23 +01:00
Michael Niedermayer
0ee905e243 Merge commit '5b9c3b4505206143d85398c1410949319fa1180f'
* commit '5b9c3b4505206143d85398c1410949319fa1180f':
  Replace all instances of avcodec_alloc_frame() with av_frame_alloc().

Conflicts:
	doc/examples/decoding_encoding.c
	doc/examples/muxing.c
	ffmpeg.c
	libavcodec/alacenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/libvpxenc.c
	libavcodec/pcm.c
	libavcodec/xbmenc.c
	libavcodec/xwdenc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 23:54:10 +01:00
Michael Niedermayer
571a99de18 Merge commit '2ff302cb6ba1f159905888026c8a1d7dd8319acf'
* commit '2ff302cb6ba1f159905888026c8a1d7dd8319acf':
  lavc: update coded_frame doxy.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 23:42:18 +01:00
Michael Niedermayer
ec9aef5652 Merge commit 'b068660ffa73f226cc03a67e214b8540fc1e11c4'
* commit 'b068660ffa73f226cc03a67e214b8540fc1e11c4':
  lavc: deprecate CODEC_CAP_NEG_LINESIZES

Conflicts:
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 23:36:33 +01:00
Clément Bœsch
484f8d77c6 avcodec/vp9: assert on sane size in update_size().
w and h are both read as uint16 + 1 so this can not happen. A similar
change was introduced in 97962b2 / 72ca830, with the
av_log()+AVERROR_INVALIDDATA form, suggesting it could be triggerable
somehow.

Change suggested by Ronald S. Bultje.
2013-11-16 22:47:54 +01:00
Clément Bœsch
c20a7ce62d avcodec/vp9: remove some reset-to-zero from vp9_decode_free().
Those should not be necessary.

Original change by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830
2013-11-16 22:34:23 +01:00
Clément Bœsch
7e704b1e10 avcodec/vp9: add a never triggerable assert.
vp8_rac_get_tree() is called with a tree of size 3, so the returned
value can not be outside [0;3]. All of the [0;3] cases are handled in
the switch, so the assert should not be triggerable by any means. A
similar change was introduced in 97962b2 / 72ca830, with the
av_log()+AVERROR_INVALIDDATA form, suggesting it could be triggerable
somehow. This assert might help static analyzer, or simply the reader.
2013-11-16 22:34:23 +01:00
Michael Niedermayer
cee63a1483 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: calculate last frame duration from vp->pts instead of frame_last_pts
  ffplay: simplify early frame drop code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 21:47:53 +01:00
Michael Niedermayer
6909a611d2 swscale/swscale_unscaled: fix right column handling in planarCopyWrapper
Found-by: Михаил <Micky53@mail.ru>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 21:15:05 +01:00
Martin Storsjö
ab80d7e8c5 vp9: Ensure that the arithmetic coder values are read in the right order
The operands of an addition can be evaluated in any order, since
the addition isn't a sequence point. The only operators that
have a defined evaluation order are &&, ||, ?: and the sequence
operator ','.

This fixes fate-vp9 on ARM RVCT.
2013-11-16 20:25:25 +01:00
Anton Khirnov
1c01b0253e mpegvideo_enc: use the AVFrame API properly. 2013-11-16 17:51:10 +01:00
Anton Khirnov
a6064b12b4 ffv1: use the AVFrame API properly. 2013-11-16 17:50:51 +01:00
Anton Khirnov
706a92926c jpegls: use the AVFrame API properly. 2013-11-16 17:50:28 +01:00
Anton Khirnov
14b35bf065 huffyuv: use the AVFrame API properly. 2013-11-16 17:50:20 +01:00
Anton Khirnov
ffe04c3303 libxvid: use the AVFrame API properly. 2013-11-16 17:50:09 +01:00
Anton Khirnov
863a670e48 pcxenc: use the AVFrame API properly. 2013-11-16 17:49:47 +01:00
Anton Khirnov
7ca97aa7ee roqvideo: remove unused variables 2013-11-16 17:49:40 +01:00
Anton Khirnov
372262853b libschroedingerenc: use the AVFrame API properly. 2013-11-16 17:49:31 +01:00
Anton Khirnov
97168b204a eatgv: use the AVFrame API properly. 2013-11-16 17:49:21 +01:00
Anton Khirnov
b18c7c8d3d libxavs: use the AVFrame API properly. 2013-11-16 17:49:15 +01:00
Anton Khirnov
5290e02a0a nuv: use the AVFrame API properly. 2013-11-16 17:49:02 +01:00
Anton Khirnov
d56a114adc flashsvenc: use the AVFrame API properly. 2013-11-16 17:48:14 +01:00
Anton Khirnov
57e7b3a89f dnxhdenc: use the AVFrame API properly. 2013-11-16 17:47:58 +01:00
Anton Khirnov
d2287740d9 libx264: use the AVFrame API properly. 2013-11-16 17:47:50 +01:00
Anton Khirnov
394ef4d18f svq1enc: use the AVFrame API properly. 2013-11-16 17:47:34 +01:00
Anton Khirnov
219b35f5d1 gif: use the AVFrame API properly. 2013-11-16 17:47:25 +01:00
Anton Khirnov
45bde93eef sunrastenc: use the AVFrame API properly. 2013-11-16 17:47:09 +01:00
Anton Khirnov
fb26d76167 targaenc: use the AVFrame API properly. 2013-11-16 17:46:51 +01:00
Anton Khirnov
f26f71139f tiffenc: use the AVFrame API properly. 2013-11-16 17:46:24 +01:00
Anton Khirnov
78c6c9d6c1 pngenc: use the AVFrame API properly. 2013-11-16 17:46:16 +01:00
Anton Khirnov
0ea430c75b lclenc: use the AVFrame API properly. 2013-11-16 17:46:01 +01:00
Anton Khirnov
d48c206302 qtrleenc: use the AVFrame API properly. 2013-11-16 17:45:28 +01:00
Anton Khirnov
c8a525197f ulti: use the AVFrame API properly. 2013-11-16 17:44:54 +01:00
Anton Khirnov
6792559f8a vc1: use the AVFrame API properly. 2013-11-16 17:44:40 +01:00
Anton Khirnov
042aec41ae flashsv: use the AVFrame API properly. 2013-11-16 17:44:04 +01:00
Anton Khirnov
e4155f15b3 eamad: use the AVFrame API properly. 2013-11-16 17:43:55 +01:00
Anton Khirnov
4e7e8055a7 dpxenc: use the AVFrame API properly. 2013-11-16 17:43:36 +01:00
Anton Khirnov
2a85a192c7 bmpenc: use the AVFrame API properly. 2013-11-16 17:43:05 +01:00
Anton Khirnov
6a08d7fcc5 sgienc: use the AVFrame API properly. 2013-11-16 17:42:36 +01:00
Anton Khirnov
730bac7bab mss4: use the AVFrame API properly. 2013-11-16 17:42:23 +01:00
Anton Khirnov
207909911d mss3: use the AVFrame API properly. 2013-11-16 17:41:54 +01:00
Anton Khirnov
e9198f61db mss2: use the AVFrame API properly. 2013-11-16 17:41:42 +01:00
Anton Khirnov
acaffdca21 mss1: use the AVFrame API properly. 2013-11-16 17:41:32 +01:00
Anton Khirnov
508b37557b tiertexseqv: use the AVFrame API properly. 2013-11-16 17:41:07 +01:00
Anton Khirnov
68af7f54a6 smc: use the AVFrame API properly. 2013-11-16 17:40:57 +01:00
Clément Bœsch
7cd555dfa5 avcodec/vp9: make last_invisible local.
Original change by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830
2013-11-16 17:13:33 +01:00
Clément Bœsch
d28c79b003 avcodec/x86/vp9dsp: use EXTERNAL_* macros.
Original fix by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830

Personnal guess is Diego Biurrun.
2013-11-16 17:03:17 +01:00
Marton Balint
2803140457 ffplay: calculate last frame duration from vp->pts instead of frame_last_pts
Also do not update current pts on dropped frames, it is no longer necessary.

Fixes regression part of ticket #2507.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-16 14:55:08 +01:00
Marton Balint
02b76aa377 ffplay: simplify early frame drop code
Also never early frame drop the first frame after a flush.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-16 14:55:08 +01:00
Michael Niedermayer
d7ebeba80c ffmpeg: Do not fill gap before the first decodable frame on single stream input files unless the user explicitly requests it.
Fixes different behavior to JM and probably several if not all
reference decoders.

We cannot just do this unconditionally as it would ruin AV sync in
some use cases.

Bug-Found-by: BugMaster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 14:27:29 +01:00
Anton Khirnov
32f7cf9bc3 truemotion2: use the AVFrame API properly. 2013-11-16 13:29:24 +01:00
Anton Khirnov
42d40fd28c truemotion1: use the AVFrame API properly. 2013-11-16 13:27:33 +01:00
Anton Khirnov
4a4841d4e0 fraps: use the AVFrame API properly. 2013-11-16 13:27:17 +01:00
Anton Khirnov
e8ef8a328c rpza: use the AVFrame API properly. 2013-11-16 13:27:07 +01:00
Anton Khirnov
e52f38bc2e motionpixels: use the AVFrame API properly. 2013-11-16 13:26:50 +01:00
Anton Khirnov
aca214783a vmdvideo: use the AVFrame API properly. 2013-11-16 13:25:56 +01:00
Anton Khirnov
3c8ea9d4a7 vmnc: use the AVFrame API properly. 2013-11-16 13:25:29 +01:00
Anton Khirnov
04f30711d8 xan: use the AVFrame API properly. 2013-11-16 13:25:17 +01:00
Anton Khirnov
f3cd23fbc8 xxan: use the AVFrame API properly. 2013-11-16 13:24:56 +01:00
Anton Khirnov
6886a85f5c zerocodec: use the AVFrame API properly. 2013-11-16 13:24:44 +01:00
Anton Khirnov
a837c4f2df zmbvenc: use the AVFrame API properly. 2013-11-16 13:24:10 +01:00
Anton Khirnov
d100f9e7cd flicvideo: use the AVFrame API properly. 2013-11-16 13:23:59 +01:00
Anton Khirnov
84099f51f3 smacker: use the AVFrame API properly. 2013-11-16 13:23:38 +01:00
Anton Khirnov
5c96f02901 mmvideo: use the AVFrame API properly. 2013-11-16 13:23:14 +01:00
Anton Khirnov
2e09096da9 kgv1: use the AVFrame API properly. 2013-11-16 13:23:05 +01:00
Anton Khirnov
79d501a860 indeo2: use the AVFrame API properly. 2013-11-16 13:21:02 +01:00
Anton Khirnov
4b8a194146 iff: use the AVFrame API properly. 2013-11-16 13:20:44 +01:00
Anton Khirnov
c5dfb9033f msrle: use the AVFrame API properly. 2013-11-16 13:20:19 +01:00
Anton Khirnov
952f943d40 FATE: add a jv test 2013-11-16 13:20:06 +01:00
Anton Khirnov
b7462a3904 jvdec: use the AVFrame API properly. 2013-11-16 12:52:54 +01:00
Anton Khirnov
2d2a92f721 dxa: use the AVFrame API properly. 2013-11-16 12:52:36 +01:00
Anton Khirnov
55f954e767 qpeg: use the AVFrame API properly. 2013-11-16 12:52:18 +01:00
Anton Khirnov
01de3c1dd5 cin video: use the AVFrame API properly. 2013-11-16 12:52:02 +01:00
Anton Khirnov
ef2a99c7f4 msvideo1: use the AVFrame API properly. 2013-11-16 12:51:08 +01:00
Anton Khirnov
a639ea7f4b escape124: use the AVFrame API properly. 2013-11-16 12:49:45 +01:00
Anton Khirnov
224b6edd8b qtrle: use the AVFrame API properly. 2013-11-16 12:49:18 +01:00
Anton Khirnov
845020ed89 cljr: use the AVFrame API properly. 2013-11-16 12:49:01 +01:00
Anton Khirnov
4a8a35bc1f cinepak: use the AVFrame API properly. 2013-11-16 12:48:30 +01:00
Anton Khirnov
cec5ce4922 cdxl: remove an unused variable 2013-11-16 12:48:25 +01:00
Anton Khirnov
670c74518f c93: use the AVFrame API properly. 2013-11-16 12:47:49 +01:00
Anton Khirnov
a83fd5010c bethsoftvid: use the AVFrame API properly. 2013-11-16 12:47:15 +01:00
Anton Khirnov
33329c6e87 avs: use the AVFrame API properly. 2013-11-16 12:46:20 +01:00
Anton Khirnov
6139f481ac asvenc: use the AVFrame API properly. 2013-11-16 12:45:29 +01:00
Anton Khirnov
13e9cc9ce0 a64multienc: use the AVFrame API properly. 2013-11-16 12:45:05 +01:00
Anton Khirnov
b9fb59d2ab lavc: deprecate avcodec_alloc_frame(). 2013-11-16 12:44:50 +01:00
Anton Khirnov
5b9c3b4505 Replace all instances of avcodec_alloc_frame() with av_frame_alloc(). 2013-11-16 12:44:20 +01:00
Anton Khirnov
2ff302cb6b lavc: update coded_frame doxy.
It is not used during decoding anymore.
2013-11-16 12:41:50 +01:00
Anton Khirnov
b068660ffa lavc: deprecate CODEC_CAP_NEG_LINESIZES
It was never used in any codec since it was added 3 years ago.
2013-11-16 12:41:40 +01:00
Byte
d04b7de786 avformat/rtmphttp: Partial fix for the ticket #3127 (second try)
Reviewed-by: Lukasz M <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 02:45:58 +01:00
wangxingchao
68900bf16b avcodec: Fix duration error after seek operation
After seek, s->duration need recalculation, AVCodecParserContext need be set
again. Without the fix, the first audio packet would be dropped after
compute_pkt_fields() as the final pts/dts become invalid.

Signed-off-by: wangxingchao <wangxingchao@xiaomi.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 02:02:51 +01:00
Jan Gerber
8cc59ec881 lavf/matroskadec ReferenceBlock is a signed integer
according to the Matroska Specification
ReferenceBlock is a signed integer too.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 01:24:40 +01:00
Jan Gerber
f4b1ca99ff lavf/matroska*: DiscardPadding is a signed integer
according to the Matriska Specification
 http://matroska.org/technical/specs/index.html
DiscardPadding is a signed integer.

Tested-by: Jan Gerber <j@v2v.cc>
Tested-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 00:49:23 +01:00
Clément Bœsch
150c5543ff avcodec/vp9: fix "initialize" typo.
Originally spotted and fixed by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830
2013-11-15 23:28:48 +01:00
Michael Niedermayer
cddd15ba5c avformat/matroska: simplify signed int access code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 21:38:23 +01:00
Jan Gerber
d03eea36b2 lavf/matroska*: add support for signed integers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 21:38:12 +01:00
Compn
5592d1b741 riff: add G264 to mpeg4, only decodes keyframes 2013-11-15 09:46:35 -05:00
Michael Niedermayer
97962b278a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: VP9 decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/version.h
	libavcodec/vp9.c
	libavcodec/vp9.h
	libavcodec/vp9data.h
	libavcodec/vp9dsp.c
	libavcodec/x86/Makefile
	libavcodec/x86/vp9dsp.asm
	libavcodec/x86/vp9dsp_init.c
	tests/fate/vpx.mak
	tests/ref/fate/vp9-00-quantizer-00
	tests/ref/fate/vp9-00-quantizer-01
	tests/ref/fate/vp9-00-quantizer-02
	tests/ref/fate/vp9-00-quantizer-03
	tests/ref/fate/vp9-00-quantizer-04
	tests/ref/fate/vp9-00-quantizer-05
	tests/ref/fate/vp9-00-quantizer-06
	tests/ref/fate/vp9-00-quantizer-07
	tests/ref/fate/vp9-00-quantizer-08
	tests/ref/fate/vp9-00-quantizer-09
	tests/ref/fate/vp9-00-quantizer-10
	tests/ref/fate/vp9-00-quantizer-11
	tests/ref/fate/vp9-00-quantizer-12
	tests/ref/fate/vp9-00-quantizer-13
	tests/ref/fate/vp9-00-quantizer-14
	tests/ref/fate/vp9-00-quantizer-15
	tests/ref/fate/vp9-00-quantizer-16
	tests/ref/fate/vp9-00-quantizer-17
	tests/ref/fate/vp9-00-quantizer-18
	tests/ref/fate/vp9-00-quantizer-19
	tests/ref/fate/vp9-00-quantizer-20
	tests/ref/fate/vp9-00-quantizer-21
	tests/ref/fate/vp9-00-quantizer-22
	tests/ref/fate/vp9-00-quantizer-23
	tests/ref/fate/vp9-00-quantizer-24
	tests/ref/fate/vp9-00-quantizer-25
	tests/ref/fate/vp9-00-quantizer-26
	tests/ref/fate/vp9-00-quantizer-27
	tests/ref/fate/vp9-00-quantizer-28
	tests/ref/fate/vp9-00-quantizer-29
	tests/ref/fate/vp9-00-quantizer-30
	tests/ref/fate/vp9-00-quantizer-31
	tests/ref/fate/vp9-00-quantizer-32
	tests/ref/fate/vp9-00-quantizer-33
	tests/ref/fate/vp9-00-quantizer-34
	tests/ref/fate/vp9-00-quantizer-35
	tests/ref/fate/vp9-00-quantizer-36
	tests/ref/fate/vp9-00-quantizer-37
	tests/ref/fate/vp9-00-quantizer-38
	tests/ref/fate/vp9-00-quantizer-39
	tests/ref/fate/vp9-00-quantizer-40
	tests/ref/fate/vp9-00-quantizer-41
	tests/ref/fate/vp9-00-quantizer-42
	tests/ref/fate/vp9-00-quantizer-43
	tests/ref/fate/vp9-00-quantizer-44
	tests/ref/fate/vp9-00-quantizer-45
	tests/ref/fate/vp9-00-quantizer-46
	tests/ref/fate/vp9-00-quantizer-47
	tests/ref/fate/vp9-00-quantizer-48
	tests/ref/fate/vp9-00-quantizer-49
	tests/ref/fate/vp9-00-quantizer-50
	tests/ref/fate/vp9-00-quantizer-51
	tests/ref/fate/vp9-00-quantizer-52
	tests/ref/fate/vp9-00-quantizer-53
	tests/ref/fate/vp9-00-quantizer-54
	tests/ref/fate/vp9-00-quantizer-55
	tests/ref/fate/vp9-00-quantizer-56
	tests/ref/fate/vp9-00-quantizer-57
	tests/ref/fate/vp9-00-quantizer-58
	tests/ref/fate/vp9-00-quantizer-59
	tests/ref/fate/vp9-00-quantizer-60
	tests/ref/fate/vp9-00-quantizer-61
	tests/ref/fate/vp9-00-quantizer-62
	tests/ref/fate/vp9-00-quantizer-63
	tests/ref/fate/vp9-01-sharpness-1
	tests/ref/fate/vp9-01-sharpness-2
	tests/ref/fate/vp9-01-sharpness-3
	tests/ref/fate/vp9-01-sharpness-4
	tests/ref/fate/vp9-01-sharpness-5
	tests/ref/fate/vp9-01-sharpness-6
	tests/ref/fate/vp9-01-sharpness-7
	tests/ref/fate/vp9-02-size-08x08
	tests/ref/fate/vp9-02-size-08x10
	tests/ref/fate/vp9-02-size-08x16
	tests/ref/fate/vp9-02-size-08x18
	tests/ref/fate/vp9-02-size-08x32
	tests/ref/fate/vp9-02-size-08x34
	tests/ref/fate/vp9-02-size-08x64
	tests/ref/fate/vp9-02-size-08x66
	tests/ref/fate/vp9-02-size-10x08
	tests/ref/fate/vp9-02-size-10x10
	tests/ref/fate/vp9-02-size-10x16
	tests/ref/fate/vp9-02-size-10x18
	tests/ref/fate/vp9-02-size-10x32
	tests/ref/fate/vp9-02-size-10x34
	tests/ref/fate/vp9-02-size-10x64
	tests/ref/fate/vp9-02-size-10x66
	tests/ref/fate/vp9-02-size-16x08
	tests/ref/fate/vp9-02-size-16x10
	tests/ref/fate/vp9-02-size-16x16
	tests/ref/fate/vp9-02-size-16x18
	tests/ref/fate/vp9-02-size-16x32
	tests/ref/fate/vp9-02-size-16x34
	tests/ref/fate/vp9-02-size-16x64
	tests/ref/fate/vp9-02-size-16x66
	tests/ref/fate/vp9-02-size-18x08
	tests/ref/fate/vp9-02-size-18x10
	tests/ref/fate/vp9-02-size-18x16
	tests/ref/fate/vp9-02-size-18x18
	tests/ref/fate/vp9-02-size-18x32
	tests/ref/fate/vp9-02-size-18x34
	tests/ref/fate/vp9-02-size-18x64
	tests/ref/fate/vp9-02-size-18x66
	tests/ref/fate/vp9-02-size-32x08
	tests/ref/fate/vp9-02-size-32x10
	tests/ref/fate/vp9-02-size-32x16
	tests/ref/fate/vp9-02-size-32x18
	tests/ref/fate/vp9-02-size-32x32
	tests/ref/fate/vp9-02-size-32x34
	tests/ref/fate/vp9-02-size-32x64
	tests/ref/fate/vp9-02-size-32x66
	tests/ref/fate/vp9-02-size-34x08
	tests/ref/fate/vp9-02-size-34x10
	tests/ref/fate/vp9-02-size-34x16
	tests/ref/fate/vp9-02-size-34x18
	tests/ref/fate/vp9-02-size-34x32
	tests/ref/fate/vp9-02-size-34x34
	tests/ref/fate/vp9-02-size-34x64
	tests/ref/fate/vp9-02-size-34x66
	tests/ref/fate/vp9-02-size-64x08
	tests/ref/fate/vp9-02-size-64x10
	tests/ref/fate/vp9-02-size-64x16
	tests/ref/fate/vp9-02-size-64x18
	tests/ref/fate/vp9-02-size-64x32
	tests/ref/fate/vp9-02-size-64x34
	tests/ref/fate/vp9-02-size-64x64
	tests/ref/fate/vp9-02-size-64x66
	tests/ref/fate/vp9-02-size-66x08
	tests/ref/fate/vp9-02-size-66x10
	tests/ref/fate/vp9-02-size-66x16
	tests/ref/fate/vp9-02-size-66x18
	tests/ref/fate/vp9-02-size-66x32
	tests/ref/fate/vp9-02-size-66x34
	tests/ref/fate/vp9-02-size-66x64
	tests/ref/fate/vp9-02-size-66x66
	tests/ref/fate/vp9-03-deltaq
	tests/ref/fate/vp9-03-size-196x196
	tests/ref/fate/vp9-03-size-196x198
	tests/ref/fate/vp9-03-size-196x200
	tests/ref/fate/vp9-03-size-196x202
	tests/ref/fate/vp9-03-size-196x208
	tests/ref/fate/vp9-03-size-196x210
	tests/ref/fate/vp9-03-size-196x224
	tests/ref/fate/vp9-03-size-196x226
	tests/ref/fate/vp9-03-size-198x196
	tests/ref/fate/vp9-03-size-198x198
	tests/ref/fate/vp9-03-size-198x200
	tests/ref/fate/vp9-03-size-198x202
	tests/ref/fate/vp9-03-size-198x208
	tests/ref/fate/vp9-03-size-198x210
	tests/ref/fate/vp9-03-size-198x224
	tests/ref/fate/vp9-03-size-198x226
	tests/ref/fate/vp9-03-size-200x196
	tests/ref/fate/vp9-03-size-200x198
	tests/ref/fate/vp9-03-size-200x200
	tests/ref/fate/vp9-03-size-200x202
	tests/ref/fate/vp9-03-size-200x208
	tests/ref/fate/vp9-03-size-200x210
	tests/ref/fate/vp9-03-size-200x224
	tests/ref/fate/vp9-03-size-200x226
	tests/ref/fate/vp9-03-size-202x196
	tests/ref/fate/vp9-03-size-202x198
	tests/ref/fate/vp9-03-size-202x200
	tests/ref/fate/vp9-03-size-202x202
	tests/ref/fate/vp9-03-size-202x208
	tests/ref/fate/vp9-03-size-202x210
	tests/ref/fate/vp9-03-size-202x224
	tests/ref/fate/vp9-03-size-202x226
	tests/ref/fate/vp9-03-size-208x196
	tests/ref/fate/vp9-03-size-208x198
	tests/ref/fate/vp9-03-size-208x200
	tests/ref/fate/vp9-03-size-208x202
	tests/ref/fate/vp9-03-size-208x208
	tests/ref/fate/vp9-03-size-208x210
	tests/ref/fate/vp9-03-size-208x224
	tests/ref/fate/vp9-03-size-208x226
	tests/ref/fate/vp9-03-size-210x196
	tests/ref/fate/vp9-03-size-210x198
	tests/ref/fate/vp9-03-size-210x200
	tests/ref/fate/vp9-03-size-210x202
	tests/ref/fate/vp9-03-size-210x208
	tests/ref/fate/vp9-03-size-210x210
	tests/ref/fate/vp9-03-size-210x224
	tests/ref/fate/vp9-03-size-210x226
	tests/ref/fate/vp9-03-size-224x196
	tests/ref/fate/vp9-03-size-224x198
	tests/ref/fate/vp9-03-size-224x200
	tests/ref/fate/vp9-03-size-224x202
	tests/ref/fate/vp9-03-size-224x208
	tests/ref/fate/vp9-03-size-224x210
	tests/ref/fate/vp9-03-size-224x224
	tests/ref/fate/vp9-03-size-224x226
	tests/ref/fate/vp9-03-size-226x196
	tests/ref/fate/vp9-03-size-226x198
	tests/ref/fate/vp9-03-size-226x200
	tests/ref/fate/vp9-03-size-226x202
	tests/ref/fate/vp9-03-size-226x208
	tests/ref/fate/vp9-03-size-226x210
	tests/ref/fate/vp9-03-size-226x224
	tests/ref/fate/vp9-03-size-226x226
	tests/ref/fate/vp9-2pass-akiyo
	tests/ref/fate/vp9-segmentation-akiyo
	tests/ref/fate/vp9-tiling-pedestrian

Not merged at the request of the authors and maintainers
"<ubitux> we have a lot of fixes they don't have, as well as optim actually"

See: 848826f527
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 15:24:36 +01:00
Michael Niedermayer
91e00c4a78 Merge commit '458446acfa1441d283dacf9e6e545beb083b8bb0'
* commit '458446acfa1441d283dacf9e6e545beb083b8bb0':
  lavc: Edge emulation with dst/src linesize

Conflicts:
	libavcodec/cavs.c
	libavcodec/h264.c
	libavcodec/hevc.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/rv34.c
	libavcodec/svq3.c
	libavcodec/vc1dec.c
	libavcodec/videodsp.h
	libavcodec/videodsp_template.c
	libavcodec/vp3.c
	libavcodec/vp8.c
	libavcodec/wmv2.c
	libavcodec/x86/videodsp.asm
	libavcodec/x86/videodsp_init.c

Changes to the asm are not merged, they are left for volunteers or
in their absence for later.
The changes this merge introduces are reordering of the function
arguments

See: face578d56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 15:07:10 +01:00
Michael Niedermayer
e28130bcaf Merge commit '3cbe1126530449336e2ce59b194bdb8c4eb4abb4'
* commit '3cbe1126530449336e2ce59b194bdb8c4eb4abb4':
  dv: Split DV data table declarations into their own header

Conflicts:
	libavcodec/dvdata.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 12:52:19 +01:00
Michael Niedermayer
3e78ceadf9 Merge commit 'e8fcdebb17fc59375fd9fc6c0a02a1d2e6d9fb23'
* commit 'e8fcdebb17fc59375fd9fc6c0a02a1d2e6d9fb23':
  build: Allow specifying extra object files when linking HOSTPROGS

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 12:19:45 +01:00
Alex Sukhanov
86b3435fc0 af_aresample: Fix timestamp of first padded PCM audio packet
Problem:
ffmpeg generated video file which had two audio packets with the same timestamp: last original audio packet and first padded audio packet.

Timestamp of first added audio packet by 'apad' fitler had the same value as last original audio packet. The problem was in 'aresample' fitler, which used next pts instead of current one.
As long as 'apad' and 'aresample' filters have separate mechanisms of timestamp calculation, they got the same values.

Command line:
ffmpeg -i <input_filename> -shortest -apad 512 -af asetnsamples=n=512 -b:a 1058400 -ac 1 -ar 44100 -async 0 -acodec pcm_s16le -sn -f matroska -y <output_file>

Fix:
Call swr_next_pts() function before swr_convert()

Tested:
FATE tests passed.
Fix has been tested in our Transcoder regression framework on ~10k test videos. It's about ~500k transcodes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 11:54:02 +01:00
Ronald S. Bultje
72ca830f51 lavc: VP9 decoder
Originally written by Ronald S. Bultje <rsbultje@gmail.com> and
Clément Bœsch <u@pkh.me>

Further contributions by:
Anton Khirnov <anton@khirnov.net>
Diego Biurrun <diego@biurrun.de>
Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö <martin@martin.st>

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-15 10:16:28 +01:00
Ronald S. Bultje
458446acfa lavc: Edge emulation with dst/src linesize
Allow supporting files for which the image stride is smaller than
the maximum block size + number of subpel mc taps, e.g. a 64x64 VP9
file or a 16x16 VP8 file with -fflags +emu_edge.
2013-11-15 10:16:27 +01:00
Lukasz Marek
995f450b44 lavd/xv: free resources on errors
xv_write_header callback leave not freed resources on errors.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-15 09:56:58 +01:00
Lukasz Marek
57bca5a2b6 lavd/xv: add more supported formats
Add support for following pixel formats:
- AV_PIX_FMT_UYVY422
- AV_PIX_FMT_YUYV422

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-15 09:56:58 +01:00
Lukasz Marek
5d8619595b lavd/xv: simplify write_packet
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-15 09:56:58 +01:00
Diego Biurrun
3cbe112653 dv: Split DV data table declarations into their own header
This is necessary to avoid target config settings bleeding into the host
compilation process with hardcoded tables and the DV VLC tables no longer
present as static tables in a header file.
2013-11-15 01:29:47 +01:00
Diego Biurrun
e8fcdebb17 build: Allow specifying extra object files when linking HOSTPROGS 2013-11-15 01:29:47 +01:00
Michael Niedermayer
9244a68092 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: free the tables and uninitialize the context on flush

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 21:11:42 +01:00
Michael Niedermayer
074bae745d Merge commit 'ecf442a58b09bdb1dc1d2c3904b82ac5f79b2878'
* commit 'ecf442a58b09bdb1dc1d2c3904b82ac5f79b2878':
  lavf: improve support for AVC-Intra files.

Conflicts:
	libavformat/internal.h
	libavformat/isom.c
	libavformat/mxfdec.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 21:04:44 +01:00
Michael Niedermayer
0f969c00c6 Merge commit '951d819006730145255333749367c4ea722ffd9b'
* commit '951d819006730145255333749367c4ea722ffd9b':
  mxfdec: update current edit unit when seeking in mxf files without index tables

See: f1e606c762
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 20:23:49 +01:00
Anton Khirnov
9eda9d3322 h264: free the tables and uninitialize the context on flush
Prevents referencing empty frames when the first packet after the flush
does not contain a frame.
2013-11-14 19:00:20 +01:00
Reimar Döffinger
ecf442a58b lavf: improve support for AVC-Intra files.
Generate extradata with SPS/PPS based on container dimensions.

Authors of this commit are: Reimar and Thomas Mundt

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-14 18:59:39 +01:00
Marton Balint
951d819006 mxfdec: update current edit unit when seeking in mxf files without index tables
Fixes audio packet pts values in some files generated by AVID TRMG 3.01.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-14 18:59:17 +01:00
Michael Niedermayer
54af7ce4ce Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg12dec: Remove outdated UV swapping code for VCR2

Not merged as this change would likely break VCR2 with XVMC
The code can be removed when / in case XVMC is removed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 16:17:43 +01:00
Michael Niedermayer
726566704f Merge commit '669fe505952f3d8175b1ad6971033a8e8120523b'
* commit '669fe505952f3d8175b1ad6971033a8e8120523b':
  twinvq: consume block_align+1 packets as full ones

Conflicts:
	libavcodec/twinvq.c

See: 2e7a1fdd6d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 16:02:11 +01:00
Michael Niedermayer
a24aef5dfa Merge commit '1afa8a7568ba57ad0cd2923f6e641e10d32cded4'
* commit '1afa8a7568ba57ad0cd2923f6e641e10d32cded4':
  twinvq: support multiple frames per packet

Conflicts:
	libavcodec/twinvq.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:42:05 +01:00
Michael Niedermayer
2cfdc2879a Merge commit 'ddb839e9286594ff7a862a956402106fca7055c9'
* commit 'ddb839e9286594ff7a862a956402106fca7055c9':
  metasound: add missing modes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:31:34 +01:00
Michael Niedermayer
1ac4797d19 Merge commit '7b9780e7bf9d86e3e4e9606a971bb2d0d718bac2'
* commit '7b9780e7bf9d86e3e4e9606a971bb2d0d718bac2':
  mpeg12dec: Remove unused swap_uv member from Mpeg1Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:24:30 +01:00
Michael Niedermayer
7c888ae746 Merge commit 'cce3e0a49f0dd030262c28d9c53de0bd2fd909c4'
* commit 'cce3e0a49f0dd030262c28d9c53de0bd2fd909c4':
  Move av_fast_{m,re}alloc from lavc to lavu.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/utils.c
	libavutil/mem.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:04:04 +01:00
Diego Biurrun
ad1161799e mpeg12dec: Remove outdated UV swapping code for VCR2 2013-11-14 14:21:27 +01:00
Michael Niedermayer
2925571278 avcodec/mpegvideo_enc: Fix possibly exploitable security issue with -bf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 14:19:38 +01:00
Michael Niedermayer
9f32048dd1 Merge commit 'aa241229891173b0357eee04e6ca78f806cc9c0c'
* commit 'aa241229891173b0357eee04e6ca78f806cc9c0c':
  lavc: deprecate FF_MAX_B_FRAMES

Conflicts:
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 14:11:03 +01:00
Michael Niedermayer
dbfa4317f3 Merge commit 'b6094811f9fca66cdf853420696e96fdc3e4987a'
* commit 'b6094811f9fca66cdf853420696e96fdc3e4987a':
  lavc: move MB_TYPE_* macros from avcodec.h to mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 14:01:24 +01:00
Michael Niedermayer
d67d3e2977 Merge commit 'b45c87083de67969c1598cfef41e7c947b137922'
* commit 'b45c87083de67969c1598cfef41e7c947b137922':
  lavc: schedule unused FF_QSCALE_TYPE_* for removal on next bump

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:49:02 +01:00
Kostya Shishkov
669fe50595 twinvq: consume block_align+1 packets as full ones
They can be produced by VQF.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-14 13:38:10 +01:00
Kostya Shishkov
1afa8a7568 twinvq: support multiple frames per packet
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-14 13:38:10 +01:00
Kostya Shishkov
ddb839e928 metasound: add missing modes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-14 13:38:10 +01:00
Michael Niedermayer
b71e4d8717 Merge commit '8941971a8f2e24b9a84fe29f128d13ceb89c0a65'
* commit '8941971a8f2e24b9a84fe29f128d13ceb89c0a65':
  lavc: make error_rate a private option of mpegvideo encoders

Conflicts:
	libavcodec/options_table.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:14:41 +01:00
Michael Niedermayer
31c09b7663 Merge commit '728c4658563dc82115ade0f1679679eddb7be5ff'
* commit '728c4658563dc82115ade0f1679679eddb7be5ff':
  vdpau: add a constructor for AVVDPAUContext.

Conflicts:
	libavcodec/vdpau.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:08:36 +01:00
Michael Niedermayer
5f231d909f Merge commit 'ca22d1dea2842fca0422dd1d2bd09e7eb2c8f118'
* commit 'ca22d1dea2842fca0422dd1d2bd09e7eb2c8f118':
  vdpau: add a convenience function for getting a decoder profile.

Conflicts:
	doc/APIchanges
	libavcodec/vdpau.c
	libavcodec/vdpau.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:00:10 +01:00
Michael Niedermayer
f3458a56c1 avcodec/vdpau: try to fix version macro use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 12:53:46 +01:00
Diego Biurrun
7b9780e7bf mpeg12dec: Remove unused swap_uv member from Mpeg1Context 2013-11-14 12:46:00 +01:00
Michael Niedermayer
9e5ef1c5c3 h264: Do not treat the initial frame special in handling of frame gaps
The not handling of frame gaps has lead to the lack of a dummy reference
frame, which has lead to the failure of decode_slice_header() which has
lead to one SEI recovery message being skiped which had introduced a
slightly suboptimal recovery point for at least 1 h264 file compared to
JM.

Found-by: Carl & BugMaster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 12:16:01 +01:00
Timothy Gu
62923e9014 doc: remove avutil.txt
No useful contents. Also hard to keep up-to-date.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-14 09:51:10 +01:00
Timothy Gu
52955c412c doc/libavutil: add things from avutil.txt
Many minor fixes from: Stefano Sabatini <stefasab@gmail.com>.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-14 09:51:10 +01:00
Anton Khirnov
cce3e0a49f Move av_fast_{m,re}alloc from lavc to lavu. 2013-11-14 09:42:22 +01:00
Anton Khirnov
aa24122989 lavc: deprecate FF_MAX_B_FRAMES
We should not arbitrarily decide the maximum B-frame number for all
encoders supported by Libav, each encoder should be able to set its own
limits.
2013-11-14 09:41:03 +01:00
Anton Khirnov
b6094811f9 lavc: move MB_TYPE_* macros from avcodec.h to mpegvideo.h
They are mpegvideo-specific and not supposed to be used by callers.
2013-11-14 09:40:39 +01:00
Anton Khirnov
b45c87083d lavc: schedule unused FF_QSCALE_TYPE_* for removal on next bump 2013-11-14 09:40:27 +01:00
Anton Khirnov
8941971a8f lavc: make error_rate a private option of mpegvideo encoders 2013-11-14 09:39:43 +01:00
Anton Khirnov
728c465856 vdpau: add a constructor for AVVDPAUContext.
We will likely want to add new fields to it in the future, so this is
needed to avoid breaking ABI.
2013-11-14 09:38:58 +01:00
Anton Khirnov
ca22d1dea2 vdpau: add a convenience function for getting a decoder profile.
Based on the code by Rémi Denis-Courmont <remi@remlab.net> from VLC.
2013-11-14 09:38:50 +01:00
Diego Biurrun
33311af75d fate: Add VCR2 test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 08:49:31 +01:00
Diego Biurrun
3215140425 mpeg12dec: Remove incomplete and wrong UV swapping code for VCR2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 08:19:29 +01:00
Kostya Shishkov
bae14f38d9 mpegvideo: Fix swapping of UV planes for VCR2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 07:33:59 +01:00
Michael Niedermayer
5231eecdaf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Deprecate obsolete XvMC hardware decoding support

Conflicts:
	libavcodec/mpeg12.c
	libavcodec/mpeg12dec.c
	libavcodec/mpegvideo.c
	libavcodec/options_table.h
	libavutil/pixdesc.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 03:26:35 +01:00
Michael Niedermayer
e25ed2608c Merge commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac'
* commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac':
  Remove all Alpha architecture optimizations

Conflicts:
	libavcodec/alpha/asm.h
	libavcodec/alpha/dsputil_alpha.c
	libavcodec/alpha/dsputil_alpha.h
	libavcodec/alpha/dsputil_alpha_asm.S
	libavcodec/alpha/hpeldsp_alpha.c
	libavcodec/alpha/hpeldsp_alpha.h
	libavcodec/alpha/hpeldsp_alpha_asm.S
	libavcodec/alpha/motion_est_alpha.c
	libavcodec/alpha/motion_est_mvi_asm.S
	libavcodec/alpha/mpegvideo_alpha.c
	libavcodec/alpha/regdef.h
	libavcodec/alpha/simple_idct_alpha.c

We have a qemu based fate alpha client. And various failures
on alpha have previously pointed to issues in generic C code.
Thus IMHO it makes sense to keep alpha code as long as someone
is willing to do the little bit of maintaince it needs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 02:55:42 +01:00
Michael Niedermayer
a7663ad9cf Merge commit '16381923fb7b9087ce559fb1cd3594469ac6788b'
* commit '16381923fb7b9087ce559fb1cd3594469ac6788b':
  configure: Check whether MSVC requires using the C89-to-C99 converter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 02:34:34 +01:00
Michael Niedermayer
4abe6e4153 avformat/nullenc: mark null as VFPS
This avoids frame duplication for null output
avoiding unneeded computations.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 22:56:18 +01:00
Michael Niedermayer
9647c6dedd ffmpeg_opt: fix overriding values set by -target
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 22:07:19 +01:00
Diego Biurrun
19e30a58fc Deprecate obsolete XvMC hardware decoding support
XvMC has long ago been superseded by newer acceleration APIs, such as
VDPAU, and few downstreams still support it. Furthermore XvMC is not
implemented within the hwaccel framework, but requires its own specific
code in the MPEG-1/2 decoder, which is a maintenance burden.
2013-11-13 21:07:45 +01:00
Diego Biurrun
c7f7bfc9e3 Remove all Alpha architecture optimizations
Alpha has been end-of-lifed and no more test machines are available.
2013-11-13 20:45:49 +01:00
Martin Storsjö
16381923fb configure: Check whether MSVC requires using the C89-to-C99 converter
MSVC does support enough of C99 to work without the converter since
the 2013 version. Try to detect which version of the compiler in
the path needs to run the C99 converter or not. When the converter
is omitted, compilation time is reduced quite drastically.

Prior to this, users could still use --cc="c99conv -noconv cl"
when running MSVC 2013 to achieve the same.

This checks the version number instead of doing a normal compile
test, since this check needs to be done earlier in configure, before
the normal compile test helpers are usable.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-13 20:55:11 +02:00
Michael Niedermayer
269f5d902a avformat/aviobuf: return error from avio_put_str16le() for invalid input
Found-by: Stefano Sabatini
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 19:16:27 +01:00
Michael Niedermayer
b52ae27edf avio_put_str16le: Print error message in case of invalid UTF8 input
Found-by: Stefano Sabatini
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 19:09:04 +01:00
Michael Niedermayer
7561974dfe avformat/mmst: propagate error code from avio_put_str16le()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 18:04:11 +01:00
Timothy Gu
1062a7f404 doc: remove soc.txt
The file was written in 2006, it was never updated nor really used as
reference for SOC-like programs.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-13 14:28:19 +01:00
Lukasz Marek
f04fe23a52 lavd/xv: fix memory leak
Results of XvQueryAdaptors have to be freed with XvFreeAdaptorInfo.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-11-13 11:34:19 +01:00
Stefano Sabatini
8cd3685a3f lavfi: add elbg filter 2013-11-13 11:21:57 +01:00
Stefano Sabatini
fe55c31976 lavc/elbg: rename ff_ symbols to avpriv_, so they can be used in shared libs
In particular, allows the use of elbg in other FFmpeg libraries, required
by the pending elbg filter.
2013-11-13 11:21:46 +01:00
Ben Boeckel
255302da70 vorbis: handle special packets in the middle of a stream
This allows for updating metadata from new metadata packets in the
middle of a stream (e.g., MPD streams). There still needs to be a signal
that there *is* new metadata, but this is at least gets the data into a
data structure.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 01:36:56 +01:00
Michael Niedermayer
e3fc4481b6 avformat/vqf: check a few more bits in probe
Fixes probetest failure
The threshold is choosen so that a all printale ascii string will never be
detected as vqf

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 01:36:09 +01:00
Paul B Mahol
e1c7892013 avcodec/vp9: use av_freep() for above_partition_ctx
Fixes use after free if memory allocation fails.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-12 23:41:58 +00:00
Michael Niedermayer
0062869ae2 avformat/smacker: check width/height in probe
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 19:37:37 +01:00
Michael Niedermayer
7b1e0beb2d avcodec/mpegvideo_motion: Handle edge emulation even without unrestricted_mv
Fixes out of array reads
Fixes part of: MSVR 440 (the other issues seem to have been fixed already)
Found-by: Jeremy Brown (jerbrown) of ReSP
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 18:21:20 +01:00
Michael Niedermayer
8146ee7ae9 MAINTAINERS: Add 1.2 back to the maintained releases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 14:33:54 +01:00
Lou Logan
6d90a5c149 Fix example in pullup documentation.
The pullup filter does not work well with the fps filter, it
currently needs -r

Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-11-12 14:22:15 +01:00
Erik Olofsson
da9d36055a libavcodec/xsubenc.c: set coded_bits_per_sample
Explicitly set the number of bits per sample to stop
the avi muxer from guessing at 24 bits.
The result is that bits per pixel in the avi stream header
matches what other XSUB muxers produce, such as AVIAddXSubs.exe

Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com>
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 03:15:33 +01:00
Erik Olofsson
3b1dcdec7d libavcodec/xsubenc.c: Fix bounding box coordinates
Fix coordinates of the lower right corner of the text area.
Note that the coordinates are redundant as the size and
position of the text area are known.
Many decoders (including Sony Playstation 3, VLC and FFmpeg)
ignore the redundant coordinates.
Some hardware decoders need them for correct playback.

Verified on Philips DVD player models HTS7201 and DVP3380.

Fixes ticket #3031

Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com>
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 03:15:33 +01:00
Michael Niedermayer
355cea8ddc Merge remote-tracking branch 'cus/stable'
* cus/stable:
  libzvbi-teletextdec: propagate errors generated in page handler
  libzvbi-teletextdec: dont ignore memory allocation error silently
  libzvbi-teletextdec: output ass subtitles instead of plain text
  ass: move text_event_to_ass from textdec.c to ass.c and export it
  ass: fix error handling in ff_ass_add_subrect
  ass: factor out ff_ass_bprint_dialog
  libzvbi-teletextdec: use AVBPrint for whitespace cleanup
  libzvbi-teletextdec: use option constants instead of strings
  libzvbi-teletextdec: fix indentation after last commit
  libzvbi-teletextdec: support multiple teletext pages in a single packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 22:29:48 +01:00
Michael Niedermayer
43bf4297e4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegaudioenc: Move some static tables to MpegAudioContext

Conflicts:
	libavcodec/mpegaudioenc.c
	libavcodec/mpegaudiotab.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 22:21:38 +01:00
Michael Niedermayer
afc660ab9b Merge commit '5d6a990c115850326711c2f5be4d9fd33f399616'
* commit '5d6a990c115850326711c2f5be4d9fd33f399616':
  mpegaudioenc: Remove broken integer-only quantization code path

Conflicts:
	libavcodec/mpegaudioenc.c

Mostly not merged, the integer code works fine.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 21:46:35 +01:00
Michael Niedermayer
f9b89b61f8 avformat/electronicarts: check chunksize more completely in probe()
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 21:31:56 +01:00
Michael Niedermayer
20769d9349 avformat/electronicarts: check chunk size.
Fix infinite loop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 19:51:12 +01:00
Michael Niedermayer
bdab2421a5 avformat/dfa: check first frame offset in probe
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 19:38:38 +01:00
Michael Niedermayer
f66f3819b9 avformat/bethsoftvid: check 4th header byte in probe
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 17:50:51 +01:00
Michael Niedermayer
650fd9c004 avformat/avr: check channels and bps in probe
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 14:51:43 +01:00
Michael Niedermayer
676bc505f7 avformat/utils: disabled debug code to collect format probing statistics
This allows collecting statistics on probing scores and the amount of data
probing needed for various files and formats.
For example it can be used to find out which formats tend to need more
data for probing or which files are probed with less certain/lower scores

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-11 13:06:36 +01:00
Timothy Gu
a7f35afb56 doc: delete viterbi.txt
The description has been moved to the FFmpeg wiki:
https://trac.ffmpeg.org/wiki/ViterbiAlgorithm

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-11-11 10:45:19 +01:00
Michael Niedermayer
8cdf4e0823 ffmpeg: remove unneeded include "libswscale/swscale.h"
Found-by: ramiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 21:45:19 +01:00
Marton Balint
c0479f0f06 libzvbi-teletextdec: propagate errors generated in page handler
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 20:00:01 +01:00
Marton Balint
4947b0624b libzvbi-teletextdec: dont ignore memory allocation error silently
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 20:00:01 +01:00
Marton Balint
3c4b5275b6 libzvbi-teletextdec: output ass subtitles instead of plain text
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 19:59:59 +01:00
Clément Bœsch
199b8fbd09 avfilter/fade: use FADE_OUT macro. 2013-11-10 19:16:45 +01:00
Clément Bœsch
981128c2c1 avfilter/fade: remove a bunch of useless parenthesis. 2013-11-10 19:15:48 +01:00
Clément Bœsch
461e810cfc avfilter/fade: use inlink->frame_count. 2013-11-10 19:12:36 +01:00
Clément Bœsch
3e1097b909 avfilter/fade: add color option.
Fixes Ticket #1822.
2013-11-10 19:05:08 +01:00
Marton Balint
b96325e023 ass: move text_event_to_ass from textdec.c to ass.c and export it
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:52 +01:00
Marton Balint
0f0a8d9859 ass: fix error handling in ff_ass_add_subrect
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Marton Balint
f148954b0a ass: factor out ff_ass_bprint_dialog
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Marton Balint
65fb59abd2 libzvbi-teletextdec: use AVBPrint for whitespace cleanup
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Marton Balint
b689b1f6ee libzvbi-teletextdec: use option constants instead of strings
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Marton Balint
688652e0d6 libzvbi-teletextdec: fix indentation after last commit
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Marton Balint
a494757b34 libzvbi-teletextdec: support multiple teletext pages in a single packet
After this patch, if a packet contains multiple teletext pages, the teletext
decoder can return the fist page and store the remaining pages in memory, and
return them to the user on the next calls to avcodec_decode_subtitle2.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-10 18:57:51 +01:00
Michael Niedermayer
78e150c5e9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  hwaccel: Simplify ff_find_hwaccel

Conflicts:
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 17:37:51 +01:00
Diego Biurrun
45ef963908 mpegaudioenc: Move some static tables to MpegAudioContext
This reduces global state and the amount of globally visible tables.
2013-11-10 16:07:22 +01:00
Diego Biurrun
5d6a990c11 mpegaudioenc: Remove broken integer-only quantization code path 2013-11-10 16:07:22 +01:00
Michael Niedermayer
2fbc759d08 avformat/diracdec: check 2 chunks in probe
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 16:06:16 +01:00
Luca Barbato
08303d7741 hwaccel: Simplify ff_find_hwaccel
It is always called by passing fields from an AVCodecContext.
2013-11-10 13:59:48 +01:00
Michael Niedermayer
023953e964 avformat/astdec: increase the score for odd samplerate/channels to max/8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 13:37:06 +01:00
Michael Niedermayer
eb96802355 avformat/rsd: increase the score for odd samplerate/channels to max/8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 13:37:03 +01:00
Michael Niedermayer
ef28694d36 avformat/lvfdec: increase the score for odd channels to max/8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 13:36:59 +01:00
Michael Niedermayer
9225ebd50d avformat/swfdec: return AVPROBE_SCORE_MAX / 4 for unexpected versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 13:25:35 +01:00
Michael Niedermayer
b570835296 avformat/ape: check version in probe
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 13:25:35 +01:00
Timothy Gu
bc27309591 doc/encoders: fix libfdk-aac "Examples" subsection
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-10 12:36:54 +01:00
Michael Niedermayer
1836a42c29 avcodec/vp8: remove unused webp_decode_frame()
See: libavcodec/webp.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 12:27:21 +01:00
Michael Niedermayer
59ce62f713 avformat/dv: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 12:27:17 +01:00
Timothy Gu
3853fcd5a9 doc/doxy-wrapper: disable inserting headers and footers
The headers and footers are used to integrate Doxygen into Libav's website.
Fixes the Libav-ish look when doing `make apidoc`.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 02:33:33 +01:00
Michael Niedermayer
52268def10 avformat/thp: check fps value during probing
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 02:04:08 +01:00
Michael Niedermayer
858ef56297 avformat/thp: do not set sample_rate for a video codec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-10 02:04:08 +01:00
Ronald S. Bultje
dd3d0f46bd vp9: fix mvref finding to adhere to bug in libvpx.
Fixes a particular youtube video that I unfortunately can't share.
2013-11-09 21:31:06 +01:00
Erik Olofsson
f5bffd3a1a libavf/avienc: store language metadata for XSUB streams
Formatted in such a way that DivX certified players can decode it.
Verified on Sony Playstation 3 and Philips DVP3380.

Fixes ticket 2385

Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 20:33:04 +01:00
Stefano Sabatini
f591ba60ff ffmpeg: generate more specific error message in case of inconsistent filtering options
In particular, distinguish if the option was -filter or -filter_script.

Suggested-by: Nicolas George
2013-11-09 19:05:35 +01:00
Stefano Sabatini
0f8bdfe3e8 ffmpeg: store value of -filter and -filter_script per-stream option in OutputStream struct
Avoid the need for multiple potentially inconsistent access operations,
slightly factorize code.
2013-11-09 19:05:34 +01:00
Michael Niedermayer
ef8f293472 avformat/dv: consider a header match at byte 0 to count as detection of dv in probe
This reduces the amount of data needed to identify dv

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 18:39:09 +01:00
Michael Niedermayer
e624df5dc3 mpegts: only calculate stat index when its needed during probe
40% faster probe

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 16:09:26 +01:00
Michael Niedermayer
9825b99eca avformat/mpegts: do not hardcode type used in memset()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 16:03:41 +01:00
Michael Niedermayer
76a47d66c4 avformat/dv: about 3 times faster probe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 14:46:14 +01:00
Clément Bœsch
dbb41f93c1 build: avoid stdin stall with GNU AS probing.
a758c5e added probing for various tools, such as AS. Unfortunately, GNU
AS is reading stdin with -v, and thus configure is stalled with
configure arguments such as --as=as.

Fixes Ticket #1898.
2013-11-09 12:38:12 +01:00
James Zern
eb7f7b797f riff: add VP9 fourcc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 12:13:44 +01:00
Michael Niedermayer
64f4816915 avformat/mp3dec: 4x faster probing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 01:45:24 +01:00
Michael Niedermayer
557571ff7d avformat/h261dec: dont accept invalid gobs in probe as valid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 01:12:10 +01:00
Michael Niedermayer
891f33cc70 avformat/h261dec: optimize probe
about 3 times faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 00:45:35 +01:00
Michael Niedermayer
c79c7ffc9d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avienc: drop the vfr flag.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 00:18:50 +01:00
Michael Niedermayer
9c52ab6f4f ffmpeg: treat avi as VFR in framerate conversion code
It can be debated if avi is vfr or cfr, it can be either depending
on the definition of vfr and cfr.
This commit ensures that avi is treated correctly independent of
the AVFMT_VARIABLE_FPS value.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-09 00:09:32 +01:00
Michael Niedermayer
ac4447b6ec Merge commit '5462dde1947e0ecfcb2db99ae29ce9dee8933b45'
* commit '5462dde1947e0ecfcb2db99ae29ce9dee8933b45':
  metasound: Fix error message argument

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 23:37:14 +01:00
Michael Niedermayer
a26e83da6c avformat/mxfdec: optimize probing
about 71 times faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 22:33:52 +01:00
Michael Niedermayer
6b4f58d448 tools/probetest: also print the time the probe functions needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 22:33:52 +01:00
Michael Niedermayer
32584667ea tools/probetest: use named constant for the maximum number of formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 22:33:52 +01:00
Anton Khirnov
d42db44cfe avienc: drop the vfr flag.
AVI does not really support vfr properly, only by padding with null
packets.
2013-11-08 21:02:29 +01:00
Paul B Mahol
b8f276e645 avcodec/mimic: use av_freep() and reset swap_buf_size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-08 19:24:17 +00:00
Paul B Mahol
2145e8f193 avcodec/vmdav: use av_freep() and reset unpack_buffer_size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-08 19:24:17 +00:00
Michael Niedermayer
4f0e85517f avformat/icodec: reduce score returned on probing
The ico probe function is pretty weak just checking a few bytes for being 0, 1 or not 0

Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 20:10:33 +01:00
Michael Niedermayer
e93523a06f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h263dsp: K&R formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 18:02:50 +01:00
Michael Niedermayer
a30f7918b5 Merge commit '0338c396987c82b41d322630ea9712fe5f9561d6'
* commit '0338c396987c82b41d322630ea9712fe5f9561d6':
  dsputil: Split off H.263 bits into their own H263DSPContext

Conflicts:
	configure
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 17:42:56 +01:00
Michael Niedermayer
f8a9cf7704 avformat/lvfdec: check stream count during probing
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 17:03:42 +01:00
Kostya Shishkov
5462dde194 metasound: Fix error message argument
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-08 16:50:17 +01:00
Michael Niedermayer
4c439f6e39 avformat/idcin: check the decompressed frame size during probing
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 15:19:35 +01:00
Diego Biurrun
cb56c3961b h263dsp: K&R formatting cosmetics
Also remove array element numbering comments.
2013-11-08 12:41:24 +01:00
Diego Biurrun
0338c39698 dsputil: Split off H.263 bits into their own H263DSPContext 2013-11-08 12:40:47 +01:00
Hendrik Leppkes
019247bdc3 avformat/mov: only force parsing for video tracks if stss is empty
Fixes playback of some AAC streams, which are otherwise mangled by the
parser, and stss is typically only valid for video anyway.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 11:31:02 +01:00
Michael Niedermayer
b7fea3daab libavcodec/dvdsubdec: remove exit() call in debug code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-08 00:42:50 +01:00
Michael Niedermayer
48f37664a8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Remove #undefs for formerly forbidden system functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 23:39:31 +01:00
Michael Niedermayer
175e689cc5 avfilter/graphparser: zero filter_ctx in case of deallocation in create_filter()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 23:38:44 +01:00
Michael Niedermayer
ec8e68c763 Merge commit 'cffecc0e7ebd642afaa1fb9f56fab1fcc283293c'
* commit 'cffecc0e7ebd642afaa1fb9f56fab1fcc283293c':
  avfilter/graphparser: Directly free filter memory if initialization fails

Conflicts:
	libavfilter/graphparser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 23:05:26 +01:00
Lenny Wang
7c02a77d25 avfilter/unsharp: added optimized opencl kernels
Reviewed-by: Wei Gao <highgod0401@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 22:31:43 +01:00
Dave Yeo
f9c6044a6f Fix compilation with os2threads
Signed-off-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 20:46:44 +01:00
Michael Niedermayer
3836af4765 avformat/mpegvideodec: check seq headers more completely during probing
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 20:39:08 +01:00
Clément Bœsch
3bcd5c1e31 avformat/img2enc: simplify split planes extension selection. 2013-11-07 20:30:43 +01:00
Clément Bœsch
3e036d407d doc/muxers: document animated GIF muxer. 2013-11-07 20:30:43 +01:00
Clément Bœsch
c37b0daf33 avformat/gif: fix final_delay unit in documentation. 2013-11-07 20:30:43 +01:00
Clément Bœsch
3c5e6e7635 avformat/img2enc: reindent after previous commit. 2013-11-07 20:30:43 +01:00
Clément Bœsch
f70db22999 avformat/image2: allow muxing gif files.
Fixes Ticket #2936.
2013-11-07 20:30:43 +01:00
Paul B Mahol
d9d752cfb5 avfilter/af_aecho: free input frame after it is being used
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-07 17:45:47 +00:00
Paul B Mahol
9521236881 avcodec/libfdk-aacdec: remove redundant log messages
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-07 14:55:35 +00:00
Paul B Mahol
315e3cf047 avcodec/hnm4video: remove redundant log message
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-07 14:04:21 +00:00
Michael Niedermayer
cbe84b4ffa avformat/astdec: sanity check channels & sample rate
Fixes probetest failure

Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-07 14:58:34 +01:00
kowalsky
4684539c91 avformat/hls: fixed bug where custom http headers weren't kept for hls streams
See: https://trac.ffmpeg.org/ticket/3024
2013-11-07 12:29:45 +01:00
Diego Biurrun
86f910806b Remove #undefs for formerly forbidden system functions
The macros forbidding the system functions no longer exist, obviating
the need for the #undefs.
2013-11-07 00:26:15 +01:00
Michael Niedermayer
ea6331b2c6 avfilter/af_aresample: Calculate output buffer size more precisely.
Fixes accumulation of data in case of significant silence injections

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 23:54:02 +01:00
Diego Biurrun
cffecc0e7e avfilter/graphparser: Directly free filter memory if initialization fails 2013-11-06 22:06:15 +01:00
Michael Niedermayer
3e6b7bbce5 avformat/segafilm: check 2nd tag
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 12:56:42 +01:00
Michael Niedermayer
ff1d81b08c avformat/swfdec: check version and size during probing
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 12:44:02 +01:00
Michael Niedermayer
7b7697646b avformat/rsd: increase probe score, as misdetections are fixed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 11:57:57 +01:00
Michael Niedermayer
50a3c4c5d2 avformat/rsd: Check channels and sample_rate fields
Fixes probetest failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 11:57:57 +01:00
Michael Niedermayer
a35e30b672 avformat/libgme: decrease score by 1, fixes probetest failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 11:57:48 +01:00
Michael Niedermayer
1b3d3a9c87 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: add smarter method for determining video picture duration
  ffplay: add frame duration estimated from frame rate to VideoPicture
  ffplay: avoid code duplication in AVFILTER enabled and disabled case

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-06 10:59:03 +01:00
Michael Niedermayer
66872161cb avutil/common: error out with clear message if __STDC_CONSTANT_MACROS is not defined with c++
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 22:10:02 +01:00
Michael Niedermayer
6cfaf9cde8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Move -Wno-maybe-uninitialized check into gcc section

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 21:58:44 +01:00
Marton Balint
5ecfcc7dff ffplay: add smarter method for determining video picture duration
- consider it an invalid PTS when the next PTS value is the same as the current one
- in case of invalid or unknown PTS, return vp->duration

This fixes ffplay part of ticket #3005.

Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-05 21:27:07 +01:00
Marton Balint
61dd319770 ffplay: add frame duration estimated from frame rate to VideoPicture
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-05 21:27:07 +01:00
Marton Balint
105d4748cf ffplay: avoid code duplication in AVFILTER enabled and disabled case
Signed-off-by: Marton Balint <cus@passwd.hu>
2013-11-05 21:27:06 +01:00
Clément Bœsch
87434cf373 avcodec/vp9: add ff_vp9_idct_idct_{4x4,8x8}_ssse3().
1789 decicycles in idct_idct_4x4_add_c, 262136 runs, 8 skips
1839 decicycles in idct_idct_4x4_add_c, 524270 runs, 18 skips
1864 decicycles in idct_idct_4x4_add_c, 1048548 runs, 28 skips

529 decicycles in ff_vp9_idct_idct_4x4_add_ssse3, 262138 runs, 6 skips
516 decicycles in ff_vp9_idct_idct_4x4_add_ssse3, 524282 runs, 6 skips
474 decicycles in ff_vp9_idct_idct_4x4_add_ssse3, 1048565 runs, 11 skips

(~3.9x faster)

7726 decicycles in idct_idct_8x8_add_c, 1048433 runs, 143 skips
7732 decicycles in idct_idct_8x8_add_c, 2096882 runs, 270 skips
7731 decicycles in idct_idct_8x8_add_c, 4193772 runs, 532 skips

1145 decicycles in ff_vp9_idct_idct_8x8_add_ssse3, 1048549 runs, 27 skips
1137 decicycles in ff_vp9_idct_idct_8x8_add_ssse3, 2097097 runs, 55 skips
1086 decicycles in ff_vp9_idct_idct_8x8_add_ssse3, 4194188 runs, 116 skips

(~7.1x faster)

Overall decode time before commit:
  16.48s user 0.03s system 99% cpu 16.526 total
  16.54s user 0.01s system 99% cpu 16.566 total
  16.46s user 0.03s system 99% cpu 16.511 total

Overall decode time after commit:
  16.34s user 0.02s system 99% cpu 16.378 total
  16.28s user 0.02s system 99% cpu 16.315 total
  16.32s user 0.03s system 99% cpu 16.366 total

Tested on i7 920 with 40s 1080p footage.
2013-11-05 19:25:40 +01:00
Lenny Wang
89a3be8921 avfilter/opencl: compile kernels separately
Reviewed-by: Wei Gao <highgod0401@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 14:29:55 +01:00
Lenny Wang
6682554790 avutil/opencl: compile kernels separately
Reviewed-by: Wei Gao <highgod0401@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 14:29:55 +01:00
Paul B Mahol
e3f384b428 avcodec/mss2: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 13:19:30 +00:00
Paul B Mahol
82f5c4d737 avcodec/flashsv: use av_freep() for tmpblock
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 13:19:30 +00:00
Paul B Mahol
b79f543c58 avcodec/mss1: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 13:19:30 +00:00
Stefano Sabatini
2a6c95d85f lsws/utils: introduce scale_algorithms array
Allow some dumb factorizations, slightly decrease spaghetti factor.
2013-11-05 14:01:53 +01:00
Paul B Mahol
c3311515d5 avcodec/flashsv: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:44:52 +00:00
Paul B Mahol
ad1dfe04a1 avcodec/tscc2: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:44:20 +00:00
Paul B Mahol
290be34a74 avcodec/brender_pix: stop calling av_image_check_size() twice
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:37:52 +00:00
Paul B Mahol
6e094f7026 avcodec/flashsv: stop using deprecated avcodec_set_dimensions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:36:24 +00:00
Paul B Mahol
22c00962c2 avcodec/flashsv: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:31:18 +00:00
Paul B Mahol
1a244c22ea avcodec/brender_pix: stop using deprecated avcodec_set_dimensions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:26:58 +00:00
Paul B Mahol
7722ae35eb avcodec/c93: stop using deprecated avcodec_set_dimensions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-05 12:24:39 +00:00
Diego Biurrun
92352a94c1 configure: Move -Wno-maybe-uninitialized check into gcc section
As another example of bizarre compiler behavior clang groks the
-Wmaybe-uninitialized option, but not -Wno-maybe-uninitialized
and spews a warning for every file that gets compiled.
2013-11-05 12:22:48 +01:00
Michael Niedermayer
be74cb5159 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avfilter/buffer: Suppress deprecation warning for avfilter_unref_buffer

Conflicts:
	libavfilter/buffer.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 12:17:35 +01:00
Michael Niedermayer
6a7de2361b Merge commit '82c86d0b1839b01b3cd0dd848fb6416ff21506dd'
* commit '82c86d0b1839b01b3cd0dd848fb6416ff21506dd':
  graph2dot: Add missing #include for av_get_channel_layout_string()

See: 1acd2f6ba7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 12:15:44 +01:00
Michael Niedermayer
de970d49fe Merge commit '48715285f69d70879353737d7bed049f89f58096'
* commit '48715285f69d70879353737d7bed049f89f58096':
  graph2dot: Fix use of deprecated API

See: 59360cd456
See: ecade984ac
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 12:07:32 +01:00
Michael Niedermayer
e1459f4b0b Merge commit '70cbf33405f50dfaf77e85f382a188acf17dc71a'
* commit '70cbf33405f50dfaf77e85f382a188acf17dc71a':
  vdpau: Add missing #includes to fix standalone header compilation

Conflicts:
	libavcodec/vdpau_internal.h

Not completely merged as this would break use of vdpau.h from C++

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 11:14:29 +01:00
Michael Niedermayer
934e489ee8 Merge commit 'e2b5b097898c9155f4bdff4d83cdc54d5eef6930'
* commit 'e2b5b097898c9155f4bdff4d83cdc54d5eef6930':
  x86: rv40dsp: Use PAVGB instruction macro where appropriate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 10:26:07 +01:00
Michael Niedermayer
04047b6166 avformat/http: print http headers at AV_LOG_DEBUG level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-05 01:38:08 +01:00
Stefano Sabatini
246e323de8 lsws/utils: fix typo 2013-11-05 00:04:17 +01:00
Stefano Sabatini
988e2e7c1c lavfi/ladspa: cast return value of av_x_if_null to char*, fix warnings 2013-11-05 00:04:17 +01:00
Diego Biurrun
7d1a68e95b avfilter/buffer: Suppress deprecation warning for avfilter_unref_buffer
The function is used in a block of code that is deprecated anyway.
2013-11-04 23:04:10 +01:00
Diego Biurrun
82c86d0b18 graph2dot: Add missing #include for av_get_channel_layout_string() 2013-11-04 23:04:10 +01:00
Diego Biurrun
48715285f6 graph2dot: Fix use of deprecated API 2013-11-04 23:04:10 +01:00
Diego Biurrun
70cbf33405 vdpau: Add missing #includes to fix standalone header compilation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-04 22:54:55 +01:00
Michael Niedermayer
bd75651378 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  omadec: loosen format probing constraints

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 22:46:22 +01:00
Michael Niedermayer
aeaca3816c Merge commit '1c736bedd9891501960ebac0f7c05eb60225e947'
* commit '1c736bedd9891501960ebac0f7c05eb60225e947':
  omadec: check GEOB sizes against buffer size

Conflicts:
	libavformat/omadec.c

See: e74fa25cb9
See: 91e72e3514
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 22:08:59 +01:00
Michael Niedermayer
b1f213a83a Merge commit '97f50e92b5cf3b47a76f75d76ed4340e822030db'
* commit '97f50e92b5cf3b47a76f75d76ed4340e822030db':
  omadec: Fix wrong number of array elements

See: 4f5d1468f5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:59:55 +01:00
Michael Niedermayer
4b4a7fcb07 Merge commit 'e73996954d8e00117056dcefb38ef3d4d2f37967'
* commit 'e73996954d8e00117056dcefb38ef3d4d2f37967':
  filtfmts-test: Fix use of deprecated API

Conflicts:
	libavfilter/filtfmts.c

See: f12174c8ce
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:52:46 +01:00
Michael Niedermayer
2865c1b905 Merge commit '3ef9b7ab95cc703b67a8b658dca45c80df0aaa66'
* commit '3ef9b7ab95cc703b67a8b658dca45c80df0aaa66':
  hevc_ps: Use AV_PIX_FMT_YUVJ420P if YUV 4:2:0 8-bit full scale

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:43:27 +01:00
Michael Niedermayer
b906d04881 Merge commit '885ec9242554ad25922258a595ec5e317922a412'
* commit '885ec9242554ad25922258a595ec5e317922a412':
  hevc: Use parsed VUI colorimetry in avcodec

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:37:34 +01:00
Michael Niedermayer
be41f21a3d Merge commit 'cd8f772d0678a90957f4dfd5ce51af9d22e3f212'
* commit 'cd8f772d0678a90957f4dfd5ce51af9d22e3f212':
  lavc: Add colorimetry values for BT.2020, other non-included ones

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:26:34 +01:00
Michael Niedermayer
b84cd22a66 Merge commit '446e37dc97e533e37f6aa0a11355124207e3a7f7'
* commit '446e37dc97e533e37f6aa0a11355124207e3a7f7':
  vf_fieldorder: remove superfluous get_video_buffer

Conflicts:
	libavfilter/vf_fieldorder.c

See: 9b35bee696
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:19:25 +01:00
Diego Biurrun
e2b5b09789 x86: rv40dsp: Use PAVGB instruction macro where appropriate 2013-11-04 21:14:39 +01:00
David Goldwich
0a7fef39fc omadec: loosen format probing constraints
Imporoves detection of some files in the wild:

- ID3v2 a.k.a. "ea3" header is optional.
- Version and flags in ID3v2 header are unspecified.

Signed-off-by: David Goldwich <david.goldwich@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-04 18:43:18 +01:00
Michael Niedermayer
1c736bedd9 omadec: check GEOB sizes against buffer size
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: David Goldwich <david.goldwich@gmail.com>
CC:libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-04 18:43:03 +01:00
Michael Niedermayer
97f50e92b5 omadec: Fix wrong number of array elements
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: David Goldwich <david.goldwich@gmail.com>
CC:libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-04 18:38:01 +01:00
Diego Biurrun
e73996954d filtfmts-test: Fix use of deprecated API
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-04 16:20:44 +01:00
Yusuke Nakamura
3ef9b7ab95 hevc_ps: Use AV_PIX_FMT_YUVJ420P if YUV 4:2:0 8-bit full scale
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-04 16:19:53 +01:00
Jan Ekström
885ec92425 hevc: Use parsed VUI colorimetry in avcodec
Also limit the parsed VUI values to known valid ones.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-04 16:03:11 +01:00
Jan Ekström
cd8f772d06 lavc: Add colorimetry values for BT.2020, other non-included ones
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-04 15:39:33 +01:00
Michael Niedermayer
85cabf1ca9 avutil: add av_fopen_utf8()
fopen() on windows uses UTF-16, we use UTF-8 everywhere, this
function bridges the gap by using avpriv_open()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 15:38:52 +01:00
Michael Niedermayer
d0ac60730d avfilter/vf_scale: add ov/hsub
Suggested-by: divVerent
Reviewed-by: Stefano
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 15:23:26 +01:00
Vittorio Giovara
446e37dc97 vf_fieldorder: remove superfluous get_video_buffer 2013-11-04 14:37:06 +01:00
Clément Bœsch
fb10b43fc4 doc/examples: rename demuxing to demuxing_decoding.
That example shows how the decoding process works, not only the
demuxing.
2013-11-04 12:53:06 +01:00
Clément Bœsch
d10b1a200d doc/examples/demuxing: show how to use the reference counting system. 2013-11-04 12:53:06 +01:00
Michael Niedermayer
405ceb1812 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacdec: Set the profile during decoding

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 11:51:13 +01:00
Michael Niedermayer
ab71be0912 Merge commit 'da6506c607eda585ba4b15430cf3c9a2ce09c3a9'
* commit 'da6506c607eda585ba4b15430cf3c9a2ce09c3a9':
  lavc: move AVCodecContext.pkt to AVCodecInternal

Conflicts:
	libavcodec/internal.h
	libavcodec/rawdec.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 11:41:55 +01:00
Michael Niedermayer
3fc26d8073 Merge commit '38ecc3702dabbea09230f6d6333f59e74f5d1c12'
* commit '38ecc3702dabbea09230f6d6333f59e74f5d1c12':
  pthread: store thread contexts in AVCodecInternal instead of AVCodecContext

Conflicts:
	libavcodec/internal.h
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 11:14:38 +01:00
Michael Niedermayer
2a7cbc29a8 Merge commit 'daa7a1d4431b6acf1f93c4a98b3de123abf4ca18'
* commit 'daa7a1d4431b6acf1f93c4a98b3de123abf4ca18':
  pthread_slice: rename ThreadContext -> SliceThreadContext

Conflicts:
	libavcodec/pthread_slice.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 11:05:52 +01:00
Michael Niedermayer
4eea41cba1 Merge commit 'cc14ee03a7b91c69343f8d60c9e089a1950eeadb'
* commit 'cc14ee03a7b91c69343f8d60c9e089a1950eeadb':
  lavc: split slice and frame threading functions into separate files

Conflicts:
	libavcodec/Makefile
	libavcodec/pthread.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 10:44:34 +01:00
Michael Niedermayer
3d4dc43259 Merge commit '5cd6513f5be14b9744783d3d9e853d3f11065e93'
* commit '5cd6513f5be14b9744783d3d9e853d3f11065e93':
  pthread: drop avcodec_ prefixes from static functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 09:55:24 +01:00
Michael Niedermayer
f3758e8b80 Merge commit '694d997afe07ec619e61e1c614733796dd01a52b'
* commit '694d997afe07ec619e61e1c614733796dd01a52b':
  x86: hpeldsp: Use PAVGB instruction macro where necessary

See: 074155360d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 09:49:12 +01:00
Gian-Carlo Pascutto
454959a5aa aacdec: Set the profile during decoding
Previously the profile would not be set if the bitstream needs
to be decoded to know the profile.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-04 08:51:26 +01:00
Anton Khirnov
da6506c607 lavc: move AVCodecContext.pkt to AVCodecInternal
It's a private field, not meant to be accessed from outside lavc.
2013-11-04 08:51:26 +01:00
Anton Khirnov
38ecc3702d pthread: store thread contexts in AVCodecInternal instead of AVCodecContext
It's a private field, it should not be visible to callers.

Deprecate AVCodecContext.thread_opaque
2013-11-04 08:51:26 +01:00
Anton Khirnov
daa7a1d443 pthread_slice: rename ThreadContext -> SliceThreadContext
This should prevent confusion with frame threading.
2013-11-04 08:51:26 +01:00
Anton Khirnov
cc14ee03a7 lavc: split slice and frame threading functions into separate files 2013-11-04 08:51:26 +01:00
Anton Khirnov
5cd6513f5b pthread: drop avcodec_ prefixes from static functions 2013-11-04 08:51:26 +01:00
Ronald S. Bultje
6cf0c4107f Put vp9_scans and vp9_scans_nb in ro_data.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 02:32:18 +01:00
Michael Niedermayer
e135166206 Merge remote-tracking branch 'lukaszmluki/master'
* lukaszmluki/master:
  lavd/pulse: add ff_ prefix and fix param type
  lavd/pulse_audio_enc: fix flush return code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 02:08:48 +01:00
Mikulas Patocka
694d997afe x86: hpeldsp: Use PAVGB instruction macro where necessary
Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-04 01:29:23 +01:00
Michael Niedermayer
1a4ffa5b13 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Remove redundant OBJS declaration intended for programs

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 01:20:46 +01:00
Lukasz Marek
babf20a215 lavd/pulse: add ff_ prefix and fix param type
Add ff_ prefix for internal API function.
Change type of param from int into enum AVCodecID as it is more specific.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-11-04 00:47:00 +01:00
Lukasz Marek
398844f093 lavd/pulse_audio_enc: fix flush return code
Successful flushing is reported by returning 1 instead of 0.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-11-04 00:23:39 +01:00
wm4
3220a894f7 http: add hack to make streams served by MediaGateway not seekable
These streams are reported as seekable, but all tests show they are not,
and the server merely pretends the streams are seekable. The server
responds with:

    content-range: bytes 0-1999999999/2000000000

Range requests seem to be correctly answered, but the actual data
returned at the same offset is different. Assume this is a bug in the
server software. The server identifies itself as:

    Server: MediaGateway 3.5.2-001

Add a hack that checks the server name, and disables seeking in this
case.

Test URL: http://8283.live.streamtheworld.com:80/CBC_R1_VCR_H_SC

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 22:57:56 +01:00
Michael Niedermayer
336a1902d6 avcodec/ffv1enc: Check high bpp RGB against coder type too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 22:18:47 +01:00
Michael Niedermayer
8b73a3f6f6 avformat/utils: never decrease has_b_frames in compute_pkt_fields()
The intent of the original check was to increase has_b_frames when
it was incorrectly set to 0. Later codecs allowed larger values

Found-by: divVerent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 21:36:10 +01:00
Mikulas Patocka
074155360d avcodec/x86/hpeldsp: fix crash on AMD K6-3+
There are instructions pavgb and pavgusb. Both instructions do the same
operation but they have different enconding. Pavgb exists in SSE (or
MMXEXT) instruction set and pavgusb exists in 3D-NOW instruction set.

livavcodec uses the macro PAVGB to select the proper instruction. However,
the function avg_pixels8_xy2 doesn't use this macro, it uses pavgb
directly.

As a consequence, the function avg_pixels8_xy2 crashes on AMD K6-2 and
K6-3 processors, because they have pavgusb, but not pavgb.

This bug seems to be introduced by commit
71155d7b41, "dsputil: x86: Convert mpeg4
qpel and dsputil avg to yasm"

Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 19:49:11 +01:00
Diego Biurrun
8b63ebcb03 build: Remove redundant OBJS declaration intended for programs 2013-11-03 18:52:11 +01:00
Stefano Sabatini
535d58959d ffmpeg: add verbose consistency checks in case of filtering inconsistent options
In particular, warn in case -filter and streamcopy is used at the same
time, fix trac ticket #678.
2013-11-03 18:05:43 +01:00
Stefano Sabatini
cfe7185a92 lavc: remove dead FF_API_OLD_TIMECODE API 2013-11-03 17:58:44 +01:00
Stefano Sabatini
a689560428 lavc: remove dead FF_API_AVCODEC_OPEN API 2013-11-03 17:58:44 +01:00
Stefano Sabatini
d3397c3e82 lavc: remove dead FF_API_ALLOC_CONTEXT API 2013-11-03 17:58:44 +01:00
Paul B Mahol
3d9fc5c6ad avfilter/vf_aspect: remove dupe constants setup
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-03 16:39:22 +00:00
Michael Niedermayer
73e7d8f5f0 MAINTAINERS: add vp9 maintainers
Suggested-by: BBB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 14:45:18 +01:00
Michael Niedermayer
2ed562d5fa Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
  lavfi/af_pan: support unknown layouts on input.
  lavfi/af_pan: support unknown layouts on output.
  lswr: fix assert failure on unknown layouts.
  lavfi: parsing helper for unknown channel layouts.
  lavfi/avfiltergraph: do not reduce incompatible lists.
  lavfi/avfiltergraph: suggest a solution when format selection fails.
  lavd/lavfi: support unknown channel layouts.
  lavf/wavenc: check for a single stream.
  lavd/alsa: add stream validation
  lavd/alsa: fix timestamp calculation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 13:57:05 +01:00
Michael Niedermayer
91a6975761 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmpproto: Reorder conditions to help dead code elimination

See: 23e9e5c7d9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 13:38:33 +01:00
Stefano Sabatini
90c329cc25 lavc/version.h: remove empty line 2013-11-03 13:13:24 +01:00
Stefano Sabatini
5a6e6dcaa4 lavc: drop deprecated audio_convert API at the next major bump
Also make AVCODEC_RESAMPLE API removal depends on its presence, since its
code depends on it as well.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-03 13:13:24 +01:00
Michael Niedermayer
cf49d5907a avcodec/ansi: set w/h correctly at the top
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 13:00:10 +01:00
Michael Niedermayer
b568eeba75 Merge commit '3ea5f64ffff0a51f62922efd2e2bc231b13b2179'
* commit '3ea5f64ffff0a51f62922efd2e2bc231b13b2179':
  ansi: fix possible use of uninitialized variables

Conflicts:
	libavcodec/ansi.c

Only partially merged, ffmpeg is not affected by this.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 12:58:54 +01:00
Michael Niedermayer
b6413cdc02 Merge commit 'c0bba95c2363641d3297b3852b2ece1474cda295'
* commit 'c0bba95c2363641d3297b3852b2ece1474cda295':
  wtv: fix variable sign in format

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 12:48:28 +01:00
Michael Niedermayer
08e7644b68 Merge commit '5858a67f135a7395c548482c73cf3d39bcdd3022'
* commit '5858a67f135a7395c548482c73cf3d39bcdd3022':
  attributes: disable flatten on llvm/clang

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 12:38:13 +01:00
Michael Niedermayer
7edc9240a8 Merge commit '3a14b160bd442794c6a16a6a883adb547550e847'
* commit '3a14b160bd442794c6a16a6a883adb547550e847':
  vf_scale: make the dar variable return the DAR.

Conflicts:
	Changelog
	doc/filters.texi
	libavfilter/version.h

See: 61d55fda2b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 12:31:21 +01:00
Michael Niedermayer
a75bf4e5c1 Merge commit '34a0ac41a880039c7fb4b3abce10d8e2ce48fac7'
* commit '34a0ac41a880039c7fb4b3abce10d8e2ce48fac7':
  vf_aspect: support variables in evaluating the aspect ratios

Conflicts:
	Changelog
	doc/filters.texi
	libavfilter/vf_aspect.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 11:54:19 +01:00
Vittorio Giovara
d763978583 rtmpproto: Reorder conditions to help dead code elimination
This makes sure that these branches are eliminated properly
with clang with optimizations disabled.
2013-11-03 11:51:41 +01:00
Vittorio Giovara
3ea5f64fff ansi: fix possible use of uninitialized variables 2013-11-03 11:51:40 +01:00
Vittorio Giovara
c0bba95c23 wtv: fix variable sign in format 2013-11-03 11:51:40 +01:00
Vittorio Giovara
5858a67f13 attributes: disable flatten on llvm/clang 2013-11-03 11:51:40 +01:00
Nicolas George
7b0a587393 lavfi/af_pan: support unknown layouts on input.
Fix trac ticket #2899.
2013-11-03 10:30:50 +01:00
Nicolas George
4e9adc9b73 lavfi/af_pan: support unknown layouts on output. 2013-11-03 10:30:47 +01:00
Nicolas George
4a640a6ac8 lswr: fix assert failure on unknown layouts. 2013-11-03 10:30:37 +01:00
Nicolas George
6e2473edfd lavfi: parsing helper for unknown channel layouts.
Make ff_parse_channel_layout() accept unknown layouts too.
2013-11-03 10:30:25 +01:00
Nicolas George
d300f5f6f5 lavfi/avfiltergraph: do not reduce incompatible lists.
A list of "all channel layouts" but not "all channel counts"
can not be reduced to a single unknown channel count.
2013-11-03 10:30:16 +01:00
Nicolas George
f775eb3fb4 lavfi/avfiltergraph: suggest a solution when format selection fails.
Format selection can fail if unknown channel layouts are used
with filters that do not support it.
2013-11-03 10:30:08 +01:00
Nicolas George
863fb11f63 lavd/lavfi: support unknown channel layouts. 2013-11-03 10:29:53 +01:00
Nicolas George
eeb975f5cd lavf/wavenc: check for a single stream.
Fix trac ticket #3110.
2013-11-03 10:29:27 +01:00
Lukasz Marek
e56d1a1203 lavd/alsa: add stream validation
Don't trust provided streams.
Return with error when stream count is not 1 or
provided stream is not an audio stream.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-11-03 10:28:15 +01:00
Lukasz Marek
6ac9afd16e lavd/alsa: fix timestamp calculation
Current implementation didn't include duration of
last processed packet.
Device may return negative timestamps without
this correction.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2013-11-03 10:28:15 +01:00
Michael Niedermayer
8a701ef7dd avcodec/hevc_sei: Fix null dereference in decode_pic_timing()
Fixes Ticket3106

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 02:19:28 +01:00
Michael Niedermayer
63a37d0e1e avcodec/hevc_sei: check active_seq_parameter_set_id validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 02:13:55 +01:00
Michael Niedermayer
6e87dfb589 mpegvideo: reduce whitespace differences to libav
This excludes many changes that worsen readability

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 01:24:01 +01:00
Michael Niedermayer
4fb1221e66 h264: reduce whitespace differences to libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 01:16:31 +01:00
James Zern
23c03ac91e libvpxenc: allow qmax of 0
this is valid for both vp8 & vp9 and necessary for lossless in the
latter

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 01:00:16 +01:00
Timothy Gu
50f52a5498 avutil/xtea: add Doxy @file and group
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 00:59:38 +01:00
Timothy Gu
624672fcce avutil/adler32: add Doxy group
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 00:58:31 +01:00
James Zern
517afd72c6 libvpxenc: add VP9 options
same as their vpxenc equivalents:
-lossless
-tile-columns
-tile-rows
-frame-parallel

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 00:35:15 +01:00
James Zern
e87043bb1f MAINTAINERS: add myself for libvpx*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 00:34:04 +01:00
Michael Niedermayer
1fb3b494fa ffv1enc: store 2pass statistics at the end
This reduces their size from O(n) to O(1)

Fixes Ticket3078

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 22:52:52 +01:00
Michael Niedermayer
8d88ed9a1f avcodec/ffv1enc: pass through pts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 22:52:52 +01:00
Rudolf Polzer
3a14b160bd vf_scale: make the dar variable return the DAR.
Before, it just returned width/height. Correct is width/height*sar.

That way it is consistent with DAR as in probe output and setdar.

Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-02 21:16:29 +01:00
Rudolf Polzer
34a0ac41a8 vf_aspect: support variables in evaluating the aspect ratios
Example: -vf setsar=sar="sar*9/10"

Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-02 21:14:08 +01:00
James Zern
a8bcc956fd libvpxenc: split vp8/vp9 options array
the current options are left for both to provide command line compatibility

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 20:35:12 +01:00
Timothy Gu
d3211cfaed avcodec/libmp3lame: add ABR support
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 18:44:20 +01:00
Michael Niedermayer
67d1d06225 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  os_support: Add #endif comments for better readability

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 18:37:21 +01:00
Michael Niedermayer
1654e64bba Merge commit 'c68d4c230ad8ca85af3999a6af8e582c43620d58'
* commit 'c68d4c230ad8ca85af3999a6af8e582c43620d58':
  mpeg4video_parser: K&R formatting cosmetics

Conflicts:
	libavcodec/mpeg4video_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 18:31:41 +01:00
Michael Niedermayer
a805e2e653 avcodec/hevc: add "apply_defdispwin" alias for compatibilty with 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 18:24:24 +01:00
Michael Niedermayer
35594c48ca libavcodec/hevc: random cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 17:28:44 +01:00
Michael Niedermayer
2c4f573696 libavcodec/hevc: random cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 15:32:15 +01:00
Michael Niedermayer
e877455ff9 libavcodec/hevcdsp_template: whitespaces to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 15:11:41 +01:00
Michael Niedermayer
42dbe2d9b1 libavcodec/hevcdsp_template: random cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 14:42:57 +01:00
Michael Niedermayer
69b3668b83 libavcodec/hevc: indention related cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 14:36:59 +01:00
Michael Niedermayer
6a84d17bd7 libavcodec/hevcdsp_template: cosmetics to reduce diff to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 14:30:22 +01:00
Michael Niedermayer
b23692b3a8 libavcodec/hevc: reduce whitespace differences to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 14:10:21 +01:00
Diego Biurrun
5928b29f53 os_support: Add #endif comments for better readability 2013-11-02 13:57:03 +01:00
Michael Niedermayer
1a6948fa70 libavcodec/hevc: reduce bracket differences to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 13:09:31 +01:00
Michael Niedermayer
ce7f1c76bd avcodec/hevc: more whitespaces to reduce difference to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 12:33:54 +01:00
Vittorio Giovara
c68d4c230a mpeg4video_parser: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-02 12:08:49 +01:00
Michael Niedermayer
641358addc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Add an HDS live fragmenting muxer

Conflicts:
	Changelog
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 10:38:03 +01:00
Michael Niedermayer
1344c04536 Merge commit 'dc6ea00cd2b91b591e6726e5bf1d5e03a4a9bdd0'
* commit 'dc6ea00cd2b91b591e6726e5bf1d5e03a4a9bdd0':
  mpeg4video: K&R formatting cosmetics

Conflicts:
	libavcodec/mpeg4video.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 10:30:30 +01:00
Michael Niedermayer
0b82fdcc46 Merge commit '037fea388e0df2a22441bc1ed86794152161baf1'
* commit '037fea388e0df2a22441bc1ed86794152161baf1':
  flashsv: K&R formatting cosmetics

Conflicts:
	libavcodec/flashsv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 10:19:12 +01:00
Michael Niedermayer
7146eacfc5 Merge commit '1700b4e678ed329611a16b20d11e64b7abda4839'
* commit '1700b4e678ed329611a16b20d11e64b7abda4839':
  x86: vp8dsp: Split loopfilter code into a separate file

Conflicts:
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 10:13:14 +01:00
Michael Niedermayer
0db04ca01d Merge commit '056fd4fe65e70b4dbca97bcf7faf8b7ce3df993f'
* commit '056fd4fe65e70b4dbca97bcf7faf8b7ce3df993f':
  configure: Properly check for availability of -Wno-foo warning flags

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 10:04:07 +01:00
Michael Niedermayer
b4f95c96a5 Merge commit '23157d72b565e0228fec97f1eb059d4f8021a260'
* commit '23157d72b565e0228fec97f1eb059d4f8021a260':
  configure: Split test_cflags function off from check_cflags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 09:55:47 +01:00
Martin Storsjö
435214a757 Add an HDS live fragmenting muxer
HDS fragments basically are FLV fragments wrapped in an ISO
media mdat atom.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-02 10:51:00 +02:00
Michael Niedermayer
02223f4dc4 Merge commit 'd1c229cdbc07ef8eb703d68d1c5b509baee85245'
* commit 'd1c229cdbc07ef8eb703d68d1c5b509baee85245':
  lavf: do not use int to store an int64

Conflicts:
	libavformat/utils.c

See: ad56535dd1
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 09:48:34 +01:00
Michael Niedermayer
525289ed26 Merge commit '57070b1468edc6ac8cb3696c817f3c943975d4c1'
* commit '57070b1468edc6ac8cb3696c817f3c943975d4c1':
  flashsv: Check diff_start diff_height values

Conflicts:
	libavcodec/flashsv.c

See: 880c73cd76
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 09:39:51 +01:00
Michael Niedermayer
77c33424c1 Merge commit '4a64e67988dd01005efb1ae831bff14c1656b573'
* commit '4a64e67988dd01005efb1ae831bff14c1656b573':
  flashsv: Refactor a little

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 09:33:34 +01:00
Michael Niedermayer
8183e33225 h264_refs: use named constant for setting frame_recovered
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 09:31:12 +01:00
Michael Niedermayer
647adc4290 h264: factor "if(h->sei_recovery_frame_cnt >= 0)" out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 01:02:21 +01:00
Michael Niedermayer
f578e5d937 avcodec/hevc: Adjust white-spaces to reduce difference to 064698d381
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 00:44:54 +01:00
Mickaël Raulet
38612379bf hevc: fix temporal_id(cherry picked from commit 5eac0df49d33bef7f3ffc5efde19839dddb554e8)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 00:44:54 +01:00
Vittorio Giovara
dc6ea00cd2 mpeg4video: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-01 22:53:48 +01:00
Luca Barbato
037fea388e flashsv: K&R formatting cosmetics
Also improve some log message wording/spelling.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-01 22:32:53 +01:00
Diego Biurrun
1700b4e678 x86: vp8dsp: Split loopfilter code into a separate file 2013-11-01 22:05:20 +01:00
Diego Biurrun
056fd4fe65 configure: Properly check for availability of -Wno-foo warning flags
For some weird reason gcc does not check if the -Wno disabling variants
of warning flags match existing warning flags. Instead it swallows them
silently. That is, unless other warning or error messages are generated,
because then - for some even more bizarre reason - a complaint about the
unknown disable warning flag is issued along with the error or warning
message.

Thus to check for the availability of a warning disabling option, one
needs to check for the enabling variant instead and then add the
disabling variant to CFLAGS.
2013-11-01 22:05:20 +01:00
Diego Biurrun
23157d72b5 configure: Split test_cflags function off from check_cflags
This is useful to test flags without directly adding them to CFLAGS.
2013-11-01 22:05:20 +01:00
Anton Khirnov
d1c229cdbc lavf: do not use int to store an int64 2013-11-01 21:01:32 +01:00
Paul B Mahol
0610d6e8ae avcodec/mvcdec: stop using deprecated avcodec_set_dimensions()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-01 19:05:35 +00:00
Paul B Mahol
256b986c04 avcodec/exr: stop using deprecated avcodec_set_dimensions()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-01 19:05:35 +00:00
Paul B Mahol
01507ab369 avcodec/sanm: stop using deprecated avcodec_set_dimensions()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-01 19:05:35 +00:00
Michael Niedermayer
73d887733d avcodec/tiff_common: allow count = 0 in ff_tadd_bytes_metadata()
Fixes Ticket3103

Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:49:05 +01:00
Mark Himsley
8b3964ecd1 avformat/isom: lpcm in mov default to big endian
It is my understanding that "Unless otherwise stated, all data in a
QuickTime movie is stored in big-endian byte ordering" [1] in MOV files.

I have a couple of thousand files, which technically are invalid because
their sound sample description element 4CC is 'lpcm' but its version is
0 - and "Version 0 supports only uncompressed audio in raw ('raw ') or
twos-complement ('twos') format" [2]

Because isom.c only contains a mapping for 4CC 'lpcm' to
AV_CODEC_ID_PCM_S16LE, these files have their audio decoded as LE when
it is actually BE.

This commit adds AV_CODEC_ID_PCM_S16BE as the first match for 4CC 'lpcm'.

[1]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 21
[2]
https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf
page 178

Reviewed-by: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:46:02 +01:00
Michael Niedermayer
1295377f0a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtspenc: Make sure BYE packets are sent before TEARDOWN

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:40:20 +01:00
Michael Niedermayer
57070b1468 flashsv: Check diff_start diff_height values
Fix out of array accesses.

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:38:53 +01:00
Luca Barbato
4a64e67988 flashsv: Refactor a little 2013-11-01 19:38:53 +01:00
Michael Niedermayer
04894ef32e Merge commit '9ceed7af377cea6a430d63a2f5d5cf1afe0d4f05'
* commit '9ceed7af377cea6a430d63a2f5d5cf1afe0d4f05':
  rtpenc: Add a rtpflag option for sending BYE packets when finishing

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:34:19 +01:00
Michael Niedermayer
5a7a56d7be Merge commit 'b264453de93999ea6f23e98014390af468f56146'
* commit 'b264453de93999ea6f23e98014390af468f56146':
  rtpenc: Remove some superfluous parentheses

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:33:16 +01:00
Michael Niedermayer
81c3bb78ac Merge commit 'd07b51bf0733fe58bbfa13c448775dc325463cb4'
* commit 'd07b51bf0733fe58bbfa13c448775dc325463cb4':
  aviobuf: Handle a NULL buffer in avio_close_dyn_buf

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:28:39 +01:00
Michael Niedermayer
382545ae62 Merge commit '28240a60c1b5ce276e947ba013271ec009adc078'
* commit '28240a60c1b5ce276e947ba013271ec009adc078':
  lavc: move FF_ASPECT_EXTENDED from avcodec.h to h263.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:20:02 +01:00
Michael Niedermayer
935d0ee08d Merge commit 'eb5920c195d1b0bda81782af4ba0c5982f5225b3'
* commit 'eb5920c195d1b0bda81782af4ba0c5982f5225b3':
  lavc: deprecate unused FF_BUG_OLD_MSMPEG4

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:12:13 +01:00
Michael Niedermayer
7592d30bcb Merge commit '0300962b76644f145b773439989a5cdf1667e162'
* commit '0300962b76644f145b773439989a5cdf1667e162':
  lavc: schedule FF_BUG_AC_VLC for removal on the next major bump.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 19:03:19 +01:00
Michael Niedermayer
9bcf647867 avcodec: document that FF_DEBUG_VIS_QP / FF_DEBUG_VIS_MB_TYPE should only be used through avoptions
This preempts ABI issues if their values get reused by the fork for something unrelated

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:53:01 +01:00
Michael Niedermayer
2a2cc0af6d Merge commit 'f8b2bcd2adab65658ffd45f9f13b032af6600bf8'
* commit 'f8b2bcd2adab65658ffd45f9f13b032af6600bf8':
  lavc: deprecate FF_DEBUG_VIS_*

leave the AVOptions as they work fine

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:51:34 +01:00
Michael Niedermayer
f49e6359b6 avcodec/avcodec.h: move debug_mv to the end of the struct with the next ABI bump
This maintains ABI compatibility
also add a note that debug_mv must be accessed through AVOptions (for ABI)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:38:51 +01:00
Michael Niedermayer
66df6f5407 Merge commit 'a1504eee41b39f62dbfe0a0ca6b96c2716bf7577'
* commit 'a1504eee41b39f62dbfe0a0ca6b96c2716bf7577':
  lavc: deprecate AVCodecContext.debug_mv

Conflicts:
	libavcodec/options_table.h

Not merged, debug_mv works fine

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:36:46 +01:00
Michael Niedermayer
c97d397cbb Merge commit 'fae753af709537fc75ff1c4ce21fc1f4429af929'
* commit 'fae753af709537fc75ff1c4ce21fc1f4429af929':
  avplay: drop -vismv option which does not do anything anymore

Conflicts:
	Changelog
	ffplay.c

Not merged, the vismv option works fine in ffplay

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:31:12 +01:00
Michael Niedermayer
c6c03dfdf1 Merge commit 'ccc71298456d97f64f539e303c771d04dcb33c53'
* commit 'ccc71298456d97f64f539e303c771d04dcb33c53':
  lavc: deprecate FF_DEBUG_MV and remove all traces of its use

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:22:42 +01:00
Michael Niedermayer
6262763d8d Merge commit 'b6a4701612514c97d22f7ffb37993539f7718352'
* commit 'b6a4701612514c97d22f7ffb37993539f7718352':
  mpegts: Support HEVC demuxing

Conflicts:
	Changelog
	libavformat/version.h

See: 93c1fe4de3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 18:05:25 +01:00
Michael Niedermayer
0fbeeb9399 Merge commit '959bea13ce3498a5bddf8a415a061a7bb5a8b075'
* commit '959bea13ce3498a5bddf8a415a061a7bb5a8b075':
  matroskadec: Support HEVC demuxing

Conflicts:
	Changelog
	libavformat/matroskadec.c
	libavformat/version.h

See: 16b6839de6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 17:57:57 +01:00
Michael Niedermayer
3a0c902636 Merge commit 'ea29f965dc71182f77b8efe819630f55e48b0ab7'
* commit 'ea29f965dc71182f77b8efe819630f55e48b0ab7':
  mov: Support HEVC demuxing

Conflicts:
	Changelog
	libavformat/mov.c
	libavformat/version.h

See: 53f903b7c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 17:42:10 +01:00
Michael Niedermayer
b594aceb94 Merge commit '5846646296e377e093441dfe9eadde38ff1f7c99'
* commit '5846646296e377e093441dfe9eadde38ff1f7c99':
  Add raw HEVC demuxer

Conflicts:
	Changelog
	libavformat/hevcdec.c
	libavformat/version.h

See: 902a5fa722 and later commits
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 17:33:05 +01:00
Michael Niedermayer
3552bd9318 Merge commit 'e1c058dba930c1f6f180e04d9e26dbda261cedbc'
* commit 'e1c058dba930c1f6f180e04d9e26dbda261cedbc':
  FATE: Add HEVC tests

Conflicts:
	tests/fate/hevc.mak
	tests/ref/fate/hevc-conformance-DBLK_A_SONY_3
	tests/ref/fate/hevc-conformance-DBLK_B_SONY_3
	tests/ref/fate/hevc-conformance-DBLK_C_SONY_3
	tests/ref/fate/hevc-conformance-DELTAQP_B_SONY_3
	tests/ref/fate/hevc-conformance-DELTAQP_C_SONY_3
	tests/ref/fate/hevc-conformance-POC_A_Bossen_3
	tests/ref/fate/hevc-conformance-RPS_D_ericsson_5
	tests/ref/fate/hevc-conformance-WP_B_Toshiba_3
	tests/ref/fate/hevc-conformance-WP_MAIN10_B_Toshiba_3

See: fb3cea4be3 and later commits
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 17:21:52 +01:00
Michael Niedermayer
5eb1704d5f Merge commit '064698d381e1e7790f21b0199a8930ea04e2e942'
* commit '064698d381e1e7790f21b0199a8930ea04e2e942':
  Add HEVC decoder

Conflicts:
	Changelog
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/hevc.c
	libavcodec/hevc.h
	libavcodec/hevc_cabac.c
	libavcodec/hevc_filter.c
	libavcodec/hevc_mvs.c
	libavcodec/hevc_parser.c
	libavcodec/hevc_ps.c
	libavcodec/hevc_refs.c
	libavcodec/hevc_sei.c
	libavcodec/hevcdsp.c
	libavcodec/hevcdsp_template.c
	libavcodec/hevcpred.c
	libavcodec/hevcpred_template.c
	libavcodec/version.h

cosmetics from hevc.h & hevc_ps.c mostly merged, other files left as they where in ffmpeg.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 17:13:00 +01:00
Lukasz Marek
c617c669e9 lavd/xv: free graphics context
Valgrind detects mem leak from XCreateGC.
Free it with XFreeGC.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-11-01 16:20:50 +01:00
Michael Niedermayer
8b2dd04afc Merge commit '0a9e94bba8f8a40156438a43e4fe0e9ae36236cb'
* commit '0a9e94bba8f8a40156438a43e4fe0e9ae36236cb':
  webp: stop using deprecated avcodec_set_dimensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:55:58 +01:00
Michael Niedermayer
98ca3fb9cf Merge commit '757d5e8ef98ba2ab0dd0e85a46290c4f4a7e82be'
* commit '757d5e8ef98ba2ab0dd0e85a46290c4f4a7e82be':
  vp8: stop using deprecated avcodec_set_dimensions
  vp56: stop using deprecated avcodec_set_dimensions
  vp3: stop using deprecated avcodec_set_dimensions
  txd: stop using deprecated avcodec_set_dimensions
  truemotion1: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/txd.c
	libavcodec/vp56.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:49:58 +01:00
Michael Niedermayer
ffd100b111 Merge commit 'c265b8bb7638546919465e3585441b1d40c4b13d'
* commit 'c265b8bb7638546919465e3585441b1d40c4b13d':
  tiff: stop using deprecated avcodec_set_dimensions
  targa: stop using deprecated avcodec_set_dimensions
  svq1dec: stop using deprecated avcodec_set_dimensions
  sunrast: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/sunrast.c
	libavcodec/targa.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:43:29 +01:00
Michael Niedermayer
7630e564ca Merge commit 'c755870d52c8c29676e5ba7ee9557adf4a7ca934'
* commit 'c755870d52c8c29676e5ba7ee9557adf4a7ca934':
  sgidec: stop using deprecated avcodec_set_dimensions
  rv34: stop using deprecated avcodec_set_dimensions
  rv10: stop using deprecated avcodec_set_dimensions
  ptx: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/ptx.c
	libavcodec/rv10.c
	libavcodec/sgidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:34:49 +01:00
Michael Niedermayer
a897ba33e8 Merge commit '0f21d8b1b40848973558c737aebe800c46e93a3d'
* commit '0f21d8b1b40848973558c737aebe800c46e93a3d':
  pictordec: stop using deprecated avcodec_set_dimensions
  pgssubdec: stop using deprecated avcodec_set_dimensions
  pcx: stop using deprecated avcodec_set_dimensions
  mpegvideo_parser: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/pcx.c
	libavcodec/pgssubdec.c
	libavcodec/pictordec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:25:09 +01:00
Michael Niedermayer
64a0ed190e Merge commit '13207484bba8a8b78b40d5a22da8c9c555429089'
* commit '13207484bba8a8b78b40d5a22da8c9c555429089':
  mpeg4video_parser: stop using deprecated avcodec_set_dimensions
  mpeg12dec: stop using deprecated avcodec_set_dimensions
  mjpegdec: stop using deprecated avcodec_set_dimensions
  libvpxdec: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/mjpegdec.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg4video_parser.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:14:52 +01:00
Michael Niedermayer
bf92cd8178 Merge commit '967cd6fafbf2fdec9cbe011296ad34a70212427e'
* commit '967cd6fafbf2fdec9cbe011296ad34a70212427e':
  libopenjpegdec: stop using deprecated avcodec_set_dimensions
  kgv1dec: stop using deprecated avcodec_set_dimensions
  ivi_common: stop using deprecated avcodec_set_dimensions
  indeo3: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/ivi_common.c
	libavcodec/kgv1dec.c
	libavcodec/libopenjpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 15:07:25 +01:00
Michael Niedermayer
e6b9d71ad9 Merge commit '3b086317277e3f3b61c0343930d8e2570b278bd6'
* commit '3b086317277e3f3b61c0343930d8e2570b278bd6':
  h26[13]dec: stop using deprecated avcodec_set_dimensions
  gifdec: stop using deprecated avcodec_set_dimensions
  g2meet: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/gifdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 14:54:40 +01:00
Michael Niedermayer
599c285162 avfilter/vf_gradfun: add emms_c() for mmxext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 14:42:06 +01:00
Clément Bœsch
969329fe11 Revert "Merge commit 'ed1a11ed52bbd1f15bb9b0416d69b7924bee3191'"
This reverts commit fc5fe4804f, reversing
changes made to ffe3350098.

The factoring is broken; it's not calling the ssse3 code anymore, and
calling the mmx2 code with bad alignment. It also broke some FATE
instances.

Conflicts:
	libavfilter/x86/vf_gradfun_init.c
2013-11-01 14:28:08 +01:00
Michael Niedermayer
c6125f5e1c avfilter/x86/vf_gradfun_init: fix some consts & related warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 14:20:10 +01:00
Michael Niedermayer
bf688d23b5 Merge commit 'ec7063005ee67c0b4d4b83aa5118dd22ad1094e8'
* commit 'ec7063005ee67c0b4d4b83aa5118dd22ad1094e8':
  eatqi: stop using deprecated avcodec_set_dimensions
  eatgv: stop using deprecated avcodec_set_dimensions
  eatgq: stop using deprecated avcodec_set_dimensions
  eamad: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/eamad.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 14:09:17 +01:00
Michael Niedermayer
4a35651267 Merge commit 'd6da372984c87fd6288c148c291065d6032ceda3'
* commit 'd6da372984c87fd6288c148c291065d6032ceda3':
  eacmv: stop using deprecated avcodec_set_dimensions
  dvdsubdec: stop using deprecated avcodec_set_dimensions
  dvdec: stop using deprecated avcodec_set_dimensions
  dpx: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/dpx.c
	libavcodec/dvdec.c
	libavcodec/dvdsubdec.c
	libavcodec/eacmv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 14:01:02 +01:00
Michael Niedermayer
f016a23c7f Merge commit 'c7a5acabc537c2ce363165c31250aba341b1a990'
* commit 'c7a5acabc537c2ce363165c31250aba341b1a990':
  dnxhddec: stop using deprecated avcodec_set_dimensions
  dirac: stop using deprecated avcodec_set_dimensions
  cdxl: stop using deprecated avcodec_set_dimensions
  avs: stop using deprecated avcodec_set_dimensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 13:40:04 +01:00
Michael Niedermayer
5ef0c00580 Merge commit '78780c8bf6246a1cf1cd0c9096b49dc082a6a8e5'
* commit '78780c8bf6246a1cf1cd0c9096b49dc082a6a8e5':
  ansi: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/ansi.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 13:28:33 +01:00
Michael Niedermayer
66f436adf5 Merge commit '0f6c1d6d64c9f6255ea579dace27d0dd695f0213'
* commit '0f6c1d6d64c9f6255ea579dace27d0dd695f0213':
  lavc/utils: stop using deprecated avcodec_set_dimensions

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 13:21:14 +01:00
Michael Niedermayer
51c5768cca Merge commit 'ce6949d3a0607eb318dc2872553110df934e9720'
* commit 'ce6949d3a0607eb318dc2872553110df934e9720':
  oggparsetheora: stop using deprecated avcodec_set_dimensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 13:15:21 +01:00
Michael Niedermayer
7b91e9cf5d Merge commit '7644f5a80787c9b608b82873604805d7e38a6a18'
* commit '7644f5a80787c9b608b82873604805d7e38a6a18':
  lavc: replace avcodec_set_dimensions with ff_set_dimensions

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 13:07:15 +01:00
Michael Niedermayer
f62dfed3de h264: simplify frame_recovered code
This is a separate commit to ease future bisecting in case it breaks something.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 12:59:40 +01:00
Michael Niedermayer
78265fcfee Merge commit '28096e0a806e57376541e6222d315619906e3c55'
* commit '28096e0a806e57376541e6222d315619906e3c55':
  h264: wait for initial complete frame before outputing frames

Conflicts:
	doc/APIchanges
	libavcodec/h264.c
	libavcodec/mpegvideo.h
	libavutil/frame.h
	libavutil/version.h

See: a64b028aeb (as well as various later commits)
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 12:59:08 +01:00
Stefano Sabatini
2acc525d78 doc/encoders: add libfaac encoder documentation 2013-11-01 12:51:39 +01:00
Stefano Sabatini
d339e03fc3 doc/encoders: document the libfdk-aac wrapper
Partially based on the https://trac.ffmpeg.org/wiki/AACEncodingGuide
guide.
2013-11-01 12:51:39 +01:00
Stefano Sabatini
4fdec65eb3 doc/encoders: extend/clarify libtheora encoder documentation 2013-11-01 12:51:39 +01:00
Michael Niedermayer
a2bfee36b7 Merge commit '9af7a8523a6bb517834ebed36093bdab11a8b38e'
* commit '9af7a8523a6bb517834ebed36093bdab11a8b38e':
  HNM4/HNM4A demuxer & video decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/version.h
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 10:46:39 +01:00
Michael Niedermayer
fc5fe4804f Merge commit 'ed1a11ed52bbd1f15bb9b0416d69b7924bee3191'
* commit 'ed1a11ed52bbd1f15bb9b0416d69b7924bee3191':
  gradfun: x86: Factor out common code for some gradfun_filter_line() variants

Conflicts:
	libavfilter/x86/vf_gradfun_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 10:26:49 +01:00
Michael Niedermayer
ffe3350098 Merge commit 'ee80cf741a44115758e62399b7bde08d33161151'
* commit 'ee80cf741a44115758e62399b7bde08d33161151':
  avfilter: x86: K&R formatting cosmetics

Conflicts:
	libavfilter/x86/vf_gradfun_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 10:20:20 +01:00
Martin Storsjö
50aef03b24 rtspenc: Make sure BYE packets are sent before TEARDOWN
Also make sure the BYE packets are sent at all when using
TCP interleaved transport.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-01 09:57:06 +02:00
Martin Storsjö
9ceed7af37 rtpenc: Add a rtpflag option for sending BYE packets when finishing
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-01 09:57:02 +02:00
Martin Storsjö
b264453de9 rtpenc: Remove some superfluous parentheses
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-01 09:56:28 +02:00
Martin Storsjö
d07b51bf07 aviobuf: Handle a NULL buffer in avio_close_dyn_buf
This simplifies proper error handling in rtsp.c/rtspdec.c. When
broadcasting over RTSP in TCP mode, the AVIOContext is closed and
recreated for each sent packet, and if the recreation fails, we might
try to close a NULL buffer when freeing things at the end.

Previously, if recreating the buffer in rtspdec.c failed, this would
crash later due to trying to close a NULL buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-11-01 09:56:27 +02:00
Michael Niedermayer
ec5e02d495 avcodec/wmv2enc: Collect statistics for 2 pass encoding
Fixes Ticket3053

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 00:40:33 +01:00
Marton Balint
e1573d7147 MAINTAINERS: add myself as libzvbi-teletextdec maintainer
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 21:31:52 +01:00
Compn
6173b0fea7 aacdec: fix small comment, update decoder features comment 2013-10-31 15:57:16 -04:00
Anton Khirnov
28240a60c1 lavc: move FF_ASPECT_EXTENDED from avcodec.h to h263.h
It's for internal use only.
2013-10-31 20:24:48 +01:00
Anton Khirnov
eb5920c195 lavc: deprecate unused FF_BUG_OLD_MSMPEG4 2013-10-31 20:24:30 +01:00
Anton Khirnov
0300962b76 lavc: schedule FF_BUG_AC_VLC for removal on the next major bump.
It has been deprecated/unused for about 10 years.
2013-10-31 20:23:42 +01:00
Anton Khirnov
f8b2bcd2ad lavc: deprecate FF_DEBUG_VIS_*
Those flags have no effect since
37045e4229.
2013-10-31 20:23:08 +01:00
Anton Khirnov
a1504eee41 lavc: deprecate AVCodecContext.debug_mv
It has been unused since 37045e4229.
2013-10-31 20:22:51 +01:00
Anton Khirnov
fae753af70 avplay: drop -vismv option which does not do anything anymore 2013-10-31 20:22:22 +01:00
Anton Khirnov
ccc7129845 lavc: deprecate FF_DEBUG_MV and remove all traces of its use
It has not been actually used since
37045e4229, when the broken vismv code was
removed.
2013-10-31 20:21:13 +01:00
Mickaël Raulet
b6a4701612 mpegts: Support HEVC demuxing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:20:57 +01:00
Yusuke Nakamura
959bea13ce matroskadec: Support HEVC demuxing 2013-10-31 20:20:49 +01:00
Yusuke Nakamura
ea29f965dc mov: Support HEVC demuxing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:20:32 +01:00
Dirk Farin
5846646296 Add raw HEVC demuxer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:20:24 +01:00
Guillaume Martres
e1c058dba9 FATE: Add HEVC tests
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:20:16 +01:00
Guillaume Martres
064698d381 Add HEVC decoder
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC
project. Further contributions by the OpenHEVC project and other
developers, namely:

Mickaël Raulet <mraulet@insa-rennes.fr>
Seppo Tomperi <seppo.tomperi@vtt.fi>
Gildas Cocherel <gildas.cocherel@laposte.net>
Khaled Jerbi <khaled_jerbi@yahoo.fr>
Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr>
Vittorio Giovara <vittorio.giovara@gmail.com>
Jan Ekström <jeebjp@gmail.com>
Anton Khirnov <anton@khirnov.net>
Martin Storsjö <martin@martin.st>
Luca Barbato <lu_zero@gentoo.org>
Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diego Biurrun <diego@biurrun.de>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:19:59 +01:00
Carl Eugen Hoyos
5ab1efb9d0 Fix a crash on oom when decoding hevc. 2013-10-31 20:17:18 +01:00
Anton Khirnov
0a9e94bba8 webp: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
757d5e8ef9 vp8: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
c265b8bb76 tiff: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
c755870d52 sgidec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
0f21d8b1b4 pictordec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
2e0ab4d314 vp56: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
eed5a478ba targa: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
1d389e2a80 rv34: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
41ad353dcf pgssubdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
b53febc1c0 vp3: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
7fbb75cc70 svq1dec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
ce9f5b13ed rv10: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
0679416269 pcx: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
3cfdb912cb txd: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
9c0ece1b4f sunrast: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
e7ea97039d ptx: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
6da9c9d381 mpegvideo_parser: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
db92e4ea8d truemotion1: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:16 +01:00
Anton Khirnov
13207484bb mpeg4video_parser: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
967cd6fafb libopenjpegdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
3b08631727 h26[13]dec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
ec7063005e eatqi: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
d6da372984 eacmv: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
c7a5acabc5 dnxhddec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
6c7254722a mpeg12dec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
d62b24a3f6 kgv1dec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
8255535c5f gifdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
a87739388d eatgv: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
babbec0867 dvdsubdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
e9cfbc2b53 dirac: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
2cd94ad5bf mjpegdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
d184cd1dac ivi_common: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
58c6239e85 g2meet: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
06e7a20244 eatgq: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
caeed8deeb dvdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
b870582485 libvpxdec: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
317d6a1503 indeo3: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
c6b8a7dbb4 eamad: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
8451b5f00a dpx: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:15 +01:00
Anton Khirnov
78780c8bf6 ansi: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:14 +01:00
Anton Khirnov
0f6c1d6d64 lavc/utils: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:14 +01:00
Anton Khirnov
ce6949d3a0 oggparsetheora: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:14 +01:00
Anton Khirnov
7644f5a807 lavc: replace avcodec_set_dimensions with ff_set_dimensions
avcodec_set_dimensions() is supposed to be an internal utility function,
there is no reason whatsoever for it to be public. Therefore deprecate
it.
2013-10-31 20:14:14 +01:00
John Stebbins
28096e0a80 h264: wait for initial complete frame before outputing frames
This can be optionally disabled whith the "output_corrupt" flags
option.  When in "output_corrupt" mode, incomplete frames are
signalled through AVFrame.flags FRAME_FLAG_INCOMPLETE_FRAME.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:14:14 +01:00
Anton Khirnov
d57e95cbd4 cdxl: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:14 +01:00
Anton Khirnov
f176e11cff avs: stop using deprecated avcodec_set_dimensions 2013-10-31 20:14:14 +01:00
David Kment
9af7a8523a HNM4/HNM4A demuxer & video decoder
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-10-31 17:45:46 +01:00
Diego Biurrun
ed1a11ed52 gradfun: x86: Factor out common code for some gradfun_filter_line() variants 2013-10-31 16:34:18 +01:00
Paul B Mahol
49287bbfd3 doc/filters: add few more examples for blend filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-31 13:36:57 +00:00
Michael Niedermayer
045214e3d9 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  libavfilter/decimate: Add pts of first frame to all frames.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 14:27:51 +01:00
Michael Niedermayer
532ca12300 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Ensure that strip commands are run silently

Conflicts:
	Makefile

Not merged as it conflicts with strip being on the BRIEF list

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 13:35:55 +01:00
Diego Biurrun
ee80cf741a avfilter: x86: K&R formatting cosmetics 2013-10-31 12:15:54 +01:00
Diego Biurrun
c7f25d4c7f build: Ensure that strip commands are run silently 2013-10-31 11:48:59 +01:00
Carl Eugen Hoyos
e4b0a77021 libavfilter/decimate: Add pts of first frame to all frames.
Fixes ticket #3019

Reviewed-by: Clément Bœsch
2013-10-31 11:24:43 +01:00
Michael Niedermayer
fa6fa2162b avcodec/cabac: support UNCHECKED_BITSTREAM_READER = 0
Fixes overreads in HEVC
Fixes Ticket3070
Also fixed remaining issues from Ticket3075 and Ticket3076

Some lines of code taken from  0c5f839693da2276c2da23400f67a67be4ea0af1:libavcodec/x86/cabac.h
and                            0c5f839693da2276c2da23400f67a67be4ea0af1:libavcodec/cabac_functions.h

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 11:13:27 +01:00
Mickaël Raulet
7c8b65f688 hevc: add partial support for interlaced(cherry picked from commit 44b592ae6d323445c076ef3ec966ebf9daa8bccf)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 10:00:22 +01:00
Michael Niedermayer
6c4b87d3d6 avformat/thp: force moving forward
Fixes infinite loop
Fixes Ticket3098

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 02:26:07 +01:00
Michael Niedermayer
2b1056e4e2 avformat/thp: fix variable types to avoid overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 02:19:40 +01:00
Michael Niedermayer
b73900b8a6 avformat/http: fix cookies
Fixes Ticket3096

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 01:42:13 +01:00
Michael Niedermayer
cb52d6da0a avcodec/bink: fix seeking to frame 0
Fixes Ticket3088

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 23:56:52 +01:00
Michael Niedermayer
cc0e47b550 avcodec/jpeglsdec: check err value for ls_get_code_runterm()
Fixes infinite loop
Fixes Ticket3086

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 23:32:51 +01:00
Reimar Döffinger
4fab08c94f Optimize pure C unscaled yuv2rgb.
Aligning the tables reduces the amount of code generated on
e.g. ARM as the offset constant then has few enough set bits
so it can be encoded inside a single instruction instead of 2.
Ideally all should be declared aligned, but the DECLARE_ALIGNED
macros does not work with pointer tables, thus also reordered
the tables.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-10-30 20:52:24 +01:00
Michael Niedermayer
18802942d1 avcodec/mpeg12dec: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 21:29:21 +01:00
Michael Niedermayer
f031531816 avcodec/vaapi_mpeg2: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
9c7662aeba avcodec/svq3: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
c882b62d14 avcodec/svq1dec: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
f4d3127197 avcodec/ituh263dec: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
ddc6ed9187 avcodec/intelh263dec: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
711e981276 avcodec/h261dec: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
9c284a8e19 avcodec/flvdec: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
34087b0564 avcodec/dxva2_mpeg2: Use skip_1stop_8data_bits()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:28:00 +01:00
Michael Niedermayer
44e8e82d34 avcodec/get_bits: add skip_1stop_8data_bits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 18:22:03 +01:00
Michael Niedermayer
7f019129e1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: Remove a now useless parameter to ffurl_register_protocol

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 17:48:47 +01:00
Michael Niedermayer
94a80e36d3 avcodec/intelh263dec: make while get_bits loop more robust by checking bits left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 15:01:00 +01:00
Michael Niedermayer
810f9c5eaa avcodec/ituh263dec: make while get_bits loop more robust by checking bits left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 15:00:38 +01:00
Michael Niedermayer
489c575bd6 avcodec/ivi_common: make while get_bits loop more robust by checking bits left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 14:59:00 +01:00
Michael Niedermayer
4b12930f79 avcodec/flacdec: use get_unary() simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 14:58:04 +01:00
Michael Niedermayer
719dbe86ea avcodec/h261dec: make while get_bits loop more robust by checking bits left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 14:45:39 +01:00
Michael Niedermayer
b0f8b5c819 avcodec/flvdec: make while get_bits loop more robust by checking bits left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 14:39:31 +01:00
Michael Niedermayer
9f5b75f241 avcodec/flacdec: make while get_bits loop more robust by checking bits left
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 14:39:31 +01:00
Clément Bœsch
0c6bb53bb2 doc/examples/demuxing: reset got_frame.
Fix infinite loop at flushing.
2013-10-30 14:37:58 +01:00
Paul B Mahol
65988b9916 avcodec/cook: fix deadlock by using get_unary()
Fixes #3089.
Reported-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 13:26:55 +00:00
Paul B Mahol
387e76f993 avcodec/mdec: use dsp.bswap16_buf()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 12:41:43 +00:00
Paul B Mahol
268d0d6e6c avcodec/svq3: use av_fast_padded_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:07 +00:00
Paul B Mahol
8e609eb475 avcodec/utvideoenc: use av_fast_padded_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:07 +00:00
Paul B Mahol
82e576046c avcodec/wavpack: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:07 +00:00
Paul B Mahol
49c6f0ae15 avcodec/apedec: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:06 +00:00
Paul B Mahol
2508fa10c6 avcodec/xan: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:06 +00:00
Paul B Mahol
1de8dfcbc4 avcodec/binkaudio: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:06 +00:00
Paul B Mahol
2820562935 avcodec/4xm: use av_fast_padded_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:06 +00:00
Paul B Mahol
c783bec6dc avcodec/mdec: use av_fast_padded_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:05 +00:00
Paul B Mahol
62ef736f5a avcodec/motionpixels: use av_fast_padded_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-30 11:04:05 +00:00
Michael Niedermayer
7fd7a10efd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  oggparsetheora: check av_mallocz result

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 10:41:06 +01:00
Michael Niedermayer
0b9e480b8f Merge commit '5e5fb21877d8da7b3b8a27bb4d6a070d210c152d'
* commit '5e5fb21877d8da7b3b8a27bb4d6a070d210c152d':
  oggparsetheora: return meaningful error codes

Conflicts:
	libavformat/oggparsetheora.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 10:35:29 +01:00
Michael Niedermayer
70737b83f0 Merge commit 'd4c12b8be4bdd2ffddb3bd5e11773de4c4c46f68'
* commit 'd4c12b8be4bdd2ffddb3bd5e11773de4c4c46f68':
  oggparsetheora: K&R cosmetics, reformat

Conflicts:
	libavformat/oggparsetheora.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 10:26:00 +01:00
Michael Niedermayer
558784f113 Merge commit 'b9589f5a770ec2357ab7920a5fabe8510b8601f9'
* commit 'b9589f5a770ec2357ab7920a5fabe8510b8601f9':
  lavc: add error checking to apply_param_change.

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 10:23:24 +01:00
Michael Niedermayer
4427fe7e4b Merge commit '5c0a09839c707f10e5dba59460e219e989c1da93'
* commit '5c0a09839c707f10e5dba59460e219e989c1da93':
  libopenjpegdec: return meaningful error codes

Conflicts:
	libavcodec/libopenjpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 09:33:46 +01:00
Martin Storsjö
0c5f839693 lavf: Remove a now useless parameter to ffurl_register_protocol
This was added in 9b07a2dc02 as an ABI hack to allow older
code built with lavf 52 to register protocols even if the size
of the URLProtocol struct was increased. Later, registering
protocols from outside of lavf was removed and this workaround
isn't needed any longer since lavf 53.

This removes an unchecked malloc and a memory leak for the cases
when this workaround actually was used - which it hasn't since
lavf 53.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-30 09:53:48 +02:00
Anton Khirnov
4f2d8968c0 oggparsetheora: check av_mallocz result 2013-10-30 08:45:31 +01:00
Anton Khirnov
5e5fb21877 oggparsetheora: return meaningful error codes 2013-10-30 08:45:25 +01:00
Anton Khirnov
d4c12b8be4 oggparsetheora: K&R cosmetics, reformat
Also typedef the private data struct and make its name consistent with
the rest of Libav.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-30 08:45:10 +01:00
Anton Khirnov
b9589f5a77 lavc: add error checking to apply_param_change. 2013-10-30 08:43:03 +01:00
Anton Khirnov
5c0a09839c libopenjpegdec: return meaningful error codes 2013-10-30 08:42:41 +01:00
Michael Niedermayer
e1848aa469 avcodec/mpeg12dec: forward errors when EXPLODE is set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 02:08:34 +01:00
Anssi Hannula
f86387b6c2 lavf/spdifdec: fix demuxing of AAC in IEC 61937
Return value of avpriv_aac_parse_header() is not checked correctly. Fix
it.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 22:45:27 +01:00
Michael Niedermayer
6b31214379 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: remove pointless condition

See: 94d707af3c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 22:24:52 +01:00
Michael Niedermayer
845086149b Merge commit '58d13cea307e776664dae711608b358dd4b84fff'
* commit '58d13cea307e776664dae711608b358dd4b84fff':
  h264: Check all allocations

See: a483aae7d8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 22:18:17 +01:00
Michael Niedermayer
7f4fd72f81 tests/fate: fix fate on branches different from origin/master
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 21:53:59 +01:00
Michael Niedermayer
0999b1db3c tests/fate.sh: run git reset only when fetch succeded
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 21:53:08 +01:00
Michael Niedermayer
a8fe8d4fe9 Merge commit '9510d7689e236f6a4748795604fba427c130d0ad'
* commit '9510d7689e236f6a4748795604fba427c130d0ad':
  fate.sh: Allow non-fast-forwards when updating sources

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 21:50:49 +01:00
Michael Niedermayer
0460b9bb3e Merge commit 'c872d310cd9c605e5f994ad8ac79dc72303c0d29'
* commit 'c872d310cd9c605e5f994ad8ac79dc72303c0d29':
  avconv: stop accessing AVStream.parser

Conflicts:
	ffmpeg.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 21:38:53 +01:00
Michael Niedermayer
15b1b08874 avutil/opt: fix flags check on non x86
This should fix several fate failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 21:07:45 +01:00
Michael Niedermayer
249cc58c3a Merge commit '8b64c2ba0382892cad9e1a5ba601696d4cbb4d04'
* commit '8b64c2ba0382892cad9e1a5ba601696d4cbb4d04':
  lavc: add a dummy field to AVStream to preserve ABI compatibility for avconv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 20:47:23 +01:00
Anton Khirnov
4eb49fdde8 lavf: remove unreliable timestamp guessing heuristic
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 20:10:41 +01:00
Michael Niedermayer
e166b82dd4 Merge commit '25c7db7cc99d74fe6fb56a6fd52c9b5f1591e448'
* commit '25c7db7cc99d74fe6fb56a6fd52c9b5f1591e448':
  avio: Check for memory allocation failure of private data

See: d206fd996b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 20:07:27 +01:00
Michael Niedermayer
42bf156e13 Merge commit '327c439f811a89d774db9a86f72951d295193e5f'
* commit '327c439f811a89d774db9a86f72951d295193e5f':
  timefilter: Handle memory allocation failure

Conflicts:
	libavdevice/jack_audio.c
	libavdevice/timefilter.c

See: 6ef30976e0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 20:01:00 +01:00
Michael Niedermayer
6c5f17e738 Merge commit 'e78913052263af80855590659fb0f705e8f13c8a'
* commit 'e78913052263af80855590659fb0f705e8f13c8a':
  configure: Provide an hardened toolchain option

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 19:50:03 +01:00
Michael Niedermayer
df69af4ee1 Merge commit 'dcd3eda6cb8884beeb67ef5eb61b4bb6b01d29ea'
* commit 'dcd3eda6cb8884beeb67ef5eb61b4bb6b01d29ea':
  configure: Move gcc-only -W option where it belongs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 19:43:14 +01:00
Clément Bœsch
8d55362fd0 avformat/avisynth: re-add trailing \n.
Regression since ac9529ce.

Spotted by Timothy Gu.
2013-10-29 19:42:08 +01:00
Stefano Sabatini
d4ac3e5934 lavc/mpegvideo_enc: fix typo 2013-10-29 18:36:21 +01:00
Stefano Sabatini
9fa0dccca6 lavc: extend documentation for the "bf" option 2013-10-29 18:30:27 +01:00
Stefano Sabatini
61c1f2cb1e doc/muxers: add definitory line for the MOV/MP4/ISMV muxer
Also rename section name, to match the other ones adopting the muxer name
(rather than the related upcased standard name).
2013-10-29 18:30:27 +01:00
Michael Niedermayer
ce55e667fa avcodec/mpegvideo_enc: check that max_b_frames is not negative
Fixes crash found by saste
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 16:13:07 +01:00
Michael Niedermayer
6103faaa51 matroskaenc: fixed display width / height calculation for stereo mode
Based-on: patch by Asan Usipov <asan.usipov@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 16:08:00 +01:00
Ingo Brückl
8fbb0979da build: remove pointless condition
$(STRIP) always expands to something, because it is one of the commands
in the BRIEF list. This renders the condition pointless.

Signed-off-by: Ingo Brückl <ib@wupperonline.de>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 14:00:29 +00:00
Derek Buitenhuis
58d13cea30 h264: Check all allocations
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 14:00:29 +00:00
Diego Biurrun
9510d7689e fate.sh: Allow non-fast-forwards when updating sources 2013-10-29 14:46:28 +01:00
Anton Khirnov
c872d310cd avconv: stop accessing AVStream.parser
It is private and must not be touched from outside of lavf.
2013-10-29 14:19:10 +01:00
Anton Khirnov
8b64c2ba03 lavc: add a dummy field to AVStream to preserve ABI compatibility for avconv
avconv abuses the API by accessing AVStream.parser (which is private).
Removing AVStream.reference_dts in
2ba68dd044 breaks ABI compatibility for an
old avconv using a newer lavf. Fix this by adding a dummy field until
the next bump.
2013-10-29 14:19:10 +01:00
Derek Buitenhuis
a483aae7d8 h264: Check all allocations
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 12:00:27 +00:00
Derek Buitenhuis
25c7db7cc9 avio: Check for memory allocation failure of private data
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 11:40:15 +00:00
Derek Buitenhuis
327c439f81 timefilter: Handle memory allocation failure
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 11:40:04 +00:00
Derek Buitenhuis
069ceea7da timefilter: Fix typo in allocation failure message
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-29 11:38:35 +00:00
Michael Niedermayer
325f6e0a97 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavfi: do not export the filters from shared objects

Conflicts:
	libavfilter/af_amix.c
	libavfilter/af_anull.c
	libavfilter/asrc_anullsrc.c
	libavfilter/f_select.c
	libavfilter/f_settb.c
	libavfilter/split.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_blackframe.c
	libavfilter/vf_colorbalance.c
	libavfilter/vf_copy.c
	libavfilter/vf_crop.c
	libavfilter/vf_cropdetect.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_format.c
	libavfilter/vf_framestep.c
	libavfilter/vf_frei0r.c
	libavfilter/vf_hflip.c
	libavfilter/vf_libopencv.c
	libavfilter/vf_lut.c
	libavfilter/vf_null.c
	libavfilter/vf_overlay.c
	libavfilter/vf_scale.c
	libavfilter/vf_transpose.c
	libavfilter/vf_unsharp.c
	libavfilter/vf_vflip.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 11:58:11 +01:00
Luca Barbato
e789130522 configure: Provide an hardened toolchain option 2013-10-29 11:36:00 +01:00
Luca Barbato
dcd3eda6cb configure: Move gcc-only -W option where it belongs 2013-10-29 11:36:00 +01:00
Michael Niedermayer
d3e13250a0 Merge commit 'feeafb4adabd5c17de1738ed9962e40892b20edb'
* commit 'feeafb4adabd5c17de1738ed9962e40892b20edb':
  lavf: do not export av_register_{rtp,rdt}_dynamic_payload_handlers from shared objects

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 11:06:32 +01:00
Michael Niedermayer
e36231969a avcodec/audioconvert: deprecate API
Note, the header was not installed so useage of this should be limited
but its not 0, there are some random pieces of code using it according
to google.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 10:48:57 +01:00
Paul B Mahol
66518f6feb avcodec/cook: use av_freep()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-10-29 09:37:59 +00:00
Michael Niedermayer
6bf4edec27 Merge commit 'c9a13a289d0e1607387854127476813a1ee3d34b'
* commit 'c9a13a289d0e1607387854127476813a1ee3d34b':
  lavc: remove old unused audio conversion functions.

Conflicts:
	libavcodec/audioconvert.c
	libavcodec/audioconvert.h

Merge only for metadata.
keeping the old API longer reduces the need for applications to be continuously
updated.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-29 10:21:23 +01:00
Michael Niedermayer
f1f0b01c47 avformat/gxf: fix old codec id
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 23:54:42 +01:00
Michael Niedermayer
e510171f31 avcodec: fix old codec ids
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 23:54:28 +01:00
Michael Niedermayer
f0b26bf0f5 avcodec/dvdec: dont try to decode ac when theres no input
fixes reading out of an empty bitstream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 23:09:35 +01:00
Stephen Hutchinson
f87a2e1272 avisynth: Factor out a couple of returns
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:30:43 +01:00
Stephen Hutchinson
ac9529ceec avisynth: Simplify a stray av_log message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:30:36 +01:00
Stephen Hutchinson
7ac67583c3 avisynth: Switch a couple of AVERROR_UNKNOWNs to AVERROR(ENOMEM)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:30:20 +01:00
Stephen Hutchinson
c7f9aab801 avisynth: Use AV_* prefixes for video and audio IDs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:26:56 +01:00
Stephen Hutchinson
cf31c1d4f8 avisynth: Remove outdated undef block
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:26:47 +01:00
Stephen Hutchinson
df6279e737 avisynth: Remove a couple of useless AviSynthContext casts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:26:37 +01:00
Stephen Hutchinson
da9852670c avisynth: Don't declare structs anonymously
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:26:28 +01:00
Stephen Hutchinson
d10d60be68 avisynth: Compact AvxSynth's avoidance of 2.6's colorspaces.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:26:14 +01:00
Stephen Hutchinson
2c18bfe6af avisynth: Cosmetics
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:25:26 +01:00
Stephen Hutchinson
1549122d26 avisynth: Change most of the comments to /* */ from //
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:25:12 +01:00
Stephen Hutchinson
bd97ba72dc avisynth: Introduce USING_AVISYNTH macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 22:24:58 +01:00
Peter Ross
69a042ee95 mpegts: demux synchronous SMPTE 336M Key-Length-Value (KLV) metadata
Fixes ticket #2579.
2013-10-28 19:31:58 +01:00
Michael Niedermayer
162126bb17 avutil/opt: check flags validity in write_number()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 18:03:29 +01:00
Michael Niedermayer
c00686518c avcodec/h263dec: fix handling of AV_EF_EXPLODE
This fixes checking a variable that had been overwritten before.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 17:05:59 +01:00
Anton Khirnov
cd43ca0443 lavfi: do not export the filters from shared objects 2013-10-28 15:29:54 +01:00
Anton Khirnov
feeafb4ada lavf: do not export av_register_{rtp,rdt}_dynamic_payload_handlers from shared objects 2013-10-28 15:29:49 +01:00
Anton Khirnov
c9a13a289d lavc: remove old unused audio conversion functions. 2013-10-28 15:29:37 +01:00
Michael Niedermayer
269b3c8799 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ac3dec: fix outptr increment.

Conflicts:
	libavcodec/ac3dec.c

No change as this has been fixed in ffmpeg head already

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 14:37:53 +01:00
Michael Niedermayer
17e47ec8be Merge commit 'a1c5cc429d99216406170eac7e8352860076d3e8'
* commit 'a1c5cc429d99216406170eac7e8352860076d3e8':
  lavc: don't set AVFrame.pts to random numbers in decoders.

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 14:12:37 +01:00
Michael Niedermayer
feba750dcd Merge commit '2ba68dd044ca8fc591139c05563840f546a9c0c0'
* commit '2ba68dd044ca8fc591139c05563840f546a9c0c0':
  lavf: remove unreliable timestamp guessing heuristic

Conflicts:
	libavformat/utils.c

Not merged, as the change breaks ABI by removing a field from the middle
of AVStream.
Also, if you have files that decode better or worse without this code please
open a ticket on trac. If the timestamp code turns out useless it of course
should be removed.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 13:47:53 +01:00
Michael Niedermayer
6c82c87dbb ac3dec: fix outptr increment.
Fixes corrupt data errors when downmixing in the AC-3 decoder.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2013-10-28 08:33:21 -04:00
Michael Niedermayer
683ab5fec9 Merge commit 'f2521563d1a0c3e2a21892f59f3327b82b3db7fc'
* commit 'f2521563d1a0c3e2a21892f59f3327b82b3db7fc':
  g722dec: Change bits_per_codeword to the right option type

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 13:21:17 +01:00
Michael Niedermayer
054e4bab83 Merge commit '884c7a6eb86a9bc05abafc058b279018ded7de5f'
* commit '884c7a6eb86a9bc05abafc058b279018ded7de5f':
  avfilter: fix const use of avfilter_next

See: d94c907008
See: e4723a82f7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 13:17:39 +01:00
Michael Niedermayer
a1ce060c51 Merge commit '5c439b41d0489412c0a4cf6dfb98915251677b8e'
* commit '5c439b41d0489412c0a4cf6dfb98915251677b8e':
  avfilter: have avfilter_get_by_name return const for next bump

Conflicts:
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 13:07:05 +01:00
Michael Niedermayer
252f56636c Merge commit '97de206b44a48da726807cc3e7b9448a8112760b'
* commit '97de206b44a48da726807cc3e7b9448a8112760b':
  lavc: disable CRC checking by default

Conflicts:
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 12:47:10 +01:00
Michael Niedermayer
84f972f994 Merge commit '23a211cbba0b7c9ee694040031b2e5da1be54a00'
* commit '23a211cbba0b7c9ee694040031b2e5da1be54a00':
  lavc: change all decoders to behave consistently with AV_EF_CRCCHECK.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/tta.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 12:34:35 +01:00
Michael Niedermayer
528f5cdd2c Merge commit 'f354f30836a3148275ce60d19bbc581310249ad2'
* commit 'f354f30836a3148275ce60d19bbc581310249ad2':
  error resilience: check error_concealment, not err_recognition.

Conflicts:
	libavcodec/error_resilience.c

See: 346e09638c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 12:26:31 +01:00
Michael Niedermayer
0436ffc294 Merge commit '53151723e377b9c43f876e20d7f27a17993256c8'
* commit '53151723e377b9c43f876e20d7f27a17993256c8':
  avio: K&R formatting cosmetics

Conflicts:
	libavformat/avio.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 12:17:57 +01:00
Michael Niedermayer
a66ee3dc87 Merge commit 'aaaf2dc023d31f30eeec874f24b50f44b9295185'
* commit 'aaaf2dc023d31f30eeec874f24b50f44b9295185':
  h263: Check init_get_bits return value

Conflicts:
	libavcodec/h263dec.c

See: d47e14b53a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 12:09:12 +01:00
Michael Niedermayer
d57a6fe6ab Merge commit '0749314886390f6ec81d45e0ba424fcb36c945cf'
* commit '0749314886390f6ec81d45e0ba424fcb36c945cf':
  h263: Return meaningful errors

Conflicts:
	libavcodec/h263dec.c

See: 7b62d3415e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 11:54:46 +01:00
Michael Niedermayer
c985966a10 Merge commit 'de6061203e2d509579ab110fb1873aade34320f5'
* commit 'de6061203e2d509579ab110fb1873aade34320f5':
  configure: Disable -Wmaybe-uninitialized by default

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 11:32:22 +01:00
Michael Niedermayer
f0e43e60cd Merge commit '0b357a8095e72b092cc5c2aacc2f806db75ecae3'
* commit '0b357a8095e72b092cc5c2aacc2f806db75ecae3':
  AVOptions: do not range check flag options.

Conflicts:
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 11:26:48 +01:00
Michael Niedermayer
ac3fa95e73 Merge commit '94603feb1b3ad01a821a1a1cef1570b13f471821'
* commit '94603feb1b3ad01a821a1a1cef1570b13f471821':
  h264_ps: when parsing a VUI fails, only abort when explode is set

Merge only for metadata, ignoring invalid data can put the context
into an invalid state and can possibly be used for remote code
execution exploits.
Also we support all non standard VUIs that have been reported so
ignoring parsing failure makes no sense for us unless theres
some issue that has not been reported

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 11:08:58 +01:00
Michael Niedermayer
bdd3a74677 Merge commit '79ef4b19bfcab8b984682a53bb8561e5c8324731'
* commit '79ef4b19bfcab8b984682a53bb8561e5c8324731':
  FATE: add bitexact sws flags to the fieldorder test

See: 3a75c4e93b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:54:20 +01:00
Michael Niedermayer
ed49e91fd7 Merge commit 'ddc589ce98c2bba1e59318b5b0224717325eac46'
* commit 'ddc589ce98c2bba1e59318b5b0224717325eac46':
  avconv: drop a now useless variable

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:46:47 +01:00
Mickaël Raulet
a21839149c hevc: add profile idc warning
(cherry picked from commit 15f7a481fd19529b13631bfff5b3d65bfe5729d5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:37:11 +01:00
Anton Khirnov
cb148e56dc hevc: refactor pic_arrays and set_sps
(cherry picked from commit a6686c6d83b50c0962269f2c487f4f0c57e0df79)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:37:10 +01:00
Anton Khirnov
4db81f0817 hevc: add irap checks
(cherry picked from commit 3d3bbe35541a308937d0fe72b20a1c29d1c4100d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:37:09 +01:00
Michael Niedermayer
078dab551d Merge commit '529a9893d769f381b72785c500662be2020da5fe'
* commit '529a9893d769f381b72785c500662be2020da5fe':
  avframe: mark source frame const in _ref and _clone

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:28:47 +01:00
Michael Niedermayer
8930637819 Merge commit 'fc06ee6ee377cc3b512dff8f02057e26311bc4da'
* commit 'fc06ee6ee377cc3b512dff8f02057e26311bc4da':
  mmvideo: fix uninitialized variable use in mm_decode_intra

Conflicts:
	libavcodec/mmvideo.c

See: c2e3b564b3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:12:13 +01:00
Michael Niedermayer
b96dddd344 Merge commit '211ca69b13eb0a127a9ef7e70ddaccdab125d1c5'
* commit '211ca69b13eb0a127a9ef7e70ddaccdab125d1c5':
  lavr: check that current_buffer is not NULL before using it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 09:59:53 +01:00
Stefano Sabatini
6baf9c4406 cmdutils: fix expected signature for show_colors() function
Fix warning:
In file included from ffprobe.c:2557:0:
cmdutils_common_opts.h:17:5: warning: initialization from incompatible pointer type [enabled by default]
cmdutils_common_opts.h:17:5: warning: (near initialization for ‘real_options[16].u.func_arg’) [enabled by default]

Spotted-by: Paul B Mahol
2013-10-28 09:41:25 +01:00
Anton Khirnov
a1c5cc429d lavc: don't set AVFrame.pts to random numbers in decoders. 2013-10-28 09:28:29 +01:00
Anton Khirnov
2ba68dd044 lavf: remove unreliable timestamp guessing heuristic 2013-10-28 09:28:19 +01:00
Martin Storsjö
f2521563d1 g722dec: Change bits_per_codeword to the right option type
This isn't a set of flags but just a plain integer in the range
6-8.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-28 09:53:48 +02:00
Vittorio Giovara
884c7a6eb8 avfilter: fix const use of avfilter_next
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-28 07:58:23 +01:00
Vittorio Giovara
5c439b41d0 avfilter: have avfilter_get_by_name return const for next bump
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-28 07:57:44 +01:00
Anton Khirnov
97de206b44 lavc: disable CRC checking by default 2013-10-28 07:22:43 +01:00
Anton Khirnov
23a211cbba lavc: change all decoders to behave consistently with AV_EF_CRCCHECK.
Just crccheck prints a warning, crccheck+explode returns an error.

Also document this behavior.
2013-10-28 07:22:18 +01:00
Anton Khirnov
f354f30836 error resilience: check error_concealment, not err_recognition.
err_recognition is supposed to trigger detecting and reporting errors,
not trying to fix them.
2013-10-28 07:22:11 +01:00
Luca Barbato
53151723e3 avio: K&R formatting cosmetics 2013-10-28 00:04:50 +01:00
Michael Niedermayer
aaaf2dc023 h263: Check init_get_bits return value
And use init_get_bits8 to check for integer overflows while at it.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-10-28 00:04:49 +01:00
Luca Barbato
0749314886 h263: Return meaningful errors 2013-10-28 00:04:49 +01:00
Luca Barbato
de6061203e configure: Disable -Wmaybe-uninitialized by default
It is by definition unreliable and causes pointless noise on valid
code.
2013-10-28 00:04:49 +01:00
Anton Khirnov
0b357a8095 AVOptions: do not range check flag options.
It does not make sense in the vast majority of use cases, no currently
defined AV_OPT_TYPE_FLAGS options in Libav set the range to anything
nontrivial, and many of those get it wrong (the "correct" range is
INT_MIN to INT_MAX so that the builtin constant "all" works).
2013-10-27 21:40:33 +01:00
Anton Khirnov
94603feb1b h264_ps: when parsing a VUI fails, only abort when explode is set
A VUI doesn't contain anything strictly necessary for decoding.
Apparently there are many samples with truncated VUIs in the wild, this
commit should allow decoding them.
2013-10-27 21:39:01 +01:00
Paul B Mahol
79ef4b19bf FATE: add bitexact sws flags to the fieldorder test
swscale is called for the 420 to 422 conversion

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-27 21:34:28 +01:00
Anton Khirnov
ddc589ce98 avconv: drop a now useless variable 2013-10-27 21:32:37 +01:00
Vittorio Giovara
529a9893d7 avframe: mark source frame const in _ref and _clone
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-27 21:32:37 +01:00
Vittorio Giovara
fc06ee6ee3 mmvideo: fix uninitialized variable use in mm_decode_intra
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-27 21:32:11 +01:00
Justin Ruggles
211ca69b13 lavr: check that current_buffer is not NULL before using it
Fixes a segfault during resampling when compiled with -DDEBUG.
Fixes all fate-lavr-resample tests with -DDEBUG.

CC:libav-stable@libav.org
2013-10-27 15:07:10 -04:00
2417 changed files with 180202 additions and 73861 deletions

13
.gitignore vendored
View File

@@ -15,6 +15,7 @@
*.pdb
*.so
*.so.*
*.swp
*.ver
*-example
*-test
@@ -27,7 +28,6 @@
/ffserver
/config.*
/coverage.info
/version.h
/doc/*.1
/doc/*.3
/doc/*.html
@@ -35,23 +35,29 @@
/doc/config.texi
/doc/avoptions_codec.texi
/doc/avoptions_format.texi
/doc/doxy/html/
/doc/examples/avio_reading
/doc/examples/decoding_encoding
/doc/examples/demuxing
/doc/examples/demuxing_decoding
/doc/examples/filter_audio
/doc/examples/filtering_audio
/doc/examples/filtering_video
/doc/examples/metadata
/doc/examples/muxing
/doc/examples/pc-uninstalled
/doc/examples/remuxing
/doc/examples/resampling_audio
/doc/examples/scaling_video
/doc/examples/transcode_aac
/doc/examples/transcoding
/doc/fate.txt
/doc/doxy/html/
/doc/print_options
/lcov/
/libavcodec/*_tablegen
/libavcodec/*_tables.c
/libavcodec/*_tables.h
/libavutil/avconfig.h
/libavutil/ffversion.h
/tests/audiogen
/tests/base64
/tests/data/
@@ -76,4 +82,5 @@
/tools/qt-faststart
/tools/trasher
/tools/seek_print
/tools/uncoded_frame
/tools/zmqsend

104
Changelog
View File

@@ -1,7 +1,95 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version <next>
version 2.3.3:
- h264: fix grayscale only decoding with weighted prediction
- mjpegdec: support AV_PIX_FMT_YUV420P16 with upscale_h
- proresenc_ks: fix buffer overflow
- matroskadec: fix crash
version 2.3.2:
- snow: fix null pointer dereference
- huffyucdec: fix overread
- vc1dec: fix crash
- iff: fix out of array access
- matroskaenc: fix assertion failure
- cdgraphics: fix infinite loop
- dvdsub_parser: fix infinite loop
- mpeg12dec: support decoding some broken files
- v4l2enc: fix crash
- h264_parser: fix handling huge resolutions
- h264_mp4toannexb_bsf: multiple bugfixes
version 2.3.1:
- public AVDCT API/ABI for DCT functions
- g2meet: allow size changes within original sizes
- dv: improved error resilience, fixing Ticket2340 and Ticket2341
version 2.3:
- AC3 fixed-point decoding
- shuffleplanes filter
- subfile protocol
- Phantom Cine demuxer
- replaygain data export
- VP7 video decoder
- Alias PIX image encoder and decoder
- Improvements to the BRender PIX image decoder
- Improvements to the XBM decoder
- QTKit input device
- improvements to OpenEXR image decoder
- support decoding 16-bit RLE SGI images
- GDI screen grabbing for Windows
- alternative rendition support for HTTP Live Streaming
- AVFoundation input device
- Direct Stream Digital (DSD) decoder
- Magic Lantern Video (MLV) demuxer
- On2 AVC (Audio for Video) decoder
- support for decoding through DXVA2 in ffmpeg
- libbs2b-based stereo-to-binaural audio filter
- libx264 reference frames count limiting depending on level
- native Opus decoder
- display matrix export and rotation api
- WebVTT encoder
- showcqt multimedia filter
- zoompan filter
- signalstats filter
- hqx filter (hq2x, hq3x, hq4x)
- flanger filter
- Image format auto-detection
- LRC demuxer and muxer
- Samba protocol (via libsmbclient)
- WebM DASH Manifest muxer
- libfribidi support in drawtext
version 2.2:
- HNM version 4 demuxer and video decoder
- Live HDS muxer
- setsar/setdar filters now support variables in ratio expressions
- elbg filter
- string validation in ffprobe
- support for decoding through VDPAU in ffmpeg (the -hwaccel option)
- complete Voxware MetaSound decoder
- remove mp3_header_compress bitstream filter
- Windows resource files for shared libraries
- aeval filter
- stereoscopic 3d metadata handling
- WebP encoding via libwebp
- ATRAC3+ decoder
- VP8 in Ogg demuxing
- side & metadata support in NUT
- framepack filter
- XYZ12 rawvideo support in NUT
- Exif metadata support in WebP decoder
- OpenGL device
- Use metadata_header_padding to control padding in ID3 tags (currently used in
MP3, AIFF, and OMA files), FLAC header, and the AVI "junk" block.
- Mirillis FIC video decoder
- Support DNx444
- libx265 encoder
- dejudder filter
- Autodetect VDA like all other hardware accelerations
version 2.1:
@@ -46,7 +134,8 @@ version 2.1:
- ReplayGain scanner
- Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support)
- Linux framebuffer output device
- HEVC decoder, raw HEVC demuxer, HEVC demuxing in TS, Matroska and MP4
- HEVC decoder
- raw HEVC, HEVC in MOV/MP4, HEVC in Matroska, HEVC in MPEG-TS demuxing
- mergeplanes filter
@@ -62,7 +151,7 @@ version 2.0:
- 10% faster aac encoding on x86 and MIPS
- sine audio filter source
- WebP demuxing and decoding support
- new ffmpeg options -filter_script and -filter_complex_script, which allow a
- ffmpeg options -filter_script and -filter_complex_script, which allow a
filtergraph description to be read from a file
- OpenCL support
- audio phaser filter
@@ -70,7 +159,7 @@ version 2.0:
- libquvi demuxer
- uniform options syntax across all filters
- telecine filter
- new interlace filter
- interlace filter
- smptehdbars source
- inverse telecine filters (fieldmatch and decimate)
- colorbalance filter
@@ -188,7 +277,7 @@ version 1.1:
- JSON captions for TED talks decoding support
- SOX Resampler support in libswresample
- aselect filter
- SGI RLE 8-bit decoder
- SGI RLE 8-bit / Silicon Graphics RLE 8-bit video decoder
- Silicon Graphics Motion Video Compressor 1 & 2 decoder
- Silicon Graphics Movie demuxer
- apad filter
@@ -232,7 +321,9 @@ version 1.0:
- RTMPE protocol support
- RTMPTE protocol support
- showwaves and showspectrum filter
- LucasArts SMUSH playback support
- LucasArts SMUSH SANM playback support
- LucasArts SMUSH VIMA audio decoder (ADPCM)
- LucasArts SMUSH demuxer
- SAMI, RealText and SubViewer demuxers and decoders
- Heart Of Darkness PAF playback support
- iec61883 device
@@ -356,6 +447,7 @@ version 0.10:
- ffwavesynth decoder
- aviocat tool
- ffeval tool
- support encoding and decoding 4-channel SGI images
version 0.9:

15
INSTALL
View File

@@ -1,15 +0,0 @@
1) Type './configure' to create the configuration. A list of configure
options is printed by running 'configure --help'.
'configure' can be launched from a directory different from the FFmpeg
sources to build the objects out of tree. To do this, use an absolute
path when launching 'configure', e.g. '/ffmpegdir/ffmpeg/configure'.
2) Then type 'make' to build FFmpeg. GNU Make 3.81 or later is required.
3) Type 'make install' to install all binaries and libraries you built.
NOTICE
- Non system dependencies (e.g. libx264, libvpx) are disabled by default.

17
INSTALL.md Normal file
View File

@@ -0,0 +1,17 @@
#Installing FFmpeg:
1. Type `./configure` to create the configuration. A list of configure
options is printed by running `configure --help`.
`configure` can be launched from a directory different from the FFmpeg
sources to build the objects out of tree. To do this, use an absolute
path when launching `configure`, e.g. `/ffmpegdir/ffmpeg/configure`.
2. Then type `make` to build FFmpeg. GNU Make 3.81 or later is required.
3. Type `make install` to install all binaries and libraries you built.
NOTICE
------
- Non system dependencies (e.g. libx264, libvpx) are disabled by default.

View File

@@ -1,4 +1,4 @@
FFmpeg:
#FFmpeg:
Most files in FFmpeg are under the GNU Lesser General Public License version 2.1
or later (LGPL v2.1+). Read the file COPYING.LGPLv2.1 for details. Some other
@@ -10,7 +10,7 @@ version 2 or later (GPL v2+). See the file COPYING.GPLv2 for details. None of
these parts are used by default, you have to explicitly pass --enable-gpl to
configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
Specifically, the GPL parts of FFmpeg are
Specifically, the GPL parts of FFmpeg are:
- libpostproc
- libmpcodecs
@@ -47,7 +47,6 @@ Specifically, the GPL parts of FFmpeg are
- vf_stereo3d.c
- vf_super2xsai.c
- vf_tinterlace.c
- vf_yadif.c
- vsrc_mptestsrc.c
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
@@ -80,6 +79,7 @@ The following libraries are under GPL:
- libutvideo
- libvidstab
- libx264
- libx265
- libxavs
- libxvid
When combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by

View File

@@ -31,7 +31,7 @@ ffprobe:
ffprobe.c Stefano Sabatini
ffserver:
ffserver.c, ffserver.h Baptiste Coudurier
ffserver.c Reynaldo H. Verdejo Pinochet
Commandline utility code:
cmdutils.c, cmdutils.h Michael Niedermayer
@@ -44,8 +44,8 @@ Miscellaneous Areas
===================
documentation Stefano Sabatini, Mike Melanson, Timothy Gu
build system (configure,Makefiles) Diego Biurrun, Mans Rullgard
project server Árpád Gereöffy, Michael Niedermayer, Reimar Döffinger, Alexander Strasser
build system (configure, makefiles) Diego Biurrun, Mans Rullgard
project server Árpád Gereöffy, Michael Niedermayer, Reimar Doeffinger, Alexander Strasser
presets Robert Swain
metadata subsystem Aurelien Jacobs
release management Michael Niedermayer
@@ -54,8 +54,10 @@ release management Michael Niedermayer
Communication
=============
website Robert Swain, Lou Logan
mailinglists Michael Niedermayer, Baptiste Coudurier, Lou Logan
website Robert Swain
fate.ffmpeg.org Timothy Gu
Trac bug tracker Alexander Strasser, Michael Niedermayer, Carl Eugen Hoyos, Lou Logan
mailing lists Michael Niedermayer, Baptiste Coudurier, Lou Logan
Google+ Paul B Mahol, Michael Niedermayer, Alexander Strasser
Twitter Lou Logan
Launchpad Timothy Gu
@@ -73,6 +75,7 @@ Other:
bprint Nicolas George
bswap.h
des Reimar Doeffinger
dynarray.h Nicolas George
eval.c, eval.h Michael Niedermayer
float_dsp Loren Merritt
hash Reimar Doeffinger
@@ -129,6 +132,7 @@ Generic Parts:
tableprint.c, tableprint.h Reimar Doeffinger
fixed point FFT:
fft* Zeljko Lukac
Text Subtitles Clément Bœsch
Codecs:
4xm.c Michael Niedermayer
@@ -142,6 +146,7 @@ Codecs:
ass* Aurelien Jacobs
asv* Michael Niedermayer
atrac3* Benjamin Larsson
atrac3plus* Maxim Poliakovski
bgmc.c, bgmc.h Thilo Borgmann
bink.c Kostya Shishkov
binkaudio.c Peter Ross
@@ -150,6 +155,7 @@ Codecs:
cdxl.c Paul B Mahol
celp_filters.* Vitor Sessak
cinepak.c Roberto Togni
cinepakenc.c Rl / Aetey G.T. AB
cljr Alex Beregszaszi
cllc.c Derek Buitenhuis
cook.c, cookdata.h Benjamin Larsson
@@ -160,11 +166,13 @@ Codecs:
dnxhd* Baptiste Coudurier
dpcm.c Mike Melanson
dv.c Roman Shaposhnik
dvbsubdec.c Anshul Maheshwari
dxa.c Kostya Shishkov
eacmv*, eaidct*, eat* Peter Ross
exif.c, exif.h Thilo Borgmann
ffv1.c Michael Niedermayer
ffv1* Michael Niedermayer
ffwavesynth.c Nicolas George
fic.c Derek Buitenhuis
flac* Justin Ruggles
flashsv* Benjamin Larsson
flicvideo.c Mike Melanson
@@ -174,7 +182,7 @@ Codecs:
h261* Michael Niedermayer
h263* Michael Niedermayer
h264* Loren Merritt, Michael Niedermayer
huffyuv.c Michael Niedermayer
huffyuv* Michael Niedermayer, Christophe Gisquet
idcinvideo.c Mike Melanson
imc* Benjamin Larsson
indeo2* Kostya Shishkov
@@ -197,8 +205,11 @@ Codecs:
libtheoraenc.c David Conrad
libutvideo* Derek Buitenhuis
libvorbis.c David Conrad
libvpx* James Zern
libx264.c Mans Rullgard, Jason Garrett-Glaser
libx265.c Derek Buitenhuis
libxavs.c Stefan Gehrer
libzvbi-teletextdec.c Marton Balint
loco.c Kostya Shishkov
lzo.h, lzo.c Reimar Doeffinger
mdec.c Michael Niedermayer
@@ -231,12 +242,12 @@ Codecs:
rtjpeg.c, rtjpeg.h Reimar Doeffinger
rv10.c Michael Niedermayer
rv3* Kostya Shishkov
rv4* Kostya Shishkov
rv4* Kostya Shishkov, Christophe Gisquet
s3tc* Ivo van Poorten
smacker.c Kostya Shishkov
smc.c Mike Melanson
smvjpegdec.c Ash Hughes
snow.c Michael Niedermayer, Loren Merritt
snow* Michael Niedermayer, Loren Merritt
sonic.c Alex Beregszaszi
srt* Aurelien Jacobs
sunrast.c Ivo van Poorten
@@ -255,17 +266,18 @@ Codecs:
v410*.c Derek Buitenhuis
vb.c Kostya Shishkov
vble.c Derek Buitenhuis
vc1* Kostya Shishkov
vc1* Kostya Shishkov, Christophe Gisquet
vcr1.c Michael Niedermayer
vda_h264_dec.c Xidorn Quan
vima.c Paul B Mahol
vmnc.c Kostya Shishkov
vorbis_dec.c Denes Balatoni, David Conrad
vorbis_enc.c Oded Shimon
vorbisdec.c Denes Balatoni, David Conrad
vorbisenc.c Oded Shimon
vp3* Mike Melanson
vp5 Aurelien Jacobs
vp6 Aurelien Jacobs
vp8 David Conrad, Jason Garrett-Glaser, Ronald Bultje
vp9 Ronald Bultje, Clément Bœsch
vqavideo.c Mike Melanson
wavpack.c Kostya Shishkov
wmaprodec.c Sascha Sommer
@@ -296,15 +308,20 @@ libavdevice
libavdevice/avdevice.h
dshow.c Roger Pack
avfoundation.m Thilo Borgmann
dshow.c Roger Pack (CC rogerdpack@gmail.com)
fbdev_enc.c Lukasz Marek
gdigrab.c Roger Pack (CC rogerdpack@gmail.com)
iec61883.c Georg Lippitsch
lavfi Stefano Sabatini
libdc1394.c Roman Shaposhnik
opengl_enc.c Lukasz Marek
pulse_audio_enc.c Lukasz Marek
qtkit.m Thilo Borgmann
sdl Stefano Sabatini
v4l2.c Luca Abeni
vfwcap.c Ramiro Polla
xv.c Lukasz Marek
libavfilter
===========
@@ -327,12 +344,15 @@ Filters:
af_ladspa.c Paul B Mahol
af_pan.c Nicolas George
avf_avectorscope.c Paul B Mahol
avf_showcqt.c Muhammad Faiz
vf_blend.c Paul B Mahol
vf_colorbalance.c Paul B Mahol
vf_dejudder.c Nicholas Robbins
vf_delogo.c Jean Delvare (CC <khali@linux-fr.org>)
vf_drawbox.c/drawgrid Andrey Utkin
vf_extractplanes.c Paul B Mahol
vf_histogram.c Paul B Mahol
vf_hqx.c Clément Bœsch
vf_il.c Paul B Mahol
vf_mergeplanes.c Paul B Mahol
vf_psnr.c Paul B Mahol
@@ -385,6 +405,7 @@ Muxers/Demuxers:
flvdec.c, flvenc.c Michael Niedermayer
gxf.c Reimar Doeffinger
gxfenc.c Baptiste Coudurier
hls.c Anssi Hannula
idcin.c Mike Melanson
idroqdec.c Mike Melanson
iff.c Jaikrishnan Menon
@@ -402,6 +423,7 @@ Muxers/Demuxers:
matroska.c Aurelien Jacobs
matroskadec.c Aurelien Jacobs
matroskaenc.c David Conrad
matroska subtitles (matroskaenc.c) John Peebles
metadata* Aurelien Jacobs
mgsts.c Paul B Mahol
microdvd* Aurelien Jacobs
@@ -411,14 +433,15 @@ Muxers/Demuxers:
mpc.c Kostya Shishkov
mpeg.c Michael Niedermayer
mpegenc.c Michael Niedermayer
mpegts* Baptiste Coudurier
mpegts.c Marton Balint
mpegtsenc.c Baptiste Coudurier
msnwc_tcp.c Ramiro Polla
mtv.c Reynaldo H. Verdejo Pinochet
mxf* Baptiste Coudurier
mxfdec.c Tomas Härdin
nistspheredec.c Paul B Mahol
nsvdec.c Francois Revol
nut.c Michael Niedermayer
nut* Michael Niedermayer
nuv.c Reimar Doeffinger
oggdec.c, oggdec.h David Conrad
oggenc.c Baptiste Coudurier
@@ -444,6 +467,7 @@ Muxers/Demuxers:
siff.c Kostya Shishkov
smacker.c Kostya Shishkov
smjpeg* Paul B Mahol
spdif* Anssi Hannula
srtdec.c Aurelien Jacobs
swf.c Baptiste Coudurier
takdec.c Paul B Mahol
@@ -452,6 +476,7 @@ Muxers/Demuxers:
voc.c Aurelien Jacobs
wav.c Michael Niedermayer
wc3movie.c Mike Melanson
webm dash (matroskaenc.c) Vignesh Venkatasubramanian
webvtt* Matthew J Heaney
westwood.c Mike Melanson
wtv.c Peter Ross
@@ -493,6 +518,8 @@ Amiga / PowerPC Colin Ward
Linux / PowerPC Luca Barbato
Windows MinGW Alex Beregszaszi, Ramiro Polla
Windows Cygwin Victor Paesa
Windows MSVC Matthew Oliver
Windows ICL Matthew Oliver
ADI/Blackfin DSP Marc Hoffman
Sparc Roman Shaposhnik
x86 Michael Niedermayer
@@ -501,8 +528,9 @@ x86 Michael Niedermayer
Releases
========
2.1 Michael Niedermayer
2.0 Michael Niedermayer
2.3 Michael Niedermayer
2.2 Michael Niedermayer
1.2 Michael Niedermayer
If you want to maintain an older release, please contact us
@@ -518,7 +546,7 @@ Attila Kinali 11F0 F9A6 A1D2 11F6 C745 D10C 6520 BCDD F2DF E765
Baptiste Coudurier 8D77 134D 20CC 9220 201F C5DB 0AC9 325C 5C1A BAAA
Ben Littler 3EE3 3723 E560 3214 A8CD 4DEB 2CDB FCE7 768C 8D2C
Benoit Fouet B22A 4F4F 43EF 636B BB66 FCDC 0023 AE1E 2985 49C8
Bœsch Clément 52D0 3A82 D445 F194 DB8B 2B16 87EE 2CB8 F4B8 FCF9
Clément Bœsch 52D0 3A82 D445 F194 DB8B 2B16 87EE 2CB8 F4B8 FCF9
Daniel Verkamp 78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
Diego Biurrun 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
FFmpeg release signing key FCF9 86EA 15E6 E293 A564 4F10 B432 2F04 D676 58D8
@@ -533,12 +561,14 @@ Michael Niedermayer 9FF2 128B 147E F673 0BAD F133 611E C787 040B 0FAB
Nicolas George 24CE 01CE 9ACC 5CEB 74D8 8D9D B063 D997 36E5 4C93
Panagiotis Issaris 6571 13A3 33D9 3726 F728 AA98 F643 B12E ECF3 E029
Peter Ross A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B
Reimar Döffinger C61D 16E5 9E2C D10C 8958 38A4 0899 A2B9 06D4 D9C7
Reimar Doeffinger C61D 16E5 9E2C D10C 8958 38A4 0899 A2B9 06D4 D9C7
Reinhard Tartler 9300 5DC2 7E87 6C37 ED7B CA9A 9808 3544 9453 48A4
Reynaldo H. Verdejo Pinochet 6E27 CD34 170C C78E 4D4F 5F40 C18E 077F 3114 452A
Robert Swain EE7A 56EA 4A81 A7B5 2001 A521 67FA 362D A2FC 3E71
Sascha Sommer 38A0 F88B 868E 9D3A 97D4 D6A0 E823 706F 1E07 0D3C
Stefano Sabatini 0D0B AD6B 5330 BBAD D3D6 6A0C 719C 2839 FC43 2D5F
Stephan Hilb 4F38 0B3A 5F39 B99B F505 E562 8D5C 5554 4E17 8863
Tiancheng "Timothy" Gu 9456 AFC0 814A 8139 E994 8351 7FE6 B095 B582 B0D4
Tim Nicholson 38CF DB09 3ED0 F607 8B67 6CED 0C0B FC44 8B0B FC83
Tomas Härdin A79D 4E3D F38F 763F 91F5 8B33 A01E 8AE0 41BB 2551
Wei Gao 4269 7741 857A 0E60 9EC5 08D2 4744 4EFA 62C1 87B9

View File

@@ -4,39 +4,49 @@ include config.mak
vpath %.c $(SRC_PATH)
vpath %.cpp $(SRC_PATH)
vpath %.h $(SRC_PATH)
vpath %.m $(SRC_PATH)
vpath %.S $(SRC_PATH)
vpath %.asm $(SRC_PATH)
vpath %.rc $(SRC_PATH)
vpath %.v $(SRC_PATH)
vpath %.texi $(SRC_PATH)
vpath %/fate_config.sh.template $(SRC_PATH)
PROGS-$(CONFIG_FFMPEG) += ffmpeg
PROGS-$(CONFIG_FFPLAY) += ffplay
PROGS-$(CONFIG_FFPROBE) += ffprobe
PROGS-$(CONFIG_FFSERVER) += ffserver
AVPROGS-$(CONFIG_FFMPEG) += ffmpeg
AVPROGS-$(CONFIG_FFPLAY) += ffplay
AVPROGS-$(CONFIG_FFPROBE) += ffprobe
AVPROGS-$(CONFIG_FFSERVER) += ffserver
PROGS := $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
AVPROGS := $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF))
INSTPROGS = $(AVPROGS-yes:%=%$(PROGSSUF)$(EXESUF))
PROGS += $(AVPROGS)
AVBASENAMES = ffmpeg ffplay ffprobe ffserver
ALLAVPROGS = $(AVBASENAMES:%=%$(PROGSSUF)$(EXESUF))
ALLAVPROGS_G = $(AVBASENAMES:%=%$(PROGSSUF)_g$(EXESUF))
$(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog) += cmdutils.o))
$(foreach prog,$(AVBASENAMES),$(eval OBJS-$(prog)-$(CONFIG_OPENCL) += cmdutils_opencl.o))
OBJS-ffmpeg += ffmpeg_opt.o ffmpeg_filter.o
OBJS-ffmpeg-$(HAVE_VDPAU_X11) += ffmpeg_vdpau.o
OBJS-ffmpeg-$(HAVE_DXVA2_LIB) += ffmpeg_dxva2.o
OBJS-ffmpeg-$(CONFIG_VDA) += ffmpeg_vda.o
OBJS = cmdutils.o $(EXEOBJS)
OBJS-ffmpeg = ffmpeg_opt.o ffmpeg_filter.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr tiny_ssim base64
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
TOOLS = qt-faststart trasher
TOOLS = qt-faststart trasher uncoded_frame
TOOLS-$(CONFIG_ZLIB) += cws2fws
BASENAMES = ffmpeg ffplay ffprobe ffserver
ALLPROGS = $(BASENAMES:%=%$(PROGSSUF)$(EXESUF))
ALLPROGS_G = $(BASENAMES:%=%$(PROGSSUF)_g$(EXESUF))
FFLIBS-$(CONFIG_AVDEVICE) += avdevice
FFLIBS-$(CONFIG_AVFILTER) += avfilter
FFLIBS-$(CONFIG_AVFORMAT) += avformat
# $(FFLIBS-yes) needs to be in linking order
FFLIBS-$(CONFIG_AVDEVICE) += avdevice
FFLIBS-$(CONFIG_AVFILTER) += avfilter
FFLIBS-$(CONFIG_AVFORMAT) += avformat
FFLIBS-$(CONFIG_AVCODEC) += avcodec
FFLIBS-$(CONFIG_AVRESAMPLE) += avresample
FFLIBS-$(CONFIG_AVCODEC) += avcodec
FFLIBS-$(CONFIG_POSTPROC) += postproc
FFLIBS-$(CONFIG_SWRESAMPLE)+= swresample
FFLIBS-$(CONFIG_SWSCALE) += swscale
FFLIBS-$(CONFIG_POSTPROC) += postproc
FFLIBS-$(CONFIG_SWRESAMPLE) += swresample
FFLIBS-$(CONFIG_SWSCALE) += swscale
FFLIBS := avutil
@@ -50,16 +60,14 @@ include $(SRC_PATH)/common.mak
FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS)
all: $(PROGS)
$(PROGS): %$(EXESUF): %_g$(EXESUF)
$(CP) $< $@
$(STRIP) $@
all: $(AVPROGS)
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS)
config.h: .config
.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
@@ -69,11 +77,10 @@ config.h: .config
SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ARMV5TE-OBJS ARMV6-OBJS VFP-OBJS NEON-OBJS \
ALTIVEC-OBJS VIS-OBJS \
MMX-OBJS YASM-OBJS \
ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS \
ALTIVEC-OBJS MMX-OBJS YASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \
OBJS HOSTOBJS TESTOBJS
OBJS SLIBOBJS HOSTOBJS TESTOBJS
define RESET
$(1) :=
@@ -90,8 +97,10 @@ endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
include $(SRC_PATH)/doc/Makefile
define DOPROG
OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS)
OBJS-$(1) += $(1).o $(EXEOBJS) $(OBJS-$(1)-yes)
$(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1))
$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1))
$(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
@@ -99,7 +108,13 @@ $(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1))
-include $$(OBJS-$(1):.o=.d)
endef
$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P))))
$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(PROGSSUF)$(EXESUF)=))))
ffprobe.o cmdutils.o : libavutil/ffversion.h
$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF)
$(CP) $< $@
$(STRIP) $@
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
@@ -114,14 +129,14 @@ GIT_LOG = $(SRC_PATH)/.git/logs/HEAD
.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak
.version: M=@
version.h .version:
$(M)$(VERSION_SH) $(SRC_PATH) version.h $(EXTRA_VERSION)
libavutil/ffversion.h .version:
$(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)
$(Q)touch .version
# force version.sh to run whenever version might have changed
-include .version
ifdef PROGS
ifdef AVPROGS
install: install-progs install-data
endif
@@ -132,7 +147,7 @@ install-libs: install-libs-yes
install-progs-yes:
install-progs-$(CONFIG_SHARED): install-libs
install-progs: install-progs-yes $(PROGS)
install-progs: install-progs-yes $(AVPROGS)
$(Q)mkdir -p "$(BINDIR)"
$(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"
@@ -144,13 +159,13 @@ install-data: $(DATA_FILES) $(EXAMPLES_FILES)
uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
uninstall-progs:
$(RM) $(addprefix "$(BINDIR)/", $(ALLPROGS))
$(RM) $(addprefix "$(BINDIR)/", $(ALLAVPROGS))
uninstall-data:
$(RM) -r "$(DATADIR)"
clean::
$(RM) $(ALLPROGS) $(ALLPROGS_G)
$(RM) $(ALLAVPROGS) $(ALLAVPROGS_G)
$(RM) $(CLEANSUFFIXES)
$(RM) $(CLEANSUFFIXES:%=tools/%)
$(RM) -r coverage-html
@@ -158,14 +173,13 @@ clean::
distclean::
$(RM) $(DISTCLEANSUFFIXES)
$(RM) config.* .config libavutil/avconfig.h .version version.h libavcodec/codec_names.h
$(RM) config.* .config libavutil/avconfig.h .version version.h libavutil/ffversion.h libavcodec/codec_names.h
config:
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
check: all alltools examples testprogs fate
include $(SRC_PATH)/doc/Makefile
include $(SRC_PATH)/tests/Makefile
$(sort $(OBJDIRS)):

View File

@@ -1,10 +1,11 @@
FFmpeg README
-------------
=============
1) Documentation
----------------
* Read the documentation in the doc/ directory in git.
You can also view it online at http://ffmpeg.org/documentation.html
2) Licensing

View File

@@ -1 +1 @@
2.1.8
2.3.3

177
RELEASE_NOTES Normal file
View File

@@ -0,0 +1,177 @@
┌───────────────────────────────────────────┐
│ RELEASE NOTES for FFmpeg 2.3 "Mandelbrot" │
└───────────────────────────────────────────┘
The FFmpeg Project proudly presents FFmpeg 2.3 "Mandelbrot", a major
release with all the great features committed during the three-month period
since the release of FFmpeg 2.2.
In this release, there are lots of internal overhauls that make FFmpeg a
more accessible project for new developers. Many important new
optimizations and features like QTKit and AVFoundation input devices are
committed. Contributions done by Libav such as a new native Opus decoder
are also merged.
Because of the increasing difficulty to maintain and lack of maintainers,
we are very sorry to say that we have removed all Blackfin and SPARC
architecture assembly optimizations with the cleanups done. If you are
interested in maintaining optimization for these two architecture, feel
free to contact us and we will restore the code!
Oh, and since this release, this modern-looking release note is provided in
addition to the old-style Changelog file, to make it easier for you to
focus on the most important features in this release.
Enjoy!
┌────────────────────────────┐
│ * API Information │
└────────────────────────────┘
FFmpeg 2.3 is completely source-compatible to the FFmpeg 2.2 series. There
are however some API deprecations that you need to take care of. Use `git
diff n2.2 n2.3 doc/APIchanges` to show the list of added and deprecated
APIs. FFmpeg 2.3 includes the following library versions:
• libavutil 52.92.100
• libavcodec 55.69.100
• libavformat 55.48.100
• libavdevice 55.13.102
• libavfilter 4.11.100
• libswscale 2. 6.100
• libswresample 0.19.100
• libpostproc 52. 3.100
Please refer to the doc/APIChanges file for more information.
┌────────────────────────────┐
│ New Optimization │
└────────────────────────────┘
We are excited to announce that we have committed new x86 assembly
optimization for HEVC, and FFmpeg's audio resampler libswresample. ARM
users will get a boost in MLP/TrueHD decoding thanks to new optimization.
Decoding Huffyuv also got a major boost from optimization on the C code.
Of special interest for Microsoft Visual Studio users, we have also
converted some preexisting x86 assembly to NASM/Yasm format compatible
with MSVC setup, especially in the area of audio resampling.
Another major feature in this release is the introduction of AArch64
(ARMv8) assembly optimization. AArch64 is another name for the first
64-bit ARM architecture, used by Apple A7 SoC inside iPhone 5S. Some
32-bit ARM assembly has already been ported to AArch64, but more work is
underway.
┌────────────────────────────┐
│ Native Opus decoder │
└────────────────────────────┘
Opus is an open audio format jointly developed by Xiph.Org, Mozilla,
Skype/Microsoft, and Broadcom. It combines the features of the Skype Cilk
speech codec and the Xiph.Org CELT music codec into one low-latency
codec. Decoding Opus is already possible since FFmpeg 1.0 using the
libopus library, but the new Opus native decoder brings a higher level of
stability and speed.
┌────────────────────────────┐
│ QTKit and AVFoundation │
└────────────────────────────┘
For OS X users, the new QTKit and AVFoundation devices allow you to use
the integrated camera on Macs. AVFoundation is a newer API only available
on OS X 10.7 "Lion" or newer. For users with older OS X systems, the
QTKit device using the older OS X API is for you.
┌────────────────────────────┐
│ API Additions │
└────────────────────────────┘
In this release, stream side data are introduced as AVStream.side_data as
a way to store miscellaneous stream-wide information. The format is
similar to the previously anonymous structure AVPacket.side_data (now
named as AVPacketSideData). With this change, audio ReplayGain
information and video rotation matrix are now exported through this API,
if available in the demuxer.
We also have improved libswresample's Doxygen API documentation, so new
developers wishing to use FFmpeg's excellent libraries can get started
more easily and faster.
┌────────────────────────────┐
│ Last But Not Least │
└────────────────────────────┘
Other interesting new features including hqx video filter, a pixel art
scaling filter; a fixed-point AC-3 decoder contributed by Imagination
Technologies; an On2 TrueMotion VP7 video decoder; an HTML5 WebVTT
subtitle encoder that allows creation of WebVTT from any text-based
subtitles; and an 1-bit Direct Stream Digital audio decoder.
┌────────────────────────────┐
│ ★ List of New Features │
└────────────────────────────┘
┌────────────────────────────┐
│ Command line tools │
└────────────────────────────┘
• Support for decoding through DXVA2 in ffmpeg
┌────────────────────────────┐
│ libavcodec │
└────────────────────────────┘
• AC3 fixed-point decoding
• VP7 video decoder
• Alias PIX image encoder and decoder
• Improvements to the BRender PIX image decoder
• Improvements to the XBM decoder
• Improvements to OpenEXR image decoder
• Support decoding 16-bit RLE SGI images
• Direct Stream Digital (DSD) decoder
• On2 AVC (Audio for Video) decoder
• Native Opus decoder
• WebVTT encoder
┌────────────────────────────┐
│ libavdevice │
└────────────────────────────┘
• QTKit input device
• GDI screen grabbing for Windows
• AVFoundation input device
┌────────────────────────────┐
│ libavformat │
└────────────────────────────┘
• subfile protocol
• Phantom Cine demuxer
• Alternative rendition support for HTTP Live Streaming
• Magic Lantern Video (MLV) demuxer
• Image format auto-detection
• LRC lyric file demuxer and muxer
• Samba protocol (via libsmbclient)
• WebM DASH Manifest muxer
┌────────────────────────────┐
│ libavfilter │
└────────────────────────────┘
• shuffleplanes filter
• libbs2b-based stereo-to-binaural audio filter
• showcqt multimedia filter
• zoompan filter
• signalstats filter
• hqx filter (hq2x, hq3x, hq4x)
• flanger filter
• libfribidi support in drawtext
┌────────────────────────────┐
│ ⚠ Behaviour changes │
└────────────────────────────┘
• libx264 reference frames count is now limited depending on level chosen
• Because of the new image format auto-detection feature, you don't need to
specify image format when decoding an image with no extension.

View File

@@ -1 +0,0 @@
2.1.8

View File

@@ -1,5 +1,6 @@
OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes)
OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes)
OBJS-$(HAVE_ARMV8) += $(ARMV8-OBJS) $(ARMV8-OBJS-yes)
OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-OBJS-yes)
OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes)
@@ -10,7 +11,5 @@ OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes)
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes)
OBJS-$(HAVE_VIS) += $(VIS-OBJS) $(VIS-OBJS-yes)
OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes)
OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes)

View File

@@ -20,6 +20,7 @@
*/
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
@@ -48,8 +49,8 @@
#include "libavutil/dict.h"
#include "libavutil/opt.h"
#include "libavutil/cpu.h"
#include "libavutil/ffversion.h"
#include "cmdutils.h"
#include "version.h"
#if CONFIG_NETWORK
#include "libavformat/network.h"
#endif
@@ -57,10 +58,6 @@
#include <sys/time.h>
#include <sys/resource.h>
#endif
#if CONFIG_OPENCL
#include "libavutil/opencl.h"
#endif
static int init_report(const char *env);
@@ -68,9 +65,9 @@ struct SwsContext *sws_opts;
AVDictionary *swr_opts;
AVDictionary *format_opts, *codec_opts, *resample_opts;
const int this_year = 2015;
static FILE *report_file;
static int report_file_level = AV_LOG_DEBUG;
int hide_banner = 0;
void init_opts(void)
{
@@ -108,8 +105,10 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v
av_log_default_callback(ptr, level, fmt, vl);
av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix);
va_end(vl2);
fputs(line, report_file);
fflush(report_file);
if (report_file_level >= level) {
fputs(line, report_file);
fflush(report_file);
}
}
static void (*program_exit)(int ret);
@@ -496,6 +495,9 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options)
fflush(report_file);
}
}
idx = locate_option(argc, argv, options, "hide_banner");
if (idx)
hide_banner = 1;
}
static const AVOption *opt_find(void *obj, const char *name, const char *unit,
@@ -553,6 +555,11 @@ int opt_default(void *optctx, const char *opt, const char *arg)
}
consumed = 1;
}
#else
if (!consumed && !strcmp(opt, "sws_flags")) {
av_log(NULL, AV_LOG_WARNING, "Ignoring %s %s, due to disabled swscale\n", opt, arg);
consumed = 1;
}
#endif
#if CONFIG_SWRESAMPLE
swr_class = swr_get_class();
@@ -663,7 +670,7 @@ static void init_parse_context(OptionParseContext *octx,
memset(octx, 0, sizeof(*octx));
octx->nb_groups = nb_groups;
octx->groups = av_mallocz(sizeof(*octx->groups) * octx->nb_groups);
octx->groups = av_mallocz_array(octx->nb_groups, sizeof(*octx->groups));
if (!octx->groups)
exit_program(1);
@@ -835,10 +842,17 @@ int opt_loglevel(void *optctx, const char *opt, const char *arg)
};
char *tail;
int level;
int flags;
int i;
flags = av_log_get_flags();
tail = strstr(arg, "repeat");
av_log_set_flags(tail ? 0 : AV_LOG_SKIP_REPEATED);
if (tail)
flags &= ~AV_LOG_SKIP_REPEATED;
else
flags |= AV_LOG_SKIP_REPEATED;
av_log_set_flags(flags);
if (tail == arg)
arg += 6 + (arg[6]=='+');
if(tail && !*arg)
@@ -920,6 +934,13 @@ static int init_report(const char *env)
av_free(filename_template);
filename_template = val;
val = NULL;
} else if (!strcmp(key, "level")) {
char *tail;
report_file_level = strtol(val, &tail, 10);
if (*tail) {
av_log(NULL, AV_LOG_FATAL, "Invalid report file level\n");
exit_program(1);
}
} else {
av_log(NULL, AV_LOG_ERROR, "Unknown key '%s' in FFREPORT\n", key);
}
@@ -986,26 +1007,6 @@ int opt_timelimit(void *optctx, const char *opt, const char *arg)
return 0;
}
#if CONFIG_OPENCL
int opt_opencl(void *optctx, const char *opt, const char *arg)
{
char *key, *value;
const char *opts = arg;
int ret = 0;
while (*opts) {
ret = av_opt_get_key_value(&opts, "=", ":", 0, &key, &value);
if (ret < 0)
return ret;
ret = av_opencl_set_option(key, value);
if (ret < 0)
return ret;
if (*opts)
opts++;
}
return ret;
}
#endif
void print_error(const char *filename, int err)
{
char errbuf[128];
@@ -1071,7 +1072,7 @@ static void print_program_info(int flags, int level)
av_log(NULL, level, "%s version " FFMPEG_VERSION, program_name);
if (flags & SHOW_COPYRIGHT)
av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers",
program_birth_year, this_year);
program_birth_year, CONFIG_THIS_YEAR);
av_log(NULL, level, "\n");
av_log(NULL, level, "%sbuilt on %s %s with %s\n",
indent, __DATE__, __TIME__, CC_IDENT);
@@ -1079,10 +1080,36 @@ static void print_program_info(int flags, int level)
av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent);
}
static void print_buildconf(int flags, int level)
{
const char *indent = flags & INDENT ? " " : "";
char str[] = { FFMPEG_CONFIGURATION };
char *conflist, *remove_tilde, *splitconf;
// Change all the ' --' strings to '~--' so that
// they can be identified as tokens.
while ((conflist = strstr(str, " --")) != NULL) {
strncpy(conflist, "~--", 3);
}
// Compensate for the weirdness this would cause
// when passing 'pkg-config --static'.
while ((remove_tilde = strstr(str, "pkg-config~")) != NULL) {
strncpy(remove_tilde, "pkg-config ", 11);
}
splitconf = strtok(str, "~");
av_log(NULL, level, "\n%sconfiguration:\n", indent);
while (splitconf != NULL) {
av_log(NULL, level, "%s%s%s\n", indent, indent, splitconf);
splitconf = strtok(NULL, "~");
}
}
void show_banner(int argc, char **argv, const OptionDef *options)
{
int idx = locate_option(argc, argv, options, "version");
if (idx)
if (hide_banner || idx)
return;
print_program_info (INDENT|SHOW_COPYRIGHT, AV_LOG_INFO);
@@ -1093,12 +1120,20 @@ void show_banner(int argc, char **argv, const OptionDef *options)
int show_version(void *optctx, const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
print_program_info (0 , AV_LOG_INFO);
print_program_info (SHOW_COPYRIGHT, AV_LOG_INFO);
print_all_libs_info(SHOW_VERSION, AV_LOG_INFO);
return 0;
}
int show_buildconf(void *optctx, const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
print_buildconf (INDENT|0, AV_LOG_INFO);
return 0;
}
int show_license(void *optctx, const char *opt, const char *arg)
{
#if CONFIG_NONFREE
@@ -1173,16 +1208,29 @@ int show_license(void *optctx, const char *opt, const char *arg)
return 0;
}
int show_formats(void *optctx, const char *opt, const char *arg)
static int is_device(const AVClass *avclass)
{
if (!avclass)
return 0;
return avclass->category == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT ||
avclass->category == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT ||
avclass->category == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT ||
avclass->category == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT ||
avclass->category == AV_CLASS_CATEGORY_DEVICE_OUTPUT ||
avclass->category == AV_CLASS_CATEGORY_DEVICE_INPUT;
}
static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only)
{
AVInputFormat *ifmt = NULL;
AVOutputFormat *ofmt = NULL;
const char *last_name;
int is_dev;
printf("File formats:\n"
printf("%s\n"
" D. = Demuxing supported\n"
" .E = Muxing supported\n"
" --\n");
" --\n", device_only ? "Devices:" : "File formats:");
last_name = "000";
for (;;) {
int decode = 0;
@@ -1191,6 +1239,9 @@ int show_formats(void *optctx, const char *opt, const char *arg)
const char *long_name = NULL;
while ((ofmt = av_oformat_next(ofmt))) {
is_dev = is_device(ofmt->priv_class);
if (!is_dev && device_only)
continue;
if ((name == NULL || strcmp(ofmt->name, name) < 0) &&
strcmp(ofmt->name, last_name) > 0) {
name = ofmt->name;
@@ -1199,6 +1250,9 @@ int show_formats(void *optctx, const char *opt, const char *arg)
}
}
while ((ifmt = av_iformat_next(ifmt))) {
is_dev = is_device(ifmt->priv_class);
if (!is_dev && device_only)
continue;
if ((name == NULL || strcmp(ifmt->name, name) < 0) &&
strcmp(ifmt->name, last_name) > 0) {
name = ifmt->name;
@@ -1221,6 +1275,16 @@ int show_formats(void *optctx, const char *opt, const char *arg)
return 0;
}
int show_formats(void *optctx, const char *opt, const char *arg)
{
return show_formats_devices(optctx, opt, arg, 0);
}
int show_devices(void *optctx, const char *opt, const char *arg)
{
return show_formats_devices(optctx, opt, arg, 1);
}
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \
if (codec->field) { \
const type *p = codec->field; \
@@ -1365,6 +1429,9 @@ int show_codecs(void *optctx, const char *opt, const char *arg)
const AVCodecDescriptor *desc = codecs[i];
const AVCodec *codec = NULL;
if (strstr(desc->name, "_deprecated"))
continue;
printf(" ");
printf(avcodec_find_decoder(desc->id) ? "D" : ".");
printf(avcodec_find_encoder(desc->id) ? "E" : ".");
@@ -1518,7 +1585,7 @@ int show_filters(void *optctx, const char *opt, const char *arg)
return 0;
}
void show_colors(void *optctx, const char *opt, const char *arg)
int show_colors(void *optctx, const char *opt, const char *arg)
{
const char *name;
const uint8_t *rgb;
@@ -1528,6 +1595,8 @@ void show_colors(void *optctx, const char *opt, const char *arg)
for (i = 0; name = av_get_known_color_name(i, &rgb); i++)
printf("%-32s #%02x%02x%02x\n", name, rgb[0], rgb[1], rgb[2]);
return 0;
}
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
@@ -1789,7 +1858,7 @@ int read_yesno(void)
int cmdutils_read_file(const char *filename, char **bufptr, size_t *size)
{
int ret;
FILE *f = fopen(filename, "rb");
FILE *f = av_fopen_utf8(filename, "rb");
if (!f) {
av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename,
@@ -1927,7 +1996,8 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id,
}
if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) ||
(codec && codec->priv_class &&
!codec ||
(codec->priv_class &&
av_opt_find(&codec->priv_class, t->key, NULL, flags,
AV_OPT_SEARCH_FAKE_OBJ)))
av_dict_set(&ret, t->key, t->value, 0);
@@ -1950,7 +2020,7 @@ AVDictionary **setup_find_stream_info_opts(AVFormatContext *s,
if (!s->nb_streams)
return NULL;
opts = av_mallocz(s->nb_streams * sizeof(*opts));
opts = av_mallocz_array(s->nb_streams, sizeof(*opts));
if (!opts) {
av_log(NULL, AV_LOG_ERROR,
"Could not alloc memory for stream options.\n");

View File

@@ -24,12 +24,13 @@
#include <stdint.h>
#include "config.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#ifdef __MINGW32__
#ifdef _WIN32
#undef main /* We don't want SDL to override our main() */
#endif
@@ -43,16 +44,12 @@ extern const char program_name[];
*/
extern const int program_birth_year;
/**
* this year, defined by the program for show_banner()
*/
extern const int this_year;
extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB];
extern AVFormatContext *avformat_opts;
extern struct SwsContext *sws_opts;
extern AVDictionary *swr_opts;
extern AVDictionary *format_opts, *codec_opts, *resample_opts;
extern int hide_banner;
/**
* Register a program-specific cleanup routine.
@@ -62,7 +59,7 @@ void register_exit(void (*cb)(int ret));
/**
* Wraps exit with a program-specific cleanup routine.
*/
void exit_program(int ret);
void exit_program(int ret) av_noreturn;
/**
* Initialize the cmdutils option system, in particular
@@ -103,8 +100,12 @@ int opt_max_alloc(void *optctx, const char *opt, const char *arg);
int opt_codec_debug(void *optctx, const char *opt, const char *arg);
#if CONFIG_OPENCL
int opt_opencl(void *optctx, const char *opt, const char *arg);
int opt_opencl_bench(void *optctx, const char *opt, const char *arg);
#endif
/**
* Limit the execution time.
*/
@@ -414,6 +415,13 @@ void show_banner(int argc, char **argv, const OptionDef *options);
*/
int show_version(void *optctx, const char *opt, const char *arg);
/**
* Print the build configuration of the program to stdout. The contents
* depend on the definition of FFMPEG_CONFIGURATION.
* This option processing function does not utilize the arguments.
*/
int show_buildconf(void *optctx, const char *opt, const char *arg);
/**
* Print the license of the program to stdout. The license depends on
* the license of the libraries compiled into the program.
@@ -423,11 +431,18 @@ int show_license(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the formats supported by the
* program.
* program (including devices).
* This option processing function does not utilize the arguments.
*/
int show_formats(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the devices supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int show_devices(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the codecs supported by the
* program.
@@ -492,7 +507,7 @@ int show_sample_fmts(void *optctx, const char *opt, const char *arg);
* Print a listing containing all the color names and values recognized
* by the program.
*/
void show_colors(void *optctx, const char *opt, const char *arg);
int show_colors(void *optctx, const char *opt, const char *arg);
/**
* Return a positive value if a line read from standard input

View File

@@ -4,7 +4,9 @@
{ "help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" },
{ "-help" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" },
{ "version" , OPT_EXIT, {.func_arg = show_version}, "show version" },
{ "buildconf" , OPT_EXIT, {.func_arg = show_buildconf}, "show build configuration" },
{ "formats" , OPT_EXIT, {.func_arg = show_formats }, "show available formats" },
{ "devices" , OPT_EXIT, {.func_arg = show_devices }, "show available devices" },
{ "codecs" , OPT_EXIT, {.func_arg = show_codecs }, "show available codecs" },
{ "decoders" , OPT_EXIT, {.func_arg = show_decoders }, "show available decoders" },
{ "encoders" , OPT_EXIT, {.func_arg = show_encoders }, "show available encoders" },
@@ -20,6 +22,8 @@
{ "report" , 0, {(void*)opt_report}, "generate a report" },
{ "max_alloc" , HAS_ARG, {.func_arg = opt_max_alloc}, "set maximum size of a single allocated block", "bytes" },
{ "cpuflags" , HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, "force specific cpu flags", "flags" },
{ "hide_banner", OPT_BOOL | OPT_EXPERT, {&hide_banner}, "do not show program banner", "hide_banner" },
#if CONFIG_OPENCL
{ "opencl_bench", OPT_EXIT, {.func_arg = opt_opencl_bench}, "run benchmark on all OpenCL devices and show results" },
{ "opencl_options", HAS_ARG, {.func_arg = opt_opencl}, "set OpenCL environment options" },
#endif

274
cmdutils_opencl.c Normal file
View File

@@ -0,0 +1,274 @@
/*
* Copyright (C) 2013 Lenny Wang
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavutil/log.h"
#include "libavutil/opencl.h"
#include "cmdutils.h"
typedef struct {
int platform_idx;
int device_idx;
char device_name[64];
int64_t runtime;
} OpenCLDeviceBenchmark;
const char *ocl_bench_source = AV_OPENCL_KERNEL(
inline unsigned char clip_uint8(int a)
{
if (a & (~0xFF))
return (-a)>>31;
else
return a;
}
kernel void unsharp_bench(
global unsigned char *src,
global unsigned char *dst,
global int *mask,
int width,
int height)
{
int i, j, local_idx, lc_idx, sum = 0;
int2 thread_idx, block_idx, global_idx, lm_idx;
thread_idx.x = get_local_id(0);
thread_idx.y = get_local_id(1);
block_idx.x = get_group_id(0);
block_idx.y = get_group_id(1);
global_idx.x = get_global_id(0);
global_idx.y = get_global_id(1);
local uchar data[32][32];
local int lc[128];
for (i = 0; i <= 1; i++) {
lm_idx.y = -8 + (block_idx.y + i) * 16 + thread_idx.y;
lm_idx.y = lm_idx.y < 0 ? 0 : lm_idx.y;
lm_idx.y = lm_idx.y >= height ? height - 1: lm_idx.y;
for (j = 0; j <= 1; j++) {
lm_idx.x = -8 + (block_idx.x + j) * 16 + thread_idx.x;
lm_idx.x = lm_idx.x < 0 ? 0 : lm_idx.x;
lm_idx.x = lm_idx.x >= width ? width - 1: lm_idx.x;
data[i*16 + thread_idx.y][j*16 + thread_idx.x] = src[lm_idx.y*width + lm_idx.x];
}
}
local_idx = thread_idx.y*16 + thread_idx.x;
if (local_idx < 128)
lc[local_idx] = mask[local_idx];
barrier(CLK_LOCAL_MEM_FENCE);
\n#pragma unroll\n
for (i = -4; i <= 4; i++) {
lm_idx.y = 8 + i + thread_idx.y;
\n#pragma unroll\n
for (j = -4; j <= 4; j++) {
lm_idx.x = 8 + j + thread_idx.x;
lc_idx = (i + 4)*8 + j + 4;
sum += (int)data[lm_idx.y][lm_idx.x] * lc[lc_idx];
}
}
int temp = (int)data[thread_idx.y + 8][thread_idx.x + 8];
int res = temp + (((temp - (int)((sum + 1<<15) >> 16))) >> 16);
if (global_idx.x < width && global_idx.y < height)
dst[global_idx.x + global_idx.y*width] = clip_uint8(res);
}
);
#define OCLCHECK(method, ... ) \
do { \
status = method(__VA_ARGS__); \
if (status != CL_SUCCESS) { \
av_log(NULL, AV_LOG_ERROR, # method " error '%s'\n", \
av_opencl_errstr(status)); \
ret = AVERROR_EXTERNAL; \
goto end; \
} \
} while (0)
#define CREATEBUF(out, flags, size) \
do { \
out = clCreateBuffer(ext_opencl_env->context, flags, size, NULL, &status); \
if (status != CL_SUCCESS) { \
av_log(NULL, AV_LOG_ERROR, "Could not create OpenCL buffer\n"); \
ret = AVERROR_EXTERNAL; \
goto end; \
} \
} while (0)
static void fill_rand_int(int *data, int n)
{
int i;
srand(av_gettime());
for (i = 0; i < n; i++)
data[i] = rand();
}
#define OPENCL_NB_ITER 5
static int64_t run_opencl_bench(AVOpenCLExternalEnv *ext_opencl_env)
{
int i, arg = 0, width = 1920, height = 1088;
int64_t start, ret = 0;
cl_int status;
size_t kernel_len;
char *inbuf;
int *mask;
int buf_size = width * height * sizeof(char);
int mask_size = sizeof(uint32_t) * 128;
cl_mem cl_mask, cl_inbuf, cl_outbuf;
cl_kernel kernel = NULL;
cl_program program = NULL;
size_t local_work_size_2d[2] = {16, 16};
size_t global_work_size_2d[2] = {(size_t)width, (size_t)height};
if (!(inbuf = av_malloc(buf_size)) || !(mask = av_malloc(mask_size))) {
av_log(NULL, AV_LOG_ERROR, "Out of memory\n");
ret = AVERROR(ENOMEM);
goto end;
}
fill_rand_int((int*)inbuf, buf_size/4);
fill_rand_int(mask, mask_size/4);
CREATEBUF(cl_mask, CL_MEM_READ_ONLY, mask_size);
CREATEBUF(cl_inbuf, CL_MEM_READ_ONLY, buf_size);
CREATEBUF(cl_outbuf, CL_MEM_READ_WRITE, buf_size);
kernel_len = strlen(ocl_bench_source);
program = clCreateProgramWithSource(ext_opencl_env->context, 1, &ocl_bench_source,
&kernel_len, &status);
if (status != CL_SUCCESS || !program) {
av_log(NULL, AV_LOG_ERROR, "OpenCL unable to create benchmark program\n");
ret = AVERROR_EXTERNAL;
goto end;
}
status = clBuildProgram(program, 1, &(ext_opencl_env->device_id), NULL, NULL, NULL);
if (status != CL_SUCCESS) {
av_log(NULL, AV_LOG_ERROR, "OpenCL unable to build benchmark program\n");
ret = AVERROR_EXTERNAL;
goto end;
}
kernel = clCreateKernel(program, "unsharp_bench", &status);
if (status != CL_SUCCESS) {
av_log(NULL, AV_LOG_ERROR, "OpenCL unable to create benchmark kernel\n");
ret = AVERROR_EXTERNAL;
goto end;
}
OCLCHECK(clEnqueueWriteBuffer, ext_opencl_env->command_queue, cl_inbuf, CL_TRUE, 0,
buf_size, inbuf, 0, NULL, NULL);
OCLCHECK(clEnqueueWriteBuffer, ext_opencl_env->command_queue, cl_mask, CL_TRUE, 0,
mask_size, mask, 0, NULL, NULL);
OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_mem), &cl_inbuf);
OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_mem), &cl_outbuf);
OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_mem), &cl_mask);
OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_int), &width);
OCLCHECK(clSetKernelArg, kernel, arg++, sizeof(cl_int), &height);
start = av_gettime_relative();
for (i = 0; i < OPENCL_NB_ITER; i++)
OCLCHECK(clEnqueueNDRangeKernel, ext_opencl_env->command_queue, kernel, 2, NULL,
global_work_size_2d, local_work_size_2d, 0, NULL, NULL);
clFinish(ext_opencl_env->command_queue);
ret = (av_gettime_relative() - start)/OPENCL_NB_ITER;
end:
if (kernel)
clReleaseKernel(kernel);
if (program)
clReleaseProgram(program);
if (cl_inbuf)
clReleaseMemObject(cl_inbuf);
if (cl_outbuf)
clReleaseMemObject(cl_outbuf);
if (cl_mask)
clReleaseMemObject(cl_mask);
av_free(inbuf);
av_free(mask);
return ret;
}
static int compare_ocl_device_desc(const void *a, const void *b)
{
return ((OpenCLDeviceBenchmark*)a)->runtime - ((OpenCLDeviceBenchmark*)b)->runtime;
}
int opt_opencl_bench(void *optctx, const char *opt, const char *arg)
{
int i, j, nb_devices = 0, count = 0;
int64_t score = 0;
AVOpenCLDeviceList *device_list;
AVOpenCLDeviceNode *device_node = NULL;
OpenCLDeviceBenchmark *devices = NULL;
cl_platform_id platform;
av_opencl_get_device_list(&device_list);
for (i = 0; i < device_list->platform_num; i++)
nb_devices += device_list->platform_node[i]->device_num;
if (!nb_devices) {
av_log(NULL, AV_LOG_ERROR, "No OpenCL device detected!\n");
return AVERROR(EINVAL);
}
if (!(devices = av_malloc_array(nb_devices, sizeof(OpenCLDeviceBenchmark)))) {
av_log(NULL, AV_LOG_ERROR, "Could not allocate buffer\n");
return AVERROR(ENOMEM);
}
for (i = 0; i < device_list->platform_num; i++) {
for (j = 0; j < device_list->platform_node[i]->device_num; j++) {
device_node = device_list->platform_node[i]->device_node[j];
platform = device_list->platform_node[i]->platform_id;
score = av_opencl_benchmark(device_node, platform, run_opencl_bench);
if (score > 0) {
devices[count].platform_idx = i;
devices[count].device_idx = j;
devices[count].runtime = score;
strcpy(devices[count].device_name, device_node->device_name);
count++;
}
}
}
qsort(devices, count, sizeof(OpenCLDeviceBenchmark), compare_ocl_device_desc);
fprintf(stderr, "platform_idx\tdevice_idx\tdevice_name\truntime\n");
for (i = 0; i < count; i++)
fprintf(stdout, "%d\t%d\t%s\t%"PRId64"\n",
devices[i].platform_idx, devices[i].device_idx,
devices[i].device_name, devices[i].runtime);
av_opencl_free_device_list(&device_list);
av_free(devices);
return 0;
}
int opt_opencl(void *optctx, const char *opt, const char *arg)
{
char *key, *value;
const char *opts = arg;
int ret = 0;
while (*opts) {
ret = av_opt_get_key_value(&opts, "=", ":", 0, &key, &value);
if (ret < 0)
return ret;
ret = av_opencl_set_option(key, value);
if (ret < 0)
return ret;
if (*opts)
opts++;
}
return ret;
}

View File

@@ -10,7 +10,7 @@ ifndef SUBDIR
ifndef V
Q = @
ECHO = printf "$(1)\t%s\n" $(2)
BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP
BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES
SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
MSG = $@
@@ -43,6 +43,7 @@ endef
COMPILE_C = $(call COMPILE,CC)
COMPILE_CXX = $(call COMPILE,CXX)
COMPILE_S = $(call COMPILE,AS)
COMPILE_HOSTC = $(call COMPILE,HOSTCC)
%.o: %.c
$(COMPILE_C)
@@ -50,12 +51,21 @@ COMPILE_S = $(call COMPILE,AS)
%.o: %.cpp
$(COMPILE_CXX)
%.o: %.m
$(COMPILE_C)
%.s: %.c
$(CC) $(CPPFLAGS) $(CFLAGS) -S -o $@ $<
%.o: %.S
$(COMPILE_S)
%_host.o: %.c
$(COMPILE_HOSTC)
%.o: %.rc
$(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
%.i: %.c
$(CC) $(CCFLAGS) $(CC_E) $<
@@ -82,14 +92,15 @@ endif
include $(SRC_PATH)/arch.mak
OBJS += $(OBJS-yes)
FFLIBS := $(FFLIBS-yes) $(FFLIBS)
SLIBOBJS += $(SLIBOBJS-yes)
FFLIBS := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS)
TESTPROGS += $(TESTPROGS-yes)
LDLIBS = $(FFLIBS:%=%$(BUILDSUF))
FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS)
EXAMPLES := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF))
OBJS := $(sort $(OBJS:%=$(SUBDIR)%))
SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%))
TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o)
TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF))
HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o)
@@ -113,18 +124,19 @@ checkheaders: $(HOBJS)
alltools: $(TOOLS)
$(HOSTOBJS): %.o: %.c
$(call COMPILE,HOSTCC)
$(COMPILE_HOSTC)
$(HOSTPROGS): %$(HOSTEXESUF): %.o
$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $< $(HOSTLIBS)
$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTLIBS)
$(OBJS): | $(sort $(dir $(OBJS)))
$(HOBJS): | $(sort $(dir $(HOBJS)))
$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))
$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
$(TOOLOBJS): | tools
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS))
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))
CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda
DISTCLEANSUFFIXES = *.pc
@@ -139,4 +151,4 @@ endef
$(eval $(RULES))
-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d))
-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d))

View File

@@ -13,7 +13,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
// MA 02110-1301 USA, or visit
// http://www.gnu.org/copyleft/gpl.html .
//
// As a special exception, I give you permission to link to the

View File

@@ -13,7 +13,8 @@
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
// MA 02110-1301 USA, or visit
// http://www.gnu.org/copyleft/gpl.html .
//
// As a special exception, I give you permission to link to the

35
compat/float/float.h Normal file
View File

@@ -0,0 +1,35 @@
/*
* Work around broken floating point limits on some systems.
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include_next <float.h>
#ifdef FLT_MAX
#undef FLT_MAX
#define FLT_MAX 3.40282346638528859812e+38F
#undef FLT_MIN
#define FLT_MIN 1.17549435082228750797e-38F
#undef DBL_MAX
#define DBL_MAX ((double)1.79769313486231570815e+308L)
#undef DBL_MIN
#define DBL_MIN ((double)2.22507385850720138309e-308L)
#endif

22
compat/float/limits.h Normal file
View File

@@ -0,0 +1,22 @@
/*
* Work around broken floating point limits on some systems.
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include_next <limits.h>
#include <float.h>

View File

@@ -38,8 +38,6 @@ static int optind = 1;
static int optopt;
static char *optarg;
#undef fprintf
static int getopt(int argc, char *argv[], char *opts)
{
static int sp = 1;

View File

@@ -32,6 +32,8 @@
#undef __STRICT_ANSI__ /* for _beginthread() */
#include <stdlib.h>
#include "libavutil/mem.h"
typedef TID pthread_t;
typedef void pthread_attr_t;

View File

@@ -24,3 +24,6 @@
#if !defined(va_copy) && defined(_MSC_VER)
#define va_copy(dst, src) ((dst) = (src))
#endif
#if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3
#define va_copy(dst, src) __va_copy(dst, src)
#endif

View File

@@ -134,28 +134,29 @@ typedef struct win32_cond_t {
volatile int is_broadcast;
} win32_cond_t;
static void pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
static int pthread_cond_init(pthread_cond_t *cond, const void *unused_attr)
{
win32_cond_t *win32_cond = NULL;
if (cond_init) {
cond_init(cond);
return;
return 0;
}
/* non native condition variables */
win32_cond = av_mallocz(sizeof(win32_cond_t));
if (!win32_cond)
return;
return ENOMEM;
cond->ptr = win32_cond;
win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL);
if (!win32_cond->semaphore)
return;
return ENOMEM;
win32_cond->waiters_done = CreateEvent(NULL, TRUE, FALSE, NULL);
if (!win32_cond->waiters_done)
return;
return ENOMEM;
pthread_mutex_init(&win32_cond->mtx_waiter_count, NULL);
pthread_mutex_init(&win32_cond->mtx_broadcast, NULL);
return 0;
}
static void pthread_cond_destroy(pthread_cond_t *cond)

132
compat/windows/makedef Executable file
View File

@@ -0,0 +1,132 @@
#!/bin/sh
# Copyright (c) 2013, Derek Buitenhuis
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# mktemp isn't POSIX, so supply an implementation
mktemp() {
echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$"
}
if [ $# -lt 2 ]; then
echo "Usage: makedef <version_script> <objects>" >&2
exit 0
fi
vscript=$1
shift
if [ ! -f "$vscript" ]; then
echo "Version script does not exist" >&2
exit 1
fi
for object in "$@"; do
if [ ! -f "$object" ]; then
echo "Object does not exist: ${object}" >&2
exit 1
fi
done
# Create a lib temporarily to dump symbols from.
# It's just much easier to do it this way
libname=$(mktemp -u "library").lib
trap 'rm -f -- $libname' EXIT
lib -out:${libname} $@ >/dev/null
if [ $? != 0 ]; then
echo "Could not create temporary library." >&2
exit 1
fi
IFS='
'
# Determine if we're building for x86 or x86_64 and
# set the symbol prefix accordingly.
prefix=""
arch=$(dumpbin -headers ${libname} |
tr '\t' ' ' |
grep '^ \+.\+machine \+(.\+)' |
head -1 |
sed -e 's/^ \{1,\}.\{1,\} \{1,\}machine \{1,\}(\(...\)).*/\1/')
if [ "${arch}" = "x86" ]; then
prefix="_"
else
if [ "${arch}" != "ARM" ] && [ "${arch}" != "x64" ]; then
echo "Unknown machine type." >&2
exit 1
fi
fi
started=0
regex="none"
for line in $(cat ${vscript} | tr '\t' ' '); do
# We only care about global symbols
echo "${line}" | grep -q '^ \+global:'
if [ $? = 0 ]; then
started=1
line=$(echo "${line}" | sed -e 's/^ \{1,\}global: *//')
else
echo "${line}" | grep -q '^ \+local:'
if [ $? = 0 ]; then
started=0
fi
fi
if [ ${started} = 0 ]; then
continue
fi
# Handle multiple symbols on one line
IFS=';'
# Work around stupid expansion to filenames
line=$(echo "${line}" | sed -e 's/\*/.\\+/g')
for exp in ${line}; do
# Remove leading and trailing whitespace
exp=$(echo "${exp}" | sed -e 's/^ *//' -e 's/ *$//')
if [ "${regex}" = "none" ]; then
regex="${exp}"
else
regex="${regex};${exp}"
fi
done
IFS='
'
done
dump=$(dumpbin -linkermember:1 ${libname})
rm ${libname}
IFS=';'
list=""
for exp in ${regex}; do
list="${list}"'
'$(echo "${dump}" |
sed -e '/public symbols/,$!d' -e '/^ \{1,\}Summary/,$d' -e "s/ \{1,\}${prefix}/ /" -e 's/ \{1,\}/ /g' |
tail -n +2 |
cut -d' ' -f3 |
grep "^${exp}" |
sed -e 's/^/ /')
done
echo "EXPORTS"
echo "${list}" | sort | uniq | tail -n +2

1625
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ since the last major version increase or the API was added.
The last version increases were:
libavcodec: 2013-03-xx
libavdevice: 2013-03-xx
libavfilter: 2012-06-22
libavfilter: 2013-12-xx
libavformat: 2013-03-xx
libavresample: 2012-10-05
libpostproc: 2011-04-18
@@ -15,31 +15,346 @@ libavutil: 2012-10-22
API changes, most recent first:
2013-10-27 - xxxxxxx - lavc 55.39.100 - avcodec.h
2014-07-14 - 62227a7 - lavf 55.47.100 - avformat.h
Add av_stream_get_parser()
2014-07-09 - c67690f / a54f03b - lavu 52.92.100 / 53.18.0 - display.h
Add av_display_matrix_flip() to flip the transformation matrix.
2014-07-09 - 1b58f13 / f6ee61f - lavc 55.69.100 / 55.56.0 - dv_profile.h
Add a public API for DV profile handling.
2014-06-20 - 0dceefc / 9e500ef - lavu 52.90.100 / 53.17.0 - imgutils.h
Add av_image_check_sar().
2014-06-20 - 4a99333 / 874390e - lavc 55.68.100 / 55.55.0 - avcodec.h
Add av_packet_rescale_ts() to simplify timestamp conversion.
2014-06-18 - ac293b6 / 194be1f - lavf 55.44.100 / 55.20.0 - avformat.h
The proper way for providing a hint about the desired timebase to the muxers
is now setting AVStream.time_base, instead of AVStream.codec.time_base as was
done previously. The old method is now deprecated.
2014-06-11 - 67d29da - lavc 55.66.101 - avcodec.h
Increase FF_INPUT_BUFFER_PADDING_SIZE to 32 due to some corner cases needing
it
2014-06-10 - xxxxxxx - lavf 55.43.100 - avformat.h
New field int64_t max_analyze_duration2 instead of deprecated
int max_analyze_duration.
2014-05-30 - 00759d7 - lavu 52.89.100 - opt.h
Add av_opt_copy()
2014-06-01 - 03bb99a / 0957b27 - lavc 55.66.100 / 55.54.0 - avcodec.h
Add AVCodecContext.side_data_only_packets to allow encoders to output packets
with only side data. This option may become mandatory in the future, so all
users are recommended to update their code and enable this option.
2014-06-01 - 6e8e9f1 / 8c02adc - lavu 52.88.100 / 53.16.0 - frame.h, pixfmt.h
Move all color-related enums (AVColorPrimaries, AVColorSpace, AVColorRange,
AVColorTransferCharacteristic, and AVChromaLocation) inside lavu.
And add AVFrame fields for them.
2014-05-29 - bdb2e80 / b2d4565 - lavr 1.3.0 - avresample.h
Add avresample_max_output_samples
2014-05-24 - d858ee7 / 6d21259 - lavf 55.42.100 / 55.19.0 - avformat.h
Add strict_std_compliance and related AVOptions to support experimental
muxing.
2014-05-26 - xxxxxxx - lavu 52.87.100 - threadmessage.h
Add thread message queue API.
2014-05-26 - c37d179 - lavf 55.41.100 - avformat.h
Add format_probesize to AVFormatContext.
2014-05-19 - 7d25af1 / c23c96b - lavf 55.39.100 / 55.18.0 - avformat.h
Add av_stream_get_side_data() to access stream-level side data
in the same way as av_packet_get_side_data().
2014-05-xx - xxxxxxx - lavu 52.86.100 - fifo.h
Add av_fifo_alloc_array() function.
2014-05-19 - ef1d4ee / bddd8cb - lavu 52.85.100 / 53.15.0 - frame.h, display.h
Add AV_FRAME_DATA_DISPLAYMATRIX for exporting frame-level
spatial rendering on video frames for proper display.
2014-05-xx - xxxxxxx - lavc 55.64.100 / 55.53.0 - avcodec.h
Add AV_PKT_DATA_DISPLAYMATRIX for exporting packet-level
spatial rendering on video frames for proper display.
2014-05-19 - 999a99c / a312f71 - lavf 55.38.101 / 55.17.1 - avformat.h
Deprecate AVStream.pts and the AVFrac struct, which was its only use case.
See use av_stream_get_end_pts()
2014-05-18 - 68c0518 / fd05602 - lavc 55.63.100 / 55.52.0 - avcodec.h
Add avcodec_free_context(). From now on it should be used for freeing
AVCodecContext.
2014-05-17 - 0eec06e - lavu 52.84.100 - time.h
Add av_gettime_relative() av_gettime_relative_is_monotonic()
2014-05-15 - eacf7d6 / 0c1959b - lavf 55.38.100 / 55.17.0 - avformat.h
Add AVMFT_FLAG_BITEXACT flag. Muxers now use it instead of checking
CODEC_FLAG_BITEXACT on the first stream.
2014-05-15 - 96cb4c8 - lswr 0.19.100 - swresample.h
Add swr_close()
2014-05-11 - 14aef38 / 66e6c8a - lavu 52.83.100 / 53.14.0 - pixfmt.h
Add AV_PIX_FMT_VDA for new-style VDA acceleration.
2014-05-xx - xxxxxxx - lavu 52.82.0 - fifo.h
Add av_fifo_freep() function.
2014-05-02 - ba52fb11 - lavu 52.81.0 - opt.h
Add av_opt_set_dict2() function.
2014-05-01 - e77b985 / a2941c8 - lavc 55.60.103 / 55.50.3 - avcodec.h
Deprecate CODEC_FLAG_MV0. It is replaced by the flag "mv0" in the
"mpv_flags" private option of the mpegvideo encoders.
2014-05-01 - e40ae8c / 6484149 - lavc 55.60.102 / 55.50.2 - avcodec.h
Deprecate CODEC_FLAG_GMC. It is replaced by the "gmc" private option of the
libxvid encoder.
2014-05-01 - 1851643 / b2c3171 - lavc 55.60.101 / 55.50.1 - avcodec.h
Deprecate CODEC_FLAG_NORMALIZE_AQP. It is replaced by the flag "naq" in the
"mpv_flags" private option of the mpegvideo encoders.
2014-05-01 - cac07d0 / 5fcceda - avcodec.h
Deprecate CODEC_FLAG_INPUT_PRESERVED. Its functionality is replaced by passing
reference-counted frames to encoders.
2014-04-29 - 1bf6396 - lavc 55.60.100 - avcodec.h
Add AVCodecDescriptor.mime_types field.
2014-04-29 - xxxxxxx - lavu 52.80.0 - hash.h
Add av_hash_final_bin(), av_hash_final_hex() and av_hash_final_b64().
2014-03-07 - 8b2a130 - lavc 55.50.0 / 55.53.100 - dxva2.h
Add FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO for old Intel GPUs.
2014-04-22 - 502512e /dac7e8a - lavu 53.13.0 / 52.78.100 - avutil.h
Add av_get_time_base_q().
2014-04-17 - a8d01a7 / 0983d48 - lavu 53.12.0 / 52.77.100 - crc.h
Add AV_CRC_16_ANSI_LE crc variant.
2014-04-XX - xxxxxxx - lavf xx.xx.1xx - avformat.h
Add av_format_inject_global_side_data()
2014-04-12 - 4f698be - lavu 52.76.100 - log.h
Add av_log_get_flags()
2014-04-11 - 6db42a2b - lavd 55.12.100 - avdevice.h
Add avdevice_capabilities_create() function.
Add avdevice_capabilities_free() function.
2014-04-07 - 0a1cc04 / 8b17243 - lavu 52.75.100 / 53.11.0 - pixfmt.h
Add AV_PIX_FMT_YVYU422 pixel format.
2014-04-04 - c1d0536 / 8542f9c - lavu 52.74.100 / 53.10.0 - replaygain.h
Full scale for peak values is now 100000 (instead of UINT32_MAX) and values
may overflow.
2014-04-03 - c16e006 / 7763118 - lavu 52.73.100 / 53.9.0 - log.h
Add AV_LOG(c) macro to have 256 color debug messages.
2014-04-03 - eaed4da9 - lavu 52.72.100 - opt.h
Add AV_OPT_MULTI_COMPONENT_RANGE define to allow return
multi-component option ranges.
2014-03-29 - cd50a44b - lavu 52.70.100 - mem.h
Add av_dynarray_add_nofree() function.
2014-02-24 - 3e1f241 / d161ae0 - lavu 52.69.100 / 53.8.0 - frame.h
Add av_frame_remove_side_data() for removing a single side data
instance from a frame.
2014-03-24 - 83e8978 / 5a7e35d - lavu 52.68.100 / 53.7.0 - frame.h, replaygain.h
Add AV_FRAME_DATA_REPLAYGAIN for exporting replaygain tags.
Add a new header replaygain.h with the AVReplayGain struct.
2014-03-24 - 83e8978 / 5a7e35d - lavc 55.54.100 / 55.36.0 - avcodec.h
Add AV_PKT_DATA_REPLAYGAIN for exporting replaygain tags.
2014-03-24 - 595ba3b / 25b3258 - lavf 55.35.100 / 55.13.0 - avformat.h
Add AVStream.side_data and AVStream.nb_side_data for exporting stream-global
side data (e.g. replaygain tags, video rotation)
2014-03-24 - bd34e26 / 0e2c3ee - lavc 55.53.100 / 55.35.0 - avcodec.h
Give the name AVPacketSideData to the previously anonymous struct used for
AVPacket.side_data.
2014-03-18 - 37c07d4 - lsws 2.5.102
Make gray16 full-scale.
2014-03-16 - 6b1ca17 / 1481d24 - lavu 52.67.100 / 53.6.0 - pixfmt.h
Add RGBA64_LIBAV pixel format and variants for compatibility
2014-03-11 - 3f3229c - lavf 55.34.101 - avformat.h
Set AVFormatContext.start_time_realtime when demuxing.
2014-03-03 - 06fed440 - lavd 55.11.100 - avdevice.h
Add av_input_audio_device_next().
Add av_input_video_device_next().
Add av_output_audio_device_next().
Add av_output_video_device_next().
2014-02-24 - fff5262 / 1155fd0 - lavu 52.66.100 / 53.5.0 - frame.h
Add av_frame_copy() for copying the frame data.
2014-02-24 - a66be60 - lswr 0.18.100 - swresample.h
Add swr_is_initialized() for checking whether a resample context is initialized.
2014-02-22 - 5367c0b / 7e86c27 - lavr 1.2.0 - avresample.h
Add avresample_is_open() for checking whether a resample context is open.
2014-02-19 - 6a24d77 / c3ecd96 - lavu 52.65.100 / 53.4.0 - opt.h
Add AV_OPT_FLAG_EXPORT and AV_OPT_FLAG_READONLY to mark options meant (only)
for reading.
2014-02-19 - f4c8d00 / 6bb8720 - lavu 52.64.101 / 53.3.1 - opt.h
Deprecate unused AV_OPT_FLAG_METADATA.
2014-02-xx - xxxxxxx - lavd 55.10.100 - avdevice.h
Add avdevice_list_devices() and avdevice_free_list_devices()
2014-02-16 - db3c970 - lavf 55.33.100 - avio.h
Add avio_find_protocol_name() to find out the name of the protocol that would
be selected for a given URL.
2014-02-15 - a2bc6c1 / c98f316 - lavu 52.64.100 / 53.3.0 - frame.h
Add AV_FRAME_DATA_DOWNMIX_INFO value to the AVFrameSideDataType enum and
downmix_info.h API, which identify downmix-related metadata.
2014-02-11 - 1b05ac2 - lavf 55.32.100 - avformat.h
Add av_write_uncoded_frame() and av_interleaved_write_uncoded_frame().
2014-02-04 - 3adb5f8 / d9ae103 - lavf 55.30.100 / 55.11.0 - avformat.h
Add AVFormatContext.max_interleave_delta for controlling amount of buffering
when interleaving.
2014-02-02 - 5871ee5 - lavf 55.29.100 - avformat.h
Add output_ts_offset muxing option to AVFormatContext.
2014-01-27 - 102bd64 - lavd 55.7.100 - avdevice.h
lavf 55.28.100 - avformat.h
Add avdevice_dev_to_app_control_message() function.
2014-01-27 - 7151411 - lavd 55.6.100 - avdevice.h
lavf 55.27.100 - avformat.h
Add avdevice_app_to_dev_control_message() function.
2014-01-24 - 86bee79 - lavf 55.26.100 - avformat.h
Add AVFormatContext option metadata_header_padding to allow control over the
amount of padding added.
2014-01-20 - eef74b2 / 93c553c - lavc 55.48.102 / 55.32.1 - avcodec.h
Edges are not required anymore on video buffers allocated by get_buffer2()
(i.e. as if the CODEC_FLAG_EMU_EDGE flag was always on). Deprecate
CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width().
2014-01-19 - 1a193c4 - lavf 55.25.100 - avformat.h
Add avformat_get_mov_video_tags() and avformat_get_mov_audio_tags().
2014-01-19 - xxxxxxx - lavu 52.63.100 - rational.h
Add av_make_q() function.
2014-01-05 - 4cf4da9 / 5b4797a - lavu 52.62.100 / 53.2.0 - frame.h
Add AV_FRAME_DATA_MATRIXENCODING value to the AVFrameSideDataType enum, which
identifies AVMatrixEncoding data.
2014-01-05 - 751385f / 5c437fb - lavu 52.61.100 / 53.1.0 - channel_layout.h
Add values for various Dolby flags to the AVMatrixEncoding enum.
2014-01-04 - b317f94 - lavu 52.60.100 - mathematics.h
Add av_add_stable() function.
2013-12-22 - 911676c - lavu 52.59.100 - avstring.h
Add av_strnlen() function.
2013-12-09 - 64f73ac - lavu 52.57.100 - opencl.h
Add av_opencl_benchmark() function.
2013-11-30 - 82b2e9c - lavu 52.56.100 - ffversion.h
Moves version.h to libavutil/ffversion.h.
Install ffversion.h and make it public.
2013-12-11 - 29c83d2 / b9fb59d,409a143 / 9431356,44967ab / d7b3ee9 - lavc 55.45.101 / 55.28.1 - avcodec.h
av_frame_alloc(), av_frame_unref() and av_frame_free() now can and should be
used instead of avcodec_alloc_frame(), avcodec_get_frame_defaults() and
avcodec_free_frame() respectively. The latter three functions are deprecated.
2013-12-09 - 7a60348 / 7e244c6- - lavu 52.58.100 / 52.20.0 - frame.h
Add AV_FRAME_DATA_STEREO3D value to the AVFrameSideDataType enum and
stereo3d.h API, that identify codec-independent stereo3d information.
2013-11-26 - 625b290 / 1eaac1d- - lavu 52.55.100 / 52.19.0 - frame.h
Add AV_FRAME_DATA_A53_CC value to the AVFrameSideDataType enum, which
identifies ATSC A53 Part 4 Closed Captions data.
2013-11-22 - 6859065 - lavu 52.54.100 - avstring.h
Add av_utf8_decode() function.
2013-11-22 - fb7d70c - lavc 55.44.100 - avcodec.h
Add HEVC profiles
2013-11-20 - c28b61c - lavc 55.44.100 - avcodec.h
Add av_packet_{un,}pack_dictionary()
Add AV_PKT_METADATA_UPDATE side data type, used to transmit key/value
strings between a stream and the application.
2013-11-14 - 7c888ae / cce3e0a - lavu 52.53.100 / 52.18.0 - mem.h
Move av_fast_malloc() and av_fast_realloc() for libavcodec to libavutil.
2013-11-14 - b71e4d8 / 8941971 - lavc 55.43.100 / 55.27.0 - avcodec.h
Deprecate AVCodecContext.error_rate, it is replaced by the 'error_rate'
private option of the mpegvideo encoder family.
2013-11-14 - 31c09b7 / 728c465 - lavc 55.42.100 / 55.26.0 - vdpau.h
Add av_vdpau_get_profile().
Add av_vdpau_alloc_context(). This function must from now on be
used for allocating AVVDPAUContext.
2013-11-04 - be41f21 / cd8f772 - lavc 55.41.100 / 55.25.0 - avcodec.h
lavu 52.51.100 - frame.h
Add ITU-R BT.2020 and other not yet included values to color primaries,
transfer characteristics and colorspaces.
2013-11-04 - 85cabf1 - lavu 52.50.100 - avutil.h
Add av_fopen_utf8()
2013-10-31 - 78265fc / 28096e0 - lavu 52.49.100 / 52.17.0 - frame.h
Add AVFrame.flags and AV_FRAME_FLAG_CORRUPT.
2013-10-27 - dbe6f9f - lavc 55.39.100 - avcodec.h
Add CODEC_CAP_DELAY support to avcodec_decode_subtitle2.
2013-10-27 - xxxxxxx - lavu 52.48.100 - parseutils.h
2013-10-27 - d61617a - lavu 52.48.100 - parseutils.h
Add av_get_known_color_name().
2013-10-17 - xxxxxxx - lavu 52.47.100 - opt.h
2013-10-17 - 8696e51 - lavu 52.47.100 - opt.h
Add AV_OPT_TYPE_CHANNEL_LAYOUT and channel layout option handlers
av_opt_get_channel_layout() and av_opt_set_channel_layout().
2013-10-xx - xxxxxxx -libswscale 2.5.101 - options.c
2013-10-06 - ccf96f8 -libswscale 2.5.101 - options.c
Change default scaler to bicubic
2013-10-03 - xxxxxxx - lavc 55.34.100 - avcodec.h
2013-10-03 - e57dba0 - lavc 55.34.100 - avcodec.h
Add av_codec_get_max_lowres()
2013-10-02 - xxxxxxx - lavf 55.19.100 - avformat.h
2013-10-02 - 5082fcc - lavf 55.19.100 - avformat.h
Add audio/video/subtitle AVCodec fields to AVFormatContext to force specific
decoders
2013-08-xx - xxxxxxx - lavfi 3.11.0 - avfilter.h
2013-09-28 - 7381d31 / 0767bfd - lavfi 3.88.100 / 3.11.0 - avfilter.h
Add AVFilterGraph.execute and AVFilterGraph.opaque for custom slice threading
implementations.
2013-09-21 - xxxxxxx - lavu 52.16.0 - pixfmt.h
2013-09-21 - 85f8a3c / e208e6d - lavu 52.46.100 / 52.16.0 - pixfmt.h
Add interleaved 4:2:2 8/10-bit formats AV_PIX_FMT_NV16 and
AV_PIX_FMT_NV20.
@@ -49,7 +364,7 @@ API changes, most recent first:
2013-09-04 - 3e1f507 - lavc 55.31.101 - avcodec.h
avcodec_close() argument can be NULL.
2013-09-04 - 36cd017 - lavf 55.16.101 - avformat.h
2013-09-04 - 36cd017a - lavf 55.16.101 - avformat.h
avformat_close_input() argument can be NULL and point on NULL.
2013-08-29 - e31db62 - lavf 55.15.100 - avformat.h
@@ -58,10 +373,10 @@ API changes, most recent first:
2013-08-15 - 1e0e193 - lsws 2.5.100 -
Add a sws_dither AVOption, allowing to set the dither algorithm used
2013-08-xx - xxxxxxx - lavc 55.27.100 - vdpau.h
2013-08-11 - d404fe35 - lavc 55.27.100 - vdpau.h
Add a render2 alternative to the render callback function.
2013-08-xx - xxxxxxx - lavc 55.26.100 - vdpau.h
2013-08-11 - af05edc - lavc 55.26.100 - vdpau.h
Add allocation function for AVVDPAUContext, allowing
to extend it in the future without breaking ABI/API.
@@ -71,7 +386,7 @@ API changes, most recent first:
2013-08-05 - 9547e3e / f824535 - lavc 55.22.100 / 55.13.0 - avcodec.h
Deprecate the bitstream-related members from struct AVVDPAUContext.
The bistream buffers no longer need to be explicitly freed.
The bitstream buffers no longer need to be explicitly freed.
2013-08-05 - 3b805dc / 549294f - lavc 55.21.100 / 55.12.0 - avcodec.h
Deprecate the CODEC_CAP_HWACCEL_VDPAU codec capability. Use CODEC_CAP_HWACCEL
@@ -662,6 +977,9 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
Add avformat_close_input().
Deprecate av_close_input_file() and av_close_input_stream().
2011-12-09 - c59b80c / b2890f5 - lavu 51.32.0 / 51.20.0 - audioconvert.h
Expand the channel layout list.
2011-12-02 - e4de716 / 0eea212 - lavc 53.40.0 / 53.25.0
Add nb_samples and extended_data fields to AVFrame.
Deprecate AVCODEC_MAX_AUDIO_FRAME_SIZE.
@@ -675,6 +993,10 @@ lavd 54.4.100 / 54.0.0, lavfi 3.5.0
Change AVCodecContext.error[4] to [8] at next major bump.
Add AV_NUM_DATA_POINTERS to simplify the bump transition.
2011-11-24 - lavu 51.29.0 / 51.19.0
92afb43 / bd97b2e - add planar RGB pixel formats
92afb43 / 6b0768e - add PIX_FMT_PLANAR and PIX_FMT_RGB pixel descriptions
2011-11-23 - 8e576d5 / bbb46f3 - lavu 51.27.0 / 51.18.0
Add av_samples_get_buffer_size(), av_samples_fill_arrays(), and
av_samples_alloc(), to samplefmt.h.

View File

@@ -31,7 +31,7 @@ PROJECT_NAME = FFmpeg
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 2.1.8
PROJECT_NUMBER = 2.3.3
# With the PROJECT_LOGO tag one can specify a logo or icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -759,7 +759,7 @@ ALPHABETICAL_INDEX = YES
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 2
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
@@ -793,13 +793,13 @@ HTML_FILE_EXTENSION = .html
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
#HTML_HEADER = doc/doxy/header.html
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
#HTML_FOOTER = doc/doxy/footer.html
HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
@@ -808,7 +808,7 @@ HTML_FILE_EXTENSION = .html
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
#HTML_STYLESHEET = doc/doxy/doxy_stylesheet.css
HTML_STYLESHEET =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the stylesheet and background images
@@ -1056,7 +1056,7 @@ FORMULA_TRANSPARENT = YES
# typically be disabled. For large projects the javascript based search engine
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
SEARCHENGINE = NO
SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a PHP enabled web server instead of at the web client
@@ -1359,6 +1359,8 @@ PREDEFINED = "__attribute__(x)=" \
"DECLARE_ALIGNED(a,t,n)=t n" \
"offsetof(x,y)=0x42" \
av_alloc_size \
AV_GCC_VERSION_AT_LEAST(x,y)=1 \
__GNUC__=1 \
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.

View File

@@ -14,11 +14,11 @@ COMPONENTS-$(CONFIG_AVFORMAT) += ffmpeg-formats ffmpeg-protocols
COMPONENTS-$(CONFIG_AVDEVICE) += ffmpeg-devices
COMPONENTS-$(CONFIG_AVFILTER) += ffmpeg-filters
MANPAGES1 = $(PROGS-yes:%=doc/%.1) $(PROGS-yes:%=doc/%-all.1) $(COMPONENTS-yes:%=doc/%.1)
MANPAGES1 = $(AVPROGS-yes:%=doc/%.1) $(AVPROGS-yes:%=doc/%-all.1) $(COMPONENTS-yes:%=doc/%.1)
MANPAGES3 = $(LIBRARIES-yes:%=doc/%.3)
MANPAGES = $(MANPAGES1) $(MANPAGES3)
PODPAGES = $(PROGS-yes:%=doc/%.pod) $(PROGS-yes:%=doc/%-all.pod) $(COMPONENTS-yes:%=doc/%.pod) $(LIBRARIES-yes:%=doc/%.pod)
HTMLPAGES = $(PROGS-yes:%=doc/%.html) $(PROGS-yes:%=doc/%-all.html) $(COMPONENTS-yes:%=doc/%.html) $(LIBRARIES-yes:%=doc/%.html) \
PODPAGES = $(AVPROGS-yes:%=doc/%.pod) $(AVPROGS-yes:%=doc/%-all.pod) $(COMPONENTS-yes:%=doc/%.pod) $(LIBRARIES-yes:%=doc/%.pod)
HTMLPAGES = $(AVPROGS-yes:%=doc/%.html) $(AVPROGS-yes:%=doc/%-all.html) $(COMPONENTS-yes:%=doc/%.html) $(LIBRARIES-yes:%=doc/%.html) \
doc/developer.html \
doc/faq.html \
doc/fate.html \
@@ -36,6 +36,26 @@ DOCS-$(CONFIG_MANPAGES) += $(MANPAGES)
DOCS-$(CONFIG_TXTPAGES) += $(TXTPAGES)
DOCS = $(DOCS-yes)
DOC_EXAMPLES-$(CONFIG_AVIO_READING_EXAMPLE) += avio_reading
DOC_EXAMPLES-$(CONFIG_AVCODEC_EXAMPLE) += avcodec
DOC_EXAMPLES-$(CONFIG_DEMUXING_DECODING_EXAMPLE) += demuxing_decoding
DOC_EXAMPLES-$(CONFIG_FILTER_AUDIO_EXAMPLE) += filter_audio
DOC_EXAMPLES-$(CONFIG_FILTERING_AUDIO_EXAMPLE) += filtering_audio
DOC_EXAMPLES-$(CONFIG_FILTERING_VIDEO_EXAMPLE) += filtering_video
DOC_EXAMPLES-$(CONFIG_METADATA_EXAMPLE) += metadata
DOC_EXAMPLES-$(CONFIG_MUXING_EXAMPLE) += muxing
DOC_EXAMPLES-$(CONFIG_REMUXING_EXAMPLE) += remuxing
DOC_EXAMPLES-$(CONFIG_RESAMPLING_AUDIO_EXAMPLE) += resampling_audio
DOC_EXAMPLES-$(CONFIG_SCALING_VIDEO_EXAMPLE) += scaling_video
DOC_EXAMPLES-$(CONFIG_TRANSCODE_AAC_EXAMPLE) += transcode_aac
DOC_EXAMPLES-$(CONFIG_TRANSCODING_EXAMPLE) += transcoding
ALL_DOC_EXAMPLES_LIST = $(DOC_EXAMPLES-) $(DOC_EXAMPLES-yes)
DOC_EXAMPLES := $(DOC_EXAMPLES-yes:%=doc/examples/%$(PROGSSUF)$(EXESUF))
ALL_DOC_EXAMPLES := $(ALL_DOC_EXAMPLES_LIST:%=doc/examples/%$(PROGSSUF)$(EXESUF))
ALL_DOC_EXAMPLES_G := $(ALL_DOC_EXAMPLES_LIST:%=doc/examples/%$(PROGSSUF)_g$(EXESUF))
PROGS += $(DOC_EXAMPLES)
all-$(CONFIG_DOC): doc
doc: documentation
@@ -43,7 +63,9 @@ doc: documentation
apidoc: doc/doxy/html
documentation: $(DOCS)
TEXIDEP = awk '/^@(verbatim)?include/ { printf "$@: $(@D)/%s\n", $$2 }' <$< >$(@:%=%.d)
examples: $(DOC_EXAMPLES)
TEXIDEP = perl $(SRC_PATH)/doc/texidep.pl $(SRC_PATH) $< $@ >$(@:%=%.d)
doc/%.txt: TAG = TXT
doc/%.txt: doc/%.texi
@@ -84,9 +106,14 @@ doc/%.3: doc/%.pod $(GENTEXI)
$(M)pod2man --section=3 --center=" " --release=" " $< > $@
$(DOCS) doc/doxy/html: | doc/
$(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples
OBJDIRS += doc/examples
doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(INSTHEADERS)
$(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $^
DOXY_INPUT = $(addprefix $(SRC_PATH)/, $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c) $(LIB_EXAMPLES:%$(EXESUF)=%.c))
doc/doxy/html: TAG = DOXY
doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(SRC_PATH)/doc/doxy-wrapper.sh $(DOXY_INPUT)
$(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $< $(DOXYGEN) $(DOXY_INPUT)
install-doc: install-html install-man
@@ -120,7 +147,7 @@ uninstall-html:
$(RM) -r "$(DOCDIR)"
uninstall-man:
$(RM) $(addprefix "$(MANDIR)/man1/",$(PROGS-yes:%=%.1) $(PROGS-yes:%=%-all.1) $(COMPONENTS-yes:%=%.1))
$(RM) $(addprefix "$(MANDIR)/man1/",$(AVPROGS-yes:%=%.1) $(AVPROGS-yes:%=%-all.1) $(COMPONENTS-yes:%=%.1))
$(RM) $(addprefix "$(MANDIR)/man3/",$(LIBRARIES-yes:%=%.3))
clean:: docclean
@@ -128,8 +155,13 @@ clean:: docclean
distclean:: docclean
$(RM) doc/config.texi
docclean:
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
examplesclean:
$(RM) $(ALL_DOC_EXAMPLES) $(ALL_DOC_EXAMPLES_G)
$(RM) $(CLEANSUFFIXES:%=doc/examples/%)
docclean: examplesclean
$(RM) $(CLEANSUFFIXES:%=doc/%)
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 doc/avoptions_*.texi
$(RM) -r doc/doxy/html
-include $(wildcard $(DOCS:%=%.d))

View File

@@ -1,16 +0,0 @@
Release Notes
=============
* 2.1 "Fourier" October, 2013
General notes
-------------
See the Changelog file for a list of significant changes. Note, there
are many more new features and bugfixes than whats listed there.
Bugreports against FFmpeg git master or the most recent FFmpeg release are
accepted. If you are experiencing issues with any formally released version of
FFmpeg, please try git master to check if the issue still exists. If it does,
make your report against the development code following the usual bug reporting
guidelines.

View File

@@ -1,36 +0,0 @@
AVUtil
======
libavutil is a small lightweight library of generally useful functions.
It is not a library for code needed by both libavcodec and libavformat.
Overview:
=========
adler32.c adler32 checksum
aes.c AES encryption and decryption
fifo.c resizeable first in first out buffer
intfloat_readwrite.c portable reading and writing of floating point values
log.c "printf" with context and level
md5.c MD5 Message-Digest Algorithm
rational.c code to perform exact calculations with rational numbers
tree.c generic AVL tree
crc.c generic CRC checksumming code
integer.c 128bit integer math
lls.c
mathematics.c greatest common divisor, integer sqrt, integer log2, ...
mem.c memory allocation routines with guaranteed alignment
Headers:
bswap.h big/little/native-endian conversion code
x86_cpu.h a few useful macros for unifying x86-64 and x86-32 code
avutil.h
common.h
intreadwrite.h reading and writing of unaligned big/little/native-endian integers
Goals:
======
* Modular (few interdependencies and the possibility of disabling individual parts during ./configure)
* Small (source and object)
* Efficient (low CPU and memory usage)
* Useful (avoid useless features almost no one needs)

View File

@@ -74,7 +74,18 @@ format with @command{ffmpeg}, you can use the command:
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
@end example
@section imx_dump_header
@section imxdump
Modifies the bitstream to fit in MOV and to be usable by the Final Cut
Pro decoder. This filter only applies to the mpeg2video codec, and is
likely not needed for Final Cut Pro 7 and newer with the appropriate
@option{-tag:v}.
For example, to remux 30 MB/sec NTSC IMX to MOV:
@example
ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
@end example
@section mjpeg2jpeg
@@ -117,12 +128,17 @@ ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
@section movsub
@section mp3_header_compress
@section mp3_header_decompress
@section noise
Damages the contents of packets without damaging the container. Can be
used for fuzzing or testing error resilience/concealment.
@example
ffmpeg -i INPUT -c copy -bsf noise output.mkv
@end example
@section remove_extra
@c man end BITSTREAM FILTERS

View File

@@ -25,6 +25,9 @@ fate-list
install
Install headers, libraries and programs.
examples
Build all examples located in doc/examples.
libavformat/output-example
Build the libavformat basic example.
@@ -34,6 +37,9 @@ libavcodec/api-example
libswscale/swscale-test
Build the swscale self-test (useful also as example).
config
Reconfigure the project with current configuration.
Useful standard make commands:
make -t <target>

View File

@@ -172,7 +172,13 @@ Set max video quantizer scale (VBR). Must be included between -1 and
Set max difference between the quantizer scale (VBR).
@item bf @var{integer} (@emph{encoding,video})
Set max number of B frames.
Set max number of B frames between non-B-frames.
Must be an integer between -1 and 16. 0 means that B-frames are
disabled. If a value of -1 is used, it will choose an automatic value
depending on the encoder.
Default value is 0.
@item b_qfactor @var{float} (@emph{encoding,video})
Set qp factor between P and B frames.
@@ -279,6 +285,11 @@ detect bitstream specification deviations
detect improper bitstream length
@item explode
abort decoding on minor error detection
@item ignore_err
ignore decoding errors, and continue decoding.
This is useful if you want to analyze the content of a video and thus want
everything to be decoded no matter what. This option will not result in a video
that is pleasing to watch in case of errors.
@item careful
consider things that violate the spec and have not been seen in the wild as errors
@item compliant
@@ -383,6 +394,9 @@ Possible values:
@item simplemmx
@item simpleauto
Automatically pick a IDCT compatible with the simple one
@item arm
@item altivec
@@ -418,6 +432,8 @@ Possible values:
iterative motion vector (MV) search (slow)
@item deblock
use strong deblock filter for damaged MBs
@item favor_inter
favor predicting from the previous frame instead of the current
@end table
@item bits_per_coded_sample @var{integer}
@@ -871,6 +887,9 @@ Set frame skip factor.
@item skip_exp @var{integer} (@emph{encoding,video})
Set frame skip exponent.
Negative values behave identical to the corresponding positive ones, except
that the score is normalized.
Positive values exist primarily for compatibility reasons and are not so useful.
@item skipcmp @var{integer} (@emph{encoding,video})
Set frame skip compare function.
@@ -1016,15 +1035,26 @@ Set the log level offset.
Number of slices, used in parallelized encoding.
@item thread_type @var{flags} (@emph{decoding/encoding,video})
Select multithreading type.
Select which multithreading methods to use.
Use of @samp{frame} will increase decoding delay by one frame per
thread, so clients which cannot provide future frames should not use
it.
Possible values:
@table @samp
@item slice
Decode more than one part of a single frame at once.
Multithreading using slices works only when the video was encoded with
slices.
@item frame
Decode more than one frame at once.
@end table
Default value is @samp{slice+frame}.
@item audio_service_type @var{integer} (@emph{encoding,audio})
Set audio service type.
@@ -1083,5 +1113,9 @@ instead of alpha. Default is 0.
@c man end CODEC OPTIONS
@ifclear config-writeonly
@include decoders.texi
@end ifclear
@ifclear config-readonly
@include encoders.texi
@end ifclear

View File

@@ -14,7 +14,7 @@ You can disable all the decoders with the configure option
with the options @code{--enable-decoder=@var{DECODER}} /
@code{--disable-decoder=@var{DECODER}}.
The option @code{-codecs} of the ff* tools will display the list of
The option @code{-decoders} of the ff* tools will display the list of
enabled decoders.
@c man end DECODERS
@@ -52,6 +52,37 @@ top-field-first is assumed
@chapter Audio Decoders
@c man begin AUDIO DECODERS
A description of some of the currently available audio decoders
follows.
@section ac3
AC-3 audio decoder.
This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as well as
the undocumented RealAudio 3 (a.k.a. dnet).
@subsection AC-3 Decoder Options
@table @option
@item -drc_scale @var{value}
Dynamic Range Scale Factor. The factor to apply to dynamic range values
from the AC-3 stream. This factor is applied exponentially.
There are 3 notable scale factor ranges:
@table @option
@item drc_scale == 0
DRC disabled. Produces full range audio.
@item 0 < drc_scale <= 1
DRC enabled. Applies a fraction of the stream DRC value.
Audio reproduction is between full range and full compression.
@item drc_scale > 1
DRC enabled. Applies drc_scale asymmetrically.
Loud sounds are fully compressed. Soft sounds are enhanced.
@end table
@end table
@section ffwavesynth
Internal wave synthetizer.

View File

@@ -17,8 +17,8 @@ a:visited {
}
#banner img {
padding-bottom: 1px;
padding-top: 5px;
margin-bottom: 1px;
margin-top: 5px;
}
#body {

View File

@@ -74,7 +74,7 @@ following directive is recognized:
Path to a file to read; special characters and spaces must be escaped with
backslash or single quotes.
All subsequent directives apply to that file.
All subsequent file-related directives apply to that file.
@item @code{ffconcat version 1.0}
Identify the script type and version. It also sets the @option{safe} option
@@ -92,6 +92,22 @@ file is not available or accurate.
If the duration is set for all files, then it is possible to seek in the
whole concatenated video.
@item @code{stream}
Introduce a stream in the virtual file.
All subsequent stream-related directives apply to the last introduced
stream.
Some streams properties must be set in order to allow identifying the
matching streams in the subfiles.
If no streams are defined in the script, the streams from the first file are
copied.
@item @code{exact_stream_id @var{id}}
Set the id of the stream.
If this directive is given, the string with the corresponding id in the
subfiles will be used.
This is especially useful for MPEG-PS (VOB) files, where the order of the
streams is not reliable.
@end table
@subsection Options
@@ -112,6 +128,14 @@ If set to 0, any file name is accepted.
The default is -1, it is equivalent to 1 if the format was automatically
probed and 0 otherwise.
@item auto_convert
If set to 1, try to perform automatic conversions on packet data to make the
streams concatenable.
Currently, the only conversion is adding the h264_mp4toannexb bitstream
filter to H.264 streams in MP4 format. This is necessary in particular if
there are resolution changes.
@end table
@section flv
@@ -249,6 +273,8 @@ is 5.
If set to 1, will set frame timestamp to modification time of image file. Note
that monotonity of timestamps is not provided: images go in the same order as
without this option. Default value is 0.
If set to 2, will set frame timestamp to the modification time of the image file in
nanosecond precision.
@item video_size
Set the video size of the images to read. If not specified the video
size is guessed from the first image file in the sequence.
@@ -296,7 +322,7 @@ teletext packet PTS and DTS values untouched.
Raw video demuxer.
This demuxer allows to read raw video data. Since there is no header
This demuxer allows one to read raw video data. Since there is no header
specifying the assumed video parameters, the user must specify them
in order to be able to decode the data correctly.

View File

@@ -92,7 +92,7 @@ for markup commands, i.e. use @code{@@param} and not @code{\param}.
* more text ...
* ...
*/
typedef struct Foobar@{
typedef struct Foobar @{
int var1; /**< var1 description */
int var2; ///< var2 description
/** var3 description */
@@ -248,7 +248,7 @@ Contributions should be licensed under the
@uref{http://www.gnu.org/licenses/lgpl-2.1.html, LGPL 2.1},
including an "or any later version" clause, or, if you prefer
a gift-style license, the
@uref{http://www.isc.org/software/license/, ISC} or
@uref{http://opensource.org/licenses/isc-license.txt, ISC} or
@uref{http://mit-license.org/, MIT} license.
@uref{http://www.gnu.org/licenses/gpl-2.0.html, GPL 2} including
an "or any later version" clause is also acceptable, but LGPL is

View File

@@ -17,5 +17,9 @@ for programmatic use.
@c man end DEVICE OPTIONS
@ifclear config-writeonly
@include indevs.texi
@end ifclear
@ifclear config-readonly
@include outdevs.texi
@end ifclear

View File

@@ -2,13 +2,12 @@
SRC_PATH="${1}"
DOXYFILE="${2}"
DOXYGEN="${3}"
shift 2
shift 3
doxygen - <<EOF
$DOXYGEN - <<EOF
@INCLUDE = ${DOXYFILE}
INPUT = $@
HTML_HEADER = ${SRC_PATH}/doc/doxy/header.html
HTML_FOOTER = ${SRC_PATH}/doc/doxy/footer.html
HTML_STYLESHEET = ${SRC_PATH}/doc/doxy/doxy_stylesheet.css
EXAMPLE_PATH = ${SRC_PATH}/doc/examples
EOF

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
<footer class="footer pagination-right">
<span class="label label-info">
Generated on $datetime for $projectname by&#160;<a href="http://www.doxygen.org/index.html">doxygen</a> $doxygenversion
</span>
</footer>
</div>
</body>
</html>

View File

@@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath$doxy_stylesheet.css" rel="stylesheet" type="text/css" />
<!--Header replace -->
</head>
<div class="container">
<!--Header replace -->
<div class="menu">

View File

@@ -14,7 +14,7 @@ You can disable all the encoders with the configure option
with the options @code{--enable-encoder=@var{ENCODER}} /
@code{--disable-encoder=@var{ENCODER}}.
The option @code{-codecs} of the ff* tools will display the list of
The option @code{-encoders} of the ff* tools will display the list of
enabled encoders.
@c man end ENCODERS
@@ -38,8 +38,8 @@ As this encoder is experimental, unexpected behavior may exist from time to
time. For a more stable AAC encoder, see @ref{libvo-aacenc}. However, be warned
that it has a worse quality reported by some users.
@c Comment this out until somebody writes the respective documentation.
@c See also @ref{libfaac}, @ref{libaacplus}, and @ref{libfdk-aac-enc}.
@c todo @ref{libaacplus}
See also @ref{libfdk-aac-enc,,libfdk_aac} and @ref{libfaac}.
@subsection Options
@@ -80,7 +80,7 @@ thresholds with quantizer steps to find the appropriate quantization with
distortion below threshold band by band.
The quality of this method is comparable to the two loop searching method
descibed below, but somewhat a little better and slower.
described below, but somewhat a little better and slower.
@item anmr
Average noise to mask ratio (ANMR) trellis-based solution.
@@ -494,6 +494,285 @@ Selected by Encoder (default)
@end table
@anchor{libfaac}
@section libfaac
libfaac AAC (Advanced Audio Coding) encoder wrapper.
Requires the presence of the libfaac headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libfaac --enable-nonfree}.
This encoder is considered to be of higher quality with respect to the
@ref{aacenc,,the native experimental FFmpeg AAC encoder}.
For more information see the libfaac project at
@url{http://www.audiocoding.com/faac.html/}.
@subsection Options
The following shared FFmpeg codec options are recognized.
The following options are supported by the libfaac wrapper. The
@command{faac}-equivalent of the options are listed in parentheses.
@table @option
@item b (@emph{-b})
Set bit rate in bits/s for ABR (Average Bit Rate) mode. If the bit rate
is not explicitly specified, it is automatically set to a suitable
value depending on the selected profile. @command{faac} bitrate is
expressed in kilobits/s.
Note that libfaac does not support CBR (Constant Bit Rate) but only
ABR (Average Bit Rate).
If VBR mode is enabled this option is ignored.
@item ar (@emph{-R})
Set audio sampling rate (in Hz).
@item ac (@emph{-c})
Set the number of audio channels.
@item cutoff (@emph{-C})
Set cutoff frequency. If not specified (or explicitly set to 0) it
will use a value automatically computed by the library. Default value
is 0.
@item profile
Set audio profile.
The following profiles are recognized:
@table @samp
@item aac_main
Main AAC (Main)
@item aac_low
Low Complexity AAC (LC)
@item aac_ssr
Scalable Sample Rate (SSR)
@item aac_ltp
Long Term Prediction (LTP)
@end table
If not specified it is set to @samp{aac_low}.
@item flags +qscale
Set constant quality VBR (Variable Bit Rate) mode.
@item global_quality
Set quality in VBR mode as an integer number of lambda units.
Only relevant when VBR mode is enabled with @code{flags +qscale}. The
value is converted to QP units by dividing it by @code{FF_QP2LAMBDA},
and used to set the quality value used by libfaac. A reasonable range
for the option value in QP units is [10-500], the higher the value the
higher the quality.
@item q (@emph{-q})
Enable VBR mode when set to a non-negative value, and set constant
quality value as a double floating point value in QP units.
The value sets the quality value used by libfaac. A reasonable range
for the option value is [10-500], the higher the value the higher the
quality.
This option is valid only using the @command{ffmpeg} command-line
tool. For library interface users, use @option{global_quality}.
@end table
@subsection Examples
@itemize
@item
Use @command{ffmpeg} to convert an audio file to ABR 128 kbps AAC in an M4A (MP4)
container:
@example
ffmpeg -i input.wav -codec:a libfaac -b:a 128k -output.m4a
@end example
@item
Use @command{ffmpeg} to convert an audio file to VBR AAC, using the
LTP AAC profile:
@example
ffmpeg -i input.wav -c:a libfaac -profile:a aac_ltp -q:a 100 output.m4a
@end example
@end itemize
@anchor{libfdk-aac-enc}
@section libfdk_aac
libfdk-aac AAC (Advanced Audio Coding) encoder wrapper.
The libfdk-aac library is based on the Fraunhofer FDK AAC code from
the Android project.
Requires the presence of the libfdk-aac headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libfdk-aac}. The library is also incompatible with GPL,
so if you allow the use of GPL, you should configure with
@code{--enable-gpl --enable-nonfree --enable-libfdk-aac}.
This encoder is considered to be of higher quality with respect to
both @ref{aacenc,,the native experimental FFmpeg AAC encoder} and
@ref{libfaac}.
VBR encoding, enabled through the @option{vbr} or @option{flags
+qscale} options, is experimental and only works with some
combinations of parameters.
Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3 or
higher.
For more information see the fdk-aac project at
@url{http://sourceforge.net/p/opencore-amr/fdk-aac/}.
@subsection Options
The following options are mapped on the shared FFmpeg codec options.
@table @option
@item b
Set bit rate in bits/s. If the bitrate is not explicitly specified, it
is automatically set to a suitable value depending on the selected
profile.
In case VBR mode is enabled the option is ignored.
@item ar
Set audio sampling rate (in Hz).
@item channels
Set the number of audio channels.
@item flags +qscale
Enable fixed quality, VBR (Variable Bit Rate) mode.
Note that VBR is implicitly enabled when the @option{vbr} value is
positive.
@item cutoff
Set cutoff frequency. If not specified (or explicitly set to 0) it
will use a value automatically computed by the library. Default value
is 0.
@item profile
Set audio profile.
The following profiles are recognized:
@table @samp
@item aac_low
Low Complexity AAC (LC)
@item aac_he
High Efficiency AAC (HE-AAC)
@item aac_he_v2
High Efficiency AAC version 2 (HE-AACv2)
@item aac_ld
Low Delay AAC (LD)
@item aac_eld
Enhanced Low Delay AAC (ELD)
@end table
If not specified it is set to @samp{aac_low}.
@end table
The following are private options of the libfdk_aac encoder.
@table @option
@item afterburner
Enable afterburner feature if set to 1, disabled if set to 0. This
improves the quality but also the required processing power.
Default value is 1.
@item eld_sbr
Enable SBR (Spectral Band Replication) for ELD if set to 1, disabled
if set to 0.
Default value is 0.
@item signaling
Set SBR/PS signaling style.
It can assume one of the following values:
@table @samp
@item default
choose signaling implicitly (explicit hierarchical by default,
implicit if global header is disabled)
@item implicit
implicit backwards compatible signaling
@item explicit_sbr
explicit SBR, implicit PS signaling
@item explicit_hierarchical
explicit hierarchical signaling
@end table
Default value is @samp{default}.
@item latm
Output LATM/LOAS encapsulated data if set to 1, disabled if set to 0.
Default value is 0.
@item header_period
Set StreamMuxConfig and PCE repetition period (in frames) for sending
in-band configuration buffers within LATM/LOAS transport layer.
Must be a 16-bits non-negative integer.
Default value is 0.
@item vbr
Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty
good) and 5 is highest quality. A value of 0 will disable VBR, and CBR
(Constant Bit Rate) is enabled.
Currently only the @samp{aac_low} profile supports VBR encoding.
VBR modes 1-5 correspond to roughly the following average bit rates:
@table @samp
@item 1
32 kbps/channel
@item 2
40 kbps/channel
@item 3
48-56 kbps/channel
@item 4
64 kbps/channel
@item 5
about 80-96 kbps/channel
@end table
Default value is 0.
@end table
@subsection Examples
@itemize
@item
Use @command{ffmpeg} to convert an audio file to VBR AAC in an M4A (MP4)
container:
@example
ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
@end example
@item
Use @command{ffmpeg} to convert an audio file to CBR 64k kbps AAC, using the
High-Efficiency AAC profile:
@example
ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
@end example
@end itemize
@anchor{libmp3lame}
@section libmp3lame
@@ -513,7 +792,7 @@ The following options are supported by the libmp3lame wrapper. The
@table @option
@item b (@emph{-b})
Set bitrate expressed in bits/s for CBR. LAME @code{bitrate} is
Set bitrate expressed in bits/s for CBR or ABR. LAME @code{bitrate} is
expressed in kilobits/s.
@item q (@emph{-V})
@@ -528,13 +807,18 @@ while producing the worst quality.
@item reservoir
Enable use of bit reservoir when set to 1. Default value is 1. LAME
has this enabled by default, but can be overriden by use
has this enabled by default, but can be overridden by use
@option{--nores} option.
@item joint_stereo (@emph{-m j})
Enable the encoder to use (on a frame by frame basis) either L/R
stereo or mid/side stereo. Default value is 1.
@item abr (@emph{--abr})
Enable the encoder to use ABR when set to 1. The @command{lame}
@option{--abr} sets the target bitrate, while this options only
tells FFmpeg to use ABR still relies on @option{b} to set bitrate.
@end table
@section libopencore-amrnb
@@ -863,32 +1147,111 @@ transient response is a higher bitrate.
@end table
@anchor{libwavpack}
@section libwavpack
A wrapper providing WavPack encoding through libwavpack.
Only lossless mode using 32-bit integer samples is supported currently.
The @option{compression_level} option can be used to control speed vs.
compression tradeoff, with the values mapped to libwavpack as follows:
Requires the presence of the libwavpack headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libwavpack}.
Note that a libavcodec-native encoder for the WavPack codec exists so users can
encode audios with this codec without using this encoder. See @ref{wavpackenc}.
@subsection Options
@command{wavpack} command line utility's corresponding options are listed in
parentheses, if any.
@table @option
@item frame_size (@emph{--blocksize})
Default is 32768.
@item 0
Fast mode - corresponding to the wavpack @option{-f} option.
@item compression_level
Set speed vs. compression tradeoff. Acceptable arguments are listed below:
@table @samp
@item 0 (@emph{-f})
Fast mode.
@item 1
Normal (default) settings.
@item 2
High quality - corresponding to the wavpack @option{-h} option.
@item 2 (@emph{-h})
High quality.
@item 3
Very high quality - corresponding to the wavpack @option{-hh} option.
@item 3 (@emph{-hh})
Very high quality.
@item 4-8
Same as 3, but with extra processing enabled - corresponding to the wavpack
@option{-x} option. I.e. 4 is the same as @option{-x2} and 8 is the same as
@option{-x6}.
@item 4-8 (@emph{-hh -x}@var{EXTRAPROC})
Same as @samp{3}, but with extra processing enabled.
@samp{4} is the same as @option{-x2} and @samp{8} is the same as @option{-x6}.
@end table
@end table
@anchor{wavpackenc}
@section wavpack
WavPack lossless audio encoder.
This is a libavcodec-native WavPack encoder. There is also an encoder based on
libwavpack, but there is virtually no reason to use that encoder.
See also @ref{libwavpack}.
@subsection Options
The equivalent options for @command{wavpack} command line utility are listed in
parentheses.
@subsubsection Shared options
The following shared options are effective for this encoder. Only special notes
about this particular encoder will be documented here. For the general meaning
of the options, see @ref{codec-options,,the Codec Options chapter}.
@table @option
@item frame_size (@emph{--blocksize})
For this encoder, the range for this option is between 128 and 131072. Default
is automatically decided based on sample rate and number of channel.
For the complete formula of calculating default, see
@file{libavcodec/wavpackenc.c}.
@item compression_level (@emph{-f}, @emph{-h}, @emph{-hh}, and @emph{-x})
This option's syntax is consistent with @ref{libwavpack}'s.
@end table
@subsubsection Private options
@table @option
@item joint_stereo (@emph{-j})
Set whether to enable joint stereo. Valid values are:
@table @samp
@item on (@emph{1})
Force mid/side audio encoding.
@item off (@emph{0})
Force left/right audio encoding.
@item auto
Let the encoder decide automatically.
@end table
@item optimize_mono
Set whether to enable optimization for mono. This option is only effective for
non-mono streams. Available values:
@table @samp
@item on
enabled
@item off
disabled
@end table
@end table
@@ -902,12 +1265,15 @@ follows.
@section libtheora
Theora format supported through libtheora.
libtheora Theora encoder wrapper.
Requires the presence of the libtheora headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libtheora}.
For more information about the libtheora project see
@url{http://www.theora.org/}.
@subsection Options
The following global options are mapped to internal libtheora options
@@ -915,11 +1281,11 @@ which affect the quality and the bitrate of the encoded stream.
@table @option
@item b
Set the video bitrate, only works if the @code{qscale} flag in
@option{flags} is not enabled.
Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode. In
case VBR (Variable Bit Rate) mode is enabled this option is ignored.
@item flags
Used to enable constant quality mode encoding through the
Used to enable constant quality mode (VBR) encoding through the
@option{qscale} flag, and to enable the @code{pass1} and @code{pass2}
modes.
@@ -927,19 +1293,41 @@ modes.
Set the GOP size.
@item global_quality
Set the global quality in lambda units, only works if the
@code{qscale} flag in @option{flags} is enabled. The value is clipped
in the [0 - 10*@code{FF_QP2LAMBDA}] range, and then multiplied for 6.3
to get a value in the native libtheora range [0-63]. A higher value
corresponds to a higher quality.
Set the global quality as an integer in lambda units.
For example, to set maximum constant quality encoding with
@command{ffmpeg}:
@example
ffmpeg -i INPUT -flags:v qscale -global_quality:v "10*QP2LAMBDA" -codec:v libtheora OUTPUT.ogg
@end example
Only relevant when VBR mode is enabled with @code{flags +qscale}. The
value is converted to QP units by dividing it by @code{FF_QP2LAMBDA},
clipped in the [0 - 10] range, and then multiplied by 6.3 to get a
value in the native libtheora range [0-63]. A higher value corresponds
to a higher quality.
@item q
Enable VBR mode when set to a non-negative value, and set constant
quality value as a double floating point value in QP units.
The value is clipped in the [0-10] range, and then multiplied by 6.3
to get a value in the native libtheora range [0-63].
This option is valid only using the @command{ffmpeg} command-line
tool. For library interface users, use @option{global_quality}.
@end table
@subsection Examples
@itemize
@item
Set maximum constant quality (VBR) encoding with @command{ffmpeg}:
@example
ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
@end example
@item
Use @command{ffmpeg} to convert a CBR 1000 kbps Theora video stream:
@example
ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
@end example
@end itemize
@section libvpx
VP8 format supported through libvpx.
@@ -1059,7 +1447,69 @@ g_error_resilient
For more information about libvpx see:
@url{http://www.webmproject.org/}
@section libx264
@section libwebp
libwebp WebP Image encoder wrapper
libwebp is Google's official encoder for WebP images. It can encode in either
lossy or lossless mode. Lossy images are essentially a wrapper around a VP8
frame. Lossless images are a separate codec developed by Google.
@subsection Pixel Format
Currently, libwebp only supports YUV420 for lossy and RGB for lossless due
to limitations of the format and libwebp. Alpha is supported for either mode.
Because of API limitations, if RGB is passed in when encoding lossy or YUV is
passed in for encoding lossless, the pixel format will automatically be
converted using functions from libwebp. This is not ideal and is done only for
convenience.
@subsection Options
@table @option
@item -lossless @var{boolean}
Enables/Disables use of lossless mode. Default is 0.
@item -compression_level @var{integer}
For lossy, this is a quality/speed tradeoff. Higher values give better quality
for a given size at the cost of increased encoding time. For lossless, this is
a size/speed tradeoff. Higher values give smaller size at the cost of increased
encoding time. More specifically, it controls the number of extra algorithms
and compression tools used, and varies the combination of these tools. This
maps to the @var{method} option in libwebp. The valid range is 0 to 6.
Default is 4.
@item -qscale @var{float}
For lossy encoding, this controls image quality, 0 to 100. For lossless
encoding, this controls the effort and time spent at compressing more. The
default value is 75. Note that for usage via libavcodec, this option is called
@var{global_quality} and must be multiplied by @var{FF_QP2LAMBDA}.
@item -preset @var{type}
Configuration preset. This does some automatic settings based on the general
type of the image.
@table @option
@item none
Do not use a preset.
@item default
Use the encoder default.
@item picture
Digital picture, like portrait, inner shot
@item photo
Outdoor photograph, with natural lighting
@item drawing
Hand or line drawing, with high-contrast details
@item icon
Small-sized colorful images
@item text
Text-like
@end table
@end table
@section libx264, libx264rgb
x264 H.264/MPEG-4 AVC encoder wrapper.
@@ -1075,12 +1525,22 @@ for detail retention (adaptive quantization, psy-RD, psy-trellis).
Many libx264 encoder options are mapped to FFmpeg global codec
options, while unique encoder options are provided through private
options. Additionally the @option{x264opts} and @option{x264-params}
private options allows to pass a list of key=value tuples as accepted
private options allows one to pass a list of key=value tuples as accepted
by the libx264 @code{x264_param_parse} function.
The x264 project website is at
@url{http://www.videolan.org/developers/x264.html}.
The libx264rgb encoder is the same as libx264, except it accepts packed RGB
pixel formats as input instead of YUV.
@subsection Supported Pixel Formats
x264 supports 8- to 10-bit color spaces. The exact bit depth is controlled at
x264's configure time. FFmpeg only supports one bit depth in one particular
build. In other words, it is not possible to build one FFmpeg with multiple
versions of x264 with different bit depths.
@subsection Options
The following options are supported by the libx264 wrapper. The
@@ -1106,25 +1566,34 @@ kilobits/s.
@item g (@emph{keyint})
@item qmax (@emph{qpmax})
@item qmin (@emph{qpmin})
Minimum quantizer scale.
@item qmax (@emph{qpmax})
Maximum quantizer scale.
@item qdiff (@emph{qpstep})
Maximum difference between quantizer scales.
@item qblur (@emph{qblur})
Quantizer curve blur
@item qcomp (@emph{qcomp})
Quantizer curve compression factor
@item refs (@emph{ref})
Number of reference frames each P-frame can use. The range is from @var{0-16}.
@item sc_threshold (@emph{scenecut})
Sets the threshold for the scene change detection.
@item trellis (@emph{trellis})
Performs Trellis quantization to increase efficiency. Enabled by default.
@item nr (@emph{nr})
@item me_range (@emph{merange})
Maximum range of the motion search in pixels.
@item me_method (@emph{me})
Set motion estimation method. Possible values in the decreasing order
@@ -1146,10 +1615,13 @@ Hadamard exhaustive search (slowest).
@end table
@item subq (@emph{subme})
Sub-pixel motion estimation method.
@item b_strategy (@emph{b-adapt})
Adaptive B-frame placement decision algorithm. Use only on first-pass.
@item keyint_min (@emph{min-keyint})
Minimum GOP size.
@item coder
Set entropy encoder. Possible values:
@@ -1176,6 +1648,7 @@ Ignore chroma in motion estimation. It generates the same effect as
@end table
@item threads (@emph{threads})
Number of encoding threads.
@item thread_type
Set multithreading technique. Possible values:
@@ -1393,7 +1866,7 @@ Override the x264 configuration using a :-separated list of key=value
parameters.
This option is functionally the same as the @option{x264opts}, but is
duplicated for compability with the Libav fork.
duplicated for compatibility with the Libav fork.
For example to specify libx264 encoding options with @command{ffmpeg}:
@example
@@ -1569,6 +2042,30 @@ fastest.
@end table
@section mpeg2
MPEG-2 video encoder.
@subsection Options
@table @option
@item seq_disp_ext @var{integer}
Specifies if the encoder should write a sequence_display_extension to the
output.
@table @option
@item -1
@itemx auto
Decide automatically to write it or not (this is the default) by checking if
the data to be written is different from the default or unspecified values.
@item 0
@itemx never
Never write it.
@item 1
@itemx always
Always write it.
@end table
@end table
@section png
PNG image encoder.
@@ -1587,7 +2084,7 @@ Set physical density of pixels, in dots per meter, unset by default
Apple ProRes encoder.
FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
The used encoder can be choosen with the @code{-vcodec} option.
The used encoder can be chosen with the @code{-vcodec} option.
@subsection Private Options for prores-ks
@@ -1650,3 +2147,27 @@ For the fastest encoding speed set the @option{qscale} parameter (4 is the
recommended value) and do not set a size constraint.
@c man end VIDEO ENCODERS
@chapter Subtitles Encoders
@c man begin SUBTITLES ENCODERS
@section dvdsub
This codec encodes the bitmap subtitle format that is used in DVDs.
Typically they are stored in VOBSUB file pairs (*.idx + *.sub),
and they can also be used in Matroska files.
@subsection Options
@table @option
@item even_rows_fix
When set to 1, enable a work-around that makes the number of pixel rows
even in all subtitles. This fixes a problem with some players that
cut off the bottom row if the number is odd. The work-around just adds
a fully transparent row if needed. The overhead is low, typically
one byte per subtitle on average.
By default, this work-around is disabled.
@end table
@c man end SUBTITLES ENCODERS

View File

@@ -11,19 +11,23 @@ CFLAGS += -Wall -g
CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
EXAMPLES= decoding_encoding \
demuxing \
EXAMPLES= avio_reading \
decoding_encoding \
demuxing_decoding \
filtering_video \
filtering_audio \
metadata \
muxing \
remuxing \
resampling_audio \
scaling_video \
transcode_aac \
transcoding \
OBJS=$(addsuffix .o,$(EXAMPLES))
# the following examples make explicit use of the math library
decoding_encoding: LDLIBS += -lm
avcodec: LDLIBS += -lm
muxing: LDLIBS += -lm
resampling_audio: LDLIBS += -lm

View File

@@ -5,14 +5,19 @@ Both following use cases rely on pkg-config and make, thus make sure
that you have them installed and working on your system.
1) Build the installed examples in a generic read/write user directory
Method 1: build the installed examples in a generic read/write user directory
Copy to a read/write user directory and just use "make", it will link
to the libraries on your system, assuming the PKG_CONFIG_PATH is
correctly configured.
2) Build the examples in-tree
Method 2: build the examples in-tree
Assuming you are in the source FFmpeg checkout directory, you need to build
FFmpeg (no need to make install in any prefix). Then you can go into
doc/examples and run a command such as PKG_CONFIG_PATH=pc-uninstalled make.
FFmpeg (no need to make install in any prefix). Then just run "make examples".
This will build the examples using the FFmpeg build system. You can clean those
examples using "make examplesclean"
If you want to try the dedicated Makefile examples (to emulate the first
method), go into doc/examples and run a command such as
PKG_CONFIG_PATH=pc-uninstalled make.

134
doc/examples/avio_reading.c Normal file
View File

@@ -0,0 +1,134 @@
/*
* Copyright (c) 2014 Stefano Sabatini
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* @file
* libavformat AVIOContext API example.
*
* Make libavformat demuxer access media content through a custom
* AVIOContext read callback.
* @example avio_reading.c
*/
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
#include <libavutil/file.h>
struct buffer_data {
uint8_t *ptr;
size_t size; ///< size left in the buffer
};
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
{
struct buffer_data *bd = (struct buffer_data *)opaque;
buf_size = FFMIN(buf_size, bd->size);
printf("ptr:%p size:%zu\n", bd->ptr, bd->size);
/* copy internal buffer data to buf */
memcpy(buf, bd->ptr, buf_size);
bd->ptr += buf_size;
bd->size -= buf_size;
return buf_size;
}
int main(int argc, char *argv[])
{
AVFormatContext *fmt_ctx = NULL;
AVIOContext *avio_ctx = NULL;
uint8_t *buffer = NULL, *avio_ctx_buffer = NULL;
size_t buffer_size, avio_ctx_buffer_size = 4096;
char *input_filename = NULL;
int ret = 0;
struct buffer_data bd = { 0 };
if (argc != 2) {
fprintf(stderr, "usage: %s input_file\n"
"API example program to show how to read from a custom buffer "
"accessed through AVIOContext.\n", argv[0]);
return 1;
}
input_filename = argv[1];
/* register codecs and formats and other lavf/lavc components*/
av_register_all();
/* slurp file content into buffer */
ret = av_file_map(input_filename, &buffer, &buffer_size, 0, NULL);
if (ret < 0)
goto end;
/* fill opaque structure used by the AVIOContext read callback */
bd.ptr = buffer;
bd.size = buffer_size;
if (!(fmt_ctx = avformat_alloc_context())) {
ret = AVERROR(ENOMEM);
goto end;
}
avio_ctx_buffer = av_malloc(avio_ctx_buffer_size);
if (!avio_ctx_buffer) {
ret = AVERROR(ENOMEM);
goto end;
}
avio_ctx = avio_alloc_context(avio_ctx_buffer, avio_ctx_buffer_size,
0, &bd, &read_packet, NULL, NULL);
if (!avio_ctx) {
ret = AVERROR(ENOMEM);
goto end;
}
fmt_ctx->pb = avio_ctx;
ret = avformat_open_input(&fmt_ctx, NULL, NULL, NULL);
if (ret < 0) {
fprintf(stderr, "Could not open input\n");
goto end;
}
ret = avformat_find_stream_info(fmt_ctx, NULL);
if (ret < 0) {
fprintf(stderr, "Could not find stream information\n");
goto end;
}
av_dump_format(fmt_ctx, 0, input_filename, 0);
end:
avformat_close_input(&fmt_ctx);
/* note: the internal buffer could have changed, and be != avio_ctx_buffer */
if (avio_ctx) {
av_freep(&avio_ctx->buffer);
av_freep(&avio_ctx);
}
av_file_unmap(buffer, buffer_size);
if (ret < 0) {
fprintf(stderr, "Error occurred: %s\n", av_err2str(ret));
return 1;
}
return 0;
}

View File

@@ -24,10 +24,10 @@
* @file
* libavcodec API use example.
*
* @example decoding_encoding.c
* Note that libavcodec only handles codecs (mpeg, mpeg4, etc...),
* not file formats (avi, vob, mp4, mov, mkv, mxf, flv, mpegts, mpegps, etc...). See library 'libavformat' for the
* format handling
* @example doc/examples/decoding_encoding.c
*/
#include <math.h>
@@ -156,7 +156,7 @@ static void audio_encode_example(const char *filename)
}
/* frame containing input raw audio */
frame = avcodec_alloc_frame();
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate audio frame\n");
exit(1);
@@ -170,6 +170,10 @@ static void audio_encode_example(const char *filename)
* we calculate the size of the samples buffer in bytes */
buffer_size = av_samples_get_buffer_size(NULL, c->channels, c->frame_size,
c->sample_fmt, 0);
if (buffer_size < 0) {
fprintf(stderr, "Could not get sample buffer size\n");
exit(1);
}
samples = av_malloc(buffer_size);
if (!samples) {
fprintf(stderr, "Could not allocate %d bytes for samples buffer\n",
@@ -187,7 +191,7 @@ static void audio_encode_example(const char *filename)
/* encode a single tone sound */
t = 0;
tincr = 2 * M_PI * 440.0 / c->sample_rate;
for(i=0;i<200;i++) {
for (i = 0; i < 200; i++) {
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
@@ -227,7 +231,7 @@ static void audio_encode_example(const char *filename)
fclose(f);
av_freep(&samples);
avcodec_free_frame(&frame);
av_frame_free(&frame);
avcodec_close(c);
av_free(c);
}
@@ -287,12 +291,11 @@ static void audio_decode_example(const char *outfilename, const char *filename)
int got_frame = 0;
if (!decoded_frame) {
if (!(decoded_frame = avcodec_alloc_frame())) {
if (!(decoded_frame = av_frame_alloc())) {
fprintf(stderr, "Could not allocate audio frame\n");
exit(1);
}
} else
avcodec_get_frame_defaults(decoded_frame);
}
len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt);
if (len < 0) {
@@ -304,6 +307,11 @@ static void audio_decode_example(const char *outfilename, const char *filename)
int data_size = av_samples_get_buffer_size(NULL, c->channels,
decoded_frame->nb_samples,
c->sample_fmt, 1);
if (data_size < 0) {
/* This should not occur, checking just for paranoia */
fprintf(stderr, "Failed to calculate data size\n");
exit(1);
}
fwrite(decoded_frame->data[0], 1, data_size, outfile);
}
avpkt.size -= len;
@@ -329,7 +337,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
avcodec_close(c);
av_free(c);
avcodec_free_frame(&decoded_frame);
av_frame_free(&decoded_frame);
}
/*
@@ -366,12 +374,18 @@ static void video_encode_example(const char *filename, int codec_id)
c->width = 352;
c->height = 288;
/* frames per second */
c->time_base= (AVRational){1,25};
c->gop_size = 10; /* emit one intra frame every ten frames */
c->max_b_frames=1;
c->time_base = (AVRational){1,25};
/* emit one intra frame every ten frames
* check frame pict_type before passing frame
* to encoder, if frame->pict_type is AV_PICTURE_TYPE_I
* then gop_size is ignored and the output of encoder
* will always be I frame irrespective to gop_size
*/
c->gop_size = 10;
c->max_b_frames = 1;
c->pix_fmt = AV_PIX_FMT_YUV420P;
if(codec_id == AV_CODEC_ID_H264)
if (codec_id == AV_CODEC_ID_H264)
av_opt_set(c->priv_data, "preset", "slow", 0);
/* open it */
@@ -386,7 +400,7 @@ static void video_encode_example(const char *filename, int codec_id)
exit(1);
}
frame = avcodec_alloc_frame();
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
@@ -405,7 +419,7 @@ static void video_encode_example(const char *filename, int codec_id)
}
/* encode 1 second of video */
for(i=0;i<25;i++) {
for (i = 0; i < 25; i++) {
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
@@ -413,15 +427,15 @@ static void video_encode_example(const char *filename, int codec_id)
fflush(stdout);
/* prepare a dummy image */
/* Y */
for(y=0;y<c->height;y++) {
for(x=0;x<c->width;x++) {
for (y = 0; y < c->height; y++) {
for (x = 0; x < c->width; x++) {
frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3;
}
}
/* Cb and Cr */
for(y=0;y<c->height/2;y++) {
for(x=0;x<c->width/2;x++) {
for (y = 0; y < c->height/2; y++) {
for (x = 0; x < c->width/2; x++) {
frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2;
frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5;
}
@@ -467,7 +481,7 @@ static void video_encode_example(const char *filename, int codec_id)
avcodec_close(c);
av_free(c);
av_freep(&frame->data[0]);
avcodec_free_frame(&frame);
av_frame_free(&frame);
printf("\n");
}
@@ -481,10 +495,10 @@ static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize,
FILE *f;
int i;
f=fopen(filename,"w");
fprintf(f,"P5\n%d %d\n%d\n",xsize,ysize,255);
for(i=0;i<ysize;i++)
fwrite(buf + i * wrap,1,xsize,f);
f = fopen(filename,"w");
fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);
for (i = 0; i < ysize; i++)
fwrite(buf + i * wrap, 1, xsize, f);
fclose(f);
}
@@ -565,14 +579,14 @@ static void video_decode_example(const char *outfilename, const char *filename)
exit(1);
}
frame = avcodec_alloc_frame();
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
frame_count = 0;
for(;;) {
for (;;) {
avpkt.size = fread(inbuf, 1, INBUF_SIZE, f);
if (avpkt.size == 0)
break;
@@ -609,7 +623,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
avcodec_close(c);
av_free(c);
avcodec_free_frame(&frame);
av_frame_free(&frame);
printf("\n");
}
@@ -626,7 +640,7 @@ int main(int argc, char **argv)
"This program generates a synthetic stream and encodes it to a file\n"
"named test.h264, test.mp2 or test.mpg depending on output_type.\n"
"The encoded stream is then decoded and written to a raw data output.\n"
"output_type must be choosen between 'h264', 'mp2', 'mpg'.\n",
"output_type must be chosen between 'h264', 'mp2', 'mpg'.\n",
argv[0]);
return 1;
}

View File

@@ -22,11 +22,11 @@
/**
* @file
* libavformat demuxing API use example.
* Demuxing and decoding example.
*
* Show how to use the libavformat and libavcodec API to demux and
* decode audio and video data.
* @example doc/examples/demuxing.c
* @example demuxing_decoding.c
*/
#include <libavutil/imgutils.h>
@@ -53,16 +53,30 @@ static AVPacket pkt;
static int video_frame_count = 0;
static int audio_frame_count = 0;
/* The different ways of decoding and managing data memory. You are not
* supposed to support all the modes in your application but pick the one most
* appropriate to your needs. Look for the use of api_mode in this example to
* see what are the differences of API usage between them */
enum {
API_MODE_OLD = 0, /* old method, deprecated */
API_MODE_NEW_API_REF_COUNT = 1, /* new method, using the frame reference counting */
API_MODE_NEW_API_NO_REF_COUNT = 2, /* new method, without reference counting */
};
static int api_mode = API_MODE_OLD;
static int decode_packet(int *got_frame, int cached)
{
int ret = 0;
int decoded = pkt.size;
*got_frame = 0;
if (pkt.stream_index == video_stream_idx) {
/* decode video frame */
ret = avcodec_decode_video2(video_dec_ctx, frame, got_frame, &pkt);
if (ret < 0) {
fprintf(stderr, "Error decoding video frame\n");
fprintf(stderr, "Error decoding video frame (%s)\n", av_err2str(ret));
return ret;
}
@@ -85,7 +99,7 @@ static int decode_packet(int *got_frame, int cached)
/* decode audio frame */
ret = avcodec_decode_audio4(audio_dec_ctx, frame, got_frame, &pkt);
if (ret < 0) {
fprintf(stderr, "Error decoding audio frame\n");
fprintf(stderr, "Error decoding audio frame (%s)\n", av_err2str(ret));
return ret;
}
/* Some audio decoders decode only part of the packet, and have to be
@@ -113,6 +127,11 @@ static int decode_packet(int *got_frame, int cached)
}
}
/* If we use the new API with reference counting, we own the data and need
* to de-reference it when we don't use it anymore */
if (*got_frame && api_mode == API_MODE_NEW_API_REF_COUNT)
av_frame_unref(frame);
return decoded;
}
@@ -123,6 +142,7 @@ static int open_codec_context(int *stream_idx,
AVStream *st;
AVCodecContext *dec_ctx = NULL;
AVCodec *dec = NULL;
AVDictionary *opts = NULL;
ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
if (ret < 0) {
@@ -139,10 +159,13 @@ static int open_codec_context(int *stream_idx,
if (!dec) {
fprintf(stderr, "Failed to find %s codec\n",
av_get_media_type_string(type));
return ret;
return AVERROR(EINVAL);
}
if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) {
/* Init the decoders, with or without reference counting */
if (api_mode == API_MODE_NEW_API_REF_COUNT)
av_dict_set(&opts, "refcounted_frames", "1", 0);
if ((ret = avcodec_open2(dec_ctx, dec, &opts)) < 0) {
fprintf(stderr, "Failed to open %s codec\n",
av_get_media_type_string(type));
return ret;
@@ -185,15 +208,31 @@ int main (int argc, char **argv)
{
int ret = 0, got_frame;
if (argc != 4) {
fprintf(stderr, "usage: %s input_file video_output_file audio_output_file\n"
if (argc != 4 && argc != 5) {
fprintf(stderr, "usage: %s [-refcount=<old|new_norefcount|new_refcount>] "
"input_file video_output_file audio_output_file\n"
"API example program to show how to read frames from an input file.\n"
"This program reads frames from a file, decodes them, and writes decoded\n"
"video frames to a rawvideo file named video_output_file, and decoded\n"
"audio frames to a rawaudio file named audio_output_file.\n"
"audio frames to a rawaudio file named audio_output_file.\n\n"
"If the -refcount option is specified, the program use the\n"
"reference counting frame system which allows keeping a copy of\n"
"the data for longer than one decode call. If unset, it's using\n"
"the classic old method.\n"
"\n", argv[0]);
exit(1);
}
if (argc == 5) {
const char *mode = argv[1] + strlen("-refcount=");
if (!strcmp(mode, "old")) api_mode = API_MODE_OLD;
else if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT;
else if (!strcmp(mode, "new_refcount")) api_mode = API_MODE_NEW_API_REF_COUNT;
else {
fprintf(stderr, "unknow mode '%s'\n", mode);
exit(1);
}
argv++;
}
src_filename = argv[1];
video_dst_filename = argv[2];
audio_dst_filename = argv[3];
@@ -240,7 +279,7 @@ int main (int argc, char **argv)
audio_dec_ctx = audio_stream->codec;
audio_dst_file = fopen(audio_dst_filename, "wb");
if (!audio_dst_file) {
fprintf(stderr, "Could not open destination file %s\n", video_dst_filename);
fprintf(stderr, "Could not open destination file %s\n", audio_dst_filename);
ret = 1;
goto end;
}
@@ -255,7 +294,12 @@ int main (int argc, char **argv)
goto end;
}
frame = avcodec_alloc_frame();
/* When using the new API, you need to use the libavutil/frame.h API, while
* the classic frame management is available in libavcodec */
if (api_mode == API_MODE_OLD)
frame = avcodec_alloc_frame();
else
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate frame\n");
ret = AVERROR(ENOMEM);
@@ -325,16 +369,17 @@ int main (int argc, char **argv)
}
end:
if (video_dec_ctx)
avcodec_close(video_dec_ctx);
if (audio_dec_ctx)
avcodec_close(audio_dec_ctx);
avcodec_close(video_dec_ctx);
avcodec_close(audio_dec_ctx);
avformat_close_input(&fmt_ctx);
if (video_dst_file)
fclose(video_dst_file);
if (audio_dst_file)
fclose(audio_dst_file);
av_free(frame);
if (api_mode == API_MODE_OLD)
avcodec_free_frame(&frame);
else
av_frame_free(&frame);
av_free(video_dst_data[0]);
return ret < 0;

364
doc/examples/filter_audio.c Normal file
View File

@@ -0,0 +1,364 @@
/*
* copyright (c) 2013 Andrew Kelley
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* libavfilter API usage example.
*
* @example filter_audio.c
* This example will generate a sine wave audio,
* pass it through a simple filter chain, and then compute the MD5 checksum of
* the output data.
*
* The filter chain it uses is:
* (input) -> abuffer -> volume -> aformat -> abuffersink -> (output)
*
* abuffer: This provides the endpoint where you can feed the decoded samples.
* volume: In this example we hardcode it to 0.90.
* aformat: This converts the samples to the samplefreq, channel layout,
* and sample format required by the audio device.
* abuffersink: This provides the endpoint where you can read the samples after
* they have passed through the filter chain.
*/
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "libavutil/channel_layout.h"
#include "libavutil/md5.h"
#include "libavutil/opt.h"
#include "libavutil/samplefmt.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/buffersink.h"
#include "libavfilter/buffersrc.h"
#define INPUT_SAMPLERATE 48000
#define INPUT_FORMAT AV_SAMPLE_FMT_FLTP
#define INPUT_CHANNEL_LAYOUT AV_CH_LAYOUT_5POINT0
#define VOLUME_VAL 0.90
static int init_filter_graph(AVFilterGraph **graph, AVFilterContext **src,
AVFilterContext **sink)
{
AVFilterGraph *filter_graph;
AVFilterContext *abuffer_ctx;
AVFilter *abuffer;
AVFilterContext *volume_ctx;
AVFilter *volume;
AVFilterContext *aformat_ctx;
AVFilter *aformat;
AVFilterContext *abuffersink_ctx;
AVFilter *abuffersink;
AVDictionary *options_dict = NULL;
uint8_t options_str[1024];
uint8_t ch_layout[64];
int err;
/* Create a new filtergraph, which will contain all the filters. */
filter_graph = avfilter_graph_alloc();
if (!filter_graph) {
fprintf(stderr, "Unable to create filter graph.\n");
return AVERROR(ENOMEM);
}
/* Create the abuffer filter;
* it will be used for feeding the data into the graph. */
abuffer = avfilter_get_by_name("abuffer");
if (!abuffer) {
fprintf(stderr, "Could not find the abuffer filter.\n");
return AVERROR_FILTER_NOT_FOUND;
}
abuffer_ctx = avfilter_graph_alloc_filter(filter_graph, abuffer, "src");
if (!abuffer_ctx) {
fprintf(stderr, "Could not allocate the abuffer instance.\n");
return AVERROR(ENOMEM);
}
/* Set the filter options through the AVOptions API. */
av_get_channel_layout_string(ch_layout, sizeof(ch_layout), 0, INPUT_CHANNEL_LAYOUT);
av_opt_set (abuffer_ctx, "channel_layout", ch_layout, AV_OPT_SEARCH_CHILDREN);
av_opt_set (abuffer_ctx, "sample_fmt", av_get_sample_fmt_name(INPUT_FORMAT), AV_OPT_SEARCH_CHILDREN);
av_opt_set_q (abuffer_ctx, "time_base", (AVRational){ 1, INPUT_SAMPLERATE }, AV_OPT_SEARCH_CHILDREN);
av_opt_set_int(abuffer_ctx, "sample_rate", INPUT_SAMPLERATE, AV_OPT_SEARCH_CHILDREN);
/* Now initialize the filter; we pass NULL options, since we have already
* set all the options above. */
err = avfilter_init_str(abuffer_ctx, NULL);
if (err < 0) {
fprintf(stderr, "Could not initialize the abuffer filter.\n");
return err;
}
/* Create volume filter. */
volume = avfilter_get_by_name("volume");
if (!volume) {
fprintf(stderr, "Could not find the volume filter.\n");
return AVERROR_FILTER_NOT_FOUND;
}
volume_ctx = avfilter_graph_alloc_filter(filter_graph, volume, "volume");
if (!volume_ctx) {
fprintf(stderr, "Could not allocate the volume instance.\n");
return AVERROR(ENOMEM);
}
/* A different way of passing the options is as key/value pairs in a
* dictionary. */
av_dict_set(&options_dict, "volume", AV_STRINGIFY(VOLUME_VAL), 0);
err = avfilter_init_dict(volume_ctx, &options_dict);
av_dict_free(&options_dict);
if (err < 0) {
fprintf(stderr, "Could not initialize the volume filter.\n");
return err;
}
/* Create the aformat filter;
* it ensures that the output is of the format we want. */
aformat = avfilter_get_by_name("aformat");
if (!aformat) {
fprintf(stderr, "Could not find the aformat filter.\n");
return AVERROR_FILTER_NOT_FOUND;
}
aformat_ctx = avfilter_graph_alloc_filter(filter_graph, aformat, "aformat");
if (!aformat_ctx) {
fprintf(stderr, "Could not allocate the aformat instance.\n");
return AVERROR(ENOMEM);
}
/* A third way of passing the options is in a string of the form
* key1=value1:key2=value2.... */
snprintf(options_str, sizeof(options_str),
"sample_fmts=%s:sample_rates=%d:channel_layouts=0x%"PRIx64,
av_get_sample_fmt_name(AV_SAMPLE_FMT_S16), 44100,
(uint64_t)AV_CH_LAYOUT_STEREO);
err = avfilter_init_str(aformat_ctx, options_str);
if (err < 0) {
av_log(NULL, AV_LOG_ERROR, "Could not initialize the aformat filter.\n");
return err;
}
/* Finally create the abuffersink filter;
* it will be used to get the filtered data out of the graph. */
abuffersink = avfilter_get_by_name("abuffersink");
if (!abuffersink) {
fprintf(stderr, "Could not find the abuffersink filter.\n");
return AVERROR_FILTER_NOT_FOUND;
}
abuffersink_ctx = avfilter_graph_alloc_filter(filter_graph, abuffersink, "sink");
if (!abuffersink_ctx) {
fprintf(stderr, "Could not allocate the abuffersink instance.\n");
return AVERROR(ENOMEM);
}
/* This filter takes no options. */
err = avfilter_init_str(abuffersink_ctx, NULL);
if (err < 0) {
fprintf(stderr, "Could not initialize the abuffersink instance.\n");
return err;
}
/* Connect the filters;
* in this simple case the filters just form a linear chain. */
err = avfilter_link(abuffer_ctx, 0, volume_ctx, 0);
if (err >= 0)
err = avfilter_link(volume_ctx, 0, aformat_ctx, 0);
if (err >= 0)
err = avfilter_link(aformat_ctx, 0, abuffersink_ctx, 0);
if (err < 0) {
fprintf(stderr, "Error connecting filters\n");
return err;
}
/* Configure the graph. */
err = avfilter_graph_config(filter_graph, NULL);
if (err < 0) {
av_log(NULL, AV_LOG_ERROR, "Error configuring the filter graph\n");
return err;
}
*graph = filter_graph;
*src = abuffer_ctx;
*sink = abuffersink_ctx;
return 0;
}
/* Do something useful with the filtered data: this simple
* example just prints the MD5 checksum of each plane to stdout. */
static int process_output(struct AVMD5 *md5, AVFrame *frame)
{
int planar = av_sample_fmt_is_planar(frame->format);
int channels = av_get_channel_layout_nb_channels(frame->channel_layout);
int planes = planar ? channels : 1;
int bps = av_get_bytes_per_sample(frame->format);
int plane_size = bps * frame->nb_samples * (planar ? 1 : channels);
int i, j;
for (i = 0; i < planes; i++) {
uint8_t checksum[16];
av_md5_init(md5);
av_md5_sum(checksum, frame->extended_data[i], plane_size);
fprintf(stdout, "plane %d: 0x", i);
for (j = 0; j < sizeof(checksum); j++)
fprintf(stdout, "%02X", checksum[j]);
fprintf(stdout, "\n");
}
fprintf(stdout, "\n");
return 0;
}
/* Construct a frame of audio data to be filtered;
* this simple example just synthesizes a sine wave. */
static int get_input(AVFrame *frame, int frame_num)
{
int err, i, j;
#define FRAME_SIZE 1024
/* Set up the frame properties and allocate the buffer for the data. */
frame->sample_rate = INPUT_SAMPLERATE;
frame->format = INPUT_FORMAT;
frame->channel_layout = INPUT_CHANNEL_LAYOUT;
frame->nb_samples = FRAME_SIZE;
frame->pts = frame_num * FRAME_SIZE;
err = av_frame_get_buffer(frame, 0);
if (err < 0)
return err;
/* Fill the data for each channel. */
for (i = 0; i < 5; i++) {
float *data = (float*)frame->extended_data[i];
for (j = 0; j < frame->nb_samples; j++)
data[j] = sin(2 * M_PI * (frame_num + j) * (i + 1) / FRAME_SIZE);
}
return 0;
}
int main(int argc, char *argv[])
{
struct AVMD5 *md5;
AVFilterGraph *graph;
AVFilterContext *src, *sink;
AVFrame *frame;
uint8_t errstr[1024];
float duration;
int err, nb_frames, i;
if (argc < 2) {
fprintf(stderr, "Usage: %s <duration>\n", argv[0]);
return 1;
}
duration = atof(argv[1]);
nb_frames = duration * INPUT_SAMPLERATE / FRAME_SIZE;
if (nb_frames <= 0) {
fprintf(stderr, "Invalid duration: %s\n", argv[1]);
return 1;
}
avfilter_register_all();
/* Allocate the frame we will be using to store the data. */
frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Error allocating the frame\n");
return 1;
}
md5 = av_md5_alloc();
if (!md5) {
fprintf(stderr, "Error allocating the MD5 context\n");
return 1;
}
/* Set up the filtergraph. */
err = init_filter_graph(&graph, &src, &sink);
if (err < 0) {
fprintf(stderr, "Unable to init filter graph:");
goto fail;
}
/* the main filtering loop */
for (i = 0; i < nb_frames; i++) {
/* get an input frame to be filtered */
err = get_input(frame, i);
if (err < 0) {
fprintf(stderr, "Error generating input frame:");
goto fail;
}
/* Send the frame to the input of the filtergraph. */
err = av_buffersrc_add_frame(src, frame);
if (err < 0) {
av_frame_unref(frame);
fprintf(stderr, "Error submitting the frame to the filtergraph:");
goto fail;
}
/* Get all the filtered output that is available. */
while ((err = av_buffersink_get_frame(sink, frame)) >= 0) {
/* now do something with our filtered frame */
err = process_output(md5, frame);
if (err < 0) {
fprintf(stderr, "Error processing the filtered frame:");
goto fail;
}
av_frame_unref(frame);
}
if (err == AVERROR(EAGAIN)) {
/* Need to feed more frames in. */
continue;
} else if (err == AVERROR_EOF) {
/* Nothing more to do, finish. */
break;
} else if (err < 0) {
/* An error occurred. */
fprintf(stderr, "Error filtering the data:");
goto fail;
}
}
avfilter_graph_free(&graph);
av_frame_free(&frame);
av_freep(&md5);
return 0;
fail:
av_strerror(err, errstr, sizeof(errstr));
fprintf(stderr, "%s\n", errstr);
return 1;
}

View File

@@ -25,7 +25,7 @@
/**
* @file
* API example for audio decoding and filtering
* @example doc/examples/filtering_audio.c
* @example filtering_audio.c
*/
#include <unistd.h>
@@ -85,7 +85,7 @@ static int open_input_file(const char *filename)
static int init_filters(const char *filters_descr)
{
char args[512];
int ret;
int ret = 0;
AVFilter *abuffersrc = avfilter_get_by_name("abuffer");
AVFilter *abuffersink = avfilter_get_by_name("abuffersink");
AVFilterInOut *outputs = avfilter_inout_alloc();
@@ -97,6 +97,10 @@ static int init_filters(const char *filters_descr)
AVRational time_base = fmt_ctx->streams[audio_stream_index]->time_base;
filter_graph = avfilter_graph_alloc();
if (!outputs || !inputs || !filter_graph) {
ret = AVERROR(ENOMEM);
goto end;
}
/* buffer audio source: the decoded frames from the decoder will be inserted here. */
if (!dec_ctx->channel_layout)
@@ -109,7 +113,7 @@ static int init_filters(const char *filters_descr)
args, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer source\n");
return ret;
goto end;
}
/* buffer audio sink: to terminate the filter chain. */
@@ -117,28 +121,28 @@ static int init_filters(const char *filters_descr)
NULL, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n");
return ret;
goto end;
}
ret = av_opt_set_int_list(buffersink_ctx, "sample_fmts", out_sample_fmts, -1,
AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample format\n");
return ret;
goto end;
}
ret = av_opt_set_int_list(buffersink_ctx, "channel_layouts", out_channel_layouts, -1,
AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output channel layout\n");
return ret;
goto end;
}
ret = av_opt_set_int_list(buffersink_ctx, "sample_rates", out_sample_rates, -1,
AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n");
return ret;
goto end;
}
/* Endpoints for the filter graph. */
@@ -153,11 +157,11 @@ static int init_filters(const char *filters_descr)
inputs->next = NULL;
if ((ret = avfilter_graph_parse_ptr(filter_graph, filters_descr,
&inputs, &outputs, NULL)) < 0)
return ret;
&inputs, &outputs, NULL)) < 0)
goto end;
if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0)
return ret;
goto end;
/* Print summary of the sink buffer
* Note: args buffer is reused to store channel layout string */
@@ -168,7 +172,11 @@ static int init_filters(const char *filters_descr)
(char *)av_x_if_null(av_get_sample_fmt_name(outlink->format), "?"),
args);
return 0;
end:
avfilter_inout_free(&inputs);
avfilter_inout_free(&outputs);
return ret;
}
static void print_frame(const AVFrame *frame)
@@ -188,7 +196,7 @@ static void print_frame(const AVFrame *frame)
int main(int argc, char **argv)
{
int ret;
AVPacket packet;
AVPacket packet0, packet;
AVFrame *frame = av_frame_alloc();
AVFrame *filt_frame = av_frame_alloc();
int got_frame;
@@ -202,7 +210,6 @@ int main(int argc, char **argv)
exit(1);
}
avcodec_register_all();
av_register_all();
avfilter_register_all();
@@ -212,18 +219,24 @@ int main(int argc, char **argv)
goto end;
/* read all packets */
packet0.data = NULL;
packet.data = NULL;
while (1) {
if ((ret = av_read_frame(fmt_ctx, &packet)) < 0)
break;
if (!packet0.data) {
if ((ret = av_read_frame(fmt_ctx, &packet)) < 0)
break;
packet0 = packet;
}
if (packet.stream_index == audio_stream_index) {
avcodec_get_frame_defaults(frame);
got_frame = 0;
ret = avcodec_decode_audio4(dec_ctx, frame, &got_frame, &packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding audio\n");
continue;
}
packet.size -= ret;
packet.data += ret;
if (got_frame) {
/* push the audio data from decoded frame into the filtergraph */
@@ -235,29 +248,31 @@ int main(int argc, char **argv)
/* pull filtered audio from the filtergraph */
while (1) {
ret = av_buffersink_get_frame(buffersink_ctx, filt_frame);
if(ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
break;
if(ret < 0)
if (ret < 0)
goto end;
print_frame(filt_frame);
av_frame_unref(filt_frame);
}
}
if (packet.size <= 0)
av_free_packet(&packet0);
} else {
/* discard non-wanted packets */
av_free_packet(&packet0);
}
av_free_packet(&packet);
}
end:
avfilter_graph_free(&filter_graph);
if (dec_ctx)
avcodec_close(dec_ctx);
avcodec_close(dec_ctx);
avformat_close_input(&fmt_ctx);
av_frame_free(&frame);
av_frame_free(&filt_frame);
if (ret < 0 && ret != AVERROR_EOF) {
char buf[1024];
av_strerror(ret, buf, sizeof(buf));
fprintf(stderr, "Error occurred: %s\n", buf);
fprintf(stderr, "Error occurred: %s\n", av_err2str(ret));
exit(1);
}

View File

@@ -24,7 +24,7 @@
/**
* @file
* API example for decoding and filtering
* @example doc/examples/filtering_video.c
* @example filtering_video.c
*/
#define _XOPEN_SOURCE 600 /* for usleep */
@@ -36,6 +36,7 @@
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
#include <libavutil/opt.h>
const char *filter_descr = "scale=78:24";
@@ -70,6 +71,7 @@ static int open_input_file(const char *filename)
}
video_stream_index = ret;
dec_ctx = fmt_ctx->streams[video_stream_index]->codec;
av_opt_set_int(dec_ctx, "refcounted_frames", 1, 0);
/* init the video decoder */
if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) {
@@ -83,15 +85,18 @@ static int open_input_file(const char *filename)
static int init_filters(const char *filters_descr)
{
char args[512];
int ret;
int ret = 0;
AVFilter *buffersrc = avfilter_get_by_name("buffer");
AVFilter *buffersink = avfilter_get_by_name("buffersink");
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
AVBufferSinkParams *buffersink_params;
filter_graph = avfilter_graph_alloc();
if (!outputs || !inputs || !filter_graph) {
ret = AVERROR(ENOMEM);
goto end;
}
/* buffer video source: the decoded frames from the decoder will be inserted here. */
snprintf(args, sizeof(args),
@@ -104,18 +109,22 @@ static int init_filters(const char *filters_descr)
args, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer source\n");
return ret;
goto end;
}
/* buffer video sink: to terminate the filter chain. */
buffersink_params = av_buffersink_params_alloc();
buffersink_params->pixel_fmts = pix_fmts;
ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
NULL, buffersink_params, filter_graph);
av_free(buffersink_params);
NULL, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");
return ret;
goto end;
}
ret = av_opt_set_int_list(buffersink_ctx, "pix_fmts", pix_fmts,
AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n");
goto end;
}
/* Endpoints for the filter graph. */
@@ -131,11 +140,16 @@ static int init_filters(const char *filters_descr)
if ((ret = avfilter_graph_parse_ptr(filter_graph, filters_descr,
&inputs, &outputs, NULL)) < 0)
return ret;
goto end;
if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0)
return ret;
return 0;
goto end;
end:
avfilter_inout_free(&inputs);
avfilter_inout_free(&outputs);
return ret;
}
static void display_frame(const AVFrame *frame, AVRational time_base)
@@ -186,7 +200,6 @@ int main(int argc, char **argv)
exit(1);
}
avcodec_register_all();
av_register_all();
avfilter_register_all();
@@ -201,7 +214,6 @@ int main(int argc, char **argv)
break;
if (packet.stream_index == video_stream_index) {
avcodec_get_frame_defaults(frame);
got_frame = 0;
ret = avcodec_decode_video2(dec_ctx, frame, &got_frame, &packet);
if (ret < 0) {
@@ -228,22 +240,20 @@ int main(int argc, char **argv)
display_frame(filt_frame, buffersink_ctx->inputs[0]->time_base);
av_frame_unref(filt_frame);
}
av_frame_unref(frame);
}
}
av_free_packet(&packet);
}
end:
avfilter_graph_free(&filter_graph);
if (dec_ctx)
avcodec_close(dec_ctx);
avcodec_close(dec_ctx);
avformat_close_input(&fmt_ctx);
av_frame_free(&frame);
av_frame_free(&filt_frame);
if (ret < 0 && ret != AVERROR_EOF) {
char buf[1024];
av_strerror(ret, buf, sizeof(buf));
fprintf(stderr, "Error occurred: %s\n", buf);
fprintf(stderr, "Error occurred: %s\n", av_err2str(ret));
exit(1);
}

View File

@@ -23,7 +23,7 @@
/**
* @file
* Shows how the metadata API can be used in application programs.
* @example doc/examples/metadata.c
* @example metadata.c
*/
#include <stdio.h>

View File

@@ -24,9 +24,9 @@
* @file
* libavformat API example.
*
* Output a media file in any supported libavformat format.
* The default codecs are used.
* @example doc/examples/muxing.c
* Output a media file in any supported libavformat format. The default
* codecs are used.
* @example muxing.c
*/
#include <stdlib.h>
@@ -34,26 +34,64 @@
#include <string.h>
#include <math.h>
#include <libavutil/avassert.h>
#include <libavutil/channel_layout.h>
#include <libavutil/opt.h>
#include <libavutil/mathematics.h>
#include <libavutil/timestamp.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libswresample/swresample.h>
/* 5 seconds stream duration */
#define STREAM_DURATION 200.0
#define STREAM_DURATION 10.0
#define STREAM_FRAME_RATE 25 /* 25 images/s */
#define STREAM_NB_FRAMES ((int)(STREAM_DURATION * STREAM_FRAME_RATE))
#define STREAM_PIX_FMT AV_PIX_FMT_YUV420P /* default pix_fmt */
static int sws_flags = SWS_BICUBIC;
#define SCALE_FLAGS SWS_BICUBIC
// a wrapper around a single output AVStream
typedef struct OutputStream {
AVStream *st;
/* pts of the next frame that will be generated */
int64_t next_pts;
AVFrame *frame;
AVFrame *tmp_frame;
float t, tincr, tincr2;
struct SwsContext *sws_ctx;
} OutputStream;
static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt)
{
AVRational *time_base = &fmt_ctx->streams[pkt->stream_index]->time_base;
printf("pts:%s pts_time:%s dts:%s dts_time:%s duration:%s duration_time:%s stream_index:%d\n",
av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, time_base),
av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, time_base),
av_ts2str(pkt->duration), av_ts2timestr(pkt->duration, time_base),
pkt->stream_index);
}
static int write_frame(AVFormatContext *fmt_ctx, const AVRational *time_base, AVStream *st, AVPacket *pkt)
{
/* rescale output packet timestamp values from codec to stream timebase */
av_packet_rescale_ts(pkt, *time_base, st->time_base);
pkt->stream_index = st->index;
/* Write the compressed frame to the media file. */
log_packet(fmt_ctx, pkt);
return av_interleaved_write_frame(fmt_ctx, pkt);
}
/* Add an output stream. */
static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec,
enum AVCodecID codec_id)
static void add_stream(OutputStream *ost, AVFormatContext *oc,
AVCodec **codec,
enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
/* find the encoder */
*codec = avcodec_find_encoder(codec_id);
@@ -63,20 +101,22 @@ static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec,
exit(1);
}
st = avformat_new_stream(oc, *codec);
if (!st) {
ost->st = avformat_new_stream(oc, *codec);
if (!ost->st) {
fprintf(stderr, "Could not allocate stream\n");
exit(1);
}
st->id = oc->nb_streams-1;
c = st->codec;
ost->st->id = oc->nb_streams-1;
c = ost->st->codec;
switch ((*codec)->type) {
case AVMEDIA_TYPE_AUDIO:
c->sample_fmt = AV_SAMPLE_FMT_FLTP;
c->sample_fmt = (*codec)->sample_fmts ?
(*codec)->sample_fmts[0] : AV_SAMPLE_FMT_FLTP;
c->bit_rate = 64000;
c->sample_rate = 44100;
c->channels = 2;
c->channel_layout = AV_CH_LAYOUT_STEREO;
break;
case AVMEDIA_TYPE_VIDEO:
@@ -113,32 +153,21 @@ static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec,
/* Some formats want stream headers to be separate. */
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
return st;
}
/**************************************************************/
/* audio output */
static float t, tincr, tincr2;
static uint8_t **src_samples_data;
static int src_samples_linesize;
static int src_nb_samples;
static int max_dst_nb_samples;
uint8_t **dst_samples_data;
int dst_samples_linesize;
int dst_samples_size;
int samples_count;
struct SwrContext *swr_ctx = NULL;
static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st)
static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost)
{
AVCodecContext *c;
int ret;
c = st->codec;
c = ost->st->codec;
/* open it */
ret = avcodec_open2(c, codec, NULL);
@@ -148,20 +177,32 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st)
}
/* init signal generator */
t = 0;
tincr = 2 * M_PI * 110.0 / c->sample_rate;
ost->t = 0;
ost->tincr = 2 * M_PI * 110.0 / c->sample_rate;
/* increment frequency by 110 Hz per second */
tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;
ost->tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate;
src_nb_samples = c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE ?
10000 : c->frame_size;
ret = av_samples_alloc_array_and_samples(&src_samples_data, &src_samples_linesize, c->channels,
src_nb_samples, c->sample_fmt, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate source samples\n");
ost->frame = av_frame_alloc();
if (!ost->frame)
exit(1);
}
ost->frame->sample_rate = c->sample_rate;
ost->frame->format = AV_SAMPLE_FMT_S16;
ost->frame->channel_layout = c->channel_layout;
if (c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)
ost->frame->nb_samples = 10000;
else
ost->frame->nb_samples = c->frame_size;
ost->tmp_frame = av_frame_alloc();
if (!ost->frame)
exit(1);
ost->tmp_frame->sample_rate = c->sample_rate;
ost->tmp_frame->format = c->sample_fmt;
ost->tmp_frame->channel_layout = c->channel_layout;
ost->tmp_frame->nb_samples = ost->frame->nb_samples;
/* create resampler context */
if (c->sample_fmt != AV_SAMPLE_FMT_S16) {
@@ -186,121 +227,143 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st)
}
}
/* compute the number of converted samples: buffering is avoided
* ensuring that the output buffer will contain at least all the
* converted input samples */
max_dst_nb_samples = src_nb_samples;
ret = av_samples_alloc_array_and_samples(&dst_samples_data, &dst_samples_linesize, c->channels,
max_dst_nb_samples, c->sample_fmt, 0);
ret = av_frame_get_buffer(ost->frame, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate destination samples\n");
fprintf(stderr, "Could not allocate an audio frame.\n");
exit(1);
}
ret = av_frame_get_buffer(ost->tmp_frame, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate an audio frame.\n");
exit(1);
}
dst_samples_size = av_samples_get_buffer_size(NULL, c->channels, max_dst_nb_samples,
c->sample_fmt, 0);
}
/* Prepare a 16 bit dummy audio frame of 'frame_size' samples and
* 'nb_channels' channels. */
static void get_audio_frame(int16_t *samples, int frame_size, int nb_channels)
static AVFrame *get_audio_frame(OutputStream *ost)
{
int j, i, v;
int16_t *q;
int j, i, v, ret;
int16_t *q = (int16_t*)ost->frame->data[0];
q = samples;
for (j = 0; j < frame_size; j++) {
v = (int)(sin(t) * 10000);
for (i = 0; i < nb_channels; i++)
/* check if we want to generate more frames */
if (av_compare_ts(ost->next_pts, ost->st->codec->time_base,
STREAM_DURATION, (AVRational){ 1, 1 }) >= 0)
return NULL;
/* when we pass a frame to the encoder, it may keep a reference to it
* internally;
* make sure we do not overwrite it here
*/
ret = av_frame_make_writable(ost->frame);
if (ret < 0)
exit(1);
for (j = 0; j < ost->frame->nb_samples; j++) {
v = (int)(sin(ost->t) * 10000);
for (i = 0; i < ost->st->codec->channels; i++)
*q++ = v;
t += tincr;
tincr += tincr2;
ost->t += ost->tincr;
ost->tincr += ost->tincr2;
}
ost->frame->pts = ost->next_pts;
ost->next_pts += ost->frame->nb_samples;
return ost->frame;
}
static void write_audio_frame(AVFormatContext *oc, AVStream *st)
/*
* encode one audio frame and send it to the muxer
* return 1 when encoding is finished, 0 otherwise
*/
static int write_audio_frame(AVFormatContext *oc, OutputStream *ost)
{
AVCodecContext *c;
AVPacket pkt = { 0 }; // data and size must be 0;
AVFrame *frame = avcodec_alloc_frame();
int got_packet, ret, dst_nb_samples;
AVFrame *frame;
int ret;
int got_packet;
int dst_nb_samples;
av_init_packet(&pkt);
c = st->codec;
c = ost->st->codec;
get_audio_frame((int16_t *)src_samples_data[0], src_nb_samples, c->channels);
frame = get_audio_frame(ost);
/* convert samples from native format to destination codec format, using the resampler */
if (swr_ctx) {
/* compute destination number of samples */
dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, c->sample_rate) + src_nb_samples,
c->sample_rate, c->sample_rate, AV_ROUND_UP);
if (dst_nb_samples > max_dst_nb_samples) {
av_free(dst_samples_data[0]);
ret = av_samples_alloc(dst_samples_data, &dst_samples_linesize, c->channels,
dst_nb_samples, c->sample_fmt, 0);
if (ret < 0)
if (frame) {
/* convert samples from native format to destination codec format, using the resampler */
if (swr_ctx) {
/* compute destination number of samples */
dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, c->sample_rate) + frame->nb_samples,
c->sample_rate, c->sample_rate, AV_ROUND_UP);
av_assert0(dst_nb_samples == frame->nb_samples);
/* convert to destination format */
ret = swr_convert(swr_ctx,
ost->tmp_frame->data, dst_nb_samples,
(const uint8_t **)frame->data, frame->nb_samples);
if (ret < 0) {
fprintf(stderr, "Error while converting\n");
exit(1);
max_dst_nb_samples = dst_nb_samples;
dst_samples_size = av_samples_get_buffer_size(NULL, c->channels, dst_nb_samples,
c->sample_fmt, 0);
}
frame = ost->tmp_frame;
} else {
dst_nb_samples = frame->nb_samples;
}
/* convert to destination format */
ret = swr_convert(swr_ctx,
dst_samples_data, dst_nb_samples,
(const uint8_t **)src_samples_data, src_nb_samples);
if (ret < 0) {
fprintf(stderr, "Error while converting\n");
exit(1);
}
} else {
dst_samples_data[0] = src_samples_data[0];
dst_nb_samples = src_nb_samples;
frame->pts = av_rescale_q(samples_count, (AVRational){1, c->sample_rate}, c->time_base);
samples_count += dst_nb_samples;
}
frame->nb_samples = dst_nb_samples;
avcodec_fill_audio_frame(frame, c->channels, c->sample_fmt,
dst_samples_data[0], dst_samples_size, 0);
ret = avcodec_encode_audio2(c, &pkt, frame, &got_packet);
if (ret < 0) {
fprintf(stderr, "Error encoding audio frame: %s\n", av_err2str(ret));
exit(1);
}
if (!got_packet)
return;
pkt.stream_index = st->index;
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc, &pkt);
if (ret != 0) {
fprintf(stderr, "Error while writing audio frame: %s\n",
av_err2str(ret));
exit(1);
if (got_packet) {
ret = write_frame(oc, &c->time_base, ost->st, &pkt);
if (ret < 0) {
fprintf(stderr, "Error while writing audio frame: %s\n",
av_err2str(ret));
exit(1);
}
}
avcodec_free_frame(&frame);
}
static void close_audio(AVFormatContext *oc, AVStream *st)
{
avcodec_close(st->codec);
av_free(src_samples_data[0]);
av_free(dst_samples_data[0]);
return (frame || got_packet) ? 0 : 1;
}
/**************************************************************/
/* video output */
static AVFrame *frame;
static AVPicture src_picture, dst_picture;
static int frame_count;
static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height)
{
AVFrame *picture;
int ret;
static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st)
picture = av_frame_alloc();
if (!picture)
return NULL;
picture->format = pix_fmt;
picture->width = width;
picture->height = height;
/* allocate the buffers for the frame data */
ret = av_frame_get_buffer(picture, 32);
if (ret < 0) {
fprintf(stderr, "Could not allocate frame data.\n");
exit(1);
}
return picture;
}
static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost)
{
int ret;
AVCodecContext *c = st->codec;
AVCodecContext *c = ost->st->codec;
/* open the codec */
ret = avcodec_open2(c, codec, NULL);
@@ -310,40 +373,38 @@ static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st)
}
/* allocate and init a re-usable frame */
frame = avcodec_alloc_frame();
if (!frame) {
ost->frame = alloc_picture(c->pix_fmt, c->width, c->height);
if (!ost->frame) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
/* Allocate the encoded raw picture. */
ret = avpicture_alloc(&dst_picture, c->pix_fmt, c->width, c->height);
if (ret < 0) {
fprintf(stderr, "Could not allocate picture: %s\n", av_err2str(ret));
exit(1);
}
/* If the output format is not YUV420P, then a temporary YUV420P
* picture is needed too. It is then converted to the required
* output format. */
ost->tmp_frame = NULL;
if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
ret = avpicture_alloc(&src_picture, AV_PIX_FMT_YUV420P, c->width, c->height);
if (ret < 0) {
fprintf(stderr, "Could not allocate temporary picture: %s\n",
av_err2str(ret));
ost->tmp_frame = alloc_picture(AV_PIX_FMT_YUV420P, c->width, c->height);
if (!ost->tmp_frame) {
fprintf(stderr, "Could not allocate temporary picture\n");
exit(1);
}
}
/* copy data and linesize picture pointers to frame */
*((AVPicture *)frame) = dst_picture;
}
/* Prepare a dummy image. */
static void fill_yuv_image(AVPicture *pict, int frame_index,
static void fill_yuv_image(AVFrame *pict, int frame_index,
int width, int height)
{
int x, y, i;
int x, y, i, ret;
/* when we pass a frame to the encoder, it may keep a reference to it
* internally;
* make sure we do not overwrite it here
*/
ret = av_frame_make_writable(pict);
if (ret < 0)
exit(1);
i = frame_index;
@@ -361,53 +422,77 @@ static void fill_yuv_image(AVPicture *pict, int frame_index,
}
}
static void write_video_frame(AVFormatContext *oc, AVStream *st)
static AVFrame *get_video_frame(OutputStream *ost)
{
int ret;
static struct SwsContext *sws_ctx;
AVCodecContext *c = st->codec;
AVCodecContext *c = ost->st->codec;
if (frame_count >= STREAM_NB_FRAMES) {
/* No more frames to compress. The codec has a latency of a few
* frames if using B-frames, so we get the last frames by
* passing the same picture again. */
} else {
if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
/* as we only generate a YUV420P picture, we must convert it
* to the codec pixel format if needed */
if (!sws_ctx) {
sws_ctx = sws_getContext(c->width, c->height, AV_PIX_FMT_YUV420P,
c->width, c->height, c->pix_fmt,
sws_flags, NULL, NULL, NULL);
if (!sws_ctx) {
fprintf(stderr,
"Could not initialize the conversion context\n");
exit(1);
}
/* check if we want to generate more frames */
if (av_compare_ts(ost->next_pts, ost->st->codec->time_base,
STREAM_DURATION, (AVRational){ 1, 1 }) >= 0)
return NULL;
if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
/* as we only generate a YUV420P picture, we must convert it
* to the codec pixel format if needed */
if (!ost->sws_ctx) {
ost->sws_ctx = sws_getContext(c->width, c->height,
AV_PIX_FMT_YUV420P,
c->width, c->height,
c->pix_fmt,
SCALE_FLAGS, NULL, NULL, NULL);
if (!ost->sws_ctx) {
fprintf(stderr,
"Could not initialize the conversion context\n");
exit(1);
}
fill_yuv_image(&src_picture, frame_count, c->width, c->height);
sws_scale(sws_ctx,
(const uint8_t * const *)src_picture.data, src_picture.linesize,
0, c->height, dst_picture.data, dst_picture.linesize);
} else {
fill_yuv_image(&dst_picture, frame_count, c->width, c->height);
}
fill_yuv_image(ost->tmp_frame, ost->next_pts, c->width, c->height);
sws_scale(ost->sws_ctx,
(const uint8_t * const *)ost->tmp_frame->data, ost->tmp_frame->linesize,
0, c->height, ost->frame->data, ost->frame->linesize);
} else {
fill_yuv_image(ost->frame, ost->next_pts, c->width, c->height);
}
ost->frame->pts = ost->next_pts++;
return ost->frame;
}
/*
* encode one video frame and send it to the muxer
* return 1 when encoding is finished, 0 otherwise
*/
static int write_video_frame(AVFormatContext *oc, OutputStream *ost)
{
int ret;
AVCodecContext *c;
AVFrame *frame;
int got_packet = 0;
c = ost->st->codec;
frame = get_video_frame(ost);
if (oc->oformat->flags & AVFMT_RAWPICTURE) {
/* Raw video case - directly store the picture in the packet */
/* a hack to avoid data copy with some raw video muxers */
AVPacket pkt;
av_init_packet(&pkt);
if (!frame)
return 1;
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = dst_picture.data[0];
pkt.stream_index = ost->st->index;
pkt.data = (uint8_t *)frame;
pkt.size = sizeof(AVPicture);
pkt.pts = pkt.dts = frame->pts;
av_packet_rescale_ts(&pkt, c->time_base, ost->st->time_base);
ret = av_interleaved_write_frame(oc, &pkt);
} else {
AVPacket pkt = { 0 };
int got_packet;
av_init_packet(&pkt);
/* encode the image */
@@ -416,30 +501,28 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
exit(1);
}
/* If size is zero, it means the image was buffered. */
if (!ret && got_packet && pkt.size) {
pkt.stream_index = st->index;
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc, &pkt);
if (got_packet) {
ret = write_frame(oc, &c->time_base, ost->st, &pkt);
} else {
ret = 0;
}
}
if (ret != 0) {
if (ret < 0) {
fprintf(stderr, "Error while writing video frame: %s\n", av_err2str(ret));
exit(1);
}
frame_count++;
return (frame || got_packet) ? 0 : 1;
}
static void close_video(AVFormatContext *oc, AVStream *st)
static void close_stream(AVFormatContext *oc, OutputStream *ost)
{
avcodec_close(st->codec);
av_free(src_picture.data[0]);
av_free(dst_picture.data[0]);
av_free(frame);
avcodec_close(ost->st->codec);
av_frame_free(&ost->frame);
av_frame_free(&ost->tmp_frame);
sws_freeContext(ost->sws_ctx);
}
/**************************************************************/
@@ -447,13 +530,14 @@ static void close_video(AVFormatContext *oc, AVStream *st)
int main(int argc, char **argv)
{
OutputStream video_st = { 0 }, audio_st = { 0 };
const char *filename;
AVOutputFormat *fmt;
AVFormatContext *oc;
AVStream *audio_st, *video_st;
AVCodec *audio_codec, *video_codec;
double audio_time, video_time;
int ret;
int have_video = 0, have_audio = 0;
int encode_video = 0, encode_audio = 0;
/* Initialize libavcodec, and register all codecs and formats. */
av_register_all();
@@ -477,29 +561,31 @@ int main(int argc, char **argv)
printf("Could not deduce output format from file extension: using MPEG.\n");
avformat_alloc_output_context2(&oc, NULL, "mpeg", filename);
}
if (!oc) {
if (!oc)
return 1;
}
fmt = oc->oformat;
/* Add the audio and video streams using the default format codecs
* and initialize the codecs. */
video_st = NULL;
audio_st = NULL;
if (fmt->video_codec != AV_CODEC_ID_NONE) {
video_st = add_stream(oc, &video_codec, fmt->video_codec);
add_stream(&video_st, oc, &video_codec, fmt->video_codec);
have_video = 1;
encode_video = 1;
}
if (fmt->audio_codec != AV_CODEC_ID_NONE) {
audio_st = add_stream(oc, &audio_codec, fmt->audio_codec);
add_stream(&audio_st, oc, &audio_codec, fmt->audio_codec);
have_audio = 1;
encode_audio = 1;
}
/* Now that all the parameters are set, we can open the audio and
* video codecs and allocate the necessary encode buffers. */
if (video_st)
open_video(oc, video_codec, video_st);
if (audio_st)
open_audio(oc, audio_codec, audio_st);
if (have_video)
open_video(oc, video_codec, &video_st);
if (have_audio)
open_audio(oc, audio_codec, &audio_st);
av_dump_format(oc, 0, filename, 1);
@@ -521,23 +607,14 @@ int main(int argc, char **argv)
return 1;
}
if (frame)
frame->pts = 0;
for (;;) {
/* Compute current audio and video time. */
audio_time = audio_st ? audio_st->pts.val * av_q2d(audio_st->time_base) : 0.0;
video_time = video_st ? video_st->pts.val * av_q2d(video_st->time_base) : 0.0;
if ((!audio_st || audio_time >= STREAM_DURATION) &&
(!video_st || video_time >= STREAM_DURATION))
break;
/* write interleaved audio and video frames */
if (!video_st || (video_st && audio_st && audio_time < video_time)) {
write_audio_frame(oc, audio_st);
while (encode_video || encode_audio) {
/* select the stream to encode */
if (encode_video &&
(!encode_audio || av_compare_ts(video_st.next_pts, video_st.st->codec->time_base,
audio_st.next_pts, audio_st.st->codec->time_base) <= 0)) {
encode_video = !write_video_frame(oc, &video_st);
} else {
write_video_frame(oc, video_st);
frame->pts += av_rescale_q(1, video_st->codec->time_base, video_st->time_base);
encode_audio = !write_audio_frame(oc, &audio_st);
}
}
@@ -548,10 +625,10 @@ int main(int argc, char **argv)
av_write_trailer(oc);
/* Close each codec. */
if (video_st)
close_video(oc, video_st);
if (audio_st)
close_audio(oc, audio_st);
if (have_video)
close_stream(oc, &video_st);
if (have_audio)
close_stream(oc, &audio_st);
if (!(fmt->flags & AVFMT_NOFILE))
/* Close the output file. */

165
doc/examples/remuxing.c Normal file
View File

@@ -0,0 +1,165 @@
/*
* Copyright (c) 2013 Stefano Sabatini
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* @file
* libavformat/libavcodec demuxing and muxing API example.
*
* Remux streams from one container format to another.
* @example remuxing.c
*/
#include <libavutil/timestamp.h>
#include <libavformat/avformat.h>
static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt, const char *tag)
{
AVRational *time_base = &fmt_ctx->streams[pkt->stream_index]->time_base;
printf("%s: pts:%s pts_time:%s dts:%s dts_time:%s duration:%s duration_time:%s stream_index:%d\n",
tag,
av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, time_base),
av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, time_base),
av_ts2str(pkt->duration), av_ts2timestr(pkt->duration, time_base),
pkt->stream_index);
}
int main(int argc, char **argv)
{
AVOutputFormat *ofmt = NULL;
AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL;
AVPacket pkt;
const char *in_filename, *out_filename;
int ret, i;
if (argc < 3) {
printf("usage: %s input output\n"
"API example program to remux a media file with libavformat and libavcodec.\n"
"The output format is guessed according to the file extension.\n"
"\n", argv[0]);
return 1;
}
in_filename = argv[1];
out_filename = argv[2];
av_register_all();
if ((ret = avformat_open_input(&ifmt_ctx, in_filename, 0, 0)) < 0) {
fprintf(stderr, "Could not open input file '%s'", in_filename);
goto end;
}
if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) < 0) {
fprintf(stderr, "Failed to retrieve input stream information");
goto end;
}
av_dump_format(ifmt_ctx, 0, in_filename, 0);
avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, out_filename);
if (!ofmt_ctx) {
fprintf(stderr, "Could not create output context\n");
ret = AVERROR_UNKNOWN;
goto end;
}
ofmt = ofmt_ctx->oformat;
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
AVStream *in_stream = ifmt_ctx->streams[i];
AVStream *out_stream = avformat_new_stream(ofmt_ctx, in_stream->codec->codec);
if (!out_stream) {
fprintf(stderr, "Failed allocating output stream\n");
ret = AVERROR_UNKNOWN;
goto end;
}
ret = avcodec_copy_context(out_stream->codec, in_stream->codec);
if (ret < 0) {
fprintf(stderr, "Failed to copy context from input to output stream codec context\n");
goto end;
}
out_stream->codec->codec_tag = 0;
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
out_stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
av_dump_format(ofmt_ctx, 0, out_filename, 1);
if (!(ofmt->flags & AVFMT_NOFILE)) {
ret = avio_open(&ofmt_ctx->pb, out_filename, AVIO_FLAG_WRITE);
if (ret < 0) {
fprintf(stderr, "Could not open output file '%s'", out_filename);
goto end;
}
}
ret = avformat_write_header(ofmt_ctx, NULL);
if (ret < 0) {
fprintf(stderr, "Error occurred when opening output file\n");
goto end;
}
while (1) {
AVStream *in_stream, *out_stream;
ret = av_read_frame(ifmt_ctx, &pkt);
if (ret < 0)
break;
in_stream = ifmt_ctx->streams[pkt.stream_index];
out_stream = ofmt_ctx->streams[pkt.stream_index];
log_packet(ifmt_ctx, &pkt, "in");
/* copy packet */
pkt.pts = av_rescale_q_rnd(pkt.pts, in_stream->time_base, out_stream->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
pkt.dts = av_rescale_q_rnd(pkt.dts, in_stream->time_base, out_stream->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
pkt.duration = av_rescale_q(pkt.duration, in_stream->time_base, out_stream->time_base);
pkt.pos = -1;
log_packet(ofmt_ctx, &pkt, "out");
ret = av_interleaved_write_frame(ofmt_ctx, &pkt);
if (ret < 0) {
fprintf(stderr, "Error muxing packet\n");
break;
}
av_free_packet(&pkt);
}
av_write_trailer(ofmt_ctx);
end:
avformat_close_input(&ifmt_ctx);
/* close output */
if (ofmt_ctx && !(ofmt->flags & AVFMT_NOFILE))
avio_close(ofmt_ctx->pb);
avformat_free_context(ofmt_ctx);
if (ret < 0 && ret != AVERROR_EOF) {
fprintf(stderr, "Error occurred: %s\n", av_err2str(ret));
return 1;
}
return 0;
}

View File

@@ -21,7 +21,7 @@
*/
/**
* @example doc/examples/resampling_audio.c
* @example resampling_audio.c
* libswresample API use example.
*/
@@ -62,7 +62,7 @@ static int get_format_from_sample_fmt(const char **fmt,
/**
* Fill dst buffer with nb_samples, generated starting from t.
*/
void fill_samples(double *dst, int nb_samples, int nb_channels, int sample_rate, double *t)
static void fill_samples(double *dst, int nb_samples, int nb_channels, int sample_rate, double *t)
{
int i, j;
double tincr = 1.0 / sample_rate, *dstp = dst;
@@ -168,7 +168,7 @@ int main(int argc, char **argv)
dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, src_rate) +
src_nb_samples, dst_rate, src_rate, AV_ROUND_UP);
if (dst_nb_samples > max_dst_nb_samples) {
av_free(dst_data[0]);
av_freep(&dst_data[0]);
ret = av_samples_alloc(dst_data, &dst_linesize, dst_nb_channels,
dst_nb_samples, dst_sample_fmt, 1);
if (ret < 0)
@@ -184,6 +184,10 @@ int main(int argc, char **argv)
}
dst_bufsize = av_samples_get_buffer_size(&dst_linesize, dst_nb_channels,
ret, dst_sample_fmt, 1);
if (dst_bufsize < 0) {
fprintf(stderr, "Could not get sample buffer size\n");
goto end;
}
printf("t:%f in:%d out:%d\n", t, src_nb_samples, ret);
fwrite(dst_data[0], 1, dst_bufsize, dst_file);
} while (t < 10);

View File

@@ -23,7 +23,7 @@
/**
* @file
* libswscale API use example.
* @example doc/examples/scaling_video.c
* @example scaling_video.c
*/
#include <libavutil/imgutils.h>

View File

@@ -0,0 +1,755 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* simple audio converter
*
* @example transcode_aac.c
* Convert an input audio file to AAC in an MP4 container using FFmpeg.
* @author Andreas Unterweger (dustsigns@gmail.com)
*/
#include <stdio.h>
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
#include "libavutil/audio_fifo.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/frame.h"
#include "libavutil/opt.h"
#include "libswresample/swresample.h"
/** The output bit rate in kbit/s */
#define OUTPUT_BIT_RATE 48000
/** The number of output channels */
#define OUTPUT_CHANNELS 2
/** The audio sample output format */
#define OUTPUT_SAMPLE_FORMAT AV_SAMPLE_FMT_S16
/**
* Convert an error code into a text message.
* @param error Error code to be converted
* @return Corresponding error text (not thread-safe)
*/
static char *const get_error_text(const int error)
{
static char error_buffer[255];
av_strerror(error, error_buffer, sizeof(error_buffer));
return error_buffer;
}
/** Open an input file and the required decoder. */
static int open_input_file(const char *filename,
AVFormatContext **input_format_context,
AVCodecContext **input_codec_context)
{
AVCodec *input_codec;
int error;
/** Open the input file to read from it. */
if ((error = avformat_open_input(input_format_context, filename, NULL,
NULL)) < 0) {
fprintf(stderr, "Could not open input file '%s' (error '%s')\n",
filename, get_error_text(error));
*input_format_context = NULL;
return error;
}
/** Get information on the input file (number of streams etc.). */
if ((error = avformat_find_stream_info(*input_format_context, NULL)) < 0) {
fprintf(stderr, "Could not open find stream info (error '%s')\n",
get_error_text(error));
avformat_close_input(input_format_context);
return error;
}
/** Make sure that there is only one stream in the input file. */
if ((*input_format_context)->nb_streams != 1) {
fprintf(stderr, "Expected one audio input stream, but found %d\n",
(*input_format_context)->nb_streams);
avformat_close_input(input_format_context);
return AVERROR_EXIT;
}
/** Find a decoder for the audio stream. */
if (!(input_codec = avcodec_find_decoder((*input_format_context)->streams[0]->codec->codec_id))) {
fprintf(stderr, "Could not find input codec\n");
avformat_close_input(input_format_context);
return AVERROR_EXIT;
}
/** Open the decoder for the audio stream to use it later. */
if ((error = avcodec_open2((*input_format_context)->streams[0]->codec,
input_codec, NULL)) < 0) {
fprintf(stderr, "Could not open input codec (error '%s')\n",
get_error_text(error));
avformat_close_input(input_format_context);
return error;
}
/** Save the decoder context for easier access later. */
*input_codec_context = (*input_format_context)->streams[0]->codec;
return 0;
}
/**
* Open an output file and the required encoder.
* Also set some basic encoder parameters.
* Some of these parameters are based on the input file's parameters.
*/
static int open_output_file(const char *filename,
AVCodecContext *input_codec_context,
AVFormatContext **output_format_context,
AVCodecContext **output_codec_context)
{
AVIOContext *output_io_context = NULL;
AVStream *stream = NULL;
AVCodec *output_codec = NULL;
int error;
/** Open the output file to write to it. */
if ((error = avio_open(&output_io_context, filename,
AVIO_FLAG_WRITE)) < 0) {
fprintf(stderr, "Could not open output file '%s' (error '%s')\n",
filename, get_error_text(error));
return error;
}
/** Create a new format context for the output container format. */
if (!(*output_format_context = avformat_alloc_context())) {
fprintf(stderr, "Could not allocate output format context\n");
return AVERROR(ENOMEM);
}
/** Associate the output file (pointer) with the container format context. */
(*output_format_context)->pb = output_io_context;
/** Guess the desired container format based on the file extension. */
if (!((*output_format_context)->oformat = av_guess_format(NULL, filename,
NULL))) {
fprintf(stderr, "Could not find output file format\n");
goto cleanup;
}
av_strlcpy((*output_format_context)->filename, filename,
sizeof((*output_format_context)->filename));
/** Find the encoder to be used by its name. */
if (!(output_codec = avcodec_find_encoder(AV_CODEC_ID_AAC))) {
fprintf(stderr, "Could not find an AAC encoder.\n");
goto cleanup;
}
/** Create a new audio stream in the output file container. */
if (!(stream = avformat_new_stream(*output_format_context, output_codec))) {
fprintf(stderr, "Could not create new stream\n");
error = AVERROR(ENOMEM);
goto cleanup;
}
/** Save the encoder context for easiert access later. */
*output_codec_context = stream->codec;
/**
* Set the basic encoder parameters.
* The input file's sample rate is used to avoid a sample rate conversion.
*/
(*output_codec_context)->channels = OUTPUT_CHANNELS;
(*output_codec_context)->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS);
(*output_codec_context)->sample_rate = input_codec_context->sample_rate;
(*output_codec_context)->sample_fmt = AV_SAMPLE_FMT_S16;
(*output_codec_context)->bit_rate = OUTPUT_BIT_RATE;
/**
* Some container formats (like MP4) require global headers to be present
* Mark the encoder so that it behaves accordingly.
*/
if ((*output_format_context)->oformat->flags & AVFMT_GLOBALHEADER)
(*output_codec_context)->flags |= CODEC_FLAG_GLOBAL_HEADER;
/** Open the encoder for the audio stream to use it later. */
if ((error = avcodec_open2(*output_codec_context, output_codec, NULL)) < 0) {
fprintf(stderr, "Could not open output codec (error '%s')\n",
get_error_text(error));
goto cleanup;
}
return 0;
cleanup:
avio_close((*output_format_context)->pb);
avformat_free_context(*output_format_context);
*output_format_context = NULL;
return error < 0 ? error : AVERROR_EXIT;
}
/** Initialize one data packet for reading or writing. */
static void init_packet(AVPacket *packet)
{
av_init_packet(packet);
/** Set the packet data and size so that it is recognized as being empty. */
packet->data = NULL;
packet->size = 0;
}
/** Initialize one audio frame for reading from the input file */
static int init_input_frame(AVFrame **frame)
{
if (!(*frame = av_frame_alloc())) {
fprintf(stderr, "Could not allocate input frame\n");
return AVERROR(ENOMEM);
}
return 0;
}
/**
* Initialize the audio resampler based on the input and output codec settings.
* If the input and output sample formats differ, a conversion is required
* libswresample takes care of this, but requires initialization.
*/
static int init_resampler(AVCodecContext *input_codec_context,
AVCodecContext *output_codec_context,
SwrContext **resample_context)
{
int error;
/**
* Create a resampler context for the conversion.
* Set the conversion parameters.
* Default channel layouts based on the number of channels
* are assumed for simplicity (they are sometimes not detected
* properly by the demuxer and/or decoder).
*/
*resample_context = swr_alloc_set_opts(NULL,
av_get_default_channel_layout(output_codec_context->channels),
output_codec_context->sample_fmt,
output_codec_context->sample_rate,
av_get_default_channel_layout(input_codec_context->channels),
input_codec_context->sample_fmt,
input_codec_context->sample_rate,
0, NULL);
if (!*resample_context) {
fprintf(stderr, "Could not allocate resample context\n");
return AVERROR(ENOMEM);
}
/**
* Perform a sanity check so that the number of converted samples is
* not greater than the number of samples to be converted.
* If the sample rates differ, this case has to be handled differently
*/
av_assert0(output_codec_context->sample_rate == input_codec_context->sample_rate);
/** Open the resampler with the specified parameters. */
if ((error = swr_init(*resample_context)) < 0) {
fprintf(stderr, "Could not open resample context\n");
swr_free(resample_context);
return error;
}
return 0;
}
/** Initialize a FIFO buffer for the audio samples to be encoded. */
static int init_fifo(AVAudioFifo **fifo)
{
/** Create the FIFO buffer based on the specified output sample format. */
if (!(*fifo = av_audio_fifo_alloc(OUTPUT_SAMPLE_FORMAT, OUTPUT_CHANNELS, 1))) {
fprintf(stderr, "Could not allocate FIFO\n");
return AVERROR(ENOMEM);
}
return 0;
}
/** Write the header of the output file container. */
static int write_output_file_header(AVFormatContext *output_format_context)
{
int error;
if ((error = avformat_write_header(output_format_context, NULL)) < 0) {
fprintf(stderr, "Could not write output file header (error '%s')\n",
get_error_text(error));
return error;
}
return 0;
}
/** Decode one audio frame from the input file. */
static int decode_audio_frame(AVFrame *frame,
AVFormatContext *input_format_context,
AVCodecContext *input_codec_context,
int *data_present, int *finished)
{
/** Packet used for temporary storage. */
AVPacket input_packet;
int error;
init_packet(&input_packet);
/** Read one audio frame from the input file into a temporary packet. */
if ((error = av_read_frame(input_format_context, &input_packet)) < 0) {
/** If we are the the end of the file, flush the decoder below. */
if (error == AVERROR_EOF)
*finished = 1;
else {
fprintf(stderr, "Could not read frame (error '%s')\n",
get_error_text(error));
return error;
}
}
/**
* Decode the audio frame stored in the temporary packet.
* The input audio stream decoder is used to do this.
* If we are at the end of the file, pass an empty packet to the decoder
* to flush it.
*/
if ((error = avcodec_decode_audio4(input_codec_context, frame,
data_present, &input_packet)) < 0) {
fprintf(stderr, "Could not decode frame (error '%s')\n",
get_error_text(error));
av_free_packet(&input_packet);
return error;
}
/**
* If the decoder has not been flushed completely, we are not finished,
* so that this function has to be called again.
*/
if (*finished && *data_present)
*finished = 0;
av_free_packet(&input_packet);
return 0;
}
/**
* Initialize a temporary storage for the specified number of audio samples.
* The conversion requires temporary storage due to the different format.
* The number of audio samples to be allocated is specified in frame_size.
*/
static int init_converted_samples(uint8_t ***converted_input_samples,
AVCodecContext *output_codec_context,
int frame_size)
{
int error;
/**
* Allocate as many pointers as there are audio channels.
* Each pointer will later point to the audio samples of the corresponding
* channels (although it may be NULL for interleaved formats).
*/
if (!(*converted_input_samples = calloc(output_codec_context->channels,
sizeof(**converted_input_samples)))) {
fprintf(stderr, "Could not allocate converted input sample pointers\n");
return AVERROR(ENOMEM);
}
/**
* Allocate memory for the samples of all channels in one consecutive
* block for convenience.
*/
if ((error = av_samples_alloc(*converted_input_samples, NULL,
output_codec_context->channels,
frame_size,
output_codec_context->sample_fmt, 0)) < 0) {
fprintf(stderr,
"Could not allocate converted input samples (error '%s')\n",
get_error_text(error));
av_freep(&(*converted_input_samples)[0]);
free(*converted_input_samples);
return error;
}
return 0;
}
/**
* Convert the input audio samples into the output sample format.
* The conversion happens on a per-frame basis, the size of which is specified
* by frame_size.
*/
static int convert_samples(const uint8_t **input_data,
uint8_t **converted_data, const int frame_size,
SwrContext *resample_context)
{
int error;
/** Convert the samples using the resampler. */
if ((error = swr_convert(resample_context,
converted_data, frame_size,
input_data , frame_size)) < 0) {
fprintf(stderr, "Could not convert input samples (error '%s')\n",
get_error_text(error));
return error;
}
return 0;
}
/** Add converted input audio samples to the FIFO buffer for later processing. */
static int add_samples_to_fifo(AVAudioFifo *fifo,
uint8_t **converted_input_samples,
const int frame_size)
{
int error;
/**
* Make the FIFO as large as it needs to be to hold both,
* the old and the new samples.
*/
if ((error = av_audio_fifo_realloc(fifo, av_audio_fifo_size(fifo) + frame_size)) < 0) {
fprintf(stderr, "Could not reallocate FIFO\n");
return error;
}
/** Store the new samples in the FIFO buffer. */
if (av_audio_fifo_write(fifo, (void **)converted_input_samples,
frame_size) < frame_size) {
fprintf(stderr, "Could not write data to FIFO\n");
return AVERROR_EXIT;
}
return 0;
}
/**
* Read one audio frame from the input file, decodes, converts and stores
* it in the FIFO buffer.
*/
static int read_decode_convert_and_store(AVAudioFifo *fifo,
AVFormatContext *input_format_context,
AVCodecContext *input_codec_context,
AVCodecContext *output_codec_context,
SwrContext *resampler_context,
int *finished)
{
/** Temporary storage of the input samples of the frame read from the file. */
AVFrame *input_frame = NULL;
/** Temporary storage for the converted input samples. */
uint8_t **converted_input_samples = NULL;
int data_present;
int ret = AVERROR_EXIT;
/** Initialize temporary storage for one input frame. */
if (init_input_frame(&input_frame))
goto cleanup;
/** Decode one frame worth of audio samples. */
if (decode_audio_frame(input_frame, input_format_context,
input_codec_context, &data_present, finished))
goto cleanup;
/**
* If we are at the end of the file and there are no more samples
* in the decoder which are delayed, we are actually finished.
* This must not be treated as an error.
*/
if (*finished && !data_present) {
ret = 0;
goto cleanup;
}
/** If there is decoded data, convert and store it */
if (data_present) {
/** Initialize the temporary storage for the converted input samples. */
if (init_converted_samples(&converted_input_samples, output_codec_context,
input_frame->nb_samples))
goto cleanup;
/**
* Convert the input samples to the desired output sample format.
* This requires a temporary storage provided by converted_input_samples.
*/
if (convert_samples((const uint8_t**)input_frame->extended_data, converted_input_samples,
input_frame->nb_samples, resampler_context))
goto cleanup;
/** Add the converted input samples to the FIFO buffer for later processing. */
if (add_samples_to_fifo(fifo, converted_input_samples,
input_frame->nb_samples))
goto cleanup;
ret = 0;
}
ret = 0;
cleanup:
if (converted_input_samples) {
av_freep(&converted_input_samples[0]);
free(converted_input_samples);
}
av_frame_free(&input_frame);
return ret;
}
/**
* Initialize one input frame for writing to the output file.
* The frame will be exactly frame_size samples large.
*/
static int init_output_frame(AVFrame **frame,
AVCodecContext *output_codec_context,
int frame_size)
{
int error;
/** Create a new frame to store the audio samples. */
if (!(*frame = av_frame_alloc())) {
fprintf(stderr, "Could not allocate output frame\n");
return AVERROR_EXIT;
}
/**
* Set the frame's parameters, especially its size and format.
* av_frame_get_buffer needs this to allocate memory for the
* audio samples of the frame.
* Default channel layouts based on the number of channels
* are assumed for simplicity.
*/
(*frame)->nb_samples = frame_size;
(*frame)->channel_layout = output_codec_context->channel_layout;
(*frame)->format = output_codec_context->sample_fmt;
(*frame)->sample_rate = output_codec_context->sample_rate;
/**
* Allocate the samples of the created frame. This call will make
* sure that the audio frame can hold as many samples as specified.
*/
if ((error = av_frame_get_buffer(*frame, 0)) < 0) {
fprintf(stderr, "Could allocate output frame samples (error '%s')\n",
get_error_text(error));
av_frame_free(frame);
return error;
}
return 0;
}
/** Encode one frame worth of audio to the output file. */
static int encode_audio_frame(AVFrame *frame,
AVFormatContext *output_format_context,
AVCodecContext *output_codec_context,
int *data_present)
{
/** Packet used for temporary storage. */
AVPacket output_packet;
int error;
init_packet(&output_packet);
/**
* Encode the audio frame and store it in the temporary packet.
* The output audio stream encoder is used to do this.
*/
if ((error = avcodec_encode_audio2(output_codec_context, &output_packet,
frame, data_present)) < 0) {
fprintf(stderr, "Could not encode frame (error '%s')\n",
get_error_text(error));
av_free_packet(&output_packet);
return error;
}
/** Write one audio frame from the temporary packet to the output file. */
if (*data_present) {
if ((error = av_write_frame(output_format_context, &output_packet)) < 0) {
fprintf(stderr, "Could not write frame (error '%s')\n",
get_error_text(error));
av_free_packet(&output_packet);
return error;
}
av_free_packet(&output_packet);
}
return 0;
}
/**
* Load one audio frame from the FIFO buffer, encode and write it to the
* output file.
*/
static int load_encode_and_write(AVAudioFifo *fifo,
AVFormatContext *output_format_context,
AVCodecContext *output_codec_context)
{
/** Temporary storage of the output samples of the frame written to the file. */
AVFrame *output_frame;
/**
* Use the maximum number of possible samples per frame.
* If there is less than the maximum possible frame size in the FIFO
* buffer use this number. Otherwise, use the maximum possible frame size
*/
const int frame_size = FFMIN(av_audio_fifo_size(fifo),
output_codec_context->frame_size);
int data_written;
/** Initialize temporary storage for one output frame. */
if (init_output_frame(&output_frame, output_codec_context, frame_size))
return AVERROR_EXIT;
/**
* Read as many samples from the FIFO buffer as required to fill the frame.
* The samples are stored in the frame temporarily.
*/
if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) {
fprintf(stderr, "Could not read data from FIFO\n");
av_frame_free(&output_frame);
return AVERROR_EXIT;
}
/** Encode one frame worth of audio samples. */
if (encode_audio_frame(output_frame, output_format_context,
output_codec_context, &data_written)) {
av_frame_free(&output_frame);
return AVERROR_EXIT;
}
av_frame_free(&output_frame);
return 0;
}
/** Write the trailer of the output file container. */
static int write_output_file_trailer(AVFormatContext *output_format_context)
{
int error;
if ((error = av_write_trailer(output_format_context)) < 0) {
fprintf(stderr, "Could not write output file trailer (error '%s')\n",
get_error_text(error));
return error;
}
return 0;
}
/** Convert an audio file to an AAC file in an MP4 container. */
int main(int argc, char **argv)
{
AVFormatContext *input_format_context = NULL, *output_format_context = NULL;
AVCodecContext *input_codec_context = NULL, *output_codec_context = NULL;
SwrContext *resample_context = NULL;
AVAudioFifo *fifo = NULL;
int ret = AVERROR_EXIT;
if (argc < 3) {
fprintf(stderr, "Usage: %s <input file> <output file>\n", argv[0]);
exit(1);
}
/** Register all codecs and formats so that they can be used. */
av_register_all();
/** Open the input file for reading. */
if (open_input_file(argv[1], &input_format_context,
&input_codec_context))
goto cleanup;
/** Open the output file for writing. */
if (open_output_file(argv[2], input_codec_context,
&output_format_context, &output_codec_context))
goto cleanup;
/** Initialize the resampler to be able to convert audio sample formats. */
if (init_resampler(input_codec_context, output_codec_context,
&resample_context))
goto cleanup;
/** Initialize the FIFO buffer to store audio samples to be encoded. */
if (init_fifo(&fifo))
goto cleanup;
/** Write the header of the output file container. */
if (write_output_file_header(output_format_context))
goto cleanup;
/**
* Loop as long as we have input samples to read or output samples
* to write; abort as soon as we have neither.
*/
while (1) {
/** Use the encoder's desired frame size for processing. */
const int output_frame_size = output_codec_context->frame_size;
int finished = 0;
/**
* Make sure that there is one frame worth of samples in the FIFO
* buffer so that the encoder can do its work.
* Since the decoder's and the encoder's frame size may differ, we
* need to FIFO buffer to store as many frames worth of input samples
* that they make up at least one frame worth of output samples.
*/
while (av_audio_fifo_size(fifo) < output_frame_size) {
/**
* Decode one frame worth of audio samples, convert it to the
* output sample format and put it into the FIFO buffer.
*/
if (read_decode_convert_and_store(fifo, input_format_context,
input_codec_context,
output_codec_context,
resample_context, &finished))
goto cleanup;
/**
* If we are at the end of the input file, we continue
* encoding the remaining audio samples to the output file.
*/
if (finished)
break;
}
/**
* If we have enough samples for the encoder, we encode them.
* At the end of the file, we pass the remaining samples to
* the encoder.
*/
while (av_audio_fifo_size(fifo) >= output_frame_size ||
(finished && av_audio_fifo_size(fifo) > 0))
/**
* Take one frame worth of audio samples from the FIFO buffer,
* encode it and write it to the output file.
*/
if (load_encode_and_write(fifo, output_format_context,
output_codec_context))
goto cleanup;
/**
* If we are at the end of the input file and have encoded
* all remaining samples, we can exit this loop and finish.
*/
if (finished) {
int data_written;
/** Flush the encoder as it may have delayed frames. */
do {
if (encode_audio_frame(NULL, output_format_context,
output_codec_context, &data_written))
goto cleanup;
} while (data_written);
break;
}
}
/** Write the trailer of the output file container. */
if (write_output_file_trailer(output_format_context))
goto cleanup;
ret = 0;
cleanup:
if (fifo)
av_audio_fifo_free(fifo);
swr_free(&resample_context);
if (output_codec_context)
avcodec_close(output_codec_context);
if (output_format_context) {
avio_close(output_format_context->pb);
avformat_free_context(output_format_context);
}
if (input_codec_context)
avcodec_close(input_codec_context);
if (input_format_context)
avformat_close_input(&input_format_context);
return ret;
}

597
doc/examples/transcoding.c Normal file
View File

@@ -0,0 +1,597 @@
/*
* Copyright (c) 2010 Nicolas George
* Copyright (c) 2011 Stefano Sabatini
* Copyright (c) 2014 Andrey Utkin
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* @file
* API example for demuxing, decoding, filtering, encoding and muxing
* @example transcoding.c
*/
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
#include <libavutil/opt.h>
#include <libavutil/pixdesc.h>
static AVFormatContext *ifmt_ctx;
static AVFormatContext *ofmt_ctx;
typedef struct FilteringContext {
AVFilterContext *buffersink_ctx;
AVFilterContext *buffersrc_ctx;
AVFilterGraph *filter_graph;
} FilteringContext;
static FilteringContext *filter_ctx;
static int open_input_file(const char *filename)
{
int ret;
unsigned int i;
ifmt_ctx = NULL;
if ((ret = avformat_open_input(&ifmt_ctx, filename, NULL, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n");
return ret;
}
if ((ret = avformat_find_stream_info(ifmt_ctx, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n");
return ret;
}
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
AVStream *stream;
AVCodecContext *codec_ctx;
stream = ifmt_ctx->streams[i];
codec_ctx = stream->codec;
/* Reencode video & audio and remux subtitles etc. */
if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO
|| codec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
/* Open decoder */
ret = avcodec_open2(codec_ctx,
avcodec_find_decoder(codec_ctx->codec_id), NULL);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Failed to open decoder for stream #%u\n", i);
return ret;
}
}
}
av_dump_format(ifmt_ctx, 0, filename, 0);
return 0;
}
static int open_output_file(const char *filename)
{
AVStream *out_stream;
AVStream *in_stream;
AVCodecContext *dec_ctx, *enc_ctx;
AVCodec *encoder;
int ret;
unsigned int i;
ofmt_ctx = NULL;
avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, filename);
if (!ofmt_ctx) {
av_log(NULL, AV_LOG_ERROR, "Could not create output context\n");
return AVERROR_UNKNOWN;
}
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
out_stream = avformat_new_stream(ofmt_ctx, NULL);
if (!out_stream) {
av_log(NULL, AV_LOG_ERROR, "Failed allocating output stream\n");
return AVERROR_UNKNOWN;
}
in_stream = ifmt_ctx->streams[i];
dec_ctx = in_stream->codec;
enc_ctx = out_stream->codec;
if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO
|| dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
/* in this example, we choose transcoding to same codec */
encoder = avcodec_find_encoder(dec_ctx->codec_id);
/* In this example, we transcode to same properties (picture size,
* sample rate etc.). These properties can be changed for output
* streams easily using filters */
if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
enc_ctx->height = dec_ctx->height;
enc_ctx->width = dec_ctx->width;
enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio;
/* take first format from list of supported formats */
enc_ctx->pix_fmt = encoder->pix_fmts[0];
/* video time_base can be set to whatever is handy and supported by encoder */
enc_ctx->time_base = dec_ctx->time_base;
} else {
enc_ctx->sample_rate = dec_ctx->sample_rate;
enc_ctx->channel_layout = dec_ctx->channel_layout;
enc_ctx->channels = av_get_channel_layout_nb_channels(enc_ctx->channel_layout);
/* take first format from list of supported formats */
enc_ctx->sample_fmt = encoder->sample_fmts[0];
enc_ctx->time_base = (AVRational){1, enc_ctx->sample_rate};
}
/* Third parameter can be used to pass settings to encoder */
ret = avcodec_open2(enc_ctx, encoder, NULL);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot open video encoder for stream #%u\n", i);
return ret;
}
} else if (dec_ctx->codec_type == AVMEDIA_TYPE_UNKNOWN) {
av_log(NULL, AV_LOG_FATAL, "Elementary stream #%d is of unknown type, cannot proceed\n", i);
return AVERROR_INVALIDDATA;
} else {
/* if this stream must be remuxed */
ret = avcodec_copy_context(ofmt_ctx->streams[i]->codec,
ifmt_ctx->streams[i]->codec);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Copying stream context failed\n");
return ret;
}
}
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
av_dump_format(ofmt_ctx, 0, filename, 1);
if (!(ofmt_ctx->oformat->flags & AVFMT_NOFILE)) {
ret = avio_open(&ofmt_ctx->pb, filename, AVIO_FLAG_WRITE);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Could not open output file '%s'", filename);
return ret;
}
}
/* init muxer, write output file header */
ret = avformat_write_header(ofmt_ctx, NULL);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error occurred when opening output file\n");
return ret;
}
return 0;
}
static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx,
AVCodecContext *enc_ctx, const char *filter_spec)
{
char args[512];
int ret = 0;
AVFilter *buffersrc = NULL;
AVFilter *buffersink = NULL;
AVFilterContext *buffersrc_ctx = NULL;
AVFilterContext *buffersink_ctx = NULL;
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
AVFilterGraph *filter_graph = avfilter_graph_alloc();
if (!outputs || !inputs || !filter_graph) {
ret = AVERROR(ENOMEM);
goto end;
}
if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
buffersrc = avfilter_get_by_name("buffer");
buffersink = avfilter_get_by_name("buffersink");
if (!buffersrc || !buffersink) {
av_log(NULL, AV_LOG_ERROR, "filtering source or sink element not found\n");
ret = AVERROR_UNKNOWN;
goto end;
}
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt,
dec_ctx->time_base.num, dec_ctx->time_base.den,
dec_ctx->sample_aspect_ratio.num,
dec_ctx->sample_aspect_ratio.den);
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
args, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer source\n");
goto end;
}
ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
NULL, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");
goto end;
}
ret = av_opt_set_bin(buffersink_ctx, "pix_fmts",
(uint8_t*)&enc_ctx->pix_fmt, sizeof(enc_ctx->pix_fmt),
AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n");
goto end;
}
} else if (dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
buffersrc = avfilter_get_by_name("abuffer");
buffersink = avfilter_get_by_name("abuffersink");
if (!buffersrc || !buffersink) {
av_log(NULL, AV_LOG_ERROR, "filtering source or sink element not found\n");
ret = AVERROR_UNKNOWN;
goto end;
}
if (!dec_ctx->channel_layout)
dec_ctx->channel_layout =
av_get_default_channel_layout(dec_ctx->channels);
snprintf(args, sizeof(args),
"time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%"PRIx64,
dec_ctx->time_base.num, dec_ctx->time_base.den, dec_ctx->sample_rate,
av_get_sample_fmt_name(dec_ctx->sample_fmt),
dec_ctx->channel_layout);
ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in",
args, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer source\n");
goto end;
}
ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out",
NULL, NULL, filter_graph);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n");
goto end;
}
ret = av_opt_set_bin(buffersink_ctx, "sample_fmts",
(uint8_t*)&enc_ctx->sample_fmt, sizeof(enc_ctx->sample_fmt),
AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample format\n");
goto end;
}
ret = av_opt_set_bin(buffersink_ctx, "channel_layouts",
(uint8_t*)&enc_ctx->channel_layout,
sizeof(enc_ctx->channel_layout), AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output channel layout\n");
goto end;
}
ret = av_opt_set_bin(buffersink_ctx, "sample_rates",
(uint8_t*)&enc_ctx->sample_rate, sizeof(enc_ctx->sample_rate),
AV_OPT_SEARCH_CHILDREN);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n");
goto end;
}
} else {
ret = AVERROR_UNKNOWN;
goto end;
}
/* Endpoints for the filter graph. */
outputs->name = av_strdup("in");
outputs->filter_ctx = buffersrc_ctx;
outputs->pad_idx = 0;
outputs->next = NULL;
inputs->name = av_strdup("out");
inputs->filter_ctx = buffersink_ctx;
inputs->pad_idx = 0;
inputs->next = NULL;
if (!outputs->name || !inputs->name) {
ret = AVERROR(ENOMEM);
goto end;
}
if ((ret = avfilter_graph_parse_ptr(filter_graph, filter_spec,
&inputs, &outputs, NULL)) < 0)
goto end;
if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0)
goto end;
/* Fill FilteringContext */
fctx->buffersrc_ctx = buffersrc_ctx;
fctx->buffersink_ctx = buffersink_ctx;
fctx->filter_graph = filter_graph;
end:
avfilter_inout_free(&inputs);
avfilter_inout_free(&outputs);
return ret;
}
static int init_filters(void)
{
const char *filter_spec;
unsigned int i;
int ret;
filter_ctx = av_malloc_array(ifmt_ctx->nb_streams, sizeof(*filter_ctx));
if (!filter_ctx)
return AVERROR(ENOMEM);
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
filter_ctx[i].buffersrc_ctx = NULL;
filter_ctx[i].buffersink_ctx = NULL;
filter_ctx[i].filter_graph = NULL;
if (!(ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO
|| ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO))
continue;
if (ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
filter_spec = "null"; /* passthrough (dummy) filter for video */
else
filter_spec = "anull"; /* passthrough (dummy) filter for audio */
ret = init_filter(&filter_ctx[i], ifmt_ctx->streams[i]->codec,
ofmt_ctx->streams[i]->codec, filter_spec);
if (ret)
return ret;
}
return 0;
}
static int encode_write_frame(AVFrame *filt_frame, unsigned int stream_index, int *got_frame) {
int ret;
int got_frame_local;
AVPacket enc_pkt;
int (*enc_func)(AVCodecContext *, AVPacket *, const AVFrame *, int *) =
(ifmt_ctx->streams[stream_index]->codec->codec_type ==
AVMEDIA_TYPE_VIDEO) ? avcodec_encode_video2 : avcodec_encode_audio2;
if (!got_frame)
got_frame = &got_frame_local;
av_log(NULL, AV_LOG_INFO, "Encoding frame\n");
/* encode filtered frame */
enc_pkt.data = NULL;
enc_pkt.size = 0;
av_init_packet(&enc_pkt);
ret = enc_func(ofmt_ctx->streams[stream_index]->codec, &enc_pkt,
filt_frame, got_frame);
av_frame_free(&filt_frame);
if (ret < 0)
return ret;
if (!(*got_frame))
return 0;
/* prepare packet for muxing */
enc_pkt.stream_index = stream_index;
enc_pkt.dts = av_rescale_q_rnd(enc_pkt.dts,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
enc_pkt.pts = av_rescale_q_rnd(enc_pkt.pts,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
enc_pkt.duration = av_rescale_q(enc_pkt.duration,
ofmt_ctx->streams[stream_index]->codec->time_base,
ofmt_ctx->streams[stream_index]->time_base);
av_log(NULL, AV_LOG_DEBUG, "Muxing frame\n");
/* mux encoded frame */
ret = av_interleaved_write_frame(ofmt_ctx, &enc_pkt);
return ret;
}
static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index)
{
int ret;
AVFrame *filt_frame;
av_log(NULL, AV_LOG_INFO, "Pushing decoded frame to filters\n");
/* push the decoded frame into the filtergraph */
ret = av_buffersrc_add_frame_flags(filter_ctx[stream_index].buffersrc_ctx,
frame, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n");
return ret;
}
/* pull filtered frames from the filtergraph */
while (1) {
filt_frame = av_frame_alloc();
if (!filt_frame) {
ret = AVERROR(ENOMEM);
break;
}
av_log(NULL, AV_LOG_INFO, "Pulling filtered frame from filters\n");
ret = av_buffersink_get_frame(filter_ctx[stream_index].buffersink_ctx,
filt_frame);
if (ret < 0) {
/* if no more frames for output - returns AVERROR(EAGAIN)
* if flushed and no more frames for output - returns AVERROR_EOF
* rewrite retcode to 0 to show it as normal procedure completion
*/
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
ret = 0;
av_frame_free(&filt_frame);
break;
}
filt_frame->pict_type = AV_PICTURE_TYPE_NONE;
ret = encode_write_frame(filt_frame, stream_index, NULL);
if (ret < 0)
break;
}
return ret;
}
static int flush_encoder(unsigned int stream_index)
{
int ret;
int got_frame;
if (!(ofmt_ctx->streams[stream_index]->codec->codec->capabilities &
CODEC_CAP_DELAY))
return 0;
while (1) {
av_log(NULL, AV_LOG_INFO, "Flushing stream #%u encoder\n", stream_index);
ret = encode_write_frame(NULL, stream_index, &got_frame);
if (ret < 0)
break;
if (!got_frame)
return 0;
}
return ret;
}
int main(int argc, char **argv)
{
int ret;
AVPacket packet = { .data = NULL, .size = 0 };
AVFrame *frame = NULL;
enum AVMediaType type;
unsigned int stream_index;
unsigned int i;
int got_frame;
int (*dec_func)(AVCodecContext *, AVFrame *, int *, const AVPacket *);
if (argc != 3) {
av_log(NULL, AV_LOG_ERROR, "Usage: %s <input file> <output file>\n", argv[0]);
return 1;
}
av_register_all();
avfilter_register_all();
if ((ret = open_input_file(argv[1])) < 0)
goto end;
if ((ret = open_output_file(argv[2])) < 0)
goto end;
if ((ret = init_filters()) < 0)
goto end;
/* read all packets */
while (1) {
if ((ret = av_read_frame(ifmt_ctx, &packet)) < 0)
break;
stream_index = packet.stream_index;
type = ifmt_ctx->streams[packet.stream_index]->codec->codec_type;
av_log(NULL, AV_LOG_DEBUG, "Demuxer gave frame of stream_index %u\n",
stream_index);
if (filter_ctx[stream_index].filter_graph) {
av_log(NULL, AV_LOG_DEBUG, "Going to reencode&filter the frame\n");
frame = av_frame_alloc();
if (!frame) {
ret = AVERROR(ENOMEM);
break;
}
packet.dts = av_rescale_q_rnd(packet.dts,
ifmt_ctx->streams[stream_index]->time_base,
ifmt_ctx->streams[stream_index]->codec->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
packet.pts = av_rescale_q_rnd(packet.pts,
ifmt_ctx->streams[stream_index]->time_base,
ifmt_ctx->streams[stream_index]->codec->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
dec_func = (type == AVMEDIA_TYPE_VIDEO) ? avcodec_decode_video2 :
avcodec_decode_audio4;
ret = dec_func(ifmt_ctx->streams[stream_index]->codec, frame,
&got_frame, &packet);
if (ret < 0) {
av_frame_free(&frame);
av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
break;
}
if (got_frame) {
frame->pts = av_frame_get_best_effort_timestamp(frame);
ret = filter_encode_write_frame(frame, stream_index);
av_frame_free(&frame);
if (ret < 0)
goto end;
} else {
av_frame_free(&frame);
}
} else {
/* remux this frame without reencoding */
packet.dts = av_rescale_q_rnd(packet.dts,
ifmt_ctx->streams[stream_index]->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
packet.pts = av_rescale_q_rnd(packet.pts,
ifmt_ctx->streams[stream_index]->time_base,
ofmt_ctx->streams[stream_index]->time_base,
AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
ret = av_interleaved_write_frame(ofmt_ctx, &packet);
if (ret < 0)
goto end;
}
av_free_packet(&packet);
}
/* flush filters and encoders */
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
/* flush filter */
if (!filter_ctx[i].filter_graph)
continue;
ret = filter_encode_write_frame(NULL, i);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Flushing filter failed\n");
goto end;
}
/* flush encoder */
ret = flush_encoder(i);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Flushing encoder failed\n");
goto end;
}
}
av_write_trailer(ofmt_ctx);
end:
av_free_packet(&packet);
av_frame_free(&frame);
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
avcodec_close(ifmt_ctx->streams[i]->codec);
if (ofmt_ctx && ofmt_ctx->nb_streams > i && ofmt_ctx->streams[i] && ofmt_ctx->streams[i]->codec)
avcodec_close(ofmt_ctx->streams[i]->codec);
if (filter_ctx && filter_ctx[i].filter_graph)
avfilter_graph_free(&filter_ctx[i].filter_graph);
}
av_free(filter_ctx);
avformat_close_input(&ifmt_ctx);
if (ofmt_ctx && !(ofmt_ctx->oformat->flags & AVFMT_NOFILE))
avio_close(ofmt_ctx->pb);
avformat_free_context(ofmt_ctx);
if (ret < 0)
av_log(NULL, AV_LOG_ERROR, "Error occurred: %s\n", av_err2str(ret));
return ret ? 1 : 0;
}

View File

@@ -368,26 +368,6 @@ ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
rm temp[12].[av] all.[av]
@end example
@section -profile option fails when encoding H.264 video with AAC audio
@command{ffmpeg} prints an error like
@example
Undefined constant or missing '(' in 'baseline'
Unable to parse option value "baseline"
Error setting option profile to value baseline.
@end example
Short answer: write @option{-profile:v} instead of @option{-profile}.
Long answer: this happens because the @option{-profile} option can apply to both
video and audio. Specifically the AAC encoder also defines some profiles, none
of which are named @var{baseline}.
The solution is to apply the @option{-profile} option to the video stream only
by using @url{http://ffmpeg.org/ffmpeg.html#Stream-specifiers-1, Stream specifiers}.
Appending @code{:v} to it will do exactly that.
@section Using @option{-f lavfi}, audio becomes mono for no apparent reason.
Use @option{-dumpgraph -} to find out exactly where the channel layout is
@@ -412,7 +392,7 @@ VOB and a few other formats do not have a global header that describes
everything present in the file. Instead, applications are supposed to scan
the file to see what it contains. Since VOB files are frequently large, only
the beginning is scanned. If the subtitles happen only later in the file,
they will not be initally detected.
they will not be initially detected.
Some applications, including the @code{ffmpeg} command-line tool, can only
work with streams that were detected during the initial scan; streams that

View File

@@ -14,7 +14,7 @@
The FFmpeg resampler provides a high-level interface to the
libswresample library audio resampling utilities. In particular it
allows to perform audio resampling, audio channel layout rematrixing,
allows one to perform audio resampling, audio channel layout rematrixing,
and convert audio format and packing layout.
@c man end DESCRIPTION

View File

@@ -13,7 +13,7 @@
@c man begin DESCRIPTION
The FFmpeg rescaler provides a high-level interface to the libswscale
library image conversion utilities. In particular it allows to perform
library image conversion utilities. In particular it allows one to perform
image rescaling and pixel format conversion.
@c man end DESCRIPTION

View File

@@ -80,11 +80,23 @@ The transcoding process in @command{ffmpeg} for each output can be described by
the following diagram:
@example
_______ ______________ _________ ______________ ________
| | | | | | | | | |
| input | demuxer | encoded data | decoder | decoded | encoder | encoded data | muxer | output |
| file | ---------> | packets | ---------> | frames | ---------> | packets | -------> | file |
|_______| |______________| |_________| |______________| |________|
_______ ______________
| | | |
| input | demuxer | encoded data | decoder
| file | ---------> | packets | -----+
|_______| |______________| |
v
_________
| |
| decoded |
| frames |
|_________|
________ ______________ |
| | | | |
| output | <-------- | encoded data | <----+
| file | muxer | packets | encoder
|________| |______________|
@end example
@@ -112,11 +124,16 @@ the same type. In the above diagram they can be represented by simply inserting
an additional step between decoding and encoding:
@example
_________ __________ ______________
| | | | | |
| decoded | simple filtergraph | filtered | encoder | encoded data |
| frames | -------------------> | frames | ---------> | packets |
|_________| |__________| |______________|
_________ ______________
| | | |
| decoded | | encoded data |
| frames |\ _ | packets |
|_________| \ /||______________|
\ __________ /
simple _\|| | / encoder
filtergraph | filtered |/
| frames |
|__________|
@end example
@@ -125,10 +142,10 @@ Simple filtergraphs are configured with the per-stream @option{-filter} option
A simple filtergraph for video can look for example like this:
@example
_______ _____________ _______ _____ ________
| | | | | | | | | |
| input | ---> | deinterlace | ---> | scale | ---> | fps | ---> | output |
|_______| |_____________| |_______| |_____| |________|
_______ _____________ _______ ________
| | | | | | | |
| input | ---> | deinterlace | ---> | scale | ---> | output |
|_______| |_____________| |_______| |________|
@end example
@@ -255,8 +272,13 @@ ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
will copy all the streams except the second video, which will be encoded with
libx264, and the 138th audio, which will be encoded with libvorbis.
@item -t @var{duration} (@emph{output})
Stop writing the output after its duration reaches @var{duration}.
@item -t @var{duration} (@emph{input/output})
When used as an input option (before @code{-i}), limit the @var{duration} of
data read from the input file.
When used as an output option (before an output filename), stop writing the
output after its duration reaches @var{duration}.
@var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
-to and -t are mutually exclusive and -t has priority.
@@ -285,23 +307,20 @@ input until the timestamps reach @var{position}.
@var{position} may be either in seconds or in @code{hh:mm:ss[.xxx]} form.
@item -itsoffset @var{offset} (@emph{input})
Set the input time offset in seconds.
@code{[-]hh:mm:ss[.xxx]} syntax is also supported.
The offset is added to the timestamps of the input files.
Specifying a positive offset means that the corresponding
streams are delayed by @var{offset} seconds.
Set the input time offset.
@item -timestamp @var{time} (@emph{output})
@var{offset} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
The offset is added to the timestamps of the input files. Specifying
a positive offset means that the corresponding streams are delayed by
the time duration specified in @var{offset}.
@item -timestamp @var{date} (@emph{output})
Set the recording timestamp in the container.
The syntax for @var{time} is:
@example
now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...])|(HHMMSS[.m...]))[Z|z])
@end example
If the value is "now" it takes the current time.
Time is local time unless 'Z' or 'z' is appended, in which case it is
interpreted as UTC.
If the year-month-day part is not specified it takes the current
year-month-day.
@var{date} must be a time duration specification,
see @ref{date syntax,,the Date section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
@item -metadata[:metadata_specifier] @var{key}=@var{value} (@emph{output,per-metadata})
Set a metadata key/value pair.
@@ -348,8 +367,13 @@ Stop writing to the stream after @var{framecount} frames.
@item -q[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
@itemx -qscale[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
Use fixed quality scale (VBR). The meaning of @var{q} is
Use fixed quality scale (VBR). The meaning of @var{q}/@var{qscale} is
codec-dependent.
If @var{qscale} is used without a @var{stream_specifier} then it applies only
to the video stream, this is to maintain compatibility with previous behavior
and as specifying the same codec specific value to 2 different codecs that is
audio and video generally is not what is intended when no stream_specifier is
used.
@anchor{filter_option}
@item -filter[:@var{stream_specifier}] @var{filtergraph} (@emph{output,per-stream})
@@ -503,9 +527,6 @@ prefix is ``ffmpeg2pass''. The complete file name will be
@file{PREFIX-N.log}, where N is a number specific to the output
stream
@item -vlang @var{code}
Set the ISO 639 language code (3 letters) of the current video stream.
@item -vf @var{filtergraph} (@emph{output})
Create the filtergraph specified by @var{filtergraph} and use it to
filter the stream.
@@ -513,7 +534,7 @@ filter the stream.
This is an alias for @code{-filter:v}, see the @ref{filter_option,,-filter option}.
@end table
@section Advanced Video Options
@section Advanced Video options
@table @option
@item -pix_fmt[:@var{stream_specifier}] @var{format} (@emph{input/output,per-stream})
@@ -616,6 +637,52 @@ would be more efficient.
@item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
When doing stream copy, copy also non-key frames found at the
beginning.
@item -hwaccel[:@var{stream_specifier}] @var{hwaccel} (@emph{input,per-stream})
Use hardware acceleration to decode the matching stream(s). The allowed values
of @var{hwaccel} are:
@table @option
@item none
Do not use any hardware acceleration (the default).
@item auto
Automatically select the hardware acceleration method.
@item vda
Use Apple VDA hardware acceleration.
@item vdpau
Use VDPAU (Video Decode and Presentation API for Unix) hardware acceleration.
@item dxva2
Use DXVA2 (DirectX Video Acceleration) hardware acceleration.
@end table
This option has no effect if the selected hwaccel is not available or not
supported by the chosen decoder.
Note that most acceleration methods are intended for playback and will not be
faster than software decoding on modern CPUs. Additionally, @command{ffmpeg}
will usually need to copy the decoded frames from the GPU memory into the system
memory, resulting in further performance loss. This option is thus mainly
useful for testing.
@item -hwaccel_device[:@var{stream_specifier}] @var{hwaccel_device} (@emph{input,per-stream})
Select a device to use for hardware acceleration.
This option only makes sense when the @option{-hwaccel} option is also
specified. Its exact meaning depends on the specific hardware acceleration
method chosen.
@table @option
@item vdpau
For VDPAU, this option specifies the X11 display/screen to use. If this option
is not specified, the value of the @var{DISPLAY} environment variable is used
@item dxva2
For DXVA2, this option should contain the number of the display adapter to use.
If this option is not specified, the default adapter is used.
@end table
@end table
@section Audio Options
@@ -650,7 +717,7 @@ filter the stream.
This is an alias for @code{-filter:a}, see the @ref{filter_option,,-filter option}.
@end table
@section Advanced Audio options:
@section Advanced Audio options
@table @option
@item -atag @var{fourcc/tag} (@emph{output})
@@ -665,11 +732,9 @@ stereo but not 6 channels as 5.1. The default is to always try to guess. Use
0 to disable all guessing.
@end table
@section Subtitle options:
@section Subtitle options
@table @option
@item -slang @var{code}
Set the ISO 639 language code (3 letters) of the current subtitle stream.
@item -scodec @var{codec} (@emph{input/output})
Set the subtitle codec. This is an alias for @code{-codec:s}.
@item -sn (@emph{output})
@@ -678,7 +743,7 @@ Disable subtitle recording.
Deprecated, see -bsf
@end table
@section Advanced Subtitle options:
@section Advanced Subtitle options
@table @option
@@ -998,7 +1063,7 @@ ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
@end example
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{per-stream})
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{input/output,per-stream})
Force a tag/fourcc for matching streams.
@item -timecode @var{hh}:@var{mm}:@var{ss}SEP@var{ff}
@@ -1072,12 +1137,38 @@ transcoding. Use @option{-noaccurate_seek} to disable it, which may be useful
e.g. when copying some streams and transcoding the others.
@item -override_ffserver (@emph{global})
Overrides the input specifications from ffserver. Using this option you can
map any input stream to ffserver and control many aspects of the encoding from
ffmpeg. Without this option ffmpeg will transmit to ffserver what is requested by
ffserver.
Overrides the input specifications from @command{ffserver}. Using this
option you can map any input stream to @command{ffserver} and control
many aspects of the encoding from @command{ffmpeg}. Without this
option @command{ffmpeg} will transmit to @command{ffserver} what is
requested by @command{ffserver}.
The option is intended for cases where features are needed that cannot be
specified to ffserver but can be to ffmpeg.
specified to @command{ffserver} but can be to @command{ffmpeg}.
@item -discard (@emph{input})
Allows discarding specific streams or frames of streams at the demuxer.
Not all demuxers support this.
@table @option
@item none
Discard no frame.
@item default
Default, which discards no frames.
@item noref
Discard all non-reference frames.
@item bidir
Discard all bidirectional frames.
@item nokey
Discard all frames excepts keyframes.
@item all
Discard all frames.
@end table
@end table

View File

@@ -84,6 +84,9 @@ output. In the filtergraph, the input is associated to the label
ffmpeg-filters manual for more information about the filtergraph
syntax.
You can specify this parameter multiple times and cycle through the specified
filtergraphs along with the show modes by pressing the key @key{w}.
@item -af @var{filtergraph}
@var{filtergraph} is a description of the filtergraph to apply to
the input audio.
@@ -159,6 +162,10 @@ Force a specific video decoder.
@item -scodec @var{codec_name}
Force a specific subtitle decoder.
@item -autorotate
Automatically rotate the video according to presentation metadata. Set by
default, use -noautorotate to disable.
@end table
@section While playing
@@ -174,7 +181,7 @@ Toggle full screen.
Pause.
@item a
Cycle audio channel in the curret program.
Cycle audio channel in the current program.
@item v
Cycle video channel.
@@ -186,7 +193,13 @@ Cycle subtitle channel in the current program.
Cycle program.
@item w
Show audio waves.
Cycle video filters or show modes.
@item s
Step to the next frame.
Pause if the stream is not already paused, step to the next video
frame, and pause.
@item left/right
Seek backward/forward 10 seconds.
@@ -195,6 +208,8 @@ Seek backward/forward 10 seconds.
Seek backward/forward 1 minute.
@item page down/page up
Seek to the previous/next chapter.
or if there are no chapters
Seek backward/forward 10 minutes.
@item mouse click
@@ -206,6 +221,7 @@ Seek to percentage in file corresponding to fraction of width.
@include config.texi
@ifset config-all
@set config-readonly
@ifset config-avutil
@include utils.texi
@end ifset

View File

@@ -197,11 +197,11 @@ The information for each single packet is printed within a dedicated
section with name "PACKET".
@item -show_frames
Show information about each frame contained in the input multimedia
stream.
Show information about each frame and subtitle contained in the input
multimedia stream.
The information for each single frame is printed within a dedicated
section with name "FRAME".
section with name "FRAME" or "SUBTITLE".
@item -show_streams
Show information about each media stream contained in the input
@@ -337,6 +337,39 @@ A writer may accept one or more arguments, which specify the options
to adopt. The options are specified as a list of @var{key}=@var{value}
pairs, separated by ":".
All writers support the following options:
@table @option
@item string_validation, sv
Set string validation mode.
The following values are accepted.
@table @samp
@item fail
The writer will fail immediately in case an invalid string (UTF-8)
sequence or code point is found in the input. This is especially
useful to validate input metadata.
@item ignore
Any validation error will be ignored. This will result in possibly
broken output, especially with the json or xml writer.
@item replace
The writer will substitute invalid UTF-8 sequences or code points with
the string specified with the @option{string_validation_replacement}.
@end table
Default value is @samp{replace}.
@item string_validation_replacement, svr
Set replacement string to use in case @option{string_validation} is
set to @samp{replace}.
In case the option is not specified, the writer will assume the empty
string, that is it will remove the invalid sequences from the input
strings.
@end table
A description of the currently available writers follows.
@section default
@@ -566,6 +599,7 @@ DV, GXF and AVI timecodes are available in format metadata
@include config.texi
@ifset config-all
@set config-readonly
@ifset config-avutil
@include utils.texi
@end ifset

View File

@@ -8,15 +8,15 @@
<xsd:complexType name="ffprobeType">
<xsd:sequence>
<xsd:element name="program_version" type="ffprobe:programVersionType" minOccurs="0" maxOccurs="1" />
<xsd:element name="library_versions" type="ffprobe:libraryVersionsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="packets" type="ffprobe:packetsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="frames" type="ffprobe:framesType" minOccurs="0" maxOccurs="1" />
<xsd:element name="streams" type="ffprobe:streamsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="programs" type="ffprobe:programsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="streams" type="ffprobe:streamsType" minOccurs="0" maxOccurs="1" />
<xsd:element name="chapters" type="ffprobe:chaptersType" minOccurs="0" maxOccurs="1" />
<xsd:element name="format" type="ffprobe:formatType" minOccurs="0" maxOccurs="1" />
<xsd:element name="error" type="ffprobe:errorType" minOccurs="0" maxOccurs="1" />
<xsd:element name="program_version" type="ffprobe:programVersionType" minOccurs="0" maxOccurs="1" />
<xsd:element name="library_versions" type="ffprobe:libraryVersionsType" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
@@ -28,7 +28,10 @@
<xsd:complexType name="framesType">
<xsd:sequence>
<xsd:element name="frame" type="ffprobe:frameType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="frame" type="ffprobe:frameType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="subtitle" type="ffprobe:subtitleType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
@@ -50,6 +53,10 @@
</xsd:complexType>
<xsd:complexType name="frameType">
<xsd:sequence>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="media_type" type="xsd:string" use="required"/>
<xsd:attribute name="key_frame" type="xsd:int" use="required"/>
<xsd:attribute name="pts" type="xsd:long" />
@@ -58,6 +65,8 @@
<xsd:attribute name="pkt_pts_time" type="xsd:float"/>
<xsd:attribute name="pkt_dts" type="xsd:long" />
<xsd:attribute name="pkt_dts_time" type="xsd:float"/>
<xsd:attribute name="best_effort_timestamp" type="xsd:long" />
<xsd:attribute name="best_effort_timestamp_time" type="xsd:float" />
<xsd:attribute name="pkt_duration" type="xsd:long" />
<xsd:attribute name="pkt_duration_time" type="xsd:float"/>
<xsd:attribute name="pkt_pos" type="xsd:long" />
@@ -82,6 +91,16 @@
<xsd:attribute name="repeat_pict" type="xsd:int" />
</xsd:complexType>
<xsd:complexType name="subtitleType">
<xsd:attribute name="media_type" type="xsd:string" fixed="subtitle" use="required"/>
<xsd:attribute name="pts" type="xsd:long" />
<xsd:attribute name="pts_time" type="xsd:float"/>
<xsd:attribute name="format" type="xsd:int" />
<xsd:attribute name="start_display_time" type="xsd:int" />
<xsd:attribute name="end_display_time" type="xsd:int" />
<xsd:attribute name="num_rects" type="xsd:int" />
</xsd:complexType>
<xsd:complexType name="streamsType">
<xsd:sequence>
<xsd:element name="stream" type="ffprobe:streamType" minOccurs="0" maxOccurs="unbounded"/>
@@ -132,6 +151,8 @@
<xsd:attribute name="display_aspect_ratio" type="xsd:string"/>
<xsd:attribute name="pix_fmt" type="xsd:string"/>
<xsd:attribute name="level" type="xsd:int"/>
<xsd:attribute name="color_range" type="xsd:string"/>
<xsd:attribute name="color_space" type="xsd:string"/>
<xsd:attribute name="timecode" type="xsd:string"/>
<!-- audio attributes -->
@@ -150,6 +171,7 @@
<xsd:attribute name="duration_ts" type="xsd:long"/>
<xsd:attribute name="duration" type="xsd:float"/>
<xsd:attribute name="bit_rate" type="xsd:int"/>
<xsd:attribute name="max_bit_rate" type="xsd:int"/>
<xsd:attribute name="nb_frames" type="xsd:int"/>
<xsd:attribute name="nb_read_frames" type="xsd:int"/>
<xsd:attribute name="nb_read_packets" type="xsd:int"/>
@@ -204,8 +226,7 @@
<xsd:attribute name="copyright" type="xsd:string" use="required"/>
<xsd:attribute name="build_date" type="xsd:string" use="required"/>
<xsd:attribute name="build_time" type="xsd:string" use="required"/>
<xsd:attribute name="compiler_type" type="xsd:string" use="required"/>
<xsd:attribute name="compiler_version" type="xsd:string" use="required"/>
<xsd:attribute name="compiler_ident" type="xsd:string" use="required"/>
<xsd:attribute name="configuration" type="xsd:string" use="required"/>
</xsd:complexType>

View File

@@ -235,7 +235,7 @@ StartSendOnKey
#<Stream test.ogg>
#Feed feed1.ffm
#Title "Stream title"
#Metadata title "Stream title"
#AudioBitRate 64
#AudioChannels 2
#AudioSampleRate 44100
@@ -280,10 +280,10 @@ StartSendOnKey
#<Stream file.asf>
#File "/usr/local/httpd/htdocs/test.asf"
#NoAudio
#Author "Me"
#Copyright "Super MegaCorp"
#Title "Test stream from disk"
#Comment "Test comment"
#Metadata author "Me"
#Metadata copyright "Super MegaCorp"
#Metadata title "Test stream from disk"
#Metadata comment "Test comment"
#</Stream>

View File

@@ -16,11 +16,14 @@ ffserver [@var{options}]
@chapter Description
@c man begin DESCRIPTION
@command{ffserver} is a streaming server for both audio and video. It
supports several live feeds, streaming from files and time shifting on
live feeds (you can seek to positions in the past on each live feed,
provided you specify a big enough feed storage in
@file{ffserver.conf}).
@command{ffserver} is a streaming server for both audio and video.
It supports several live feeds, streaming from files and time shifting
on live feeds. You can seek to positions in the past on each live
feed, provided you specify a big enough feed storage.
@command{ffserver} is configured through a configuration file, which
is read at startup. If not explicitly specified, it will read from
@file{/etc/ffserver.conf}.
@command{ffserver} receives prerecorded files or FFM streams from some
@command{ffmpeg} instance as input, then streams them over
@@ -39,10 +42,126 @@ For each feed you can have different output streams in various
formats, each one specified by a @code{<Stream>} section in the
configuration file.
@chapter Detailed description
@command{ffserver} works by forwarding streams encoded by
@command{ffmpeg}, or pre-recorded streams which are read from disk.
Precisely, @command{ffserver} acts as an HTTP server, accepting POST
requests from @command{ffmpeg} to acquire the stream to publish, and
serving RTSP clients or HTTP clients GET requests with the stream
media content.
A feed is an @ref{FFM} stream created by @command{ffmpeg}, and sent to
a port where @command{ffserver} is listening.
Each feed is identified by a unique name, corresponding to the name
of the resource published on @command{ffserver}, and is configured by
a dedicated @code{Feed} section in the configuration file.
The feed publish URL is given by:
@example
http://@var{ffserver_ip_address}:@var{http_port}/@var{feed_name}
@end example
where @var{ffserver_ip_address} is the IP address of the machine where
@command{ffserver} is installed, @var{http_port} is the port number of
the HTTP server (configured through the @option{Port} option), and
@var{feed_name} is the name of the corresponding feed defined in the
configuration file.
Each feed is associated to a file which is stored on disk. This stored
file is used to allow to send pre-recorded data to a player as fast as
possible when new content is added in real-time to the stream.
A "live-stream" or "stream" is a resource published by
@command{ffserver}, and made accessible through the HTTP protocol to
clients.
A stream can be connected to a feed, or to a file. In the first case,
the published stream is forwarded from the corresponding feed
generated by a running instance of @command{ffmpeg}, in the second
case the stream is read from a pre-recorded file.
Each stream is identified by a unique name, corresponding to the name
of the resource served by @command{ffserver}, and is configured by
a dedicated @code{Stream} section in the configuration file.
The stream access HTTP URL is given by:
@example
http://@var{ffserver_ip_address}:@var{http_port}/@var{stream_name}[@var{options}]
@end example
The stream access RTSP URL is given by:
@example
http://@var{ffserver_ip_address}:@var{rtsp_port}/@var{stream_name}[@var{options}]
@end example
@var{stream_name} is the name of the corresponding stream defined in
the configuration file. @var{options} is a list of options specified
after the URL which affects how the stream is served by
@command{ffserver}. @var{http_port} and @var{rtsp_port} are the HTTP
and RTSP ports configured with the options @var{Port} and
@var{RTSPPort} respectively.
In case the stream is associated to a feed, the encoding parameters
must be configured in the stream configuration. They are sent to
@command{ffmpeg} when setting up the encoding. This allows
@command{ffserver} to define the encoding parameters used by
the @command{ffmpeg} encoders.
The @command{ffmpeg} @option{override_ffserver} commandline option
allows one to override the encoding parameters set by the server.
Multiple streams can be connected to the same feed.
For example, you can have a situation described by the following
graph:
@example
_________ __________
| | | |
ffmpeg 1 -----| feed 1 |-----| stream 1 |
\ |_________|\ |__________|
\ \
\ \ __________
\ \ | |
\ \| stream 2 |
\ |__________|
\
\ _________ __________
\ | | | |
\| feed 2 |-----| stream 3 |
|_________| |__________|
_________ __________
| | | |
ffmpeg 2 -----| feed 3 |-----| stream 4 |
|_________| |__________|
_________ __________
| | | |
| file 1 |-----| stream 5 |
|_________| |__________|
@end example
@anchor{FFM}
@section FFM, FFM2 formats
FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
video and audio streams and encoding options, and can store a moving time segment
of an infinite movie or a whole movie.
FFM is version specific, and there is limited compatibility of FFM files
generated by one version of ffmpeg/ffserver and another version of
ffmpeg/ffserver. It may work but it is not guaranteed to work.
FFM2 is extensible while maintaining compatibility and should work between
differing versions of tools. FFM2 is the default.
@section Status stream
ffserver supports an HTTP interface which exposes the current status
of the server.
@command{ffserver} supports an HTTP interface which exposes the
current status of the server.
Simply point your browser to the address of the special status stream
specified in the configuration file.
@@ -61,27 +180,8 @@ ACL allow 192.168.0.0 192.168.255.255
then the server will post a page with the status information when
the special stream @file{status.html} is requested.
@section What can this do?
When properly configured and running, you can capture video and audio in real
time from a suitable capture card, and stream it out over the Internet to
either Windows Media Player or RealAudio player (with some restrictions).
It can also stream from files, though that is currently broken. Very often, a
web server can be used to serve up the files just as well.
It can stream prerecorded video from .ffm files, though it is somewhat tricky
to make it work correctly.
@section How do I make it work?
First, build the kit. It *really* helps to have installed LAME first. Then when
you run the ffserver ./configure, make sure that you have the
@code{--enable-libmp3lame} flag turned on.
LAME is important as it allows for streaming audio to Windows Media Player.
Don't ask why the other audio types do not work.
As a simple test, just run the following two command lines where INPUTFILE
is some file which you can decode with ffmpeg:
@@ -109,35 +209,6 @@ You should edit the ffserver.conf file to suit your needs (in terms of
frame rates etc). Then install ffserver and ffmpeg, write a script to start
them up, and off you go.
@section Troubleshooting
@subsection I don't hear any audio, but video is fine.
Maybe you didn't install LAME, or got your ./configure statement wrong. Check
the ffmpeg output to see if a line referring to MP3 is present. If not, then
your configuration was incorrect. If it is, then maybe your wiring is not
set up correctly. Maybe the sound card is not getting data from the right
input source. Maybe you have a really awful audio interface (like I do)
that only captures in stereo and also requires that one channel be flipped.
If you are one of these people, then export 'AUDIO_FLIP_LEFT=1' before
starting ffmpeg.
@subsection The audio and video lose sync after a while.
Yes, they do.
@subsection After a long while, the video update rate goes way down in WMP.
Yes, it does. Who knows why?
@subsection WMP 6.4 behaves differently to WMP 7.
Yes, it does. Any thoughts on this would be gratefully received. These
differences extend to embedding WMP into a web page. [There are two
object IDs that you can use: The old one, which does not play well, and
the new one, which does (both tested on the same system). However,
I suspect that the new one is not available unless you have installed WMP 7].
@section What else can it do?
You can replay video from .ffm files that was recorded earlier.
@@ -177,9 +248,6 @@ specify a time. In addition, ffserver will skip frames until a key_frame
is found. This further reduces the startup delay by not transferring data
that will be discarded.
* You may want to adjust the MaxBandwidth in the ffserver.conf to limit
the amount of bandwidth consumed by live streams.
@section Why does the ?buffer / Preroll stop working after a time?
It turns out that (on my machine at least) the number of frames successfully
@@ -213,19 +281,6 @@ You use this by adding the ?date= to the end of the URL for the stream.
For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}.
@c man end
@section What is FFM, FFM2
FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
video and audio streams and encoding options, and can store a moving time segment
of an infinite movie or a whole movie.
FFM is version specific, and there is limited compatibility of FFM files
generated by one version of ffmpeg/ffserver and another version of
ffmpeg/ffserver. It may work but it is not guaranteed to work.
FFM2 is extensible while maintaining compatibility and should work between
differing versions of tools. FFM2 is the default.
@chapter Options
@c man begin OPTIONS
@@ -235,15 +290,540 @@ differing versions of tools. FFM2 is the default.
@table @option
@item -f @var{configfile}
Use @file{configfile} instead of @file{/etc/ffserver.conf}.
Read configuration file @file{configfile}. If not specified it will
read by default from @file{/etc/ffserver.conf}.
@item -n
Enable no-launch mode. This option disables all the Launch directives
within the various <Stream> sections. Since ffserver will not launch
any ffmpeg instances, you will have to launch them manually.
Enable no-launch mode. This option disables all the @code{Launch}
directives within the various @code{<Feed>} sections. Since
@command{ffserver} will not launch any @command{ffmpeg} instances, you
will have to launch them manually.
@item -d
Enable debug mode. This option increases log verbosity, directs log
messages to stdout.
Enable debug mode. This option increases log verbosity, and directs
log messages to stdout. When specified, the @option{CustomLog} option
is ignored.
@end table
@chapter Configuration file syntax
@command{ffserver} reads a configuration file containing global
options and settings for each stream and feed.
The configuration file consists of global options and dedicated
sections, which must be introduced by "<@var{SECTION_NAME}
@var{ARGS}>" on a separate line and must be terminated by a line in
the form "</@var{SECTION_NAME}>". @var{ARGS} is optional.
Currently the following sections are recognized: @samp{Feed},
@samp{Stream}, @samp{Redirect}.
A line starting with @code{#} is ignored and treated as a comment.
Name of options and sections are case-insensitive.
@section ACL syntax
An ACL (Access Control List) specifies the address which are allowed
to access a given stream, or to write a given feed.
It accepts the folling forms
@itemize
@item
Allow/deny access to @var{address}.
@example
ACL ALLOW <address>
ACL DENY <address>
@end example
@item
Allow/deny access to ranges of addresses from @var{first_address} to
@var{last_address}.
@example
ACL ALLOW <first_address> <last_address>
ACL DENY <first_address> <last_address>
@end example
@end itemize
You can repeat the ACL allow/deny as often as you like. It is on a per
stream basis. The first match defines the action. If there are no matches,
then the default is the inverse of the last ACL statement.
Thus 'ACL allow localhost' only allows access from localhost.
'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and
allow everybody else.
@section Global options
@table @option
@item Port @var{port_number}
@item RTSPPort @var{port_number}
Set TCP port number on which the HTTP/RTSP server is listening. You
must select a different port from your standard HTTP web server if it
is running on the same computer.
If not specified, no corresponding server will be created.
@item BindAddress @var{ip_address}
@item RTSPBindAddress @var{ip_address}
Set address on which the HTTP/RTSP server is bound. Only useful if you
have several network interfaces.
@item MaxHTTPConnections @var{n}
Set number of simultaneous HTTP connections that can be handled. It
has to be defined @emph{before} the @option{MaxClients} parameter,
since it defines the @option{MaxClients} maximum limit.
Default value is 2000.
@item MaxClients @var{n}
Set number of simultaneous requests that can be handled. Since
@command{ffserver} is very fast, it is more likely that you will want
to leave this high and use @option{MaxBandwidth}.
Default value is 5.
@item MaxBandwidth @var{kbps}
Set the maximum amount of kbit/sec that you are prepared to consume
when streaming to clients.
Default value is 1000.
@item CustomLog @var{filename}
Set access log file (uses standard Apache log file format). '-' is the
standard output.
If not specified @command{ffserver} will produce no log.
In case the commandline option @option{-d} is specified this option is
ignored, and the log is written to standard output.
@item NoDaemon
Set no-daemon mode. This option is currently ignored since now
@command{ffserver} will always work in no-daemon mode, and is
deprecated.
@end table
@section Feed section
A Feed section defines a feed provided to @command{ffserver}.
Each live feed contains one video and/or audio sequence coming from an
@command{ffmpeg} encoder or another @command{ffserver}. This sequence
may be encoded simultaneously with several codecs at several
resolutions.
A feed instance specification is introduced by a line in the form:
@example
<Feed FEED_FILENAME>
@end example
where @var{FEED_FILENAME} specifies the unique name of the FFM stream.
The following options are recognized within a Feed section.
@table @option
@item File @var{filename}
@item ReadOnlyFile @var{filename}
Set the path where the feed file is stored on disk.
If not specified, the @file{/tmp/FEED.ffm} is assumed, where
@var{FEED} is the feed name.
If @option{ReadOnlyFile} is used the file is marked as read-only and
it will not be deleted or updated.
@item Truncate
Truncate the feed file, rather than appending to it. By default
@command{ffserver} will append data to the file, until the maximum
file size value is reached (see @option{FileMaxSize} option).
@item FileMaxSize @var{size}
Set maximum size of the feed file in bytes. 0 means unlimited. The
postfixes @code{K} (2^10), @code{M} (2^20), and @code{G} (2^30) are
recognized.
Default value is 5M.
@item Launch @var{args}
Launch an @command{ffmpeg} command when creating @command{ffserver}.
@var{args} must be a sequence of arguments to be provided to an
@command{ffmpeg} instance. The first provided argument is ignored, and
it is replaced by a path with the same dirname of the @command{ffserver}
instance, followed by the remaining argument and terminated with a
path corresponding to the feed.
When the launched process exits, @command{ffserver} will launch
another program instance.
In case you need a more complex @command{ffmpeg} configuration,
e.g. if you need to generate multiple FFM feeds with a single
@command{ffmpeg} instance, you should launch @command{ffmpeg} by hand.
This option is ignored in case the commandline option @option{-n} is
specified.
@item ACL @var{spec}
Specify the list of IP address which are allowed or denied to write
the feed. Multiple ACL options can be specified.
@end table
@section Stream section
A Stream section defines a stream provided by @command{ffserver}, and
identified by a single name.
The stream is sent when answering a request containing the stream
name.
A stream section must be introduced by the line:
@example
<Stream STREAM_NAME>
@end example
where @var{STREAM_NAME} specifies the unique name of the stream.
The following options are recognized within a Stream section.
Encoding options are marked with the @emph{encoding} tag, and they are
used to set the encoding parameters, and are mapped to libavcodec
encoding options. Not all encoding options are supported, in
particular it is not possible to set encoder private options. In order
to override the encoding options specified by @command{ffserver}, you
can use the @command{ffmpeg} @option{override_ffserver} commandline
option.
Only one of the @option{Feed} and @option{File} options should be set.
@table @option
@item Feed @var{feed_name}
Set the input feed. @var{feed_name} must correspond to an existing
feed defined in a @code{Feed} section.
When this option is set, encoding options are used to setup the
encoding operated by the remote @command{ffmpeg} process.
@item File @var{filename}
Set the filename of the pre-recorded input file to stream.
When this option is set, encoding options are ignored and the input
file content is re-streamed as is.
@item Format @var{format_name}
Set the format of the output stream.
Must be the name of a format recognized by FFmpeg. If set to
@samp{status}, it is treated as a status stream.
@item InputFormat @var{format_name}
Set input format. If not specified, it is automatically guessed.
@item Preroll @var{n}
Set this to the number of seconds backwards in time to start. Note that
most players will buffer 5-10 seconds of video, and also you need to allow
for a keyframe to appear in the data stream.
Default value is 0.
@item StartSendOnKey
Do not send stream until it gets the first key frame. By default
@command{ffserver} will send data immediately.
@item MaxTime @var{n}
Set the number of seconds to run. This value set the maximum duration
of the stream a client will be able to receive.
A value of 0 means that no limit is set on the stream duration.
@item ACL @var{spec}
Set ACL for the stream.
@item DynamicACL @var{spec}
@item RTSPOption @var{option}
@item MulticastAddress @var{address}
@item MulticastPort @var{port}
@item MulticastTTL @var{integer}
@item NoLoop
@item FaviconURL @var{url}
Set favicon (favourite icon) for the server status page. It is ignored
for regular streams.
@item Author @var{value}
@item Comment @var{value}
@item Copyright @var{value}
@item Title @var{value}
Set metadata corresponding to the option. All these options are
deprecated in favor of @option{Metadata}.
@item Metadata @var{key} @var{value}
Set metadata value on the output stream.
@item NoAudio
@item NoVideo
Suppress audio/video.
@item AudioCodec @var{codec_name} (@emph{encoding,audio})
Set audio codec.
@item AudioBitRate @var{rate} (@emph{encoding,audio})
Set bitrate for the audio stream in kbits per second.
@item AudioChannels @var{n} (@emph{encoding,audio})
Set number of audio channels.
@item AudioSampleRate @var{n} (@emph{encoding,audio})
Set sampling frequency for audio. When using low bitrates, you should
lower this frequency to 22050 or 11025. The supported frequencies
depend on the selected audio codec.
@item AVOptionAudio @var{option} @var{value} (@emph{encoding,audio})
Set generic option for audio stream.
@item AVPresetAudio @var{preset} (@emph{encoding,audio})
Set preset for audio stream.
@item VideoCodec @var{codec_name} (@emph{encoding,video})
Set video codec.
@item VideoBitRate @var{n} (@emph{encoding,video})
Set bitrate for the video stream in kbits per second.
@item VideoBitRateRange @var{range} (@emph{encoding,video})
Set video bitrate range.
A range must be specified in the form @var{minrate}-@var{maxrate}, and
specifies the @option{minrate} and @option{maxrate} encoding options
expressed in kbits per second.
@item VideoBitRateRangeTolerance @var{n} (@emph{encoding,video})
Set video bitrate tolerance in kbits per second.
@item PixelFormat @var{pixel_format} (@emph{encoding,video})
Set video pixel format.
@item Debug @var{integer} (@emph{encoding,video})
Set video @option{debug} encoding option.
@item Strict @var{integer} (@emph{encoding,video})
Set video @option{strict} encoding option.
@item VideoBufferSize @var{n} (@emph{encoding,video})
Set ratecontrol buffer size, expressed in KB.
@item VideoFrameRate @var{n} (@emph{encoding,video})
Set number of video frames per second.
@item VideoSize (@emph{encoding,video})
Set size of the video frame, must be an abbreviation or in the form
@var{W}x@var{H}. See @ref{video size syntax,,the Video size section
in the ffmpeg-utils(1) manual,ffmpeg-utils}.
Default value is @code{160x128}.
@item VideoIntraOnly (@emph{encoding,video})
Transmit only intra frames (useful for low bitrates, but kills frame rate).
@item VideoGopSize @var{n} (@emph{encoding,video})
If non-intra only, an intra frame is transmitted every VideoGopSize
frames. Video synchronization can only begin at an intra frame.
@item VideoTag @var{tag} (@emph{encoding,video})
Set video tag.
@item VideoHighQuality (@emph{encoding,video})
@item Video4MotionVector (@emph{encoding,video})
@item BitExact (@emph{encoding,video})
Set bitexact encoding flag.
@item IdctSimple (@emph{encoding,video})
Set simple IDCT algorithm.
@item Qscale @var{n} (@emph{encoding,video})
Enable constant quality encoding, and set video qscale (quantization
scale) value, expressed in @var{n} QP units.
@item VideoQMin @var{n} (@emph{encoding,video})
@item VideoQMax @var{n} (@emph{encoding,video})
Set video qmin/qmax.
@item VideoQDiff @var{integer} (@emph{encoding,video})
Set video @option{qdiff} encoding option.
@item LumiMask @var{float} (@emph{encoding,video})
@item DarkMask @var{float} (@emph{encoding,video})
Set @option{lumi_mask}/@option{dark_mask} encoding options.
@item AVOptionVideo @var{option} @var{value} (@emph{encoding,video})
Set generic option for video stream.
@item AVPresetVideo @var{preset} (@emph{encoding,video})
Set preset for video stream.
@var{preset} must be the path of a preset file.
@end table
@subsection Server status stream
A server status stream is a special stream which is used to show
statistics about the @command{ffserver} operations.
It must be specified setting the option @option{Format} to
@samp{status}.
@section Redirect section
A redirect section specifies where to redirect the requested URL to
another page.
A redirect section must be introduced by the line:
@example
<Redirect NAME>
@end example
where @var{NAME} is the name of the page which should be redirected.
It only accepts the option @option{URL}, which specify the redirection
URL.
@chapter Stream examples
@itemize
@item
Multipart JPEG
@example
<Stream test.mjpg>
Feed feed1.ffm
Format mpjpeg
VideoFrameRate 2
VideoIntraOnly
NoAudio
Strict -1
</Stream>
@end example
@item
Single JPEG
@example
<Stream test.jpg>
Feed feed1.ffm
Format jpeg
VideoFrameRate 2
VideoIntraOnly
VideoSize 352x240
NoAudio
Strict -1
</Stream>
@end example
@item
Flash
@example
<Stream test.swf>
Feed feed1.ffm
Format swf
VideoFrameRate 2
VideoIntraOnly
NoAudio
</Stream>
@end example
@item
ASF compatible
@example
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
AudioBitRate 64
StartSendOnKey
</Stream>
@end example
@item
MP3 audio
@example
<Stream test.mp3>
Feed feed1.ffm
Format mp2
AudioCodec mp3
AudioBitRate 64
AudioChannels 1
AudioSampleRate 44100
NoVideo
</Stream>
@end example
@item
Ogg Vorbis audio
@example
<Stream test.ogg>
Feed feed1.ffm
Metadata title "Stream title"
AudioBitRate 64
AudioChannels 2
AudioSampleRate 44100
NoVideo
</Stream>
@end example
@item
Real with audio only at 32 kbits
@example
<Stream test.ra>
Feed feed1.ffm
Format rm
AudioBitRate 32
NoVideo
</Stream>
@end example
@item
Real with audio and video at 64 kbits
@example
<Stream test.rm>
Feed feed1.ffm
Format rm
AudioBitRate 32
VideoBitRate 128
VideoFrameRate 25
VideoGopSize 25
</Stream>
@end example
@item
For stream coming from a file: you only need to set the input filename
and optionally a new format.
@example
<Stream file.rm>
File "/usr/local/httpd/htdocs/tlive.rm"
NoAudio
</Stream>
@end example
@example
<Stream file.asf>
File "/usr/local/httpd/htdocs/test.asf"
NoAudio
Metadata author "Me"
Metadata copyright "Super MegaCorp"
Metadata title "Test stream from disk"
Metadata comment "Test comment"
</Stream>
@end example
@end itemize
@c man end
@include config.texi

View File

@@ -44,8 +44,8 @@ streams of this type.
If @var{stream_index} is given, then it matches the stream with number @var{stream_index}
in the program with the id @var{program_id}. Otherwise, it matches all streams in the
program.
@item #@var{stream_id}
Matches the stream by a format-specific ID.
@item #@var{stream_id} or i:@var{stream_id}
Match the stream by stream id (e.g. PID in MPEG-TS container).
@end table
@section Generic options
@@ -189,11 +189,20 @@ following option is recognized:
set the file name to use for the report; @code{%p} is expanded to the name
of the program, @code{%t} is expanded to a timestamp, @code{%%} is expanded
to a plain @code{%}
@item level
set the log level
@end table
Errors in parsing the environment variable are not fatal, and will not
appear in the report.
@item -hide_banner
Suppress printing banner.
All FFmpeg tools will normally show a copyright notice, build options
and library versions. This option can be used to suppress printing
this information.
@item -cpuflags flags (@emph{global})
Allows setting and clearing cpu flags. This option is intended
for testing. Do not use it unless you know what you're doing.
@@ -250,6 +259,10 @@ Possible flags for this option are:
@end table
@end table
@item -opencl_bench
Benchmark all available OpenCL devices and show the results. This option
is only available when FFmpeg has been compiled with @code{--enable-opencl}.
@item -opencl_options options (@emph{global})
Set OpenCL environment options. This option is only available when
FFmpeg has been compiled with @code{--enable-opencl}.

File diff suppressed because it is too large Load Diff

View File

@@ -125,18 +125,26 @@ Consider things that a sane encoder should not do as an error.
Use wallclock as timestamps.
@item avoid_negative_ts @var{integer} (@emph{output})
Shift timestamps to make them non-negative. A value of 1 enables shifting,
a value of 0 disables it, the default value of -1 enables shifting
when required by the target format.
Possible values:
@table @samp
@item make_non_negative
Shift timestamps to make them non-negative.
Also note that this affects only leading negative timestamps, and not
non-monotonic negative timestamps.
@item make_zero
Shift timestamps so that the first timestamp is 0.
@item auto (default)
Enables shifting when required by the target format.
@item disabled
Disables shifting of timestamp.
@end table
When shifting is enabled, all output timestamps are shifted by the
same amount. Audio, video, and subtitles desynching and relative
timestamp differences are preserved compared to how they would have
been without shifting.
Also note that this affects only leading negative timestamps, and not
non-monotonic negative timestamps.
@item skip_initial_bytes @var{integer} (@emph{input})
Set number of bytes to skip before reading header and frames if set to 1.
Default is 0.
@@ -148,6 +156,18 @@ Correct single timestamp overflows if set to 1. Default is 1.
Flush the underlying I/O stream after each packet. Default 1 enables it, and
has the effect of reducing the latency; 0 disables it and may slightly
increase performance in some cases.
@item output_ts_offset @var{offset} (@emph{output})
Set the output time offset.
@var{offset} must be a time duration specification,
see @ref{time duration syntax,,the Time duration section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
The offset is added by the muxer to the output timestamps.
Specifying a positive offset means that the corresponding streams are
delayed bt the time duration specified in @var{offset}. Default value
is @code{0} (meaning that no offset is applied).
@end table
@c man end FORMAT OPTIONS
@@ -183,6 +203,10 @@ The exact semantics of stream specifiers is defined by the
@code{avformat_match_stream_specifier()} function declared in the
@file{libavformat/avformat.h} header.
@ifclear config-writeonly
@include demuxers.texi
@end ifclear
@ifclear config-readonly
@include muxers.texi
@end ifclear
@include metadata.texi

View File

@@ -122,6 +122,20 @@ x264 is under the GNU Public License Version 2 or later
details), you must upgrade FFmpeg's license to GPL in order to use it.
@end float
@section x265
FFmpeg can make use of the x265 library for HEVC encoding.
Go to @url{http://x265.org/developers.html} and follow the instructions
for installing the library. Then pass @code{--enable-libx265} to configure
to enable it.
@float note
x265 is under the GNU Public License Version 2 or later
(see @url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html} for
details), you must upgrade FFmpeg's license to GPL in order to use it.
@end float
@section libilbc
iLBC is a narrowband speech codec that has been made freely available
@@ -148,6 +162,27 @@ libzvbi is licensed under the GNU General Public License Version 2 or later
you must upgrade FFmpeg's license to GPL in order to use it.
@end float
@section AviSynth
FFmpeg can read AviSynth scripts as input. To enable support, pass
@code{--enable-avisynth} to configure. The correct headers are
included in compat/avisynth/, which allows the user to enable support
without needing to search for these headers themselves.
For Windows, supported AviSynth variants are
@url{http://avisynth.nl, AviSynth 2.5 or 2.6} for 32-bit builds and
@url{http://avs-plus.net, AviSynth+ 0.1} for 32-bit and 64-bit builds.
For Linux and OS X, the supported AviSynth variant is
@url{https://github.com/avxsynth/avxsynth, AvxSynth}.
@float NOTE
AviSynth and AvxSynth are loaded dynamically. Distributors can build FFmpeg
with @code{--enable-avisynth}, and the binaries will work regardless of the
end user having AviSynth or AvxSynth installed - they'll only need to be
installed to use AviSynth scripts (obviously).
@end float
@chapter Supported File Formats, Codecs or Features
@@ -170,7 +205,7 @@ library:
@item American Laser Games MM @tab @tab X
@tab Multimedia format used in games like Mad Dog McCree.
@item 3GPP AMR @tab X @tab X
@item Amazing Studio Packed Animation File @tab @tab X
@item Amazing Studio Packed Animation File @tab @tab X
@tab Multimedia format used in game Heart Of Darkness.
@item Apple HTTP Live Streaming @tab @tab X
@item Artworx Data Format @tab @tab X
@@ -210,6 +245,7 @@ library:
@tab Multimedia format used by Delphine Software games.
@item CD+G @tab @tab X
@tab Video format used by CD+G karaoke disks
@item Phantom Cine @tab @tab X
@item Commodore CDXL @tab @tab X
@tab Amiga CD video format
@item Core Audio Format @tab X @tab X
@@ -223,6 +259,7 @@ library:
@item Deluxe Paint Animation @tab @tab X
@item DFA @tab @tab X
@tab This format is used in Chronomaster game
@item DSD Stream File (DSF) @tab @tab X
@item DV video @tab X @tab X
@item DXA @tab @tab X
@tab This format is used in the non-Windows version of the Feeble Files
@@ -249,6 +286,8 @@ library:
@item GXF @tab X @tab X
@tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
playout servers.
@item HNM @tab @tab X
@tab Only version 4 supported, used in some games from Cryo Interactive
@item iCEDraw File @tab @tab X
@item ICO @tab X @tab X
@tab Microsoft Windows ICO
@@ -271,9 +310,11 @@ library:
@tab Used by Linux Media Labs MPEG-4 PCI boards
@item LOAS @tab @tab X
@tab contains LATM multiplexed AAC audio
@item LRC @tab X @tab X
@item LVF @tab @tab X
@item LXF @tab @tab X
@tab VR native stream format, used by Leitch/Harris' video servers.
@item Magic Lantern Video (MLV) @tab @tab X
@item Matroska @tab X @tab X
@item Matroska audio @tab X @tab
@item FFmpeg metadata @tab X @tab X
@@ -299,6 +340,8 @@ library:
@tab also known as DVB Transport Stream
@item MPEG-4 @tab X @tab X
@tab MPEG-4 is a variant of QuickTime.
@item Mirillis FIC video @tab @tab X
@tab No cursor rendering.
@item MIME multipart JPEG @tab X @tab
@item MSN TCP webcam @tab @tab X
@tab Used by MSN Messenger webcam streams.
@@ -338,6 +381,7 @@ library:
@item raw H.261 @tab X @tab X
@item raw H.263 @tab X @tab X
@item raw H.264 @tab X @tab X
@item raw HEVC @tab X @tab X
@item raw Ingenient MJPEG @tab @tab X
@item raw MJPEG @tab X @tab X
@item raw MLP @tab @tab X
@@ -448,11 +492,13 @@ following image formats are supported:
@item Name @tab Encoding @tab Decoding @tab Comments
@item .Y.U.V @tab X @tab X
@tab one raw file per component
@item Alias PIX @tab X @tab X
@tab Alias/Wavefront PIX image format
@item animated GIF @tab X @tab X
@item BMP @tab X @tab X
@tab Microsoft BMP image
@item PIX @tab @tab X
@tab PIX is an image format used in the Argonaut BRender engine.
@item BRender PIX @tab @tab X
@tab Argonaut BRender 3D engine image format.
@item DPX @tab X @tab X
@tab Digital Picture Exchange
@item EXR @tab @tab X
@@ -488,8 +534,8 @@ following image formats are supported:
@tab YUV, JPEG and some extension is not supported yet.
@item Truevision Targa @tab X @tab X
@tab Targa (.TGA) image format
@item WebP @tab @tab X
@tab WebP image format
@item WebP @tab E @tab X
@tab WebP image format, encoding supported through external library libwebp
@item XBM @tab X @tab X
@tab X BitMap image format
@item XFace @tab X @tab X
@@ -607,6 +653,9 @@ following image formats are supported:
@item H.263+ / H.263-1998 / H.263 version 2 @tab X @tab X
@item H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 @tab E @tab X
@tab encoding supported through external library libx264
@item HEVC @tab X @tab X
@tab encoding supported through the external library libx265
@item HNM version 4 @tab @tab X
@item HuffYUV @tab X @tab X
@item HuffYUV FFmpeg variant @tab X @tab X
@item IBM Ultimotion @tab @tab X
@@ -637,8 +686,8 @@ following image formats are supported:
@item LCL (LossLess Codec Library) MSZH @tab @tab X
@item LCL (LossLess Codec Library) ZLIB @tab E @tab E
@item LOCO @tab @tab X
@item LucasArts Smush @tab @tab X
@tab Used in LucasArts games.
@item LucasArts SANM/Smush @tab @tab X
@tab Used in LucasArts games / SMUSH animations.
@item lossless MJPEG @tab X @tab X
@item Microsoft ATC Screen @tab @tab X
@tab Also known as Microsoft Screen 3.
@@ -658,7 +707,6 @@ following image formats are supported:
@item Mobotix MxPEG video @tab @tab X
@item Motion Pixels video @tab @tab X
@item MPEG-1 video @tab X @tab X
@item MPEG-1/2 video XvMC (X-Video Motion Compensation) @tab @tab X
@item MPEG-2 video @tab X @tab X
@item MPEG-4 part 2 @tab X @tab X
@tab libxvidcore can be used alternatively for encoding.
@@ -674,6 +722,8 @@ following image formats are supported:
@tab fourcc: VP50
@item On2 VP6 @tab @tab X
@tab fourcc: VP60,VP61,VP62
@item On2 VP7 @tab @tab X
@tab fourcc: VP70,VP71
@item VP8 @tab E @tab X
@tab fourcc: VP80, encoding supported through external library libvpx
@item VP9 @tab E @tab X
@@ -703,11 +753,11 @@ following image formats are supported:
@tab Texture dictionaries used by the Renderware Engine.
@item RL2 video @tab @tab X
@tab used in some games by Entertainment Software Partners
@item SGI RLE 8-bit @tab @tab X
@item Sierra VMD video @tab @tab X
@tab Used in Sierra VMD files.
@item Silicon Graphics Motion Video Compressor 1 (MVC1) @tab @tab X
@item Silicon Graphics Motion Video Compressor 2 (MVC2) @tab @tab X
@item Silicon Graphics RLE 8-bit video @tab @tab X
@item Smacker video @tab @tab X
@tab Video encoding used in Smacker.
@item SMPTE VC-1 @tab @tab X
@@ -773,7 +823,7 @@ following image formats are supported:
@tab encoding supported through external library libaacplus
@item AAC @tab E @tab X
@tab encoding supported through external library libfaac and libvo-aacenc
@item AC-3 @tab IX @tab X
@item AC-3 @tab IX @tab IX
@item ADPCM 4X Movie @tab @tab X
@item ADPCM CDROM XA @tab @tab X
@item ADPCM Creative Technology @tab @tab X
@@ -817,6 +867,8 @@ following image formats are supported:
@item ADPCM Sound Blaster Pro 2-bit @tab @tab X
@item ADPCM Sound Blaster Pro 2.6-bit @tab @tab X
@item ADPCM Sound Blaster Pro 4-bit @tab @tab X
@item ADPCM VIMA
@tab Used in LucasArts SMUSH animations.
@item ADPCM Westwood Studios IMA @tab @tab X
@tab Used in Westwood Studios games like Command and Conquer.
@item ADPCM Yamaha @tab X @tab X
@@ -829,6 +881,7 @@ following image formats are supported:
@tab QuickTime fourcc 'alac'
@item ATRAC1 @tab @tab X
@item ATRAC3 @tab @tab X
@item ATRAC3+ @tab @tab X
@item Bink Audio @tab @tab X
@tab Used in Bink and Smacker files in many games.
@item CELT @tab @tab E
@@ -848,6 +901,10 @@ following image formats are supported:
@item DPCM Sol @tab @tab X
@item DPCM Xan @tab @tab X
@tab Used in Origin's Wing Commander IV AVI files.
@item DSD (Direct Stream Digitial), least significant bit first @tab @tab X
@item DSD (Direct Stream Digitial), most significant bit first @tab @tab X
@item DSD (Direct Stream Digitial), least significant bit first, planar @tab @tab X
@item DSD (Direct Stream Digitial), most significant bit first, planar @tab @tab X
@item DSP Group TrueSpeech @tab @tab X
@item DV audio @tab @tab X
@item Enhanced AC-3 @tab X @tab X
@@ -870,13 +927,14 @@ following image formats are supported:
@item Monkey's Audio @tab @tab X
@item MP1 (MPEG audio layer 1) @tab @tab IX
@item MP2 (MPEG audio layer 2) @tab IX @tab IX
@tab libtwolame can be used alternatively for encoding.
@tab encoding supported also through external library TwoLAME
@item MP3 (MPEG audio layer 3) @tab E @tab IX
@tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
@item MPEG-4 Audio Lossless Coding (ALS) @tab @tab X
@item Musepack SV7 @tab @tab X
@item Musepack SV8 @tab @tab X
@item Nellymoser Asao @tab X @tab X
@item On2 AVC (Audio for Video Codec) @tab @tab X
@item Opus @tab E @tab E
@tab supported through external library libopus
@item PCM A-law @tab X @tab X
@@ -939,7 +997,6 @@ following image formats are supported:
@item Vorbis @tab E @tab X
@tab A native but very primitive encoder exists.
@item Voxware MetaSound @tab @tab X
@tab imperfect and incomplete support
@item WavPack @tab X @tab X
@item Westwood Audio (SND1) @tab @tab X
@item Windows Media Audio 1 @tab X @tab X
@@ -980,7 +1037,7 @@ performance on systems without hardware floating point support).
@item TED Talks captions @tab @tab X @tab @tab X
@item VobSub (IDX+SUB) @tab @tab X @tab @tab X
@item VPlayer @tab @tab X @tab @tab X
@item WebVTT @tab X @tab X @tab @tab X
@item WebVTT @tab X @tab X @tab X @tab X
@item XSUB @tab @tab @tab X @tab X
@end multitable
@@ -993,6 +1050,7 @@ performance on systems without hardware floating point support).
@multitable @columnfractions .4 .1
@item Name @tab Support
@item file @tab X
@item FTP @tab X
@item Gopher @tab X
@item HLS @tab X
@item HTTP @tab X
@@ -1007,7 +1065,9 @@ performance on systems without hardware floating point support).
@item RTMPTE @tab X
@item RTMPTS @tab X
@item RTP @tab X
@item SAMBA @tab E
@item SCTP @tab X
@item SFTP @tab E
@item TCP @tab X
@item TLS @tab X
@item UDP @tab X
@@ -1027,17 +1087,19 @@ performance on systems without hardware floating point support).
@item caca @tab @tab X
@item DV1394 @tab X @tab
@item Lavfi virtual device @tab X @tab
@item Linux framebuffer @tab X @tab
@item Linux framebuffer @tab X @tab X
@item JACK @tab X @tab
@item LIBCDIO @tab X
@item LIBDC1394 @tab X @tab
@item OpenAL @tab X
@item OpenGL @tab @tab X
@item OSS @tab X @tab X
@item Pulseaudio @tab X @tab
@item PulseAudio @tab X @tab X
@item SDL @tab @tab X
@item Video4Linux2 @tab X @tab X
@item VfW capture @tab X @tab
@item X11 grabbing @tab X @tab
@item Win32 grabbing @tab X @tab
@end multitable
@code{X} means that input/output is supported.

View File

@@ -299,7 +299,7 @@ the current branch history.
git commit --amend
@end example
allows to amend the last commit details quickly.
allows one to amend the last commit details quickly.
@example
git rebase -i origin/master

View File

@@ -1,273 +0,0 @@
About Git write access:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Before everything else, you should know how to use GIT properly.
Luckily Git comes with excellent documentation.
git --help
man git
shows you the available subcommands,
git <command> --help
man git-<command>
shows information about the subcommand <command>.
The most comprehensive manual is the website Git Reference
http://gitref.org/
For more information about the Git project, visit
http://git-scm.com/
Consult these resources whenever you have problems, they are quite exhaustive.
You do not need a special username or password.
All you need is to provide a ssh public key to the Git server admin.
What follows now is a basic introduction to Git and some FFmpeg-specific
guidelines. Read it at least once, if you are granted commit privileges to the
FFmpeg project you are expected to be familiar with these rules.
I. BASICS:
==========
0. Get GIT:
Most distributions have a git package, if not
You can get git from http://git-scm.com/
1. Cloning the source tree:
git clone git://source.ffmpeg.org/ffmpeg <target>
This will put the FFmpeg sources into the directory <target>.
git clone git@source.ffmpeg.org:ffmpeg <target>
This will put the FFmpeg sources into the directory <target> and let
you push back your changes to the remote repository.
2. Updating the source tree to the latest revision:
git pull (--ff-only)
pulls in the latest changes from the tracked branch. The tracked branch
can be remote. By default the master branch tracks the branch master in
the remote origin.
Caveat: Since merge commits are forbidden at least for the initial
months of git --ff-only or --rebase (see below) are recommended.
--ff-only will fail and not create merge commits if your branch
has diverged (has a different history) from the tracked branch.
2.a Rebasing your local branches:
git pull --rebase
fetches the changes from the main repository and replays your local commits
over it. This is required to keep all your local changes at the top of
FFmpeg's master tree. The master tree will reject pushes with merge commits.
3. Adding/removing files/directories:
git add [-A] <filename/dirname>
git rm [-r] <filename/dirname>
GIT needs to get notified of all changes you make to your working
directory that makes files appear or disappear.
Line moves across files are automatically tracked.
4. Showing modifications:
git diff <filename(s)>
will show all local modifications in your working directory as unified diff.
5. Inspecting the changelog:
git log <filename(s)>
You may also use the graphical tools like gitview or gitk or the web
interface available at http://source.ffmpeg.org
6. Checking source tree status:
git status
detects all the changes you made and lists what actions will be taken in case
of a commit (additions, modifications, deletions, etc.).
7. Committing:
git diff --check
to double check your changes before committing them to avoid trouble later
on. All experienced developers do this on each and every commit, no matter
how small.
Every one of them has been saved from looking like a fool by this many times.
It's very easy for stray debug output or cosmetic modifications to slip in,
please avoid problems through this extra level of scrutiny.
For cosmetics-only commits you should get (almost) empty output from
git diff -w -b <filename(s)>
Also check the output of
git status
to make sure you don't have untracked files or deletions.
git add [-i|-p|-A] <filenames/dirnames>
Make sure you have told git your name and email address, e.g. by running
git config --global user.name "My Name"
git config --global user.email my@email.invalid
(--global to set the global configuration for all your git checkouts).
Git will select the changes to the files for commit. Optionally you can use
the interactive or the patch mode to select hunk by hunk what should be
added to the commit.
git commit
Git will commit the selected changes to your current local branch.
You will be prompted for a log message in an editor, which is either
set in your personal configuration file through
git config core.editor
or set by one of the following environment variables:
GIT_EDITOR, VISUAL or EDITOR.
Log messages should be concise but descriptive. Explain why you made a change,
what you did will be obvious from the changes themselves most of the time.
Saying just "bug fix" or "10l" is bad. Remember that people of varying skill
levels look at and educate themselves while reading through your code. Don't
include filenames in log messages, Git provides that information.
Possibly make the commit message have a terse, descriptive first line, an
empty line and then a full description. The first line will be used to name
the patch by git format-patch.
8. Renaming/moving/copying files or contents of files:
Git automatically tracks such changes, making those normal commits.
mv/cp path/file otherpath/otherfile
git add [-A] .
git commit
Do not move, rename or copy files of which you are not the maintainer without
discussing it on the mailing list first!
9. Reverting broken commits
git revert <commit>
git revert will generate a revert commit. This will not make the faulty
commit disappear from the history.
git reset <commit>
git reset will uncommit the changes till <commit> rewriting the current
branch history.
git commit --amend
allows to amend the last commit details quickly.
git rebase -i origin/master
will replay local commits over the main repository allowing to edit,
merge or remove some of them in the process.
Note that the reset, commit --amend and rebase rewrite history, so you
should use them ONLY on your local or topic branches.
The main repository will reject those changes.
10. Preparing a patchset.
git format-patch <commit> [-o directory]
will generate a set of patches for each commit between <commit> and
current HEAD. E.g.
git format-patch origin/master
will generate patches for all commits on current branch which are not
present in upstream.
A useful shortcut is also
git format-patch -n
which will generate patches from last n commits.
By default the patches are created in the current directory.
11. Sending patches for review
git send-email <commit list|directory>
will send the patches created by git format-patch or directly generates
them. All the email fields can be configured in the global/local
configuration or overridden by command line.
Note that this tool must often be installed separately (e.g. git-email
package on Debian-based distros).
12. Pushing changes to remote trees
git push
Will push the changes to the default remote (origin).
Git will prevent you from pushing changes if the local and remote trees are
out of sync. Refer to 2 and 2.a to sync the local tree.
git remote add <name> <url>
Will add additional remote with a name reference, it is useful if you want
to push your local branch for review on a remote host.
git push <remote> <refspec>
Will push the changes to the remote repository. Omitting refspec makes git
push update all the remote branches matching the local ones.
13. Finding a specific svn revision
Since version 1.7.1 git supports ':/foo' syntax for specifying commits
based on a regular expression. see man gitrevisions
git show :/'as revision 23456'
will show the svn changeset r23456. With older git versions searching in
the git log output is the easiest option (especially if a pager with
search capabilities is used).
This commit can be checked out with
git checkout -b svn_23456 :/'as revision 23456'
or for git < 1.7.1 with
git checkout -b svn_23456 $SHA1
where $SHA1 is the commit SHA1 from the 'git log' output.
Contact the project admins <root at ffmpeg dot org> if you have technical
problems with the GIT server.

View File

@@ -13,8 +13,8 @@ You can disable all the input devices using the configure option
option "--enable-indev=@var{INDEV}", or you can disable a particular
input device using the option "--disable-indev=@var{INDEV}".
The option "-formats" of the ff* tools will display the list of
supported input devices (amongst the demuxers).
The option "-devices" of the ff* tools will display the list of
supported input devices.
A description of the currently available input devices follows.
@@ -51,6 +51,41 @@ ffmpeg -f alsa -i hw:0 alsaout.wav
For more information see:
@url{http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html}
@section avfoundation
AVFoundation input device.
AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS.
The older QTKit framework has been marked deprecated since OSX version 10.7.
The filename passed as input is parsed to contain either a device name or index.
The device index can also be given by using -video_device_index.
A given device index will override any given device name.
If the desired device consists of numbers only, use -video_device_index to identify it.
The default device will be chosen if an empty string or the device name "default" is given.
The available devices can be enumerated by using -list_devices.
The pixel format can be set using -pixel_format.
Available formats:
monob, rgb555be, rgb555le, rgb565be, rgb565le, rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16, yuv422p10, yuv444p10,
yuv420p, nv12, yuyv422, gray
@example
ffmpeg -f avfoundation -i "0" out.mpg
@end example
@example
ffmpeg -f avfoundation -video_device_index 0 -i "" out.mpg
@end example
@example
ffmpeg -f avfoundation -pixel_format bgr0 -i "default" out.mpg
@end example
@example
ffmpeg -f avfoundation -list_devices true -i ""
@end example
@section bktr
BSD video input device.
@@ -192,6 +227,81 @@ ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
@section gdigrab
Win32 GDI-based screen capture device.
This device allows you to capture a region of the display on Windows.
There are two options for the input filename:
@example
desktop
@end example
or
@example
title=@var{window_title}
@end example
The first option will capture the entire desktop, or a fixed region of the
desktop. The second option will instead capture the contents of a single
window, regardless of its position on the screen.
For example, to grab the entire desktop using @command{ffmpeg}:
@example
ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
@end example
Grab a 640x480 region at position @code{10,20}:
@example
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
@end example
Grab the contents of the window named "Calculator"
@example
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
@end example
@subsection Options
@table @option
@item draw_mouse
Specify whether to draw the mouse pointer. Use the value @code{0} to
not draw the pointer. Default value is @code{1}.
@item framerate
Set the grabbing frame rate. Default value is @code{ntsc},
corresponding to a frame rate of @code{30000/1001}.
@item show_region
Show grabbed region on screen.
If @var{show_region} is specified with @code{1}, then the grabbing
region will be indicated on screen. With this option, it is easy to
know what is being grabbed if only a portion of the screen is grabbed.
Note that @var{show_region} is incompatible with grabbing the contents
of a single window.
For example:
@example
ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
@end example
@item video_size
Set the video frame size. The default is to capture the full screen if @file{desktop} is selected, or the full window size if @file{title=@var{window_title}} is selected.
@item offset_x
When capturing a region with @var{video_size}, set the distance from the left edge of the screen or desktop.
Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned to the left of your primary monitor, you will need to use a negative @var{offset_x} value to move the region to that monitor.
@item offset_y
When capturing a region with @var{video_size}, set the distance from the top edge of the screen or desktop.
Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned above your primary monitor, you will need to use a negative @var{offset_y} value to move the region to that monitor.
@end table
@section iec61883
FireWire DV/HDV input device using libiec61883.
@@ -373,6 +483,21 @@ ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
@end itemize
@section libcdio
Audio-CD input device based on cdio.
To enable this input device during configuration you need libcdio
installed on your system.
This device allows playing and grabbing from an Audio-CD.
For example to copy with @command{ffmpeg} the entire Audio-CD in /dev/sr0,
you may run the command:
@example
ffmpeg -f libcdio -i /dev/sr0 cd.wav
@end example
@section libdc1394
IIDC1394 input device, based on libdc1394 and libraw1394.
@@ -409,7 +534,7 @@ OpenAL is part of Core Audio, the official Mac OS X Audio interface.
See @url{http://developer.apple.com/technologies/mac/audio-and-video.html}
@end table
This device allows to capture from an audio input device handled
This device allows one to capture from an audio input device handled
through OpenAL.
You need to specify the name of the device to capture in the provided
@@ -531,6 +656,33 @@ Record a stream from default device:
ffmpeg -f pulse -i default /tmp/pulse.wav
@end example
@section qtkit
QTKit input device.
The filename passed as input is parsed to contain either a device name or index.
The device index can also be given by using -video_device_index.
A given device index will override any given device name.
If the desired device consists of numbers only, use -video_device_index to identify it.
The default device will be chosen if an empty string or the device name "default" is given.
The available devices can be enumerated by using -list_devices.
@example
ffmpeg -f qtkit -i "0" out.mpg
@end example
@example
ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg
@end example
@example
ffmpeg -f qtkit -i "default" out.mpg
@end example
@example
ffmpeg -f qtkit -list_devices true -i ""
@end example
@section sndio
sndio input device.
@@ -617,7 +769,7 @@ Select the pixel format (only valid for raw video input).
@item input_format
Set the preferred pixel format (for raw video) or a codec name.
This option allows to select the input format, when several are
This option allows one to select the input format, when several are
available.
@item framerate
@@ -678,7 +830,7 @@ other filename will be interpreted as device number 0.
X11 video input device.
This device allows to capture a region of an X11 display.
This device allows one to capture a region of an X11 display.
The filename passed as input has the syntax:
@example

View File

@@ -16,7 +16,25 @@ The libavutil library is a utility library to aid portable
multimedia programming. It contains safe portable string functions,
random number generators, data structures, additional mathematics
functions, cryptography and multimedia related functionality (like
enumerations for pixel and sample formats).
enumerations for pixel and sample formats). It is not a library for
code needed by both libavcodec and libavformat.
The goals for this library is to be:
@table @strong
@item Modular
It should have few interdependencies and the possibility of disabling individual
parts during @command{./configure}.
@item Small
Both sources and objects should be small.
@item Efficient
It should have low CPU and memory usage.
@item Useful
It should avoid useless features that almost no one needs.
@end table
@c man end DESCRIPTION

View File

@@ -23,6 +23,8 @@ A description of some of the currently available muxers follows.
Audio Interchange File Format muxer.
@subsection Options
It accepts the following options:
@table @option
@@ -49,6 +51,10 @@ The output of the muxer consists of a single line of the form:
CRC=0x@var{CRC}, where @var{CRC} is a hexadecimal number 0-padded to
8 digits containing the CRC for all the decoded input frames.
See also the @ref{framecrc} muxer.
@subsection Examples
For example to compute the CRC of the input, and store it in the file
@file{out.crc}:
@example
@@ -68,8 +74,6 @@ and the input video converted to MPEG-2 video, use the command:
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
@end example
See also the @ref{framecrc} muxer.
@anchor{framecrc}
@section framecrc
@@ -89,6 +93,8 @@ packet of the form:
@var{CRC} is a hexadecimal number 0-padded to 8 digits containing the
CRC of the packet.
@subsection Examples
For example to compute the CRC of the audio and video frames in
@file{INPUT}, converted to raw audio and video packets, and store it
in the file @file{out.crc}:
@@ -132,6 +138,8 @@ packet of the form:
@var{MD5} is a hexadecimal number representing the computed MD5 hash
for the packet.
@subsection Examples
For example to compute the MD5 of the audio and video frames in
@file{INPUT}, converted to raw audio and video packets, and store it
in the file @file{out.md5}:
@@ -146,30 +154,93 @@ ffmpeg -i INPUT -f framemd5 -
See also the @ref{md5} muxer.
@anchor{gif}
@section gif
Animated GIF muxer.
It accepts the following options:
@table @option
@item loop
Set the number of times to loop the output. Use @code{-1} for no loop, @code{0}
for looping indefinitely (default).
@item final_delay
Force the delay (expressed in centiseconds) after the last frame. Each frame
ends with a delay until the next frame. The default is @code{-1}, which is a
special value to tell the muxer to re-use the previous delay. In case of a
loop, you might want to customize this value to mark a pause for instance.
@end table
For example, to encode a gif looping 10 times, with a 5 seconds delay between
the loops:
@example
ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
@end example
Note 1: if you wish to extract the frames in separate GIF files, you need to
force the @ref{image2} muxer:
@example
ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
@end example
Note 2: the GIF format has a very small time base: the delay between two frames
can not be smaller than one centi second.
@anchor{hls}
@section hls
Apple HTTP Live Streaming muxer that segments MPEG-TS according to
the HTTP Live Streaming specification.
the HTTP Live Streaming (HLS) specification.
It creates a playlist file and numbered segment files. The output
filename specifies the playlist filename; the segment filenames
receive the same basename as the playlist, a sequential number and
a .ts extension.
For example, to convert an input file with @command{ffmpeg}:
@example
ffmpeg -i in.nut out.m3u8
@end example
See also the @ref{segment} muxer, which provides a more generic and
flexible implementation of a segmenter, and can be used to perform HLS
segmentation.
@subsection Options
This muxer supports the following options:
@table @option
@item -hls_time @var{seconds}
Set the segment length in seconds.
@item -hls_list_size @var{size}
Set the maximum number of playlist entries.
@item -hls_wrap @var{wrap}
Set the number after which index wraps.
@item -start_number @var{number}
Start the sequence from @var{number}.
@item hls_time @var{seconds}
Set the segment length in seconds. Default value is 2.
@item hls_list_size @var{size}
Set the maximum number of playlist entries. If set to 0 the list file
will contain all the segments. Default value is 5.
@item hls_wrap @var{wrap}
Set the number after which the segment filename number (the number
specified in each segment file) wraps. If set to 0 the number will be
never wrapped. Default value is 0.
This option is useful to avoid to fill the disk with many segment
files, and limits the maximum number of segment files written to disk
to @var{wrap}.
@item start_number @var{number}
Start the playlist sequence number from @var{number}. Default value is
0.
@item hls_base_url @var{baseurl}
Append @var{baseurl} to every entry in the playlist.
Useful to generate playlists with absolute paths.
Note that the playlist sequence number must be unique for each segment
and it is not to be confused with the segment filename sequence number
which can be cyclic, for example if the @option{wrap} option is
specified.
@end table
@anchor{ico}
@@ -235,6 +306,8 @@ The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
form @file{img%-1.jpg}, @file{img%-2.jpg}, ..., @file{img%-10.jpg},
etc.
@subsection Examples
The following example shows how to use @command{ffmpeg} for creating a
sequence of files @file{img-001.jpeg}, @file{img-002.jpeg}, ...,
taking one image every second from the input video:
@@ -257,16 +330,32 @@ Note also that the pattern must not necessarily contain "%d" or
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
@end example
The @option{strftime} option allows you to expand the filename with
date and time information. Check the documentation of
the @code{strftime()} function for the syntax.
For example to generate image files from the @code{strftime()}
"%Y-%m-%d_%H-%M-%S" pattern, the following @command{ffmpeg} command
can be used:
@example
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
@end example
@subsection Options
@table @option
@item start_number @var{number}
Start the sequence from @var{number}. Default value is 1. Must be a
non-negative number.
@item start_number
Start the sequence from the specified number. Default value is 1. Must
be a non-negative number.
@item -update @var{number}
If @var{number} is nonzero, the filename will always be interpreted as just a
filename, not a pattern, and this file will be continuously overwritten with new
images.
@item update
If set to 1, the filename will always be interpreted as just a
filename, not a pattern, and the corresponding file will be continuously
overwritten with new images. Default value is 0.
@item strftime
If set to 1, expand the filename with date and time information from
@code{strftime()}. Default value is 0.
@end table
The image muxer supports the .Y.U.V image file format. This format is
@@ -281,25 +370,27 @@ Matroska container muxer.
This muxer implements the matroska and webm container specs.
@subsection Metadata
The recognized metadata settings in this muxer are:
@table @option
@item title
Set title name provided to a single track.
@item title=@var{title name}
Name provided to a single track
@end table
@item language
Specify the language of the track in the Matroska languages form.
@table @option
The language can be either the 3 letters bibliographic ISO-639-2 (ISO
639-2/B) form (like "fre" for French), or a language code mixed with a
country code for specialities in languages (like "fre-ca" for Canadian
French).
@item language=@var{language name}
Specifies the language of the track in the Matroska languages form
@end table
@item stereo_mode
Set stereo 3D video layout of two views in a single video track.
@table @option
@item stereo_mode=@var{mode}
Stereo 3D video layout of two views in a single video track
@table @option
The following values are recognized:
@table @samp
@item mono
video is not stereo
@item left_right
@@ -338,10 +429,11 @@ For example a 3D WebM clip can be created using the following command line:
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
@end example
@subsection Options
This muxer supports the following options:
@table @option
@item reserve_index_space
By default, this muxer writes the index for seeking (called cues in Matroska
terms) at the end of the file, because it cannot know in advance how much space
@@ -356,7 +448,6 @@ for most use cases should be about 50kB per hour of video.
Note that cues are only written if the output is seekable and this option will
have no effect if it is not.
@end table
@anchor{md5}
@@ -386,7 +477,9 @@ ffmpeg -i INPUT -f md5 -
See also the @ref{framemd5} muxer.
@section MOV/MP4/ISMV
@section mov, mp4, ismv
MOV/MP4/ISMV (Smooth Streaming) muxer.
The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4
file has all the metadata about all packets stored in one location
@@ -402,6 +495,8 @@ very long files (since writing normal MOV/MP4 files stores info about
every single packet in memory until the file is closed). The downside
is that it is less compatible with other applications.
@subsection Options
Fragmentation is enabled by setting one of the AVOptions that define
how to cut the file into fragments:
@@ -458,6 +553,8 @@ as fragmented output, thus it is not enabled by default.
Add RTP hinting tracks to the output file.
@end table
@subsection Example
Smooth Streaming content can be pushed in real time to a publishing
point on IIS with this muxer. Example:
@example
@@ -468,12 +565,15 @@ ffmpeg -re @var{<normal input/transcoding options>} -movflags isml+frag_keyframe
The MP3 muxer writes a raw MP3 stream with an ID3v2 header at the beginning and
optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the
@code{id3v2_version} option controls which one is used. The legacy ID3v1 tag is
not written by default, but may be enabled with the @code{write_id3v1} option.
@code{id3v2_version} option controls which one is used. Setting
@code{id3v2_version} to 0 will disable the ID3v2 header completely. The legacy
ID3v1 tag is not written by default, but may be enabled with the
@code{write_id3v1} option.
For seekable output the muxer also writes a Xing frame at the beginning, which
contains the number of frames in the file. It is useful for computing duration
of VBR files.
The muxer may also write a Xing frame at the beginning, which contains the
number of frames in the file. It is useful for computing duration of VBR files.
The Xing frame is written if the output stream is seekable and if the
@code{write_xing} option is set to 1 (the default).
The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures
are supplied to the muxer in form of a video stream with a single packet. There
@@ -500,12 +600,24 @@ ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
@end example
Write a "clean" MP3 without any extra features:
@example
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
@end example
@section mpegts
MPEG transport stream muxer.
This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
The recognized metadata settings in mpegts muxer are @code{service_provider}
and @code{service_name}. If they are not set the default for
@code{service_provider} is "FFmpeg" and the default for
@code{service_name} is "Service01".
@subsection Options
The muxer options are:
@table @option
@@ -525,7 +637,10 @@ Set the first PID for data packets (default 0x0100, max 0x0f00).
@item -mpegts_m2ts_mode @var{number}
Enable m2ts mode if set to 1. Default value is -1 which disables m2ts mode.
@item -muxrate @var{number}
Set muxrate.
Set a constant muxrate (default VBR).
@item -pcr_period @var{numer}
Override the default PCR retransmission time (default 20ms), ignored
if variable muxrate is selected.
@item -pes_payload_size @var{number}
Set minimum PES packet payload in bytes.
@item -mpegts_flags @var{flags}
@@ -558,10 +673,7 @@ Reemit PAT/PMT before writing the next packet.
Use LATM packetization for AAC.
@end table
The recognized metadata settings in mpegts muxer are @code{service_provider}
and @code{service_name}. If they are not set the default for
@code{service_provider} is "FFmpeg" and the default for
@code{service_name} is "Service01".
@subsection Example
@example
ffmpeg -i file.mpg -c copy \
@@ -597,6 +709,30 @@ Alternatively you can write the command as:
ffmpeg -benchmark -i INPUT -f null -
@end example
@section nut
@table @option
@item -syncpoints @var{flags}
Change the syncpoint usage in nut:
@table @option
@item @var{default} use the normal low-overhead seeking aids.
@item @var{none} do not use the syncpoints at all, reducing the overhead but making the stream non-seekable;
Use of this option is not recommended, as the resulting files are very damage
sensitive and seeking is not possible. Also in general the overhead from
syncpoints is negligible. Note, -@code{write_index} 0 can be used to disable
all growing data tables, allowing to mux endless streams with limited memory
and wihout these disadvantages.
@item @var{timestamped} extend the syncpoint with a wallclock field.
@end table
The @var{none} and @var{timestamped} flags are experimental.
@item -write_index @var{bool}
Write index at the end, the default is to write an index.
@end table
@example
ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor
@end example
@section ogg
Ogg container muxer.
@@ -612,11 +748,12 @@ situations, giving a small seek granularity at the cost of additional container
overhead.
@end table
@anchor{segment}
@section segment, stream_segment, ssegment
Basic stream segmenter.
The segmenter muxer outputs streams to a number of separate files of nearly
This muxer outputs streams to a number of separate files of nearly
fixed duration. Output filename pattern can be set in a fashion similar to
@ref{image2}.
@@ -638,14 +775,21 @@ The segment muxer works best with a single constant frame rate video.
Optionally it can generate a list of the created segments, by setting
the option @var{segment_list}. The list type is specified by the
@var{segment_list_type} option.
@var{segment_list_type} option. The entry filenames in the segment
list are set by default to the basename of the corresponding segment
files.
See also the @ref{hls} muxer, which provides a more specific
implementation for HLS segmentation.
@subsection Options
The segment muxer supports the following options:
@table @option
@item reference_stream @var{specifier}
Set the reference stream, as specified by the string @var{specifier}.
If @var{specifier} is set to @code{auto}, the reference is choosen
If @var{specifier} is set to @code{auto}, the reference is chosen
automatically. Otherwise it must be a stream specifier (see the ``Stream
specifiers'' chapter in the ffmpeg manual) which specifies the
reference stream. The default value is @code{auto}.
@@ -670,15 +814,21 @@ Allow caching (only affects M3U8 list files).
Allow live-friendly file generation.
@end table
Default value is @code{samp}.
@item segment_list_type @var{type}
Select the listing format.
@table @option
@item @var{flat} use a simple flat list of entries.
@item @var{hls} use a m3u8-like structure.
@end table
@item segment_list_size @var{size}
Update the list file so that it contains at most the last @var{size}
segments. If 0 the list file will contain all the segments. Default
value is 0.
@item segment_list_type @var{type}
Specify the format for the segment list file.
@item segment_list_entry_prefix @var{prefix}
Prepend @var{prefix} to each entry. Useful to generate absolute paths.
By default no prefix is applied.
The following values are recognized:
@table @samp
@@ -729,6 +879,16 @@ Note that splitting may not be accurate, unless you force the
reference stream key-frames at the given time. See the introductory
notice and the examples below.
@item segment_atclocktime @var{1|0}
If set to "1" split at regular clock time intervals starting from 00:00
o'clock. The @var{time} value specified in @option{segment_time} is
used for setting the length of the splitting interval.
For example with @option{segment_time} set to "900" this makes it possible
to create files at 12:00 o'clock, 12:15, 12:30, etc.
Default value is "0".
@item segment_time_delta @var{delta}
Specify the accuracy time when selecting the start time for a
segment, expressed as a duration specification. Default value is "0".
@@ -748,7 +908,7 @@ In particular may be used in combination with the @file{ffmpeg} option
@var{force_key_frames} may not be set accurately because of rounding
issues, with the consequence that a key frame time may result set just
before the specified time. For constant frame rate videos a value of
1/2*@var{frame_rate} should address the worst case mismatch between
1/(2*@var{frame_rate}) should address the worst case mismatch between
the specified time and the time set by @var{force_key_frames}.
@item segment_times @var{times}
@@ -834,6 +994,28 @@ ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
@end example
@end itemize
@section smoothstreaming
Smooth Streaming muxer generates a set of files (Manifest, chunks) suitable for serving with conventional web server.
@table @option
@item window_size
Specify the number of fragments kept in the manifest. Default 0 (keep all).
@item extra_window_size
Specify the number of fragments kept outside of the manifest before removing from disk. Default 5.
@item lookahead_count
Specify the number of lookahead fragments. Default 2.
@item min_frag_duration
Specify the minimum fragment duration (in microseconds). Default 5000000.
@item remove_at_exit
Specify whether to remove all fragments when finished. Default 0 (do not remove).
@end table
@section tee
The tee muxer can be used to write the same data to several files or any
@@ -849,8 +1031,8 @@ to feed the same packets to several muxers directly.
The slave outputs are specified in the file name given to the muxer,
separated by '|'. If any of the slave name contains the '|' separator,
leading or trailing spaces or any special character, it must be
escaped (see the ``Quoting and escaping'' section in the ffmpeg-utils
manual).
escaped (see @ref{quoting_and_escaping,,the "Quoting and escaping"
section in the ffmpeg-utils(1) manual,ffmpeg-utils}).
Muxer options can be specified for each slave by prepending them as a list of
@var{key}=@var{value} pairs separated by ':', between square brackets. If
@@ -865,10 +1047,13 @@ output name suffix.
@item bsfs[/@var{spec}]
Specify a list of bitstream filters to apply to the specified
output. It is possible to specify to which streams a given bitstream
filter applies, by appending a stream specifier to the option
separated by @code{/}. If the stream specifier is not specified, the
bistream filters will be applied to all streams in the output.
output.
It is possible to specify to which streams a given bitstream filter
applies, by appending a stream specifier to the option separated by
@code{/}. @var{spec} must be a stream specifier (see @ref{Format
stream specifiers}). If the stream specifier is not specified, the
bitstream filters will be applied to all streams in the output.
Several bitstream filters can be specified, separated by ",".
@@ -878,7 +1063,8 @@ specified by a stream specifier. If not specified, this defaults to
all the input streams.
@end table
Some examples follow.
@subsection Examples
@itemize
@item
Encode something and both archive it in a WebM file and stream it
@@ -899,10 +1085,49 @@ audio packets.
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict experimental
-f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
@end example
@item
As below, but select only stream @code{a:1} for the audio output. Note
that a second level escaping must be performed, as ":" is a special
character used to separate options.
@example
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict experimental
-f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
@end example
@end itemize
Note: some codecs may need different options depending on the output format;
the auto-detection of this can not work with the tee muxer. The main example
is the @option{global_header} flag.
@section webm_dash_manifest
WebM DASH Manifest muxer.
This muxer implements the WebM DASH Manifest specification to generate the DASH manifest XML.
@subsection Options
This muxer supports the following options:
@table @option
@item adaptation_sets
This option has the following syntax: "id=x,streams=a,b,c id=y,streams=d,e" where x and y are the
unique identifiers of the adaptation sets and a,b,c,d and e are the indices of the corresponding
audio and video streams. Any number of adaptation sets can be added using this option.
@end table
@subsection Example
@example
ffmpeg -f webm_dash_manifest -i video1.webm \
-f webm_dash_manifest -i video2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-map 0 -map 1 -map 2 -map 3 \
-c copy \
-f webm_dash_manifest \
-adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
manifest.xml
@end example
@c man end MUXERS

View File

@@ -21,6 +21,27 @@ The official nut specification is at svn://svn.mplayerhq.hu/nut
In case of any differences between this text and the official specification,
the official specification shall prevail.
@chapter Modes
NUT has some variants signaled by using the flags field in its main header.
@multitable @columnfractions .4 .4
@item BROADCAST @tab Extend the syncpoint to report the sender wallclock
@item PIPE @tab Omit completely the syncpoint
@end multitable
@section BROADCAST
The BROADCAST variant provides a secondary time reference to facilitate
detecting endpoint latency and network delays.
It assumes all the endpoint clocks are syncronized.
To be used in real-time scenarios.
@section PIPE
The PIPE variant assumes NUT is used as non-seekable intermediate container,
by not using syncpoint removes unneeded overhead and reduces the overall
memory usage.
@chapter Container-specific codec tags
@section Generic raw YUVA formats

View File

@@ -79,9 +79,6 @@ qpel{8,16}_mc??_old_c / *pixels{8,16}_l4
Just used to work around a bug in an old libavcodec encoder version.
Don't optimize them.
tpel_mc_func {put,avg}_tpel_pixels_tab
Used only for SVQ3, so only optimize them if you need fast SVQ3 decoding.
add_bytes/diff_bytes
For huffyuv only, optimize if you want a faster ffhuffyuv codec.
@@ -139,9 +136,6 @@ dct_unquantize_mpeg2
dct_unquantize_h263
Used in MPEG-4/H.263 en/decoding.
FIXME remaining functions?
BTW, most of these functions are in dsputil.c/.h, some are in mpegvideo.c/.h.
Alignment:
@@ -268,17 +262,6 @@ CELL/SPU:
http://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/30B3520C93F437AB87257060006FFE5E/$file/Language_Extensions_for_CBEA_2.4.pdf
http://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/9F820A5FFA3ECE8C8725716A0062585F/$file/CBE_Handbook_v1.1_24APR2007_pub.pdf
SPARC-specific:
---------------
SPARC Joint Programming Specification (JPS1): Commonality
http://www.fujitsu.com/downloads/PRMPWR/JPS1-R1.0.4-Common-pub.pdf
UltraSPARC III Processor User's Manual (contains instruction timings)
http://www.sun.com/processors/manuals/USIIIv2.pdf
VIS Whitepaper (contains optimization guidelines)
http://www.sun.com/processors/vis/download/vis/vis_whitepaper.pdf
GCC asm links:
--------------
official doc but quite ugly

View File

@@ -13,8 +13,8 @@ You can disable all the output devices using the configure option
option "--enable-outdev=@var{OUTDEV}", or you can disable a particular
input device using the option "--disable-outdev=@var{OUTDEV}".
The option "-formats" of the ff* tools will display the list of
enabled output devices (amongst the muxers).
The option "-devices" of the ff* tools will display the list of
enabled output devices.
A description of the currently available output devices follows.
@@ -22,11 +22,27 @@ A description of the currently available output devices follows.
ALSA (Advanced Linux Sound Architecture) output device.
@subsection Examples
@itemize
@item
Play a file on default ALSA device:
@example
ffmpeg -i INPUT -f alsa default
@end example
@item
Play a file on soundcard 1, audio device 7:
@example
ffmpeg -i INPUT -f alsa hw:1,7
@end example
@end itemize
@section caca
CACA output device.
This output device allows to show a video stream in CACA window.
This output device allows one to show a video stream in CACA window.
Only one CACA window is allowed per application, so you can
have only one instance of this output device in an application.
@@ -104,6 +120,68 @@ ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
@end example
@end itemize
@section decklink
The decklink output device provides playback capabilities for Blackmagic
DeckLink devices.
To enable this output device, you need the Blackmagic DeckLink SDK and you
need to configure with the appropriate @code{--extra-cflags}
and @code{--extra-ldflags}.
On Windows, you need to run the IDL files through @command{widl}.
DeckLink is very picky about the formats it supports. Pixel format is always
uyvy422, framerate and video size must be determined for your device with
@command{-list_formats 1}. Audio sample rate is always 48 kHz.
@subsection Options
@table @option
@item list_devices
If set to @option{true}, print a list of devices and exit.
Defaults to @option{false}.
@item list_formats
If set to @option{true}, print a list of supported formats and exit.
Defaults to @option{false}.
@item preroll
Amount of time to preroll video in seconds.
Defaults to @option{0.5}.
@end table
@subsection Examples
@itemize
@item
List output devices:
@example
ffmpeg -i test.avi -f decklink -list_devices 1 dummy
@end example
@item
List supported formats:
@example
ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
@end example
@item
Play video clip:
@example
ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
@end example
@item
Play video clip with non-standard framerate or video size:
@example
ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
@end example
@end itemize
@section fbdev
Linux framebuffer output device.
@@ -133,6 +211,45 @@ ffmpeg -re -i INPUT -vcodec rawvideo -pix_fmt bgra -f fbdev /dev/fb0
See also @url{http://linux-fbdev.sourceforge.net/}, and fbset(1).
@section opengl
OpenGL output device.
To enable this output device you need to configure FFmpeg with @code{--enable-opengl}.
This output device allows one to render to OpenGL context.
Context may be provided by application or default SDL window is created.
When device renders to external context, application must implement handlers for following messages:
@code{AV_DEV_TO_APP_CREATE_WINDOW_BUFFER} - create OpenGL context on current thread.
@code{AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER} - make OpenGL context current.
@code{AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER} - swap buffers.
@code{AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER} - destroy OpenGL context.
Application is also required to inform a device about current resolution by sending @code{AV_APP_TO_DEV_WINDOW_SIZE} message.
@subsection Options
@table @option
@item background
Set background color. Black is a default.
@item no_window
Disables default SDL window when set to non-zero value.
Application must provide OpenGL context and both @code{window_size_cb} and @code{window_swap_buffers_cb} callbacks when set.
@item window_title
Set the SDL window title, if not specified default to the filename specified for the output device.
Ignored when @option{no_window} is set.
@item window_size
Set preferred window size, can be a string of the form widthxheight or a video size abbreviation.
If not specified it defaults to the size of the input video, downscaled according to the aspect ratio.
Mostly usable when @option{no_window} is not set.
@end table
@subsection Examples
Play a file on SDL window using OpenGL rendering:
@example
ffmpeg -i INPUT -f opengl "window title"
@end example
@section oss
OSS (Open Sound System) output device.
@@ -164,6 +281,33 @@ by default it is set to the specified output name.
Specify the device to use. Default device is used when not provided.
List of output devices can be obtained with command @command{pactl list sinks}.
@item buffer_size
@item buffer_duration
Control the size and duration of the PulseAudio buffer. A small buffer
gives more control, but requires more frequent updates.
@option{buffer_size} specifies size in bytes while
@option{buffer_duration} specifies duration in milliseconds.
When both options are provided then the highest value is used
(duration is recalculated to bytes using stream parameters). If they
are set to 0 (which is default), the device will use the default
PulseAudio duration value. By default PulseAudio set buffer duration
to around 2 seconds.
@item prebuf
Specify pre-buffering size in bytes. The server does not start with
playback before at least @option{prebuf} bytes are available in the
buffer. By default this option is initialized to the same value as
@option{buffer_size} or @option{buffer_duration} (whichever is bigger).
@item minreq
Specify minimum request size in bytes. The server does not request less
than @option{minreq} bytes from the client, instead waits until the buffer
is free enough to request more bytes at once. It is recommended to not set
this option, which will initialize this to a value that is deemed sensible
by the server.
@end table
@subsection Examples
@@ -176,7 +320,7 @@ ffmpeg -i INPUT -f pulse "stream name"
SDL (Simple DirectMedia Layer) output device.
This output device allows to show a video stream in an SDL
This output device allows one to show a video stream in an SDL
window. Only one SDL window is allowed per application, so you can
have only one instance of this output device in an application.
@@ -206,7 +350,17 @@ downscaled according to the aspect ratio.
@item window_fullscreen
Set fullscreen mode when non-zero value is provided.
Zero is a default.
Default value is zero.
@end table
@subsection Interactive commands
The window created by the device can be controlled through the
following interactive commands.
@table @key
@item q, ESC
Quit the device immediately.
@end table
@subsection Examples
@@ -225,7 +379,7 @@ sndio audio output device.
XV (XVideo) output device.
This output device allows to show a video stream in a X Window System
This output device allows one to show a video stream in a X Window System
window.
@subsection Options
@@ -252,19 +406,26 @@ For example, @code{dual-headed:0.1} would specify screen 1 of display
Check the X11 specification for more detailed information about the
display name format.
@item window_id
When set to non-zero value then device doesn't create new window,
but uses existing one with provided @var{window_id}. By default
this options is set to zero and device creates its own window.
@item window_size
Set the created window size, can be a string of the form
@var{width}x@var{height} or a video size abbreviation. If not
specified it defaults to the size of the input video.
Ignored when @var{window_id} is set.
@item window_x
@item window_y
Set the X and Y window offsets for the created window. They are both
set to 0 by default. The values may be ignored by the window manager.
Ignored when @var{window_id} is set.
@item window_title
Set the window title, if not specified default to the filename
specified for the output device.
specified for the output device. Ignored when @var{window_id} is set.
@end table
For more information about XVideo see @url{http://www.x.org/}.

View File

@@ -24,6 +24,17 @@ If not, then you should install a different compiler that has no
hard-coded path to gas. In the worst case pass @code{--disable-asm}
to configure.
@section Advanced linking configuration
If you compiled FFmpeg libraries statically and you want to use them to
build your own shared library, you may need to force PIC support (with
@code{--enable-pic} during FFmpeg configure) and add the following option
to your project LDFLAGS:
@example
-Wl,-Bsymbolic
@end example
@section BSD
BSD make will not build FFmpeg, you need to install and use GNU Make
@@ -51,14 +62,15 @@ The toolchain provided with Xcode is sufficient to build the basic
unacelerated code.
Mac OS X on PowerPC or ARM (iPhone) requires a preprocessor from
@url{http://github.com/yuvi/gas-preprocessor} to build the optimized
assembler functions. Just download the Perl script and put it somewhere
@url{https://github.com/FFmpeg/gas-preprocessor} or
@url{https://github.com/yuvi/gas-preprocessor}(currently outdated) to build the optimized
assembly functions. Put the Perl script somewhere
in your PATH, FFmpeg's configure will pick it up automatically.
Mac OS X on amd64 and x86 requires @command{yasm} to build most of the
optimized assembler functions. @uref{http://www.finkproject.org/, Fink},
optimized assembly functions. @uref{http://www.finkproject.org/, Fink},
@uref{http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-macos.xml, Gentoo Prefix},
@uref{http://mxcl.github.com/homebrew/, Homebrew}
@uref{https://mxcl.github.com/homebrew/, Homebrew}
or @uref{http://www.macports.org, MacPorts} can easily provide it.
@@ -108,14 +120,16 @@ libavformat) as DLLs.
@section Microsoft Visual C++ or Intel C++ Compiler for Windows
FFmpeg can be built with MSVC or ICL using a C99-to-C89 conversion utility and
wrapper. For ICL, only the wrapper is used, since ICL supports C99.
FFmpeg can be built with MSVC 2012 or earlier using a C99-to-C89 conversion utility
and wrapper, or with MSVC 2013 and ICL natively.
You will need the following prerequisites:
@itemize
@item @uref{http://download.videolan.org/pub/contrib/c99-to-c89/, C99-to-C89 Converter & Wrapper}
@item @uref{https://github.com/libav/c99-to-c89/, C99-to-C89 Converter & Wrapper}
(if using MSVC 2012 or earlier)
@item @uref{http://code.google.com/p/msinttypes/, msinttypes}
(if using MSVC 2012 or earlier)
@item @uref{http://www.mingw.org/, MSYS}
@item @uref{http://yasm.tortall.net/, YASM}
@item @uref{http://gnuwin32.sourceforge.net/packages/bc.htm, bc for Windows} if
@@ -125,14 +139,16 @@ you want to run @uref{fate.html, FATE}.
To set up a proper environment in MSYS, you need to run @code{msys.bat} from
the Visual Studio or Intel Compiler command prompt.
Place @code{makedef}, @code{c99wrap.exe}, @code{c99conv.exe}, and @code{yasm.exe}
somewhere in your @code{PATH}.
Place @code{yasm.exe} somewhere in your @code{PATH}. If using MSVC 2012 or
earlier, place @code{c99wrap.exe} and @code{c99conv.exe} somewhere in your
@code{PATH} as well.
Next, make sure @code{inttypes.h} and any other headers and libs you want to use
are located in a spot that the compiler can see. Do so by modifying the @code{LIB}
and @code{INCLUDE} environment variables to include the @strong{Windows} paths to
these directories. Alternatively, you can try and use the
@code{--extra-cflags}/@code{--extra-ldflags} configure options.
Next, make sure any other headers and libs you want to use, such as zlib, are
located in a spot that the compiler can see. Do so by modifying the @code{LIB}
and @code{INCLUDE} environment variables to include the @strong{Windows-style}
paths to these directories. Alternatively, you can try and use the
@code{--extra-cflags}/@code{--extra-ldflags} configure options. If using MSVC
2012 or earlier, place @code{inttypes.h} somewhere the compiler can see too.
Finally, run:
@@ -182,7 +198,9 @@ can see.
@itemize
@item Visual Studio 2010 Pro and Express
@item Visual Studio 2012 Pro and Express
@item Visual Studio 2013 Pro and Express
@item Intel Composer XE 2013
@item Intel Composer XE 2013 SP1
@end itemize
Anything else is not officially supported.

View File

@@ -117,7 +117,19 @@ ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP/////////////
File access protocol.
Allow to read from or read to a file.
Allow to read from or write to a file.
A file URL can have the form:
@example
file:@var{filename}
@end example
where @var{filename} is the path of the file to read.
An URL that does not have a protocol prefix will be assumed to be a
file URL. Depending on the build, an URL that looks like a Windows
path with the drive letter at the beginning will also be assumed to be
a file URL (usually not the case in builds for unix-like systems).
For example to read from a file @file{input.mpeg} with @command{ffmpeg}
use the command:
@@ -125,10 +137,6 @@ use the command:
ffmpeg -i file:input.mpeg output.mpeg
@end example
The ff* tools default to the file protocol, that is a resource
specified with the name "FILE.mpeg" is interpreted as the URL
"file:FILE.mpeg".
This protocol accepts the following options:
@table @option
@@ -158,7 +166,7 @@ This protocol accepts the following options.
@table @option
@item timeout
Set timeout of socket I/O operations used by the underlying low level
Set timeout in microseconds of socket I/O operations used by the underlying low level
operation. By default it is set to -1, which means that the timeout is
not specified.
@@ -205,7 +213,7 @@ m3u8 files.
HTTP (Hyper Text Transfer Protocol).
This protocol accepts the following options.
This protocol accepts the following options:
@table @option
@item seekable
@@ -215,32 +223,33 @@ if set to -1 it will try to autodetect if it is seekable. Default
value is -1.
@item chunked_post
If set to 1 use chunked transfer-encoding for posts, default is 1.
If set to 1 use chunked Transfer-Encoding for posts, default is 1.
@item content_type
Set a specific content type for the POST messages.
@item headers
Set custom HTTP headers, can override built in default headers. The
value must be a string encoding the headers.
@item content_type
Force a content type.
@item user-agent
Override User-Agent header. If not specified the protocol will use a
string describing the libavformat build.
@item multiple_requests
Use persistent connections if set to 1. By default it is 0.
Use persistent connections if set to 1, default is 0.
@item post_data
Set custom HTTP post data.
@item user-agent
@item user_agent
Override the User-Agent header. If not specified the protocol will use a
string describing the libavformat build. ("Lavf/<version>")
@item timeout
Set timeout of socket I/O operations used by the underlying low level
Set timeout in microseconds of socket I/O operations used by the underlying low level
operation. By default it is set to -1, which means that the timeout is
not specified.
@item mime_type
Set MIME type.
Export the MIME type.
@item icy
If set to 1 request ICY (SHOUTcast) metadata from the server. If the server
@@ -249,17 +258,25 @@ the @option{icy_metadata_headers} and @option{icy_metadata_packet} options.
The default is 0.
@item icy_metadata_headers
If the server supports ICY metadata, this contains the ICY specific HTTP reply
headers, separated with newline characters.
If the server supports ICY metadata, this contains the ICY-specific HTTP reply
headers, separated by newline characters.
@item icy_metadata_packet
If the server supports ICY metadata, and @option{icy} was set to 1, this
contains the last non-empty metadata packet sent by the server.
contains the last non-empty metadata packet sent by the server. It should be
polled in regular intervals by applications interested in mid-stream metadata
updates.
@item cookies
Set the cookies to be sent in future requests. The format of each cookie is the
same as the value of a Set-Cookie HTTP response field. Multiple cookies can be
delimited by a newline character.
@item offset
Set initial byte offset.
@item end_offset
Try to limit the request to bytes preceding this offset.
@end table
@subsection HTTP Cookies
@@ -520,6 +537,35 @@ The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is used
for streaming multimedia content within HTTPS requests to traverse
firewalls.
@section libsmbclient
libsmbclient permits to manipulate CIFS/SMB network resources.
Following syntax is required.
@example
smb://[[domain:]user[:password@@]]server[/share[/path[/file]]]
@end example
This protocol accepts the following options.
@table @option
@item timeout
Set timeout in miliseconds of socket I/O operations used by the underlying
low level operation. By default it is set to -1, which means that the timeout
is not specified.
@item truncate
Truncate existing files on write, if set to 1. A value of 0 prevents
truncating. Default value is 1.
@item workgroup
Set the workgroup used for making connections. By default workgroup is not specified.
@end table
For more information see: @url{http://www.samba.org/}.
@section libssh
Secure File Transfer Protocol via libssh
@@ -544,6 +590,10 @@ is not specified.
Truncate existing files on write, if set to 1. A value of 0 prevents
truncating. Default value is 1.
@item private_key
Specify the path of the file containing private key to use during authorization.
By default libssh searches for keys in the @file{~/.ssh/} directory.
@end table
Example: Play a file stored on remote server.
@@ -661,6 +711,8 @@ set to the the local RTP port value plus 1.
@section rtsp
Real-Time Streaming Protocol.
RTSP is not technically a protocol handler in libavformat, it is a demuxer
and muxer. The demuxer supports both normal RTSP (with data transferred
over RTP; this is used by e.g. Apple and Microsoft) and Real-RTSP (with
@@ -668,21 +720,29 @@ data transferred over RDT).
The muxer can be used to send a stream using RTSP ANNOUNCE to a server
supporting it (currently Darwin Streaming Server and Mischa Spiegelmock's
@uref{http://github.com/revmischa/rtsp-server, RTSP server}).
@uref{https://github.com/revmischa/rtsp-server, RTSP server}).
The required syntax for a RTSP url is:
@example
rtsp://@var{hostname}[:@var{port}]/@var{path}
@end example
The following options (set on the @command{ffmpeg}/@command{ffplay} command
line, or set in code via @code{AVOption}s or in @code{avformat_open_input}),
are supported:
Options can be set on the @command{ffmpeg}/@command{ffplay} command
line, or set in code via @code{AVOption}s or in
@code{avformat_open_input}.
Flags for @code{rtsp_transport}:
The following options are supported.
@table @option
@item initial_pause
Do not start playing the stream immediately if set to 1. Default value
is 0.
@item rtsp_transport
Set RTSP transport protocols.
It accepts the following values:
@table @samp
@item udp
Use UDP as lower transport protocol.
@@ -700,15 +760,56 @@ passing proxies.
Multiple lower transport protocols may be specified, in that case they are
tried one at a time (if the setup of one fails, the next one is tried).
For the muxer, only the @code{tcp} and @code{udp} options are supported.
For the muxer, only the @samp{tcp} and @samp{udp} options are supported.
Flags for @code{rtsp_flags}:
@item rtsp_flags
Set RTSP flags.
@table @option
The following values are accepted:
@table @samp
@item filter_src
Accept packets only from negotiated peer address and port.
@item listen
Act as a server, listening for an incoming connection.
@item prefer_tcp
Try TCP for RTP transport first, if TCP is available as RTSP RTP transport.
@end table
Default value is @samp{none}.
@item allowed_media_types
Set media types to accept from the server.
The following flags are accepted:
@table @samp
@item video
@item audio
@item data
@end table
By default it accepts all media types.
@item min_port
Set minimum local UDP port. Default value is 5000.
@item max_port
Set maximum local UDP port. Default value is 65000.
@item timeout
Set maximum timeout (in seconds) to wait for incoming connections.
A value of -1 means infinite (default). This option implies the
@option{rtsp_flags} set to @samp{listen}.
@item reorder_queue_size
Set number of packets to buffer for handling of reordered packets.
@item stimeout
Set socket TCP I/O timeout in microseconds.
@item user-agent
Override User-Agent header. If not specified, it defaults to the
libavformat identifier string.
@end table
When receiving data over UDP, the demuxer tries to reorder received packets
@@ -721,36 +822,36 @@ streams to display can be chosen with @code{-vst} @var{n} and
@code{-ast} @var{n} for video and audio respectively, and can be switched
on the fly by pressing @code{v} and @code{a}.
Example command lines:
@subsection Examples
To watch a stream over UDP, with a max reordering delay of 0.5 seconds:
The following examples all make use of the @command{ffplay} and
@command{ffmpeg} tools.
@itemize
@item
Watch a stream over UDP, with a max reordering delay of 0.5 seconds:
@example
ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
@end example
To watch a stream tunneled over HTTP:
@item
Watch a stream tunneled over HTTP:
@example
ffplay -rtsp_transport http rtsp://server/video.mp4
@end example
To send a stream in realtime to a RTSP server, for others to watch:
@item
Send a stream in realtime to a RTSP server, for others to watch:
@example
ffmpeg -re -i @var{input} -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
@end example
To receive a stream in realtime:
@item
Receive a stream in realtime:
@example
ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp @var{output}
@end example
@table @option
@item stimeout
Socket IO timeout in micro seconds.
@end table
@end itemize
@section sap
@@ -888,32 +989,65 @@ this binary block are used as master key, the following 14 bytes are
used as master salt.
@end table
@section subfile
Virtually extract a segment of a file or another stream.
The underlying stream must be seekable.
Accepted options:
@table @option
@item start
Start offset of the extracted segment, in bytes.
@item end
End offset of the extracted segment, in bytes.
@end table
Examples:
Extract a chapter from a DVD VOB file (start and end sectors obtained
externally and multiplied by 2048):
@example
subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
@end example
Play an AVI file directly from a TAR archive:
subfile,,start,183241728,end,366490624,,:archive.tar
@section tcp
Trasmission Control Protocol.
Transmission Control Protocol.
The required syntax for a TCP url is:
@example
tcp://@var{hostname}:@var{port}[?@var{options}]
@end example
@table @option
@var{options} contains a list of &-separated options of the form
@var{key}=@var{val}.
@item listen
Listen for an incoming connection
The list of supported options follows.
@table @option
@item listen=@var{1|0}
Listen for an incoming connection. Default value is 0.
@item timeout=@var{microseconds}
In read mode: if no data arrived in more than this time interval, raise error.
In write mode: if socket cannot be written in more than this time interval, raise error.
This also sets timeout on TCP connection establishing.
Set raise error timeout, expressed in microseconds.
This option is only relevant in read mode: if no data arrived in more
than this time interval, raise error.
@item listen_timeout=@var{microseconds}
Set listen timeout, expressed in microseconds.
@end table
The following example shows how to setup a listening TCP connection
with @command{ffmpeg}, which is then accessed with @command{ffplay}:
@example
ffmpeg -i @var{input} -f @var{format} tcp://@var{hostname}:@var{port}?listen
ffplay tcp://@var{hostname}:@var{port}
@end example
@end table
@section tls
Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
@@ -979,7 +1113,7 @@ ffplay tls://@var{hostname}:@var{port}
User Datagram Protocol.
The required syntax for a UDP url is:
The required syntax for an UDP URL is:
@example
udp://@var{hostname}:@var{port}[?@var{options}]
@end example
@@ -987,17 +1121,17 @@ udp://@var{hostname}:@var{port}[?@var{options}]
@var{options} contains a list of &-separated options of the form @var{key}=@var{val}.
In case threading is enabled on the system, a circular buffer is used
to store the incoming data, which allows to reduce loss of data due to
to store the incoming data, which allows one to reduce loss of data due to
UDP socket buffer overruns. The @var{fifo_size} and
@var{overrun_nonfatal} options are related to this buffer.
The list of supported options follows.
@table @option
@item buffer_size=@var{size}
Set the UDP socket buffer size in bytes. This is used both for the
receiving and the sending buffer size.
Set the UDP maximum socket buffer size in bytes. This is used to set either
the receive or send buffer size, depending on what the socket is used for.
Default is 64KB. See also @var{fifo_size}.
@item localport=@var{port}
Override the local UDP port to bind with.
@@ -1044,25 +1178,40 @@ Survive in case of UDP receiving circular buffer overrun. Default
value is 0.
@item timeout=@var{microseconds}
In read mode: if no data arrived in more than this time interval, raise error.
Set raise error timeout, expressed in microseconds.
This option is only relevant in read mode: if no data arrived in more
than this time interval, raise error.
@item broadcast=@var{1|0}
Explicitly allow or disallow UDP broadcasting.
Note that broadcasting may not work properly on networks having
a broadcast storm protection.
@end table
Some usage examples of the UDP protocol with @command{ffmpeg} follow.
@subsection Examples
To stream over UDP to a remote endpoint:
@itemize
@item
Use @command{ffmpeg} to stream over UDP to a remote endpoint:
@example
ffmpeg -i @var{input} -f @var{format} udp://@var{hostname}:@var{port}
@end example
To stream in mpegts format over UDP using 188 sized UDP packets, using a large input buffer:
@item
Use @command{ffmpeg} to stream in mpegts format over UDP using 188
sized UDP packets, using a large input buffer:
@example
ffmpeg -i @var{input} -f mpegts udp://@var{hostname}:@var{port}?pkt_size=188&buffer_size=65535
@end example
To receive over UDP from a remote endpoint:
@item
Use @command{ffmpeg} to receive over UDP from a remote endpoint:
@example
ffmpeg -i udp://[@var{multicast-address}]:@var{port}
ffmpeg -i udp://[@var{multicast-address}]:@var{port} ...
@end example
@end itemize
@section unix

View File

@@ -112,6 +112,14 @@ bayer dither
@item ed
error diffusion dither
@item a_dither
arithmetic dither, based using addition
@item x_dither
arithmetic dither, based using xor (more random/less apparent patterning that
a_dither).
@end table
@end table

View File

@@ -1,24 +0,0 @@
Google Summer of Code and similar project guidelines
Summer of Code is a project by Google in which students are paid to implement
some nice new features for various participating open source projects ...
This text is a collection of things to take care of for the next soc as
it's a little late for this year's soc (2006).
The Goal:
Our goal in respect to soc is and must be of course exactly one thing and
that is to improve FFmpeg, to reach this goal, code must
* conform to the development policy and patch submission guidelines
* must improve FFmpeg somehow (faster, smaller, "better",
more codecs supported, fewer bugs, cleaner, ...)
for mentors and other developers to help students to reach that goal it is
essential that changes to their codebase are publicly visible, clean and
easy reviewable that again leads us to:
* use of a revision control system like git
* separation of cosmetic from non-cosmetic changes (this is almost entirely
ignored by mentors and students in soc 2006 which might lead to a surprise
when the code will be reviewed at the end before a possible inclusion in
FFmpeg, individual changes were generally not reviewable due to cosmetics).
* frequent commits, so that comments can be provided early

23
doc/texi2pod.pl Executable file → Normal file
View File

@@ -1,4 +1,4 @@
#! /usr/bin/perl
#!/usr/bin/env perl
# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
@@ -282,6 +282,14 @@ INF: while(<$inf>) {
$_ = "\n=over 4\n";
};
/^\@(multitable)\s+{.*/ and do {
push @endwstack, $endw;
push @icstack, $ic;
$endw = $1;
$ic = "";
$_ = "\n=over 4\n";
};
/^\@((?:small)?example|display)/ and do {
push @endwstack, $endw;
$endw = $1;
@@ -298,10 +306,10 @@ INF: while(<$inf>) {
/^\@tab\s+(.*\S)\s*$/ and $endw eq "multitable" and do {
my $columns = $1;
$columns =~ s/\@tab/ : /;
$columns =~ s/\@tab//;
$_ = " : ". $columns;
$chapter =~ s/\n+\s+$//;
$_ = $columns;
$chapter =~ s/$//;
};
/^\@itemx?\s*(.+)?$/ and do {
@@ -327,6 +335,9 @@ die "No filename or title\n" unless defined $fn && defined $tl;
$chapters{NAME} = "$fn \- $tl\n";
$chapters{FOOTNOTES} .= "=back\n" if exists $chapters{FOOTNOTES};
# always use utf8
print "=encoding utf8\n\n";
unshift @chapters_sequence, "NAME";
for $chapter (@chapters_sequence) {
if (exists $chapters{$chapter}) {
@@ -377,8 +388,8 @@ sub postprocess
s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
s/;\s+\@pxref\{(?:[^\}]*)\}//g;
s/\@ref\{(?:[^,\}]*,)(?:[^,\}]*,)([^,\}]*).*\}/$1/g;
s/\@ref\{([^\}]*)\}/$1/g;
s/\@ref\{(?:[^,\}]*,)(?:[^,\}]*,)([^,\}]*).*\}/B<$1>/g;
s/\@ref\{([^\}]*)\}/B<$1>/g;
s/\@noindent\s*//g;
s/\@refill//g;
s/\@gol//g;

32
doc/texidep.pl Normal file
View File

@@ -0,0 +1,32 @@
#! /usr/bin/env perl
# This script will print the dependency of a Texinfo file to stdout.
# texidep.pl <src-path> <input.texi> <output.ext>
use warnings;
use strict;
die unless @ARGV == 3;
my ($src_path, $root, $target) = @ARGV;
sub print_deps {
my ($file, $deps) = @_;
$deps->{$file} = 1;
open(my $fh, "<", "$file") or die "Cannot open file '$file': $!";
while (<$fh>) {
if (my ($i) = /^\@(?:verbatim)?include\s+(\S+)/) {
die "Circular dependency found in file $root\n" if exists $deps->{"doc/$1"};
print "$target: doc/$1\n";
# skip looking for config.texi dependencies, since it has
# none, and is not located in the source tree
if ("$1" ne "config.texi") {
print_deps("$src_path/doc/$1", {%$deps});
}
}
}
}
print_deps($root, {});

View File

@@ -1031,7 +1031,7 @@ indication of the corresponding powers of 10 and of 2.
10^24 / 2^70
@end table
@c man end
@c man end EXPRESSION EVALUATION
@chapter OpenCL Options
@c man begin OPENCL OPTIONS
@@ -1051,13 +1051,13 @@ See reference "OpenCL Specification Version: 1.2 chapter 5.6.4".
Select the index of the platform to run OpenCL code.
The specified index must be one of the indexes in the device list
which can be obtained with @code{av_opencl_get_device_list()}.
which can be obtained with @code{ffmpeg -opencl_bench} or @code{av_opencl_get_device_list()}.
@item device_idx
Select the index of the device used to run OpenCL code.
The specifed index must be one of the indexes in the device list which
can be obtained with @code{av_opencl_get_device_list()}.
The specified index must be one of the indexes in the device list which
can be obtained with @code{ffmpeg -opencl_bench} or @code{av_opencl_get_device_list()}.
@end table

View File

@@ -1,109 +0,0 @@
This is a quick description of the viterbi aka dynamic programing
algorthm.
Its reason for existence is that wikipedia has become very poor on
describing algorithms in a way that makes it useable for understanding
them or anything else actually. It tends now to describe the very same
algorithm under 50 different names and pages with few understandable
by even people who fully understand the algorithm and the theory behind.
Problem description: (that is what it can solve)
assume we have a 2d table, or you could call it a graph or matrix if you
prefer
O O O O O O O
O O O O O O O
O O O O O O O
O O O O O O O
That table has edges connecting points from each column to the next column
and each edge has a score like: (only some edge and scores shown to keep it
readable)
O--5--O-----O-----O-----O-----O
2 / 7 / \ / \ / \ /
\ / \ / \ / \ / \ /
O7-/--O--/--O--/--O--/--O--/--O
\/ \/ 1/ \/ \/ \/ \/ \/ \/ \/
/\ /\ 2\ /\ /\ /\ /\ /\ /\ /\
O3-/--O--/--O--/--O--/--O--/--O
/ \ / \ / \ / \ / \
1 \ 9 \ / \ / \ / \
O--2--O--1--O--5--O--3--O--8--O
Our goal is to find a path from left to right through it which
minimizes the sum of the score of all edges.
(and of course left/right is just a convention here it could be top down too)
Similarly the minimum could be the maximum by just fliping the sign,
Example of a path with scores:
O O O O O O O
>---O. O O .O-2-O O O
5. .7 .
O O-1-O O O 8 O O
.
O O O O O O-1-O---> (sum here is 24)
The viterbi algorthm now solves this simply column by column
For the previous column each point has a best path and a associated
score:
O-----5 O
\
\
O \ 1 O
\/
/\
O / 2 O
/
/
O-----2 O
To move one column forward we just need to find the best path and associated
scores for the next column
here are some edges we could choose from:
O-----5--3--O
\ \8
\ \
O \ 1--9--O
\/ \3
/\ \
O / 2--1--O
/ \2
/ \
O-----2--4--O
Finding the new best paths and scores for each point of our new column is
trivial given we know the previous column best paths and scores:
O-----0-----8
\
\
O \ 0----10
\/
/\
O / 0-----3
/ \
/ \
O 0 4
the viterbi algorthm continues exactly like this column for column until the
end and then just picks the path with the best score (above that would be the
one with score 3)
Author: Michael niedermayer
Copyright LGPL

424
doc/writing_filters.txt Normal file
View File

@@ -0,0 +1,424 @@
This document is a tutorial/initiation for writing simple filters in
libavfilter.
Foreword: just like everything else in FFmpeg, libavfilter is monolithic, which
means that it is highly recommended that you submit your filters to the FFmpeg
development mailing-list and make sure it is applied. Otherwise, your filter is
likely to have a very short lifetime due to more a less regular internal API
changes, and a limited distribution, review, and testing.
Bootstrap
=========
Let's say you want to write a new simple video filter called "foobar" which
takes one frame in input, changes the pixels in whatever fashion you fancy, and
outputs the modified frame. The most simple way of doing this is to take a
similar filter. We'll pick edgedetect, but any other should do. You can look
for others using the `./ffmpeg -v 0 -filters|grep ' V->V '` command.
- cp libavfilter/vf_{edgedetect,foobar}.c
- sed -i s/edgedetect/foobar/g -i libavfilter/vf_foobar.c
- sed -i s/EdgeDetect/Foobar/g -i libavfilter/vf_foobar.c
- edit libavfilter/Makefile, and add an entry for "foobar" following the
pattern of the other filters.
- edit libavfilter/allfilters.c, and add an entry for "foobar" following the
pattern of the other filters.
- ./configure ...
- make -j<whatever> ffmpeg
- ./ffmpeg -i tests/lena.pnm -vf foobar foobar.png
If everything went right, you should get a foobar.png with Lena edge-detected.
That's it, your new playground is ready.
Some little details about what's going on:
libavfilter/allfilters.c:avfilter_register_all() is called at runtime to create
a list of the available filters, but it's important to know that this file is
also parsed by the configure script, which in turn will define variables for
the build system and the C:
--- after running configure ---
$ grep FOOBAR config.mak
CONFIG_FOOBAR_FILTER=yes
$ grep FOOBAR config.h
#define CONFIG_FOOBAR_FILTER 1
CONFIG_FOOBAR_FILTER=yes from the config.mak is later used to enable the filter in
libavfilter/Makefile and CONFIG_FOOBAR_FILTER=1 from the config.h will be used
for registering the filter in libavfilter/allfilters.c.
Filter code layout
==================
You now need some theory about the general code layout of a filter. Open your
libavfilter/vf_foobar.c. This section will detail the important parts of the
code you need to understand before messing with it.
Copyright
---------
First chunk is the copyright. Most filters are LGPL, and we are assuming
vf_foobar is as well. We are also assuming vf_foobar is not an edge detector
filter, so you can update the boilerplate with your credits.
Doxy
----
Next chunk is the Doxygen about the file. See http://ffmpeg.org/doxygen/trunk/.
Detail here what the filter is, does, and add some references if you feel like
it.
Context
-------
Skip the headers and scroll down to the definition of FoobarContext. This is
your local state context. It is already filled with 0 when you get it so do not
worry about uninitialized read into this context. This is where you put every
"global" information you need, typically the variable storing the user options.
You'll notice the first field "const AVClass *class"; it's the only field you
need to keep assuming you have a context. There are some magic you don't care
about around this field, just let it be (in first position) for now.
Options
-------
Then comes the options array. This is what will define the user accessible
options. For example, -vf foobar=mode=colormix:high=0.4:low=0.1. Most options
have the following pattern:
name, description, offset, type, default value, minimum value, maximum value, flags
- name is the option name, keep it simple, lowercase
- description are short, in lowercase, without period, and describe what they
do, for example "set the foo of the bar"
- offset is the offset of the field in your local context, see the OFFSET()
macro; the option parser will use that information to fill the fields
according to the user input
- type is any of AV_OPT_TYPE_* defined in libavutil/opt.h
- default value is an union where you pick the appropriate type; "{.dbl=0.3}",
"{.i64=0x234}", "{.str=NULL}", ...
- min and max values define the range of available values, inclusive
- flags are AVOption generic flags. See AV_OPT_FLAG_* definitions
In doubt, just look at the other AVOption definitions all around the codebase,
there are tons of examples.
Class
-----
AVFILTER_DEFINE_CLASS(foobar) will define a unique foobar_class with some kind
of signature referencing the options, etc. which will be referenced in the
definition of the AVFilter.
Filter definition
-----------------
At the end of the file, you will find foobar_inputs, foobar_outputs and
the AVFilter ff_vf_foobar. Don't forget to update the AVFilter.description with
a description of what the filter does, starting with a capitalized letter and
ending with a period. You'd better drop the AVFilter.flags entry for now, and
re-add them later depending on the capabilities of your filter.
Callbacks
---------
Let's now study the common callbacks. Before going into details, note that all
these callbacks are explained in details in libavfilter/avfilter.h, so in
doubt, refer to the doxy in that file.
init()
~~~~~~
First one to be called is init(). It's flagged as cold because not called
often. Look for "cold" on
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html for more
information.
As the name suggests, init() is where you eventually initialize and allocate
your buffers, pre-compute your data, etc. Note that at this point, your local
context already has the user options initialized, but you still haven't any
clue about the kind of data input you will get, so this function is often
mainly used to sanitize the user options.
Some init()s will also define the number of inputs or outputs dynamically
according to the user options. A good example of this is the split filter, but
we won't cover this here since vf_foobar is just a simple 1:1 filter.
uninit()
~~~~~~~~
Similarly, there is the uninit() callback, doing what the name suggest. Free
everything you allocated here.
query_formats()
~~~~~~~~~~~~~~~
This is following the init() and is used for the format negotiation, basically
where you say what pixel format(s) (gray, rgb 32, yuv 4:2:0, ...) you accept
for your inputs, and what you can output. All pixel formats are defined in
libavutil/pixfmt.h. If you don't change the pixel format between the input and
the output, you just have to define a pixel formats array and call
ff_set_common_formats(). For more complex negotiation, you can refer to other
filters such as vf_scale.
config_props()
~~~~~~~~~~~~~~
This callback is not necessary, but you will probably have one or more
config_props() anyway. It's not a callback for the filter itself but for its
inputs or outputs (they're called "pads" - AVFilterPad - in libavfilter's
lexicon).
Inside the input config_props(), you are at a point where you know which pixel
format has been picked after query_formats(), and more information such as the
video width and height (inlink->{w,h}). So if you need to update your internal
context state depending on your input you can do it here. In edgedetect you can
see that this callback is used to allocate buffers depending on these
information. They will be destroyed in uninit().
Inside the output config_props(), you can define what you want to change in the
output. Typically, if your filter is going to double the size of the video, you
will update outlink->w and outlink->h.
filter_frame()
~~~~~~~~~~~~~~
This is the callback you are waiting from the beginning: it is where you
process the received frames. Along with the frame, you get the input link from
where the frame comes from.
static int filter_frame(AVFilterLink *inlink, AVFrame *in) { ... }
You can get the filter context through that input link:
AVFilterContext *ctx = inlink->dst;
Then access your internal state context:
FoobarContext *foobar = ctx->priv;
And also the output link where you will send your frame when you are done:
AVFilterLink *outlink = ctx->outputs[0];
Here, we are picking the first output. You can have several, but in our case we
only have one since we are in a 1:1 input-output situation.
If you want to define a simple pass-through filter, you can just do:
return ff_filter_frame(outlink, in);
But of course, you probably want to change the data of that frame.
This can be done by accessing frame->data[] and frame->linesize[]. Important
note here: the width does NOT match the linesize. The linesize is always
greater or equal to the width. The padding created should not be changed or
even read. Typically, keep in mind that a previous filter in your chain might
have altered the frame dimension but not the linesize. Imagine a crop filter
that halves the video size: the linesizes won't be changed, just the width.
<-------------- linesize ------------------------>
+-------------------------------+----------------+ ^
| | | |
| | | |
| picture | padding | | height
| | | |
| | | |
+-------------------------------+----------------+ v
<----------- width ------------->
Before modifying the "in" frame, you have to make sure it is writable, or get a
new one. Multiple scenarios are possible here depending on the kind of
processing you are doing.
Let's say you want to change one pixel depending on multiple pixels (typically
the surrounding ones) of the input. In that case, you can't do an in-place
processing of the input so you will need to allocate a new frame, with the same
properties as the input one, and send that new frame to the next filter:
AVFrame *out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out) {
av_frame_free(&in);
return AVERROR(ENOMEM);
}
av_frame_copy_props(out, in);
// out->data[...] = foobar(in->data[...])
av_frame_free(&in);
return ff_filter_frame(outlink, out);
In-place processing
~~~~~~~~~~~~~~~~~~~
If you can just alter the input frame, you probably just want to do that
instead:
av_frame_make_writable(in);
// in->data[...] = foobar(in->data[...])
return ff_filter_frame(outlink, in);
You may wonder why a frame might not be writable. The answer is that for
example a previous filter might still own the frame data: imagine a filter
prior to yours in the filtergraph that needs to cache the frame. You must not
alter that frame, otherwise it will make that previous filter buggy. This is
where av_frame_make_writable() helps (it won't have any effect if the frame
already is writable).
The problem with using av_frame_make_writable() is that in the worst case it
will copy the whole input frame before you change it all over again with your
filter: if the frame is not writable, av_frame_make_writable() will allocate
new buffers, and copy the input frame data. You don't want that, and you can
avoid it by just allocating a new buffer if necessary, and process from in to
out in your filter, saving the memcpy. Generally, this is done following this
scheme:
int direct = 0;
AVFrame *out;
if (av_frame_is_writable(in)) {
direct = 1;
out = in;
} else {
out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out) {
av_frame_free(&in);
return AVERROR(ENOMEM);
}
av_frame_copy_props(out, in);
}
// out->data[...] = foobar(in->data[...])
if (!direct)
av_frame_free(&in);
return ff_filter_frame(outlink, out);
Of course, this will only work if you can do in-place processing. To test if
your filter handles well the permissions, you can use the perms filter. For
example with:
-vf perms=random,foobar
Make sure no automatic pixel conversion is inserted between perms and foobar,
otherwise the frames permissions might change again and the test will be
meaningless: add av_log(0,0,"direct=%d\n",direct) in your code to check that.
You can avoid the issue with something like:
-vf format=rgb24,perms=random,foobar
...assuming your filter accepts rgb24 of course. This will make sure the
necessary conversion is inserted before the perms filter.
Timeline
~~~~~~~~
Adding timeline support
(http://ffmpeg.org/ffmpeg-filters.html#Timeline-editing) is often an easy
feature to add. In the most simple case, you just have to add
AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC to the AVFilter.flags. You can typically
do this when your filter does not need to save the previous context frames, or
basically if your filter just alter whatever goes in and doesn't need
previous/future information. See for instance commit 86cb986ce that adds
timeline support to the fieldorder filter.
In some cases, you might need to reset your context somehow. This is handled by
the AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL flag which is used if the filter
must not process the frames but still wants to keep track of the frames going
through (to keep them in cache for when it's enabled again). See for example
commit 69d72140a that adds timeline support to the phase filter.
Threading
~~~~~~~~~
libavfilter does not yet support frame threading, but you can add slice
threading to your filters.
Let's say the foobar filter has the following frame processing function:
dst = out->data[0];
src = in ->data[0];
for (y = 0; y < inlink->h; y++) {
for (x = 0; x < inlink->w; x++)
dst[x] = foobar(src[x]);
dst += out->linesize[0];
src += in ->linesize[0];
}
The first thing is to make this function work into slices. The new code will
look like this:
for (y = slice_start; y < slice_end; y++) {
for (x = 0; x < inlink->w; x++)
dst[x] = foobar(src[x]);
dst += out->linesize[0];
src += in ->linesize[0];
}
The source and destination pointers, and slice_start/slice_end will be defined
according to the number of jobs. Generally, it looks like this:
const int slice_start = (in->height * jobnr ) / nb_jobs;
const int slice_end = (in->height * (jobnr+1)) / nb_jobs;
uint8_t *dst = out->data[0] + slice_start * out->linesize[0];
const uint8_t *src = in->data[0] + slice_start * in->linesize[0];
This new code will be isolated in a new filter_slice():
static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) { ... }
Note that we need our input and output frame to define slice_{start,end} and
dst/src, which are not available in that callback. They will be transmitted
through the opaque void *arg. You have to define a structure which contains
everything you need:
typedef struct ThreadData {
AVFrame *in, *out;
} ThreadData;
If you need some more information from your local context, put them here.
In you filter_slice function, you access it like that:
const ThreadData *td = arg;
Then in your filter_frame() callback, you need to call the threading
distributor with something like this:
ThreadData td;
// ...
td.in = in;
td.out = out;
ctx->internal->execute(ctx, filter_slice, &td, NULL, FFMIN(outlink->h, ctx->graph->nb_threads));
// ...
return ff_filter_frame(outlink, out);
Last step is to add AVFILTER_FLAG_SLICE_THREADS flag to AVFilter.flags.
For more example of slice threading additions, you can try to run git log -p
--grep 'slice threading' libavfilter/
Finalization
~~~~~~~~~~~~
When your awesome filter is finished, you have a few more steps before you're
done:
- write its documentation in doc/filters.texi, and test the output with make
doc/ffmpeg-filters.html.
- add a FATE test, generally by adding an entry in
tests/fate/filter-video.mak, add running make fate-filter-foobar GEN=1 to
generate the data.
- add an entry in the Changelog
- edit libavfilter/version.h and increase LIBAVFILTER_VERSION_MINOR by one
(and reset LIBAVFILTER_VERSION_MICRO to 100)
- git add ... && git commit -m "avfilter: add foobar filter." && git format-patch -1
When all of this is done, you can submit your patch to the ffmpeg-devel
mailing-list for review. If you need any help, feel free to come on our IRC
channel, #ffmpeg-devel on irc.freenode.net.

1245
ffmpeg.c

File diff suppressed because it is too large Load Diff

View File

@@ -44,6 +44,7 @@
#include "libavutil/fifo.h"
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
#include "libavutil/threadmessage.h"
#include "libswresample/swresample.h"
@@ -56,6 +57,21 @@
#define MAX_STREAMS 1024 /* arbitrary sanity check value */
enum HWAccelID {
HWACCEL_NONE = 0,
HWACCEL_AUTO,
HWACCEL_VDPAU,
HWACCEL_DXVA2,
HWACCEL_VDA,
};
typedef struct HWAccel {
const char *name;
int (*init)(AVCodecContext *s);
enum HWAccelID id;
enum AVPixelFormat pix_fmt;
} HWAccel;
/* select an input stream for an output stream */
typedef struct StreamMap {
int disabled; /* 1 is this mapping is disabled by a negative map */
@@ -100,6 +116,10 @@ typedef struct OptionsContext {
int nb_ts_scale;
SpecifierOpt *dump_attachment;
int nb_dump_attachment;
SpecifierOpt *hwaccels;
int nb_hwaccels;
SpecifierOpt *hwaccel_devices;
int nb_hwaccel_devices;
/* output options */
StreamMap *stream_maps;
@@ -154,6 +174,8 @@ typedef struct OptionsContext {
int nb_intra_matrices;
SpecifierOpt *inter_matrices;
int nb_inter_matrices;
SpecifierOpt *chroma_intra_matrices;
int nb_chroma_intra_matrices;
SpecifierOpt *top_field_first;
int nb_top_field_first;
SpecifierOpt *metadata_map;
@@ -182,6 +204,8 @@ typedef struct OptionsContext {
int nb_guess_layout_max;
SpecifierOpt *apad;
int nb_apad;
SpecifierOpt *discard;
int nb_discard;
} OptionsContext;
typedef struct InputFilter {
@@ -218,7 +242,9 @@ typedef struct InputStream {
int file_index;
AVStream *st;
int discard; /* true if stream data should be discarded */
int user_set_discard;
int decoding_needed; /* true if the packets must be decoded in 'raw_fifo' */
AVCodecContext *dec_ctx;
AVCodec *dec;
AVFrame *decoded_frame;
AVFrame *filter_frame; /* a ref of decoded_frame, to be sent to filters */
@@ -236,10 +262,9 @@ typedef struct InputStream {
int64_t filter_in_rescale_delta_last;
double ts_scale;
int is_start; /* is 1 at the start and after a discontinuity */
int saw_first_ts;
int showed_multi_packet_warning;
AVDictionary *opts;
AVDictionary *decoder_opts;
AVRational framerate; /* framerate forced with -r */
int top_field_first;
int guess_layout_max;
@@ -275,6 +300,28 @@ typedef struct InputStream {
int nb_filters;
int reinit_filters;
/* hwaccel options */
enum HWAccelID hwaccel_id;
char *hwaccel_device;
/* hwaccel context */
enum HWAccelID active_hwaccel_id;
void *hwaccel_ctx;
void (*hwaccel_uninit)(AVCodecContext *s);
int (*hwaccel_get_buffer)(AVCodecContext *s, AVFrame *frame, int flags);
int (*hwaccel_retrieve_data)(AVCodecContext *s, AVFrame *frame);
enum AVPixelFormat hwaccel_pix_fmt;
enum AVPixelFormat hwaccel_retrieved_pix_fmt;
/* stats */
// combined size of all the packets read
uint64_t data_size;
/* number of packets successfully read for this stream */
uint64_t nb_packets;
// number of frames/samples retrieved from the decoder
uint64_t frames_decoded;
uint64_t samples_decoded;
} InputStream;
typedef struct InputFile {
@@ -294,12 +341,10 @@ typedef struct InputFile {
int accurate_seek;
#if HAVE_PTHREADS
AVThreadMessageQueue *in_thread_queue;
pthread_t thread; /* thread reading from this file */
int finished; /* the thread has exited */
int non_blocking; /* reading packets from the thread should not block */
int joined; /* the thread has been joined */
pthread_mutex_t fifo_lock; /* lock for access to fifo */
pthread_cond_t fifo_cond; /* the main thread will signal on this cond after reading from fifo */
AVFifoBuffer *fifo; /* demuxed packets are stored here; freed by the main thread */
#endif
} InputFile;
@@ -314,6 +359,11 @@ enum forced_keyframes_const {
extern const char *const forced_keyframes_const_names[];
typedef enum {
ENCODER_FINISHED = 1,
MUXER_FINISHED = 2,
} OSTFinished ;
typedef struct OutputStream {
int file_index; /* file index */
int index; /* stream index in the output file */
@@ -331,6 +381,7 @@ typedef struct OutputStream {
/* dts of the last packet sent to the muxer */
int64_t last_mux_dts;
AVBitStreamFilterContext *bitstream_filters;
AVCodecContext *enc_ctx;
AVCodec *enc;
int64_t max_frames;
AVFrame *filtered_frame;
@@ -359,13 +410,15 @@ typedef struct OutputStream {
OutputFilter *filter;
char *avfilter;
char *filters; ///< filtergraph associated to the -filter option
char *filters_script; ///< filtergraph script associated to the -filter_script option
int64_t sws_flags;
AVDictionary *opts;
AVDictionary *encoder_opts;
AVDictionary *swr_opts;
AVDictionary *resample_opts;
char *apad;
int finished; /* no more packets should be written for this stream */
OSTFinished finished; /* no more packets should be written for this stream */
int unavailable; /* true if the steram is unavailable (possibly temporarily) */
int stream_copy;
const char *attachment_filename;
@@ -373,6 +426,17 @@ typedef struct OutputStream {
int copy_prior_start;
int keep_pix_fmt;
AVCodecParserContext *parser;
/* stats */
// combined size of all the packets written
uint64_t data_size;
// number of packets send to the muxer
uint64_t packets_written;
// number of frames/samples sent to the encoder
uint64_t frames_encoded;
uint64_t samples_encoded;
} OutputStream;
typedef struct OutputFile {
@@ -427,6 +491,8 @@ extern float max_error_rate;
extern const AVIOInterruptCB int_cb;
extern const OptionDef options[];
extern const HWAccel hwaccels[];
void term_init(void);
void term_exit(void);
@@ -440,7 +506,7 @@ void assert_avoptions(AVDictionary *m);
int guess_input_channel_layout(InputStream *ist);
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum AVPixelFormat target);
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodecContext *avctx, AVCodec *codec, enum AVPixelFormat target);
void choose_sample_fmt(AVStream *st, AVCodec *codec);
int configure_filtergraph(FilterGraph *fg);
@@ -450,4 +516,8 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost);
int ffmpeg_parse_options(int argc, char **argv);
int vdpau_init(AVCodecContext *s);
int dxva2_init(AVCodecContext *s);
int vda_init(AVCodecContext *s);
#endif /* FFMPEG_H */

620
ffmpeg_dxva2.c Normal file
View File

@@ -0,0 +1,620 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <windows.h>
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0600
#define DXVA2API_USE_BITFIELDS
#define COBJMACROS
#include <stdint.h>
#include <d3d9.h>
#include <dxva2api.h>
#include "ffmpeg.h"
#include "libavcodec/dxva2.h"
#include "libavutil/avassert.h"
#include "libavutil/buffer.h"
#include "libavutil/frame.h"
#include "libavutil/imgutils.h"
#include "libavutil/pixfmt.h"
/* define all the GUIDs used directly here,
to avoid problems with inconsistent dxva2api.h versions in mingw-w64 and different MSVC version */
#include <initguid.h>
DEFINE_GUID(IID_IDirectXVideoDecoderService, 0xfc51a551,0xd5e7,0x11d9,0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02);
DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65,0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);
DEFINE_GUID(DXVA2_ModeMPEG2and1_VLD, 0x86695f12, 0x340e,0x4f04,0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60);
DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_Intel_ModeH264_E, 0x604F8E68, 0x4951,0x4C54,0x88,0xFE,0xAB,0xD2,0x5C,0x15,0xB3,0xD6);
DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA2_ModeVC1_D2010, 0x1b81beA4, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA2_NoEncrypt, 0x1b81beD0, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(GUID_NULL, 0x00000000, 0x0000,0x0000,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
typedef IDirect3D9* WINAPI pDirect3DCreate9(UINT);
typedef HRESULT WINAPI pCreateDeviceManager9(UINT *, IDirect3DDeviceManager9 **);
typedef struct dxva2_mode {
const GUID *guid;
enum AVCodecID codec;
} dxva2_mode;
static const dxva2_mode dxva2_modes[] = {
/* MPEG-2 */
{ &DXVA2_ModeMPEG2_VLD, AV_CODEC_ID_MPEG2VIDEO },
{ &DXVA2_ModeMPEG2and1_VLD, AV_CODEC_ID_MPEG2VIDEO },
/* H.264 */
{ &DXVA2_ModeH264_F, AV_CODEC_ID_H264 },
{ &DXVA2_ModeH264_E, AV_CODEC_ID_H264 },
/* Intel specific H.264 mode */
{ &DXVADDI_Intel_ModeH264_E, AV_CODEC_ID_H264 },
/* VC-1 / WMV3 */
{ &DXVA2_ModeVC1_D2010, AV_CODEC_ID_VC1 },
{ &DXVA2_ModeVC1_D2010, AV_CODEC_ID_WMV3 },
{ &DXVA2_ModeVC1_D, AV_CODEC_ID_VC1 },
{ &DXVA2_ModeVC1_D, AV_CODEC_ID_WMV3 },
{ NULL, 0 },
};
typedef struct surface_info {
int used;
uint64_t age;
} surface_info;
typedef struct DXVA2Context {
HMODULE d3dlib;
HMODULE dxva2lib;
HANDLE deviceHandle;
IDirect3D9 *d3d9;
IDirect3DDevice9 *d3d9device;
IDirect3DDeviceManager9 *d3d9devmgr;
IDirectXVideoDecoderService *decoder_service;
IDirectXVideoDecoder *decoder;
GUID decoder_guid;
DXVA2_ConfigPictureDecode decoder_config;
LPDIRECT3DSURFACE9 *surfaces;
surface_info *surface_infos;
uint32_t num_surfaces;
uint64_t surface_age;
AVFrame *tmp_frame;
} DXVA2Context;
typedef struct DXVA2SurfaceWrapper {
DXVA2Context *ctx;
LPDIRECT3DSURFACE9 surface;
IDirectXVideoDecoder *decoder;
} DXVA2SurfaceWrapper;
static void dxva2_destroy_decoder(AVCodecContext *s)
{
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
int i;
if (ctx->surfaces) {
for (i = 0; i < ctx->num_surfaces; i++) {
if (ctx->surfaces[i])
IDirect3DSurface9_Release(ctx->surfaces[i]);
}
}
av_freep(&ctx->surfaces);
av_freep(&ctx->surface_infos);
ctx->num_surfaces = 0;
ctx->surface_age = 0;
if (ctx->decoder) {
IDirectXVideoDecoder_Release(ctx->decoder);
ctx->decoder = NULL;
}
}
static void dxva2_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
ist->hwaccel_uninit = NULL;
ist->hwaccel_get_buffer = NULL;
ist->hwaccel_retrieve_data = NULL;
if (ctx->decoder)
dxva2_destroy_decoder(s);
if (ctx->decoder_service)
IDirectXVideoDecoderService_Release(ctx->decoder_service);
if (ctx->d3d9devmgr && ctx->deviceHandle != INVALID_HANDLE_VALUE)
IDirect3DDeviceManager9_CloseDeviceHandle(ctx->d3d9devmgr, ctx->deviceHandle);
if (ctx->d3d9devmgr)
IDirect3DDeviceManager9_Release(ctx->d3d9devmgr);
if (ctx->d3d9device)
IDirect3DDevice9_Release(ctx->d3d9device);
if (ctx->d3d9)
IDirect3D9_Release(ctx->d3d9);
if (ctx->d3dlib)
FreeLibrary(ctx->d3dlib);
if (ctx->dxva2lib)
FreeLibrary(ctx->dxva2lib);
av_frame_free(&ctx->tmp_frame);
av_freep(&ist->hwaccel_ctx);
av_freep(&s->hwaccel_context);
}
static void dxva2_release_buffer(void *opaque, uint8_t *data)
{
DXVA2SurfaceWrapper *w = opaque;
DXVA2Context *ctx = w->ctx;
int i;
for (i = 0; i < ctx->num_surfaces; i++) {
if (ctx->surfaces[i] == w->surface) {
ctx->surface_infos[i].used = 0;
break;
}
}
IDirect3DSurface9_Release(w->surface);
IDirectXVideoDecoder_Release(w->decoder);
av_free(w);
}
static int dxva2_get_buffer(AVCodecContext *s, AVFrame *frame, int flags)
{
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
int i, old_unused = -1;
LPDIRECT3DSURFACE9 surface;
DXVA2SurfaceWrapper *w = NULL;
av_assert0(frame->format == AV_PIX_FMT_DXVA2_VLD);
for (i = 0; i < ctx->num_surfaces; i++) {
surface_info *info = &ctx->surface_infos[i];
if (!info->used && (old_unused == -1 || info->age < ctx->surface_infos[old_unused].age))
old_unused = i;
}
if (old_unused == -1) {
av_log(NULL, AV_LOG_ERROR, "No free DXVA2 surface!\n");
return AVERROR(ENOMEM);
}
i = old_unused;
surface = ctx->surfaces[i];
w = av_mallocz(sizeof(*w));
if (!w)
return AVERROR(ENOMEM);
frame->buf[0] = av_buffer_create((uint8_t*)surface, 0,
dxva2_release_buffer, w,
AV_BUFFER_FLAG_READONLY);
if (!frame->buf[0]) {
av_free(w);
return AVERROR(ENOMEM);
}
w->ctx = ctx;
w->surface = surface;
IDirect3DSurface9_AddRef(w->surface);
w->decoder = ctx->decoder;
IDirectXVideoDecoder_AddRef(w->decoder);
ctx->surface_infos[i].used = 1;
ctx->surface_infos[i].age = ctx->surface_age++;
frame->data[3] = (uint8_t *)surface;
return 0;
}
static int dxva2_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
LPDIRECT3DSURFACE9 surface = (LPDIRECT3DSURFACE9)frame->data[3];
InputStream *ist = s->opaque;
DXVA2Context *ctx = ist->hwaccel_ctx;
D3DSURFACE_DESC surfaceDesc;
D3DLOCKED_RECT LockedRect;
HRESULT hr;
int ret;
IDirect3DSurface9_GetDesc(surface, &surfaceDesc);
ctx->tmp_frame->width = frame->width;
ctx->tmp_frame->height = frame->height;
ctx->tmp_frame->format = AV_PIX_FMT_NV12;
ret = av_frame_get_buffer(ctx->tmp_frame, 32);
if (ret < 0)
return ret;
hr = IDirect3DSurface9_LockRect(surface, &LockedRect, NULL, D3DLOCK_READONLY);
if (FAILED(hr)) {
av_log(NULL, AV_LOG_ERROR, "Unable to lock DXVA2 surface\n");
return AVERROR_UNKNOWN;
}
av_image_copy_plane(ctx->tmp_frame->data[0], ctx->tmp_frame->linesize[0],
(uint8_t*)LockedRect.pBits,
LockedRect.Pitch, frame->width, frame->height);
av_image_copy_plane(ctx->tmp_frame->data[1], ctx->tmp_frame->linesize[1],
(uint8_t*)LockedRect.pBits + LockedRect.Pitch * surfaceDesc.Height,
LockedRect.Pitch, frame->width, frame->height / 2);
IDirect3DSurface9_UnlockRect(surface);
ret = av_frame_copy_props(ctx->tmp_frame, frame);
if (ret < 0)
goto fail;
av_frame_unref(frame);
av_frame_move_ref(frame, ctx->tmp_frame);
return 0;
fail:
av_frame_unref(ctx->tmp_frame);
return ret;
}
static int dxva2_alloc(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
DXVA2Context *ctx;
pDirect3DCreate9 *createD3D = NULL;
pCreateDeviceManager9 *createDeviceManager = NULL;
HRESULT hr;
D3DPRESENT_PARAMETERS d3dpp = {0};
D3DDISPLAYMODE d3ddm;
unsigned resetToken = 0;
UINT adapter = D3DADAPTER_DEFAULT;
ctx = av_mallocz(sizeof(*ctx));
if (!ctx)
return AVERROR(ENOMEM);
ctx->deviceHandle = INVALID_HANDLE_VALUE;
ist->hwaccel_ctx = ctx;
ist->hwaccel_uninit = dxva2_uninit;
ist->hwaccel_get_buffer = dxva2_get_buffer;
ist->hwaccel_retrieve_data = dxva2_retrieve_data;
ctx->d3dlib = LoadLibrary("d3d9.dll");
if (!ctx->d3dlib) {
av_log(NULL, loglevel, "Failed to load D3D9 library\n");
goto fail;
}
ctx->dxva2lib = LoadLibrary("dxva2.dll");
if (!ctx->dxva2lib) {
av_log(NULL, loglevel, "Failed to load DXVA2 library\n");
goto fail;
}
createD3D = (pDirect3DCreate9 *)GetProcAddress(ctx->d3dlib, "Direct3DCreate9");
if (!createD3D) {
av_log(NULL, loglevel, "Failed to locate Direct3DCreate9\n");
goto fail;
}
createDeviceManager = (pCreateDeviceManager9 *)GetProcAddress(ctx->dxva2lib, "DXVA2CreateDirect3DDeviceManager9");
if (!createDeviceManager) {
av_log(NULL, loglevel, "Failed to locate DXVA2CreateDirect3DDeviceManager9\n");
goto fail;
}
ctx->d3d9 = createD3D(D3D_SDK_VERSION);
if (!ctx->d3d9) {
av_log(NULL, loglevel, "Failed to create IDirect3D object\n");
goto fail;
}
if (ist->hwaccel_device) {
adapter = atoi(ist->hwaccel_device);
av_log(NULL, AV_LOG_INFO, "Using HWAccel device %d\n", adapter);
}
IDirect3D9_GetAdapterDisplayMode(ctx->d3d9, adapter, &d3ddm);
d3dpp.Windowed = TRUE;
d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 480;
d3dpp.BackBufferCount = 0;
d3dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Flags = D3DPRESENTFLAG_VIDEO;
hr = IDirect3D9_CreateDevice(ctx->d3d9, adapter, D3DDEVTYPE_HAL, GetShellWindow(),
D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED | D3DCREATE_FPU_PRESERVE,
&d3dpp, &ctx->d3d9device);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create Direct3D device\n");
goto fail;
}
hr = createDeviceManager(&resetToken, &ctx->d3d9devmgr);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create Direct3D device manager\n");
goto fail;
}
hr = IDirect3DDeviceManager9_ResetDevice(ctx->d3d9devmgr, ctx->d3d9device, resetToken);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to bind Direct3D device to device manager\n");
goto fail;
}
hr = IDirect3DDeviceManager9_OpenDeviceHandle(ctx->d3d9devmgr, &ctx->deviceHandle);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to open device handle\n");
goto fail;
}
hr = IDirect3DDeviceManager9_GetVideoService(ctx->d3d9devmgr, ctx->deviceHandle, &IID_IDirectXVideoDecoderService, (void **)&ctx->decoder_service);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create IDirectXVideoDecoderService\n");
goto fail;
}
ctx->tmp_frame = av_frame_alloc();
if (!ctx->tmp_frame)
goto fail;
s->hwaccel_context = av_mallocz(sizeof(struct dxva_context));
if (!s->hwaccel_context)
goto fail;
return 0;
fail:
dxva2_uninit(s);
return AVERROR(EINVAL);
}
static int dxva2_get_decoder_configuration(AVCodecContext *s, const GUID *device_guid,
const DXVA2_VideoDesc *desc,
DXVA2_ConfigPictureDecode *config)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
DXVA2Context *ctx = ist->hwaccel_ctx;
unsigned cfg_count = 0, best_score = 0;
DXVA2_ConfigPictureDecode *cfg_list = NULL;
DXVA2_ConfigPictureDecode best_cfg = {{0}};
HRESULT hr;
int i;
hr = IDirectXVideoDecoderService_GetDecoderConfigurations(ctx->decoder_service, device_guid, desc, NULL, &cfg_count, &cfg_list);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Unable to retrieve decoder configurations\n");
return AVERROR(EINVAL);
}
for (i = 0; i < cfg_count; i++) {
DXVA2_ConfigPictureDecode *cfg = &cfg_list[i];
unsigned score;
if (cfg->ConfigBitstreamRaw == 1)
score = 1;
else if (s->codec_id == AV_CODEC_ID_H264 && cfg->ConfigBitstreamRaw == 2)
score = 2;
else
continue;
if (IsEqualGUID(&cfg->guidConfigBitstreamEncryption, &DXVA2_NoEncrypt))
score += 16;
if (score > best_score) {
best_score = score;
best_cfg = *cfg;
}
}
CoTaskMemFree(cfg_list);
if (!best_score) {
av_log(NULL, loglevel, "No valid decoder configuration available\n");
return AVERROR(EINVAL);
}
*config = best_cfg;
return 0;
}
static int dxva2_create_decoder(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
DXVA2Context *ctx = ist->hwaccel_ctx;
struct dxva_context *dxva_ctx = s->hwaccel_context;
GUID *guid_list = NULL;
unsigned guid_count = 0, i, j;
GUID device_guid = GUID_NULL;
D3DFORMAT target_format = 0;
DXVA2_VideoDesc desc = { 0 };
DXVA2_ConfigPictureDecode config;
HRESULT hr;
int surface_alignment;
int ret;
hr = IDirectXVideoDecoderService_GetDecoderDeviceGuids(ctx->decoder_service, &guid_count, &guid_list);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to retrieve decoder device GUIDs\n");
goto fail;
}
for (i = 0; dxva2_modes[i].guid; i++) {
D3DFORMAT *target_list = NULL;
unsigned target_count = 0;
const dxva2_mode *mode = &dxva2_modes[i];
if (mode->codec != s->codec_id)
continue;
for (j = 0; j < guid_count; j++) {
if (IsEqualGUID(mode->guid, &guid_list[j]))
break;
}
if (j == guid_count)
continue;
hr = IDirectXVideoDecoderService_GetDecoderRenderTargets(ctx->decoder_service, mode->guid, &target_count, &target_list);
if (FAILED(hr)) {
continue;
}
for (j = 0; j < target_count; j++) {
const D3DFORMAT format = target_list[j];
if (format == MKTAG('N','V','1','2')) {
target_format = format;
break;
}
}
CoTaskMemFree(target_list);
if (target_format) {
device_guid = *mode->guid;
break;
}
}
CoTaskMemFree(guid_list);
if (IsEqualGUID(&device_guid, &GUID_NULL)) {
av_log(NULL, loglevel, "No decoder device for codec found\n");
goto fail;
}
desc.SampleWidth = s->coded_width;
desc.SampleHeight = s->coded_height;
desc.Format = target_format;
ret = dxva2_get_decoder_configuration(s, &device_guid, &desc, &config);
if (ret < 0) {
goto fail;
}
/* decoding MPEG-2 requires additional alignment on some Intel GPUs,
but it causes issues for H.264 on certain AMD GPUs..... */
if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO)
surface_alignment = 32;
else
surface_alignment = 16;
/* 4 base work surfaces */
ctx->num_surfaces = 4;
/* add surfaces based on number of possible refs */
if (s->codec_id == AV_CODEC_ID_H264)
ctx->num_surfaces += 16;
else
ctx->num_surfaces += 2;
/* add extra surfaces for frame threading */
if (s->active_thread_type & FF_THREAD_FRAME)
ctx->num_surfaces += s->thread_count;
ctx->surfaces = av_mallocz(ctx->num_surfaces * sizeof(*ctx->surfaces));
ctx->surface_infos = av_mallocz(ctx->num_surfaces * sizeof(*ctx->surface_infos));
if (!ctx->surfaces || !ctx->surface_infos) {
av_log(NULL, loglevel, "Unable to allocate surface arrays\n");
goto fail;
}
hr = IDirectXVideoDecoderService_CreateSurface(ctx->decoder_service,
FFALIGN(s->coded_width, surface_alignment),
FFALIGN(s->coded_height, surface_alignment),
ctx->num_surfaces - 1,
target_format, D3DPOOL_DEFAULT, 0,
DXVA2_VideoDecoderRenderTarget,
ctx->surfaces, NULL);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create %d video surfaces\n", ctx->num_surfaces);
goto fail;
}
hr = IDirectXVideoDecoderService_CreateVideoDecoder(ctx->decoder_service, &device_guid,
&desc, &config, ctx->surfaces,
ctx->num_surfaces, &ctx->decoder);
if (FAILED(hr)) {
av_log(NULL, loglevel, "Failed to create DXVA2 video decoder\n");
goto fail;
}
ctx->decoder_guid = device_guid;
ctx->decoder_config = config;
dxva_ctx->cfg = &ctx->decoder_config;
dxva_ctx->decoder = ctx->decoder;
dxva_ctx->surface = ctx->surfaces;
dxva_ctx->surface_count = ctx->num_surfaces;
if (IsEqualGUID(&ctx->decoder_guid, &DXVADDI_Intel_ModeH264_E))
dxva_ctx->workaround |= FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO;
return 0;
fail:
dxva2_destroy_decoder(s);
return AVERROR(EINVAL);
}
int dxva2_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
DXVA2Context *ctx;
int ret;
if (!ist->hwaccel_ctx) {
ret = dxva2_alloc(s);
if (ret < 0)
return ret;
}
ctx = ist->hwaccel_ctx;
if (s->codec_id == AV_CODEC_ID_H264 &&
(s->profile & ~FF_PROFILE_H264_CONSTRAINED) > FF_PROFILE_H264_HIGH) {
av_log(NULL, loglevel, "Unsupported H.264 profile for DXVA2 HWAccel: %d\n", s->profile);
return AVERROR(EINVAL);
}
if (ctx->decoder)
dxva2_destroy_decoder(s);
ret = dxva2_create_decoder(s);
if (ret < 0) {
av_log(NULL, loglevel, "Error creating the DXVA2 decoder\n");
return ret;
}
return 0;
}

View File

@@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdint.h>
#include "ffmpeg.h"
#include "libavfilter/avfilter.h"
@@ -35,21 +37,23 @@
#include "libavutil/imgutils.h"
#include "libavutil/samplefmt.h"
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum AVPixelFormat target)
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodecContext *enc_ctx, AVCodec *codec, enum AVPixelFormat target)
{
if (codec && codec->pix_fmts) {
const enum AVPixelFormat *p = codec->pix_fmts;
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(target);
int has_alpha = desc ? desc->nb_components % 2 == 0 : 0;
enum AVPixelFormat best= AV_PIX_FMT_NONE;
const enum AVPixelFormat mjpeg_formats[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
const enum AVPixelFormat ljpeg_formats[] = { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
static const enum AVPixelFormat mjpeg_formats[] =
{ AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
static const enum AVPixelFormat ljpeg_formats[] =
{ AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
if (st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (st->codec->codec_id == AV_CODEC_ID_MJPEG) {
if (enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (enc_ctx->codec_id == AV_CODEC_ID_MJPEG) {
p = mjpeg_formats;
} else if (st->codec->codec_id == AV_CODEC_ID_LJPEG) {
} else if (enc_ctx->codec_id == AV_CODEC_ID_LJPEG) {
p =ljpeg_formats;
}
}
@@ -95,21 +99,21 @@ void choose_sample_fmt(AVStream *st, AVCodec *codec)
static char *choose_pix_fmts(OutputStream *ost)
{
AVDictionaryEntry *strict_dict = av_dict_get(ost->opts, "strict", NULL, 0);
AVDictionaryEntry *strict_dict = av_dict_get(ost->encoder_opts, "strict", NULL, 0);
if (strict_dict)
// used by choose_pixel_fmt() and below
av_opt_set(ost->st->codec, "strict", strict_dict->value, 0);
av_opt_set(ost->enc_ctx, "strict", strict_dict->value, 0);
if (ost->keep_pix_fmt) {
if (ost->filter)
avfilter_graph_set_auto_convert(ost->filter->graph->graph,
AVFILTER_AUTO_CONVERT_NONE);
if (ost->st->codec->pix_fmt == AV_PIX_FMT_NONE)
if (ost->enc_ctx->pix_fmt == AV_PIX_FMT_NONE)
return NULL;
return av_strdup(av_get_pix_fmt_name(ost->st->codec->pix_fmt));
return av_strdup(av_get_pix_fmt_name(ost->enc_ctx->pix_fmt));
}
if (ost->st->codec->pix_fmt != AV_PIX_FMT_NONE) {
return av_strdup(av_get_pix_fmt_name(choose_pixel_fmt(ost->st, ost->enc, ost->st->codec->pix_fmt)));
if (ost->enc_ctx->pix_fmt != AV_PIX_FMT_NONE) {
return av_strdup(av_get_pix_fmt_name(choose_pixel_fmt(ost->st, ost->enc_ctx, ost->enc, ost->enc_ctx->pix_fmt)));
} else if (ost->enc && ost->enc->pix_fmts) {
const enum AVPixelFormat *p;
AVIOContext *s = NULL;
@@ -120,10 +124,10 @@ static char *choose_pix_fmts(OutputStream *ost)
exit_program(1);
p = ost->enc->pix_fmts;
if (ost->st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (ost->st->codec->codec_id == AV_CODEC_ID_MJPEG) {
if (ost->enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (ost->enc_ctx->codec_id == AV_CODEC_ID_MJPEG) {
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
} else if (ost->st->codec->codec_id == AV_CODEC_ID_LJPEG) {
} else if (ost->enc_ctx->codec_id == AV_CODEC_ID_LJPEG) {
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
}
@@ -145,8 +149,8 @@ static char *choose_pix_fmts(OutputStream *ost)
#define DEF_CHOOSE_FORMAT(type, var, supported_list, none, get_name) \
static char *choose_ ## var ## s(OutputStream *ost) \
{ \
if (ost->st->codec->var != none) { \
get_name(ost->st->codec->var); \
if (ost->enc_ctx->var != none) { \
get_name(ost->enc_ctx->var); \
return av_strdup(name); \
} else if (ost->enc && ost->enc->supported_list) { \
const type *p; \
@@ -258,7 +262,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
/* find the first unused stream of corresponding type */
for (i = 0; i < nb_input_streams; i++) {
ist = input_streams[i];
if (ist->st->codec->codec_type == type && ist->discard)
if (ist->dec_ctx->codec_type == type && ist->discard)
break;
}
if (i == nb_input_streams) {
@@ -340,7 +344,7 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter,
char *pix_fmts;
OutputStream *ost = ofilter->ost;
OutputFile *of = output_files[ost->file_index];
AVCodecContext *codec = ost->st->codec;
AVCodecContext *codec = ost->enc_ctx;
AVFilterContext *last_filter = out->filter_ctx;
int pad_idx = out->pad_idx;
int ret;
@@ -430,7 +434,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
{
OutputStream *ost = ofilter->ost;
OutputFile *of = output_files[ost->file_index];
AVCodecContext *codec = ost->st->codec;
AVCodecContext *codec = ost->enc_ctx;
AVFilterContext *last_filter = out->filter_ctx;
int pad_idx = out->pad_idx;
char *sample_fmts, *sample_rates, *channel_layouts;
@@ -591,8 +595,8 @@ static int sub2video_prepare(InputStream *ist)
/* Compute the size of the canvas for the subtitles stream.
If the subtitles codec has set a size, use it. Otherwise use the
maximum dimensions of the video streams in the same file. */
w = ist->st->codec->width;
h = ist->st->codec->height;
w = ist->dec_ctx->width;
h = ist->dec_ctx->height;
if (!(w && h)) {
for (i = 0; i < avf->nb_streams; i++) {
if (avf->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
@@ -606,12 +610,12 @@ static int sub2video_prepare(InputStream *ist)
}
av_log(avf, AV_LOG_INFO, "sub2video: using %dx%d canvas\n", w, h);
}
ist->sub2video.w = ist->st->codec->width = ist->resample_width = w;
ist->sub2video.h = ist->st->codec->height = ist->resample_height = h;
ist->sub2video.w = ist->dec_ctx->width = ist->resample_width = w;
ist->sub2video.h = ist->dec_ctx->height = ist->resample_height = h;
/* rectangles are AV_PIX_FMT_PAL8, but we have no guarantee that the
palettes for all rectangles are identical or compatible */
ist->resample_pix_fmt = ist->st->codec->pix_fmt = AV_PIX_FMT_RGB32;
ist->resample_pix_fmt = ist->dec_ctx->pix_fmt = AV_PIX_FMT_RGB32;
ist->sub2video.frame = av_frame_alloc();
if (!ist->sub2video.frame)
@@ -634,7 +638,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
char name[255];
int ret, pad_idx = 0;
if (ist->st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
av_log(NULL, AV_LOG_ERROR, "Cannot connect video filter to audio input\n");
return AVERROR(EINVAL);
}
@@ -642,7 +646,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
if (!fr.num)
fr = av_guess_frame_rate(input_files[ist->file_index]->ctx, ist->st, NULL);
if (ist->st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_SUBTITLE) {
ret = sub2video_prepare(ist);
if (ret < 0)
return ret;
@@ -650,16 +654,17 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
sar = ist->st->sample_aspect_ratio.num ?
ist->st->sample_aspect_ratio :
ist->st->codec->sample_aspect_ratio;
ist->dec_ctx->sample_aspect_ratio;
if(!sar.den)
sar = (AVRational){0,1};
av_bprint_init(&args, 0, 1);
av_bprintf(&args,
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:"
"pixel_aspect=%d/%d:sws_param=flags=%d", ist->resample_width,
ist->resample_height, ist->resample_pix_fmt,
ist->resample_height,
ist->hwaccel_retrieve_data ? ist->hwaccel_retrieved_pix_fmt : ist->resample_pix_fmt,
tb.num, tb.den, sar.num, sar.den,
SWS_BILINEAR + ((ist->st->codec->flags&CODEC_FLAG_BITEXACT) ? SWS_BITEXACT:0));
SWS_BILINEAR + ((ist->dec_ctx->flags&CODEC_FLAG_BITEXACT) ? SWS_BITEXACT:0));
if (fr.num && fr.den)
av_bprintf(&args, ":frame_rate=%d/%d", fr.num, fr.den);
snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index,
@@ -727,21 +732,21 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
char name[255];
int ret, pad_idx = 0;
if (ist->st->codec->codec_type != AVMEDIA_TYPE_AUDIO) {
if (ist->dec_ctx->codec_type != AVMEDIA_TYPE_AUDIO) {
av_log(NULL, AV_LOG_ERROR, "Cannot connect audio filter to non audio input\n");
return AVERROR(EINVAL);
}
av_bprint_init(&args, 0, AV_BPRINT_SIZE_AUTOMATIC);
av_bprintf(&args, "time_base=%d/%d:sample_rate=%d:sample_fmt=%s",
1, ist->st->codec->sample_rate,
ist->st->codec->sample_rate,
av_get_sample_fmt_name(ist->st->codec->sample_fmt));
if (ist->st->codec->channel_layout)
1, ist->dec_ctx->sample_rate,
ist->dec_ctx->sample_rate,
av_get_sample_fmt_name(ist->dec_ctx->sample_fmt));
if (ist->dec_ctx->channel_layout)
av_bprintf(&args, ":channel_layout=0x%"PRIx64,
ist->st->codec->channel_layout);
ist->dec_ctx->channel_layout);
else
av_bprintf(&args, ":channels=%d", ist->st->codec->channels);
av_bprintf(&args, ":channels=%d", ist->dec_ctx->channels);
snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index,
ist->file_index, ist->st->index);
@@ -869,7 +874,7 @@ int configure_filtergraph(FilterGraph *fg)
args[strlen(args) - 1] = '\0';
fg->graph->resample_lavr_opts = av_strdup(args);
e = av_dict_get(ost->opts, "threads", NULL, 0);
e = av_dict_get(ost->encoder_opts, "threads", NULL, 0);
if (e)
av_opt_set(fg->graph, "threads", e->value, 0);
}

View File

@@ -62,6 +62,20 @@
outvar = o->name[i].u.type;\
}\
}
const HWAccel hwaccels[] = {
#if HAVE_VDPAU_X11
{ "vdpau", vdpau_init, HWACCEL_VDPAU, AV_PIX_FMT_VDPAU },
#endif
#if HAVE_DXVA2_LIB
{ "dxva2", dxva2_init, HWACCEL_DXVA2, AV_PIX_FMT_DXVA2_VLD },
#endif
#if CONFIG_VDA
{ "vda", vda_init, HWACCEL_VDA, AV_PIX_FMT_VDA },
#endif
{ 0 },
};
char *vstats_filename;
float audio_drift_threshold = 0.1;
@@ -90,8 +104,6 @@ float max_error_rate = 2.0/3;
static int intra_only = 0;
static int file_overwrite = 0;
static int no_file_overwrite = 0;
static int video_discard = 0;
static int intra_dc_precision = 8;
static int do_psnr = 0;
static int input_sync;
static int override_ffserver = 0;
@@ -550,14 +562,17 @@ static AVCodec *choose_decoder(OptionsContext *o, AVFormatContext *s, AVStream *
* list of input streams. */
static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
{
int i;
char *next, *codec_tag = NULL;
int i, ret;
for (i = 0; i < ic->nb_streams; i++) {
AVStream *st = ic->streams[i];
AVCodecContext *dec = st->codec;
InputStream *ist = av_mallocz(sizeof(*ist));
char *framerate = NULL;
char *framerate = NULL, *hwaccel = NULL, *hwaccel_device = NULL;
char *codec_tag = NULL;
char *next;
char *discard_str = NULL;
const AVOption *discard_opt = av_opt_find(dec, "skip_frame", NULL, 0, 0);
if (!ist)
exit_program(1);
@@ -582,13 +597,33 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
}
ist->dec = choose_decoder(o, ic, st);
ist->opts = filter_codec_opts(o->g->codec_opts, ist->st->codec->codec_id, ic, st, ist->dec);
ist->decoder_opts = filter_codec_opts(o->g->codec_opts, ist->st->codec->codec_id, ic, st, ist->dec);
ist->reinit_filters = -1;
MATCH_PER_STREAM_OPT(reinit_filters, i, ist->reinit_filters, ic, st);
MATCH_PER_STREAM_OPT(discard, str, discard_str, ic, st);
ist->user_set_discard = AVDISCARD_NONE;
if (discard_str && av_opt_eval_int(dec, discard_opt, discard_str, &ist->user_set_discard) < 0) {
av_log(NULL, AV_LOG_ERROR, "Error parsing discard %s.\n",
discard_str);
exit_program(1);
}
ist->filter_in_rescale_delta_last = AV_NOPTS_VALUE;
ist->dec_ctx = avcodec_alloc_context3(ist->dec);
if (!ist->dec_ctx) {
av_log(NULL, AV_LOG_ERROR, "Error allocating the decoder context.\n");
exit_program(1);
}
ret = avcodec_copy_context(ist->dec_ctx, dec);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error initializing the decoder context.\n");
exit_program(1);
}
switch (dec->codec_type) {
case AVMEDIA_TYPE_VIDEO:
if(!ist->dec)
@@ -597,9 +632,9 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
dec->flags |= CODEC_FLAG_EMU_EDGE;
}
ist->resample_height = dec->height;
ist->resample_width = dec->width;
ist->resample_pix_fmt = dec->pix_fmt;
ist->resample_height = ist->dec_ctx->height;
ist->resample_width = ist->dec_ctx->width;
ist->resample_pix_fmt = ist->dec_ctx->pix_fmt;
MATCH_PER_STREAM_OPT(frame_rates, str, framerate, ic, st);
if (framerate && av_parse_video_rate(&ist->framerate,
@@ -612,16 +647,51 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
ist->top_field_first = -1;
MATCH_PER_STREAM_OPT(top_field_first, i, ist->top_field_first, ic, st);
MATCH_PER_STREAM_OPT(hwaccels, str, hwaccel, ic, st);
if (hwaccel) {
if (!strcmp(hwaccel, "none"))
ist->hwaccel_id = HWACCEL_NONE;
else if (!strcmp(hwaccel, "auto"))
ist->hwaccel_id = HWACCEL_AUTO;
else {
int i;
for (i = 0; hwaccels[i].name; i++) {
if (!strcmp(hwaccels[i].name, hwaccel)) {
ist->hwaccel_id = hwaccels[i].id;
break;
}
}
if (!ist->hwaccel_id) {
av_log(NULL, AV_LOG_FATAL, "Unrecognized hwaccel: %s.\n",
hwaccel);
av_log(NULL, AV_LOG_FATAL, "Supported hwaccels: ");
for (i = 0; hwaccels[i].name; i++)
av_log(NULL, AV_LOG_FATAL, "%s ", hwaccels[i].name);
av_log(NULL, AV_LOG_FATAL, "\n");
exit_program(1);
}
}
}
MATCH_PER_STREAM_OPT(hwaccel_devices, str, hwaccel_device, ic, st);
if (hwaccel_device) {
ist->hwaccel_device = av_strdup(hwaccel_device);
if (!ist->hwaccel_device)
exit_program(1);
}
ist->hwaccel_pix_fmt = AV_PIX_FMT_NONE;
break;
case AVMEDIA_TYPE_AUDIO:
ist->guess_layout_max = INT_MAX;
MATCH_PER_STREAM_OPT(guess_layout_max, i, ist->guess_layout_max, ic, st);
guess_input_channel_layout(ist);
ist->resample_sample_fmt = dec->sample_fmt;
ist->resample_sample_rate = dec->sample_rate;
ist->resample_channels = dec->channels;
ist->resample_channel_layout = dec->channel_layout;
ist->resample_sample_fmt = ist->dec_ctx->sample_fmt;
ist->resample_sample_rate = ist->dec_ctx->sample_rate;
ist->resample_channels = ist->dec_ctx->channels;
ist->resample_channel_layout = ist->dec_ctx->channel_layout;
break;
case AVMEDIA_TYPE_DATA:
@@ -654,10 +724,9 @@ static void assert_file_overwrite(const char *filename)
exit_program(1);
}
if (!file_overwrite &&
(strchr(filename, ':') == NULL || filename[1] == ':' ||
av_strstart(filename, "file:", NULL))) {
if (avio_check(filename, 0) == 0) {
if (!file_overwrite) {
const char *proto_name = avio_find_protocol_name(filename);
if (proto_name && !strcmp(proto_name, "file") && avio_check(filename, 0) == 0) {
if (stdin_interaction && !no_file_overwrite) {
fprintf(stderr,"File '%s' already exists. Overwrite ? [y/N] ", filename);
fflush(stderr);
@@ -818,8 +887,10 @@ static int open_input_file(OptionsContext *o, const char *filename)
ret = avformat_find_stream_info(ic, opts);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "%s: could not find codec parameters\n", filename);
avformat_close_input(&ic);
exit_program(1);
if (ic->nb_streams == 0) {
avformat_close_input(&ic);
exit_program(1);
}
}
timestamp = (o->start_time == AV_NOPTS_VALUE) ? 0 : o->start_time;
@@ -862,7 +933,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
unused_opts = strip_specifiers(o->g->codec_opts);
for (i = f->ist_index; i < nb_input_streams; i++) {
e = NULL;
while ((e = av_dict_get(input_streams[i]->opts, "", e,
while ((e = av_dict_get(input_streams[i]->decoder_opts, "", e,
AV_DICT_IGNORE_SUFFIX)))
av_dict_set(&unused_opts, e->key, NULL, 0);
}
@@ -872,8 +943,13 @@ static int open_input_file(OptionsContext *o, const char *filename)
const AVClass *class = avcodec_get_class();
const AVOption *option = av_opt_find(&class, e->key, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ);
if (!option)
const AVClass *fclass = avformat_get_class();
const AVOption *foption = av_opt_find(&fclass, e->key, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ);
if (!option || foption)
continue;
if (!(option->flags & AV_OPT_FLAG_DECODING_PARAM)) {
av_log(NULL, AV_LOG_ERROR, "Codec AVOption %s (%s) specified for "
"input file #%d (%s) is not a decoding option.\n", e->key,
@@ -930,14 +1006,14 @@ static uint8_t *get_line(AVIOContext *s)
static int get_preset_file_2(const char *preset_name, const char *codec_name, AVIOContext **s)
{
int i, ret = 1;
int i, ret = -1;
char filename[1000];
const char *base[3] = { getenv("AVCONV_DATADIR"),
getenv("HOME"),
AVCONV_DATADIR,
};
for (i = 0; i < FF_ARRAY_ELEMS(base) && ret; i++) {
for (i = 0; i < FF_ARRAY_ELEMS(base) && ret < 0; i++) {
if (!base[i])
continue;
if (codec_name) {
@@ -945,7 +1021,7 @@ static int get_preset_file_2(const char *preset_name, const char *codec_name, AV
i != 1 ? "" : "/.avconv", codec_name, preset_name);
ret = avio_open2(s, filename, AVIO_FLAG_READ, &int_cb, NULL);
}
if (ret) {
if (ret < 0) {
snprintf(filename, sizeof(filename), "%s%s/%s.avpreset", base[i],
i != 1 ? "" : "/.avconv", preset_name);
ret = avio_open2(s, filename, AVIO_FLAG_READ, &int_cb, NULL);
@@ -999,11 +1075,19 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
ost->st = st;
st->codec->codec_type = type;
choose_encoder(o, oc, ost);
ost->enc_ctx = avcodec_alloc_context3(ost->enc);
if (!ost->enc_ctx) {
av_log(NULL, AV_LOG_ERROR, "Error allocating the encoding context.\n");
exit_program(1);
}
ost->enc_ctx->codec_type = type;
if (ost->enc) {
AVIOContext *s = NULL;
char *buf = NULL, *arg = NULL, *preset = NULL;
ost->opts = filter_codec_opts(o->g->codec_opts, ost->enc->id, oc, st, ost->enc);
ost->encoder_opts = filter_codec_opts(o->g->codec_opts, ost->enc->id, oc, st, ost->enc);
MATCH_PER_STREAM_OPT(presets, str, preset, oc, st);
if (preset && (!(ret = get_preset_file_2(preset, ost->enc->name, &s)))) {
@@ -1018,7 +1102,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
exit_program(1);
}
*arg++ = 0;
av_dict_set(&ost->opts, buf, arg, AV_DICT_DONT_OVERWRITE);
av_dict_set(&ost->encoder_opts, buf, arg, AV_DICT_DONT_OVERWRITE);
av_free(buf);
} while (!s->eof_reached);
avio_close(s);
@@ -1030,12 +1114,9 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
exit_program(1);
}
} else {
ost->opts = filter_codec_opts(o->g->codec_opts, AV_CODEC_ID_NONE, oc, st, NULL);
ost->encoder_opts = filter_codec_opts(o->g->codec_opts, AV_CODEC_ID_NONE, oc, st, NULL);
}
avcodec_get_context_defaults3(st->codec, ost->enc);
st->codec->codec_type = type; // XXX hack, avcodec_get_context_defaults2() sets type to unknown for stream copy
ost->max_frames = INT64_MAX;
MATCH_PER_STREAM_OPT(max_frames, i64, ost->max_frames, oc, st);
for (i = 0; i<o->nb_max_frames; i++) {
@@ -1071,17 +1152,17 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
uint32_t tag = strtol(codec_tag, &next, 0);
if (*next)
tag = AV_RL32(codec_tag);
st->codec->codec_tag = tag;
ost->enc_ctx->codec_tag = tag;
}
MATCH_PER_STREAM_OPT(qscale, dbl, qscale, oc, st);
if (qscale >= 0) {
st->codec->flags |= CODEC_FLAG_QSCALE;
st->codec->global_quality = FF_QP2LAMBDA * qscale;
ost->enc_ctx->flags |= CODEC_FLAG_QSCALE;
ost->enc_ctx->global_quality = FF_QP2LAMBDA * qscale;
}
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
ost->enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
av_opt_get_int(o->g->sws_opts, "sws_flags", 0, &ost->sws_flags);
@@ -1095,7 +1176,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
if (source_index >= 0) {
ost->sync_ist = input_streams[source_index];
input_streams[source_index]->discard = 0;
input_streams[source_index]->st->discard = AVDISCARD_NONE;
input_streams[source_index]->st->discard = input_streams[source_index]->user_set_discard;
}
ost->last_mux_dts = AV_NOPTS_VALUE;
@@ -1152,26 +1233,36 @@ static char *get_ost_filters(OptionsContext *o, AVFormatContext *oc,
OutputStream *ost)
{
AVStream *st = ost->st;
char *filter = NULL, *filter_script = NULL;
MATCH_PER_STREAM_OPT(filter_scripts, str, filter_script, oc, st);
MATCH_PER_STREAM_OPT(filters, str, filter, oc, st);
if (filter_script && filter) {
if (ost->filters_script && ost->filters) {
av_log(NULL, AV_LOG_ERROR, "Both -filter and -filter_script set for "
"output stream #%d:%d.\n", nb_output_files, st->index);
exit_program(1);
}
if (filter_script)
return read_file(filter_script);
else if (filter)
return av_strdup(filter);
if (ost->filters_script)
return read_file(ost->filters_script);
else if (ost->filters)
return av_strdup(ost->filters);
return av_strdup(st->codec->codec_type == AVMEDIA_TYPE_VIDEO ?
"null" : "anull");
}
static void check_streamcopy_filters(OptionsContext *o, AVFormatContext *oc,
const OutputStream *ost, enum AVMediaType type)
{
if (ost->filters_script || ost->filters) {
av_log(NULL, AV_LOG_ERROR,
"%s '%s' was defined for %s output stream %d:%d but codec copy was selected.\n"
"Filtering and streamcopy cannot be used together.\n",
ost->filters ? "Filtergraph" : "Filtergraph script",
ost->filters ? ost->filters : ost->filters_script,
av_get_media_type_string(type), ost->file_index, ost->index);
exit_program(1);
}
}
static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, int source_index)
{
AVStream *st;
@@ -1181,7 +1272,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
ost = new_output_stream(o, oc, AVMEDIA_TYPE_VIDEO, source_index);
st = ost->st;
video_enc = st->codec;
video_enc = ost->enc_ctx;
MATCH_PER_STREAM_OPT(frame_rates, str, frame_rate, oc, st);
if (frame_rate && av_parse_video_rate(&ost->frame_rate, frame_rate) < 0) {
@@ -1200,11 +1291,15 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
ost->frame_aspect_ratio = q;
}
MATCH_PER_STREAM_OPT(filter_scripts, str, ost->filters_script, oc, st);
MATCH_PER_STREAM_OPT(filters, str, ost->filters, oc, st);
if (!ost->stream_copy) {
const char *p = NULL;
char *frame_size = NULL;
char *frame_pix_fmt = NULL;
char *intra_matrix = NULL, *inter_matrix = NULL;
char *chroma_intra_matrix = NULL;
int do_pass = 0;
int i;
@@ -1237,6 +1332,16 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
}
parse_matrix_coeffs(video_enc->intra_matrix, intra_matrix);
}
MATCH_PER_STREAM_OPT(chroma_intra_matrices, str, chroma_intra_matrix, oc, st);
if (chroma_intra_matrix) {
uint16_t *p = av_mallocz(sizeof(*video_enc->chroma_intra_matrix) * 64);
if (!p) {
av_log(NULL, AV_LOG_FATAL, "Could not allocate memory for intra matrix.\n");
exit_program(1);
}
av_codec_set_chroma_intra_matrix(video_enc, p);
parse_matrix_coeffs(p, chroma_intra_matrix);
}
MATCH_PER_STREAM_OPT(inter_matrices, str, inter_matrix, oc, st);
if (inter_matrix) {
if (!(video_enc->inter_matrix = av_mallocz(sizeof(*video_enc->inter_matrix) * 64))) {
@@ -1272,7 +1377,6 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
if (p) p++;
}
video_enc->rc_override_count = i;
video_enc->intra_dc_precision = intra_dc_precision - 8;
if (do_psnr)
video_enc->flags|= CODEC_FLAG_PSNR;
@@ -1282,11 +1386,11 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
if (do_pass) {
if (do_pass & 1) {
video_enc->flags |= CODEC_FLAG_PASS1;
av_dict_set(&ost->opts, "flags", "+pass1", AV_DICT_APPEND);
av_dict_set(&ost->encoder_opts, "flags", "+pass1", AV_DICT_APPEND);
}
if (do_pass & 2) {
video_enc->flags |= CODEC_FLAG_PASS2;
av_dict_set(&ost->opts, "flags", "+pass2", AV_DICT_APPEND);
av_dict_set(&ost->encoder_opts, "flags", "+pass2", AV_DICT_APPEND);
}
}
@@ -1312,6 +1416,9 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
MATCH_PER_STREAM_OPT(copy_initial_nonkeyframes, i, ost->copy_initial_nonkeyframes, oc ,st);
}
if (ost->stream_copy)
check_streamcopy_filters(o, oc, ost, AVMEDIA_TYPE_VIDEO);
return ost;
}
@@ -1325,9 +1432,12 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in
ost = new_output_stream(o, oc, AVMEDIA_TYPE_AUDIO, source_index);
st = ost->st;
audio_enc = st->codec;
audio_enc = ost->enc_ctx;
audio_enc->codec_type = AVMEDIA_TYPE_AUDIO;
MATCH_PER_STREAM_OPT(filter_scripts, str, ost->filters_script, oc, st);
MATCH_PER_STREAM_OPT(filters, str, ost->filters, oc, st);
if (!ost->stream_copy) {
char *sample_fmt = NULL;
@@ -1352,19 +1462,34 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in
/* check for channel mapping for this audio stream */
for (n = 0; n < o->nb_audio_channel_maps; n++) {
AudioChannelMap *map = &o->audio_channel_maps[n];
InputStream *ist = input_streams[ost->source_index];
if ((map->channel_idx == -1 || (ist->file_index == map->file_idx && ist->st->index == map->stream_idx)) &&
(map->ofile_idx == -1 || ost->file_index == map->ofile_idx) &&
if ((map->ofile_idx == -1 || ost->file_index == map->ofile_idx) &&
(map->ostream_idx == -1 || ost->st->index == map->ostream_idx)) {
if (ost->audio_channels_mapped < FF_ARRAY_ELEMS(ost->audio_channels_map))
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
else
av_log(NULL, AV_LOG_FATAL, "Max channel mapping for output %d.%d reached\n",
InputStream *ist;
if (map->channel_idx == -1) {
ist = NULL;
} else if (ost->source_index < 0) {
av_log(NULL, AV_LOG_FATAL, "Cannot determine input stream for channel mapping %d.%d\n",
ost->file_index, ost->st->index);
continue;
} else {
ist = input_streams[ost->source_index];
}
if (!ist || (ist->file_index == map->file_idx && ist->st->index == map->stream_idx)) {
if (ost->audio_channels_mapped < FF_ARRAY_ELEMS(ost->audio_channels_map))
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
else
av_log(NULL, AV_LOG_FATAL, "Max channel mapping for output %d.%d reached\n",
ost->file_index, ost->st->index);
}
}
}
}
if (ost->stream_copy)
check_streamcopy_filters(o, oc, ost, AVMEDIA_TYPE_AUDIO);
return ost;
}
@@ -1397,7 +1522,7 @@ static OutputStream *new_subtitle_stream(OptionsContext *o, AVFormatContext *oc,
ost = new_output_stream(o, oc, AVMEDIA_TYPE_SUBTITLE, source_index);
st = ost->st;
subtitle_enc = st->codec;
subtitle_enc = ost->enc_ctx;
subtitle_enc->codec_type = AVMEDIA_TYPE_SUBTITLE;
@@ -1515,7 +1640,8 @@ static int read_ffserver_streams(OptionsContext *o, AVFormatContext *s, const ch
if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO && !ost->stream_copy)
choose_sample_fmt(st, codec);
else if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO && !ost->stream_copy)
choose_pixel_fmt(st, codec, st->codec->pix_fmt);
choose_pixel_fmt(st, st->codec, codec, st->codec->pix_fmt);
avcodec_copy_context(ost->enc_ctx, st->codec);
}
avformat_close_input(&ic);
@@ -1549,6 +1675,18 @@ static void init_output_filter(OutputFilter *ofilter, OptionsContext *o,
exit_program(1);
}
if (ost->avfilter && (ost->filters || ost->filters_script)) {
const char *opt = ost->filters ? "-vf/-af/-filter" : "-filter_script";
av_log(NULL, AV_LOG_ERROR,
"%s '%s' was specified through the %s option "
"for output stream %d:%d, which is fed from a complex filtergraph.\n"
"%s and -filter_complex cannot be used together for the same stream.\n",
ost->filters ? "Filtergraph" : "Filtergraph script",
ost->filters ? ost->filters : ost->filters_script,
opt, ost->file_index, ost->index, opt);
exit_program(1);
}
if (configure_output_filter(ofilter->graph, ofilter, ofilter->out_tmp) < 0) {
av_log(NULL, AV_LOG_FATAL, "Error configuring filter.\n");
exit_program(1);
@@ -1676,7 +1814,7 @@ static int open_output_file(OptionsContext *o, const char *filename)
if(ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO) ost->avfilter = av_strdup("anull");
if(ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO) ost->avfilter = av_strdup("null");
ist->discard = 0;
ist->st->discard = AVDISCARD_NONE;
ist->st->discard = ist->user_set_discard;
break;
}
}
@@ -1821,8 +1959,8 @@ loop_end:
ost->stream_copy = 0;
ost->attachment_filename = o->attachments[i];
ost->finished = 1;
ost->st->codec->extradata = attachment;
ost->st->codec->extradata_size = len;
ost->enc_ctx->extradata = attachment;
ost->enc_ctx->extradata_size = len;
p = strrchr(o->attachments[i], '/');
av_dict_set(&ost->st->metadata, "filename", (p && *p) ? p + 1 : o->attachments[i], AV_DICT_DONT_OVERWRITE);
@@ -1844,7 +1982,7 @@ loop_end:
unused_opts = strip_specifiers(o->g->codec_opts);
for (i = of->ost_index; i < nb_output_streams; i++) {
e = NULL;
while ((e = av_dict_get(output_streams[i]->opts, "", e,
while ((e = av_dict_get(output_streams[i]->encoder_opts, "", e,
AV_DICT_IGNORE_SUFFIX)))
av_dict_set(&unused_opts, e->key, NULL, 0);
}
@@ -1955,6 +2093,8 @@ loop_end:
continue;
ist = input_streams[output_streams[i]->source_index];
av_dict_copy(&output_streams[i]->st->metadata, ist->st->metadata, AV_DICT_DONT_OVERWRITE);
if (!output_streams[i]->stream_copy)
av_dict_set(&output_streams[i]->st->metadata, "encoder", NULL, 0);
}
/* process manually set metadata */
@@ -2056,23 +2196,22 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
opt_video_codec(o, "c:v", "mpeg1video");
opt_audio_codec(o, "c:a", "mp2");
parse_option(o, "f", "vcd", options);
av_dict_set(&o->g->codec_opts, "b:v", arg, 0);
parse_option(o, "s", norm == PAL ? "352x288" : "352x240", options);
parse_option(o, "r", frame_rates[norm], options);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", 0);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "b:v", "1150000", 0);
av_dict_set(&o->g->codec_opts, "maxrate", "1150000", 0);
av_dict_set(&o->g->codec_opts, "minrate", "1150000", 0);
av_dict_set(&o->g->codec_opts, "bufsize", "327680", 0); // 40*1024*8;
av_dict_set(&o->g->codec_opts, "b:v", "1150000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "maxrate", "1150000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "minrate", "1150000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "bufsize", "327680", AV_DICT_DONT_OVERWRITE); // 40*1024*8;
av_dict_set(&o->g->codec_opts, "b:a", "224000", 0);
av_dict_set(&o->g->codec_opts, "b:a", "224000", AV_DICT_DONT_OVERWRITE);
parse_option(o, "ar", "44100", options);
parse_option(o, "ac", "2", options);
av_dict_set(&o->g->format_opts, "packetsize", "2324", 0);
av_dict_set(&o->g->format_opts, "muxrate", "1411200", 0); // 2352 * 75 * 8;
av_dict_set(&o->g->format_opts, "packetsize", "2324", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->format_opts, "muxrate", "1411200", AV_DICT_DONT_OVERWRITE); // 2352 * 75 * 8;
/* We have to offset the PTS, so that it is consistent with the SCR.
SCR starts at 36000, but the first two packs contain only padding
@@ -2089,18 +2228,18 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
parse_option(o, "s", norm == PAL ? "480x576" : "480x480", options);
parse_option(o, "r", frame_rates[norm], options);
parse_option(o, "pix_fmt", "yuv420p", options);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", 0);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "b:v", "2040000", 0);
av_dict_set(&o->g->codec_opts, "maxrate", "2516000", 0);
av_dict_set(&o->g->codec_opts, "minrate", "0", 0); // 1145000;
av_dict_set(&o->g->codec_opts, "bufsize", "1835008", 0); // 224*1024*8;
av_dict_set(&o->g->codec_opts, "scan_offset", "1", 0);
av_dict_set(&o->g->codec_opts, "b:v", "2040000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "maxrate", "2516000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "minrate", "0", AV_DICT_DONT_OVERWRITE); // 1145000;
av_dict_set(&o->g->codec_opts, "bufsize", "1835008", AV_DICT_DONT_OVERWRITE); // 224*1024*8;
av_dict_set(&o->g->codec_opts, "scan_offset", "1", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "b:a", "224000", 0);
av_dict_set(&o->g->codec_opts, "b:a", "224000", AV_DICT_DONT_OVERWRITE);
parse_option(o, "ar", "44100", options);
av_dict_set(&o->g->format_opts, "packetsize", "2324", 0);
av_dict_set(&o->g->format_opts, "packetsize", "2324", AV_DICT_DONT_OVERWRITE);
} else if (!strcmp(arg, "dvd")) {
@@ -2111,17 +2250,17 @@ static int opt_target(void *optctx, const char *opt, const char *arg)
parse_option(o, "s", norm == PAL ? "720x576" : "720x480", options);
parse_option(o, "r", frame_rates[norm], options);
parse_option(o, "pix_fmt", "yuv420p", options);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", 0);
av_dict_set(&o->g->codec_opts, "g", norm == PAL ? "15" : "18", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "b:v", "6000000", 0);
av_dict_set(&o->g->codec_opts, "maxrate", "9000000", 0);
av_dict_set(&o->g->codec_opts, "minrate", "0", 0); // 1500000;
av_dict_set(&o->g->codec_opts, "bufsize", "1835008", 0); // 224*1024*8;
av_dict_set(&o->g->codec_opts, "b:v", "6000000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "maxrate", "9000000", AV_DICT_DONT_OVERWRITE);
av_dict_set(&o->g->codec_opts, "minrate", "0", AV_DICT_DONT_OVERWRITE); // 1500000;
av_dict_set(&o->g->codec_opts, "bufsize", "1835008", AV_DICT_DONT_OVERWRITE); // 224*1024*8;
av_dict_set(&o->g->format_opts, "packetsize", "2048", 0); // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
av_dict_set(&o->g->format_opts, "muxrate", "10080000", 0); // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
av_dict_set(&o->g->format_opts, "packetsize", "2048", AV_DICT_DONT_OVERWRITE); // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
av_dict_set(&o->g->format_opts, "muxrate", "10080000", AV_DICT_DONT_OVERWRITE); // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
av_dict_set(&o->g->codec_opts, "b:a", "448000", 0);
av_dict_set(&o->g->codec_opts, "b:a", "448000", AV_DICT_DONT_OVERWRITE);
parse_option(o, "ar", "48000", options);
} else if (!strncmp(arg, "dv", 2)) {
@@ -2259,7 +2398,11 @@ static int opt_old2new(void *optctx, const char *opt, const char *arg)
static int opt_bitrate(void *optctx, const char *opt, const char *arg)
{
OptionsContext *o = optctx;
if(!strcmp(opt, "b")){
if(!strcmp(opt, "ab")){
av_dict_set(&o->g->codec_opts, "b:a", arg, 0);
return 0;
} else if(!strcmp(opt, "b")){
av_log(NULL, AV_LOG_WARNING, "Please use -b:a or -b:v, -b is ambiguous\n");
av_dict_set(&o->g->codec_opts, "b:v", arg, 0);
return 0;
@@ -2689,7 +2832,7 @@ const OptionDef options[] = {
{ "frames", OPT_INT64 | HAS_ARG | OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(max_frames) },
"set the number of frames to record", "number" },
{ "tag", OPT_STRING | HAS_ARG | OPT_SPEC |
OPT_EXPERT | OPT_OUTPUT, { .off = OFFSET(codec_tags) },
OPT_EXPERT | OPT_OUTPUT | OPT_INPUT, { .off = OFFSET(codec_tags) },
"force codec tag/fourcc", "fourcc/tag" },
{ "q", HAS_ARG | OPT_EXPERT | OPT_DOUBLE |
OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(qscale) },
@@ -2723,6 +2866,9 @@ const OptionDef options[] = {
"print timestamp debugging info" },
{ "max_error_rate", HAS_ARG | OPT_FLOAT, { &max_error_rate },
"maximum error rate", "ratio of errors (0.0: no errors, 1.0: 100% errors) above which ffmpeg returns an error instead of success." },
{ "discard", OPT_STRING | HAS_ARG | OPT_SPEC |
OPT_INPUT, { .off = OFFSET(discard) },
"discard", "" },
/* video options */
{ "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_video_frames },
@@ -2745,8 +2891,6 @@ const OptionDef options[] = {
"deprecated use -g 1" },
{ "vn", OPT_VIDEO | OPT_BOOL | OPT_OFFSET | OPT_INPUT | OPT_OUTPUT,{ .off = OFFSET(video_disable) },
"disable video" },
{ "vdt", OPT_VIDEO | OPT_INT | HAS_ARG | OPT_EXPERT , { &video_discard },
"discard threshold", "n" },
{ "rc_override", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC |
OPT_OUTPUT, { .off = OFFSET(rc_overrides) },
"rate control override for specific intervals", "override" },
@@ -2780,11 +2924,12 @@ const OptionDef options[] = {
{ "inter_matrix", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC |
OPT_OUTPUT, { .off = OFFSET(inter_matrices) },
"specify inter matrix coeffs", "matrix" },
{ "chroma_intra_matrix", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_STRING | OPT_SPEC |
OPT_OUTPUT, { .off = OFFSET(chroma_intra_matrices) },
"specify intra matrix coeffs", "matrix" },
{ "top", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_INT| OPT_SPEC |
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(top_field_first) },
"top=1/bottom=0/auto=-1 field first", "" },
{ "dc", OPT_VIDEO | OPT_INT | HAS_ARG | OPT_EXPERT , { &intra_dc_precision },
"intra_dc_precision", "precision" },
{ "vtag", OPT_VIDEO | HAS_ARG | OPT_EXPERT | OPT_PERFILE |
OPT_OUTPUT, { .func_arg = opt_old2new },
"force video tag/fourcc", "fourcc/tag" },
@@ -2799,8 +2944,16 @@ const OptionDef options[] = {
{ "force_key_frames", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_OUTPUT, { .off = OFFSET(forced_key_frames) },
"force key frames at specified timestamps", "timestamps" },
{ "ab", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_bitrate },
"audio bitrate (please use -b:a)", "bitrate" },
{ "b", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_bitrate },
"video bitrate (please use -b:v)", "bitrate" },
{ "hwaccel", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_INPUT, { .off = OFFSET(hwaccels) },
"use HW accelerated decoding", "hwaccel name" },
{ "hwaccel_device", OPT_VIDEO | OPT_STRING | HAS_ARG | OPT_EXPERT |
OPT_SPEC | OPT_INPUT, { .off = OFFSET(hwaccel_devices) },
"select a device for HW acceleration" "devicename" },
/* audio options */
{ "aframes", OPT_AUDIO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_audio_frames },

134
ffmpeg_vda.c Normal file
View File

@@ -0,0 +1,134 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavcodec/avcodec.h"
#include "libavcodec/vda.h"
#include "libavutil/imgutils.h"
#include "ffmpeg.h"
typedef struct VDAContext {
AVFrame *tmp_frame;
} VDAContext;
static int vda_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
InputStream *ist = s->opaque;
VDAContext *vda = ist->hwaccel_ctx;
CVPixelBufferRef pixbuf = (CVPixelBufferRef)frame->data[3];
OSType pixel_format = CVPixelBufferGetPixelFormatType(pixbuf);
CVReturn err;
uint8_t *data[4] = { 0 };
int linesize[4] = { 0 };
int planes, ret, i;
av_frame_unref(vda->tmp_frame);
switch (pixel_format) {
case kCVPixelFormatType_420YpCbCr8Planar: vda->tmp_frame->format = AV_PIX_FMT_YUV420P; break;
case kCVPixelFormatType_422YpCbCr8: vda->tmp_frame->format = AV_PIX_FMT_UYVY422; break;
default:
av_log(NULL, AV_LOG_ERROR,
"Unsupported pixel format: %u\n", pixel_format);
return AVERROR(ENOSYS);
}
vda->tmp_frame->width = frame->width;
vda->tmp_frame->height = frame->height;
ret = av_frame_get_buffer(vda->tmp_frame, 32);
if (ret < 0)
return ret;
err = CVPixelBufferLockBaseAddress(pixbuf, kCVPixelBufferLock_ReadOnly);
if (err != kCVReturnSuccess) {
av_log(NULL, AV_LOG_ERROR, "Error locking the pixel buffer.\n");
return AVERROR_UNKNOWN;
}
if (CVPixelBufferIsPlanar(pixbuf)) {
planes = CVPixelBufferGetPlaneCount(pixbuf);
for (i = 0; i < planes; i++) {
data[i] = CVPixelBufferGetBaseAddressOfPlane(pixbuf, i);
linesize[i] = CVPixelBufferGetBytesPerRowOfPlane(pixbuf, i);
}
} else {
data[0] = CVPixelBufferGetBaseAddress(pixbuf);
linesize[0] = CVPixelBufferGetBytesPerRow(pixbuf);
}
av_image_copy(vda->tmp_frame->data, vda->tmp_frame->linesize,
data, linesize, vda->tmp_frame->format,
frame->width, frame->height);
ret = av_frame_copy_props(vda->tmp_frame, frame);
if (ret < 0)
return ret;
av_frame_unref(frame);
av_frame_move_ref(frame, vda->tmp_frame);
return 0;
}
static void vda_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
VDAContext *vda = ist->hwaccel_ctx;
ist->hwaccel_uninit = NULL;
ist->hwaccel_retrieve_data = NULL;
av_frame_free(&vda->tmp_frame);
av_vda_default_free(s);
av_freep(&ist->hwaccel_ctx);
}
int vda_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
VDAContext *vda;
int ret;
vda = av_mallocz(sizeof(*vda));
if (!vda)
return AVERROR(ENOMEM);
ist->hwaccel_ctx = vda;
ist->hwaccel_uninit = vda_uninit;
ist->hwaccel_retrieve_data = vda_retrieve_data;
vda->tmp_frame = av_frame_alloc();
if (!vda->tmp_frame) {
ret = AVERROR(ENOMEM);
goto fail;
}
ret = av_vda_default_init(s);
if (ret < 0) {
av_log(NULL, loglevel, "Error creating VDA decoder.\n");
goto fail;
}
return 0;
fail:
vda_uninit(s);
return ret;
}

335
ffmpeg_vdpau.c Normal file
View File

@@ -0,0 +1,335 @@
/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdint.h>
#include <vdpau/vdpau.h>
#include <vdpau/vdpau_x11.h>
#include <X11/Xlib.h>
#include "ffmpeg.h"
#include "libavcodec/vdpau.h"
#include "libavutil/avassert.h"
#include "libavutil/buffer.h"
#include "libavutil/frame.h"
#include "libavutil/pixfmt.h"
typedef struct VDPAUContext {
Display *dpy;
VdpDevice device;
VdpDecoder decoder;
VdpGetProcAddress *get_proc_address;
VdpGetErrorString *get_error_string;
VdpGetInformationString *get_information_string;
VdpDeviceDestroy *device_destroy;
VdpDecoderCreate *decoder_create;
VdpDecoderDestroy *decoder_destroy;
VdpDecoderRender *decoder_render;
VdpVideoSurfaceCreate *video_surface_create;
VdpVideoSurfaceDestroy *video_surface_destroy;
VdpVideoSurfaceGetBitsYCbCr *video_surface_get_bits;
VdpVideoSurfaceGetParameters *video_surface_get_parameters;
VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities *video_surface_query;
AVFrame *tmp_frame;
enum AVPixelFormat pix_fmt;
VdpYCbCrFormat vdpau_format;
} VDPAUContext;
static void vdpau_uninit(AVCodecContext *s)
{
InputStream *ist = s->opaque;
VDPAUContext *ctx = ist->hwaccel_ctx;
ist->hwaccel_uninit = NULL;
ist->hwaccel_get_buffer = NULL;
ist->hwaccel_retrieve_data = NULL;
if (ctx->decoder_destroy)
ctx->decoder_destroy(ctx->decoder);
if (ctx->device_destroy)
ctx->device_destroy(ctx->device);
if (ctx->dpy)
XCloseDisplay(ctx->dpy);
av_frame_free(&ctx->tmp_frame);
av_freep(&ist->hwaccel_ctx);
av_freep(&s->hwaccel_context);
}
static void vdpau_release_buffer(void *opaque, uint8_t *data)
{
VdpVideoSurface surface = *(VdpVideoSurface*)data;
VDPAUContext *ctx = opaque;
ctx->video_surface_destroy(surface);
av_freep(&data);
}
static int vdpau_get_buffer(AVCodecContext *s, AVFrame *frame, int flags)
{
InputStream *ist = s->opaque;
VDPAUContext *ctx = ist->hwaccel_ctx;
VdpVideoSurface *surface;
VdpStatus err;
av_assert0(frame->format == AV_PIX_FMT_VDPAU);
surface = av_malloc(sizeof(*surface));
if (!surface)
return AVERROR(ENOMEM);
frame->buf[0] = av_buffer_create((uint8_t*)surface, sizeof(*surface),
vdpau_release_buffer, ctx,
AV_BUFFER_FLAG_READONLY);
if (!frame->buf[0]) {
av_freep(&surface);
return AVERROR(ENOMEM);
}
// properly we should keep a pool of surfaces instead of creating
// them anew for each frame, but since we don't care about speed
// much in this code, we don't bother
err = ctx->video_surface_create(ctx->device, VDP_CHROMA_TYPE_420,
frame->width, frame->height, surface);
if (err != VDP_STATUS_OK) {
av_log(NULL, AV_LOG_ERROR, "Error allocating a VDPAU video surface: %s\n",
ctx->get_error_string(err));
av_buffer_unref(&frame->buf[0]);
return AVERROR_UNKNOWN;
}
frame->data[3] = (uint8_t*)(uintptr_t)*surface;
return 0;
}
static int vdpau_retrieve_data(AVCodecContext *s, AVFrame *frame)
{
VdpVideoSurface surface = (VdpVideoSurface)(uintptr_t)frame->data[3];
InputStream *ist = s->opaque;
VDPAUContext *ctx = ist->hwaccel_ctx;
VdpStatus err;
int ret, chroma_type;
err = ctx->video_surface_get_parameters(surface, &chroma_type,
&ctx->tmp_frame->width,
&ctx->tmp_frame->height);
if (err != VDP_STATUS_OK) {
av_log(NULL, AV_LOG_ERROR, "Error getting surface parameters: %s\n",
ctx->get_error_string(err));
return AVERROR_UNKNOWN;
}
ctx->tmp_frame->format = ctx->pix_fmt;
ret = av_frame_get_buffer(ctx->tmp_frame, 32);
if (ret < 0)
return ret;
ctx->tmp_frame->width = frame->width;
ctx->tmp_frame->height = frame->height;
err = ctx->video_surface_get_bits(surface, ctx->vdpau_format,
(void * const *)ctx->tmp_frame->data,
ctx->tmp_frame->linesize);
if (err != VDP_STATUS_OK) {
av_log(NULL, AV_LOG_ERROR, "Error retrieving frame data from VDPAU: %s\n",
ctx->get_error_string(err));
ret = AVERROR_UNKNOWN;
goto fail;
}
if (ctx->vdpau_format == VDP_YCBCR_FORMAT_YV12)
FFSWAP(uint8_t*, ctx->tmp_frame->data[1], ctx->tmp_frame->data[2]);
ret = av_frame_copy_props(ctx->tmp_frame, frame);
if (ret < 0)
goto fail;
av_frame_unref(frame);
av_frame_move_ref(frame, ctx->tmp_frame);
return 0;
fail:
av_frame_unref(ctx->tmp_frame);
return ret;
}
static const int vdpau_formats[][2] = {
{ VDP_YCBCR_FORMAT_YV12, AV_PIX_FMT_YUV420P },
{ VDP_YCBCR_FORMAT_NV12, AV_PIX_FMT_NV12 },
{ VDP_YCBCR_FORMAT_YUYV, AV_PIX_FMT_YUYV422 },
{ VDP_YCBCR_FORMAT_UYVY, AV_PIX_FMT_UYVY422 },
};
static int vdpau_alloc(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
AVVDPAUContext *vdpau_ctx;
VDPAUContext *ctx;
const char *display, *vendor;
VdpStatus err;
int i;
ctx = av_mallocz(sizeof(*ctx));
if (!ctx)
return AVERROR(ENOMEM);
ist->hwaccel_ctx = ctx;
ist->hwaccel_uninit = vdpau_uninit;
ist->hwaccel_get_buffer = vdpau_get_buffer;
ist->hwaccel_retrieve_data = vdpau_retrieve_data;
ctx->tmp_frame = av_frame_alloc();
if (!ctx->tmp_frame)
goto fail;
ctx->dpy = XOpenDisplay(ist->hwaccel_device);
if (!ctx->dpy) {
av_log(NULL, loglevel, "Cannot open the X11 display %s.\n",
XDisplayName(ist->hwaccel_device));
goto fail;
}
display = XDisplayString(ctx->dpy);
err = vdp_device_create_x11(ctx->dpy, XDefaultScreen(ctx->dpy), &ctx->device,
&ctx->get_proc_address);
if (err != VDP_STATUS_OK) {
av_log(NULL, loglevel, "VDPAU device creation on X11 display %s failed.\n",
display);
goto fail;
}
#define GET_CALLBACK(id, result) \
do { \
void *tmp; \
err = ctx->get_proc_address(ctx->device, id, &tmp); \
if (err != VDP_STATUS_OK) { \
av_log(NULL, loglevel, "Error getting the " #id " callback.\n"); \
goto fail; \
} \
ctx->result = tmp; \
} while (0)
GET_CALLBACK(VDP_FUNC_ID_GET_ERROR_STRING, get_error_string);
GET_CALLBACK(VDP_FUNC_ID_GET_INFORMATION_STRING, get_information_string);
GET_CALLBACK(VDP_FUNC_ID_DEVICE_DESTROY, device_destroy);
GET_CALLBACK(VDP_FUNC_ID_DECODER_CREATE, decoder_create);
GET_CALLBACK(VDP_FUNC_ID_DECODER_DESTROY, decoder_destroy);
GET_CALLBACK(VDP_FUNC_ID_DECODER_RENDER, decoder_render);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_CREATE, video_surface_create);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_DESTROY, video_surface_destroy);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR, video_surface_get_bits);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS, video_surface_get_parameters);
GET_CALLBACK(VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES,
video_surface_query);
for (i = 0; i < FF_ARRAY_ELEMS(vdpau_formats); i++) {
VdpBool supported;
err = ctx->video_surface_query(ctx->device, VDP_CHROMA_TYPE_420,
vdpau_formats[i][0], &supported);
if (err != VDP_STATUS_OK) {
av_log(NULL, loglevel,
"Error querying VDPAU surface capabilities: %s\n",
ctx->get_error_string(err));
goto fail;
}
if (supported)
break;
}
if (i == FF_ARRAY_ELEMS(vdpau_formats)) {
av_log(NULL, loglevel,
"No supported VDPAU format for retrieving the data.\n");
return AVERROR(EINVAL);
}
ctx->vdpau_format = vdpau_formats[i][0];
ctx->pix_fmt = vdpau_formats[i][1];
vdpau_ctx = av_vdpau_alloc_context();
if (!vdpau_ctx)
goto fail;
vdpau_ctx->render = ctx->decoder_render;
s->hwaccel_context = vdpau_ctx;
ctx->get_information_string(&vendor);
av_log(NULL, AV_LOG_VERBOSE, "Using VDPAU -- %s -- on X11 display %s, "
"to decode input stream #%d:%d.\n", vendor,
display, ist->file_index, ist->st->index);
return 0;
fail:
av_log(NULL, loglevel, "VDPAU init failed for stream #%d:%d.\n",
ist->file_index, ist->st->index);
vdpau_uninit(s);
return AVERROR(EINVAL);
}
int vdpau_init(AVCodecContext *s)
{
InputStream *ist = s->opaque;
int loglevel = (ist->hwaccel_id == HWACCEL_AUTO) ? AV_LOG_VERBOSE : AV_LOG_ERROR;
AVVDPAUContext *vdpau_ctx;
VDPAUContext *ctx;
VdpStatus err;
int profile, ret;
if (!ist->hwaccel_ctx) {
ret = vdpau_alloc(s);
if (ret < 0)
return ret;
}
ctx = ist->hwaccel_ctx;
vdpau_ctx = s->hwaccel_context;
ret = av_vdpau_get_profile(s, &profile);
if (ret < 0) {
av_log(NULL, loglevel, "No known VDPAU decoder profile for this stream.\n");
return AVERROR(EINVAL);
}
if (ctx->decoder)
ctx->decoder_destroy(ctx->decoder);
err = ctx->decoder_create(ctx->device, profile,
s->coded_width, s->coded_height,
16, &ctx->decoder);
if (err != VDP_STATUS_OK) {
av_log(NULL, loglevel, "Error creating the VDPAU decoder: %s\n",
ctx->get_error_string(err));
return AVERROR_UNKNOWN;
}
vdpau_ctx->decoder = ctx->decoder;
ist->hwaccel_get_buffer = vdpau_get_buffer;
ist->hwaccel_retrieve_data = vdpau_retrieve_data;
return 0;
}

422
ffplay.c
View File

@@ -28,6 +28,8 @@
#include <math.h>
#include <limits.h>
#include <signal.h>
#include <stdint.h>
#include "libavutil/avstring.h"
#include "libavutil/colorspace.h"
#include "libavutil/mathematics.h"
@@ -65,12 +67,13 @@ const int program_birth_year = 2003;
#define MAX_QUEUE_SIZE (15 * 1024 * 1024)
#define MIN_FRAMES 5
/* SDL audio buffer size, in samples. Should be small to have precise
A/V sync as SDL does not have hardware buffer fullness info. */
#define SDL_AUDIO_BUFFER_SIZE 1024
/* Minimum SDL audio buffer size, in samples. */
#define SDL_AUDIO_MIN_BUFFER_SIZE 512
/* Calculate actual buffer size keeping in mind not cause too frequent audio callbacks */
#define SDL_AUDIO_MAX_CALLBACKS_PER_SEC 30
/* no AV sync correction is done if below the minimum AV sync threshold */
#define AV_SYNC_THRESHOLD_MIN 0.01
#define AV_SYNC_THRESHOLD_MIN 0.04
/* AV sync correction is done if above the maximum AV sync threshold */
#define AV_SYNC_THRESHOLD_MAX 0.1
/* If a frame duration is longer than this, it will not be duplicated to compensate AV sync */
@@ -117,10 +120,11 @@ typedef struct PacketQueue {
} PacketQueue;
#define VIDEO_PICTURE_QUEUE_SIZE 3
#define SUBPICTURE_QUEUE_SIZE 4
#define SUBPICTURE_QUEUE_SIZE 16
typedef struct VideoPicture {
double pts; // presentation timestamp for this picture
double duration; // estimated duration based on frame rate
int64_t pos; // byte position in file
SDL_Overlay *bmp;
int width, height; /* source height & width */
@@ -142,6 +146,8 @@ typedef struct AudioParams {
int channels;
int64_t channel_layout;
enum AVSampleFormat fmt;
int frame_size;
int bytes_per_sec;
} AudioParams;
typedef struct Clock {
@@ -197,7 +203,7 @@ typedef struct VideoState {
AVStream *audio_st;
PacketQueue audioq;
int audio_hw_buf_size;
uint8_t silence_buf[SDL_AUDIO_BUFFER_SIZE];
uint8_t silence_buf[SDL_AUDIO_MIN_BUFFER_SIZE];
uint8_t *audio_buf;
uint8_t *audio_buf1;
unsigned int audio_buf_size; /* in bytes */
@@ -242,20 +248,15 @@ typedef struct VideoState {
SDL_cond *subpq_cond;
double frame_timer;
double frame_last_pts;
double frame_last_duration;
double frame_last_dropped_pts;
double frame_last_returned_time;
double frame_last_filter_delay;
int64_t frame_last_dropped_pos;
int frame_last_dropped_serial;
int video_stream;
AVStream *video_st;
PacketQueue videoq;
int64_t video_current_pos; // current displayed file pos
double max_frame_duration; // maximum duration of a frame - above this, we consider the jump a timestamp discontinuity
VideoPicture pictq[VIDEO_PICTURE_QUEUE_SIZE];
int pictq_size, pictq_rindex, pictq_windex;
int pictq_size, pictq_rindex, pictq_windex, pictq_rindex_shown;
SDL_mutex *pictq_mutex;
SDL_cond *pictq_cond;
#if !CONFIG_AVFILTER
@@ -268,6 +269,7 @@ typedef struct VideoState {
int step;
#if CONFIG_AVFILTER
int vfilter_idx;
AVFilterContext *in_video_filter; // the first filter in the video chain
AVFilterContext *out_video_filter; // the last filter in the video chain
AVFilterContext *in_audio_filter; // the first filter in the audio chain
@@ -308,7 +310,6 @@ static int workaround_bugs = 1;
static int fast = 0;
static int genpts = 0;
static int lowres = 0;
static int error_concealment = 3;
static int decoder_reorder_pts = -1;
static int autoexit;
static int exit_on_keydown;
@@ -324,9 +325,11 @@ double rdftspeed = 0.02;
static int64_t cursor_last_shown;
static int cursor_hidden = 0;
#if CONFIG_AVFILTER
static char *vfilters = NULL;
static const char **vfilters_list = NULL;
static int nb_vfilters = 0;
static char *afilters = NULL;
#endif
static int autorotate = 1;
/* current context */
static int is_full_screen;
@@ -339,6 +342,15 @@ static AVPacket flush_pkt;
static SDL_Surface *screen;
#if CONFIG_AVFILTER
static int opt_add_vfilter(void *optctx, const char *opt, const char *arg)
{
GROW_ARRAY(vfilters_list, nb_vfilters);
vfilters_list[nb_vfilters - 1] = arg;
return 0;
}
#endif
static inline
int cmp_audio_fmts(enum AVSampleFormat fmt1, int64_t channel_count1,
enum AVSampleFormat fmt2, int64_t channel_count2)
@@ -359,8 +371,6 @@ int64_t get_valid_channel_layout(int64_t channel_layout, int channels)
return 0;
}
static int packet_queue_put(PacketQueue *q, AVPacket *pkt);
static int packet_queue_put_private(PacketQueue *q, AVPacket *pkt)
{
MyAVPacketList *pkt1;
@@ -798,19 +808,21 @@ static void free_subpicture(SubPicture *sp)
avsubtitle_free(&sp->sub);
}
static void calculate_display_rect(SDL_Rect *rect, int scr_xleft, int scr_ytop, int scr_width, int scr_height, VideoPicture *vp)
static void calculate_display_rect(SDL_Rect *rect,
int scr_xleft, int scr_ytop, int scr_width, int scr_height,
int pic_width, int pic_height, AVRational pic_sar)
{
float aspect_ratio;
int width, height, x, y;
if (vp->sar.num == 0)
if (pic_sar.num == 0)
aspect_ratio = 0;
else
aspect_ratio = av_q2d(vp->sar);
aspect_ratio = av_q2d(pic_sar);
if (aspect_ratio <= 0.0)
aspect_ratio = 1.0;
aspect_ratio *= (float)vp->width / (float)vp->height;
aspect_ratio *= (float)pic_width / (float)pic_height;
/* XXX: we suppose the screen has a 1.0 pixel ratio */
height = scr_height;
@@ -835,7 +847,7 @@ static void video_image_display(VideoState *is)
SDL_Rect rect;
int i;
vp = &is->pictq[is->pictq_rindex];
vp = &is->pictq[(is->pictq_rindex + is->pictq_rindex_shown) % VIDEO_PICTURE_QUEUE_SIZE];
if (vp->bmp) {
if (is->subtitle_st) {
if (is->subpq_size > 0) {
@@ -861,7 +873,7 @@ static void video_image_display(VideoState *is)
}
}
calculate_display_rect(&rect, is->xleft, is->ytop, is->width, is->height, vp);
calculate_display_rect(&rect, is->xleft, is->ytop, is->width, is->height, vp->width, vp->height, vp->sar);
SDL_DisplayYUVOverlay(vp->bmp, &rect);
@@ -901,7 +913,7 @@ static void video_audio_display(VideoState *s)
/* to be more precise, we take into account the time spent since
the last buffer computation */
if (audio_callback_time) {
time_diff = av_gettime() - audio_callback_time;
time_diff = av_gettime_relative() - audio_callback_time;
delay -= (time_diff * s->audio_tgt.freq) / 1000000;
}
@@ -1053,7 +1065,7 @@ static void do_exit(VideoState *is)
av_lockmgr_register(NULL);
uninit_opts();
#if CONFIG_AVFILTER
av_freep(&vfilters);
av_freep(&vfilters_list);
#endif
avformat_network_deinit();
if (show_status)
@@ -1068,20 +1080,24 @@ static void sigterm_handler(int sig)
exit(123);
}
static void set_default_window_size(int width, int height, AVRational sar)
{
SDL_Rect rect;
calculate_display_rect(&rect, 0, 0, INT_MAX, height, width, height, sar);
default_width = rect.w;
default_height = rect.h;
}
static int video_open(VideoState *is, int force_set_video_mode, VideoPicture *vp)
{
int flags = SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL;
int w,h;
SDL_Rect rect;
if (is_full_screen) flags |= SDL_FULLSCREEN;
else flags |= SDL_RESIZABLE;
if (vp && vp->width) {
calculate_display_rect(&rect, 0, 0, INT_MAX, vp->height, vp);
default_width = rect.w;
default_height = rect.h;
}
if (vp && vp->width)
set_default_window_size(vp->width, vp->height, vp->sar);
if (is_full_screen && fs_screen_width) {
w = fs_screen_width;
@@ -1130,7 +1146,7 @@ static double get_clock(Clock *c)
if (c->paused) {
return c->pts;
} else {
double time = av_gettime() / 1000000.0;
double time = av_gettime_relative() / 1000000.0;
return c->pts_drift + time - (time - c->last_updated) * (1.0 - c->speed);
}
}
@@ -1145,7 +1161,7 @@ static void set_clock_at(Clock *c, double pts, int serial, double time)
static void set_clock(Clock *c, double pts, int serial)
{
double time = av_gettime() / 1000000.0;
double time = av_gettime_relative() / 1000000.0;
set_clock_at(c, pts, serial, time);
}
@@ -1238,7 +1254,7 @@ static void stream_seek(VideoState *is, int64_t pos, int64_t rel, int seek_by_by
static void stream_toggle_pause(VideoState *is)
{
if (is->paused) {
is->frame_timer += av_gettime() / 1000000.0 + is->vidclk.pts_drift - is->vidclk.pts;
is->frame_timer += av_gettime_relative() / 1000000.0 + is->vidclk.pts_drift - is->vidclk.pts;
if (is->read_pause_return != AVERROR(ENOSYS)) {
is->vidclk.paused = 0;
}
@@ -1292,7 +1308,35 @@ static double compute_target_delay(double delay, VideoState *is)
return delay;
}
static double vp_duration(VideoState *is, VideoPicture *vp, VideoPicture *nextvp) {
if (vp->serial == nextvp->serial) {
double duration = nextvp->pts - vp->pts;
if (isnan(duration) || duration <= 0 || duration > is->max_frame_duration)
return vp->duration;
else
return duration;
} else {
return 0.0;
}
}
/* return the number of undisplayed pictures in the queue */
static int pictq_nb_remaining(VideoState *is) {
return is->pictq_size - is->pictq_rindex_shown;
}
/* jump back to the previous picture if available by resetting rindex_shown */
static int pictq_prev_picture(VideoState *is) {
int ret = is->pictq_rindex_shown;
is->pictq_rindex_shown = 0;
return ret;
}
static void pictq_next_picture(VideoState *is) {
if (!is->pictq_rindex_shown) {
is->pictq_rindex_shown = 1;
return;
}
/* update queue size and signal for next picture */
if (++is->pictq_rindex == VIDEO_PICTURE_QUEUE_SIZE)
is->pictq_rindex = 0;
@@ -1303,38 +1347,17 @@ static void pictq_next_picture(VideoState *is) {
SDL_UnlockMutex(is->pictq_mutex);
}
static int pictq_prev_picture(VideoState *is) {
VideoPicture *prevvp;
int ret = 0;
/* update queue size and signal for the previous picture */
prevvp = &is->pictq[(is->pictq_rindex + VIDEO_PICTURE_QUEUE_SIZE - 1) % VIDEO_PICTURE_QUEUE_SIZE];
if (prevvp->allocated && prevvp->serial == is->videoq.serial) {
SDL_LockMutex(is->pictq_mutex);
if (is->pictq_size < VIDEO_PICTURE_QUEUE_SIZE) {
if (--is->pictq_rindex == -1)
is->pictq_rindex = VIDEO_PICTURE_QUEUE_SIZE - 1;
is->pictq_size++;
ret = 1;
}
SDL_CondSignal(is->pictq_cond);
SDL_UnlockMutex(is->pictq_mutex);
}
return ret;
}
static void update_video_pts(VideoState *is, double pts, int64_t pos, int serial) {
/* update current video pts */
set_clock(&is->vidclk, pts, serial);
sync_clock_to_slave(&is->extclk, &is->vidclk);
is->video_current_pos = pos;
is->frame_last_pts = pts;
}
/* called to display each frame */
static void video_refresh(void *opaque, double *remaining_time)
{
VideoState *is = opaque;
VideoPicture *vp;
double time;
SubPicture *sp, *sp2;
@@ -1343,7 +1366,7 @@ static void video_refresh(void *opaque, double *remaining_time)
check_external_clock_speed(is);
if (!display_disable && is->show_mode != SHOW_MODE_VIDEO && is->audio_st) {
time = av_gettime() / 1000000.0;
time = av_gettime_relative() / 1000000.0;
if (is->force_refresh || is->last_vis_time + rdftspeed < time) {
video_display(is);
is->last_vis_time = time;
@@ -1356,40 +1379,37 @@ static void video_refresh(void *opaque, double *remaining_time)
if (is->force_refresh)
redisplay = pictq_prev_picture(is);
retry:
if (is->pictq_size == 0) {
SDL_LockMutex(is->pictq_mutex);
if (is->frame_last_dropped_pts != AV_NOPTS_VALUE && is->frame_last_dropped_pts > is->frame_last_pts) {
update_video_pts(is, is->frame_last_dropped_pts, is->frame_last_dropped_pos, is->frame_last_dropped_serial);
is->frame_last_dropped_pts = AV_NOPTS_VALUE;
}
SDL_UnlockMutex(is->pictq_mutex);
if (pictq_nb_remaining(is) == 0) {
// nothing to do, no picture to display in the queue
} else {
double last_duration, duration, delay;
VideoPicture *vp, *lastvp;
/* dequeue the picture */
vp = &is->pictq[is->pictq_rindex];
lastvp = &is->pictq[is->pictq_rindex];
vp = &is->pictq[(is->pictq_rindex + is->pictq_rindex_shown) % VIDEO_PICTURE_QUEUE_SIZE];
if (vp->serial != is->videoq.serial) {
pictq_next_picture(is);
is->video_current_pos = -1;
redisplay = 0;
goto retry;
}
if (lastvp->serial != vp->serial && !redisplay)
is->frame_timer = av_gettime_relative() / 1000000.0;
if (is->paused)
goto display;
/* compute nominal last_duration */
last_duration = vp->pts - is->frame_last_pts;
if (!isnan(last_duration) && last_duration > 0 && last_duration < is->max_frame_duration) {
/* if duration of the last frame was sane, update last_duration in video state */
is->frame_last_duration = last_duration;
}
last_duration = vp_duration(is, lastvp, vp);
if (redisplay)
delay = 0.0;
else
delay = compute_target_delay(is->frame_last_duration, is);
delay = compute_target_delay(last_duration, is);
time= av_gettime()/1000000.0;
time= av_gettime_relative()/1000000.0;
if (time < is->frame_timer + delay && !redisplay) {
*remaining_time = FFMIN(is->frame_timer + delay - time, *remaining_time);
return;
@@ -1404,9 +1424,9 @@ retry:
update_video_pts(is, vp->pts, vp->pos, vp->serial);
SDL_UnlockMutex(is->pictq_mutex);
if (is->pictq_size > 1) {
VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + 1) % VIDEO_PICTURE_QUEUE_SIZE];
duration = nextvp->pts - vp->pts;
if (pictq_nb_remaining(is) > 1) {
VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + is->pictq_rindex_shown + 1) % VIDEO_PICTURE_QUEUE_SIZE];
duration = vp_duration(is, vp, nextvp);
if(!is->step && (redisplay || framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
if (!redisplay)
is->frame_drops_late++;
@@ -1463,7 +1483,7 @@ display:
int aqsize, vqsize, sqsize;
double av_diff;
cur_time = av_gettime();
cur_time = av_gettime_relative();
if (!last_time || (cur_time - last_time) >= 30000) {
aqsize = 0;
vqsize = 0;
@@ -1549,7 +1569,7 @@ static void duplicate_right_border_pixels(SDL_Overlay *bmp) {
}
}
static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, int64_t pos, int serial)
static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, double duration, int64_t pos, int serial)
{
VideoPicture *vp;
@@ -1561,8 +1581,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, int64_t
/* wait until we have space to put a new picture */
SDL_LockMutex(is->pictq_mutex);
/* keep the last already displayed picture in the queue */
while (is->pictq_size >= VIDEO_PICTURE_QUEUE_SIZE - 1 &&
while (is->pictq_size >= VIDEO_PICTURE_QUEUE_SIZE &&
!is->videoq.abort_request) {
SDL_CondWait(is->pictq_cond, is->pictq_mutex);
}
@@ -1599,7 +1618,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, int64_t
}
/* if the queue is aborted, we have to pop the pending ALLOC event or wait for the allocation to complete */
if (is->videoq.abort_request && SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_EVENTMASK(FF_ALLOC_EVENT)) != 1) {
while (!vp->allocated) {
while (!vp->allocated && !is->abort_request) {
SDL_CondWait(is->pictq_cond, is->pictq_mutex);
}
}
@@ -1646,6 +1665,7 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, int64_t
SDL_UnlockYUVOverlay(vp->bmp);
vp->pts = pts;
vp->duration = duration;
vp->pos = pos;
vp->serial = serial;
@@ -1668,18 +1688,6 @@ static int get_video_frame(VideoState *is, AVFrame *frame, AVPacket *pkt, int *s
if (pkt->data == flush_pkt.data) {
avcodec_flush_buffers(is->video_st->codec);
SDL_LockMutex(is->pictq_mutex);
// Make sure there are no long delay timers (ideally we should just flush the queue but that's harder)
while (is->pictq_size && !is->videoq.abort_request) {
SDL_CondWait(is->pictq_cond, is->pictq_mutex);
}
is->video_current_pos = -1;
is->frame_last_pts = AV_NOPTS_VALUE;
is->frame_last_duration = 0;
is->frame_timer = (double)av_gettime() / 1000000.0;
is->frame_last_dropped_pts = AV_NOPTS_VALUE;
SDL_UnlockMutex(is->pictq_mutex);
return 0;
}
@@ -1707,23 +1715,17 @@ static int get_video_frame(VideoState *is, AVFrame *frame, AVPacket *pkt, int *s
frame->sample_aspect_ratio = av_guess_sample_aspect_ratio(is->ic, is->video_st, frame);
if (framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) {
SDL_LockMutex(is->pictq_mutex);
if (is->frame_last_pts != AV_NOPTS_VALUE && frame->pts != AV_NOPTS_VALUE) {
double clockdiff = get_clock(&is->vidclk) - get_master_clock(is);
double ptsdiff = dpts - is->frame_last_pts;
if (!isnan(clockdiff) && fabs(clockdiff) < AV_NOSYNC_THRESHOLD &&
!isnan(ptsdiff) && ptsdiff > 0 && ptsdiff < AV_NOSYNC_THRESHOLD &&
clockdiff + ptsdiff - is->frame_last_filter_delay < 0 &&
if (frame->pts != AV_NOPTS_VALUE) {
double diff = dpts - get_master_clock(is);
if (!isnan(diff) && fabs(diff) < AV_NOSYNC_THRESHOLD &&
diff - is->frame_last_filter_delay < 0 &&
*serial == is->vidclk.serial &&
is->videoq.nb_packets) {
is->frame_last_dropped_pos = av_frame_get_pkt_pos(frame);
is->frame_last_dropped_pts = dpts;
is->frame_last_dropped_serial = *serial;
is->frame_drops_early++;
av_frame_unref(frame);
ret = 0;
}
}
SDL_UnlockMutex(is->pictq_mutex);
}
return ret;
@@ -1735,7 +1737,8 @@ static int get_video_frame(VideoState *is, AVFrame *frame, AVPacket *pkt, int *s
static int configure_filtergraph(AVFilterGraph *graph, const char *filtergraph,
AVFilterContext *source_ctx, AVFilterContext *sink_ctx)
{
int ret;
int ret, i;
int nb_filters = graph->nb_filters;
AVFilterInOut *outputs = NULL, *inputs = NULL;
if (filtergraph) {
@@ -1763,6 +1766,10 @@ static int configure_filtergraph(AVFilterGraph *graph, const char *filtergraph,
goto fail;
}
/* Reorder the filters to ensure that inputs of the custom filters are merged first */
for (i = 0; i < graph->nb_filters - nb_filters; i++)
FFSWAP(AVFilterContext*, graph->filters[i], graph->filters[i + nb_filters]);
ret = avfilter_graph_config(graph, NULL);
fail:
avfilter_inout_free(&outputs);
@@ -1776,7 +1783,7 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
char sws_flags_str[128];
char buffersrc_args[256];
int ret;
AVFilterContext *filt_src = NULL, *filt_out = NULL, *filt_crop;
AVFilterContext *filt_src = NULL, *filt_out = NULL, *last_filter = NULL;
AVCodecContext *codec = is->video_st->codec;
AVRational fr = av_guess_frame_rate(is->ic, is->video_st, NULL);
@@ -1807,16 +1814,49 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c
if ((ret = av_opt_set_int_list(filt_out, "pix_fmts", pix_fmts, AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN)) < 0)
goto fail;
last_filter = filt_out;
/* Note: this macro adds a filter before the lastly added filter, so the
* processing order of the filters is in reverse */
#define INSERT_FILT(name, arg) do { \
AVFilterContext *filt_ctx; \
\
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(name), \
"ffplay_" name, arg, NULL, graph); \
if (ret < 0) \
goto fail; \
\
ret = avfilter_link(filt_ctx, 0, last_filter, 0); \
if (ret < 0) \
goto fail; \
\
last_filter = filt_ctx; \
} while (0)
/* SDL YUV code is not handling odd width/height for some driver
* combinations, therefore we crop the picture to an even width/height. */
if ((ret = avfilter_graph_create_filter(&filt_crop,
avfilter_get_by_name("crop"),
"ffplay_crop", "floor(in_w/2)*2:floor(in_h/2)*2", NULL, graph)) < 0)
goto fail;
if ((ret = avfilter_link(filt_crop, 0, filt_out, 0)) < 0)
goto fail;
INSERT_FILT("crop", "floor(in_w/2)*2:floor(in_h/2)*2");
if ((ret = configure_filtergraph(graph, vfilters, filt_src, filt_crop)) < 0)
if (autorotate) {
AVDictionaryEntry *rotate_tag = av_dict_get(is->video_st->metadata, "rotate", NULL, 0);
if (rotate_tag && *rotate_tag->value && strcmp(rotate_tag->value, "0")) {
if (!strcmp(rotate_tag->value, "90")) {
INSERT_FILT("transpose", "clock");
} else if (!strcmp(rotate_tag->value, "180")) {
INSERT_FILT("hflip", NULL);
INSERT_FILT("vflip", NULL);
} else if (!strcmp(rotate_tag->value, "270")) {
INSERT_FILT("transpose", "cclock");
} else {
char rotate_buf[64];
snprintf(rotate_buf, sizeof(rotate_buf), "%s*PI/180", rotate_tag->value);
INSERT_FILT("rotate", rotate_buf);
}
}
}
if ((ret = configure_filtergraph(graph, vfilters, filt_src, last_filter)) < 0)
goto fail;
is->in_video_filter = filt_src;
@@ -1909,8 +1949,11 @@ static int video_thread(void *arg)
VideoState *is = arg;
AVFrame *frame = av_frame_alloc();
double pts;
double duration;
int ret;
int serial = 0;
AVRational tb = is->video_st->time_base;
AVRational frame_rate = av_guess_frame_rate(is->ic, is->video_st, NULL);
#if CONFIG_AVFILTER
AVFilterGraph *graph = avfilter_graph_alloc();
@@ -1919,13 +1962,13 @@ static int video_thread(void *arg)
int last_h = 0;
enum AVPixelFormat last_format = -2;
int last_serial = -1;
int last_vfilter_idx = 0;
#endif
for (;;) {
while (is->paused && !is->videoq.abort_request)
SDL_Delay(10);
avcodec_get_frame_defaults(frame);
av_free_packet(&pkt);
ret = get_video_frame(is, frame, &pkt, &serial);
@@ -1938,7 +1981,8 @@ static int video_thread(void *arg)
if ( last_w != frame->width
|| last_h != frame->height
|| last_format != frame->format
|| last_serial != serial) {
|| last_serial != serial
|| last_vfilter_idx != is->vfilter_idx) {
av_log(NULL, AV_LOG_DEBUG,
"Video frame changed from size:%dx%d format:%s serial:%d to size:%dx%d format:%s serial:%d\n",
last_w, last_h,
@@ -1947,12 +1991,11 @@ static int video_thread(void *arg)
(const char *)av_x_if_null(av_get_pix_fmt_name(frame->format), "none"), serial);
avfilter_graph_free(&graph);
graph = avfilter_graph_alloc();
if ((ret = configure_video_filters(graph, is, vfilters, frame)) < 0) {
if ((ret = configure_video_filters(graph, is, vfilters_list ? vfilters_list[is->vfilter_idx] : NULL, frame)) < 0) {
SDL_Event event;
event.type = FF_QUIT_EVENT;
event.user.data1 = is;
SDL_PushEvent(&event);
av_free_packet(&pkt);
goto the_end;
}
filt_in = is->in_video_filter;
@@ -1961,17 +2004,16 @@ static int video_thread(void *arg)
last_h = frame->height;
last_format = frame->format;
last_serial = serial;
last_vfilter_idx = is->vfilter_idx;
frame_rate = filt_out->inputs[0]->frame_rate;
}
ret = av_buffersrc_add_frame(filt_in, frame);
if (ret < 0)
goto the_end;
av_frame_unref(frame);
avcodec_get_frame_defaults(frame);
av_free_packet(&pkt);
while (ret >= 0) {
is->frame_last_returned_time = av_gettime() / 1000000.0;
is->frame_last_returned_time = av_gettime_relative() / 1000000.0;
ret = av_buffersink_get_frame_flags(filt_out, frame, 0);
if (ret < 0) {
@@ -1981,25 +2023,23 @@ static int video_thread(void *arg)
break;
}
is->frame_last_filter_delay = av_gettime() / 1000000.0 - is->frame_last_returned_time;
is->frame_last_filter_delay = av_gettime_relative() / 1000000.0 - is->frame_last_returned_time;
if (fabs(is->frame_last_filter_delay) > AV_NOSYNC_THRESHOLD / 10.0)
is->frame_last_filter_delay = 0;
pts = (frame->pts == AV_NOPTS_VALUE) ? NAN : frame->pts * av_q2d(filt_out->inputs[0]->time_base);
ret = queue_picture(is, frame, pts, av_frame_get_pkt_pos(frame), serial);
tb = filt_out->inputs[0]->time_base;
#endif
duration = (frame_rate.num && frame_rate.den ? av_q2d((AVRational){frame_rate.den, frame_rate.num}) : 0);
pts = (frame->pts == AV_NOPTS_VALUE) ? NAN : frame->pts * av_q2d(tb);
ret = queue_picture(is, frame, pts, duration, av_frame_get_pkt_pos(frame), serial);
av_frame_unref(frame);
#if CONFIG_AVFILTER
}
#else
pts = (frame->pts == AV_NOPTS_VALUE) ? NAN : frame->pts * av_q2d(is->video_st->time_base);
ret = queue_picture(is, frame, pts, av_frame_get_pkt_pos(frame), serial);
av_frame_unref(frame);
#endif
if (ret < 0)
goto the_end;
}
the_end:
avcodec_flush_buffers(is->video_st->codec);
#if CONFIG_AVFILTER
avfilter_graph_free(&graph);
#endif
@@ -2169,11 +2209,10 @@ static int audio_decode_frame(VideoState *is)
/* NOTE: the audio packet can contain several frames */
while (pkt_temp->stream_index != -1 || is->audio_buf_frames_pending) {
if (!is->frame) {
if (!(is->frame = avcodec_alloc_frame()))
if (!(is->frame = av_frame_alloc()))
return AVERROR(ENOMEM);
} else {
av_frame_unref(is->frame);
avcodec_get_frame_defaults(is->frame);
}
if (is->audioq.serial != is->audio_pkt_temp_serial)
@@ -2248,7 +2287,6 @@ static int audio_decode_frame(VideoState *is)
if ((ret = av_buffersrc_add_frame(is->in_audio_filter, is->frame)) < 0)
return ret;
av_frame_unref(is->frame);
#endif
}
#if CONFIG_AVFILTER
@@ -2385,10 +2423,8 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
{
VideoState *is = opaque;
int audio_size, len1;
int bytes_per_sec;
int frame_size = av_samples_get_buffer_size(NULL, is->audio_tgt.channels, 1, is->audio_tgt.fmt, 1);
audio_callback_time = av_gettime();
audio_callback_time = av_gettime_relative();
while (len > 0) {
if (is->audio_buf_index >= is->audio_buf_size) {
@@ -2396,7 +2432,7 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
if (audio_size < 0) {
/* if error, just output silence */
is->audio_buf = is->silence_buf;
is->audio_buf_size = sizeof(is->silence_buf) / frame_size * frame_size;
is->audio_buf_size = sizeof(is->silence_buf) / is->audio_tgt.frame_size * is->audio_tgt.frame_size;
} else {
if (is->show_mode != SHOW_MODE_VIDEO)
update_sample_display(is, (int16_t *)is->audio_buf, audio_size);
@@ -2412,11 +2448,10 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
stream += len1;
is->audio_buf_index += len1;
}
bytes_per_sec = is->audio_tgt.freq * is->audio_tgt.channels * av_get_bytes_per_sample(is->audio_tgt.fmt);
is->audio_write_buf_size = is->audio_buf_size - is->audio_buf_index;
/* Let's assume the audio driver that is used by SDL has two periods. */
if (!isnan(is->audio_clock)) {
set_clock_at(&is->audclk, is->audio_clock - (double)(2 * is->audio_hw_buf_size + is->audio_write_buf_size) / bytes_per_sec, is->audio_clock_serial, audio_callback_time / 1000000.0);
set_clock_at(&is->audclk, is->audio_clock - (double)(2 * is->audio_hw_buf_size + is->audio_write_buf_size) / is->audio_tgt.bytes_per_sec, is->audio_clock_serial, audio_callback_time / 1000000.0);
sync_clock_to_slave(&is->extclk, &is->audclk);
}
}
@@ -2426,6 +2461,8 @@ static int audio_open(void *opaque, int64_t wanted_channel_layout, int wanted_nb
SDL_AudioSpec wanted_spec, spec;
const char *env;
static const int next_nb_channels[] = {0, 0, 1, 6, 2, 6, 4, 6};
static const int next_sample_rates[] = {0, 44100, 48000, 96000, 192000};
int next_sample_rate_idx = FF_ARRAY_ELEMS(next_sample_rates) - 1;
env = SDL_getenv("SDL_AUDIO_CHANNELS");
if (env) {
@@ -2436,24 +2473,32 @@ static int audio_open(void *opaque, int64_t wanted_channel_layout, int wanted_nb
wanted_channel_layout = av_get_default_channel_layout(wanted_nb_channels);
wanted_channel_layout &= ~AV_CH_LAYOUT_STEREO_DOWNMIX;
}
wanted_spec.channels = av_get_channel_layout_nb_channels(wanted_channel_layout);
wanted_nb_channels = av_get_channel_layout_nb_channels(wanted_channel_layout);
wanted_spec.channels = wanted_nb_channels;
wanted_spec.freq = wanted_sample_rate;
if (wanted_spec.freq <= 0 || wanted_spec.channels <= 0) {
av_log(NULL, AV_LOG_ERROR, "Invalid sample rate or channel count!\n");
return -1;
}
while (next_sample_rate_idx && next_sample_rates[next_sample_rate_idx] >= wanted_spec.freq)
next_sample_rate_idx--;
wanted_spec.format = AUDIO_S16SYS;
wanted_spec.silence = 0;
wanted_spec.samples = SDL_AUDIO_BUFFER_SIZE;
wanted_spec.samples = FFMAX(SDL_AUDIO_MIN_BUFFER_SIZE, 2 << av_log2(wanted_spec.freq / SDL_AUDIO_MAX_CALLBACKS_PER_SEC));
wanted_spec.callback = sdl_audio_callback;
wanted_spec.userdata = opaque;
while (SDL_OpenAudio(&wanted_spec, &spec) < 0) {
av_log(NULL, AV_LOG_WARNING, "SDL_OpenAudio (%d channels): %s\n", wanted_spec.channels, SDL_GetError());
av_log(NULL, AV_LOG_WARNING, "SDL_OpenAudio (%d channels, %d Hz): %s\n",
wanted_spec.channels, wanted_spec.freq, SDL_GetError());
wanted_spec.channels = next_nb_channels[FFMIN(7, wanted_spec.channels)];
if (!wanted_spec.channels) {
av_log(NULL, AV_LOG_ERROR,
"No more channel combinations to try, audio open failed\n");
return -1;
wanted_spec.freq = next_sample_rates[next_sample_rate_idx--];
wanted_spec.channels = wanted_nb_channels;
if (!wanted_spec.freq) {
av_log(NULL, AV_LOG_ERROR,
"No more combinations to try, audio open failed\n");
return -1;
}
}
wanted_channel_layout = av_get_default_channel_layout(wanted_spec.channels);
}
@@ -2475,6 +2520,12 @@ static int audio_open(void *opaque, int64_t wanted_channel_layout, int wanted_nb
audio_hw_params->freq = spec.freq;
audio_hw_params->channel_layout = wanted_channel_layout;
audio_hw_params->channels = spec.channels;
audio_hw_params->frame_size = av_samples_get_buffer_size(NULL, audio_hw_params->channels, 1, audio_hw_params->fmt, 1);
audio_hw_params->bytes_per_sec = av_samples_get_buffer_size(NULL, audio_hw_params->channels, audio_hw_params->freq, audio_hw_params->fmt, 1);
if (audio_hw_params->bytes_per_sec <= 0 || audio_hw_params->frame_size <= 0) {
av_log(NULL, AV_LOG_ERROR, "av_samples_get_buffer_size failed\n");
return -1;
}
return spec.size;
}
@@ -2521,7 +2572,6 @@ static int stream_component_open(VideoState *is, int stream_index)
stream_lowres = av_codec_get_max_lowres(codec);
}
av_codec_set_lowres(avctx, stream_lowres);
avctx->error_concealment = error_concealment;
if(stream_lowres) avctx->flags |= CODEC_FLAG_EMU_EDGE;
if (fast) avctx->flags2 |= CODEC_FLAG2_FAST;
@@ -2579,7 +2629,7 @@ static int stream_component_open(VideoState *is, int stream_index)
is->audio_diff_avg_count = 0;
/* since we do not have a precise anough audio fifo fullness,
we correct audio sync only if larger than this threshold */
is->audio_diff_threshold = 2.0 * is->audio_hw_buf_size / av_samples_get_buffer_size(NULL, is->audio_tgt.channels, is->audio_tgt.freq, is->audio_tgt.fmt, 1);
is->audio_diff_threshold = (double)(is->audio_hw_buf_size) / is->audio_tgt.bytes_per_sec;
memset(&is->audio_pkt, 0, sizeof(is->audio_pkt));
memset(&is->audio_pkt_temp, 0, sizeof(is->audio_pkt_temp));
@@ -2757,6 +2807,8 @@ static int read_thread(void *arg)
if (genpts)
ic->flags |= AVFMT_FLAG_GENPTS;
av_format_inject_global_side_data(ic);
opts = setup_find_stream_info_opts(ic, codec_opts);
orig_nb_streams = ic->nb_streams;
@@ -2824,6 +2876,13 @@ static int read_thread(void *arg)
}
is->show_mode = show_mode;
if (st_index[AVMEDIA_TYPE_VIDEO] >= 0) {
AVStream *st = ic->streams[st_index[AVMEDIA_TYPE_VIDEO]];
AVCodecContext *avctx = st->codec;
AVRational sar = av_guess_sample_aspect_ratio(ic, st, NULL);
if (avctx->width)
set_default_window_size(avctx->width, avctx->height, sar);
}
/* open the streams */
if (st_index[AVMEDIA_TYPE_AUDIO] >= 0) {
@@ -2933,7 +2992,7 @@ static int read_thread(void *arg)
}
if (!is->paused &&
(!is->audio_st || is->audio_finished == is->audioq.serial) &&
(!is->video_st || (is->video_finished == is->videoq.serial && is->pictq_size == 0))) {
(!is->video_st || (is->video_finished == is->videoq.serial && pictq_nb_remaining(is) == 0))) {
if (loop != 1 && (!loop || --loop)) {
stream_seek(is, start_time != AV_NOPTS_VALUE ? start_time : 0, 0, 0);
} else if (autoexit) {
@@ -2946,6 +3005,8 @@ static int read_thread(void *arg)
packet_queue_put_nullpacket(&is->videoq, is->video_stream);
if (is->audio_stream >= 0)
packet_queue_put_nullpacket(&is->audioq, is->audio_stream);
if (is->subtitle_stream >= 0)
packet_queue_put_nullpacket(&is->subtitleq, is->subtitle_stream);
SDL_Delay(10);
eof=0;
continue;
@@ -3116,6 +3177,11 @@ static void stream_cycle_channel(VideoState *is, int codec_type)
the_end:
if (p && stream_index != -1)
stream_index = p->stream_index[stream_index];
av_log(NULL, AV_LOG_INFO, "Switch %s stream from #%d to #%d\n",
av_get_media_type_string(codec_type),
old_index,
stream_index);
stream_component_close(is, old_index);
stream_component_open(is, stream_index);
}
@@ -3153,7 +3219,7 @@ static void refresh_loop_wait_event(VideoState *is, SDL_Event *event) {
double remaining_time = 0.0;
SDL_PumpEvents();
while (!SDL_PeepEvents(event, 1, SDL_GETEVENT, SDL_ALLEVENTS)) {
if (!cursor_hidden && av_gettime() - cursor_last_shown > CURSOR_HIDE_DELAY) {
if (!cursor_hidden && av_gettime_relative() - cursor_last_shown > CURSOR_HIDE_DELAY) {
SDL_ShowCursor(0);
cursor_hidden = 1;
}
@@ -3166,6 +3232,33 @@ static void refresh_loop_wait_event(VideoState *is, SDL_Event *event) {
}
}
static void seek_chapter(VideoState *is, int incr)
{
int64_t pos = get_master_clock(is) * AV_TIME_BASE;
int i;
if (!is->ic->nb_chapters)
return;
/* find the current chapter */
for (i = 0; i < is->ic->nb_chapters; i++) {
AVChapter *ch = is->ic->chapters[i];
if (av_compare_ts(pos, AV_TIME_BASE_Q, ch->start, ch->time_base) < 0) {
i--;
break;
}
}
i += incr;
i = FFMAX(i, 0);
if (i >= is->ic->nb_chapters)
return;
av_log(NULL, AV_LOG_VERBOSE, "Seeking to chapter %d.\n", i);
stream_seek(is, av_rescale_q(is->ic->chapters[i]->start, is->ic->chapters[i]->time_base,
AV_TIME_BASE_Q), 0, 0);
}
/* handle an event sent by the GUI */
static void event_loop(VideoState *cur_stream)
{
@@ -3212,14 +3305,32 @@ static void event_loop(VideoState *cur_stream)
stream_cycle_channel(cur_stream, AVMEDIA_TYPE_SUBTITLE);
break;
case SDLK_w:
#if CONFIG_AVFILTER
if (cur_stream->show_mode == SHOW_MODE_VIDEO && cur_stream->vfilter_idx < nb_vfilters - 1) {
if (++cur_stream->vfilter_idx >= nb_vfilters)
cur_stream->vfilter_idx = 0;
} else {
cur_stream->vfilter_idx = 0;
toggle_audio_display(cur_stream);
}
#else
toggle_audio_display(cur_stream);
#endif
break;
case SDLK_PAGEUP:
incr = 600.0;
goto do_seek;
if (cur_stream->ic->nb_chapters <= 1) {
incr = 600.0;
goto do_seek;
}
seek_chapter(cur_stream, 1);
break;
case SDLK_PAGEDOWN:
incr = -600.0;
goto do_seek;
if (cur_stream->ic->nb_chapters <= 1) {
incr = -600.0;
goto do_seek;
}
seek_chapter(cur_stream, -1);
break;
case SDLK_LEFT:
incr = -10.0;
goto do_seek;
@@ -3272,7 +3383,7 @@ static void event_loop(VideoState *cur_stream)
SDL_ShowCursor(1);
cursor_hidden = 0;
}
cursor_last_shown = av_gettime();
cursor_last_shown = av_gettime_relative();
if (event.type == SDL_MOUSEBUTTONDOWN) {
x = event.button.x;
} else {
@@ -3460,7 +3571,6 @@ static const OptionDef options[] = {
{ "genpts", OPT_BOOL | OPT_EXPERT, { &genpts }, "generate pts", "" },
{ "drp", OPT_INT | HAS_ARG | OPT_EXPERT, { &decoder_reorder_pts }, "let decoder reorder pts 0=off 1=on -1=auto", ""},
{ "lowres", OPT_INT | HAS_ARG | OPT_EXPERT, { &lowres }, "", "" },
{ "ec", OPT_INT | HAS_ARG | OPT_EXPERT, { &error_concealment }, "set error concealment options", "bit_mask" },
{ "sync", HAS_ARG | OPT_EXPERT, { .func_arg = opt_sync }, "set audio-video sync. type (type=audio/video/ext)", "type" },
{ "autoexit", OPT_BOOL | OPT_EXPERT, { &autoexit }, "exit at the end", "" },
{ "exitonkeydown", OPT_BOOL | OPT_EXPERT, { &exit_on_keydown }, "exit on key down", "" },
@@ -3470,7 +3580,7 @@ static const OptionDef options[] = {
{ "infbuf", OPT_BOOL | OPT_EXPERT, { &infinite_buffer }, "don't limit the input buffer size (useful with realtime streams)", "" },
{ "window_title", OPT_STRING | HAS_ARG, { &window_title }, "set window title", "window title" },
#if CONFIG_AVFILTER
{ "vf", OPT_STRING | HAS_ARG, { &vfilters }, "set video filters", "filter_graph" },
{ "vf", OPT_EXPERT | HAS_ARG, { .func_arg = opt_add_vfilter }, "set video filters", "filter_graph" },
{ "af", OPT_STRING | HAS_ARG, { &afilters }, "set audio filters", "filter_graph" },
#endif
{ "rdftspeed", OPT_INT | HAS_ARG| OPT_AUDIO | OPT_EXPERT, { &rdftspeed }, "rdft speed", "msecs" },
@@ -3481,6 +3591,7 @@ static const OptionDef options[] = {
{ "acodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &audio_codec_name }, "force audio decoder", "decoder_name" },
{ "scodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &subtitle_codec_name }, "force subtitle decoder", "decoder_name" },
{ "vcodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &video_codec_name }, "force video decoder", "decoder_name" },
{ "autorotate", OPT_BOOL, { &autorotate }, "automatically rotate video", "" },
{ NULL, },
};
@@ -3513,7 +3624,7 @@ void show_help_default(const char *opt, const char *arg)
"v cycle video channel\n"
"t cycle subtitle channel in the current program\n"
"c cycle program\n"
"w show audio waves\n"
"w cycle video filters or show modes\n"
"s activate frame-step mode\n"
"left/right seek backward/forward 10 seconds\n"
"down/up seek backward/forward 1 minute\n"
@@ -3552,7 +3663,6 @@ int main(int argc, char **argv)
parse_loglevel(argc, argv, options);
/* register all codecs, demux and protocols */
avcodec_register_all();
#if CONFIG_AVDEVICE
avdevice_register_all();
#endif
@@ -3587,7 +3697,7 @@ int main(int argc, char **argv)
flags &= ~SDL_INIT_AUDIO;
if (display_disable)
SDL_putenv(dummy_videodriver); /* For the event queue, we always need a video driver. */
#if !defined(__MINGW32__) && !defined(__APPLE__)
#if !defined(_WIN32) && !defined(__APPLE__)
flags |= SDL_INIT_EVENTTHREAD; /* Not supported on Windows or Mac OS X */
#endif
if (SDL_Init (flags)) {

407
ffprobe.c
View File

@@ -24,7 +24,7 @@
*/
#include "config.h"
#include "version.h"
#include "libavutil/ffversion.h"
#include <string.h>
@@ -66,6 +66,12 @@ static int do_show_data = 0;
static int do_show_program_version = 0;
static int do_show_library_versions = 0;
static int do_show_chapter_tags = 0;
static int do_show_format_tags = 0;
static int do_show_frame_tags = 0;
static int do_show_program_tags = 0;
static int do_show_stream_tags = 0;
static int show_value_unit = 0;
static int use_value_prefix = 0;
static int use_byte_value_binary_prefix = 0;
@@ -135,6 +141,7 @@ typedef enum {
SECTION_ID_STREAM_DISPOSITION,
SECTION_ID_STREAMS,
SECTION_ID_STREAM_TAGS,
SECTION_ID_SUBTITLE,
} SectionID;
static struct section sections[] = {
@@ -144,7 +151,7 @@ static struct section sections[] = {
[SECTION_ID_ERROR] = { SECTION_ID_ERROR, "error", 0, { -1 } },
[SECTION_ID_FORMAT] = { SECTION_ID_FORMAT, "format", 0, { SECTION_ID_FORMAT_TAGS, -1 } },
[SECTION_ID_FORMAT_TAGS] = { SECTION_ID_FORMAT_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "format_tags" },
[SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, -1 } },
[SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, SECTION_ID_SUBTITLE, -1 } },
[SECTION_ID_FRAME] = { SECTION_ID_FRAME, "frame", 0, { SECTION_ID_FRAME_TAGS, -1 } },
[SECTION_ID_FRAME_TAGS] = { SECTION_ID_FRAME_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "frame_tags" },
[SECTION_ID_LIBRARY_VERSIONS] = { SECTION_ID_LIBRARY_VERSIONS, "library_versions", SECTION_FLAG_IS_ARRAY, { SECTION_ID_LIBRARY_VERSION, -1 } },
@@ -167,6 +174,7 @@ static struct section sections[] = {
[SECTION_ID_STREAM] = { SECTION_ID_STREAM, "stream", 0, { SECTION_ID_STREAM_DISPOSITION, SECTION_ID_STREAM_TAGS, -1 } },
[SECTION_ID_STREAM_DISPOSITION] = { SECTION_ID_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_disposition" },
[SECTION_ID_STREAM_TAGS] = { SECTION_ID_STREAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_tags" },
[SECTION_ID_SUBTITLE] = { SECTION_ID_SUBTITLE, "subtitle", 0, { -1 } },
};
static const OptionDef *options;
@@ -260,6 +268,13 @@ typedef struct WriterContext WriterContext;
#define WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS 1
#define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER 2
typedef enum {
WRITER_STRING_VALIDATION_FAIL,
WRITER_STRING_VALIDATION_REPLACE,
WRITER_STRING_VALIDATION_IGNORE,
WRITER_STRING_VALIDATION_NB
} StringValidation;
typedef struct Writer {
const AVClass *priv_class; ///< private class of the writer, if any
int priv_size; ///< private size for the writer context
@@ -300,6 +315,10 @@ struct WriterContext {
unsigned int nb_section_packet; ///< number of the packet section in case we are in "packets_and_frames" section
unsigned int nb_section_frame; ///< number of the frame section in case we are in "packets_and_frames" section
unsigned int nb_section_packet_frame; ///< nb_section_packet or nb_section_frame according if is_packets_and_frames
StringValidation string_validation;
char *string_validation_replacement;
unsigned int string_validation_utf8_flags;
};
static const char *writer_get_name(void *p)
@@ -308,11 +327,35 @@ static const char *writer_get_name(void *p)
return wctx->writer->name;
}
#define OFFSET(x) offsetof(WriterContext, x)
static const AVOption writer_options[] = {
{ "string_validation", "set string validation mode",
OFFSET(string_validation), AV_OPT_TYPE_INT, {.i64=WRITER_STRING_VALIDATION_REPLACE}, 0, WRITER_STRING_VALIDATION_NB-1, .unit = "sv" },
{ "sv", "set string validation mode",
OFFSET(string_validation), AV_OPT_TYPE_INT, {.i64=WRITER_STRING_VALIDATION_REPLACE}, 0, WRITER_STRING_VALIDATION_NB-1, .unit = "sv" },
{ "ignore", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = WRITER_STRING_VALIDATION_IGNORE}, .unit = "sv" },
{ "replace", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = WRITER_STRING_VALIDATION_REPLACE}, .unit = "sv" },
{ "fail", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = WRITER_STRING_VALIDATION_FAIL}, .unit = "sv" },
{ "string_validation_replacement", "set string validation replacement string", OFFSET(string_validation_replacement), AV_OPT_TYPE_STRING, {.str=""}},
{ "svr", "set string validation replacement string", OFFSET(string_validation_replacement), AV_OPT_TYPE_STRING, {.str="\xEF\xBF\xBD"}},
{ NULL }
};
static void *writer_child_next(void *obj, void *prev)
{
WriterContext *ctx = obj;
if (!prev && ctx->writer && ctx->writer->priv_class && ctx->priv)
return ctx->priv;
return NULL;
}
static const AVClass writer_class = {
"Writer",
writer_get_name,
NULL,
LIBAVUTIL_VERSION_INT,
.class_name = "Writer",
.item_name = writer_get_name,
.option = writer_options,
.version = LIBAVUTIL_VERSION_INT,
.child_next = writer_child_next,
};
static void writer_close(WriterContext **wctx)
@@ -329,9 +372,19 @@ static void writer_close(WriterContext **wctx)
if ((*wctx)->writer->priv_class)
av_opt_free((*wctx)->priv);
av_freep(&((*wctx)->priv));
av_opt_free(*wctx);
av_freep(wctx);
}
static void bprint_bytes(AVBPrint *bp, const uint8_t *ubuf, size_t ubuf_size)
{
int i;
av_bprintf(bp, "0X");
for (i = 0; i < ubuf_size; i++)
av_bprintf(bp, "%02X", ubuf[i]);
}
static int writer_open(WriterContext **wctx, const Writer *writer, const char *args,
const struct section *sections, int nb_sections)
{
@@ -353,14 +406,55 @@ static int writer_open(WriterContext **wctx, const Writer *writer, const char *a
(*wctx)->sections = sections;
(*wctx)->nb_sections = nb_sections;
av_opt_set_defaults(*wctx);
if (writer->priv_class) {
void *priv_ctx = (*wctx)->priv;
*((const AVClass **)priv_ctx) = writer->priv_class;
av_opt_set_defaults(priv_ctx);
}
if (args &&
(ret = av_set_options_string(priv_ctx, args, "=", ":")) < 0)
/* convert options to dictionary */
if (args) {
AVDictionary *opts = NULL;
AVDictionaryEntry *opt = NULL;
if ((ret = av_dict_parse_string(&opts, args, "=", ":", 0)) < 0) {
av_log(*wctx, AV_LOG_ERROR, "Failed to parse option string '%s' provided to writer context\n", args);
av_dict_free(&opts);
goto fail;
}
while ((opt = av_dict_get(opts, "", opt, AV_DICT_IGNORE_SUFFIX))) {
if ((ret = av_opt_set(*wctx, opt->key, opt->value, AV_OPT_SEARCH_CHILDREN)) < 0) {
av_log(*wctx, AV_LOG_ERROR, "Failed to set option '%s' with value '%s' provided to writer context\n",
opt->key, opt->value);
av_dict_free(&opts);
goto fail;
}
}
av_dict_free(&opts);
}
/* validate replace string */
{
const uint8_t *p = (*wctx)->string_validation_replacement;
const uint8_t *endp = p + strlen(p);
while (*p) {
const uint8_t *p0 = p;
int32_t code;
ret = av_utf8_decode(&code, &p, endp, (*wctx)->string_validation_utf8_flags);
if (ret < 0) {
AVBPrint bp;
av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);
bprint_bytes(&bp, p0, p-p0),
av_log(wctx, AV_LOG_ERROR,
"Invalid UTF8 sequence %s found in string validation replace '%s'\n",
bp.str, (*wctx)->string_validation_replacement);
return ret;
}
}
}
for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
@@ -430,18 +524,98 @@ static inline void writer_print_integer(WriterContext *wctx,
}
}
static inline void writer_print_string(WriterContext *wctx,
const char *key, const char *val, int opt)
static inline int validate_string(WriterContext *wctx, char **dstp, const char *src)
{
const uint8_t *p, *endp;
AVBPrint dstbuf;
int invalid_chars_nb = 0, ret = 0;
av_bprint_init(&dstbuf, 0, AV_BPRINT_SIZE_UNLIMITED);
endp = src + strlen(src);
for (p = (uint8_t *)src; *p;) {
uint32_t code;
int invalid = 0;
const uint8_t *p0 = p;
if (av_utf8_decode(&code, &p, endp, wctx->string_validation_utf8_flags) < 0) {
AVBPrint bp;
av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);
bprint_bytes(&bp, p0, p-p0);
av_log(wctx, AV_LOG_DEBUG,
"Invalid UTF-8 sequence %s found in string '%s'\n", bp.str, src);
invalid = 1;
}
if (invalid) {
invalid_chars_nb++;
switch (wctx->string_validation) {
case WRITER_STRING_VALIDATION_FAIL:
av_log(wctx, AV_LOG_ERROR,
"Invalid UTF-8 sequence found in string '%s'\n", src);
ret = AVERROR_INVALIDDATA;
goto end;
break;
case WRITER_STRING_VALIDATION_REPLACE:
av_bprintf(&dstbuf, "%s", wctx->string_validation_replacement);
break;
}
}
if (!invalid || wctx->string_validation == WRITER_STRING_VALIDATION_IGNORE)
av_bprint_append_data(&dstbuf, p0, p-p0);
}
if (invalid_chars_nb && wctx->string_validation == WRITER_STRING_VALIDATION_REPLACE) {
av_log(wctx, AV_LOG_WARNING,
"%d invalid UTF-8 sequence(s) found in string '%s', replaced with '%s'\n",
invalid_chars_nb, src, wctx->string_validation_replacement);
}
end:
av_bprint_finalize(&dstbuf, dstp);
return ret;
}
#define PRINT_STRING_OPT 1
#define PRINT_STRING_VALIDATE 2
static inline int writer_print_string(WriterContext *wctx,
const char *key, const char *val, int flags)
{
const struct section *section = wctx->section[wctx->level];
int ret = 0;
if (opt && !(wctx->writer->flags & WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS))
return;
if ((flags & PRINT_STRING_OPT)
&& !(wctx->writer->flags & WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS))
return 0;
if (section->show_all_entries || av_dict_get(section->entries_to_show, key, NULL, 0)) {
wctx->writer->print_string(wctx, key, val);
if (flags & PRINT_STRING_VALIDATE) {
char *key1 = NULL, *val1 = NULL;
ret = validate_string(wctx, &key1, key);
if (ret < 0) goto end;
ret = validate_string(wctx, &val1, val);
if (ret < 0) goto end;
wctx->writer->print_string(wctx, key1, val1);
end:
if (ret < 0) {
av_log(wctx, AV_LOG_ERROR,
"Invalid key=value string combination %s=%s in section %s\n",
key, val, section->unique_name);
}
av_free(key1);
av_free(val1);
} else {
wctx->writer->print_string(wctx, key, val);
}
wctx->nb_item[wctx->level]++;
}
return ret;
}
static inline void writer_print_rational(WriterContext *wctx,
@@ -459,7 +633,7 @@ static void writer_print_time(WriterContext *wctx, const char *key,
char buf[128];
if ((!is_duration && ts == AV_NOPTS_VALUE) || (is_duration && ts == 0)) {
writer_print_string(wctx, key, "N/A", 1);
writer_print_string(wctx, key, "N/A", PRINT_STRING_OPT);
} else {
double d = ts * av_q2d(*time_base);
struct unit_value uv;
@@ -473,7 +647,7 @@ static void writer_print_time(WriterContext *wctx, const char *key,
static void writer_print_ts(WriterContext *wctx, const char *key, int64_t ts, int is_duration)
{
if ((!is_duration && ts == AV_NOPTS_VALUE) || (is_duration && ts == 0)) {
writer_print_string(wctx, key, "N/A", 1);
writer_print_string(wctx, key, "N/A", PRINT_STRING_OPT);
} else {
writer_print_integer(wctx, key, ts);
}
@@ -542,9 +716,9 @@ static const char *name##_get_name(void *ctx) \
return #name ; \
} \
static const AVClass name##_class = { \
#name, \
name##_get_name, \
name##_options \
.class_name = #name, \
.item_name = name##_get_name, \
.option = name##_options \
}
/* Default output */
@@ -556,6 +730,7 @@ typedef struct DefaultContext {
int nested_section[SECTION_MAX_NB_LEVELS];
} DefaultContext;
#undef OFFSET
#define OFFSET(x) offsetof(DefaultContext, x)
static const AVOption default_options[] = {
@@ -1442,7 +1617,8 @@ static void writer_register_all(void)
#define print_int(k, v) writer_print_integer(w, k, v)
#define print_q(k, v, s) writer_print_rational(w, k, v, s)
#define print_str(k, v) writer_print_string(w, k, v, 0)
#define print_str_opt(k, v) writer_print_string(w, k, v, 1)
#define print_str_opt(k, v) writer_print_string(w, k, v, PRINT_STRING_OPT)
#define print_str_validate(k, v) writer_print_string(w, k, v, PRINT_STRING_VALIDATE)
#define print_time(k, v, tb) writer_print_time(w, k, v, tb, 0)
#define print_ts(k, v) writer_print_ts(w, k, v, 0)
#define print_duration_time(k, v, tb) writer_print_time(w, k, v, tb, 1)
@@ -1465,16 +1641,22 @@ static void writer_register_all(void)
memset( (ptr) + (cur_n), 0, ((new_n) - (cur_n)) * sizeof(*(ptr)) ); \
}
static inline void show_tags(WriterContext *wctx, AVDictionary *tags, int section_id)
static inline int show_tags(WriterContext *w, AVDictionary *tags, int section_id)
{
AVDictionaryEntry *tag = NULL;
int ret = 0;
if (!tags)
return;
writer_print_section_header(wctx, section_id);
while ((tag = av_dict_get(tags, "", tag, AV_DICT_IGNORE_SUFFIX)))
writer_print_string(wctx, tag->key, tag->value, 0);
writer_print_section_footer(wctx);
return 0;
writer_print_section_header(w, section_id);
while ((tag = av_dict_get(tags, "", tag, AV_DICT_IGNORE_SUFFIX))) {
if ((ret = print_str_validate(tag->key, tag->value)) < 0)
break;
}
writer_print_section_footer(w);
return ret;
}
static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pkt, int packet_idx)
@@ -1512,6 +1694,29 @@ static void show_packet(WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pk
fflush(stdout);
}
static void show_subtitle(WriterContext *w, AVSubtitle *sub, AVStream *stream,
AVFormatContext *fmt_ctx)
{
AVBPrint pbuf;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
writer_print_section_header(w, SECTION_ID_SUBTITLE);
print_str ("media_type", "subtitle");
print_ts ("pts", sub->pts);
print_time("pts_time", sub->pts, &AV_TIME_BASE_Q);
print_int ("format", sub->format);
print_int ("start_display_time", sub->start_display_time);
print_int ("end_display_time", sub->end_display_time);
print_int ("num_rects", sub->num_rects);
writer_print_section_footer(w);
av_bprint_finalize(&pbuf, NULL);
fflush(stdout);
}
static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
AVFormatContext *fmt_ctx)
{
@@ -1530,6 +1735,8 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
print_time("pkt_pts_time", frame->pkt_pts, &stream->time_base);
print_ts ("pkt_dts", frame->pkt_dts);
print_time("pkt_dts_time", frame->pkt_dts, &stream->time_base);
print_ts ("best_effort_timestamp", av_frame_get_best_effort_timestamp(frame));
print_time("best_effort_timestamp_time", av_frame_get_best_effort_timestamp(frame), &stream->time_base);
print_duration_ts ("pkt_duration", av_frame_get_pkt_duration(frame));
print_duration_time("pkt_duration_time", av_frame_get_pkt_duration(frame), &stream->time_base);
if (av_frame_get_pkt_pos (frame) != -1) print_fmt ("pkt_pos", "%"PRId64, av_frame_get_pkt_pos(frame));
@@ -1575,7 +1782,8 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
print_str_opt("channel_layout", "unknown");
break;
}
show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS);
if (do_show_frame_tags)
show_tags(w, av_frame_get_metadata(frame), SECTION_ID_FRAME_TAGS);
writer_print_section_footer(w);
@@ -1588,6 +1796,7 @@ static av_always_inline int process_frame(WriterContext *w,
AVFrame *frame, AVPacket *pkt)
{
AVCodecContext *dec_ctx = fmt_ctx->streams[pkt->stream_index]->codec;
AVSubtitle sub;
int ret = 0, got_frame = 0;
if (dec_ctx->codec) {
@@ -1599,6 +1808,10 @@ static av_always_inline int process_frame(WriterContext *w,
case AVMEDIA_TYPE_AUDIO:
ret = avcodec_decode_audio4(dec_ctx, frame, &got_frame, pkt);
break;
case AVMEDIA_TYPE_SUBTITLE:
ret = avcodec_decode_subtitle2(dec_ctx, &sub, &got_frame, pkt);
break;
}
}
@@ -1608,9 +1821,15 @@ static av_always_inline int process_frame(WriterContext *w,
pkt->data += ret;
pkt->size -= ret;
if (got_frame) {
int is_sub = (dec_ctx->codec_type == AVMEDIA_TYPE_SUBTITLE);
nb_streams_frames[pkt->stream_index]++;
if (do_show_frames)
show_frame(w, frame, fmt_ctx->streams[pkt->stream_index], fmt_ctx);
if (is_sub)
show_subtitle(w, &sub, fmt_ctx->streams[pkt->stream_index], fmt_ctx);
else
show_frame(w, frame, fmt_ctx->streams[pkt->stream_index], fmt_ctx);
if (is_sub)
avsubtitle_free(&sub);
}
return got_frame;
}
@@ -1744,7 +1963,7 @@ end:
return ret;
}
static void read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
static int read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
{
int i, ret = 0;
int64_t cur_ts = fmt_ctx->start_time;
@@ -1759,9 +1978,11 @@ static void read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
break;
}
}
return ret;
}
static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, int in_program)
static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, int in_program)
{
AVStream *stream = fmt_ctx->streams[stream_idx];
AVCodecContext *dec_ctx;
@@ -1770,6 +1991,8 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
const char *s;
AVRational sar, dar;
AVBPrint pbuf;
const AVCodecDescriptor *cd;
int ret = 0;
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
@@ -1786,6 +2009,12 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
if (dec->long_name) print_str ("codec_long_name", dec->long_name);
else print_str_opt("codec_long_name", "unknown");
}
} else if ((cd = avcodec_descriptor_get(stream->codec->codec_id))) {
print_str_opt("codec_name", cd->name);
if (!do_bitexact) {
print_str_opt("codec_long_name",
cd->long_name ? cd->long_name : "unknown");
}
} else {
print_str_opt("codec_name", "unknown");
if (!do_bitexact) {
@@ -1829,6 +2058,13 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
if (s) print_str ("pix_fmt", s);
else print_str_opt("pix_fmt", "unknown");
print_int("level", dec_ctx->level);
if (dec_ctx->color_range != AVCOL_RANGE_UNSPECIFIED)
print_str ("color_range", dec_ctx->color_range == AVCOL_RANGE_MPEG ? "tv": "pc");
else
print_str_opt("color_range", "N/A");
s = av_get_colorspace_name(dec_ctx->colorspace);
if (s) print_str ("color_space", s);
else print_str_opt("color_space", "unknown");
if (dec_ctx->timecode_frame_start >= 0) {
char tcbuf[AV_TIMECODE_STR_SIZE];
av_timecode_make_mpeg_tc_string(tcbuf, dec_ctx->timecode_frame_start);
@@ -1893,6 +2129,8 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
print_time("duration", stream->duration, &stream->time_base);
if (dec_ctx->bit_rate > 0) print_val ("bit_rate", dec_ctx->bit_rate, unit_bit_per_second_str);
else print_str_opt("bit_rate", "N/A");
if (dec_ctx->rc_max_rate > 0) print_val ("max_bit_rate", dec_ctx->rc_max_rate, unit_bit_per_second_str);
else print_str_opt("max_bit_rate", "N/A");
if (stream->nb_frames) print_fmt ("nb_frames", "%"PRId64, stream->nb_frames);
else print_str_opt("nb_frames", "N/A");
if (nb_streams_frames[stream_idx]) print_fmt ("nb_read_frames", "%"PRIu64, nb_streams_frames[stream_idx]);
@@ -1924,26 +2162,35 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
writer_print_section_footer(w);
}
show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS);
if (do_show_stream_tags)
ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS);
writer_print_section_footer(w);
av_bprint_finalize(&pbuf, NULL);
fflush(stdout);
return ret;
}
static void show_streams(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_streams(WriterContext *w, AVFormatContext *fmt_ctx)
{
int i;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_STREAMS);
for (i = 0; i < fmt_ctx->nb_streams; i++)
if (selected_streams[i])
show_stream(w, fmt_ctx, i, 0);
if (selected_streams[i]) {
ret = show_stream(w, fmt_ctx, i, 0);
if (ret < 0)
break;
}
writer_print_section_footer(w);
return ret;
}
static void show_program(WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *program)
static int show_program(WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *program)
{
int i;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_PROGRAM);
print_int("program_id", program->id);
@@ -1955,35 +2202,46 @@ static void show_program(WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *
print_time("start_time", program->start_time, &AV_TIME_BASE_Q);
print_ts("end_pts", program->end_time);
print_time("end_time", program->end_time, &AV_TIME_BASE_Q);
show_tags(w, program->metadata, SECTION_ID_PROGRAM_TAGS);
if (do_show_program_tags)
ret = show_tags(w, program->metadata, SECTION_ID_PROGRAM_TAGS);
if (ret < 0)
goto end;
writer_print_section_header(w, SECTION_ID_PROGRAM_STREAMS);
for (i = 0; i < program->nb_stream_indexes; i++) {
if (selected_streams[program->stream_index[i]])
show_stream(w, fmt_ctx, program->stream_index[i], 1);
if (selected_streams[program->stream_index[i]]) {
ret = show_stream(w, fmt_ctx, program->stream_index[i], 1);
if (ret < 0)
break;
}
}
writer_print_section_footer(w);
end:
writer_print_section_footer(w);
return ret;
}
static void show_programs(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_programs(WriterContext *w, AVFormatContext *fmt_ctx)
{
int i;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_PROGRAMS);
for (i = 0; i < fmt_ctx->nb_programs; i++) {
AVProgram *program = fmt_ctx->programs[i];
if (!program)
continue;
show_program(w, fmt_ctx, program);
ret = show_program(w, fmt_ctx, program);
if (ret < 0)
break;
}
writer_print_section_footer(w);
return ret;
}
static void show_chapters(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_chapters(WriterContext *w, AVFormatContext *fmt_ctx)
{
int i;
int i, ret = 0;
writer_print_section_header(w, SECTION_ID_CHAPTERS);
for (i = 0; i < fmt_ctx->nb_chapters; i++) {
@@ -1996,19 +2254,23 @@ static void show_chapters(WriterContext *w, AVFormatContext *fmt_ctx)
print_time("start_time", chapter->start, &chapter->time_base);
print_int("end", chapter->end);
print_time("end_time", chapter->end, &chapter->time_base);
show_tags(w, chapter->metadata, SECTION_ID_CHAPTER_TAGS);
if (do_show_chapter_tags)
ret = show_tags(w, chapter->metadata, SECTION_ID_CHAPTER_TAGS);
writer_print_section_footer(w);
}
writer_print_section_footer(w);
return ret;
}
static void show_format(WriterContext *w, AVFormatContext *fmt_ctx)
static int show_format(WriterContext *w, AVFormatContext *fmt_ctx)
{
char val_str[128];
int64_t size = fmt_ctx->pb ? avio_size(fmt_ctx->pb) : -1;
int ret = 0;
writer_print_section_header(w, SECTION_ID_FORMAT);
print_str("filename", fmt_ctx->filename);
print_str_validate("filename", fmt_ctx->filename);
print_int("nb_streams", fmt_ctx->nb_streams);
print_int("nb_programs", fmt_ctx->nb_programs);
print_str("format_name", fmt_ctx->iformat->name);
@@ -2023,10 +2285,12 @@ static void show_format(WriterContext *w, AVFormatContext *fmt_ctx)
if (fmt_ctx->bit_rate > 0) print_val ("bit_rate", fmt_ctx->bit_rate, unit_bit_per_second_str);
else print_str_opt("bit_rate", "N/A");
print_int("probe_score", av_format_get_probe_score(fmt_ctx));
show_tags(w, fmt_ctx->metadata, SECTION_ID_FORMAT_TAGS);
if (do_show_format_tags)
ret = show_tags(w, fmt_ctx->metadata, SECTION_ID_FORMAT_TAGS);
writer_print_section_footer(w);
fflush(stdout);
return ret;
}
static void show_error(WriterContext *w, int err)
@@ -2132,6 +2396,8 @@ static int probe_file(WriterContext *wctx, const char *filename)
if (ret < 0)
return ret;
#define CHECK_END if (ret < 0) goto end
nb_streams = fmt_ctx->nb_streams;
REALLOCZ_ARRAY_STREAM(nb_streams_frames,0,fmt_ctx->nb_streams);
REALLOCZ_ARRAY_STREAM(nb_streams_packets,0,fmt_ctx->nb_streams);
@@ -2142,8 +2408,7 @@ static int probe_file(WriterContext *wctx, const char *filename)
ret = avformat_match_stream_specifier(fmt_ctx,
fmt_ctx->streams[i],
stream_specifier);
if (ret < 0)
goto end;
CHECK_END;
else
selected_streams[i] = ret;
ret = 0;
@@ -2162,18 +2427,29 @@ static int probe_file(WriterContext *wctx, const char *filename)
section_id = SECTION_ID_FRAMES;
if (do_show_frames || do_show_packets)
writer_print_section_header(wctx, section_id);
read_packets(wctx, fmt_ctx);
ret = read_packets(wctx, fmt_ctx);
if (do_show_frames || do_show_packets)
writer_print_section_footer(wctx);
CHECK_END;
}
if (do_show_programs) {
ret = show_programs(wctx, fmt_ctx);
CHECK_END;
}
if (do_show_streams) {
ret = show_streams(wctx, fmt_ctx);
CHECK_END;
}
if (do_show_chapters) {
ret = show_chapters(wctx, fmt_ctx);
CHECK_END;
}
if (do_show_format) {
ret = show_format(wctx, fmt_ctx);
CHECK_END;
}
if (do_show_programs)
show_programs(wctx, fmt_ctx);
if (do_show_streams)
show_streams(wctx, fmt_ctx);
if (do_show_chapters)
show_chapters(wctx, fmt_ctx);
if (do_show_format)
show_format(wctx, fmt_ctx);
end:
close_input_file(&fmt_ctx);
@@ -2199,7 +2475,7 @@ static void ffprobe_show_program_version(WriterContext *w)
writer_print_section_header(w, SECTION_ID_PROGRAM_VERSION);
print_str("version", FFMPEG_VERSION);
print_fmt("copyright", "Copyright (c) %d-%d the FFmpeg developers",
program_birth_year, this_year);
program_birth_year, CONFIG_THIS_YEAR);
print_str("build_date", __DATE__);
print_str("build_time", __TIME__);
print_str("compiler_ident", CC_IDENT);
@@ -2473,7 +2749,7 @@ static int parse_read_intervals(const char *intervals_spec)
n++;
n++;
read_intervals = av_malloc(n * sizeof(*read_intervals));
read_intervals = av_malloc_array(n, sizeof(*read_intervals));
if (!read_intervals) {
ret = AVERROR(ENOMEM);
goto end;
@@ -2670,6 +2946,12 @@ int main(int argc, char **argv)
SET_DO_SHOW(STREAM_DISPOSITION, stream_disposition);
SET_DO_SHOW(PROGRAM_STREAM_DISPOSITION, stream_disposition);
SET_DO_SHOW(CHAPTER_TAGS, chapter_tags);
SET_DO_SHOW(FORMAT_TAGS, format_tags);
SET_DO_SHOW(FRAME_TAGS, frame_tags);
SET_DO_SHOW(PROGRAM_TAGS, program_tags);
SET_DO_SHOW(STREAM_TAGS, stream_tags);
if (do_bitexact && (do_show_program_version || do_show_library_versions)) {
av_log(NULL, AV_LOG_ERROR,
"-bitexact and -show_program_version or -show_library_versions "
@@ -2698,6 +2980,9 @@ int main(int argc, char **argv)
if ((ret = writer_open(&wctx, w, w_args,
sections, FF_ARRAY_ELEMS(sections))) >= 0) {
if (w == &xml_writer)
wctx->string_validation_utf8_flags |= AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES;
writer_print_section_header(wctx, SECTION_ID_ROOT);
if (do_show_program_version)

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More