Compare commits

..

4087 Commits

Author SHA1 Message Date
Michael Niedermayer
08f53e1b14 update for 1.0.9
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-10 13:31:31 +01:00
Michael Niedermayer
8418de295a Merge remote-tracking branch 'TimothyGu/release/1.0' into release/1.0
* TimothyGu/release/1.0:
  configure: use pkg-config to detect libbluray

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:48:27 +01:00
Michael Niedermayer
e59fe78958 avcodec/utvideoenc: fix slice_bits size
Fixes assertion failure

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

Conflicts:

	libavcodec/utvideoenc.c
(cherry picked from commit 57522ca79cc38c279123596d3288ddbf56fa8903)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
a0d15a6271 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>
(cherry picked from commit 61d59703c9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
d7071f6765 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>
(cherry picked from commit d42ec8433c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
54b61181ed 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>
(cherry picked from commit c919e1ca2e)

Conflicts:

	libavcodec/msrle.c
(cherry picked from commit bc1c8ec5e6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
7ad6b66370 avformat/mpegtsenc: Check data array size in mpegts_write_pmt()
Prevents out of array writes

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

Conflicts:

	libavformat/mpegtsenc.c
(cherry picked from commit e87de3f50b765134588d0b048c32ed4b8acc16fb)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
b9bf17c55a 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>
(cherry picked from commit ec9578d54d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Justin Ruggles
0e551aa966 samplefmt: avoid integer overflow in av_samples_get_buffer_size()
CC:libav-stable@libav.org
(cherry picked from commit 0e830094ad)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
5b38967745 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>
(cherry picked from commit b51e935477)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
87c203ba26 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>
(cherry picked from commit 6ba02602aa)

Conflicts:

	libavcodec/vmnc.c

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
617fecbe0f dnxhdenc: fix mb_rc size
Fixes out of array access with RC_VARIANCE set to 0

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
e571010c5c cmdutils: update year
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
584e15d643 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>
(cherry picked from commit a044a183a3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
855fe65447 avcodec/jpeglsdec: check err value for ls_get_code_runterm()
Fixes infinite loop
Fixes Ticket3086

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
f83f09bfce avutil/opt: initialize ret
Fixes CID1108610
Fixes use of uninitialized variable

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
ba59ab5964 avcodec/avpacket/av_packet_split_side_data: ensure that side data padding is initialized
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 240fd8c96f)

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
2448c18676 avfilter/ff_insert_pad: fix order of operations
Fixes out of bounds access
Fixes CID732170
Fixes CID732169

No filter is known to use this function in a way so the issue can be reproduced.

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

Conflicts:

	libavfilter/avfilter.c
(cherry picked from commit 86591b244f3a27293153896813f5569b49b2f5c0)

Conflicts:

	libavfilter/avfilter.c
(cherry picked from commit 400c4f8fa3fd58951dc3f356b2b00484e3363694)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
6f9ae27f51 avcodec/parser: reset indexes on realloc failure
Fixes Ticket2982

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Michael Niedermayer
55ad69e851 avcodec/ffv1enc: update buffer check for 16bps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3728603f18)

Conflicts:

	libavcodec/ffv1enc.c
2014-03-08 16:25:20 +01:00
Michael Niedermayer
d7ce013de5 avcodec/truemotion2: Fix av_freep arguments
Fixes null pointer dereference
Fixes Ticket2944

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

Conflicts:

	libavcodec/truemotion2.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-08 16:25:20 +01:00
Timothy Gu
cea57b7fe0 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>
(cherry picked from commit baa650cc79)
Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	configure
2014-03-06 17:56:28 -08:00
Martin Storsjö
a4c804d0a2 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>
(cherry picked from commit d307e408d4)
2013-12-21 10:00:13 +01:00
Michael Niedermayer
e28d96024b 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>
(cherry picked from commit 0538b29ae8)
2013-12-09 10:39:12 +01:00
Michael Niedermayer
cebad79898 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>
(cherry picked from commit a8dec360c5)
2013-11-18 15:17:45 +01:00
Clément Bœsch
0227ecc21f 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.
(cherry picked from commit dbb41f93c1)
2013-11-18 15:17:42 +01:00
Michael Niedermayer
65daa390f8 avformat/utils: do not override pts in h264 when they are provided from the demuxer
Fixes Ticket2143

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1e5271a9fd)
2013-10-27 19:46:42 +01:00
Michael Niedermayer
946815aa09 avcodec/h264: reduce noisiness of "mmco: unref short failure"
Do not consider it an error if we have no frames and should discard one.
This condition can easily happen when decoding is started from an I frame

Fixes Ticket2811

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

Conflicts:
	libavcodec/h264_refs.c
2013-10-26 01:22:39 +02:00
Michael Niedermayer
89b5f5f494 avformat/wavdec: Dont trust the fact chunk for PCM
Fixes Ticket3033

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

Conflicts:
	libavformat/wav.c
2013-10-24 11:35:11 +02:00
Michael Niedermayer
3c142c196d avformat/matroskadec: only set r_frame_rate if the value is within reasonable limits
Fixes Ticket2451

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6853e40106)
2013-10-24 11:27:50 +02:00
Michael Niedermayer
e3b2b884fc avcodec/h264_refs: modify key frame detection heuristic to detect more cases
Fixes Ticket2968

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

Conflicts:
	libavcodec/h264_refs.c
(cherry picked from commit 6636dd551f)
2013-10-24 11:27:03 +02:00
Michael Niedermayer
1cfcc9ac8e avformat/mov: force parsing of headers if stts is absent
Fixes Ticket2991

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e41ea866fc)
2013-10-24 11:26:15 +02:00
Paul B Mahol
8b282d9d8b avformat/matroskaenc: remove bogus prores tag
Fixes: ffmpeg -i input -c:v prores output.mkv

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 14851ca5f5)

Conflicts:
	libavformat/matroskaenc.c
2013-09-08 22:39:28 +02:00
Michael Niedermayer
fcd46cfbbd update for 1.0.8
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-06 02:53:38 +02:00
Michael Niedermayer
49237131e9 avcodec/mjpegdec: Add some sanity checks to ljpeg_decode_rgb_scan()
These prevent the rgb ljpeg code from being run on parameters that it doesnt
support. No testcase available but it seems possible to trigger these.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-05 05:48:15 +02:00
Michael Niedermayer
11586b077e avfilter/vf_fps: make sure the fifo is not empty before using it
Fixes Ticket2905

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-05 03:01:10 +02:00
Michael Niedermayer
e12ada6fd1 avcodec/dsputil: fix signedness in sizeof() comparissions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 454a11a1c9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-05 03:01:10 +02:00
Carl Eugen Hoyos
7599284ad3 Avoid a deadlock when decoding wma.
Fixes ticket #2925.
(cherry picked from commit ec8a4841f7)
2013-09-02 09:41:14 +02:00
Michael Niedermayer
6b5c4be9e0 avformat/avidec: match first index and first packet size=0 handling
Fixes Ticket2861

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

Conflicts:
	libavformat/avidec.c
2013-08-31 09:40:29 +02:00
Michael Niedermayer
5bd2b24db3 avcodec/pngdsp: fix (un)signed type in end comparission
Fixes out of array accesses
Fixes Ticket2919

Found_by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 86736f59d6)
2013-08-30 23:40:31 +02:00
Michael Niedermayer
f229c59893 jpeg2000: check log2_cblk dimensions
Fixes out of array access
Fixes Ticket2895

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

Conflicts:

	libavcodec/jpeg2000dec.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 01:31:18 +02:00
Michael Niedermayer
7549bcb295 avcodec/rpza: Perform pointer advance and checks before using the pointers
Fixes out of array accesses
Fixes Ticket2850

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 01:29:35 +02:00
Michael Niedermayer
65753697ef avcodec/flashsv: check diff_start/height
Fixes out of array accesses
Fixes Ticket2844

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 01:29:35 +02:00
Michael Niedermayer
278fbfc6bf avformat/paf: Fix integer overflow and out of array read
Found-by:  Laurent Butti <laurentb@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f58cd2867a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 01:29:35 +02:00
Michael Niedermayer
81ca782663 Merge remote-tracking branch 'jamrial/release/1.0' into release/1.0
* jamrial/release/1.0:
  avformat/matroskadec: check out_samplerate before using it in av_rescale()
  matroskadec: Improve TTA duration calculation
  matroskaenc: simplify mkv_check_tag()
  lavf/matroskaenc: Check for valid metadata before creating tags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 00:22:25 +02:00
Michael Niedermayer
51daca6c57 matroska_read_seek: Fix used streams for subtitle index compensation
Might fix Ticket1907 (I have no testcase so i cant test)

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 00:22:11 +02:00
Stefano Sabatini
23eb5a0269 doc/texi2pod.pl: skip printing chapter names if they are disabled
(cherry picked from commit c838701ce4)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Stefano Sabatini
cf377add09 doc/texi2pod: rework man inclusion logic
Ignore @c man begin ... @c man end comments, rely on @chapter for marking
the beginning of the various manual top level sections.

This allows us to write markup which is not dependent on the specific
texi2pod.pl implementation.

This change causes a few rendering issues, which will be fixed in further
patches.
(cherry picked from commit ca3d786227)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Stefano Sabatini
8c4261f411 doc/texi2pod: fix @ref substitution rule, disallow "}" within the fields
Fix potential spurious substitution.
(cherry picked from commit 9167db3829)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Stefano Sabatini
6002f123bd doc/texi2pod: fix warnings introduced in e7e14bc69a
The variable "$section" was replaced by "$chapter".
(cherry picked from commit c0c06c1bba)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Luca Barbato
90b73f2567 doc: support multitable in texi2pod
(cherry picked from commit 5ea5ffc9ce)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Stefano Sabatini
df21807141 doc/texipod: add rule to correctly interpret @ref{ANCHOR,XREF,SECTION_NAME,...}
This allows to name an internal reference in the POD/MAN output.
(cherry picked from commit c499d45c6b)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Stefano Sabatini
ada4f4f715 doc/texi2pod: correctly handle @url commands in the form @url{URL,...}
Ignore the other arguments, which have not to be processed by the POD
renderer.
(cherry picked from commit 1f9855dbc1)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:37 -07:00
Stefano Sabatini
7e017b9cbf doc/texi2pod: add support to @ifhtml and @ifnothtml directives
With these commands it is possible to add HTML and non-HTML snippets,
which will be useful for the "See Also" manual chapters.
(cherry picked from commit f14e248783)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:36 -07:00
Nicolas George
deb9fb5257 doc/texi2pod: recognize @table @command.
(cherry picked from commit ee2d6fbc92)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:36 -07:00
Stefano Sabatini
bb7f5e153e doc/texi2pod.pl: drop unnecessary rule, which was converting "\," to ","
I cannot find a reason for such a rule, which was resulting in badly
escaped filtergraph snippets.

Fix trac ticket #1610.
(cherry picked from commit ce875a613a)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-27 09:06:36 -07:00
Timothy Gu
7364109d25 doc/encoders: Remove reference to "Codec Options" chapter
The chapter is only presented in later release branches.
2013-08-26 16:28:54 -07:00
Michael Niedermayer
167278f377 avformat/matroskadec: check out_samplerate before using it in av_rescale()
Prevent assertion failure with damaged input

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 338f8b2eaf)
2013-08-26 17:53:19 -03:00
Clément Bœsch
b2d6f63ed9 doc: remove mention of fifo filter in the introduction.
It's confusing and not necessary, especially in the introduction.
(cherry picked from commit 80a9297b71)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 12:01:45 -07:00
Timothy Gu
cdfca17eb2 doc/encoders: add libxvid doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 6b255e5e70)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/encoders.texi
2013-08-26 11:52:25 -07:00
Timothy Gu
2f1370da22 doc/muxers: Add AIFF doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 4ec46b1160)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:51:52 -07:00
Timothy Gu
d616b63039 doc/encoders: alphabetically list the encoders
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 934df3b037)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/encoders.texi
2013-08-26 11:50:45 -07:00
Timothy Gu
b4bc355523 doc/decoders: Add libopencore-amrwb decoder doc
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 83647ace73)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:45 -07:00
Timothy Gu
ef5552a410 doc/decoders: Document libopencore-amrnb decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b43860ee0c)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:45 -07:00
Timothy Gu
7c23166dd3 doc/decoders: Document libilbc decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8cdea50f6e)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
cb0707479c doc/decoders: Document libgsm decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c16496c377)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
1c5129c7a0 doc/encoders: Add libopencore-amrnb doc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9ead06057a)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
ff8e4d7f1b doc/decoders: Document libcelt
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e358044922)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
a191b3dbcc doc/general: Make the license status of the Android libraries clearer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6fe419bf73)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
277502d109 doc/encoders: Add libvo-amrwbenc doc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0ec65aa104)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>

Conflicts:
	doc/encoders.texi
2013-08-26 11:50:44 -07:00
Timothy Gu
245e97ef61 doc/encoders: Add libvo-aacenc doc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ba7cb4807f)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
4c1544ecc8 doc/encoders: add documentation for libtwolame
(cherry picked from commit ea038b996d)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:44 -07:00
Timothy Gu
a697a2795b doc/encoders: Add documentation for libmp3lame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4703a345fb)

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2013-08-26 11:50:41 -07:00
James Almer
fc83cfda36 matroskadec: Improve TTA duration calculation
Calculate the duration as accurately as possible to improve decoding of samples
where the last frame is smaller than the rest.

Signed-off-by: James Almer <jamrial@gmail.com>
Approved-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit af248fa117)
2013-08-25 19:40:58 -03:00
Michael Niedermayer
986b29407c matroskaenc: simplify mkv_check_tag()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 066111bf19)
2013-08-25 19:00:11 -03:00
James Almer
ec86321424 lavf/matroskaenc: Check for valid metadata before creating tags
Tags must have at least one SimpleTag element to be spec conformant.
Updated lavf-mkv and seek-lavf-mkv FATE references as the tests were affected by
this.

Fixes ticket #2785

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 088ed53146)

Conflicts:
	tests/ref/lavf/mkv
	tests/ref/seek/lavf_mkv
2013-08-25 18:59:50 -03:00
Michael Niedermayer
739e236aed swr/rematrix: Fix handling of AV_CH_LAYOUT_STEREO_DOWNMIX output
Fixes Ticket2859

Note, testcases related to the downmix channels are welcome.
(id like to make sure this is working correctly now, as obviously it didnt
 work before ...)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c56d4dab03)
2013-08-20 18:47:27 +02:00
Michael Niedermayer
3f3993ac0a swr: clean layouts before checking sanity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6dfffe9200)
2013-08-20 18:47:25 +02:00
Michael Niedermayer
b416cb979d movenc: ilbc needs audio_vbr set.
Without this the block_align or bitrate value is not available to the decoder

Fixes Ticket2858

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3d64845600)
2013-08-20 18:47:23 +02:00
Michael Niedermayer
24cff71d02 avcodec/kmvc: fix MV checks
Fixes Ticket2813
Fixes regression since 70b5583

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3cd8aaa2b2)
2013-07-31 03:01:17 +02:00
Michael Niedermayer
34dfb907b2 avformat/dtsdec: Improve probe, reject things looking like analog signals
Fixes Ticket2810

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

Conflicts:
	libavformat/dtsdec.c
2013-07-26 12:22:28 +02:00
Michael Niedermayer
b8b7373914 Merge remote-tracking branch 'jamrial/release/1.0' into release/1.0
* jamrial/release/1.0:
  oggparseskeleton: avoid header parsing failure
  oggparseskeleton: Replace avpriv_report_missing_feature() with a normal av_log() call
  oggparseskeleton: Fix fisbone header parsing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-21 01:17:41 +02:00
Justin Ruggles
d46713cc7e swfdec: do better validation of tag length
Avoids trying to read a packet with 0 or negative size.
Avoids a potential infinite loop due to seeking backwards.

Partially based on a patch by Michael Niedermayer.
(cherry picked from commit e70c5b034c)

Conflicts:

	libavformat/swfdec.c
2013-07-21 01:13:10 +02:00
Michael Niedermayer
9c7c2abad4 swfdec: check lens validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c73685398d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-21 01:13:10 +02:00
Michael Niedermayer
b896c1c98e update all trac links to use the trac subdomain
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-21 01:13:10 +02:00
Dale Curtis
858e06aabe avformat/utils: Keep internal and external av_read_frame() packets in sync.
Otherwise, during error conditions, the caller will be left with
dangling pointers to a destructed packet => boom.

BUG=242786
TEST=ffmpeg_regression_tests

Commit slightly simplified by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c54a1565f5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-21 01:13:10 +02:00
Michael Niedermayer
03983c3650 avformat/matroskadec: Detect conflicting sample rate/default_duration
Fixes Ticket2508

Thanks-to: Moritz Bunkus
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6158a3bcdf)
2013-07-16 11:53:33 +02:00
Michael Niedermayer
ec268c24a7 mpeg12dec: avoid reinitialization on PS changes when possible.
Fixes Ticket2574

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

Conflicts:
	libavcodec/mpeg12dec.c
2013-07-09 00:45:38 +02:00
Michael Niedermayer
be23cee317 oggparseskeleton: avoid header parsing failure
Based on description by James Almer and the xiph wiki

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9a6e814be7)
2013-07-07 21:38:07 -03:00
James Almer
2d66486b8e oggparseskeleton: Replace avpriv_report_missing_feature() with a normal av_log() call
since there should not be more than one fisbone for a given stream.

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

Conflicts:
	libavformat/oggparseskeleton.c
2013-07-07 21:37:09 -03:00
James Almer
ddfff76397 oggparseskeleton: Fix fisbone header parsing
start_granule should be applied to the stream referenced in the fisbone packet, not to the
Skeleton stream.
This was broken in d1f05dd183 and produced bogus warnings about
multiple fisbone in the same stream on files with more than one stream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3960992f0a)
2013-07-07 21:35:20 -03:00
Michael Niedermayer
40c521aec0 mmsh: dont close context on seeking failure
Fixes Ticket2581

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b4579a29c7)
2013-07-07 21:42:10 +02:00
Michael Niedermayer
e68b62a014 avformat/mov: Fix duration of fragmented mov
Fixes Ticket2757

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dc2a13aa80)
2013-07-07 18:45:31 +02:00
Michael Niedermayer
8c5c4adebb libavcodec/x86/mpegvideo: Move mmx functions under HAVE_MMX_INLINE
should fix ticket2755

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 707b2135fd)
2013-07-07 18:45:03 +02:00
Michael Niedermayer
ee829bacde mpegts: only reopen pmt_cb filter if its different from the previous.
Fixes Ticket2632

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b009267910)
2013-07-07 18:44:48 +02:00
Michael Niedermayer
5fa940d9c7 rmdec: Pass AVIOContext to rm_read_metadata()
Fix null pointer dereference
Fixes Ticket2588

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

Conflicts:
	libavformat/rmdec.c
2013-07-07 18:44:22 +02:00
Hendrik Leppkes
491f2e517d mathops/x86: work around inline asm miscompilation with GCC 4.8.1
The volatile is not required here, and prevents a miscompilation with GCC
4.8.1 when building on x86 with --cpu=i686

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 659df32a9d)
2013-06-24 08:47:20 +02:00
Michael Niedermayer
8d18dbda1e avformat/libmodplug: Reduce the probe score for small input
This ensures that theres enough data for mpeg_probe() to recognize mpeg-ps
Fixes Ticket2583

Based on code by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c605adbf56)
2013-06-21 01:16:06 +02:00
Carl Eugen Hoyos
dc3ec51601 Autodetect idcin only if audio properties allow decoding.
Fixes ticket #2688.
(cherry picked from commit 06bede95fc)
2013-06-19 23:47:05 +02:00
Michael Niedermayer
2ad70f57a8 swresample/x86/audio_convert: add emms to CONV
Fixes ticket #1874

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ca2818b881)
2013-06-18 02:53:59 +02:00
Michael Niedermayer
194590dc56 alacenc: Fix missing sign_extend()
Fixes ticket #2497

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8aea2f05dc)
2013-06-13 00:08:02 +02:00
Claudio Freire
be66531ee2 AAC encoder: Fix rate control on twoloop.
Fixes a case where multichannel bitrate isn't accurately
targetted by psy model alone, never achieving the target bitrate.
Now fixed.

Fixes ticket #2625.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2013-06-02 16:28:35 +02:00
Michael Niedermayer
d70043ea0f h264_cavlc: fix reading skip run
Fixes Ticket2606

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

Conflicts:
	libavcodec/h264_cavlc.c
2013-05-30 23:18:11 +02:00
Michael Niedermayer
71e32a5ea4 avienc: Disallow the first frame to be skiped
Fixes Ticket2386

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

Conflicts:
	libavformat/avienc.c
2013-05-27 23:54:17 +02:00
Michael Niedermayer
0428594f47 smacker: remove av_clip_int16()
Fixes Ticket2425

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2211c76287)
2013-05-21 00:01:11 +02:00
Michael Niedermayer
14634f5b69 ffmpeg: free threads on error conditions.
Fixes Ticket2562

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1a36c756d8)
2013-05-17 23:25:54 +02:00
Michael Niedermayer
663b223258 avidec: dont randomly skip packets for offseting the index
Fixes Ticket2490

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6c593f1b67)
2013-05-17 22:54:49 +02:00
Michael Niedermayer
2588178669 tree-test: fix printf() types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6c49562d79)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:43:39 +02:00
Michael Niedermayer
12cb64e8d9 tree: fix type used for testing the tree
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 977cb54f94)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:43:33 +02:00
Michael Niedermayer
ae668a283d update for 1.0.7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:37:16 +02:00
Michael Niedermayer
2c66058737 avcodec/cdgraphics: check buffer size before use
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ad002e1a13)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:30:16 +02:00
Michael Niedermayer
813b3d11e0 sanm: Check dimensions before use
Fixes integer overflow and out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9dd04f6d8c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:30:11 +02:00
Clément Bœsch
29ff1a5f1a cmdutils: avtool -> fftool
(cherry picked from commit 7d8ad6c1fa)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:59 +02:00
Michael Niedermayer
f504049b22 avutil/intfloat_readwrite: include common.h for isinf()
Solution based on rational.c, which uses isinf() too

This should fix compilation with msvc

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:45 +02:00
Michael Niedermayer
c446bc31f5 avutil/intfloat_readwrite: avoid comparission with INFINITY, use isinf()
Should fix pgc warning

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:30 +02:00
Michael Niedermayer
52fa7a8603 avutil/log: Fix context pointer used for get_category()
Fixes calling a random pointer

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7edb984dd0)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:23 +02:00
Michael Niedermayer
d814b9b51d vmdav: Try to fix unpack_rle()
This fixes out of array accesses
The code prior to this commit could not have worked, thus obviously
was untested. I was also not able to find a valid sample that uses this
code.
This fix is thus only based on the description of the format

If someone has a sample that uses unpack_rle(), please mail me.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c1f2c4c3b4)

Conflicts:

	libavcodec/vmdav.c

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:16 +02:00
Michael Niedermayer
1d285db8a3 mmvideo/mm_decode_intra: check horizontal coordinate too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ae2132ac90)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:11 +02:00
Michael Niedermayer
cd24fdad47 mmvideo/mm_decode_inter: check horizontal coordinate too
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8d3c99e825)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:29:05 +02:00
Michael Niedermayer
ee57bfc47a mjpegdec: fix overlapping memcpy with upscale_v
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b39fd7d63648442c20671c3e4b357268ec5c49f2)

Conflicts:

	libavcodec/mjpegdec.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:22:27 +02:00
Michael Niedermayer
4a442ac117 avcodec/mpegvideo: Fix edge emu with lowres
Fixes a few green artifacts at the top
Fixes rest of Ticket 2535

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:21:02 +02:00
Michael Niedermayer
d8c4ee6fea avcodec/mpegvideo: Fix block height for lowres 3 interlaced blocks
Fixes green trash
Fixes part of Ticket2535

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:20:57 +02:00
Michael Niedermayer
e32acc455d avcodec/lcldec: Check that dimensions are a multiple of the subsample factors
Other dimensions would not work correctly currently,
also ask for a sample for files that fail this check.

This fixes an integer overflow leading to out of array
accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1e00bbb10c)

Conflicts:

	libavcodec/lcldec.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 01:05:59 +02:00
Michael Niedermayer
6f2f754d97 src_movie: fix scanf string
Fixes out of array accesses

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 00:50:54 +02:00
Michael Niedermayer
f072b69f39 xbmdec: fix off by one error in scanf()
Fixes out of array access

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 00:50:54 +02:00
Dale Curtis
e489d5c54d Fix heap-buffer-overflow in matroska_parse_block
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 81e85bc95c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-14 00:50:54 +02:00
Carl Eugen Hoyos
5888e656ce Do not read strd chunk in avi files as H264 extradata.
Fixes ticket #2561.
(cherry picked from commit 231b331718)
2013-05-13 14:46:28 +02:00
Reimar Döffinger
9fef5d5553 matroska: set "done" only during resync fail.
Fixes playback of test7.mkv validation test file.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(cherry picked from commit 762d4335ae)
2013-05-07 10:55:15 +02:00
Carl Eugen Hoyos
6e2fb5cd73 Fix type of shared flac table ff_flac_blocksize_table[].
Fixes ticket #2533.
(cherry picked from commit a07ac1f788)
2013-05-05 20:39:50 +02:00
Michael Niedermayer
aef81fa75d vf_idet: fix free after use
Fixes ticket #2449

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cac749a551)
2013-04-08 20:29:12 +02:00
Carl Eugen Hoyos
13cf445358 Skip padding in an id3 tag in aiff files.
Fixes ticket #2430.

Reviewed-by: Matthieu Bouron
(cherry picked from commit db2d3a9082)

Conflicts:
	libavformat/aiffdec.c
2013-04-03 23:28:49 +02:00
Paul B Mahol
83d5871cf1 smacker: fix off by one error
Regression since a93b572ae4.

Fixes #2426.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit e3cc92a623)
2013-04-03 15:17:16 +02:00
Carl Eugen Hoyos
bd6e58d5ca Write broken aac frames to mov files instead of skipping them.
Fixes decoding with picky media players.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b448c0a68d)
2013-04-02 12:50:25 +02:00
Carl Eugen Hoyos
fe995dcd84 Only test the first frame for missing aac_adtstoasc bistream filter.
Many players ignore broken aac frames, so don't abort mov or flv
muxing when encountering one, just print a warning instead.

Fixes ticket #2380.
(cherry picked from commit 1741fece70)
2013-03-27 00:56:35 +01:00
Hendrik Leppkes
9b481654e1 h264: fix parsing of old lossless profile (profile_idc == 144)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 572781b25f)
2013-03-21 23:57:25 +01:00
Michael Niedermayer
f2310fff5c update the current year
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-21 01:10:47 +01:00
Michael Niedermayer
125fe08492 MAINTAINERS: mention that people are welcome to pick up and maintain older releases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7e1efeb570)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-21 01:02:00 +01:00
Michael Niedermayer
e45f0f0f66 MAINTAINERS: update for 1.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 80f91a70be)

Conflicts:

	MAINTAINERS
2013-03-21 01:01:53 +01:00
ArnoB
becde6ab1c dpxenc: fix data offset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 361319d0f4)

Conflicts:

	tests/ref/lavf/dpx
2013-03-20 23:11:26 +01:00
Michael Niedermayer
eeb8dabd29 rmdec: flush audio packet on seeking
Fixes Ticket1605

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 23:08:46 +01:00
Michael Niedermayer
94576cec54 update for 1.0.6
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 20:53:30 +01:00
Andrea3000
2f00d28aa0 matroska: fix missing ,
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8d8c59480e)

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 20:52:24 +01:00
Nicolas George
dbe57f7e9f lavfi/avf_concat: fix invalid exclusive test.
The invalid test did not cause any actual problem since
the first branch is only possible with bogus filters.

Fix coverity issue CID 733850.
(cherry picked from commit 709628aa71)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 20:51:27 +01:00
Michael Niedermayer
4bee3eba75 doc/ffmpeg: remove non ascii char
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cdbaaa4f00)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 20:49:15 +01:00
David Favor
2440424f1d Slight bug building ffmpeg-1.1.3 on OSX + patch to fix
Two instances of non-ascii characters have crept into file
doc/filters.texi which causes pod2man to error out and
break the build.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 20:49:14 +01:00
Michael Niedermayer
31f337c1e4 iff: fix integer overflow
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3dbc0ff9c3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 19:59:47 +01:00
Michael Niedermayer
f84ddb0c0f msrledec: fix output_end checks
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e398990eb8)

Conflicts:

	libavcodec/msrledec.c
2013-03-20 19:54:53 +01:00
Michael Niedermayer
bbefdb3938 msrledec: merge switches
More speedup and fixes 'may be used uninitialized in this function' warnings

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 19:47:03 +01:00
Michael Niedermayer
cc0662daef msrledec: move loop into switch
speeds up code and allows more simplifications

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 19:46:58 +01:00
Michael Niedermayer
10d59d29bc msrledec: move output pointer test up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c2992b7053)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 19:46:52 +01:00
Alexander Kojevnikov
7fc39f51cd mp3dec: Fix VBR bit rate parsing
When parsing the Xing/Info tag, don't set the bit rate if it's an Info tag.

When parsing the stream, don't override the bit rate if it's already set,
otherwise calculate the mean bit rate from parsed frames. This way, the bit
rate will be set correctly both for CBR and VBR streams.

Signed-off-by: Alexander Kojevnikov <alexander@kojevnikov.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 29d8cd265a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-20 15:00:50 +01:00
Carl Eugen Hoyos
f49b2a9d08 Do not (re-)set libx264 parameter b_tff if interlaced encoding was not requested.
Reconfiguring can break x264 lossless encoding.

Fixes ticket #2165.
(cherry picked from commit 75c7e4583f)
2013-03-18 02:15:34 +01:00
Michael Niedermayer
98dfe0d8bd aacsbr: Check for envelope scalefactors overflowing
This prevents various values from becoming stuck at NAN and
output to become silent
If someone knows a cleaner solution, thats welcome!

Fixes Ticket2335

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8978c743fb)
2013-03-08 20:06:54 +01:00
Michael Niedermayer
08be125dde psymodel: dont apply lowpass filters with a cutoff close to the nyquist
The IIR filter numerically diverges in such cases, this could easily be
fixed but would make the filter slower on some platforms

Fixes Ticket2246

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fee5da6b0a)
2013-03-07 20:01:37 +01:00
Michael Niedermayer
e20a019c91 avformat: Fix apics with aac
Fixes Ticket2318

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cada996528)
2013-03-07 15:01:31 +01:00
Michael Niedermayer
16ac9edc2f hls: fix timebase
Fixes Ticket1733

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a12a618aa9)
2013-03-07 15:01:27 +01:00
Michael Niedermayer
164628e2f7 rtmpproto: increase APP_MAX_LENGTH
Fixes second part of Ticket2292

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 00:30:06 +01:00
Michael Niedermayer
044177215e update for 1.0.5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-04 00:01:57 +01:00
Michael Niedermayer
d034ddcd1f rtmpproto: Check APP_MAX_LENGTH
Fixes Ticket2292

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 03:04:11 +01:00
Michael Niedermayer
676df8c4c7 h264: check that luma and chroma depth match
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bdeb61ccc6)

Conflicts:

	libavcodec/h264_ps.c
2013-03-03 03:03:52 +01:00
Michael Niedermayer
1ddb0b6fa0 avcodec_decode_audio4: check got_frame_ptr before handling initial skip
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8a6449167a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 03:02:34 +01:00
Michael Niedermayer
e35da91b52 swr: check channel layouts before using them.
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 21cd905cd4)

Conflicts:

	libswresample/swresample.c
2013-03-03 03:00:51 +01:00
Michael Niedermayer
82213d67ba shorten: dont leave invalid channel counts in the context.
Fixes freeing invalid addresses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4f1279154e)

Conflicts:

	libavcodec/shorten.c
2013-03-03 02:58:29 +01:00
Michael Niedermayer
d17b9469c9 tiff: Check buffer allocation and pointer increment more carefully in shorts2str() and double2str()
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e1219cdaf9)

Conflicts:

	libavcodec/tiff.c
2013-03-03 02:45:08 +01:00
Michael Niedermayer
534c0df6e0 pngdec/filter: dont access out of array elements at the end
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1ac0fa50ef)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 02:41:19 +01:00
Michael Niedermayer
f62537d9f1 sanm: Use the correct height variable in the decoded_size checks
Fixes integer overflow and out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5260edee7e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 02:41:12 +01:00
Michael Niedermayer
4f873341b4 sanm: add forgotten check for decoded_size in old_codec37()
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 365270aec5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 02:41:07 +01:00
Carl Eugen Hoyos
857a037945 Require at least three frames to autodetect loas.
(cherry picked from commit a60530e3ee)
2013-03-02 02:05:02 +01:00
Nicolas George
8ffe243c85 lavf/avio: check for : in filenames for protocols.
If the first "special" character in a filename is a comma,
it can introduce protocol options, but only if there is a
colon at the end. Otherwise, it is just a filename with a
comma.

Fix trac ticket #2303.
(cherry picked from commit d9fad53f4b)
2013-03-01 08:56:06 +01:00
James Almer
62e5503407 lavc/bink: Chech for malloc failure
Based on commit 8ab2173ed1
2013-02-25 05:51:25 -03:00
James Almer
e6324ccfbd latmenc: Check for LOAS sync word
Write the packet unaltered if found.

Fixes ticket #1917

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b454c64e03)
2013-02-25 05:48:14 -03:00
Michael Niedermayer
8cfd33fd35 doc/APIchanges: List merge commit hashes and version numbers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 05:19:34 +01:00
Michael Niedermayer
ab70fa28f6 apichanges: fix 2 wrong hashes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2f3bc51228)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 05:19:34 +01:00
Michael Niedermayer
3a21007e47 apichanges: Use , instead of / to seperate multiple hashes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 33d6330652)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 05:19:34 +01:00
Michael Niedermayer
5877811b0f apichanges: fix date
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ad6802f975)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 05:19:34 +01:00
Michael Niedermayer
c69709571a doc/APIchanges: fix odd .01 versions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9f16cb9e50)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 05:19:34 +01:00
Michael Niedermayer
97a740acc5 aac: reconfigure output on pop
Fixes Ticket1918

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 05:19:34 +01:00
Diego Biurrun
02f241d1ed configure: Make warnings from -Wreturn-type fatal errors
These warnings have no false positives and point to serious bugs.
(cherry picked from commit 99853cb8d4)

Conflicts:

	configure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 04:49:46 +01:00
Michael Niedermayer
cc64871bd8 movenc: hotfix, dont store fiel for h264 / mpeg4-asp / dnxhd
Other software does not store it in this case, and the information
is provided by the codec stream

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

Conflicts:

	tests/ref/fate/vsynth1-mpeg4
	tests/ref/fate/vsynth2-mpeg4
	tests/ref/lavf/mov
	tests/ref/seek/lavf_mov
	tests/ref/vsynth/vsynth1-dnxhd-1080i
	tests/ref/vsynth/vsynth2-dnxhd-1080i
2013-02-25 04:49:46 +01:00
Michael Niedermayer
fcd0e3235a h264: Detect POC inconsistencies and try to handle them reasonably
Improves the file from Ticket2050

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-25 04:49:46 +01:00
Carl Eugen Hoyos
4c2b6ce26c Fix bits_per_coded_sample when encoding png with frame-level multithreading.
Fixes ticket #2290.
(cherry picked from commit c4dc6c4c86)

Conflicts:
	libavcodec/pngenc.c
2013-02-21 08:59:38 +01:00
Carl Eugen Hoyos
98d06b046d Revert "swfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size"
This reverts commit 620b88a302.

Fixes ticket #2272.

Conflicts:
	libavformat/swfenc.c
(cherry picked from commit 8d0757e107)
2013-02-17 20:33:07 +01:00
Carl Eugen Hoyos
397e769f74 Write the fiel atom to mov files independently of the used video coded.
The QuickTime specification does not contain any hint that the atom
must not be written in some cases and both the QuickTime and the
AVID decoders do not fail if the atom is present.

This change allows to signal (visually) interlaced streams with
a codec different from uncompressed video.

As a side-effect, this fixes ticket #2202
(cherry picked from commit 7d0e3b197c)

Conflicts:
	tests/ref/fate/vsynth1-avui
	tests/ref/fate/vsynth1-dnxhd-1080i
	tests/ref/fate/vsynth1-mpeg4
	tests/ref/fate/vsynth2-avui
	tests/ref/fate/vsynth2-dnxhd-1080i
	tests/ref/fate/vsynth2-mpeg4
	tests/ref/lavf/mov
	tests/ref/seek/lavf_mov
2013-02-14 15:24:13 +01:00
Carl Eugen Hoyos
140ca8f6c0 sws: dont write out of array on bigendian
Fixes Ticket2229

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4e2c63685e)
2013-02-14 14:39:21 +01:00
Michael Niedermayer
169d849344 h264: Reset last_pocs in case of reference or frame number inconsistencies
This prevents faulty increasing of has_b_frames
Should fix Ticket 2062

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c230af9bcc)
2013-02-14 09:23:41 +01:00
Michael Niedermayer
9c659b3a67 h264_refs: Print default in case we are missing a reference.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a39d36146a)
2013-02-14 09:23:35 +01:00
Michael Niedermayer
1690c1fa88 update for 1.0.4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:24:35 +01:00
Michael Niedermayer
3f27158040 h264: Only apply error concealment if theres a frame
Without any correctly decoded slices, there can be no frame.

Fixes out of array reads

Found-by: Rafaël Carré
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 60af6c3138)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
c459c7b23e aacdec: check channel count
Prevent out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 96f452ac64)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
08e2c7a45f vqavideo: check chunk sizes before reading chunks
Fixes out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ab6c9332bf)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
89e16e675d sanm: Check decoded_size.
This prevents a buffer overflow in rle_decode()

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7357ca900e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
4cd1dad91a avcodec_decode_audio: do not trust the channel layout, use the channel count.
Fixes memory corruption

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d270c32025)

Conflicts:

	libavcodec/utils.c
2013-02-07 01:00:02 +01:00
Michael Niedermayer
3e196e4def error_concealment: Check that the picture is not in a half setup state.
Fixes state becoming inconsistent
Fixes a null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 23318a5735)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
2502914c5f atrac3dec: Check coding mode against channels.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 13451f5520)

Conflicts:

	libavcodec/atrac3.c
2013-02-07 01:00:02 +01:00
Michael Niedermayer
6df0d3e291 alsdec: check block length
Fix writing over the end

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0ceca269b6)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
85a14dbd5d adpcm: fix off by 1 error and out of array access in DK4
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f18c873ab5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:02 +01:00
Michael Niedermayer
db0f7f7394 huffyuvdec: Skip len==0 cases
Fixes vlc decoding for hypothetical files that would contain such cases.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:01 +01:00
Michael Niedermayer
b666debffe huffyuvdec: Check init_vlc() return codes.
Prevents out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f67a0d1152)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:01 +01:00
Xi Wang
c3744b415a rtmp: fix buffer overflows in ff_amf_tag_contents()
A negative `size' will bypass FFMIN().  In the subsequent memcpy() call,
`size' will be considered as a large positive value, leading to a buffer
overflow.

Change the type of `size' to unsigned int to avoid buffer overflow, and
simplify overflow checks accordingly.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4e692374f7)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:01 +01:00
Xi Wang
7df878ac15 rtmp: fix multiple broken overflow checks
Sanity checks like `data + size >= data_end || data + size < data' are
broken, because `data + size < data' assumes pointer overflow, which is
undefined behavior in C.  Many compilers such as gcc/clang optimize such
checks away.

Use `size < 0 || size >= data_end - data' instead.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 902cfe2f74)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:01 +01:00
Xi Wang
bc58fe0309 rtpenc: fix overflow checking in avc_mp4_find_startcode()
The check `start + res < start' is broken since pointer overflow is
undefined behavior in C.  Many compilers such as gcc/clang optimize
away this check.

Use `res > end - start' instead.  Also change `res' to unsigned int
to avoid signed left-shift overflow.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2f014567cf)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:01 +01:00
Michael Niedermayer
8eda888683 sanm: check image dimensions before using them
Avoids integer overflows and out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 49b729d3af)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-07 01:00:01 +01:00
Matthieu Bouron
f3144b0cc6 lavf/mov: skip version and flags attributes in mov_read_chan function
Fixes ticket #1764.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 59d40fc7e6)
2013-02-06 23:29:30 +01:00
Michael Niedermayer
86f072ceb3 ffmpeg: dont allow -flags to override -pass
Fixes Ticket2154

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ccf9dd00da)
2013-02-06 10:12:20 +01:00
Michael Niedermayer
21185028b4 dvenc: dont fail hard if the timecode is invalid
Instead just dont store the timecode
Fixes Ticket2187

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f0eacbc760)
2013-02-06 00:17:23 +01:00
Michael Niedermayer
0c2a350762 movtextenc: fix pointer messup and out of array accesses
Fixes Ticket2213

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b0635e2fcf)
2013-02-06 00:16:04 +01:00
Carl Eugen Hoyos
299dc3baea Do not change codec in flv streams if the user has forced a codec.
Fixes ticket #2218.
(cherry picked from commit 6a50e8a190)
2013-02-01 23:42:12 +01:00
Carl Eugen Hoyos
5c1a1b47f3 doc/muxers.texi: Fix mp3 picture attachment documentation.
(cherry picked from commit 99eedfc400)
2013-02-01 17:57:19 +01:00
Peter Ross
4f8b7eb87f wtvdec: demux thumbnail picture to AVStream.attached_pic
Fixes ticket #2133.

(cherry picked from commit 508836932f)
2013-01-30 09:53:49 +01:00
Carl Eugen Hoyos
d807022283 matroskaenc: add codec_tag lists back.
This reverts 312645e :
"Do not set codec_tag property for matroska muxers."

Also adds dummy codec_tag lists with codecs
supported in mkv but not in wav / avi.

Fixes ticket #2169.
(cherry picked from commit df39c3ce38)
2013-01-24 02:34:16 +01:00
Michael Niedermayer
f7bf3becf6 Update for 1.0.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:27:18 +01:00
Michael Niedermayer
7ca4b91898 h264: fix use of uninitialized variable
Fixed CID968588

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:19:49 +01:00
Michael Niedermayer
75aa373bec h264: print mismatching opcode details in check_opcodes()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dcbe15813e)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:16:14 +01:00
Michael Niedermayer
bec97981ba h264/ff_generate_sliding_window_mmcos: fix use of uninitialized variable
Fixes CID968587
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3fba3e79a3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:16:06 +01:00
Michael Niedermayer
78526c279f avf_showwaves: fix null pointer dereference
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e4eebc2da9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:15:12 +01:00
Anton Khirnov
5ee483ae62 h264: fix ff_generate_sliding_window_mmcos() prototype.
It's been returning an error value since
bad446e251

Also check for the errors it returns.
(cherry picked from commit ea382767ad)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-21 23:13:45 +01:00
Michael Niedermayer
b006b2f4f5 rtmpproto: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a601eb9543)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:46 +01:00
Michael Niedermayer
dadf58908c vsrc_testsrc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6f88d2d786)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:41 +01:00
Michael Niedermayer
ee8d38191f tiff: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 659546b42d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:40 +01:00
Michael Niedermayer
f00a9f0003 ra144enc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e2704381e5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:30 +01:00
Michael Niedermayer
1489e67072 nellymoserenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 795d2dc23b)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:29 +01:00
Michael Niedermayer
2ff4257e64 libvorbisenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bdd71abe5f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:28 +01:00
Michael Niedermayer
461907760f libvo-aacenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0ccb31dcad)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:27 +01:00
Michael Niedermayer
d7826b8b9b libspeexenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3b8d66d531)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:26 +01:00
Michael Niedermayer
57211d8a5f libopencore-amr: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d6180aa297)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:24 +01:00
Michael Niedermayer
3daa086b2e libmp3lame: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 871b6ec01d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:23 +01:00
Michael Niedermayer
6f2aa8adbf libfdk-aacenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 9302ad1ac8)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:21 +01:00
Michael Niedermayer
28ef8eaeef libfaac: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 68a25c64cd)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:20 +01:00
Michael Niedermayer
3e57b37ddb aacenc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 98fed59427)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 23:04:18 +01:00
Michael Niedermayer
04c74a339f update for FFmpeg 1.0.2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 22:27:57 +01:00
Michael Niedermayer
ece68a0363 mpeg1enc: Disable threads for resolutions too large for multi-threading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 0c6b0409af)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 04:25:52 +01:00
Michael Niedermayer
95f8701c32 mpeg12enc: check dimension validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7fb87bc5f2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 02:45:35 +01:00
Michael Niedermayer
5af4171304 mpeg12enc: Correctly mask dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit bcc4ef1a41)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 02:45:34 +01:00
Michael Niedermayer
3e36cba430 mpeg12: Support decoding dimensions that are a multiple of 4096
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 878e5bd6f5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 02:45:33 +01:00
Ronald S. Bultje
d369cc83aa h264: add 3 pixels below for subpixel filter wait position.
If the motion vector is at a subpixel position, we need 3 pixels below
the motion vector's wholepel position available, not 2, since the MC
filter is a sixtap filter for the hpel position, and then a bilin filter
for the qpel position.

This patch fixes highly irreproducible (0.1%) fate failures in frame 2
and 4 of h264-conformance-cama2_vtc_b (e.g. first P-frame, first field,
last line of MB x=40,y=2 and second field and last lines of MBs x=39-40,
y=3). These used pre-loopfilter instead of post-loopfilter data because
the await_progress() waited for one line too little in that field, and
the motion vector of these particular MBs happened to align exactly to a
position where that demonstrates the bug.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 02:43:06 +01:00
Ronald S. Bultje
ac6b2fecf4 h264: don't clobber mmco opcode tables for non-first slice headers.
Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.

Therefore, instead, decode the mmco tables only for the first slice in
a field or frame. For other slices, decode the bits and ensure they
are identical to the mmco tables in the first slice, but don't ever
clobber the context state. This prevents other threads from using a
clobbered/invalid template as starting point for decoding, and thus
fixes decoding in these cases.

This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
frame-multithreading enabled.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 02:42:47 +01:00
Michael Niedermayer
bca27b0480 swr: fix handling of timestamps that cause multiple drops or silence injections
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d676598f87)
2013-01-20 02:40:22 +01:00
Carl Eugen Hoyos
c287efcc44 Only skip MLP header in mpeg files if the codec actually is MLP.
Fixes PCM audio in Kansas Pheasant Hunt 2000 mpg file.
Reported-by: Mashiat Sarker Shakkhar
(cherry picked from commit ad406f7e40)
2013-01-17 17:43:01 +01:00
Carl Eugen Hoyos
aa1af0d6ca Fix detection of struct v4l2_frmsize_discrete.
It was always detected successfully.
(cherry picked from commit c345100efc)
2013-01-17 02:14:29 +01:00
Michael Niedermayer
302d2591dc ff_get_audio_frame_size: try to fix wma in wav
Fixes Ticket1905, Ticket2114

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2713e43ac8)
2013-01-07 00:55:00 +01:00
Nicolas George
10ac44198d ffmpeg: mark attachment streams finished.
Fix trac ticket #2083.
(cherry picked from commit 69a1667b06)
2013-01-07 00:52:45 +01:00
Piotr Bandurski
7590a125f5 tiffdec: Use the correct height field.
Fixes Ticket913

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 4784a135b2)
2013-01-07 00:25:36 +01:00
Michael Niedermayer
ff08767817 lavf: Fix codec id forcing with probed codecs
Fixes Ticket2088

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 341e40f1e1)
2013-01-02 02:22:04 +01:00
Michael Niedermayer
bc1e72c38e lavf: move force_codec_ids() up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3a6b6f425e)
2013-01-02 02:20:53 +01:00
Clément Bœsch
20c121c007 lavc/ass_split: check for NULL pointer in ff_ass_split_override_codes().
This is consistent with the other ff_ass_split_* functions.

It also fixes a crash when trying to split a dialog with text=NULL
(which seems to happen when the text of the dialog is empty); basically,
this commit fixes crashes when trying to encode an empty text subtitle
dialog (see subrip and mov_text encoders).

Fixes Ticket2048.
(cherry picked from commit c83002a4f8)
2013-01-01 18:37:10 +01:00
Hendrik Leppkes
5f95b300c1 mov: fix parsing of the chap atom.
This was broken in 0d96ec19eb under the
assumption that there is only one tref leaf atom.

Fixes Ticket #2081.
(cherry picked from commit 765158dd82)
2013-01-01 17:36:26 +01:00
Clément Bœsch
68e48ed72e lavc/movtextdec: keep the min size instead of max to fix overread.
Fixes Ticket #2087.
(cherry picked from commit 7d66bc7920)
2013-01-01 17:23:43 +01:00
Michael Niedermayer
97ec20a20a mov: fix time types related to mov_metadata_creation_time
Fixes Ticket1817
Based on patch by: Przemyslaw Wesolek <przemyslaw.wesolek@go.art.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit adbb75dbd8)
2012-12-20 12:00:38 +01:00
Michael Niedermayer
553c9c77cc mpeg1video: fix regression with slices != threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a01679586c)
2012-12-13 00:15:52 +01:00
Michael Niedermayer
f44c73f5bb mpeg1video: support multi threaded slice encoding.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 03df972016)

Conflicts:
	libavcodec/mpeg12enc.c
2012-12-13 00:15:12 +01:00
Michael Chinen
59d765e30c flac_parser.c: fix issue with looping output for small files.
see trac 1345
https://ffmpeg.org/trac/ffmpeg/ticket/1345

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c73b1a1d80)
2012-12-11 00:50:19 +01:00
Michael Niedermayer
dad5b9560a ffplay: Prevent 0/0 aspect from being passed on to lavfi
0/0 fails to be parsed

Fixes Ticket1814
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a63d7213b3)
2012-12-11 00:49:26 +01:00
Michael Niedermayer
41bcde6021 asfdec: check stream_index for validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b7280cff9a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 23:57:14 +01:00
Michael Niedermayer
e432bd071c asfdec: flip the interpretation of the header aspect back
This reverts 2de8877689

Fixes Ticket 1883

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 23:57:14 +01:00
Michael Niedermayer
08d75bf545 asfdec: parse aspect ratio payload extension
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 343c73e252)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 23:57:14 +01:00
Michael Niedermayer
19de5478f0 asfdec: correctly parse payload extensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8c93269e42)

Conflicts:

	libavformat/asfdec.c
2012-12-10 23:57:14 +01:00
Michael Niedermayer
3ac97550ce asfdec: parse payload extension list
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2d8c76eb1f)

Conflicts:

	libavformat/asf.h
2012-12-10 23:57:14 +01:00
Carl Eugen Hoyos
a875a9a833 vqavideo: Reinitialise the actually used partial codebook bytestream-reader.
Fixes ticket #1942.
(cherry picked from commit dd6abc921a)
2012-12-10 01:09:08 +01:00
Michael Niedermayer
73487f7dee avidec: try to support oddly muxed MMES stream
Fixes ticket1804

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit be89693ddc)
2012-12-10 01:06:57 +01:00
Michael Niedermayer
c389ae543a riff: ignore ff_read_riff_info() failure.
Some files simply contain invalid info tags.
Fixes unrelated bug posted into Ticket1821

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 09456d0df1)
2012-12-10 00:36:58 +01:00
Michael Niedermayer
15526ac69f riff: retry reading metadata without padding if it fails with
Fixes Ticket1821

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d0c27e88d2)
2012-12-10 00:36:41 +01:00
Michael Niedermayer
9929991da7 ffserver: set oformat
Fix Ticket1986

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit cbe43e62c9)
2012-12-10 00:26:56 +01:00
KO Myung-Hun
1b0c1df3b9 lavc: include os2threads.h in vp8.h if HAVE_OS2THREADS is enabled
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3a45688abc)
2012-12-08 19:52:03 +01:00
Janne Grunau
e31ace670e h264: slice-mt: get last_pic_dropable from master context
Fixes fate-h264-conformance-cvnlfi2_sony_h and smllwebdl.mkv from
https://github.com/OpenELEC/OpenELEC.tv/issues/1557 .
(cherry picked from commit 24c62ea7a5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 16:52:35 +01:00
Nicolas George
e74cd2f470 lavf: compute probe buffer size more reliably.
The previous code computes the offset by reversing the growth
of the allocated buffer size: it is complex and did lead to
inconsistencies when the size limit is reached.

Fix trac ticket #1991.
(cherry picked from commit 03847eb825)

Conflicts:
	libavformat/utils.c
2012-12-05 01:31:50 +01:00
Michael Niedermayer
528700dd58 update for 1.0.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 21:31:18 +01:00
Michael Niedermayer
e34369e8ec qdm2: check array index before use, fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit a7ee6281f7)
2012-12-03 21:03:14 +01:00
Michael Niedermayer
74241de7ed huffyuvdec: check width more completely, avoid out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6abb9a901f)
2012-12-03 21:03:14 +01:00
Michael Niedermayer
38e8f78c04 roqvideodec: check dimensions validity
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3ae6104511)
2012-12-03 20:45:45 +01:00
Michael Niedermayer
c82d6e05da h264: correct ref count check and limit, fix out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d6c184880e)
2012-12-03 20:45:41 +01:00
Michael Niedermayer
c8833a13cf eamad: fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 63ac64864c)
2012-12-03 20:45:37 +01:00
Michael Niedermayer
28bf685bfc pgssubdec: check RLE size before copying. Fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c0d68be555)
2012-12-03 20:45:32 +01:00
Michael Niedermayer
c51c5f83c1 wavpack: fix out of array access
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit be818df547)
2012-12-03 20:45:27 +01:00
Michael Niedermayer
12fb647994 mjpegdec: check SE.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 20:45:23 +01:00
Michael Niedermayer
c8c9740ee1 alac: fix integer overflow leading to subsequent out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3920d13878)
2012-12-03 20:45:18 +01:00
Michael Niedermayer
e0884eadf6 alac: fix nb_samples < order case
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fd4f4923cc)
2012-12-03 20:45:13 +01:00
Michael Niedermayer
112d4c400f iff/ilbm: check remaining buffer size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2fbb37b51b)

Conflicts:

	libavcodec/iff.c
2012-12-03 20:44:30 +01:00
Michael Niedermayer
0b9be54e97 tiffdec: check count in metadata reading.
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 6d1c5ea04a)
2012-12-03 20:39:42 +01:00
Michael Niedermayer
18817d4b80 swr: use 64bit index/len for x86_64 mix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d23e8f53ad)
2012-12-03 19:36:15 +01:00
Michael Niedermayer
9d9d16b33f mpegvideo enc: choose VBV buffer size for mpeg4 when none is specified instead of failing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3556e7ce73)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
8b170ee5d8 mpegvideo enc: choose VBV buffer size for mpeg1/2 when none is specified instead of failing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1856162caa)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
86c8ab1fd8 ffv1: fix array data types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 106790a4e9)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
8c103410a6 movenc: fix regression with yuyv caused by c5f23d
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ac6659aff7)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
5bd5bb9e56 libvorbisenc: fix afq delay setting
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 2c34367b4a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
e2935721e0 aacenc: fix out of array writes
The value used in allocation is based on a estimate of the
maximum size of the spectral coefficients multiplied with 2
and rounded up. The exact or a tighter limit should be
found and used instead. But this issue shouldnt be left
open until someone works on that.

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Martin Ettl
ce433996d7 ffserver: fix potential buffer overflow, based on wrong fscanf format indentifier.
Fixed Ticket1780

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
jamal
e21a53b6eb fate: Fix --disable-zlib
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 062cd9acc1)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
7a67a70efa lavf: free probe data in case we close before probing finished
Fixes Ticket1634

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
3be4f230c6 ffv1enc: fix integer overflow with high resolutions and lots of slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit f049729e61)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Michael Niedermayer
9913ecc68d configure: add missing dependancies for gpl tests
fixes fate without --enable-gpl

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 19:36:15 +01:00
Clément Bœsch
09c79d50d8 lavf/swfdec: fix flushing with compressed swf.
We now only return in the middle of the refill in case of read error, so
inflate can be re-called if zlib needs an empty (z.avail_in=0) inflate
call for flushing.
2012-12-03 16:40:17 +01:00
Michael Niedermayer
a74f292d4a tests/Makefile: fix ffprobe test dependancy
This fixes the ffprobe tests under mingw/wine

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 03:02:28 +02:00
Michael Niedermayer
38df088545 asfenc: avoid negative timestamps
Fixes Ticket1606

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 02:47:37 +02:00
Michael Niedermayer
2efbff1db3 Revert "ffprobe: Add a few common disposition cases"
revert requested by ubitux for 1.0

This reverts commit 8e2a950b29.
2012-09-28 02:27:10 +02:00
Michael Niedermayer
f41c9f53de Update for 1.0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 02:18:32 +02:00
Michael Niedermayer
94041febc5 mp3dec: Fix possibly exploitable crash
I was sadly unable to find a non fuzzed mp3 that uses the
feature that contained the bug (and i searched hard ...), thus
while this fixes the security issue. It may or may not fix
mixed blocks in 8khz mp3s, i cant say due to lack of samples to test.

Security issue exists since: b37d945dd4

Reported-by: Dale Curtis <dalecurtis@google.com>
(Probably) Found-by: inferno@chromium.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 01:45:53 +02:00
Marton Balint
13f0cd681e mxfdec: allow container_ul to override codec_ul if codec is A-law
Fixes some DNXHD files generated by AVID TM, where codec UL was set to A-law
meanwhile the real audio codec was PCM S16. According to SMPTE RP 224, A-law is
the default value for sound essence parameters therefore we should handle it
specially.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 21:28:35 +02:00
Michael Niedermayer
6226d104a3 Changelog, split next from 1.0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 20:25:53 +02:00
Michael Niedermayer
9e9b5159e9 mpegvideo_enc: reduce QMAT_SHIFT to avoid overflow in dnxhd
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 19:43:31 +02:00
Nicolas George
9de731e9d0 lavfi/sink_buffer: implement libav compatibility API.
Implement av_buffersink_read() and av_buffersink_read_samples()
for ffmpeg's version of buffersink.

With this change, avconv linked against ffmpeg's libraries passes
the same number of tests whether it uses ffbuffersink or
buffersink_old.
2012-09-27 18:43:37 +02:00
Michael Niedermayer
279ae1cd72 lavf: move fields that appear to be intended as public API to the correct section
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 18:19:01 +02:00
Michael Niedermayer
7e9830d123 dsputil_mmx: fix reading prior of the src array in sub_hfyu_median_prediction()
This should fix the utvideoenc valgrind failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 16:43:39 +02:00
Nicolas George
8e1f063efc lavfi: enable buffersinks unconditionally.
They are part of the public API. Their libav compatibility
counterpart are already enabled unconditionally.
2012-09-27 15:57:30 +02:00
Michael Niedermayer
e760424ddd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  nutdec: const correctness for get_v_trace/get_s_trace function arguments
  truemotion2: Request samples for old TM2 headers
  rtpdec: Remove a useless ff_ prefix from a static symbol
  rtpdec: Support depacketizing speex
  rtpenc: Add support for packetizing speex

Conflicts:
	libavformat/rtpdec.c
	libavformat/sdp.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 14:29:03 +02:00
Clément Bœsch
00e1afd83f fate: add faststart regression test.
Also factorize the common options for the different mov-based tests.

Since the header is now on top in the last generated file, the data
offset in the seek test needed some updates as well.
2012-09-27 08:59:37 +02:00
Clément Bœsch
a714150827 lavf/movenc: add faststart option. 2012-09-27 08:59:36 +02:00
Clément Bœsch
f379a108a4 lavf/movenc: make mov_write_stco_tag() not use the offset pos for mode64 heuristic.
At the moment, the moov header is written at the end of the file, so we
can use the current offset (which focus on the end of the mdat already
written) to guess if 64-bits offset will be required or not.

Though, the next commits will make possible the writing of this table at
the beginning, so this heuristic can't work. As a consequence, we check
all the values within the potential offset table for any value >
32-bits.
2012-09-27 08:59:36 +02:00
Clément Bœsch
e17a2aba25 lavf/movenc: add get_moov_size and use it in fragment code.
This function will be re-used in the following commits.
2012-09-27 08:59:36 +02:00
Michael Niedermayer
65f7aee63b ffmpeg: add option to control copying of frames prior to start.
Normally we discard things prior to the intended start
for stream copy this is not always possible, and its not done by default
this option allows discarding to be enabled

this is primarely usefull when transcoding a video and stream copying an
audio stream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 03:52:31 +02:00
Jean First
d37044647f file: set the return value type for lseek to off_t
fixes a bug introduced with 4ed5ac50d3

Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 01:47:49 +02:00
Michael Niedermayer
c76ffdc251 RELEASE: update for 1.0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 01:48:14 +02:00
Michael Niedermayer
67016b3c79 MAINTAINERS: add 1.0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-27 01:48:14 +02:00
Stefano Sabatini
163f7afbe6 ffprobe: fix indentation of the first line of packets_and_frames sections in the json output 2012-09-27 01:10:46 +02:00
Michael Niedermayer
2e4ec8947d lavf: fill in past dts based on reordered pts once the delay becomes known.
Previously we had ignored the past dts and just filled in from the
point where we have had sufficient information.

This should fix Ticket1734

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 22:58:02 +02:00
Michael Niedermayer
a8e3815db5 lavf: factorize timestamp shift in update_initial_timestamps()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 22:58:02 +02:00
Michael Niedermayer
cddbafb56a ffmpeg: allow printing muxer side packet timestamp debuging info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 22:58:02 +02:00
Diego Biurrun
93e81ee81c nutdec: const correctness for get_v_trace/get_s_trace function arguments 2012-09-26 19:10:13 +02:00
Diego Biurrun
2dc1310484 truemotion2: Request samples for old TM2 headers 2012-09-26 19:10:13 +02:00
Martin Storsjö
69673138c5 rtpdec: Remove a useless ff_ prefix from a static symbol
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-26 19:05:18 +03:00
Dmitry Samonenko
b6bf1490da rtpdec: Support depacketizing speex
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-26 19:05:10 +03:00
Dmitry Samonenko
490ae95aa8 rtpenc: Add support for packetizing speex
This packetization scheme simply places the full packets into the
RTP packet without any extra header bytes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-26 19:04:57 +03:00
Michael Niedermayer
3b92075e6c Revert "arm/h264: fix overreads in h264_chroma_mc8-and-h264_chroma_mc4"
This reverts commit d25f87f517.

This breaks decoding of some h264 files
I have tested the original patch with fate but by mistake have
forgotten to specify the fate samples so testing was limited to
the internal regression tests.
2012-09-26 17:31:25 +02:00
Michael Niedermayer
55a6f705ac ffv1dec: support decoding older 1.3 bitstream variant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 17:04:29 +02:00
Michael Niedermayer
ff0c628268 ffv1:update copyright year
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 17:00:15 +02:00
Michael Niedermayer
5c4e2e8755 nutenc: avoid negative timestamps
Fixes Ticket1468

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 15:56:06 +02:00
Michael Niedermayer
3ba0dab76a lavf: Add support offset timestamps on muxing.
This allows avoiding negative timestamps.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 15:55:16 +02:00
Michael Niedermayer
e9350c44ad nutenc: remove outdated fixme
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 15:53:17 +02:00
Michael Niedermayer
ae0449314c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  xsub: feed init_get_bits the whole buffer
  libfdk-aac: Allow setting VBR modes via a private option
  libfdk-aac: Warn the user that the VBR modes are unsupported
  Revert "cbrt_tablegen: Include libm.h"

Conflicts:
	libavcodec/xsubdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 13:51:39 +02:00
Stefano Sabatini
4552e9b56c ffprobe: generalize writer subsection nesting model
Discard unflexible structure based on the root/chapter/section layout in
favor of a generalized concept of section.

This should allow to represent sections at a generic level of nesting,
and allow subsection fields selection.

Also, simplify the code.
2012-09-26 11:07:09 +02:00
Michael Niedermayer
299c0b30a6 lavf: fix bug that caused has_decode_delay_been_guessed() to never return !=0
Possibly fixes Ticket1724

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 04:53:03 +02:00
Duncan Salerno
4b80a619b7 Handle the following type of relative URL correctly:
http://a/b + //c/d = http://c/d
http://a/b?c + ?d = http://a/b?d
http://a/b?c/d + /e = http://a/e

Updated with feedback from Clément Bœsch

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 03:43:06 +02:00
Michael Niedermayer
f75c5f07a9 diracyasm: fix win64
Fixes Ticket1412

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 01:56:01 +02:00
Michael Niedermayer
5fe808578c libx264: fix open GOP
Found-by: relaxed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 01:56:01 +02:00
Derek Buitenhuis
7133d25425 configure: Fix 10l in 5ae9fa13f5
Wrong version of the patch was pushed. MinGW32 supports vsnprint properly.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-25 18:21:53 -04:00
Derek Buitenhuis
5ae9fa13f5 MinGW: Use our snprintf/vsnprintf when MinGW's is broken
All versions of MinGW-w64 prior to version 3, as well as
all versions of MinGW32 have broken implementations of
vsnprintf.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-25 18:14:14 -04:00
Michael Niedermayer
de73ae6b1a ffmpeg: avoid apics for video output if possible
Fixes Ticket1714

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-26 00:02:19 +02:00
Michael Niedermayer
a7b483953d ffmpeg: factor area out of video stream selection code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 23:59:34 +02:00
Michael Niedermayer
c5e2347373 mlpdec: supress layout mismatch warnings for 2 ch upmixed mono
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 22:45:52 +02:00
Michael Niedermayer
eda5db6bd1 mlpdec: discard a 2nd substream if the stream is mono
This fixes the rest of Ticket1726

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 22:36:45 +02:00
Michael Niedermayer
2a672652bb mlp_parser: dont override existing channel geometry.
This prevents race conditions
And partly fixes Ticket1726

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 22:35:26 +02:00
Alexandre Colucci
92d2b909a0 xsub: feed init_get_bits the whole buffer
Do not use rlelen field for buffer size in init_get_bits, it is
only the size of the data for the first field.
Since it is not reliable, just use the size of the whole buffer.

Additional comments add removal of unused rlelen variable by
Reimar Döffinger.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-25 22:28:53 +02:00
bruce-wu
d25f87f517 arm/h264: fix overreads in h264_chroma_mc8-and-h264_chroma_mc4
Fixes Ticket1227
2012-09-25 20:09:30 +02:00
Martin Storsjö
375bff7084 libfdk-aac: Allow setting VBR modes via a private option
This avoids using the global_quality field and QSCALE flag for
passing the VBR modes, since the value range of the global_quality
field doesn't really map cleanly to this codec's VBR modes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-25 20:51:47 +03:00
Martin Storsjö
a10190dcd8 libfdk-aac: Warn the user that the VBR modes are unsupported
These modes were not originally exposed by the library at all.
In practice, only a few of them work for each sample rate/profile
combination, and they don't work at all for the more uncommon
sample rates.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-25 20:51:46 +03:00
Derek Buitenhuis
b62d4c16c9 Revert "cbrt_tablegen: Include libm.h"
This code runs on the host and should not use libm.h, which is meant
for the target.

This reverts commit 2768b71798.
2012-09-25 12:54:26 -04:00
Michael Niedermayer
49331f7ba3 dnxhdenc: fix speed regression
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 18:10:11 +02:00
Michael Niedermayer
6b33e91899 mpegvideo: factorize ff_dct_encode_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 18:10:11 +02:00
Michael Niedermayer
71d6eb2208 dnxhdenc: remove redundant call to ff_dsputil_init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 18:10:11 +02:00
Michael Niedermayer
8deddc6961 avcodec_alloc_frame: dont zero the whole struct twice
cleaning it up is already done in avcodec_get_frame_defaults()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 18:10:10 +02:00
Michael Niedermayer
d9d56712e9 oggparsetheora: print error when failing on unknown header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 17:32:11 +02:00
Michael Niedermayer
abcaacf1ac Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pthread: make sure AVFrame.extended_data is set properly.
  libfdk-aac: reindent after last commit
  libfdk-aac: Limit to supported sample rates.
  cbrt_tablegen: Include libm.h
  oggparsetheora: make it more robust
  ogg: prevent NULL pointer deference in theora gptopts

Conflicts:
	libavformat/oggparsetheora.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 16:11:34 +02:00
Michael Niedermayer
d3ef2da59d oggdec: add missing () for OGG_NOGRANULE_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 16:03:55 +02:00
Michael Niedermayer
0842e32f99 Merge commit 'd1f05dd18375f2f8e68372edee11436927e43ba8'
* commit 'd1f05dd18375f2f8e68372edee11436927e43ba8':
  ogg: calculate the start position once all the headers are parsed

Conflicts:
	libavformat/oggdec.c
	libavformat/oggparseskeleton.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 16:00:09 +02:00
Michael Niedermayer
4c273eb64c oggdec: print a warning if the number of headers mismatch expectations.
This is based on:
	commit 7751e4693d
	Author: Luca Barbato <lu_zero@gentoo.org>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 15:34:58 +02:00
Michael Niedermayer
cc4deafed1 oggdec: print error when headers couldnt be parses successfully
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 15:22:05 +02:00
Michael Niedermayer
46a35959d8 Merge commit '7751e4693dd10ec98c20fbd9887233b575034272'
* commit '7751e4693dd10ec98c20fbd9887233b575034272':
  ogg: check that the expected number of headers had been parsed
  libx264: change default to closed gop to match x264cli
  Use avcodec_free_frame() to free AVFrames.
  lavf: use a malloced AVFrame in try_decode_frame().
  lavc: add avcodec_free_frame().
  lavc: ensure extended_data is set properly on decoding
  lavc: initialize AVFrame.extended_data in avcodec_get_frame_defaults()
  lavc: use av_mallocz to allocate AVFrames.
  lavc: rename the argument of avcodec_alloc_frame/get_frame_defaults

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	libavcodec/utils.c
	libavcodec/version.h
	libavfilter/src_movie.c
	libavformat/oggdec.c
	libavformat/oggdec.h
	libavformat/oggparsetheora.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 15:15:16 +02:00
Anton Khirnov
7a1a9dd56c pthread: make sure AVFrame.extended_data is set properly.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-25 12:03:23 +02:00
Stefano Sabatini
2089f93300 ffprobe: drop pointless opaque parameter in writer init callback
The parameter was never used.
2012-09-25 11:02:52 +02:00
Stefano Sabatini
58e9025993 ffprobe: reindent after previous commit 2012-09-25 09:22:00 +02:00
Stefano Sabatini
4b370d6126 ffprobe: rework checking logic in writer_print_time() and writer_print_rational()
Make writer_print_time() and writer_print_rational() always call
writer_print_int() or writer_print_string(). This way the checks for
determining if the value should be printed or not are consistently
performed in the low level functions.

writer_print_rational() is moved downward in order to avoid a forward
reference.

Simplify/amend the overall logic.
2012-09-25 09:20:57 +02:00
Clément Bœsch
4390f8c28d Fix two "skiping" typo. 2012-09-25 07:42:32 +02:00
Nathan Caldwell
c8ba8be27e libfdk-aac: reindent after last commit
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-25 08:08:05 +03:00
Nathan Caldwell
94a69dee64 libfdk-aac: Limit to supported sample rates.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-25 08:08:05 +03:00
Derek Buitenhuis
2768b71798 cbrt_tablegen: Include libm.h
Needed for cbrtf fallback on systems which lack it.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-24 22:47:47 -04:00
Michael Niedermayer
aea15df3b4 ffv1dec: change bitstream end check to a exact check instead of a +-1 check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 03:43:23 +02:00
Michael Niedermayer
d8676140de ffv1: inject sentinels for RC->VLC transitions begining with 1.3
This breaks bitstream compatibility of 1.3 VLC streams
This fixes very rare errors in the RC stream at the transition point
to VLC.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 03:43:22 +02:00
Michael Niedermayer
ad9371ef24 ffv1enc: fix RC slice sentinel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 03:43:21 +02:00
Michael Niedermayer
6bcbe768bb lavf: dont add apic streams for demuxers that dont support it.
Fixes crash
Fixes ticket1730

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-25 02:47:09 +02:00
Alexander Strasser
dde8068856 ffprobe: Consider the chosen separator when doing CSV escaping
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-25 01:32:34 +02:00
Alexander Strasser
dd83028374 ffprobe: Rename variable in csv_escape_str()
Sync to 3245be9 .

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-25 01:32:19 +02:00
Alexander Strasser
f70122dd57 ffprobe: Simplify CSV field quoting code
Sync with bac1b31 .

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-25 01:32:13 +02:00
Mans Rullgard
7e3208a087 ARM: libswresample: NEON optimised generic fltp to s16 conversion
Adapted to swr by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 23:19:32 +02:00
Michael Niedermayer
97599f8c6d swr: make sure the last data element is NULL so we can use it to detect the number of channels
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 23:19:32 +02:00
Mans Rullgard
5dc7363446 ARM: libswresample: NEON optimised stereo fltp to s16 conversion
Adaption to swr by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 23:16:14 +02:00
Mans Rullgard
0eebde07a9 ARM: libswresample: NEON optimised flat float to s16 conversion
Adapted to swr by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 23:16:14 +02:00
Luca Barbato
d1f05dd183 ogg: calculate the start position once all the headers are parsed
The fisbone packets can be muxed in any order as long the last one
comes before the first data packet.
2012-09-24 22:35:29 +02:00
Luca Barbato
7751e4693d ogg: check that the expected number of headers had been parsed
Not having the header for a codec is a tell-tale of a broken file.
2012-09-24 22:35:29 +02:00
Luca Barbato
0336dea2ef oggparsetheora: make it more robust 2012-09-24 22:35:29 +02:00
Michael Niedermayer
bb146bb57b ogg: prevent NULL pointer deference in theora gptopts
Additional safety in case a special ogg stream is crafted
with the proper number of

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 22:35:29 +02:00
Stefano Sabatini
bbe9fe469a lavf/utils: remove loop on AVERROR(EAGAIN) in av_read_frame()
The loop was introduced in 64d340c62a, and
was likely breaking non blocking reads as it busy loops.
2012-09-24 21:16:48 +02:00
John Van Sickle
a716006a7d libx264: change default to closed gop to match x264cli
open-gop can be enabled with "-flags -cgop"

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-24 19:23:03 +02:00
Michael Niedermayer
fd63c2ff0c fate: fix --disable-ffprobe
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 18:20:57 +02:00
Stefano Sabatini
f3bd6fa7a8 lavc/mmvideo: forward reget_buffer return value in mm_decode_frame() 2012-09-24 14:57:49 +02:00
Michael Niedermayer
ff584803b7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtp: Packetization of JPEG (RFC 2435)
  smoothstreamingenc: Copy the SAR on the AVStreams as well

Conflicts:
	Changelog
	libavformat/rtpenc.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 13:54:24 +02:00
Michael Niedermayer
874b9dcc4b ppc/cpu: make linux 32bit specific altivec detection depend on __linux__
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 13:41:48 +02:00
Michael Niedermayer
c75b611a38 configure: enable runtime cpu detect by default.
with the exception of libpostproc runtime_cpudetect = no is not
supported thus having no as default really is quite odd, it results in
a libpostproc where HAVE_MMX* have very different meaning from the
rest of ffmpeg and it breaks any x86 cpu that doesnt support mmx2
because mmx2 is hardcoded as a result

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-24 13:17:29 +02:00
Anton Khirnov
11d1ca4b2c Use avcodec_free_frame() to free AVFrames. 2012-09-24 12:31:25 +02:00
Anton Khirnov
9eb296572e lavf: use a malloced AVFrame in try_decode_frame().
This allows using avcodec_free_frame() to free it properly.
2012-09-24 12:31:24 +02:00
Anton Khirnov
a42aadabc6 lavc: add avcodec_free_frame().
Since an AVFrame now has malloced members (extended_data), it must have
a destructor.
2012-09-24 12:31:24 +02:00
Anton Khirnov
b437cec143 lavc: ensure extended_data is set properly on decoding 2012-09-24 12:31:24 +02:00
Anton Khirnov
2bc0de3858 lavc: initialize AVFrame.extended_data in avcodec_get_frame_defaults() 2012-09-24 12:31:24 +02:00
Anton Khirnov
c084a975aa lavc: use av_mallocz to allocate AVFrames.
Otherwise the frame is uninitialized, so avcodec_get_frame_defaults()
cannot determine whether to free extended_data.
2012-09-24 12:31:24 +02:00
Anton Khirnov
a83499b13b lavc: rename the argument of avcodec_alloc_frame/get_frame_defaults
AVFrame is used for both audio and video, so calling the argument 'pic'
is misleading.
2012-09-24 12:31:24 +02:00
Stefano Sabatini
efa3d5af1e lavc/roqvideodec: fix error message
Remove redundant reference to codec name, it is already mentioned in the
log header.
2012-09-24 12:02:38 +02:00
Stefano Sabatini
b1fee1be61 lavc/roqvideodec: propagate reget_buffer() error code 2012-09-24 12:02:31 +02:00
Stefano Sabatini
d2c70ec07f lavc/roqvideodec: remove useless headers 2012-09-24 12:02:23 +02:00
Stefano Sabatini
d40b197ca8 tests/fate-ffprobe: fix typo in metadata comment 2012-09-24 10:32:52 +02:00
Stefano Sabatini
10c00f7a04 tests/fate-ffprobe: use an ffmetadata file for the injected metadata
Workaround commandline msys issues, also allow more flexibility.
Should fix ffprobe tests on mingw+MSVC.
2012-09-24 10:04:44 +02:00
Stefano Sabatini
64d340c62a lavf/utils: add error check in av_read_frame()
In particular, fix crash when the input file contains no packets (e.g. an
ffmeta input).
2012-09-24 00:41:13 +02:00
Michael Niedermayer
127b70e423 ra144: factor division out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 21:12:23 +02:00
Nicolas George
7200fecd9b cmdutils: sort codec lists.
The lists are sorted first by type (video first)
and then alphabetically by name.

Fix ticket #1669.
2012-09-23 21:05:29 +02:00
Samuel Pitoiset
cee1950bbb rtp: Packetization of JPEG (RFC 2435) 2012-09-23 21:58:41 +03:00
Martin Storsjö
71908f0838 smoothstreamingenc: Copy the SAR on the AVStreams as well
This is required in chained muxers, if the SAR happens to be set.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-23 21:28:58 +03:00
Sebastien Zwickert
f25d53d95f configure: disable VDA on ppc, fix build
Fixes Ticket1760

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 17:27:44 +02:00
Reimar Döffinger
033f53fb8f Document why we always send a Range HTTP header.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-09-23 15:40:17 +02:00
Reimar Döffinger
3905caf251 Document that the MPEG12 "fast" functions can read out of bounds.
This is intentional (and a reason why fast usually should not be used),
but a few people sent patches to "fix" this recently so it would be
better to document this.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-09-23 15:40:17 +02:00
Clément Bœsch
2599541b3d WebVTT demuxer and decoder. 2012-09-23 15:24:08 +02:00
Dmitry Samonenko
697ea4fccf Introducing speex RTP demuxing (RFC 5574)
RTPDynamicProtocolHandler for speex is added. Initial support for
speex depacketization from RTP stream comes with it.
Currently, only codec audio rate can be applied based on sdp:
* Narrowband    ( 8K)
* Wideband      (16K)
* Ultrawideband (32K)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 14:20:13 +02:00
Dmitry Samonenko
b024c41e1e Add initial support for speex RTP packetization (RFC 5574)
* libspeex audio codec is no longer considered unsupported
  when using rtp as output format.
* SDP rtpmap is added for speex payload, formatted according to RFC

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 14:08:48 +02:00
Michael Niedermayer
fecfdf6e72 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec: fix memleak in avcodec_encode_audio2()

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 13:55:43 +02:00
Michael Niedermayer
f0bb88e2bc Revert "http: only send range header when necessary"
This reverts commit 48cf0f1c18.
This can cause problems with seekability detection
2012-09-23 13:21:35 +02:00
Michael Niedermayer
21c4393f1c lavf/find_stream_info: make sure we decode at least one frame for DTS
The channel layout at the demuxer layer is commonly wrong and would
otherwise be used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 04:56:51 +02:00
Michael Niedermayer
61a84755a9 lavf: dont open a decoder at the top of find_stream_info before probing has finished
It could open the wrong decoder.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 04:56:21 +02:00
Duncan Salerno
48cf0f1c18 http: only send range header when necessary
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 02:36:08 +02:00
Duncan Salerno
0a8cc1179a http: larger buffer for long URIs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 02:35:42 +02:00
rogerdpack
641c0eea0b bitmap header lookup: add code comment
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 02:12:34 +02:00
Michael Niedermayer
697b476c07 wav: Fix DTS detection
Fixes Ticket1474

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 01:22:16 +02:00
Michael Niedermayer
a9f522d1b7 lavf: document request_probe properly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 01:22:16 +02:00
Michael Niedermayer
a380f82c53 lavf: allow using request_probe as a score threshold to accept a codec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-23 01:22:16 +02:00
Stefano Sabatini
740c995288 lavfi: add asendcmd and sendcmd filters 2012-09-23 00:50:06 +02:00
Stefano Sabatini
7fe1ecefe1 lavfi/hue: simplify/fix setting logic in set_options()
Parse expression only when a new value is explicitly specified.

In particular, avoid double free in case an old expression value is
cached, it is set in the context, it is freed as the old value, and
finally the pointer stored in the context is freed again when the filter
is released.
2012-09-23 00:46:33 +02:00
Michael Niedermayer
eb949544ca ffmpeg: fix 10l (use of uninitilaized variable)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 22:09:41 +02:00
Michael Niedermayer
374033ee93 ffmpeg: remove now unneeded old *_codec_name code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 18:58:51 +02:00
Michael Niedermayer
8ccb56abee ffmpeg/opt_output_file: extract subtitle codec name through new API
This should fix specifying subtitle codecs with the new syntax in some cases.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 18:57:47 +02:00
Michael Niedermayer
a4271f3d4e ffmpeg: dont match unspecified media types in MATCH_PER_TYPE_OPT
This would change existing behavior, and should if done, done seperately.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 18:56:10 +02:00
Michael Niedermayer
3db4c88ac1 ffmpeg/opt_preset: update to new option API for reading codec names.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 18:16:49 +02:00
Michael Niedermayer
bad953bc2d ffmpeg: fix overriding codecs with the new syntax
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 17:56:35 +02:00
Justin Ruggles
0ccf051a9d avcodec: fix memleak in avcodec_encode_audio2()
Ensure that padded_frame is freed before returning when needed.
2012-09-22 09:24:24 -04:00
Michael Niedermayer
8364bde02b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  sipr: fall back to setting mode based on bit_rate.

Conflicts:
	libavcodec/sipr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 14:04:44 +02:00
Michael Niedermayer
79bf1f0ad0 rawdec: fix "warning: assignment from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 13:48:40 +02:00
Andrew Wason
225efccefc lavfi/buffersink: fix check on pixel_fmts in the opaque parameter
Fix programmatic selection of accepted pixel formats.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-22 10:59:40 +02:00
Stefano Sabatini
ab4ee9fd5e tests: update fate-ffprobe test to make use of -bitexact flag
Should fix tests with --enable-small.
2012-09-22 09:34:56 +02:00
Stefano Sabatini
42047c3e86 ffprobe: reindent after the previous commit 2012-09-22 09:34:56 +02:00
Stefano Sabatini
4cd1addcc4 ffprobe: add -bitexact boolean option
The option is mostly useful to make ffprobe output independent from the
build, and in particular to fix FATE --enable-small failures.
2012-09-22 09:34:56 +02:00
Michael Niedermayer
07cdd39478 pnmdec: use explicit casts to remove const to avoid warning with clang
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 04:51:47 +02:00
Michael Niedermayer
28e88a24f6 rtsp: fix "warning: ret may be used uninitialized in this function"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 04:49:04 +02:00
Michael Niedermayer
0079232299 rtsp: kill a pointer type warning (void **) vs. (AVFormatContext **)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 04:45:12 +02:00
Michael Niedermayer
8d45c001a8 flac_parser: fix fifo ptr wrap check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 04:40:10 +02:00
Loren Merritt
1b1b902e2c hqdn3d: Fix out of array read in LOWPASS
Fixes ticket1752

Commit message by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-22 03:17:28 +02:00
Clément Bœsch
ea5bd7ea6f lavf/oggdec: check for begin-of-stream flag in case of chained streams.
Fix Ticket #1617, revealing a regression I introduced in 8f3eebd.

We need to make sure no stream is added in between Ogg context save and
restore operations (because it would likely lead to a mismatch between
ogg->nstreams and AVFormatContext->nb_streams after the restore op).
This is the reason the ogg->state check is added in ogg_new_stream().
Before this patch, checking for ogg->headers was preventing this:
ogg->headers is always set before any ogg save/restore (though, it was
also preventing from creating the stream when necessary).
2012-09-22 00:40:51 +02:00
Reimar Döffinger
c54e00610f sipr: fall back to setting mode based on bit_rate.
Not all applications (e.g. MPlayer) set block_align, and
when using a different demuxer it might not even be
easily available.
So fall back to selecting mode based on bit rate as before
if block_align has not useful value.
It can't be worse than failing to decode completely.

(cherry picked from commit 1d0d63052b)

CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-09-21 20:11:23 +02:00
Clément Bœsch
405ee405c9 ffmpeg: complete mov/mp4 based timebase hack with "f4v" format. 2012-09-21 17:27:57 +02:00
Matthieu Bouron
41f7e0649f mxf: export ff_mxf_get_samples_per_frame to lavf
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 16:20:38 +02:00
Clément Bœsch
7bc70930dd lavf/movenc: add F4V flavor. 2012-09-21 15:14:11 +02:00
Michael Niedermayer
406cdddbdd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libx264: add forgotten ;
  matroskadec: fix a sanity check.
  matroskadec: only return corrupt packets that actually contain data
  lavf: zero data/size of the packet passed to read_packet().
  ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC code
  ARM: align PIC offset pools to 4 bytes
  ARM: swap source operands in some add instructions
  configure: update tms470 detection for latest version
  lavf probe: prevent codec probe with no data at all seen
  motion_est: fix use of inline on extern functions

Conflicts:
	libavcodec/motion_est_template.c
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 14:44:32 +02:00
Stefano Sabatini
9543cd593e ffprobe: print format long_name only if non-NULL
Fix possible crash when long_name is not defined (for example if
--enable-small).
2012-09-21 13:59:18 +02:00
Stefano Sabatini
3aa1b53256 lavfi/hue: set to NULL freed pointers
Possibly safer.
2012-09-21 12:44:44 +02:00
Stefano Sabatini
31aa5b1a78 lavfi/hue: fix crash when resetting the saturation expression
Previously when saturation was reinited, the old value was freed when
setting options, and freed again in PARSE_EXPRESSION().
2012-09-21 12:43:52 +02:00
Stefano Sabatini
0f40105aaa ffprobe: print codec_long_name only when available
Avoid possible segmentation fault if codec_long_name is defined as
NULL (for example if --enable-small).
2012-09-21 09:27:06 +02:00
Anton Khirnov
e52e4fe10d libx264: add forgotten ; 2012-09-21 09:20:09 +02:00
Anton Khirnov
87b017a298 matroskadec: fix a sanity check. 2012-09-21 09:15:07 +02:00
Anton Khirnov
bdb939ad73 matroskadec: only return corrupt packets that actually contain data
Fixes bug 372.
2012-09-21 09:15:01 +02:00
Anton Khirnov
1cc569ddda lavf: zero data/size of the packet passed to read_packet(). 2012-09-21 09:14:37 +02:00
Mans Rullgard
8995d34972 ARM: use 2-operand syntax for ADD Rd, PC in Apple PIC code
The Apple assembler refuses to assemble the 3-operand form
in Thumb2 even though it is valid syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-21 07:07:58 +01:00
Mans Rullgard
cdb7db5acd ARM: align PIC offset pools to 4 bytes
When building Thumb2 code, the end of a function, where the PIC
offsets are placed, need not be aligned.  Although the values
are only accessed with instructions allowing unaligned addresses,
keeping them aligned is preferable.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-21 07:07:58 +01:00
Michael Niedermayer
fb96ac469a nutdec: fix mixup of nb_streams and timebase_count
Fixes out of array read, should fix ffprove fate failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 06:29:24 +02:00
Michael Niedermayer
6ab1166c77 nutdec: fix type of intermediate variable for ts calculation.
Prior to this it could theoretically become negative and read
out of array.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 06:27:38 +02:00
Michael Niedermayer
3dc24600ba vsrc_testsrc: Fix case without a specified duration
Fixes regression since 98f753ec51

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 03:00:15 +02:00
Andrey Utkin
cc07a7925e Add av_copy_packet()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 01:03:31 +02:00
Andrey Utkin
d33908a5fc Move av_dup_packet() copy logic to separate procedure
Done to simplify next commit introducing av_copy_packet()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-21 00:49:12 +02:00
Michael Niedermayer
a6ec1e49f6 matroskadec: matroska_parse_rm_audio: remove unused parameter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 23:43:20 +02:00
Michael Niedermayer
6d87781758 mp3dec: fix seeking without xing TOC
fixes regression from the xing toc support

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 22:00:52 +02:00
Michael Niedermayer
5864ce13d1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mp3dec: read Xing frame TOC index
  mp3dec: use named constants for Xing header flags
  libx264: add support for nal-hrd, required for Blu-ray streams.
  mov: support random access point grouping
  matroskadec: properly support BlockDuration

Conflicts:
	libavcodec/libx264.c
	libavformat/isom.h
	libavformat/matroskadec.c
	libavformat/mov.c
	libavformat/mp3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 21:46:35 +02:00
Michael Niedermayer
8c51ea5489 Merge commit 'c831ebf61629d219ebcaa9f02d262e67aad09d83'
* commit 'c831ebf61629d219ebcaa9f02d262e67aad09d83':
  matroskadec: split frame parsing
  matroskadec: split laces parsing

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 20:39:47 +02:00
Michael Niedermayer
b8044972c4 Merge commit '117d8c6d1f1c187ffc6098d9618457e00534e013'
* commit '117d8c6d1f1c187ffc6098d9618457e00534e013':
  matroska: implement support for ProRes
  matroska: implement support for ALAC

Conflicts:
	libavformat/matroskaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 19:43:38 +02:00
Michael Niedermayer
0da50055eb matroskadec: fix typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 19:12:07 +02:00
Michael Niedermayer
6902c3acb0 Merge commit '870e75524aa0d00ebcd1d15589c8d29b84af1565'
* commit '870e75524aa0d00ebcd1d15589c8d29b84af1565':
  matroskadec: validate lace_size when parsed

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 19:11:46 +02:00
Clément Bœsch
2f39d7ff3f lavfi/select: make lavc dependency optional. 2012-09-20 18:45:47 +02:00
Mans Rullgard
a27a690fac ARM: swap source operands in some add instructions
This allows using a 16-bit opcode when generating Thumb2 code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 17:07:18 +01:00
Mans Rullgard
0122118ec3 configure: update tms470 detection for latest version
v5.0 of the TI ARM compiler changes the version string.
This updates the detection to check for both the old and
the new strings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 14:56:56 +01:00
Janne Grunau
6746cd7f61 lavf probe: prevent codec probe with no data at all seen
This occurs with fuzzed mpeg-ts files. set_codec_from_probe_data() is
called with a zeroed AVProbeData since no packet made through for
specific stream.
2012-09-20 14:50:06 +02:00
Michael Niedermayer
a16c512374 Merge commit 'c9a39cec70603f662f4c326b21b11c4f0112079a'
* commit 'c9a39cec70603f662f4c326b21b11c4f0112079a':
  matroskadec: return meaningful errors in matroska_decode_buffer
  matroskadec: fix incorrect unsigned->signed conversion

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 13:40:47 +02:00
Michael Niedermayer
1df2e3c707 Merge commit '8d4dd55c37b14ecea596f3477b35bf6c20688d8b'
* commit '8d4dd55c37b14ecea596f3477b35bf6c20688d8b':
  matroskadec: refactor matroska_decode_buffer

Conflicts:
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 13:32:43 +02:00
jamal
33f92a3ea2 configure: fix git domain check with out of tree build
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 12:54:09 +02:00
Michael Niedermayer
db0087dc1d mxfdec: fix index_tables check in mxf_read_seek()
Approved-by: Tjoppen
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 12:54:00 +02:00
Stefano Sabatini
5bd6a4800d tests: add fate-ffprobe test 2012-09-20 12:13:18 +02:00
Stefano Sabatini
53d71335cb lavd/lavfi: push frames until the last sink is EOF
Previously the device was returning EOF when the first sink was ending,
with the current change the device will continue to return frames until
all the sinks are EOF, which seems the most expected behavior.
2012-09-20 12:13:17 +02:00
Stefano Sabatini
98f753ec51 lavfi/testsrc: increase precision of the duration parameter
Compute duration in microseconds, rather than in timebase units. Decrease
approximation errors.
2012-09-20 12:13:17 +02:00
Mans Rullgard
a34a609fc1 motion_est: fix use of inline on extern functions
Inline functions declared without extern do not provide an external
definition in standard C99.  This code only works because most
compilers do not implement the inline semantics correctly.  With a
stricter compiler, linking fails with unresolved references to these
functions.

Declaring the functions extern inline works correctly with some
compilers while some others still fail to create external definitions.

For maximum portability, create a static inline version with an
externally visible wrapper for ff_get_mb_score.  ff_epzs_motion_search
is so large that no sane compiler inlines it anyway, so there the
inline keyword can simply be dropped with no effect.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 10:56:30 +01:00
Michael Niedermayer
16e52c86ba error_resilience: guess_dc: check malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 05:38:53 +02:00
Michael Niedermayer
d2981b8ef1 h263dec: disable coded dimensions = 0 handling
This code causes infinite loops

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 04:38:46 +02:00
Michael Niedermayer
61ced71d79 Merge commit '581281e242609a222233a2e5538b89dfb88fb18e'
* commit '581281e242609a222233a2e5538b89dfb88fb18e':
  matroskadec: check realloc in lzo encoding
  matroska: honor error_recognition on unknown doctypes
  tiffdec: Add support for GRAY16LE.
  tiffenc: Add support for little endian RGB48 and GRAY16
  mpeg4: support frame parameter changes with frame-mt
  mpegvideo: check ff_find_unused_picture() return value for errors
  mpegvideo: release frame buffers before freeing them
  configure: msvc: default to 'lib' as 'ar' tool
  build: support some non-standard ar variants

Conflicts:
	libavcodec/h263dec.c
	libavcodec/mpegvideo.c
	libavcodec/tiff.c
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 03:20:29 +02:00
Matthieu Bouron
d57ca5e5a8 mxfenc: support 23.976 and 24 frame rates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 02:40:18 +02:00
Matthieu Bouron
906a263813 mxfenc: factorize samples per frame code
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 02:40:10 +02:00
Michael Niedermayer
d1974e05d1 j2k: fix "static is not at beginning of declaration" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 02:13:52 +02:00
Michael Niedermayer
161c6d1682 configure: Detect old git domain and inform the user about it.
Based on code by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-20 00:53:56 +02:00
Michael Niedermayer
168bc5f2c5 mov: fix 32/64 format type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 23:36:35 +02:00
Michael Niedermayer
36c2694d83 dcadec: fix "set but not used" variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 23:29:37 +02:00
Michael Niedermayer
c1f3a4d1e3 libavfilter/filtfmts: fix argv/argc checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 22:43:03 +02:00
Michael Niedermayer
f5326dc68e bavfilter/filtfmts: fix type for channel layouts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 22:19:06 +02:00
Michael Niedermayer
270a325f0c av_des_init: suppress warning about unused parameter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 21:57:58 +02:00
Anton Khirnov
50d1f4437b mp3dec: read Xing frame TOC index 2012-09-19 20:59:45 +02:00
Anton Khirnov
2d1a1a7f62 mp3dec: use named constants for Xing header flags 2012-09-19 20:59:44 +02:00
John Van Sickle
9bf41210a9 libx264: add support for nal-hrd, required for Blu-ray streams.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-19 20:59:24 +02:00
Yusuke Nakamura
d17d0ec8c2 mov: support random access point grouping
Frames described by this grouping are the starter of a closed or
an open GOP.
This is useful for open GOP of H.264 stream which is not described
by sync sample atom.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-19 20:34:15 +02:00
Luca Barbato
c831ebf616 matroskadec: split frame parsing 2012-09-19 20:34:14 +02:00
Luca Barbato
117d8c6d1f matroska: implement support for ProRes
Support Matroska native formatting.

On demuxing prepend a Frame container atom (32bit big endian encoded
frame size and 'icpf' string).
On muxing remove it.
2012-09-19 20:34:14 +02:00
Luca Barbato
870e75524a matroskadec: validate lace_size when parsed
Stricter validation, explicitly exit on misparsing and some error
forwarding from the ebml parsing functions used.
2012-09-19 20:34:14 +02:00
Luca Barbato
c9a39cec70 matroskadec: return meaningful errors in matroska_decode_buffer 2012-09-19 20:34:14 +02:00
Luca Barbato
8d4dd55c37 matroskadec: refactor matroska_decode_buffer
Make MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP behave like
the other encodings and spare few lines of boilerplate code.
2012-09-19 20:34:14 +02:00
Luca Barbato
7d8431004a matroskadec: properly support BlockDuration 2012-09-19 20:34:14 +02:00
Luca Barbato
2d0e7713f9 matroskadec: split laces parsing 2012-09-19 20:34:14 +02:00
Moritz Bunkus
8071dca3d5 matroska: implement support for ALAC
Support Matroska native formatting.

On demuxing reconstruct the 36-bytes QuickTime atom that the ALAC
decoder expects by prepending the "atom size", "tag" and
"tag version" fields missing from the Matroska's CodecPrivate
element.

On muxing remove the initial 12 bytes

Sample files are available:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska.mka
and the CoreAudio file it was created from with today's mkvmerge:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska-source.caf

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-19 20:34:14 +02:00
Dale Curtis
df1d84121b matroskadec: fix incorrect unsigned->signed conversion 2012-09-19 20:34:14 +02:00
Luca Barbato
581281e242 matroskadec: check realloc in lzo encoding
Make all the compression encodings behave the same way.
2012-09-19 20:34:13 +02:00
Luca Barbato
cd4739c4f2 matroska: honor error_recognition on unknown doctypes 2012-09-19 20:34:13 +02:00
Alex Converse
df6c3f9fb3 tiffdec: Add support for GRAY16LE.
Tested with the GraphicsMagick TIFF archive and Libav generated files.
2012-09-19 11:05:36 -07:00
Alex Converse
298ed797e1 tiffenc: Add support for little endian RGB48 and GRAY16 2012-09-19 11:05:36 -07:00
Janne Grunau
8701f4f8e8 mpeg4: support frame parameter changes with frame-mt
Adds a flag context_reinit to MpegEncContext to relieable keep track
of frame parameter changes which require a context reinitialization.
This is required for broken inputs which change the frame size but
error out before the context can be reinitialized.
2012-09-19 19:58:15 +02:00
Janne Grunau
01fc5d6609 mpegvideo: check ff_find_unused_picture() return value for errors 2012-09-19 19:58:15 +02:00
Janne Grunau
32c7589bb7 mpegvideo: release frame buffers before freeing them
Fixes triggering an assert in avcodec_default_release_buffer()
introduced in 1b3439b30.
2012-09-19 19:58:15 +02:00
Andrey Utkin
cb3591e697 avutil: Cast AV_NOPTS_VALUE to int64_t explicitly
Thus comparsion against int64_t value will not raise warning
(from -Wextra set) about comparsion of unsigned and signed integer

commiter added () and changed the litteral to unsigned

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 19:49:24 +02:00
Michael Niedermayer
d5fd610dab wmavoice: initialize best_hist_ptr to NULL to prevent (incorrect) warning.
As a sideeffect this makes the code more robust if a future change leaves
a path where it may be uninitialized otherwise.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 18:33:30 +02:00
Michael Niedermayer
8846115b1a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rv34: use ff_MPV_common_frame_size_change()
  mpegvideo: add reinit function for frame parameter changes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 15:30:34 +02:00
Michael Niedermayer
67d501b4f1 Merge commit '1b3439b3055b083df51d7f7838ecc6b3f708b15c'
* commit '1b3439b3055b083df51d7f7838ecc6b3f708b15c':
  mpegvideo: move frame size dependent memory management to separate functions
  configure: add --toolchain option
  configure: Make the smoothstreaming muxer enable the ismv muxer
  smoothstreaming: Export the mp4 codec tags
  mov: check for EOF in long lasting loops
  avcodec: cleanup utils.c
  binkaudio: remove unneeded GET_BITS_SAFE macro
  binkaudio: use float sample format
  binkaudio: use a different value for the coefficient scale for the DCT codec

Conflicts:
	configure
	libavcodec/mpegvideo.c
	libavcodec/utils.c
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-19 15:13:53 +02:00
Mans Rullgard
ac3a9b51f7 configure: msvc: default to 'lib' as 'ar' tool
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01:00
Mans Rullgard
3dbc777c7f build: support some non-standard ar variants
This adds support for the TI and Microsoft (lib.exe) variants of
the ar utility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01:00
Tim Nicholson
b90210e9c5 doc/filters: clarify use of graph2dot
The GRAPH_DESCRIPTION string supplied to graph2dot must include explicitly
defined inputs and outputs which are not normally part of the command line
used in a real invocation.

This clarifies that requirement, and provides an example.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-19 11:50:09 +02:00
Stefano Sabatini
f398617b19 ffprobe: fix CSV writer output
Fix regression introduced in 749ddc14fc.
2012-09-19 11:50:05 +02:00
Janne Grunau
b16d001b62 rv34: use ff_MPV_common_frame_size_change()
Specialised functionality for size changes with the advantage of
supporting frame size changes during frame-based multithreading.
2012-09-19 11:06:40 +02:00
Janne Grunau
435c0b87d2 mpegvideo: add reinit function for frame parameter changes
This is mainly required for frame parameter changes during frame based
multithreading but single threaded usage profits too from avoiding
ff_MPV_common_end()/ff_MPV_common_init() cycles.
2012-09-19 11:06:39 +02:00
Janne Grunau
1b3439b305 mpegvideo: move frame size dependent memory management to separate functions
This is a preparation for supporting frame size changes during
frame-based multithreading.
2012-09-19 11:06:31 +02:00
Bobby Bingham
d0c6ac0deb Fix segfault with -filters option
Filters now use null pointers to indicate having no input/output pads,
rather than empty lists of pads. We can't assume pad is non-null
anymore.

Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-09-18 23:27:43 -05:00
Bobby Bingham
f1b6c14297 ffserver: fix typo in log message
Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-09-18 21:11:06 -05:00
Mans Rullgard
aeeb782c2a configure: add --toolchain option
This allows creating canned shorthands for common combinations
of cc, ld etc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-18 23:43:05 +01:00
Michael Niedermayer
8d07742cb1 avidec: workaround aac with broken block align
Fixes Ticket1742

Based on patch by: Nikola Vranic <nikola.vranic@rt-rk.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 22:39:54 +02:00
Derek Buitenhuis
8e2a950b29 ffprobe: Add a few common disposition cases
This info is crucial in knowing which stream to pick in an
automated setup.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-18 16:38:47 -04:00
Clément Bœsch
b89c16e73e lavfi/select: make sure avctx is set before closing it.
This avoid a crash when the filter fails before config_input(),
typically with a syntax error in the next filter:
    select=gt(scene\,.4),select=fail
2012-09-18 18:52:57 +02:00
Carl Eugen Hoyos
9e208ce6dd Silence warning C4554 when compiling with msvc.
warning C4554: '>>' : check operator precedence for possible error; use parentheses to clarify precedence

Reviewed-by: Derek Buitenhuis
2012-09-18 18:38:16 +02:00
Michael Niedermayer
0b2ac679e2 sonic: factorize tail_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 17:37:41 +02:00
Michael Niedermayer
512beea529 sonicenc: limit quant so that golomb codes are less than 32 bits long
before they could become 33 bits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 17:33:55 +02:00
Martin Storsjö
e772f9faec configure: Make the smoothstreaming muxer enable the ismv muxer
This doesn't fix any build failure, but the smoothstreaming muxer
opens a chained ismv muxer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-18 17:59:59 +03:00
Martin Storsjö
84cc314e40 smoothstreaming: Export the mp4 codec tags
This fixes stream copy from a format that already has incompatible
codec tags set. The chained ismv muxer exports this same codec tag
list, so set it on this one as well, to allow the caller (and
lavf common code) to set them correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-18 17:59:57 +03:00
Michael Niedermayer
efac6f7472 x86/mpegaudiodec: drop likely now unneeded #if HAVE_AVX_EXTERNAL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 16:15:17 +02:00
Michael Niedermayer
c0dfc720ef mpegaudiodec: add prototypes for all functions that may need them
fixes compile failure

Found-by: kriegerod
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 16:10:09 +02:00
Michael Niedermayer
36e5c472c8 allcodecs: re-enable sonic
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 15:45:20 +02:00
Michael Niedermayer
a44cbc1cbc sonic: update to encode2() API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 15:45:07 +02:00
Luca Barbato
9888ffb1ce mov: check for EOF in long lasting loops
A quite widespread pattern in the demuxer is read a 32bit unsigned
integer and then loop till this value is reached.

Checking for EOF prevents pathological situations.
2012-09-18 15:32:52 +02:00
Luca Barbato
419ffb2390 avcodec: cleanup utils.c 2012-09-18 15:32:52 +02:00
Justin Ruggles
ee90119e9e binkaudio: remove unneeded GET_BITS_SAFE macro
Normal get_bits() already has overread protection.
2012-09-18 09:27:23 -04:00
Justin Ruggles
7bfd1766d1 binkaudio: use float sample format
Use planar for DCT codec, interleaved for RDFT codec.
2012-09-18 09:27:23 -04:00
Justin Ruggles
0801b5979b binkaudio: use a different value for the coefficient scale for the DCT codec
Eliminates the need for vector_fmul_scalar() in each frame.
2012-09-18 09:26:56 -04:00
Michael Niedermayer
4cdc337b5d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flvenc: silence bogus warning
  configure: include flags in nm variable
  alsdec: fix misplaced parentheses.
  alsdec: check return values.
  alsdec: fix number of decoded samples in first sub-block in BGMC mode.
  alsdec: Fix out of ltp_gain_values read.
  alsdec: Check that quantized parcor coeffs are within range.
  alsdec: check opt_order.

Conflicts:
	configure
	libavcodec/alsdec.c
	libavformat/flvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 15:06:43 +02:00
Michael Niedermayer
91af76099e Merge commit '23aae62c2cb4504a09ceb8cd0cabc1c8b260f521'
* commit '23aae62c2cb4504a09ceb8cd0cabc1c8b260f521':
  alsdec: Check k used for rice decoder.
  avfiltergraph: silence an uninitialized variable warning
  xsubenc: reindent
  lavc: replace AVCodecContext.encode with subtitle-specific callback
  lavc: add const to private codec class initialization.
  avconv: don't pass a bogus parameter to avfilter_graph_create_filter().
  id3v2: strdup the genre name explicitly.
  lavf/id3v2: do not export empty fields.
  buffersrc: add const to the AVFrame* argument of av_buffersrc_write_frame()
  lavfi: replace empty input/output lists with null pointers

Conflicts:
	ffmpeg_filter.c
	libavcodec/alsdec.c
	libavcodec/dvdsubenc.c
	libavcodec/utils.c
	libavcodec/v210dec.h
	libavfilter/af_channelsplit.c
	libavfilter/avfiltergraph.c
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_ass.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 14:45:44 +02:00
Bobby Bingham
4aade44c4a targaenc: Use named TGA_RLE constant instead of magic number 2012-09-18 10:45:09 +02:00
Bobby Bingham
8e59062597 Fix typo in targa encoder comment 2012-09-18 10:44:32 +02:00
Benjamin Larsson
6a08955c10 flvenc: silence bogus warning
The compiler fails to figure out that enc->codec_type can only
have 3 different values.
Thus when an if/else is encountered it triggers on the possibility
of the else case has not initialized the flags variable.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-18 10:31:04 +02:00
Bobby Bingham
6e03da7f35 doc: fix typos in filter documentation
Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-09-18 09:06:44 +02:00
Michael Niedermayer
70a9734544 dsputil: change assert(8) to av_assert2(8)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 05:27:23 +02:00
Michael Niedermayer
db436b17e9 swscale: change assert() to av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 05:19:11 +02:00
Michael Niedermayer
a1fb2b935a nsvdec: change 2 commented assert() to av_assert()
they keep showing up if i grep for non av assert()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 05:08:32 +02:00
Michael Niedermayer
66bdc58550 get_cabac_inline_x86: workaround clang bug with disabled optimizations
gcc produces binary identical output relative to before this change

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-18 00:45:29 +02:00
Mans Rullgard
2a8a860ae6 configure: include flags in nm variable
This simplifies ensuring proper flags are used when the default
is overridden by the system or on the command line.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-17 22:36:06 +01:00
Andrey Utkin
b0fabed20f When copying pkt side_data, don't forget size, type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-17 22:36:28 +02:00
Lyubomir Marinov
63951aec2b libx264: feed x264_param_apply_profile from AVCodecContext.profile in absence of other information
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-17 21:31:57 +02:00
Lyubomir Marinov
fd9cd8cd5a libx264: connect AVCodecContext.rtp_payload_size to x264_params_t.i_slice_max_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-17 21:31:57 +02:00
Reimar Döffinger
07d2d06395 Remove code that duplicates existing code a few lines down.
This also fixes a potential crash since s->pb can be NULL.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-09-17 21:17:43 +02:00
Derek Buitenhuis
5c95a93411 dirac_arith: Fix unprotected inline asm
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-17 15:00:40 -04:00
Clément Bœsch
ee0f53e966 alsdec: fix misplaced parentheses.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Thilo Borgmann
ac3f5a6879 alsdec: check return values.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Thilo Borgmann
66197988b1 alsdec: fix number of decoded samples in first sub-block in BGMC mode.
Fixes CVE-2012-2790

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Thilo Borgmann
97f0efbfb8 alsdec: Fix out of ltp_gain_values read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Michael Niedermayer
5b051ec3bd alsdec: Check that quantized parcor coeffs are within range.
ALS spec:
	11.6.3.1.1 Quantization and encoding of parcor coefficients
	...
	In all cases the resulting quantized values ak are restricted to the range [-64,63].

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Michael Niedermayer
23aae62c2c alsdec: Check k used for rice decoder.
Values that fail this check will cause failure of decode_rice()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:26 -04:00
Michael Niedermayer
9853e41aa0 alsdec: check opt_order.
Fixes out of array write in quant_cof.
Also make sure no invalid opt_order stays in the context.

Fixes CVE-2012-2775

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:26 -04:00
Anton Khirnov
e3496e5dbe avfiltergraph: silence an uninitialized variable warning
The warning is:
libavfilter/avfiltergraph.c: In function ‘avfilter_graph_config’:
libavfilter/avfiltergraph.c:528:9: warning: ‘best_idx’ may be used uninitialized in this function [-Wuninitialized]
libavfilter/avfiltergraph.c:479:13: note: ‘best_idx’ was declared here

Initialize it to an invalid value and add an assert that it's properly
set later.
2012-09-17 15:48:20 +02:00
Anton Khirnov
34ebbbfeec xsubenc: reindent 2012-09-17 15:48:20 +02:00
Anton Khirnov
466b39efaf lavc: replace AVCodecContext.encode with subtitle-specific callback
AVCodecContext.encode is currently used only for subtitles, encode2 is
used for audio and video.
2012-09-17 15:48:20 +02:00
Anton Khirnov
9f64c8219a lavc: add const to private codec class initialization.
Silences a warning about discarding const.
2012-09-17 15:48:20 +02:00
Anton Khirnov
58dee6e62d avconv: don't pass a bogus parameter to avfilter_graph_create_filter().
The buffer sink does not take any parameters.

Fixes an uninitialized variable warning.
2012-09-17 15:48:20 +02:00
Clément Bœsch
049ce4facb id3v2: strdup the genre name explicitly.
It would have been done anyway in the av_dict_set() call.

This simplifies the code and avoid a warning because of assigning a
const string from ff_id3v1_genre_str to a non-const variable.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-17 15:48:20 +02:00
Clément Bœsch
ffdd2e9144 lavf/id3v2: do not export empty fields.
This also avoids a memleak.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-17 15:48:20 +02:00
Anton Khirnov
4e48aa8656 buffersrc: add const to the AVFrame* argument of av_buffersrc_write_frame() 2012-09-17 15:48:20 +02:00
Mans Rullgard
1fce361d70 lavfi: replace empty input/output lists with null pointers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-17 14:35:06 +01:00
Michael Niedermayer
291b220377 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: flush filtered frames before reconfiguring filters
  mov: stsd entries must be at least 16 byte
  mov: detect EOF in mov_read_dref()
  file: return proper error on seek failures

Conflicts:
	libavformat/file.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-17 15:15:43 +02:00
Stefano Sabatini
1ad63ff14a fate: add av_small_strptime() test to fate-parseutils 2012-09-17 12:46:55 +02:00
Stefano Sabatini
85c93d90df lavu/parseutils: fix av_small_strptime() whitespace directive parsing
According to POSIX, strptime() should consume whitespaces in the date
string everytime a whitespace conversion specification is found in the
date format specification. Make av_small_strptime() conform with this
behavior.

In particular, should fix trac ticket #1739.
2012-09-17 12:45:56 +02:00
Janne Grunau
2f34021d57 avconv: flush filtered frames before reconfiguring filters
This prevents lost frames after a resolution change.
2012-09-17 10:49:27 +02:00
Michael Niedermayer
83438a0db3 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: dont wait 100ms if data is not yet ready

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-17 00:41:07 +02:00
Marton Balint
d8f8e911bd ffplay: dont wait 100ms if data is not yet ready
Also signal the wait if audio buffer is empty. This fixes jerky audio with
realtime sources.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-16 19:07:28 +02:00
Michael Niedermayer
a593f5bd9d arm/dca: Fix compilation of decode_blockcodes() with --enable-thumb
Fix Suggested-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-16 19:06:11 +02:00
Clément Bœsch
094991eb69 lavf/oggdec: reword stream creation error message. 2012-09-16 18:28:52 +02:00
Clément Bœsch
23f6420026 lavf/oggdec: reindent and comment blocks. 2012-09-16 18:28:51 +02:00
Clément Bœsch
a218c5ebd2 lavf/oggdec: make stream replacement less convoluted.
Also re-use the allocated buffer instead of re-allocating a new one.
2012-09-16 18:28:15 +02:00
Clément Bœsch
e18ea76523 lavf/oggdec: more explicit zeroing of the new ogg stream. 2012-09-16 18:28:14 +02:00
Clément Bœsch
3a89553347 lavf/oggdec: rework allocations in ogg_new_streams(). 2012-09-16 18:27:58 +02:00
Michael Niedermayer
a5ea623b36 mov: stsd entries must be at least 16 byte
Fix near infinite loop in stsd parsing.
Bug found by: Diana Elena Muscalu

The size is unsigned according the specification.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-16 16:53:06 +02:00
Clément Bœsch
edca80387c lavf/oggdec: simplify destroying streams with chained audio streams.
nstreams is assumed to be 1 at that point, so the loop is pointless.
2012-09-16 16:52:06 +02:00
Clément Bœsch
277ddf127d lavf/oggdec: rename str to sid.
"str" is misleading here (it's often used for string). "sid" makes more
sense to identify a stream id.
2012-09-16 16:52:06 +02:00
Clément Bœsch
e1ca1dd71b lavf/oggdec: remove a comment not matching anything. 2012-09-16 16:52:06 +02:00
Clément Bœsch
bf8bfc6a11 lavf/oggdec: inline ogg_get_headers().
There is no point in a distant definition of a small function like this
used only once.

Additional spacing to distinguish better the block.
2012-09-16 16:52:06 +02:00
Carl Eugen Hoyos
6fa2532dd3 vda_h264.c: Change header inclusion order.
Fixes compilation with XCode 3.2.6.
Fixes ticket #1736.
2012-09-16 16:43:27 +02:00
Carl Eugen Hoyos
52ef5ca9bb Mentioning 8bps once in the FFmpeg documentation is sufficient. 2012-09-16 16:31:33 +02:00
Michael Niedermayer
9db67bedf0 mov: detect EOF in mov_read_dref()
Avoid a near infinite loop.
Issue discovered by cosminamironesei.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-16 16:31:03 +02:00
Luca Barbato
4ed5ac50d3 file: return proper error on seek failures 2012-09-16 15:37:14 +02:00
Michael Niedermayer
e80cbdbc57 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: drop unnecessary arguments to hpel_motion()
  mpegvideo: drop 'inline' from some functions
  nellymoserdec: drop support for s16 output.
  bmpdec: only initialize palette for pal8.
  build: Properly remove object files while cleaning
  flacdsp: arm optimised lpc filter
  compat/vsnprintf: return number of bytes required on truncation.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-16 14:55:00 +02:00
Michael Niedermayer
744e4429cf mp3enc: merge mp2/mp3_write_trailer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-16 14:37:50 +02:00
Michael Niedermayer
197bbcf44c mp3enc: move mp3_update_xing() down
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-16 14:31:58 +02:00
Michael Niedermayer
f276a490f0 Merge commit '3f7fd59d151a2773f0e2e93e56b6b13ec6e5334b'
* commit '3f7fd59d151a2773f0e2e93e56b6b13ec6e5334b':
  avformat: fix typo in avformat_close_input
  mp3enc: write Xing TOC
  mp3enc: support MPEG-2 and MPEG-2.5 in Xing header.
  mp3enc: downgrade some errors in writing Xing frame to warnings
  lavf: flush the output AVIOContext in av_write_trailer().
  lavf: cosmetics, reformat av_write_trailer().
  avio: flush the internal buffer in avio_close()
  Enhance doc on asyncts audiofilter
  cmdutils: avoid setting data pointers to invalid values in alloc_buffer()
  libavcodec: remove av_destruct_packet_nofree()

Conflicts:
	libavcodec/avpacket.c
	libavformat/mp3enc.c
	libavformat/nutenc.c
	libavformat/utils.c
	libavformat/version.h
	tests/ref/lavf/voc
	tests/ref/lavf/voc_s16

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-16 14:24:11 +02:00
Mans Rullgard
2568646abb mpegvideo: drop unnecessary arguments to hpel_motion()
These arguments are either constants or copies of MpegEncContext
fields just as easily accessed within the function.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-16 11:18:21 +01:00
Mans Rullgard
66f5a6b419 mpegvideo: drop 'inline' from some functions
These functions do not benefit from being inlined.  They are large,
and there are no opportunities for constant propagation.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-16 11:18:21 +01:00
Anton Khirnov
66f52d0c3d nellymoserdec: drop support for s16 output.
It internally decodes as float and then converts to s16 by a call to
float_to_int16(). The caller can do this just as well by using lavr.
2012-09-16 09:44:26 +02:00
Anton Khirnov
8b78c2969a bmpdec: only initialize palette for pal8.
Gray8 is not considered to be paletted, so this would cause an invalid
write.

Fixes bug 367.

CC: libav-stable@libav.org
2012-09-16 09:43:17 +02:00
Clément Bœsch
d214e5cfb4 lavc/ass_split: add ff_ prefix to ass_style_get(). 2012-09-16 03:05:01 +02:00
Clément Bœsch
74434d3bfe lavfi/ass: mark ass_libavfilter_log_level_map as static const. 2012-09-16 02:59:43 +02:00
Clément Bœsch
ca81e3b6e7 lavf/mkv: prefix video stereo arrays with ff_. 2012-09-16 02:58:40 +02:00
Clément Bœsch
8b05220727 lavu/error: make error_entries static const. 2012-09-16 02:53:32 +02:00
Hendrik Leppkes
e3a1eb9edf af_pan: Fix sscanf formats to work with buggy sscanf implementations
Some implementations of sscanf do not handle a space before a trailing %n
properly.

As an example, MSVC's does this for the second insatnce in this patch, for
an input of "0x3:c0=c1:c1=c0":
    1) Match the final "c0" or "c1".
    2) Realize it's at the end of the string.
    3) Check for %n.
    4) There is no %n, but a space instead.
    5) Leave 'len' unitilialized.

So, move it out of the sscanf format strings, and call skip_spaces instead.

This bug does not affect skip_spaces since %n is the first and only formatting
string.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 19:49:34 -04:00
Derek Buitenhuis
d512e74dec bprint: Remove custom vsnprintf
A proper implementation was introduced in
ba53720280 for MSVC, and
MinGW already has vsnprintf.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 19:47:10 -04:00
Ronald S. Bultje
663c21d4ac compat/vsnprintf: return number of bytes required on truncation.
This conforms to C99, but requires Windows >= XP.
2012-09-15 19:46:54 -04:00
Derek Buitenhuis
e1b4496040 msvc: Add a va_copy compatability macro for msvc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 19:46:48 -04:00
Derek Buitenhuis
31fbdecce8 msvc: Disable stripping
MSVC-built binaries should not be stripped.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 19:44:54 -04:00
Mans Rullgard
1c9d54b468 build: Properly remove object files while cleaning
Previously, object files in, for example, compat/ were left
after a clean or distclean was run.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 19:44:05 -04:00
Mans Rullgard
7689eea49a flacdsp: arm optimised lpc filter 2012-09-15 23:54:21 +01:00
Alexander Strasser
49f3b331c7 lavf/segment: Use distinct IDs for list type ext & csv
Remove a bogus warning when using segment_list_type csv.

The LIST_TYPE_EXT constant is only used internally, so it can
be removed when the feature (segment_list_type ext) gets removed.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-15 22:58:12 +02:00
Alexander Strasser
3245be95ac lavf/segment: Rename variable in print_csv_escaped_str()
Rename a local variable to make the code more self-explanatory.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-15 22:58:11 +02:00
Alexander Strasser
bac1b31bf6 lavf/segment: Simplify CSV field quoting code
Should also be faster (though I doubt that hardly ever matters
for the usage here).

Also remove the pointer copy. Since we do not need to reset the
pointer to the start of the string, it is not needed anymore.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-15 22:55:21 +02:00
Andrey Utkin
aefed6ca87 udp: pick params from AVOptions also
This updated version does not deviate from previous behavior on default value of 'buffer_size'

I skipped porting 'sources', 'block' options for now as they're parsed seriously. So i added TODO remarks.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 22:13:21 +02:00
Michael Niedermayer
0da0b5e0f8 pngdec: av_log() zlib errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 22:13:21 +02:00
Derek Buitenhuis
5a627c14b5 Remove mt-work directory
It is all dead and rotting code.

Also, move yuvcmp.c to tools. Its license is non-existent, however,
and should be clarified.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 15:40:36 -04:00
Ronald S. Bultje
c1c8fdab46 compat/vsnprintf: return number of bytes required on truncation.
This conforms to C99, but requires Windows >= XP.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-15 14:33:11 -04:00
Ben Jackson
374c17c8fc lavc/vp56: Re-indent functions affected by threading refactor
All whitespace plus a curly brace.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 20:26:52 +02:00
Ben Jackson
39a3894ad5 lavc/vp6: Implement "slice" threading for VP6A decode
The YUV channels of VP6 are encoded in a highly linear fashion which does
not have any slice-like concept to thread.  The alpha channel of VP6A is
fairly independent of the YUV and comprises 40% of the work.  This patch
uses the THREAD_SLICE capability to split the YUV and A decodes into
separate threads.

Two bugs are fixed by splitting YUV and alpha state:
- qscale_table from VP6A decode was for alpha channel instead of YUV
- alpha channel filtering settings were overwritten by YUV header parse

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 20:26:47 +02:00
Ben Jackson
1c20fcf0b0 lavc/vp56: Simplify get/release_buffer code
Rather than cleverly managing frame pointers with swaps to avoid
re-using "golden" frames, just do brute-force management of the
4 AVFrames.  New strategy is probably no more costly and is easier
to adapt to threaded usage.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 20:26:40 +02:00
Ben Jackson
eebc11ebc8 lavc/vp56: Move golden_frame into VP56Context
Makes golden_frame more like other frame data, paves way for threading
alpha channel decode.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 20:26:35 +02:00
Ben Jackson
6e86d6af6b lavc/vp6: Refactor vp6_decode_init into vp6_decode_init/vp6_decode_init_context
Pave the way for per-thread context initialization.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 20:26:29 +02:00
Ben Jackson
23503cadd1 lavc/vp56: Refactor ff_vp56_init into ff_vp56_init/ff_vp56_init_context
Pave the way for per-thread context initialization.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 20:26:22 +02:00
Luca Barbato
3f7fd59d15 avformat: fix typo in avformat_close_input
The condition should not be &&.
2012-09-15 20:23:39 +02:00
Anton Khirnov
7040c9fac2 mp3enc: write Xing TOC
Based on the code by:
Peter Belkner <pbelkner@snafu.de>,
Michael Niedermayer <michaelni@gmx.at>,
Clément Bœsch <clement.boesch@smartjog.com>,
Reimar Döffinger <Reimar.Doeffinger@gmx.de>, and
Tobias Rapp <t.rapp@noa-audio.com>
Alex Converse <alex.converse@gmail.com>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-15 18:25:34 +02:00
Clément Bœsch
ca8e39dd0d mp3enc: support MPEG-2 and MPEG-2.5 in Xing header. 2012-09-15 18:25:22 +02:00
Reimar Döffinger
6365e4db79 mp3enc: downgrade some errors in writing Xing frame to warnings
Also clarify the meaning of the log message.
2012-09-15 18:25:15 +02:00
Anton Khirnov
3b4bb19e63 lavf: flush the output AVIOContext in av_write_trailer().
This is consistent with stdio and is what we want to do in all cases.

Fixes a bug in the voc muxer which didn't flush in write_trailer()
previously. This is the cause of the change in the test results.
2012-09-15 18:25:07 +02:00
Anton Khirnov
0c270239c2 lavf: cosmetics, reformat av_write_trailer(). 2012-09-15 18:24:59 +02:00
Stefano Sabatini
5d1203f063 avio: flush the internal buffer in avio_close()
This is consistent with stdio, and thus what people would naturally
expect.
2012-09-15 18:24:49 +02:00
Michael Niedermayer
47277c4153 x86/v210: fix xmm clobbers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 16:26:00 +02:00
Andrey Utkin
aa7c88df50 Document tcp proto 'timeout' parameter behavior
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 16:26:00 +02:00
Nicolas George
a9e4817716 ffmpeg: use PTS from the AVSubtitle structure for sub2video. 2012-09-15 16:14:33 +02:00
Nicolas George
2939e258f9 ffplay: use PTS from the AVSubtitle structure. 2012-09-15 16:14:33 +02:00
Nicolas George
6d8b32633e ffmpeg: use PTS from the AVSubtitle structure. 2012-09-15 16:14:33 +02:00
Nicolas George
37bbc9eb8b lavc/pgssubdec: use the PTS from the presentation segment.
According to the sample for trac ticket #1722, PGS subtitles
are decoded from several packets at the same DTS and varying PTS.
The PTS from the presentation segment seem to be the valid one;
in particular, clear subtitles are too early with the other PTS.
2012-09-15 16:14:33 +02:00
Nicolas George
9dd8272431 lavc: set AVSubtitle.pts if possible.
If the packet has a PTS and the corresponding time base is known,
set the pts field of the decoded subtitle structure before the
call to the decoder. The decoder is still allowed to change the
PTS if necessary.
2012-09-15 15:58:42 +02:00
Nicolas George
1b9a251438 ffmpeg: call sub2video_update for end packets.
Without that change, all subtitles will stay until the next one.
2012-09-15 15:58:42 +02:00
Andrey Utkin
0443879089 Enhance doc on asyncts audiofilter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-15 14:59:29 +02:00
Anton Khirnov
990450c5bf cmdutils: avoid setting data pointers to invalid values in alloc_buffer()
Fixes bug 352.
2012-09-15 14:59:29 +02:00
Mans Rullgard
cb6632809d libavcodec: remove av_destruct_packet_nofree()
This function was deprecated two major versions ago (2009).

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-15 13:50:35 +01:00
Michael Niedermayer
f1ca40ee00 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  riff: Add SVQ3 fourcc
  fate: ac3: add 4.0 and downmix tests
  configure: x86: improve ebp availability check
  vorbisdec: ensure FASTDIV denominator is never 1
  avformat: refactor avformat_close_input
  avformat: simplify avformat_close_input

Conflicts:
	configure
	libavcodec/vorbisdec.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 10:35:26 +02:00
Michael Niedermayer
ab94d1be7a bintext: mark hscroll() as unused
This fixes a warning about a unused function
Alternatively the function could be removed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 04:06:32 +02:00
Akihiro Tsukada
c3c646a868 aacdec: add support for dual mono in Japanese DTV
Japanese DTV uses some non standard extensions in AAC audio.
One example is 'dual mono', which combines two independent
audio into one stereo stream, storing them in left and right channels
respectively.  Historically, dual mono audio has been used for
multi-lingual audio, one for local/native language, and another for english,
and usually the "main" (local language) channel should be output without
any user interactions.

The frames of those dual mono audio are allowed to set
ADTS channel_config field to 0, and just contain two SCE's *WITHOUT* PCE,
which is a non standard extension by Japanese DTV standard.
(ref. ARIB STD-B32 PartII 5.2.3)

This patch adds an AVPacket side data, AV_PKT_DATA_JP_DUALMONO,
which indicates that the AVPacket is likely to contain an audio frame
with the above dual mono extension, and has the parameter to specify
the desired channel selection in that case.
It also makes aacdec to detect dual mono and output just the desired
channel when this side data is attached.

Signed-off-by: Akihiro Tsukada <atsukada@users.sourceforge.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-15 03:50:04 +02:00
Jérémy Tran
75d34864d1 lavfi/hue: add dynamic expression evaluation support
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-15 01:05:27 +02:00
Stefano Sabatini
8bdba0b3e9 tools: move raw-test program to tools, with the name fourcc2pixfmt 2012-09-14 23:04:38 +02:00
Derek Buitenhuis
1c56cdad33 riff: Add SVQ3 fourcc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-14 14:12:52 -04:00
Derek Buitenhuis
fef412a24d riff: Add SVQ3 fourcc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 19:48:45 +02:00
Michael Niedermayer
e2d643efcd lavf/compute_pkt_fields: only run pts by duration correction if reference ts is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 19:47:41 +02:00
Mans Rullgard
07e87858d4 fate: ac3: add 4.0 and downmix tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-14 15:26:05 +01:00
Mans Rullgard
692dd8ed26 configure: x86: improve ebp availability check
Some compilers are extra strict about register usage in main(),
disallowing ebp in inline asm there while allowing it elsewhere.
This change makes the test better reflect actual usage.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-14 15:26:05 +01:00
Luca Barbato
714508bcb9 vorbisdec: ensure FASTDIV denominator is never 1
In both usages of FASTDIV the denominator might be 1.

Using a branch could make the function slower than using a normal
division.

Both denominator and numerator can be multiplied by 2 safely and
using shifts is faster than using a branch.
2012-09-14 14:26:27 +02:00
Luca Barbato
44272c1ccc avformat: refactor avformat_close_input
Do not crash if the input format is not allocated yet.
2012-09-14 14:26:27 +02:00
Luca Barbato
4d1f443c3d avformat: simplify avformat_close_input
avio_close checks by itself for NULL condition.
2012-09-14 14:26:27 +02:00
Michael Niedermayer
509f502902 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: Move Xvid IDCT put/add functions to a more suitable place
  trasher: Include all the necessary headers
  x86: Remove some leftover declarations for non-existent functions
  ARM: libavresample: NEON optimised generic fltp to s16 conversion
  ARM: libavresample: NEON optimised stereo fltp to s16 conversion
  ARM: libavresample: NEON optimised flat float to s16 conversion

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 14:13:38 +02:00
Stefano Sabatini
363307813e tools/graphdot: unbreak syntax
Fix regression introduced in f054dbee6c.
+10.23l.
2012-09-14 11:29:25 +02:00
Stefano Sabatini
dead4580e2 lavfi/avcodec: apply cosmetics style fixes 2012-09-14 11:06:40 +02:00
Stefano Sabatini
8d0e871f25 ffprobe: kill initializers with nested union field definition
The c99-to-c89 converter (for MSVC support) doesn't currently handle
designated initializers or compound literals with nested unions or
structs.

This is apparently the only place where this construct is used in the
FFmpeg codebase.
2012-09-14 10:47:08 +02:00
Stefano Sabatini
5e99a23b2d ffprobe: avoid potentially lossy long long int -> double cast in value_string()
Previously the cast long long int -> double was always performed (and
then the double was converted back to long long int) even when it was
avoidable.
2012-09-14 10:42:54 +02:00
Ben Jackson
e3329474a3 pthread: Avoid crashes/odd behavior caused by spurious wakeups
pthread_wait_cond can wake up for no reason (Wikipedia: Spurious_wakeup).
The FF_THREAD_SLICE thread mechanism could spontaneously execute jobs or
allow the caller of avctx->execute to return before all jobs were complete.
This adds tests to both cases to ensure the wakeup is real.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 06:36:55 +02:00
Michael Niedermayer
93b240f4a5 mpegaudio_parser: reset state to prevent it to be random
Fixes Ticket1718

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 05:55:11 +02:00
Michael Niedermayer
570931d411 aacpsy: psy_3gpp_analyze_channel() handle energy == 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 03:27:25 +02:00
Michael Niedermayer
413b32f808 aacpsy: calc_reduction_3gpp() handle active_lines = 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 03:26:19 +02:00
Michael Niedermayer
062091f87f compute_pkt_fields2: dont interpret max_b_frames of <0 as there being b frames.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-14 02:30:00 +02:00
Diego Biurrun
58139e141b x86: dsputil: Move Xvid IDCT put/add functions to a more suitable place 2012-09-14 01:59:47 +02:00
Michael Niedermayer
c21f81999a mpegaudioenc: replace pow(2,.. by exp2(
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 22:44:42 +02:00
Stefano Sabatini
51fa653829 examples/decoding_encoding: clarify operations in the usage message 2012-09-13 22:19:45 +02:00
Martin Storsjö
18d8825517 trasher: Include all the necessary headers
The missing headers are required for errno and for strerror.
This fixes building of this tool on mingw32ce.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-13 23:12:54 +03:00
Diego Biurrun
2017f0fdb7 x86: Remove some leftover declarations for non-existent functions 2012-09-13 21:38:47 +02:00
Stefano Sabatini
bcf93f78a5 examples/decoding_encoding: replace "picture" with "frame" in encode_example()
The use of "picture" in place of "frame" is confusing.
2012-09-13 20:49:59 +02:00
Stefano Sabatini
70b671a283 examples/decoding_encoding: apply various message log fixes 2012-09-13 20:49:59 +02:00
Mans Rullgard
8ff7857861 ARM: libavresample: NEON optimised generic fltp to s16 conversion
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-13 19:15:43 +01:00
Mans Rullgard
d26de339af ARM: libavresample: NEON optimised stereo fltp to s16 conversion
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-13 19:15:43 +01:00
Mans Rullgard
643b5b794f ARM: libavresample: NEON optimised flat float to s16 conversion
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-13 19:15:42 +01:00
Nicolas George
8ad54a44eb lavfi: check that buffer and link properties match. 2012-09-13 20:09:53 +02:00
Nicolas George
c262ddb8c5 lavfi: set sample_rate in the default allocator. 2012-09-13 20:09:53 +02:00
Michael Niedermayer
9d89d1d484 swr/resample: mark mm_flags as potentially unused
They are unused when asm is disabled

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 19:31:02 +02:00
Michael Niedermayer
bd3977267e x86_cpu.h: newline at the end to shutup some warnings in opencc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 19:31:02 +02:00
Derek Buitenhuis
59db014b5b Revert "lavc/libx264: remap X264_LOG_INFO loglevel from AV_LOG_INFO to VERBOSE"
You should not need to enable verbose logging and all the output that comes
with it in order to get things like the obtained bitrate from a first
pass encode. Many things parse this output.

Also, since it is marked as info in libx264, it should be marked as
info in libavcodec as well.

This reverts commit 911519caec.
2012-09-13 10:57:50 -04:00
Michael Niedermayer
75f3e0ad95 mpegvideo: skip ff_print_debug_info() for VDPAU
Based on code by: MEANX / gruntster (Avidemux Rev 7990 — 2012-05-30 13:02:27)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 16:22:42 +02:00
Michael Niedermayer
bc3d5173cc libavformat.v: export ffurl_protocol_next
This is used by avidemux, and is likely usefull to others too.

Patch by: gruntster (Avidemux Rev 7990 — 2012-05-30 13:02:27)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 16:21:25 +02:00
Michael Niedermayer
0ed0f2e566 sws: revert: "swscale: Remove two bogus asserts"
Also change them to av_assert

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 15:53:05 +02:00
Michael Niedermayer
e3e09f2bad Merge remote-tracking branch 'qatar/master'
* qatar/master:
  os_support: Choose between direct.h and io.h using a configure check
  os_support: Include io.h instead of direct.h on mingw32ce
  x86: ac3dsp: Only refer to the ac3_downmix_sse symbol if it has been declared
  swscale: Remove two bogus asserts
  ac3: move ac3_downmix() from dsputil to ac3dsp
  lavr/audio_mix_matrix: acknowledge the existence of LFE2.
  mlp_parser: avoid mapping multiple disctinct TrueHD channels to the same Libav channel.
  lavu/audioconvert: add a second low frequency channel.

Conflicts:
	doc/APIchanges
	libavcodec/ac3dsp.c
	libavcodec/ac3dsp.h
	libavcodec/mlp_parser.c
	libavutil/audioconvert.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 15:35:50 +02:00
Michael Niedermayer
c942e8b1d7 Merge commit '07584eaf4a95db3f11d3bc411f9786932829e82b'
* commit '07584eaf4a95db3f11d3bc411f9786932829e82b':
  mpegts: check substreams before discarding
  Add a smooth streaming segmenter muxer
  file: Add an avoption for disabling truncating existing files on open
  img2dec: always close AVIOContexts
  rtpdec_jpeg: Error out on other unsupported type values as well
  rtpdec_jpeg: Disallow using the reserved q values
  rtpdec_jpeg: Fold the default qtables case into an existing if statement
  rtpdec_jpeg: Store and reuse old qtables for q values 128-254
  rtpdec_jpeg: Simplify the calculation of the number of qtables
  rtpdec_jpeg: Add more comments about the fields in the SOF0 section
  rtpdec_jpeg: Clarify where the subsampling magic numbers come from
  rtpdec_jpeg: Don't use a bitstream writer for the EOI marker
  rtpdec_jpeg: Don't needlessly use a bitstream writer for the header
  rtpdec_jpeg: Simplify writing of the jpeg header
  rtpdec_jpeg: Merge two if statements
  rtpdec_jpeg: Write the DHT section properly

Conflicts:
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-13 15:22:16 +02:00
Martin Storsjö
ca6b544ac9 os_support: Choose between direct.h and io.h using a configure check
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-13 14:56:54 +03:00
Martin Storsjö
7b07fab567 os_support: Include io.h instead of direct.h on mingw32ce
Windows CE doesn't have neither mkdir nor _mkdir officially (only
CreateDirectoryW), but mingw32ce has compat wrappers with these names
(declared in io.h since direct.h is unavailable).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-13 13:52:50 +03:00
Martin Storsjö
91ff4e83ca x86: ac3dsp: Only refer to the ac3_downmix_sse symbol if it has been declared
This fixes building without inline assembly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-13 13:51:52 +03:00
Diego Biurrun
b9141aa346 swscale: Remove two bogus asserts 2012-09-13 12:13:28 +02:00
Nicolas George
b5bea2f960 lavfi/aresample: set buffer properties after copy.
The aresample filter changes the format, layout and/or sample rate,
it can not copy them blindly from its input.

Related to trac ticket #1671.
2012-09-13 12:05:19 +02:00
Mans Rullgard
97cb9236cf ac3: move ac3_downmix() from dsputil to ac3dsp
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-12 23:39:50 +01:00
Tim Walker
b901c30da6 lavr/audio_mix_matrix: acknowledge the existence of LFE2.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-12 18:26:53 -04:00
Tim Walker
3844572887 mlp_parser: avoid mapping multiple disctinct TrueHD channels to the same Libav channel.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-12 18:26:53 -04:00
Tim Walker
8919fee7d2 lavu/audioconvert: add a second low frequency channel.
Can be used by DTS-HD, TrueHD and E-AC-3, among others.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-12 18:26:53 -04:00
Christian Schmidt
07584eaf4a mpegts: check substreams before discarding
Allow to extract the AC3 core from TrueHD with the "copy" codec.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-12 23:43:53 +02:00
Martin Storsjö
62c9ae11a7 Add a smooth streaming segmenter muxer
This muxer splits the output from the ismv muxer into individual
files, in realtime.

The same can also be done by the standalone tool ismindex, but this
muxer is needed for doing it in realtime (especially for live
streams that need extra handling for updating the lookahead fields
in the fragment headers).

Using this muxer, one can deliver live smooth streaming from a
normal static file web server. (Using ismindex, one can deliver
premade smooth streaming files from a static file web server,
or prepare files for serving with IIS.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 23:42:16 +03:00
Martin Storsjö
29a9b12b10 file: Add an avoption for disabling truncating existing files on open
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 23:42:09 +03:00
Michael Niedermayer
ddabecbbf5 vc1dec: export adv profile color format indication
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-12 21:12:18 +02:00
Michael Niedermayer
2de8877689 asfdec: invert SAR
It appears this was wrong

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-12 20:35:09 +02:00
Michael Niedermayer
ddc9bc7721 configure: try to support clang on netbsd
The headers on netbsd are not fully C99 compatible which leads to multiple
definitions of symbols in clang bit not with gcc.
AFAIK this has been fixed in netbsd trunk (didnt check though)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-12 19:37:29 +02:00
Tomas Härdin
5e3572893d img2dec: always close AVIOContexts
Zero sized files would cause the contexts to leak away.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-12 14:31:09 +02:00
Carl Eugen Hoyos
8e082df0f4 Support decoding of monochrome tiff images without bpp tag. 2012-09-12 13:33:57 +02:00
Carl Eugen Hoyos
7680d99b43 Fix muxing mjpeg in swf. 2012-09-12 13:08:27 +02:00
Michael Niedermayer
ac0f1ae64b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  utvideoenc: Add missing AV_ prefix to codec ID
  avserver: Add missing #include for av_gettime()
  configure: Only disable aligned stack on MSVC on 32 bit
  configure: indentation cosmetics

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-12 11:46:47 +02:00
Martin Storsjö
c3bcd22ed3 rtpdec_jpeg: Error out on other unsupported type values as well
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:10:56 +03:00
Martin Storsjö
1743938df1 rtpdec_jpeg: Disallow using the reserved q values
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:10:45 +03:00
Martin Storsjö
1de9317bd0 rtpdec_jpeg: Fold the default qtables case into an existing if statement
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:10:32 +03:00
Martin Storsjö
a218deb856 rtpdec_jpeg: Store and reuse old qtables for q values 128-254
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:10:05 +03:00
Martin Storsjö
a252649059 rtpdec_jpeg: Simplify the calculation of the number of qtables
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:09:57 +03:00
Martin Storsjö
cbaa9eeda3 rtpdec_jpeg: Add more comments about the fields in the SOF0 section
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:09:30 +03:00
Martin Storsjö
31adff08a1 rtpdec_jpeg: Clarify where the subsampling magic numbers come from
Write out the numbers the way they are constructed, not just the
final values.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:09:21 +03:00
Martin Storsjö
c64d2a63df rtpdec_jpeg: Don't use a bitstream writer for the EOI marker
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:09:02 +03:00
Martin Storsjö
20f325f320 rtpdec_jpeg: Don't needlessly use a bitstream writer for the header
Everything written with this bitstream writer is 8/16 bit units
(except for a pair of 4 bit values), so using a bitstream writer
isn't necessary.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:08:33 +03:00
Martin Storsjö
43957fcc71 rtpdec_jpeg: Simplify writing of the jpeg header
Generalize writing of any number of qtables. Don't manually write
16 bit values in two separate calls.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:08:09 +03:00
Martin Storsjö
932d8300d3 rtpdec_jpeg: Merge two if statements
This makes the code more readable and robust.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:07:57 +03:00
Martin Storsjö
7ef4323405 rtpdec_jpeg: Write the DHT section properly
Currently the size header of the generated DHT section is
incorrect, making the mjpeg decoder just skip it. Since the
written huffman tables are the default ones, this failure had
gone undetected.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-12 12:07:29 +03:00
Stefano Sabatini
f9dd2e5e1a ffprobe: print start_pts and duration_ts stream information 2012-09-12 10:22:29 +02:00
Derek Buitenhuis
0c5fe2f0da FATE/bprint: Convert a VLA to a normal array
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-12 05:22:46 +02:00
Michael Niedermayer
23e9e5c7d9 rtmpproto: reorder some expressions to fix compilation with clang without optimizations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-12 05:17:52 +02:00
Michael Niedermayer
507c0416cd Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: increase sample array buffer
  configure: add crop filter as ffplay requirement
  ffplay: ensure that pictq_prev_picture never fills the picture queue
  ffplay: simplify picture allocation
  ffplay: make initial window size calculation based on aspect ratio
  ffplay: factor display rectangle calculation to its own function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 23:33:34 +02:00
Derek Buitenhuis
578bbf8149 diracdsp: Fix unprotected inline asm
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 22:59:43 +02:00
Derek Buitenhuis
23a5a24c0f ffmpeg: Only include unistd.h if it exists
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 22:59:43 +02:00
Stefano Sabatini
30a265f058 lavd/lavfi: apply stylistic fixes to the options help fields 2012-09-11 22:56:35 +02:00
Stefano Sabatini
749ddc14fc ffprobe: add priv_class field to Writer, and factorize writer options initialization 2012-09-11 22:30:23 +02:00
Marton Balint
cdea19e75a ffplay: increase sample array buffer
A decoded and resampled audio frame may not fit in the current size which is
not handled by the current code causing out of order waveform displays or even
channel mixups. A todo is added because this part can certainly be improved to
consume less memory but work reliably for any frame size.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-11 22:15:38 +02:00
Marton Balint
66532cbfdc configure: add crop filter as ffplay requirement
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-11 22:15:38 +02:00
Marton Balint
81f26d6990 ffplay: ensure that pictq_prev_picture never fills the picture queue
It was theoretically possible for pictq_prev_picture to fill the picture queue
which may have caused problems when a write to the queue was still in progress.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-11 22:15:37 +02:00
Marton Balint
99b01e458c ffplay: simplify picture allocation
This also makes sure the aspect ratio of the picture is set before allocating
the picture, this way video_open can calculate with the correct aspect ratio
even for the first frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-11 22:15:37 +02:00
Marton Balint
255c7bb183 ffplay: make initial window size calculation based on aspect ratio
Fixes ticket #291.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-11 22:15:37 +02:00
Marton Balint
bd14d845e9 ffplay: factor display rectangle calculation to its own function
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-09-11 22:15:37 +02:00
Stefano Sabatini
34b5b735f9 examples/muxing: add check on avformat_write_header() result 2012-09-11 21:43:27 +02:00
Stefano Sabatini
b3e2975ab3 examples/muxing: apply misc fixes to log messages 2012-09-11 21:43:27 +02:00
Stefano Sabatini
1d0048cfe3 examples/muxing: rename img_convert_ctx to sws_ctx
The new name is more consistent with the codebase, and more
self-consistent with the libswscale API.
2012-09-11 21:43:18 +02:00
Stefano Sabatini
976bb42aca examples/muxing: merge some declarations and definitions 2012-09-11 21:41:56 +02:00
Stefano Sabatini
bdd9bfbbab examples/muxing: prefer AVPicture to AVFrame, when feasible
Favor the use of plain AVPicture over AVFrame, especially when the use of
AVFrame is not required like in the case of tmp_picture.

Also adopt more straightforward names, to avoid frame/picture confusion.
2012-09-11 21:41:56 +02:00
Derek Buitenhuis
e20ac54f3e postproc: Fix unprotected inline asm
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 20:12:14 +02:00
Stefano Sabatini
e592fd0ed1 lavf/flvenc: convert commented debug log to an av_dlog call
Also add some additional info (DTS and DTS time).
2012-09-11 18:58:19 +02:00
Stefano Sabatini
3015194448 lavfi/amerge: clarify the error message in case of input overlap 2012-09-11 18:58:19 +02:00
Clément Bœsch
bbae8cdf4d lavfi/amerge: avoid a forward declaration. 2012-09-11 18:38:09 +02:00
Michael Niedermayer
0ea65bbeee ratecontrol: change a commented printf to av_log
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 17:50:14 +02:00
Michael Niedermayer
50dba71b7d ratecontrol: fix get_fps() argument
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 17:50:14 +02:00
Michael Niedermayer
ce7876cbf4 ratecontrol: Dynamically choose a default for rc_max_available_vbv_use
This improves handling of small buffer sizes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 17:50:14 +02:00
Michael Niedermayer
a990a30883 ratecontrol: correct predictor in case of stuffing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 17:50:14 +02:00
Stefano Sabatini
2fe8fd3948 examples/demuxing: add audio decoding/demuxing 2012-09-11 17:48:07 +02:00
Diego Biurrun
76fa7e09f1 utvideoenc: Add missing AV_ prefix to codec ID 2012-09-11 17:40:38 +02:00
Diego Biurrun
676ea8fae2 avserver: Add missing #include for av_gettime() 2012-09-11 17:40:38 +02:00
Michael Niedermayer
ec7946853a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec_jpeg: Add support for default quantizers
  x86: dsputil: Move specific optimization settings out of global init function
  avplay: get rid of ugly casts in the options table
  avplay: fix prototypes for option callbacks.
  flvdec: always set AVFMTCTX_NOHEADER.
  file: Use a normal private context for storing the file descriptor
  configure: Adjust the xgetbv instrinsic check
  configure: Add --disable-inline-asm command line option
  configure: Don't try to enable the log2 function on msvcrt

Conflicts:
	configure
	ffplay.c
	libavcodec/x86/dsputil_mmx.c
	libavformat/file.c
	libavformat/flvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 15:24:22 +02:00
Martin Storsjö
6121a3ef7f configure: Only disable aligned stack on MSVC on 32 bit
On 64 bit, the stack seems to be aligned enough for our needs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-11 16:18:03 +03:00
Clément Bœsch
7b56dddd56 lavfi/amerge: fix input pad name behaviour.
This fixes two problems:
 - the invalid pad.name stack pointer after init() ends
 - the duplicated name for all inputs
2012-09-11 14:59:23 +02:00
Diego Biurrun
f69f51b3b2 configure: indentation cosmetics 2012-09-11 14:34:26 +02:00
Carl Eugen Hoyos
20361bcc26 The TrueHD decoder needs the MLP parser. 2012-09-11 12:19:09 +02:00
Samuel Pitoiset
55e778bebd rtpdec_jpeg: Add support for default quantizers
Generate quantization tables when they are not present in the
first chunk.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-11 11:53:08 +03:00
Diego Biurrun
1648a508fa x86: dsputil: Move specific optimization settings out of global init function
They belong in the init functions specific to each CPU capability.
2012-09-11 10:12:17 +02:00
Anton Khirnov
0e8dccb79b avplay: get rid of ugly casts in the options table 2012-09-11 09:19:03 +02:00
Anton Khirnov
4e82cbb629 avplay: fix prototypes for option callbacks.
They have been wrong since 11d957fbd8
2012-09-11 09:18:57 +02:00
Anton Khirnov
ee0dadc109 flvdec: always set AVFMTCTX_NOHEADER.
New streams may be created at any time, e.g. on codec change.
2012-09-11 09:13:29 +02:00
Michael Niedermayer
ba9e9605ad cavsdec/decode_mb_b: fix return type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 07:13:49 +02:00
Michael Niedermayer
bb4ddeea5f xtea: optimize core, about 4-5% faster.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 04:58:53 +02:00
Michael Niedermayer
ef912134f0 x86/swscale: use unsigned to build SIMD values to avoid signed overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 03:02:51 +02:00
Michael Niedermayer
8470e6c96f lavf/avformat_seek_file: fix harmless integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 03:02:51 +02:00
Michael Niedermayer
386d60f978 aacdec/lcg_random: fix harmless integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 03:02:51 +02:00
Michael Niedermayer
7ea5dbcb83 cavsdec: Fix assertion failure.
The assert in decode_mb_b() is replaced by a normal error check for the
case that can occur with a damaged or crafted bitstream.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-11 03:02:51 +02:00
Stefano Sabatini
00d516454c lavf/segment: add segment_list_flags option
Allow to specify options affecting the segment list generation.

In particular: add +live and +cache flags.

For a full discussion read trac ticket #1642:
http://ffmpeg.org/trac/ffmpeg/ticket/1642

Also add live M3U8 generation example.
2012-09-11 01:24:54 +02:00
Stefano Sabatini
7b62d3415e lavc/h263dec: return or propagate proper error codes 2012-09-11 01:15:10 +02:00
Stefano Sabatini
ac006d29d8 lavc/flvdec: return meaningful error codes 2012-09-11 01:15:10 +02:00
Stefano Sabatini
0c71d5a077 ffprobe: add print_section option to the compact writer
Allow to skip section name at the begin of each line. Possibly simplify
output.
2012-09-11 01:14:57 +02:00
Stefano Sabatini
f740c1a9c2 ffprobe: add and use DEFINE_WRITER_CLASS macro
Factorize writer class definition.
2012-09-11 01:02:20 +02:00
Michael Niedermayer
76fac07334 mpegaudiodec: replace pow(2.0,...) by exp2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 22:34:18 +02:00
Michael Niedermayer
c5f0b6bf41 atrac3: replace powf(2,...) by exp2f()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 22:32:56 +02:00
Michael Niedermayer
14de55784d sws/output: use unsigned variables where harmless overflows are expected.
signed overflow is undefined in C ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 21:04:01 +02:00
Michael Niedermayer
17b3251c6c ra144enc: avoid integer overflows.
The values are all positive but signed variables where used,
which overflowed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 21:04:01 +02:00
Michael Niedermayer
5829b7d29e ffmpeg: check timebase validity before considering it to be used for stream copy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 20:57:23 +02:00
Michael Niedermayer
f0d5050090 ffmpeg: fix bytes written statistics.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 20:57:23 +02:00
Michael Niedermayer
b3b27b63a0 mpegtsenc: add forgotten ()
Fixes integer overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 20:57:23 +02:00
Stefano Sabatini
206c34e17d lavfi/setpts: set SAMPLE_RATE to NAN when input is no audio
Should be more robust/consistent.
2012-09-10 18:52:28 +02:00
Stefano Sabatini
722762f7e1 lavfi/setpts: add FRAME_RATE constant
Useful for dealing with constant frame-rate video.
2012-09-10 18:52:28 +02:00
Martin Storsjö
0697d81269 file: Use a normal private context for storing the file descriptor
Previously the file descriptor was stored in the priv_data pointer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-10 19:49:41 +03:00
Martin Storsjö
5fa22ae346 configure: Adjust the xgetbv instrinsic check
The 64 bit cl.exe version 16.00.30319.01 crashes with an internal
compiler error on the current check (and thus deduces it isn't
supported, even if the actual usage in libavuil/x86/cpu.c works
fine), but by assigning the value from the intrinsic to a variable,
or returning it, it works fine.

This error is fixed in cl.exe version 16.00.40219.01.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-10 19:46:06 +03:00
Diego Biurrun
afb5ed55d2 configure: Add --disable-inline-asm command line option
This can come in handy for testing and possibly other purposes.
2012-09-10 18:31:51 +02:00
Sébastien Brochet
e14725cecc add OTF support for attachments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 17:08:18 +02:00
Michael Niedermayer
41dba453f9 utils/update_stream_timings: fix division by zero
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 16:57:31 +02:00
Michael Niedermayer
108957c661 avidec/guess_ni_flag: fix harmless integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 16:56:59 +02:00
Martin Storsjö
88a3569917 configure: Don't try to enable the log2 function on msvcrt
Some msvcrt versions (the static 64 bit libc in MSVC 10) have
a log2 function, but there is no declaration for it in the headers.
Therefore, the normal configure check might find it, but it can fail
during build or at runtime, depending on whether implicit function
declarations are an error or not.

Therefore simply ignore this function on this platform.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-10 17:23:32 +03:00
Michael Niedermayer
b422e2c58a compute_pkt_fields: fix harmless integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 16:15:07 +02:00
Ben Jackson
616ef2e8bd lavc/pngenc: Enable frame threading for PNG encodes
Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 15:15:40 +02:00
Michael Niedermayer
bff2afb3e9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: Only compile motion_est code when encoders are enabled
  mem: fix typo in check for __ICC
  fate: mp3: drop redundant CMP setting
  rtp: Depacketization of JPEG (RFC 2435)
  Rename ff_put_string to avpriv_put_string
  mjpeg: Rename some symbols to avpriv_* instead of ff_*
  yadif: cosmetics

Conflicts:
	Changelog
	libavcodec/mjpegenc.c
	libavcodec/x86/Makefile
	libavfilter/vf_yadif.c
	libavformat/version.h
	libavutil/mem.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-10 14:06:20 +02:00
Stefano Sabatini
e4fe4d01fc ffprobe: simplify default printer
Remove pointless default_print_footer() and
default_print_chapter_header() callbacks, also avoid to print an
empty line when noprint_wrappers is selected.
2012-09-10 10:22:36 +02:00
Diego Biurrun
a84edbacaf x86: dsputil: Only compile motion_est code when encoders are enabled 2012-09-10 08:31:47 +02:00
Mans Rullgard
8c5ed7a66a mem: fix typo in check for __ICC
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-10 00:07:26 +01:00
Mans Rullgard
f181662db9 fate: mp3: drop redundant CMP setting
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-10 00:07:24 +01:00
Reinhard Nissl
2474ca1a22 aacdec.c: fix some comments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 22:54:10 +02:00
Samuel Pitoiset
3c19815416 rtp: Depacketization of JPEG (RFC 2435)
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-09 22:22:21 +03:00
Martin Storsjö
aefea4d0de Rename ff_put_string to avpriv_put_string
This allows using it from libavformat as well. This will be used
by the RTP/JPEG depacketizer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-09 22:22:12 +03:00
Samuel Pitoiset
a0845bae49 mjpeg: Rename some symbols to avpriv_* instead of ff_*
These symbols will be used from the RTP/JPEG depacketizer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-09 22:22:07 +03:00
Derek Buitenhuis
16c03f2e91 file: Add S_ISFIFO compatability macro
Not all systems have S_ISFIFO.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 20:23:14 +02:00
Michael Niedermayer
44f83930d9 x86/mpegaudiodec: fix compilation failure on cygwin with undefined imdct36_blocks_avx
this is a regression since today

Found-by: beastd
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 18:39:03 +02:00
Derek Buitenhuis
3629d1c09d dsputil_template: Reindent after recent change
Forgot to keep it pretty in e62e455f7b.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 17:21:37 +02:00
Michael Niedermayer
6add8eb2ce x86/h264dsp_init: put a HAVE_YASM back
Should fix compilation on open solaris

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 17:21:02 +02:00
Luca Barbato
28165fee1b yadif: cosmetics 2012-09-09 15:31:18 +02:00
Michael Niedermayer
17f9626b5d tiff/doubles2str: check for truncation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:41:18 +02:00
Michael Niedermayer
0196bc6f14 tiff/doubles2str: factor out component_len
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:40:10 +02:00
Michael Niedermayer
07108cafc6 gxfenc: assert that the to be written data has not been truncated.
Otherwise out of array reads would happen later

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:31:44 +02:00
Michael Niedermayer
eb336cb881 gxfenc: dont duplicate buffer size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:31:06 +02:00
Michael Niedermayer
7992814920 ffprobe: avoid unsafe usage of the snprintf() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:26:42 +02:00
Michael Niedermayer
b9a07e787b srtdec: fix unsafe snprintf() return usage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:19:02 +02:00
Michael Niedermayer
9fea619f19 ass: assert that the timsstamps fitted in the buffers
Failure of the assert would cause various problems later
if we continue.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:19:02 +02:00
Michael Niedermayer
d7cb5a8daf ffmpeg_filter: fix unsafe snprintf() usage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:11:03 +02:00
Michael Niedermayer
1fc3e8f4ea ffserver: fix unsafe snprintf() return usage.
Found-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:10:11 +02:00
Michael Niedermayer
9c6af3a3db ffserver: increase buffer size in http_send_too_busy_reply()
also add a assert0 to make sure the data is not truncated (which
should be impossible now)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 14:09:59 +02:00
Michael Niedermayer
77aedc77ab Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: Provide the right alignment for external mmx asm
  x86: Replace checks for CPU extensions and flags by convenience macros
  configure: msvc: fix/simplify setting of flags for hostcc
  x86: mlpdsp: mlp_filter_channel_x86 requires inline asm

Conflicts:
	libavcodec/x86/fft_init.c
	libavcodec/x86/h264_intrapred_init.c
	libavcodec/x86/h264dsp_init.c
	libavcodec/x86/mpegaudiodec.c
	libavcodec/x86/proresdsp_init.c
	libavutil/x86/float_dsp_init.c
	libswscale/utils.c
	libswscale/x86/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 13:27:42 +02:00
Michael Niedermayer
4819d43d7f aacpsy: use exp2(f) instead of pow(f)(2,...)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 13:02:08 +02:00
Michael Niedermayer
b027156b19 ffprobe: use exp2 instead of pow(2, ...) 2012-09-09 13:02:08 +02:00
Michael Niedermayer
363d302ea3 imc: use exp2 instead of pow(2,...)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 13:02:08 +02:00
Stefano Sabatini
eab438eabb lavu/samplefmt: fix/clarify documentation for av_samples_fill_arrays()
In particular, avoid improper use of the term "channels" in place of
"planes", and fix erroneous documentation for the linesize parameter.
2012-09-09 11:41:17 +02:00
Stefano Sabatini
3634441452 lavu/samplefmt: add note regarding buf validity in av_samples_fill_arrays() doxy 2012-09-09 11:21:45 +02:00
Stefano Sabatini
a4cb0af945 lavfi: drop deprecated and pointless avfilter_default_end_frame() function
Fix warning when compiling boxblur.

While this is technically a major API break, practically there will be no
one using that function since the filtering API is mostly private, so
that function alone is not usable.
2012-09-09 10:57:28 +02:00
Derek Buitenhuis
e62e455f7b dsputil/me/pixels: Actually use av_restrict
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 03:55:56 +02:00
Michael Niedermayer
d48ebfbdea mpeg4videodec: Fix "warning: dc_pred_dir may be used uninitialized in this function"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 03:15:46 +02:00
Michael Niedermayer
59fdf543d5 smush: read subversion for version==1 too.
This avoids a gcc warning, otherwise it should have no effect.
its a bit more consistent too

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 02:36:57 +02:00
Michael Niedermayer
31a797eb28 swr: add av_cold to init/free functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-09 02:26:20 +02:00
Martin Storsjö
75c37c5ace swscale: Provide the right alignment for external mmx asm
This reverts parts of e0c6cce447. There is external mmx asm that
requires this alignment.

This fixes crashes when using swscale in builds with external mmx,
without inline assembly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-09 01:52:35 +03:00
Michael Niedermayer
dd081f98dd dct-test: fix order of evaluation bug
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 23:57:37 +02:00
Michael Niedermayer
d40c0e4a67 ffserver: fix order of evaluation bugs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 23:56:26 +02:00
Michael Niedermayer
0e78e575ed swr/auto_matrix: treat a single channel as mono instead of failing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 21:32:24 +02:00
Michael Niedermayer
f8d74cbdc3 swr/auto_matrix: treat stereo downmix like stereo.
Based on code by John Stebbins
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 21:12:40 +02:00
Michael Niedermayer
c8ffab06f4 swr/auto_matrix: add clean layout function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 21:10:19 +02:00
Michael Niedermayer
ebc854e4e9 swr/auto_matrix: move layouts to local variables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 20:58:57 +02:00
Diego Biurrun
e0c6cce447 x86: Replace checks for CPU extensions and flags by convenience macros
This separates code relying on inline from that relying on external
assembly and fixes instances where the coalesced check was incorrect.
2012-09-08 18:18:34 +02:00
Derek Buitenhuis
9ab538e31f random_seed: Replace a VLA with a normal array
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 17:30:10 +02:00
Mans Rullgard
6a0200f24d configure: msvc: fix/simplify setting of flags for hostcc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-08 15:09:13 +01:00
Hendrik Leppkes
fb4e983e0c x86: mlpdsp: mlp_filter_channel_x86 requires inline asm
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-08 15:41:44 +03:00
Michael Niedermayer
b86e18fe46 yuv4mpeg: fix potential alignment bug
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 13:37:35 +02:00
Michael Niedermayer
7beadfe1f7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mov_chan: Only set the channel_layout if setting it to a nonzero value
  mov_chan: Reindent an incorrectly indented line
  mp2 muxer: mark as AVFMT_NOTIMESTAMPS.
  x86: float_dsp: fix ff_vector_fmac_scalar_avx() on Win64
  x86: more specific checks for availability of required assembly capabilities
  x86: avcodec: Drop silly "_mmx" suffix from dsputil template names
  fate: Drop redundant setting of FUZZ to 1
  cavsdsp: set idct permutation independently of dsputil
  x86: allow using add_hfyu_median_prediction_cmov on any cpu with cmov

Conflicts:
	libavcodec/x86/dsputil_mmx.c
	libavformat/mp3enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 12:53:44 +02:00
Michael Niedermayer
8a0118b4b4 ffio_read: dont spam the user at EOF with a truncation error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 12:41:57 +02:00
Daniel Verkamp
124f0b2f46 flashsv2enc: only encode diff blocks when needed
A flashsv2 block may have a "diff block" to indicate which scan lines of
the block are actually encoded.  However, this diff block need not be
used when the entire block is coded.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 05:36:34 +02:00
Michael Niedermayer
5710dbf88c mpegts: Fix potential memory leak in mpegts_read_packet()
This leak can happen in case of some error paths.

Found-by: Tanami, Ohad
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 05:21:47 +02:00
Michael Niedermayer
9a27fd12f3 avio: replace ETIMEDOUT by EIO
ETIMEDOUT is not available on all platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-08 02:28:20 +02:00
Martin Storsjö
7b699d8136 mov_chan: Only set the channel_layout if setting it to a nonzero value
If regularly parsing new chan atoms (as in rtpdec_qt), but the
chan atoms don't actually contain any channel layout, don't reset
the value that the caller has filled in (by guessing).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-08 01:30:44 +03:00
Martin Storsjö
5f72bc02f8 mov_chan: Reindent an incorrectly indented line
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-08 01:30:43 +03:00
Carl Eugen Hoyos
407eeb3474 mp2 muxer: mark as AVFMT_NOTIMESTAMPS.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-09-07 14:20:14 -07:00
Michael Niedermayer
097c64ffcb flashsv2enc: remove experimental flag, the encoder seems working now
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 22:53:21 +02:00
Michael Niedermayer
070b0e1c77 libswr: remove redundant ARCH_X86, MMX* implicates X86
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 22:31:37 +02:00
Derek Buitenhuis
5f256f9df2 swsresample: Fix unprotected inline asm
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 22:29:02 +02:00
Derek Buitenhuis
d940b0a0f9 vf_mp: Do not build if inline assembly is not available
Rather than modify the mplayer filter sources, just disable
vf_mp if inline assembly is not available.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 22:27:20 +02:00
Derek Buitenhuis
80d2ec6bc9 dshow: Change WINBOOL to BOOL
WINBOOL is MinGW-specific, and since both MSVC and MinGW
have BOOL, use that instead.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 22:23:32 +02:00
Michael Niedermayer
dbb9117d18 flashsv2enc: move blockbuffer realloc to reconfigure_at_keyframe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 21:46:34 +02:00
Michael Niedermayer
9b6467fd46 flashv2enc: reallocate not only on block count changes but on dimension changes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 21:46:34 +02:00
Derek Buitenhuis
3174987b42 flashsv2enc: Replace a VLA with a heap alloc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 21:46:34 +02:00
Michael Niedermayer
9b326fc261 flashsv2enc: fix prev-Z-prime encoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 21:46:34 +02:00
Justin Ruggles
7327525997 x86: float_dsp: fix ff_vector_fmac_scalar_avx() on Win64
The SWAP macro does not work for explicit xmm/ymm usage, so instead just move
the scalar value from xmm2 to xmm0.
2012-09-07 14:49:10 -04:00
Derek Buitenhuis
3fe303a27d vf_idet: Remove emms
There is no MMX code anyway.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 20:08:12 +02:00
Michael Niedermayer
8e6511c1e1 proresdec2: avoid VLA and use SliceContext instead.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 19:38:23 +02:00
Derek Buitenhuis
af2a17c09a cache: Only include unistd.h if it exists
This follows suite from f3be359707.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 19:29:58 +02:00
Ronald S. Bultje
f3be359707 file: Only include unistd.h if it exists
It is included for the open/read/write/close functions. On
MSVC, where this header does not exist, the same functions
are provided by io.h, which is already included.

On windows, these functions are provided by io.h. Make sure
io.h is included if it exists, regardless of the setmode
function.

Signed-off-by: Martin Storsjö <martin@martin.st>

Conflicts:

	configure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 18:41:23 +02:00
Ronald S. Bultje
a4d71eb5c3 random_seed: Only read /dev/*random if we have unistd.h
unistd.h is used for open/read/close, but if this header does not
exist, there's probably no use in trying to open /dev/*random
at all.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 18:41:20 +02:00
Ronald S. Bultje
9d0bc5c0bd rtpdec: Don't explicitly include unistd.h any longer
unistd.h used to be required for gethostname. On windows, gethostname
is provided by winsock2.h. Now network.h includes both unistd.h and
winsock2.h if they exist.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 18:41:14 +02:00
Derek Buitenhuis
1d4c4b0fbc wtvdec: Remove unused strings.h header
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 18:24:50 +02:00
Derek Buitenhuis
a2015b41a0 vf_colormatrix: Drop unused strings.h header
It already uses av_strcasecmp.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 18:24:43 +02:00
Diego Biurrun
1169f0d0af x86: more specific checks for availability of required assembly capabilities 2012-09-07 18:16:04 +02:00
Michael Niedermayer
7621c3538f Makefile: remove old codec_names.h on distclean
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 14:59:01 +02:00
Michael Niedermayer
54d7094f8b gitignore: codec_names.h is no more
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 14:59:01 +02:00
Stefano Sabatini
09cc23e0f7 lavd/sdl: decrease debug info notice log level from AV_LOG_INFO to VERBOSE
Decrease log spam.
2012-09-07 14:31:38 +02:00
Stefano Sabatini
a7c7b34d29 lavd/sdl: remove trailing dot in messages
This is consistent with the apparently prevailing convention.
2012-09-07 14:31:37 +02:00
Stefano Sabatini
25f139e72f lavf/utils: fix typo in has_codec_parameters
Replace "unspecified sample size" with "unspecified frame size". +10l.
2012-09-07 14:31:37 +02:00
Tomas Härdin
d74af89317 img2dec: Don't leave AVIOContexts open on zero byte files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 14:10:19 +02:00
Diego Biurrun
8cb7ed5562 x86: avcodec: Drop silly "_mmx" suffix from dsputil template names 2012-09-07 13:50:52 +02:00
Michael Niedermayer
fa85118510 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mov_chan: Pass a separate AVIOContext for reading
  af_asyncts: check return value from lavr when flushing.
  mss2: simplify loop in decode_rle()
  mss12: avoid unnecessary division in arith*_get_bit()
  mss2: do not try to read too many palette entries
  mpegvideo: set AVFrame fields to NULL after freeing the base memory
  configure: Set the right cc_e flags for msvc

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 13:50:24 +02:00
Michael Niedermayer
a7fbc7d7b7 lavf: factor codec id forcing out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 13:16:04 +02:00
Michael Niedermayer
91141f2a13 lavfi: add qp_table_size
This avoid recalculating it and in case w/h changed avoids crashes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 13:00:47 +02:00
Diego Biurrun
74c8414462 fate: Drop redundant setting of FUZZ to 1 2012-09-07 12:59:00 +02:00
Mans Rullgard
6efb698883 cavsdsp: set idct permutation independently of dsputil
CAVS uses its own idct so using dsputil to set the permutation
is fragile.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-07 11:42:35 +01:00
Mans Rullgard
5fe64d88f6 x86: allow using add_hfyu_median_prediction_cmov on any cpu with cmov
For some reason add_hfyu_median_prediction_cmov is only selected
on 3Dnow-capable CPUs, even though it uses no 3Dnow instructions.
This patch allows it to be selected on any cpu with cmov with the
possibility of being overridden by the mmxext version.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-07 11:42:35 +01:00
Michael Niedermayer
5891e454a6 faxcompr: fix out of array read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 12:36:00 +02:00
Stefano Sabatini
911519caec lavc/libx264: remap X264_LOG_INFO loglevel from AV_LOG_INFO to VERBOSE
AV_LOG_INFO is more geared towards messages to be read by the user, the
statistics shown by libx264 with X264_LOG_INFO are more useful at the
debugging level.

Help reducing the log spam.
2012-09-07 09:59:12 +02:00
Ramiro Polla
dc5fcdb896 lavd/dshow: use AV_OPT_TYPE_IMAGE_SIZE
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-07 09:59:12 +02:00
Ramiro Polla
37a0db50db lavd/dshow: support video codec and pixel format selection
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-09-07 09:59:12 +02:00
Stefano Sabatini
cf5629c064 lavu/opt: reindent after last commit 2012-09-07 09:59:12 +02:00
Samuel Pitoiset
9afb7061f9 mov_chan: Pass a separate AVIOContext for reading
This fixes crashes when called from rtpdec_qt, where
AVFormatContext->pb is null, a crash present since 3bab7cd128.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-07 10:49:35 +03:00
Anton Khirnov
91a84a5247 af_asyncts: check return value from lavr when flushing.
Fixes an infinite loop on flush when avresample_get_delay() still
reports some samples but avresample_convert() doesn't return any data.
2012-09-07 09:06:48 +02:00
Michael Niedermayer
ca7be934d6 lavfi: 10l fix () placement
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 06:53:11 +02:00
Michael Niedermayer
a33b4bc79c lavfi: factor copy_video_props() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 05:24:48 +02:00
Michael Niedermayer
c9a0f9bf3c libavfilter: pass QP table through the filter chain
Any volunteers to port the pp and spp filters from libmpcodec?

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 03:17:28 +02:00
Ben Jackson
de9f5b6853 lavc/vp6: Disable deblock filtering for Simple Profile
In vp6 Advanced Profile, deblock filtering is conditionally enabled in
each frame header.  In Simple Profile it should always be off.  vp6 was
inheriting the wrong default from ff_vp56_init.

Signed-off-by: Ben Jackson <ben@ben.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 01:36:21 +02:00
Michael Niedermayer
c5278cb84f Add Dolby/DPLII downmix support to libswresample
Based on code by John Stebbins <jstebbins.hb@gmail.com>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 00:41:49 +02:00
Michael Niedermayer
2dd2e42951 swr: update rematrix coeffs to match AC-3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 00:29:06 +02:00
Michael Niedermayer
323d912010 swr: update copyright years
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-07 00:29:06 +02:00
Stefano Sabatini
144caa7280 lavc/raw-test: invert the order of key/value when printing the fourcc->pix_fmt map
Print
FOURCC: PIX_FMT
rather than
PIX_FMT: FOURCC

This seems more consistent with the help message:
-l                list the pixel format for each fourcc

Remove possibly redundant/confusing comment.
2012-09-06 23:39:57 +02:00
Stefano Sabatini
da2ea7c33c lavf/flvenc: apply various log fixes/clarifications
Should improve user feedback in case of errors.
2012-09-06 23:39:57 +02:00
Stefano Sabatini
1bd6b0c927 lavf/flvenc: return meaningful error codes 2012-09-06 23:39:57 +02:00
Alberto Delmás
290d1022b2 mss2: simplify loop in decode_rle()
It calculates the sum of power of two series, which can be done in one step.

Suggested by Michael Niedermayer <michaelni@gmx.at>

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-09-06 20:48:07 +02:00
Alberto Delmás
9699b3a2d7 mss12: avoid unnecessary division in arith*_get_bit()
That division can be replaced with a comparison:
((c->value - c->low) << 1) + 1 >= range

By expanding 'range' definition and simplifying this inequation we obtain
the final expression.

Suggested by Michael Niedermayer <michaelni@gmx.at>

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-09-06 20:44:04 +02:00
Alberto Delmás
6ceef07b21 mss2: do not try to read too many palette entries
Reported by Michael Niedermayer <michaelni@gmx.at>

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-09-06 20:38:22 +02:00
Janne Grunau
59383d5740 mpegvideo: set AVFrame fields to NULL after freeing the base memory
Prevents dangling pointers and makes access after free more obvious.
Setting AVFrame.qscale_table to NULL is required for successfully
allocating a previously freed Picture with ff_alloc_picture().
2012-09-06 19:02:43 +02:00
Michael Niedermayer
40112e7b35 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Allow setting the ld parameter from the config file
  x86: dsputil: Do not redundantly check for CPU caps before calling init funcs
  configure: Disable some warnings in MSVC
  x86: vp56: cmov version of vp56_rac_get_prob requires inline asm
  avopt: fix examples to match the same style about default values as the actual code.
  configure: Add support for MSVC cl.exe/link.exe
  lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime.

Conflicts:
	libavutil/opt.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-06 16:23:17 +02:00
Michael Niedermayer
2bb62455c8 Revert "lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime."
This reverts commit ba53720280.
A better implementation has been commited by the same author to qatar

Conflicts:

	configure

Found-by: jamal <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-06 16:14:34 +02:00
Michael Niedermayer
376b16d7cc Merge commit '0db2d94280e260af5f3ad7993c5a6357462f17c9'
* commit '0db2d94280e260af5f3ad7993c5a6357462f17c9':
  dsputil: workaround __VA_ARGS__ missing tokenization for MSVC
  configure: add section for libc-specific hacks
  build: disable ranlib on mingw
  parser: Don't use pc as context for av_dlog
  h264: Remove an assert on current_picture_ptr being null

Conflicts:
	configure
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-06 16:05:40 +02:00
Martin Storsjö
a224b2cb30 configure: Set the right cc_e flags for msvc
The default ones work, but outputs the preprocessed file on stdout
(into config.log).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-06 17:05:10 +03:00
Stefano Sabatini
fb2e7ac3c4 lavfi/mp: drop rotate wrapper
The native filter transpose is perfectly equivalent.
2012-09-06 11:27:22 +02:00
Martin Storsjö
2b3660084f fate: Allow setting the ld parameter from the config file
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-06 10:35:55 +03:00
Diego Biurrun
ef6ba1f237 x86: dsputil: Do not redundantly check for CPU caps before calling init funcs
The init functions check for CPU capabilities on their own already.
2012-09-06 09:05:52 +02:00
rogerdpack
ef122ff507 eliminate some mingw warnings
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-06 04:42:43 +02:00
Michael Niedermayer
52fa5cea03 amrnbdec: silence a warning about unsigned cant be negative
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-06 01:18:55 +02:00
Stefano Sabatini
bdfffa66a0 tests/lavfi-regression: name temporary files after $testname in do_lavfi_pixfmts()
Fix a failure when running do_lavfi_pixfmts() for the
lavfi-tinterlace_merge and lavfi-tinterlace_pad tests concurrently.

Since they were using the same names for the temporary files, the first
ending test was removing them, and the second test was failing at
removing unexisting files.
2012-09-06 01:09:36 +02:00
Stefano Sabatini
5780f9bbd5 tests: add tinterlace filter tests
Only the merge and pad modes are tested.
2012-09-06 00:40:01 +02:00
Stefano Sabatini
77c991d8c5 tests/lavfi-regressions: support user-specified test name in do_lavfi_pixfmts()
Make do_lavfi_pixfmts() support an user-specified name for the test.

This allows to specify two pixfmts tests for the same filter, e.g. to
test a filter with different parameters. Useful for the pending
tinterlace tests.
2012-09-06 00:40:01 +02:00
Stefano Sabatini
9a2daef53f lavfi/tinterlace: declare source buffers in copy_picture_field() as const
Increase performance (slightly).
2012-09-06 00:40:01 +02:00
Stefano Sabatini
fd5293d216 lavfi/tinterlace: set inlink->cur to NULL, since it is stored internally
If not set to NULL, the reference is freed by ff_end_frame(), and later
accessed in end_frame() by the filter code, causing a crash.
2012-09-06 00:40:01 +02:00
Stefano Sabatini
29e972f67c lavu/parseutils: add av_small_strptime()
Make internal small_strptime() function public, and use it in place of
strptime().
This allows to avoid a dependency on strptime() on systems which do not
support it.

In particular, fix trac ticket #992.
2012-09-06 00:40:01 +02:00
Stefano Sabatini
79dcd58d83 lavu/parseutils: make small_strptime() return a (non const) char *
This is consistent with the standard definition of strptime().
2012-09-06 00:40:01 +02:00
Clément Bœsch
5620088494 lavf: fix a few typo in some comments. 2012-09-05 23:22:35 +02:00
Clément Bœsch
9d9f34a3c1 lavf: remove a few useless AV_NOWARN_DEPRECATED().
read_seek was undeprecated in e5c708151.
2012-09-05 23:18:07 +02:00
Martin Storsjö
4a185ed2d4 configure: Disable some warnings in MSVC
This disables the following warnings:
C4100: unreferenced formal parameter
 (1035 occurrances)
C4214: nonstandard extension used : bit field types other than int
 (609 occurances)
C4996: 'avpriv_snprintf': This function or variable may be unsafe.
       Consider using _snprintf_s instead. To disable deprecation,
       use _CRT_SECURE_NO_WARNINGS. See online help for details.
 (351 occurrances)

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 23:20:24 +03:00
Michael Niedermayer
e60fcdb989 vf_hue: fix AVOption defaults
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 22:18:53 +02:00
Michael Niedermayer
750cc3c0e5 acelp_pitch_delay: add missing libm.h include for exp2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 21:56:41 +02:00
Hendrik Leppkes
d914ea6fd8 x86: vp56: cmov version of vp56_rac_get_prob requires inline asm
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-05 21:30:46 +02:00
Michael Niedermayer
269e6212ee g723_1: add some const for more correctness
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 21:03:17 +02:00
Michael Niedermayer
397ebc1d9b proresenc_anatoliy: add 2 const to silence 2 warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 20:54:50 +02:00
Nedeljko Babic
b3fdfc8c4e Optimization of AC3 floating point decoder for MIPS
FFT in MIPS implementation is working iteratively instead
 of "recursively" calling functions for smaller FFT sizes.
Some of DSP and format convert utils functions are also optimized.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Reviewed-by: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 20:09:56 +02:00
Michael Niedermayer
42e63ec8dc avopt: fix examples to match the same style about default values as the actual code.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 20:09:47 +03:00
Michael Niedermayer
9afd55922a imgconvert: silence some const incompatible pointer warnings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 18:44:42 +02:00
Michael Niedermayer
7666828c44 avopt: fix examples to match the same style about default values as the actual code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 18:40:21 +02:00
Michael Niedermayer
8267f0f7ae vf_scale: fix incompatible pointer type warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 18:31:18 +02:00
Stefano Sabatini
5666a1b270 lavu/opt: support NULL and special "none" values for size and pixel format options
Allow to specify NULL values explicitly, thus overriding the default
values set in the context.
2012-09-05 16:08:06 +02:00
Ronald S. Bultje
dfa559bcbd configure: Add support for MSVC cl.exe/link.exe
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:40 +03:00
Ronald S. Bultje
4fa661a857 lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:30 +03:00
Luca Barbato
0db2d94280 dsputil: workaround __VA_ARGS__ missing tokenization for MSVC
A second expansion forces the preprocessor to tokenize properly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:24 +03:00
Mans Rullgard
b797f3c4d0 configure: add section for libc-specific hacks
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:17 +03:00
Mans Rullgard
a3222470de build: disable ranlib on mingw
Using ranlib is not required but prevents using the libraries with
msvc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:11 +03:00
Michael Niedermayer
b21b5b04cc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: eamad: Add missing dependency on mpegvideo code
  build: utvideoenc: Add missing dependency on Huffman code
  avopt: Reorder the default_val struct, making i64 the first field

Conflicts:
	configure
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 15:02:17 +02:00
Martin Storsjö
6d65496990 parser: Don't use pc as context for av_dlog
The ParserContext class doesn't have an AVClass, required for
using it as a logging class.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 16:01:40 +03:00
Michael Niedermayer
8510150f48 Merge commit '21bc44038491e525335ad763883b0288402ff6a0'
* commit '21bc44038491e525335ad763883b0288402ff6a0':
  avopt: Explicitly store rational option defaults in .dbl

Conflicts:
	libavfilter/buffersrc.c
	libavfilter/vsrc_testsrc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 14:52:52 +02:00
Michael Niedermayer
98840ee017 Merge commit 'c7b610aa0b1bac47eea0056b13fe6e982b85844a'
* commit 'c7b610aa0b1bac47eea0056b13fe6e982b85844a':
  avopt: Explicitly store float/double option defaults in .dbl

Conflicts:
	libavcodec/ac3dec.c
	libavcodec/libx264.c
	libavfilter/af_amix.c
	libavfilter/af_asyncts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 14:44:05 +02:00
Michael Niedermayer
d46c1c72e4 Merge commit 'e6153f173a49e5bfa70b0c04d2f82930533597b9'
* commit 'e6153f173a49e5bfa70b0c04d2f82930533597b9':
  avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/libx264.c
	libavcodec/mpeg12enc.c
	libavcodec/options_table.h
	libavcodec/snowenc.c
	libavcodec/tiffenc.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/af_amix.c
	libavfilter/af_asyncts.c
	libavfilter/af_join.c
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawtext.c
	libavformat/http.c
	libavformat/img2dec.c
	libavformat/img2enc.c
	libavformat/movenc.c
	libavformat/mpegenc.c
	libavformat/mpegtsenc.c
	libavformat/options_table.h
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 14:33:32 +02:00
Michael Niedermayer
99de3df3d3 Merge commit 'd58dd4b5b5d31cfd4092e38a5f2c894eee2ab078'
* commit 'd58dd4b5b5d31cfd4092e38a5f2c894eee2ab078':
  avopt: Store defaults for AV_OPT_TYPE_FLAGS in the i64 union member

Conflicts:
	libavcodec/libvpxenc.c
	libavcodec/options_table.h
	libavfilter/vf_drawtext.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 14:09:09 +02:00
Michael Niedermayer
d5f65e9d40 Merge commit '124134e42455763b28cc346fed1d07017a76e84e'
* commit '124134e42455763b28cc346fed1d07017a76e84e':
  avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member

Conflicts:
	libavcodec/aacenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/options_table.h
	libavdevice/bktr.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/af_amix.c
	libavfilter/vf_drawtext.c
	libavformat/movenc.c
	libavformat/options_table.h
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 13:58:11 +02:00
Michael Niedermayer
743a295c09 Merge commit '2d7d91f06d6a1d243dc74c96d3389ee237a3b906'
* commit '2d7d91f06d6a1d243dc74c96d3389ee237a3b906':
  svq1enc: Set picture_structure correctly
  mpegvideo: remove last_picture_ptr / h264 assert.
  mpegvideo_enc: remove assert that has become obsolete with the new API
  elbg: Fix an assert

Conflicts:
	libavcodec/elbg.c
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 13:49:48 +02:00
Michael Niedermayer
5e997688f8 h264: Remove an assert on current_picture_ptr being null
It is possible in various error paths as well as gap handling
that this has already been allocated. It is not clear why that
would be a problem with the current code, thus disable the
assert to avoid a common assert failure when asserts are enabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 14:28:41 +03:00
Stefano Sabatini
fc15f58adb doc/filters: add mp=noise example 2012-09-05 11:55:16 +02:00
Stefano Sabatini
8a7b82ccab doc/filters: itemize example for mp filter 2012-09-05 11:53:25 +02:00
Diego Biurrun
6980453569 build: eamad: Add missing dependency on mpegvideo code 2012-09-05 11:50:30 +02:00
Diego Biurrun
aa66111365 build: utvideoenc: Add missing dependency on Huffman code 2012-09-05 11:50:30 +02:00
Stefano Sabatini
0e28e3cf82 doc/filters: remove reference to mp=hue filter, which was dropped 2012-09-05 11:44:01 +02:00
Clément Bœsch
3b6e9cd7ec lavc/dvdsubdec: parse the size from the extradata. 2012-09-04 23:38:29 +02:00
Martin Storsjö
686a329395 avopt: Reorder the default_val struct, making i64 the first field
Also mention this change in APIchanges.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:16:11 +03:00
Martin Storsjö
21bc440384 avopt: Explicitly store rational option defaults in .dbl
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:55 +03:00
Martin Storsjö
c7b610aa0b avopt: Explicitly store float/double option defaults in .dbl
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:51 +03:00
Martin Storsjö
e6153f173a avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:44 +03:00
Martin Storsjö
d58dd4b5b5 avopt: Store defaults for AV_OPT_TYPE_FLAGS in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:38 +03:00
Martin Storsjö
124134e424 avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:32 +03:00
Michael Niedermayer
d83ff76ca0 intreadwrite: Dont evaluate value for AV_W* multiple times.
Evaluating it multiple times, can have side effects and is possibly slow.
So its definitly a bad idea.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 21:45:13 +02:00
Michael Niedermayer
8c6d651fc3 paf: avoid using expressions with sideeffects in AV_R*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 21:25:39 +02:00
Michael Niedermayer
daa3c28895 configure: update sinks used by ffplay/ffmpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 18:51:59 +02:00
Michael Niedermayer
49c230fb56 libavfilter/Makefile: add forgotten entries for the ff-sinks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 18:51:59 +02:00
Michael Niedermayer
172161c8db sink_buffer: fix #ifs for FF-sinks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 18:51:59 +02:00
Michael Niedermayer
2d7d91f06d svq1enc: Set picture_structure correctly
This fixes assert failures when running in debug mode.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 18:38:02 +03:00
Michael Niedermayer
91672504a4 mpegvideo: remove last_picture_ptr / h264 assert.
This assert is no longer true since h264 error concealment needs
last_picture_ptr to be set.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 18:38:02 +03:00
Michael Niedermayer
19000122a4 mpegvideo_enc: remove assert that has become obsolete with the new API
It now just checks uninitialized and unused data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 18:37:58 +03:00
Michael Niedermayer
2c340596ca elbg: Fix an assert
It seems the condition was flipped from what was intended.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 18:37:54 +03:00
Michael Niedermayer
9dcc4c30f9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: add support for bdver1 and bdver2 CPU types.
  avio: make avio_close NULL the freed buffer
  pixdesc: cosmetics
  proresenc: Don't free a buffer not owned by the codec
  proresenc: Write the full value in one put_bits call
  adpcmenc: Calculate the IMA_QT predictor without overflow
  x86: Add convenience macros to check for CPU extensions and flags
  x86: h264dsp: drop some unnecessary ifdefs around prototype declarations
  mss12: merge decode_pixel() and decode_top_left_pixel()
  mss12: reduce SliceContext size from 1067 to 164 KB
  mss12: move SliceContexts out of the common context into the codec contexts

Conflicts:
	libavformat/aviobuf.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 17:04:51 +02:00
Diego Elio Pettenò
b36f87ff90 configure: add support for bdver1 and bdver2 CPU types.
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-04 15:31:03 +02:00
Luca Barbato
3093939077 avio: make avio_close NULL the freed buffer 2012-09-04 15:04:46 +02:00
Luca Barbato
a684267076 pixdesc: cosmetics 2012-09-04 14:55:31 +02:00
Martin Storsjö
cc86bd4ccc proresenc: Don't free a buffer not owned by the codec
The data in coded_frame isn't allocated using get_buffer, but
is copied from the input frame to the encoder, so we should
not try to free it ourselves.

This fixes an assert failure when running in debug mode.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 15:32:12 +03:00
Martin Storsjö
6d9e74cd41 proresenc: Write the full value in one put_bits call
Previously, the put_bits call writing the value wrote a value
larger than the number of bits specified, failing asserts
in debug mode. There was no actual bitstream writer corruption,
since the overwritten bit already always was set to 1.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 15:31:47 +03:00
Michael Niedermayer
aa264da5bf adpcmenc: Calculate the IMA_QT predictor without overflow
Previously, the value given to put_bits was 10 bits long for positive
predictors, even though 9 bits were to be written. The extra bit could
in some cases overwrite existing bits in the bitstream writer cache.

This fixes a failed assert in put_bits.h, when running a version
built with -DDEBUG.

The fate test result gets slightly improved, thanks to getting rid
of the overwritten bits in the bitstream writer cache.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 15:30:58 +03:00
Stefano Sabatini
9de7622927 lavfi/transpose: implement landscape passthrough mode
Emulate the mp=rotate passthrough mode.
2012-09-04 11:39:23 +02:00
Stefano Sabatini
3b34cbce19 examples/scaling_video: write to rawvideo file
This is more useful for testing purposes. Also allow to specify the name
of the output file.
2012-09-04 11:29:28 +02:00
Stefano Sabatini
838b1d60a1 lavf/segment: add EXT-X-MEDIA-SEQUENCE tag in M3U8 header 2012-09-04 11:28:16 +02:00
Stefano Sabatini
ebd703f0a0 lavf/segment: deprecate "ext" format in favor of "csv"
The new option name is more descriptive.
2012-09-04 11:27:55 +02:00
Stefano Sabatini
d815763548 lavf/segment: add escaping for filename field of the CSV list file
CSV escaping code is borrowed from ffprobe.c.
2012-09-04 11:25:14 +02:00
Peter Ross
299489714a tty: return av_get_packet() error codes instead of converting them to EIO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 06:12:18 +02:00
Peter Ross
bf959ac2c6 tty: return EOF when the 'effective' end of file is reached. ('effective' because ansi/tty files may be concatenated with SAUCE/EFI metadata)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 06:12:10 +02:00
Michael Niedermayer
688cb71252 aaccoder: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 04:38:28 +02:00
Michael Niedermayer
7b1ff5e2f3 h263dec: fix xvid IDCT switching
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-04 03:29:00 +02:00
Diego Biurrun
f82c4fb27f x86: Add convenience macros to check for CPU extensions and flags 2012-09-04 01:44:59 +02:00
Diego Biurrun
a84ac7a860 x86: h264dsp: drop some unnecessary ifdefs around prototype declarations 2012-09-04 01:44:59 +02:00
Michael Niedermayer
1fa4018e29 jpegdec: try to fix different flipping behavior of inteljpegs.
This may need some trial and error to find exactly how to identify them
so please report any intel jpegs that get fliped wrong.

Fixes Ticket511

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 23:39:50 +02:00
Michael Niedermayer
507d2d28d6 lsp: change assert to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 23:26:14 +02:00
Michael Niedermayer
c868219c9a lavc: put motion test back.
While not that usefull, we can as well keep it until it breaks.
When it breaks for whatever reason ill likely remove it
Sorry for the revert spam, i had not realized this code compiles
and works fine.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 23:23:40 +02:00
Michael Niedermayer
e6dc0da504 rmdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 22:40:41 +02:00
Michael Niedermayer
8cc77646c0 yadif: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 22:40:31 +02:00
Michael Niedermayer
b0dc4286a9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: avcodec: order cosmetics
  intrax8dsp: Add missing #include to make header standalone
  Delete motion-test tool; it is of doubtful utility.

Conflicts:
	libavcodec/Makefile
	libavcodec/motion-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 17:41:17 +02:00
Alberto Delmás
344fbc47c7 mss12: merge decode_pixel() and decode_top_left_pixel()
No meaningful generated code differences using gcc -O3.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-09-03 14:41:59 +02:00
Alberto Delmás
626c1a33ed mss12: reduce SliceContext size from 1067 to 164 KB
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-09-03 14:39:37 +02:00
Alberto Delmás
a97ee41bee mss12: move SliceContexts out of the common context into the codec contexts
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-09-03 14:39:19 +02:00
Diego Biurrun
eb239a577f build: avcodec: order cosmetics 2012-09-03 11:33:49 +02:00
Diego Biurrun
7681b8837a intrax8dsp: Add missing #include to make header standalone 2012-09-03 11:31:47 +02:00
Diego Biurrun
13b6b7e0e2 Delete motion-test tool; it is of doubtful utility. 2012-09-03 10:43:21 +02:00
Michael Niedermayer
5d55830388 snowdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 01:26:57 +02:00
Michael Niedermayer
0b23452c01 ffv1: fix 2 uninitialized variable warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-03 01:25:04 +02:00
Hans-Kristian Arntzen
f099fbf5f3 Remove redundant masks in STORE_BGR24_MMX.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-02 21:56:50 +02:00
Michael Niedermayer
50b0edea9f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  intrax8: move functions from dsputil to own context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-02 21:01:10 +02:00
Peter Ross
083e65cfd2 fate: add ansi256 test case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-02 18:15:08 +02:00
Mans Rullgard
15616eb042 intrax8: move functions from dsputil to own context
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-02 16:32:57 +01:00
Stefano Sabatini
c8ef309379 examples: add demuxing.c example 2012-09-02 10:48:01 +02:00
Stefano Sabatini
f7eec8956d lavf/segment: set EXT-X-VERSION to 3 rather than to 4
There is nothing we use of the latest version, downgrade version number
to increase decoding support.

Based on this comment by vel2000:
http://ffmpeg.org/trac/ffmpeg/ticket/1642#comment:17
2012-09-02 10:42:25 +02:00
Stefano Sabatini
34bf06a35c lavfi: when configuring a link, set channel layout from previous link if unspecified
In avfilter_config_links(), if the current channel layout is not
specified, set the same value of the previous link in the filterchain.

Consistent with the logic used to set the other link parameters.
2012-09-02 10:42:25 +02:00
Stefano Sabatini
06fc74bda0 lavc/codec_desc: fix name of wavesynth codec 2012-09-02 10:42:25 +02:00
Michael Niedermayer
4654bf44a7 flvdec: fix creation of lots of phantom data streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-02 05:04:14 +02:00
jamal
c112b6b68f configure: Treat warnings as errors in check_yasm()
yasm generates a warning instead of an error when "CPU amdnop" is not supported, so the check always succeeds.

HAVE_CPUNOP as true when the available yasm version doesn't support amdnop doesn't make sense.
Check http://fate.ffmpeg.org/log.cgi?time=20120901143315&log=compile&slot=x86_64-archlinux-gcc-oldyasm to see the amount of warnings it generates.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 23:45:32 +02:00
Michael Niedermayer
19a71dbcb9 psxstr: more correct array type.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 23:45:32 +02:00
Roman Arutyunyan
c0daa73a0f fix flv new stream handling after head already parsed
This fixes stream lookup in flv demuxer. When used with librtmp
protocol streams are sometimes added after head arrived. If the
first stream added in flv header reader is Audio stream then it
is messed with Video stream added later in the code patched.
The result is I have 2 Audio streams (first of them is said to have
a video codec like h264) instead of Audio/Video pair.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 17:49:33 +02:00
Piotr Bandurski
5081310b58 lavf: add missing new line to some error messages 2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 17:35:21 +02:00
Piotr Bandurski
9d87cf51d8 lavfi/vf_frei0: add missing new line to some error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 17:33:50 +02:00
Piotr Bandurski
53241b5dc7 lavc: add missing new line to some messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:59:30 +02:00
Piotr Bandurski
08277a45c3 lavf: add missing new line to some error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:59:30 +02:00
Mahendra M
9b4badb09b Fix libx264 profile listing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:59:04 +02:00
Michael Niedermayer
9cdb5969d4 libmpcodecs: remove unused and half existing vo_fs variable
It breaks linking with suncc sometimes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:37:03 +02:00
Peter Ross
65a31a0de7 ansi: erase screen on first frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:23:39 +02:00
Peter Ross
3ac718d60a ansi: support 256-colors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:23:26 +02:00
Peter Ross
95b9e56beb ansi: support escaped codes where last argument is zero
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:22:34 +02:00
Peter Ross
368a768cbc ansi: remove misplaced return
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 15:22:20 +02:00
Michael Niedermayer
c3f20cef06 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: only free vfilters on exit
  ffplay: replace SDL_delay in read thread with SDL_CondWait
  ffplay: requeue last picture on forced video refresh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 14:59:08 +02:00
Michael Niedermayer
75a4b91f83 Merge remote-tracking branch 'stev47/master'
* stev47/master:
  cpia: move reget_buffer after header check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 14:23:05 +02:00
Michael Niedermayer
899101d3d3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  crypto: Remove a stray double space
  Rename missed cases of FF_OPT_TYPE_* to AV_OPT_TYPE_*

Conflicts:
	libavfilter/vf_delogo.c
	libavfilter/vf_lut.c
	libavfilter/vsrc_testsrc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 14:09:32 +02:00
Carl Eugen Hoyos
a26789cf9f Fix compilation with yasm-0.6.2. 2012-09-01 10:59:16 +02:00
Stephan Hilb
e309677100 Merge branch 'master' of git://source.ffmpeg.org/ffmpeg 2012-09-01 10:16:56 +02:00
Stephan Hilb
296140ebfb cpia: move reget_buffer after header check
If the header is invalid, there is no need to get at buffer.
Do it after the header has been checked.
Suggested by Reimar Döffinger
2012-09-01 10:12:33 +02:00
Stefano Sabatini
d55252c331 lavfi/mp: remove decimate wrapper
It was natively integrated into libavfilter.
2012-09-01 09:26:12 +02:00
Michael Niedermayer
3061664a57 avoid ambigous buffersink names
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 06:05:08 +02:00
Michael Niedermayer
e4e02a7d47 libavfilter: Support the forks ABI for buffer sinks
With this change avconv compiled against libav and linked to ffmpegs libs
will run through the whole fate testsuite without any crashes.
857 tests pass, the remaining tests fail one way or another, which is
to be expected as avconv is not a drop in replacement for ffmpeg
The testsuite used was the ffmpeg fate testsuite, not libavs.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 06:05:08 +02:00
Philip Langdale
9d89c8b3ac matroskadec, matroskadec, srtenc: Read/Write duration for subtitles.
After much discussion and back-and-forth, we reached the conclusion
that matroska uses convergence_duration for subtitle duration because
a 32bit value isn't large enough to store the duration if sub-micro-second
timebases are used. Matroska may not be the only one that supports these
timebases, but it's certainly the only one that ffmpeg attempts to support
in this way.

The long term solution that we seemed to reach was that if we encounter
a matroska file with a sub-micro-second timebase, we should internally
scale it up to at least micro-second, and then duration can be used
normally. This suggests that on the encode side, we should not allow
generation of files with sub-micro-second timebases, but that's a separate
issue.

That being a non-trivial change, and the subtitle interoperability breakage
being very real, I'm re-submitting this small change for consideration.

In this diff, we make sure that duration is populated by the matroska
demuxer, and that convergence_duration is respected in matroskaenc and
srtenc, but that duration is used otherwise. This ends up being a strict
improvement - pipelines that use convergence duration are unchanged, and
ones that are currently broken due to the duration mismatch will start
working - except for the ones with the extreme timebases, but those were
already broken.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-31 20:22:49 -07:00
Michael Niedermayer
6a0dfe3b9d fate-utvideoenc: remove unneeded -f avi
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 01:54:40 +02:00
Michael Niedermayer
4814326533 swr/resample: update SSSE3 flag to new name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-01 01:29:36 +02:00
Martin Storsjö
12c8912de2 crypto: Remove a stray double space
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-31 23:27:27 +02:00
Martin Storsjö
235f74db59 Rename missed cases of FF_OPT_TYPE_* to AV_OPT_TYPE_*
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-31 23:27:21 +02:00
Piotr Bandurski
5059162659 flic: use AV_LOG_ERROR for error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 23:04:05 +02:00
Piotr Bandurski
d2b927d4fc filmstripdec: add new line to error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 23:03:18 +02:00
Michael Niedermayer
dfb4757bbe lavc: support building with the forks ABI for avcodec_find_best_pix_fmt2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 21:35:40 +02:00
Michael Niedermayer
42e78552c8 configure: add switch to enable debian/libav compatible ABI
needed for avcodec_find_best_pix_fmt2()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 21:35:39 +02:00
Michael Niedermayer
7b607eb5e7 avfiltergraph: use avcodec_find_best_pix_fmt_of_2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 21:35:39 +02:00
Michael Niedermayer
704a5a06cb ffmpeg_filter: use avcodec_find_best_pix_fmt_of_2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 21:35:39 +02:00
Michael Niedermayer
2a54ae9df8 imgconvert: add avcodec_find_best_pix_fmt_of_2()
and deprecate avcodec_find_best_pix_fmt2()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 21:35:39 +02:00
Marton Balint
55594447d6 ffplay: only free vfilters on exit
Freeing it in the end of the video thread is not a good idea, because we still
may need the filter names for the next video thread, in order to apply the
filters after chaning the video stream.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-08-31 21:00:20 +02:00
Marton Balint
0e5042be28 ffplay: replace SDL_delay in read thread with SDL_CondWait
When the audio queue was empty, it was not filled until the 10ms delay expired
in the read thread. This patch changes the delay method with a condition wait,
which reacts to an empty queue a lot faster, therefore the audio buffer
underruns become less common especially after seeking.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-08-31 21:00:20 +02:00
Marton Balint
4a45e722e3 ffplay: requeue last picture on forced video refresh
Fixes ticket #1609.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-08-31 21:00:20 +02:00
Reimar Döffinger
fe79fc2ea5 dvbsubdec: set width/height from display def if not set.
This fixes playback of DVB subtitles in
http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket1065/Test1.wtv
in MPlayer.
FFplay is not affected since it assumes that the subtitles
are scaled to match the video - but this usually isn't the
case after rescaling the video and stream-copying subtitles.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-31 19:58:09 +02:00
Reimar Döffinger
dddd006cab wtvdec: set correct codec ID for CC streams.
Closed caption data is definitely not teletext.
Since it contains a EIA-608 compatibility stream,
the EIA_608 codec ID is at least not completely wrong.
Fixes subtitle playback in MPlayer with the sample in
trac ticket #1482.
To fix the ticket itself I expect FFmpeg will need
a closed-caption to SRT decoder first.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-31 19:58:09 +02:00
Jérémy Tran
54ca7e39da lavfi/hue: add process_command callback
This allows dynamic reconfiguration of the filter.
The callback uses some code that was in the init function. Hence this code
has been moved in its own function.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-31 18:09:30 +02:00
Stefano Sabatini
fa838a0c0f configure: add decimate filter dependency on avcodec 2012-08-31 17:49:24 +02:00
Stefano Sabatini
9dd3d6c72a lavfi: port decimate libmpcodecs filter
This filter is based on the MPlayer decimate filter by Rich Felker.
2012-08-31 16:04:37 +02:00
Stefano Sabatini
6c0107822d lavfi/mp=decimate: fix off-by-one logic in diff_C() x loop
Set x offset values in the range 0-7, rather than in the range 8-1.

The y loop is changed accordingly, to avoid confusion.

This also fixes output difference with the new pending native decimate
filter.
2012-08-31 16:04:12 +02:00
Stefano Sabatini
e64b941dbc lavfi/mp: remove smartblur filter
It was natively integrated into libavfilter.
2012-08-31 16:02:49 +02:00
Michael Niedermayer
d7587ba1c6 flvdec: remove duplicate return
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 15:45:23 +02:00
Michael Niedermayer
0b7d12e840 vf_mp: fix duplicate return
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 15:45:23 +02:00
Carl Eugen Hoyos
52be5428c0 Add some missing _EXTERNAL suffixes to yasm source files. 2012-08-31 15:39:03 +02:00
Michael Niedermayer
9cb9199970 buffersink: remove stray ;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 15:22:01 +02:00
Michael Niedermayer
e234301c2c bintext: remove stray ;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 15:20:57 +02:00
Michael Niedermayer
f61ee9b564 dsicinav: fix signed integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 15:15:59 +02:00
Michael Niedermayer
a9a1bc56ab ffplay: get rid of void casts in the option table
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 14:26:20 +02:00
Michael Niedermayer
b1034505db ffplay: fix function parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 14:25:57 +02:00
Michael Niedermayer
c617bed34f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  MSS1 and MSS2: set final pixel format after common stuff has been initialised
  MSS2 decoder
  configure: handle --disable-asm before check_deps
  x86: Split inline and external assembly #ifdefs
  configure: x86: Separate inline from standalone assembler capabilities
  pktdumper: Use a custom define instead of PATH_MAX for buffers
  pktdumper: Use av_strlcpy instead of strncpy
  pktdumper: Use sizeof(variable) instead of the direct buffer length

Conflicts:
	Changelog
	configure
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/dct-test.c
	libavcodec/imgconvert.c
	libavcodec/mss12.c
	libavcodec/version.h
	libavfilter/x86/gradfun.c
	libswscale/x86/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 13:34:32 +02:00
Michael Niedermayer
98298eb103 Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5'
* commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5':
  x86: Fix linking with some or all of yasm, mmx, optimizations disabled
  configure: Add more fine-grained SSE CPU capabilities flags
  avfilter: x86: Use more precise compile template names
  x86: cosmetics: Comment some #endifs for better readability
  g723_1: add comfort noise generation
  utvideoenc: Switch to dsputils' median prediction
  utvideoenc: Avoid writing into the input picture
  avtools: remove the distinction between func_arg and func2_arg.
  avconv: make the -passlogfile option per-stream.
  avconv: make the -pass option per-stream.
  cmdutils: make -codecs print lossy/lossless flags.
  lavc: add lossy/lossless codec properties.

Conflicts:
	Changelog
	cmdutils.c
	configure
	doc/APIchanges
	ffmpeg.h
	ffmpeg_opt.c
	ffprobe.c
	libavcodec/codec_desc.c
	libavcodec/g723_1.c
	libavcodec/utvideoenc.c
	libavcodec/version.h
	libavcodec/x86/mpegaudiodec.c
	libavcodec/x86/rv40dsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 13:01:30 +02:00
Carl Eugen Hoyos
f3683349ae Write TIFF Tag ExtraSamples when encoding pix_fmts that contain transparency information. 2012-08-31 11:15:07 +02:00
Carl Eugen Hoyos
5eb532a930 Cosmetics: Reorder pix_fmts in tiffenc.c. 2012-08-31 11:01:02 +02:00
Carl Eugen Hoyos
a5a90fa577 Simplify setting colour space for mono* when encoding tiff. 2012-08-31 10:57:36 +02:00
Alberto Delmás
ede3d6400d MSS1 and MSS2: set final pixel format after common stuff has been initialised
This way it won't interfere with WMV9 initialisation inside MSS2 decoder and
avplay will play it fine.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-31 08:08:43 +02:00
Alberto Delmás
ee769c6a7c MSS2 decoder
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-31 07:37:16 +02:00
Michael Niedermayer
e7b4337777 v4l2: fix compile on systems that lack V4L2_PIX_FMT_CPIA1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 04:35:06 +02:00
Mans Rullgard
d96d6ba618 configure: handle --disable-asm before check_deps
This is necessary to avoid spuriously enabling _external or _inline
variants of arch extensions when they should be disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-31 01:59:23 +01:00
Diego Biurrun
17337f54c0 x86: Split inline and external assembly #ifdefs 2012-08-31 01:53:25 +02:00
Diego Biurrun
43b73d59a8 configure: x86: Separate inline from standalone assembler capabilities 2012-08-31 01:53:25 +02:00
Stephan Hilb
6eac554659 Add CPiA video decoder
The cpia video decoder is intended to be used with the v4l2 demuxer.
There are some small changes to the v4l2 demuxer to support the
variable frame length of the format.
Fixes ticket #1537

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 00:24:11 +02:00
Michael Niedermayer
469f8b1dcb ffmpeg: Fix assert failure
Fixes Ticket1674

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-31 00:00:28 +02:00
Michael Niedermayer
19d8954966 find_stream_info: update last_dts more often
This improves dts validity checks and consequently fps detection of files with invalid dts
Fixes Ticket1681

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 23:48:54 +02:00
Martin Storsjö
21411a4102 pktdumper: Use a custom define instead of PATH_MAX for buffers
PATH_MAX is not necessarily available on all systems, e.g. it's
normally not available on MSVC, and is not guaranteed to defined
on a POSIX system either.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-31 00:44:47 +03:00
Martin Storsjö
bcc44873d9 pktdumper: Use av_strlcpy instead of strncpy
This takes care of null-terminating the buffer if it is too small,
which wasn't handled properly before.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-31 00:44:35 +03:00
Martin Storsjö
372de27df7 pktdumper: Use sizeof(variable) instead of the direct buffer length
Also change the snprintf size to use the full buffer, since
snprintf always null-terminates the buffer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-31 00:44:21 +03:00
Stefano Sabatini
db0a0aa243 examples/scaling_video: add logging in case of image allocation failure 2012-08-30 23:39:32 +02:00
Stefano Sabatini
952caf11f2 examples/muxing: remove pointless #undef exit 2012-08-30 23:39:32 +02:00
Michael Niedermayer
438b86fed4 faxcompr: fix byte alignment case
Fixes Ticket1653

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 22:24:58 +02:00
Stefano Sabatini
cb6defb053 examples/scaling_video: consistently use printf rather than av_log() 2012-08-30 21:48:50 +02:00
Stefano Sabatini
078e203379 examples/scaling_video: add file doxy 2012-08-30 21:48:24 +02:00
Stefano Sabatini
e53becc70f examples/Makefile: give priority to pkg-config flags
In case CFLAGS/LDLIBS are already defined and conflicting with the
pkg-config flags, give priority to the latter since they are used to
detect compilation flags.

This should fix for example the case where there are many different
instances of a library, CFLAGS=-I/foo/include and pkg-config cflags say
-I/bar/include.
2012-08-30 21:46:44 +02:00
Diego Biurrun
ec36aa6944 x86: Fix linking with some or all of yasm, mmx, optimizations disabled
Some optimized template functions reference optimized symbols, so they
must be explicitly disabled when those symbols are unavailable.
2012-08-30 19:37:32 +02:00
Diego Biurrun
50cd43f2cd configure: Add more fine-grained SSE CPU capabilities flags 2012-08-30 19:29:32 +02:00
Diego Biurrun
cdaec0b240 avfilter: x86: Use more precise compile template names 2012-08-30 18:51:51 +02:00
Diego Biurrun
a886b279a0 x86: cosmetics: Comment some #endifs for better readability 2012-08-30 18:50:33 +02:00
Kostya Shishkov
04fc5c6bde g723_1: add comfort noise generation 2012-08-30 18:21:12 +02:00
Michael Niedermayer
6fc892d271 libvorbisdec: fix const nitpick warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 18:01:14 +02:00
Michael Niedermayer
040405b59e utvideoenc: Switch to dsputils' median prediction
Also, align the mangled RGB planes, which is required for the
SIMD versions of dsputils' median predict.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 11:59:19 -04:00
Michael Niedermayer
bbefd27e52 utvideoenc: Avoid writing into the input picture
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 11:59:19 -04:00
Michael Niedermayer
370bb893d2 mp3enc: fix const correctness
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 17:56:38 +02:00
Michael Niedermayer
0e781d9405 utvideoenc: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 17:50:33 +02:00
Michael Niedermayer
e8e4c8bdde Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: allow non-standard variations of linker -l/-L flags
  Add reminders to update the codec descriptor list with new codec IDs.

Conflicts:
	Makefile
	configure
	libavcodec/avcodec.h
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 17:28:21 +02:00
Anton Khirnov
11d957fbd8 avtools: remove the distinction between func_arg and func2_arg.
func2_arg is the same as func_arg, except it has one additional
parameter. Change all func_arg callbacks to take that parameter (and
ignore it).
2012-08-30 13:56:25 +02:00
Anton Khirnov
bbcedade00 avconv: make the -passlogfile option per-stream. 2012-08-30 13:56:25 +02:00
Anton Khirnov
038c0b1e06 avconv: make the -pass option per-stream. 2012-08-30 13:56:24 +02:00
Anton Khirnov
e2785fa728 cmdutils: make -codecs print lossy/lossless flags. 2012-08-30 13:56:00 +02:00
Anton Khirnov
a2318326f1 lavc: add lossy/lossless codec properties. 2012-08-30 13:55:55 +02:00
Michael Niedermayer
f4c020e3ad swscale: fix usePal()
Fixes Ticket1702

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 13:37:03 +02:00
Michael Niedermayer
340e8e0b22 dnxhdenc: fix pointer type warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 11:47:57 +02:00
Michael Niedermayer
b0545800bd wmalosslessdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 11:11:31 +02:00
Michael Niedermayer
d40e2c7a86 avfiltergraph: kill uninitialized variable warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 11:02:15 +02:00
Michael Niedermayer
5e363bb9b3 flvenc: kill a uninitialized variable warning.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 05:20:51 +02:00
Michael Niedermayer
b3facc4af8 ac3dec: fix uninitialized var warning
This commit should be purely cosmetic

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 05:17:24 +02:00
Michael Niedermayer
310fd0d3d4 vsrc_testsrc: fix uninitilaized variable bug
Found-by: gcc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 05:15:03 +02:00
Michael Niedermayer
19dceef905 vf_framestep: fix uninitilaized variable bug
Found-by: gcc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 05:09:15 +02:00
Michael Niedermayer
afe6f337ad swscale.c: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 02:38:10 +02:00
Michael Niedermayer
19008e06c6 wmavoice: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 02:34:00 +02:00
Michael Niedermayer
158a70f17a mov: fix av_log int type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 00:22:58 +02:00
Michael Niedermayer
946ed78f5f aacdec: fix priming/skip for AAC HE/HE2
There is a remaining error of 2 - 8 samples in some but not all cases,
the source of the error is unknown ATM.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 00:22:58 +02:00
Michael Niedermayer
0fc684ff7c aacdec: pass AVPacket to aac_decode_frame_int()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-30 00:12:49 +02:00
Michael Niedermayer
818f3dc907 audio_frame_que: remove broken code that is specific to old audio_que
This should fix compilation with -DDEBUG

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 19:22:29 +02:00
Ramiro Polla
ad7fae4ee1 dshow: allow user to specify audio buffer size
Based on patch by rogerdpack <rogerpack2005@gmail.com>

Tested-by: Roger Pack <rogerdpack2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 18:58:20 +02:00
Nicolas George
a5704659e3 lavfi/af_atempo: use av_malloc for rDFT buffers.
Memory obtained from av_realloc is not aligned enough for AVX.
The other similar allocations are changed too because they use
the same macro. The buffers were cleared afterwards anyway.

Fix trac ticket #1692.
2012-08-29 18:19:41 +02:00
Philip Langdale
7816c7e772 Add missing codec descriptor for timingless subrip.
Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-29 09:18:05 -07:00
Michael Niedermayer
8579d4b2f0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: export filtered -lz flag in config.mak
  build: add separate setting for host linker
  configure: probe_cc: use separate variable for linker output flag
  x86: Always compile files with functions that are called unconditionally
  x86: mpegvideoenc: fix linking with --disable-mmx
  x86: mpegvideoenc: Do not abuse HAVE_ variables for template instantiation

Conflicts:
	Makefile
	configure
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 18:13:00 +02:00
Michael Niedermayer
1c66807636 Merge commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112'
* commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112':
  configure: support Bitrig OS
  yuv2rgb: handle line widths that are not a multiple of 4.
  graph2dot: Use the fallback getopt implementation if needed
  tools: Include io.h for open/read/write/close if unistd.h doesn't exist
  testprogs: Remove unused includes
  qt-faststart: Use other seek/tell functions on MSVC than on mingw
  ismindex: Include direct.h for _mkdir on windows
  sdp: Use static const char arrays instead of pointers to strings
  x86: avcodec: Drop silly "_mmx" suffixes from filenames
  x86: avcodec: Drop silly "_sse" suffixes from filenames
  sdp: Include profile-level-id for H264
  utvideoenc: use ff_huff_gen_len_table
  huffman: add ff_huff_gen_len_table
  cllc: simplify/fix swapped data buffer allocation.
  rtpdec_h264: Don't set the pixel format
  h264: Check that the codec isn't null before accessing it
  audio_frame_queue: Define af_queue_log_state before using it

Conflicts:
	libavcodec/audio_frame_queue.c
	libavcodec/h264.c
	libavcodec/huffman.h
	libavcodec/huffyuv.c
	libavcodec/utvideoenc.c
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 18:04:34 +02:00
Mans Rullgard
8db73c61a7 build: allow non-standard variations of linker -l/-L flags
This enables replacing the -l and -L flags used to specify the
just-built libraries when linking the tools and shared libs with
non-standard syntaxes.  System library flags are already handled
by the filtering mechanism in configure.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-29 14:16:54 +01:00
Michael Niedermayer
85c830331c lavc: protect calls to frame_thread_encoder by HAVE_THREADS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 11:36:56 +02:00
Paul B Mahol
e4fff08f5b exr: fix decoding ZIP16 and height not multiple of 16
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-29 09:33:41 +00:00
Anton Khirnov
bbabeb56fa Add reminders to update the codec descriptor list with new codec IDs. 2012-08-29 10:47:59 +02:00
Michael Niedermayer
2d5c80b2e8 frame_thread_encoder: pass frame pict type and quality
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 04:26:59 +02:00
Michael Niedermayer
097a909ea1 frame_thread_encoder: pass private options
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 04:26:36 +02:00
Mans Rullgard
7baa115a33 build: export filtered -lz flag in config.mak
This is needed to link tools/cws2fws using a linker with non-standard
command line syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-28 23:40:30 +01:00
Mans Rullgard
095792f253 build: add separate setting for host linker
This adds new HOSTLD and related settings for host linker allowing
it to be different from HOSTCC.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-28 23:40:30 +01:00
Mans Rullgard
2763587c83 configure: probe_cc: use separate variable for linker output flag
Some tools use different command line syntax for specifying output
when compiling and linking.  To accomodate these, separate variables
must be used.  No currently supported compilers/linkers are affected
by the change.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-28 23:40:30 +01:00
Andrey Utkin
028b6d2b5c Add 'timeout' option to UDP protocol
This patch accepts 'timeout' option for input mode only. As far as i know, UDP output cannot introduce delays.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 00:28:07 +02:00
Diego Biurrun
2e6f93a284 x86: Always compile files with functions that are called unconditionally 2012-08-29 00:27:06 +02:00
Diego Biurrun
2f2aa2e542 x86: mpegvideoenc: fix linking with --disable-mmx
The optimized dct_quantize template functions reference optimized
fdct symbols, so these functions must only be enabled if the relevant
optimizations have been enabled by configure.
2012-08-29 00:26:56 +02:00
Brad Smith
d488c3bcba configure: support Bitrig OS
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-29 00:14:52 +02:00
Diego Biurrun
d39791bf39 x86: mpegvideoenc: Do not abuse HAVE_ variables for template instantiation
This avoids trouble if HAVE_ variables are used elsewhere in the file.
2012-08-29 00:14:52 +02:00
Andrey Utkin
7870722592 Add 'rw_timeout' into URLContext
If set non-zero, limits duration of retry_transfer_wrapper() loop, thus
affects ffurl_read*(), ffurl_write()
Measured in microseconds.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-29 00:05:03 +02:00
Ronald S. Bultje
b64a72e1b2 yuv2rgb: handle line widths that are not a multiple of 4.
This introduces support for width%4==2 in addition to width%4==0. For
odd widths, some more checks are needed, since the current code always
handles two luma items in a row, thus there is a possibility of an
overread by one.
2012-08-28 14:58:52 -07:00
Martin Storsjö
09d5e02ab0 graph2dot: Use the fallback getopt implementation if needed
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-29 00:24:39 +03:00
Martin Storsjö
212ec5faf9 tools: Include io.h for open/read/write/close if unistd.h doesn't exist
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-29 00:24:07 +03:00
Martin Storsjö
3ad9eac5a0 testprogs: Remove unused includes
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-29 00:23:51 +03:00
Martin Storsjö
dd4169ab92 qt-faststart: Use other seek/tell functions on MSVC than on mingw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-29 00:23:34 +03:00
Martin Storsjö
bff714ad4c ismindex: Include direct.h for _mkdir on windows
The Windows SDK in MSVC doesn't have mkdir, only _mkdir, and
MSDN says one should include direct.h to use it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-29 00:23:18 +03:00
Nicolas George
a9b1a151d2 ffmpeg: count finished streams for last stats line.
Otherwise, all streams are finished and the time is nonsensical.
2012-08-28 23:19:33 +02:00
Michael Niedermayer
6c06b566d2 rtpenc_xiph: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 22:29:20 +02:00
Martin Storsjö
d4bba93f4d sdp: Use static const char arrays instead of pointers to strings
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-28 22:35:17 +03:00
Clément Bœsch
c149586884 gitignore: add scaling_video example. 2012-08-28 20:35:04 +02:00
Stefano Sabatini
2cbffc6706 examples/Makefile: remove duplicated -f switch
$(RM) already includes that flag.

Spotted-by: ubitux
2012-08-28 20:09:42 +02:00
Stefano Sabatini
74419fcf45 examples: add scaling_video example
This example should be useful to show the basic functionality of the
libswscale API.

More advanced features (scaling options etc., colorspace tweaking) may be
added later.
2012-08-28 20:09:37 +02:00
Jérémy Tran
316afee708 lavfi: add smartblur filter
This is a port of the MPlayer smartblur filter (libmpcodecs/vf_smartblur.c)
by Michael Niedermayer.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-28 19:48:16 +02:00
Nicolas George
18217bb0f5 ffmpeg: report max time of unfinished streams in stats.
Eliminating finished streams avoids the progress stopping
with the first stream.
Using the max instead of the min avoids the progress stopping
with gaps in sparse streams (subtitles).
Negligible change for normal circumstances.
2012-08-28 18:48:32 +02:00
Diego Biurrun
bcc45d6348 x86: avcodec: Drop silly "_mmx" suffixes from filenames 2012-08-28 18:37:34 +02:00
Diego Biurrun
efbd04c332 x86: avcodec: Drop silly "_sse" suffixes from filenames 2012-08-28 18:37:33 +02:00
Martin Storsjö
06b5246c84 sdp: Include profile-level-id for H264
This is required for playback with the Stagefright RTSP framework
on Android.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-28 19:32:19 +03:00
Xidorn Quan
1ea77a52c0 add myself as vda decoder maintainer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 18:01:22 +02:00
Ronald S. Bultje
ba53720280 lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 17:52:03 +02:00
Michael Niedermayer
6d35470063 utvideoenc: use ff_huff_gen_len_table
Avoid code duplication and provide faster and better compression.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-28 17:43:25 +02:00
Michael Niedermayer
5a582bd3b5 huffman: add ff_huff_gen_len_table
The function will be used by utvideo as well.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-28 17:43:25 +02:00
Reimar Döffinger
998f92d680 cllc: simplify/fix swapped data buffer allocation.
Using the malloc variant avoids pointless memcpy on size
increase and simplifies handling allocation failure.
Also change code to ensure that allocation, bswap and bitstream
reader all use the same size, even when the packet size is odd
for example.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-28 11:37:53 -04:00
Samuel Pitoiset
6af2480aa6 rtpdec_h264: Don't set the pixel format
There is no need for this depacketizer to set the pixel format,
the decoder can do that just fine.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-28 18:16:00 +03:00
Martin Storsjö
6f5b1a2ba4 h264: Check that the codec isn't null before accessing it
This fixes crashes introduced by 2e8f3cbcda, the codec can be null
when called from parsers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-28 18:15:38 +03:00
Martin Storsjö
0b58c77ed1 audio_frame_queue: Define af_queue_log_state before using it
This fixes building with DEBUG defined after the function was made
static and the prototype removed in d7f9786cbc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-28 17:32:17 +03:00
Michael Niedermayer
416d2f7a12 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1: export some functions
  configure: use HOSTCC_C/O in check_host_cc
  configure: use AS_O setting in check_as
  configure: use LD_O setting in check_ld()
  Revert "dsputil: make {add/put/put_signed}_pixels_clamped() non-static."
  build: Restore dependency of acelp_filters.o on celp_math.o
  celp_math: Replace duplicate ff_dot_productf() by ff_scalarproduct_c()
  celp_math: Move ff_cos() to the only place it is used
  build: Use portable abstraction for linker/hostcc output file syntax
  configure: Fix shared library creation for OpenBSD
  vp56: Don't use DECLARE_ALIGN on a typedef name
  mss1: move code that will be reused by MSS2 decoder into separate file
  mss1: merge decode_intra() and decode_inter()
  avprobe: Get rid of ugly casts in the options table
  vf_hqdn3d: Remove a duplicate inline declaration

Conflicts:
	Makefile
	configure
	ffprobe.c
	libavcodec/Makefile
	libavcodec/amrnbdec.c
	libavcodec/amrwbdec.c
	libavcodec/celp_math.c
	libavcodec/celp_math.h
	libavcodec/dsputil.c
	libavcodec/lsp.c
	libavcodec/mss1.c
	libavcodec/ra288.c
	libavcodec/vc1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 16:28:48 +02:00
Nicolas George
fb6fb0dedb tools: add make_chlayout_test perl script.
This script uses the flite source to produce files
suitable to test channels order and layout.
2012-08-28 15:18:27 +02:00
Nicolas George
786dadc014 cmdutils: add -layouts option.
Extract of the output:

| Individual channels:
| NAME        DESCRIPTION
| FL          front left
| FR          front right
| <snip>
| SDR         surround direct right
|
| Standard channel layouts:
| NAME        DECOMPOSITION
| mono        FC
| stereo      FL+FR
| <snip>
| octagonal   FL+FR+FC+BL+BR+BC+SL+SR
| downmix     DL+DR
2012-08-28 15:09:49 +02:00
Derek Buitenhuis
61e262f6d7 vp56: Don't use DECLARE_ALIGN on a typedef name
Instead, use it on the first member, since by definition, if
any member is aligned, the whole struct must be, in order to
maintain that alignment.

Fixes compilation with some finicky compilers, like a mix of libclang/msvc

Idea for fix from Måns Rullgård.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 15:04:16 +02:00
Kostya Shishkov
7627c35a81 vc1: export some functions
This is a preparatory step for the MSS2 decoder which needs to use
the WMV9 decoder to decode some kinds of frames.

From the patch by Alberto Delmás <adelmas@gmail.com>
2012-08-28 07:37:06 +02:00
Michael Niedermayer
4f92d31aa4 vf_hqdn3d: remove duplicate inline
This should fix compilation with gcc 3

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 05:31:20 +02:00
Michael Niedermayer
fa6c795c3f allcodecs: fix vda order
Found-by: compn
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 04:11:14 +02:00
Michael Niedermayer
e3b87b355c configure: fix vda order
Found-by: compn
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 04:10:50 +02:00
Xidorn Quan
78cca74222 vdadec: implement vda decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 04:07:53 +02:00
Michael Niedermayer
e367d90664 aiffdec: support QDM2
Fixes ticket204

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-28 03:18:21 +02:00
Mans Rullgard
ae43c4c0c0 configure: use HOSTCC_C/O in check_host_cc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 23:14:06 +01:00
Mans Rullgard
df0d634138 configure: use AS_O setting in check_as
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 23:14:06 +01:00
Mans Rullgard
29b64b6827 configure: use LD_O setting in check_ld()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 23:14:06 +01:00
Mans Rullgard
dbc9f84ea6 Revert "dsputil: make {add/put/put_signed}_pixels_clamped() non-static."
This reverts commit 484a337cd7.

These functions were used in f8bed30 "VC1: merge idct8x8, coeff
adjustments and put_pixels" which was reverted in 18b6a69.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 22:24:05 +01:00
Diego Biurrun
3d868fe542 build: Restore dependency of acelp_filters.o on celp_math.o 2012-08-27 21:05:52 +02:00
Diego Biurrun
dafcbfe443 celp_math: Replace duplicate ff_dot_productf() by ff_scalarproduct_c() 2012-08-27 20:37:49 +02:00
Diego Biurrun
5549854335 celp_math: Move ff_cos() to the only place it is used 2012-08-27 20:37:48 +02:00
Diego Biurrun
8f7c26e392 build: Use portable abstraction for linker/hostcc output file syntax 2012-08-27 20:37:48 +02:00
Brad Smith
d5683aba5a configure: Fix shared library creation for OpenBSD
OpenBSD does not expect or require symlinked shared libraries with
just the major version in the name.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-27 20:37:47 +02:00
Derek Buitenhuis
5395d882b4 vp56: Don't use DECLARE_ALIGN on a typedef name
Instead, use it on the first member, since by definition, if
any member is aligned, the whole struct must be, in order to
maintain that alignment.

Fixes compilation with some finicky compilers.

Idea for fix from Måns Rullgård.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-27 14:08:17 -04:00
Kari Lentz
be862c0dac movenc: support for itunes tempo tag
Implements support for tmpo atom for mp4 files, typically used to store BPM.  -metadata "tmpo=127" as a command line option will record 127 as the BPM in the meta data.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 19:06:32 +02:00
Reimar Döffinger
237f53ce85 cllc: simplify/fix swapped data buffer allocation.
Using the malloc variant avoids pointless memcpy on size
increase and simplifies handling allocation failure.
Also change code to ensure that allocation, bswap and bitstream
reader all use the same size, even when the packet size is odd
for example.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-27 19:00:47 +02:00
Georg Lippitsch
5cc5d9d5f7 dpx: 10 and 12 bit decoding
Rewrite 10 bit dpx decoder to decode into GBRP10 color space
instead of converting to RGB48.
Add 12 bit decoder to decode into GBRP12 color space.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 18:31:21 +02:00
Kostya Shishkov
0de4a563e4 mss1: move code that will be reused by MSS2 decoder into separate file 2012-08-27 18:12:10 +02:00
Kostya Shishkov
49df339f4b mss1: merge decode_intra() and decode_inter()
They have most of their code in common.
2012-08-27 18:11:50 +02:00
Martin Storsjö
b42be2d56a avprobe: Get rid of ugly casts in the options table
This also makes sure the function pointers are stored via the same
union member as they are accessed via.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-27 18:59:06 +03:00
Michael Niedermayer
99f5090714 aiffdec: try #2 to fix bps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 16:50:59 +02:00
Michael Niedermayer
4abb88d7e8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_hqdn3d: Don't declare the loop variable within the for loop
  huffyuv: update to current coding style
  huffman: update to current coding style
  rtsp: Free the rtpdec context properly
  build: fft: x86: Drop unused YASM-OBJS-FFT- variable

Conflicts:
	libavcodec/huffman.c
	libavcodec/huffyuv.c
	libavcodec/x86/Makefile
	libavfilter/vf_hqdn3d.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 16:32:44 +02:00
Martin Storsjö
b441a4517b vf_hqdn3d: Remove a duplicate inline declaration
Compilation seems to fail on GCC 3.4 due to this duplicate
declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-27 16:40:59 +03:00
Martin Storsjö
2bd67175c7 vf_hqdn3d: Don't declare the loop variable within the for loop
This C99 feature is generally not used in the libav codebase,
since it breaks building with some fringe compilers (GCC 2.95,
MSVC).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-27 15:29:39 +03:00
Luca Barbato
e0f7a9f6e7 huffyuv: update to current coding style 2012-08-27 13:26:58 +02:00
Luca Barbato
f76e47877c huffman: update to current coding style 2012-08-27 13:26:58 +02:00
Martin Storsjö
125c6c0752 rtsp: Free the rtpdec context properly
The condition for calling the rtpdec cleanup was broken in
df8cf076c8.

This fixes a memory leak.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-27 12:29:47 +03:00
Stefano Sabatini
60924dfe55 examples/decoding_encoding: make operation logic more self-evident / predictable
Add a switch which controls which operation to perform.  Useful to test
only a single feature. Also the new behavior is more self-consistent.
2012-08-27 10:09:48 +02:00
Stefano Sabatini
3b0e2763f4 examples/Makefile: apply misc minor fixes to the RM rule
Use $(RM) in place of rm, drop useless "-r" for removing files.
2012-08-27 10:09:39 +02:00
Stefano Sabatini
c0bca6425d examples/decoding_encoding: store temporary files in current dir
Do not clutter the temporary directory with files, also "/tmp" is not
always available, e.g. in Windows.

Also add the clean-test Makefile rule, which will clean the generated
files.
2012-08-27 10:09:31 +02:00
Carl Eugen Hoyos
73b40dafc8 Use correct format identifier for uint64_t. 2012-08-27 09:14:40 +02:00
Michael Niedermayer
4e8b206092 mpc: fix seeking to the end
Fixes Ticket1689

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 05:23:42 +02:00
Michael Niedermayer
a503afb11f mpc: clip seeking timestamp in valid range
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 04:51:27 +02:00
Diego Biurrun
3f02c533f3 build: fft: x86: Drop unused YASM-OBJS-FFT- variable 2012-08-27 03:10:58 +02:00
Michael Niedermayer
b9b97c2fb9 aiffdec: fix bits per sample
Fixes Ticket1660

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 02:54:00 +02:00
Marton Balint
a366beaf6a ffplay: fix odd YUV width by cropping the video
Should fix issue #1322.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 01:44:57 +02:00
jamal
95d1af1188 build: Fix compilation when configuring with a prog suffix
Fixes ticket #1676

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 01:32:13 +02:00
Michael Niedermayer
851bac4b06 vf_hqdn3d: avoid declaring variable in for()
This should fix compilation with gcc 2.95 and possibly others

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-27 00:36:31 +02:00
Michael Niedermayer
17106a7c90 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  audio_frame_queue: Clean up ff_af_queue_log_state debug function
  dwt: Remove unused code.
  cavs: convert cavsdata.h to a .c file
  cavs: Move inline functions only used in one file out of the header
  cavs: Move data tables used in only one place to that file
  fate: Add a single symbol Ut Video decoder test
  vf_hqdn3d: x86 asm
  vf_hqdn3d: support 16bit colordepth
  avconv: prefer user-forced input framerate when choosing output framerate

Conflicts:
	ffmpeg.c
	libavcodec/audio_frame_queue.c
	libavcodec/dwt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:40:02 +02:00
Michael Niedermayer
3a621c9d99 nutenc: Support writing an index
The seek test improves in accuracy
Fixes Ticket877

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:15:21 +02:00
Michael Niedermayer
b2a8ce4e67 nutenc: keep track of max_pts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:15:20 +02:00
Michael Niedermayer
c2a134c66c nutenc: keep track if keyframe PTS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:15:19 +02:00
Michael Niedermayer
e6a045ba56 nutdec: Flip the direction for seeking with an index in the failure case.
This is closer to how seeking works without an index

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:15:18 +02:00
Michael Niedermayer
cebbaf578d nutdec: improve information in error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:15:18 +02:00
Michael Niedermayer
d1ee2cf74a nutenc: keep track of the written syncpoint count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 22:15:16 +02:00
Diego Biurrun
d7f9786cbc audio_frame_queue: Clean up ff_af_queue_log_state debug function
The function is debug-only, so only compile it in debug mode.
Make it static as it has no uses outside of the file.
Change av_log() to av_dlog().
2012-08-26 19:45:23 +02:00
Diego Biurrun
1ce5dce454 dwt: Remove unused code. 2012-08-26 14:03:57 +02:00
Mans Rullgard
88386feefd cavs: convert cavsdata.h to a .c file
Defining tables in header files is ugly and prone to duplication.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-26 14:03:56 +02:00
Diego Biurrun
a6d9f9e60e cavs: Move inline functions only used in one file out of the header 2012-08-26 14:03:56 +02:00
Diego Biurrun
ef07ac1e12 cavs: Move data tables used in only one place to that file 2012-08-26 14:03:55 +02:00
Jan Ekström
09bd0ea94e fate: Add a single symbol Ut Video decoder test
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-26 14:03:55 +02:00
Loren Merritt
7a1944b907 vf_hqdn3d: x86 asm
13% faster on penryn, 16% on sandybridge, 15% on bulldozer
Not simd; a compiler should have generated this, but gcc didn't.
2012-08-26 10:49:14 +00:00
Loren Merritt
566858a770 vf_hqdn3d: support 16bit colordepth 2012-08-26 10:49:14 +00:00
Paul B Mahol
8f9941b160 avrndec: silence warning about incompatible pointer types
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-26 10:24:42 +00:00
Anton Khirnov
44b0b85fe9 avconv: prefer user-forced input framerate when choosing output framerate 2012-08-26 07:50:06 +02:00
Michael Niedermayer
bfb39023b0 h264: ff_init_cabac_states doesnt use its argument thus remove it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 05:44:46 +02:00
Michael Niedermayer
c684cb29bc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: fft: remove unused fft_dispatch* functions
  avconv: remove unused variable opt_shortest
  FATE: Add Canopus Lossless tests
  cllc: Pad swapped buffer

Conflicts:
	ffmpeg_opt.c
	tests/ref/fate/cllc-argb
	tests/ref/fate/cllc-rgb

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 02:34:24 +02:00
Michael Niedermayer
0c3a3b75d7 ac3_probe: fix probing of non standard AC3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-26 01:55:10 +02:00
Mans Rullgard
db70730291 x86: fft: remove unused fft_dispatch* functions
These functions are not used since the yasm conversion.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-25 23:58:26 +01:00
Mans Rullgard
cba79d2123 avconv: remove unused variable opt_shortest
This was replaced with a per-file value in 3c0df90.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-25 23:29:48 +01:00
Michael Niedermayer
4b9e44868b lavf: fix avio statistics for packets directly read without the buffer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-25 23:25:36 +02:00
Derek Buitenhuis
efab2e004a FATE: Add Canopus Lossless tests
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-25 16:46:50 -04:00
Philip Langdale
2626cc4580 matroska: Mark S_TEXT/UTF-8 as Subrip encoded subtitles.
While not explicitly stated in the specs, the original author
has stated that S_TEXT/UTF-8 is expected to be text using Subrip
markup, but without Subrip in-band timing.

So, now that we have a decoder that conforms to this expectation,
let's use it.

Note that this change will impact tools that use libavformat. If
they expect srt subtitles to have CODEC_ID_TEXT, they must be
adjusted to expect CODEC_ID_SUBRIP. The actual content is, obviously,
unchanged.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-25 13:15:41 -07:00
Piotr Bandurski
0bb37bbc0f riff: fix remuxing of atrac3 in wav
The original codec expects 0 as bps or refuses to play the remuxed file.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-25 20:21:52 +02:00
Paul B Mahol
65b552cc31 lavc: add some missing .long_name to codec_descriptors[]
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-25 10:53:47 +00:00
Carl Eugen Hoyos
4abb3539a6 Fix one of the problems with -codecs, -encoders and -decoders. 2012-08-25 08:49:23 +02:00
Derek Buitenhuis
aa7a565101 cllc: Pad swapped buffer
The bitstream buffer must be padded, or the bitstream reader might
read over the end.

Fixes the following valgrind warning:
    Use of uninitialised value of size 8 at 0x591BAE: cllc_decode_frame (cllc.c:166)

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-24 22:19:21 -04:00
Georg Lippitsch
2a57c9ae8f dpx: 10 and 12 bit encoding
Encode GBRP10 pixel format into 10 bit DPX.
Encode GBRP12 pixel format into 12 bit DPX.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-25 03:55:50 +02:00
Stefano Sabatini
fef9e84114 examples/decoding_encoding.c: tell where the decoding output files are printed 2012-08-24 17:31:10 +02:00
Stefano Sabatini
864e8adcf1 examples/muxing: update to the new avcodec_encode_video2() API 2012-08-24 17:31:10 +02:00
Michael Niedermayer
5ac603df83 doc/developer: add "Adding files to the fate-suite dataset"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 17:24:47 +02:00
Michael Niedermayer
15a0fb58a3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  utvideodec: Fix single symbol mode decoding
  truespeech: drop useless casts
  libavcodec: drop bogus dependencies from mpc[78] and qdm2
  mpegaudio: move ff_mpa_enwindow to a separate file
  AVOptions: store defaults for INT64 options in int64 union member.

Conflicts:
	libavcodec/Makefile
	libavfilter/af_asyncts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 15:00:39 +02:00
Michael Niedermayer
bec180e112 Merge commit 'a1bcc76e6036e78f25cbb7323c145056cfca9d93'
* commit 'a1bcc76e6036e78f25cbb7323c145056cfca9d93': (21 commits)
  cmdutils: fix a memleak when specifying an option twice.
  x86: mpegvideo: more sensible names for optimization file and init function
  x86: mpegvideoenc: Split optimizations off into a separate file
  dnxhdenc: x86: more sensible names for optimization file and init function
  svq1/svq3: Move common code out of SVQ1 decoder-specific file
  dirac: add Comments and references to the standard
  lavr: x86: optimized 6-channel flt to fltp conversion
  lavr: x86: optimized 2-channel flt to fltp conversion
  lavr: x86: optimized 6-channel flt to s16p conversion
  lavr: x86: optimized 2-channel flt to s16p conversion
  lavr: x86: optimized 6-channel s16 to fltp conversion
  lavr: x86: optimized 2-channel s16 to fltp conversion
  lavr: x86: optimized 6-channel s16 to s16p conversion
  lavr: x86: optimized 2-channel s16 to s16p conversion
  lavr: x86: optimized 2-channel fltp to flt conversion
  lavr: x86: optimized 6-channel fltp to s16 conversion
  lavr: x86: optimized 2-channel fltp to s16 conversion
  lavr: x86: optimized 6-channel s16p to flt conversion
  lavr: x86: optimized 2-channel s16p to flt conversion
  lavr: x86: optimized 6-channel s16p to s16 conversion
  ...

Conflicts:
	libavcodec/dirac.c
	libavcodec/mpegvideo.h
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 14:30:40 +02:00
Michael Niedermayer
6b72615c32 rtpdec_xiph: switch to av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 13:44:25 +02:00
Stefano Sabatini
b66afe087a lavfi/asetpts,setpts: rework debug log
Show more information, and only the information stored in the values
array. Improve debugging usefulness.
2012-08-24 13:32:59 +02:00
Stefano Sabatini
1181461ca5 lavfi/asetpts,setpts: add variables T, STARTT, PREV_INT and PREV_OUTT 2012-08-24 13:32:21 +02:00
Jan Ekström
01cb4c84f5 utvideodec: Fix single symbol mode decoding
Put the zero length check in place of code that was never used
during decoding, as zero-length slices were generally refused
in decode_frame().

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-24 13:12:31 +02:00
Stefano Sabatini
3d6d59ef35 doc/filters: itemize examples for *settb filters 2012-08-24 12:54:45 +02:00
Stefano Sabatini
c45178cf5b doc/filters: itemize examples for *setpts filters 2012-08-24 12:54:45 +02:00
Stefano Sabatini
0043db2967 doc/filters: move *setpts and *settb filters to the multimedia filters section
Since audio and video filters are explained together and share most code,
the multimedia filters section seems more fitting.
2012-08-24 12:54:45 +02:00
Stefano Sabatini
0b9a915dad lavfi: rename vf_setpts.c to f_setpts.c
The file contains the asetpts audio filter.
2012-08-24 12:54:45 +02:00
Nicolas George
de60880543 lavc/dvdsubenc: check the type of rectangles.
Avoid a crash if a text rectangle is provided.
Fix the segfault reported in trac ticket #1661.
2012-08-24 12:12:41 +02:00
Mans Rullgard
081bab5ee3 truespeech: drop useless casts
These values already have the correct types.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-24 10:45:39 +01:00
Mans Rullgard
0c88e7a255 libavcodec: drop bogus dependencies from mpc[78] and qdm2
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-24 10:45:39 +01:00
Mans Rullgard
2e2b8ef8e0 mpegaudio: move ff_mpa_enwindow to a separate file
This table is used only by mpegaudiodsp and mpegaudioenc.  Separating
it allows dropping some dependencies from mpc[78] and qdm2.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-24 10:45:39 +01:00
Anton Khirnov
a1bcc76e60 cmdutils: fix a memleak when specifying an option twice. 2012-08-24 11:25:06 +02:00
Anton Khirnov
4d7adec8bd AVOptions: store defaults for INT64 options in int64 union member.
Double does not have enough precision to represent all int64 numbers
exactly.
2012-08-24 11:25:06 +02:00
Michael Niedermayer
12b1512e85 lavf/utils: Try to unwrap pts/dts so as to minimize wraps
Based on code by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 03:08:51 +02:00
Michael Niedermayer
254917f078 lavf/utils: run update_initial_timestamps() outside some if()
This way it gets executed earlier and updated timestamps become available earlier.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 03:07:03 +02:00
Diego Biurrun
dc40285427 x86: mpegvideo: more sensible names for optimization file and init function 2012-08-24 02:23:16 +02:00
Diego Biurrun
d211547ddd x86: mpegvideoenc: Split optimizations off into a separate file 2012-08-24 02:23:16 +02:00
Diego Biurrun
26ce9aec03 dnxhdenc: x86: more sensible names for optimization file and init function 2012-08-24 02:23:15 +02:00
Diego Biurrun
f1e06d37c9 svq1/svq3: Move common code out of SVQ1 decoder-specific file 2012-08-24 02:23:15 +02:00
Jordi Ortiz
43da682c87 dirac: add Comments and references to the standard
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-24 02:23:14 +02:00
Justin Ruggles
06e751a40f lavr: x86: optimized 6-channel flt to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
e07c9705c8 lavr: x86: optimized 2-channel flt to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
5245c9f3ad lavr: x86: optimized 6-channel flt to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
31d0d7181d lavr: x86: optimized 2-channel flt to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
6092dafb5a lavr: x86: optimized 6-channel s16 to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
91851a7b37 lavr: x86: optimized 2-channel s16 to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
205ace8843 lavr: x86: optimized 6-channel s16 to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
8eeffa8ada lavr: x86: optimized 2-channel s16 to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
b66e20d2aa lavr: x86: optimized 2-channel fltp to flt conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
d5b4e50c47 lavr: x86: optimized 6-channel fltp to s16 conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
a58a013980 lavr: x86: optimized 2-channel fltp to s16 conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
90cc27f813 lavr: x86: optimized 6-channel s16p to flt conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
46f929adad lavr: x86: optimized 2-channel s16p to flt conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
13df7d2d40 lavr: x86: optimized 6-channel s16p to s16 conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
c0e12535aa lavr: x86: optimized 2-channel s16p to s16 conversion 2012-08-23 20:10:56 -04:00
Michael Niedermayer
91c18beb9d ffmpeg: fix wrap correction code.
The code failed with negative timestamps due to using unsigned numbers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-24 01:39:32 +02:00
Michael Niedermayer
168ddcd331 mjpeg: fix fliping with emu edges.
Fixes Ticket121

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 21:53:10 +02:00
Joseph Artsimovich
628e6d0164 Fix partially hidden macroblocks for 10-bit DNxHD.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 20:09:57 +02:00
Georg Lippitsch
15acfa21fc ffv1: more than 8 bit per RGB channel
Add support for GBRP9, GBRP10, GBRP12 and GBRP14 pix formats in ffv1.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 19:44:43 +02:00
Michael Niedermayer
2b3b52d519 lagarith: fix alignment on buffers passed into prediction dsp code.
This should fix issues with direct rendering

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 19:03:57 +02:00
jamal
732dfc7660 lavf/ape: Fix stream duration calculation
Fixes ticket #1662

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 15:51:51 +02:00
Michael Niedermayer
599a4e0771 mpeg4audio: dont take the SBR flag too serious.
Fixes Ticket1049

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 14:43:12 +02:00
Michael Niedermayer
104f42e694 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc/APIchanges: add an entry for codec descriptors.
  vorbisenc: set AVCodecContext.bit_rate to 0
  vorbisenc: fix quality parameter
  FATE: add ALAC encoding tests
  lpc: fix alignment of windowed samples for odd maximum LPC order
  alacenc: use s16p sample format as input
  alacenc: remove unneeded sample_fmt check
  alacenc: fix max_frame_size calculation for the final frame
  adpcm_swf: Use correct sample offsets when using trellis.
  rtmp: support strict rtmp servers
  mjpegdec: support AVRn interlaced
  x86: remove FASTDIV inline asm

Conflicts:
	doc/APIchanges
	libavcodec/mjpegdec.c
	libavcodec/vorbisenc.c
	libavutil/x86/intmath.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-23 14:33:33 +02:00
Anton Khirnov
7b44061f4b doc/APIchanges: add an entry for codec descriptors.
Also fill in missing dates and hashes.
2012-08-23 08:51:04 +02:00
Justin Ruggles
a0a5fed908 vorbisenc: set AVCodecContext.bit_rate to 0
The Vorbis encoder is always VBR.
2012-08-22 19:58:46 -04:00
Justin Ruggles
890fddd0ea vorbisenc: fix quality parameter
This generates output with bitrates similar to libvorbis for a given quality
value.
2012-08-22 19:58:39 -04:00
Nicolas George
c2271fa7f9 lavfi: free partial audio buffers when destroying links.
Fix a memleak that the recent change of architecture made
more likely to happen.
2012-08-22 23:31:49 +02:00
Justin Ruggles
e981215944 FATE: add ALAC encoding tests 2012-08-22 16:41:57 -04:00
Justin Ruggles
4b0e0f31bf lpc: fix alignment of windowed samples for odd maximum LPC order
Fixes crash on x86 due to alignment requirements for w_data in
lpc_apply_welch_window_sse2().
2012-08-22 16:41:50 -04:00
Justin Ruggles
f24cc1b2f1 alacenc: use s16p sample format as input 2012-08-22 16:41:41 -04:00
Justin Ruggles
358078d9bb alacenc: remove unneeded sample_fmt check 2012-08-22 16:41:33 -04:00
Justin Ruggles
ec7a212f9f alacenc: fix max_frame_size calculation for the final frame 2012-08-22 16:41:23 -04:00
Derek Buitenhuis
081a822b6c FATE: Add Canopus Lossless tests
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 22:33:59 +02:00
Michael Niedermayer
12ad68b7e2 utvideoenc: use dsp.sub_hfyu_median_prediction
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 20:30:38 +02:00
Michael Niedermayer
729b2d02af utvideoenc: align mangled buffer starts.
This is essential for fast SIMD accesses.
The same should be done with the predict output.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 20:30:38 +02:00
Michael Niedermayer
d79c87a697 utvideoenc: drop step
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 20:30:38 +02:00
Michael Niedermayer
ba69eb5221 utvideoenc: avoid writing into the input picture.
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 20:30:33 +02:00
Michael Niedermayer
f92f4935ac utvideoenc: use ff_generate_len()
19% faster
smaller files
this may also fix possible integer overflows due to previous 32bit useage

Tested with libutvideo and our utvideo decoder, this patch does not change
decoder output in the test

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 19:38:24 +02:00
Nicolas George
52820bc578 lavfi/overlay: fix return values.
They were only roughly adapted when error return was
added to the push functions.
2012-08-22 19:04:30 +02:00
Nicolas George
a9cfe656d7 lavfi/split: handle closed outputs.
Return AVERROR_EOF if all outputs are closed.
2012-08-22 19:04:30 +02:00
Nicolas George
8b61abac2e ffmpeg: use close_output_stream more systematically. 2012-08-22 19:04:30 +02:00
Nicolas George
666fd092be ffmpeg: move close_output_stream earlier.
It will avoid a forward declaration.
2012-08-22 19:04:30 +02:00
Nicolas George
425b77114b ffmpeg: make decoding_needed a counter. 2012-08-22 19:04:30 +02:00
Nicolas George
beeba9161a lavfi: add a closed field to AVFilerLink.
It will help forward errors and maintain consistency.
2012-08-22 19:04:30 +02:00
Nicolas George
ac07f941ae ffmpeg: use AV_BUFFERSRC_FLAG_PUSH.
It reduces the lifespan of buffers in filter graphs,
and therefore the memory consumption.
2012-08-22 19:04:30 +02:00
Justin Ruggles
5d4ef004bf adpcm_swf: Use correct sample offsets when using trellis.
Fixes invalid reads when encoding mono streams when trellis is used.
2012-08-22 12:43:51 -04:00
Samuel Pitoiset
7011a42b1a rtmp: support strict rtmp servers
In order to send or receive a stream FCPublish, FCSubscribe and _checkbw
are completely optional and often not implemented. releaseStream over a
non-existen stream might report an error instead of being silent.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-22 17:55:17 +02:00
Michael Niedermayer
ac33016158 mjpegdec: support AVRn interlaced
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-22 17:44:43 +02:00
Michael Niedermayer
3f943fe681 huffman/huffyuv: move lorens huffman table generation code to huffman.c/h
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 16:52:07 +02:00
Michael Niedermayer
4fced11df7 utvideoenc: optimize and simplify mangle_rgb_planes
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 16:49:53 +02:00
Mans Rullgard
5b170c0bea x86: remove FASTDIV inline asm
GCC 4.3 and later do the right thing with the plain C code.  Earlier
versions in 32-bit mode generate one extra instruction, needlessly
zeroing what would be the high half of the shifted value.  At least
two gcc configurations miscompile the inline asm in some situations.

In 64-bit mode, all gcc versions generate imul r64, r64 followed by
shr.  On Intel i7 and later, this imul is faster 32-bit mul.  On
older Intel and all AMD, it is slightly slower.  On Atom it is much
slower.

Considering where the FASTDIV macro is used, any overall negative
performance impact of this change should be negligible.  If anyone
cares, they should file a bug against gcc and get the instruction
selection fixed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-22 14:29:10 +01:00
Michael Niedermayer
3699960690 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: x86: Only compile mpegvideo optimizations when necessary
  configure: Drop fastdiv option
  build: Make the E-AC-3 encoder select the AC-3 encoder
  fate: flac: Only run tests requiring samples when samples are available

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-22 14:37:03 +02:00
Stefano Sabatini
a7219529d1 examples/decoding_encoding: flush audio frames in the encoder 2012-08-22 11:54:30 +02:00
Stefano Sabatini
535df748c5 examples/decoding_encoding: re-organize frame configuration code
Put the relevant code in one chunk, also check for frame allocation
failures.
2012-08-22 11:54:24 +02:00
Stefano Sabatini
780bf7595e doc/filters: fix level for the flite Examples subsection 2012-08-22 01:21:20 +02:00
Diego Biurrun
6fa488678f build: x86: Only compile mpegvideo optimizations when necessary 2012-08-22 01:06:33 +02:00
Stefano Sabatini
2c0b164227 doc/faq: mention doc/examples
Also provide a link to the github FFmpeg page containing the examples.
2012-08-22 01:03:49 +02:00
Stefano Sabatini
005af8ce61 examples/muxing: cast sws_scale() argument to the expected one
Fix warnings:
muxing.c: In function ‘write_video_frame’:
muxing.c:326:23: warning: passing argument 2 of ‘sws_scale’ from incompatible pointer type [enabled by default]
2012-08-22 01:03:48 +02:00
Stefano Sabatini
4a91962771 doc/eval: add missing documentation of functions 2012-08-22 01:03:48 +02:00
Stefano Sabatini
4a32b30e0c doc/filters: itemize examples for pad filter, and fix a few typos 2012-08-22 01:03:42 +02:00
Diego Biurrun
66baa45801 configure: Drop fastdiv option
There is no point in having the user disable any fastdiv macros.
Besides the condition implementation was broken and only disabled
the C implementation, but no platform specific assembly versions.
2012-08-22 01:02:18 +02:00
Diego Biurrun
4264a0dd54 build: Make the E-AC-3 encoder select the AC-3 encoder
The E-AC-3 encoder depends on almost all of the code of the AC-3
encoder, so it makes no sense to enable one without the other.
2012-08-22 01:02:17 +02:00
Diego Biurrun
efa4d6adf3 fate: flac: Only run tests requiring samples when samples are available 2012-08-22 00:58:44 +02:00
Piotr Bandurski
bc151aee60 avrn: lowercase "name" and expand"long_name"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 22:32:31 +02:00
Justin Greer
e16fda9236 mov: Change default aac priming fallback from 2112 to 1024
This fixes priming for faac

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 22:32:31 +02:00
Justin Greer
37a15f3e66 mov: parse custom "----" Metadata
This fixes the priming samples for NERO AAC LC

Simplified-by: Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 22:31:26 +02:00
Michael Niedermayer
50df56161f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dirac: use meaningful return values
  flacdec: simplify sample buffer handling
  flacdec: simplify loop in decode_residuals()
  fate: make Ut Video encoder tests use bitexact swscale flags
  build: amrwb: Drop redundant lsp dependency declaration
  fate: fix utvideoenc tests

Conflicts:
	libavcodec/dirac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 16:17:13 +02:00
Jordi Ortiz
72e8d86b19 dirac: use meaningful return values
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-21 15:51:52 +02:00
Clément Bœsch
26ec392a0e lavf: remove unused AVStream pointer. 2012-08-21 13:48:08 +02:00
Clément Bœsch
3dba9e19c8 lavf: add const qualifier to AVCodecDescriptor pointer in is_intra_only().
Fix "assignment discards ‘const’ qualifier from pointer target type" warnings.
2012-08-21 13:47:43 +02:00
Mans Rullgard
44c56a1617 flacdec: simplify sample buffer handling
Pass pointer to sample buffer instead of channel number to various
functions called from decode_subframe().  Also simplify a few
expressions within this function.
2012-08-21 11:23:13 +01:00
Mans Rullgard
ea98507db0 flacdec: simplify loop in decode_residuals() 2012-08-21 11:23:13 +01:00
Jan Ekström
2e2d0b1142 fate: make Ut Video encoder tests use bitexact swscale flags
The failures on various architectures and compilers on the RGB(A)
tests seem to have been because of one-off YCbCr->RGB conversion
results. This should make the conversion results match on most if
not all code paths.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-21 11:43:43 +02:00
Stefano Sabatini
10c3329627 doc/ffmpeg: extend documentation for -(no)stdin option
Fix trac ticket #1665.
2012-08-21 10:04:30 +02:00
Jan Ekström
957521e7a4 fate: make Ut Video encoder tests use bitexact swscale flags
The failures on various architectures and compilers on the RGB(A)
tests seem to have been because of one-off YCbCr->RGB conversion
results. This should make the conversion results match on most if
not all code paths.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-21 09:45:01 +02:00
Michael Niedermayer
62527dc245 rmdec: parse logical-fileinfo, instead of creating phantom tracks
Fixes Ticket1090

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 06:15:22 +02:00
Michael Niedermayer
19a61bf39d rmdec: pass mime type to ff_rm_read_mdpr_codecdata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 06:14:29 +02:00
Michael Niedermayer
85a576775e lavf: factor ff_free_stream() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 06:13:54 +02:00
Michael Niedermayer
3ac754b93b hls: fix min DTS code, try #2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 01:52:55 +02:00
Michael Niedermayer
bf606334ad hls: fix EOF check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 01:52:55 +02:00
Stefano Sabatini
9a199040d8 lavfi/showspectrum: add priv_class and flags to options 2012-08-21 01:29:25 +02:00
Michael Niedermayer
7123e9506b hls: use av_compare_ts() instead of comparing apples to oranges.
Fixes Ticket983

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 01:00:05 +02:00
Thomas Weber
1c585dddbb lavfi/asyncts: Fix compilation with GCC 4.7
Compilation failed since commit 42d621d131
Error messages:
libavfilter/af_asyncts.c:249:5: error: initializer element is not
computable at load time
libavfilter/af_asyncts.c:249:5: error: (near initialization for
‘avfilter_af_asyncts.priv_size’)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-21 00:19:13 +02:00
Nicolas George
f4aeb48516 ffmpeg: remove outdated warning.
-t works with complex filters now.
2012-08-21 00:03:00 +02:00
Nicolas George
ac45637324 lavf/nutenc: write stream metadata. 2012-08-20 23:54:56 +02:00
Nicolas George
454e37ce0c lavf/nut: define fourcc DVBT for DVB_TELETEXT.
Allow "-map 0:s -c:s copy" to copy all subtitles streams.
2012-08-20 23:54:56 +02:00
Nicolas George
dcae2ecc13 ffmpeg: remove useless flags to EOF av_buffersrc_add_ref. 2012-08-20 23:45:15 +02:00
Nicolas George
5bbe4142d1 lavfi/buffersrc: add AV_BUFFERSRC_FLAG_PUSH. 2012-08-20 23:40:16 +02:00
Clément Bœsch
3899e49955 lavfi/edgedetect: use "@see" instead of the invalid "@url". 2012-08-20 23:12:34 +02:00
Clément Bœsch
ddda29b4a7 lavfi: add showspectrum filter. 2012-08-20 23:03:06 +02:00
Michael Niedermayer
786f06e109 h264: fix variable overflow after a few years of video playback
Found-by: Joakim Plate <elupus@ecce.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 22:30:00 +02:00
rogerdpack
d0b68a9d57 fix spelling
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 21:49:26 +02:00
rogerdpack
415f4cca1d dshow:protect access to curbufsize to promote consistency
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 20:58:05 +02:00
rogerdpack
a966d94891 dshow: avoid integer overflow when using curbufsize
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 20:56:45 +02:00
Derek Buitenhuis
18263698ab utvideoenc: Port to ff_alloc_packet2
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 20:55:19 +02:00
Mans Rullgard
67308bd66b fate: fix utvideoenc tests
For some reason, the prerequisites have to be specified like this.
Make works in mysterious ways.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-20 19:56:08 +02:00
XhmikosR
08bd8c8ab3 rename the remaining instances of HAVE_MMX2 to HAVE_MMXEXT
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 17:47:25 +02:00
Michael Niedermayer
bb3ed3bae6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Add FATE tests for the Ut Video encoder
  lavc: add Ut Video encoder
  mpegvideo_enc: remove stray duplicate line from 7f9aaa4
  swscale: x86: fix #endif comments in rgb2rgb template file
  avconv: mark more options as expert.
  avconv: split printing "main options" into global and per-file.
  avconv: refactor help printing.

Conflicts:
	Changelog
	ffmpeg_opt.c
	ffserver.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 17:31:55 +02:00
Michael Niedermayer
aee51039ee Merge commit 'f8b1e665539010d3ca148f09cb1203c20c1ca174'
* commit 'f8b1e665539010d3ca148f09cb1203c20c1ca174':
  avconv: print info/capabilities options in a separate help group.
  avtools: add -h demuxer/muxer
  cmdutils: extend -h to allow printing codec details.

Conflicts:
	cmdutils.h
	ffmpeg_filter.c
	ffmpeg_opt.c
	ffplay.c
	ffserver.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 17:06:50 +02:00
Michael Niedermayer
67a6dac7c1 Merge commit '7c5012127fb7e18f0616011257bb4248f6a8b608'
* commit '7c5012127fb7e18f0616011257bb4248f6a8b608':
  cmdutils: change semantics of show_help_options() and document it.
  avtools: move some newlines to show_help_options().
  avconv: deprecate -isync.

Conflicts:
	ffmpeg_opt.c
	ffserver.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 16:55:08 +02:00
Michael Niedermayer
c5af068084 Merge commit '8fc83fb081963001e1197c6fdd59fd2af415078a'
* commit '8fc83fb081963001e1197c6fdd59fd2af415078a':
  avconv: reformat the options table.

Conflicts:
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 16:47:12 +02:00
Diego Biurrun
deb23777f2 build: amrwb: Drop redundant lsp dependency declaration 2012-08-20 16:21:48 +02:00
Mans Rullgard
d71e2c1775 fate: fix utvideoenc tests
For some reason, the prerequisites have to be specified like this.
Make works in mysterious ways.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-20 15:07:41 +01:00
Michael Niedermayer
93e75c78dd ffmpeg_opt: get rid of casts for the HAS_ARG case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 16:05:59 +02:00
Michael Niedermayer
949938d1ca ffmpeg_opt: remove casts for OPT_FUNC2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 16:04:10 +02:00
Michael Niedermayer
581537cfd5 ffmpeg_opt: fix copy_tb
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 16:02:03 +02:00
Michael Niedermayer
927022a753 Merge commit 'd3810c47fe8c9509c28c65c0244e743c1d353daf'
* commit 'd3810c47fe8c9509c28c65c0244e743c1d353daf':
  avconv: get rid of ugly casts in the options table.
  avconv: try to match codecs by codec descriptor name as a last resort.
  avtools: fix show_foo() signatures.

Conflicts:
	cmdutils.c
	cmdutils.h
	cmdutils_common_opts.h
	ffmpeg_opt.c
	ffplay.c
	ffprobe.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 15:48:21 +02:00
Wolfram Gloger
a5a0dedf11 Fix duplicate packet init introduced by 7f9aaa4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 14:45:28 +02:00
Jan Ekström
b96509c93c fate: Add FATE tests for the Ut Video encoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-20 11:23:10 +02:00
Jan Ekström
1ab5a78042 lavc: add Ut Video encoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-20 11:22:59 +02:00
Anton Khirnov
677e763a55 mpegvideo_enc: remove stray duplicate line from 7f9aaa4 2012-08-20 10:05:49 +02:00
Michael Niedermayer
76c3fff2f3 h264: Workaround invalid MPEG-TS broadcasts
Fixes seeking to the first keyframe
Fixes Ticket1029

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 05:47:42 +02:00
Michael Niedermayer
9e5f79ed8a avrndec: add DR1 capability flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 03:31:41 +02:00
Michael Niedermayer
b1acf5d7a6 AVRn: fix progressive
Fixes Ticket970

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 02:50:59 +02:00
Michael Niedermayer
ba2cf854d0 lavc: move AVRn to a seperate decoder.
The special cases in demuxers and decoders are a mess otherwise (and more
would be needed to support it fully)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-20 02:46:09 +02:00
Giorgio Vazzana
1e6072139b swscale: x86: fix #endif comments in rgb2rgb template file
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-19 21:50:09 +02:00
Anton Khirnov
602b1898e5 avconv: mark more options as expert. 2012-08-19 19:26:20 +02:00
Anton Khirnov
f9fada2704 avconv: split printing "main options" into global and per-file. 2012-08-19 19:23:43 +02:00
Anton Khirnov
6e3857fa8c avconv: refactor help printing.
By default don't dump every single option on the user, but print only
the basic options.

Add -h long/full to print more options.
2012-08-19 19:23:17 +02:00
Anton Khirnov
f8b1e66553 avconv: print info/capabilities options in a separate help group. 2012-08-19 19:23:06 +02:00
Anton Khirnov
1136bd362a avtools: add -h demuxer/muxer 2012-08-19 19:22:41 +02:00
Anton Khirnov
a3ad68d36c cmdutils: extend -h to allow printing codec details. 2012-08-19 19:22:08 +02:00
Anton Khirnov
7c5012127f cmdutils: change semantics of show_help_options() and document it.
Currently it takes a mask and value, such that options for which
(flags & mask) == value.

Change it to take required flags and forbidden flags instead. This is
shorter and simpler to understand.
2012-08-19 19:21:35 +02:00
Anton Khirnov
dc4c24a3d3 avtools: move some newlines to show_help_options().
Don't require every caller to supply them.
2012-08-19 19:21:03 +02:00
Anton Khirnov
79600a8354 avconv: deprecate -isync.
This option does not do anything.

Also remove OPT_GRAB, since -isync is the last option using it.
2012-08-19 19:20:14 +02:00
Anton Khirnov
8fc83fb081 avconv: reformat the options table. 2012-08-19 19:15:51 +02:00
Anton Khirnov
d3810c47fe avconv: get rid of ugly casts in the options table. 2012-08-19 19:09:36 +02:00
Anton Khirnov
db4766ad1b avconv: try to match codecs by codec descriptor name as a last resort.
This allows e.g. -c:v h264 to select the libx264 encoder.
2012-08-19 19:08:48 +02:00
Anton Khirnov
f617135bc9 avtools: fix show_foo() signatures.
show_foo() functions are declared as void show_foo(void), but called as
int show_foo(const char*, const char*).
2012-08-19 19:07:43 +02:00
rogerdpack
a93c221ccd dshow: protect access to curbufsize
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-19 18:36:26 +02:00
rogerdpack
42dbf06df0 dshow: cleanup reference
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-19 18:30:50 +02:00
Nicolas George
c28d80f4c9 lavc: avcodec_get_name: return "none" for AV_CODEC_ID_NONE. 2012-08-19 15:26:05 +02:00
Michael Niedermayer
c9fe864472 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vorbisdec: remove some pointless comments
  avprobe: add const to AVCodec pointer
  libavformat: add const to AVCodec pointers
  pthread: add const to AVCodec pointers

Conflicts:
	ffprobe.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-19 14:55:58 +02:00
Mans Rullgard
4855022aa1 vorbisdec: remove some pointless comments
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-19 12:59:58 +01:00
Nicolas George
5980e57cf9 lavfi: add volumedetect filter. 2012-08-19 11:37:05 +02:00
Nicolas George
13b965ead4 ffmpeg: reindent after last commit. 2012-08-19 11:23:59 +02:00
Nicolas George
429c6cab1c ffmpeg: reduce differences with avconv for in/out scheduling.
Rework the transcode() function and its immediate annexes to have
the same structure as in avconv, while still maintaining proper
scheduling to avoid accumulation.

Using -filter_complex without inputs now works.
2012-08-19 11:20:56 +02:00
Michael Niedermayer
af5086087e ffmpeg: Clip invalid video timestamps like audio instead of failing hard.
Fixes Ticket976

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-19 02:42:53 +02:00
Michael Niedermayer
0de4918f32 rawdec: support AVRn 1:1 raw interlaced mode
Fixes Ticket971

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 23:55:59 +02:00
Stefano Sabatini
e35c0ee05c lavf/segment: fix computation of M3U8 segment target duration
Use ceil on the max duration, rather than approximating it to the nearest
integer.
2012-08-18 22:46:12 +02:00
Michael Niedermayer
a21f65b55e elbg: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 21:54:52 +02:00
Michael Niedermayer
9018f8c328 elbg: fix assert
It seems the condition was flipped from what was intended

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 21:53:32 +02:00
Michael Niedermayer
28ff17fa97 lavf: add use_wallclock_as_timestamps
This may fix Ticket730

Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 19:19:47 +02:00
Nicolas George
92b8c9d89e lavf/au: check bits per coded sample.
Without that, it would repeatedly produce empty packets
if the codec if forced to something invalid.

Fix trac ticket #1652.
2012-08-18 17:45:58 +02:00
Michael Niedermayer
7f46f042d1 buildsys: fix cleaning of libmpcodecs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 16:36:16 +02:00
Uoti Urpala
e70730045a h264: vdpau: fix crash with unsupported colorspace
The h264_vdpau decoder crashed if output colorspace was not 8-bit 420.
Add a check to error out instead (current hardware does not support
other colorspaces, so successful decoding is not possible).

Check implemented at a different place by michael, thus blame for bugs goes to michael
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 16:36:09 +02:00
Mans Rullgard
8b13445791 avprobe: add const to AVCodec pointer
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-18 14:20:57 +01:00
Mans Rullgard
edb5238ccb libavformat: add const to AVCodec pointers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-18 14:20:57 +01:00
Mans Rullgard
11434c9b13 pthread: add const to AVCodec pointers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-18 14:20:57 +01:00
Michael Niedermayer
6c180b35c4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo_enc: don't use deprecated avcodec_encode_video().
  cmdutils: refactor -codecs option.
  avconv: make -shortest a per-output file option.
  lavc: add avcodec_descriptor_get_by_name().
  lavc: add const to AVCodec* function parameters.
  swf(dec): replace CODEC_ID with AV_CODEC_ID
  dvenc: don't use deprecated AVCODEC_MAX_AUDIO_FRAME_SIZE
  rtmpdh: Do not generate the same private key every time when using libnettle
  rtp: remove ff_rtp_get_rtcp_file_handle().
  rtsp.c: use ffurl_get_multi_file_handle() instead of ff_rtp_get_rtcp_file_handle()
  avio: add (ff)url_get_multi_file_handle() for getting more than one fd
  h264: vdpau: fix crash with unsupported colorspace
  amrwbdec: Decode the fr_quality bit properly

Conflicts:
	Changelog
	cmdutils.c
	cmdutils_common_opts.h
	doc/ffmpeg.texi
	ffmpeg.c
	ffmpeg.h
	ffmpeg_opt.c
	libavcodec/h264.c
	libavcodec/options.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 15:20:32 +02:00
Stefano Sabatini
69fc2489c4 doc/muxers: simplify segment examples
The simplifications are due to the recent option changes.
2012-08-18 12:32:54 +02:00
Stefano Sabatini
2d31ae2921 lavf/segment: change default value for segment_list_size option, from 5 to 0
This is technically a major compatibility break, but seems the most
natural default and what users would expect without reading the docs.
2012-08-18 12:32:23 +02:00
Stefano Sabatini
1c522e3868 lavf/segment: guess list type from list filename suffix 2012-08-18 12:31:49 +02:00
Stefano Sabatini
dc7e4d685f lavfi/mp: remove framestep wrapped filter
An equivalent framestep filter has been natively integrated.
2012-08-18 12:14:46 +02:00
Stefano Sabatini
48d116400c lavfi: add framestep filter
This filter is inspired upon libmpcodecs/vf_framestep.c, by Daniele
Forghieri.

Only-keyframe output is not supported, since that feature can be achieved
through the more versatile select filter.
2012-08-18 12:13:34 +02:00
Stefano Sabatini
7cd5fa35fe lavfi/testsrc: set output framerate 2012-08-18 12:02:43 +02:00
Stefano Sabatini
e5ae2f9126 lavf/segment: add M3U8 list support
Address trac ticket #1642.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
4a12d1e8e7 lavf/segment: compute max list segment duration
This is useful for the M3U8 format incoming patch.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
769500c2a3 lavf/segment: create segment_list_open and close functions
Allow factorization for the incoming patches, and avoid code/logic
duplication.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
d3a2a614bf lavf/segment: fix bogus segment index rewrapping logic
Decouple segment index wrapping and segment count logic. The counter
should not be reset since it detects the segment increasing timeframe.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
b89e00bd1c lavf/segment: move file description to @file doxy 2012-08-18 11:21:47 +02:00
Stefano Sabatini
725213545d lavf/avio: flush internal buffer when calling avio_close()
This seems the expected behavior.
2012-08-18 11:21:44 +02:00
Stefano Sabatini
63f57f8530 lavf/avio.h: doxygen avio_flush() 2012-08-18 11:21:42 +02:00
Stefano Sabatini
5296d7b971 ffmpeg,ffplay: show filter options
Address trac ticket #1599.
2012-08-18 10:19:10 +02:00
Stefano Sabatini
42d621d131 lavfi: add priv class to filter definitions and flags to filter internal options
This allows the iteration callbacks to discover the internal class and
options, and show them when required.
2012-08-18 10:19:05 +02:00
Stefano Sabatini
831a999dda lavfi/movie: split class definitions for movie and amovie
This is required for iterating through the filter class (without
incurring into a loop).
2012-08-18 10:04:25 +02:00
Stefano Sabatini
a77436abad lavfi/lut: duplicate class definitions for each lut variant filter
This is due to the design of components iteration through AVClass
child_class_next() callback, which requires that two components cannot
share the same class.
2012-08-18 10:04:25 +02:00
Stefano Sabatini
8e2cf68d09 doc/Makefile: add doc target, as an alias for "documentation"
Consistent with --enable-doc, and easier to type.
2012-08-18 10:04:25 +02:00
Nicolas George
9467f4eb5d lavc/tscc: use reget_buffer.
The previous code would release the buffer and get it
immediately after, assuming the contents is the same.
2012-08-18 09:52:15 +02:00
Anton Khirnov
7f9aaa499b mpegvideo_enc: don't use deprecated avcodec_encode_video(). 2012-08-18 08:48:30 +02:00
Anton Khirnov
7c10194996 cmdutils: refactor -codecs option.
Make it print a list of AVCodecDescriptors.

Add new -decoders and -encoders options that print lists of decoders and
encoders respectively.
2012-08-18 08:48:30 +02:00
Anton Khirnov
3c0df90584 avconv: make -shortest a per-output file option. 2012-08-18 08:48:30 +02:00
Anton Khirnov
91e59fea30 lavc: add avcodec_descriptor_get_by_name(). 2012-08-18 08:48:30 +02:00
Anton Khirnov
0a0f19b577 lavc: add const to AVCodec* function parameters. 2012-08-18 08:48:30 +02:00
Anton Khirnov
15c71dfd03 swf(dec): replace CODEC_ID with AV_CODEC_ID 2012-08-18 08:48:30 +02:00
Anton Khirnov
e0aa5e772b dvenc: don't use deprecated AVCODEC_MAX_AUDIO_FRAME_SIZE 2012-08-18 08:48:30 +02:00
Michael Niedermayer
7e49474aa0 ffmenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 05:02:58 +02:00
Michael Niedermayer
b5abebe164 acelp_filters: switch to avassert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-18 05:02:08 +02:00
Samuel Pitoiset
8337b5db96 rtmpdh: Do not generate the same private key every time when using libnettle
Replace mpz_random by mpz_urandomb with a random state initialization in
order to improve the randomness.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-17 23:51:53 +03:00
Michael Niedermayer
ceb8773e16 libvpxenc: Fix CQ encoding without a specified bitrate
Also print a warning if neither quality nor bitrate is specified
and use the libvpx default bitrate in this case.

The idea of using the default bitrate is from Luca Barbato
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 22:03:02 +02:00
Michael Niedermayer
1ee7a2955f libvpxenc: only force CBR if a bitrate is set
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 21:56:58 +02:00
Jordi Ortiz
a2dd4f7780 rtp: remove ff_rtp_get_rtcp_file_handle().
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-17 22:15:56 +03:00
Jordi Ortiz
e7993ece9b rtsp.c: use ffurl_get_multi_file_handle() instead of ff_rtp_get_rtcp_file_handle()
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-17 22:15:46 +03:00
Jordi Ortiz
d6b9da1178 avio: add (ff)url_get_multi_file_handle() for getting more than one fd
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-17 22:14:30 +03:00
Uoti Urpala
2e8f3cbcda h264: vdpau: fix crash with unsupported colorspace
The h264_vdpau decoder crashed if output colorspace was not 8-bit 420.
Add a check to error out instead (current hardware does not support
other colorspaces, so successful decoding is not possible).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-17 20:08:53 +03:00
Martin Storsjö
ca00a7e809 amrwbdec: Decode the fr_quality bit properly
The way this bit is decoded was accidentally flipped in b70feb405,
leading to warnings "Encountered a bad or corrupted frame" for each
decoded frame.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-17 20:08:40 +03:00
Nedeljko Babic
6f98e298cc mips: change list of files with MIPS copyright notice in mips.txt
Add files created for MP3 optimization that have MIPS copyright
 notice in them to list of files in mips.txt.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 18:54:50 +02:00
Nedeljko Babic
2b02bc6422 mips: add assembler flags for mips32r2 ISA and mhard-float
For some compilers ISA older than mips32r2 is set as default.
 Because of them assembler flag "-mips32r2" needs to be added
 for CPUs that support mips32r2 ISA in part of configure script
 where ISA capabilities are checked.
"-mhard-float" assembler flag is also added for CPUs that have FPU.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 18:54:41 +02:00
Nicolas George
9341bbfc51 vf_yadif: fix permissions.
Require AV_PERM_PRESERVE and leave harmless permissions
alone for the next filter.
2012-08-17 18:26:42 +02:00
Nicolas George
71adb74059 vf_tinterlace: leave harmless permissions alone. 2012-08-17 18:26:42 +02:00
Nicolas George
d37f823207 vf_thumbnail: fix permissions. 2012-08-17 18:26:42 +02:00
Nicolas George
469d07a0e4 vf_select: require AV_PERM_PRESERVE.
This is only necessary because of the poll_frame implementation.
Removing it altogether would be another solution.
2012-08-17 18:26:42 +02:00
Nicolas George
f6647d8825 vf_removelogo: fix permissions.
The branch with the test was already impossible.
2012-08-17 18:26:41 +02:00
Nicolas George
616c3f3ee2 vf_overlay: fix permissions. 2012-08-17 18:26:41 +02:00
Nicolas George
5ec6ae91ba vf_idet: fix permissions.
Only write needs to be removed, other can be left.
2012-08-17 18:26:41 +02:00
Nicolas George
3bc644e044 vf_fps: fix permissions. 2012-08-17 18:26:41 +02:00
Nicolas George
738fab17ea vf_fieldorder: fix permissions. 2012-08-17 18:26:41 +02:00
Nicolas George
3c0cc3ae67 vf_fade: fix permissions. 2012-08-17 18:26:41 +02:00
Nicolas George
d5765d4725 vf_drawtext: fix permissions. 2012-08-17 18:26:41 +02:00
Nicolas George
0238806f64 vf_drawtext: fix permissions. 2012-08-17 18:26:40 +02:00
Nicolas George
84923555bb vf_deshake: fix permissions. 2012-08-17 18:26:40 +02:00
Nicolas George
f3133a48e5 vf_delogo: fix permissions. 2012-08-17 18:26:40 +02:00
Nicolas George
12ff3faec0 vf_colormatrix: fix permissions. 2012-08-17 18:26:40 +02:00
Nicolas George
ceb8dc1e04 vf_ass: fix permissions. 2012-08-17 18:26:40 +02:00
Nicolas George
07663871e1 vf_alphamerge: fix permissions. 2012-08-17 18:26:40 +02:00
Nicolas George
de35d2b498 avf_concat: fix permissions. 2012-08-17 18:26:39 +02:00
Nicolas George
44127c0489 af_channelmap: fix permissions. 2012-08-17 18:26:39 +02:00
Nicolas George
368f368e59 af_channelmap: require AV_PERM_PRESERVE. 2012-08-17 18:26:39 +02:00
Nicolas George
44aeb06290 fifo: fix permissions. 2012-08-17 18:26:39 +02:00
Nicolas George
a34eb393fc split: set rej_perms = AV_PERM_WRITE on outputs. 2012-08-17 18:26:39 +02:00
Nicolas George
a0d274d228 sink_buffer: require AV_PERM_PRESERVE. 2012-08-17 18:26:39 +02:00
Nicolas George
e54e30c889 lavfi: grant all permissions on mallocated audio buffers.
The permissions not requested by the filter that created
the buffer may be useful for a later filter and avoid a copy.
2012-08-17 18:26:38 +02:00
Nicolas George
cc8104b908 lavfi: fix erroneous use of AV_PERM_PRESERVE in ff_inplace_start_frame.
ff_inplace_start_frame looks useless anyway.
2012-08-17 18:26:38 +02:00
Nicolas George
046eb21c72 lavfi: grant all permissions on mallocated video buffers.
The permissions not requested by the filter that created
the buffer may be useful for a later filter and avoid a copy.
2012-08-17 18:26:38 +02:00
Michael Niedermayer
fa3fde168b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libvpxenc: use the default bitrate if not set
  utvideo: Rename utvideo.c to utvideodec.c
  doc: Fix syntax errors in sample Emacs config
  mjpegdec: more meaningful return values
  configure: clean up Altivec detection
  getopt: Remove an unnecessary define
  rtmp: Use int instead of ssize_t
  getopt: Add missing includes
  rtmp: Add support for receiving incoming streams
  Add missing includes for code relying on external libraries

Conflicts:
	libavcodec/libopenjpegenc.c
	libavcodec/libvpxenc.c
	libavcodec/mjpegdec.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 17:06:52 +02:00
Luca Barbato
4aa3d7b3f2 libvpxenc: use the default bitrate if not set
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-17 12:47:45 +02:00
Jan Ekström
77f47e3288 utvideo: Rename utvideo.c to utvideodec.c
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-17 12:36:55 +02:00
Jordi Ortiz
fd6a085a22 doc: Fix syntax errors in sample Emacs config
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-17 10:59:42 +02:00
Clément Bœsch
517a2bbcf1 lavfi/edgedetect: add rounding for high/low threshold.
This should fix the 32-bit FATE instances where low_u8=19 and high_u8=49.
2012-08-17 08:08:07 +02:00
Michael Niedermayer
7e5a622525 escape124: Fix long == 64 assumtation.
Found-by: Nicolas
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 07:16:16 +02:00
Michael Niedermayer
3a1ca240d9 ccitt fax: fix some group3 1d files without EOL
Fixes Ticket832

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-17 02:58:41 +02:00
Luca Barbato
0f64cd1e81 mjpegdec: more meaningful return values 2012-08-17 01:29:19 +02:00
Mans Rullgard
20bcce507a configure: clean up Altivec detection
There used to be one test for Altivec intrinsics support and a
separate test to determine which of two possible syntaxes to use
for vector literals.  Since 2008, we only support the more common
of these so the split test no longer makes sense.

This combines the tests into one and also changes the hard error on
failure to a warning.  The test can reasonably fail if no --cpu flag
is provided (or is provided with an unknown CPU) and the compiler
default target does not support Altivec.  Aborting in this case is
probably over-reacting.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-16 23:15:38 +01:00
Michael Niedermayer
3d7817048c escape124: fix integer overflow leading to excessive memory allocation
Fixes Ticket1629

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 22:28:29 +02:00
Martin Storsjö
962e912a49 getopt: Remove an unnecessary define
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 23:12:50 +03:00
Michael Niedermayer
4b529edff8 deprecate av_parse_cpu_flags
This function is problematic in several ways, its also quite
unpredictable which flags it ends up turning on

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 22:04:46 +02:00
Michael Niedermayer
540bd5a95f av_parse_cpu_caps: add "mmxext" as alias for mmx2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 22:04:46 +02:00
Michael Niedermayer
e71df841ee fft-test: switch to new cpu flags API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 22:04:46 +02:00
Clément Bœsch
3250231a02 lavfi: add edgedetect filter. 2012-08-16 22:03:32 +02:00
Martin Storsjö
cb5ab02a88 rtmp: Use int instead of ssize_t
Not all compilers support ssize_t (MSVC doesn't), and none of these
variables need to be larger than 32 bit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 23:02:26 +03:00
Martin Storsjö
da8201cc82 getopt: Add missing includes
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 22:25:13 +03:00
Nicolas George
12d2bbf324 lavfi/movie: extend a doxygen comment. 2012-08-16 20:36:45 +02:00
Giorgio Vazzana
e6ee58fae6 libswscale: fix #endif comments in rgb2rgb_template.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 18:40:11 +02:00
Nicolas George
584acbf524 lavfi/movie: set pkt->stream_index for flushing.
Otherwise, the value of stream_index is kept from the last packet
read, which is not necessarily the stream that needs flushing.
2012-08-16 18:07:03 +02:00
Michael Niedermayer
bb46b9a36f vc1dsp_mmx: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:29:29 +02:00
Michael Niedermayer
9bfeaf6f10 simple_idct_mmx: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:28:57 +02:00
Michael Niedermayer
64b23d7dec x86/motion_est_mmx: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:28:37 +02:00
Michael Niedermayer
191ffc7fe7 x86/mlpdsp: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:28:13 +02:00
Michael Niedermayer
a3ececf329 yadif: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:27:55 +02:00
Michael Niedermayer
501b681d95 lpc_mmx: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:26:41 +02:00
Michael Niedermayer
7cb9f1a8d0 idct_sse2_xvid: remove libavutil/internal.h include
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:26:06 +02:00
Jordi Ortiz
e5f2731c73 rtmp: Add support for receiving incoming streams
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 18:13:41 +03:00
Michael Niedermayer
75cd9a62f4 libvpxenc: check for odd RC parameter combinations that could crash
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:00:32 +02:00
Michael Niedermayer
d472453efd libvpxenc: fix division by zero
Reported-by: thresh
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 17:00:21 +02:00
Michael Niedermayer
c581cb4e4f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Fix even more missing includes after the common.h removal
  build: Factor out rangecoder dependencies to CONFIG_RANGECODER
  build: Factor out error resilience dependencies to CONFIG_ERROR_RESILIENCE
  x86: avcodec: Consistently name all init files
  Add more missing includes after removing the implicit common.h
  Add some more missing includes after removing the implicit common.h
  Don't include common.h from avutil.h
  rtmp: Automatically compute the hash for SWFVerification

Conflicts:
	configure
	doc/APIchanges
	doc/examples/decoding_encoding.c
	libavcodec/Makefile
	libavcodec/assdec.c
	libavcodec/audio_frame_queue.c
	libavcodec/avpacket.c
	libavcodec/dv_profile.c
	libavcodec/dwt.c
	libavcodec/libtheoraenc.c
	libavcodec/rawdec.c
	libavcodec/rv40dsp.c
	libavcodec/tiff.c
	libavcodec/tiffenc.c
	libavcodec/v210dec.h
	libavcodec/vc1dsp.c
	libavcodec/x86/Makefile
	libavfilter/asrc_anullsrc.c
	libavfilter/avfilter.c
	libavfilter/buffer.c
	libavfilter/formats.c
	libavfilter/vf_ass.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_select.c
	libavfilter/video.c
	libavfilter/vsrc_testsrc.c
	libavformat/version.h
	libavutil/audioconvert.c
	libavutil/error.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 16:20:30 +02:00
Martin Storsjö
7ebe3962f3 Add missing includes for code relying on external libraries
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 16:47:02 +03:00
Stefano Sabatini
208d6e6615 lavfi/hue: add verbose debug message showing initial parameters 2012-08-16 15:02:09 +02:00
Stefano Sabatini
5b0151a474 lavfi/hue: reindent after previous commits 2012-08-16 15:02:09 +02:00
Stefano Sabatini
419e1b7463 lavfi/hue: apply misc fixes to default values setting
In particular: signal error in case of bogus h:s values.
2012-08-16 15:02:09 +02:00
Jérémy Tran
191b77eb01 lavfi/hue: add named options support
Old syntax has been kept for compatibility reasons.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-16 15:01:05 +02:00
Stefano Sabatini
6efce3a894 lavfi/mp: remove hue wrapped filter
hue was integrated as a native libavfilter filter.
2012-08-16 14:13:54 +02:00
Martin Storsjö
232e35de2e Fix even more missing includes after the common.h removal
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 14:23:59 +03:00
Diego Biurrun
f704a079a1 build: Factor out rangecoder dependencies to CONFIG_RANGECODER
A new hidden config variable is added for the codecs that depend on
the rangecoder parts.
2012-08-16 11:05:39 +02:00
Diego Biurrun
c292f6a24d build: Factor out error resilience dependencies to CONFIG_ERROR_RESILIENCE
A new hidden config variable is added for the codecs that depend on
the error resilience parts.
2012-08-16 11:05:38 +02:00
Diego Biurrun
6961bdface x86: avcodec: Consistently name all init files 2012-08-16 11:05:38 +02:00
Carl Eugen Hoyos
e701b0cf75 Support reading 16-channel lxf files.
Fixes ticket #1608.

Reported, analyzed and tested by Gabriel Gerard.
2012-08-16 10:20:25 +02:00
Martin Storsjö
33e112847d Add more missing includes after removing the implicit common.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 10:49:54 +03:00
Philip Langdale
569027ea80 movtextdec: Don't emit errors for normal duration-end packets.
The logic here was off. If the packet size is exactly two, then
it's a well-formed empty subtitle, used to mark the end of the
duration of the previous subtitle.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-15 22:03:16 -07:00
Philip Langdale
6057de19b5 srtenc: Add timing-less "subrip" encoder.
Unsurprisingly, if a timing-less subrip decoder is desireable, an
encoder is as well. With this in place, we can move on to remove
the use of the old encoder/decoder with embedded timing and move
all timing handling the (de)muxer where they belong.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-15 20:46:54 -07:00
Philip Langdale
6af680fa07 srtdec: Add timing-less "subrip" decoder.
After various discussions, we concluded that, amongst other things,
it made sense to have a separate subrip decoder that did not use
in-band timing information, and rather relied on the ffmpeg level
timing.

As this is 90% the same as the existing srt decoder, it's implemented
in the same file.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-15 20:44:23 -07:00
Michael Niedermayer
b1b84b068d lavf: minor bump for avformat_queue_attached_pictures()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 04:57:08 +02:00
Michael Niedermayer
484aec4da3 LICENSE: correct incorrect claims on *GPL incompatibility
There are currently no statements from any person qualified in the art
of law about the LGPL compatibility of the libfaac license and others.
Furthermore their is no consensus about their compatibility amongth
people not qualified in the art.

Also of interrest may be that ubuntu distributes and links libfaac
to LGPL code. And the ubuntu technical comittee decision about libfaac
https://lists.ubuntu.com/archives/technical-board/2011-February/000703.html

Comments and other viewpoints, especially if i have missed something
are very welcome!

Reviewed-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 04:47:18 +02:00
Michael Niedermayer
c151e0ca15 ffplay: reque attached pictures on channel changes.
Fixes Ticket1473

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 04:38:54 +02:00
Michael Niedermayer
11f8f2c0f3 avformat: export queue_attached_pictures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 04:37:55 +02:00
Michael Niedermayer
a39c5c4c6b dv: fix null ptr dereference
Fixes Ticket1640

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 04:25:07 +02:00
Michael Niedermayer
f0896a6bd9 sp5xdec: fix off by 1 error causing a crash
Fixes Ticket1633

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 03:15:14 +02:00
Michael Niedermayer
747774ece9 av_get_audio_frame_duration: fix ra144
Fixes Ticket1612

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 02:57:11 +02:00
Michael Niedermayer
6ecf1eb0dd snowdec: add 2 av_asserts to check run validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 01:35:10 +02:00
Michael Niedermayer
4a596d19ff snowdec: check log in get_symbol2()
Fixes Ticket1635

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-16 01:31:19 +02:00
Martin Storsjö
70766c2182 Add some more missing includes after removing the implicit common.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 23:48:48 +03:00
Michael Niedermayer
0114c571d4 mpegvideo: dont call draw edges on lowres
this crashes otherwise, and can happen from try_decode_frame() in the case of decoding errors
Fixes Ticket1602

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 22:42:30 +02:00
Michael Niedermayer
e8c4022018 h263penc: fix multitheraded encoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 22:14:24 +02:00
Michael Niedermayer
e2c54d4d72 mpegvideo_enc: reset mb_x/y before writing the headers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 22:09:56 +02:00
Michael Niedermayer
717a1876d8 motion_est: switch some asserts to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 21:39:53 +02:00
Martin Storsjö
1d9c2dc89a Don't include common.h from avutil.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 22:32:06 +03:00
Samuel Pitoiset
93f257db6b rtmp: Automatically compute the hash for SWFVerification
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 22:05:36 +03:00
Michael Niedermayer
9e89bc37ed Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add support for SWFVerification
  api-example: use new video encoding API.
  x86: avcodec: Appropriately name files containing only init functions
  mpegvideo_mmx_template: drop some commented-out cruft
  libavresample: add mix level normalization option
  w32pthreads: Add missing #includes to make header compile standalone
  rtmp: Gracefully ignore _checkbw errors by tracking them
  rtmp: Do not send _checkbw calls as notifications
  prores: interlaced ProRes encoding

Conflicts:
	doc/examples/decoding_encoding.c
	libavcodec/proresenc_kostya.c
	libavcodec/w32pthreads.h
	libavcodec/x86/Makefile
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 15:55:24 +02:00
Samuel Pitoiset
635ac8e1be rtmp: Add support for SWFVerification
Specifies how the server verifies client SWF files before allowing the
files to connect to an application. Verifying SWF files is a security
measure that prevents someone from creating their own SWF files that can
attempt to stream your resources.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 10:37:34 +03:00
Anton Khirnov
661454aa28 api-example: use new video encoding API. 2012-08-15 08:45:27 +02:00
Michael Niedermayer
aee7b88cc0 msmpeg4v2: initialize mb_type array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 05:29:28 +02:00
Michael Niedermayer
fafd844311 mpegvideo: fix MB/MV vissualization on videos that are not mod 16 == 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 05:03:37 +02:00
Diego Biurrun
29cfdd3767 x86: avcodec: Appropriately name files containing only init functions 2012-08-15 03:24:08 +02:00
Diego Biurrun
be12958937 mpegvideo_mmx_template: drop some commented-out cruft 2012-08-15 03:24:07 +02:00
Michael Niedermayer
6093960ae3 movdec: Try to recover from overreading atoms
Fixes Ticket1596

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 03:21:19 +02:00
Michael Niedermayer
f952ae1400 pafdec: fix wrong check for input buffer size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 02:04:38 +02:00
Michael Niedermayer
456f0c6477 pafdec: fix wrong palette index check.
Fixes Ticket1641

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-15 01:57:45 +02:00
John Stebbins
4cf4028331 libavresample: add mix level normalization option
Provides an option to disable mix level normalization

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 23:36:56 +02:00
Diego Biurrun
11928d24fe w32pthreads: Add missing #includes to make header compile standalone 2012-08-14 23:36:56 +02:00
Samuel Pitoiset
fb7e78089b rtmp: Gracefully ignore _checkbw errors by tracking them
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-14 22:36:35 +03:00
Samuel Pitoiset
8b6a5a7923 rtmp: Do not send _checkbw calls as notifications
The _checkbw calls were changed to use transactionId 0 in commit
82613564 so that servers would not return _result/_error about it.
While this is the strict interpretation of the spec, there are
servers that return _error about it, even if transactionId was 0.

The latest version of EvoStream Media Server (the commercial version
of crtmpserver) behaves properly as described, i.e. returning an
_error normally but not returning anything when using transactionId
0. The latest version of crtmpserver (right now at least) doesn't
behave like this though, it returns an error even if transactionId
was 0.

There are also other servers that return errors even if transactionId
is set to 0. Therefore set a proper transaction id so that the invoke
can be tracked and the error properly ignored instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-14 22:31:53 +03:00
Sebastien Zwickert
02f12de1c2 vda: better frame allocation. 2012-08-14 21:22:20 +02:00
Maksalov Boris
c0f4cf7798 prores: interlaced ProRes encoding
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-14 19:28:50 +02:00
Michael Niedermayer
70f0ffa1ed bmv_videodec: fix out of array read
Fixes Ticket1373

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 18:58:49 +02:00
upsuper
068c8ce19c remove duplicated code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 18:39:55 +02:00
Boris Maksalov
c8e186fa7b prores_kostya: implement interlaced encoding.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:57:46 +02:00
Boris Maksalov
f0cbab2ac7 prores_kostya: fix incorrect picture_size field.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:57:39 +02:00
Michael Bradshaw
a22c996a85 Add ICO muxer
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:54:25 +02:00
Andrey Utkin
aec9390a9d Check for avio fail in avformat_write_header, av_write_frame
With minor changes by michael
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 16:25:53 +02:00
Michael Niedermayer
7427d1ca4a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  g723.1: simplify scale_vector()
  g723.1: simplify normalize_bits()
  vda: cosmetics: fix Doxygen comment formatting
  vda: better frame allocation
  vda: Merge implementation into one file
  vda: support synchronous decoding
  vda: Reuse the bitstream buffer and reallocate it only if needed
  build: Factor out mpegvideo encoding dependencies to CONFIG_MPEGVIDEOENC
  avprobe: Include libm.h for the log2 fallback
  proresenc: use the edge emulation buffer
  rtmp: handle bytes read reports
  configure: Fix typo in mpeg2video/svq1 decoder dependency declaration
  Use log2(x) instead of log(x) / log(2)
  x86: swscale: fix fragile memory accesses
  x86: swscale: remove disabled code
  x86: yadif: fix asm with suncc
  x86: cabac: allow building with suncc
  x86: mlpdsp: avoid taking address of void
  ARM: intmath: use native-size return types for clipping functions

Conflicts:
	configure
	ffprobe.c
	libavcodec/Makefile
	libavcodec/g723_1.c
	libavcodec/v210dec.h
	libavcodec/vda.h
	libavcodec/vda_h264.c
	libavcodec/x86/cabac.h
	libavfilter/x86/yadif_template.c
	libswscale/x86/rgb2rgb_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 15:34:39 +02:00
Sebastien Zwickert
0e05908c95 vda: fix make checkheaders.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 14:16:14 +02:00
Andrey Utkin
a32fa21d17 lavfi/asetnsamples: push as many frames as ready
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-14 13:19:52 +02:00
Mans Rullgard
0d230e9312 g723.1: simplify scale_vector()
It is impossible for bits to be 15 here so the special case is
not needed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-14 12:08:30 +01:00
Mans Rullgard
a4b8fc3a8a g723.1: simplify normalize_bits()
This function is always called with a non-negative argument, so
those special cases are not needed.  In the places the argument
might be zero, the return value for a zero argument does not matter
since it would then be used to scale an array full of zeros.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-14 12:08:29 +01:00
Sebastien Zwickert
063910f54d vda: cosmetics: fix Doxygen comment formatting
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:48:52 +02:00
Sebastien Zwickert
694be29f13 vda: better frame allocation
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:48:46 +02:00
Sebastien Zwickert
dc87ac55ab vda: Merge implementation into one file
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:48:08 +02:00
Sebastien Zwickert
3c37970637 vda: support synchronous decoding
Note that the symbols used to run the hardware decoder in asynchronous mode
have been marked deprecated and will be dropped at a future version bump.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:47:27 +02:00
Sebastien Zwickert
cfc680ab39 vda: Reuse the bitstream buffer and reallocate it only if needed
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 12:47:15 +02:00
Nicolas George
082b745d33 filter_design: document ownership and permissions. 2012-08-14 12:12:20 +02:00
Nicolas George
271ddb116c lavfi: use min_perms and rej_perms for out pads.
There are several reasons for doing that:

1. It documents the code for the reader and helps find
   inconsistencies and bugs.

2. For rej_perms, it guarantees the change will be done
   even if the output reference can be created by several
   code paths.

3. It can be used to predict cases where a copy will,
   or will not happen and optimize buffer allocation
   (for example not request a rare direct-rendering buffer
   from a device sink if it will be copied anyway).

Note that a filter is still allowed to manage the permissions
on its own without using these fields.
2012-08-14 12:00:35 +02:00
Nicolas George
67a804b9ac dvdsubenc: reindent after recent commit. 2012-08-14 11:58:32 +02:00
Nicolas George
2d3acbfe8c lavc: add const to AVCodecContext.codec_descriptor. 2012-08-14 11:35:30 +02:00
Nicolas George
9bb936a80e lavc: reimplement avcodec_get_name with descriptors. 2012-08-14 11:35:30 +02:00
Nicolas George
690ef618b1 ffmpeg: copy subtitles frame dimensions.
The sub-movtextenc ref file changes because the dimensions
(400×60) are stored by the format.
2012-08-14 11:17:45 +02:00
Nicolas George
e4f4d99df8 ffmpeg: make -s work for subtitles too.
Some codecs allow to encode the frame size and some players use it.
2012-08-14 11:17:45 +02:00
Nicolas George
17e40236cb dvdsubenc: set frame size in extradata. 2012-08-14 11:17:45 +02:00
Nicolas George
b1511e00f6 lavf: probe PGS subtitles definition.
The resolution is in the packets, so decoding must happen.
Since most other formats do not set the dimension, make it
a special case for PGS. If other codecs were to have the
same requirement, using a CODEC_CAP would be preferred.
2012-08-14 11:17:45 +02:00
Nicolas George
2dedd8f496 dvdsubenc: make it usable for transcoding.
DVD subtitles packets can only encode a single rectangle:
if there are several, copy them into a big transparent one.

DVD subtitles rely on an external 16-colors palette:
use a reasonable default one, stored in the private context,
and encode it into the extradata, as specified by Matroska.
TODO: allow to change the palette with an option.

Each packet can use four colors out of the global palette.
The old logic was to map transparent colors to the color 0
and all other colors to 3, 2, 1, cyclically in descending
frequency order, completely disregarding the original color.

Select the "best" four colors from the global palette, according
to heuristics based on frequency, opacity and brightness, and
arrange them in standard DVD order: background, foreground,
outline, other.
TODO: select the alpha value more finely; see if CHG_COLCON can
allow more than 4 colors per packet.

Reference:
http://dvd.sourceforge.net/dvdinfo/spu.html

With these changes, dvdsubenc can be used to transcode DVB subtitles
and get a very decent result.
2012-08-14 11:17:45 +02:00
Nicolas George
0cad101ea1 ffmpeg: add an option to fix subtitles durations.
With this option, transcoding DVB subtitles becomes possible.
2012-08-14 11:17:45 +02:00
Diego Biurrun
ad08dfd594 build: Factor out mpegvideo encoding dependencies to CONFIG_MPEGVIDEOENC
A new hidden config variable is added for the codecs that depend on
the mpegvideo encoding parts.
2012-08-14 10:04:34 +02:00
Sebastien Zwickert
1bfa349a8d vda: merge implementation into one file.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 03:39:31 +02:00
Sebastien Zwickert
7f3dfd2010 vda: support synchronous decoding.
Note that the symbols used to run the hardware decoder in asynchronous mode
has been marked as deprecated and will be dropped at a future version dump.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 03:39:23 +02:00
rogerdpack
47682ddc22 more verbose error messages at configure time
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 03:31:50 +02:00
Michael Niedermayer
e47d979cab asfdec: ignore too tiny indexes
Fixes Ticket1521

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-14 03:21:08 +02:00
Martin Storsjö
0af85d57c1 avprobe: Include libm.h for the log2 fallback
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-14 01:37:52 +03:00
Boris Maksalov
cee03436e6 proresenc: use the edge emulation buffer
Prevents reading past the end of frame buffer.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-13 21:04:00 +02:00
Luca Barbato
fb96c1c5fe rtmp: handle bytes read reports
0x03 (bytes read report) is a known type and should be safely ignored
beside in debug situations.
2012-08-13 21:03:59 +02:00
Michael Niedermayer
5e3900c7a5 hls: Initialize stream_offset before find_stream_info.
find stream info causes reads that may use the offset in their callback

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 20:37:52 +02:00
Michael Niedermayer
cc913f7490 hls: check that the streams have been initialized before checking their discard flags.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 20:37:04 +02:00
Diego Biurrun
fe5fba44c5 configure: Fix typo in mpeg2video/svq1 decoder dependency declaration 2012-08-13 19:37:56 +02:00
Mans Rullgard
d752509b74 Use log2(x) instead of log(x) / log(2)
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 17:59:21 +01:00
Speedy Gonzales
ffda8f0f0f Proresenc: add multithreading support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 17:16:47 +02:00
Mans Rullgard
90540c2d5a x86: swscale: fix fragile memory accesses
To access data at multiple fixed offsets from a base address, this
code uses a single "m" operand and code of the form "32%0", relying on
the memory operand instantiation having no displacement, giving a final
result of the form "32(%rax)".  If the compiler uses a register and
displacement, e.g. "64(%rax)", the end result becomes "3264(%rax)",
which obviously does not work.

Replacing the "m" operands with "r" operands allows safe addition of a
displacement.  In theory, multiple memory operands could use a shared
base register with different index registers, "(%rax,%rbx)", potentially
making more efficient use of registers.  In the cases at hand, no such
sharing is possible since the addresses involved are entirely unrelated.

After this change, the code somewhat rudely accesses memory without
using a corresponding memory operand, which in some cases can lead to
unwanted "optimisations" of surrounding code.  However, the original
code also accesses memory not covered by a memory operand, so this is
not adding any defect not already present.  It is also hightly unlikely
that any such optimisations could be performed here since the memory
locations in questions are not accessed elsewhere in the same functions.

This fixes crashes with suncc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Mans Rullgard
10b83cb653 x86: swscale: remove disabled code
This code has been disabled since 2003.  Nobody will ever look at
it again.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Mans Rullgard
480178a295 x86: yadif: fix asm with suncc
Under some circumstances, suncc will use a single register for the
address of all memory operands, inserting lea instructions loading
the correct address prior to each memory operand being used in the
code. In the yadif code, the branch in the asm block bypasses such
an lea instruction, causing an incorrect address to be used in the
following load.

This patch replaces the tmpX arrays with a single array and uses a
register operand to hold its address. Although this prevents using
offsets from the stack pointer to access these locations, the code
still builds as 32-bit PIC even with old compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Mans Rullgard
8ec0204ee4 x86: cabac: allow building with suncc
This fixes two issues preventing suncc from building this code.

The undocumented 'a' operand modifier, causing gcc to omit a $ in
front of immediate operands (as required in addresses), is not
supported by suncc.  Luckily, the also undocumented 'c' modifer
has the same effect and is supported.

On some asm statements with a large number of operands, suncc for no
obvious reason fails to correctly substitute some of the operands.
Fortunately, some of the operands in these statements are plain
numbers which can be inserted directly into the code block instead
of passed as operands.

With these changes, the code builds correctly with both gcc and
suncc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Mans Rullgard
c8252e80eb x86: mlpdsp: avoid taking address of void
This code contains a C array of addresses of labels defined in
inline asm.  To do this, the names must be declared as external
in C.  The declared type does not matter since only the address is
used, and for some reason, the author of the code used the 'void'
type despite taking the address of a void expression being invalid.

Changing the type to char, a reasonable choice since the alignment
of the code labels cannot be known or guaranteed, eliminates gcc
warnings and allows building with suncc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Mans Rullgard
87fa05a0da ARM: intmath: use native-size return types for clipping functions
This avoids having the compiler redundantly mask the values to
the smaller size.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Michael Niedermayer
603221ebd0 g723_1dec: inline normalize_bits() in scale vector and optimize it.
many branches and cases of scale_vector are irrelevant for the case here
and by inlining they can be reliably removed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 15:18:47 +02:00
Michael Niedermayer
20035fa241 g723_1dec: remove dead code that leaked in from libav
It appears someone thinks this special case can be reached
Well, it cannot, thus not only do we not need to optimize it
we dont need it at all

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 15:02:21 +02:00
Michael Niedermayer
84d29df013 g723_1dec: remove unneeded cliping that leaked in from merge from libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 15:01:45 +02:00
Michael Niedermayer
a9040a1167 g723_1dec: avoid memcpy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 14:53:29 +02:00
Michael Niedermayer
d8c3170c9f Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits)
  g723.1: do not pass large structs by value
  g723.1: do not bounce intermediate values via memory
  g723.1: declare a variable in the block it is used
  g723.1: avoid saving/restoring excitation
  g723.1: avoid unnecessary memcpy() in residual_interp()
  g723.1: make postfilter write directly to output buffer
  g723.1: drop unnecessary variable buf_ptr in formant_postfilter()
  g723.1: make scale_vector() output to a separate buffer
  g723.1: make autocorr_max() work on an arbitrary buffer
  g723.1: do not needlessly use int64_t
  g723.1: use saturating addition functions
  g723.1: optimise scale_vector()
  g723.1: remove useless uses of MUL64()
  g723.1: remove unnecessary argument 'shift' from dot_product()
  g723.1: deobfuscate "(x << 4) - x" to "15 * x"
  celp: optimise ff_celp_lp_synthesis_filter()
  libavutil: add saturating addition functions
  cllc: Implement ARGB support
  cllc: Add support for QRGB
  cllc: Rename some funcs to represent what they actually do
  ...

Conflicts:
	LICENSE
	libavcodec/g723_1.c
	libavcodec/x86/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 14:38:43 +02:00
Paul B Mahol
bd70a52712 paf: prevent invalid write
Closes #1631.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-13 12:27:58 +00:00
Stefano Sabatini
c3da2c19e4 build: extend documentation building mechanism
Allow to select specific documentation components, and reliably check for
component dependencies.

In particular, check for perl presence on the system.
2012-08-13 12:22:02 +02:00
Jérémy Tran
ae60d2c877 lavfi: add hue filter
This is a port of the MPlayer hue filter (libmpcodecs/vf_hue.c) by
Michael Niedermayer.

Signed-off-by: Jérémy Tran <tran.jeremy.av@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-13 12:00:54 +02:00
Nicolas George
03e8944fc1 lavc: add missing codec descriptors. 2012-08-13 10:45:04 +02:00
Nicolas George
f594dafc10 tools: add a script to find missing codec descriptors. 2012-08-13 10:44:59 +02:00
Michael Niedermayer
710600077d h264_cavlc: switch forgotten assert to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 05:59:44 +02:00
Michael Niedermayer
e9d0ab5717 h264: fix x264 build detection
Fixes Ticket1503

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 04:58:15 +02:00
Mans Rullgard
69665bd6f4 g723.1: do not pass large structs by value
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
138914dcd8 g723.1: do not bounce intermediate values via memory
Although a reasonable compiler will probably optimise out the
actual store and load, this operation still implies a truncation
to 16 bits which the compiler will probably not realise is not
necessary here.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
cbcf1b411f g723.1: declare a variable in the block it is used
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
35b533e4de g723.1: avoid saving/restoring excitation
Writing the scaled excitation to a scratch buffer (borrowing the
'audio' array) instead of modifying it in place avoids the need
to save and restore the unscaled values.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
4b728b4712 g723.1: avoid unnecessary memcpy() in residual_interp()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
f645710cf3 g723.1: make postfilter write directly to output buffer
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
1953264331 g723.1: drop unnecessary variable buf_ptr in formant_postfilter()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
b2af2c4bee g723.1: make scale_vector() output to a separate buffer
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
783da0d696 g723.1: make autocorr_max() work on an arbitrary buffer
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
3716105103 g723.1: do not needlessly use int64_t
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
47c73a73b0 g723.1: use saturating addition functions
Use saturating addition functions instead of 64-bit intermediates
and separate clipping.  This is much faster when dedicated
instructions are available.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
4aca716a53 g723.1: optimise scale_vector()
Firstly, nothing in this function can overflow 32 bits so the use
of a 64-bit type is completely unnecessary.  Secondly, the scale
is either a power of two or 0x7fff.  Doing separate loops for these
cases avoids using multiplications.  Finally, since only the number
of bits, not the actual value, of the maximum value is needed, the
bitwise or of all the values serves the purpose while being faster.

It is worth noting that even if overflow could happen, it was not
handled correctly anyway.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
1eb1f6f281 g723.1: remove useless uses of MUL64()
The operands in both cases are 16-bit so cannot overflow a 32-bit
destination.  In gain_scale() the inputs are reduced to 14-bit,
so even the shift cannot overflow.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
5a43eba956 g723.1: remove unnecessary argument 'shift' from dot_product()
The 'shift' argument is always 1 so there is no need to pass it
explicitly in every call.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
8b0de73464 g723.1: deobfuscate "(x << 4) - x" to "15 * x"
The compiler performs this optimisation.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
fddc5b9bea celp: optimise ff_celp_lp_synthesis_filter()
Adding instead of subtracting the products in the loop allows the
compiler to generate more efficient multiply-accumulate instructions
when 16-bit multiply-subtract is not available. ARM has only
multiply-accumulate for 16-bit operands.  In general, if only one
variant exists, it is usually accumulate rather than subtract.

In the same spirit, using the dedicated saturation function enables
use of any special optimised versions of this.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:25 +01:00
Mans Rullgard
6c4975eaaf libavutil: add saturating addition functions
Fixed-point audio codecs often use saturating arithmetic, and
special instructions for these operations are common.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 01:03:10 +01:00
Michael Niedermayer
ed8d827ad0 riffenc: fix aac
Fixes Ticket1435

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-13 01:41:55 +02:00
Stefano Sabatini
5c0d8bc4ce lavfi: add avfilter_get_class() and iteration callbacks
Allow iteration over filter options.
2012-08-13 00:04:06 +02:00
Stefano Sabatini
a25346e65c lavu/opt.h: add AV_OPT_FLAG_FILTERING_PARAM macro 2012-08-12 23:52:55 +02:00
Stefano Sabatini
3239382aef doc/texi2pod: add "use warnings" directive
The script was previously run with perl -w through the shebang
command. Now that the script is executed through direct perl invocation
the -w in the shebang command is ignored. This patch re-enables "use
warnings" whatever way the script is invoked.

Idea-By: jamal <jamrial@gmail.com>
2012-08-12 23:52:55 +02:00
Reimar Döffinger
118bd609f0 Optimized unscaled yuvp9/yuvp10 -> yuvp16 conversion.
About 30% faster on 32 bit Atom, 120% faster on 64 bit Phenom2.
This is interesting because supporting P16 is easier in e.g.
OpenGL (can misuse support for any 2-component 8 bit format),
whereas supporting p9/p10 without conversion needs a texture
format with at least 14 bits actual precision.
The shiftonly == 0 case is not optimized since the code is more
complex and the speed gain less obvious.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-12 23:23:19 +02:00
Michael Niedermayer
bb7073921c oggparsetheora: fix metadata parsing
Fixes Ticket1508
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 23:09:45 +02:00
Derek Buitenhuis
17c11cef9f cllc: Implement ARGB support
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-12 15:21:15 -04:00
Derek Buitenhuis
ba752dc016 cllc: Implement ARGB support
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-12 15:13:47 -04:00
Derek Buitenhuis
7fda47d53b cllc: Add support for QRGB
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-12 15:07:00 -04:00
Derek Buitenhuis
f4bb38cc26 cllc: Rename some funcs to represent what they actually do
This is in preparation for adding support for other colorspaces
and coding types.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-12 15:07:00 -04:00
Derek Buitenhuis
21d62c4730 cllc: Add support for QRGB
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-12 15:01:19 -04:00
Derek Buitenhuis
4637009e59 cllc: Rename some funcs to represent what they actually do
This is in preparation for adding support for other colorspaces
and coding types.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-12 15:01:19 -04:00
Michael Niedermayer
ab0ea7cb41 ffplay: avoid SDL_atoi()
It appears this function is not available everywhere
Should fix Ticket1525

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 20:05:39 +02:00
Boris Maksalov
d70231f02d Fix reading past the end of frame buffer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 18:51:23 +02:00
Piotr Bandurski
bd92205014 mov: remux AALP tag
AALP(AALP001) tag is present in 32bpp files encoded with avid codecs

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 18:46:29 +02:00
Michael Niedermayer
bbe1a468d8 fate: split asyncts from aresample test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 18:11:27 +02:00
Diego Biurrun
3b9e832e17 x86: Drop silly "_yasm" suffixes from filenames 2012-08-12 17:13:05 +02:00
Michael Niedermayer
d5c90ff23b lavf: reimplement is_intra_only() by using the AVCodecContext codec descriptor
This also changes behavior as the descriptor table is more complete than
the switch/case it replaces. As well as considering all non video as
intra only

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 14:51:22 +02:00
Michael Niedermayer
da74e883f1 lavc: add codec_descriptor field to AVCodecContext.
This can be used to avoid a time consuming lookup of the
descriptor

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 14:51:19 +02:00
Michael Niedermayer
d0bf3bf1ff Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: Detect discontinuities in timestamps for framerate/analyzeduration calculation
  lavf: Initialize the stream info timestamps in avformat_new_stream
  id3v2: Match PIC mimetype/format case-insensitively
  configure: Rename check_asm() to more fitting check_inline_asm()
  fate: Only test enabled filters
  avresample: De-doxygenize some comments where Doxygen is not appropriate
  rtmp: split chunk_size var into in_chunk_size and out_chunk_size
  rtmp: Factorize the code by adding find_tracked_method

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 13:43:03 +02:00
Diego Biurrun
f30ff54200 doc: Clarify licensing issues arising from external libraries 2012-08-12 13:28:58 +02:00
Martin Storsjö
bdefe22b8e lavf: Detect discontinuities in timestamps for framerate/analyzeduration calculation
If the dts difference is more than 1000 times the average dts
difference, restart the analysis.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-12 12:39:49 +03:00
Martin Storsjö
30c26c2442 lavf: Initialize the stream info timestamps in avformat_new_stream
These are normally initialized to AV_NOPTS_VALUE at the start
of avformat_find_stream_info, but if a new stream is found while
this function is running (e.g. like in mpegts), the newly added
AVStreams didn't have these values properly initalized, leading
to avformat_find_stream_info terminating too soon (when the
first timestamps are far from 0).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-12 12:39:47 +03:00
Mohammad Alsaleh
6e9bbc6525 id3v2: Match PIC mimetype/format case-insensitively
Some files' embedded art seems to have the mimetype 'image/JPG' instead
of 'image/jpg'. Libav fails to parse those because it matches
case-sensitively.

Use av_strncasecmp() to fix this behaviour.

Signed-off-by: Mohammad Alsaleh <msal@tormail.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-12 11:00:19 +02:00
Michael Niedermayer
6fd7bf7b03 sgidec: fix error free end detection.
Fixes Ticket1506
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 05:32:07 +02:00
Michael Niedermayer
39c56ef921 sgidec: correct end pointer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 05:31:14 +02:00
Michael Niedermayer
c5ea3a009b ffmpeg: Do not discard slightly invalid timestamps.
Fixes Ticket1627

The fate change is due to ffmpeg no longer pushing audio timestamps
aggressively up (which is what caused the AV sync issues in the ticket)
but leaving them as they are.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 01:22:48 +02:00
Michael Niedermayer
15e4bd65b1 vc1dec: support debug & FF_DEBUG_PICT_INFO.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 01:21:42 +02:00
Michael Niedermayer
a036ac5782 lavf: do not discard correct dts in favor of wrong pts for vc1-wmapro.ism
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-12 00:52:20 +02:00
Michael Niedermayer
2e4b662787 mov: add av_dlog() to CTTS reading code like is already done in STTS.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 23:27:27 +02:00
Diego Biurrun
575db88377 configure: Rename check_asm() to more fitting check_inline_asm() 2012-08-11 20:26:31 +02:00
Diego Biurrun
e017c87552 fate: Only test enabled filters
This fixes running FATE without --enable-gpl.
2012-08-11 20:26:31 +02:00
Diego Biurrun
3aa696e883 avresample: De-doxygenize some comments where Doxygen is not appropriate 2012-08-11 20:22:01 +02:00
Michael Niedermayer
7d23a65f0d asfdec: fix FRAME_HEADER_SIZE
Fixes Ticket1477

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 19:45:45 +02:00
Michael Niedermayer
5a49482cc0 dsputil_template: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 16:58:18 +02:00
Michael Niedermayer
f5f3684fb8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: simplify is_intra_only() by using codec descriptors.
  lavc: add an intra-only codec property.
  lavc: add codec descriptors.
  lavc: fix mixing CODEC_ID/AV_CODEC_ID in C++ code.
  dict: move struct AVDictionary definition to dict.c
  dict: add av_dict_count()

Conflicts:
	doc/APIchanges
	libavcodec/old_codec_ids.h
	libavformat/utils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 15:01:45 +02:00
Jordi Ortiz
f5ce90f2de rtmp: split chunk_size var into in_chunk_size and out_chunk_size
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-11 15:49:37 +03:00
Samuel Pitoiset
a8103503b3 rtmp: Factorize the code by adding find_tracked_method
Also fix the bytestream reader size parameter to take the
offset into account.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-11 15:15:51 +03:00
Anton Khirnov
885da7b082 lavf: simplify is_intra_only() by using codec descriptors. 2012-08-11 11:34:24 +02:00
Anton Khirnov
51efed152d lavc: add an intra-only codec property. 2012-08-11 11:34:09 +02:00
Anton Khirnov
c223d79945 lavc: add codec descriptors.
They describe properties that are inherent to a codec (as described by
an AVCodecID) without referring to a specific implementation.
2012-08-11 11:32:11 +02:00
Michael Niedermayer
48d20b918c snowdec: increase stack size
Fixes Ticket1632

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 05:32:16 +02:00
Michael Niedermayer
994923ec00 dwt: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 05:31:59 +02:00
Michael Niedermayer
58825a18aa msrle: fix regression causing null ptr dereference
Fixes Ticket1630

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 02:20:06 +02:00
Michael Niedermayer
f9505923a3 cavsdec: check dimensions being valid.
Fixes crash
Fixes Ticket1628

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 02:00:33 +02:00
Michael Niedermayer
bd6ece4609 mp3enc: fix CODEC_ID/CodecID that leaked in from older patch
Found-by: jamal <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-11 01:52:15 +02:00
Stefano Sabatini
e874b29296 doc/Makefile: invoke perl to interpret texi2pod.pl
Do not rely on shebang directive in the script, whose exact behavior is
system dependent.
2012-08-10 23:14:57 +02:00
Stefano Sabatini
ad5043e285 cmdutils: show options in show_help_children only if the context has options
Avoid to print a pointless name of the context followed by an empty list.
2012-08-10 23:14:44 +02:00
Stefano Sabatini
a6d6b8a200 lavu/opt: fix crash in av_opt_next() in case the class has no options 2012-08-10 23:14:37 +02:00
Anton Khirnov
2ff67c909c lavc: fix mixing CODEC_ID/AV_CODEC_ID in C++ code.
C++ does not allow to mix different enums, so e.g. code comparing
ACodecID with CodecID would fail to compile with gcc.

This very evil hack should fix this problem.
2012-08-10 18:48:40 +02:00
Michael Niedermayer
7fd467f708 mp3/mp2: identify the video codecs as APIC through query_codec.
Fixes Ticket1408

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 17:24:39 +02:00
Michael Niedermayer
22d804b7f0 ffmpeg: dont auto match videostreams with attachment pics.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 17:23:18 +02:00
Michael Niedermayer
f9f11c1000 lavf: return APIC fourcc from query_format() if the codec is supported as an attachment pic
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 17:22:56 +02:00
Michael Niedermayer
b2bc48ae22 iff: replace av_abort by av_assert0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 16:26:39 +02:00
Michael Niedermayer
18b0c39f99 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  g723.1: fix addition overflow
  g723.1: simplify and fix multiplication overflow
  g723.1: deobfuscate an expression
  g723.1: remove unused #includes
  ARM: add missing "cc" clobber in av_clipl_int32_arm()
  rtmp: Factorize the code by adding handle_invoke_error
  rtmp: Factorize the code by adding handle_invoke_status
  rtmp: Factorize the code by adding handle_invoke_result
  libavutil: remove unused av_abort() macro
  ffmenc: replace if/abort with assert()
  libavutil: drop offsetof() fallback definition
  libavutil: drop fallback definitions of INTxx_MIN/MAX
  configure: Check for a sctp struct instead of just the header
  configure: suncc: Add -xc99 to dependency flags, required on Solaris
  doxygen: Fix function parameter names to match the code
  doc: Drop obsolete shared libs cflags hint to workaround Cygwin gcc bugs
  swf: Move shared table out of the header file
  swf: Move swf_audio_codec_tags table to the only place it is used
  fate: add G.723.1 decoder tests

Conflicts:
	configure
	doc/platform.texi
	libavformat/Makefile
	libavutil/arm/intmath.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 16:25:23 +02:00
Mans Rullgard
33de86db2b dict: move struct AVDictionary definition to dict.c
This makes struct AVDictionary fully opaque now that nothing
needs to access it directly any more.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 15:15:00 +01:00
Mans Rullgard
987170cb9d dict: add av_dict_count()
This adds a function to retrieve the number of entries in a
dictionary and updates the places directly accessing what should
be an opaque struct to use this new function instead.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 15:15:00 +01:00
Michael Niedermayer
d9d0c1ccc3 mjpegdec: support AVRn interlaced
Fixes Ticket1527
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 15:56:14 +02:00
Mans Rullgard
05c36e0e5f g723.1: fix addition overflow
This addition must be done as 64-bit to avoid overflow and for
the subsequent clipping to be meaningful.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 12:18:38 +01:00
Mans Rullgard
52aa3015a3 g723.1: simplify and fix multiplication overflow
In 16-bit arithmetic, x * 0xffffc is simply x * -4 with extra overflows,
(and the constant was probably meant to be 0xfffc).  Combined with the
shift, this simplifies to -x >> 1.  Finally, clearing the low two bits
with a 32-bit mask and switching to a 32-bit type allows more efficient
code on 32-bit machines.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 12:18:38 +01:00
Mans Rullgard
e141cf2c57 g723.1: deobfuscate an expression
(x << 2) - x is just an optimisation of 3 * x the compiler is
perfectly capable of doing on its own.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 12:18:38 +01:00
Mans Rullgard
e2b7c5783d g723.1: remove unused #includes
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 12:18:38 +01:00
Mans Rullgard
0d735ca214 ARM: add missing "cc" clobber in av_clipl_int32_arm()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-10 10:51:10 +01:00
Michael Niedermayer
633b90ca8d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  motion_est: drop inline from sad_hpel_motion_search()
  motion_est: remove unused macros
  motion_est: remove useless no_motion_search() function
  lagarith: frame multithreading
  doxygen: qdm2: Drop documentation for non-existing function parameters
  build: add HOSTOBJS to SUBDIR_VARS list

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 04:46:13 +02:00
Michael Niedermayer
969267482d ffmpeg: Allocate new buffer for bitstream filter when buffer shifted
fix crash with aac_adtstoasc bitstream filter
Fixes Ticket1441

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 04:36:43 +02:00
Michael Niedermayer
a0d15027e3 yadif: check input video size.
yadif needs at least 3x3 or it will likely crash with out of array reads

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 00:09:34 +02:00
Michael Niedermayer
8f29901b54 yadif: remove get_video_buffer, its redundant now
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 00:09:11 +02:00
Michael Niedermayer
2f7e8dcf45 yadif: redesign first and last 2 lines handling.
The previous code dependent on the input buffer matching the
buffer that has been provided by yadifs get_buffer.
The API does in now way gurantee this though its often true.
This fixes some out of array reads.
The regression test checksums change due to "out of picture" values
being initialized differently.
There should be no visual difference in the filters output

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-10 00:08:34 +02:00
Samuel Pitoiset
3eebc1e174 rtmp: Factorize the code by adding handle_invoke_error
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-09 22:44:30 +02:00
Samuel Pitoiset
71036a3a5e rtmp: Factorize the code by adding handle_invoke_status
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-09 22:44:30 +02:00
Samuel Pitoiset
5e6001db8f rtmp: Factorize the code by adding handle_invoke_result
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-09 22:44:29 +02:00
Mans Rullgard
54918d0394 libavutil: remove unused av_abort() macro
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 20:52:39 +01:00
Mans Rullgard
6d3783d160 ffmenc: replace if/abort with assert()
The condition is trivially true, but keeping the assert() is
sensible to avoid FFM_HEADER_SIZE ever getting out of sync with
the actual code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 20:52:39 +01:00
Mans Rullgard
1c4ab37c38 libavutil: drop offsetof() fallback definition
The only compiler I have that does not define the standard
offsetof() macro is "Bruce's C Compiler", a simple compiler
for producing 8/16-bit 8086 code, usually for use in early
stages of PC booting.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 20:52:39 +01:00
Mans Rullgard
d913fd1f00 libavutil: drop fallback definitions of INTxx_MIN/MAX
This list is incomplete (we also use UINT16_MAX), so there does
not appear to be any system we care about that needs these.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 20:52:39 +01:00
Michael Niedermayer
83c93fe74a configure: Check for a sctp struct instead of just the header
This fixes build failures on debian/kfreebsd, which has the
sctp.h header, but it is currently broken (a cpp test succeeds,
but a compile test fails), see http://bugs.debian.org/684330 for
details.

Also remove the checked item from HAVE_LIST, since the corresponding
HAVE_* define isn't used by the source code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 22:22:38 +03:00
Diego Biurrun
c72f12cbae configure: suncc: Add -xc99 to dependency flags, required on Solaris 2012-08-09 20:07:05 +02:00
Diego Biurrun
804d7a1aa6 doxygen: Fix function parameter names to match the code 2012-08-09 20:05:55 +02:00
Diego Biurrun
52561d0116 doc: Drop obsolete shared libs cflags hint to workaround Cygwin gcc bugs 2012-08-09 20:05:54 +02:00
Diego Biurrun
90f7e61769 swf: Move shared table out of the header file 2012-08-09 20:05:54 +02:00
Diego Biurrun
2804ba6a3b swf: Move swf_audio_codec_tags table to the only place it is used 2012-08-09 20:05:53 +02:00
Kostya Shishkov
84f9d78a96 fate: add G.723.1 decoder tests 2012-08-09 19:35:47 +02:00
Michael Niedermayer
9f088a1ed4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: reduce excessive inlining of mpeg_motion()
  mpegvideo: convert mpegvideo_common.h to a .c file
  build: factor out mpegvideo.o dependencies to CONFIG_MPEGVIDEO
  Move MASK_ABS macro to libavcodec/mathops.h
  x86: move MANGLE() and related macros to libavutil/x86/asm.h
  x86: rename libavutil/x86_cpu.h to libavutil/x86/asm.h
  aacdec: Don't fall back to the old output configuration when no old configuration is present.
  rtmp: Add message tracking
  rtsp: Support mpegts in raw udp packets
  rtsp: Support receiving plain data over UDP without any RTP encapsulation
  rtpdec: Remove an unused include
  rtpenc: Remove an av_abort() that depends on user-supplied data
  vsrc_movie: discourage its use with avconv.
  avconv: allow no input files.
  avconv: prevent invalid reads in transcode_init()
  avconv: rename OutputStream.is_past_recording_time to finished.

Conflicts:
	configure
	doc/filters.texi
	ffmpeg.c
	ffmpeg.h
	libavcodec/Makefile
	libavcodec/aacdec.c
	libavcodec/mpegvideo.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 19:31:56 +02:00
Michael Niedermayer
e1a983e601 Merge commit '0c00fd80ee4791bd70b634084307fc9f179e0412'
Just for metadata, this change has been integrated by hand already

* commit '0c00fd80ee4791bd70b634084307fc9f179e0412':
  avconv: split the code for processing input packets out of transcode()

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 18:43:12 +02:00
Michael Niedermayer
fc97f8e0e2 ffmpeg: factorize process_input() out
Based-on:
	commit 0c00fd80ee
	Author: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 18:21:45 +02:00
Michael Niedermayer
b7e9eea31f Merge commit 'f154ef1ae5b03f288dd8c025dab1884b4cb20c1a'
* commit 'f154ef1ae5b03f288dd8c025dab1884b4cb20c1a':
  avconv: send EOF to lavfi even if flushing the decoder fails
  avconv: get rid of pointless temporary variable.
  avconv: simplify transcode().
  avconv: cosmetics
  avconv: replace no_packet array in transcode() with a var in InputStream
  avconv: remove unused variable from InputFile.
  avconv: remove commented out cruft.
  avconv: maintain sync on lavfi outputs.

Conflicts:
	ffmpeg.c
	ffmpeg.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 15:23:00 +02:00
Mans Rullgard
0db9eba48c motion_est: drop inline from sad_hpel_motion_search()
This function is only ever called through a function pointer,
so marking it inline makes no sense.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 12:27:49 +01:00
Mans Rullgard
5bf7bc625b motion_est: remove unused macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 12:27:49 +01:00
Mans Rullgard
74f82f92a4 motion_est: remove useless no_motion_search() function
At both places this function is called, mb_[xy] == s->mb_[xy]
making the call together with following code equivalent to
simply assigning zeros.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 12:27:49 +01:00
Nicolas George
e13df05fdb dvbsub: reindent after last commit. 2012-08-09 11:22:11 +02:00
Nicolas George
aed032c25b dvbsub: fix encoding of termination packets.
The old code generates a termination packet with the same regions as the
start packet and page_state set to "only what changed"; the result is
that the termination packet is decoded as identical to the start packet.

The new code does as found in some DVB broadcasts: produce a packet with
no regions. This is done by expecting num_rects to be 0 rather than
using a flip-flop. ffmpeg.c is updated accordingly.
2012-08-09 11:03:22 +02:00
Hendrik Leppkes
f9150c8ac0 lagarith: frame multithreading
About 2x speedup going from 1 to 2 threads.
1.7s to 0.85s on foreman CIF.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-08-09 10:50:27 +02:00
Clément Bœsch
cc650cf029 Remove "Error parsing options string [...]" messages.
This reduces from 3 to 2 messages for the same syntax error in ffprobe,
and from 4 to 3 in filters.
2012-08-09 08:11:00 +02:00
jamal
5d8e54fe1d checkheaders: Rename HEADEROBJS to HOBJS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 05:02:45 +02:00
Michael Niedermayer
2cdb0810f1 ffmpeg: reduce difference to qatar by a few lines
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 04:12:50 +02:00
Michael Niedermayer
b41d481aa4 common.mak: add forgotten hunk from last merge
Found-by: jamal <jamrial@gmail.com>
Author of the hunk: Mans Rullgard <mans@mansr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 03:50:48 +02:00
Diego Biurrun
36a8c43073 doxygen: qdm2: Drop documentation for non-existing function parameters 2012-08-09 03:49:44 +02:00
Diego Biurrun
24d3796d21 build: add HOSTOBJS to SUBDIR_VARS list
Even though HOSTOBJS are not referenced directly in subdirectory Makefile
snippets right now, robustness requires resetting the variable contents.
2012-08-09 03:49:19 +02:00
Mans Rullgard
f69f4036f8 mpegvideo: reduce excessive inlining of mpeg_motion()
The main benefit of inlining this function is from constant
propagation for the 'field_based' argument.  Instead of inlining
all calls, create two versions of the function for field_based
values of 0 and 1.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 01:31:37 +01:00
Mans Rullgard
7a851153d3 mpegvideo: convert mpegvideo_common.h to a .c file
This file defines a single, huge function, MPV_motion(), which
although being declared inline is not actually inlined by the
compiler (for good reason).  There is thus no sense in defining
this function in a header file, resulting in multiple copies of
it in the final library.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 01:31:37 +01:00
Mans Rullgard
18bbca1fd3 build: factor out mpegvideo.o dependencies to CONFIG_MPEGVIDEO
This adds a hidden config variable for the mpegvideo.o dependency
and selects from the codecs which require it.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 01:31:37 +01:00
Paul B Mahol
bd971ddaf4 aasc: 8bit support
Closes #1319.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-09 00:02:05 +00:00
Paul B Mahol
8a57ca5c6a aasc: fix out of array write
Closes #1619.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-09 00:02:05 +00:00
Mans Rullgard
d7a4f8f8b9 Move MASK_ABS macro to libavcodec/mathops.h
This macro is only used in two places, both in libavcodec, so this
is a more sensible place for it.

Two small tweaks to the macro are made:

- removing the trailing semicolon
- dropping unnecessary 'volatile' from the x86 asm

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 00:58:20 +01:00
Mans Rullgard
070a402b60 x86: move MANGLE() and related macros to libavutil/x86/asm.h
These x86-specific macros do not belong in generic code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 00:58:20 +01:00
Mans Rullgard
c318626ce2 x86: rename libavutil/x86_cpu.h to libavutil/x86/asm.h
This puts x86-specific things in the x86/ subdirectory where they
belong.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 00:58:20 +01:00
Alex Converse
122d5c526a aacdec: Don't fall back to the old output configuration when no old configuration is present.
Fixes MP4 files where the first frame is broken.
2012-08-08 16:55:41 -07:00
Michael Niedermayer
4ec03d1386 bessel: check that the function terminates as expected by av_assert2().
A clear abort is better than wrong output and a possible crash.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 01:44:15 +02:00
Michael Niedermayer
f79f25e948 integer: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 01:44:15 +02:00
Michael Niedermayer
ae199ab4ae integer: fix typos in asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 01:44:15 +02:00
Stefano Sabatini
f6580b50ed lavfi: add asetpts audio filter
Based on an idea by Andrey Utkin <andrey.krieger.utkin@gmail.com>.
2012-08-09 01:03:05 +02:00
Michael Niedermayer
11a1033c9f Merge remote-tracking branch 'qatar/master'
* qatar/master: (23 commits)
  build: cosmetics: Reorder some lists in a more logical fashion
  x86: pngdsp: Fix assembly for OS/2
  fate: add test for RTjpeg in nuv with frameheader
  rtmp: send check_bw as notification
  g723_1: clip argument for 15-bit version of normalize_bits()
  g723_1: use all LPC vectors in formant postfilter
  id3v2: Support v2.2 PIC
  avplay: fix build with lavfi disabled.
  avconv: split configuring filter configuration to a separate file.
  avconv: split option parsing into a separate file.
  mpc8: do not leave padding after last frame in buffer for the next decode call
  mpegaudioenc: list supported channel layouts.
  mpegaudiodec: don't print an error on > 1 frame in a packet.
  api-example: update to new audio encoding API.
  configure: add --enable/disable-random option
  doc: cygwin: Update list of FATE package requirements
  build: Remove all installed headers and header directories on uninstall
  build: change checkheaders to use regular build rules
  rtmp: Add a new option 'rtmp_subscribe'
  rtmp: Add support for subscribing live streams
  ...

Conflicts:
	Makefile
	common.mak
	configure
	doc/examples/decoding_encoding.c
	ffmpeg.c
	libavcodec/g723_1.c
	libavcodec/mpegaudiodec.c
	libavcodec/x86/pngdsp.asm
	libavformat/version.h
	library.mak
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-09 00:51:02 +02:00
Stefano Sabatini
4270d8c04d lavd/x11grab: deprecate "nomouse" specification in filename
Favor draw_mouse option. Should simplify parsing, and make it more
robust.
2012-08-08 23:43:37 +02:00
Stefano Sabatini
be2b885738 doc/indevs: document missing options in x11grab section
Add documentation for options draw_mouse, framerate, and video_size.

In particular, fix trac ticket #1314.
2012-08-08 23:43:37 +02:00
Stefano Sabatini
c93b796c3e lavd/x11grab: apply misc consistency fixes to options definition
In particular, do not upcase first word, do not use final dot, use a verb
to specify what the option does, sort entries by name, apply random
vertical align.
2012-08-08 23:43:37 +02:00
Stefano Sabatini
f09a06908e doc/indevs: use separate @example blocks for separate examples
Improve rendering.
2012-08-08 23:43:37 +02:00
Stefano Sabatini
083754f2be doc/indevs: rework options description in the x11 grab section
Create a dedicated options subchapter, rather than a subchapter for each
option.

This is more consistent with the rest of the docs. Also apply misc minor
fixes for improving rendering.
2012-08-08 23:43:36 +02:00
Stefano Sabatini
7794ddeae3 doc/ffmpeg: do not show examples making use of the deprecated glob_sequence pattern type
The syntax of the 'glob_sequence' pattern type is explained in the image2
manual section, so there is no need to replicate it here.

Also discourage the use of such deprecated pattern type by not showing
examples employing it.

Replace the syntax explanation with an use example of the 'glob' pattern
type.
2012-08-08 23:43:36 +02:00
Stefano Sabatini
3a06ea8436 lavf/img2dec: add and document pattern_type option
Allow to override the default 'glob_sequence' value, which is deprecated
in favor of the new 'glob' and 'sequence' options.

The new pattern types should be easier on the user since they are more
predictable than 'glob_sequence', and do not require awkward escaping.
2012-08-08 23:43:36 +02:00
Stefano Sabatini
0325e01fe7 doc/demuxers: itemize image2 examples and put them in a dedicated subsection 2012-08-08 23:43:31 +02:00
Samuel Pitoiset
f89584ca44 rtmp: Add message tracking
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 00:32:29 +03:00
Martin Storsjö
1243c72251 rtsp: Support mpegts in raw udp packets
This is basically the same way as mpegts packets are parsed in
rtpdec.c.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 00:25:57 +03:00
Martin Storsjö
df8cf076c8 rtsp: Support receiving plain data over UDP without any RTP encapsulation
EvoStream Media Server can serve data in this format, and
VLC/live555 already supports it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 00:25:15 +03:00
Martin Storsjö
c864e461d2 rtpdec: Remove an unused include
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 00:25:11 +03:00
Martin Storsjö
bfb82fcddf rtpenc: Remove an av_abort() that depends on user-supplied data
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 00:24:41 +03:00
Clément Bœsch
cb5bb521aa lavf/movenc: use two explicit bytes instead of a short.
This also avoids a pointless cast.

Idea-by: Reimar Döffinger
2012-08-08 23:13:52 +02:00
Clément Bœsch
e6dd2852ca lavfi/atempo: remove dead increment. 2012-08-08 22:53:00 +02:00
Anton Khirnov
7ca14c731e vsrc_movie: discourage its use with avconv. 2012-08-08 21:56:44 +02:00
Anton Khirnov
ab29609701 avconv: allow no input files.
It is now possible to use lavfi sources.
2012-08-08 21:56:26 +02:00
Anton Khirnov
a5fd7c607f avconv: prevent invalid reads in transcode_init() 2012-08-08 21:55:54 +02:00
Anton Khirnov
57d2422559 avconv: rename OutputStream.is_past_recording_time to finished.
The new name is shorter and more accurate, since this variable is no
longer used only for checking recording time constraint.
2012-08-08 21:55:45 +02:00
Anton Khirnov
0c00fd80ee avconv: split the code for processing input packets out of transcode() 2012-08-08 21:55:15 +02:00
Michael Niedermayer
b615dbb319 lavf: block special characters in dump metadata
This is limited to the chars that arent filtered by av_log() already
we might filter more aggressively if theres some case where this becomes
needed.

Fixes Ticket1181

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-08 21:13:15 +02:00
Anton Khirnov
f154ef1ae5 avconv: send EOF to lavfi even if flushing the decoder fails 2012-08-08 20:16:29 +02:00
Anton Khirnov
cc2133b66a avconv: get rid of pointless temporary variable. 2012-08-08 20:16:13 +02:00
Anton Khirnov
8391602913 avconv: simplify transcode().
Operate with a pointer to InputFile instead of its index in input_files.
2012-08-08 20:15:36 +02:00
Anton Khirnov
c0fbf9713c avconv: cosmetics
Replace for (;foo == 0;) with while (!foo)
This is prettier.
2012-08-08 20:15:13 +02:00
Anton Khirnov
0b26ef4228 avconv: replace no_packet array in transcode() with a var in InputStream
This simplifies splitting code for reading from input out of
transcode().
2012-08-08 20:12:47 +02:00
Anton Khirnov
bed43d58b0 avconv: remove unused variable from InputFile. 2012-08-08 20:12:22 +02:00
Anton Khirnov
d64901f99d avconv: remove commented out cruft. 2012-08-08 20:12:11 +02:00
Anton Khirnov
a4f5011065 avconv: maintain sync on lavfi outputs.
Before this commit, poll_filters() reads all frames available on each
lavfi output. This does not work for lavfi sources that produce
an unlimited number of frames, e.g. color and similar.

With this commit, poll_filters() reads from output with the lowest
timestamp and returns to wait for more input if no frames are available
on it.
2012-08-08 20:04:27 +02:00
Michael Niedermayer
ee475e272e matroskadec: fix lace vs block duration.
Fixes Ticket1270

Thanks-to: Moritz Bunkus
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-08 17:54:49 +02:00
Stefano Sabatini
dbf25b70ea lavfi/testsrc: set default value for option "color" to NULL and rework color setting logic
Fix bogus warnings of the kind:
option 'color' is ignored with source 'testsrc'

when the color value is not explicitely set and the filter is different
from "color".
2012-08-08 16:49:53 +02:00
Michael Niedermayer
bed63a5e98 configure: fix sctp check.
This fixes build failures on debian/kfreebsd

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-08 16:20:18 +02:00
Paul B Mahol
c7bbd82170 doc/general: move ZeroCodec to right section
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-08 14:16:51 +00:00
Diego Biurrun
5864eb427f build: cosmetics: Reorder some lists in a more logical fashion 2012-08-08 15:46:44 +02:00
Dave Yeo
197439c1ef x86: pngdsp: Fix assembly for OS/2
The a.out object format does not allow aligning sections.
On OS/2 LD aligns sections to 16 bytes.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-08 15:45:09 +02:00
Janne Grunau
69ac6400b8 fate: add test for RTjpeg in nuv with frameheader
Renames the old test to allow using fate-nuv as group for all
nuv tests.
2012-08-08 15:06:46 +02:00
Luca Barbato
82613564cf rtmp: send check_bw as notification
Set the transactionId to 0 to signal the server a return _result/_error
is not expected.

Solves the problems experienced with strict rtmp servers.
2012-08-08 14:22:34 +02:00
Kostya Shishkov
e78e6c37ef g723_1: clip argument for 15-bit version of normalize_bits()
It expects maximum value to be 32767 but calculations in scale_vector()
which uses this function can give it ABS(-32768) which leads to wrong
result and thus clipping is needed.
2012-08-08 13:24:19 +02:00
Kostya Shishkov
f86b2f3661 g723_1: use all LPC vectors in formant postfilter
Due to some mistake LPC vector for the first subframe was used for all
subframes instead of their own LPC vectors.
2012-08-08 13:23:22 +02:00
Mohammad Alsaleh
385ec296f1 id3v2: Support v2.2 PIC
id3 v2.2 uses image format ("JPG","PNG") instead of mimetypes.

Currently, the attached picture is skipped because the format string
does not match a known picture mimetype.

This patch fixes this behaviour.

Signed-off-by: Mohammad Alsaleh <msal@tormail.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-08 11:20:45 +02:00
Konstantin Pavlov
1a4b556786 avplay: fix build with lavfi disabled.
Issue introduced in 67339f6e.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-08-08 11:14:10 +02:00
Anton Khirnov
fe2147e936 avconv: split configuring filter configuration to a separate file. 2012-08-08 11:11:52 +02:00
Anton Khirnov
f5e668273a avconv: split option parsing into a separate file. 2012-08-08 11:10:06 +02:00
Kostya Shishkov
8f2aa89a5d mpc8: do not leave padding after last frame in buffer for the next decode call 2012-08-08 09:11:38 +02:00
Clément Bœsch
aca0f78114 lavf/movenc: add frame rate heuristic for timecode frame rate.
Fixes ticket 1576.
2012-08-08 09:11:26 +02:00
Clément Bœsch
4b365b0868 lavu/timecode: add av_timecode_check_frame_rate(). 2012-08-08 09:11:26 +02:00
Clément Bœsch
6b3484dcbc lavf/mxfenc: better error handling with invalid frame rate. 2012-08-08 09:11:25 +02:00
Clément Bœsch
aad737c669 lavf/mxfenc: simplify frame rate checks. 2012-08-08 09:11:25 +02:00
jamal
82e5c5d45b lavc/old_codec_ids: Fix make checkheaders. 2012-08-08 08:02:56 +02:00
Anton Khirnov
94364b7d42 mpegaudioenc: list supported channel layouts. 2012-08-08 07:53:48 +02:00
Anton Khirnov
927e92cdc7 mpegaudiodec: don't print an error on > 1 frame in a packet.
It's a perfectly normal situation, nothing to spam about.
2012-08-08 07:53:48 +02:00
Anton Khirnov
5702c8670e api-example: update to new audio encoding API. 2012-08-08 07:53:47 +02:00
Michael Niedermayer
e40f7f1e01 cavs: fix memleak
Fixes Ticket1335

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-08 01:14:18 +02:00
Michael Niedermayer
c794acc44e x86inc.asm: remove redundant ifdef __YASM_VER__
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-08 01:14:18 +02:00
Paul B Mahol
8654d6c892 libtwolame: fix stupid bug
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-07 22:56:35 +00:00
Michael Niedermayer
bb2f13c19f rename missed CodecID to AVCodecID
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 23:57:21 +02:00
Mans Rullgard
154caa677c configure: add --enable/disable-random option
This allows creating random configurations which is useful for
testing purposes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 22:30:49 +01:00
Michael Niedermayer
2fc7c818cb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: fix build with nasm 2.08
  x86: use nop cpu directives only if supported
  x86: fix rNmp macros with nasm
  build: add trailing / to yasm/nasm -I flags
  x86: use 32-bit source registers with movd instruction
  x86: add colons after labels

Conflicts:
	Makefile
	libavutil/x86/x86inc.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 23:04:55 +02:00
Paul B Mahol
2da5a5ce00 gifdec: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-07 20:58:20 +00:00
Paul B Mahol
f64288960b gifdec: remove redundant "gif: " from av_dlog()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-07 20:58:20 +00:00
Paul B Mahol
3662f787e7 gifdec: pass avctx to av_log()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-07 20:58:19 +00:00
Diego Biurrun
578344f79c doc: cygwin: Update list of FATE package requirements 2012-08-07 22:54:44 +02:00
Diego Biurrun
a2b4d1df52 build: Remove all installed headers and header directories on uninstall 2012-08-07 22:54:43 +02:00
Michael Niedermayer
7a72695c05 Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'
* commit '36ef5369ee9b336febc2c270f8718cec4476cb85':
  Replace all CODEC_ID_* with AV_CODEC_ID_*
  lavc: add AV prefix to codec ids.

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	doc/examples/muxing.c
	ffmpeg.c
	ffprobe.c
	ffserver.c
	libavcodec/8svx.c
	libavcodec/avcodec.h
	libavcodec/dnxhd_parser.c
	libavcodec/dvdsubdec.c
	libavcodec/error_resilience.c
	libavcodec/h263dec.c
	libavcodec/libvorbisenc.c
	libavcodec/mjpeg_parser.c
	libavcodec/mjpegenc.c
	libavcodec/mpeg12.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pcm.c
	libavcodec/r210dec.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/version.h
	libavdevice/alsa-audio-dec.c
	libavdevice/bktr.c
	libavdevice/v4l2.c
	libavformat/asfdec.c
	libavformat/asfenc.c
	libavformat/avformat.h
	libavformat/avidec.c
	libavformat/caf.c
	libavformat/electronicarts.c
	libavformat/flacdec.c
	libavformat/flvdec.c
	libavformat/flvenc.c
	libavformat/framecrcenc.c
	libavformat/img2.c
	libavformat/img2dec.c
	libavformat/img2enc.c
	libavformat/ipmovie.c
	libavformat/isom.c
	libavformat/matroska.c
	libavformat/matroskadec.c
	libavformat/matroskaenc.c
	libavformat/mov.c
	libavformat/movenc.c
	libavformat/mp3dec.c
	libavformat/mpeg.c
	libavformat/mpegts.c
	libavformat/mxf.c
	libavformat/mxfdec.c
	libavformat/mxfenc.c
	libavformat/nsvdec.c
	libavformat/nut.c
	libavformat/oggenc.c
	libavformat/pmpdec.c
	libavformat/rawdec.c
	libavformat/rawenc.c
	libavformat/riff.c
	libavformat/sdp.c
	libavformat/utils.c
	libavformat/vocenc.c
	libavformat/wtv.c
	libavformat/xmv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 22:45:46 +02:00
Mans Rullgard
dfd9159f3d build: change checkheaders to use regular build rules
Many compilers need special flags to compile *.h files as regular
source code, if they will do so at all.  Rather than hoping all
compilers will have such a flag and adding mappings for it, create
wrapper .c files for test building single headers.

This allows using the regular rule for compiling C files without the
need for special flags, and it also provides proper dependency tracking
for these objects.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 21:36:51 +01:00
Samuel Pitoiset
00cb52c65c rtmp: Add a new option 'rtmp_subscribe'
This option specifies the name of live stream to subscribe.
Defaults to rtmp_playpath.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-07 23:35:39 +03:00
Samuel Pitoiset
f9e77c1762 rtmp: Add support for subscribing live streams
When streaming live streams using the Akamai, Edgecast or Limelight CDN,
players cannot simply connect to the live stream. Instead, they have to
subscribe to it, by sending an FC Subscribe call to the server.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-07 23:35:39 +03:00
Samuel Pitoiset
12127b65b0 rtmp: Factorize simultaneous URLProtocol / AVClass declarations with a macro
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-07 23:35:39 +03:00
jamal
49440853d0 build: Fix some paths in uninstall-libs
Folder and file names weren't being separated with a slash.
This resulted in .dll.a, .lib and .def files not being removed on uninstall.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-08-07 22:34:10 +02:00
jamal
7c5466d4fc checkheaders: Fix directory creation in out-of-tree builds.
checkheaders wasn't creating folders as needed, so if it was run
immediately after the configure script it would fail as soon as
it tried to compile headers inside the ARCH folders.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-08-07 22:34:10 +02:00
Mans Rullgard
ec9d2c15c1 ARM: use Q/R inline asm operand modifiers only if supported
Some compilers do not support the Q/R modifiers used to access
the low/high parts of a 64-bit register pair.  Check for this
and disable all uses of it when not supported.

Fixes bug #337.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 21:13:30 +01:00
Michael Niedermayer
bc773d0d42 Merge commit 'f5d2c597e99af218b0d4d1cf9737c7e68ee934e4'
* commit 'f5d2c597e99af218b0d4d1cf9737c7e68ee934e4':
  build: fix library installation on cygwin
  mpc8: add a flush function
  mpc8: set packet duration and stream start time instead of tracking frames

Conflicts:
	libavformat/mpc8.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 21:49:00 +02:00
Michael Niedermayer
0049af2628 pnmdec: make ff_pnm_decode_header() more robust
Fixes ticket1321

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 21:06:40 +02:00
Michael Niedermayer
bb7744a45b pnmdec: make pnm_get more robust
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 21:06:40 +02:00
Derek Buitenhuis
9b34ae4a65 configure: Add support for e500mc CPU
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 21:06:40 +02:00
Paul B Mahol
13c5069187 lavfi: add smptebars source
Patch readapted by Stefano Sabatini, color values proposed by Tim
Nicholson <nichot20@yahoo.com>.

Address trac ticket #1462.

See thread:
Subject: [FFmpeg-devel] [PATCH] smptebars filter
Date: Wed, 20 Jun 2012 01:54:58 +0000

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-08-07 20:06:56 +02:00
Stefano Sabatini
13bbc464ed examples/muxing: set codec in the codec context
Make add_{audio,video}_stream return the found codec, and pass it to
avcodec_open2() through open_{audio,video} functions.

Fix failure:
No codec provided to avcodec_open2().
could not open codec

This is also consistent with the use of the avcodec_open2() API in the
codebase.
2012-08-07 20:04:19 +02:00
Michael Niedermayer
8993c25695 avidec: fix AVStream.info memleak with dv.
Fixes Ticket1334

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 19:18:53 +02:00
Derek Buitenhuis
4ab26cb4cc configure: Add support for e500mc CPU
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-07 12:49:01 -04:00
Michael Niedermayer
2f6f2f4f73 mpeg12dec: move checks out of decode picture coding extension.
Fixes out of array reads
Fixes Ticket1330

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 17:59:19 +02:00
Mans Rullgard
edd8226795 x86: fix build with nasm 2.08
It appears that something goes wrong in old nasm versions when the
%+ operator is used in the last argument of a macro invocation and
this argument is tested with %ifdef within the macro.  This patch
rearranges the macro arguments such that the %+ operator is never
used in the last argument.
2012-08-07 15:24:34 +01:00
Mans Rullgard
180d43bc67 x86: use nop cpu directives only if supported
nasm does not support 'CPU foonop' directives.  This adds a configure
test for the directive and uses it only if supported.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:22:20 +01:00
Mans Rullgard
7238265052 x86: fix rNmp macros with nasm
For some reason, nasm requires this.  No harm done to yasm.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:21:58 +01:00
Mans Rullgard
f295fee2c9 build: add trailing / to yasm/nasm -I flags
nasm requires a trailing / on paths specified with -I.
It does no harm with yasm.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:21:40 +01:00
Mans Rullgard
2b140a3d09 x86: use 32-bit source registers with movd instruction
yasm tolerates mismatch between movd/movq and source register size,
adjusting the instruction according to the register.  nasm is more
strict.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:21:20 +01:00
Mans Rullgard
a3df4781f4 x86: add colons after labels
nasm prints a warning if the colon is missing.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:20:56 +01:00
Anton Khirnov
36ef5369ee Replace all CODEC_ID_* with AV_CODEC_ID_* 2012-08-07 16:00:24 +02:00
Anton Khirnov
104e10fb42 lavc: add AV prefix to codec ids. 2012-08-07 15:56:39 +02:00
Yaakov Selkowitz
f5d2c597e9 build: fix library installation on cygwin
This installs libraries using the proper names and locations,
generates an import lib for the DLL, and drops no longer needed
linker flags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 12:39:04 +01:00
Michael Niedermayer
7febc5aa93 arm: fix compile with disable-optimizations on android
Fixes Ticket1241

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 13:31:40 +02:00
Clément Bœsch
cf753d5b59 doc: fix misspelled "convergence".
Found-by: David Rice
2012-08-07 07:37:39 +02:00
Paul B Mahol
011ce89dba avcodec: add bmp parser
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-07 03:15:39 +00:00
Michael Niedermayer
29d1df66ad mpegaudiodec: replace assert() by check under #ifdef DEBUG
The assert can be false with some invalid inputs, the check is
too expensive to always do though for just a warning message.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 04:45:06 +02:00
Michael Niedermayer
3865ec2ace proresenc_kostya: do not attempt to free random things
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 01:11:28 +02:00
Michael Niedermayer
cde4741177 h264: disable assert on current_picture_ptr being null.
It is possible in various error pathes as well as gap handling
that this has already been allocated. Its not clear why that
would be a problem with the current code, thus disable the
assert to avoid common assert failure when asserts are enabled.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-07 00:18:59 +02:00
Michael Niedermayer
7ae473e8a0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  nuv: K&R formatting cosmetics
  build: generalise rules and variable settings for av* programs
  nuv: check RTjpeg header for validity
  Revert "nuv: check per-frame header for validity."
  imc: remove unused field IMCContext.one_div_log2
  imc: fix size of a memset()
  imc: remove empty if() block
  fate: simplify variable setting filter.mak
  lavf: Declare an AVRational struct without a struct literal

Conflicts:
	Makefile
	configure
	libavcodec/nuv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 22:22:37 +02:00
Michael Niedermayer
a80ce390df avidec: parse INFO tags at the end
Fixes Ticket1123

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 21:36:42 +02:00
Justin Ruggles
fdbeae4490 mpc8: add a flush function
Ensures that the next frame decoded after seeking will be decoded as a
keyframe.
2012-08-06 14:39:21 -04:00
Justin Ruggles
2fa57c9daf mpc8: set packet duration and stream start time instead of tracking frames
Fixes mpc8 timestamps.
2012-08-06 14:39:21 -04:00
Michael Niedermayer
21eafa18e6 msrle: fix extradata palette handling
Fixes Ticket1273

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 19:39:11 +02:00
Diego Biurrun
cf22705e87 nuv: K&R formatting cosmetics 2012-08-06 19:03:33 +02:00
Mans Rullgard
baac24e680 build: generalise rules and variable settings for av* programs
This simplifies adding extra flags for individual programs
and also allows more than one object file per program.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-06 17:43:29 +01:00
Nicolas George
d74ade7d5f ffprobe: refactor frames decoding. 2012-08-06 17:37:59 +02:00
Michael Niedermayer
610c67df37 mpegvideo: remove last_picture_ptr / h264 assert.
This assert is no longer true since h264 error concealment needs
last_picture_ptr to be set.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 16:49:49 +02:00
Michael Niedermayer
e6690b6a56 mpegvideo.c: convert some asserts to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 16:40:22 +02:00
Michael Niedermayer
3e0b4e32c9 svq1enc: set picture_structure correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 16:28:13 +02:00
Michael Niedermayer
f8dbbe5464 mpegvideo_enc: switch some assert to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 14:41:16 +02:00
Michael Niedermayer
f72e0d9a9f mpegvideo_enc: remove assert that has become obsolete with the new API
it now just checks uninitialized and unused data.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 14:41:16 +02:00
Janne Grunau
859a579e9b nuv: check RTjpeg header for validity
CC: libav-stable@libav.org
2012-08-06 14:34:12 +02:00
Janne Grunau
110d015ad4 Revert "nuv: check per-frame header for validity."
The check is bogus since the nuv frameheader is already skipped
and the (decompressed) RTjpeg header is checked.

This reverts commit f6afacdb3b.

CC: libav-stable@libav.org
2012-08-06 14:33:50 +02:00
Mans Rullgard
b40ea0f41d imc: remove unused field IMCContext.one_div_log2
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-06 10:20:48 +01:00
Mans Rullgard
bc90230b98 imc: fix size of a memset()
IMCContext was changed from an array to a pointer in 66b84e4,
but this memset() was not updated.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-06 10:20:42 +01:00
Mans Rullgard
2b6804328e imc: remove empty if() block
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-06 10:20:11 +01:00
Mans Rullgard
add8f5eab7 fate: simplify variable setting filter.mak
This removes some needless indirection and duplication.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-06 10:19:27 +01:00
anonymous
388243bb27 udp: do not call pthread_{mutex,cond}_destroy when not initialized.
This seems to cause a crash on Windows.

The author of that patch was a random guy on IRC who wants to stay anonymous.
2012-08-06 10:06:26 +02:00
Michael Niedermayer
e6b9903d82 shorten: fix cmd type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 09:24:59 +02:00
Paul B Mahol
9c1619b5fe mpc7: remove duplicated definitions
They are available in mpc.h

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-06 01:33:37 +00:00
Michael Niedermayer
7bf16ec300 mpc8: fix pts
Fixes Ticket1254

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 02:51:11 +02:00
Michael Niedermayer
e4b53d995c mov: dont clip timestamps at 0
Fixes Ticket1251

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-06 01:38:18 +02:00
Paul B Mahol
958df52ae0 configure: make libtwolame check more robust
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-05 23:33:36 +00:00
Piotr Bandurski
68f4156f44 movenv: fix remuxing of qdm2 2012-08-06 00:37:28 +02:00
Piotr Bandurski
1b72a7e8a9 aiffenc: fix remuxing of qdm2 2012-08-06 00:08:53 +02:00
Clément Bœsch
16dc5f2050 Replace various inlined inverse AVRational with av_inv_q(). 2012-08-06 00:04:36 +02:00
Clément Bœsch
ad55244c96 lavfi/overlay: remove dead initialization. 2012-08-06 00:04:36 +02:00
Piotr Bandurski
5d2f89a23c movenc: fix remuxing of svq3 2012-08-05 23:58:10 +02:00
Martin Storsjö
6c071a2b38 lavf: Declare an AVRational struct without a struct literal
At this place, the normal way of initializing a struct works
fine, there's no need for a struct literal.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-06 00:48:58 +03:00
Michael Niedermayer
b4780d03d0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: h264_idct: Rename x264_add8x4_idct_sse2 --> h264_add8x4_idct_sse2
  rational: add av_inv_q() returning the inverse of an AVRational
  dpx: Make start offset unsigned
  lavfi: properly signal out-of-memory error in ff_filter_samples
  cosmetics: Fix a few switched periods and linebreaks
  zerocodec: Fix memleak in decode_frame
  zerocodec: Cosmetics

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 22:17:02 +02:00
Diego Biurrun
2096857551 x86: h264_idct: Rename x264_add8x4_idct_sse2 --> h264_add8x4_idct_sse2 2012-08-05 21:40:49 +02:00
Reimar Döffinger
69aeba1396 oggdec: Initialize stream index to -1 in ogg_packet.
The previous method of having to initialize it outside lead
to incorrect code: even if it was initialized, it usually was
only initialized once, thus a packet that could not be matched
to any stream would just be processed with the return values
from the previous call.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-05 19:47:52 +02:00
Reimar Döffinger
a4163b2d65 oggdec: simplify start time calculation code.
Also slightly more correct behaviour in case streams_left for
some reason is 0 from the start.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-05 19:47:52 +02:00
Paul B Mahol
f5f98727b3 libtwolame MP2 encoding support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-05 17:06:59 +00:00
Mans Rullgard
82494835c4 rational: add av_inv_q() returning the inverse of an AVRational
This allows simplifying a few expressions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-05 17:46:41 +01:00
Derek Buitenhuis
965efc1673 dpx: Make start offset unsigned
Some corrupted files would end up with a negative offset,
and segfault.

Fixes bug #177.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-05 12:44:30 -04:00
Moritz Bunkus
fe40dc1cec matroskaenc: Implement support for ALAC 2012-08-05 18:34:28 +02:00
Philip Langdale
50b4dbf65a ass subtitles: Fix valgrind warnings.
We're now running some of this code through valgrind for the first
time, and a few warnings showed up stemming from two problems.

1) The ASS code assumes the subtitle header is null terminated, but
it wasn't, and passing the size down doesn't look like fun, so I
added a terminator

2) The code wasn't freeing all of its state.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-05 09:11:11 -07:00
Michael Niedermayer
c30f53e4d8 matroskadec: prevent potential integer overflow
Iam not sure this can happen, but its safer we check.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 17:59:12 +02:00
Moritz Bunkus
bc3b422029 matroskadec: Implement support for ALAC
This patch implements support reading ALAC from Matroska files. The
only non-trivial thing about it is that only the ALAC magic cookie is
stored in Matroska's CodecPrivate element but not the "atom size",
"tag" and "tag version" fields that FFMPEG's ALAC decoder
expects. However, those are trivial to re-create.

Sample files are available:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska.mka
and the CoreAudio file it was created from with today's mkvmerge:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska-source.caf

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 17:59:12 +02:00
Michael Niedermayer
d106ffd942 fate: add bitexact flag to fate-sub-movtextenc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 17:59:12 +02:00
Michael Niedermayer
b11b0e166e libavcodec/options_table: mark flags as also for subtitles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 17:59:12 +02:00
Stefano Sabatini
8331d56e0d doc/filters: fix typo in "@end table."
Remove erroneously added trailing dot.
2012-08-05 17:50:59 +02:00
Philip Langdale
3eb56e8434 movenc: Fix unfreed memory found by valgrind.
Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-05 08:27:49 -07:00
Stefano Sabatini
8d6f46ab2c doc/filters: add mandelbrot source documentation
Address trac ticket #1492.
2012-08-05 15:45:55 +02:00
Stefano Sabatini
9bece76009 lavf/img2dec: add start_number_range option 2012-08-05 15:45:48 +02:00
Stefano Sabatini
b907655303 examples/muxing: drop duplicated code in add_video_stream() 2012-08-05 15:36:38 +02:00
Reinhard Tartler
800750417f lavfi: properly signal out-of-memory error in ff_filter_samples
Found with a clang-scan report on http://fate.libav.org/csa/
2012-08-05 10:26:49 +02:00
Hendrik Leppkes
2db097ca76 configure: fix lib.exe check
Running lib.exe without parameters will always result in an error,
and failing the check.
Using the -list paramter results in a success if lib.exe is present.
2012-08-05 10:23:50 +02:00
Michael Niedermayer
9e1c55cfde oggdec: check stream index before using it in ogg_get_length()
Fixes crash based on a uninitialized array index read.
If the read does not crash then out of array writes based
on the same index might have been triggered afterwards.

Found-by: inferno@chromium.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-05 05:08:15 +02:00
Stefano Sabatini
74c6db0505 doc/demuxers.texi: avoid comma splice in image2 documentation
Add "and" proposition for connecting two sentences.
2012-08-05 00:47:55 +02:00
Stefano Sabatini
b0d23ae208 lavf/img2doc: document options 2012-08-05 00:47:48 +02:00
Stefano Sabatini
b5c7318bd7 lavf/img2dec: improve error logging in case of find_image_range() failure 2012-08-05 00:38:17 +02:00
Stefano Sabatini
2dfee8abf1 lavf/img2dec: sort options by name 2012-08-05 00:38:16 +02:00
Stefano Sabatini
48c1d1d3fa lavf/img2dec: introduce and use FIRST_INDEX_SEARCH_RANGE macro in find_image_range 2012-08-05 00:38:16 +02:00
Stefano Sabatini
07ef7b1a30 lavf/img2dec: fix out-of-range check in find_image_range()
Take the new parameter start_index into account.
2012-08-05 00:38:05 +02:00
Stefano Sabatini
59e4e40673 lavf/img2dec: doxygen find_image_range() function 2012-08-05 00:38:05 +02:00
Stefano Sabatini
e408e329d2 lavf/img2dec: rename find_image_range() "max_start" parameter to "start_index"
The new name seems more consistent with the assumed logic.

"start_index" represents the minimum accepted value as first index, and
not the maximum value as implicitely assumed by the previous name.
2012-08-05 00:37:39 +02:00
Stefano Sabatini
a30e776ff1 lavf/img2dec: fix weird start_number count logic
This seems consistent with the assumed meaning of the option.
2012-08-05 00:26:48 +02:00
Stefano Sabatini
66747a6160 examples/muxing: simplify alloc_picture()
Use avpicture_alloc() high level function.
2012-08-05 00:26:39 +02:00
Michael Niedermayer
e776ee8f29 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: fix handling of custom mix matrices
  fate: force pix_fmt in lagarith-rgb32 test
  fate: add tests for lagarith lossless video codec.
  ARMv6: vp8: fix stack allocation with Apple's assembler
  ARM: vp56: allow inline asm to build with clang
  fft: 3dnow: fix register name typo in DECL_IMDCT macro
  x86: dct32: port to cpuflags
  x86: build: replace mmx2 by mmxext
  Revert "wmapro: prevent division by zero when sample rate is unspecified"
  wmapro: prevent division by zero when sample rate is unspecified
  lagarith: fix color plane inversion for YUY2 output.
  lagarith: pad RGB buffer by 1 byte.
  dsputil: make add_hfyu_left_prediction_sse4() support unaligned src.

Conflicts:
	doc/APIchanges
	libavcodec/lagarith.c
	libavfilter/x86/gradfun.c
	libavutil/cpu.h
	libavutil/version.h
	libswscale/utils.c
	libswscale/version.h
	libswscale/x86/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 23:51:43 +02:00
Derek Buitenhuis
8b8750e061 cosmetics: Fix a few switched periods and linebreaks
Based on a patch by Piotr Bandurski.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-04 16:39:27 -04:00
Nicolas George
88fc1438c6 ffmpeg: insert bitmap subtitles as video in filters.
With this feature, it becomes possible to perform commonly
requested tasks, such as hardcoding bitmap subtitles.

This will be reverted once libavfilter has proper support
for subtitles. All the changes have the string "sub2video"
in them, it makes it easy to spot the parts.
2012-08-04 21:49:05 +02:00
Nicolas George
8d6eed7b56 lavfi: document the constraints on incoming frames. 2012-08-04 21:49:05 +02:00
Nicolas George
8ef740ce01 lavfi: use a new field for automatic buffer copy.
The code currently use cur_buf as the target of the copy,
but cur_buf can be cleared by the filter if it has given
the reference away or stored it elsewhere as soon as start_frame.

The code still relies on the fact that the reference is not
destroyed until end_frame. All filters currently follow that condition.
An av_assert1() is added to check it; it should at least cause
very visible errors in valgrind.
2012-08-04 21:49:05 +02:00
Michael Niedermayer
f85746509c Merge remote-tracking branch 'dwbuiten/master'
* dwbuiten/master:
  zerocodec: Fix memleak in decode_frame
  zerocodec: Cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 21:21:46 +02:00
Philip Langdale
82de3e16a8 movtextenc: Remove dangling reference to movtext.h
This is a reference that leaked in from my future work to
support styling.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-04 12:21:09 -07:00
Derek Buitenhuis
616fd4fe5e zerocodec: Fix memleak in decode_frame
If there was a failure inflating, or reinitializing
the zstream, the current frame's buffer would be lost.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-04 15:11:06 -04:00
Derek Buitenhuis
29facc1e91 zerocodec: Cosmetics
Be consistent with error messages and code formatting.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-04 15:11:06 -04:00
Derek Buitenhuis
fcf550c2cb zerocodec: Fix memleak in decode_frame
If there was a failure inflating, or reinitializing
the zstream, the current frame's buffer would be lost.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-04 15:08:52 -04:00
Derek Buitenhuis
d6124d0d14 zerocodec: Cosmetics
Be consistent with error messages and code formatting.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-04 15:08:52 -04:00
Philip Langdale
7b24be557f avformat/srtdec: Write duration into packet from srt demuxer.
The current demuxer does not bother to write packet durations,
which makes it impossible to remux into a new format.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-04 12:01:24 -07:00
Philip Langdale
18175ca9b2 movenc: Handle need for extra packets to express subtitle duration.
As packet duration is not stored inherently in MPEG4 containers,
subtitles have their duration expressed by storing an additional
empty packet with a pts matching the desired end time of the real
subtitle. Additionally, it is generally expected that all streams
start at time = 0, so an empty packet needs to be inserted at the
beginning of the stream, before the first real subtitle.

Unfortunately, ffmpeg lacks a proper way to express that a subtitle
might map to multiple packets, so the muxer is the only place we
can handle this.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-04 12:01:24 -07:00
Philip Langdale
2daaf77698 movtextenc: 3GPP TS 26.245 Timed Text Encoder.
This change introduces a basic encoder for 3GPP Timed Text subtitles,
also known as TX3G, Quicktime subtitles, or "movtext" in the existing
code.

This initial change doesn't attempt to write styling information,
and just writes the plain text of the subtitles. I intend to add
support for styles eventually, but it's challenging due to a lack
of existing players that support them.

Note that an additional change is required to the mov/mp4 muxer to
write empty subtitle packets to indicate subtitle duration.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-04 12:01:24 -07:00
Michael Niedermayer
759901f817 mpegdemux: support MLP/AOB
Fixes issue1731

Based-on-patch-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 19:37:24 +02:00
Michael Niedermayer
ce7cf600be mpegdemux: move private stream 1 handling out of mpegps_read_pes_header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 19:37:23 +02:00
Michael Niedermayer
afa6afcc9f mpegdemux: remove redundant dvd audio code
This is almost a revert of: (the file from the report still works)

commit 80e58c6153
Author: Benoit Fouet <benoit.fouet@free.fr>
Date:   Wed Feb 11 11:09:36 2009 +0000

    Allow demuxing of audio substreams stored as 0x06 type.
    Fixes issue 725: MPEG2 PS with PCM audio.
    On behalf of Jai.

    Originally committed as revision 17150 to svn://svn.ffmpeg.org/ffmpeg/trunk

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 19:37:21 +02:00
Justin Ruggles
8821ae649e lavr: fix handling of custom mix matrices
Adds some validation for changing parameters after setting the matrix and
fixes a bug in the conversion path setup.
2012-08-04 10:28:22 -04:00
Michael Niedermayer
3e1cf49676 compute_pkt_fields: do not attempt to calculate dts when the delay hasnt been estimated.
Fixes ticket1242

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 15:42:44 +02:00
Michael Niedermayer
2107009e7d lavf: move nb_decoded_frames out of info.
This way the variable is available outside find_stream_info

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 15:42:44 +02:00
Michael Niedermayer
b288b4c63f has_decode_delay_been_guessed: adjust value for has_b_frames=0
needed for a mkv file

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 15:42:44 +02:00
Michael Niedermayer
c91ca5b95d lavf: move has_decode_delay_been_guessed() up to make it accessible to earlier functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 15:42:44 +02:00
Michael Niedermayer
ae0312ab2e h264: print num_reorder_frames in debug output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 15:42:44 +02:00
Mans Rullgard
73486e3b61 fate: force pix_fmt in lagarith-rgb32 test
This makes big and little endian systems use the same output
format.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-04 14:15:45 +01:00
Alexander Strasser
56977eefd8 fate: Rename FATE_SAMPLES make file variable to FATE_EXTERN
Restore functionality to set the samples directory via the
FATE_SAMPLES environment variable . This is broken since commit
63dcd16 was merged.

  Additionally the name FATE_EXTERN is more suited as the current
FATE_SAMPLES make file variable does not carry the name of the
FATE samples or the name of the directory they are stored in, but
does contain the names of the FATE targets that need external
samples. That is samples that are not in the repository and are
not generated on the fly.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-08-04 09:49:30 +02:00
Ronald S. Bultje
c5d5d17880 fate: add tests for lagarith lossless video codec.
Based on patch by Oana Stratulat <oanaandreeastratulat@gmail.com>.
2012-08-03 20:48:34 -07:00
Derek Buitenhuis
878b3f2a24 LICENSE: Document all GPL files
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 04:03:08 +02:00
Michael Niedermayer
668c873bed matroskadec: check element size against stream limit in ebml_parse_elem()
Fixes Ticket1195

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 02:27:51 +02:00
Mans Rullgard
e6cd698955 ARMv6: vp8: fix stack allocation with Apple's assembler
In the GNU assembler, a relational expression, bizarrely, has the
value -1 if true, whereas in Apple's it is +1.  This patch makes
sure the correct expression is used in both cases.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-04 00:59:14 +01:00
Mans Rullgard
9829a81bcd ARM: vp56: allow inline asm to build with clang
The clang integrated assembler does not support pre-UAL syntax,
while gcc requires pre-UAL syntax for ARM code.  A patch[1] for
clang to support the old syntax as well has been ignored since
January.

This patch chooses the syntax appropriate for each compiler,
allowing both to build the code.  Notably, this change allows
building for iphone with the latest Apple Xcode update.

[1] http://llvm.org/bugs/show_bug.cgi?id=11855

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-04 00:59:14 +01:00
Ronald S. Bultje
4a8143e73c fft: 3dnow: fix register name typo in DECL_IMDCT macro
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-04 00:16:02 +02:00
Michael Niedermayer
d673a3f4a9 motion_est_template: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 00:06:20 +02:00
Michael Niedermayer
a189475c8e dvdec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-04 00:05:56 +02:00
Michael Niedermayer
70bcdfb39f g732_1: reduce difference to qatar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 23:50:09 +02:00
Michael Niedermayer
a7acab6cda Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1dec: Remove separate scaling function for interlaced field MVs
  vc1dec: Invoke edge_emulation regardless of MV precision
  x86: Use consistent 3dnowext function and macro name suffixes
  g723_1: scale output as supposed for the case with postfilter disabled
  g723_1: increase excitation storage by 4
  g723_1: fix upper bound parameter from inverse maximum autocorrelation
  g723_1: make scale_vector() behave like the reference
  g723_1: fix off-by-one error in normalize_bits()
  g723_1: save/restore excitation with offset to store LPC history
  wmapro: prevent division by zero when sample rate is unspecified
  x86: proresdsp: improve SIGNEXTEND macro comments
  x86: h264dsp: K&R formatting cosmetics
  LICENSE: Document all GPL files

Conflicts:
	libavcodec/g723_1.c
	libavcodec/wmaprodec.c
	libavcodec/x86/h264dsp_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 23:13:06 +02:00
Diego Biurrun
0c3ff1982c x86: dct32: port to cpuflags 2012-08-03 22:51:06 +02:00
Diego Biurrun
239fdf1b4a x86: build: replace mmx2 by mmxext
Refactoring mmx2/mmxext YASM code with cpuflags will force renames.
So switching to a consistent naming scheme beforehand is sensible.
The name "mmxext" is more official and widespread and also the name
of the CPU flag, as reported e.g. by the Linux kernel.
2012-08-03 22:51:05 +02:00
Michael Bradshaw
a763cafc0c libopenjpegdec: increase max lowres from 5 to 31
OpenJPEG doesn't have a particular limit

Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 21:28:21 +02:00
Ronald S. Bultje
66adb7ce1b Revert "wmapro: prevent division by zero when sample rate is unspecified"
This reverts commit 3693608023. It was
already applied; no idea why it didn't error out while re-applying it.
2012-08-03 12:06:38 -07:00
Sean McGovern
3693608023 wmapro: prevent division by zero when sample rate is unspecified
This fixes Bugzilla #327:

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-08-03 12:04:47 -07:00
Ronald S. Bultje
7191e1c490 lagarith: fix color plane inversion for YUY2 output. 2012-08-03 11:09:17 -07:00
Ronald S. Bultje
98d0d19208 lagarith: pad RGB buffer by 1 byte.
For left HFYU prediction, we predict from the buffer buf+1 using 8- or
16-byte reads. This means that aligning the buffer by 16 bytes is in
itself not sufficient, because if the width itself is 16- or 8-byte
aligned, the buffer will not be padded, and thus a read of size 16 at
buf+1 will overflow boundaries at the right edge. Padding the buffer by
1 byte is sufficient to not overflow its boundaries.

Fixes bug 342.
2012-08-03 11:09:17 -07:00
Ronald S. Bultje
da6505ad2f dsputil: make add_hfyu_left_prediction_sse4() support unaligned src.
This makes add_hfyu_left_prediction_sse4() handle sources that are not
16-byte aligned in its own function rather than by proxying the call to
add_hfyu_left_prediction_ssse3(). This fixes a crash on Win64, since the
sse4 version clobberes xmm6, but the ssse3 version (which uses MMX regs)
does not restore it, thus leading to XMM clobbering and RSP being off.

Fixes bug 342.
2012-08-03 11:09:14 -07:00
Mashiat Sarker Shakkhar
9cc74c9f6e vc1dec: Remove separate scaling function for interlaced field MVs
The scaling process for obtaining direct MVs from co-located field MVs
is the same for interlaced field and progressive pictures.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-03 17:21:54 +02:00
Mashiat Sarker Shakkhar
8379ea5e9f vc1dec: Invoke edge_emulation regardless of MV precision
In VC-1 interlaced field pictures, chroma motion vectors can extend beyond
picture boundary even if luma vectors are bounded. The problem shows up
only for hpel interpolated MVs, and may be due to the way motion vectors
are scaled / cropped.

Thanks to Konstantin Shishkov for suggesting the fix. This fixes
long-known segfaults in MC-VC1.ts from videolan streams archive.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-03 17:21:54 +02:00
Paul B Mahol
d84dd35f8e paf: fix audio packet duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-03 15:18:12 +00:00
Stefano Sabatini
44bd69e9b9 lavc/utils: rename ff_init_buffer_info() pic parameter to frame
The new name is more expressive, given that the frame is not necessarily
a picture but may be an audio frame.
2012-08-03 16:28:18 +02:00
Stefano Sabatini
b99381e8b5 lavc/utils: generalize ff_init_buffer_info() and use it when seems feasible
Extend ff_init_buffer_info() to init audio frames as well as video
frames.

Avoid code duplication.
2012-08-03 16:28:12 +02:00
Stefano Sabatini
39a8275fdf lavfi: move color filter to testsrc, factorize 2012-08-03 16:26:58 +02:00
Clément Bœsch
e39f6a3a5c Fix misc swapped dot and carriage returns in av_log calls. 2012-08-03 14:58:14 +02:00
Michael Niedermayer
231ffb9243 flvdec: follow packets backward until a valid last timestamp is found
Fixed Ticket981

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 14:50:26 +02:00
Michael Niedermayer
71a5cd7dbc flvdec: perform duration search just once
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 14:50:26 +02:00
Piotr Bandurski
a2232e696b cllc: fix typo in the error message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 14:50:26 +02:00
Clément Bœsch
bc42682749 lavf/movenc: fix invalid free with timecode meta and tmcd data copy.
Fixes ticket 1577.
2012-08-03 14:15:39 +02:00
Diego Biurrun
ca844b7be9 x86: Use consistent 3dnowext function and macro name suffixes
Currently there is a wild mix of 3dn2/3dnow2/3dnowext.  Switching to
"3dnowext", which is a more common name of the CPU flag, as reported
e.g. by the Linux kernel, unifies this.
2012-08-03 14:00:47 +02:00
Kostya Shishkov
d3e0766fc0 g723_1: scale output as supposed for the case with postfilter disabled 2012-08-03 07:07:07 +02:00
Kostya Shishkov
94bfdfd6f0 g723_1: increase excitation storage by 4
Fixed codebook mode in 5300 rate may write up to SUBFRAME_LEN + 4 and
that is considered normal by the reference decoder. Without that additional
padding it might overwrite first elements of LPC history.
2012-08-03 07:07:07 +02:00
Kostya Shishkov
802bcdcb2f g723_1: fix upper bound parameter from inverse maximum autocorrelation 2012-08-03 07:07:07 +02:00
Kostya Shishkov
8ddadea171 g723_1: make scale_vector() behave like the reference 2012-08-03 07:07:07 +02:00
Kostya Shishkov
8772d2511a g723_1: fix off-by-one error in normalize_bits() 2012-08-03 07:07:07 +02:00
Kostya Shishkov
7f92db14f9 g723_1: save/restore excitation with offset to store LPC history
The same buffer with saved data is used later in LPC reconstruction, so
it should have some head space for LPC history.
2012-08-03 07:07:06 +02:00
Sean McGovern
3680b24351 wmapro: prevent division by zero when sample rate is unspecified
This fixes Bugzilla #327:

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-03 07:07:00 +02:00
Michael Niedermayer
31d8261cde mpegprobe: fix misdetection of mp3
Fixes tikcet1524

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-03 02:49:50 +02:00
Nicolas George
752344dada amerge/astreamsync/pan: fix license boilerplate.
The boilerplate states that the files are under LGPL,
but refer the user to the GPL at one place.
These files were (re)implemented specifically for FFmpeg.
2012-08-03 00:24:51 +02:00
Michael Niedermayer
9c6e23f5d2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: fft: fix imdct_half() for AVX
  rtmppkt: Add missing libavcodec/bytestream.h include.
  rtmp: add functions for reading AMF values
  vc1dec: remove useless #include simple_idct.h
  dct-test: always link with aandcttab.o
  vp8: pack struct VP8ThreadData more efficiently
  x86: remove libmpeg2 mmx(ext) idct functions
  eamad: Use dsputils instead of a custom bswap16_buf
  Canopus Lossless decoder

Conflicts:
	Changelog
	LICENSE
	libavcodec/avcodec.h
	libavcodec/cllc.c
	libavcodec/eamad.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 23:34:01 +02:00
Diego Biurrun
03737412a3 x86: proresdsp: improve SIGNEXTEND macro comments 2012-08-02 22:30:44 +02:00
Ronald S. Bultje
9f14cd91b5 fft: port FFT/IMDCT 3dnow functions to yasm, and disable on x86-64.
64-bit CPUs always have SSE available, thus there is no need to compile
in the 3dnow functions. This results in smaller binaries.
2012-08-02 22:14:40 +02:00
Derek Buitenhuis
19d40c7912 eamad: Use dsputils instead of its own bswap16_buf
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 22:08:15 +02:00
Michael Niedermayer
f92a99dae5 flacenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 21:58:17 +02:00
Michael Niedermayer
4d38b838f0 flacdec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 21:58:03 +02:00
Diego Biurrun
81905088a1 x86: h264dsp: K&R formatting cosmetics 2012-08-02 20:20:21 +02:00
Derek Buitenhuis
144e4b0997 LICENSE: Document all GPL files
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-02 14:09:51 -04:00
Ronald S. Bultje
c728518b3c x86: fft: fix imdct_half() for AVX
Some calculations were changed in b6a3849 to use mmsize, which was not correct
for the AVX version, which uses INIT_YMM and therefore has mmsize == 32.

Fixes Bug 341.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-08-02 13:40:11 -04:00
Alex Rønne Petersen
150adea6da rtmppkt: Add missing libavcodec/bytestream.h include.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-02 13:32:02 -04:00
Kifayat ullah
32aeba1275 mpegtsenc: Fix AC3 Sound issue with Blu-ray Players.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 16:55:17 +02:00
Nicolas George
93d428953c assdec: return EOF instead of EIO. 2012-08-02 14:39:45 +02:00
Jordi Ortiz
50468f93e3 rtmp: add functions for reading AMF values
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-02 14:06:44 +02:00
Mans Rullgard
cfb1091898 vc1dec: remove useless #include simple_idct.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-02 12:14:52 +01:00
Mans Rullgard
af500c08bb dct-test: always link with aandcttab.o
This allows building dct-test even if aandcttab.o is not pulled in
by any enabled codec.  The DCT with which these tables are used does
not use them directly, so building it without the tables is possible.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-02 12:14:52 +01:00
Mans Rullgard
cf5781fad0 vp8: pack struct VP8ThreadData more efficiently
Reordering the members in this struct reduces the holes required
to maintain alignment.  With this order, the only remaining, and
unavoidable, hole is 3 bytes following left_nnz.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-02 12:14:52 +01:00
Mans Rullgard
ec7c501ed5 x86: remove libmpeg2 mmx(ext) idct functions
These functions are not faster than other mmx implementations on
any hardware I have been able to test on, and they are horribly
inaccurate.  There is thus no reason to ever use them.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-02 12:14:52 +01:00
Stefano Sabatini
aa5b93fbd8 lavfi/rgbtestsrc: use ff_fill_rgba_map() rather than a local copy
Also convert int rgba_map[4] to uint8_t rgba_map[4], as required by
ff_fill_rgba_map().

Simplify.
2012-08-02 12:32:48 +02:00
Stefano Sabatini
3bcde3f06c lavfi/drawutils: make ff_draw_color() accept a const rgba map 2012-08-02 12:32:48 +02:00
Stefano Sabatini
65520f5933 lavfi/video: remove duplicated function ff_null_start_frame_keep_ref()
Semantic for the function ff_null_start_frame() was changed in
07bad27810, and it has now the same behavior of
ff_null_start_frame_keep_ref(), thus it makes no sense to keep both of
them.
2012-08-02 12:32:48 +02:00
Michael Niedermayer
8cac86e091 vorbisdec: fix heap buffer overflow.
Found-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 12:22:19 +02:00
Michael Niedermayer
a6aa7e039a mpegaudio_tablegen: try to fix hardcoded tables
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 06:10:28 +02:00
Michael Niedermayer
96cb143800 Merge remote-tracking branch 'dwbuiten/master'
* dwbuiten/master:
  Canopus Lossless decoder

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 04:48:47 +02:00
Michael Niedermayer
571572fcdd mp3dec: adjust IMDCT scaling to avoid overflows
Fixes ticket268

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 04:21:53 +02:00
Derek Buitenhuis
a675d73d57 eamad: Use dsputils instead of a custom bswap16_buf
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-01 22:07:04 -04:00
Derek Buitenhuis
45eaac02cb Canopus Lossless decoder
At the moment it only does BGR24, but I plan to add the rest after.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-01 22:06:16 -04:00
Derek Buitenhuis
91c86d3cf8 Canopus Lossless decoder
At the moment it only does BGR24, but I plan to add the rest after.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-01 22:02:19 -04:00
Michael Niedermayer
98a2f4e87b configure: reduce difference to qatar by 2 lines
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-02 00:41:16 +02:00
Michael Niedermayer
ec7ecb8811 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dca: Switch dca_sample_rates to avpriv_ prefix; it is used across libs
  ARM: use =const syntax instead of explicit literal pools
  ARM: use standard syntax for all LDRD/STRD instructions
  fft: port FFT/IMDCT 3dnow functions to yasm, and disable on x86-64.
  dct-test: allow to compile without HAVE_INLINE_ASM.
  x86/dsputilenc: bury inline asm under HAVE_INLINE_ASM.
  dca: Move tables used outside of dcadec.c to a separate file.
  dca: Rename dca.c ---> dcadec.c
  x86: h264dsp: Remove unused variable ff_pb_3_1
  apetag: change a forgotten return to return 0

Conflicts:
	libavcodec/Makefile
	libavcodec/dca.c
	libavcodec/x86/fft_3dn.c
	libavcodec/x86/fft_3dn2.c
	libavcodec/x86/fft_mmx.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 23:33:06 +02:00
Stefano Sabatini
4c8fc6a2a4 lavfi/testsrc: use AVFILTER_DEFINE_CLASS for defining the filter classes
Factorize.
2012-08-01 22:47:23 +02:00
Stefano Sabatini
33474eb1c6 lavfi/testsrc: extend logic in request_frame, support static image output 2012-08-01 22:47:04 +02:00
Stefano Sabatini
20e940e768 lavfi/testsrc: free the context in uninit
Keeping stuff in the context can be useful for debugging purposes.
2012-08-01 22:46:08 +02:00
Paul B Mahol
c2502b7b34 alac: remove redundant "alac: " from log messages
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-01 20:17:25 +00:00
Michael Niedermayer
b9df3f4f6c swr: fix 10l typo mixing in and out config.
Fixes ticket1458

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 21:18:03 +02:00
Clément Bœsch
53a3748ed2 ffmpeg: honor -ss and -t parameters with muxed subtitles.
This patch fixes two things:

 - in case of subtitles, check_recording_time() is comparing the current
   PTS to the recording time (-t option, set to INT_MAX by default), so
   the -ss option needs to be taken into account. It is not required in
   do_{audio,video}_out() because this adjustment is set while polling
   the filtergraph (see poll_filters()).

 - It also adjusts the PTS sent to the encoder (and later transmitted to
   the muxer) so the TS in the output make sense and are not kept
   verbatim.

Note: this only works for muxers honoring the PTS, such as
lavf/matroskaenc. But for other such as the ASS muxer which just does a
verbatim copy, or the SubRip muxer which doesn't write the TS in some
cases, it will not work yet.
2012-08-01 20:37:34 +02:00
Michael Niedermayer
c99d3e2e6c tiny_psnr: fix undefined shift
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 20:00:01 +02:00
Reimar Döffinger
98b0120668 nuv: Fix playback of RTjpeg from current MythTV,
The previous validity check seems to work only for some
(presumably older) files, in current versions the first bytes
now contain the data size.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-01 19:35:58 +02:00
Reimar Döffinger
e1bc0171c0 nuv: check size of buffer before accessing it instead of after.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-08-01 19:35:58 +02:00
Clément Bœsch
1f68be4764 timecode: show frame rate when invalid. 2012-08-01 17:36:37 +02:00
Michael Niedermayer
1894f88546 configure: add support for dlltool when lib.exe is unavailable
The lib.exe test is untested. Someone who has lib.exe please test and fix it if it doesnt work

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 17:02:48 +02:00
Nicolas George
39b0d40d92 fate: add test for the tile video filter. 2012-08-01 14:00:29 +02:00
Nicolas George
ff2955a4f7 apetag: return value when required.
Should fix compilation on clang.
2012-08-01 13:33:51 +02:00
Nicolas George
f952b23ed4 vf_tile: fix output buffer ownership.
There is no need to start_frame immediately on the output link
since the rest is only done with the last frame of the tile.
link->out_buf is now automatically dereferenced; since we give
it away it must be cleared.

Fix an assert failure; found by Clément Bœsch.
2012-08-01 12:23:48 +02:00
Diego Biurrun
19cf7163c1 dca: Switch dca_sample_rates to avpriv_ prefix; it is used across libs 2012-08-01 11:43:31 +02:00
Mans Rullgard
faa788227f ARM: use =const syntax instead of explicit literal pools
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-01 10:32:24 +01:00
Mans Rullgard
998170913c ARM: use standard syntax for all LDRD/STRD instructions
The standard syntax requires two destination registers for
LDRD/STRD instructions.  Some versions of the GNU assembler
allow using only one with the second implicit, others are
more strict.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-01 10:32:24 +01:00
Stefano Sabatini
7ddf082f04 lavfi/testsrc: drop pointless parentheses 2012-08-01 11:05:47 +02:00
Stefano Sabatini
2702e38477 lavfi: remove unused defaults.c file 2012-08-01 11:05:41 +02:00
Nicolas George
6eee9f5596 8svx: ensure that packet size is multiple of channels.
Fix an assert failure with packets of invalid size.
2012-08-01 10:29:10 +02:00
Carl Eugen Hoyos
d1ebb25ac6 Skip chan tag padding.
Fixes ticket #1580
2012-08-01 08:33:18 +02:00
Ronald S. Bultje
b6a3849adb fft: port FFT/IMDCT 3dnow functions to yasm, and disable on x86-64.
64-bit CPUs always have SSE available, thus there is no need to compile
in the 3dnow functions. This results in smaller binaries.
2012-07-31 21:20:47 -07:00
Ronald S. Bultje
ddbe71b44f dct-test: allow to compile without HAVE_INLINE_ASM. 2012-07-31 20:30:29 -07:00
Ronald S. Bultje
53dfaedc01 x86/dsputilenc: bury inline asm under HAVE_INLINE_ASM. 2012-07-31 20:28:52 -07:00
Paul B Mahol
296bcdd2a7 paf: use reget_bufer() instead of get_buffer()
Pallete is written to frame->data[1] only if it changes.
This fixes PAL8->PAL8 transcoding.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-01 03:16:55 +00:00
Paul B Mahol
c36bad3b89 xvma: remove unused variable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-08-01 03:15:32 +00:00
Michael Niedermayer
b0c51bbcd1 h264_mc_template: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 04:19:46 +02:00
Michael Niedermayer
38d1c5a4cc g722enc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 04:19:27 +02:00
Michael Niedermayer
d57a9928ea ffmpeg: avoid bogus error with "test.flac -c copy -f null -"
Reported-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-08-01 01:47:51 +02:00
Diego Biurrun
9e4bca16f8 dca: Move tables used outside of dcadec.c to a separate file. 2012-08-01 00:17:17 +02:00
Diego Biurrun
13a79cf84e dca: Rename dca.c ---> dcadec.c
This will allow adding dca.c with tables used from other files.
2012-08-01 00:17:16 +02:00
Diego Biurrun
6376a3ad24 x86: h264dsp: Remove unused variable ff_pb_3_1 2012-08-01 00:17:16 +02:00
Michael Niedermayer
d1dad7c824 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpc8: return more meaningful error codes.
  mpc: return more meaningful error codes.
  wv,mpc8: don't return apetag data in packets.
  rtmp: do not warn about receiving metadata packets
  x86: h264dsp: Adjust YASM #ifdefs
  x86: yadif: Mark mmxext optimizations as such
  h264: convert loop filter strength dsp function to yasm.
  Improve descriptiveness of a number of codec and container long names

Conflicts:
	libavcodec/flvdec.c
	libavcodec/libopenjpegdec.c
	libavformat/apetag.c
	libavformat/mp3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-31 22:41:00 +02:00
Anton Khirnov
921063877e apetag: change a forgotten return to return 0 2012-07-31 21:32:25 +02:00
Anton Khirnov
f2ed006c90 mpc8: return more meaningful error codes. 2012-07-31 20:54:22 +02:00
Anton Khirnov
263dbe9d95 mpc: return more meaningful error codes. 2012-07-31 20:54:17 +02:00
Anton Khirnov
782e64fbe1 wv,mpc8: don't return apetag data in packets. 2012-07-31 20:53:54 +02:00
Nicolas George
d2ca5dd0f3 loco: fix return value.
The return value was the number of bytes left,
it is supposed to be the number of bytes used.
2012-07-31 17:25:42 +02:00
Nicolas George
91ec1c6cc3 loco: take decode overflow into account.
Commit 2bf0982 introduced an overflow check in loco_decode_plane,
but the error code is never taken into account, leading to
completely idiotic return values.
2012-07-31 17:25:36 +02:00
Nicolas George
b2814b034e sp5xdec: sanitize return value.
i is the decoded size of a recoded packet, which is larger
than the original packet. Assume that if decoding succeeded,
all the packet was used.
2012-07-31 17:23:32 +02:00
Nicolas George
7a539e67f4 8svx: unify mono and stereo code paths. 2012-07-31 17:23:31 +02:00
Nicolas George
5caea648d4 8svx: remove useless rounding code.
samples_size and samples_idx are supposed to be multiple of
channels at all time. If they are, the division is exact;
if they are not, something is very wrong in the code.
2012-07-31 17:23:31 +02:00
Nicolas George
1c98781837 8svx: use a more direct condition.
esc->table was inited based on codec->id: re-testing codec->id
is code duplication and can lead to inconsistencies.
2012-07-31 17:23:31 +02:00
Nicolas George
9009fa6de4 movtextdec: fix return value for too small packets. 2012-07-31 17:23:31 +02:00
Nicolas George
3d5dc7d87d mmvideo: count preamble size in return value.
MM_PREAMBLE_SIZE is subtracted from buf_size almost immediately.
The original size is still in avpkt->size.
2012-07-31 17:22:23 +02:00
Nicolas George
cc7eff1fa0 vc1dec: count ENDOFSEQ code in return value. 2012-07-31 17:17:38 +02:00
Nicolas George
89898cd3b6 ffprobe: fix validity error with tags and data.
Add "data" and "extradata" attributes to the schema.
Add "tag" element in "streams".
Print extradata before tags to avoid closing the element.

Fix trac ticket #1588.
2012-07-31 15:06:57 +02:00
Samuel Pitoiset
9c9c21eaa1 rtmp: do not warn about receiving metadata packets
They are managed in get_packet()

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-31 14:52:25 +02:00
Diego Biurrun
8728b381cb x86: h264dsp: Adjust YASM #ifdefs
This fixes compilation with YASM disabled.
2012-07-31 13:54:07 +02:00
Diego Biurrun
d1505db067 x86: yadif: Mark mmxext optimizations as such
The yadif mmx optimizations contain the pmaxsw and pmaxub mmxext
instructions, causing sigills on CPUs that do not support mmxext.
2012-07-31 13:54:06 +02:00
Stefano Sabatini
52bd9cb4d2 lavfi/movie: force channel layout if not set by the decoder
This ensures that the output buffers will have the channel layout set,
which is required by filters.

Also consistent with ffmpeg.c behavior.
2012-07-31 13:25:14 +02:00
Stefano Sabatini
c809b89a12 ffprobe: show audio frame channels and channel_layout 2012-07-31 13:21:29 +02:00
Stefano Sabatini
23fc4dd6e7 lavc: add channels field to AVFrame
This is required otherwise it is not always possible to guess the number
of channels from the layout, for example if the channel layout is
unknown.
2012-07-31 13:21:10 +02:00
Stefano Sabatini
b4c3359828 lavfi/asettb: do not create a new reference in filter_samples()
There is no need to duplicate the input reference, since a filter should
not pass along a reference which is later modified. If this happens the
filter passing the reference should be fixed.

Also improve consistency with start_frame() of settb, allowing a pending
factorization.
2012-07-31 13:15:51 +02:00
Stefano Sabatini
a7c3720e87 lavu/bprint: readd documentation for 0 and 1 av_bprint_init() special values
The documentation was erroneously removed in 7cf9aadd.
2012-07-31 13:15:43 +02:00
Ronald S. Bultje
b829b4ce29 h264: convert loop filter strength dsp function to yasm.
This completes the conversion of h264dsp to yasm; note that h264 also
uses some dsputil functions, most notably qpel. Performance-wise, the
yasm-version is ~10 cycles faster (182->172) on x86-64, and ~8 cycles
faster (201->193) on x86-32.
2012-07-30 19:39:47 -07:00
Michael Niedermayer
00ddf62078 mpegdemux: Fix probing of unrecognized_mpeg_video.mpg
Fixes Ticket1586

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-31 03:59:29 +02:00
Michael Niedermayer
3b5ba60aa7 vc1dec: fix handling of max_coded dimensions
Fixes Ticket1502

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-31 03:00:35 +02:00
Michael Niedermayer
30c8573dc7 mpeg4videoenc: ensure SAR is within the supported range
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-31 01:57:18 +02:00
Michael Niedermayer
b5da7d4c1a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avformat: Drop pointless "format" from container long names
  swscale: bury one more piece of inline asm under HAVE_INLINE_ASM.
  wv: K&R formatting cosmetics
  configure: Add missing descriptions to help output
  h264_ps: declare array of colorspace strings on its own line.
  fate: amix: specify f32 sample format for comparison
  tiny_psnr: support 32-bit float samples
  eamad/eatgq/eatqi: call special EA IDCT directly
  eamad: remove use of MpegEncContext
  mpegvideo: remove unnecessary inclusions of faandct.h
  af_asyncts: avoid overflow in out_size with large delta values
  af_asyncts: add first_pts option

Conflicts:
	configure
	libavcodec/eamad.c
	libavcodec/h264_ps.c
	libavformat/crcenc.c
	libavformat/ffmdec.c
	libavformat/ffmenc.c
	libavformat/framecrcenc.c
	libavformat/md5enc.c
	libavformat/nutdec.c
	libavformat/rawenc.c
	libavformat/yuv4mpeg.c
	tests/tiny_psnr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 23:28:31 +02:00
Diego Biurrun
0177b7d23a Improve descriptiveness of a number of codec and container long names 2012-07-30 20:46:55 +02:00
Nicolas George
a85b4a5696 lavfi: use correct PTS for link age.
When start_frame has returned, the buffer reference's PTS
may have been modified by another filter.
2012-07-30 17:56:26 +02:00
Michael Niedermayer
64f07754fe buildsys: fix c++ compilation
Based on code by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 17:51:33 +02:00
Michael Niedermayer
64a2c51f7b fate: fix forgotten hunk for framerate order change in ffmpeg.c
broken by: cbb2c95e47
i had fixed that commit but pushed from an old branch

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 17:51:33 +02:00
Michael Niedermayer
3161958455 yadif: update frame rate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 14:17:10 +02:00
Michael Niedermayer
cbb2c95e47 ffmpeg: init simple filter graph before trying to extract framerate from its output.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 14:17:10 +02:00
Michael Niedermayer
dfd8f2ff19 avfilter: fix minor typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 14:17:10 +02:00
Diego Biurrun
6774247a9d avformat: Drop pointless "format" from container long names 2012-07-30 13:59:06 +02:00
Nicolas George
f893904469 audioconvert: add av_get_standard_channel_layout().
Also bump minor version and add APIchanges entry.
2012-07-30 11:38:38 +02:00
Nicolas George
33449b1776 audioconvert: add av_get_channel_description(). 2012-07-30 11:37:40 +02:00
Nicolas George
cc55470472 audioconvert: include the description of channels in the library. 2012-07-30 10:24:37 +02:00
Paul B Mahol
8a6d673eff flacdec: fix memleaks
While here refactor code.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-30 02:45:21 +00:00
jamal
753a1b0988 samplefmt: Fix warning about discarded qualifier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 03:50:43 +02:00
jamal
938e4470ae options: Fix warning about incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 03:48:46 +02:00
Ronald S. Bultje
8e5d71d110 swscale: bury one more piece of inline asm under HAVE_INLINE_ASM. 2012-07-29 17:14:48 -07:00
Michael Niedermayer
7d1918affe Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flvdec: remove spurious use of stream id
  lavf: deprecate r_frame_rate.
  lavf: round estimated average fps to a "standard" fps.

Conflicts:
	ffmpeg.c
	ffprobe.c
	libavformat/avformat.h
	libavformat/electronicarts.c
	libavformat/flvdec.c
	libavformat/rawdec.c
	libavformat/utils.c
	tests/ref/fate/iv8-demux

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-30 00:56:33 +02:00
Anton Khirnov
29d70274ec wv: K&R formatting cosmetics 2012-07-30 00:42:20 +02:00
Diego Biurrun
193cdd9a3e configure: Add missing descriptions to help output 2012-07-30 00:42:20 +02:00
Stefano Sabatini
316f6df9cc lavfi/avcodec: rename picref->samplesref variable in avfilter_get_audio_buffer_ref_from_frame()
The new name is more meaningful in that context.
2012-07-30 00:33:13 +02:00
Stefano Sabatini
9cf9214d0a lavfi/color: free internal context options in uninit()
Keeping the set options in the context when the component is still used
can be useful for debugging purposes.
2012-07-30 00:33:13 +02:00
Stefano Sabatini
a74dcb7dc0 lavfi/color: cache and reuse colored picture in context
Avoid to fill the same picture again and again with the same content.

Optimize computation, and provides an example for the use of the
AV_PERM_REUSE permission flag.
2012-07-30 00:33:13 +02:00
Stefano Sabatini
47b6b7a2b9 lavfi/color: reindent after the previous commit 2012-07-30 00:33:13 +02:00
Stefano Sabatini
e5d617aa6d lavfi/color: drop support for old deprecated syntax 2012-07-30 00:31:43 +02:00
Stefano Sabatini
ad2022ac83 lavfi/testsrc: add comment in options 2012-07-30 00:30:21 +02:00
Ronald S. Bultje
be391fb6df h264_ps: declare array of colorspace strings on its own line. 2012-07-29 14:53:42 -07:00
Mans Rullgard
70c8753d33 fate: amix: specify f32 sample format for comparison
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-29 22:05:09 +01:00
Mans Rullgard
9f1280def4 tiny_psnr: support 32-bit float samples
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-29 22:05:09 +01:00
Michael Niedermayer
7c26761b81 Merge commit 'fe1c1198e670242f3cf9e3e1eef27cff77f3ee23'
* commit 'fe1c1198e670242f3cf9e3e1eef27cff77f3ee23':
  lavf: use dts difference instead of AVPacket.duration in find_stream_info()
  avf: introduce nobuffer option
  fate: make yadif tests consistent across systems
  vf_hqdn3d: support 9 and 10bit colordepth
  vf_hqdn3d: reduce intermediate precision
  vf_hqdn3d: simplify and optimize
  factor identical ff_inplace_start_frame out of two filters
  vf_hqdn3d: cosmetics
  avprobe/avconv: fix tentative declaration compile errors on MSVS.

Conflicts:
	doc/APIchanges
	ffmpeg.c
	ffprobe.c
	libavformat/avformat.h
	libavformat/options_table.h
	libavformat/utils.c
	libavformat/version.h
	tests/fate/filter.mak
	tests/ref/fate/filter-yadif-mode0
	tests/ref/fate/filter-yadif-mode1

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-29 23:04:49 +02:00
Mans Rullgard
f3eb008343 eamad/eatgq/eatqi: call special EA IDCT directly
These decoders use a special non-MPEG2 IDCT.  Call it directly
instead of going through dsputil.  There is never any reason
to use a regular IDCT with these decoders or to use the EA IDCT
with other codecs.

This also fixes the bizarre situation of eamad and eatqi decoding
incorrectly if eatgq is disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-29 21:30:57 +01:00
Mans Rullgard
591766a3a9 eamad: remove use of MpegEncContext
There is no sense in pulling in this monster struct just for
a handful of fields.  The code does not call any functions
expecting an MpegEncContext.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-29 21:30:47 +01:00
Mans Rullgard
87cf481aa8 mpegvideo: remove unnecessary inclusions of faandct.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-29 21:28:45 +01:00
Michael Niedermayer
72dabdfc58 aacenc: new default cutoff
Improves subjective quality

Formula and testing by: kamedo2 <fujisakihir90@yahoo.co.jp>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-29 22:02:46 +02:00
Justin Ruggles
be51e589cd af_asyncts: avoid overflow in out_size with large delta values 2012-07-29 14:31:54 -04:00
Justin Ruggles
70d71b5801 af_asyncts: add first_pts option
This allows for padding/trimming at the start of stream. By default, no
assumption is made about the first frame's expected pts, so no padding or
trimming is done.
2012-07-29 14:31:54 -04:00
Luca Barbato
41f43202cf flvdec: remove spurious use of stream id
We match streams by codec id now.
2012-07-29 17:18:03 +02:00
Nicolas George
981d97f697 doc/filters: document TB variable for vf_setpts. 2012-07-29 16:25:52 +02:00
Nicolas George
5c81a9ff55 libx264: list possible profiles.
The values are listed if setting them fails.
Using "-profile help" or "-profile list" have that effect.
Similar to 3aba391.
Suggested by "rogerdpack" in trac ticket #1529.
2012-07-29 16:13:07 +02:00
Anton Khirnov
aba232cfa9 lavf: deprecate r_frame_rate.
According to its description, it is supposed to be the LCM of all the
frame durations. The usability of such a thing is vanishingly small,
especially since we cannot determine it with any amount of reliability.
Therefore get rid of it after the next bump.

Replace it with the average framerate where it makes sense.

FATE results for the wtv and xmv demux tests change. In the wtv case
this is caused by the file being corrupted (or possibly badly cut) and
containing invalid timestamps. This results in lavf estimating the
framerate wrong and making up wrong frame durations.
In the xmv case the file contains pts jumps, so again the estimated
framerate is far from anything sane and lavf again makes up different
frame durations.

In some other tests lavf starts making up frame durations from different
frame.
2012-07-29 08:06:30 +02:00
Anton Khirnov
f66eeff1c8 lavf: round estimated average fps to a "standard" fps. 2012-07-29 08:05:46 +02:00
Anton Khirnov
fe1c1198e6 lavf: use dts difference instead of AVPacket.duration in find_stream_info()
AVPacket.duration is mostly made up and thus completely useless, this is
especially true for video streams.
Therefore use dts difference for framerate estimation and
the max_analyze_duration check.

The asyncts test now needs -analyzeduration, because the default is 5
seconds and the audio stream in the sample appears at ~10 seconds.
2012-07-29 08:04:42 +02:00
Luca Barbato
681ed00099 avf: introduce nobuffer option
Useful in cases where a significant analyzeduration is
still needed, while minimizing buffering before output.

An example is processing low-latency streams where all
media types won't necessarily come in if the
analyzeduration is small.

Additional changes by Josh Allmann <joshua.allmann@gmail.com>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-29 07:58:00 +02:00
Paul B Mahol
e4f3a9693d lavf/apetag: move common stuff between writer and reader to single file
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-29 02:31:27 +00:00
Paul B Mahol
c3c9c4d006 doc/general: add missed WavPack muxing support information
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-29 02:26:09 +00:00
Paul B Mahol
29ba3aacb1 lavf/smacker: remove bogus video from .long_name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-29 02:22:09 +00:00
Paul B Mahol
c25dc1f9c7 wvenc: support for ape tags
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-29 01:28:12 +00:00
Paul B Mahol
bd93f96540 APE tag writer 2012-07-29 01:28:12 +00:00
Paul B Mahol
a3a0774be8 WavPack muxer 2012-07-29 01:28:12 +00:00
Michael Niedermayer
706bd8ea19 Merge remote-tracking branch 'qatar/master'
* qatar/master: (35 commits)
  h264_idct_10bit: port x86 assembly to cpuflags.
  x86inc: clip num_args to 7 on x86-32.
  x86inc: sync to latest version from x264.
  fft: rename "z" to "zc" to prevent name collision.
  wv: return meaningful error codes.
  wv: return AVERROR_EOF on EOF, not EIO.
  mp3dec: forward errors for av_get_packet().
  mp3dec: remove a pointless local variable.
  mp3dec: remove commented out cruft.
  lavfi: bump minor to mark stabilizing the ABI.
  FATE: add tests for yadif.
  FATE: add a test for delogo video filter.
  FATE: add a test for amix audio filter.
  audiogen: allow specifying random seed as a commandline parameter.
  vc1dec: Override invalid macroblock quantizer
  vc1: avoid reading beyond the last line in vc1_draw_sprites()
  vc1dec: check that coded slice positions and interlacing match.
  vc1dec: Do not ignore ff_vc1_parse_frame_header_adv return value
  configure: Move parts that should not be user-selectable to CONFIG_EXTRA
  lavf: remove commented out cruft in avformat_find_stream_info()
  ...

Conflicts:
	Makefile
	configure
	libavcodec/vc1dec.c
	libavcodec/x86/h264_deblock.asm
	libavcodec/x86/h264_deblock_10bit.asm
	libavcodec/x86/h264dsp_mmx.c
	libavfilter/version.h
	libavformat/mp3dec.c
	libavformat/utils.c
	libavformat/wv.c
	libavutil/x86/x86inc.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-29 02:16:26 +02:00
Mans Rullgard
d905c64406 fate: make yadif tests consistent across systems
MMX-enabled systems by default use some dsputil functions differing
from the C versions.  Adding these flags ensures accurate ones are
used everywhere.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-28 22:23:52 +01:00
Loren Merritt
1ad715dbf3 vf_hqdn3d: support 9 and 10bit colordepth
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:20:06 -07:00
Loren Merritt
0f583e6cc5 vf_hqdn3d: reduce intermediate precision
11% faster on penryn, 7% on sandybridge, 5% on bulldozer
Negligible change to output.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:19:01 -07:00
Loren Merritt
85e228c71d vf_hqdn3d: simplify and optimize
14% faster on penryn, 2% on sandybridge, 9% on bulldozer

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:15:14 -07:00
Loren Merritt
fb44e7401f factor identical ff_inplace_start_frame out of two filters
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:15:14 -07:00
Loren Merritt
60b9785530 vf_hqdn3d: cosmetics
Change code style to match the rest of libav.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:12:22 -07:00
Ronald S. Bultje
dcb7ef5483 avprobe/avconv: fix tentative declaration compile errors on MSVS. 2012-07-28 11:48:18 -07:00
Nicolas George
0f8f924847 faq: suggest the concat filter. 2012-07-28 18:16:55 +02:00
Nicolas George
2d6f442ca1 faq: disambiguate "join". 2012-07-28 18:16:55 +02:00
Michael Niedermayer
3adc9c9996 ffmpeg: allow using the r_frame_rate as fundamental timebase for stream copy in avi
Fixes Ticket1434

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 17:43:14 +02:00
Ronald S. Bultje
c83f44dba1 h264_idct_10bit: port x86 assembly to cpuflags. 2012-07-28 08:29:45 -07:00
Loren Merritt
f8d8fe255d x86inc: clip num_args to 7 on x86-32.
This allows us to unconditionally set the cglobal num_args
parameter to a bigger value, thus making writing yasm code
even easier than before.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 08:29:45 -07:00
Ronald S. Bultje
96c9cc1094 x86inc: sync to latest version from x264. 2012-07-28 08:29:44 -07:00
Ronald S. Bultje
b3c5ae5607 fft: rename "z" to "zc" to prevent name collision.
Without this, cglobal will expand "z" to "zh" to access the high byte
in a register's word, which causes a name collision with the ZH(x) macro
further up in this file.
2012-07-28 08:29:44 -07:00
Michael Niedermayer
157f956973 ffmpeg: add code to perform ts wrap correction
Fixes ticket1385

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 17:05:24 +02:00
Michael Niedermayer
05a6c625f4 fate: switch rsync to fate-suite.ffmpeg.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 17:05:24 +02:00
Nicolas George
efcfcf8793 avf_concat: fix silence duration.
concat_in.pts starts at 0 for each segment, so the duration
of the silence was too long, except at the first stitch.
2012-07-28 15:14:01 +02:00
Nicolas George
4ce87ecf2a asrc_flite: do not crash on multiple instances.
The voice register functions return the same voice structure
upon multiple registration. It causes us two problems:

If we delete a voice without deregistering it, it leaves
a dangling pointer inside the library.

If we delete or unregister a voice at uninit, it may still
be in use by another instance of the filter.

The second problem is solved by keeping an usage counter inside
asrc_flite. This is not thread-safe, but neither is flite itself.
2012-07-28 15:13:46 +02:00
Anton Khirnov
c1d865d563 wv: return meaningful error codes. 2012-07-28 14:37:16 +02:00
Anton Khirnov
ccc10acb5b wv: return AVERROR_EOF on EOF, not EIO. 2012-07-28 14:37:12 +02:00
Anton Khirnov
f73e3938ac mp3dec: forward errors for av_get_packet().
Don't invent a bogus EIO error.

The code now doesn't check for ret == 0, but that check is redundant,
av_get_packet() never returns 0.
2012-07-28 14:37:00 +02:00
Anton Khirnov
67b1156fe8 mp3dec: remove a pointless local variable. 2012-07-28 14:36:55 +02:00
Anton Khirnov
61f8bb74f3 mp3dec: remove commented out cruft. 2012-07-28 14:36:51 +02:00
Anton Khirnov
b3fa478823 lavfi: bump minor to mark stabilizing the ABI. 2012-07-28 14:33:48 +02:00
Anton Khirnov
8f9537f314 FATE: add tests for yadif. 2012-07-28 14:33:44 +02:00
Anton Khirnov
8112710f17 FATE: add a test for delogo video filter. 2012-07-28 14:33:32 +02:00
Anton Khirnov
7339340787 FATE: add a test for amix audio filter. 2012-07-28 14:32:53 +02:00
Anton Khirnov
67ef5f4eb5 audiogen: allow specifying random seed as a commandline parameter. 2012-07-28 14:32:48 +02:00
Michael Niedermayer
45838561f2 vc1dec: Override invalid macroblock quantizer
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-28 14:13:22 +02:00
Michael Niedermayer
2bf369b60c vc1: avoid reading beyond the last line in vc1_draw_sprites()
Fixes overread

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-28 13:35:12 +02:00
Michael Niedermayer
1100acbab2 vc1dec: check that coded slice positions and interlacing match.
This fixes out of array writes

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-28 13:34:05 +02:00
Michael Niedermayer
0aa907cfb1 vc1dec: Do not ignore ff_vc1_parse_frame_header_adv return value
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-28 13:34:05 +02:00
Stefano Sabatini
fb0688b079 doc/general: add missing device support information 2012-07-28 12:27:33 +02:00
Nicolas George
9a757cca34 avf_concat: fix min value for v option. 2012-07-28 11:48:14 +02:00
Diego Biurrun
bfe9f48ad7 configure: Move parts that should not be user-selectable to CONFIG_EXTRA 2012-07-28 11:26:06 +02:00
Stefano Sabatini
66a5201819 lavfi: add flite audio source 2012-07-28 11:06:43 +02:00
Stefano Sabatini
fd2b6c1e4b doc/filters: itemize movie examples 2012-07-28 10:50:19 +02:00
Stefano Sabatini
32390d6767 lavfi: move movie and amovie to a "multimedia sources" section
Since the recent changes, movie and amovie are able to deal with more
than one type of stream, so they should be categorized as "multimedia
sources" rather than audio/video sources.
2012-07-28 10:50:11 +02:00
Stefano Sabatini
7cf9aaddcd lavu/bprint: extend/clarify documentation for av_bprint_init() size_max value
Also define AV_BPRINT_SIZE_* macros before av_bprint_init() declaration,
and mention them in the av_bprint_init() doxy.
2012-07-28 10:49:08 +02:00
Anton Khirnov
efd34918ba lavf: remove commented out cruft in avformat_find_stream_info() 2012-07-28 10:00:38 +02:00
Anton Khirnov
c4ef6a3e4b Add missing libavutil/time.h includes. 2012-07-28 09:02:07 +02:00
Michael Niedermayer
a2f91e7bcd mpegaudiodec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 05:31:27 +02:00
Ronald S. Bultje
4d777eedfd vp3: don't compile mmx IDCT functions on x86-64.
64-bit CPUs always have SSE2, and a SSE2 version exists, thus the MMX
version will never be used.
2012-07-27 20:12:30 -07:00
Ronald S. Bultje
a5bbb1242c h264_loopfilter: port x86 simd to cpuflags. 2012-07-27 20:12:11 -07:00
jamal
64c53fa16a dxva2: Fix some warnings about incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 03:28:46 +02:00
Mans Rullgard
23565c2641 build: support non-standard replacements for -c flag
This allows non-standard replacements for the -c compiler flag.
Some compilers use other flags or no flag at all in place of
the usual one.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-28 01:50:12 +01:00
Mans Rullgard
18031c49dc build: support non-standard replacements for -E flag
This allows using non-standard flags for running the C preprocessor.
The -o flag must be included in this setting due to strange syntax
required by some compilers.

Set the correct flags for tms470.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-28 01:50:12 +01:00
Ronald S. Bultje
d07ff3cd5a h264_chromamc_10bit: port x86 simd to cpuflags. 2012-07-27 17:35:49 -07:00
Ronald S. Bultje
4a26fdd852 vp3: port x86 SIMD to cpuflags. 2012-07-27 17:35:49 -07:00
Diego Biurrun
42ade117dd build: Use portable compiler flag constructs in header compilation rule 2012-07-28 02:02:20 +02:00
Diego Biurrun
24f8961f93 x11grab: cosmetics: consistent naming for x11grab-related things 2012-07-28 02:02:19 +02:00
Diego Biurrun
755834e94f build: Rename YASMDEP variable to DEPYASM for consistency 2012-07-28 02:02:19 +02:00
Michael Niedermayer
0fa352623d dvdsubenc: switch to av_assert
we use av_assert0() because the previous code unconditionally
enabled the assert.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 01:18:04 +02:00
Michael Niedermayer
55cdd45446 avio: Document that write_packet() is not allowed to change its input
Found-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-28 01:16:09 +02:00
Martin Storsjö
8ebacfb598 hls: Proceed to the next segment at any error code
Previously, we returned any error code except AVERROR_EOF to the
caller - only if AVERROR_EOF or 0 was returned, we proceeded to
the next segment.

With some setups of web servers, using Connection: close in https
and GnuTLS, we don't get a clean error code at the end of segments.
In those cases, just proceed to the next segment.

Tested-by: Antti Seppälä <a.seppala@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-28 01:21:32 +03:00
Martin Storsjö
41ecbbc7aa tls: Return AVERROR_EOF if the TLS_read/write functions return 0
OpenSSL returns 0 when the peer has closed the connection. GnuTLS
doesn't return that though, but returns
GNUTLS_E_UNEXPECTED_PACKET_LENGTH if the connection simply is closed
without a clean close notify packet.

Tested-by: Antti Seppälä <a.seppala@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-28 01:21:16 +03:00
Ronald S. Bultje
76888c64b0 rv34: port x86 SIMD to cpuflags. 2012-07-27 15:13:26 -07:00
Michael Niedermayer
c6963a220d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  proresdsp: port x86 assembly to cpuflags.
  lavr: x86: improve non-SSE4 version of S16_TO_S32_SX macro
  lavfi: better channel layout negotiation
  alac: check for truncated packets
  alac: reverse lpc coeff order, simplify filter
  lavr: add x86-optimized mixing functions
  x86: add support for fmaddps fma4 instruction with abstraction to avx/sse
  tscc2: fix typo in array index
  build: use COMPILE template for HOSTOBJS
  build: do full flag handling for all compiler-type tools
  eval: fix printing of NaN in eval fate test.
  build: Rename aandct component to more descriptive aandcttables
  mpegaudio: bury inline asm under HAVE_INLINE_ASM.
  x86inc: automatically insert vzeroupper for YMM functions.
  rtmp: Check the buffer length of ping packets
  rtmp: Allow having more unknown data at the end of a chunk size packet without failing
  rtmp: Prevent reading outside of an allocate buffer when receiving server bandwidth packets

Conflicts:
	Makefile
	configure
	libavcodec/x86/proresdsp.asm
	libavutil/eval.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 23:42:19 +02:00
Ronald S. Bultje
158744a4cd vp56: only compile MMX SIMD on x86-32.
All x86-64 CPUs have SSE2, so the MMX version will never be used. This
leads to smaller binaries.
2012-07-27 14:40:27 -07:00
Ronald S. Bultje
2734ba787b vp56: port x86 simd to cpuflags. 2012-07-27 14:39:07 -07:00
jamal
94c3e11a6f imgutils: Fix warnings about incompatible pointer type and discarded qualifiers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 22:10:10 +02:00
Ronald S. Bultje
5361e10a5e proresdsp: port x86 assembly to cpuflags. 2012-07-27 11:43:06 -07:00
Carl Eugen Hoyos
4f2549e3d0 Fix aiff demuxer dependencies. 2012-07-27 20:42:35 +02:00
Justin Ruggles
e9da9a3111 lavr: x86: improve non-SSE4 version of S16_TO_S32_SX macro
Removes a false dependency on existing contents of the 2nd dst register,
giving better performance for OOE.
2012-07-27 14:21:32 -04:00
Justin Ruggles
743f07062a lavfi: better channel layout negotiation
Allow substitution of channel pairs in the input for nearby channel pairs in
the output in order to get a closer match. Also weigh LFE channel mismatch
differently to favor matching the same layout without LFE over one less
channel with LFE.
2012-07-27 14:15:33 -04:00
Justin Ruggles
81f548de57 alac: check for truncated packets
This will give a clearer error message when the error is caused by a
truncated packet.
2012-07-27 13:52:20 -04:00
Justin Ruggles
fb57e913e1 alac: reverse lpc coeff order, simplify filter
Reversing the lpc coefficient order simplifies indexing in the filter.
2012-07-27 13:52:19 -04:00
jamal
52a62f9085 dwt: Fix several warnings about incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 19:36:17 +02:00
Justin Ruggles
2f096bb10e lavr: add x86-optimized mixing functions
Adds optimized functions for mixing 3 through 8 input channels to 1 and 2
output channels in fltp or s16p format with flt coeffs.
2012-07-27 11:25:48 -04:00
Justin Ruggles
79687079a9 x86: add support for fmaddps fma4 instruction with abstraction to avx/sse 2012-07-27 11:25:48 -04:00
Steven Robertson
b3841db133 vf_alphamerge: Fix reversed conditional
Reviewed-by: Nicolas George
2012-07-27 14:00:04 +02:00
Matthieu Bouron
789f8cb03a avutil: support 50 and 60 frame rates in timecode api
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 13:41:58 +02:00
Marton Balint
3be02afb56 mxfdec: fix off by one error in d10 aes3 decoding
Without this fix the last sample was missing from the packet.

Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 13:36:43 +02:00
jamal
c49e0d2cdd aviobuf: Fix warning about discarded qualifier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 12:46:51 +02:00
Michael Niedermayer
a2cd13f04f zmbv: Fix warning about discarded qualifier
Based on patch by: jamal <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 12:43:15 +02:00
jamal
cb40d36074 ffv1: Fix warnings about incompatible pointer type and discarded qualifiers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-27 12:27:21 +02:00
Kostya Shishkov
0cf7d849ff tscc2: fix typo in array index 2012-07-27 07:34:38 +02:00
Mans Rullgard
b9d3c37848 build: use COMPILE template for HOSTOBJS
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-26 23:58:59 +01:00
Mans Rullgard
a758c5e259 build: do full flag handling for all compiler-type tools
This adds a full identification probe of CC, AS, LD and HOSTCC,
and sets up correct flags and dependency tracking for each.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-26 23:58:50 +01:00
Ronald S. Bultje
02ac28229a eval: fix printing of NaN in eval fate test.
This fixes "make fate-eval" on MSVC builds. Without this, the test outputs
"-1.#NaN" instead of "nan" on MSVS 2010.
2012-07-26 15:56:32 -07:00
Diego Biurrun
8784959234 build: Rename aandct component to more descriptive aandcttables 2012-07-26 23:35:21 +02:00
Michael Niedermayer
236ecc3502 fate: change fate-suite rsync server.
there are some technical problems with fate.ffmpeg.org
thus split the subdomain between fate-suite and fate
fate-suite is now (temporary) provided by our main server

until fate-suite.ffmpeg.org is setup to point somewhere
we use fate-suite.avcodec.org

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 23:07:53 +02:00
Ronald S. Bultje
bde73f28af mpegaudio: bury inline asm under HAVE_INLINE_ASM. 2012-07-26 13:43:16 -07:00
Ronald S. Bultje
30b45d9c38 x86inc: automatically insert vzeroupper for YMM functions. 2012-07-26 13:43:16 -07:00
Clément Bœsch
316f8db2c2 SubViewer demuxer and decoder. 2012-07-26 22:22:54 +02:00
Clément Bœsch
2755abff3e lavc/rt: small wording fix in a comment. 2012-07-26 22:22:49 +02:00
Samuel Pitoiset
8ea1459bc3 rtmp: Check the buffer length of ping packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-26 22:57:15 +03:00
Samuel Pitoiset
e49e6b6451 rtmp: Allow having more unknown data at the end of a chunk size packet without failing
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-26 22:56:54 +03:00
Samuel Pitoiset
2357f60687 rtmp: Prevent reading outside of an allocate buffer when receiving server bandwidth packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-26 22:56:54 +03:00
Michael Niedermayer
7333798c85 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libopenjpeg: support YUV and deep RGB pixel formats
  Fix typo in v410 decoder.
  vf_yadif: unset cur_buf on the input link.
  vf_overlay: ensure the overlay frame does not get leaked.
  vf_overlay: prevent premature freeing of cur_buf
  Support urlencoded http authentication credentials
  rtmp: Return an error when the client bandwidth is incorrect
  rtmp: Return proper error code in handle_server_bw
  rtmp: Return proper error code in handle_client_bw
  rtmp: Return proper error codes in handle_chunk_size
  lavr: x86: add missing vzeroupper in ff_mix_1_to_2_fltp_flt()
  vp8: Replace x*155/100 by x*101581>>16.
  vp3: don't use calls to inline asm in yasm code.
  x86/dsputil: put inline asm under HAVE_INLINE_ASM.
  dsputil_mmx: fix incorrect assembly code
  rtmp: Factorize the code by adding handle_invoke
  rtmp: Factorize the code by adding handle_chunk_size
  rtmp: Factorize the code by adding handle_ping
  rtmp: Factorize the code by adding handle_client_bw
  rtmp: Factorize the code by adding handle_server_bw

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/x86/dsputil_mmx.c
	libavfilter/vf_overlay.c
	libavformat/Makefile
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 21:37:15 +02:00
Michael Niedermayer
307a20cca2 Changelog: put entries lost in 2cb4d51654 back
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 20:37:05 +02:00
Michael Niedermayer
f5a5b4344b ffmpeg: doxyfy some comments and mention the timebase used in various timestamp fields.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:58:26 +02:00
Michael Niedermayer
1a7af514de ffmpeg: move decoded_frame->pts computation together
This clarifies the code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:57:36 +02:00
Michael Niedermayer
c76a5365bb ffmpeg: Fix rounding errors in decoded_frame->pts computation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:56:52 +02:00
Michael Niedermayer
9b1fdb1c5a ffmpeg: fix assumed decoded_frame->pts timebase
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:56:07 +02:00
Michael Niedermayer
b616405c16 ffmpeg: reset decoded_frame->pts after rescaling.
This ensures its not used afterwards.
This commit should not change anything as it should not have been used afterwards.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:51:56 +02:00
Michael Niedermayer
e15e5328a7 mpc8: Initialize AVFrame properly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:45:44 +02:00
Michael Niedermayer
5938b4d398 mpc7: Initialize AVFrame properly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:42:42 +02:00
Michael Niedermayer
55fa883b30 ffmpeg: fix units of next_?ts in debug printing routine.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 17:12:07 +02:00
Michael Niedermayer
506ffa793f h264_cabac: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 16:33:39 +02:00
Michael Niedermayer
7a4e30f3b6 h264_cabac: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 16:33:17 +02:00
Michael Bradshaw
44dc9c6af0 libopenjpeg: support YUV and deep RGB pixel formats
Based on FFmpeg version from
commit 3275981207

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 10:20:04 +02:00
Carl Eugen Hoyos
92566540c3 Fix typo in v410 decoder.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-26 10:08:49 +02:00
William Yu
d5d5e3dabe lavfi/af_amerge: avfilter_copy_buffer_ref_props will overwrite output pts 2012-07-26 10:05:58 +02:00
Michael Niedermayer
97c0d5357d omadec: switch to AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 03:30:35 +02:00
Michael Niedermayer
9c83f3e659 loasdec: switch to AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 03:30:20 +02:00
Michael Niedermayer
e083a62e9d aacdec: switch to AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 03:29:59 +02:00
Michael Niedermayer
6f6182372c hls: replace probsize=0 by noheader flag removial.
This fixes h264 timestamps in hls
Fixes ticket1572

Tested-by: crtmpserver
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 03:05:31 +02:00
Michael Niedermayer
12d1ee6a5e ff_add_index_entry: reject AV_NOPTS_VALUE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 03:05:31 +02:00
Michael Niedermayer
2cd491a47c lavf: move generic index generation code to a later point
By moving it to a later point relative and unknown timestamps
are more likely to have been corrected

similar patch reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Conflicts:

	libavformat/utils.c
2012-07-26 03:04:49 +02:00
Michael Niedermayer
2880c31660 parse_packet: use pkt.pos always instead of the avparser offset.
This is more correct and will be needed when the code is moved to
a later point.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:20:59 +02:00
Michael Niedermayer
4e7f9ebdc2 wav: switch to AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:12:56 +02:00
Michael Niedermayer
fdc371114f ff_raw_audio_read_header: mark as AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:11:21 +02:00
Michael Niedermayer
5ea4ee7bcb flacdec: mark as AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:03:58 +02:00
Michael Niedermayer
ea8c12c90f mp3dec: mark as AVSTREAM_PARSE_FULL_RAW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 02:03:56 +02:00
Piotr Bandurski
c5f23df2dd movenc: fix remuxing of yuv2
Attached patch fixes remuxing of yuv2 in mov (and does not break remuxing of yuvs)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 01:37:46 +02:00
Michael Niedermayer
9054f6b66b probe_codec: fix memory corruption
Found-by: Tanami Ohad
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-26 01:10:55 +02:00
Nicolas George
6bf87785e8 ffmpeg: warn about new streams after startup. 2012-07-26 00:30:38 +02:00
Nicolas George
d0d9272580 faq: explain about new streams, probesize and analyzeduration. 2012-07-26 00:30:37 +02:00
Anton Khirnov
b5c8aa745e vf_yadif: unset cur_buf on the input link.
The buffer is stored internally, so this prevents it from being unreffed
automatically.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Anton Khirnov
f431315a86 vf_overlay: ensure the overlay frame does not get leaked.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Michael Niedermayer
08fc1ad151 vf_overlay: prevent premature freeing of cur_buf
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Antti Seppälä
5423e908c9 Support urlencoded http authentication credentials
It should be possible to specify usernames in http requests containing
urlencoded characters. This patch adds support for decoding the auth
strings.

Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-26 00:18:32 +03:00
Samuel Pitoiset
abf77a247b rtmp: Return an error when the client bandwidth is incorrect
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 23:57:01 +03:00
Samuel Pitoiset
be8f949219 rtmp: Return proper error code in handle_server_bw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 23:57:00 +03:00
Samuel Pitoiset
088a82bb33 rtmp: Return proper error code in handle_client_bw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 23:57:00 +03:00
Samuel Pitoiset
e7ea6883bf rtmp: Return proper error codes in handle_chunk_size
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 23:57:00 +03:00
Michael Niedermayer
f7d4e26c6a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add a new option 'rtmp_pageurl'
  doc: Update the description of the rtmp_tcurl option
  rtmp: Make the description of the rtmp_tcurl option more generic
  libfdk-aacenc: add LATM/LOAS encapsulation support
  sctp: add port missing error message
  tcp: add port missing error message
  avfilter: Fix printf format string conversion specifier

Conflicts:
	libavcodec/version.h
	libavfilter/avfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 22:00:06 +02:00
Justin Ruggles
0dadf9d1e9 lavr: x86: add missing vzeroupper in ff_mix_1_to_2_fltp_flt() 2012-07-25 15:41:25 -04:00
Michael Niedermayer
9746f87f15 libvpxenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 21:35:48 +02:00
Michael Niedermayer
aee675a326 intrax8: asserts cleanup
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 21:35:30 +02:00
Ronald S. Bultje
48098788c2 vp8: Replace x*155/100 by x*101581>>16.
Idea stolen from webp (by Pascal Massimino) - because it's Cool.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-25 14:37:03 -04:00
Ronald S. Bultje
a1878a88a1 vp3: don't use calls to inline asm in yasm code.
Mixing yasm and inline asm is a bad idea, since if either yasm or inline
asm is not supported by your toolchain, all of the asm stops working.
Thus, better to use either one or the other alone.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-25 14:24:30 -04:00
Ronald S. Bultje
79195ce565 x86/dsputil: put inline asm under HAVE_INLINE_ASM.
This allows compiling with compilers that don't support gcc-style
inline assembly.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-25 14:24:27 -04:00
Yang Wang
845e92fd6a dsputil_mmx: fix incorrect assembly code
In ff_put_pixels_clamped_mmx(), there are two assembly code blocks.
In the first block (in the unrolled loop), the instructions
"movq 8%3, %%mm1 \n\t", and so forth, have problems.

From above instruction, it is clear what the programmer wants: a load from
p + 8. But this assembly code doesn’t guarantee that. It only works if the
compiler puts p in a register to produce an instruction like this:
"movq 8(%edi), %mm1". During compiler optimization, it is possible that the
compiler will be able to constant propagate into p. Suppose p = &x[10000].
Then operand 3 can become 10000(%edi), where %edi holds &x. And the instruction
becomes "movq 810000(%edx)". That is, it will stride by 810000 instead of 8.

This will cause a segmentation fault.

This error was fixed in the second block of the assembly code, but not in
the unrolled loop.

How to reproduce:
    This error is exposed when we build using Intel C++ Compiler, with
    IPO+PGO optimization enabled. Crashed when decoding an MJPEG video.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-25 14:22:18 -04:00
Samuel Pitoiset
6d1c9945dd rtmp: Factorize the code by adding handle_invoke
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 21:08:24 +03:00
Samuel Pitoiset
7be2a7d8ff rtmp: Factorize the code by adding handle_chunk_size
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 21:08:22 +03:00
Samuel Pitoiset
0ffd5161c4 rtmp: Factorize the code by adding handle_ping
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 21:08:20 +03:00
Samuel Pitoiset
912ecc9a19 rtmp: Factorize the code by adding handle_client_bw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 21:08:18 +03:00
Samuel Pitoiset
9b498148ca rtmp: Factorize the code by adding handle_server_bw
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 21:08:09 +03:00
Samuel Pitoiset
758377a2b7 rtmp: Add a new option 'rtmp_pageurl'
This option specifies the URL of the web page in which the media
was embedded.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:33:13 +03:00
Samuel Pitoiset
98df48db6d doc: Update the description of the rtmp_tcurl option
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:33:11 +03:00
Samuel Pitoiset
63ffa154e9 rtmp: Make the description of the rtmp_tcurl option more generic
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:33:10 +03:00
Kieran Kunhya
160a27c590 libfdk-aacenc: add LATM/LOAS encapsulation support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:32:33 +03:00
Jordi Ortiz
ecfff0e992 sctp: add port missing error message
Without this patch a user a bit absent-minded may not notice that
the connection doesn't work because the port is missing.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:31:16 +03:00
Jordi Ortiz
f9a9a14862 tcp: add port missing error message
Without this patch a user a bit absent-minded may not notice that
the connection doesn't work because the port is missing.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-25 20:30:39 +03:00
Michael Niedermayer
3005122485 hls: call avformat_find_stream_info()
This is needed to correctly demux h264 in ts

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 17:40:33 +02:00
Michael Niedermayer
da62b4326b av_find_stream_info: skip flushing codecs and estimating timings if probe_size==0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 17:39:25 +02:00
Michael Niedermayer
703f294934 fate: update avui test due to
commit 20e88d8618

    Fix avui stream-copy.

    The native decoder and MPlayer's binary decoder only need the
    APRG atom, QuickTime at least requires also the ARES atom and
    four additional 0 bytes padding at the end of stsd.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 14:29:39 +02:00
Stefano Sabatini
10b44f4932 ffprobe: use av_guess_sample_aspect_ratio() for guessing the aspect ratio
This is consistent with what av_dump_format() does.

In particular, fix trac ticket #1568.
2012-07-25 10:05:02 +02:00
Stefano Sabatini
9b42d6ed1f lavf/avformat.h: fix verb person for av_guess_sample_aspect_ratio()
Prefer impersonal form over third person, consistent with the rest of
docs.
2012-07-25 10:04:57 +02:00
Stefano Sabatini
e564de26b3 lavfi/avfilter.h: add doxy for AVFilterLink.out_buf 2012-07-25 10:03:34 +02:00
Stefano Sabatini
b73be80d48 lavfi/avfilter.h: add doxy for AVFilterLink.cur_buf 2012-07-25 10:01:29 +02:00
Carl Eugen Hoyos
20e88d8618 Fix avui stream-copy.
The native decoder and MPlayer's binary decoder only need the
APRG atom, QuickTime at least requires also the ARES atom and
four additional 0 bytes padding at the end of stsd.
2012-07-25 09:26:17 +02:00
Diego Biurrun
49c45a2624 avfilter: Fix printf format string conversion specifier
libavfilter/avfilter.c:224:9: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘int’ [-Wformat]
2012-07-25 09:24:25 +02:00
Michael Niedermayer
1c2beff04a lavf: Set pos for all packets of AVSTREAM_PARSE_FULL_RAW files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 01:57:25 +02:00
Michael Niedermayer
72743aef03 imgconvert: Implement avcodec_find_best_pix_fmt_of_list()
The old avcodec_find_best_pix_fmt() was insufficient due to 64 pix_fmt limit.
In ffmpeg this problem has been solved long ago through avcodec_find_best_pix_fmt2()
Today libav has added a incompatible modified version of avcodec_find_best_pix_fmt2()
under the same name, thus again breaking ABI/API ...

The avcodec_find_best_pix_fmt_of_list() added in this commit here makes the libav
API available to ffmpeg users too.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 01:25:28 +02:00
Piotr Bandurski
23bb85b069 riff: make the G723.1 in wav output compatible with WMP/msacm codec
Attached patch (together with demuxing patch) allows WMP/msacm G723.1 codec decode files encoded by FFmpeg.

Tested with both 6400 and 5333 mode

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 00:50:40 +02:00
Michael Niedermayer
e2fd18d40d lavf: factor AVStream st out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 00:45:17 +02:00
Michael Niedermayer
6b38101df5 parse_packet: reset pkt->pos after it has been used
This should have no effect as it was not used in this case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 00:42:50 +02:00
Michael Bradshaw
043c75a989 libopenjpegenc: set numresolution max to INT_MAX
OpenJPEG doesn't have a max lowres limit, so don't enforce an arbitrary one.

Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-25 00:29:34 +02:00
Michael Niedermayer
93342de1d8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add credit/copyright to librtmp authors for parts of the RTMPE code
  rtmp: Move the CONFIG_ condition into the if conditions
  aac: Mention abbreviation as well in long_name
  build: Skip compiling rtmpdh.h if ffrtmpcrypt protocol is not enabled
  doc: Add Git configuration section
  configure: Add a dependency on https for rtmpts
  rtp: Only choose static payload types if the sample rate and channels are right

Conflicts:
	doc/git-howto.texi
	libavformat/rtmpproto.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 21:15:57 +02:00
Nicolas George
3ccf22c64a ffmpeg: keep packet/frame availability in global structures.
This replaces the use of the no_packet and no_frame arrays.
2012-07-24 19:14:10 +02:00
Piotr Bandurski
b9c129be0f riff: fix remuxing of G723_1 in wav
Attached patch fixes remuxing of G723.1 in wav, so the output is playable by WMP.
(It's still not enough for encoding - probably some extradata should be added to the output file
to make it playable by WMP/win codec)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 18:53:53 +02:00
Martin Storsjö
6a433fdba8 rtmp: Add credit/copyright to librtmp authors for parts of the RTMPE code
Our implementation of RTMPE is heavily based on librtmp.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-24 18:13:26 +03:00
Michael Niedermayer
01272e7662 Revert "lavf: count skipped samples for initial timestamps."
This reverts commit 885fc05865.
This commit caused timestamps in case of generic seeking to become
inconsistent.
2012-07-24 17:10:38 +02:00
Samuel Pitoiset
f7bfb126cd rtmp: Move the CONFIG_ condition into the if conditions
This makes sure these calls are removed by dead code elimination
even if optimization is disabled. This fixes building without
crypto libraries without optimization.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-24 15:54:10 +03:00
Michael Niedermayer
0e1925ddc4 iffdec: Fix integer overflow.
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 05:17:36 +02:00
Michael Niedermayer
22ce78a95e vc1dec: dont apply the loop filter on fields
Fixes read of uninitialized memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 04:55:13 +02:00
Michael Niedermayer
697edcc12a vc1dec: dont attempt error concealment on field pictures.
This is not implemented and doesnt work.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 04:12:18 +02:00
Michael Niedermayer
2e346bdaba ec: print picture type with concealment error message.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 04:12:18 +02:00
Diego Biurrun
65d94f63ca aac: Mention abbreviation as well in long_name
Most people know the codec as "AAC" and not "Advanced Audio Coding".
2012-07-24 02:37:49 +02:00
Alexander Strasser
3f22fcce3a tools/bisect-create: Support "bisect run"
Make it possible to use the run bisect sub command. As with all
other ffbisect commands, revisions that do not contain the needed
tools are skipped.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-07-24 01:24:23 +02:00
yang
6a2bad2c4f dsputil_mmx: fix incorrect assembly code
In file libavcodec/x86/dsputil_mmx.c, function ff_put_pixels_clamped_mmx(), there are two assembly code blocks. In the first block (in the unrolled loop), the instructions "movq 8%3, %%mm1 \n\t" etc have problem.
For above instruction, it is clear what the programmer wants: a load from p + 8. But this assembly code doesn’t guarantee that. It only works if the compiler puts p in a register to produce an instruction like this: “movq 8(%edi), %mm1”. During compiler optimization, it is possible that the compiler will be able to constant propagate into p. Suppose p = &x[10000]. Then operand 3 can become 10000(%edi), where %edi holds &x. And the instruction becomes “movq 810000(%edx)”. That is, it will stride by 810000 instead of 8.
This will cause the segmentation fault.
This error was fixed in the second block of the assembly code, but not in the unrolled loop.

How to reproduce:
This error is exposed when we build the ffmpeg using Intel C++ Compiler, IPO+PGO optimization. The ffmpeg was crashed when decoding a mjpeg video.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 00:55:05 +02:00
Diego Biurrun
6b80142144 build: Skip compiling rtmpdh.h if ffrtmpcrypt protocol is not enabled
The ffrtmpcrypt protocol depends on external libraries, which are
also required to compile the header file.
2012-07-24 00:21:39 +02:00
Michael Niedermayer
dc31b84cbf rtmpproto: fix compilation without optimizations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-24 00:11:14 +02:00
Martin Storsjö
c66495c6d7 configure: Add a dependency on https for rtmpts
The rtmpts protocol uses https implicitly, via the ffrtmphttp
protocol, but the ffrtmphttp protocol is also useable for plain
rtmpt without https, so the dependency needs to be added here instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-24 00:06:07 +02:00
Diego Biurrun
816ff352a3 doc: Add Git configuration section 2012-07-23 23:56:22 +02:00
Michael Niedermayer
5a9fa84585 cavsdec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 23:54:13 +02:00
Michael Niedermayer
bb1e0e80b0 libavcodec/bitstream: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 23:54:13 +02:00
Paul B Mahol
3933782735 cosmetics: iff: split very long line
Also while here sort chunk ids.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-23 21:46:28 +00:00
Carl Eugen Hoyos
d147aedb6b Fix typo in v410 decoder. 2012-07-23 23:44:13 +02:00
Martin Storsjö
6c1ed45483 configure: Add a dependency on https for rtmpts
The rtmpts protocol uses https implicitly, via the ffrtmphttp
protocol, but the ffrtmphttp protocol is also useable for plain
rtmpt without https, so the dependency needs to be added here instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-24 00:43:27 +03:00
Adriano Pallavicino
999c63e4ca rtp: Only choose static payload types if the sample rate and channels are right
If using a different sample rate or number of channels, use a dynamic
payload type instead, where the parameters are passed in the SDP.

G722 is a special case where the normal rules don't apply.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-24 00:42:58 +03:00
Paul B Mahol
c9a96ec3c7 cosmetics: iff: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-23 21:00:17 +00:00
Nicolas George
ddcb99bb51 vf_deshake: set cur_buf to NULL.
Fix a segfault.
2012-07-23 22:44:25 +02:00
Michael Niedermayer
6d4c97bb85 fate: enable fate-vc1_sa10143
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 22:12:12 +02:00
Paul B Mahol
ebe846fa73 vf_colormatrix: add missing semicolon
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-23 19:58:13 +00:00
Michael Niedermayer
2cb4d51654 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  v410dec: Implement explode mode support
  zerocodec: fix direct rendering.
  wav: init st to NULL to avoid a false-positive warning.
  wavpack: set bits_per_raw_sample for S32 samples to properly identify 24-bit
  h264: refactor NAL decode loop
  RTMPTE protocol support
  RTMPE protocol support
  rtmp: Add ff_rtmp_calc_digest_pos()
  rtmp: Rename rtmp_calc_digest to ff_rtmp_calc_digest and make it global
  swscale: add missing HAVE_INLINE_ASM check.
  lavfi: place x86 inline assembly under HAVE_INLINE_ASM.
  vc1: Add a test for interlaced field pictures
  swscale: Mark all init functions as av_cold
  swscale: x86: Drop pointless _mmx suffix from filenames
  lavf: use conditional notation for default codec in muxer declarations.
  swscale: place inline assembly bilinear scaler under HAVE_INLINE_ASM.
  dsputil: ppc: cosmetics: pretty-print
  dsputil: x86: add SHUFFLE_MASK_W macro
  configure: respect CC_O setting in check_cc

Conflicts:
	Changelog
	configure
	libavcodec/v410dec.c
	libavcodec/zerocodec.c
	libavformat/asfenc.c
	libavformat/version.h
	libswscale/utils.c
	libswscale/x86/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 21:25:09 +02:00
Justin Ruggles
7e15df7551 swr: resampling: add filter type and Kaiser window beta to AVOptions 2012-07-23 19:23:39 +02:00
Derek Buitenhuis
d04c5293ce v410dec: Implement explode mode support
Try and decode broken files, but still fail if explode
mode is enabled.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-23 11:36:48 -04:00
Reimar Döffinger
6c8fdfc5e5 zerocodec: fix direct rendering.
Set picture type before calling get_buffer.
This allows the DR application to make better decisions.
It also fixes a resource leak in case of missing reference frames
since it would call get_buffer but never release_buffer.
Also use FFSWAP to ensure that the AVFrame is properly initialized
in the next get_buffer (in particular that data[0] is NULL).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-23 11:35:21 -04:00
Clément Bœsch
61884b9d1b wav: init st to NULL to avoid a false-positive warning.
If st is NULL, it means no 'fmt ' tag is found, but 'data' tag (which
needs a previous 'fmt ' tag to be parsed correctly and st initialized)
check will make sure st is never dereferenced in that case.

Fixes warning:
    libavformat/wav.c: In function ‘wav_read_header’:
    libavformat/wav.c:499:44: warning: ‘st’ may be used uninitialized in this function [-Wmaybe-uninitialized]

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-23 11:34:08 -04:00
Hendrik Leppkes
37c6ad2345 wavpack: set bits_per_raw_sample for S32 samples to properly identify 24-bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-23 11:33:58 -04:00
Nicolas George
a7ac05ce2f src_movie: implement multiple outputs.
The audio and video code paths were too different,
most of the decoding has been rewritten.
2012-07-23 17:14:59 +02:00
Nicolas George
05776119c1 buffersrc: use avfilter_get_buffer_ref_from_frame. 2012-07-23 17:14:59 +02:00
Nicolas George
5c5f75b92b lavfi: add avfilter_get_buffer_ref_from_frame. 2012-07-23 17:14:59 +02:00
Ronald S. Bultje
58db34aa1e h264: refactor NAL decode loop
Write out the NAL decoding loops in full so that they are easier
to parse for a preprocessor without it having to be aware of macros
or other such things in C code.

This also makes the code more readable.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-23 16:27:53 +02:00
Peter Ross
a8fb7690d9 tls: user documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 15:57:42 +02:00
Samuel Pitoiset
08cd95e8a3 RTMPTE protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:09 +03:00
Samuel Pitoiset
acd554c103 RTMPE protocol support
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPE protocol implementation uses ffrtmpcrypt:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:07 +03:00
Samuel Pitoiset
0e31088b6c rtmp: Add ff_rtmp_calc_digest_pos()
This function is used for calculating digest position for RTMP handshake
packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:05 +03:00
Samuel Pitoiset
3505d5574e rtmp: Rename rtmp_calc_digest to ff_rtmp_calc_digest and make it global
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:03 +03:00
Stefano Sabatini
7afd42d9f2 lavfi/showwaves: do not set on outlink->out_buf the sent video frame
The video frame reference is passed along the filterchain, and is not
possessed anymore by the filter. If out_buf is not set to NULL, it will
be freed by ff_end_frame() causing a crash.
2012-07-23 15:10:19 +02:00
Peter Ross
cc12a94c36 iff: set ham palette alpha to 0xFF
This addresses the problem that some HAM pictures were decoded with
complete transparency as described in the 'iff: ANIM suppport ' thread
on ffmpeg-devel. The decoder was already setting alpha correctly for
CMAP palettes, just not HAM palettes.
2012-07-23 14:04:47 +02:00
Michael Niedermayer
67a304985e vf_overlay: fix missed return
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 13:44:05 +02:00
Nicolas George
612307978d lavfi: change "transmedia" into "multimedia". 2012-07-23 11:44:48 +02:00
Nicolas George
be33da9a1d lavfi: add concat filter. 2012-07-23 11:34:20 +02:00
Nicolas George
1cadab6023 ffmpeg: select input file based on output time.
Filters can change the timings, so input files must not
necessarily be read at the same rythm. This patch select
the input file to read based on the timestamp at output
instead of input. With complex filter graphs, finding the
input for a given output is done by making a request and
checking to what buffer source it has been forwarded.
2012-07-23 10:59:41 +02:00
Ronald S. Bultje
3b175384bb swscale: add missing HAVE_INLINE_ASM check.
The function called in this block is under HAVE_INLINE_ASM itself also.
2012-07-22 19:46:47 -07:00
Ronald S. Bultje
3124886554 lavfi: place x86 inline assembly under HAVE_INLINE_ASM.
This allows compiling this code using compilers that do not understand
gcc-style inline assembly.
2012-07-22 19:44:06 -07:00
Mashiat Sarker Shakkhar
8d2e3fee0b vc1: Add a test for interlaced field pictures
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-22 22:28:30 -04:00
Michael Niedermayer
f4451d2e75 libschroedingerenc: remove assert related to the old API.
The assert is no longer needed as the buffer is allocated after
the size is known now.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 04:20:15 +02:00
Michael Niedermayer
d014e19515 libvorbisenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 04:00:23 +02:00
Michael Niedermayer
72a9e646c3 libschroedingerenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 04:00:01 +02:00
Michael Niedermayer
62514ca012 g723.1dec: Make postfilter user switchable
Code from qatar (55c3a4f617)
Author of the code was probably Mohamed or Kostya

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 03:57:04 +02:00
Michael Niedermayer
1eb1392690 g723.1: various cosmetics and changes that should have no user vissible effect.
code from qatar (55c3a4f617)
Author of the code was probably Mohamed or Kostya

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 03:55:28 +02:00
Diego Biurrun
5a6e3c039c swscale: Mark all init functions as av_cold 2012-07-23 01:30:05 +02:00
Diego Biurrun
16d2a1a51c swscale: x86: Drop pointless _mmx suffix from filenames
The files do not contain only MMX code.
2012-07-23 01:30:04 +02:00
Ronald S. Bultje
fd48721849 lavf: use conditional notation for default codec in muxer declarations.
This removes the use of macro nesting in these code constructs, which
makes it easier to parse in pre-processors.
2012-07-22 16:10:21 -07:00
Ronald S. Bultje
a6e922ffa2 swscale: place inline assembly bilinear scaler under HAVE_INLINE_ASM. 2012-07-22 16:08:13 -07:00
Michael Niedermayer
d486a6eae9 Merge remote-tracking branch 'dwbuiten/master'
* dwbuiten/master:
  wav: Add check for 'fmt' tag in SMV code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-23 00:00:03 +02:00
Michael Niedermayer
88beb2df98 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: fix the asyncts test
  build: Drop gcc-specific warning flag from header compilation rule
  FATE: add a test for the asyncts audio filter.
  matroskadec: return more correct error code on read error.
  buffersrc: check ff_get_audio_buffer() for errors.
  lavfi: check all ff_get_video_buffer() calls for errors.
  lavfi: check all avfilter_ref_buffer() calls for errors.
  vf_select: avoid an unnecessary avfilter_ref_buffer().
  buffersrc: avoid creating unnecessary buffer reference
  lavfi: use avfilter_unref_bufferp() where appropriate.
  vf_fps: add more error checks.
  vf_fps: fix a memleak on malloc failure.
  lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors
  lavfi: add error handling to end_frame().
  lavfi: add error handling to draw_slice().
  lavfi: add error handling to start_frame().

Conflicts:
	Makefile
	ffplay.c
	libavfilter/buffersrc.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_frei0r.c
	libavfilter/vf_hflip.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/video.c
	libavfilter/vsrc_color.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 23:56:21 +02:00
Derek Buitenhuis
5ab855777d wav: Add check for 'fmt' tag in SMV code
If there is a 'SMV0' tag, but no 'fmt' tag, it is possible that
'st' got used as NULL.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-22 17:46:26 -04:00
Justin Ruggles
a35738f424 dsputil: ppc: cosmetics: pretty-print 2012-07-22 17:38:55 -04:00
Jason Garrett-Glaser
85a3c19ed1 dsputil: x86: add SHUFFLE_MASK_W macro
Simplifies pshufb masks that operate on words.
2012-07-22 16:56:58 -04:00
Michael Niedermayer
9023de342f Merge commit '1470ce21cec5ee26e106e2a884c26bbf84e5aaea'
* commit '1470ce21cec5ee26e106e2a884c26bbf84e5aaea':
  Bump libavcodec and libavformat minor versions for G.723.1 decoder and demuxer
  G.723.1 demuxer and decoder
  Add a shift parameter to celp_lp_synthesis_filter()
  libopenjpeg: K&R formatting cosmetics
  yadif: use emms_c() instead of inline assembly for emms invocations.
  ac3: don't use different names for option tables in the template file.
  lavfi: use const for AVFilterPad declarations in all filters.
  adpcm: don't duplicate identical AVSampleFmt array for each encoder.
  configure: cosmetics: Group test dependencies together
  configure: add more passthrough flags in tms470 filter
  configure: move flag filtering functions out of if/else blocks

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/Makefile
	libavcodec/ac3enc_fixed.c
	libavcodec/allcodecs.c
	libavcodec/eac3enc.c
	libavcodec/g723_1.c
	libavcodec/g723_1_data.h
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/v210dec.h
	libavcodec/version.h
	libavfilter/af_anull.c
	libavfilter/asrc_anullsrc.c
	libavfilter/f_settb.c
	libavfilter/fifo.c
	libavfilter/split.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_blackframe.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_copy.c
	libavfilter/vf_crop.c
	libavfilter/vf_cropdetect.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_fieldorder.c
	libavfilter/vf_format.c
	libavfilter/vf_frei0r.c
	libavfilter/vf_gradfun.c
	libavfilter/vf_hflip.c
	libavfilter/vf_hqdn3d.c
	libavfilter/vf_libopencv.c
	libavfilter/vf_lut.c
	libavfilter/vf_null.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_pixdesctest.c
	libavfilter/vf_scale.c
	libavfilter/vf_select.c
	libavfilter/vf_setpts.c
	libavfilter/vf_showinfo.c
	libavfilter/vf_slicify.c
	libavfilter/vf_transpose.c
	libavfilter/vf_unsharp.c
	libavfilter/vf_vflip.c
	libavfilter/vf_yadif.c
	libavfilter/vsrc_color.c
	libavfilter/vsrc_testsrc.c
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/g723_1.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 22:18:18 +02:00
Mans Rullgard
b2704a65d5 configure: respect CC_O setting in check_cc
Use compiler-specific replacements for the -o flag in check_cc.
This makes tests work properly with compilers using non-standard
flags.

The tms470 flags are updated to work with this scheme.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-22 21:14:01 +01:00
Peter Ross
4f4eb380f0 tls: TLS/SSL server
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 19:12:15 +02:00
Peter Ross
d1146d67ca tls: parse uri path options to underlying tcp URLContext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 19:12:15 +02:00
Peter Ross
b2460858f6 tls: verify option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 19:12:15 +02:00
Peter Ross
973a758f52 tls: cafile, cert, key options
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 19:12:15 +02:00
Nicolas George
9c1d649ce5 overlay: clear cur_buf on main input link.
A reference is kept in the queue and freed after use.
2012-07-22 18:35:28 +02:00
Anton Khirnov
df53a4a7c1 FATE: fix the asyncts test
Nellymoser is float, so use oneoff comparison instead of md5.
2012-07-22 17:58:56 +02:00
Peter Ross
1be55c82a5 av_url_split: dont let '/' char whallop '?' char
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 16:26:43 +02:00
Nicolas George
21fb7ff35b doc: declare encoding for texi2html.
It adds the following header to the HTML files:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
which helps some browsers to display correctly the few non-ASCII
characters in the doc.
2012-07-22 12:48:57 +02:00
Diego Biurrun
6bd37e0b28 build: Drop gcc-specific warning flag from header compilation rule
The flag was added to avoid excessive warning spam, but nowadays those
warnings no longer occur in such large numbers as to require silencing.
Besides, gcc-specific flags do not belong in the Makefiles.
2012-07-22 12:36:30 +02:00
Steven Robertson
82ecae8a70 lavfi: add alphaextract and alphamerge filters
These filters are designed for storing and transmitting video sequences
with alpha using higher-efficiency codecs such as x264 which don't
natively support an alpha channel. 'alphaextract' takes an input stream
with an alpha channel and returns a video containing just the alpha
component as a grayscale value; 'alphamerge' takes an RGB or YUV stream
and adds an alpha channel recovered from a second grayscale stream.

Signed-off-by: Steven Robertson <steven@strobe.cc>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-22 12:17:34 +02:00
Stefano Sabatini
8c2ce16f93 doc/filter_design: fix a few typos 2012-07-22 12:16:18 +02:00
Stefano Sabatini
c0b91348fe lavd/caca: create display *after* checking dither options
Avoid fastidious creation and immediate destroy of the display in case
one of the dither options fails to be set.

Also add NULL checks in write_trailer(), which are now necessary since
the function can be called when not all the components have been
initialized.
2012-07-22 10:32:21 +02:00
Stefano Sabatini
9ce0e19ab6 lavd/caca: provide more meaningful feedback if fails to set a dither option 2012-07-22 10:32:15 +02:00
Stefano Sabatini
fa71471cef lavd/caca: rename "colors" option to "color"
More consistent with libcaca function names. Should not harm since the
device was added less than one day ago.
2012-07-22 10:31:33 +02:00
Stefano Sabatini
d510527885 lavd/caca: sort arguments for -list_dither 2012-07-22 10:28:23 +02:00
Stefano Sabatini
295e0e4b4f lavd/caca: extend error message for -list_dither option 2012-07-22 10:28:23 +02:00
Stefano Sabatini
2fd880449a doc/outdevs: extend documentation for caca -list* options 2012-07-22 10:28:22 +02:00
Anton Khirnov
73cd131ebc FATE: add a test for the asyncts audio filter. 2012-07-22 10:14:16 +02:00
Steven Robertson
71311d697a Fix yuv4mpeg parsing of 'mono16' files.
'mono' came before 'mono16' in the list of colorspace alternatives,
causing files of the latter type to be parsed as the former.
2012-07-22 09:59:25 +02:00
Anton Khirnov
721113bed2 matroskadec: return more correct error code on read error. 2012-07-22 09:14:05 +02:00
Anton Khirnov
a8a2271fe0 buffersrc: check ff_get_audio_buffer() for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov
8f3a3ce730 lavfi: check all ff_get_video_buffer() calls for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov
1dc4205018 lavfi: check all avfilter_ref_buffer() calls for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov
80e4ed279b vf_select: avoid an unnecessary avfilter_ref_buffer(). 2012-07-22 09:14:05 +02:00
Anton Khirnov
785fa50f0b buffersrc: avoid creating unnecessary buffer reference 2012-07-22 09:14:05 +02:00
Anton Khirnov
02ac7311c8 lavfi: use avfilter_unref_bufferp() where appropriate. 2012-07-22 09:14:05 +02:00
Anton Khirnov
043800a968 vf_fps: add more error checks. 2012-07-22 09:14:05 +02:00
Anton Khirnov
d515e9c225 vf_fps: fix a memleak on malloc failure. 2012-07-22 09:14:05 +02:00
Anton Khirnov
3825b52688 lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors 2012-07-22 09:14:05 +02:00
Anton Khirnov
d4f89906e3 lavfi: add error handling to end_frame(). 2012-07-22 09:14:05 +02:00
Anton Khirnov
e9b992d035 lavfi: add error handling to draw_slice(). 2012-07-22 09:14:05 +02:00
Anton Khirnov
ebc8d97481 lavfi: add error handling to start_frame(). 2012-07-22 09:14:04 +02:00
Kostya Shishkov
1470ce21ce Bump libavcodec and libavformat minor versions for G.723.1 decoder and demuxer 2012-07-22 08:43:12 +02:00
Mohamed Naufal Basheer
55c3a4f617 G.723.1 demuxer and decoder
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-22 07:58:54 +02:00
Mohamed Naufal Basheer
8aac5585fa Add a shift parameter to celp_lp_synthesis_filter()
This is intended for reuse by the G.723.1 decoder

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-22 07:58:53 +02:00
Michael Niedermayer
2f48dff455 atrac3: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 05:23:27 +02:00
Michael Niedermayer
86af292883 kbdwin: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 05:18:01 +02:00
Michael Niedermayer
32c3038734 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: swscale: Place inline assembly code under appropriate #ifdefs
  rtsp: remove terminal comma in FF_RTP_FLAG_OPTS macro.
  configure: Remove redundant RTMPT/RTMPTS dependencies
  configure: add filtering of host cflags/ldflags
  configure: initialise all flag filters at the same place
  configure: add filtering of linker flags
  configure: name some variables more consistently
  configure: remove filter_cppflags
  configure: set icc_version where it is needed
  mpegenc: remove disabled code

Conflicts:
	configure
	libavformat/movenc.c
	libswscale/x86/swscale_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 05:05:02 +02:00
Luca Barbato
51a5ddfa01 libopenjpeg: K&R formatting cosmetics 2012-07-22 04:05:45 +02:00
Paul B Mahol
1aeb87fa07 tscc: employ more meaningful return values
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-22 01:21:53 +00:00
Ronald S. Bultje
731fa116b4 yadif: use emms_c() instead of inline assembly for emms invocations. 2012-07-21 17:16:49 -07:00
Michael Niedermayer
7c71f8e0ec pthread: mark lockless thread synchronization variables as volatile
No speed difference was meassureable

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-22 02:07:02 +02:00
Ronald S. Bultje
b170b323e3 ac3: don't use different names for option tables in the template file.
The variables which are declared in the teplate file are static and
therefore there is no symbol clash.
2012-07-21 16:42:36 -07:00
Ronald S. Bultje
3db407038e lavfi: use const for AVFilterPad declarations in all filters. 2012-07-21 16:31:15 -07:00
Ronald S. Bultje
98041afb5f adpcm: don't duplicate identical AVSampleFmt array for each encoder. 2012-07-21 16:31:15 -07:00
Diego Biurrun
388ff813e7 configure: cosmetics: Group test dependencies together 2012-07-21 22:49:31 +02:00
Mans Rullgard
ad93dccb64 configure: add more passthrough flags in tms470 filter
This is in preparation for following changes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 21:33:04 +01:00
Mans Rullgard
d0c6d424f4 configure: move flag filtering functions out of if/else blocks
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 21:33:01 +01:00
Ronald S. Bultje
b2668c85e9 x86: swscale: Place inline assembly code under appropriate #ifdefs
Fixes compilation for compilers that do not support gcc inline assembly.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-21 22:22:58 +02:00
Michael Niedermayer
9e1508f1e7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavfi: unref AVFilterLink.out_buf in ff_end_frame().
  lavfi: unref AVFilterLink.cur_buf in ff_end_frame().
  vsrc_testsrc: avoid an unnecessary avfilter_ref_buffer().
  vf_slicify: clear AVFilterLink.cur_buf in start_frame().
  vf_settb: simplify start_frame().
  vf_fieldorder: don't give up its own reference to the output buffer.
  vf_pad: don't give up its own reference to the output buffer.
  vf_overlay: don't access a buffer reference that's been given away.
  vf_drawtext: don't give up its own reference to the input buffer.
  vf_gradfun: don't store two pointers to one AVFilterBufferRef.
  vf_delogo: don't store two pointers to one AVFilterBufferRef.
  vf_aspect: clear AVFilterLink.cur_buf in start_frame().
  lavfi: add avfilter_unref_bufferp()

Conflicts:
	doc/APIchanges
	libavfilter/avfilter.h
	libavfilter/buffer.c
	libavfilter/vf_aspect.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 22:20:49 +02:00
Michael Niedermayer
f7e0c18549 vf_overlay: prevent premature freeing of cur_buf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 22:17:57 +02:00
Michael Niedermayer
0ecaa447f6 vf_overlay: use unref_bufferP()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 22:17:53 +02:00
Michael Niedermayer
dc49105c7f sink_buffer: prevent prematurely freeing of cur_buf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 22:17:36 +02:00
Michael Niedermayer
1890853976 vf_thumbnail: prevent premature freeing of ref
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 22:17:31 +02:00
Michael Niedermayer
5aab307f30 vf_colormatrix: avoid using out_buf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 22:17:28 +02:00
Ronald S. Bultje
5354a904fe rtsp: remove terminal comma in FF_RTP_FLAG_OPTS macro.
This makes usage of the macro look more natural when
used with array entries.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-21 15:35:01 -04:00
Reimar Döffinger
313d1981ad zerocodec: fix direct rendering.
Set picture type before calling get_buffer.
This allows the DR application to make better decisions.
It also fixes a resource leak in case of missing reference frames
since it would call get_buffer but never release_buffer.
Also use FFSWAP to ensure that the AVFrame is properly initialized
in the next get_buffer (in particular that data[0] is NULL).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-07-21 21:11:37 +02:00
Samuel Pitoiset
bdbb21b186 configure: Remove redundant RTMPT/RTMPTS dependencies
The incompatibility with librtmp is already expressed in the ffrtmphttp
protocol dependency declaration, which both RTMPT and RTMPTS depend on.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-21 18:29:05 +02:00
Mans Rullgard
6c3fa06a85 configure: add filtering of host cflags/ldflags
This is in preparation for supporting host compilers with
non-standard flags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 17:18:55 +01:00
Paul B Mahol
a36f19e942 libopenjpegdec: set cp_reduce value only once
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-21 16:12:04 +00:00
Paul B Mahol
881e0de640 iff: pass context to av_log_ask_for_sample
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-21 16:06:36 +00:00
Mans Rullgard
68485d1f32 configure: initialise all flag filters at the same place
This is more consistent, and doing it earlier is harmless.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:54:49 +01:00
Mans Rullgard
64933b6c94 configure: add filtering of linker flags
This allows filtering of linker flags the same was as already
supported for CFLAGS.  The filter must be initialised to 'echo'
early since it is invoked by --extra-ldflags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:54:16 +01:00
Mans Rullgard
01d31e16f1 configure: name some variables more consistently
Name variables pertaining to various types of flags with 'cflags' etc
as prefix instead of suffix.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:49:45 +01:00
Mans Rullgard
cd52ec95bb configure: remove filter_cppflags
This is not used and the current design would not work properly
if mixing tools needing different filters.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:49:30 +01:00
Mans Rullgard
07e3f9af9f configure: set icc_version where it is needed
This variable is only used once, so setting it there is clearer.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:48:42 +01:00
Diego Biurrun
1cf6e7dd37 mpegenc: remove disabled code 2012-07-21 16:34:29 +02:00
Paul B Mahol
ad69e778b7 iff: remove dupe ID_ANNO definition
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-21 10:30:12 +00:00
Stefano Sabatini
beef7a6328 doc/outdevs: fix @code{} syntax in caca device docs 2012-07-21 10:17:02 +02:00
Stefano Sabatini
f1a7124d30 Changelog: add entry for the caca device 2012-07-21 10:15:44 +02:00
Michael Niedermayer
17352ad315 alacdec: fix packed sample output with 5.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 06:39:01 +02:00
Piotr Bandurski
3800facac6 riff: add G723_1 wav tag
Reveiwed-by: compn <tempn@twmi.rr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 05:48:31 +02:00
Marton Balint
b99e9ee938 ac3dec: set decode_error_flags field in ac3 codec
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 05:48:31 +02:00
Marton Balint
016a472009 avcodec: add decode_error_flags field to AVFrame
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 05:48:31 +02:00
Paul B Mahol
296c1b6bd1 libcaca output device 2012-07-21 03:33:02 +00:00
Michael Niedermayer
3c033d00f5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libopenjpeg: introduce lowres and lowqual private options
  FATE: add a test for flac cover art.
  cafdec: allow larger ALAC magic cookie
  alac: fix channel pointer assignment for 24 and 32-bit

Conflicts:
	libavcodec/alac.c
	libavcodec/libopenjpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-21 04:25:11 +02:00
Paul B Mahol
85761efa95 tiertexseq: remove redundant string from log message
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-20 19:44:26 +00:00
Anton Khirnov
4c9080a7ef lavfi: unref AVFilterLink.out_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
2012-07-20 21:12:49 +02:00
Nicolas George
fd58678b86 v4l2: remove call to v4l2_fd_open.
v4l2_fd_open is already called at the end of v4l2_open;
calling a second time leaks structures inside libv4l2.

Fix trac ticket #1560.
2012-07-20 21:12:10 +02:00
Anton Khirnov
07bad27810 lavfi: unref AVFilterLink.cur_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
2012-07-20 21:10:42 +02:00
Anton Khirnov
533fd5b5b4 vsrc_testsrc: avoid an unnecessary avfilter_ref_buffer(). 2012-07-20 21:09:57 +02:00
Anton Khirnov
5b50ae94e6 vf_slicify: clear AVFilterLink.cur_buf in start_frame().
The buffer is passed on to the next filter, so we shouldn't keep any
pointers to it.
2012-07-20 21:09:48 +02:00
Anton Khirnov
0393af4f0b vf_settb: simplify start_frame().
Avoid pointless filter ref/unref. Just use the reference passed to
start_frame().
2012-07-20 21:08:50 +02:00
Anton Khirnov
9203fa0b32 vf_fieldorder: don't give up its own reference to the output buffer. 2012-07-20 21:08:26 +02:00
Anton Khirnov
f493c644cd vf_pad: don't give up its own reference to the output buffer. 2012-07-20 21:08:13 +02:00
Anton Khirnov
ad8b6326aa vf_overlay: don't access a buffer reference that's been given away. 2012-07-20 21:07:51 +02:00
Anton Khirnov
7155763b78 vf_drawtext: don't give up its own reference to the input buffer.
Directly forwarding the input buffer to the next filter means that
drawtext no longer owns any references to it and thus shouldn't refer to
it in any way.
2012-07-20 21:07:32 +02:00
Anton Khirnov
d19499c796 vf_gradfun: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:07:11 +02:00
Anton Khirnov
0fe010a36f vf_delogo: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:06:49 +02:00
Anton Khirnov
51a8049be8 vf_aspect: clear AVFilterLink.cur_buf in start_frame().
The buffer is passed on to the next filter, so we shouldn't keep any
pointers to it.
2012-07-20 21:06:40 +02:00
Robert Nagy
b70d89a033 lavfi: add avfilter_unref_bufferp()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-20 21:06:18 +02:00
Paul B Mahol
b040ffc84c exr: display warning if multiple compression attributes are found
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-20 18:13:25 +00:00
Paul B Mahol
01f76a779c exr: merge common code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-20 18:13:25 +00:00
Paul B Mahol
a2dab7512e exr: compression attribute is mandatory
Do not continue decoding if one is missing.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-20 18:13:25 +00:00
chinshou
55de89e25d cmdutils/alloc_buffer: fix typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 16:42:29 +02:00
Joseph Artsimovich
99c4e91dfa dnxhd: Fix 10-bit DNxHD quant matrices
Convert them to zigzag order, as the rest of them are.

When I was adding support for 10-bit DNxHD, I just copy-pasted the
missing quant matrices from the spec. Now it turns out the existing
matrices in dnxhddata.c were in zigzag order. This resulted in wrong
quantization for 10-bit DNxHD. The attached patch fixes the problem by
converting 10-bit quant matrices to zigzag order.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 15:24:27 +02:00
Michael Niedermayer
a4f94f24b4 udp: fix compilation when HAVE_PTHREAD_CANCEL isnt defined
This happens with for example mplayer.
Fixing it in ffmpeg allows new ffmpeg to be compiled with older mplayer
which would not be possible if the fix was just in mplayer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 14:58:11 +02:00
Michael Niedermayer
7c6ebe2b97 alac: drop packed sample output support with the next major bump
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 14:11:09 +02:00
Luca Barbato
ce64e5bfd1 libopenjpeg: introduce lowres and lowqual private options
OpenJPEG can decode in lower resolution or decode only a number
of enhancement layers.
2012-07-20 13:23:18 +02:00
Nicolas George
cb6a20fa56 lavfi: add FF_*LINK_IDX convenience macros. 2012-07-20 13:16:24 +02:00
Nicolas George
461f506f7b lavc: set best_effort_timestamp for audio too. 2012-07-20 13:16:23 +02:00
Nicolas George
97f86680eb lavfi: make copy_buffer_ref common. 2012-07-20 13:16:23 +02:00
Nicolas George
b0629366a2 lavf: make cmdutils's check_stream_specifier public.
The new function is called avformat_match_stream_specifier()
and does not include logging the error message.
2012-07-20 13:16:23 +02:00
Stefano Sabatini
3bd3e46c91 doc/avtools-common-opts: fix a few typos in the "Stream specifiers" section 2012-07-20 12:56:28 +02:00
Nicolas George
b34ce5a26b faq: explain dependency problems with static libs. 2012-07-20 11:40:26 +02:00
Nicolas George
30549294ef matroska: add support for Opus.
Opus in Matroska is still a draft.
2012-07-20 11:19:01 +02:00
Nicolas George
a6cf296bd9 lavc: Opus decoder using libopus. 2012-07-20 11:18:58 +02:00
Nicolas George
e62fd6619f oggdec: add support for Opus codec.
This patch also introduces CODEC_ID_OPUS.
2012-07-20 11:16:52 +02:00
Nicolas George
bf8ce5a5c3 ffmpeg: probe buffersinks once more after EOF.
Reap buffers stored in the buffer sinks even when
the avfilter_graph_request_oldest() loop only returns EOF.

avfilter_graph_request_oldest() can cause frames to arrive
to the sinks even when it returns EOF.
2012-07-20 10:18:45 +02:00
Anton Khirnov
5eb9c495af FATE: add a test for flac cover art. 2012-07-20 10:17:25 +02:00
Michael Niedermayer
5e99df019a alacdec: several players have problems with planar audio still thus temporary put packed output back by default
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 04:48:25 +02:00
Michael Niedermayer
e2c96fbf3e ffplay: fix warning that i just mistakenly introduced
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 03:47:11 +02:00
Michael Niedermayer
cdafec69ce ffplay: fix planar audio
This caused ALAC to fail since the last merge

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-20 03:41:17 +02:00
Justin Ruggles
1749e12f45 cafdec: allow larger ALAC magic cookie
It already skips any extra bytes at the end, and apparently there are some
samples in the wild with larger 'kuki' chunks.
2012-07-19 20:14:29 -04:00
Justin Ruggles
4cd22b7738 alac: fix channel pointer assignment for 24 and 32-bit
Needs to be done separately for each element.
2012-07-19 20:14:29 -04:00
Stefano Sabatini
7e17389c1e lavd/sdl: use verb in options help message
An help message tells what an option does, not what its argument is.
2012-07-19 23:56:59 +02:00
Nicolas George
885fc05865 lavf: count skipped samples for initial timestamps.
If skip_samples is set and timestamps are synthesized using durations,
make them start at -skip_samples (rescaled) instead of 0,
so that the timestamp of the first undiscarded sample is 0.
2012-07-19 23:41:03 +02:00
Nicolas George
cd08900393 lavc: update pkt_duration for skipped samples.
Also: factor the the computation of the timestamp difference.
2012-07-19 23:41:03 +02:00
Nicolas George
d853ed46b1 Revert "ffmpeg: set pkt_timebase"
This reverts commit 744bd8d08c.

pkt_timebase is now set by av_codec_set_pkt_timebase.
If some demuxer set AVStream.time_base directly,
it need to be fixed. There is a warning to detect it.
2012-07-19 23:41:03 +02:00
Nicolas George
0e57d79b0c lavf: set pkt_timebase at the same time as stream->time_base. 2012-07-19 23:41:03 +02:00
Nicolas George
0e18ac5611 lavc: warn when impossible to adjust timestamps for skipped samples.
It is likely to happen if pkt_timebase was not set.
2012-07-19 23:41:03 +02:00
Nicolas George
11ce1cf9a7 lavc: add debug info about skipped samples. 2012-07-19 23:41:03 +02:00
Michael Niedermayer
e4c00aca96 Merge remote-tracking branch 'qatar/master'
* qatar/master: (38 commits)
  alac: cosmetics: general pretty-printing and comment clean up
  alac: calculate buffer size outside the loop in allocate_buffers()
  alac: change some data types to plain int
  alac: cosmetics: rename some variables and function names
  alac: multi-channel decoding support
  alac: split element parsing into a separate function
  alac: support a read sample size of up to 32
  alac: output in planar sample format
  alac: add 32-bit decoding support
  alac: simplify channel interleaving
  alac: use AVPacket fields directly in alac_decode_frame()
  alac: fix check for valid max_samples_per_frame
  alac: use get_sbits() to read LPC coefficients instead of casting
  alac: move the current samples per frame to the ALACContext
  alac: avoid using a double-negative when checking if the frame is compressed
  alac: factor out output_size check in predictor_decompress_fir_adapt()
  alac: factor out loading of next decoded sample in LPC prediction
  alac: use index into buffer_out instead of incrementing the pointer
  alac: simplify lpc coefficient adaptation
  alac: reduce the number of local variables needed in lpc prediction
  ...

Conflicts:
	libavcodec/alac.c
	libavformat/cafdec.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-19 23:31:04 +02:00
Stefano Sabatini
a8d8e868c6 lavf/udp: warn in case the circular_buffer_size or overrun_nonfatal options are not supported
They are only supported if pthread is available.
2012-07-19 22:48:09 +02:00
Stefano Sabatini
e1422940f2 doc/protocols: add a note regarding the circular RX UDP buffer 2012-07-19 22:31:41 +02:00
Stefano Sabatini
6b80f75848 doc/protocols: apply misc fixes to the UDP protocol section 2012-07-19 22:31:41 +02:00
Stefano Sabatini
dd13da67b2 doc/protocols: extend/clarify documentation for the buffer_size UDP option 2012-07-19 22:31:41 +02:00
Stefano Sabatini
469b9ce83f doc/protocols: document "fifo_size" and "overrun_nonfatal" UDP options
Address trac ticket #1511.
2012-07-19 22:31:41 +02:00
Michael Niedermayer
85044358f6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Print full compiler identification, not only version number
  flacdec: reverse lpc coeff order, simplify filter
  x86: dsputil: drop some unused CPU flag debug code

Conflicts:
	cmdutils.c
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-19 22:01:31 +02:00
Justin Ruggles
eeb55f5f2f alac: cosmetics: general pretty-printing and comment clean up 2012-07-19 13:26:48 -04:00
Justin Ruggles
f3e5a7844b alac: calculate buffer size outside the loop in allocate_buffers() 2012-07-19 13:26:48 -04:00
Justin Ruggles
bae83f2c74 alac: change some data types to plain int 2012-07-19 13:26:48 -04:00
Justin Ruggles
2aebac6918 alac: cosmetics: rename some variables and function names 2012-07-19 13:26:48 -04:00
Andrew D'Addesio
1b3ef155d7 alac: multi-channel decoding support
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-07-19 13:26:48 -04:00
Justin Ruggles
81c9e2e6d0 alac: split element parsing into a separate function
This will make multi-channel implementation simpler.
Based partially on a patch by Andrew D'Addesio <modchipv12@gmail.com>.
2012-07-19 13:26:48 -04:00
Justin Ruggles
cd632619d9 alac: support a read sample size of up to 32
Use get_bits_long() in decode_scalar().
Use unsigned int for decoded value.
2012-07-19 13:26:48 -04:00
Justin Ruggles
73dc0db486 alac: output in planar sample format
Avoids unneeded interleaving and allows for reusing the AVFrame output buffer
as the internal buffer for 24-bit and 32-bit sample size.
2012-07-19 13:26:48 -04:00
Justin Ruggles
6482bd8831 alac: add 32-bit decoding support 2012-07-19 13:26:48 -04:00
Andrew D'Addesio
6cda74c155 alac: simplify channel interleaving
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-07-19 13:26:48 -04:00
Justin Ruggles
5138ff143f alac: use AVPacket fields directly in alac_decode_frame() 2012-07-19 13:26:47 -04:00
Justin Ruggles
7a206eb32f alac: fix check for valid max_samples_per_frame 2012-07-19 13:26:47 -04:00
Justin Ruggles
1193d3fedd alac: use get_sbits() to read LPC coefficients instead of casting 2012-07-19 13:26:47 -04:00
Justin Ruggles
7a50ec6799 alac: move the current samples per frame to the ALACContext
This will simplify the multi-channel implementation.
2012-07-19 13:26:47 -04:00
Justin Ruggles
46043962ea alac: avoid using a double-negative when checking if the frame is compressed 2012-07-19 13:26:47 -04:00
Justin Ruggles
9a6c528e08 alac: factor out output_size check in predictor_decompress_fir_adapt() 2012-07-19 13:26:47 -04:00
Justin Ruggles
ebd4c3add1 alac: factor out loading of next decoded sample in LPC prediction 2012-07-19 13:26:47 -04:00
Justin Ruggles
a4ecd41442 alac: use index into buffer_out instead of incrementing the pointer 2012-07-19 13:26:47 -04:00
Justin Ruggles
f2515cd629 alac: simplify lpc coefficient adaptation 2012-07-19 13:26:47 -04:00
Justin Ruggles
abc4376b31 alac: reduce the number of local variables needed in lpc prediction 2012-07-19 13:26:47 -04:00
Justin Ruggles
01880d287b alac: simplify 1st order prediction and reading of warm-up samples 2012-07-19 13:26:46 -04:00
Justin Ruggles
d0c0bf0d3e alac: cosmetics: reindent after last commit 2012-07-19 13:26:46 -04:00
Justin Ruggles
79def4c523 alac: remove unneeded conditionals in predictor_decompress_fir_adapt() 2012-07-19 13:26:46 -04:00
Justin Ruggles
4bcd637dcb alac: use sizeof() instead of hardcoded data sizes 2012-07-19 13:26:46 -04:00
Justin Ruggles
91620a04f1 alac: make block_size signed
It does not need to be unsigned.
2012-07-19 13:26:46 -04:00
Justin Ruggles
2fc24b3273 alac: remove a duplicate local variable 2012-07-19 13:26:46 -04:00
Justin Ruggles
5177413d20 alac: conditionally set sign_modifier to 1
It is already unconditionally set to 0 prior to this, so we can modify it
only when needed.
2012-07-19 13:26:46 -04:00
Justin Ruggles
7e6593e977 alac: eliminate 2 unneeded local variables in bastardized_rice_decompress()
x_modified is just unnecessary, and final_val can be removed by simplifying
the unsigned-to-signed conversion.
2012-07-19 13:26:46 -04:00
Justin Ruggles
6fd8a28b59 alac: adjust conditions for updating entropy decoder history
avoids some unnecessary arithmetic in certain situations
2012-07-19 13:26:46 -04:00
Justin Ruggles
a06fdadd97 alac: cosmetics: reindent after last commit 2012-07-19 13:26:46 -04:00
Justin Ruggles
d9837434a9 alac: limit the rice param before passing to decode_scalar()
reduces the number of parameters to decode_scalar() and slightly simplifies
the code
2012-07-19 13:26:45 -04:00
Justin Ruggles
6e91f62256 alac: reduce the number of parameters to bastardized_rice_decompress()
Use the ALACContext fields directly instead.
2012-07-19 13:26:45 -04:00
Justin Ruggles
836e8b9ba0 alac: cosmetics: rename some ALACContext parameters 2012-07-19 13:26:45 -04:00
Justin Ruggles
2ac1737583 alac: clean up and update comments leftover from reverse-engineering 2012-07-19 13:26:45 -04:00
Justin Ruggles
3bab7cd128 avformat: move 'chan' tag parsing to mov_chan.c to share with the CAF demuxer 2012-07-19 13:26:45 -04:00
Justin Ruggles
c0196a14b9 caf: use int64_t for num_packets
It is used to store a value read by avio_rb64().
2012-07-19 13:26:45 -04:00
Justin Ruggles
f5a9c35f88 caf: fix 'pakt' chunk parsing
according to the CAF specification:
"... the value for mChunkSize can be greater than the actual valid content
of the packet table chunk"
2012-07-19 13:26:45 -04:00
Justin Ruggles
b0b77b9ca5 caf: support either old or new style ALAC magic kuki chunk 2012-07-19 13:26:45 -04:00
Clément Bœsch
55ed91c856 threads: fix a potential race spotted by helgrind. 2012-07-19 19:08:36 +02:00
Clément Bœsch
652887d6fd fate/subtitles: sort tests alphabetically. 2012-07-19 19:07:10 +02:00
Michael Niedermayer
daa290580d mxfdec: simplify code by using av_calloc()
Reviewed a long time ago by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-19 18:44:46 +02:00
Michael Niedermayer
83d6ad3616 avidec: Mark first frame as keyframe in case there are no keyframes.
This fixes seeking in filecopy.avi of Ticket504

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-19 18:44:46 +02:00
Michael Niedermayer
e03cd1049e Fix misspellings of FFmpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-19 18:44:46 +02:00
Paul B Mahol
5c858a0ac4 swscale/input: silence warnings about incompatible pointer types
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-19 15:49:21 +00:00
Nicolas George
0fe8acf2d6 ffmpeg: add -(no)stdin option.
Allows to disable interaction from standard input.
Useful, for example, if ffmpeg is in the background process group.
Roughly the same result can be achieved with "ffmpeg ... < /dev/null"
but it requires a shell.
2012-07-19 16:33:02 +02:00
Nicolas George
52ab418588 ffmpeg: invert using_stdin and rename accordingly.
There are other reasons not to use stdin than having it as an input.
2012-07-19 16:32:45 +02:00
Mans Rullgard
45870f8b6e Print full compiler identification, not only version number
This provides a more precise identification of the compiler used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-19 10:21:46 +01:00
Mans Rullgard
bf1cf4d5a5 flacdec: reverse lpc coeff order, simplify filter
Reversing the lpc coefficient order simplifies indexing in
the filter.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-19 10:21:32 +01:00
Diego Biurrun
9f97af2688 x86: dsputil: drop some unused CPU flag debug code 2012-07-19 10:17:56 +02:00
Paul B Mahol
6b7849e6da swscale: unscaled rgba64->rgb48
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-19 00:17:16 +00:00
Paul B Mahol
b4befca23e swscale: unscaled rgba64->bgr48
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-19 00:16:17 +00:00
Paul B Mahol
9d8eac6899 swscale: simplify unscaled rgb48<->bgr48
Using av_bswap16 should be enough.
2012-07-18 23:47:40 +00:00
Michael Niedermayer
204c4e953d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ppc: fix build with altivec disabled
  vp3: move idct and loop filter pointers to new vp3dsp context
  build: add CONFIG_VP3DSP, reduce repetition in OBJS lists
  tscc2: do not add/subtract 128 bias during DCT
  tscc2: fix typo in DCT
  configure: clarify external library section of help output
  configure: mark libfdk-aac as nonfree
  configure: cosmetics: drop some unnecessary backslashes
  os_support: K&R formatting cosmetics

Conflicts:
	configure
	libavcodec/vp3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 22:34:48 +02:00
Michael Niedermayer
c66978e29a sws: more complete doxy for sws_setColorspaceDetails()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 21:25:29 +02:00
Stefano Sabatini
5784a46986 lavf/utils: show the number of stream in case of missing parameter
Increase feedback provided in avformat_find_stream_info().
2012-07-18 18:08:57 +02:00
Stefano Sabatini
739ec710c4 lavf/utils: suggest what to do in case of missing codec information
In particular, fix trac issue #218.
2012-07-18 18:08:57 +02:00
Stefano Sabatini
a293549b32 lavf/utils: extend has_codec_parameters() to make it show what info is missing
Improve feedback.
2012-07-18 18:08:56 +02:00
Michael Niedermayer
31a192f387 imgconvert: favor pixel formats without resolution loss
Fixes Ticket1517

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 17:22:17 +02:00
Michael Niedermayer
ef1c0b5295 avfiltergraph: add some debug info about selected pixel formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 17:22:17 +02:00
Stefano Sabatini
6a314d59d5 configure: simplify dependencies for x11_grab_device
XShmCreateImage dependency is implied by x11grab.
2012-07-18 17:13:34 +02:00
Stefano Sabatini
0cc9077a87 configure: fix help message for --disable-avfilter
Increase consistency with the other similar messages.
2012-07-18 17:13:29 +02:00
Stefano Sabatini
712d82130e lavfi/avfiltergraph: apply misc fixes to fix avfilter_graph_request_oldest() @return doxy 2012-07-18 17:13:00 +02:00
Michael Niedermayer
dece4f4693 ffmpeg: revert 3ba90d9 (cosmetics to reduce difference to qatar by about 90 lines)
This commit caused Ticket1490 (Infinity loop / lock in export image)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 16:35:38 +02:00
Michael Niedermayer
60f3291086 mlpdec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 16:22:41 +02:00
Michael Niedermayer
ba0e69994d sws/input: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 16:22:41 +02:00
Mans Rullgard
ffdd93a25e ppc: fix build with altivec disabled
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-18 13:34:42 +01:00
Mans Rullgard
28f9ab7029 vp3: move idct and loop filter pointers to new vp3dsp context
This moves all VP3-specific function pointers from dsputil to a
new vp3dsp context.  There is no reason to ever use the VP3 IDCT
where an MPEG2 IDCT is expected or vice versa.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-18 10:32:19 +01:00
Mans Rullgard
ab9f987661 build: add CONFIG_VP3DSP, reduce repetition in OBJS lists
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-18 10:32:18 +01:00
Kostya Shishkov
4cfb0d871d tscc2: do not add/subtract 128 bias during DCT
It turns out that the reference decoder subtracts 128 from DC during block
decode but adds it back during reordering block with zigzag pattern.
Transforming block with incorrect DC caused heavy visual artifacts for
many quantisers.
2012-07-18 07:05:59 +02:00
Kostya Shishkov
3c6c19184c tscc2: fix typo in DCT 2012-07-18 07:05:53 +02:00
Diego Biurrun
c547e5ff98 configure: clarify external library section of help output 2012-07-18 02:11:04 +02:00
Diego Biurrun
87246953d8 configure: mark libfdk-aac as nonfree 2012-07-18 02:00:22 +02:00
Diego Biurrun
47876d661a configure: cosmetics: drop some unnecessary backslashes 2012-07-18 02:00:21 +02:00
Michael Niedermayer
56ae5926f7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libopenjpeg: introduce encoding support
  libopenjpeg: rename decoder source file.
  RTMPTS protocol support
  RTMPS protocol support
  avconv: print an error message when demuxing fails.
  tscc2: DCT output should not be clipped
  rtmp: Rename rtmphttp to ffrtmphttp

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/libopenjpegenc.c
	libavcodec/version.h
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-18 01:27:19 +02:00
Nicolas George
d483867525 avfiltergraph: document a catch in request_oldest().
This one is tricky. Consider a graph with two sink links, A and B.
request_oldest() requests on A, and A returns EOF. This EOF causes
a filter to flush pending frames to B; they are unrequested.
Then request_oldest() moves on to B, and B returns EOF.
2012-07-17 23:47:33 +02:00
Nicolas George
f98d814bb6 avfiltergraph: add a debug message on EOF. 2012-07-17 23:46:26 +02:00
Nicolas George
d06bfda07e lavfi: rescale link->current_pts.
The doxy says, and the heap implementations assumes,
it is in AV_TIME_BASE units.
2012-07-17 23:46:26 +02:00
Diego Biurrun
7a249625fd os_support: K&R formatting cosmetics 2012-07-17 20:10:50 +02:00
Paul B Mahol
0b74b8f649 ptx: correct decoding
The image data is in BGR and not in RGB.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-17 17:06:24 +00:00
Michael Niedermayer
ad8dabfe9c mov/aac: skip initial aac padding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-17 17:09:19 +02:00
Piotr Bandurski
b688c7b7f9 riff: add "SM4V" FourCC
Reviewed-by: compn <tempn@twmi.rr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-17 16:56:51 +02:00
William Yu
6d4e0d1b7e avf:rmdec.c fill duration to AVFormatContext
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-17 16:47:20 +02:00
Michael Bradshaw
453c02f971 libopenjpeg: introduce encoding support
Based on FFmpeg version from
commit 713a7854e0

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-17 14:56:58 +02:00
Michael Bradshaw
b43a7bb4f9 libopenjpeg: rename decoder source file.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-17 14:56:22 +02:00
Michael Niedermayer
21d8255423 sws: handle non native rgb<->rgb convertions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-17 14:40:59 +02:00
Michael Niedermayer
22a279539e yuv2rgb: implement 15/16bit ordered dither
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-17 14:25:49 +02:00
Samuel Pitoiset
86991ce2dd RTMPTS protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 14:02:55 +03:00
Samuel Pitoiset
6aedabc9b6 RTMPS protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 13:53:33 +03:00
Nicolas George
1d903a5ee4 lswr: channel_map requires input conversion.
channel_map is applied between in and postin.
Without this test, if the input format is an acceptable internal format,
the in->postin conversion is skipped. In the best case,
it ignores channel_map, in the worst case it causes an assert failure
if the number of channels is changed by the map.
2012-07-17 09:50:36 +02:00
Anton Khirnov
5417efbbf3 avconv: print an error message when demuxing fails.
Also exit in such a case if -xerror is used.

Fixes bug 329.
2012-07-17 09:50:26 +02:00
chinshou
81dd908c6e Fix libilbc compilation.
Fixes ticket #1540
2012-07-17 08:53:36 +02:00
Carl Eugen Hoyos
7f5fae1e48 mpeg4videodec: Add two missing format specifiers for debug output. 2012-07-17 08:12:49 +02:00
Carl Eugen Hoyos
34aa61a36d mpeg4videodec: Use format specifier PRId64 for int64_t. 2012-07-17 08:11:31 +02:00
Carl Eugen Hoyos
6dfea3a361 Remove internal MPlayer FourCC viv1.
Reviewed-by: Derek Buitenhuis
Reviewed-by: Paul B Mahol
2012-07-17 08:09:32 +02:00
Kostya Shishkov
0b40153d20 tscc2: DCT output should not be clipped
This fixes decoding some TSCC2 files with large quantisers.
2012-07-17 07:21:24 +02:00
Michael Niedermayer
bdf28d14f2 sws: extend dither tables by 1 line so simpler arithmetic can be used to address the next line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-17 05:40:36 +02:00
Paul B Mahol
3071af6cf2 tiff: read more tags of type string
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-17 01:23:35 +00:00
Paul B Mahol
292850b634 tiff: add smarter checks if there is enough data left
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-17 01:23:34 +00:00
Paul B Mahol
1ec83d9a9e tiff: port to bytestream2
Prevents out of array reads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-17 01:12:55 +00:00
Samuel Pitoiset
775c4d3625 rtmp: Rename rtmphttp to ffrtmphttp
The prefix makes it easier to distinguish the proper end-user
protocols from the internal ones.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 01:19:01 +03:00
Paul B Mahol
6dac8c8327 lavu: disable av_uninit for clang
This silence bunch of useless warnings like:

libavformat/mpeg.c:393:37: warning: variable 'dvdaudio_substream_type' is uninitialized when used within its own initialization [-Wuninitialized]

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-16 19:30:13 +00:00
Michael Niedermayer
9db747b2a3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: rtmp_parse_result() add case for video and audio packets to avoid undesired debug output.
  configure: Move the getaddrinfo function check into the network block
  configure: Remove an unused 'have' item
  mpeg: remove disabled code
  libfdk-aac: Check if cutoff value is valid
  network: Always use our version of gai_strerror on windows
  network: Undefine existing gai_strerror definitions
  network: Extend the fallback gai_strerror implementation to handle more error codes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 20:45:41 +02:00
Michael Niedermayer
5dba4cbc2f ffmpeg: fix streamcopy of some mp3 in avi
Fixes Ticket1432

Thanks-to: Mike Scheutzow <mike.scheutzow@alcatel-lucent.com> for some of the bug analysis
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 16:56:03 +02:00
Michael Niedermayer
b45a313e97 ffv1dec: fix error concealment for gop>1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 16:48:09 +02:00
Nick Brereton
e03077c432 Fix DCA-XXCH extension scaling for embedded downmixes.
Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 16:06:01 +02:00
Nick Brereton
73154feec1 Fix ordering of XXCH downmix coefficients.
Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 16:05:25 +02:00
Michael Niedermayer
ac9389a663 ffv1dec: detect errors in bytestream end mismatches for EC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
b0d674ec10 ffv1dec: set the first slices bytestream end correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
f5af3568f6 ffv1dec: keep track of errors in slice headers for EC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
094845aad8 ffv1dec: add simple error concealment in case of CRC errors on slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:48:04 +02:00
Michael Niedermayer
371d37fcf5 ffv1: keep last_frame (to be used for error concealment)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 15:38:27 +02:00
Michael Niedermayer
8486c8cc9a configure: print if the docs building tools have been found
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 14:45:41 +02:00
Tim Nicholson
45641014d3 doc/filters: Fix two typos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 14:01:01 +02:00
Jordi Ortiz
08e087ccf7 rtmp: rtmp_parse_result() add case for video and audio packets to avoid undesired debug output.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-07-16 13:45:15 +02:00
Martin Storsjö
f06dee7794 configure: Move the getaddrinfo function check into the network block
This makes the two checks (general vs winsock) fit in better.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-16 11:14:19 +03:00
Paul B Mahol
7543fd80e5 exr: check size of uncompressed buffer returned by uncompress()
The actual size of uncompressed buffer returned by uncompress() may be
smaller than expected, so abort decoding in such cases.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-16 00:39:37 +00:00
Michael Niedermayer
8b855b69a1 Changelog: add geotiff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 02:07:25 +02:00
Michael Niedermayer
fbe02459dc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Check for CommandLineToArgvW
  vc1dec: Do not use random pred_flag if motion vector data is skipped
  vp8: Enclose pthread function calls in ifdefs
  snow: refactor code to work around a compiler bug in MSVC.
  vp8: Include the thread headers before using the pthread types
  configure: Check for getaddrinfo in ws2tcpip.h, too
  vp8: implement sliced threading
  vp8: move data from VP8Context->VP8Macroblock
  vp8: refactor decoding a single mb_row
  doc: update api changes with the right commit hashes
  mem: introduce av_malloc_array and av_mallocz_array

Conflicts:
	configure
	doc/APIchanges
	libavcodec/vp8.c
	libavutil/mem.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-16 01:32:52 +02:00
Martin Storsjö
03d1b18e96 configure: Remove an unused 'have' item
This is only used for checking for a certain library, but the code
doesn't need to know whether the function was found.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-16 01:58:35 +03:00
Diego Biurrun
20d569dd61 mpeg: remove disabled code 2012-07-16 00:15:21 +02:00
Mohammad Alsaleh
c37c383e59 libfdk-aac: Check if cutoff value is valid
Passing a cutoff value < sample_rate/256 will cause a crash.
Also, values >20000 will have no effect and 20000 will be used anyway.

Signed-off-by: Mohammad Alsaleh <msal@tormail.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:59:51 +03:00
Martin Storsjö
9e4b04f8b9 network: Always use our version of gai_strerror on windows
Even if linking directly to getaddrinfo, use our version of
gai_strerror instead of the system's version. Microsoft explicitly
documents that their version of gai_strerror is thread-unsafe.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:41:38 +03:00
Martin Storsjö
c98e2053f5 network: Undefine existing gai_strerror definitions
This avoids warnings if there already exists a definition.

This is the case on windows, where the getaddrinfo isn't available
and linked to (and we use our fallbacks instead, which actually
try to use the proper getaddrinfo version if found at runtime),
but gai_strerror still exists as a define.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:41:28 +03:00
Martin Storsjö
2ca6e9bb47 network: Extend the fallback gai_strerror implementation to handle more error codes
This is useful if a proper getaddrinfo is loaded dynamically on
windows, while using the fallback implementation of gai_strerror.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:21:59 +03:00
Stefano Sabatini
9a1963fbb8 ffprobe: reindent after the previous commit 2012-07-15 16:27:22 +02:00
Stefano Sabatini
5626e812d2 ffprobe: only decode frame if the codec is available
Fix crash when a stream codec is unknown, in particular fix trac
ticket #1243.
2012-07-15 15:57:11 +02:00
Stefano Sabatini
fda968aa8f lavfi: decrease logging level of message showing initial parameters
Reduce log clutter, consistent with 1a49a169eb.
2012-07-15 15:07:03 +02:00
Carl Eugen Hoyos
a1e52c9441 Simplify ptx decoding on big-endian.
Reviewed-by: Reimar Döffinger
2012-07-15 15:04:44 +02:00
Piotr Bandurski
a8ff7e3f96 riff: Assign U263 FourCC to CODEC_ID_H263 2012-07-15 14:55:05 +02:00
Piotr Bandurski
96e2507363 isom: add "NO16" FourCC
samples:

http://www.datafilehost.com/download-46d9a0fa.html

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-15 14:49:32 +02:00
Piotr Bandurski
198c4ea200 riff: add dvis/pdvc FourCCs
samples:

http://www.datafilehost.com/download-4b49270d.html

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-15 14:49:32 +02:00
Michael Niedermayer
209f92d94a lavc: add seperate AVCodec for CODEC_ID_H263P so demuxers can use that id.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-15 14:49:32 +02:00
Piotr Bandurski
8d0ec6e060 isom: add "MNG" FourCC
sample:

http://www.datafilehost.com/download-92da395c.html

Reviewed-by:  compn <tempn@twmi.rr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-15 14:49:32 +02:00
Ronald S. Bultje
b4675d0fbf configure: Check for CommandLineToArgvW
The actual result of the check isn't used anywhere (since we
use this function unconditionally within #ifdef _WIN32), but it
makes sure we explicitly link to shell32 (which is linked in
implictly on mingw).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 14:03:53 +03:00
Mashiat Sarker Shakkhar
082829520e vc1dec: Do not use random pred_flag if motion vector data is skipped
This fixes SA10143.vc1 from test-suite. Also partially fixes MC-VC1.ts
from videolan streams archive.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 14:02:38 +03:00
Martin Storsjö
25f056e6d4 vp8: Enclose pthread function calls in ifdefs
This fixes building with threads disabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 13:55:18 +03:00
Paul B Mahol
2c31ed3330 exr: make channel_offsets int instead of int8_t
Prior to this change max number of channels for float data which was
going to be correctly decoded was 32, which is rather small
considering that exr allows multiple channel layers.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-15 02:53:51 +00:00
Paul B Mahol
1463bd902a cosmetics: reindent after d3abbb1d1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-15 02:31:40 +00:00
Paul B Mahol
a8f6df8a4f libfdk-aacenc: remove redundant log message if ff_alloc_packet2 fails
The whole point of ff_alloc_packet2 is to not bloat code with
duplicated error messages.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-15 02:19:48 +00:00
Ronald S. Bultje
c44091a9f7 snow: refactor code to work around a compiler bug in MSVC.
This fixes the compiler error "cannot convert from 'BlockNode' to
'int16_t'".
2012-07-14 19:19:34 -07:00
Martin Storsjö
a794600c00 vp8: Include the thread headers before using the pthread types
This was unnoticed on linux, since stdlib.h apparently includes
files declaring the pthread_mutex_t and pthread_cond_t types.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-14 19:19:33 -07:00
Paul B Mahol
6ad4560031 mss1: improve check if decoded pivot is invalid
The pivot has to lie between 0 and base.
Check of ==base is insufficient.
Thus replace it by a proper check.

Fixes out of array write.

Fixes bug #1531.

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-15 02:12:02 +00:00
Michael Niedermayer
ab46300078 Merge remote-tracking branch 'dwbuiten/master'
* dwbuiten/master:
  doc: Remove stray @item from git-howto
  libfdk-aac: Port to ff_alloc_packet2
  doxy: move av_guess_sample_aspect_ratio to correct place

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-15 03:40:19 +02:00
Michael Niedermayer
39afcf1d7e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  eval: add gt(), gte(), lt() and lte() fate tests
  eval: fix swapping of lt() and lte()
  imgconvert: deprecate avcodec_find_best_pix_fmt()
  imgconvert: add avcodec_find_best_pix_fmt2()
  imgconvert: avoid undefined left shift in avcodec_find_best_pix_fmt

Conflicts:
	libavcodec/imgconvert.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-15 01:23:16 +02:00
Ronald S. Bultje
39d18f21a5 configure: Check for getaddrinfo in ws2tcpip.h, too
This function is only available in the headers if unconditionally
targeting a version >= XP. It is not strictly necessary, since we
try loading these functions dynamically at runtime on windows in
the fallback, but this makes things a bit faster and more
straightforward.

On mingw32, this function isn't visible by default, while it is
on mingw64 (on both 32 and 64 bit).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 02:19:34 +03:00
Philip Langdale
2c501ae82b movtextdec: 3GPP TS 26.245 Timed Text Decoder.
This change introduces a basic decoder for 3GPP Timed Text subtitles,
also known as TX3G, Quicktime subtitles, or "movtext" in the existing
code.

This initial change doesn't attempt to parse styling information,
and just reads the plain text of the subtitles. I intend to add
support for styles eventually, but it's challenging due to a lack
of existing players that support them.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-07-14 14:50:02 -07:00
Daniel Kang
951455c1c1 vp8: implement sliced threading
Testing gives 25-30% gain on HD clips with two threads and
up to 50% gain with eight threads.

Sliced threading uses more memory than single or frame threading.

Frame threading and single threading keep the previous memory
layout.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-14 20:18:54 +02:00
Daniel Kang
17343e3952 vp8: move data from VP8Context->VP8Macroblock
In preparation for sliced threading.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-14 20:18:54 +02:00
Daniel Kang
337ade52de vp8: refactor decoding a single mb_row
This is in preperation for sliced threading.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-14 20:18:54 +02:00
Luca Barbato
45ff9e5b57 doc: update api changes with the right commit hashes 2012-07-14 20:07:25 +02:00
Luca Barbato
f3e5e6f05b mem: introduce av_malloc_array and av_mallocz_array
Both function ease allocating large arrays implementing the overflow
check inside it.
2012-07-14 20:07:25 +02:00
Michael Niedermayer
57d5a224ce mp3enc: add lame tag with start padding info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 17:20:22 +02:00
Nicolas George
7b521c52c4 ffmpeg: add -progress option.
It allows to send program-friendly (easy to parse)
progress information to a file or an URL.
2012-07-14 14:51:18 +02:00
Janne Grunau
2d497c141d eval: add gt(), gte(), lt() and lte() fate tests 2012-07-14 13:43:10 +02:00
Nicolas George
3aba391fb5 libx264: list possible presets and tunes.
The values are listed if setting them fails.
Using "-preset help" or "-preset list" have that effect.
2012-07-14 13:37:50 +02:00
Max Lazarov
caac3ab6ef eval: fix swapping of lt() and lte()
CC: libav-stable@libav.org
2012-07-14 13:33:25 +02:00
Stefano Sabatini
160df9797e lavc/tiffenc: apply misc doxy fixes 2012-07-14 13:02:51 +02:00
Stefano Sabatini
6c3b3cfd90 ffprobe: add frame metadata printing 2012-07-14 13:02:51 +02:00
Thomas Kühnel
75abfab6c6 lavc/tiff: add GeoTIFF support to the TIFF decoder
Work done for SOCIS 2011.

See thread:
Subject: [libav-devel] [PATCH 2/3] tiff: Add GeoTIFF support to the TIFF decoder
Date: Tue,  4 Oct 2011 00:19:52 +0200

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-14 13:02:38 +02:00
Stefano Sabatini
fb57180698 lavc/avcodec.h: keep avframe_* field setter and getter close
Slightly more readable, now that the list is getting longer.
2012-07-14 13:02:25 +02:00
Thomas Kühnel
f49ec1b404 lavc: add metadata to AVFrame
See thread:
Subject: [libav-devel] [PATCH 1/3] avcodec: add metadata to AVFrame
Date: Tue,  4 Oct 2011 00:19:51 +0200
2012-07-14 13:00:18 +02:00
jamal
2090e40410 configure: Check that texi2html supports --init-file
Fixes ticket #1515
2012-07-14 11:47:15 +02:00
jamal
d48f014ff1 doc/Makefile: Add missing $(HOSTEXESUF) to print_options 2012-07-14 11:47:09 +02:00
jamal
3e03f8d8b2 build: Fix documentation dependencies and rules 2012-07-14 11:47:01 +02:00
Stefano Sabatini
bd58f00ec1 doc/filters: prefer "special" over "magic" for special input/output labels 2012-07-14 11:40:08 +02:00
Stefano Sabatini
b65ccce866 doc/filters: update documentation
In particular, assume existence of audio and sink filters.
2012-07-14 11:39:31 +02:00
Stefano Sabatini
5a6c7a218c doc: merge libavfilter.texi into filters.texi
There is no much point into splitting documentation for filters. Also
having a separate document for a library is inconsistent.
2012-07-14 11:38:53 +02:00
Michael Niedermayer
825e1e2437 ffmpeg: use pkt_pts before pkt->pts for audio
This fixes the timestamp of the first packet when samples have been skiped.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 04:24:40 +02:00
Michael Niedermayer
744bd8d08c ffmpeg: set pkt_timebase
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 04:24:00 +02:00
Michael Niedermayer
aa32971d2b lavc: adjust timestamp in case of skiping initial samples
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 03:49:41 +02:00
Michael Niedermayer
2fe186409b lavc: skip initial silence when requested
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 03:49:11 +02:00
jamal
0f03563d7e lavc/w32pthreads: Fix make checkheaders.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 03:02:03 +02:00
Stefan Gehrer
e98330df90 movenc: write track header transformation matrix depending on "rotate" metadata
should fix ticket #505
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-14 02:57:11 +02:00
Paul B Mahol
bc0ef29cf0 exr: fix scan_line_size calculation
This one will also work in cases when file have channels
we are not going to use.

Only compressed files where affected by this bug.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-13 23:48:50 +00:00
Paul B Mahol
cd3136e84a exr: print channel names not yet supported
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-13 23:02:11 +00:00
Paul B Mahol
fedefe4a87 exr: remove double ;;
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-13 21:14:01 +00:00
Paul B Mahol
1033807313 exr: frame multithreading support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-13 21:08:37 +00:00
Michael Niedermayer
674216991d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Fix APE tag dependencies
  MS Expression Encoder Screen decoder
  libfdk-aac: Allow setting the encoder bandwidth/cutoff frequency

Conflicts:
	Changelog
	libavcodec/avcodec.h
	libavcodec/version.h
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 22:22:24 +02:00
Michael Niedermayer
af285072b5 ffv1enc: use default number of slices if unspecified
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 22:08:27 +02:00
Michael Niedermayer
051dd2eea6 ffv1dec: print timestamp at which a CRC mismatch happened
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 22:08:27 +02:00
Compn
c3a4c1bd5a add PLV1 fourcc to mpeg4
works on http://samples.ffmpeg.org/V-codecs/PLV1/york-water-meteor.avi
2012-07-13 15:10:53 -04:00
Michael Niedermayer
0eb0b310c4 lavc: add pkt_timebase to allow avcodec to adjust pkt_dts/pts when needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 20:35:08 +02:00
Janne Grunau
f30260d32a imgconvert: deprecate avcodec_find_best_pix_fmt() 2012-07-13 19:22:46 +02:00
Janne Grunau
ac29054fda imgconvert: add avcodec_find_best_pix_fmt2()
The number of pixel formats outgrew the number of available bits in
the bitmask used in avcodec_find_best_pix_fmt().
avcodec_find_best_pix_fmt2() uses a PIX_FMT_NONE terminated list
of pixel formats instead.
2012-07-13 19:22:46 +02:00
burek
cb59e62abb doc/ffmpeg: document more deeply -re option.
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Lou Logan <lou@lrcd.com>
2012-07-13 18:38:49 +02:00
Derek Buitenhuis
86dd5fbf15 doc: Remove stray @item from git-howto
Fixes warning:
    ** @item outside of table or list (l. 362)

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-13 11:51:06 -04:00
Derek Buitenhuis
7ff318e2dd libfdk-aac: Port to ff_alloc_packet2
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-13 11:51:06 -04:00
Derek Buitenhuis
29470bb940 doxy: move av_guess_sample_aspect_ratio to correct place
It should not be a part of the RIFF FourCCs group.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-07-13 11:51:06 -04:00
Janne Grunau
39bb27bf79 imgconvert: avoid undefined left shift in avcodec_find_best_pix_fmt
CC: libav-stable@libav.org
2012-07-13 17:29:27 +02:00
Michael Niedermayer
ff2fda57df doc/protocol.texi: fix missed application reference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 17:17:21 +02:00
Michael Niedermayer
790e25ef61 general.texi: fix project reference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 17:16:13 +02:00
Michael Niedermayer
c5cc94982d matroskaenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 17:03:57 +02:00
Michael Niedermayer
1cef5a0196 ffmpeg: fix type of av_log() argument
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 16:24:32 +02:00
Diego Biurrun
47aed43990 build: Fix APE tag dependencies 2012-07-13 10:17:20 +02:00
Kostya Shishkov
5b7e3a195d MS Expression Encoder Screen decoder 2012-07-13 06:59:48 +02:00
Paul B Mahol
d3abbb1d13 lavc: fix ff_alloc_packet()
Regression introduced in 740b9ff44.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-13 01:09:43 +00:00
Michael Niedermayer
81fe2e8b36 build_system: mark libfdk as non GPL compatible until the situation is clarified by someone qualified.
The license fee text may be interpreted as a additional restriction in the GPL sense.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-13 00:51:01 +02:00
Michael Niedermayer
620c6292b1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: Fix Ogg demuxer dependencies
  build: Fix FLAC demuxer dependencies
  flac: Move flac functions shared between libraries to flac common code
  build: Fix CAF demuxer dependencies
  build: Fix MP2 muxer dependencies
  build: Add missing build rules for the ISMV muxer
  configure: Drop redundant mxf_d10 test dependency declaration
  Support AAC encoding via the external library fdk-aac
  libavcodec: Add more AAC profiles
  dct/fft-test: use a replacement getopt() if the system has none present.

Conflicts:
	Changelog
	libavcodec/Makefile
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 23:57:00 +02:00
Michael Niedermayer
f9c823df13 lclenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 23:18:48 +02:00
Michael Niedermayer
db03f91f4b mxfenc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 23:16:52 +02:00
Martin Storsjö
7548831c5e libfdk-aac: Allow setting the encoder bandwidth/cutoff frequency
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-12 23:37:29 +03:00
Michael Niedermayer
375c0f74d1 av_samples_copy: support overlapping copies
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 22:25:25 +02:00
Michael Niedermayer
19ff479f69 mp3dec: parse initial silence padding information from lame tag
And pass the information on to the lavf core.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 22:25:25 +02:00
Michael Niedermayer
018601dbf9 lavf: inject sample skip side data when requested by the demuxer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 20:32:03 +02:00
Robert Krüger
c916af995d add output for frame timestamps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 20:18:03 +02:00
Paul B Mahol
f7e26cca89 exr: rle decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-12 17:36:55 +00:00
Nicolas George
26d7232722 configure: produce useful uninstalled pc files.
The old files were scattered in several directories,
with an unusual name, but dependencies to the usual name,
and relative paths.

The new files are regrouped in a singled directory
(doc/examples/pc-uninstalled) with their usual name
and more absolute paths.

With this change, it becomes possible to compile the examples
with the ffmpeg build tree by setting the environment variable:
PKG_CONFIG_PATH=pc-uninstalled
2012-07-12 14:58:52 +02:00
Diego Biurrun
0da29727ea build: Fix Ogg demuxer dependencies 2012-07-12 11:11:25 +02:00
Diego Biurrun
b896008271 build: Fix FLAC demuxer dependencies 2012-07-12 11:11:24 +02:00
Diego Biurrun
8eea8fdceb flac: Move flac functions shared between libraries to flac common code
This fixes a number of flac-related build dependencies.
2012-07-12 11:11:23 +02:00
Diego Biurrun
a519463366 build: Fix CAF demuxer dependencies 2012-07-12 10:45:21 +02:00
Diego Biurrun
b7884ff7af build: Fix MP2 muxer dependencies 2012-07-12 10:45:21 +02:00
Diego Biurrun
d648de61e6 build: Add missing build rules for the ISMV muxer 2012-07-12 10:45:20 +02:00
Diego Biurrun
7d605d5115 configure: Drop redundant mxf_d10 test dependency declaration
The mxf_d10 test depends on avconv, which depends on avfilter, so there
is no need to declare an avfilter dependency for the mxf_d10 test.
2012-07-12 10:45:20 +02:00
Martin Storsjö
37eeb5e273 Support AAC encoding via the external library fdk-aac
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-12 11:01:10 +03:00
Martin Storsjö
372597e538 libavcodec: Add more AAC profiles
The numerical values of the profiles are the MPEG4 Audio Object
Type values, minus one.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-12 10:54:15 +03:00
Paul B Mahol
a568a84edf exr: cache some values
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-12 01:07:22 +00:00
Hendrik Leppkes
65219c3851 dca: map xxch side channels to AV_CH_SIDE_LEFT/RIGHT instead of REAR.
This fixes decoding of certain 7.1 DTS-HD HRA files, as well as matches the spec better.
Table 6-22 in the DTS spec labels the two channels "Left/Right surround on side", and not rear.

Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Reviewed-by: Nick Brereton <nick@nbrereton.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-12 02:33:16 +02:00
Michael Niedermayer
9ca27df52f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Check for the math function rint
  TechSmith Screen Codec 2 decoder
  rtsp: Add listen mode
  rtsp: Make rtsp_open_transport_ctx() non-static
  rtsp: Move rtsp_read_close
  rtsp: Parse the mode=receive/record parameter in transport lines

Conflicts:
	Changelog
	libavcodec/avcodec.h
	libavcodec/version.h
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-11 23:57:11 +02:00
Michael Niedermayer
5f298c6791 vorbisdec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-11 23:26:55 +02:00
Michael Niedermayer
e3c2d83183 avidec: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-11 23:26:55 +02:00
Paul B Mahol
74f3c53b57 exr: zip decompression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-11 20:46:56 +00:00
Paul B Mahol
5ee41d00f6 exr: remove dead assigment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-11 20:43:37 +00:00
Ronald S. Bultje
667fb97a65 dct/fft-test: use a replacement getopt() if the system has none present.
This allows compiling and running these tests on systems lacking a built-
in version of getopt(), such as MSVC.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-11 21:24:37 +02:00
Ronald S. Bultje
183b1c2268 configure: Check for the math function rint
Add a fallback implementation if it doesn't exist.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-11 10:40:11 +03:00
Kostya Shishkov
781888da89 TechSmith Screen Codec 2 decoder 2012-07-11 07:29:05 +02:00
Michael Niedermayer
dd0a9b78db replace all __volatile__ by volatile
__volatile__ can cause problems with some compilers and volatile is a standard keyword.

Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-11 04:04:29 +02:00
Matthieu Bouron
b8a90976da lavf/mxfenc: fix dnxhd codec uls and aspect ratio
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-11 04:00:57 +02:00
Paul B Mahol
9b3f9f43a7 tiffenc: use av_fast_padded_malloc(z)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 22:01:38 +00:00
Paul B Mahol
0e003d8c91 lavc: add av_fast_padded_mallocz
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 21:42:23 +00:00
Paul B Mahol
ca16f88c75 tiffenc: add .init
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 21:32:58 +00:00
Nicolas George
5a9d6993cb parseutils: ignore digits below the microsecond.
Accept 1.1234567 as simply 1.123456 instead of rejecting it.
The rounding is towards 0, which is acceptable and much simpler.
2012-07-10 22:29:08 +02:00
Jordi Ortiz
a8ad6ffafe rtsp: Add listen mode
This makes the RTSP demuxer act as a server, listening for an
incoming connection.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 22:00:28 +03:00
Michael Niedermayer
b27c7d70d8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mss1: fix decoding masked regions in interframes
  mxfdec: fix off by one error.
  mxfdec: only parse next partition pack if parsing forward
  mxfdec: let pkt->pts = mxf->current_edit_unit if intra-only
  mxfdec: fix frame height vs field height confusion
  mxfdec: Add intra_only flag to MXFTrack
  mxfdec: fix Avid AirSpeed files being misinterpreted as OP1a
  mxfdec: truncate packets that extend past the next edit unit
  mxfdec: set pixel format for cdci picture formats
  mxfdec: detect uncomp pictures using essence container ul
  mxfdec: set track edit rate num/den in expected order
  x86/cpu: implement get/set_eflags using intrinsics
  x86/cpu: implement support for cpuid through intrinsics
  x86/cpu: implement support for xgetbv through intrinsics
  lavu: use intrinsics for emms on systems lacking inline asm support
  mem: Don't abort on av_malloc(0) in debug mode

Conflicts:
	configure
	libavformat/mxf.h
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 20:51:51 +02:00
Mans Rullgard
e346176de9 x86: cpu: clean up check for cpuid instruction support
This adds macros for accessing the EFLAGS register and uses
these instead of coding the entire check in inline asm.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-10 20:32:16 +02:00
Diego Biurrun
96890c001f configure: Change the rdtsc check to a linker check
A compile-only test could succeed with an implicit function declaration.
Also move the check to the x86 section; rdtsc is x86-only.
2012-07-10 20:26:23 +02:00
Jordi Ortiz
6e71c1202b rtsp: Make rtsp_open_transport_ctx() non-static
This is required for the upcoming RTSP listen mode.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 21:21:19 +03:00
Jordi Ortiz
6bbb362218 rtsp: Move rtsp_read_close
This avoids having to add forward declarations in the following
RTSP listen mode commit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 21:20:34 +03:00
Jordi Ortiz
45b068580b rtsp: Parse the mode=receive/record parameter in transport lines
We need to support the nonstandard mode=receive, for compatibility
with older libavformat clients.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 21:20:04 +03:00
Michael Niedermayer
84d902fb92 mpeg4videoenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 19:38:24 +02:00
Michael Niedermayer
43c609374a mpeg4videodec: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 19:38:24 +02:00
Nicolas George
0abab00303 dpx: invalid aspect ratio is 0/1, not 0/0. 2012-07-10 14:34:04 +02:00
Carl Eugen Hoyos
acf0283925 Set default ffv1 coder to -1.
Autoselect coder 1 instead of default coder if bits_per_raw_sample > 8.

Fixes ticket #1519.
2012-07-10 14:32:55 +02:00
Carl Eugen Hoyos
4c4e125695 Cosmetics: Return AVERROR_INVALIDDATA from ffv1 encoder initialisation if invalid data was provided. 2012-07-10 14:32:55 +02:00
Carl Eugen Hoyos
08ed3e8bf4 Cosmetics: Move ffv1 encoder initialisation code. 2012-07-10 14:32:54 +02:00
Michael Niedermayer
71c689e83e dsputil: turn assert into if() as its possible to trigger with ffv1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 14:24:10 +02:00
Kostya Shishkov
ed219ed366 mss1: fix decoding masked regions in interframes
Spotted by Alberto Delmás
2012-07-10 13:58:05 +02:00
Michael Niedermayer
f39bbc9d21 mxfdec: fix off by one error.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:05 +02:00
Tomas Härdin
83728d2d36 mxfdec: only parse next partition pack if parsing forward
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Tomas Härdin
34ca5ae51d mxfdec: let pkt->pts = mxf->current_edit_unit if intra-only
We cannot do this in general since we could be reading
a file with B-frames while lacking an index.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Joseph Artsimovich
634d670538 mxfdec: fix frame height vs field height confusion
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Reveiwed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Tomas Härdin
5ed032fb8b mxfdec: Add intra_only flag to MXFTrack
This allows future assumptions to be made without affecting non-intra files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Tomas Härdin
fb8fa3c67c mxfdec: fix Avid AirSpeed files being misinterpreted as OP1a
The "ECs != 1 -> OP1a" assumption was wrong. Luckily, the file
that triggered that behavior had two ECs, not zero. Hence
distinguishing between them is simple in this case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Tomas Härdin
1fadf53e00 mxfdec: truncate packets that extend past the next edit unit
This fixes rare cases where OPAtom may be treated
as OP1a, causing all essence to be read into RAM.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Philip de Nier
fda891e108 mxfdec: set pixel format for cdci picture formats
The properties of the CDCI Descriptor are insufficient to specify
the pixel format for uncompressed picture data. SMPTE 377-1 and
RP224v10 have defined a set of picture coding labels to indicate what
formatting was used.

This patch uses 2 labels to detect UYVY422 or YUYV422 pixel formats.

It defaults to UYVY422 for 8-bit 4:2:2 pictures to support files
that were created before the coding labels were introduced ~2008

The codec pix_fmt default was changed from 0 (PIX_FMT_YUV420P) to
-1 (PIX_FMT_NONE)

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 13:51:04 +02:00
Philip de Nier
dfefede00e mxfdec: detect uncomp pictures using essence container ul
This supports detection of uncompressed picture in files that
didn't include a Picture Coding Label. The lables weren't
available until SMPTE 377-1 and RP224v10

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:04 +02:00
Philip de Nier
5255ca24cd mxfdec: set track edit rate num/den in expected order
This matches the order used for the index table edit rate.

Reviewed-by: Baptiste Coudurier <baptiste.coudurier@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-10 13:51:03 +02:00
Ronald S. Bultje
358d854df8 x86/cpu: implement get/set_eflags using intrinsics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:32 +03:00
Ronald S. Bultje
c0ee695bd7 x86/cpu: implement support for cpuid through intrinsics
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:24 +03:00
Ronald S. Bultje
3f150ffba3 x86/cpu: implement support for xgetbv through intrinsics
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:17 +03:00
Ronald S. Bultje
f80ddd5bf7 lavu: use intrinsics for emms on systems lacking inline asm support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:09 +03:00
Carl Eugen Hoyos
7307746444 Recognize yuv10 image files as v210x.
Reviewed-by: Kieran Kunhya
2012-07-10 13:27:16 +02:00
Carl Eugen Hoyos
5bcabc56c0 Define snow .pix_fmts to allow colour space auto-selection. 2012-07-10 13:22:01 +02:00
Martin Storsjö
620b1e7e98 mem: Don't abort on av_malloc(0) in debug mode
This makes the behaviour consistent between debug and release mode.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 11:37:03 +03:00
Paul B Mahol
b4d0c3d9d2 exr: return proper error code instead of -1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 01:30:40 +00:00
Paul B Mahol
dc0d551b52 exr: use buf_size instead of recalculating same value
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 01:28:38 +00:00
Michael Niedermayer
1d890ec849 h264/decode_scaling_matrices: fix coding order of 8x8 matrixes.
This fixes decoding of PPCV444I3_Thomson_A.bits

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:53 +02:00
Michael Niedermayer
e162733dcd h264: 12 and 14 bit support
This works with I, P and B frames
CAVLC and CABAC

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:53 +02:00
Michael Niedermayer
1465ecf059 h264dsp: 12 and 14 bit support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:52 +02:00
Michael Niedermayer
5d05acba0e h264pred: 12 and 14 bit support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:52 +02:00
Michael Niedermayer
69d5e40e5a h264idct: 12 and 14 bit support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:52 +02:00
Michael Niedermayer
6ff6a51b86 h264: limit 10bpp MC pading trick to 10bpp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:52 +02:00
Michael Niedermayer
e8b9e1e294 dsputil: extend things to 12 and 14 bits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-10 02:17:52 +02:00
Paul B Mahol
1a8b0025f1 fate: add test for paf demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 00:04:24 +00:00
Paul B Mahol
101615c7ff fate: add test for paf video decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 00:04:23 +00:00
Paul B Mahol
409cc45883 fate: add test for paf audio decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-10 00:04:23 +00:00
Steven Robertson
c88d98fe4a lavfi/movie: reindent after the previous patch
Signed-off-by: Steven Robertson <steven@strobe.cc>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-10 01:37:54 +02:00
Steven Robertson
ac726a4f0c lavfi/movie: flush decoder frames on EOF
movie currently forwards EOF (or begins looping) immediately upon
reaching the last packet in the input stream, which can leave frames in
the decoder. This change first tries to read any remaining packets from
the decoder before forwarding EOF.

Signed-off-by: Steven Robertson <steven@strobe.cc>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-10 01:37:18 +02:00
Stefano Sabatini
a5382b50f2 lavfi/buffersink: restore possibility to pass opaque data
Use the init_opaque callback for the purpose.

Fix regression introduced in a5e8c41c28. In particular, fix lavfi
device in case a conversion to the supported (packed) formats is needed.
2012-07-10 01:29:47 +02:00
Stefano Sabatini
21d5609826 lavfi: add init_opaque callback
This will be used by filters which require an opaque field to be passed
in input. Should be required only for filters which imply a programmatic
use.

This is possibly a temporary solution, to be removed when we'll have a
clearer and better agreememnt of how/if to pass binary data for
initializing a filter.

See thread:
Subject: [FFmpeg-devel][PATCH] lavfi: add init2 callback
Date: Fri,  6 Jul 2012 01:22:17 +0200
2012-07-10 01:29:17 +02:00
Stefano Sabatini
aef9e94f73 lavf/segment: add -segment_time_delta option 2012-07-10 00:53:01 +02:00
Stefano Sabatini
2058b52cf8 lavf/segment: add -segment_times option
Address trac ticket #1504.
2012-07-10 00:49:43 +02:00
Michael Niedermayer
f8911b987d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mss3: use standard zigzag table
  mss3: split DSP functions that are used in MTS2(MSS4) into separate file
  motion-test: do not use getopt()
  tcp: add initial timeout limit for incoming connections
  configure: Change the rdtsc check to a linker check
  avconv: propagate fatal errors from lavfi.
  lavfi: add error handling to filter_samples().
  fate-run: make avconv() properly deal with multiple inputs.
  asplit: don't leak the input buffer.
  af_resample: fix request_frame() behavior.
  af_asyncts: fix request_frame() behavior.
  libx264: support aspect ratio switching
  matroskadec: honor error_recognition when encountering unknown elements.
  lavr: resampling: add support for s32p, fltp, and dblp internal sample formats
  lavr: resampling: add filter type and Kaiser window beta to AVOptions
  lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format
  lavr: mix: validate internal sample format in ff_audio_mix_init()

Conflicts:
	ffmpeg.c
	ffplay.c
	libavcodec/libx264.c
	libavfilter/audio.c
	libavfilter/split.c
	libavformat/tcp.c
	tests/fate-run.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-09 22:40:12 +02:00
Kostya Shishkov
5467742232 mss3: use standard zigzag table 2012-07-09 18:17:51 +02:00
Kostya Shishkov
acfb6b6cf8 mss3: split DSP functions that are used in MTS2(MSS4) into separate file 2012-07-09 18:17:51 +02:00
Anton Khirnov
82f82ccfc8 motion-test: do not use getopt()
It is not available on all systems and using argc/argv directly actually
makes the code simpler.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-09 17:20:52 +02:00
Jordi Ortiz
5427df0186 tcp: add initial timeout limit for incoming connections
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-09 17:30:19 +03:00
Michael Niedermayer
bf5386385d mpeg12: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-09 15:38:28 +02:00
Michael Niedermayer
cdb3f2f5f0 mpeg12enc: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-09 15:38:16 +02:00
Al@dneg.com
c88a832735 movenc: Addtion of \251cmt field to udta
Allows support of comment in udta for libquicktime, also currently \251des is used
 which is ignored by mov.c.
\251cmt IS currently already picked up by mov.c

References

libquicktime
http://libquicktime.cvs.sourceforge.net/viewvc/libquicktime/libquicktime/src/udta.c?view=markup

Also listed here:
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/QuickTime.html#UserData

Not listed here, but that`s not entirely surprising, as udta fields are expected to be somewhat arbitary.
http://developer.apple.com/library/mac/#documentation/QuickTime/qtff/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-BBCCFFGD

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-09 15:30:59 +02:00
Carl Eugen Hoyos
36b2bd9629 Show hyphen in codec tag. 2012-07-09 13:46:55 +02:00
Diego Biurrun
8e85ba8d13 configure: Change the rdtsc check to a linker check
A compile-only test could succeed with an implicit function declaration.
Also move the check to the x86 section; rdtsc is x86-only.
2012-07-09 12:50:06 +02:00
Anton Khirnov
8a645bfc31 avconv: propagate fatal errors from lavfi. 2012-07-09 08:32:49 +02:00
Anton Khirnov
cd99146253 lavfi: add error handling to filter_samples(). 2012-07-09 08:25:19 +02:00
Anton Khirnov
8d18bc550e fate-run: make avconv() properly deal with multiple inputs. 2012-07-09 08:22:38 +02:00
Anton Khirnov
083d0f6be8 asplit: don't leak the input buffer. 2012-07-09 08:22:11 +02:00
Anton Khirnov
1ffb645662 af_resample: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:37 +02:00
Anton Khirnov
6f834293d3 af_asyncts: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:15 +02:00
JULIAN GARDNER
0dd283faca libx264: support aspect ratio switching
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-09 08:15:59 +02:00
Anton Khirnov
5b7a88f0ba matroskadec: honor error_recognition when encountering unknown elements. 2012-07-09 07:43:11 +02:00
Paul B Mahol
07df939aa3 exr: support for reading pixelAspectRatio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-09 02:51:06 +00:00
Paul B Mahol
16a433d68b tiffenc: PIX_FMT_YUV440P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-09 01:55:16 +00:00
Paul B Mahol
e2a6eb8da4 sgidec: add CODEC_CAP_DR1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 23:43:18 +00:00
Paul B Mahol
0f65693529 sgidec: remove redundant argument from read_uncompressed_sgi()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 23:40:55 +00:00
Paul B Mahol
60351ec13c g723_1: add CODEC_CAP_DR1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 23:40:55 +00:00
Paul B Mahol
5d23043c12 exr: add CODEC_CAP_DR1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 23:40:55 +00:00
Paul B Mahol
104ea00108 dpx: add CODEC_CAP_DR1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 23:40:55 +00:00
Michael Niedermayer
7bc155163e sgidec: fix off by 1 error that tested a sample too far for oob.
This led to decoding failure when linesize was too small.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-09 01:33:44 +02:00
Paul B Mahol
30659a2233 smush: properly flag audio packets
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 20:49:35 +00:00
Paul B Mahol
26fa84105b paf: properly flag video packets
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-08 20:49:04 +00:00
Michael Niedermayer
ca1f2b3e10 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cmutils: include shellapi.h on Win32 (for CommandLineToArgvW).
  x86/timer: implement an intrinsic-based version for rdtsc (AV_READ_TIME).
  id3v2: add a mimetype for bmp pictures.
  flacdec: be less strict when parsing attached pictures.
  flacdec: don't create an attached picture stream until we have all information.

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 22:33:32 +02:00
Michael Niedermayer
d8ce478c43 lavf: limit "Adjusting PTS forward" code to video streams
It can end up slightly messing up a series of valid timestamps
after a invalid one.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 22:29:34 +02:00
Justin Ruggles
6410397600 lavr: resampling: add support for s32p, fltp, and dblp internal sample formats
Based partially on implementation by Michael Niedermayer <michaelni@gmx.at> in
libswresample in FFmpeg. See commits:
7f1ae79d38
24ab1abfb6
2012-07-08 15:22:11 -04:00
Justin Ruggles
372647aed0 lavr: resampling: add filter type and Kaiser window beta to AVOptions 2012-07-08 15:22:11 -04:00
Justin Ruggles
8ca08066fc lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format
Also make this the default value.
2012-07-08 15:22:11 -04:00
Justin Ruggles
db0e7bd0bd lavr: mix: validate internal sample format in ff_audio_mix_init() 2012-07-08 15:22:11 -04:00
Nicolas George
299387ebf4 vf_settb: rename the file as f_settb. 2012-07-08 19:54:08 +02:00
Nicolas George
65e65e3ce2 settb: cosmetic: reindent vf_settb structure. 2012-07-08 19:54:08 +02:00
Nicolas George
ba856c0be5 lavfi: implement asettb filter. 2012-07-08 19:54:08 +02:00
Michael Niedermayer
99622f6678 mpegaudioenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 17:59:56 +02:00
Michael Niedermayer
a6a085a928 v4l2: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 17:59:56 +02:00
Stefano Sabatini
3f345290dc lavf/segment: sort options 2012-07-08 17:38:24 +02:00
Stefano Sabatini
8dc31f8da8 lavf/segment: make use of av_parse_time() when parsing the -segment_time value
Increase flexibility/consistency.

Also rename recording_time field to time, for enhanced
consistency/readability.
2012-07-08 17:38:04 +02:00
Stefano Sabatini
0a7b8effbb doc/muxers: sort options for the segment muxer 2012-07-08 17:08:56 +02:00
Stefano Sabatini
7f08bfae6e lavf/segment: add segment_list_type option, extend format for the segment list file
Add list extended format which specifies in the list file the start and
ending time for each segment. This is required to make it available this
information to external tools, avoiding the need to perform file analysis
in the output segments.
2012-07-08 17:08:56 +02:00
Stefano Sabatini
b010d9b586 lavf/nutenc: provide meaningful error message and error code in case of invalid pts 2012-07-08 17:08:56 +02:00
Nicolas George
bba819bd8f fate: FLAC tests require SAMPLES. 2012-07-08 13:41:39 +02:00
Michael Niedermayer
e145afb4b0 vf_tinterlace: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 03:47:38 +02:00
Stefano Sabatini
abb0a9982f lavfi: do not pass opaque field to init functions
Fix signature mismatch warnings.
2012-07-08 01:18:15 +02:00
Paul B Mahol
2d42008757 sanm: make use of dsputil
About 27% faster decoding.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-07 22:33:13 +00:00
Michael Niedermayer
acdf9a6ca5 aacdec: correct "audio config changed" warning message
Idea-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 00:26:27 +02:00
Hendrik Leppkes
d039b6074c latm: fix initialization on some streams when no extradata is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-08 00:26:26 +02:00
Ronald S. Bultje
66a297975d cmutils: include shellapi.h on Win32 (for CommandLineToArgvW).
This is required for CommandLineToArgvW. Normally, shellapi.h is included
implicitly by windows.h, but if we define WIN32_LEAN_AND_MEAN (or some of
the other earlier headers have included windows.h with that option),
windows.h doesn't include this one.

Thus explicitly include the headers we really need, for clarity and
compatibility.
2012-07-07 14:09:04 -07:00
Clément Bœsch
7073174551 x86inc: put basicnop under ifdef to prevent compile failure.
This should fix the NASM box.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 22:48:43 +02:00
Ronald S. Bultje
07b287020c x86/timer: implement an intrinsic-based version for rdtsc (AV_READ_TIME). 2012-07-07 13:35:07 -07:00
Michael Niedermayer
68712ce820 swr/x86: 16bit integer mix functions need SSE2 not SSE
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 20:52:34 +02:00
Anton Khirnov
25b51b2c44 id3v2: add a mimetype for bmp pictures. 2012-07-07 20:34:41 +02:00
Anton Khirnov
b7d3a9a015 flacdec: be less strict when parsing attached pictures.
Only return an error if memory allocation fails or error recognition is
set to explode. Otherwise just print an error message and continue
reading the file.
2012-07-07 20:34:20 +02:00
Anton Khirnov
dba5b06ead flacdec: don't create an attached picture stream until we have all information.
This way we don't end with an invalid stream if parsing the picture
fails.
2012-07-07 20:33:44 +02:00
Michael Niedermayer
3245c8b669 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mxfdec: replace x>>av_log2(sizeof(..)) by x/sizeof(..).
  x86: h264_intrapred: Don't add the 'd' suffix to the SPLATB_REG macro

Conflicts:
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 20:29:43 +02:00
Loren Merritt
e14052dbc8 x86: h264_intrapred: use newly introduced SPLAT* and PSHUFLW macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 20:26:39 +02:00
Michael Niedermayer
dc12f7d4ec x86inc: try to put amdnop under ifdef to prevent compile failure
based on similar amdnop usage in ffmpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 20:16:56 +02:00
Michael Niedermayer
9fb08427d7 vf_pp: dont pass NULL into pp, it would fail
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 19:14:51 +02:00
Michael Niedermayer
561a365dca pp: check that the argument is not NULL as this is not supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 19:14:21 +02:00
Ronald S. Bultje
fdaad6354f mxfdec: replace x>>av_log2(sizeof(..)) by x/sizeof(..).
Also replace x>>av_log2(sizeof(..)) + 1 by x/sizeof(..). The +1 is
probably meant to emulate av_log2_ceil(sizeof(..)) in cases where ".."
is not a power of two.
2012-07-07 10:09:59 -07:00
Tim Nicholson
bb62a8b690 doc: update mono to stereo workaround example
Now uses -filter_complex instead of deprecated lavfi/amovie

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 17:37:16 +02:00
Michael Niedermayer
dadfd2a525 tools/bisect: rename to tools/bisect-create
Idea-by: Alexander Strasser
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 14:51:51 +02:00
Michael Niedermayer
6de70d7fbf tools/bisect: rename temporary file and add it to git ignore
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 13:15:01 +02:00
Michael Niedermayer
ccc0a3a9fa tool/bisect: add some magic to make the bisect tool be useable when its not part of a checkout
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 13:10:06 +02:00
Hendrik Leppkes
d9dcc940fa vc1: implement frame interlaced b-frame header parsing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 13:02:22 +02:00
Michael Niedermayer
50bfd547b9 log: fix compilation failure on mingw due to reference to undefined set_color256
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 12:57:13 +02:00
Michael Niedermayer
d3f4fd76d5 celp_math: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 12:34:04 +02:00
Michael Niedermayer
dc7aecd8f7 cabac: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 12:33:51 +02:00
Paul B Mahol
1842b27564 lavu: 256 color support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-07 01:41:55 +00:00
Michael Niedermayer
46a47077ee Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: add functions for testing code fragments
  af_amix: avoid spurious EAGAIN.
  af_amix: return AVERROR(EAGAIN) when request_frame didn't produce output.
  af_amix: only consider negative return codes as errors.
  avconv: use only meaningful timestamps in start time check.
  avconv: fix the check for -ss as an output option.
  mss3: add forgotten 'static' qualifier for private table
  lavc: options: add planar names for request_sample_fmt
  flacdec: add planar output support
  flvdec: Treat all nellymoser versions as the same codec

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-07 02:17:30 +02:00
Paul B Mahol
a6da14ec3c tiffenc: PIX_FMT_GRAY8A support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 19:54:10 +00:00
Paul B Mahol
df548c59f7 tiffenc: PIX_FMT_GRAY16LE support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 19:40:45 +00:00
Paul B Mahol
1806858fdd tiffenc: merge common code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 19:39:32 +00:00
Paul B Mahol
146d29c744 tiffenc: use av_get_bits_per_pixel() to get bpp
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 19:39:24 +00:00
Paul B Mahol
82c4abbfe1 tiffenc: use av_pix_fmt_descriptors to set bpp_tab[]
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 19:32:44 +00:00
Paul B Mahol
e100a259be tiffenc: simplify calculation of bpp_tab_size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 19:32:44 +00:00
Martin Storsjö
f27386cdc7 x86: h264_intrapred: Don't add the 'd' suffix to the SPLATB_REG macro
The SPLATB_REG macro already adds the 'd' suffix internally.

This fixes building on Win64, which has been broken since 878e66902.

This worked for unix, where r2 happened to be rdx in this case, which
with the first suffix rdxd was mapped to eax, and eaxd is defined back
to eax. On win64 however, r2 happened to be R8 in this case, and
R8d mapps to R8D just fine, but there's no mapping for R8Dd to anything.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-06 21:07:23 +03:00
Mans Rullgard
5adc829eb0 configure: add functions for testing code fragments
This simplifies testing arbitrary code fragments within a function
body.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-06 19:22:08 +02:00
Nicolas George
5997285d3a ffmpeg: poll filters even after -t limit.
If not, frames can still arrive to the sink and accumulate.
The frames past recording time will be ignored in do_*_out.
2012-07-06 18:33:48 +02:00
Pavel Koshevoy
665100c2f1 Fix destination row striding in altivec_yuv2_bgr24.
Misaligned row artifacts showed up when a 624x352 frame was converted
to BGR24 format.  When advancing to the next row the destination linesize
was added to the last output pointer position which was not linesize aligned,
resulting in a distorted picture.

Signed-off-by: Pavel Koshevoy <pavel@apple.aragog.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 17:40:43 +02:00
Lou Logan
b22ecbc6a5 cosmetics: various spelling fixes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 17:08:22 +02:00
Anton Khirnov
b7558ac293 af_amix: avoid spurious EAGAIN.
Input on/off state can change in request_samples(), which can result in
a state where only the first input is active. get_available_samples()
will then return 0, and request_frame() will fail with EAGAIN even
though there is data on the single active input.

Take this into account and check the number of active inputs again after
calling request_samples().
2012-07-06 13:51:58 +02:00
Anton Khirnov
54bf88e65f af_amix: return AVERROR(EAGAIN) when request_frame didn't produce output.
0 should only be returned when there was at least one output frame.
2012-07-06 13:51:58 +02:00
Anton Khirnov
428b369804 af_amix: only consider negative return codes as errors. 2012-07-06 13:51:58 +02:00
Anton Khirnov
53ddd43f0c avconv: use only meaningful timestamps in start time check. 2012-07-06 12:59:11 +02:00
Anton Khirnov
b98c8f4f2b avconv: fix the check for -ss as an output option.
start time is already substracted from the frame timestamp, so it needs
to be checked against 0, not start time.
2012-07-06 12:54:52 +02:00
Georg Lippitsch
60270eb482 doc/indevs/iec61883: document requirements for iec61883 device
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-06 11:47:50 +02:00
Michael Niedermayer
e0d6b9094c configure: cleanup libiec61883 code, allow enabling via command line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-06 11:43:49 +02:00
Kostya Shishkov
1f061da529 mss3: add forgotten 'static' qualifier for private table 2012-07-06 11:37:35 +02:00
Paul B Mahol
6936111d66 bmv: add CODEC_CAP_DR1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 02:19:21 +00:00
Michael Niedermayer
894319e010 lpc: use default number of passes when lpc_passes is invalid
Should fix valgrind failure (uninitialized vars)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 04:04:10 +02:00
Paul B Mahol
8f239412d8 tiffdec: PIX_FMT_GRAY16LE support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 01:11:34 +00:00
Nicolas George
8293a21a9c lavc: fix shared build after dnxhd merge.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 02:44:17 +02:00
Michael Niedermayer
ec08676232 Blowfish: restructure/simplify code a bit.
Very slightly faster (2% or so)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 02:25:29 +02:00
Michael Niedermayer
9862cbd7a4 add side data to indicate the amount of samples to skip at the begin and end
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Reveiwed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 02:25:29 +02:00
Michael Niedermayer
636dbe2678 fate: increase fuzzyness for ac3 encode for 3dnow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-06 02:25:29 +02:00
Paul B Mahol
c2cbe58cd4 paf: add forgotten CODEC_CAP_DR1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-06 00:19:12 +00:00
Stefano Sabatini
3e3e414fe4 lavfi/buffersink: fix doxy, remove "video" reference
The file contains the code for the audio buffersink as well.
2012-07-06 01:11:45 +02:00
Mans Rullgard
0a19000da8 lavc: options: add planar names for request_sample_fmt
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-05 21:57:51 +01:00
Mans Rullgard
784514a4a8 flacdec: add planar output support
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-05 21:57:51 +01:00
Michael Niedermayer
24823a761c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  qdm2: remove broken and disabled dump_context() debug function
  x86: h264_intrapred: use newly introduced SPLAT* and PSHUFLW macros
  x86inc: add SPLATB_LOAD, SPLATB_REG, PSHUFLW macros
  x86inc: modify ALIGN to not generate long nops on i586
  x86: h264_intrapred: port to cpuflag macros
  avplay: update input filter pointer when the filtergraph is reset.
  avconv: fix parsing of -force_key_frames option.
  h264: use templates to avoid excessive inlining
  xtea: Make the count parameter match the documentation
  blowfish: Make the count parameter match the documentation
  mpegvideo: Don't use ff_mspel_motion() for vc1
  xtea: invert branch and loop precedence
  blowfish: invert branch and loop precedence
  flvdec: optionally trust the metadata
  avconv: Set audio filter time base to the sample rate
  vp8: Add ifdef guards around the sse2 loopfilter in the sse2slow branch too

Conflicts:
	ffmpeg.c
	ffplay.c
	libavcodec/h264.c
	libavcodec/mpegvideo_common.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 21:55:31 +02:00
Martin Storsjö
e43f56b205 flvdec: Treat all nellymoser versions as the same codec
This avoids creating new AVStreams for them when switching between
different variants of them, since we can handle changes between
different sample rates of nellymoser within the same stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 22:07:45 +03:00
Michael Niedermayer
92c7ef1e30 Merge branch 'mxfenc_improvements' of https://github.com/mbouron/FFmpeg
* 'mxfenc_improvements' of https://github.com/mbouron/FFmpeg:
  mxfenc: support dnxhd codec
  mxfenc: support smpte dv codec

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 20:40:41 +02:00
Michael Niedermayer
acb52d3228 h264: print error on unsupported seperate color planes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 19:18:10 +02:00
Diego Biurrun
bb58c43c69 qdm2: remove broken and disabled dump_context() debug function 2012-07-05 17:37:12 +02:00
Diego Biurrun
878e669029 x86: h264_intrapred: use newly introduced SPLAT* and PSHUFLW macros 2012-07-05 17:37:11 +02:00
Loren Merritt
4d4752366f x86inc: add SPLATB_LOAD, SPLATB_REG, PSHUFLW macros
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-05 17:37:11 +02:00
Loren Merritt
2cd1f5cadc x86inc: modify ALIGN to not generate long nops on i586
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-05 17:37:11 +02:00
Diego Biurrun
d20f133ef9 x86: h264_intrapred: port to cpuflag macros 2012-07-05 17:37:10 +02:00
Carl Eugen Hoyos
50d0f6cee9 Extend -codecs output.
Allow to show different supported multi-threading methods for an
encoder/decoder pair.

Fixes ticket #1512
2012-07-05 16:46:19 +02:00
Michael Niedermayer
c88e60af76 swr/x86: 10l, missed some SSE2 instructions in code marked as SSE.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 15:28:10 +02:00
Michael Niedermayer
0348102835 configure: dont blindly enable iec61883
This should fix a configure failure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 13:42:25 +02:00
Matthieu Bouron
d99001cab3 mxfenc: support dnxhd codec 2012-07-05 13:34:49 +02:00
Matthieu Bouron
135e684311 mxfenc: support smpte dv codec
After some internal talks it seems the code is similar to what is in FFmbc
by Baptiste Coudurier; Baptiste accepted to relicense the similiar chunks
from GPL to LGPL.
2012-07-05 13:34:43 +02:00
Anton Khirnov
2696789c52 avplay: update input filter pointer when the filtergraph is reset.
Fixes an invalid read on size change.
2012-07-05 13:15:36 +02:00
Reimar Döffinger
4c679750cb avconv: fix parsing of -force_key_frames option.
Currently it always exits with an error when more than
one position is specified.

CC: libav-stable@libav.org
2012-07-05 13:15:36 +02:00
Georg Lippitsch
325fb246f2 FireWire DV/HDV input device using libiec61883
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-05 13:02:49 +02:00
Mans Rullgard
28fff0d974 h264: use templates to avoid excessive inlining
Instead of inlining everything into ff_h264_hl_decode_mb(), use
explicit templating to create versions of the called functions
with constant parameters filled in.  This greatly speeds up
compilation of h264.c and reduces the code size without any
measurable impact on performance.

Compilation time for h264.c on an i7 goes from 30s to 5.5s.
Code size is reduced by 430kB.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-05 11:50:18 +01:00
Nedeljko Babic
6d74e3c6f2 Optimization of MP3 decoders for MIPS
MP3 fixed and floating point decoders are optimized
 for MIPS architecture.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Reviewed-by: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 12:24:03 +02:00
Michael Niedermayer
4ea705114c Merge git://github.com/mjbshaw/FFmpeg-OpenJPEG-J2K-Encoder
* git://github.com/mjbshaw/FFmpeg-OpenJPEG-J2K-Encoder:
  libopenjpegdec: add support for decoding YUV420/422/444P12/14
  libopenjpegenc: cosmetics: reorder pix_fmts
  libopenjpegenc: add support for YUV420/422/444P12/14

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 12:15:48 +02:00
Samuel Pitoiset
983db9b2b4 xtea: Make the count parameter match the documentation
Previously it was interpreted as number of bytes, while the
documentation stated that it was the number of 8 byte blocks.
This makes it behave similarly to the existing AES code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 12:45:18 +03:00
Samuel Pitoiset
e4a7fb3da3 blowfish: Make the count parameter match the documentation
Previously it was interpreted as number of bytes, while the
documentation stated that it was the number of 8 byte blocks.
This makes it behave similarly to the existing AES code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 12:41:57 +03:00
Michael Niedermayer
18f2d5cb9c mpegvideo: Don't use ff_mspel_motion() for vc1
Using ff_mspel_motion assumes that s (a MpegEncContext
poiinter) really is a Wmv2Context.

This fixes crashes in error resilience on vc1/wmv3 videos.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 12:41:19 +03:00
Alexander Strasser
1fe6cb448a lavf/file: cosmetic: Use "not" instead of "equals zero"
This is more similar to the "overall" FFmpeg coding style.
2012-07-05 10:55:49 +02:00
Alexander Strasser
585bd4922a lavf/file: cosmetic: Remove superfluous ternary operator 2012-07-05 10:55:49 +02:00
Alexander Strasser
e1613476ff doc/fate: Rework examples to a section of its own
Make it easier to spot the example. This way it can already be
discovered by scanning the table of contents.
2012-07-05 10:55:49 +02:00
Alexander Strasser
c44cae7ec5 doc/fate: Add hint for debugging connection to server 2012-07-05 10:55:49 +02:00
Alexander Strasser
10fa37c573 doc/fate: Add missing @file command
Make the document more consistent.
2012-07-05 10:55:49 +02:00
Alexander Strasser
52a3d57e00 doc/fate: Use more commonly used terms
It might be easier to understand for some people and is a bit more
in line with e.g. OpenSSH documentation. The meaning of the text stays
exactly the same.
2012-07-05 10:55:49 +02:00
Alexander Strasser
5fc74f022e doc/fate: Add email address for contacting the FATE admin 2012-07-05 10:55:48 +02:00
Luca Barbato
f6687bf5f8 xtea: invert branch and loop precedence
Should slightly improve performance depending on the compiler used.
2012-07-05 10:42:00 +02:00
Luca Barbato
669bbedfa8 blowfish: invert branch and loop precedence
Should slightly improve performance depending on the compiler used.
2012-07-05 10:40:13 +02:00
Luca Barbato
5b54a90c8b flvdec: optionally trust the metadata
In certain conditions video or audio frames might appear way later in the
stream.
2012-07-05 10:37:34 +02:00
Martin Storsjö
715129cdc4 avconv: Set audio filter time base to the sample rate
If the output frame size is smaller than the input sample rate,
and the input stream time base corresponds exactly to the input
frame size (getting input packet timestamps like 0, 1, 2, 3, 4 etc),
the output timestamps from the filter will be like
0, 1, 2, 3, 4, 4, 5 ..., leadning to non-monotone timestamps later.

A concrete example is input mp3 data having frame sizes of 1152
samples, transcoded to aac with 1024 sample frames.

By setting the audio filter time base to the sample rate, we will
get sensible timestamps for all output packets, regardless of
the ratio between the input and output frame sizes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 09:57:04 +03:00
Martin Storsjö
07eeeb1d4f vp8: Add ifdef guards around the sse2 loopfilter in the sse2slow branch too
This was missed in the the previous commit in 70a1c800.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 09:39:01 +03:00
Carl Eugen Hoyos
b5baad3a4c Install libavutil/version.h
Fixes ticket #1513
2012-07-05 08:21:49 +02:00
Paul B Mahol
7de4a16508 PAF demuxer and decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-05 02:54:34 +00:00
Michael Niedermayer
9b2b57681c sws/x86: add av_assert() to ensure 16bit code is used with 16bit data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 04:39:11 +02:00
Michael Niedermayer
a32032b508 sws/x86: add some forgotten 12bit planar yuv cases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 04:38:57 +02:00
Carl Eugen Hoyos
73bb4e9ca6 nut: add 12/14 bit yuv to nut/raw
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-05 04:23:55 +02:00
Paul B Mahol
1f9bc3104a sanm: remove code duplication
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-04 23:40:18 +00:00
Paul B Mahol
3b9dd906d1 sanm: replace conditions in for loops with more common version
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-04 23:38:58 +00:00
Michael Niedermayer
fa36f33422 sws: support 12&14 bit planar colorspaces
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 23:47:01 +02:00
Michael Niedermayer
1f29504204 blowfish.h: include author attribution
Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 23:23:17 +02:00
Michael Niedermayer
0713c38ea3 xtea.h: include author attribution
Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 23:23:09 +02:00
Michael Niedermayer
039e9fe01c Merge remote-tracking branch 'qatar/master'
* qatar/master: (29 commits)
  lavfi: reclassify showfiltfmts as a TESTPROG
  graph2dot: fix printf format specifier
  swscale: yuv2planeX 8bit >=sse2 functions need aligned stack on x86-32.
  vp8: loopfilter >=sse2 functions need aligned stack on x86-32.
  amr: remove shift out of the AMR_BIT() macro.
  dsputilenc: group yasm and inline asm function pointer assignment.
  mov: use forward declaration of a function instead of a table.
  Clarify Doxygen comment for FF_API_* #defines.
  configure: simplify get_version()
  Create version.h headers for libraries that lack them
  gitignore: Use full path instead of relative path to specify patterns
  mpegvideo: remove VLAs
  Add XTEA encryption support in libavutil
  Add Blowfish encryption support in libavutil
  eval: Add the isinf() function and tests for it
  flacdec: move lpc filter to flacdsp
  flacdec: split off channel decorrelation as flacdsp
  avplay: Add an option for not limiting the input buffer size
  FATE: add a test for WMA cover art.
  FATE: add a test for apetag cover art
  ...

Conflicts:
	.gitignore
	configure
	ffplay.c
	libavcodec/Makefile
	libavcodec/error_resilience.c
	libavcodec/mpegvideo.c
	libavcodec/ratecontrol.c
	libavdevice/avdevice.h
	libavfilter/Makefile
	libavfilter/filtfmts.c
	libavfilter/version.h
	libavformat/mov.c
	libavformat/version.h
	libavutil/Makefile
	libavutil/avutil.h
	libavutil/version.h
	libswscale/swscale.h
	libswscale/x86/swscale_mmx.c
	tests/fate/libavutil.mak
	tests/lavfi-regression.sh
	tools/graph2dot.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 21:03:28 +02:00
Nicolas George
8b421fad24 dpx: sanitize aspect ratio.
Fixes some samples where the ratio is declared as -1/-1.
2012-07-04 18:59:39 +02:00
Mans Rullgard
7c29377b70 lavfi: reclassify showfiltfmts as a TESTPROG
This tool uses lavfi internal symbols not accessible in shared
libraries.  TESTPROGS are linked statically to allow them use of
library internals not normally exported.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 17:48:25 +01:00
Diego Biurrun
fa2d747352 graph2dot: fix printf format specifier
tools/graph2dot.c:85: warning: format ‘%lld’ expects type ‘long long int’, but argument 4 has type ‘int’
2012-07-04 18:12:48 +02:00
Martin Storsjö
557519189f swscale: yuv2planeX 8bit >=sse2 functions need aligned stack on x86-32.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-04 08:25:57 -07:00
Martin Storsjö
70a1c8000f vp8: loopfilter >=sse2 functions need aligned stack on x86-32.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-04 08:25:50 -07:00
Ronald S. Bultje
c51838478c amr: remove shift out of the AMR_BIT() macro.
MSVC doesn't like the offsetof(..) >> 1 construct, it interprets it as
a non-literal, thus causing use of this in static tables to fail
compilation.
2012-07-04 07:46:53 -07:00
Ronald S. Bultje
723b266d72 dsputilenc: group yasm and inline asm function pointer assignment. 2012-07-04 07:46:27 -07:00
Ronald S. Bultje
1ce1e6360d mov: use forward declaration of a function instead of a table.
MSVC gives a compile error on the tentative definition of
mov_default_parse_table[].
2012-07-04 07:45:30 -07:00
Michael Bradshaw
d3b84fdccc libopenjpegdec: add support for decoding YUV420/422/444P12/14
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-07-04 08:37:52 -06:00
Michael Bradshaw
713a7854e0 libopenjpegenc: cosmetics: reorder pix_fmts
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-07-04 08:37:46 -06:00
Michael Bradshaw
7544ef7805 libopenjpegenc: add support for YUV420/422/444P12/14
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-07-04 08:37:42 -06:00
Nicolas George
2fc354f90d ffmpeg: rework checks for the -t option.
This commit is based on libav's implementation and
makes sure to compare output timestamps together.
It also reduces the differences with avconv.

The changes to the test reference files are caused
by an additional packet at the end, the timestamp
of the frame encoded by this packet is always
strictly below the limit stated by the -t option.
2012-07-04 16:20:47 +02:00
Nicolas George
7beeea8f17 error: define AVERROR_EXTERNAL.
This code is intended for errors in external libraries
when no corresponding error code can be found.
AVERROR_UNKNOWN is too vague for that and looks like AVERROR_BUG.
2012-07-04 15:45:05 +02:00
Nicolas George
aa39516a04 error: define AVERROR_BUFFER_TOO_SMALL.
Some API require a buffer and return a specific error
if it is too small. This error code helps to map codes.
2012-07-04 15:33:14 +02:00
Diego Biurrun
2047e40e6e Clarify Doxygen comment for FF_API_* #defines. 2012-07-04 15:10:10 +02:00
Diego Biurrun
112971af26 configure: simplify get_version()
All libs have version headers now, which allows hardcoding the path.
2012-07-04 15:10:08 +02:00
Diego Biurrun
86ab7b0f2f Create version.h headers for libraries that lack them 2012-07-04 15:10:06 +02:00
Diego Biurrun
40e61b7b07 gitignore: Use full path instead of relative path to specify patterns
This avoids confusion from patterns meant to only match at the top
level matching files in subdirectories.
2012-07-04 15:10:01 +02:00
Ronald S. Bultje
89b81a1c88 mpegvideo: remove VLAs
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-04 15:10:57 +03:00
Samuel Pitoiset
8c14f7a593 Add XTEA encryption support in libavutil
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-04 15:10:57 +03:00
Samuel Pitoiset
bc3dbcc8e5 Add Blowfish encryption support in libavutil
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-04 15:10:57 +03:00
Martin Storsjö
143f1e9203 eval: Add the isinf() function and tests for it
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-04 15:10:56 +03:00
Mans Rullgard
25accf93ad flacdec: move lpc filter to flacdsp
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 12:24:30 +01:00
Mans Rullgard
4a8528349f flacdec: split off channel decorrelation as flacdsp
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 12:24:30 +01:00
Martin Storsjö
296d0da8bd avplay: Add an option for not limiting the input buffer size
For reading from normal files on disk, the queue limits for
demuxed data work fine, but for reading data from realtime
streams, they mean we're not reading from the input stream
at all once the queue limit has been reached. For TCP streams,
this means that writing to the socket from the peer side blocks
(potentially leading to the peer dropping data), and for UDP
streams it means that our kernel might drop data.

For some protocols/servers, the server initially sends a
large burst with data to fill client side buffers, but once
filled, we should keep reading to avoid dropping data.

For all realtime streams, it IMO makes sense to just buffer
as much as we get (rather in buffers in avplay.c than in
OS level buffers). With this option set, the input thread
should always be blocking waiting for more input data,
never sleeping waiting for the decoder to consume data.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-04 11:11:08 +03:00
Carl Eugen Hoyos
ab2356cb79 Let the ffmpeg executable select the abuffersink filter. 2012-07-04 08:47:04 +02:00
Anton Khirnov
1c840fa227 FATE: add a test for WMA cover art. 2012-07-04 05:59:14 +02:00
Anton Khirnov
8059d3b7d4 FATE: add a test for apetag cover art 2012-07-04 05:59:05 +02:00
Anton Khirnov
bf2a7f9161 FATE: add a test for itunes cover art. 2012-07-04 05:58:47 +02:00
Mans Rullgard
87466f8124 flacdec: factor out code setting avctx->sample_fmt 2012-07-04 03:34:34 +01:00
Mans Rullgard
d155b60fc8 flac: make FLAC_CHMODE_* constants consecutive 2012-07-04 03:30:43 +01:00
Mans Rullgard
93e7ef9a24 flacdec: allocate sample buffers with av_malloc
The buffers are only allocated once, although it can happen from
any of a few different places, so there is no need to use realloc.
Using av_malloc() ensures they are aligned suitably for SIMD
optimisations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 03:30:01 +01:00
Mans Rullgard
0da301e105 flacdec: remove curr_bps from FLACContext
This value does not need to be persistent across calls.
2012-07-04 03:29:29 +01:00
Michael Niedermayer
df3a96c497 ffmpeg: Add sanity check on frame duplication
This prevents long loops and OOM in case of damaged timestamps in some
cases

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 04:17:00 +02:00
Piotr Bandurski
a54bc1ebb8 riff: add "YUV8" FourCC
sample:

http://samples.mplayerhq.hu/V-codecs/yuv8/MAILTEST.AVI

Reviewed-by: compn <tempn@twmi.rr.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 04:17:00 +02:00
Mans Rullgard
983fa8bc46 fate: add flac encode/decode tests with various options
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 01:22:40 +01:00
Mans Rullgard
360aa2465a flacenc: add option for forcing stereo decorrelation mode
This is mainly useful for testing.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 01:22:40 +01:00
Stefano Sabatini
776a4e42a7 doc/muxers/segment: apply minor documentation updates and adjustements
Update documentation to match code behavior after previous changes, also
reword the examples section.
2012-07-04 01:17:58 +02:00
Michael Niedermayer
5eb4af6c59 snow: move init code that depends on picture paramaters to after these parameters are known.
This should fix debug 2048 amongth other things

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 01:02:01 +02:00
Michael Niedermayer
93d672967d video_get_buffer: return ENOMEM instead of -1 on malloc failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 00:47:18 +02:00
Michael Niedermayer
f339ebc1ff lavc/utils: print error message on get_buffer related errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 00:46:36 +02:00
Michael Niedermayer
f91b7d8030 mdutils: print error message on error get_buffer related errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 00:46:08 +02:00
Michael Niedermayer
86e107a7d4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cosmetics: Consistently use C-style comments with multiple inclusion guards
  anm: fix a few Doxygen comments
  misc typo and wording fixes
  attributes: add av_noreturn
  attributes: drop pointless define guards
  configure: do not disable av_always_inline with --enable-small
  flvdec: initial stream switch support
  avplay: fix write on freed memory for rawvideo
  snow: remove a VLA used for edge emulation
  x86: lavfi: fix gradfun/yadif build with mmx/sse disabled
  snow: remove the runs[] VLA.
  snow: Check mallocs at init
  flacdec: remove redundant setting of avctx->sample_fmt

Conflicts:
	ffplay.c
	libavcodec/h264.c
	libavcodec/snow.c
	libavcodec/snow.h
	libavcodec/snowdec.c
	libavcodec/snowenc.c
	libavformat/flvdec.c
	libavutil/attributes.h
	tools/patcheck

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-04 00:32:31 +02:00
Stefano Sabatini
af392efe51 lavf/segment: rename SegmentContext.pb to list_pb
The new name is more auto-explicative, as the pb is used for the segment
list file.
2012-07-04 00:02:56 +02:00
Stefano Sabatini
d8013f38ab lavf/segment: add error log in case of invalid filename template
Better rather than silently exit.
2012-07-03 23:26:07 +02:00
Stefano Sabatini
a1e092ccd3 lavf/segment: fix logic for segmenting audio-only inputs
Also add a comment for clarifying the logic.

Fix trac ticket #1290.
2012-07-03 23:23:36 +02:00
Stefano Sabatini
4e2899dd31 lavf/segment: add more information in log message in seg_write_packet() 2012-07-03 23:23:29 +02:00
Nedeljko Babic
597282efa7 doc: add documentation regarding MIPS optimizations
Add doc/mips.txt document with short explanation regarding targeted
platform for MIPS optimizations and regarding MIPS copyright notice.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-07-03 22:06:10 +02:00
Stefano Sabatini
fd0e6ef99a lavf/segment: remove unused offset variable 2012-07-03 21:48:50 +02:00
Stefano Sabatini
77dcae5d74 lavf/segment: apply misc fixes to the private options internal documentation
Option help message tell what the option *does*, not what the set field
represents.
2012-07-03 21:48:50 +02:00
Stefano Sabatini
a5af29336a lavf/segment: slightly simplify fail logic in seg_write_packet() 2012-07-03 21:48:50 +02:00
Stefano Sabatini
4ad17bc76b lavf/segment: move list filename printing logic from segment_end() to segment_start()
Allow to deal with the list file printing only in a single point, thus
simplifying logic, and allow a bit of factorization (no special case
needed when printing the first file name of the list).
2012-07-03 21:48:50 +02:00
Martin Storsjö
30327865f3 ismindex: Verify that all bitrate variants match
In Smooth Streaming, the fragments are addressed by time, and
the manifest only stores one list of time offests for all streams,
so all streams need to have identical fragment offsets. Warn if
this isn't the case, so that the user can fix the files instead of
getting failures at runtime when the fragments can't be found.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 22:46:58 +03:00
Martin Storsjö
1be8c90847 ismindex: Properly report errors reading the MFRA atom
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 22:46:53 +03:00
Carl Eugen Hoyos
71e5a14028 Suggest aresample filter if it was not compiled but requested. 2012-07-03 21:35:20 +02:00
Michael Niedermayer
6ea973fc4c avcodec_align_dimensions2: support 12 & 14 bit planar colorspaces
Reviewed-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 19:03:40 +02:00
Michael Niedermayer
4251a0b84c imgconvert: add planar RGB formats to pix_fmt_info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 19:03:26 +02:00
Michael Niedermayer
6ca8ef5189 imgconvert: add yuv 9,10,12,14 bit planar YUV formats to pix_fmt_info
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 19:03:26 +02:00
Michael Niedermayer
e9757066e1 libavutil: add 12 and 14 bit planar colorspaces
Reviewed-by: Jean First <jeanfirst@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 19:02:34 +02:00
Diego Biurrun
1a068bfefd cosmetics: Consistently use C-style comments with multiple inclusion guards 2012-07-03 17:35:12 +02:00
Diego Biurrun
4051be6f50 anm: fix a few Doxygen comments 2012-07-03 17:35:11 +02:00
Diego Biurrun
09f211987c misc typo and wording fixes 2012-07-03 17:35:11 +02:00
Reinhard Tartler
22662ca560 attributes: add av_noreturn
Also use it in the declaration of the various exit_program
implementations in avtools.

inspired by a clang-scan report.
2012-07-03 17:26:51 +02:00
Reinhard Tartler
a1641e9540 attributes: drop pointless define guards
the av_-prefixed attributes must not be defined outside of this file
2012-07-03 17:26:51 +02:00
Mans Rullgard
06eb4f0885 configure: do not disable av_always_inline with --enable-small
Currently, --enable-small turns av_always_inline into plain inline,
which is more or less ignored by the compiler.  While the intent of
this is probably to reduce code size by avoiding some inlining, it
has more far-reaching effects.

We use av_always_inline in two situations:

1. The body of a function is smaller than the call overhead.
   Instances of these are abundant in libavutil, the bswap.h
   functions being good examples.

2. The function is a template relying on constant propagation
   through inlined calls for sane code generation.  These are
   often found in motion compensation code.

Both of these types of functions should be inlined even if targeting
small code size.

Although GCC has heuristics for detecting the first of these types,
it is not always reliable, especially when the function uses inline
assembler, which is often the reason for having those functions in
the first place, so making it explicit is generally a good idea.

The size increase from inlining template-type functions is usually
much smaller than it seems due to different branches being mutually
exclusive between the different invocations.  The dead branches can,
however, only be removed after inlining and constant propagation have
been performed, which means the initial cost estimate for inlining
these is much higher than is actually the case, resulting in GCC
often making bad choices if left to its own devices.

Furthermore, the GCC inliner limits how much it allows a function to
grow due to automatic inlining of calls, and this appears to not take
call overhead into account.  When nested inlining is used, the limit
may be hit before the innermost level is reached.  In some cases, this
has prevented inlining of type 1 functions as defined above, resulting
in significant performance loss.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 16:10:54 +01:00
Luca Barbato
09a445ce34 flvdec: initial stream switch support
Codec change midstream gets mapped to a separate stream.
2012-07-03 15:35:51 +02:00
Luca Barbato
906f9dce85 avplay: fix write on freed memory for rawvideo
Do not assume avpacket and the decoded frames are independent.

To be absolutely sure and not sprinkle av_free_packet around the code
the call had been placed before getting the frame and on the error path.
2012-07-03 15:35:51 +02:00
Ronald S. Bultje
3389545157 snow: remove a VLA used for edge emulation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 16:31:23 +03:00
Mans Rullgard
fb93e61e2b x86: lavfi: fix gradfun/yadif build with mmx/sse disabled
These functions are defined conditionally so any uses need to have
preprocessor guards.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 14:14:13 +01:00
Paul B Mahol
5d171b1f47 jvdec: check if there is enough data
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Paul B Mahol
f8a81755c2 jvdec: remove redundant check
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Paul B Mahol
1bc9e4c5b2 jvdec: remove buf_size
It is same as avpkt->size.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Paul B Mahol
1c638cfc25 jvdec: stop reading partial palette
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Michael Niedermayer
c673a90b0d tools: add bisect script
This script works like "git bisect" except that you can
specify with "bisect need ffmpeg|ffplay|ffserver|ffprobe" which tool(s)
are needed for testing a checkout

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 13:29:12 +02:00
Michael Niedermayer
c9de83fefd yadif/x86: add prototypes for functions, make code valid C again.
Broken by: libav (a87b17f328)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 12:47:11 +02:00
Michael Niedermayer
114f82ee7e jvdec: check that the video_size fits in the packet.
Prevents use of out of array data and fate failure.

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 12:38:03 +02:00
Paul B Mahol
596814f978 jvdec: fix memleak of jv->frames
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 09:53:42 +00:00
Ronald S. Bultje
cbd9b2f918 snow: remove the runs[] VLA.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 12:16:46 +03:00
Martin Storsjö
4d8516fdb1 snow: Check mallocs at init
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 12:16:39 +03:00
Michael Niedermayer
9d0c71e5e3 jvdemux: correct size for truncated packets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 05:26:15 +02:00
Paul B Mahol
699083edce fate: add test for Bitmap Brothers JV demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 02:18:01 +00:00
Paul B Mahol
7c52070131 fate: add test for Bitmap Brothers JV video
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 02:18:01 +00:00
Michael Niedermayer
6671c40038 h264pred: assert that depth is supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 03:31:06 +02:00
Michael Niedermayer
9c995fe19a h264dsp: assert that depth is supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 03:31:06 +02:00
Michael Niedermayer
5a1bbb3af0 dsputil: assert that depth is supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 03:31:06 +02:00
Stefano Sabatini
bb6effe059 lavfi: remove vsrc_buffer.h API
The vsrc_buffer.h is not installed since commit 0b3b958135, so there is
no point into keeping it around.

The buffersrc.h API, which is more powerful, should be used instead.
2012-07-03 01:32:16 +02:00
Stefano Sabatini
ab7dbdc92c lavc/rawdec: add assertion check in raw_decode()
Check on an implicit assumption done on the number of coded bits for
paletted rawvideo with coded bits == 2.
2012-07-03 01:25:02 +02:00
Stefano Sabatini
17a54f5de8 lavc/rawdec: prefer constant AVPALETTE_SIZE over 256*4
Improve readability.
2012-07-03 01:24:56 +02:00
Michael Niedermayer
4330b8bba2 h264: sps: handle more profiles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 00:40:26 +02:00
Michael Niedermayer
9091ba9dfa h264: add support for constraint_set4_flag / constraint_set5_flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 00:36:26 +02:00
Michael Niedermayer
b6851d34c0 x86/gradfun: fix compilation failure on open solaris
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:51:03 +02:00
Michael Niedermayer
b2527d5d5a Revert "alsdec: remove dead assignments"
This reverts commit 4ca6d206d1.

The assignment is not dead, this should fix fate failures on BSD
2012-07-02 23:43:06 +02:00
Michael Niedermayer
a08efa2e36 has_decode_delay_been_guessed: tighten up the heuristic.
This adds the minimum delay needed with the current decoder to
recognize the reorder buffer size for the reference bitstreams.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:23:33 +02:00
Michael Niedermayer
4e9e0700fb has_decode_delay_been_guessed: skip guessing when sps.num_reorder_frames is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:18:32 +02:00
Michael Niedermayer
1fb07be062 fate: drop strict 1 for MR4_TANDBERG_C.264 and MR5_TANDBERG_C.264
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:18:04 +02:00
Michael Niedermayer
bafa1c7f38 h264: add avpriv_h264_has_num_reorder_frames()
This function exports the exact sps.num_reorder_frames value

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:16:59 +02:00
Mans Rullgard
4719ea7e1e flacdec: remove redundant setting of avctx->sample_fmt
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 22:13:32 +01:00
Michael Niedermayer
2c883c6acf has_decode_delay_been_guessed: improve heuristic
This allows MR4_TANDBERG_C.264 and MR5_TANDBERG_C.264 to be decoded without -strict 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 22:59:42 +02:00
Michael Niedermayer
41dd30068a doc/developer: refer to av_malloc() instead of malloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 21:24:47 +02:00
Michael Niedermayer
b286383bd2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  asfdec: read attached pictures.
  apetag: reindent
  apetag: export attached covers as video streams.
  apetag: fix the amount of data read from binary tags.
  apetag: make sure avio_get_str() doesn't read more than it should.
  mov: read itunes cover art.
  snow: remove VLA in mc_block()
  intfloat: Don't use designated initializers in the public headers
  snow: remove a VLA.
  doc: Remind devs to check return values, especially for malloc() et al
  MS ATC Screen (aka MSS3) decoder
  vf_yadif: move x86 init code to x86/yadif.c
  vf_gradfun: move x86 init code to x86/gradfun.c
  roqvideo: Remove a totally unused dspcontext
  smacker: remove some unused code
  dsicin: remove dead assignment
  aacdec: remove dead assignment
  rl2: remove dead assignment
  proresenc: make a variable local to the loop where it is used
  alsdec: remove dead assignments

Conflicts:
	Changelog
	doc/developer.texi
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/version.h
	libavfilter/gradfun.h
	libavfilter/x86/gradfun.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 21:19:41 +02:00
Clément Bœsch
7c84e7d337 mem: heap memory poisoning.
Enable it by default with FATE.
limitation: not random, and not supported with realloc.
2012-07-02 21:02:15 +02:00
Michael Niedermayer
2278a3e5f7 vc1dsp: use av_assert2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 20:52:36 +02:00
Michael Niedermayer
2ceaffc627 resample2: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 20:52:22 +02:00
Michael Niedermayer
7309451d73 swr: fix warning: passing argument 2 of s->mix_any_f from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:33:27 +02:00
Michael Niedermayer
338509c2e1 swr: fix warning: passing argument 1 of s->mix_any_f from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:32:23 +02:00
Michael Niedermayer
087d067a99 swr: fix warning: passing argument 2 of ctx->simd_f from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:31:16 +02:00
Michael Niedermayer
04b5eb47a6 swr: fix mix* related function pointer warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:23:22 +02:00
Anton Khirnov
5e745cefc0 asfdec: read attached pictures. 2012-07-02 16:16:45 +02:00
Anton Khirnov
728d2afa17 apetag: reindent 2012-07-02 16:16:38 +02:00
Anton Khirnov
02a951b919 apetag: export attached covers as video streams. 2012-07-02 16:16:11 +02:00
Anton Khirnov
b72767df8e apetag: fix the amount of data read from binary tags.
Substract the filename size from the data size.
2012-07-02 16:15:45 +02:00
Anton Khirnov
f2e175c756 apetag: make sure avio_get_str() doesn't read more than it should. 2012-07-02 16:15:34 +02:00
Anton Khirnov
a02b8c695c mov: read itunes cover art. 2012-07-02 16:14:25 +02:00
Clément Bœsch
c855ce2671 lavf/wtvdec: add missing { } around if.
This should fix the current failures spotted by FATE.
2012-07-02 15:09:53 +02:00
Mans Rullgard
58e57c3052 snow: remove VLA in mc_block()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 12:24:12 +01:00
Ronald S. Bultje
ff8f8dfb79 intfloat: Don't use designated initializers in the public headers
intfloat.h is a public header, and is now (since a1245d5ca) included
by mathematics.h, which many external callers include.

This fixes building third party applications that include
mathematics.h in a language that doesn't support designated
initalizers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-02 14:05:40 +03:00
Michael Niedermayer
fbdb205968 wmaenc: dont mess with the bitrate.
The bitrate is not writeable by an encoder.
Fixes generation of invalid wma

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 12:48:29 +02:00
Ronald S. Bultje
33bb63cb3e snow: remove a VLA.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-02 13:04:00 +03:00
Diego Biurrun
4aad316bff doc: Remind devs to check return values, especially for malloc() et al 2012-07-02 10:56:54 +02:00
Kostya Shishkov
edf35d8342 MS ATC Screen (aka MSS3) decoder 2012-07-02 07:14:44 +02:00
Peter Ross
c4e0e74438 wtvdec: return error when filetime_to_iso8601/crazytime_to_iso8601 conversion fails
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 03:55:02 +02:00
Mans Rullgard
a87b17f328 vf_yadif: move x86 init code to x86/yadif.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 01:16:37 +01:00
Mans Rullgard
2f0accf103 vf_gradfun: move x86 init code to x86/gradfun.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 01:16:37 +01:00
Michael Niedermayer
d35a986404 configure: make fast_unaligned configureable
Fixes Ticket1481

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 02:04:50 +02:00
Martin Storsjö
fc31508e3a roqvideo: Remove a totally unused dspcontext
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-01 23:54:35 +03:00
Michael Niedermayer
5eb353e0cd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  opt/eval: Include mathematics.h for NAN/INFINITY
  mathematics: Don't use division by zero in NAN/INFINITY macros
  wma: Lower the maximum number of channels to 2
  x86: cpu: clean up check for cpuid instruction support
  ARM: generate position independent code to access data symbols

Conflicts:
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 22:43:09 +02:00
Michael Niedermayer
23eeffcd48 mov: add workaround for incorrect 0 time point.
Fixes Ticket1471

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 21:41:06 +02:00
Mans Rullgard
779f8bc24e smacker: remove some unused code
This removes some code apparently left over from vlc reader
debugging.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 20:38:14 +01:00
Mans Rullgard
d55e5e6bae dsicin: remove dead assignment
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 20:38:14 +01:00
Mans Rullgard
3c928477d2 aacdec: remove dead assignment
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 20:38:14 +01:00
Mans Rullgard
800ab1bafa rl2: remove dead assignment
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 20:38:14 +01:00
Mans Rullgard
1c2c64edac proresenc: make a variable local to the loop where it is used
This moves the mbs_per_slice declaration inside the only loop
where it is used.  Fixes a dead assignment.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 20:38:14 +01:00
Mans Rullgard
4ca6d206d1 alsdec: remove dead assignments
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 20:38:14 +01:00
Michael Niedermayer
c23dcd9751 RELEASE: update, seem this has been forgotten
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 21:21:07 +02:00
Matthieu Bouron
8ac3868ff3 lavf/aiffdec: handle ID3 chunk
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 20:59:37 +02:00
Michael Niedermayer
87b9868972 h264: clear the ref lists when the reference are cleared.
Fixes reading of freed arrays (Ticket1498)

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 20:49:31 +02:00
Michael Niedermayer
0c9283a03f h264: check log2_max_poc_lsb for validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 20:49:31 +02:00
Stefano Sabatini
aa1cceb5eb lavf/segment: rename variable "size" to "list_size"
The new name is more meaningful/less confusing.
2012-07-01 18:35:15 +02:00
Stefano Sabatini
3bee286ad2 lavf/segment: pass the top level chained muxer format context to segment_end()
Consistent with segment_start() and less confusing.
2012-07-01 18:35:06 +02:00
Martin Storsjö
3893feeccd opt/eval: Include mathematics.h for NAN/INFINITY
These files use NAN/INFINITY but didn't include mathematics.h to get
the fallback definitions if the system lacks the macros.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-01 19:20:11 +03:00
Ronald S. Bultje
a1245d5ca1 mathematics: Don't use division by zero in NAN/INFINITY macros
Some compilers, MSVC among them, don't recognize the divisions by
zero as meaning infinity/nan.

These macros should, according to the standard, expand to constant
expressions, but this shouldn't matter for our usage.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-01 19:06:13 +03:00
Michael Niedermayer
91ce7c21f0 ituh263dec: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 18:04:08 +02:00
Michael Niedermayer
9eb6e5cc48 wmaenc: switch all remaining asserts to av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 18:02:17 +02:00
Martin Storsjö
710bd8a33e wma: Lower the maximum number of channels to 2
ff_wma_init is used only by wmadec and wmaenc, and neither of them
can handle more than 2 channels.

This fixes crashes with invalid files.

Based on patch by Piotr Bandurski and Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-01 15:51:26 +03:00
Mans Rullgard
889c1ec4cc x86: cpu: clean up check for cpuid instruction support
This adds macros for accessing the EFLAGS register and uses
these instead of coding the entire check in inline asm.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 12:25:33 +01:00
Mans Rullgard
62634158b7 ARM: generate position independent code to access data symbols
This creates proper position independent code when accessing
data symbols if CONFIG_PIC is set.

References to external symbols should now use the movrelx macro.
Some additional code changes are required since this macro may
need a register to hold the GOT pointer.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-01 11:25:06 +01:00
Michael Niedermayer
f7cba736ba Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: only configure video filters after we got the first frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-01 02:44:28 +02:00
Michael Niedermayer
64b25938e9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputilenc_mmx: split assignment of ff_sse16_sse2 to SSE2 section.
  dnxhdenc: add space between function argument type and comment.
  x86: fmtconvert: add special asm for float_to_int16_interleave_misc_*
  attributes: Add a definition of av_always_inline for MSVC
  cmdutils: Pass the actual chosen encoder to filter_codec_opts
  os_support: Add fallback definitions for stat flags
  os_support: Rename the poll fallback function to ff_poll
  network: Check for struct pollfd
  os_support: Don't compare a negative number against socket descriptors
  os_support: Include all the necessary headers for the win32 open function
  x86: vc1: fix and enable optimised loop filter

Conflicts:
	cmdutils.c
	cmdutils.h
	ffmpeg.c
	ffplay.c
	libavformat/os_support.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 22:44:18 +02:00
Nicolas George
be24f85176 ffmpeg: re-set frame_size after filter graph reset.
The filter contexts are completely cleared,
so the frame size can not be kept.
2012-06-30 21:44:25 +02:00
Michael Niedermayer
51d2578348 swr: fix MMX resample code, add emms
Fixes Ticket1495

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 21:27:39 +02:00
Michael Niedermayer
7001eee1f4 avcodec_encode_audio2: print error messages for errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 20:44:01 +02:00
Michael Niedermayer
5968a07622 wmaenc: rewrite 2nd stage quantization code
this is faster and more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 20:16:39 +02:00
Michael Niedermayer
0755033f8a wmaenc: remove alternative quantization loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 19:42:01 +02:00
Michael Niedermayer
799df083f3 wmaenc: fix off by 1 error in quantization loop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 19:38:11 +02:00
Michael Niedermayer
e704ab3d5f wmaenc: change another assert to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 19:36:38 +02:00
Michael Niedermayer
ac2d3b0f6e nutdec: set duration_estimation_method
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 18:58:52 +02:00
Ronald S. Bultje
ceabc13f12 dsputilenc_mmx: split assignment of ff_sse16_sse2 to SSE2 section. 2012-06-30 09:24:52 -07:00
Ronald S. Bultje
e9156741a7 dnxhdenc: add space between function argument type and comment.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 19:22:07 +03:00
Ronald S. Bultje
66a02159ea x86: fmtconvert: add special asm for float_to_int16_interleave_misc_*
This gets rid of a variable-length array and a for loop in C code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 19:10:36 +03:00
Michael Niedermayer
3233ad4b44 nutdec: estimate duration from last syncpoint
Previously nut used the fallback of estimation by bitrate.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 17:22:37 +02:00
Michael Niedermayer
e2c95e6bd8 nutdec: remove assert that is wrong for some new duration code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 17:22:37 +02:00
Michael Niedermayer
9d230ba924 nutdec: check that filesize is valid before using it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-30 17:22:37 +02:00
Marton Balint
58f22f7012 ffplay: only configure video filters after we got the first frame
Otherwise the codec width, height and pixel format values may not be set.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-30 16:19:47 +02:00
Ronald S. Bultje
4f2c846d96 attributes: Add a definition of av_always_inline for MSVC
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 16:03:45 +03:00
Stefano Sabatini
b12e61ac7f ffplay: factorize expression in audio_decode_frame()
Possibly improve readability.
2012-06-30 15:01:51 +02:00
Martin Storsjö
d3ed1c9571 cmdutils: Pass the actual chosen encoder to filter_codec_opts
This allows passing the right options to encoders when there's more
than one encoder for a certain codec id.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:44:10 +03:00
Ronald S. Bultje
5a608a239b os_support: Add fallback definitions for stat flags
Mingw headers provide similar defines already (unconditional #defines,
without any #undef or #ifdef around it), while MSVC doesn't have
them.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:18:50 +03:00
Martin Storsjö
cab2eb87f9 os_support: Rename the poll fallback function to ff_poll
The fallback function is a non-static function, we shouldn't be
defining non-static functions outside of the proper ff/av prefix
namespaces.

This is especially important for a function like poll, which
other parties (other libraries, or executables linking these
libraries) also might provide similar but incompatible fallbacks for.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:18:17 +03:00
Martin Storsjö
cdee08e365 network: Check for struct pollfd
We need to include winsock2.h here, to make sure we have the
real pollfd struct definition, if one exists, before defining the
fallback poll function.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:18:06 +03:00
Martin Storsjö
71078ad333 os_support: Don't compare a negative number against socket descriptors
The fds are unsigned integers in the windows definition of struct
sockfds. Due to this, the comparison if (fds[i].fd > n) was always
false.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:17:52 +03:00
Ronald S. Bultje
5aff37d28d os_support: Include all the necessary headers for the win32 open function
io.h is required for open and _wopen, and fcntl.h is required for
the O_CREAT flag. On mingw, fcntl.h is included by os_support.h (and
the mingw fcntl.h includes io.h), but include it explicitly here
since this implementation requires it.

Also move the #undef open up. open must not be defined to ff_win32_open
while including the headers that declare the open function. On mingw,
this happened in os_support.h before open was redirected.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:16:43 +03:00
Nicolas George
6f5e7e8690 ffmpeg: use the more powerful version of abuffersink. 2012-06-30 14:03:54 +02:00
Nicolas George
1f5c1333a7 sink_buffer: implement fixed frame size. 2012-06-30 14:03:54 +02:00
Nicolas George
0689d5e17a lavfi: implement samples framing on links.
Links can be set up to group samples into buffers of
specified minimum and maximum size.
2012-06-30 14:03:54 +02:00
Nicolas George
c9c4835f51 fate: add a test for the -force_key_frames option.
It broke twice in the last three months due to other changes.
2012-06-30 13:49:43 +02:00
Nicolas George
20a8dca57f ffmpeg: fix parsing of -force_key_frames option.
Identical to commit 4f6a1c9 by Reimar Döffinger,
that was lost after the merge of 19ad567.
2012-06-30 13:49:43 +02:00
Clément Bœsch
ca612a27ae swr: fix make checkheaders. 2012-06-30 11:21:53 +02:00
Clément Bœsch
022cbb6791 swr: small align cosmetic. 2012-06-30 11:18:45 +02:00
Clément Bœsch
3491c2a909 swr: use __asm__ instead of __asm.
For consistency only.
2012-06-30 11:18:05 +02:00
Mans Rullgard
f2fd167835 x86: vc1: fix and enable optimised loop filter
The problem is that the ssse3 psign instruction does the wrong
thing here.  Commit ea60dfe incorrectly removed a macro emulating
this instruction for pre-ssse3 code.  However, the emulation is
incorrect, and the code relies on the behaviour of the macro.
Specifically, the psign sets destination elements to zero where
the corresponding source element is zero, whereas the emulation
only negates destination elements where the source is negative.

Furthermore, the PSIGNW_MMX macro in x86util.asm is totally bogus,
which is why the original VC-1 code had an additional right shift
when using it.  Since the psign instruction cannot be used here,
skip all the macro hell and use the working instruction sequence
directly.

None of this was noticed due a stray return statement in
ff_vc1dsp_init_mmx() which meant that only the mmx version of the
loop filter was ever used (before being removed in ea60dfe).

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-30 00:12:05 +01:00
Michael Niedermayer
8a85660d3b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  file: Only include unistd.h if it exists
  random_seed: Only read /dev/*random if we have unistd.h
  doc: Indicate that RTMPT is natively implemented in libavformat
  rtpdec: Don't explicitly include unistd.h any longer

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 23:24:58 +02:00
Stefano Sabatini
94a00ec8af ffplay: group together and vertically align correlated parameters in log function
Possibly improve readability.
2012-06-29 23:15:45 +02:00
Stefano Sabatini
8179660222 ffplay: vertially align complex if condition in audio_decode_frame()
Possibly improve readability.
2012-06-29 23:15:45 +02:00
Stefano Sabatini
347ecfdc63 ffplay: move assignment in else block in audio_decode_frame()
Avoid confusing and pointless double assignment of variable
resampled_data_size.
2012-06-29 23:15:45 +02:00
Stefano Sabatini
0d3ffde64f ffplay: split overly long line in audio_decode_frame() 2012-06-29 23:15:45 +02:00
Michael Niedermayer
fb7688a83f pngdsp: Fix license header
Libav did not exist in 2008 thus this file cannot have originated from there

Reviewed-by: Paul B Mahol <onemda@gmail.com>
2012-06-29 20:43:30 +02:00
Michael Niedermayer
7bbb6b38fb prores: Fix license header
Libav did not exist in 2010 thus the file cannot originate from there

Reviewed-by: Paul B Mahol <onemda@gmail.com>
2012-06-29 20:43:30 +02:00
Michael Niedermayer
12863db840 wma_common: Fix license header
common wma code existed long before Libav

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 20:43:30 +02:00
Clément Bœsch
439e32f9b8 RealText demuxer and decoder. 2012-06-29 20:22:04 +02:00
Clément Bœsch
53640f42be SAMI demuxer and decoder. 2012-06-29 20:21:28 +02:00
Clément Bœsch
d948893dbd lavf/subtitles: add some SMIL helpers.
This is needed for SAMI and RealText demuxers.
2012-06-29 20:20:02 +02:00
Clément Bœsch
e301f2f8c6 fate: add JacoSUB and MicroDVD subtitles tests. 2012-06-29 20:20:02 +02:00
Clément Bœsch
04568f8d1a fate: introduce subtitles.mak and move SubRip test in it. 2012-06-29 20:20:02 +02:00
Clément Bœsch
8f4ce626f8 lavc/microdvddec: support "DEFAULT" properties. 2012-06-29 20:20:02 +02:00
Clément Bœsch
0e7782c08e lavc/ass: honor Default style.
The "Default" style written in the header is ignored unless you explicit
it in the Dialogue events (it was valid, just ignored). This requires an
update of the SubRip test since the ASS output obviously changes.
2012-06-29 20:20:02 +02:00
Clément Bœsch
a19e9f2d5c lavf/microdvd: rewrite using subtitles queue API. 2012-06-29 20:20:01 +02:00
Clément Bœsch
0ef28e119e lavf/jacosubdec: fix FPE in case timeres is badly set. 2012-06-29 20:19:59 +02:00
Clément Bœsch
60715511db lavf/jacosubdec: use subtitles queue API. 2012-06-29 19:13:25 +02:00
Clément Bœsch
7c9f9685ae lavf: add internal demuxer helpers for subtitles. 2012-06-29 19:13:24 +02:00
Clément Bœsch
f926d91611 ffmpeg: fix a memleak in subtitles decoding. 2012-06-29 19:13:24 +02:00
Stefano Sabatini
c1abfbc47c lavf/segment: rename segment private context from "c" to "seg" in segment_start()
Consistent with the rest of the file, less confusing.
2012-06-29 17:04:19 +02:00
Stefano Sabatini
a9a7e215e5 lavf/segment: add stream_segment variant of the segment muxer
This simplifies usage for segment streaming formats with no global
headers, tipically MPEG 2 transport stream "ts" files.

The seg class duplication is required in order to avoid an infinite loop
in libavformat/utils.c:format_child_next_class().
2012-06-29 17:03:25 +02:00
Stefano Sabatini
3cd4f9fd76 lavf: allow multiple names in output devices selected by av_guess_format()
Consistent with av_find_input_format().
2012-06-29 16:54:18 +02:00
Martin Sliwka
df531b0e10 avformat: disable seeking on FIFOs/named pipes
Patch is addition to my previous patch
(https://lists.ffmpeg.org/pipermail/ffmpeg-cvslog/2012-June/051590.html)
and disables seeking on FIFOs/named pipes by setting
URLContext::is_streamed (same as pipe: protocol does for stdin/stdout pipes)

Fixes Ticket986

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 14:54:15 +02:00
Lou Logan
6851130fd6 cosmetics: minor libavcodec spelling errors
Also update some common misspelled words in patcheck

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 14:54:15 +02:00
Ronald S. Bultje
3b1ab197be file: Only include unistd.h if it exists
It is included for the open/read/write/close functions. On
MSVC, where this header does not exist, the same functions
are provided by io.h, which is already included.

On windows, these functions are provided by io.h. Make sure
io.h is included if it exists, regardless of the setmode
function.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-29 15:53:41 +03:00
Ronald S. Bultje
f985113075 random_seed: Only read /dev/*random if we have unistd.h
unistd.h is used for open/read/close, but if this header does not
exist, there's probably no use in trying to open /dev/*random
at all.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-29 15:52:07 +03:00
Stefano Sabatini
0692d4c890 lavf/segment: add some debugging logs 2012-06-29 14:50:27 +02:00
Stefano Sabatini
567eb9d344 lavf/segment: fix command with missing -list option
Replace -list with the correct option -segment_list.
2012-06-29 14:50:27 +02:00
Stefano Sabatini
d9355a03f2 lavf/applehttp: add log message in case of applehttp_read_header() failure
Improve error reporting.
2012-06-29 14:50:27 +02:00
Samuel Pitoiset
e312fcde6a doc: Indicate that RTMPT is natively implemented in libavformat
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-29 15:38:28 +03:00
Ronald S. Bultje
dfb57fc596 rtpdec: Don't explicitly include unistd.h any longer
unistd.h used to be required for gethostname. On windows, gethostname
is provided by winsock2.h. Now network.h includes both unistd.h and
winsock2.h if they exist.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-29 15:38:10 +03:00
Michael Niedermayer
e8e733adcc dca: favor native over ffmpeg in table name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 13:31:44 +02:00
Stefano Sabatini
4fd07b9366 ffplay: avoid useless NULL checks in swr_free()
swr_free() already checks for nullness, no need to add the check in
calling code.
2012-06-29 13:24:57 +02:00
Stefano Sabatini
4674718203 ffplay: fix wrong reference to function in audio_decode_frame() comment
The comment now references swr_convert(), rather than audio_convert(),
which was deprecated and/or dropped.
2012-06-29 13:24:43 +02:00
Michael Niedermayer
491846e4be avutil: fix project name reference in doxy section
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:33:38 +02:00
Michael Niedermayer
84d73e9d5d dca: fix project reference in table name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:31:37 +02:00
Michael Niedermayer
be4ffb28b3 vf_ass: fix table name to refer to correct lib.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:28:34 +02:00
Michael Niedermayer
c83ed18d45 formats.h: fix project reference in comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:26:18 +02:00
Michael Niedermayer
c496224374 pixdesc: fix project reference in comment
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 11:23:56 +02:00
Paul B Mahol
8fbe11e623 Replace Libav with FFmpeg in license headers for files created by me
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-29 01:58:34 +00:00
Michael Niedermayer
c103dc0b48 git-howto: replace confusing and incorrect text about he testsuite by mostly a correct text.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 01:17:07 +02:00
Michael Niedermayer
4e82bdea60 git-howto: partial rewrite of the push checklist to make it match sanity & reality.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 01:06:12 +02:00
Michael Niedermayer
8bff1d7cb0 git-howto: remove inconvenient and odd 24h limit on rsync
This was never true for FFmpeg in this form.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 00:33:49 +02:00
Michael Niedermayer
7c8b5d1d80 Makefile: remove checkheaders from the main check target
checkheaders doesnt pass and noone has even noticed since a very
long time.

checkheaders is also unmaintained (please add yourself to MAINTAINERS
if you want to maintain it)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 00:05:40 +02:00
Michael Niedermayer
d007f963c2 git-howto: cleanup, remove unreasonable recommendition.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-29 00:03:12 +02:00
Michael Niedermayer
4453f6b861 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flv: add support for G.711
  doc: git: Add checklist with test steps to perform before pushing
  flvenc: K&R formatting cosmetics
  movenc: Add channel layouts for PCM.

Conflicts:
	libavformat/flvenc.c
	tests/ref/fate/acodec-pcm-s16be
	tests/ref/fate/acodec-pcm-s24be
	tests/ref/fate/acodec-pcm-s32be
	tests/ref/fate/acodec-pcm-s8

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 23:57:31 +02:00
Stefano Sabatini
7877b50d18 ffplay: simplify code by using avfilter_unref_bufferp() 2012-06-28 22:27:05 +02:00
Stefano Sabatini
b0fdd3489a lavfi: deprecate av_buffersrc_buffer() function
Favor av_buffersrc_add_ref() instead, which is more powerful.
2012-06-28 22:27:05 +02:00
Nick Brereton
cd8bef969a Generate channel layout, reordering for DTS-XXCH extension and, undo embedded downmixes
Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 22:26:15 +02:00
Nick Brereton
16f6c16ac0 Parse & decode DTS XXCH frames
Reviewed-by: Benjamin Larsson <benjamin@southpole.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 22:26:15 +02:00
Jeff Downs
8d9fd58113 h264: Fix maximum reference count check for non-b frames
Below fixes the maximum reference count check for second reference list in
non-B frames.  There is nothing to prohibit full (field sized) reference
list in this case as far as I can tell, and this fixes several syntax-test
files here (this is a regression caused when this check was made more
stringent by
http://git.videolan.org/?p=ffmpeg.git;a=commit;h=dc9ce40069bde3d28f8d0b3e5bd733ae255fecb5)

Probably a silly corner case seldom seen irl, but thought I'd pass along
in case there was interest in correcting the check.

---------------

h264: Fix maximum reference count check for non-b frames; full range is
technically ok

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 22:25:38 +02:00
Nicolas George
8069db8633 ffmpeg: warn that -t does not work with -filter_complex. 2012-06-28 21:40:50 +02:00
Nicolas George
2c793b8501 ffmpeg: warn when -t is used for inputs.
Using -t on an input already have surprising results.
Furthermore, using it on an input or an output makes
a real difference if there are speed-altering filters.

Implementing -t for inputs will probably result in some
behavour changes.
2012-06-28 21:40:43 +02:00
Nicolas George
fcf8706ed9 sink_buffer: warn when there are too many buffers. 2012-06-28 21:10:03 +02:00
Nicolas George
05d6cc116e buffersrc: warn when there are too many buffers. 2012-06-28 21:10:03 +02:00
Paul B Mahol
3f59bbf5b6 lavfi/amerge: silence warnings
The warning silenced was: libavfilter/af_amerge.c:144:29: warning: conversion specifies type 'long long' but the argument has type 'int' [-Wformat]

The warning was introduced after FF_API_SAMPLERATE64 removal.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-28 17:18:37 +00:00
Paul B Mahol
61123fb8f7 parseutils: fix sorting of colors
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-28 17:15:08 +00:00
Michael Niedermayer
e377208d43 ffmpeg: dont copy creation_time as the destination file is not created at that time
Fixes Ticket1439

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 17:09:36 +02:00
Damien Fetis
b92c7ee662 flv: add support for G.711
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-06-28 16:53:09 +02:00
Diego Biurrun
433492ac65 doc: git: Add checklist with test steps to perform before pushing 2012-06-28 13:47:22 +02:00
Luca Barbato
1cb34ea4fe flvenc: K&R formatting cosmetics 2012-06-28 13:05:43 +02:00
Michael Niedermayer
782763ed2b swr: fix compilation with ancient toolchain that doesnt support SSSE3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 11:13:19 +02:00
Michael Niedermayer
ccbcf482ad udp: use av_freep() instead of av_free()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 10:12:04 +02:00
Michael Bradshaw
fc5999d027 lavf: add proper enum type for fmt ctx duration esitmation method
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-06-28 09:59:53 +02:00
Michael Niedermayer
87df986dcf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mss1: validate number of changeable palette entries
  mss1: report palette changed when some additional colours were decoded
  x86: fft: replace call to memcpy by a loop
  udp: Support IGMPv3 source specific multicast and source blocking
  dxva2: include dxva.h if found
  libm: Provide fallback definitions for isnan() and isinf()
  tcp: Pass NULL as hostname to getaddrinfo if the string is empty
  tcp: Set AI_PASSIVE when the socket will be used for listening

Conflicts:
	configure
	libavcodec/mss1.c
	libavformat/udp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 01:08:52 +02:00
Michael Niedermayer
ee7214c59a log: change color for filters from blue to bright green
The blue is difficult to read on several peoples terminals with black background.

Idea-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 00:36:32 +02:00
Michael Niedermayer
4ccf6e3971 swr: MMX2 & SSSE3 int16 resample core
about 4 times faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 00:36:27 +02:00
Michael Niedermayer
7803a04041 http: try to detect live akamai streams and dont enable seeking for them
Fixes ticket1320

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 00:18:24 +02:00
Michael Niedermayer
d1c74ca2be lsp: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 00:07:22 +02:00
Michael Niedermayer
b1a17953ec lpc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-28 00:07:10 +02:00
Eric Petit
f1136b2b10 udp: fix occasional crash on shutdown
Wait until the thread is down before destroying the fifo

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 22:50:22 +02:00
Alex Converse
a112822597 movenc: Add channel layouts for PCM. 2012-06-27 13:47:58 -07:00
Michael Bradshaw
54942c2383 lavc: clarify docs for avpkt->destruct
avcodec_encode_audio2 docs are ambiguous about avpkt->destruct and imply
it gets reset.

Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 22:29:54 +02:00
Kostya Shishkov
15358ade15 mss1: validate number of changeable palette entries 2012-06-27 18:05:58 +02:00
Kostya Shishkov
8f5d573a83 mss1: report palette changed when some additional colours were decoded 2012-06-27 18:05:58 +02:00
Christophe Gisquet
a5bfa66df5 x86: fft: replace call to memcpy by a loop
The function call was a mess to handle, and memcpy cannot make
the assumptions we do in the new code.

Tested on an IMC sample: 430c -> 370c.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-27 12:49:33 +01:00
Martin Storsjö
75d339e044 udp: Support IGMPv3 source specific multicast and source blocking
Based on an original patch by Stephen D'Angelo <SDAngelo@evertz.com>.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:39:00 +03:00
Ronald S. Bultje
fa84506177 dxva2: include dxva.h if found
Apparently, some build environments require dxva.h even for dxva2,
while others lack this header entirely.  Including it conditionally
allows building in both cases.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:36:27 +03:00
Martin Storsjö
46df708b45 libm: Provide fallback definitions for isnan() and isinf()
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:04:02 +03:00
Jordi Ortiz
ef882e464a tcp: Pass NULL as hostname to getaddrinfo if the string is empty
This gives you the proper v4 or v6 version of the "any address",
allowing receiving connections on any address on the machine.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:04:02 +03:00
Jordi Ortiz
58f3e09ee4 tcp: Set AI_PASSIVE when the socket will be used for listening
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-27 14:04:02 +03:00
Michael Niedermayer
b536e2facf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: add an assert to silence an uninitialized variable warning.
  avconv: shut up an uninitialized variable warning.
  avfiltergraph: shut up uninitialized variable warning.
  af_join: initialize a variable to shut up gcc warning.
  amix: fix format specifier for AVFilterLink.sample_rate.
  lavfi: make filters less verbose.
  mpc8: read APE tags.
  lavr: x86: fix ff_conv_fltp_to_flt_6ch function prototypes
  libm: provide fallback definition for cbrtf() using powf()
  network: Don't redefine error codes if they already exist in errno.h
  configure: Check for sys/time.h
  network: Include unistd.h from network.h
  avconv: don't include vsrc_buffer.h, which doesn't exist anymore
  lavfi: reorder AVFilterLink fields.
  lavfi: reorder AVFilterContext fields.
  lavfi: reorder AVFilter fields.
  lavfi: reorder AVFilterBufferRef fields.
  lavfi: reorder AVFilterBuffer fields.

Conflicts:
	configure
	libavcodec/v210dec.h
	libavfilter/asrc_anullsrc.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_crop.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_fade.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vsrc_color.c
	libavformat/network.h
	libavutil/libm.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 01:58:09 +02:00
Michael Niedermayer
5916bc4658 Merge commit '1961e46c15c23a041f8d8614a25388a3ee9eff63'
* commit '1961e46c15c23a041f8d8614a25388a3ee9eff63':
  lavfi: remove disabled FF_API_FILTERS_PUBLIC cruft
  lavfi: remove disabled FF_API_DEFAULT_CONFIG_OUTPUT_LINK cruft
  lavfi: use proper FF_API guards for different deprecated functions
  lavfi: remove disabled FF_API_VSRC_BUFFER_ADD_FRAME cruft
  lavfi: remove disabled FF_API_SAMPLERATE64 cruft
  lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft

Conflicts:
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/formats.c
	libavfilter/graphparser.c
	libavfilter/version.h
	libavfilter/video.c
	libavfilter/vsrc_buffer.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-27 00:34:36 +02:00
Michael Niedermayer
052f4f859c Merge commit 'a5e8c41c28f907d98d2a739db08f7aef4cbfcf3a'
* commit 'a5e8c41c28f907d98d2a739db08f7aef4cbfcf3a':
  lavfi: remove 'opaque' parameter from AVFilter.init()
  mov: do not try to read total disc/track number if data atom is too short.
  avconv: fix -force_key_frames
  dxva2_h264: fix signaling of mbaff frames
  x86: fft: elf64: fix PIC build

Conflicts:
	ffmpeg.c
	libavcodec/v210dec.h
	libavfilter/asrc_anullsrc.c
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_overlay.c
	libavfilter/vsrc_color.c
	libavfilter/vsrc_testsrc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-26 23:57:07 +02:00
Anton Khirnov
c29c1a1b6b avconv: add an assert to silence an uninitialized variable warning.
The warning silenced was:
avconv.c: In function ‘opt_output_file’:
avconv.c:3380:21: warning: ‘meta_out’ may be used uninitialized in this function [-Wuninitialized]
avconv.c:3315:20: note: ‘meta_out’ was declared here
2012-06-26 19:32:41 +02:00
Anton Khirnov
74853ed3f8 avconv: shut up an uninitialized variable warning.
The warning silenced was:
avconv.c: In function ‘configure_filtergraph’:
avconv.c:603:8: warning: ‘ist’ may be used uninitialized in this function [-Wuninitialized]
avconv.c:549:18: note: ‘ist’ was declared here
2012-06-26 19:31:51 +02:00
Anton Khirnov
61d158c321 avfiltergraph: shut up uninitialized variable warning.
The warning silenced was:
libavfilter/avfiltergraph.c: In function ‘avfilter_graph_config’:
libavfilter/avfiltergraph.c:500:13: warning: ‘best_idx’ may be used uninitialized in this function [-Wuninitialized]
2012-06-26 19:10:17 +02:00
Anton Khirnov
fd2784c3b5 af_join: initialize a variable to shut up gcc warning.
The warning silenced was:
libavfilter/af_join.c: In function ‘join_request_frame’:
libavfilter/af_join.c:451:9: warning: ‘nb_samples’ may be used uninitialized in this function [-Wuninitialized]
2012-06-26 19:09:15 +02:00
Anton Khirnov
422008ac63 amix: fix format specifier for AVFilterLink.sample_rate.
It is a plain int now.
2012-06-26 19:08:26 +02:00
Anton Khirnov
1a49a169eb lavfi: make filters less verbose. 2012-06-26 19:08:13 +02:00
Anton Khirnov
ce0a975689 mpc8: read APE tags. 2012-06-26 19:05:24 +02:00
Gavin Kinsey
37b5959d96 examples/filtering: fix packet memleak
Free packets unconditionally after demuxing, and not only when the
packets belong to a given stream.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-06-26 19:04:17 +02:00
Gavin Kinsey
9ebed95db6 examples/filtering_video: update to the new API
Update the video filtering example program based on the audio one.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-06-26 19:04:11 +02:00
Justin Ruggles
acd9948e74 lavr: x86: fix ff_conv_fltp_to_flt_6ch function prototypes
Changed to match the number of parameters in conv_func_interleave(), which is
how they are called. The change isn't strictly necessary because the 4th
parameter is not used, but the code is clearer if they match.
2012-06-26 12:29:35 -04:00
Mans Rullgard
153335625c libm: provide fallback definition for cbrtf() using powf()
This adds a fallback for cbrtf() using powf(x, 1/3).  Since
powf() with a non-integer exponent requires a non-negative
base, special handling of negative inputs is needed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-26 15:56:38 +01:00
Ronald S. Bultje
4b1b1449d9 network: Don't redefine error codes if they already exist in errno.h
Since the errno.h values don't match the error codes that winsock
returns, map the winsock error codes to the errno ones, to make
sure explicit checks against AVERROR(x) match.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-26 17:22:21 +03:00
Ronald S. Bultje
e64bceeac0 configure: Check for sys/time.h
Apparently this include is needed on some systems for building the
poll fallback (for the timeval struct for select?), but it isn't
available on all systems. Thus only include it if it exists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-26 17:22:21 +03:00
Martin Storsjö
39dba5aa1b network: Include unistd.h from network.h
This heaader is required for close() for sockets in network
code. For winsock, the equivalent function is defined in the
winsock2.h header.

This avoids having the HAVE_UNISTD_H in all files dealing with
raw sockets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-26 17:22:21 +03:00
Mans Rullgard
37c3864ef7 x86: fft: elf64: fix PIC build
In a 64-bit PIC build, external functions must be called
through the PLT.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-26 15:57:32 +02:00
Nicolas George
d4c45b8adf Revert "Revert "x86: fft: win64: fix stack alignment for memcpy() call""
This reverts commit f767658414.

The bug it introduces has been fixed.
2012-06-26 15:56:01 +02:00
Nicolas George
91765594dd Revert "Revert "x86: fft: convert sse inline asm to yasm""
This reverts commit fd91a3ec44.

The bug it introduced has been fixed.
2012-06-26 15:55:41 +02:00
Anton Khirnov
b8c632a720 avconv: don't include vsrc_buffer.h, which doesn't exist anymore 2012-06-26 14:33:01 +02:00
Anton Khirnov
83ba22392d lavfi: reorder AVFilterLink fields.
Move private fields to the private section, remove holes.
2012-06-26 13:25:13 +02:00
Anton Khirnov
f892013ac4 lavfi: reorder AVFilterContext fields.
Place related fields together, remove holes.
2012-06-26 13:24:36 +02:00
Anton Khirnov
9618080512 lavfi: reorder AVFilter fields.
Place related fields together, remove holes, move private fields to the
end and mark them as private.
2012-06-26 13:23:51 +02:00
Anton Khirnov
f14e685609 lavfi: reorder AVFilterBufferRef fields.
Place related fields together, remove holes.
2012-06-26 13:23:50 +02:00
Anton Khirnov
cb81e29138 lavfi: reorder AVFilterBuffer fields.
Place related fields together, remove holes.
2012-06-26 13:23:50 +02:00
Anton Khirnov
1961e46c15 lavfi: remove disabled FF_API_FILTERS_PUBLIC cruft 2012-06-26 13:20:19 +02:00
Anton Khirnov
5e88b96f37 lavfi: remove disabled FF_API_DEFAULT_CONFIG_OUTPUT_LINK cruft 2012-06-26 13:18:44 +02:00
Anton Khirnov
205e90249a lavfi: use proper FF_API guards for different deprecated functions 2012-06-26 13:17:31 +02:00
Nicolas George
784675ca91 sink_buffer: make opaque argument optional. 2012-06-26 13:17:30 +02:00
Nicolas George
a2bd8a9384 buffersink: group libav API functions. 2012-06-26 13:17:29 +02:00
Anton Khirnov
0b3b958135 lavfi: remove disabled FF_API_VSRC_BUFFER_ADD_FRAME cruft 2012-06-26 13:15:26 +02:00
Anton Khirnov
6c1e065bd4 lavfi: remove disabled FF_API_SAMPLERATE64 cruft 2012-06-26 13:15:14 +02:00
Anton Khirnov
8d900aa4d0 lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft 2012-06-26 13:14:59 +02:00
Anton Khirnov
a5e8c41c28 lavfi: remove 'opaque' parameter from AVFilter.init()
It is not used in any filters currently and is inherently evil. If
passing binary data to filters is required in the future, it should be
done with some AVOptions-based system.
2012-06-26 13:13:48 +02:00
Carl Eugen Hoyos
fbcaceb1ff mov: do not try to read total disc/track number if data atom is too short.
Fixes bug 308.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-06-26 13:12:50 +02:00
Stefano Sabatini
e6674e46ec lavu/imgutils: create misc functions for dealing with buffers
Move the lavc/imgconvert functions and rename them as follows:
avpicture_get_size -> av_image_get_buffer_size()
avpicture_fill     -> av_image_fill_arrays()
avpicture_layout   -> av_image_copy_to_buffer()

The new functions have an align parameter, which allows to define the
linesize alignment assumed in the buffer (which is set or read).

The names of the functions are consistent with the lavu/samples API
(av_samples_get_buffer_size(), av_samples_fill_arrays()).
2012-06-26 13:12:12 +02:00
Anton Khirnov
19ad567311 avconv: fix -force_key_frames
parse_forced_keyframes() relies in encoder timebase being set, so call
it from transcode_init() after it is known.
2012-06-26 13:10:33 +02:00
Nicolas George
fd91a3ec44 Revert "x86: fft: convert sse inline asm to yasm"
This reverts commit 8299260470.

It breaks shared builds on x86_64.
2012-06-26 13:00:14 +02:00
Nicolas George
f767658414 Revert "x86: fft: win64: fix stack alignment for memcpy() call"
This reverts commit 8725da49a2.

Necerrary to revert 8299260470.
2012-06-26 12:59:48 +02:00
Stefano Sabatini
79a7451d06 ffplay: add configure_filtergraph() helper
Will help factorization with the pending -af patch, and add some checks
missing in the original code.
2012-06-26 11:42:51 +02:00
Stefano Sabatini
720ec62012 lavfi: drop deprecated and disabled packing API
It was deprecated and removed after the recent 2->3 major bump.
2012-06-26 11:40:21 +02:00
Stefano Sabatini
8dd0e87d7b lavfi: remove old video sink API
It was deprecated since a long time and removed after the 2->3 major
bump.
2012-06-26 11:40:08 +02:00
Stefano Sabatini
f054dbee6c tools/graph2dot: make dot graph representation a bit more compact 2012-06-26 11:34:38 +02:00
Hendrik Leppkes
ea1c5011b3 dxva2_h264: fix signaling of mbaff frames
The MBAFF flag may only be signaled if we're actually dealing with
a full frame, and not singular fields, as it can happen in mixed content.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-26 11:59:24 +03:00
Carl Eugen Hoyos
6eff277284 Make LucasArts Smush SANM palette opaque.
Reviewed-by: Paul B Mahol
2012-06-26 09:54:30 +02:00
Carl Eugen Hoyos
c77bcbbb32 Signal MSS1 palette change.
Reviewed-by: Paul B Mahol
2012-06-26 09:30:27 +02:00
Michael Niedermayer
3b0ad040b3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  log: Include io.h on windows
  lavr: x86: merge some branches
  x86: cpu: whitespace (mostly) cosmetics
  x86: fft: win64: fix stack alignment for memcpy() call

Conflicts:
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-26 01:13:07 +02:00
yang
9b72041f80 x86/intmath.h: Fix mull operand constraints
Fixes Ticket1466

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-26 01:08:35 +02:00
Paul B Mahol
e3c2670539 mss1: check number of free colours
Prevents out of array write.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-25 23:07:18 +00:00
Michael Niedermayer
8a0cd58729 sonic: fix FPE
Fixes Ticket1397

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-26 00:38:05 +02:00
Mans Rullgard
0595334892 x86: fft: elf64: fix PIC build
In a 64-bit PIC build, external functions must be called
through the PLT.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-25 22:58:18 +01:00
Michael Niedermayer
dc30c27eb1 h264_parser: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 23:10:45 +02:00
Michael Niedermayer
cd6aa95caa h264_loopfilter: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 23:10:45 +02:00
Stefano Sabatini
9b41ec4b9e lavfi/drawtext: use av_opt_free() to free private context
Simplify code.
2012-06-25 22:49:16 +02:00
Stefano Sabatini
6be8cfa034 lavfi/abuffer: increase logging level of the log showing initial parameters
Also show them in a more parsable/consistent fashion.
2012-06-25 22:49:16 +02:00
Stefano Sabatini
8a3544149f lavfi/avfilter.h: reorganize headers disposition
Group lavfi headers together, slightly improve readability.
2012-06-25 22:49:09 +02:00
Ronald S. Bultje
246154a9af log: Include io.h on windows
This is required for isatty, which exists on MSVC and is found by
configure, but is provided by io.h instead of unistd.h.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-25 23:28:36 +03:00
Carl Eugen Hoyos
bec21ce7f4 Make MSS1 palette opaque. 2012-06-25 21:16:06 +02:00
Justin Ruggles
14a34d90ad lavr: x86: merge some branches 2012-06-25 13:49:18 -04:00
Paul B Mahol
ebfcd6049f doc/general: fix output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-25 17:36:57 +00:00
Mans Rullgard
963cdf39b4 x86: cpu: whitespace (mostly) cosmetics
This adds whitespace around operators, aligns line continuation
backslashes, and breaks long lines.  Also fixes an ifdef halfway
through a statement.  The one line of duplication this saved is
not worth the ugliness.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-25 16:24:31 +01:00
Michael Niedermayer
a6ff8514a9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  wtv: Check the return value from gmtime
  x86: fft: convert sse inline asm to yasm
  x86: place some inline asm under #if HAVE_INLINE_ASM

Conflicts:
	libavcodec/x86/fft_sse.c
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 16:55:31 +02:00
Mans Rullgard
8725da49a2 x86: fft: win64: fix stack alignment for memcpy() call 2012-06-25 15:10:39 +01:00
Martin Storsjö
dc53858063 wtv: Check the return value from gmtime
On MSVC, gmtime returns NULL for values outside of their supported
range (and these show up in our fate test). This doesn't seem
to affect the actual fate test result.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-25 16:20:08 +03:00
Mans Rullgard
8299260470 x86: fft: convert sse inline asm to yasm 2012-06-25 13:31:00 +01:00
Ronald S. Bultje
8123e0901f x86: place some inline asm under #if HAVE_INLINE_ASM
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-25 13:23:12 +01:00
Stefano Sabatini
fec512a52c ffplay: give more meaningful names to the buffersink instances 2012-06-25 13:42:53 +02:00
Stefano Sabatini
43583fb85c lavfi/avcodec: deprecate avfilter_fill_frame_from_*_buffer_ref API
Deprecate functions:
avfilter_fill_frame_from_buffer_ref
avfilter_fill_frame_from_audio_buffer_ref
avfilter_fill_frame_from_video_buffer_ref

and schedule to drop them at the next API major bump.

The function avfilter_copy_buf_props() should be used instead.
2012-06-25 13:42:47 +02:00
Stefano Sabatini
972cad77fa lavfi: remove unnecessary inclusion of libavcodec/avcodec.h in avfilter.h
libavfilter API was designed in order to be clarly distinguished from the
libavcodec API, including avcodec.h in avfilter.h is not going to help to
stick to this principle.

The inclusion of libavutil/audioconvert.h in many files was required
because avcodec.h includes audioconvert.h.

libavfilter/avcodec.h is where the lavc/lavfi interface should be
entirely placed.
2012-06-25 13:42:37 +02:00
Stefano Sabatini
a31ab50712 lavfi: move some FF_API_ definitions from avfilter.h to version.h
version.h seems the right place for FF_API_ definitions.
2012-06-25 13:42:29 +02:00
Michael Niedermayer
5fd3e6965e vocenc: use new header from codec tag 4
this matches sox and should fix ticket1119

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 03:45:29 +02:00
Michael Niedermayer
0abfb0a9d8 vocenc: change default codec to 16bit
Hardly anyone would want 8bit today, 16bit is a much more reasonable
default.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 03:35:09 +02:00
Michael Niedermayer
bacbbd2b03 vocenc: fix sample rate rounding direction
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 03:30:12 +02:00
Michael Niedermayer
f15803e957 fate: Try to fix source path for fate-acodec-dca
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 01:58:18 +02:00
Michael Niedermayer
166f386446 fate: speedup dnxhd tests and reduce their memory requirements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-25 00:38:35 +02:00
Paul B Mahol
7ebe28c23c xwdenc: support 8bpp grayscale
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-24 11:42:14 +00:00
Piotr Bandurski
b9c94e826e xwddec: support 8bpp grayscale 2012-06-24 11:34:02 +00:00
Michael Niedermayer
244682dd08 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  log: Only include unistd.h if configure found it
  ape: create audio stream before reading tags.
  mov: make a length variable larger.
  image2: Add "start_number" private option to the demuxer
  image2: Add "start_number" private option to the muxer
  avconv: remove a forgotten debugging printf.
  avconv: use more descriptive names for hardcoded filters.
  avconv: remove redundant handling of async.
  doc/filters: fix typo.
  h264: use asm cabac reader under a generic condition

Conflicts:
	ffmpeg.c
	libavformat/img2dec.c
	libavformat/img2enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 21:34:54 +02:00
Michael Niedermayer
5c44c2de80 mlp_parser: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 20:20:23 +02:00
Michael Niedermayer
f0a3259f9a rangecoder.h: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 20:18:00 +02:00
Michael Niedermayer
ee51565e8e configure: fix libavutil.pc generation
Found-by: uau
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 20:11:11 +02:00
Michael Niedermayer
62975afa68 af_aresample: fix sample_rate type.
should fix fate failures on 32bit x86 linux

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 15:13:39 +02:00
Michael Niedermayer
3013722c13 sink_buffer: assert that functions and sinks arent mixed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 14:17:14 +02:00
Michael Niedermayer
fbf03ee391 ffmpeg: fix indent of 1 line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 14:16:45 +02:00
Michael Niedermayer
11f2cad127 examples/filtering_audio: update for avfilter API "cleanup"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 14:15:53 +02:00
Mashiat Sarker Shakkhar
98b3f17bd7 image2: Add "start_number" private option to the demuxer
Currently if a pattern is given we search for up to the fifth file name in
that sequence. This option sets that limit to an arbitrary number.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 12:40:54 +02:00
Michael Niedermayer
eeddd3962e cpu.h: include version.h for LIBAVUTIL_VERSION_MAJOR
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 12:34:12 +02:00
Michael Niedermayer
c41899a377 lavu: split version info into version.h
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 12:34:12 +02:00
Martin Storsjö
145a8096d5 log: Only include unistd.h if configure found it
MSVC has isatty (in io.h), but not unistd.h. (isatty isn't called
at all for windows, since there's a special case block for that.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-24 12:36:22 +03:00
Anton Khirnov
980e65f119 ape: create audio stream before reading tags.
Tags may contain attached picture, which will be exported as video
streams.

This ensures that the audio stream is always the first.
2012-06-24 07:55:33 +02:00
Anton Khirnov
a7b8ff94b1 mov: make a length variable larger.
Right now, it's uint16_t, but for itunes metadata a 32bit number is
stored in it.
2012-06-24 07:54:29 +02:00
Mashiat Sarker Shakkhar
f57d2f587b image2: Add "start_number" private option to the demuxer
Currently if a pattern is given we look for up to the fifth file name in
the sequence. This option sets that limit to an arbitrary number.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-06-24 07:37:38 +02:00
Mashiat Sarker Shakkhar
b5bce20cc3 image2: Add "start_number" private option to the muxer
This adds the capability to start counting file number from an arbitrary
integer.

This includes a few lines of trivial code from FFmpeg codebase.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-06-24 07:35:54 +02:00
Anton Khirnov
fd269d6253 avconv: remove a forgotten debugging printf. 2012-06-24 07:15:32 +02:00
Anton Khirnov
df98bf22cb avconv: use more descriptive names for hardcoded filters.
Also ensure that all such filters get a non-NULL name. Should fix FATE
failures on some architectures after
58b049f2fa.
2012-06-24 07:15:32 +02:00
Anton Khirnov
6fc7d9a078 avconv: remove redundant handling of async.
Because of a mistake during merging the code for simple and complex
filtergraphs, -async inserts an asyncts filter both on input and output.
Remove the output hunk.
2012-06-24 07:15:31 +02:00
Anton Khirnov
7a8059eb9c doc/filters: fix typo. 2012-06-24 07:15:31 +02:00
Hendrik Leppkes
b5e6aa6c33 dxva2_h264: fix signaling of mbaff frames
The MBAFF flag may only be signaled if we're actually dealing with
a full frame, and not singular fields, as it can happen in mixed content.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 03:22:31 +02:00
Michael Niedermayer
1c60088885 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: Only use optimizations with cmov if the CPU supports the instruction
  x86: Add CPU flag for the i686 cmov instruction
  x86: remove unused inline asm macros from dsputil_mmx.h
  x86: move some inline asm macros to the only places they are used
  lavfi: Add the af_channelmap audio channel mapping filter.
  lavfi: add join audio filter.
  lavfi: allow audio filters to request a given number of samples.
  lavfi: support automatically inserting the fifo filter when needed.
  lavfi/audio: eliminate ff_default_filter_samples().

Conflicts:
	Changelog
	libavcodec/x86/h264dsp_mmx.c
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/version.h
	libavutil/x86/cpu.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 02:09:53 +02:00
Michael Niedermayer
da728d5d2e ffmpeg: fix FF_API_OLD_VSINK_API=0 case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 02:05:57 +02:00
Michael Niedermayer
caf7381d50 ffmpeg: fix mixup of old and new sinks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-24 02:05:56 +02:00
Mans Rullgard
0b6f973635 h264: use asm cabac reader under a generic condition
This removes a dependency on implementation details from generic
code and allows easy addition of the equivalent optimisation for
other architectures than x86.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-23 22:14:21 +01:00
Michael Niedermayer
f8fe4d2295 snow.h: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 21:12:29 +02:00
Michael Niedermayer
be64d5f520 snow.c: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 21:12:29 +02:00
Mashiat Sarker Shakkhar
f7595fb3b5 image2: Add "start_number" private option to the muxer
This adds the capability to start counting file number from an arbitrary
integer instead of always starting at 1.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 21:12:01 +02:00
Diego Biurrun
fe07c9c6b5 x86: Only use optimizations with cmov if the CPU supports the instruction 2012-06-23 16:21:50 +02:00
Diego Biurrun
65345a5a30 x86: Add CPU flag for the i686 cmov instruction 2012-06-23 16:21:50 +02:00
Mans Rullgard
29686d6ea3 x86: remove unused inline asm macros from dsputil_mmx.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-23 14:14:06 +01:00
Mans Rullgard
685f5438bb x86: move some inline asm macros to the only places they are used
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-23 14:14:06 +01:00
Nicolas George
6fd0b55ab2 showwaves: fix PTS computation. 2012-06-23 15:08:23 +02:00
Nicolas George
6d627eae3c showwaves: fix first sample of frame test.
Avoids a huge memleak when n != 1.
2012-06-23 15:08:22 +02:00
Nicolas George
bd9939f495 lavfi: display pad type with mismatch error message. 2012-06-23 11:34:46 +02:00
Paul B Mahol
e9d5c0520f lavc: use designated initializers for AVClasses
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-23 00:30:37 +00:00
Paul B Mahol
53cec46b25 libschroedingerdec: remove unused header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-23 00:29:34 +00:00
Michael Niedermayer
a619fd277a mjpegenc: enable frame multithreading encoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 01:38:47 +02:00
Michael Niedermayer
fde1bc64ad lavc: add frame multithreading capability (currently intra only)
Compared to the decoder side, this code is able to change both the
delay and the number of threads seamlessly during encoding. Also
any idle thread can pick up tasks, the strict round robin in order
limit is gone too.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 01:38:47 +02:00
Michael Niedermayer
0c851e4642 threads: make get_logical_cpus() available outside pthread.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 01:38:47 +02:00
Michael Niedermayer
094c5e6c55 mjpegenc: mark as intra only
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 01:38:47 +02:00
Michael Niedermayer
9eae43ddcf lavc: add intra only codec flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-23 01:38:47 +02:00
Paul B Mahol
9277965883 bmpenc: use av_assert()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-22 22:47:33 +00:00
Stefano Sabatini
c0ca840837 lavfi/buffer: remove unused function av_vsrc_buffer_add_frame_alt() 2012-06-23 00:42:51 +02:00
Stefano Sabatini
39e019e8c1 ffplay: add cast to fix warning in configure_video_filters()
Fix warning:
ffplay.c:1578:40: warning: passing argument 5 of ‘avfilter_graph_create_filter’ discards ‘const’ qualifier from pointer target type [enabled by default]
libavfilter/avfiltergraph.h:84:5: note: expected ‘void *’ but argument is of type ‘const enum PixelFormat *’
2012-06-23 00:42:51 +02:00
Stefano Sabatini
1dce2368bb lavfi/buffer: apply misc consistency nits 2012-06-23 00:42:51 +02:00
Stefano Sabatini
201b409da0 lavc/pcm: clarify error message from pcm_decode_frame()
Extend/clarify an error message in case of invalid packet size, and
return a proper error message instead of -1.
Improve debuggability.
2012-06-23 00:42:51 +02:00
Michael Niedermayer
69971410f9 ff_snow_common_end: assert() that the last buffer freed differs from the current.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 23:53:24 +02:00
Michael Niedermayer
c13e490dce codec_release_buffer: fix handling of non user buffers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 23:53:24 +02:00
Stefano Sabatini
c17808cebd lavfi: define macro AVFILTER_DEFINE_CLASS
The macro can be used to define consistently the internal class of a
filter, save some typing and factorize.
2012-06-22 23:11:43 +02:00
Stefano Sabatini
012aa12a6b lavfi/drawtext: remove unnecessary parentheses in init() 2012-06-22 23:11:43 +02:00
Alex Converse
41e637e449 lavfi: Add the af_channelmap audio channel mapping filter.
Inspired by MPlayer's af_channels filter and SoX's remix effect.
2012-06-22 13:55:58 -07:00
Michael Niedermayer
0567715a6b qsort: flip compare direction to match libc qsort()
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 22:48:00 +02:00
Michael Niedermayer
e847f41285 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libspeexenc: add supported sample rates and channel layouts.
  Replace usleep() calls with av_usleep()
  lavu: add av_usleep() function
  utvideo: mark interlaced frames as such
  utvideo: Fix interlaced prediction for RGB utvideo.
  cosmetics: do not use full path for local headers
  lavu/file: include unistd.h only when available
  configure: check for unistd.h
  log: include unistd.h only when needed
  lavf: include libavutil/time.h instead of redeclaring av_gettime()

Conflicts:
	configure
	doc/APIchanges
	ffmpeg.c
	ffplay.c
	libavcodec/utvideo.c
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 22:34:02 +02:00
Clément Bœsch
492cc9bcc4 ffmpeg: remove unused buffer_size in InputFile. 2012-06-22 22:13:22 +02:00
Michael Niedermayer
8aeed14459 h.263enc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 21:51:05 +02:00
Michael Niedermayer
c8f4c83e70 h.263dec: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 21:50:50 +02:00
Anton Khirnov
dc07fb6f7b lavfi: add join audio filter.
It joins multiple input streams into one multi-channel output.
2012-06-22 21:26:18 +02:00
Anton Khirnov
f75be9856a lavfi: allow audio filters to request a given number of samples.
This makes synchronization simpler for filters with multiple inputs.
2012-06-22 21:23:42 +02:00
Anton Khirnov
58b049f2fa lavfi: support automatically inserting the fifo filter when needed.
This breaks libavfilter ABI.
2012-06-22 21:06:01 +02:00
Anton Khirnov
fa06623930 lavfi/audio: eliminate ff_default_filter_samples().
It currently does the following:
1) get a zeroed audio buffer
2) copy some properties (but not the data) of the input buffer to it
3) pass this buffer to the output filter
This looks useless and is indeed not used by any filters, therefore
delete it.

Make ff_null_filter_samples() (just pass the buffer to the next filter)
the new default.
2012-06-22 20:58:19 +02:00
Wolfram Gloger
258dfff839 extend log line buffer sizes
The string passed to av_vlog() from libx264's X264_log overflows the 512
byte part_size, truncating x264 parameter output.  Double this size
and put it in a #define so it only needs to be changed in one place.

Signed-off-by: Wolfram Gloger <video06@malloc.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 19:16:51 +02:00
Anton Khirnov
9ee3334840 libspeexenc: add supported sample rates and channel layouts. 2012-06-22 19:03:24 +02:00
Mans Rullgard
896bb0d742 Replace usleep() calls with av_usleep()
This reduces the dependency on unistd.h which is not available
on all systems.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-22 17:15:36 +01:00
Mans Rullgard
d3d3a32c9d lavu: add av_usleep() function
This function implements a delay using the first available
of the following functions:

- nanosleep()
- usleep()
- Sleep() (Windows)

The conditional #includes in time.c are simplified by including
unistd.h and windows.h whenever they are available rather than
having these lines triggered by specific functions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-22 17:15:18 +01:00
Hendrik Leppkes
f6b4624fcf utvideo: mark interlaced frames as such
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-06-22 11:45:51 -04:00
Carl Eugen Hoyos
8875333707 utvideo: Fix interlaced prediction for RGB utvideo.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-06-22 11:45:25 -04:00
Michael Niedermayer
1e7943c315 snow: yuv410 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 17:23:09 +02:00
Michael Niedermayer
fba18ef8cc x86/dsputil_mmx: support 4 sample edges
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 17:23:09 +02:00
Carl Eugen Hoyos
15bde06084 Revert "mathematics.h: remove a couple of math defines"
This reverts commit a2b186a188.

The defines were present for several years, removing
them without a version bump may break API.
(Fixes MPlayer compilation.)
2012-06-22 16:10:42 +02:00
Paul B Mahol
10d2a4028c swresample: make .class_name more descriptive
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-22 14:01:15 +00:00
Michael Niedermayer
68c845cdba snow: yuv444 support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 15:46:13 +02:00
Diego Biurrun
a5a93fa8f5 cosmetics: do not use full path for local headers 2012-06-22 10:49:40 +02:00
Michael Niedermayer
13ba872a2a snowenc: update pix_sum for rectangles, needed for non 420
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 04:45:13 +02:00
Michael Niedermayer
b4b7471ec4 snowenc: set chroma subsample factors correctly for non 420
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 04:45:13 +02:00
Paul B Mahol
81416c2f64 swscale: use designated initializers for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-22 02:34:34 +00:00
Michael Niedermayer
2fa5d8f234 ffmpeg: print swr options in --help too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 03:43:29 +02:00
Paul B Mahol
4cdff58206 fate: add tests for SANM and VIMA
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-22 00:16:03 +00:00
Hendrik Leppkes
5916313967 avformat: offset fps calculation by one to include 60.00 fps
To ensure the full range of values is still used, also adjust all uses of this function to loop from 0
instead of 1. This way only 60.00 is added and nothing lost.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 01:58:57 +02:00
Lou Logan
cdb94139cc doc/faq: Update video joining examples
-same_quant is not designed to convert between quantizer scales, AFAIK.

Add example using concat protocol.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-22 01:36:14 +02:00
Mans Rullgard
d11baad055 lavu/file: include unistd.h only when available
The unistd.h header is only needed for the close() declaration.
If this header is not available, the close() declaration may be
provided by another header, e.g. io.h.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-21 22:54:31 +01:00
Mans Rullgard
542920b7f6 configure: check for unistd.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-21 22:54:05 +01:00
Mans Rullgard
539df61193 log: include unistd.h only when needed
The only symbol this file uses from unistd.h is isatty().  By
including the header only when this function is used, the file
can be built on systems without unistd.h (which presumably also
lack isatty).

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-21 22:53:35 +01:00
Mans Rullgard
c19e0ebe53 lavf: include libavutil/time.h instead of redeclaring av_gettime()
This avoids some warnings about redundant declarations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-21 22:53:05 +01:00
Michael Niedermayer
87dced8074 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fix hardcoded tables compililation caused by missing math constants
  lavf: Make codec_tag arrays constant
  twinvq: give massive struct a name.
  lavf, lavu: version bumps and APIchanges for av_gettime() move
  lavfi/audio: don't set cur_buf in ff_filter_samples().
  lavfi/fifo: add audio version of the fifo filter.
  fifo: fix parenthesis placement.
  lavfi: rename vf_fifo.c -> fifo.c
  lavc: remove stats_in from AVCodecContext options table.

Conflicts:
	doc/APIchanges
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/audio.c
	libavfilter/fifo.c
	libavformat/version.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 22:37:43 +02:00
Janne Grunau
1d01fee980 fix hardcoded tables compililation caused by missing math constants
Add -D_XOPEN_SOURCE=600 to host cflags to make the constants in math.h
available. Include math.h where necessary and remove redundant M_PI
defines.
2012-06-21 18:05:40 +02:00
Paul B Mahol
fd0b8c6ad5 sanm: silence warnings
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-21 14:57:21 +00:00
Nicolas George
9e63c30daa lavf: add a real SRT muxer.
This muxer supports CODEC_ID_SRT with the timestamps in the packet data
and CODEC_ID_TEXT with the timestamps in the packet fields.

Makes -scodec copy work from Matroska.
2012-06-21 20:52:56 +02:00
Hendrik Leppkes
14ac47fcc7 vc1: signal interlaced and tff flag to the consumer
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Mashiat Sarker Shakkhar <mashiat.sarker@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 19:49:37 +02:00
Michael Niedermayer
b829da3639 smacker: add sanity check for length in smacker_decode_tree()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 19:49:37 +02:00
Nicolas George
7681d0eaca lavd/lavfi: do not set the channel layout list.
The list was set to avfilter_all_channel_layouts,
which is really all common channel layouts.
Not setting it leaves an empty list,
which now means really all.
2012-06-21 19:40:49 +02:00
Ronald S. Bultje
67ffcb9613 lavf: Make codec_tag arrays constant
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-21 16:11:29 +03:00
Paul B Mahol
f4da707f58 Replace Libav with FFmpeg
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-21 12:33:28 +00:00
Paul B Mahol
3821632e1b smush: set audio packet duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-21 12:14:53 +00:00
Stefano Sabatini
1bb30d0295 lavfi/deshake: fix crash in uninit()
Add NULL check on avctx before calling avcodec_close() on it.

Fix trac ticket #1472.
2012-06-21 17:01:44 +02:00
Ronald S. Bultje
89ffd189ef twinvq: give massive struct a name.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-21 14:41:51 +03:00
Hendrik Leppkes
f77fd34bc3 aac: move sample_fmt selection before decoder configuration.
The decoder configuration initializes the sbr mdct, which needs to know about the sample format to properly take the scale factor into account.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 13:25:50 +02:00
Hendrik Leppkes
24e7a22e1f riff: don't overwrite bps from WAVEFORMATEX if EXTENSIBLE doesn't contain that data.
According to the specification on the MSDN [1], 0 is valid for that particular field, and it should be ignored in that case.

[1]: http://msdn.microsoft.com/en-us/library/windows/desktop/dd757714(v=vs.85).aspx

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 13:25:50 +02:00
Stefano Sabatini
cb08b6efc9 lavfi/scale: remove unused variable out_link
Fix warning:
libavfilter/vf_scale.c: In function ‘start_frame’:
libavfilter/vf_scale.c:284:23: warning: unused variable ‘out_link’ [-Wunused-variable]
2012-06-21 12:47:48 +02:00
Stefano Sabatini
c0b3c0ffb7 lavfi/audio: remove unused variable in ff_filter_samples()
Fix warning:
libavfilter/audio.c: In function ‘ff_filter_samples’:
libavfilter/audio.c:193:13: warning: unused variable ‘size’ [-Wunused-variable]
2012-06-21 12:47:48 +02:00
Stefano Sabatini
065851ffac lswr/rematrix: specify explicitly the name of the unsupported channel layouts
Help debugging.
2012-06-21 12:47:47 +02:00
Mans Rullgard
dc7e336cae lavf, lavu: version bumps and APIchanges for av_gettime() move
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-21 11:45:28 +01:00
Hendrik Leppkes
6d887ecac2 avformat: add 48 fps to the NTSC framerates
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 12:04:47 +02:00
Hendrik Leppkes
2d61f0040d utvideo: mark interlaced frames as such
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 11:47:00 +02:00
Hendrik Leppkes
f6943f2379 lagarith: frame multithreading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 11:47:00 +02:00
Hendrik Leppkes
07d49437d5 wavpack: set bits_per_raw_sample for S32 samples to properly identify 24-bit
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-21 11:47:00 +02:00
Stefano Sabatini
98701be356 lavfi/ass: update use of deprecated functions, fix warnings 2012-06-21 11:11:56 +02:00
Stefano Sabatini
eda4500866 lavfi/blackdetect: add logic for handling stream termination
Add request_frame() which checks the black duration when the end of the
stream is signalled. Allow to detect black video segments at the end of
the stream.

Note that the reported last black video segment duration is not very
accurate, since we still miss the duration information in the video
buffer.

Address trac ticket #1470.
2012-06-21 11:11:50 +02:00
Stefano Sabatini
5bc87f1cd6 lavfi/blackdetect: fix pts time debug printing 2012-06-21 11:00:20 +02:00
Anton Khirnov
e026c9b390 lavfi/audio: don't set cur_buf in ff_filter_samples().
It's redundant, since the input buffer is passed as a parameter to the
filter_samples() callback, and can lead to stale pointers remaining on
the link.
2012-06-21 09:27:05 +02:00
Anton Khirnov
4a97ff2fa7 lavfi/fifo: add audio version of the fifo filter. 2012-06-21 07:38:35 +02:00
Anton Khirnov
27570e211a fifo: fix parenthesis placement. 2012-06-21 07:38:28 +02:00
Anton Khirnov
394a2a0452 lavfi: rename vf_fifo.c -> fifo.c
It will be used for audio too.
2012-06-21 07:38:14 +02:00
Anton Khirnov
a50b756280 lavc: remove stats_in from AVCodecContext options table.
Its documentation states that it is allocated/freed by the caller, but
it is declared as an AV_OPT_TYPE_STRING AVOption. Since
367732832f the AVOptions system frees
strings automatically. This can be considered an API break, since it
won't work when the caller doesn't use av_malloc() to allocate the
memory or wants to use the string after closing the codec.

Since there is not much value in this field being an AVOption, the best
solution is to remove it from the options table.
2012-06-21 07:36:44 +02:00
Paul B Mahol
bef8fd7099 LucasArts SMUSH demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-21 02:27:53 +00:00
Paul B Mahol
69254f4628 LucasArts SMUSH video decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-21 01:30:16 +00:00
Paul B Mahol
b18357326c LucasArts SMUSH VIMA audio decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-21 01:23:15 +00:00
Michael Niedermayer
5a90e55ece libavfilter/transform: fix mirroring.
mirror() borrowed from dwt.c, this could be moved to libavutil and made
public API, Ill submit a patch for this

Fixes Ticket1278

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 23:55:17 +02:00
Michael Niedermayer
104c914640 libavutil: fix author attribution
Libav.org has removed this while moving the code around

For reference, the code was originally added in:
commit 9aeeeb63f7
Author: Fabrice Bellard <fabrice@bellard.org>
Date:   Wed Dec 20 00:02:47 2000 +0000

    Initial revision

    Originally committed as revision 2 to svn://svn.ffmpeg.org/ffmpeg/trunk
--
The function name originates from:
commit 9498853132
Author: Fabrice Bellard <fabrice@bellard.org>
Date:   Thu Jul 25 16:01:46 2002 +0000

    more consistent naming

    Originally committed as revision 802 to svn://svn.ffmpeg.org/ffmpeg/trunk

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 23:51:02 +02:00
Paul B Mahol
b2e2287c04 cdxl: disable checked bitstream reader
Overreads should not be possible.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-20 21:07:27 +00:00
Paul B Mahol
de05877390 lavfi: remove redundant checks after av_parse_video_rate()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-20 20:36:12 +00:00
Michael Niedermayer
4da42ebe44 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  MS Screen 1 decoder
  aacdec: Fix popping channel layouts.
  av_gettime: support Win32 without gettimeofday()
  Use av_gettime() in various places
  Move av_gettime() to libavutil
  dct-test: use emms_c() from libavutil instead of duplicating it
  mov: fix operator precedence bug
  mathematics.h: remove a couple of math defines
  Remove unnecessary inclusions of [sys/]time.h
  lavf: remove unnecessary inclusions of unistd.h
  bfin: libswscale: add const where appropriate to fix warnings
  bfin: libswscale: remove unnecessary #includes
  udp: Properly check for invalid sockets
  tcp: Check the return value from getsockopt
  network: Use av_strerror for getting error messages
  udp: Properly print error from getnameinfo
  mmst: Use AVUNERROR() to convert error codes to the right range for strerror
  network: Pass pointers of the right type to get/setsockopt/ioctlsocket on windows
  rtmp: Reduce the number of idle posts sent by sleeping 50ms

Conflicts:
	Changelog
	configure
	libavcodec/aacdec.c
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/dct-test.c
	libavcodec/version.h
	libavformat/riff.c
	libavformat/udp.c
	libavutil/Makefile
	libswscale/bfin/yuv2rgb_bfin.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 20:47:46 +02:00
Michael Niedermayer
e632a430fe vf_vflip: fix handling of the last line.
Fixes Ticket1271

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 20:14:01 +02:00
Michael Niedermayer
a46f8915be vf_lut: fix handling of odd dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 20:13:43 +02:00
Kostya Shishkov
005c80b645 MS Screen 1 decoder 2012-06-20 19:08:10 +02:00
Alex Converse
43886eaebc aacdec: Fix popping channel layouts.
'channel_layout' not 'channels' from the stored configuration should go
to AVCodecContext's 'channel_layout'.
2012-06-20 09:35:58 -07:00
Michael Niedermayer
827667eca7 mjpegenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 18:20:04 +02:00
Michael Niedermayer
4eae08b438 mjpegdec: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 18:19:53 +02:00
Mans Rullgard
61183b5ab4 av_gettime: support Win32 without gettimeofday()
Based on patch by Ronald S. Bultje.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 17:09:03 +01:00
Mans Rullgard
980f81d961 Use av_gettime() in various places
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 17:09:03 +01:00
Mans Rullgard
ae0a301668 Move av_gettime() to libavutil
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 17:09:03 +01:00
Michael Niedermayer
bc210bfca6 log: flip highlight bit for codec & muxer layer
This way the encoder/muxer side is bold

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 17:22:18 +02:00
Mans Rullgard
db7d8fb4ef dct-test: use emms_c() from libavutil instead of duplicating it 2012-06-20 15:38:00 +01:00
Ronald S. Bultje
f1f37c7011 mov: fix operator precedence bug 2012-06-20 15:37:01 +01:00
Janne Grunau
a2b186a188 mathematics.h: remove a couple of math defines
While these defines are not defined by the C standard they are
standardized as X/Open System Interfaces Extension. We use the
appropiate _XOPEN_SOURCE define to make them available. They
seem to be available on all FATE configs since the constants
are used in files where mathematics.h is not included.
2012-06-20 15:45:21 +02:00
Lou Logan
493156ed31 doc/ffmpeg.texi: use an exising preset file name
libx264-max.ffpreset is no longer with us.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-20 15:29:46 +02:00
Mans Rullgard
6501dcfb5e Remove unnecessary inclusions of [sys/]time.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 11:46:46 +01:00
Mans Rullgard
4e5a514813 lavf: remove unnecessary inclusions of unistd.h
These files do not use anything provided by unistd.h.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 11:46:30 +01:00
Stefano Sabatini
3ea3e32e03 lavfi: add showwaves filter 2012-06-20 12:37:57 +02:00
Stefano Sabatini
93bbe53c44 lavfi/asplit: fix memleak
The input samples buffer must be unreferenced after it is propagated to
the output links.
2012-06-20 12:37:50 +02:00
Paul B Mahol
86206035d1 avio: av_protocol_next() is gone
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-20 01:56:03 +00:00
Mans Rullgard
4996e8f510 bfin: libswscale: add const where appropriate to fix warnings
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 02:15:33 +01:00
Mans Rullgard
6bac8971cc bfin: libswscale: remove unnecessary #includes
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 02:15:33 +01:00
Paul B Mahol
420990db30 libilbc: use designated initializers for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 20:43:28 +00:00
Paul B Mahol
10952e0602 lavfi/color: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 20:04:17 +00:00
Michael Niedermayer
18d7bea695 wmv2enc: fix rounding flag.
Fixes Ticket1467

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 21:38:18 +02:00
Paul B Mahol
9e7543361c lavfi/color: use AVOptions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 19:27:41 +00:00
Michael Niedermayer
cabbd271a5 Merge remote-tracking branch 'qatar/master'
* qatar/master: (24 commits)
  flvdec: remove incomplete, disabled seeking code
  mem: add support for _aligned_malloc() as found on Windows
  lavc: Extend the documentation for avcodec_init_packet
  flvdec: remove incomplete, disabled seeking code
  http: replace atoll() with strtoll()
  mpegts: remove unused/incomplete/broken seeking code
  af_amix: allow float planar sample format as input
  af_amix: use AVFloatDSPContext.vector_fmac_scalar()
  float_dsp: add x86-optimized functions for vector_fmac_scalar()
  float_dsp: Move vector_fmac_scalar() from libavcodec to libavutil
  lavr: Add x86-optimized function for flt to s32 conversion
  lavr: Add x86-optimized function for flt to s16 conversion
  lavr: Add x86-optimized functions for s32 to flt conversion
  lavr: Add x86-optimized functions for s32 to s16 conversion
  lavr: Add x86-optimized functions for s16 to flt conversion
  lavr: Add x86-optimized function for s16 to s32 conversion
  rtpenc: Support packetizing iLBC
  rtpdec: Add a depacketizer for iLBC
  Implement the iLBC storage file format
  mov: Support muxing/demuxing iLBC
  ...

Conflicts:
	Changelog
	configure
	libavcodec/avcodec.h
	libavcodec/dsputil.c
	libavcodec/version.h
	libavformat/movenc.c
	libavformat/mpegts.c
	libavformat/version.h
	libavutil/mem.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 20:53:27 +02:00
Martin Storsjö
042b272a4a udp: Properly check for invalid sockets
If stdin has been closed, 0 is a valid socket descriptor.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:25:09 +03:00
Martin Storsjö
bb6c1abb0e tcp: Check the return value from getsockopt
Make sure we actually have an error code in ret, in case
getsockopt failed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:25:07 +03:00
Martin Storsjö
a840cdda6c network: Use av_strerror for getting error messages
Also use ff_neterrno() instead of errno directly (which doesn't work
on windows), for getting the error code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:24:55 +03:00
Martin Storsjö
860b40f1f2 udp: Properly print error from getnameinfo
getnameinfo doesn't set errno on failure, it returns an error code,
which should be handled by gai_strerror instead of the normal
strerror.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:24:33 +03:00
Martin Storsjö
6aa4e88106 mmst: Use AVUNERROR() to convert error codes to the right range for strerror
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:23:19 +03:00
Martin Storsjö
561687696f network: Pass pointers of the right type to get/setsockopt/ioctlsocket on windows
This avoids warnings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:22:47 +03:00
Samuel Pitoiset
9d811fd80f rtmp: Reduce the number of idle posts sent by sleeping 50ms
Rtmpt is effectively half duplex - the server can't return any
data unless we send a request (to which the server responds). If
we don't have any data to send currently, and the server didn't
return any data either, wait a little before doing the next request.

This avoids busy looping with idle posts with empty replies, while
waiting for more data from the server.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:21:21 +03:00
Paul B Mahol
6b9446e932 avidec: add .category
While here make .class_name consistent with other AVClass.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 16:26:01 +00:00
Pavel Koshevoy
5fa8226420 libavfilter: improve atempo audio quality
Reduce audio fragment alignment jitter by penalizing alignment
correction offsets that deviate too much from the target offset.
This is accomplished by multiplying the cross correlation search
window with a quadratic function.

Signed-off-by: Pavel Koshevoy <pavel@homestead.aragog.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:29:27 +02:00
Michael Niedermayer
08613d50d6 lavf: separate muxer/demuxer class category
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:22:07 +02:00
Michael Niedermayer
6fb7d03d74 lavc: seperate encoder/decoder class category
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:22:07 +02:00
Michael Niedermayer
e69263cd01 avutil: add get_category() for the case where one AVClass can have more than 1 category
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:22:02 +02:00
Michael Niedermayer
b76f77ee0d log: swap colors for muxer and codec layer
This way the filters which are semantically closer to the codec layer
have a (subjectively to me) more similar color.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:13:45 +02:00
Michael Niedermayer
0412e5187e lavfi/avfilter: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:13:45 +02:00
Michael Niedermayer
82ac6a66f9 rv40dsp: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 17:13:45 +02:00
Stefano Sabatini
db142a8395 lavfi/avcodec: make avfilter_fill_frame_from*() functions use avfilter_copy_buf_props()
The code in avfilter_copy_buf_props() is more generic, allow code
factorization.
2012-06-19 16:44:36 +02:00
Stefano Sabatini
8f8d8b9538 lavfi/avcodec: always use av_frame* accessors in avfilter_copy_buf_props()
Use av_frame_* accessors for the newly added fields in AVFrame (for which
we are supposed to use such accessors), and group the istructions
accordingly.
2012-06-19 16:44:35 +02:00
Stefano Sabatini
d5761fe47d lavfi/avcodec: copy pos field from AVFilterBuffer to AVFrame pkt_pos 2012-06-19 16:44:35 +02:00
Stefano Sabatini
208c5a08da lavc/qtrlenc: return proper error codes from qtrle_encode_init() 2012-06-19 16:44:35 +02:00
Stefano Sabatini
5793a6d9f9 lavc/libschroedinger: add missing failure checks in ff_create_schro_frame() 2012-06-19 16:44:34 +02:00
Michael Niedermayer
97726e86be x86/intmath: fix type of FASTDIV
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 16:20:20 +02:00
Paul B Mahol
7238ed6c84 avidec: use designated initializers for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 13:59:17 +00:00
Paul B Mahol
ef8bea9107 mov: use designated initializers for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-19 13:57:06 +00:00
Carl Eugen Hoyos
c47fc942d4 Fix dependencies for the atempo filter.
Found, analysed and tested by trac user Jamal.

Fixes ticket #1465.
2012-06-19 12:06:41 +02:00
Diego Biurrun
4cc2920dd2 flvdec: remove incomplete, disabled seeking code 2012-06-19 10:42:46 +02:00
Ronald S. Bultje
be1a839ca6 mem: add support for _aligned_malloc() as found on Windows
The check uses check_func_header, since this function is
conditionally available depending on the targeted MSVCRT
version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 10:08:00 +03:00
Simon A. Eugster
7146177d18 lavc: Extend the documentation for avcodec_init_packet
Add a note that pkt->data and pkt->size must be initialized.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 10:07:46 +03:00
Michael Niedermayer
0c142e4cda swr: introduce filter_alloc in preparation of SIMD resample optimisations
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 03:09:24 +02:00
Michael Niedermayer
80e857c967 swr/resample: optimize C code for the most common case
15% speedup

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-19 03:09:24 +02:00
Ronald S. Bultje
8703f0140f flvdec: remove incomplete, disabled seeking code 2012-06-19 01:02:10 +01:00
Ronald S. Bultje
51a2b5546b http: replace atoll() with strtoll() 2012-06-19 01:00:13 +01:00
Ronald S. Bultje
ae2bb52cd2 mpegts: remove unused/incomplete/broken seeking code 2012-06-19 00:56:43 +01:00
Stefano Sabatini
c90e8054af lavc/avcodec.h: fix reference to nonexistent function in av_picture_copy() doxy
Mention av_image_copy() instead.
2012-06-19 01:36:39 +02:00
Stefano Sabatini
18b4404dc3 lavc/imgconvert: fix check on av_image_check_size() return code in avpicture_get_size()
The documentation states that av_image_check_size() will return a
negative value in case of error, while the check is done on ret != 0.

Also return a proper error code rather than -1 in case the check fails.
2012-06-19 01:36:30 +02:00
Stefano Sabatini
0b2ecf8224 lavc/imgconvert: remove pointless switch block from avpicture_fill() 2012-06-19 01:36:23 +02:00
Stefano Sabatini
b583ccc3db lavc/rawdec: propagate duration from packet to frame 2012-06-19 01:36:17 +02:00
Justin Ruggles
ae46fbee1d af_amix: allow float planar sample format as input 2012-06-18 18:01:14 -04:00
Justin Ruggles
f0ece49e74 af_amix: use AVFloatDSPContext.vector_fmac_scalar() 2012-06-18 18:01:14 -04:00
Justin Ruggles
82b2df9790 float_dsp: add x86-optimized functions for vector_fmac_scalar() 2012-06-18 18:01:14 -04:00
Justin Ruggles
cb5042d02c float_dsp: Move vector_fmac_scalar() from libavcodec to libavutil 2012-06-18 18:01:14 -04:00
Justin Ruggles
4e4dd71730 lavr: Add x86-optimized function for flt to s32 conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
6c63cbfe7a lavr: Add x86-optimized function for flt to s16 conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
97ce1ba867 lavr: Add x86-optimized functions for s32 to flt conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
5904f25b9f lavr: Add x86-optimized functions for s32 to s16 conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
d721f67d0a lavr: Add x86-optimized functions for s16 to flt conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
1168e29df1 lavr: Add x86-optimized function for s16 to s32 conversion 2012-06-18 16:16:59 -04:00
Michael Niedermayer
4b5c7d4d9a huffyuv: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 21:44:48 +02:00
Michael Niedermayer
da42f56985 asv1: switch to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 21:44:22 +02:00
Martin Storsjö
579fd87b46 rtpenc: Support packetizing iLBC
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:01:04 +03:00
Martin Storsjö
89c3960544 rtpdec: Add a depacketizer for iLBC
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:01:04 +03:00
Martin Storsjö
a2b251a05e Implement the iLBC storage file format
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:01:02 +03:00
Martin Storsjö
9e74db6850 mov: Support muxing/demuxing iLBC
The packet size, signalled via block_align, has to be passed via
the container.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:00:35 +03:00
Martin Storsjö
3641b0489c Add support for iLBC decoding/encoding via the external library libilbc
The library is 3-clause BSD licensed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:00:35 +03:00
Samuel Pitoiset
46743a859c rtmp: Don't send every flv packet in a separate HTTP request in RTMPT
Add a new option 'rtmp_flush_interval' that allows specifying the
number of packets to write before sending it off as a HTTP request.

This is mostly relevant for RTMPT - for plain RTMP, it only controls
how often we check the socket for incoming packets, which shouldn't
affect the performance in any noticeable way.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 22:00:31 +03:00
Martin Storsjö
bbc8038614 rtsp: Send mode=record instead of mode=receive
This seems to be the correct mode to send, according to the
original RTSP RFC, and matches the method RECORD which is
sent later when starting to send data.

Darwin Streaming Server works fine with either of them.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 21:35:28 +03:00
Ronald S. Bultje
db28b01dcf dirac: replace compound literal with normal initialiser
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-18 19:32:07 +01:00
Michael Niedermayer
b90f83e905 snowenc: update selftest code for the new temporary arrays
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 20:23:53 +02:00
Michael Niedermayer
82edf6727f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: add x86-optimized functions for mixing 1-to-2 s16p with flt coeffs
  lavr: add x86-optimized functions for mixing 1-to-2 fltp with flt coeffs
  Add Dolby/DPLII downmix support to libavresample
  vorbisdec: replace div/mod in loop with a counter
  fate: vorbis: add 5.1 surround test
  rtpenc: Allow requesting H264 RTP packetization mode 0
  configure: Sort the library listings in the help text alphabetically
  dwt: remove variable-length arrays
  RTMPT protocol support
  http: Properly handle chunked transfer-encoding for replies to post data
  http: Fail reading if the connection has gone away
  amr: Mark an array const
  amr: More space cleanup
  rtpenc: Fix memory leaks in the muxer open function

Conflicts:
	Changelog
	configure
	doc/APIchanges
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 20:07:00 +02:00
Michael Niedermayer
f87dacb27d libavutil: add a merge sort.
compared to qsort this is slower but its stable and doesnt have a O(n^2) worst
case

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 18:40:02 +02:00
Michael Niedermayer
096db654af qsort doxy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 18:39:35 +02:00
Michael Niedermayer
88f87ebaa3 qsort: add some forgotten ()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 18:39:17 +02:00
Justin Ruggles
f61ce90caa lavr: add x86-optimized functions for mixing 1-to-2 s16p with flt coeffs 2012-06-18 11:24:10 -04:00
Justin Ruggles
29f7490c46 lavr: add x86-optimized functions for mixing 1-to-2 fltp with flt coeffs 2012-06-18 11:24:10 -04:00
John Stebbins
3971be0eb5 Add Dolby/DPLII downmix support to libavresample
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-06-18 10:55:00 -04:00
Michael Niedermayer
3a0a2f33a6 libavutil: add AV_QSORT()
about 2-5 times faster than gnu libcs qsort()
And should be 100% binary identical across platforms.

I will bump the version once the API is certainly stable and
everyone is happy with the API.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-18 16:32:31 +02:00
Mans Rullgard
9fcda25e35 vorbisdec: replace div/mod in loop with a counter
2x speedup of surround decoding on Cortex-A9.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-18 11:47:08 +01:00
Mans Rullgard
7457ebee3a fate: vorbis: add 5.1 surround test
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-18 11:47:08 +01:00
Martin Storsjö
d77f4afa98 rtpenc: Allow requesting H264 RTP packetization mode 0
This requires all NAL units to fit within single RTP packets. It
doesn't change the actual packetization for packets that fit, but
errors out and gives a helpful hint if the NAL units would have to
be split, and signals the right packetization mode in the SDP.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 12:27:56 +03:00
Martin Storsjö
becc3c629b configure: Sort the library listings in the help text alphabetically
Only these three libraries were out of order, the rest was already
neatly sorted.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-18 11:10:14 +03:00
Nicolas George
8c3514647e ffmpeg.c: count subtitles in total size.
This avoids the "Output file is empty" warning
with subtitles-only files.
2012-06-18 09:40:01 +02:00
Nicolas George
c49e960a60 ffprobe: dump AVPacket.convergence_duration. 2012-06-18 09:39:17 +02:00
Nicolas George
9ae3e45521 ffprobe: add -show_data option. 2012-06-18 09:38:36 +02:00
Michael Bradshaw
2243f0d078 lavf: add field for how duration is estimated
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
2012-06-18 09:36:34 +02:00
Carl Eugen Hoyos
3b3150ec9b Fix interlaced prediction for RGB utvideo.
Fixes ticket #1215
2012-06-18 09:01:35 +02:00
Ronald S. Bultje
d9669eab0b dwt: remove variable-length arrays
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-17 23:20:10 +01:00
Michael Niedermayer
564bb244eb Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: fix -vismv 1
  ffplay: rename buffer source instance from "src" to "ffplay_buffer"
  ffplay: use key=val syntax for the buffersrc args

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 23:42:56 +02:00
Michael Niedermayer
6ca48ad044 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  amr: Cosmetic cleanup
  mov_chan: Fix operator precedence by adding parentheses
  doc: Add missing protocols to list of supported protocols.
  tcp: Check the listen call

Conflicts:
	libavformat/amr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 22:28:28 +02:00
Samuel Pitoiset
8e50c57dcb RTMPT protocol support
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPT protocol implementation uses rtmphttp:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:56:56 +03:00
Martin Storsjö
35127bf156 http: Properly handle chunked transfer-encoding for replies to post data
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:56:56 +03:00
Martin Storsjö
eb564b23a3 http: Fail reading if the connection has gone away
This can happen if doing a new request using the same socket,
but the new request failed, which clears the urlcontext.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:56:51 +03:00
Martin Storsjö
eb3918c1fd amr: Mark an array const
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:50:06 +03:00
Martin Storsjö
634e874de5 amr: More space cleanup
This was missed in the previous cleanup patch.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:50:04 +03:00
Martin Storsjö
e9ef88fbd2 rtpenc: Fix memory leaks in the muxer open function
Also return a proper error code in these cases.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 22:49:25 +03:00
Michael Niedermayer
db83570875 ffplay: fix -vismv 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-17 21:36:58 +02:00
Stefano Sabatini
8f45c3141c ffplay: rename buffer source instance from "src" to "ffplay_buffer"
The new name is more descriptive.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-17 20:32:24 +02:00
Stefano Sabatini
251f398798 ffplay: use key=val syntax for the buffersrc args
Fix warning:
[src @ ...] Flat options syntax is deprecated, use key=value pairs.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-17 20:32:20 +02:00
Michael Niedermayer
1125606a1f vp3dec: fix null ptr derefernce.
Fixes ticket1403

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 19:50:58 +02:00
Michael Niedermayer
5015c37b7d attributes: move av_restrict fallback from internal to attributes
This should fix --enable-hardcoded-tables

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 18:05:31 +02:00
Martin Storsjö
5f26d4d448 amr: Cosmetic cleanup
Add spaces around operators, fix brace placement and whitespace to
match K&R style, vertically align code, remove redundant != 0 and
convert x == 0 into !x, drop useless braces.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 19:04:46 +03:00
Michael Niedermayer
40ffbf20d8 fate: fix fate-aac-aref-encode dependancies
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 17:59:00 +02:00
Michael Niedermayer
eaf655384b avienc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 17:10:05 +02:00
Michael Niedermayer
4aed3ac86a msmpeg4enc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 17:09:34 +02:00
Martin Storsjö
44fdf37c94 mov_chan: Fix operator precedence by adding parentheses
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 17:51:50 +03:00
Diego Biurrun
f404c7dcd7 doc: Add missing protocols to list of supported protocols. 2012-06-17 15:23:18 +02:00
Clément Bœsch
20a6fa77a6 doc: add two similar overlay "side-by-side" examples. 2012-06-17 13:20:04 +02:00
Paul B Mahol
54101214d8 lavfi: use designated initializers for AVClass
While here:
    - add missing .version and .category,
    - make .class_name consistent across filters,
    - align declarations.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-17 11:10:10 +00:00
Stefano Sabatini
d70a1a507d MAINTAINERS: reorganize entries in the libavfilter section 2012-06-17 22:17:44 +02:00
Michael Niedermayer
c390822e18 intel h263 dec: support advanced prediction
Fixes Ticket1292

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 21:32:43 +02:00
Pavel Koshevoy
a1aac8d004 lavfi: add atempo filter
Add atempo audio filter for adjusting audio tempo without affecting
pitch. This filter implements WSOLA algorithm with fast cross
correlation calculation in frequency domain.

Signed-off-by: Pavel Koshevoy <pavel@homestead.aragog.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-06-17 12:50:35 +02:00
Jordi Ortiz
a7cc78cb11 tcp: Check the listen call
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-17 13:22:36 +03:00
Michael Niedermayer
bc4da77b08 lavu/internal: define av_restrict if it has not been defined by config.h
This can happen if a application doesnt use ffmpegs configure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 04:48:57 +02:00
J. Bohl
fbed9317ff enable C99-external_inline for icl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 03:46:19 +02:00
Paul B Mahol
137e80817d lavc: build some codecs only if they are actually enabled
Saves few bytes if only some of them in same file are enabled.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-17 00:53:06 +00:00
Ronald S. Bultje
17fad33f81 Change all uses of restrict to use av_restrict instead.
Defining restrict results - for some compilers - in changing other
uses of the restrict keyword also, e.g. __declspec(restrict) gets
changed to __declspec(__restrict) on MSVC. This causes compilation
failures. Therefore, using a private namespace macro instead is
more reliable and robust.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-17 00:38:39 +02:00
Michael Niedermayer
5c14b282d1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flacdec: read attached pictures.
  lavf: don't segfault when a NULL filename is passed to avformat_open_input()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 23:22:42 +02:00
Michael Niedermayer
9946a6aa55 diracdsp: try to fix segfault
This might fix Ticket1412

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 23:16:54 +02:00
Paul B Mahol
c9e183b490 lavfi: update some deprecated functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-16 15:15:16 +00:00
Michael Niedermayer
0354412aa3 ffmenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 17:59:01 +02:00
Michael Niedermayer
3000074495 mpegvideo_common.h: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 17:58:40 +02:00
Michael Niedermayer
809d71d650 sws/swscale_unscaled: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 17:34:07 +02:00
Michael Niedermayer
e003da7139 sws/utils: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 17:34:07 +02:00
Anton Khirnov
ae702edf43 flacdec: read attached pictures. 2012-06-16 17:10:23 +02:00
Anton Khirnov
a5db8e4a1a lavf: don't segfault when a NULL filename is passed to avformat_open_input()
This can easily happen when the caller is using a custom AVIOContext.

Behave as if the filename was an empty string in this case.

CC: libav-stable@libav.org
2012-06-16 17:09:33 +02:00
Paul B Mahol
fd8def9248 lavfi/super2xsai: fix fate test on bigendian
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-16 09:35:05 +00:00
Giorgio Vazzana
c78cf00bd8 md5: consistently use uint32_t instead of unsigned int
Basically to make code clearer and adherent to the
standard. RFC 1321, on page 2 states

Let the symbol "+" denote addition of words (i.e., modulo-2^32
addition). Let X <<< s denote the 32-bit value obtained by circularly
shifting (rotating) X left by s bit positions.

on page 3, section 3.3 states:

A four-word buffer (A,B,C,D) is used to compute the message digest.
Here each of A, B, C, D is a 32-bit register.

so the algorithm needs to work with integers that are exactly 32bits
in length. And indeed in struct AVMD5 the MD buffer is declared as
"uint32_t ABCD[4];", while in the function that performs the block
transformation the state variables were "unsigned int"s. On
architectures where sizeof(unsigned int) != sizeof(uint32_t) this
could be a problem, although I can't name such an architecture from
the top of my head.
On a side note, both the reference implementation in RFC 1321 and the
gnulib implementation (used by md5sum program on GNU systems) use
uint32_t in the transform function.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 12:47:46 +02:00
Clément Bœsch
c7bdfbe79f MAINTAINERS: add my GPG fingerprint. 2012-06-16 02:50:00 +02:00
Michael Niedermayer
46c50b1726 vf_pad: check that we have write permission before writing in the buffer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-16 01:54:50 +02:00
Stefano Sabatini
2b1fc5621d lavfi: add asetnsamples audio filter
This filter changes the number of samples on single output operation.

Based on a patch by Andrey Utkin <andrey.krieger.utkin@gmail.com>.
2012-06-16 00:54:20 +02:00
Stefano Sabatini
e20530add7 lavfi/split: give a more accurate description to split
The filter now supports a configurable number of outputs.
2012-06-16 00:46:58 +02:00
Stefano Sabatini
a1411eec21 ffprobe: add writer_print_rational()
Improve overall consistency, allow some factorization.
2012-06-16 00:42:54 +02:00
Stefano Sabatini
b6131ac5d3 doc/filters: prefer @itemize environment for frei0r examples 2012-06-16 00:31:03 +02:00
Stefano Sabatini
eb732b2ade doc/filters: update Frei0r website link
Frei0r recently changed website host.
2012-06-16 00:30:54 +02:00
Stefano Sabatini
b2bcbcd999 lavfi/super2xsai: simplify code updating the color matrix at each y iteration
Remove duplicated out-of-loop init code, and do color matrix
initialization at the beginning of each y iteration.

Allow factorization and avoid an useless matrix update in the last
iteration.
2012-06-16 00:30:48 +02:00
Stefano Sabatini
4ebb46eb14 lavfi/super2xsai: fix table used to update color matrix at the end of each y loop
The previous table appears to be wrong (it was copied from the original
MPlayer super2xsai filter in order to keep binary compatibility).

The new table is consistent with the init code and apparently fixes a
combing artifact on the left edge of the generated image.
2012-06-16 00:30:42 +02:00
Stefano Sabatini
ef255642d5 fate/lavfi: add lavfi-pixfmts_super2xsai test 2012-06-16 00:30:33 +02:00
Stefano Sabatini
635a25954e lavfi/video: set output frame w/h properties in default_start_frame()
Use the same values of the video output link.

Avoid the need to override the default_start_frame() with an ad-hoc
start_frame() callback.

In particular, fix the super2xsai filter which was setting the
input w/h values in the output.
2012-06-16 00:30:27 +02:00
Stefano Sabatini
f0394f28c3 lavfi/avcodec: add consistency checks in avfilter_copy_buf_props()
The function will abort through an assert if the source is not defined,
or if the internal state of the source is inconsistent (e.g. type = AUDIO
&& !src->audio).
2012-06-16 00:30:13 +02:00
Stefano Sabatini
6808759a58 lavc/rawdec: fix various bogus error codes and add some logs
Help debugging.
2012-06-16 00:30:05 +02:00
Stefano Sabatini
3cc1a89881 lavc/utils: in avcodec_decode_video2() return proper error code instead of -1
Return AVERROR(EINVAL) in case of invalid coded size.
2012-06-16 00:29:59 +02:00
Michael Niedermayer
90d8506fbf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  af_resample: fix format modifier in debug string for FF_API_SAMPLERATE64
  segment: remove unnecessary <strings.h> include
  fate: add snow hpel tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 20:56:06 +02:00
Janne Grunau
fbc5740566 af_resample: fix format modifier in debug string for FF_API_SAMPLERATE64 2012-06-15 19:10:58 +02:00
Janne Grunau
1cdcf043ca segment: remove unnecessary <strings.h> include 2012-06-15 19:10:58 +02:00
Mans Rullgard
16b8525963 fate: add snow hpel tests
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-06-15 19:10:58 +02:00
Paul B Mahol
be32145e9d j2kdec: move s->avctx initialization to j2kdec_init()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-15 12:10:25 +00:00
Paul B Mahol
29e9f83192 j2kdec: check colorspace ncomponents
This prevents out of array read.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-15 12:02:37 +00:00
Michael Niedermayer
dd2086140c nutenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 19:44:42 +02:00
Michael Niedermayer
17bbb818ae amr: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 19:44:42 +02:00
Michael Niedermayer
47f8303069 lavf/aviobuf: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 19:44:42 +02:00
Michael Bradshaw
67703d64d7 lavf: cosmetic: format else with indentation
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 19:44:42 +02:00
Clément Bœsch
b678daf05c lavc/microdvddec: fix color parsing. 2012-06-15 18:42:10 +02:00
Clément Bœsch
47395a4f52 lavc/microdvddec: properly reset non persistent color tag. 2012-06-15 18:41:14 +02:00
Clément Bœsch
608bda925a lavf/{srt,microdvd}: correctly raise error on avformat_new_stream() error. 2012-06-15 18:40:14 +02:00
Martin Sliwka
9b6f2c7483 file: Fix handling of windows named pipes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 15:05:33 +02:00
Michael Niedermayer
11153a9371 avio: Collect and print statistics of bytes read & seeks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 11:24:16 +02:00
William Yu
f77a695d2e lavfi: af_amerge options array was not ended with NULL
Add a NULL to prevent undefined behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 11:22:05 +02:00
Michael Niedermayer
cd65cd8c5a revert "extern inline" usage
as it breaks ICC:
libavcodec/libavcodec.a(snowenc.o): In function `encode_q_branch':
/home/fate/x86_64-linux-gnu-icc-2011.4.191/src/libavcodec/snowenc.c:405: undefined reference to `ff_epzs_motion_search'
/home/fate/x86_64-linux-gnu-icc-2011.4.191/src/libavcodec/snowenc.c:414: undefined reference to `ff_get_mb_score'

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 10:29:13 +02:00
J. Bohl
0719e44b58 new attribute "extern inline" (fixing linker error with ff_get_mb_score and ff_get_mb_score)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 03:14:07 +02:00
Paul B Mahol
62c2daab0d configure: do not auto enable mlp decoder when enabling truehd decoder
It is generally bad idea even if codecs use same code.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-15 01:00:54 +00:00
Paul B Mahol
a09ae4ef65 Remove duplicated png and mng signatures.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-15 00:53:34 +00:00
Michael Niedermayer
59c122b3b0 matroskadec: add assert on lack of overflow in pkt_size+offset
currently a overflow there should be impossible but future changes to
the code could easily introduce a bug that no longer limits the 2
values sufficiently so better protect it via av_assert.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 01:35:52 +02:00
Michael Niedermayer
4b7c52346a matroskadec: change size check in matroska_decode_buffer() to unsigned
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 01:29:30 +02:00
Michael Niedermayer
08169fc3d2 matroskadec: move lace_size check up so it catches all code pathes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 01:28:40 +02:00
Michael Niedermayer
88a740afde matroskadec: change assert to av_assert0()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 01:27:56 +02:00
Dale Curtis
71529bd8c5 Fix incorrect unsigned->signed conversion.
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 01:17:13 +02:00
Michael Niedermayer
15f8941108 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Avoid C99 variable declarations within for statements.
  rtmp: Read and handle incoming packets while writing data
  doc: document THREAD_TYPE fate variable
  rtpdec: Don't require frames to start with a Mode A packet
  avconv: don't try to free threads that were not initialized.

Conflicts:
	doc/fate.texi
	ffplay.c
	libavdevice/dv1394.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 00:14:21 +02:00
Michael Niedermayer
01a14ce042 riff: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 23:52:56 +02:00
Michael Niedermayer
9d87c8e6f8 rawdec: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 23:52:40 +02:00
Michael Niedermayer
948e97a2cc pcmdec: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 23:52:23 +02:00
Diego Biurrun
d246c18ea6 Avoid C99 variable declarations within for statements.
We generally do not declare variables within for statements and
there are compilers that choke on such constructs.
2012-06-14 23:36:04 +02:00
Michael Niedermayer
bb850480e1 mjpegenc: support slice multithreading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 21:55:13 +02:00
Samuel Pitoiset
7dc747f50b rtmp: Read and handle incoming packets while writing data
This makes sure all incoming packets are read and handled (and reacted
to) while sending an FLV stream over RTMP to a server. If there were
enough incoming data to fill the TCP buffers, this could potentially
make things block at unexpected places. For the upcoming RTMPT support,
we need to consume all incoming data before we can send the next
request.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-14 22:22:58 +03:00
Luca Barbato
d2d193c9b6 doc: document THREAD_TYPE fate variable 2012-06-14 21:21:06 +02:00
Martin Storsjö
d1beee0701 rtpdec: Don't require frames to start with a Mode A packet
While there is no reason for starting a frame with anything else
than a Mode A packet, some senders seem to consistently use Mode B
packets for everything. This fixes depacketization of such streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-14 22:11:43 +03:00
Paul B Mahol
ddece75bc8 png_parser: use designated initializers
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-14 17:04:00 +00:00
Paul B Mahol
79c39a98cf Add truehd decoder line.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-14 15:48:43 +00:00
Paul B Mahol
1b129c2abc flashsv2enc: align codec declarations
While here constify enums for .pix_fmts.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-14 15:48:43 +00:00
Paul B Mahol
8ce0c7d264 g729dec: align codec declarations
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-14 15:48:43 +00:00
Paul B Mahol
225489f19b mjpegdec: remove superfluous "mjpeg "
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-14 11:01:49 +00:00
Nicolas George
69bf775e9f bprint: implement vsnprintf for win32. 2012-06-14 13:54:00 +02:00
Anton Khirnov
9034b0ed66 avconv: don't try to free threads that were not initialized. 2012-06-14 10:33:10 +02:00
Paul B Mahol
0f73ac3fc8 vqavideo: pass context to remaining av_(d)log
Finally get rid of all superfluous strings from av_log messages.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-14 02:38:35 +00:00
Martin T. H. Sandsmark
a5c1a0c070 asfdec: fix returned error codes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 02:45:11 +02:00
David Hill
2ad8ac886b configure: support Bitrig OS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 02:22:01 +02:00
David Hill
266771f991 configure: fix SLIBNAME_WITH_MAJOR for openbsd (and bitrig in the next commit)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 02:21:17 +02:00
Michael Niedermayer
0922633f92 fate.texi: fix typo in title
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-14 01:38:59 +02:00
Michael Niedermayer
c7b9eab2be Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add a new option 'rtmp_buffer', for setting the client buffer time
  rtmp: Set the client buffer time to 3s instead of 0.26s
  rtmp: Handle server bandwidth packets
  rtmp: Display a verbose message when an unknown packet type is received
  lavfi/audio: use av_samples_copy() instead of custom code.
  configure: add all filters hardcoded into avconv to avconv_deps
  avfiltergraph: remove a redundant call to avfilter_get_by_name().
  lavfi: allow building without swscale.
  build: Do not delete tests/vsynth2 directory, which is no longer created.
  lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs
  lavfi: make AVFilterPad opaque after two major bumps.
  lavfi: add avfilter_pad_get_type() and avfilter_pad_get_name().
  lavfi: make avfilter_get_video_buffer() private on next bump.
  jack: update to new latency range API as the old one has been deprecated
  rtmp: Tokenize the AMF connection parameters manually instead of using strtok_r
  ppc: Rename H.264 optimization template file for consistency.
  lavfi: add channelsplit audio filter.
  golomb: check remaining bits during unary decoding in get_ur_golomb_jpegls()
  sws: fix planar RGB input conversions for 9/10/16 bpp.

Conflicts:
	Changelog
	configure
	doc/APIchanges
	ffmpeg.c
	libavcodec/golomb.h
	libavcodec/v210dec.h
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/asrc_anullsrc.c
	libavfilter/audio.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/buffersrc.c
	libavfilter/formats.c
	libavfilter/version.h
	libavfilter/vf_frei0r.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/video.h
	libavfilter/vsrc_color.c
	libavformat/rtmpproto.c
	libswscale/input.c
	tests/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 22:43:57 +02:00
Michael Niedermayer
4a6d790a6f nutenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 18:54:17 +02:00
Michael Niedermayer
53eaca5d6b mpegtsenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 18:51:38 +02:00
Samuel Pitoiset
8517e9c476 rtmp: Add a new option 'rtmp_buffer', for setting the client buffer time
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-13 17:04:39 +03:00
Samuel Pitoiset
9477c035a7 rtmp: Set the client buffer time to 3s instead of 0.26s
This factorizes existing code into a new function gen_buffer_time(),
which generates the client buffer time message and sends it to the
server.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-13 16:53:32 +03:00
Samuel Pitoiset
c2d38beab2 rtmp: Handle server bandwidth packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-13 16:52:52 +03:00
Samuel Pitoiset
9ff930aace rtmp: Display a verbose message when an unknown packet type is received
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-13 16:52:31 +03:00
Anton Khirnov
9cdf74f904 lavfi/audio: use av_samples_copy() instead of custom code.
Fixes a possible invalid write, found by Nicolas George.
2012-06-13 13:58:58 +02:00
Anton Khirnov
ce03b0881a configure: add all filters hardcoded into avconv to avconv_deps 2012-06-13 13:58:34 +02:00
Anton Khirnov
24b2f4ed21 avfiltergraph: remove a redundant call to avfilter_get_by_name(). 2012-06-13 13:58:03 +02:00
Anton Khirnov
2f296e39a1 lavfi: allow building without swscale. 2012-06-13 13:57:47 +02:00
Michael Niedermayer
5f8f6243ef swr: fix 10l use of uninitialized data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 13:43:42 +02:00
Diego Biurrun
a488028362 build: Do not delete tests/vsynth2 directory, which is no longer created. 2012-06-13 12:27:49 +02:00
James Zern
b9e5c5f178 doc/encoders: update libvpxenc mappings
max-intra-rate / force_key_frames, forgotten in 695e85f, cb7f062.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 11:33:00 +02:00
Michael Niedermayer
dded4cb20b lavc: fix support of unofficial pix_fmt extensions of jpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-13 11:30:48 +02:00
Anton Khirnov
9baeff9506 lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs
This is more consistent with naming in the rest of Libav.
2012-06-13 11:13:22 +02:00
Anton Khirnov
9d0bfc5052 lavfi: make AVFilterPad opaque after two major bumps.
It will allow adding new fields to it without ABI breaks.
2012-06-13 11:11:33 +02:00
Anton Khirnov
84b9fbe055 lavfi: add avfilter_pad_get_type() and avfilter_pad_get_name().
This will allow making AVFilterPad opaque for the calling apps, since
those are the only two fields that can be useful to the users.
2012-06-13 11:10:17 +02:00
Anton Khirnov
6d58358a3a lavfi: make avfilter_get_video_buffer() private on next bump.
They are only useful inside filters and we don't allow user filters for
now.
2012-06-13 11:09:15 +02:00
Sean McGovern
8772997d10 jack: update to new latency range API as the old one has been deprecated
Fixes Bugzilla #279.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-06-13 10:59:22 +02:00
Stefano Sabatini
465a72b4b4 lavfi: move definition of avfilter_copy_buf_props() from buffer.c to avcodec.c
avcodec.c is where it is defined the lavc/lavfi interface code, so seems
a more adequate location (and doesn't force the inclusion of
libavcodec/avcodec.h where it is not required).
2012-06-13 10:51:33 +02:00
Stefano Sabatini
134815a030 lavfi: change name of tracing functions and of the macro which enables them
The enabling symbol is renamed FF_AVFILTER_TRACE. Avoid conflicts with
the DEBUG macro, which may be defined for different purposes.
2012-06-13 10:51:15 +02:00
Martin Storsjö
0533868642 rtmp: Tokenize the AMF connection parameters manually instead of using strtok_r
This fixes builds on platforms without strtok_r (windows).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-13 11:36:47 +03:00
Paul B Mahol
c1d62489e1 libvorbis: split encoder from decoder
Also fix build dependencies while here.

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-12 22:12:26 +00:00
Diego Biurrun
af10feadc2 ppc: Rename H.264 optimization template file for consistency. 2012-06-12 23:20:05 +02:00
Michael Niedermayer
2942431a0f arm/intmath: disable av_clip_uintp2_arm with config_small
The code otherwise breaks compilation (gcc 4.5 tested but probably any compiler)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 23:05:47 +02:00
Paul B Mahol
f06269dda5 cosmetics: align more codecs declarations
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-12 20:47:38 +00:00
Anton Khirnov
d625136877 lavfi: add channelsplit audio filter. 2012-06-12 21:38:59 +02:00
Justin Ruggles
4795362660 golomb: check remaining bits during unary decoding in get_ur_golomb_jpegls()
Fixes infinite loop in FLAC decoding in case of a truncated bitstream due to
the safe bitstream reader returning 0's at the end.

Fixes Bug 310.

CC:libav-stable@libav.org
2012-06-12 14:33:39 -04:00
Ronald S. Bultje
404410a53a sws: fix planar RGB input conversions for 9/10/16 bpp.
Fixes bug 282.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-06-12 19:52:00 +02:00
Alex Converse
65a80ee1ec avfilter: Log an error if avfilter fails to configure a link. 2012-06-12 10:05:31 -07:00
Anton Khirnov
47b812e9ce avconv: support only native pthreads.
Our w32pthreads wrapper has various issues and is only supposed to be
used in libavcodec.
2012-06-12 13:44:38 +02:00
Samuel Pitoiset
0a9a225733 rtmp: Fix a possible access to invalid memory location when the playpath is too short.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-12 14:33:57 +03:00
Paul B Mahol
a7fbc5d004 libvorbis: cosmetics: remove empty line at EOF
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-12 03:21:07 +00:00
Michael Niedermayer
dc1c79be1b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avfilter: Log an error if avfilter fails to configure a link.
  avconv: support only native pthreads.
  rtmp: Fix a possible access to invalid memory location when the playpath is too short.

Conflicts:
	ffmpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 20:44:57 +02:00
Michael Niedermayer
2a622c2369 lavf: add a "warning" when discarding a oddly backward subtitle or data starttime
Idea-by: ohsix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 19:28:08 +02:00
Michael Niedermayer
47695b1d65 lavf: handle data like subtitles in start time calculation.
This fixes an issue with a crazy data track starting with a large
negative timestamp.

It could as well be solved in all user apps, but this is looking
attractively simpler ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 19:19:00 +02:00
Michael Niedermayer
728f86edfc swr: mix_2_1_int16_mmx/sse
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 17:49:12 +02:00
Michael Niedermayer
d504266cef swr: mix_1_1_int16_sse
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:43:19 +02:00
Michael Niedermayer
cbeeaf2593 swr: mix_1_1 int16 MMX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:35:13 +02:00
Michael Niedermayer
52afa43691 swr: mix_2_1_float SSE/AVX
Based-on code by Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:35:13 +02:00
Michael Niedermayer
beb0cd6acf swr: SIMD rematrixing and SSE/AVX mix_1_1 float
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:35:07 +02:00
Michael Niedermayer
48a45f819f swr: add native matrix for SIMD
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:16:15 +02:00
Michael Niedermayer
9abbbf7530 swr: add function pointers for SIMD rematrixing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:12:08 +02:00
Michael Niedermayer
634d539c12 swresample.c: update copyleft year
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 16:11:17 +02:00
Michael Niedermayer
c8553bea9e swr: use &~15
Idea-by: reimar (and ubitux on IRC)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 10:28:40 +02:00
Michael Niedermayer
4289b6690d swr: replace /16 by >>4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-12 04:01:17 +02:00
Stefano Sabatini
359abb18cf lavu/error: add av_make_error_string() and av_err2str() convenience utilities
These functions are modeled after the corresponding utilities in
libavutil/timestamp.h.
2012-06-11 23:57:01 +02:00
Stefano Sabatini
5683de00e9 lavu/error: fix sign error in av_sterror() error code
The value returned by strerror_r may be positive depending on the system,
so it is necessary to use AVERROR() in order to get a negative
number. This way the successive negative check will not fail, and the
function will print a meaningful error message on the buffer.
2012-06-11 23:56:31 +02:00
Stefano Sabatini
4299fd23d3 lavu/error: use a table to store error codes and strings, add test
The table is mostly useful to enumerate the available AVERROR* in the
test output.
2012-06-11 23:35:32 +02:00
Stefano Sabatini
3ecaba677e tests/parseutils: change test to make it platform independent
Make the test independent from the actual error string used to describe a
certain error code.
2012-06-11 23:35:31 +02:00
Michael Niedermayer
9ec5e956a2 ffmpeg: disable threading on mingw, it doesnt work due to dependance on internal code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 23:31:28 +02:00
Michael Niedermayer
f91b635b52 rtmpproto: replace strtok_r by av_strtok its unavailable in mingw
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 23:04:24 +02:00
Michael Niedermayer
94d5650266 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Do not send extension for flv files
  rtmp: support connection parameters
  doc: Add documentation for the newly added rtmp_* options

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 21:55:32 +02:00
Michael Niedermayer
65efc66d8e pngenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 21:41:03 +02:00
Michael Niedermayer
7925f923a5 4xm: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 21:40:43 +02:00
Nedeljko Babic
3827a86eac Optimization of AMR NB and WB decoders for MIPS
AMR NB and WB decoders are optimized for MIPS architecture.
Appropriate Makefiles are changed accordingly.

Cnfigure script is changed in order to support optimizations.
 Optimizations are enabled by default when compiling is done for
  mips architecture.
 Appropriate cflags are automatically set.
 Support for several mips CPUs is added in configure script.

New ffmpeg options are added for disabling optimizations.

The FFMPEG option --disable-mipsfpu disables MIPS floating point
 optimizations.
The FFMPEG option --disable-mips32r2 disables MIPS32R2
 optimizations.
The FFMPEG option --disable-mipsdspr1 disables MIPS DSP ASE R1
 optimizations.
The FFMPEG option --disable-mipsdspr2 disables MIPS DSP ASE R2
 optimizations.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Reviewed-by: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 21:12:39 +02:00
Paul B Mahol
751dcd9243 Remove eightsvx_raw decoder line
Decoder have been renamed to pcm_s8_planar long ago.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-11 18:55:09 +00:00
Michael Niedermayer
d9a9518fba flvenc: use av_assert instead of assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 20:14:22 +02:00
Michael Niedermayer
709b54eae9 rv20enc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 20:13:31 +02:00
Samuel Pitoiset
f862537de8 rtmp: Do not send extension for flv files
This fixes bugzilla bug #304.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-11 13:48:39 +03:00
Samuel Pitoiset
8ee3e1874e rtmp: support connection parameters
Allow using connection parameters in order to append arbitrary
AMF data like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0" to the
Connect message. You can pass these parameters through the -rtmp_conn
option.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-11 13:46:50 +03:00
Samuel Pitoiset
b4c92e94bb doc: Add documentation for the newly added rtmp_* options
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-11 13:37:23 +03:00
Michael Niedermayer
66531c75d3 random_seed: rewrite generic code.
The new code is faster and reuses the previous state in case of
multiple calls. For testing the iterations are reduced and several
entropy sources are disabled.
Its based on SHA-1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 12:19:11 +02:00
Carl Eugen Hoyos
37f1a7d51d Make png-in-mov QuickTime-compatible for more colour-spaces.
Reported and tested by ami_stuff.

See ticket #1191.
2012-06-11 10:57:23 +02:00
Clément Bœsch
20e46aafbd mov: export orphan tmcd track metadata to global format metadata. 2012-06-11 07:40:58 +02:00
Clément Bœsch
1ec23d9c02 mov: copy timecode metadata from tmcd track to the related video stream.
Apple softwares seem not to add a tref for the timecode (the next commit
fixes this issue), but at least FFmpeg does.

This can be used to generate a sample that demonstrates the feature:

    ./ffmpeg -f lavfi -i testsrc    \
             -f lavfi -i mptestsrc  \
             -f lavfi -i rgbtestsrc \
             -map 0 -map 1 -map 2   \
             -metadata:s:0 timecode=00:00:00:12 \
             -metadata:s:2 timecode=01:02:12:20 \
             -t 10 -y out.mov
    ./ffprobe out.mov

The timecode metadata being transmitted to the video streams, it can be
kept while transmuxed/transcoded.
2012-06-11 07:40:26 +02:00
Clément Bœsch
0d96ec19eb mov: parse tref atom. 2012-06-11 07:35:14 +02:00
Clément Bœsch
9fb2e234d0 movenc: add timecode track support. 2012-06-11 07:35:14 +02:00
Clément Bœsch
9846a9c701 riff: add ISMP/timecode tag. 2012-06-11 07:28:26 +02:00
Michael Niedermayer
0478d5f9fe ffmpeg: allow overriding framerate for stream copy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 03:00:28 +02:00
James Zern
cb7f062286 libvpxenc: add support for forced key frames
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-11 02:06:43 +02:00
Michael Niedermayer
a5ca3203f0 rangecoder: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 23:36:22 +02:00
Michael Niedermayer
1248de53c1 amrnbdec: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 23:35:29 +02:00
Michael Niedermayer
4e3a5bc1f6 j2k: remove unreachable assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 23:27:17 +02:00
Michael Niedermayer
3630a07513 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libmp3lame: add missing layout terminator
  avconv: multithreaded demuxing.
  Bump lavu minor and add an APIChanges entry for audioconvert functions.
  audioconvert: add a function for extracting the channel with the given index
  audioconvert: add a function for getting the name of a single channel.
  audioconvert: add a function for getting channel's index in layout
  audioconvert: use av_popcount64 in av_get_channel_layout_nb_channels
  vf_libopencv: add missing headers.
  iac: add missing dependency

Conflicts:
	configure
	doc/APIchanges
	ffmpeg.c
	libavcodec/libmp3lame.c
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 21:34:15 +02:00
Michael Niedermayer
9e724d7216 dct-test: fix alignment in ff_prores_idct_put_10_sse2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 20:45:55 +02:00
Michael Niedermayer
234d42f53b postprocess: fix another void returning void function.
lets hope this makes suncc happy finally ...

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 18:26:16 +02:00
Stefano Sabatini
ee1748ab53 lavfi: fix signature for default_filter_name()
Return a const char *, fix warnings:
libavfilter/avfilter.c: In function ‘default_filter_name’:
libavfilter/avfilter.c:414:5: warning: return discards ‘const’ qualifier from pointer target type [enabled by default]
libavfilter/avfilter.c: At top level:
libavfilter/avfilter.c:419:5: warning: initialization from incompatible pointer type [enabled by default]
libavfilter/avfilter.c:419:5: warning: (near initialization for ‘avfilter_class.item_name’) [enabled by default]
2012-06-10 17:23:58 +02:00
Michael Niedermayer
91bdced363 mpegtsenc: prevent pcr_packet_period==0
a period of 1 is the smallest that makes sense

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 16:50:06 +02:00
Michael Niedermayer
1321e6eaa7 tiffenc: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 15:40:24 +02:00
Michael Niedermayer
bcbb30e2a0 libmp3lame: add missing layout terminator
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-06-10 14:06:50 +02:00
Nicolas George
0d24931604 vf_fps: set frame_rate. 2012-06-10 10:53:03 +02:00
Nicolas George
c8428a0d06 vf_tile: update deprecated functions. 2012-06-10 10:40:33 +02:00
Nicolas George
7b993c4a51 vf_tile: set frame_rate. 2012-06-10 10:35:17 +02:00
Nicolas George
4adf5dfadb sdl: fix aspect ratio computations.
The rounding was wrong due to incorrect ue of floats,
changed to rationals and av_rescale.

The results were not properly passed to SDL.
2012-06-10 09:57:50 +02:00
Nicolas George
3ff6b1a2b3 sdl: fix overlay size.
The size passed to SDL_CreateYUVOverlay is the size
of the video in pixels, it must not take the aspect ratio
into account.
2012-06-10 09:42:31 +02:00
Nicolas George
2f9907be3e sdl: add AVFMT_VARIABLE_FPS and AVFMT_NOTIMESTAMPS.
It allows vsync to be automatically set to passthrough.
2012-06-10 09:42:31 +02:00
Anton Khirnov
5db5169e46 avconv: multithreaded demuxing.
When there are multiple input files, run demuxing for each input file in
a separate thread, so reading packets does not block.

This is useful for achieving low latency when reading from multiple
(possibly slow) input streams.
2012-06-10 08:12:23 +02:00
Anton Khirnov
b0f0dfc485 Bump lavu minor and add an APIChanges entry for audioconvert functions. 2012-06-10 08:04:01 +02:00
Anton Khirnov
59d58b3390 audioconvert: add a function for extracting the channel with the given index 2012-06-10 08:03:45 +02:00
Anton Khirnov
5df320e167 audioconvert: add a function for getting the name of a single channel. 2012-06-10 08:03:11 +02:00
Anton Khirnov
406b257de9 audioconvert: add a function for getting channel's index in layout 2012-06-10 08:02:18 +02:00
Anton Khirnov
3596de55fc audioconvert: use av_popcount64 in av_get_channel_layout_nb_channels 2012-06-10 08:02:11 +02:00
Anton Khirnov
d7d071a673 vf_libopencv: add missing headers.
Fix build after b74a1da4.
2012-06-10 08:02:02 +02:00
Kostya Shishkov
19be0f3ca6 iac: add missing dependency 2012-06-10 06:50:10 +02:00
Michael Niedermayer
4bfee465e9 bprint-test: avoid z modifier, mingw fails with it
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:49:31 +02:00
Michael Niedermayer
d35c27db63 sink_buffer: dont return void from void functions.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:30:12 +02:00
Michael Niedermayer
3b196bb737 libavcodec/x86/rv40dsp_init.c: add missing HAVE_YASM
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:26:24 +02:00
Michael Niedermayer
915ec91e6b libavcodec/x86/h264dsp_mmx.c: add forgotten HAVE_YASM
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:23:44 +02:00
Michael Niedermayer
63bfee8796 libavcodec/x86/dwt.c: move some missed things under HAVE_YASM
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:20:27 +02:00
Michael Niedermayer
b84c9cf7f7 dct-test: fix #if for ff_prores_idct_put_10_sse2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:15:38 +02:00
Michael Niedermayer
7b0d362567 libavfilter: make ff_null_start_frame_keep_ref() a non static inline function.
Its only used through the start_frame pointer and thus cannot be inlined easily.
It also appears to break compilation with some unidentified compiler on darwin.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 03:08:19 +02:00
Michael Niedermayer
8836b41a78 fate-acodec-dca2: add bitexact flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 02:57:45 +02:00
Michael Niedermayer
fd8da83d55 enc_dec_pcm: add bitexact flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 02:57:25 +02:00
Michael Niedermayer
8f1b139c10 cmdutils: dont return void from a void function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 02:38:01 +02:00
Michael Niedermayer
dfaf2dd956 h264: use externally provided dimensions when they appear to be more correct.
This is based on:
	commit 30f515091c
	Author: Mans Rullgard <mans@mansr.com>
    		h264: allow cropping to AVCodecContext.width/height

The above commit is not taken as is as its buggy (incorrect handling of
the interlaced case) and didnt apply cleanly.

Fixes ticket156

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 02:24:25 +02:00
Paul B Mahol
3275981207 libopenjpegdec: make use of FF_ARRAY_ELEMS
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 23:34:15 +00:00
James Zern
695e85f189 libvpxenc: add VP8E_SET_MAX_INTRA_BITRATE_PCT mapping
defines 'max-intra-rate' in line with vpxenc param

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-10 01:18:42 +02:00
Stefano Sabatini
53dfc38452 lavu/timestamp: remove duplicate definition of AV_TS_MAX_STRING_SIZE 2012-06-10 00:37:02 +02:00
Paul B Mahol
1ef5561a66 libopenjpeg: YUVA422P and YUVA444P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 18:36:56 +00:00
Michael Niedermayer
75f8f70221 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: allow cropping to AVCodecContext.width/height
  mov: set AVCodecContext.width/height for h264
  iac: generate codec tables as they are supposed to be
  indeo4: handle frame type 1 properly
  lavu: change versioning script to include all av* prefixed symbols

Conflicts:
	libavcodec/h264.c
	libavutil/libavutil.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 20:30:17 +02:00
Paul B Mahol
8554e21f79 ffv1enc: add yuva422p to .pix_fmts
This was forgotten in 4e4634aa16.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 18:15:50 +00:00
Michael Niedermayer
94632dbb1e Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: fix return value of get_video_frame if avcodec_decode_video fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 20:09:56 +02:00
J. Bohl
2138bc16fd remove unreferenced table "dnxhd_1238_ac_index_flag" (empty curly braces did not compile with ICL12.1)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 20:09:43 +02:00
Paul B Mahol
a474403229 libopenjpegdec: unbreak yuva420p support
Regression introduced in b7a928b2d1.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 18:06:09 +00:00
Marton Balint
143a5390bf ffplay: fix return value of get_video_frame if avcodec_decode_video fails
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-09 19:45:10 +02:00
Paul B Mahol
7655cc395d colorspace-test: add few more tests
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 14:38:51 +00:00
Michael Niedermayer
b0415287e3 float_dsp.c: Restore author attribution that was removed by libav while moving code to libavutil
Original code comes from:
commit eb4825b5d4
Author: Loren Merritt <lorenm@u.washington.edu>
Date:   Thu Aug 10 19:06:25 2006 +0000

    sse and 3dnow implementations of float->int conversion and mdct windowing.
    15% faster vorbis.

and

commit 0bde73d907
Author: Michael Niedermayer <michaelni@gmx.at>
Date:   Tue May 17 19:02:43 2005 +0000

    Vorbis decoder by (Balatoni Denes | dbalatoni programozo hu)

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 16:09:47 +02:00
Michael Niedermayer
f0313e9022 x86/float_dsp.asm: restore author attribution
The attribution was removed by libav while moving the code to libavutil

The original code is from
commit eb4825b5d4
Author: Loren Merritt <lorenm@u.washington.edu>
Date:   Thu Aug 10 19:06:25 2006 +0000

    sse and 3dnow implementations of float->int conversion and mdct windowing.
    15% faster vorbis.

and

commit 069720565c
Author: Loren Merritt <lorenm@u.washington.edu>
Date:   Fri Aug 11 18:19:37 2006 +0000

    vorbis simd tweaks

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 16:09:11 +02:00
Mans Rullgard
30f515091c h264: allow cropping to AVCodecContext.width/height
Override the frame size from the SPS with AVCodecContext values
if the latter specify a size smaller by less than one macroblock.
This is required for correct cropping of MOV files from Canon cameras.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-09 15:08:52 +01:00
Mans Rullgard
8aa93e9004 mov: set AVCodecContext.width/height for h264
This is required for correct cropping of files from Canon
cameras.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-09 15:08:51 +01:00
Michael Niedermayer
1b7a4c93a9 lavc/bintext: check extradata size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 15:04:12 +02:00
Michael Niedermayer
c61c8536ef lavf/bintext: allocate FF_INPUT_BUFFER_PADDING_SIZE for extradata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 14:36:41 +02:00
Michael Niedermayer
eae983f4ff ffmpeg: fix fate breakage introduced by key=value buffersrc args.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 14:02:27 +02:00
Paul B Mahol
1d69dcb887 swscale: unscaled rgb48 <-> bgr48
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 11:55:52 +00:00
Paul B Mahol
e400b95b32 bink: check av_mallocz() return value
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 10:57:14 +00:00
Paul B Mahol
c2dd01c16f binkaudio: prevent extradata overread
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-09 10:43:20 +00:00
Nicolas George
6fef82f22d ffmpeg: with filter_complex, avoid random in<->out mapping.
With complex filters, an output can come from any input,
or several inputs, including inputs of a different type.
Copying the codec parameters from the first input with
the same type does not make any sense.

This does not change anything for simple 1->1 filters,
as source_index is set in that case.
2012-06-09 08:42:50 +02:00
Nicolas George
fbaa8fe6c6 ffmpeg: init icodec.
With complex filter graphs, it can end up accessed
without having been set.
2012-06-09 08:42:50 +02:00
Nicolas George
8362d734a3 ffmpeg: use the frame rate computed by lavfi.
This frame rate is more reliable than the one copied
from the input stream, so it is used in priority.
2012-06-09 08:42:50 +02:00
Nicolas George
5f281e94ba ffmpeg: add frame rate to the buffersrc arguments.
The arguments now use the key=value syntax.
2012-06-09 08:42:50 +02:00
Nicolas George
0f62125643 buffersrc: deprecate flat options syntax. 2012-06-09 08:42:50 +02:00
Nicolas George
9ca440679d buffersrc: accept the frame rate as argument. 2012-06-09 08:42:50 +02:00
Nicolas George
dcaa4efcee buffersrc: accept key=value arguments.
The current flat arguments syntax is not easily extensible
due to sws_param possibly containing commas.
This is also consistent with abuffersrc.
2012-06-09 08:42:50 +02:00
Nicolas George
283cc05938 buffersink: add av_buffersink_get_frame_rate(). 2012-06-09 08:42:50 +02:00
Nicolas George
7b42036b3b lavfi: add a frame_rate field to AVFilterLink. 2012-06-09 08:42:50 +02:00
Kostya Shishkov
cac4760bf4 iac: generate codec tables as they are supposed to be
Unlike its predecessor, Indeo Audio codec generates tables depending on
sampling rate. Previously decoder used pre-generated tables for 22050 Hz
which obviously doesn't work with other frequencies.

Many thanks to Maxim Poliakovsky for providing all needed information
for this.
2012-06-09 08:38:51 +02:00
Kostya Shishkov
e1a3fa5d3a indeo4: handle frame type 1 properly
It turns out that this frame type is actually intra and should be used as
a reference for interframes too.
2012-06-09 08:38:31 +02:00
Michael Niedermayer
04e2ac4749 libavutil.v: add avpriv prefix
This should fix the fate failure
http://fate.ffmpeg.org/log.cgi?time=20120609002213&log=compile&slot=x86_64-archlinux-gcc-enableshared

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 02:51:02 +02:00
Michael Niedermayer
a5c6349358 swr: skip memset(0) in rematrix when the array is known to be already 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 02:43:10 +02:00
Michael Niedermayer
75d900d52e swr: zero buffers on allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 02:42:46 +02:00
J. Bohl
023c073076 add bracket around the argument (fixes compilation error with ICL)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 00:34:21 +02:00
Michael Niedermayer
690ea9359d Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: reset AVFrame to defaults before decoding each new frame.
  ffplay: check return code of avcodec_decode_video2()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09 00:28:20 +02:00
Michael Niedermayer
7e22514d98 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  float_dsp: ppc: add a separate header for Altivec function prototypes
  ARM: fix float_dsp breakage from d5a7229
  Add a float DSP framework to libavutil
  PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil
  ARM: Move asm.S from libavcodec to libavutil
  vc1dsp: mark put/avg_vc1_mspel_mc() always_inline

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 23:59:09 +02:00
Michael Niedermayer
e016e3c9d7 swr: add mix8to2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 22:12:00 +02:00
Michael Niedermayer
b0348158a0 swr: 5.1->stereo double, float and s16
2.5 times faster than the generic code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 22:02:14 +02:00
Michael Niedermayer
ca30ae12c5 swr: add all in one rematrixing function ptr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 21:55:33 +02:00
Michael Niedermayer
dfde3d497e swr: add inrermediate sample type for rematrixing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 21:54:54 +02:00
Justin Ruggles
03e098e7a0 lavu: change versioning script to include all av* prefixed symbols
Needed to properly export avpriv_* symbols.
2012-06-08 15:47:59 -04:00
Michael Niedermayer
cb819338d1 ffplay: reset AVFrame to defaults before decoding each new frame.
This fixes: ffplay -f lavfi -i cellauto
This was a regression since factorizing the filter code with ffmpeg.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-08 21:32:10 +02:00
Michael Niedermayer
349b65eee2 ffplay: check return code of avcodec_decode_video2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-08 21:32:10 +02:00
Justin Ruggles
3b81a18ba3 float_dsp: ppc: add a separate header for Altivec function prototypes
Also include config.h so that HAVE_ALTIVEC will be defined.
Fixes compilation on PPC with Altivec enabled.
2012-06-08 14:52:01 -04:00
Mans Rullgard
a839d6abf8 ARM: fix float_dsp breakage from d5a7229
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-08 19:45:37 +01:00
Justin Ruggles
d5a7229ba4 Add a float DSP framework to libavutil
Move vector_fmul() from DSPContext to AVFloatDSPContext.
2012-06-08 13:14:38 -04:00
Justin Ruggles
98db4e2a4e PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil
This will allow for easier implementation of Altivec functions in libraries
other than libavcodec.
2012-06-08 13:14:38 -04:00
Justin Ruggles
94d2b0d2fd ARM: Move asm.S from libavcodec to libavutil
This will allow for easier implementation of ARM-optimized functions in
libraries other than libavcodec.
2012-06-08 13:14:38 -04:00
Michael Niedermayer
718607be28 rv10: change assert() to av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 18:24:47 +02:00
Mike Scheutzow
1be7bfdd2b ffmpeg.c: fix erroneous "Output file is empty" message.
This message is printed whenever the RAWVIDEO codec is used, whether the
output file contains any frames or not. Test command:
./ffmpeg -i infile.y4m outfile.y4m

Signed-off-by: Mike Scheutzow <mjs973@optonline.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 18:22:40 +02:00
Paul B Mahol
134d0f7119 Revert "Fix building libopencore_amrnb decoder without libopencore_amrnb encoder"
Reverting "Fix" because it disables amrwb decoder.

This reverts commit e11020a145.
2012-06-08 13:55:30 +00:00
Carl Eugen Hoyos
b35d38bd04 Add iac build dependency.
Found and analysed by trac user Jamal.

Fixes the remaining part of ticket #1428.
2012-06-08 15:29:24 +02:00
Carl Eugen Hoyos
37a9cdfc2c Fix dirac decoder build dependencies.
Found, analysed and tested by trac user Jamal.

Fixes part of ticket #1428.
2012-06-08 15:29:24 +02:00
Carl Eugen Hoyos
8a880d6918 Fix latm muxer Makefile dependencies.
Found, analysed and tested by trac user Jamal.

Fixes part of ticket #1428.
2012-06-08 15:29:23 +02:00
Carl Eugen Hoyos
b8e2dcd266 Fix jacosub muxer Makefile dependencies.
Found, analysed and tested by trac user Jamal.

Fixes part of ticket #1428.
2012-06-08 15:29:23 +02:00
Carl Eugen Hoyos
b8fe9f08be Fix amv encoder dependencies.
Found, analysed and tested by trac user Jamal.

Fixes part of ticket #1428.
2012-06-08 15:29:23 +02:00
Paul B Mahol
e11020a145 Fix building libopencore_amrnb decoder without libopencore_amrnb encoder
Fixes #1210.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-08 13:03:10 +00:00
Paul B Mahol
f4e0ec814b pixdesc: BGRA64 is rgb pixel format
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-08 10:42:27 +00:00
Michael Niedermayer
5b51efdc3a fate-bprint: try to workaround platform specific value.
this should fix some fate failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 12:16:31 +02:00
Michael Niedermayer
d5d30d56ed Revert "sinewin_tablegen: use av_assert"
using as_assert() in the table generator would make the generators
have to be linked to libavutil.

This reverts commit c3b6efa4cb.
2012-06-08 11:44:50 +02:00
Mans Rullgard
bc92214e27 vc1dsp: mark put/avg_vc1_mspel_mc() always_inline
This ensures that these functions are inlined into the per-position
entry points, allowing constant propagation as needed for proper
optimisation.

18% faster VC1 decoding on Cortex-A9.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-08 09:40:07 +01:00
Michael Niedermayer
80485a4f9a mpegtsenc: make pts/dts offseting optional
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08 03:35:15 +02:00
Nicolas George
6668ef7567 cmdutils: include threading caps in codecs listing.
Suggested by Roger Pack on ffmpeg-user.
2012-06-07 23:19:20 +02:00
Nicolas George
e0545262a2 amerge: accept multiple inputs. 2012-06-07 22:51:08 +02:00
Nicolas George
e8e492b302 af_amerge: move nb_in_ch into the in structure.
With that change, there is only one array for the inputs,
it will make easier to implement a variable number of inputs.
2012-06-07 22:28:32 +02:00
Nicolas George
e45a92dc88 audioconvert: implement av_bprint_channel_layout().
And reimplement av_get_channel_layout_string() on top of it.
2012-06-07 22:28:32 +02:00
Nicolas George
7a2b429175 fate: add bprint test. 2012-06-07 22:28:32 +02:00
Nicolas George
b3e2bb08a9 bprint: add av_bprint_init_for_buffer(). 2012-06-07 22:28:32 +02:00
Nicolas George
9148ae5b91 opt: add test for IMAGE_SIZE and PIXEL_FMT. 2012-06-07 22:13:59 +02:00
Nicolas George
61c266d72f opt: free test_ctx.string at the end.
Makes valgrind happy.
2012-06-07 22:13:59 +02:00
Nicolas George
42b774ab6f opt: init test_ctx to 0.
Otherwise, setting string will try to free a random address.
2012-06-07 22:13:59 +02:00
Nicolas George
d9b0d75c56 opt: add AV_OPT_TYPE_PIXEL_FMT. 2012-06-07 22:13:59 +02:00
Michael Niedermayer
9f7b014ad3 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: fix build if avfilter is disabled
  ffplay: fix frame_delay calculation in new avfilter code
  ffplay: add support for changing pixel format
  ffplay: add missing filt_in assignment after video filter reconfigure
  ffplay: fix frame aspect ratio after qatar merge
  ffplay: fix use after free
  ffplay: use dummy video driver if display is disabled

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:55:34 +02:00
Michael Niedermayer
67732b9d62 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegts: Remove disabled extension matching probe.
  fate: avoid freopen(NULL) in videogen/rotozoom

Conflicts:
	tests/rotozoom.c
	tests/videogen.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:45:52 +02:00
Michael Niedermayer
b4d44367bc h261enc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:32:32 +02:00
Michael Niedermayer
07732b4f09 h261dec: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:31:22 +02:00
Michael Niedermayer
a21c212681 swfenc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:30:07 +02:00
Alex Converse
a8656cd425 mpegts: Remove disabled extension matching probe. 2012-06-07 12:27:04 -07:00
Michael Niedermayer
610a52647b xmv: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:09:06 +02:00
Michael Niedermayer
4e3fc46828 h264_mvpred: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 21:07:17 +02:00
Michael Niedermayer
3422e7c395 lavc/rectangle: change assert to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 20:51:07 +02:00
Michael Niedermayer
107b42388c lavf: fix missing "parser not found" message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 19:02:32 +02:00
Michael Niedermayer
23d8aaae46 yuv2rgb: remove assert() the codepath is not invalid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 18:01:09 +02:00
Michael Niedermayer
5ee638fd54 svq1enc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-07 18:01:09 +02:00
Nicolas George
25e87fc5f6 ffmpeg: move keyboard interaction in a function.
It makes the transcode loop easier to read (30% less code)
and the differences with avconv easier to spot.
2012-06-07 17:13:02 +02:00
Nicolas George
9915a33fc2 lavfi/audio: fix size of copied samples.
Fixes sporadic segfaults with some filters.
2012-06-07 17:03:45 +02:00
Mans Rullgard
d0e9415d23 fate: avoid freopen(NULL) in videogen/rotozoom
A number of systems do not implement freopen() with a NULL filename
correctly.  This changes these programs to output individual images
if opening a named output argument as a file fails, in this case
assuming it is a directory.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-07 11:28:39 +01:00
Marton Balint
5fdcfdf237 ffplay: fix build if avfilter is disabled
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 01:22:00 +02:00
Marton Balint
a78bc6f78c ffplay: fix frame_delay calculation in new avfilter code
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 01:22:00 +02:00
Marton Balint
e85df18d74 ffplay: add support for changing pixel format
With the filtering code refactored, it was much easier to finally fix this.

Fixes ticket 123 and 238.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 01:22:00 +02:00
Marton Balint
cd947e9a2b ffplay: add missing filt_in assignment after video filter reconfigure
Fixes segfaults on changing resolution.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 01:22:00 +02:00
Marton Balint
0a501c756f ffplay: fix frame aspect ratio after qatar merge
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 01:22:00 +02:00
Michael Niedermayer
c9651d4bee ffplay: fix use after free
reproduceable with:
ffmpeg -i tests/lena.pnm -pix_fmt pal8 -vcodec rawvideo -s 512x512 out.avi
valgrind ffplay_g out.avi

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 01:21:52 +02:00
Marton Balint
1372c826de ffplay: use dummy video driver if display is disabled
Fixes ticket 1402.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-07 00:05:29 +02:00
Stefano Sabatini
8d1de449f0 ffprobe: show packet duration in frame 2012-06-06 23:26:04 +02:00
Stefano Sabatini
9083d09ebb ffprobe: honour special value for duration
A duration value is undefined when is 0, take into consideration this
fact when printing optional fields.
2012-06-06 23:26:04 +02:00
Stefano Sabatini
ad347bf459 lavfi: remove avfilter_default_item_name() from public API
The function was introduced in 4d6a8a2bdb and is not used anymore
outside avfilter.c.

This avoids to pollute the public API with an apparently unnecessary
function. The function was introduced a few days ago, so removing it from
the public API should do no much harm.
2012-06-06 23:25:33 +02:00
Stefano Sabatini
fe16ca1b91 lavfi/ocv: fix compilation after internalization of public functions
Include missing required internal headers.
2012-06-06 23:22:13 +02:00
Stefano Sabatini
ce7266c66a tools/graph2dot: factorize code printing non-media specific link information 2012-06-06 23:20:02 +02:00
Stefano Sabatini
20689670c8 tools/graph2dot: show input and output pad names in the link label 2012-06-06 23:19:56 +02:00
Michael Niedermayer
eeba7c874b wmv2enc: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 21:18:47 +02:00
Michael Niedermayer
c3b6efa4cb sinewin_tablegen: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 21:18:33 +02:00
Michael Niedermayer
62eace231c put_bits: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 21:18:14 +02:00
Michael Niedermayer
28e4f906fa golomb: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 20:13:17 +02:00
Michael Niedermayer
6e6dd9995b resample_template: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 20:08:57 +02:00
Michael Niedermayer
58e4adb6f7 libavutil/integer: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 20:01:08 +02:00
Michael Niedermayer
2f23a8ab17 libavutil/mathematics: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 20:00:35 +02:00
Michael Niedermayer
317ca0d3f7 mpegvideo: fix out of heap array accesses
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 19:26:21 +02:00
Philip Langdale
92c065f93f ffmpeg: Set duration on encoded subtitle packets.
Currently, we don't set the duration on the packet of a newly
encoded subtitle. This information may be required by the
muxer.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 18:49:10 +02:00
Michael Niedermayer
33775c3507 search_for_quantizers_faac: fix curband
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 18:35:05 +02:00
Matthieu Bouron
f6d952f584 mxfenc: write optional field dominance flag in picture description
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 17:13:28 +02:00
Reimar Döffinger
93147daf59 ffmpeg: avoid a confusing and easy to break if().
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 17:13:28 +02:00
Carl Eugen Hoyos
bb32124577 Fix maxband limit when decoding mpc8.
Fixes yesterday's merge of Kostya's fix for ticket #409.
2012-06-06 13:09:02 +02:00
Michael Niedermayer
c8a11014b6 ffmpeg: use isatty() before messing with the terminal state
This fixes terminal messup in case of crashes (like in make fate)

Reviewed-by: François Revol <revol@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 03:54:02 +02:00
Michael Niedermayer
ad60b3b181 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vorbis: Validate that the floor 1 X values contain no duplicates.
  avprobe: Identify codec probe failures rather than calling them unsupported codecs.
  avformat: Probe codecs at score 0 on buffer exhaustion conditions.
  avformat: Factorize codec probing.
  Indeo Audio decoder
  imc: make IMDCT support stereo output
  imc: move channel-specific data into separate context
  lavfi: remove request/poll and drawing functions from public API on next bump
  lavfi: make avfilter_insert_pad and pals private on next bump.
  lavfi: make formats API private on next bump.
  avplay: use buffersrc instead of custom input filter.
  avtools: move buffer management code from avconv to cmdutils.
  avconv: don't use InputStream in the buffer management code.
  avconv: fix exiting when max frames is reached.
  mpc8: fix maximum bands handling
  aacdec: Turn PS off when switching to stereo and turn it to implicit when switching to mono.

Conflicts:
	Changelog
	cmdutils.h
	ffmpeg.c
	ffplay.c
	ffprobe.c
	libavcodec/avcodec.h
	libavcodec/mpc8.c
	libavcodec/v210dec.h
	libavcodec/version.h
	libavcodec/vorbisdec.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/formats.c
	libavfilter/src_movie.c
	libavfilter/vf_aspect.c
	libavfilter/vf_blackframe.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_crop.c
	libavfilter/vf_cropdetect.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_fifo.c
	libavfilter/vf_format.c
	libavfilter/vf_frei0r.c
	libavfilter/vf_gradfun.c
	libavfilter/vf_hflip.c
	libavfilter/vf_hqdn3d.c
	libavfilter/vf_libopencv.c
	libavfilter/vf_lut.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vf_select.c
	libavfilter/vf_showinfo.c
	libavfilter/vf_transpose.c
	libavfilter/vf_unsharp.c
	libavfilter/vf_yadif.c
	libavfilter/vsrc_color.c
	libavfilter/vsrc_testsrc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-06 01:08:33 +02:00
Stefano Sabatini
647e2e070f lavfi: remove more instances of avfilter_default_filter_name()
They were discarded in 0f0f3bd1e0.
2012-06-05 19:00:52 +02:00
Alex Converse
ecf79c4d3e vorbis: Validate that the floor 1 X values contain no duplicates.
Duplicate values in this vector are explicitly banned by the Vorbis I spec
and cause divide-by-zero crashes later on.
2012-06-05 09:51:51 -07:00
Alex Converse
503f2feb14 avprobe: Identify codec probe failures rather than calling them unsupported codecs. 2012-06-05 09:51:51 -07:00
Alex Converse
f0ff9eb493 avformat: Probe codecs at score 0 on buffer exhaustion conditions. 2012-06-05 09:51:51 -07:00
Alex Converse
62bebf6edb avformat: Factorize codec probing. 2012-06-05 09:51:51 -07:00
Stefano Sabatini
62b39d41cd lavc: add pkt_duration field to AVFrame 2012-06-05 18:42:17 +02:00
Stefano Sabatini
0da9bce5a3 lavfi: move avfilter_copy_frame_props() definition from buffer.c to avcodec.c
The new location is more suited, as it is where the lavfi/lavc glue is
defined.
2012-06-05 18:39:47 +02:00
Kostya Shishkov
c6061443f7 Indeo Audio decoder 2012-06-05 18:30:54 +02:00
Kostya Shishkov
34271cabac imc: make IMDCT support stereo output
This will be useful for Indeo Audio decoder which is almost the same
but supports stereo.
2012-06-05 18:28:44 +02:00
Kostya Shishkov
c45e2da617 imc: move channel-specific data into separate context
This will be useful for Indeo Audio decoder which is almost the same
but supports stereo.
2012-06-05 18:28:44 +02:00
Andrew Wason
c527027c27 aconvert filter needs to configure samplerates
I changed the *_set_common_* functions to only set unset formats, then
added a wrapper that calls them after the filters query_formats.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-05 18:15:29 +02:00
Michael Niedermayer
787c395a30 swr-test: support "--help"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-05 17:27:38 +02:00
Michael Niedermayer
63b1c08073 buildsys: fix rules for swresample-test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-05 17:27:38 +02:00
Michael Niedermayer
5a7a9f02de libswresample/Makefile: put each object on its own line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-05 17:27:38 +02:00
Paul B Mahol
02827a3c99 swscale: RGBA64LE <-> RGBA64BE support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-05 12:18:30 +00:00
Nicolas George
aba8065adb avfiltergraph: call query_formats on inputs first.
This is a temporary workaround for amerge,
until format renegociation is implemented.

Should fix trac ticket #1400.
2012-06-05 13:26:34 +02:00
Nicolas George
6a4c5c730e avfiltergraph: check query_formats return value. 2012-06-05 13:26:34 +02:00
Carl Eugen Hoyos
a3bc7f916d Make H264 reorder buffer size message less verbose. 2012-06-05 12:52:07 +02:00
Piotr Bandurski
48fdaa1cff snowdec: add new line to some error messages 2012-06-05 12:15:18 +02:00
Piotr Bandurski
a489db6cde isom: add Radius DV YUV FourCCs 2012-06-05 12:13:39 +02:00
Stefano Sabatini
1488c4dc0b lavfi: move tracing utilities definition from video.c to avfilter.c
These utilities are meant to be defined in avfilter.c, since they are
generic and thus contain both audio and video code.
2012-06-05 11:52:47 +02:00
Carl Eugen Hoyos
1faf0d6a7a Add missing CRLFs to avisynth error messages. 2012-06-05 11:13:30 +02:00
Carl Eugen Hoyos
757d5b9bfd Fix MP2 muxer Makefile dependencies.
Found, analysed and tested by trac user Jamal.

Fixes ticket #1411
2012-06-05 09:54:03 +02:00
Anton Khirnov
803391f719 lavfi: remove request/poll and drawing functions from public API on next bump
They are only useful inside filters and we don't allow user filters for
now.
2012-06-05 09:38:16 +02:00
Anton Khirnov
fa417fcd27 lavfi: make avfilter_insert_pad and pals private on next bump.
They are only useful inside filters and we don't allow user filters for
now.
2012-06-05 09:38:08 +02:00
Anton Khirnov
b74a1da49d lavfi: make formats API private on next bump.
It is only useful inside filters and we don't allow user filters for
now.
2012-06-05 09:37:30 +02:00
Anton Khirnov
67339f6eb4 avplay: use buffersrc instead of custom input filter.
We do not allow user filters, so avtools shouldn't use them either.

It also allows to reuse buffer management code from avconv, thus
reducing duplication.
2012-06-05 09:36:10 +02:00
Anton Khirnov
d55c2e05b5 avtools: move buffer management code from avconv to cmdutils.
It will be used by avplay.
2012-06-05 09:35:58 +02:00
Anton Khirnov
3ffa233595 avconv: don't use InputStream in the buffer management code.
Use just the pointer to the head of the buffer pool.

This will allow sharing the code with avplay.
2012-06-05 09:35:39 +02:00
Anton Khirnov
e58b75f7ff avconv: fix exiting when max frames is reached.
frame number should never be strictly larger than max frames, so the
if() was never triggered.
2012-06-05 09:35:08 +02:00
Clément Bœsch
44be67595d lavfi/select: use exported dsputil_init function.
This is the deprecated version of the function but it is exported, so it
should fix the shared FATE box.
2012-06-05 07:29:00 +02:00
Kostya Shishkov
b56825c40e mpc8: fix maximum bands handling
In Musepack SV8 codec property tell the maximum nonzero band, but every
frame codes maximum band as a limit (i.e. strictly less than given value).
Synthesis also expects maximum nonzero band, so there's a need to convert
frame maximum band limit value.
2012-06-05 06:55:57 +02:00
Michael Bradshaw
1b27b8bf6c MANGLEd swscale x86 asm to save registers
register starvation caused gcc4.2 to fail building 32 bit shared libs
on 64 bit OS X

Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-05 03:02:41 +02:00
Andrew Wason
1ef802d038 update filtering_audio example
The filtering_audio.c example needs to be updated for the new
"abuffer" filter args.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-05 03:02:41 +02:00
Clément Bœsch
13a7bd70c8 lavfi/select: 10l: llabs -> fabs after switching types. 2012-06-05 00:17:38 +02:00
Alex Converse
79c8e29a7e aacdec: Turn PS off when switching to stereo and turn it to implicit when switching to mono. 2012-06-04 15:16:17 -07:00
Michael Niedermayer
9c4821ca7b Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: calculate audio diff threshold based on the actual settings
  ffplay: try more channel count combinations for SDL_OpenAudio
  ffplay: simplify audio_open, rename parameters to more explanatory names
  ffplay: remove VideoState from audio_open
  ffplay: put audio parameters to their own struct
  ffplay: put audio_open into a seperate function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 23:35:42 +02:00
Michael Niedermayer
944d049eaa Merge remote-tracking branch 'qatar/master'
* qatar/master:
  movenc: Write chan atom for all audio tracks in mov mode movies.
  mpegtsenc: use avio_open_dyn_buf(), zero pointers after freeing
  doc/avconv: add some details about the transcoding process.
  avidec: make scale and rate unsigned.
  avconv: check output stream recording time before each frame returned from filters
  avconv: split selecting input file out of transcode().
  avconv: split checking for active outputs out of transcode().
  avfiltergraph: make some functions static.

Conflicts:
	ffmpeg.c
	libavfilter/avfiltergraph.c
	libavfilter/internal.h
	libavformat/mpegtsenc.c
	tests/ref/fate/acodec-alac
	tests/ref/fate/acodec-pcm-s16be
	tests/ref/fate/acodec-pcm-s24be
	tests/ref/fate/acodec-pcm-s32be
	tests/ref/fate/acodec-pcm-s8
	tests/ref/lavf/mov

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 22:59:32 +02:00
Clément Bœsch
df03ae8dd8 ffmpeg: remove two unused variables. 2012-06-04 22:32:26 +02:00
Clément Bœsch
5e8225004f Changelog: add ffprobe flat output. 2012-06-04 21:46:24 +02:00
Clément Bœsch
72868144e5 lavfi/select: add scene detection.
Based on the shotdetect algorithm (http://shotdetect.nonutc.fr/ by Johan
MATHE johan.mathe tremplin-utc.net).
2012-06-04 21:44:34 +02:00
Carl Eugen Hoyos
6b87f0707d Do not try to encode DVCPRO HD, it produces broken files. 2012-06-04 20:42:00 +02:00
Carl Eugen Hoyos
0a3e15690f Allow colour space autodetection when encoding ljpeg.
This works as expected if the input stream is not yuv4xxp.

Reviewed-by: Paul B Mahol
2012-06-04 20:01:39 +02:00
Carl Eugen Hoyos
02c2a54bf6 Remove misplaced comment. 2012-06-04 20:01:36 +02:00
Clément Bœsch
bae99f7651 ffprobe/flat: add escape for '`' and '$'. 2012-06-04 19:15:39 +02:00
Alex Converse
41e9682af2 movenc: Write chan atom for all audio tracks in mov mode movies. 2012-06-04 10:08:31 -07:00
Michael Niedermayer
02ff89a1cd ffmpeg: disable audio volume insertion on the output side.
This fixes -vol leading to 2 inserted volume filters

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 15:49:03 +02:00
Jindřich Makovička
84e430dd7b mpegtsenc: use avio_open_dyn_buf(), zero pointers after freeing
Per suggestion by Michael Niedermayer.

Signed-off-by: Jindřich Makovička <makovick@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-04 15:41:09 +03:00
Anton Khirnov
2b1f105f1b doc/avconv: add some details about the transcoding process. 2012-06-04 14:22:16 +02:00
Anton Khirnov
a982e5a031 avidec: make scale and rate unsigned.
The specs say they are unsigned 32bit integers.
2012-06-04 14:18:49 +02:00
Anton Khirnov
bb7431f4fc avconv: check output stream recording time before each frame returned from filters
There may be multiple frames returned, so with just one check we can
write more than requested to the output.
2012-06-04 14:18:34 +02:00
Anton Khirnov
a508e7a1ff avconv: split selecting input file out of transcode(). 2012-06-04 14:18:18 +02:00
Anton Khirnov
2f51ec2b94 avconv: split checking for active outputs out of transcode(). 2012-06-04 14:17:52 +02:00
Anton Khirnov
8eb9bf0933 avfiltergraph: make some functions static.
They are not used outside of avfiltergraph.c
2012-06-04 14:17:39 +02:00
Paul B Mahol
b0f6df28de libopenjpeg: YUV410P and YUV411P support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-06-04 11:44:04 +00:00
Carl Eugen Hoyos
568a592418 Fix compilation condition for some ProRes dsp encoder functions.
Found, analysed and tested by trac user Jamal.

Fixes part of Ticket #1404.
2012-06-04 12:18:56 +02:00
Carl Eugen Hoyos
84986b4e61 Fix compilation condition for some ProRes dsp decoder functions.
Found, analysed and tested by trac user Jamal.

Fixes part of Ticket #1404.
2012-06-04 12:15:41 +02:00
Carl Eugen Hoyos
a4b885d55e Fix ProRes decoder Makefile dependencies.
Found, analysed and tested by trac user Jamal.

Fixes part of Ticket #1404.
2012-06-04 12:07:30 +02:00
Carl Eugen Hoyos
c02ef07881 Fix G.723.1 encoder Makefile dependencies. 2012-06-04 12:06:48 +02:00
Clément Bœsch
c790ae0265 ffmpeg: add missing return carriage in error message. 2012-06-04 09:10:07 +02:00
Clément Bœsch
e00b2d284e options: stop after option is found.
This reverts 78da04384a6c22820518706d84631006d31a85ea; it is not
required anymore since the previous commit (these extended checks were
for the -timecode option in both muxers and encoders), and reduces the
diff with the fork.
2012-06-04 07:41:22 +02:00
Clément Bœsch
6b35f1a2a6 timecode: move timecode muxer options to metadata.
Some demuxers set a timecode in the format or streams metadata. The
muxers now make use of this metadata instead of a duplicated private
option.

This makes possible transparent copy of the timecode when transmuxing
and transcoding.

-timecode option for MPEG1/2 codec is also renamed to -gop_timecode. The
global ffmpeg -timecode option will set it anyway so no option change
visible for the user.
2012-06-04 07:41:22 +02:00
Stefano Sabatini
0f0f3bd1e0 lavfi: use av_default_item_name() as filter private context logger
avfilter_default_filter_name() is supposed to access an AVFilterContext
struct, if used with a private struct it will cause a crash since it will
access fields which are non defined in the private struct.
2012-06-04 02:40:01 +02:00
Michael Niedermayer
38c9ebd2a9 ffv1dec: print more information for -debug 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 01:04:03 +02:00
Michael Niedermayer
730d079bf7 ffv1: fix log level of FF_DEBUG_PICT_INFO
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 01:04:03 +02:00
Stefano Sabatini
f1add01d98 ffmpeg: be more verbose when printing an error in transcode()
Helps debuggability.
2012-06-04 00:55:08 +02:00
Stefano Sabatini
6a9854e8f4 ffmpeg: specify more meaningful names for the lavfi buffer sources 2012-06-04 00:55:02 +02:00
Stefano Sabatini
4d6a8a2bdb lavfi: add avfilter_default_filter_name()
The function is modelled after av_default_item_name(), and will print the
name of the instance filter if defined, otherwise the name of the filter.

This allows to show the instance name in the log, which is useful when
debugging complex filter graphs.
2012-06-04 00:54:57 +02:00
Michael Niedermayer
7d82020fcb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  librtmp: return AVERROR_UNKNOWN instead of -1.
  librtmp: don't abuse a variable for two unrelated things.
  librtmp: add rtmp_app and rtmp_playpath private options.
  bmv: add stricter checks for invalid decoded length
  avpacket: fix duplicating side data.
  flv: support stream text data as onTextData

Conflicts:
	libavcodec/bmv.c
	libavformat/flvdec.c
	libavformat/flvenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-04 00:33:42 +02:00
Stefano Sabatini
e10eac910a lavc/raw: add test utility for listing fourcc/pix_fmt map
The test program is useful for checking which raw formats are currently
identified by a codec tag.
2012-06-04 00:07:24 +02:00
Stefano Sabatini
f3fea5bab1 lavfi/lut: fix component -> rgba mapping 2012-06-04 00:07:24 +02:00
Nicolas George
8b0e173529 ffmpeg: use filter time base as codec time base. 2012-06-03 23:43:57 +02:00
Nicolas George
48b5bcb3dd ffmpeg: avoid NULL dereference with filters.
icodec can be NULL if there is no input stream
clearly associated with the output stream.
2012-06-03 23:43:57 +02:00
Michael Niedermayer
eb7efc126a log: color prefixes according to their source.
The use of cyan is droped from the levels to avoid confusion
magenta/cyan/blue is used for muxer/codec/filter layer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 22:12:14 +02:00
Michael Niedermayer
2e39e7d0f1 log: add AV_CLASS_CATEGORY_NB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 21:57:17 +02:00
Michael Niedermayer
2191aef93b log: cleanup color arrays
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 21:56:35 +02:00
Michael Niedermayer
a5c7525bcb set some categories of some AVClass structs
Please help setting the category for all remaining AVClasses

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 21:55:50 +02:00
Michael Niedermayer
44c10168cf mpc8: fix channel checks
fix heap array overflow

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 17:40:30 +02:00
Michael Niedermayer
a5ad3c2382 av_get_audio_frame_duration: fix FPE
Fixes ticket1392

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 17:12:57 +02:00
Anton Khirnov
19dfbf1915 librtmp: return AVERROR_UNKNOWN instead of -1. 2012-06-03 15:46:27 +02:00
Anton Khirnov
a91943bcef librtmp: don't abuse a variable for two unrelated things. 2012-06-03 15:46:16 +02:00
Anton Khirnov
007aedeebf librtmp: add rtmp_app and rtmp_playpath private options.
This makes it easier to switch between native rtmp and librtmp.
2012-06-03 15:45:55 +02:00
Kostya Shishkov
96fadfb158 bmv: add stricter checks for invalid decoded length
This makes decoder handle random data passed as BMV frame data.
2012-06-03 15:26:11 +02:00
Michael Niedermayer
6df1cfa7e4 mace: check channel count, fixes FPE
Fixes ticket1391

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 15:01:34 +02:00
Michael Niedermayer
cc229d4e83 h263: disable loop filter with lowres
Fixes ticket1212

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 15:01:34 +02:00
Carl Eugen Hoyos
169dae8114 Unconditionally compile init_stream() in bintext.
Fixes compilation of xbin, adf and idf demuxer if
bintext demuxer was disabled.

Fixes ticket #1399
2012-06-03 14:47:26 +02:00
Anton Khirnov
cf3a1948e9 avpacket: fix duplicating side data.
Use correct side data size instead of just zeroed field.
2012-06-03 10:22:42 +02:00
Nicolas George
7f17f4f1a7 af_amerge: use the buferqueue API. 2012-06-03 10:04:01 +02:00
Nicolas George
2f2d47ab63 af_astreamsync: set samples rate in query_formats. 2012-06-03 10:04:01 +02:00
Michael Niedermayer
c983ca5b90 mpegtsenc: zero pointers after freeing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 03:44:16 +02:00
Michael Niedermayer
328e203ca9 mpegts_audio_write: fix potential integer overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 03:43:40 +02:00
Luca Barbato
21e2dc9fb7 flv: support stream text data as onTextData
Adobe specifies onTextData as the standard message to use to deliver
text information.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-06-03 03:36:01 +02:00
Michael Niedermayer
f67309cabe Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegtsenc: Support LATM packetization for AAC
  adtsenc: Don't expose the muxer internals to the rest of lavf
  mpegtsenc: use AVFormatContext for AAC packetization
  mpegtsenc: use AVERROR() for return codes

Conflicts:
	libavformat/adts.h
	libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 02:56:52 +02:00
Mans Rullgard
a128b310ef configure: add --enable/disable-random option
This allows creating random configurations which is useful for
testing purposes.

Signed-off-by: Mans Rullgard <mans@mansr.com>

Conflicts:

	configure

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 02:08:16 +02:00
Mans Rullgard
d0f34c96b1 aacsbr: remove unused variables 2012-06-03 01:53:36 +02:00
Michael Niedermayer
0e3cec9f7d aacsbr: optimize sine level addition
Based-on commit by Måns Rullgård <mans@mansr.com>

original:   1424 decicycles in phi, 1024 runs, 0 skips
mans code:  1104 decicycles in phi, 1024 runs, 0 skips
this change: 734 decicycles in phi, 1024 runs, 0 skips

mans code:   1 file changed, 20 insertions(+), 10 deletions(-)
this change: 1 file changed, 10 insertions(+), 6 deletions(-)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-03 01:53:10 +02:00
Jindrich Makovicka
2439bd8681 mpegtsenc: Support LATM packetization for AAC
This adds the avoption mpegts_flags and converts the existing
resend_headers option into a flag, keeping the old option as
fallback for now.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-03 01:20:41 +03:00
Jindrich Makovicka
485d3ea064 adtsenc: Don't expose the muxer internals to the rest of lavf
This isn't required any longer, when the mpegts muxer uses it
as a proper chained muxer.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-03 01:18:11 +03:00
Jindrich Makovicka
b1c56eabe8 mpegtsenc: use AVFormatContext for AAC packetization
This removes the dependency on adts.c internals, and simplifies
adding other packetization formats.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-03 01:17:48 +03:00
Jindrich Makovicka
d1a3a3d4b2 mpegtsenc: use AVERROR() for return codes
Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-03 01:13:35 +03:00
Michael Niedermayer
e95233789c mpc7: fix handling of last frame
Fixes heap buffer overflow
Fixes ticket1393

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 23:43:31 +02:00
Michael Niedermayer
e0eaf10049 oggdec: fix regression that caused reading the whole file during open
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 22:50:40 +02:00
Marton Balint
22505c188c ffplay: calculate audio diff threshold based on the actual settings
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-02 21:56:08 +02:00
Marton Balint
0dad529201 ffplay: try more channel count combinations for SDL_OpenAudio
This should fix ticket 1384.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-02 21:55:58 +02:00
Michael Niedermayer
82570d2f09 png_parser: dont falsely mark frames as keyframes
Fixes Ticket1381

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 21:12:20 +02:00
Michael Niedermayer
5665674b55 lavf: use input keyframe flag when muxer does not provide keyframe flags.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 21:11:43 +02:00
Michael Niedermayer
b3675f890a bink: fix out of reference frame read
Fixes Ticket1374

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 19:56:10 +02:00
Marton Balint
7821264c26 ffplay: simplify audio_open, rename parameters to more explanatory names
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-02 19:46:00 +02:00
Marton Balint
7342037973 ffplay: remove VideoState from audio_open
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-02 19:46:00 +02:00
Marton Balint
e1248f5c52 ffplay: put audio parameters to their own struct
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-02 19:46:00 +02:00
Marton Balint
03095d73a3 ffplay: put audio_open into a seperate function
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-06-02 19:45:59 +02:00
Michael Niedermayer
1bf22c3a8f Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: remove VideoPicture pix_fmt and use frame pixel format instead
  ffplay: only request 4 or 6 channels from SDL, if SDL version is at least 1.2.8
  ffplay: add pause audio feature in the middle of a packet
  ffplay: remove VideoPicture duration field

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 17:06:09 +02:00
Michael Niedermayer
fb4e434cfb h264: log debug output for slightly truncated streams
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 15:37:20 +02:00
Michael Niedermayer
cd0f9f00a2 h264: try to better handle h264 streams that are slightly truncated
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 15:36:50 +02:00
Michael Niedermayer
debbcfae60 bmv: fix apparent sign error in the frame_off check
Fixes part of Ticket1373

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 04:18:13 +02:00
Michael Niedermayer
679c578cb8 bmv: fix integer overflows in vlc decoder.
Fixes part of Ticket1373

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Based-on-patch-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 04:18:13 +02:00
Michael Niedermayer
9ebe6e3910 ffv1: fix integer overflow in quant table initialization
Fixes part of Ticket1372

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 02:37:36 +02:00
Michael Niedermayer
97c281d5b7 ffv1: fix crash caused by version becoming inconsistent
Fixes part of Ticket1372

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-02 02:30:55 +02:00
Michael Niedermayer
0bae6661cd fraps: fix version 0/1 input data size check.
Fixes array overread.
Fixes Ticket1371

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 23:22:54 +02:00
Michael Niedermayer
f23a2418fb wmv1: check that the input buffer is large enough
Fixes null ptr deref
Fixes Ticket1367

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 23:22:54 +02:00
Clément Bœsch
fd0c83c666 ffprobe: add flat output format. 2012-06-01 21:06:06 +02:00
Clément Bœsch
db839544d6 ffprobe/xml: use writer multiple_sections instead of local context variable. 2012-06-01 20:52:30 +02:00
Clément Bœsch
2248db946c ffprobe: move packets_and_frames work to writer context. 2012-06-01 20:52:30 +02:00
Carl Eugen Hoyos
7980a260a9 Let ffmpeg select the null and anull filters.
They are needed since 16e25ef.
2012-06-01 20:10:43 +02:00
Michael Niedermayer
fbc5e0fae1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  http: Add the url_shutdown function for https, too
  http: Simplify code by removing a local variable
  http: Clear the old URLContext pointer when closed
  tcp: Try enabling SO_REUSEADDR when listening
  tcp: Check the return values from bind and accept
  avisynth: Make sure the filename passed to avisynth is in the right code page

Conflicts:
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 19:59:39 +02:00
Michael Niedermayer
0d83edaba9 dct-test: give emms a memory clober.
Without this, the compiler in theory could attempt to keep
things in float registers across the emms which would cause
bad things to happen.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 19:16:14 +02:00
Michael Niedermayer
461030a7ac dct-test: perform emms before gettime().
This fixes the hypothetical case of a gettime implementation using floats

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 19:15:24 +02:00
Michael Niedermayer
9758b1cb88 fate: enable fate-mapchan-6ch-extract-2-downmix-mono
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 18:44:07 +02:00
Michael Niedermayer
d43812e235 ffmpeg: move pan filter insertion up.
This fixes one (disabled) fate test.

Thanks-to: ubitux to pointing at the odd filter order and stereo/mono messup
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 18:43:13 +02:00
Martin Storsjö
dbaf79c9d7 http: Add the url_shutdown function for https, too
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-01 18:38:31 +03:00
Martin Storsjö
5952564185 http: Simplify code by removing a local variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-01 18:38:29 +03:00
Martin Storsjö
3cbcfa2dec http: Clear the old URLContext pointer when closed
This fixes issues with opening http urls that have authentication
or redirects, introduced in commit e999b641.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-01 18:38:28 +03:00
Michael Niedermayer
0766b6e3ec rv20: fix lowres out of array read
Fixes Ticket1239

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 17:07:07 +02:00
Michael Niedermayer
febc013dc5 yopdec: check frame oddness to be within supported limits
Fixes Ticket1365

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 15:52:20 +02:00
Michael Niedermayer
b6fdf8dea7 yopdec: check that palette fits in the packet
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 15:51:50 +02:00
Michael Niedermayer
f218121a4d http: use ffurl_closep()
Fixes Ticket1383

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 14:48:17 +02:00
Michael Niedermayer
edf96d631c url: add ffurl_closep() which also sets the context pointer to NULL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 14:47:30 +02:00
Michael Niedermayer
f89aa6751c lavf: use av_freep() in ffurl_close()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 14:40:05 +02:00
Martin Storsjö
2dbb8cc6a3 tcp: Check the return values from bind and accept
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-01 14:25:15 +02:00
Michael Niedermayer
5f509fa2e1 log: add category to AVClass
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 14:02:03 +02:00
Michael Niedermayer
23b365f1c4 ffmpeg: fix memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 12:31:13 +02:00
Michael Niedermayer
422418b664 dnxhd: replace asserts by av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 12:14:49 +02:00
Michael Niedermayer
e6866b1c67 fate: only check stddev for acodec-ra144
ra144 uses floats so bitexactness cannot be guranteed
This should fix a long standing issue with icc

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 12:14:49 +02:00
Carl Eugen Hoyos
aac41ec119 Let ffmpeg select the setpts filter.
Do not disable ffmpeg with --disable-everything.
2012-06-01 09:45:25 +02:00
Clément Bœsch
64df092b25 swr: fix a few typo. 2012-06-01 08:06:36 +02:00
Michael Niedermayer
abf5f6ea2a fate: try to fix 3rd md5 implementation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 04:16:23 +02:00
Michael Niedermayer
03ce421c13 8svx: fix crash
Fixes Ticket1377

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 02:32:00 +02:00
Piotr Bandurski
59352cc219 sgienc: add a limit for maximum supported resolution
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 01:14:49 +02:00
Martin Storsjö
b7c3772be8 tcp: Try enabling SO_REUSEADDR when listening
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-01 01:56:22 +03:00
Martin Storsjö
641f4a885f tcp: Check the return values from bind and accept
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-01 01:56:21 +03:00
Michael Niedermayer
8a0efa9cc0 qdm2: fix incorrect error spam
Fixes Ticket1375

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 00:35:06 +02:00
Michael Niedermayer
e47e23698b libmp3lame: add missing layout terminator
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-01 00:07:36 +02:00
Michael Niedermayer
7cb8663362 h264: Fail on DPC its not fully implemented
Fixes part of Ticket1369

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 23:52:08 +02:00
Michael Niedermayer
3c276ac0f8 dv-demux: dont mess with codec values
Fixes part of Ticket1369

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 23:50:08 +02:00
Clément Bœsch
303619d3ca jacosub_probe: slightly increase the score to limit misdetection. 2012-05-31 22:12:46 +02:00
Clément Bœsch
908293d1bc jacosub_probe: speedup by making only one call to sscanf 2012-05-31 21:55:35 +02:00
Oka Motofumi
5c742005fb avisynth: Make sure the filename passed to avisynth is in the right code page
avisynth is a non-unicode application and cannot accept UTF-8
characters. Therefore, the input filename should be converted to
the correct code page that it expects.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-31 22:39:08 +03:00
Michael Niedermayer
5afdb3e6b1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Fix fate-ac3-fixed-encode for pre-ssse3 x86 machines
  http: Pass the proper return code of net IO operations
  http: Add 'post_data', a new option which sets custom HTTP post data
  lavfi: amix: check active input count before calling request_samples
  vp8: move block coeff arithcoder on stack.
  mp3/ac3 probe: search for PES headers to prevent probing MPEG-PS as MP3.

Conflicts:
	libavformat/ac3dec.c
	libavformat/mp3dec.c
	tests/fate/ac3.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 21:27:42 +02:00
Michael Niedermayer
b7d1488393 h264: move q0 scan tables into context
This fixes out of global array reads.
The alternative solutions of checking the index or modifying the VLC tables
to prevent the index going outside are each about 1-2 cpu cyclces slower
per coded 4x4 block.
The alternative of padding the global tables directly is more ugly and
moving them to the context should benefit cache locality.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 20:25:23 +02:00
Michael Niedermayer
18b46a494e oggparsevorbis: fix null ptr dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 20:25:23 +02:00
Michael Niedermayer
b02cc2ddc6 mpeg4videodec: Check that cplx_estimation_* fits in the available space
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 20:25:23 +02:00
Nicolas George
06bf6d3bc0 vf_overlay: rewrite request/push logic.
The old implementation, upon receiving a frame on the main
input, would request an overlay frame if necessary. This could
generate an infinite recursion, off-by-one frame mismatch and
other harmful effects, especially it the split filter is present
upgraph.

The new implementation uses the linear approach: it uses two
buffer queues for frames received out of turn and forwards
request_frame calls to the input where a frame is necessary.
2012-05-31 17:27:27 +02:00
Nicolas George
6d679c4359 lavfi: add a generic API for buffer queues. 2012-05-31 17:27:27 +02:00
Nicolas George
72f3786d0f sink_buffer: guard against NULL frames.
This only happens if some filter somewhere is bogus,
but it helps debugging.
2012-05-31 17:27:27 +02:00
Piotr Bandurski
e03ddbcd91 gifenc: support resolutions up to 65535x65535
Maybe someone can add a check in the second gif encoder (rgb24), because I'm not sure where it should be added.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 16:59:25 +02:00
Piotr Bandurski
d2581dcca6 mjpegenc: add a limit for maximum supported resolution
jpeg does not allow more than 65000 pixels for width and height

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 16:57:47 +02:00
Matthieu Bouron
320e537baf mxfenc: support 50 and 60 frame rates
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 16:55:37 +02:00
Michael Niedermayer
cc4d80c99f ipmovie_probe: speedup by avoiding memcmp() call
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 16:19:26 +02:00
Michael Niedermayer
ebfe0c6eb8 ac3_probe: speedup by checking for header earlier
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 16:14:27 +02:00
Michael Niedermayer
6cfaccabc4 probetest: allow specifying parameters on the command line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 15:53:58 +02:00
Michael Niedermayer
76170f5373 yop_probe: check more fields to avoid detecting random data as yop
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 14:47:15 +02:00
Michael Niedermayer
60de761657 ffmpeg: allow overriding input top field first
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 12:42:02 +02:00
Paul B Mahol
824a6975ee binkaudio: check number of channels
Fixes #1380.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-31 08:58:31 +00:00
Michael Niedermayer
8aaa00c301 indeo5: check quant_mat
prevents out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 05:07:51 +02:00
Michael Niedermayer
3b275ce374 fate: dont freopen() stdout
it doesnt work and breaks most BSDs

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 02:56:56 +02:00
Michael Niedermayer
0dfcd7e7e3 range coder test code: decoding errors are av_log_error not debug.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 00:48:29 +02:00
Michael Niedermayer
21fdf1ccf0 ffv1: fix reading global header with CRC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 00:47:36 +02:00
Michael Niedermayer
57778f61d0 avidec: fix odd extradata size case.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 00:46:47 +02:00
Michael Niedermayer
76853a3e0c libavformat: ff_get_bmp_header: return esize too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-31 00:46:02 +02:00
Michael Niedermayer
0fcf3013c4 fate: Fix fate-ac3-fixed-encode for pre-ssse3 x86 machines
The default mmxext and sse implementations of apply_window_int16
aren't bitexact.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-31 00:01:04 +03:00
Samuel Pitoiset
9613240f72 http: Pass the proper return code of net IO operations
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-30 23:46:51 +03:00
Samuel Pitoiset
1876e7c0c2 http: Add 'post_data', a new option which sets custom HTTP post data
This allows doing http posts with a content-length header sent
in advance, avoiding chunked encoding.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-30 23:41:05 +03:00
Justin Ruggles
c7bd556d48 lavfi: amix: check active input count before calling request_samples
fixes use of the amix filter with only 1 input
2012-05-30 16:20:03 -04:00
Michael Niedermayer
a1fc1d2e1b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pcm-mpeg: improve log message wording
  fate: add missing $(TARGET_PATH) to ac3-fixed-encode
  fate: fix md5sum replacement on some systems
  avprobe: correctly set the default formatter
  lavr: add x86-optimized function for mixing 2 to 1 s16p with q8 coeffs
  lavr: add x86-optimized functions for mixing 2 to 1 s16p with float coeffs
  lavr: add C functions for mixing 2 to 1 channels with s16p format
  avprobe: move formatter functions in the context

Conflicts:
	ffprobe.c
	libavcodec/pcm-mpeg.c
	tests/fate/ac3.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 19:32:06 +02:00
Ronald S. Bultje
6163d880c0 vp8: move block coeff arithcoder on stack.
This prevents gcc from assuming that contents of it may have changed
between calls to vp56_range_get_prob(), thus preventing countless (and
unnecessary) movs. Decoding of sintel trailer goes from (avg+SG) 9.796
+/- 0.003 to 9.635 +/- 0.010.
2012-05-30 09:08:29 -07:00
Ronald S. Bultje
64bde80563 mp3/ac3 probe: search for PES headers to prevent probing MPEG-PS as MP3. 2012-05-30 09:08:29 -07:00
Christian Schmidt
d041dec3cb pcm-mpeg: improve log message wording
We support every defined value for channel layout, bitrate and sample depth.
All other values are not unsupported, but reserved.
Update comments to say "are used" instead of "are known or exist".

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-30 11:27:29 -04:00
Michael Niedermayer
39f0a45a1a h264_cavlc: check prefix before using it.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 16:42:01 +02:00
Michael Niedermayer
32e60b6bfe h264: increase scantable sizes to avoid overread
We could also check the index but this would slow speed critical code
down.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 16:40:33 +02:00
Michael Niedermayer
fd4c1c0b70 truemotion1: Check index, fix out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 16:20:22 +02:00
Michael Niedermayer
96fe99cb11 ffmpeg: disable autoinsertion for -async on the output side of the filtergraph.
This fixes the issue that since the last merge -async caused 2 aresample
filters to be inserted
users that generate funny timestamps in a filtergraph should probably
manually insert a aresample filter where they need it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 15:55:31 +02:00
Michael Niedermayer
89cf5bf39a cmdutils: replace 1 line #ifs by if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 15:45:05 +02:00
Gavin Kinsey
bf6fb563b9 Allow building of command line utils without swresample lib
This allows building ffprobe without swresample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 15:45:05 +02:00
Paul B Mahol
f5af8d5e76 exr: make message about missing feature more useful
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-30 12:07:41 +00:00
Michael Niedermayer
d24ef674ec fate: fix long standing bug in the g723_1 test
The test compared files of mismatching sample rate

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 13:28:42 +02:00
Michael Niedermayer
f5e0ef536a fate: add a fate-acodec-dca test that works on all platforms second try
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 13:10:22 +02:00
Michael Niedermayer
607461e50d fate: add bitexact flag to ac3-fixed
cant hurt, and should be there for all tests

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 13:10:22 +02:00
Paul B Mahol
8f61526978 iff: check if there is extradata
Fixes #1368.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-30 07:50:32 +00:00
Paul B Mahol
d66b0cd5c5 exr: alpha support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-30 07:06:12 +00:00
Mans Rullgard
0857e46dd5 fate: add missing $(TARGET_PATH) to ac3-fixed-encode
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-30 07:55:13 +01:00
Mans Rullgard
00c78a0a15 fate: fix md5sum replacement on some systems
On systems where the 'md5' command is used, there is a conflict
with the md5() shell function in fate-run.sh.  Using the 'command'
keyword bypasses the shell function for correct behaviour.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-30 07:52:35 +01:00
Michael Niedermayer
7a2ae764f4 fate: disable fate-acodec-dca
the new test doesnt work on all platforms, thus disable it until a better solution is found.
the dca2 test remains and provides partial testing until this is resolved

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 06:48:13 +02:00
Michael Niedermayer
ef96ec97fb fate: remove unused functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 05:57:56 +02:00
Michael Niedermayer
6aceed3b72 fate: remove tests/codec-regression.sh
This was somehow forgotten in todays merge

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 05:57:56 +02:00
Michael Niedermayer
5855e46398 fate: resurrect acodec-dca
This was lost in todays merge
Ideas to do this less ugly are welcome!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 05:57:56 +02:00
Lou Logan
73f3f6baff lavc: clarify experimental codec message
Should be easier for new users to get a working output.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 05:02:54 +02:00
Michael Niedermayer
fd707add6b fate: try to fix fate-nellymoser-aref-encode make dependancies
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 04:52:13 +02:00
Michael Niedermayer
e0a01e4c85 fate: make idroq test run again.
Didnt investigate what broke it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 04:38:41 +02:00
Michael Niedermayer
16e25ef34b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avconv: extend -r to work on any input stream.
  doc/avconv: expand documentation for the -s option.
  avconv: don't print filters inserted by avconv in stream mappings.
  avconv: merge configuration code for complex and simple filters
  avconv: split configuring input filters out of configure_complex_filter

Conflicts:
	configure
	doc/ffmpeg.texi
	ffmpeg.c
	tests/ref/fate/idroq-video-encode

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 04:38:32 +02:00
Michael Niedermayer
b0387edd5e Merge commit 'f919cc7df6ab844bc12f89fe7bef4fb915a47725'
* commit 'f919cc7df6ab844bc12f89fe7bef4fb915a47725':
  fate: fix acodec/vsynth tests for make 3.81
  pcm_mpeg: fix number of consumed bytes to include the header.
  avfilter: include required header file avfilter.h in video.h
  x86: Avoid movs on BUTTERFLYPS when in AVX mode
  x86: use new schema for ASM macros
  fate: convert codec-regression.sh to makefile rules
  fate: allow tests to specify unit size for psnr comparison
  fate: teach videogen/rotozoom to output a single raw video stream
  http: Add support for reusing the http socket for subsequent requests
  http: Add support for using persistent connections

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-30 01:40:54 +02:00
Clément Bœsch
8619362ff1 ffprobe: fix C escaping. 2012-05-30 01:07:41 +02:00
Luca Barbato
43b50e62c4 avprobe: correctly set the default formatter 2012-05-29 14:09:43 -07:00
Marton Balint
f1a75aa033 ffplay: remove VideoPicture pix_fmt and use frame pixel format instead
VideoPicture pixel format is set at allocation time, therefore it is not
reflecting the proper value.

Fixes files with changing pixel format in the avfilter disabled case.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-29 22:41:50 +02:00
Marton Balint
15751e3fdd ffplay: only request 4 or 6 channels from SDL, if SDL version is at least 1.2.8
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-29 22:41:50 +02:00
Marton Balint
a6f51de3bf ffplay: add pause audio feature in the middle of a packet
Fixes ticket 215.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-29 22:41:50 +02:00
Marton Balint
d872e11300 ffplay: remove VideoPicture duration field
We are not using it.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-29 22:41:50 +02:00
Clément Bœsch
2d52ee8a1a lavf/microdvd: support events lasting to the next one.
Example:

{3350}{}this subtitle...
{3390}{}...continues up to...
{4000}{4500}this one.
{4600}{}and now...
{4800}{}...to the end of the presentation
2012-05-29 21:33:28 +02:00
Clément Bœsch
d51e08bb89 lavc: switch from ts_end to duration in ff_ass_add_rect.
Make possible a end-to-presentation duration.
2012-05-29 21:33:28 +02:00
Justin Ruggles
b75726cb79 lavr: add x86-optimized function for mixing 2 to 1 s16p with q8 coeffs 2012-05-29 15:33:25 -04:00
Justin Ruggles
c140fb2cbc lavr: add x86-optimized functions for mixing 2 to 1 s16p with float coeffs 2012-05-29 15:33:18 -04:00
Justin Ruggles
8dfc122719 lavr: add C functions for mixing 2 to 1 channels with s16p format 2012-05-29 15:16:20 -04:00
Luca Barbato
528995589f avprobe: move formatter functions in the context
Avoid possible clashes.
2012-05-29 11:00:12 -07:00
Michael Niedermayer
e7cb161515 ape: Fix null ptr dereference with files missing a seekatable.
Such files are currently not supported as the table is used at several points

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-29 19:56:07 +02:00
Michael Niedermayer
5880d78873 movdec: Check count of stts/ctts elements instead of just the pointer.
Fixes overreading the array

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-29 19:56:07 +02:00
Michael Niedermayer
1b8741a684 4xm: fix division by zero caused by bps<8
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-29 19:56:07 +02:00
Anton Khirnov
c9cc76290f avconv: extend -r to work on any input stream.
This is done by automatically inserting a setpts filter.
2012-05-29 19:19:17 +02:00
Anton Khirnov
4f81a5072a doc/avconv: expand documentation for the -s option. 2012-05-29 19:19:16 +02:00
Anton Khirnov
cf6c38c62b avconv: don't print filters inserted by avconv in stream mappings. 2012-05-29 19:19:16 +02:00
Anton Khirnov
8daf21d567 avconv: merge configuration code for complex and simple filters
Some tests change because -s now inserts the scaler to the end instead
of beginning of the filtergraph.
2012-05-29 19:19:16 +02:00
Anton Khirnov
a977d91e28 avconv: split configuring input filters out of configure_complex_filter 2012-05-29 19:19:16 +02:00
Clément Bœsch
dae8505492 ffprobe: make -of an alias for -print_format.
This is for interoperability purpose with the fork.
2012-05-29 18:50:20 +02:00
Mans Rullgard
f919cc7df6 fate: fix acodec/vsynth tests for make 3.81
GNU make 3.81 applies pattern rules in declaration order rather than
by stem length as in 3.82.  This moves the more generic patterns above
the more specific ones such that they work with either make version.
Some of the vsynth patterns are also simplified a little.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-29 17:49:44 +01:00
Stefano Sabatini
ad381ac97f ffprobe: fix chapter printing, fix JSON output
Make writer_print_chapter_header() set the internal values *before* the
private writer callback is called, otherwise the accessed internal values
will be wrong.

Fix regression introduced in fa6cb2fdff.

Found-By: Daemon404
2012-05-29 18:11:36 +02:00
Hendrik Leppkes
c58bcead3b pcm_mpeg: fix number of consumed bytes to include the header.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-05-29 16:08:56 +02:00
Janne Grunau
12d42cd7a8 avfilter: include required header file avfilter.h in video.h 2012-05-29 15:36:06 +02:00
Vitor Sessak
4a301706fd x86: Avoid movs on BUTTERFLYPS when in AVX mode
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-05-29 15:29:46 +02:00
Vitor Sessak
bac0729d9e x86: use new schema for ASM macros
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-05-29 14:49:45 +02:00
Stefano Sabatini
a5e83a5d4c Changelog: apply misc formatting fixes 2012-05-29 13:06:38 +02:00
Stefano Sabatini
4eb1ff6582 Changelog: remove asplit entry from 0.11, it was added in 0.10 2012-05-29 13:06:38 +02:00
Stefano Sabatini
89d49acb3b ffprobe: add INI writer
Liberally based on the work of Luca Barbato <lu_zero@gentoo.org>, done
for libav/avprobe.
2012-05-29 13:06:33 +02:00
Paul B Mahol
908c045f3a avfilter: use designated initializer for class
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-05-29 07:59:21 +00:00
Mans Rullgard
7263cd5544 fate: convert codec-regression.sh to makefile rules
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-29 08:35:41 +01:00
Mans Rullgard
47b5996bb0 fate: allow tests to specify unit size for psnr comparison
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-29 08:27:19 +01:00
Mans Rullgard
7e5880e0cb fate: teach videogen/rotozoom to output a single raw video stream
This makes videogen/rotozoom output a raw video stream on stdout
if no output directory is specified.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-05-29 08:27:19 +01:00
Clément Bœsch
f0c15ecd45 doc/syntax: escape '@' to fix a warning.
Fix the following warning:
doc/syntax.texi:147: warning: Accent command `@"' must not be followed by whitespace
2012-05-29 07:40:58 +02:00
Stefano Sabatini
67b7631040 lavc: prettify printing of some codec tags which contains non alphanumeric characters
Make av_get_codec_tag_string() show codec tag string characters in a more
intelligible ways. For example the ascii char "@" is used as a number, so
should be displayed like "[64]" rather than as a printable character.

Apart alphanumeric chars, only the characters ' ' and '.' are used
literally in codec tags, all the other characters represent numbers.
2012-05-29 01:02:50 +02:00
Stefano Sabatini
fa6cb2fdff ffprobe: add multiple_sections field to WriterContext
Move the field "multiple_entries" from the JSON writer private context to
WriterContext, and rename it "multiple_sections".

This allows to factorize the code with the pending INI format patch.
2012-05-29 01:02:50 +02:00
Stefano Sabatini
c365cdf202 ffprobe: add support to '\b' and '\f' escaping in c_escape_str() 2012-05-29 01:02:47 +02:00
Stefano Sabatini
6994b552a6 ffprobe: make c_escape_str() documentation terser
Avoid to specify implementation details, better to check the code for
that.
2012-05-29 01:02:13 +02:00
Michael Niedermayer
59a78290b6 lavfi: use getter/setter functions for AVFrame.pkt_pos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 23:45:17 +02:00
Philip Langdale
ea60a11e8e movenc: Fix muxing of Apple Quicktime chapters. v3
There is basic support for muxing chapter information into the
Apple Quicktime format already, but there are two errors which
prevent correct detection on the player side.

1) A special apple 'text' atom needs to be included inside the
gmhd atom.

2) The *different* 'text' atom inside the 'stsd' atom needs a
proper header.

With these changes, the chapters are now picked up by Apple
players and reported correctly by tools like mediainfo and mp4chaps.

v3 Update: The stub TextSampleEntry creation is moved to where the
chapter track is created so it's now specific to this track.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 22:52:23 +02:00
Robert Nagy
c2eae4bae7 lavfi: Fill linesize, sample_rate and channel_layout fields in avfilter_fill_frame_from_audio_buffer_ref.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 22:52:23 +02:00
Clément Bœsch
d187e7616e ffmpeg: use %f instead of %lf in volume args format printf.
%f refers to a double argument already.
2012-05-28 22:17:05 +02:00
Michael Niedermayer
ca7fa3a516 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  AVOptions: fix the value printed in out of range error message.

Conflicts:
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 22:07:34 +02:00
Michael Niedermayer
f2bc2e8954 configure: disable avresample by default
avresample is redundant and unneeded

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 19:43:57 +02:00
Michael Niedermayer
f0e39889ad configure: add asyncts->avresample dependancy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 19:43:34 +02:00
Carl Eugen Hoyos
5cd947d81b Fix r10k codec for widths that are not multiples of 64.
Fixes ticket #1358
2012-05-28 19:05:15 +02:00
Carl Eugen Hoyos
77cea13f05 Mark avui encoder experimental.
Some decoders require the AVID atom that we currently
do not write when encoding avui.
2012-05-28 18:20:39 +02:00
Michael Niedermayer
b4904e804d jvdec: check videosize
Fixes null ptr dereference
fixes Ticket1364

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 17:24:13 +02:00
Michael Niedermayer
50122084a6 motionpixels: check extradata size
Fixes null ptr derefernce
Fixes Ticket1363

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 17:24:13 +02:00
Michael Niedermayer
849d4b0413 iff_ilbm: fix null ptr deref
Fixes Ticket1362

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 17:24:13 +02:00
Michael Niedermayer
77a4c8b959 yop: check for missing extradata
Fixes null ptr deref
Fixes Ticket1361

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 17:24:13 +02:00
Michael Niedermayer
01900fcc45 xan: fix out of array read
Fixes ticket1360

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 17:24:13 +02:00
Michael Niedermayer
1e5c7376c4 cdgraphics: Fix out of array write
Fixes Ticket1359

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 17:24:13 +02:00
Carl Eugen Hoyos
83de4f5fc9 Test extradata size before reading from extradata when decoding avui. 2012-05-28 15:58:46 +02:00
Michael Niedermayer
d5a17d7f4d configure: fix the wording for gpl incompatible licenses warnings
calling the 4 clause BSD license non free is quite a stretch ;)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 15:49:12 +02:00
Michael Niedermayer
f997ac1c8b configure: openssl is compatible with the LGPL.
looking at the license i cannot see why they would be incompatible and
researching this matter a bit also turned up no reasons.

If i missed something, please dont hesitate to flame me and or revert

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 15:49:07 +02:00
Samuel Pitoiset
e999b641df http: Add support for reusing the http socket for subsequent requests
Introduce ff_http_do_new_request(), a new function which sends a new
HTTP request, reusing the existing connection to the server.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-28 16:42:40 +03:00
Samuel Pitoiset
3bdb438e65 http: Add support for using persistent connections
Add a new AVOption 'multiple_requests', which indicates if we want
to use persistent connections (ie. Connection: keep-alive).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-28 16:42:14 +03:00
Anton Khirnov
0426c69310 AVOptions: fix the value printed in out of range error message. 2012-05-28 12:55:41 +02:00
Michael Niedermayer
394b692b70 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avprobe: restore pseudo-INI old style format for compatibility.
  avprobe: fix formatting.
  log: make colored output more colorful.
  rtsp: Check for dynamic payload handlers if no static payload mapping was found

Conflicts:
	Changelog
	doc/ffprobe.texi
	ffprobe.c
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-28 00:50:23 +02:00
Michael Niedermayer
875851294f avienc: create xsub in avi files that are closer to whats in the wild
Fixes ticket1332

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-27 22:45:52 +02:00
Michael Niedermayer
9c27f29a01 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: force exit when filter configuration fails
  ffplay: fix stream cycling if audio decoding fails
  ffplay: flush codec buffers before freeing filters
  ffplay: dont destroy packet queues on stream change

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-27 16:04:10 +02:00
Michael Niedermayer
fcd08262fd tests and tools: cleanup ffmpeg reference
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-27 15:42:55 +02:00
Vitor Sessak
2fd5e70869 x86: use new schema for ASM macros
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-27 15:42:45 +02:00
Michael Niedermayer
65212e3ed9 mxfdec: remove unused last_index_duration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-27 15:42:45 +02:00
Clément Bœsch
80bf2b6e84 Changelog: fix wrong/inaccurate entries. 2012-05-27 15:28:24 +02:00
Carl Eugen Hoyos
ab7d6cb8f7 Support decoding fourcc YVYU.
Based on work by ami_stuff.

Fixes ticket #1352
2012-05-27 01:13:37 +02:00
Clément Bœsch
5c3f79198c lavfi/deshake: add libavcodec dependency (dsputil). 2012-05-27 00:34:09 +02:00
Clément Bœsch
19c1bf1525 ffprobe: reduce the number of AVBPrint resets. 2012-05-26 22:53:13 +02:00
Michael Niedermayer
53ce990513 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  opt: Add av_opt_set_bin()
  avconv: Display the error returned by avformat_write_header
  rtpenc_chain: Return an error code instead of just a plain pointer
  rtpenc_chain: Free the URLContext on failure
  rtpenc: Expose the ssrc as an avoption
  avprobe: display the codec profile in show_stream()
  avprobe: fix function prototype
  cosmetics: Fix indentation
  avprobe: changelog entry
  avprobe: update documentation
  avprobe: provide JSON output
  avprobe: output proper INI format
  avprobe: improve formatting
  rtmp: fix url parsing
  fate: document TARGET_EXEC and its usage

Conflicts:
	doc/APIchanges
	doc/fate.texi
	doc/ffprobe.texi
	ffprobe.c
	libavformat/version.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 22:37:37 +02:00
Anton Khirnov
8271f55bd7 avprobe: restore pseudo-INI old style format for compatibility. 2012-05-26 21:14:35 +02:00
Anton Khirnov
d30acfa94c avprobe: fix formatting. 2012-05-26 21:14:27 +02:00
Anton Khirnov
780ff97fef log: make colored output more colorful.
Green for verbose, cyan for debug.
2012-05-26 21:14:17 +02:00
Michael Niedermayer
a48b890392 aacdec: fix "may be used uninitialized" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 21:03:58 +02:00
Michael Niedermayer
21e5dd93d7 aacpsy: fix "may be used uninitialized" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 20:59:57 +02:00
Martin Storsjö
6099543ad4 rtsp: Check for dynamic payload handlers if no static payload mapping was found
Some systems abuse the static payload types 35 or 36 (which
according to IANA are unassigned) for H264.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 21:58:18 +03:00
Alexis Ballier
0bf90ceb84 Fix tests without fate samples.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 20:49:59 +02:00
Michael Niedermayer
f7c89705e4 avio: fix "discards const qualifier from pointer target type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 20:46:02 +02:00
Michael Niedermayer
8a45e0c354 lswsutils: fix "ncompatible pointer type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 20:46:00 +02:00
Michael Niedermayer
6d401effc4 lavfutils: fix incompatible pointer type warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 20:45:59 +02:00
Michael Niedermayer
be97675e6c af_aresample: fix pts, they where off by a packet in the -async >0 case.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 16:22:46 +02:00
Samuel Pitoiset
154486f9ad opt: Add av_opt_set_bin()
Introduce a new function to set binary data through AVOption,
avoiding having to convert the binary data to a string inbetween.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 14:31:44 +03:00
Michael Niedermayer
aeb2dea802 Changelog, spell out the CVEs that where fixed.
there are some holes in the list as some things have been fixed
in previous releases already.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 13:07:04 +02:00
Christian Schmidt
f7d5272456 ffprobe: display the codec profile in show_stream()
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-05-26 12:39:11 +02:00
Martin Storsjö
a1a6cdc26e avconv: Display the error returned by avformat_write_header
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 13:35:44 +03:00
Martin Storsjö
68c813081b rtpenc_chain: Return an error code instead of just a plain pointer
Also check the return value in sapenc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 13:35:44 +03:00
Martin Storsjö
93cef6f923 rtpenc_chain: Free the URLContext on failure
If an URLContext is passed in, its ownership is given to this
function, and is either owned by the returned AVFormatContext
on a successful return, or freed on failure.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 13:35:44 +03:00
Martin Storsjö
2dcb21a95d rtpenc: Expose the ssrc as an avoption
This allows the caller to set it, and allows the caller to query
what it was set to.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 13:35:39 +03:00
Stefano Sabatini
36f714f825 tests/lavfi: use do_lavfi_pixfmts for the pixdesctest test
Simplify, and as a side effect extend the number of supported formats, in
particular add a test for pal8.
2012-05-26 12:02:30 +02:00
Stefano Sabatini
52b23cbf1c tests/lavfi: rework lavfi-regression.sh, avoid use of ffmpeg -pix_fmts
Use lavfi-showfiltfmts for checking the format supported by the scale
filter instead. The advantage is that the scale filter may support
formats which are not supported by libswscale (namely: the pal8 format).

The new implementation is also a bit cleaner, because it doesn't depend
on the ffmpeg output.
2012-05-26 10:46:46 +02:00
Michael Niedermayer
72261fa867 swr: fix swr_drop_output()
Fixes part of Ticket1341

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 02:33:38 +02:00
Michael Niedermayer
411689b5e1 af_aresample: fix request_frame()
Fixes part of Ticket1341

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 02:28:40 +02:00
Christian Schmidt
b1d22dc52f avprobe: display the codec profile in show_stream()
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-05-25 16:41:47 -07:00
Luca Barbato
70026be8e5 avprobe: fix function prototype
Make opt_output_format return the correct value.
2012-05-25 16:41:47 -07:00
ami_stuff
ca8623e1a5 Support some BOXX codecs.
Fixes a part of ticket #1352.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-26 00:18:15 +02:00
Martin Storsjö
39e29aa019 cosmetics: Fix indentation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-26 00:34:20 +03:00
Luca Barbato
f4dd6465e9 avprobe: changelog entry 2012-05-25 14:20:34 -07:00
Luca Barbato
6a6c2a94c5 avprobe: update documentation
Update the documentation according to the latest changes
2012-05-25 14:20:34 -07:00
Luca Barbato
0d242a7713 avprobe: provide JSON output
JSON usage is quite widespread.
2012-05-25 14:20:34 -07:00
Luca Barbato
3a8c95f730 avprobe: output proper INI format
Make the output valid INI serialization.
2012-05-25 14:20:34 -07:00
Luca Barbato
beb33fca69 avprobe: improve formatting
Do not use decimals if not needed.
2012-05-25 14:20:34 -07:00
Luca Barbato
c6eeb9b7b6 rtmp: fix url parsing
The application component can have a subcomponent to specify the
application instance even if it doesn't have a ":" in the playpath.
2012-05-25 14:20:34 -07:00
Luca Barbato
b0970a69d1 fate: document TARGET_EXEC and its usage
TARGET_EXEC allows running FATE on simulators, remote targets and
memory checkers. Also document a known issue with Wine and mixed
Unix/Windows line ending.
2012-05-25 14:20:33 -07:00
Michael Niedermayer
c0b47d1914 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  movenc: Don't write the 'wave' atom or its child 'enda' for lpcm audio.
  imc: some cosmetics
  rtmp: Pass the proper return code in rtmp_handshake
  rtmp: Check return codes of net IO operations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-05-25 21:06:14 +02:00
Alex Converse
ed7bdd8647 movenc: Don't write the 'wave' atom or its child 'enda' for lpcm audio.
It's left over from stsd v0. QuickTime 7 no longer writes 'wave' or 'enda'
when 'lpcm' is the audio tag.
2012-05-25 11:24:43 -07:00
Kostya Shishkov
d073f122ea imc: some cosmetics 2012-05-25 20:18:02 +02:00
Marton Balint
7315e40a24 ffplay: force exit when filter configuration fails
Switching to visualization instead of exiting ffplay is a bit more tricky, so
just exit for now.

Fixes ticket 38.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-24 23:48:52 +02:00
Marton Balint
8c9971c35e ffplay: fix stream cycling if audio decoding fails
Fixes ticket 1161.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-24 23:48:52 +02:00
Marton Balint
c2e8691c07 ffplay: flush codec buffers before freeing filters
We do this to ensure that input_get_buffer is not called from a
frame_worker_thread of a multithreaded decoder when we already freed the
filters.

Fixes occasional segfaults on video stream change.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-24 23:48:52 +02:00
Marton Balint
a687acbbf0 ffplay: dont destroy packet queues on stream change
This fixes occasional segfaults caused by lock request of the packet queue from
the reader thread.

Also don't allow to put frames into the queue when it's aborted, and don't try
to fill the queue with frames when it is aborted.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-05-24 23:48:51 +02:00
Samuel Pitoiset
177bcc9593 rtmp: Pass the proper return code in rtmp_handshake
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 22:16:46 +03:00
Samuel Pitoiset
bba287fdac rtmp: Check return codes of net IO operations
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-05-24 22:16:46 +03:00
2080 changed files with 102134 additions and 39477 deletions

96
.gitignore vendored
View File

@@ -1,12 +1,10 @@
.config
.version
*.a
*.o
*.d
*.def
*.dll
*.exe
*.ho
*.h.c
*.lib
*.pc
*.so
@@ -15,50 +13,48 @@
*-example
*-test
*_g
*.def
*.dll
*.lib
*.exp
config.*
doc/*.1
doc/*.html
doc/*.pod
doc/fate.txt
doxy
ffmpeg
ffplay
ffprobe
ffserver
avconv
doc/avoptions_codec.texi
doc/avoptions_format.texi
doc/print_options
doc/examples/decoding_encoding
doc/examples/filtering_audio
doc/examples/filtering_video
doc/examples/metadata
doc/examples/muxing
libavcodec/*_tablegen
libavcodec/*_tables.c
libavcodec/*_tables.h
libavcodec/codec_names.h
libavutil/avconfig.h
tests/audiogen
tests/base64
tests/data
tests/rotozoom
tests/tiny_psnr
tests/videogen
tests/vsynth1
tests/vsynth2
tools/aviocat
tools/cws2fws
tools/ffeval
tools/graph2dot
tools/ismindex
tools/lavfi-showfiltfmts
tools/pktdumper
tools/probetest
tools/qt-faststart
tools/trasher
version.h
/.config
/.version
/ffmpeg
/ffplay
/ffprobe
/ffserver
/config.*
/version.h
/doc/*.1
/doc/*.html
/doc/*.pod
/doc/avoptions_codec.texi
/doc/avoptions_format.texi
/doc/examples/decoding_encoding
/doc/examples/demuxing
/doc/examples/filtering_audio
/doc/examples/filtering_video
/doc/examples/metadata
/doc/examples/muxing
/doc/examples/scaling_video
/doc/fate.txt
/doc/print_options
/doxy/
/libavcodec/*_tablegen
/libavcodec/*_tables.c
/libavcodec/*_tables.h
/libavutil/avconfig.h
/tests/audiogen
/tests/base64
/tests/data/
/tests/rotozoom
/tests/tiny_psnr
/tests/videogen
/tests/vsynth1/
/tools/aviocat
/tools/ffbisect
/tools/bisect.need
/tools/cws2fws
/tools/ffeval
/tools/graph2dot
/tools/ismindex
/tools/pktdumper
/tools/probetest
/tools/qt-faststart
/tools/trasher

View File

@@ -3,19 +3,82 @@ releases are sorted from youngest to oldest.
version next:
version 0.11.2:
- Several bugs and crashes have been fixed as well as build problems
with recent mingw64
version 1.0:
- INI and flat output in ffprobe
- Scene detection in libavfilter
- Indeo Audio decoder
- channelsplit audio filter
- setnsamples audio filter
- atempo filter
- ffprobe -show_data option
- RTMPT protocol support
- iLBC encoding/decoding via libilbc
- Microsoft Screen 1 decoder
- join audio filter
- audio channel mapping filter
- Microsoft ATC Screen decoder
- RTSP listen mode
- TechSmith Screen Codec 2 decoder
- AAC encoding via libfdk-aac
- Microsoft Expression Encoder Screen decoder
- RTMPS protocol support
- RTMPTS protocol support
- RTMPE protocol support
- RTMPTE protocol support
- showwaves and showspectrum filter
- LucasArts SMUSH playback support
- SAMI, RealText and SubViewer demuxers and decoders
- Heart Of Darkness PAF playback support
- iec61883 device
- asettb filter
- new option: -progress
- 3GPP Timed Text encoder/decoder
- GeoTIFF decoder support
- ffmpeg -(no)stdin option
- Opus decoder using libopus
- caca output device using libcaca
- alphaextract and alphamerge filters
- concat filter
- flite filter
- Canopus Lossless Codec decoder
- bitmap subtitles in filters (experimental and temporary)
- MP2 encoding via TwoLAME
- bmp parser
- smptebars source
- asetpts filter
- hue filter
- ICO muxer
- SubRip encoder and decoder without embedded timing
- edge detection filter
- framestep filter
- ffmpeg -shortest option is now per-output file
-pass and -passlogfile are now per-output stream
- volume measurement filter
- Ut Video encoder
- Microsoft Screen 2 decoder
- Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP
instead of AV_CODEC_ID_TEXT
- smartblur filter ported from MPlayer
- CPiA decoder
- decimate filter ported from MPlayer
- RTP depacketization of JPEG
- Smooth Streaming live segmenter muxer
- F4V muxer
- sendcmd and asendcmd filters
- WebVTT demuxer and decoder (simple tags supported)
- RTP packetization of JPEG
- faststart option in the MOV/MP4 muxer
version 0.11:
Fixes:CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777,
CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785,
CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790,
CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795,
CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800,
CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804,
- Fixes: CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777,
CVE-2012-2779, CVE-2012-2782, CVE-2012-2783, CVE-2012-2784, CVE-2012-2785,
CVE-2012-2786, CVE-2012-2787, CVE-2012-2788, CVE-2012-2789, CVE-2012-2790,
CVE-2012-2791, CVE-2012-2792, CVE-2012-2793, CVE-2012-2794, CVE-2012-2795,
CVE-2012-2796, CVE-2012-2797, CVE-2012-2798, CVE-2012-2799, CVE-2012-2800,
CVE-2012-2801, CVE-2012-2802, CVE-2012-2803, CVE-2012-2804,
- v408 Quicktime and Microsoft AYUV Uncompressed 4:4:4:4 encoder and decoder
- setfield filter
- CDXL demuxer and decoder
@@ -46,13 +109,13 @@ Fixes:CVE-2012-2772, CVE-2012-2774, CVE-2012-2775, CVE-2012-2776, CVE-2012-2777,
- accept + prefix to -pix_fmt option to disable automatic conversions.
- complete audio filtering in libavfilter and ffmpeg
- add fps filter
- audio split filter
- vorbis parser
- png parser
- audio mix filter
version 0.10:
- Fixes: CVE-2011-3929, CVE-2011-3934, CVE-2011-3935, CVE-2011-3936,
CVE-2011-3937, CVE-2011-3940, CVE-2011-3941, CVE-2011-3944,
CVE-2011-3945, CVE-2011-3946, CVE-2011-3947, CVE-2011-3949,

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 = 0.11.4
PROJECT_NUMBER = 1.0.9
# With the PROJECT_LOGO tag one can specify an logo or icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -1378,7 +1378,7 @@ PREDEFINED = "__attribute__(x)=" \
"DEF(x)=x ## _TMPL" \
HAVE_AV_CONFIG_H \
HAVE_MMX \
HAVE_MMX2 \
HAVE_MMXEXT \
HAVE_AMD3DNOW \
"DECLARE_ALIGNED(a,t,n)=t n" \
"offsetof(x,y)=0x42"

57
LICENSE
View File

@@ -1,5 +1,4 @@
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
@@ -14,9 +13,27 @@ configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
Specifically, the GPL parts of FFmpeg are
- libpostproc
- libmpcodecs
- optional x86 optimizations in the files
libavcodec/x86/idct_mmx.c
- libutvideo encoding/decoding wrappers in
libavcodec/libutvideo*.cpp
- the X11 grabber in libavdevice/x11grab.c
- the swresample test app in
libswresample/swresample-test.c
- the texi2pod.pl tool
- the following filters in libavfilter:
- vf_blackframe.c
- vf_boxblur.c
- vf_colormatrix.c
- vf_cropdetect.c
- vf_delogo.c
- vf_hqdn3d.c
- vf_mp.c
- vf_super2xsai.c
- vf_tinterlace.c
- vf_yadif.c
- vsrc_mptestsrc.c
There are a handful of files under other licensing terms, namely:
@@ -33,18 +50,32 @@ for you. Read the file COPYING.LGPLv3 or, if you have enabled GPL parts,
COPYING.GPLv3 to learn the exact legal terms that apply in this case.
external libraries:
-------------------
external libraries
==================
Some external libraries, e.g. libx264, are under GPL and can be used in
conjunction with FFmpeg. They require --enable-gpl to be passed to configure
as well.
FFmpeg can be combined with a number of external libraries, which sometimes
affect the licensing of binaries resulting from the combination.
The OpenCORE external libraries are under the Apache License 2.0. That license
is incompatible with the LGPL v2.1 and the GPL v2, but not with version 3 of
those licenses. So to combine the OpenCORE libraries with FFmpeg, the license
version needs to be upgraded by passing --enable-version3 to configure.
compatible libraries
--------------------
The nonfree external libraries libfaac and libaacplus can be hooked up in FFmpeg.
You need to pass --enable-nonfree to configure to enable it. Employ this option
with care as FFmpeg then becomes nonfree and unredistributable.
The libcdio, libx264, libxavs and libxvid libraries are under GPL. When
combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by
passing --enable-gpl to configure.
The OpenCORE and VisualOn libraries are under the Apache License 2.0. That
license is incompatible with the LGPL v2.1 and the GPL v2, but not with
version 3 of those licenses. So to combine these libraries with FFmpeg, the
license version needs to be upgraded by passing --enable-version3 to configure.
incompatible libraries
----------------------
The Fraunhofer AAC library, FAAC and aacplus are under licenses which
are incompatible with the GPLv2 and v3. We do not know for certain if their
licenses are compatible with the LGPL.
If you wish to enable these libraries, pass --enable-nonfree to configure.
But note that if you enable any of these libraries the resulting binary will
be under a complex license mix that is more restrictive than the LGPL and that
may result in additional obligations. It is possible that these
restrictions cause the resulting binary to be unredistributeable.

View File

@@ -132,7 +132,9 @@ Codecs:
celp_filters.* Vitor Sessak
cinepak.c Roberto Togni
cljr Alex Beregszaszi
cllc.c Derek Buitenhuis
cook.c, cookdata.h Benjamin Larsson
cpia.c Stephan Hilb
crystalhd.c Philip Langdale
cscd.c Reimar Doeffinger
dca.c Kostya Shishkov, Benjamin Larsson
@@ -229,6 +231,7 @@ Codecs:
vble.c Derek Buitenhuis
vc1* Kostya Shishkov
vcr1.c Michael Niedermayer
vda_h264_dec.c Xidorn Quan
vmnc.c Kostya Shishkov
vorbis_enc.c Oded Shimon
vorbis_dec.c Denes Balatoni, David Conrad
@@ -263,6 +266,7 @@ libavdevice
libavdevice/avdevice.h
iec61883.c Georg Lippitsch
libdc1394.c Roman Shaposhnik
v4l2.c Luca Abeni
vfwcap.c Ramiro Polla
@@ -271,14 +275,18 @@ libavdevice
libavfilter
===========
Video filters:
Generic parts:
graphdump.c Nicolas George
Filters:
af_amerge.c Nicolas George
af_astreamsync.c Nicolas George
af_atempo.c Pavel Koshevoy
af_pan.c Nicolas George
vsrc_mandelbrot.c Michael Niedermayer
vf_yadif.c Michael Niedermayer
Sources:
vsrc_mandelbrot.c Michael Niedermayer
libavformat
===========
@@ -416,6 +424,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
Daniel Verkamp 78A6 07ED 782C 653E C628 B8B9 F0EB 8DD8 2F0E 21C7
Diego Biurrun 8227 1E31 B6D9 4994 7427 E220 9CAE D6CC 4757 FCC5
Gwenole Beauchesne 2E63 B3A6 3E44 37E2 017D 2704 53C7 6266 B153 99C4
@@ -434,4 +443,5 @@ 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 9A43 10F8 D32C D33C 48E7 C52C 5DF2 8E4D B2EE 066B
Stephan Hilb 4F38 0B3A 5F39 B99B F505 E562 8D5C 5554 4E17 8863
Tomas Härdin D133 29CA 4EEC 9DB4 7076 F697 B04B 7403 3313 41FD

View File

@@ -15,9 +15,10 @@ PROGS-$(CONFIG_FFPLAY) += ffplay
PROGS-$(CONFIG_FFPROBE) += ffprobe
PROGS-$(CONFIG_FFSERVER) += ffserver
PROGS := $(PROGS-yes:%=%$(EXESUF))
PROGS := $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
OBJS = $(PROGS-yes:%=%.o) cmdutils.o
OBJS = cmdutils.o
OBJS-ffmpeg = ffmpeg_opt.o ffmpeg_filter.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
TOOLS = qt-faststart trasher
@@ -51,14 +52,14 @@ FF_DEP_LIBS := $(DEP_LIBS)
all: $(PROGS)
$(PROGS): %$(EXESUF): %$(PROGSSUF)_g$(EXESUF)
$(CP) $< $@$(PROGSSUF)
$(STRIP) $@$(PROGSSUF)
$(PROGS): %$(EXESUF): %_g$(EXESUF)
$(CP) $< $@
$(STRIP) $@
$(TOOLS): %$(EXESUF): %.o
$(LD) $(LDFLAGS) -o $@ $< $(ELIBS)
$(LD) $(LDFLAGS) $(LD_O) $< $(ELIBS)
tools/cws2fws$(EXESUF): ELIBS = -lz
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
config.h: .config
.config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
@@ -68,9 +69,11 @@ config.h: .config
SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ALTIVEC-OBJS ARMV5TE-OBJS ARMV6-OBJS ARMVFP-OBJS MMI-OBJS \
MMX-OBJS NEON-OBJS VIS-OBJS YASM-OBJS \
OBJS TESTOBJS
ARMV5TE-OBJS ARMV6-OBJS ARMVFP-OBJS NEON-OBJS \
MMI-OBJS ALTIVEC-OBJS VIS-OBJS \
MMX-OBJS YASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \
OBJS HOSTOBJS TESTOBJS
define RESET
$(1) :=
@@ -87,12 +90,19 @@ endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
ffplay.o: CFLAGS += $(SDL_CFLAGS)
ffplay_g$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS)
ffserver_g$(EXESUF): LDFLAGS += $(FFSERVERLDFLAGS)
define DOPROG
OBJS-$(1) += $(1).o
$(1)$(PROGSSUF)_g$(EXESUF): $(OBJS-$(1))
$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1))
$(1)$(PROGSSUF)_g$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
$(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1))
-include $$(OBJS-$(1):.o=.d)
endef
$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P))))
%$(PROGSSUF)_g$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS)
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) cmdutils.o $(FF_EXTRALIBS)
OBJDIRS += tools
@@ -149,7 +159,7 @@ clean::
distclean::
$(RM) $(DISTCLEANSUFFIXES)
$(RM) config.* .version version.h libavutil/avconfig.h
$(RM) config.* .version version.h libavutil/avconfig.h libavcodec/codec_names.h
config:
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
@@ -163,7 +173,7 @@ coverage-html: coverage.info
$(Q)genhtml -o $@ $<
$(Q)touch $@
check: all alltools checkheaders examples testprogs fate
check: all alltools examples testprogs fate
include $(SRC_PATH)/doc/Makefile
include $(SRC_PATH)/tests/Makefile

View File

@@ -1 +1 @@
0.11.4
1.0.9

View File

@@ -1 +1 @@
0.11.4
1.0.9

View File

@@ -4,6 +4,10 @@ OBJS-$(HAVE_ARMVFP) += $(ARMVFP-OBJS) $(ARMVFP-OBJS-yes)
OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes)
OBJS-$(HAVE_MMI) += $(MMI-OBJS) $(MMI-OBJS-yes)
OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes)
OBJS-$(HAVE_MIPS32R2) += $(MIPS32R2-OBJS) $(MIPS32R2-OBJS-yes)
OBJS-$(HAVE_MIPSDSPR1) += $(MIPSDSPR1-OBJS) $(MIPSDSPR1-OBJS-yes)
OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes)
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes)

View File

@@ -29,6 +29,7 @@
references to libraries that are not being built. */
#include "config.h"
#include "compat/va_copy.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libavdevice/avdevice.h"
@@ -41,6 +42,7 @@
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/mathematics.h"
#include "libavutil/imgutils.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/eval.h"
@@ -59,17 +61,19 @@ struct SwsContext *sws_opts;
SwrContext *swr_opts;
AVDictionary *format_opts, *codec_opts;
const int this_year = 2013;
const int this_year = 2014;
static FILE *report_file;
void init_opts(void)
{
#if CONFIG_SWSCALE
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC,
if(CONFIG_SWSCALE)
sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC,
NULL, NULL, NULL);
#endif
swr_opts = swr_alloc();
if(CONFIG_SWRESAMPLE)
swr_opts = swr_alloc();
}
void uninit_opts(void)
@@ -78,7 +82,10 @@ void uninit_opts(void)
sws_freeContext(sws_opts);
sws_opts = NULL;
#endif
swr_free(&swr_opts);
if(CONFIG_SWRESAMPLE)
swr_free(&swr_opts);
av_dict_free(&format_opts);
av_dict_free(&codec_opts);
}
@@ -135,8 +142,8 @@ int64_t parse_time_or_die(const char *context, const char *timestr,
return us;
}
void show_help_options(const OptionDef *options, const char *msg, int mask,
int value)
void show_help_options(const OptionDef *options, const char *msg, int req_flags,
int rej_flags, int alt_flags)
{
const OptionDef *po;
int first;
@@ -144,26 +151,33 @@ void show_help_options(const OptionDef *options, const char *msg, int mask,
first = 1;
for (po = options; po->name != NULL; po++) {
char buf[64];
if ((po->flags & mask) == value) {
if (first) {
printf("%s", msg);
first = 0;
}
av_strlcpy(buf, po->name, sizeof(buf));
if (po->flags & HAS_ARG) {
av_strlcat(buf, " ", sizeof(buf));
av_strlcat(buf, po->argname, sizeof(buf));
}
printf("-%-17s %s\n", buf, po->help);
if (((po->flags & req_flags) != req_flags) ||
(alt_flags && !(po->flags & alt_flags)) ||
(po->flags & rej_flags))
continue;
if (first) {
printf("%s\n", msg);
first = 0;
}
av_strlcpy(buf, po->name, sizeof(buf));
if (po->argname) {
av_strlcat(buf, " ", sizeof(buf));
av_strlcat(buf, po->argname, sizeof(buf));
}
printf("-%-17s %s\n", buf, po->help);
}
printf("\n");
}
void show_help_children(const AVClass *class, int flags)
{
const AVClass *child = NULL;
av_opt_show2(&class, NULL, flags, 0);
printf("\n");
if (class->option) {
av_opt_show2(&class, NULL, flags, 0);
printf("\n");
}
while (child = av_opt_child_class_next(class, child))
show_help_children(child, flags);
@@ -184,6 +198,7 @@ static const OptionDef *find_option(const OptionDef *po, const char *name)
#if defined(_WIN32) && !defined(__MINGW32CE__)
#include <windows.h>
#include <shellapi.h>
/* Will be leaked on exit */
static char** win32_argv_utf8 = NULL;
static int win32_argc = 0;
@@ -287,6 +302,7 @@ int parse_option(void *optctx, const char *opt, const char *arg,
if (po->flags & OPT_STRING) {
char *str;
str = av_strdup(arg);
// av_freep(dst);
*(char **)dst = str;
} else if (po->flags & OPT_BOOL) {
*(int *)dst = bool_val;
@@ -301,8 +317,7 @@ int parse_option(void *optctx, const char *opt, const char *arg,
} else if (po->flags & OPT_DOUBLE) {
*(double *)dst = parse_number_or_die(opt, arg, OPT_DOUBLE, -INFINITY, INFINITY);
} else if (po->u.func_arg) {
int ret = po->flags & OPT_FUNC2 ? po->u.func2_arg(optctx, opt, arg)
: po->u.func_arg(opt, arg);
int ret = po->u.func_arg(optctx, opt, arg);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR,
"Failed to set value '%s' for option '%s'\n", arg, opt);
@@ -401,7 +416,7 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options)
if (!idx)
idx = locate_option(argc, argv, options, "v");
if (idx && argv[idx + 1])
opt_loglevel("loglevel", argv[idx + 1]);
opt_loglevel(NULL, "loglevel", argv[idx + 1]);
idx = locate_option(argc, argv, options, "report");
if (idx || getenv("FFREPORT")) {
opt_report("report");
@@ -417,10 +432,10 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options)
}
}
#define FLAGS(o) ((o)->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0
int opt_default(const char *opt, const char *arg)
#define FLAGS (o->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0
int opt_default(void *optctx, const char *opt, const char *arg)
{
const AVOption *oc, *of, *os, *oswr = NULL;
const AVOption *o;
char opt_stripped[128];
const char *p;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(), *sc, *swr_class;
@@ -429,18 +444,18 @@ int opt_default(const char *opt, const char *arg)
p = opt + strlen(opt);
av_strlcpy(opt_stripped, opt, FFMIN(sizeof(opt_stripped), p - opt + 1));
if ((oc = av_opt_find(&cc, opt_stripped, NULL, 0,
if ((o = av_opt_find(&cc, opt_stripped, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) ||
((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') &&
(oc = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ))))
av_dict_set(&codec_opts, opt, arg, FLAGS(oc));
if ((of = av_opt_find(&fc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)))
av_dict_set(&format_opts, opt, arg, FLAGS(of));
(o = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ))))
av_dict_set(&codec_opts, opt, arg, FLAGS);
else if ((o = av_opt_find(&fc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)))
av_dict_set(&format_opts, opt, arg, FLAGS);
#if CONFIG_SWSCALE
sc = sws_get_class();
if ((os = av_opt_find(&sc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
if (!o && (o = av_opt_find(&sc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
// XXX we only support sws_flags, not arbitrary sws options
int ret = av_opt_set(sws_opts, opt, arg, 0);
if (ret < 0) {
@@ -449,23 +464,25 @@ int opt_default(const char *opt, const char *arg)
}
}
#endif
#if CONFIG_SWRESAMPLE
swr_class = swr_get_class();
if (!oc && !of && !os && (oswr = av_opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
if (!o && (o = av_opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
int ret = av_opt_set(swr_opts, opt, arg, 0);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt);
return ret;
}
}
#endif
if (oc || of || os || oswr)
if (o)
return 0;
av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt);
return AVERROR_OPTION_NOT_FOUND;
}
int opt_loglevel(const char *opt, const char *arg)
int opt_loglevel(void *optctx, const char *opt, const char *arg)
{
const struct { const char *name; int level; } log_levels[] = {
{ "quiet" , AV_LOG_QUIET },
@@ -532,7 +549,7 @@ int opt_report(const char *opt)
return 0;
}
int opt_max_alloc(const char *opt, const char *arg)
int opt_max_alloc(void *optctx, const char *opt, const char *arg)
{
char *tail;
size_t max;
@@ -546,7 +563,7 @@ int opt_max_alloc(const char *opt, const char *arg)
return 0;
}
int opt_cpuflags(const char *opt, const char *arg)
int opt_cpuflags(void *optctx, const char *opt, const char *arg)
{
int ret;
unsigned flags = av_get_cpu_flags();
@@ -558,13 +575,13 @@ int opt_cpuflags(const char *opt, const char *arg)
return 0;
}
int opt_codec_debug(const char *opt, const char *arg)
int opt_codec_debug(void *optctx, const char *opt, const char *arg)
{
av_log_set_level(AV_LOG_DEBUG);
return opt_default(opt, arg);
return opt_default(NULL, opt, arg);
}
int opt_timelimit(const char *opt, const char *arg)
int opt_timelimit(void *optctx, const char *opt, const char *arg)
{
#if HAVE_SETRLIMIT
int lim = parse_number_or_die(opt, arg, OPT_INT64, 0, INT_MAX);
@@ -646,8 +663,9 @@ static void print_program_info(int flags, int level)
av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers",
program_birth_year, this_year);
av_log(NULL, level, "\n");
av_log(NULL, level, "%sbuilt on %s %s with %s %s\n",
indent, __DATE__, __TIME__, CC_TYPE, CC_VERSION);
av_log(NULL, level, "%sbuilt on %s %s with %s\n",
indent, __DATE__, __TIME__, CC_IDENT);
av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent);
}
@@ -662,14 +680,16 @@ void show_banner(int argc, char **argv, const OptionDef *options)
print_all_libs_info(INDENT|SHOW_VERSION, AV_LOG_INFO);
}
int opt_version(const char *opt, const char *arg) {
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_all_libs_info(SHOW_VERSION, AV_LOG_INFO);
return 0;
}
int opt_license(const char *opt, const char *arg)
int show_license(void *optctx, const char *opt, const char *arg)
{
printf(
#if CONFIG_NONFREE
@@ -736,10 +756,11 @@ int opt_license(const char *opt, const char *arg)
program_name, program_name, program_name
#endif
);
return 0;
}
int opt_formats(const char *opt, const char *arg)
int show_formats(void *optctx, const char *opt, const char *arg)
{
AVInputFormat *ifmt = NULL;
AVOutputFormat *ofmt = NULL;
@@ -787,82 +808,233 @@ int opt_formats(const char *opt, const char *arg)
return 0;
}
static char get_media_type_char(enum AVMediaType type)
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \
if (codec->field) { \
const type *p = c->field; \
\
printf(" Supported " list_name ":"); \
while (*p != term) { \
get_name(*p); \
printf(" %s", name); \
p++; \
} \
printf("\n"); \
} \
static void print_codec(const AVCodec *c)
{
static const char map[AVMEDIA_TYPE_NB] = {
[AVMEDIA_TYPE_VIDEO] = 'V',
[AVMEDIA_TYPE_AUDIO] = 'A',
[AVMEDIA_TYPE_DATA] = 'D',
[AVMEDIA_TYPE_SUBTITLE] = 'S',
[AVMEDIA_TYPE_ATTACHMENT] = 'T',
};
return type >= 0 && type < AVMEDIA_TYPE_NB && map[type] ? map[type] : '?';
int encoder = av_codec_is_encoder(c);
printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name,
c->long_name ? c->long_name : "");
if (c->type == AVMEDIA_TYPE_VIDEO) {
printf(" Threading capabilities: ");
switch (c->capabilities & (CODEC_CAP_FRAME_THREADS |
CODEC_CAP_SLICE_THREADS)) {
case CODEC_CAP_FRAME_THREADS |
CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break;
case CODEC_CAP_FRAME_THREADS: printf("frame"); break;
case CODEC_CAP_SLICE_THREADS: printf("slice"); break;
default: printf("no"); break;
}
printf("\n");
}
if (c->supported_framerates) {
const AVRational *fps = c->supported_framerates;
printf(" Supported framerates:");
while (fps->num) {
printf(" %d/%d", fps->num, fps->den);
fps++;
}
printf("\n");
}
PRINT_CODEC_SUPPORTED(c, pix_fmts, enum PixelFormat, "pixel formats",
PIX_FMT_NONE, GET_PIX_FMT_NAME);
PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0,
GET_SAMPLE_RATE_NAME);
PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats",
AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME);
PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts",
0, GET_CH_LAYOUT_DESC);
if (c->priv_class) {
show_help_children(c->priv_class,
AV_OPT_FLAG_ENCODING_PARAM |
AV_OPT_FLAG_DECODING_PARAM);
}
}
int opt_codecs(const char *opt, const char *arg)
static char get_media_type_char(enum AVMediaType type)
{
AVCodec *p = NULL, *p2;
const char *last_name;
switch (type) {
case AVMEDIA_TYPE_VIDEO: return 'V';
case AVMEDIA_TYPE_AUDIO: return 'A';
case AVMEDIA_TYPE_DATA: return 'D';
case AVMEDIA_TYPE_SUBTITLE: return 'S';
case AVMEDIA_TYPE_ATTACHMENT:return 'T';
default: return '?';
}
}
static const AVCodec *next_codec_for_id(enum AVCodecID id, const AVCodec *prev,
int encoder)
{
while ((prev = av_codec_next(prev))) {
if (prev->id == id &&
(encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev)))
return prev;
}
return NULL;
}
static int compare_codec_desc(const void *a, const void *b)
{
const AVCodecDescriptor * const *da = a;
const AVCodecDescriptor * const *db = b;
return (*da)->type != (*db)->type ? (*da)->type - (*db)->type :
strcmp((*da)->name, (*db)->name);
}
static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
{
const AVCodecDescriptor *desc = NULL;
const AVCodecDescriptor **codecs;
unsigned nb_codecs = 0, i = 0;
while ((desc = avcodec_descriptor_next(desc)))
nb_codecs++;
if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs)))) {
av_log(0, AV_LOG_ERROR, "Out of memory\n");
exit_program(1);
}
desc = NULL;
while ((desc = avcodec_descriptor_next(desc)))
codecs[i++] = desc;
av_assert0(i == nb_codecs);
qsort(codecs, nb_codecs, sizeof(*codecs), compare_codec_desc);
*rcodecs = codecs;
return nb_codecs;
}
static void print_codecs_for_id(enum AVCodecID id, int encoder)
{
const AVCodec *codec = NULL;
printf(" (%s: ", encoder ? "encoders" : "decoders");
while ((codec = next_codec_for_id(id, codec, encoder)))
printf("%s ", codec->name);
printf(")");
}
int show_codecs(void *optctx, const char *opt, const char *arg)
{
const AVCodecDescriptor **codecs;
unsigned i, nb_codecs = get_codecs_sorted(&codecs);
printf("Codecs:\n"
" D..... = Decoding supported\n"
" .E.... = Encoding supported\n"
" ..V... = Video codec\n"
" ..A... = Audio codec\n"
" ..S... = Subtitle codec\n"
" ...S.. = Supports draw_horiz_band\n"
" ....D. = Supports direct rendering method 1\n"
" .....T = Supports weird frame truncation\n"
" ------\n");
last_name= "000";
for (;;) {
int decode = 0;
int encode = 0;
int cap = 0;
" ...I.. = Intra frame-only codec\n"
" ....L. = Lossy compression\n"
" .....S = Lossless compression\n"
" -------\n");
for (i = 0; i < nb_codecs; i++) {
const AVCodecDescriptor *desc = codecs[i];
const AVCodec *codec = NULL;
p2 = NULL;
while ((p = av_codec_next(p))) {
if ((p2 == NULL || strcmp(p->name, p2->name) < 0) &&
strcmp(p->name, last_name) > 0) {
p2 = p;
decode = encode = cap = 0;
}
if (p2 && strcmp(p->name, p2->name) == 0) {
if (av_codec_is_decoder(p))
decode = 1;
if (av_codec_is_encoder(p))
encode = 1;
cap |= p->capabilities;
printf(" ");
printf(avcodec_find_decoder(desc->id) ? "D" : ".");
printf(avcodec_find_encoder(desc->id) ? "E" : ".");
printf("%c", get_media_type_char(desc->type));
printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : ".");
printf((desc->props & AV_CODEC_PROP_LOSSY) ? "L" : ".");
printf((desc->props & AV_CODEC_PROP_LOSSLESS) ? "S" : ".");
printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : "");
/* print decoders/encoders when there's more than one or their
* names are different from codec name */
while ((codec = next_codec_for_id(desc->id, codec, 0))) {
if (strcmp(codec->name, desc->name)) {
print_codecs_for_id(desc->id, 0);
break;
}
}
codec = NULL;
while ((codec = next_codec_for_id(desc->id, codec, 1))) {
if (strcmp(codec->name, desc->name)) {
print_codecs_for_id(desc->id, 1);
break;
}
}
if (p2 == NULL)
break;
last_name = p2->name;
printf(" %s%s%c%s%s%s %-15s %s",
decode ? "D" : (/* p2->decoder ? "d" : */ " "),
encode ? "E" : " ",
get_media_type_char(p2->type),
cap & CODEC_CAP_DRAW_HORIZ_BAND ? "S" : " ",
cap & CODEC_CAP_DR1 ? "D" : " ",
cap & CODEC_CAP_TRUNCATED ? "T" : " ",
p2->name,
p2->long_name ? p2->long_name : "");
#if 0
if (p2->decoder && decode == 0)
printf(" use %s for decoding", p2->decoder->name);
#endif
printf("\n");
}
printf("\n");
printf("Note, the names of encoders and decoders do not always match, so there are\n"
"several cases where the above table shows encoder only or decoder only entries\n"
"even though both encoding and decoding are supported. For example, the h263\n"
"decoder corresponds to the h263 and h263p encoders, for file formats it is even\n"
"worse.\n");
av_free(codecs);
return 0;
}
int opt_bsfs(const char *opt, const char *arg)
static void print_codecs(int encoder)
{
const AVCodecDescriptor **codecs;
unsigned i, nb_codecs = get_codecs_sorted(&codecs);
printf("%s:\n"
" V..... = Video\n"
" A..... = Audio\n"
" S..... = Subtitle\n"
" .F.... = Frame-level multithreading\n"
" ..S... = Slice-level multithreading\n"
" ...X.. = Codec is experimental\n"
" ....B. = Supports draw_horiz_band\n"
" .....D = Supports direct rendering method 1\n"
" ------\n",
encoder ? "Encoders" : "Decoders");
for (i = 0; i < nb_codecs; i++) {
const AVCodecDescriptor *desc = codecs[i];
const AVCodec *codec = NULL;
while ((codec = next_codec_for_id(desc->id, codec, encoder))) {
printf(" %c", get_media_type_char(desc->type));
printf((codec->capabilities & CODEC_CAP_FRAME_THREADS) ? "F" : ".");
printf((codec->capabilities & CODEC_CAP_SLICE_THREADS) ? "S" : ".");
printf((codec->capabilities & CODEC_CAP_EXPERIMENTAL) ? "X" : ".");
printf((codec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND)?"B" : ".");
printf((codec->capabilities & CODEC_CAP_DR1) ? "D" : ".");
printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : "");
if (strcmp(codec->name, desc->name))
printf(" (codec %s)", desc->name);
printf("\n");
}
}
av_free(codecs);
}
int show_decoders(void *optctx, const char *opt, const char *arg)
{
print_codecs(0);
return 0;
}
int show_encoders(void *optctx, const char *opt, const char *arg)
{
print_codecs(1);
return 0;
}
int show_bsfs(void *optctx, const char *opt, const char *arg)
{
AVBitStreamFilter *bsf = NULL;
@@ -873,7 +1045,7 @@ int opt_bsfs(const char *opt, const char *arg)
return 0;
}
int opt_protocols(const char *opt, const char *arg)
int show_protocols(void *optctx, const char *opt, const char *arg)
{
void *opaque = NULL;
const char *name;
@@ -888,7 +1060,7 @@ int opt_protocols(const char *opt, const char *arg)
return 0;
}
int opt_filters(const char *opt, const char *arg)
int show_filters(void *optctx, const char *opt, const char *arg)
{
AVFilter av_unused(**filter) = NULL;
char descr[64], *descr_cur;
@@ -905,7 +1077,7 @@ int opt_filters(const char *opt, const char *arg)
*(descr_cur++) = '>';
}
pad = i ? (*filter)->outputs : (*filter)->inputs;
for (j = 0; pad[j].name; j++) {
for (j = 0; pad && pad[j].name; j++) {
if (descr_cur >= descr + sizeof(descr) - 4)
break;
*(descr_cur++) = get_media_type_char(pad[j].type);
@@ -920,7 +1092,7 @@ int opt_filters(const char *opt, const char *arg)
return 0;
}
int opt_pix_fmts(const char *opt, const char *arg)
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
{
enum PixelFormat pix_fmt;
@@ -955,7 +1127,36 @@ int opt_pix_fmts(const char *opt, const char *arg)
return 0;
}
int show_sample_fmts(const char *opt, const char *arg)
int show_layouts(void *optctx, const char *opt, const char *arg)
{
int i = 0;
uint64_t layout, j;
const char *name, *descr;
printf("Individual channels:\n"
"NAME DESCRIPTION\n");
for (i = 0; i < 63; i++) {
name = av_get_channel_name((uint64_t)1 << i);
if (!name)
continue;
descr = av_get_channel_description((uint64_t)1 << i);
printf("%-12s%s\n", name, descr);
}
printf("\nStandard channel layouts:\n"
"NAME DECOMPOSITION\n");
for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) {
if (name) {
printf("%-12s", name);
for (j = 1; j; j <<= 1)
if ((layout & j))
printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j));
printf("\n");
}
}
return 0;
}
int show_sample_fmts(void *optctx, const char *opt, const char *arg)
{
int i;
char fmt_str[128];
@@ -964,6 +1165,120 @@ int show_sample_fmts(const char *opt, const char *arg)
return 0;
}
static void show_help_codec(const char *name, int encoder)
{
const AVCodecDescriptor *desc;
const AVCodec *codec;
if (!name) {
av_log(NULL, AV_LOG_ERROR, "No codec name specified.\n");
return;
}
codec = encoder ? avcodec_find_encoder_by_name(name) :
avcodec_find_decoder_by_name(name);
if (codec)
print_codec(codec);
else if ((desc = avcodec_descriptor_get_by_name(name))) {
int printed = 0;
while ((codec = next_codec_for_id(desc->id, codec, encoder))) {
printed = 1;
print_codec(codec);
}
if (!printed) {
av_log(NULL, AV_LOG_ERROR, "Codec '%s' is known to FFmpeg, "
"but no %s for it are available. FFmpeg might need to be "
"recompiled with additional external libraries.\n",
name, encoder ? "encoders" : "decoders");
}
} else {
av_log(NULL, AV_LOG_ERROR, "Codec '%s' is not recognized by FFmpeg.\n",
name);
}
}
static void show_help_demuxer(const char *name)
{
const AVInputFormat *fmt = av_find_input_format(name);
if (!fmt) {
av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name);
return;
}
printf("Demuxer %s [%s]:\n", fmt->name, fmt->long_name);
if (fmt->extensions)
printf(" Common extensions: %s.\n", fmt->extensions);
if (fmt->priv_class)
show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM);
}
static void show_help_muxer(const char *name)
{
const AVCodecDescriptor *desc;
const AVOutputFormat *fmt = av_guess_format(name, NULL, NULL);
if (!fmt) {
av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name);
return;
}
printf("Muxer %s [%s]:\n", fmt->name, fmt->long_name);
if (fmt->extensions)
printf(" Common extensions: %s.\n", fmt->extensions);
if (fmt->mime_type)
printf(" Mime type: %s.\n", fmt->mime_type);
if (fmt->video_codec != AV_CODEC_ID_NONE &&
(desc = avcodec_descriptor_get(fmt->video_codec))) {
printf(" Default video codec: %s.\n", desc->name);
}
if (fmt->audio_codec != AV_CODEC_ID_NONE &&
(desc = avcodec_descriptor_get(fmt->audio_codec))) {
printf(" Default audio codec: %s.\n", desc->name);
}
if (fmt->subtitle_codec != AV_CODEC_ID_NONE &&
(desc = avcodec_descriptor_get(fmt->subtitle_codec))) {
printf(" Default subtitle codec: %s.\n", desc->name);
}
if (fmt->priv_class)
show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM);
}
int show_help(void *optctx, const char *opt, const char *arg)
{
char *topic, *par;
av_log_set_callback(log_callback_help);
topic = av_strdup(arg ? arg : "");
par = strchr(topic, '=');
if (par)
*par++ = 0;
if (!*topic) {
show_help_default(topic, par);
} else if (!strcmp(topic, "decoder")) {
show_help_codec(par, 0);
} else if (!strcmp(topic, "encoder")) {
show_help_codec(par, 1);
} else if (!strcmp(topic, "demuxer")) {
show_help_demuxer(par);
} else if (!strcmp(topic, "muxer")) {
show_help_muxer(par);
} else {
show_help_default(topic, par);
}
av_freep(&topic);
return 0;
}
int read_yesno(void)
{
int c = getchar();
@@ -1064,66 +1379,14 @@ FILE *get_preset_file(char *filename, size_t filename_size,
int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec)
{
if (*spec <= '9' && *spec >= '0') /* opt:index */
return strtol(spec, NULL, 0) == st->index;
else if (*spec == 'v' || *spec == 'a' || *spec == 's' || *spec == 'd' ||
*spec == 't') { /* opt:[vasdt] */
enum AVMediaType type;
switch (*spec++) {
case 'v': type = AVMEDIA_TYPE_VIDEO; break;
case 'a': type = AVMEDIA_TYPE_AUDIO; break;
case 's': type = AVMEDIA_TYPE_SUBTITLE; break;
case 'd': type = AVMEDIA_TYPE_DATA; break;
case 't': type = AVMEDIA_TYPE_ATTACHMENT; break;
default: av_assert0(0);
}
if (type != st->codec->codec_type)
return 0;
if (*spec++ == ':') { /* possibly followed by :index */
int i, index = strtol(spec, NULL, 0);
for (i = 0; i < s->nb_streams; i++)
if (s->streams[i]->codec->codec_type == type && index-- == 0)
return i == st->index;
return 0;
}
return 1;
} else if (*spec == 'p' && *(spec + 1) == ':') {
int prog_id, i, j;
char *endptr;
spec += 2;
prog_id = strtol(spec, &endptr, 0);
for (i = 0; i < s->nb_programs; i++) {
if (s->programs[i]->id != prog_id)
continue;
if (*endptr++ == ':') {
int stream_idx = strtol(endptr, NULL, 0);
return stream_idx >= 0 &&
stream_idx < s->programs[i]->nb_stream_indexes &&
st->index == s->programs[i]->stream_index[stream_idx];
}
for (j = 0; j < s->programs[i]->nb_stream_indexes; j++)
if (st->index == s->programs[i]->stream_index[j])
return 1;
}
return 0;
} else if (*spec == '#') {
int sid;
char *endptr;
sid = strtol(spec + 1, &endptr, 0);
if (!*endptr)
return st->id == sid;
} else if (!*spec) /* empty specifier, matches everything */
return 1;
av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec);
return AVERROR(EINVAL);
int ret = avformat_match_stream_specifier(s, st, spec);
if (ret < 0)
av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec);
return ret;
}
AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec,
AVFormatContext *s, AVStream *st)
AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id,
AVFormatContext *s, AVStream *st, AVCodec *codec)
{
AVDictionary *ret = NULL;
AVDictionaryEntry *t = NULL;
@@ -1132,6 +1395,9 @@ AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec,
char prefix = 0;
const AVClass *cc = avcodec_get_class();
if (!codec)
codec = s->oformat ? avcodec_find_encoder(codec_id)
: avcodec_find_decoder(codec_id);
if (!codec)
return NULL;
@@ -1192,8 +1458,8 @@ AVDictionary **setup_find_stream_info_opts(AVFormatContext *s,
return NULL;
}
for (i = 0; i < s->nb_streams; i++)
opts[i] = filter_codec_opts(codec_opts, avcodec_find_decoder(s->streams[i]->codec->codec_id),
s, s->streams[i]);
opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codec->codec_id,
s, s->streams[i], NULL);
return opts;
}
@@ -1215,3 +1481,149 @@ void *grow_array(void *array, int elem_size, int *size, int new_size)
}
return array;
}
static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbuf)
{
FrameBuffer *buf = av_mallocz(sizeof(*buf));
int i, ret;
const int pixel_size = av_pix_fmt_descriptors[s->pix_fmt].comp[0].step_minus1+1;
int h_chroma_shift, v_chroma_shift;
int edge = 32; // XXX should be avcodec_get_edge_width(), but that fails on svq1
int w = s->width, h = s->height;
if (!buf)
return AVERROR(ENOMEM);
avcodec_align_dimensions(s, &w, &h);
if (!(s->flags & CODEC_FLAG_EMU_EDGE)) {
w += 2*edge;
h += 2*edge;
}
if ((ret = av_image_alloc(buf->base, buf->linesize, w, h,
s->pix_fmt, 32)) < 0) {
av_freep(&buf);
av_log(s, AV_LOG_ERROR, "alloc_buffer: av_image_alloc() failed\n");
return ret;
}
/* XXX this shouldn't be needed, but some tests break without this line
* those decoders are buggy and need to be fixed.
* the following tests fail:
* cdgraphics, ansi, aasc, fraps-v1, qtrle-1bit
*/
memset(buf->base[0], 128, ret);
avcodec_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);
for (i = 0; i < FF_ARRAY_ELEMS(buf->data); i++) {
const int h_shift = i==0 ? 0 : h_chroma_shift;
const int v_shift = i==0 ? 0 : v_chroma_shift;
if ((s->flags & CODEC_FLAG_EMU_EDGE) || !buf->linesize[i] || !buf->base[i])
buf->data[i] = buf->base[i];
else
buf->data[i] = buf->base[i] +
FFALIGN((buf->linesize[i]*edge >> v_shift) +
(pixel_size*edge >> h_shift), 32);
}
buf->w = s->width;
buf->h = s->height;
buf->pix_fmt = s->pix_fmt;
buf->pool = pool;
*pbuf = buf;
return 0;
}
int codec_get_buffer(AVCodecContext *s, AVFrame *frame)
{
FrameBuffer **pool = s->opaque;
FrameBuffer *buf;
int ret, i;
if(av_image_check_size(s->width, s->height, 0, s) || s->pix_fmt<0) {
av_log(s, AV_LOG_ERROR, "codec_get_buffer: image parameters invalid\n");
return -1;
}
if (!*pool && (ret = alloc_buffer(pool, s, pool)) < 0)
return ret;
buf = *pool;
*pool = buf->next;
buf->next = NULL;
if (buf->w != s->width || buf->h != s->height || buf->pix_fmt != s->pix_fmt) {
av_freep(&buf->base[0]);
av_free(buf);
if ((ret = alloc_buffer(pool, s, &buf)) < 0)
return ret;
}
av_assert0(!buf->refcount);
buf->refcount++;
frame->opaque = buf;
frame->type = FF_BUFFER_TYPE_USER;
frame->extended_data = frame->data;
frame->pkt_pts = s->pkt ? s->pkt->pts : AV_NOPTS_VALUE;
frame->width = buf->w;
frame->height = buf->h;
frame->format = buf->pix_fmt;
frame->sample_aspect_ratio = s->sample_aspect_ratio;
for (i = 0; i < FF_ARRAY_ELEMS(buf->data); i++) {
frame->base[i] = buf->base[i]; // XXX h264.c uses base though it shouldn't
frame->data[i] = buf->data[i];
frame->linesize[i] = buf->linesize[i];
}
return 0;
}
static void unref_buffer(FrameBuffer *buf)
{
FrameBuffer **pool = buf->pool;
av_assert0(buf->refcount > 0);
buf->refcount--;
if (!buf->refcount) {
FrameBuffer *tmp;
for(tmp= *pool; tmp; tmp= tmp->next)
av_assert1(tmp != buf);
buf->next = *pool;
*pool = buf;
}
}
void codec_release_buffer(AVCodecContext *s, AVFrame *frame)
{
FrameBuffer *buf = frame->opaque;
int i;
if(frame->type!=FF_BUFFER_TYPE_USER) {
avcodec_default_release_buffer(s, frame);
return;
}
for (i = 0; i < FF_ARRAY_ELEMS(frame->data); i++)
frame->data[i] = NULL;
unref_buffer(buf);
}
void filter_release_buffer(AVFilterBuffer *fb)
{
FrameBuffer *buf = fb->priv;
av_free(fb);
unref_buffer(buf);
}
void free_buffer_pool(FrameBuffer **pool)
{
FrameBuffer *buf = *pool;
while (buf) {
*pool = buf->next;
av_freep(&buf->base[0]);
av_free(buf);
buf = *pool;
}
}

View File

@@ -75,25 +75,25 @@ void log_callback_help(void* ptr, int level, const char* fmt, va_list vl);
* Fallback for options that are not explicitly handled, these will be
* parsed through AVOptions.
*/
int opt_default(const char *opt, const char *arg);
int opt_default(void *optctx, const char *opt, const char *arg);
/**
* Set the libav* libraries log level.
*/
int opt_loglevel(const char *opt, const char *arg);
int opt_loglevel(void *optctx, const char *opt, const char *arg);
int opt_report(const char *opt);
int opt_max_alloc(const char *opt, const char *arg);
int opt_max_alloc(void *optctx, const char *opt, const char *arg);
int opt_cpuflags(const char *opt, const char *arg);
int opt_cpuflags(void *optctx, const char *opt, const char *arg);
int opt_codec_debug(const char *opt, const char *arg);
int opt_codec_debug(void *optctx, const char *opt, const char *arg);
/**
* Limit the execution time.
*/
int opt_timelimit(const char *opt, const char *arg);
int opt_timelimit(void *optctx, const char *opt, const char *arg);
/**
* Parse a string and return its corresponding value as a double.
@@ -148,14 +148,14 @@ typedef struct {
#define OPT_STRING 0x0008
#define OPT_VIDEO 0x0010
#define OPT_AUDIO 0x0020
#define OPT_GRAB 0x0040
#define OPT_INT 0x0080
#define OPT_FLOAT 0x0100
#define OPT_SUBTITLE 0x0200
#define OPT_INT64 0x0400
#define OPT_EXIT 0x0800
#define OPT_DATA 0x1000
#define OPT_FUNC2 0x2000
#define OPT_PERFILE 0x2000 /* the option is per-file (currently ffmpeg-only).
implied by OPT_OFFSET or OPT_SPEC */
#define OPT_OFFSET 0x4000 /* option is specified as an offset in a passed optctx */
#define OPT_SPEC 0x8000 /* option is to be stored in an array of SpecifierOpt.
Implies OPT_OFFSET. Next element after the offset is
@@ -164,16 +164,24 @@ typedef struct {
#define OPT_DOUBLE 0x20000
union {
void *dst_ptr;
int (*func_arg)(const char *, const char *);
int (*func2_arg)(void *, const char *, const char *);
int (*func_arg)(void *, const char *, const char *);
size_t off;
} u;
const char *help;
const char *argname;
} OptionDef;
void show_help_options(const OptionDef *options, const char *msg, int mask,
int value);
/**
* Print help for all options matching specified flags.
*
* @param options a list of options
* @param msg title of this group. Only printed if at least one option matches.
* @param req_flags print only options which have all those flags set.
* @param rej_flags don't print options which have any of those flags set.
* @param alt_flags print only options that have at least one of those flags set
*/
void show_help_options(const OptionDef *options, const char *msg, int req_flags,
int rej_flags, int alt_flags);
/**
* Show help for all options with given flags in class and all its
@@ -181,6 +189,17 @@ void show_help_options(const OptionDef *options, const char *msg, int mask,
*/
void show_help_children(const AVClass *class, int flags);
/**
* Per-fftool specific help handler. Implemented in each
* fftool, called by show_help().
*/
void show_help_default(const char *opt, const char *arg);
/**
* Generic -h handler common to all fftools.
*/
int show_help(void *optctx, const char *opt, const char *arg);
/**
* Parse the command line arguments.
*
@@ -232,10 +251,12 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec);
*
* @param s Corresponding format context.
* @param st A stream from s for which the options should be filtered.
* @param codec The particular codec for which the options should be filtered.
* If null, the default one is looked up according to the codec id.
* @return a pointer to the created dictionary
*/
AVDictionary *filter_codec_opts(AVDictionary *opts, AVCodec *codec,
AVFormatContext *s, AVStream *st);
AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id,
AVFormatContext *s, AVStream *st, AVCodec *codec);
/**
* Setup AVCodecContext options for avformat_find_stream_info().
@@ -275,62 +296,81 @@ void show_banner(int argc, char **argv, const OptionDef *options);
* libraries.
* This option processing function does not utilize the arguments.
*/
int opt_version(const char *opt, const char *arg);
int show_version(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.
* This option processing function does not utilize the arguments.
*/
int opt_license(const char *opt, const char *arg);
int show_license(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the formats supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int opt_formats(const char *opt, const char *arg);
int show_formats(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the codecs supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int opt_codecs(const char *opt, const char *arg);
int show_codecs(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the decoders supported by the
* program.
*/
int show_decoders(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the encoders supported by the
* program.
*/
int show_encoders(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the filters supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int opt_filters(const char *opt, const char *arg);
int show_filters(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the bit stream filters supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int opt_bsfs(const char *opt, const char *arg);
int show_bsfs(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the protocols supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int opt_protocols(const char *opt, const char *arg);
int show_protocols(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the pixel formats supported by the
* program.
* This option processing function does not utilize the arguments.
*/
int opt_pix_fmts(const char *opt, const char *arg);
int show_pix_fmts(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the standard channel layouts supported by
* the program.
* This option processing function does not utilize the arguments.
*/
int show_layouts(void *optctx, const char *opt, const char *arg);
/**
* Print a listing containing all the sample formats supported by the
* program.
*/
int show_sample_fmts(const char *opt, const char *arg);
int show_sample_fmts(void *optctx, const char *opt, const char *arg);
/**
* Return a positive value if a line read from standard input
@@ -374,7 +414,7 @@ FILE *get_preset_file(char *filename, size_t filename_size,
* Do all the necessary cleanup and abort.
* This function is implemented in the avtools, not cmdutils.
*/
void exit_program(int ret);
av_noreturn void exit_program(int ret);
/**
* Realloc array to hold new_size elements of elem_size.
@@ -386,4 +426,65 @@ void exit_program(int ret);
*/
void *grow_array(void *array, int elem_size, int *size, int new_size);
typedef struct FrameBuffer {
uint8_t *base[4];
uint8_t *data[4];
int linesize[4];
int h, w;
enum PixelFormat pix_fmt;
int refcount;
struct FrameBuffer **pool; ///< head of the buffer pool
struct FrameBuffer *next;
} FrameBuffer;
/**
* Get a frame from the pool. This is intended to be used as a callback for
* AVCodecContext.get_buffer.
*
* @param s codec context. s->opaque must be a pointer to the head of the
* buffer pool.
* @param frame frame->opaque will be set to point to the FrameBuffer
* containing the frame data.
*/
int codec_get_buffer(AVCodecContext *s, AVFrame *frame);
/**
* A callback to be used for AVCodecContext.release_buffer along with
* codec_get_buffer().
*/
void codec_release_buffer(AVCodecContext *s, AVFrame *frame);
/**
* A callback to be used for AVFilterBuffer.free.
* @param fb buffer to free. fb->priv must be a pointer to the FrameBuffer
* containing the buffer data.
*/
void filter_release_buffer(AVFilterBuffer *fb);
/**
* Free all the buffers in the pool. This must be called after all the
* buffers have been released.
*/
void free_buffer_pool(FrameBuffer **pool);
#define GET_PIX_FMT_NAME(pix_fmt)\
const char *name = av_get_pix_fmt_name(pix_fmt);
#define GET_SAMPLE_FMT_NAME(sample_fmt)\
const char *name = av_get_sample_fmt_name(sample_fmt)
#define GET_SAMPLE_RATE_NAME(rate)\
char name[16];\
snprintf(name, sizeof(name), "%d", rate);
#define GET_CH_LAYOUT_NAME(ch_layout)\
char name[16];\
snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout);
#define GET_CH_LAYOUT_DESC(ch_layout)\
char name[128];\
av_get_channel_layout_string(name, sizeof(name), 0, ch_layout);
#endif /* CMDUTILS_H */

View File

@@ -1,20 +1,23 @@
{ "L", OPT_EXIT, {(void*)opt_license}, "show license" },
{ "h", OPT_EXIT, {(void*)opt_help}, "show help" },
{ "?", OPT_EXIT, {(void*)opt_help}, "show help" },
{ "help", OPT_EXIT, {(void*)opt_help}, "show help" },
{ "-help", OPT_EXIT, {(void*)opt_help}, "show help" },
{ "version", OPT_EXIT, {(void*)opt_version}, "show version" },
{ "formats" , OPT_EXIT, {(void*)opt_formats }, "show available formats" },
{ "codecs" , OPT_EXIT, {(void*)opt_codecs }, "show available codecs" },
{ "bsfs" , OPT_EXIT, {(void*)opt_bsfs }, "show available bit stream filters" },
{ "protocols", OPT_EXIT, {(void*)opt_protocols}, "show available protocols" },
{ "filters", OPT_EXIT, {(void*)opt_filters }, "show available filters" },
{ "pix_fmts" , OPT_EXIT, {(void*)opt_pix_fmts }, "show available pixel formats" },
{ "L" , OPT_EXIT, {.func_arg = show_license}, "show license" },
{ "h" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" },
{ "?" , OPT_EXIT, {.func_arg = show_help}, "show help", "topic" },
{ "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" },
{ "formats" , OPT_EXIT, {.func_arg = show_formats }, "show available formats" },
{ "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" },
{ "bsfs" , OPT_EXIT, {.func_arg = show_bsfs }, "show available bit stream filters" },
{ "protocols" , OPT_EXIT, {.func_arg = show_protocols}, "show available protocols" },
{ "filters" , OPT_EXIT, {.func_arg = show_filters }, "show available filters" },
{ "pix_fmts" , OPT_EXIT, {.func_arg = show_pix_fmts }, "show available pixel formats" },
{ "layouts" , OPT_EXIT, {.func_arg = show_layouts }, "show standard channel layouts" },
{ "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" },
{ "loglevel", HAS_ARG, {(void*)opt_loglevel}, "set libav* logging level", "loglevel" },
{ "v", HAS_ARG, {(void*)opt_loglevel}, "set libav* logging level", "loglevel" },
{ "debug", HAS_ARG, {(void*)opt_codec_debug}, "set debug flags", "flags" },
{ "fdebug", HAS_ARG, {(void*)opt_codec_debug}, "set debug flags", "flags" },
{ "report", 0, {(void*)opt_report}, "generate a report" },
{ "max_alloc", HAS_ARG, {(void*)opt_max_alloc}, "set maximum size of a single allocated block", "bytes" },
{ "cpuflags", HAS_ARG | OPT_EXPERT, {(void*)opt_cpuflags}, "force specific cpu flags", "flags" },
{ "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" },
{ "v", HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" },
{ "debug" , HAS_ARG, {.func_arg = opt_codec_debug}, "set debug flags", "flags" },
{ "fdebug" , HAS_ARG, {.func_arg = opt_codec_debug}, "set debug flags", "flags" },
{ "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" },

View File

@@ -10,8 +10,9 @@ ifndef SUBDIR
ifndef V
Q = @
ECHO = printf "$(1)\t%s\n" $(2)
BRIEF = CC CXX AS YASM AR LD HOSTCC STRIP CP
SILENT = DEPCC YASMDEP RM RANLIB
BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP
SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
MSG = $@
M = @$(call ECHO,$(TAG),$@);
$(foreach VAR,$(BRIEF), \
@@ -26,15 +27,17 @@ ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscal
IFLAGS := -I. -I$(SRC_PATH)/
CPPFLAGS := $(IFLAGS) $(CPPFLAGS)
CFLAGS += $(ECFLAGS)
CCFLAGS = $(CFLAGS)
CXXFLAGS := $(CFLAGS) $(CXXFLAGS)
YASMFLAGS += $(IFLAGS) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm
HOSTCFLAGS += $(IFLAGS)
LDFLAGS := $(ALLFFLIBS:%=-Llib%) $(LDFLAGS)
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
ASFLAGS := $(CPPFLAGS) $(ASFLAGS)
CXXFLAGS += $(CPPFLAGS) $(CFLAGS)
YASMFLAGS += $(IFLAGS:%=%/) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm
HOSTCCFLAGS = $(IFLAGS) $(HOSTCFLAGS)
LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
define COMPILE
$($(1)DEP)
$($(1)) $(CPPFLAGS) $($(1)FLAGS) $($(1)_DEPFLAGS) -c $($(1)_O) $<
$(call $(1)DEP,$(1))
$($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $<
endef
COMPILE_C = $(call COMPILE,CC)
@@ -53,8 +56,8 @@ COMPILE_S = $(call COMPILE,AS)
%.o: %.S
$(COMPILE_S)
%.ho: %.h
$(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $<
%.h.c:
$(Q)echo '#include "$*.h"' >$@
%.ver: %.v
$(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
@@ -79,7 +82,8 @@ OBJS += $(OBJS-yes)
FFLIBS := $(FFLIBS-yes) $(FFLIBS)
TESTPROGS += $(TESTPROGS-yes)
FFEXTRALIBS := $(FFLIBS:%=-l%$(BUILDSUF)) $(EXTRALIBS)
LDLIBS = $(FFLIBS:%=%$(BUILDSUF))
FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS)
EXAMPLES := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF))
OBJS := $(sort $(OBJS:%=$(SUBDIR)%))
@@ -96,25 +100,31 @@ DEP_LIBS := $(foreach NAME,$(FFLIBS),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME)
ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)
SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)
checkheaders: $(filter-out $(SKIPHEADERS:.h=.ho),$(ALLHEADERS:.h=.ho))
HOBJS = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o))
checkheaders: $(HOBJS)
.SECONDARY: $(HOBJS:.o=.c)
alltools: $(TOOLS)
$(HOSTOBJS): %.o: %.c
$(HOSTCC) $(HOSTCFLAGS) -c -o $@ $<
$(call COMPILE,HOSTCC)
$(HOSTPROGS): %$(HOSTEXESUF): %.o
$(HOSTCC) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS)
$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $< $(HOSTLIBS)
$(OBJS): | $(sort $(dir $(OBJS)))
$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
$(HOBJS): | $(sort $(dir $(HOBJS)))
$(TOOLOBJS): | tools
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS))
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOSTOBJS) $(TESTOBJS) $(HOBJS))
CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver *.gcno *.gcda
CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda
DISTCLEANSUFFIXES = *.pc
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
-include $(wildcard $(OBJS:.o=.d) $(TESTOBJS:.o=.d))
clean::
$(RM) $(OBJS) $(OBJS:.o=.d)
-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d))

85
compat/getopt.c Normal file
View File

@@ -0,0 +1,85 @@
/*
* 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
*/
/*
* This file was copied from the following newsgroup posting:
*
* Newsgroups: mod.std.unix
* Subject: public domain AT&T getopt source
* Date: 3 Nov 85 19:34:15 GMT
*
* Here's something you've all been waiting for: the AT&T public domain
* source for getopt(3). It is the code which was given out at the 1985
* UNIFORUM conference in Dallas. I obtained it by electronic mail
* directly from AT&T. The people there assure me that it is indeed
* in the public domain.
*/
#include <stdio.h>
#include <string.h>
static int opterr = 1;
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;
int c;
char *cp;
if (sp == 1)
if (optind >= argc ||
argv[optind][0] != '-' || argv[optind][1] == '\0')
return EOF;
else if (!strcmp(argv[optind], "--")) {
optind++;
return EOF;
}
optopt = c = argv[optind][sp];
if (c == ':' || (cp = strchr(opts, c)) == NULL) {
fprintf(stderr, ": illegal option -- %c\n", c);
if (argv[optind][++sp] == '\0') {
optind++;
sp = 1;
}
return '?';
}
if (*++cp == ':') {
if (argv[optind][sp+1] != '\0')
optarg = &argv[optind++][sp+1];
else if(++optind >= argc) {
fprintf(stderr, ": option requires an argument -- %c\n", c);
sp = 1;
return '?';
} else
optarg = argv[optind++];
sp = 1;
} else {
if (argv[optind][++sp] == '\0') {
sp = 1;
optind++;
}
optarg = NULL;
}
return c;
}

71
compat/msvcrt/snprintf.c Normal file
View File

@@ -0,0 +1,71 @@
/*
* C99-compatible snprintf() and vsnprintf() implementations
* Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com>
*
* 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 <stdio.h>
#include <stdarg.h>
#include <limits.h>
#include <string.h>
#include "compat/va_copy.h"
#include "libavutil/error.h"
#if defined(__MINGW32__)
#define EOVERFLOW EFBIG
#endif
int avpriv_snprintf(char *s, size_t n, const char *fmt, ...)
{
va_list ap;
int ret;
va_start(ap, fmt);
ret = avpriv_vsnprintf(s, n, fmt, ap);
va_end(ap);
return ret;
}
int avpriv_vsnprintf(char *s, size_t n, const char *fmt,
va_list ap)
{
int ret;
va_list ap_copy;
if (n == 0)
return _vscprintf(fmt, ap);
else if (n > INT_MAX)
return AVERROR(EOVERFLOW);
/* we use n - 1 here because if the buffer is not big enough, the MS
* runtime libraries don't add a terminating zero at the end. MSDN
* recommends to provide _snprintf/_vsnprintf() a buffer size that
* is one less than the actual buffer, and zero it before calling
* _snprintf/_vsnprintf() to workaround this problem.
* See http://msdn.microsoft.com/en-us/library/1kt27hek(v=vs.80).aspx */
memset(s, 0, n);
va_copy(ap_copy, ap);
ret = _vsnprintf(s, n - 1, fmt, ap_copy);
va_end(ap_copy);
if (ret == -1)
ret = _vscprintf(fmt, ap);
return ret;
}

View File

@@ -1,7 +1,6 @@
/*
* ADTS muxer.
* Copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@smartjog.com>
* Mans Rullgard <mans@mansr.com>
* C99-compatible snprintf() and vsnprintf() implementations
* Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com>
*
* This file is part of FFmpeg.
*
@@ -20,26 +19,20 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVFORMAT_ADTS_H
#define AVFORMAT_ADTS_H
#ifndef COMPAT_SNPRINTF_H
#define COMPAT_SNPRINTF_H
#include "avformat.h"
#include "libavcodec/mpeg4audio.h"
#include <stdarg.h>
#include <stdio.h>
#define ADTS_HEADER_SIZE 7
int avpriv_snprintf(char *s, size_t n, const char *fmt, ...);
int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap);
typedef struct {
int write_adts;
int objecttype;
int sample_rate_index;
int channel_conf;
int pce_size;
uint8_t pce_data[MAX_PCE_SIZE];
} ADTSContext;
#undef snprintf
#undef _snprintf
#undef vsnprintf
#define snprintf avpriv_snprintf
#define _snprintf avpriv_snprintf
#define vsnprintf avpriv_vsnprintf
int ff_adts_write_frame_header(ADTSContext *ctx, uint8_t *buf,
int size, int pce_size);
int ff_adts_decode_extradata(AVFormatContext *s, ADTSContext *adts,
uint8_t *buf, int size);
#endif /* AVFORMAT_ADTS_H */
#endif /* COMPAT_SNPRINTF_H */

94
compat/strtod.c Normal file
View File

@@ -0,0 +1,94 @@
/*
* C99-compatible strtod() implementation
* Copyright (c) 2012 Ronald S. Bultje <rsbultje@gmail.com>
*
* 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 <ctype.h>
#include <limits.h>
#include <stdlib.h>
#include "libavutil/avstring.h"
#include "libavutil/mathematics.h"
static char *check_nan_suffix(char *s)
{
char *start = s;
if (*s++ != '(')
return start;
while ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') ||
(*s >= '0' && *s <= '9') || *s == '_')
s++;
return *s == ')' ? s + 1 : start;
}
#undef strtod
double strtod(const char *, char **);
double avpriv_strtod(const char *nptr, char **endptr)
{
char *end;
double res;
/* Skip leading spaces */
while (isspace(*nptr))
nptr++;
if (!av_strncasecmp(nptr, "infinity", 8)) {
end = nptr + 8;
res = INFINITY;
} else if (!av_strncasecmp(nptr, "inf", 3)) {
end = nptr + 3;
res = INFINITY;
} else if (!av_strncasecmp(nptr, "+infinity", 9)) {
end = nptr + 9;
res = INFINITY;
} else if (!av_strncasecmp(nptr, "+inf", 4)) {
end = nptr + 4;
res = INFINITY;
} else if (!av_strncasecmp(nptr, "-infinity", 9)) {
end = nptr + 9;
res = -INFINITY;
} else if (!av_strncasecmp(nptr, "-inf", 4)) {
end = nptr + 4;
res = -INFINITY;
} else if (!av_strncasecmp(nptr, "nan", 3)) {
end = check_nan_suffix(nptr + 3);
res = NAN;
} else if (!av_strncasecmp(nptr, "+nan", 4) ||
!av_strncasecmp(nptr, "-nan", 4)) {
end = check_nan_suffix(nptr + 4);
res = NAN;
} else if (!av_strncasecmp(nptr, "0x", 2) ||
!av_strncasecmp(nptr, "-0x", 3) ||
!av_strncasecmp(nptr, "+0x", 3)) {
/* FIXME this doesn't handle exponents, non-integers (float/double)
* and numbers too large for long long */
res = strtoll(nptr, &end, 16);
} else {
res = strtod(nptr, &end);
}
if (endptr)
*endptr = end;
return res;
}

View File

@@ -1,6 +1,6 @@
/*
* FFT/MDCT transform with 3DNow! optimizations
* Copyright (c) 2008 Loren Merritt
* MSVC Compatible va_copy macro
* Copyright (c) 2012 Derek Buitenhuis
*
* This file is part of FFmpeg.
*
@@ -19,5 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define EMULATE_3DNOWEXT
#include "fft_3dn2.c"
#include <stdarg.h>
#if !defined(va_copy) && defined(_MSC_VER)
#define va_copy(dst, src) ((dst) = (src))
#endif

1558
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ since the last major version increase.
The last version increases were:
libavcodec: 2012-01-27
libavdevice: 2011-04-18
libavfilter: 2011-04-18
libavfilter: 2012-06-22
libavformat: 2012-01-27
libavresample: 2012-04-24
libpostproc: 2011-04-18
@@ -15,6 +15,58 @@ libavutil: 2011-04-18
API changes, most recent first:
2012-09-01 - xxxxxxx - lavu 51.72.100 - parseutils.h
Add av_small_strptime() time parsing function.
Can be used as a stripped-down replacement for strptime(), on
systems which do not support it.
2012-08-13 - xxxxxxx - lavfi 3.8.100 - avfilter.h
Add avfilter_get_class() function, and priv_class field to AVFilter
struct.
2012-08-13 - xxxxxxx - lavu 51.69.100 - opt.h
Add AV_OPT_FLAG_FILTERING_PARAM symbol in opt.h.
2012-07-31 - xxxxxxx - lavc 54.46.100
Add channels field to AVFrame.
2012-07-30 - xxxxxxx - lavu 51.66.100
Add av_get_channel_description()
and av_get_standard_channel_layout() functions.
2012-07-20 - xxxxxxx - lavc 54.43.100
Add decode_error_flags field to AVFrame.
2012-07-20 - xxxxxxx - lavf 54.18.100
Add avformat_match_stream_specifier() function.
2012-07-14 - xxxxxxx - lavc 54.38.100 - avcodec.h
Add metadata to AVFrame, and the accessor functions
av_frame_get_metadata() and av_frame_set_metadata().
2012-07-10 - xxxxxxx - lavc 54.33.100
Add av_fast_padded_mallocz().
2012-07-10 - xxxxxxx - lavfi 3.2.0 - avfilter.h
Add init_opaque() callback to AVFilter struct.
2012-06-26 - xxxxxxx - lavu 51.63.100 - imgutils.h
Add functions to libavutil/imgutils.h:
av_image_get_buffer_size()
av_image_fill_arrays()
av_image_copy_to_buffer()
2012-06-24 - xxxxxxx - lavu 51.62.100 - version.h
version moved from avutil.h to version.h
2012-04-11 - xxxxxxx - lavu 51.58.100 - error.h
Add av_make_error_string() and av_err2str() utilities to
libavutil/error.h.
2012-06-05 - xxxxxxx - lavc 54.24.100
Add pkt_duration field to AVFrame.
2012-05-24 - xxxxxxx - lavu 51.54.100
Move AVPALETTE_SIZE and AVPALETTE_COUNT macros from
libavcodec/avcodec.h to libavutil/pixfmt.h.
@@ -31,6 +83,76 @@ API changes, most recent first:
2012-03-26 - a67d9cf - lavfi 2.66.100
Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.
2012-09-23 - xxxxxxx - lavc 54.28.0 - avcodec.h
Add avcodec_free_frame(). This function must now
be used for freeing an AVFrame.
2012-09-12 - xxxxxxx - lavu 51.41.0 - audioconvert.h
Added AV_CH_LOW_FREQUENCY_2 channel mask value.
2012-09-04 - xxxxxxx - lavu 51.40.0 - opt.h
Reordered the fields in default_val in AVOption, changed which
default_val field is used for which AVOptionType.
2012-xx-xx - xxxxxxx - lavc 54.26.1 - avcodec.h
Add codec descriptor properties AV_CODEC_PROP_LOSSY and
AV_CODEC_PROP_LOSSLESS.
2012-08-18 - lavc 54.26 - avcodec.h
Add codec descriptors for accessing codec properties without having
to refer to a specific decoder or encoder.
f5f3684 / c223d79 - Add an AVCodecDescriptor struct and functions
avcodec_descriptor_get() and avcodec_descriptor_next().
f5f3684 / 51efed1 - Add AVCodecDescriptor.props and AV_CODEC_PROP_INTRA_ONLY.
6c180b3 / 91e59fe - Add avcodec_descriptor_get_by_name().
2012-08-08 - f5f3684 / 987170c - lavu 51.68.100 / 51.38.0 - dict.h
Add av_dict_count().
2012-08-07 - 7a72695 / 104e10f - lavc 54.51.100 / 54.25.0 - avcodec.h
Rename CodecID to AVCodecID and all CODEC_ID_* to AV_CODEC_ID_*.
To provide backwards compatibility, CodecID is now #defined as AVCodecID.
Note that this can break user code that includes avcodec.h and uses the
'CodecID' identifier. Such code should either #undef CodecID or stop using the
CodecID name.
2012-08-03 - e776ee8 / 239fdf1 - lavu 51.66.101 / 51.37.1 - cpu.h
lsws 2.1.1 - swscale.h
Rename AV_CPU_FLAG_MMX2 ---> AV_CPU_FLAG_MMXEXT.
Rename SWS_CPU_CAPS_MMX2 ---> SWS_CPU_CAPS_MMXEXT.
2012-07-29 - 7c26761 / 681ed00 - lavf 54.22.100 / 54.13.0 - avformat.h
Add AVFMT_FLAG_NOBUFFER for low latency use cases.
2012-07-10 - 5fade8a - lavu 51.37.0
Add av_malloc_array() and av_mallocz_array()
2012-06-22 - e847f41 / d3d3a32 - lavu 51.61.100 / 51.34.0
Add av_usleep()
2012-06-20 - 4da42eb / ae0a301 - lavu 51.60.100 / 51.33.0
Move av_gettime() to libavutil, add libavutil/time.h
2012-06-09 - 82edf67 / 3971be0 - lavr 0.0.3
Add a parameter to avresample_build_matrix() for Dolby/DPLII downmixing.
2012-06-12 - c7b9eab / 9baeff9 - lavfi 2.79.100 / 2.23.0 - avfilter.h
Add AVFilterContext.nb_inputs/outputs. Deprecate
AVFilterContext.input/output_count.
2012-06-12 - c7b9eab / 84b9fbe - lavfi 2.79.100 / 2.22.0 - avfilter.h
Add avfilter_pad_get_type() and avfilter_pad_get_name(). Those
should now be used instead of accessing AVFilterPad members
directly.
2012-06-12 - 3630a07 / b0f0dfc - lavu 51.57.100 / 51.32.0 - audioconvert.h
Add av_get_channel_layout_channel_index(), av_get_channel_name()
and av_channel_layout_extract_channel().
2012-05-25 - 53ce990 / 154486f - lavu 51.55.100 / 51.31.0 - opt.h
Add av_opt_set_bin()
2012-05-15 - lavfi 2.74.100 / 2.17.0
Add support for audio filters
61930bd / ac71230, 1cbf7fb / a2cd9be - add video/audio buffer sink in a new installed

View File

@@ -6,19 +6,21 @@ HTMLPAGES = $(PROGS-yes:%=doc/%.html) \
doc/fate.html \
doc/general.html \
doc/git-howto.html \
doc/libavfilter.html \
doc/platform.html \
doc/syntax.html \
TXTPAGES = doc/fate.txt \
DOCS = $(HTMLPAGES) $(MANPAGES) $(PODPAGES)
ifdef HAVE_MAKEINFO
DOCS += $(TXTPAGES)
endif
DOCS-$(CONFIG_HTMLPAGES) += $(HTMLPAGES)
DOCS-$(CONFIG_PODPAGES) += $(PODPAGES)
DOCS-$(CONFIG_MANPAGES) += $(MANPAGES)
DOCS-$(CONFIG_TXTPAGES) += $(TXTPAGES)
DOCS = $(DOCS-yes)
all-$(CONFIG_DOC): documentation
all-$(CONFIG_DOC): doc
doc: documentation
documentation: $(DOCS)
@@ -29,8 +31,6 @@ doc/%.txt: doc/%.texi
$(Q)$(TEXIDEP)
$(M)makeinfo --force --no-headers -o $@ $< 2>/dev/null
doc/print_options.o: libavformat/options_table.h libavcodec/options_table.h
GENTEXI = format codec
GENTEXI := $(GENTEXI:%=doc/avoptions_%.texi)
@@ -46,7 +46,7 @@ doc/%.html: doc/%.texi $(SRC_PATH)/doc/t2h.init $(GENTEXI)
doc/%.pod: TAG = POD
doc/%.pod: doc/%.texi $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)$(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
$(M)perl $(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
doc/%.1: TAG = MAN
doc/%.1: doc/%.pod $(GENTEXI)
@@ -54,11 +54,15 @@ doc/%.1: doc/%.pod $(GENTEXI)
$(DOCS): | doc/
install-man:
ifdef CONFIG_MANPAGES
install-progs-$(CONFIG_DOC): install-man
install-man: $(MANPAGES)
$(Q)mkdir -p "$(MANDIR)/man1"
$(INSTALL) -m 644 $(MANPAGES) "$(MANDIR)/man1"
endif
uninstall: uninstall-man
@@ -70,4 +74,4 @@ clean::
-include $(wildcard $(DOCS:%=%.d))
.PHONY: documentation
.PHONY: doc documentation

View File

@@ -1,7 +1,7 @@
Release Notes
=============
* 0.11 "Happiness" May, 2012
* 1.0 "Angel" September, 2012
General notes

View File

@@ -18,10 +18,10 @@ are used to precisely specify which stream(s) does a given option belong to.
A stream specifier is a string generally appended to the option name and
separated from it by a colon. E.g. @code{-codec:a:1 ac3} option contains
@code{a:1} stream specifer, which matches the second audio stream. Therefore it
@code{a:1} stream specifier, which matches the second audio stream. Therefore it
would select the ac3 codec for the second audio stream.
A stream specifier can match several stream, the option is then applied to all
A stream specifier can match several streams, the option is then applied to all
of them. E.g. the stream specifier in @code{-b:a 128k} matches all audio
streams.
@@ -44,6 +44,7 @@ program with id @var{program_id}. Otherwise matches all streams in this program.
@item #@var{stream_id}
Matches the stream by format-specific ID.
@end table
@section Generic options
These options are shared amongst the av* tools.
@@ -53,8 +54,29 @@ These options are shared amongst the av* tools.
@item -L
Show license.
@item -h, -?, -help, --help
Show help.
@item -h, -?, -help, --help [@var{arg}]
Show help. An optional parameter may be specified to print help about a specific
item.
Possible values of @var{arg} are:
@table @option
@item decoder=@var{decoder_name}
Print detailed information about the decoder named @var{decoder_name}. Use the
@option{-decoders} option to get a list of all decoders.
@item encoder=@var{encoder_name}
Print detailed information about the encoder named @var{encoder_name}. Use the
@option{-encoders} option to get a list of all encoders.
@item demuxer=@var{demuxer_name}
Print detailed information about the demuxer named @var{demuxer_name}. Use the
@option{-formats} option to get a list of all demuxers and muxers.
@item muxer=@var{muxer_name}
Print detailed information about the muxer named @var{muxer_name}. Use the
@option{-formats} option to get a list of all muxers and demuxers.
@end table
@item -version
Show version.
@@ -71,23 +93,16 @@ Encoding available
@end table
@item -codecs
Show available codecs.
Show all codecs known to libavcodec.
The fields preceding the codec names have the following meanings:
@table @samp
@item D
Decoding available
@item E
Encoding available
@item V/A/S
Video/audio/subtitle codec
@item S
Codec supports slices
@item D
Codec supports direct rendering
@item T
Codec can handle input truncated at random locations instead of only at frame boundaries
@end table
Note that the term 'codec' is used throughout this documentation as a shortcut
for what is more correctly called a media bitstream format.
@item -decoders
Show available decoders.
@item -encoders
Show all available encoders.
@item -bsfs
Show available bitstream filters.
@@ -104,6 +119,9 @@ Show available pixel formats.
@item -sample_fmts
Show available sample formats.
@item -layouts
Show channel names and standard channel layouts.
@item -loglevel @var{loglevel} | -v @var{loglevel}
Set the logging level used by the library.
@var{loglevel} is a number or a string containing one of the following values:

View File

@@ -23,8 +23,31 @@ The description of some of the currently available demuxers follows.
Image file demuxer.
This demuxer reads from a list of image files specified by a pattern.
The syntax and meaning of the pattern is specified by the
option @var{pattern_type}.
The pattern may contain the string "%d" or "%0@var{N}d", which
The pattern may contain a suffix which is used to automatically
determine the format of the images contained in the files.
The size, the pixel format, and the format of each image must be the
same for all the files in the sequence.
This demuxer accepts the following options:
@table @option
@item framerate
Set the framerate for the video stream. It defaults to 25.
@item loop
If set to 1, loop over the input. Default value is 0.
@item pattern_type
Select the pattern type used to interpret the provided filename.
@var{pattern_type} accepts one of the following values.
@table @option
@item sequence
Select a sequence pattern type, used to specify a sequence of files
indexed by sequential numbers.
A sequence pattern may contain the string "%d" or "%0@var{N}d", which
specifies the position of the characters representing a sequential
number in each filename matched by the pattern. If the form
"%d0@var{N}d" is used, the string representing the number in each
@@ -32,13 +55,11 @@ filename is 0-padded and @var{N} is the total number of 0-padded
digits representing the number. The literal character '%' can be
specified in the pattern with the string "%%".
If the pattern contains "%d" or "%0@var{N}d", the first filename of
If the sequence pattern contains "%d" or "%0@var{N}d", the first filename of
the file list specified by the pattern must contain a number
inclusively contained between 0 and 4, all the following numbers must
be sequential. This limitation may be hopefully fixed.
The pattern may contain a suffix which is used to automatically
determine the format of the images contained in the files.
inclusively contained between @var{start_number} and
@var{start_number}+@var{start_number_range}-1, and all the following
numbers must be sequential.
For example the pattern "img-%03d.bmp" will match a sequence of
filenames of the form @file{img-001.bmp}, @file{img-002.bmp}, ...,
@@ -46,17 +67,6 @@ filenames of the form @file{img-001.bmp}, @file{img-002.bmp}, ...,
sequence of filenames of the form @file{i%m%g-1.jpg},
@file{i%m%g-2.jpg}, ..., @file{i%m%g-10.jpg}, etc.
The size, the pixel format, and the format of each image must be the
same for all the files in the sequence.
The following example shows how to use @command{ffmpeg} for creating a
video from the images in the file sequence @file{img-001.jpeg},
@file{img-002.jpeg}, ..., assuming an input frame rate of 10 frames per
second:
@example
ffmpeg -i 'img-%03d.jpeg' -r 10 out.mkv
@end example
Note that the pattern must not necessarily contain "%d" or
"%0@var{N}d", for example to convert a single image file
@file{img.jpeg} you can employ the command:
@@ -64,6 +74,75 @@ Note that the pattern must not necessarily contain "%d" or
ffmpeg -i img.jpeg img.png
@end example
@item glob
Select a glob wildcard pattern type.
The pattern is interpreted like a @code{glob()} pattern. This is only
selectable if libavformat was compiled with globbing support.
@item glob_sequence @emph{(deprecated, will be removed)}
Select a mixed glob wildcard/sequence pattern.
If your version of libavformat was compiled with globbing support, and
the provided pattern contains at least one glob meta character among
@code{%*?[]@{@}} that is preceded by an unescaped "%", the pattern is
interpreted like a @code{glob()} pattern, otherwise it is interpreted
like a sequence pattern.
All glob special characters @code{%*?[]@{@}} must be prefixed
with "%". To escape a literal "%" you shall use "%%".
For example the pattern @code{foo-%*.jpeg} will match all the
filenames prefixed by "foo-" and terminating with ".jpeg", and
@code{foo-%?%?%?.jpeg} will match all the filenames prefixed with
"foo-", followed by a sequence of three characters, and terminating
with ".jpeg".
This pattern type is deprecated in favor of @var{glob} and
@var{sequence}.
@end table
Default value is @var{glob_sequence}.
@item pixel_format
Set the pixel format of the images to read. If not specified the pixel
format is guessed from the first image file in the sequence.
@item start_number
Set the index of the file matched by the image file pattern to start
to read from. Default value is 0.
@item start_number_range
Set the index interval range to check when looking for the first image
file in the sequence, starting from @var{start_number}. Default value
is 5.
@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.
@end table
@subsection Examples
@itemize
@item
Use @command{ffmpeg} for creating a video from the images in the file
sequence @file{img-001.jpeg}, @file{img-002.jpeg}, ..., assuming an
input frame rate of 10 frames per second:
@example
ffmpeg -i 'img-%03d.jpeg' -r 10 out.mkv
@end example
@item
As above, but start by reading from a file with index 100 in the sequence:
@example
ffmpeg -start_number 100 -i 'img-%03d.jpeg' -r 10 out.mkv
@end example
@item
Read images matching the "*.png" glob pattern , that is all the files
terminating with the ".png" suffix:
@example
ffmpeg -pattern_type glob -i "*.png" -r 10 out.mkv
@end example
@end itemize
@section applehttp
Apple HTTP Live Streaming demuxer.

View File

@@ -204,8 +204,8 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
(c-add-style "ffmpeg"
'("k&r"
(c-basic-offset . 4)
(indent-tabs-mode nil)
(show-trailing-whitespace t)
(indent-tabs-mode . nil)
(show-trailing-whitespace . t)
(c-offsets-alist
(statement-cont . (c-lineup-assignments +)))
)
@@ -393,7 +393,9 @@ send a reminder by email. Your patch should eventually be dealt with.
@item
Did you register it in @file{allcodecs.c} or @file{allformats.c}?
@item
Did you add the CodecID to @file{avcodec.h}?
Did you add the AVCodecID to @file{avcodec.h}?
When adding new codec IDs, also add an entry to the codec descriptor
list in @file{libavcodec/codec_desc.c}.
@item
If it has a fourCC, did you add it to @file{libavformat/riff.c},
even if it is only a decoder?
@@ -489,6 +491,10 @@ send a reminder by email. Your patch should eventually be dealt with.
Consider to add a regression test for your code.
@item
If you added YASM code please check that things still work with --disable-yasm
@item
Make sure you check the return values of function and return appropriate
error codes. Especially memory allocation functions like @code{av_malloc()}
are notoriously left unchecked, which is a serious problem.
@end enumerate
@section Patch review process
@@ -529,4 +535,16 @@ Running 'make fate' accomplishes this, please see @url{fate.html} for details.
this case, the reference results of the regression tests shall be modified
accordingly].
@subsection Adding files to the fate-suite dataset
When there is no muxer or encoder available to generate test media for a
specific test then the media has to be inlcuded in the fate-suite.
First please make sure that the sample file is as small as possible to test the
respective decoder or demuxer sufficiently. Large files increase network
bandwidth and disk space requirements.
Once you have a working fate test and fate sample, provide in the commit
message or introductionary message for the patch series that you post to
the ffmpeg-devel mailing list, a direct link to download the sample media.
@bye

View File

@@ -478,6 +478,69 @@ default value is 0 (disabled).
@end table
@section libtwolame
TwoLAME MP2 encoder wrapper
Requires the presence of the libtwolame headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libtwolame}.
@subsection Options Mapping
The following options are supported by the libtwolame wrapper. The
TwoLAME-equivalent options follow the FFmpeg ones and are in
parentheses.
@table @option
@item b
(b) Set bitrate in bits/s. Note that FFmpeg @code{b} option is
expressed in bits/s, twolame @code{b} in kilobits/s. The default
value is 128k.
@item q
(V) Set quality for experimental VBR support. Maximum value range is
from -50 to 50, useful range is from -10 to 10.
@item mode
(mode) Set MPEG mode. Possible values:
@table @samp
@item auto
Choose mode automatically based on the input. This is the default.
@item stereo
Stereo
@item joint_stereo
Joint stereo
@item dual_channel
Dual channel
@item mono
Mono
@end table
@item psymodel
(psyc-mode) Set psychoacoustic model to use in encoding. The argument
must be an integer between -1 and 4, inclusive. The higher the value,
the better the quality. The default value is 3.
@item energy_levels
(energy) Enable energy levels extensions when set to 1. The default
value is 0 (disabled).
@item error_protection
(protect) Enable CRC error protection when set to 1. The default value
is 0 (disabled).
@item copyright
(copyright) Set MPEG audio copyright flag when set to 1. The default
value is 0 (disabled).
@item original
(original) Set MPEG audio original flag when set to 1. The default
value is 0 (disabled).
@end table
@section libvo-aacenc
VisualOn AAC encoder
@@ -636,6 +699,12 @@ rc_2pass_vbr_minsection_pct
@item slices
@code{VP8E_SET_TOKEN_PARTITIONS}
@item max-intra-rate
@code{VP8E_SET_MAX_INTRA_BITRATE_PCT}
@item force_key_frames
@code{VPX_EFLAG_FORCE_KF}
@item Alternate reference frame related
@table @option
@item vp8flags altref

View File

@@ -21,30 +21,78 @@ The following unary operators are available: @code{+}, @code{-}.
The following functions are available:
@table @option
@item sinh(x)
Compute hyperbolic sine of @var{x}.
@item cosh(x)
Compute hyperbolic cosine of @var{x}.
@item tanh(x)
Compute hyperbolic tangent of @var{x}.
@item sin(x)
Compute sine of @var{x}.
@item cos(x)
Compute cosine of @var{x}.
@item tan(x)
Compute tangent of @var{x}.
@item atan(x)
Compute arctangent of @var{x}.
@item asin(x)
Compute arcsine of @var{x}.
@item acos(x)
Compute arccosine of @var{x}.
@item exp(x)
Compute exponential of @var{x} (with base @code{e}, the Euler's number).
@item log(x)
Compute natural logarithm of @var{x}.
@item abs(x)
Compute absolute value of @var{x}.
@item squish(x)
Compute expression @code{1/(1 + exp(4*x))}.
@item gauss(x)
Compute Gauss function of @var{x}, corresponding to
@code{exp(-x*x/2) / sqrt(2*PI)}.
@item isinf(x)
Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
@item isnan(x)
Return 1.0 if @var{x} is NAN, 0.0 otherwise.
@item mod(x, y)
Compute the remainder of division of @var{x} by @var{y}.
@item max(x, y)
Return the maximum between @var{x} and @var{y}.
@item min(x, y)
Return the maximum between @var{x} and @var{y}.
@item eq(x, y)
Return 1 if @var{x} and @var{y} are equivalent, 0 otherwise.
@item gte(x, y)
Return 1 if @var{x} is greater than or equal to @var{y}, 0 otherwise.
@item gt(x, y)
Return 1 if @var{x} is greater than @var{y}, 0 otherwise.
@item lte(x, y)
Return 1 if @var{x} is lesser than or equal to @var{y}, 0 otherwise.
@item lt(x, y)
Return 1 if @var{x} is lesser than @var{y}, 0 otherwise.
@item st(var, expr)
Allow to store the value of the expression @var{expr} in an internal
variable. @var{var} specifies the number of the variable where to

View File

@@ -3,20 +3,21 @@ FFMPEG_LIBS= libavdevice \
libavformat \
libavfilter \
libavcodec \
libavresample \
libswresample \
libswscale \
libavutil \
CFLAGS += -Wall -O2 -g
CFLAGS += $(shell pkg-config --cflags $(FFMPEG_LIBS))
LDLIBS += $(shell pkg-config --libs $(FFMPEG_LIBS))
CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS)
LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS)
EXAMPLES= decoding_encoding \
demuxing \
filtering_video \
filtering_audio \
metadata \
muxing \
scaling_video \
OBJS=$(addsuffix .o,$(EXAMPLES))
@@ -24,9 +25,12 @@ OBJS=$(addsuffix .o,$(EXAMPLES))
decoding_encoding: LDLIBS += -lm
muxing: LDLIBS += -lm
.phony: all clean
.phony: all clean-test clean
all: $(OBJS) $(EXAMPLES)
clean:
rm -rf $(EXAMPLES) $(OBJS)
clean-test:
$(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg
clean: clean-test
$(RM) $(EXAMPLES) $(OBJS)

View File

@@ -31,9 +31,11 @@
#include <math.h>
#include <libavutil/imgutils.h>
#include <libavutil/opt.h>
#include <libavcodec/avcodec.h>
#include <libavutil/audioconvert.h>
#include <libavutil/common.h>
#include <libavutil/imgutils.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>
@@ -41,6 +43,59 @@
#define AUDIO_INBUF_SIZE 20480
#define AUDIO_REFILL_THRESH 4096
/* check that a given sample format is supported by the encoder */
static int check_sample_fmt(AVCodec *codec, enum AVSampleFormat sample_fmt)
{
const enum AVSampleFormat *p = codec->sample_fmts;
while (*p != AV_SAMPLE_FMT_NONE) {
if (*p == sample_fmt)
return 1;
p++;
}
return 0;
}
/* just pick the highest supported samplerate */
static int select_sample_rate(AVCodec *codec)
{
const int *p;
int best_samplerate = 0;
if (!codec->supported_samplerates)
return 44100;
p = codec->supported_samplerates;
while (*p) {
best_samplerate = FFMAX(*p, best_samplerate);
p++;
}
return best_samplerate;
}
/* select layout with the highest channel count */
static int select_channel_layout(AVCodec *codec)
{
const uint64_t *p;
uint64_t best_ch_layout = 0;
int best_nb_channells = 0;
if (!codec->channel_layouts)
return AV_CH_LAYOUT_STEREO;
p = codec->channel_layouts;
while (*p) {
int nb_channels = av_get_channel_layout_nb_channels(*p);
if (nb_channels > best_nb_channells) {
best_ch_layout = *p;
best_nb_channells = nb_channels;
}
p++;
}
return best_ch_layout;
}
/*
* Audio encoding example
*/
@@ -48,18 +103,20 @@ static void audio_encode_example(const char *filename)
{
AVCodec *codec;
AVCodecContext *c= NULL;
int frame_size, i, j, out_size, outbuf_size;
AVFrame *frame;
AVPacket pkt;
int i, j, k, ret, got_output;
int buffer_size;
FILE *f;
short *samples;
uint16_t *samples;
float t, tincr;
uint8_t *outbuf;
printf("Encode audio file %s\n", filename);
/* find the MP2 encoder */
codec = avcodec_find_encoder(CODEC_ID_MP2);
codec = avcodec_find_encoder(AV_CODEC_ID_MP2);
if (!codec) {
fprintf(stderr, "codec not found\n");
fprintf(stderr, "Codec not found\n");
exit(1);
}
@@ -67,25 +124,58 @@ static void audio_encode_example(const char *filename)
/* put sample parameters */
c->bit_rate = 64000;
c->sample_rate = 44100;
c->channels = 2;
c->sample_fmt = AV_SAMPLE_FMT_S16;
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
/* check that the encoder supports s16 pcm input */
c->sample_fmt = AV_SAMPLE_FMT_S16;
if (!check_sample_fmt(codec, c->sample_fmt)) {
fprintf(stderr, "Encoder does not support sample format %s",
av_get_sample_fmt_name(c->sample_fmt));
exit(1);
}
/* the codec gives us the frame size, in samples */
frame_size = c->frame_size;
samples = malloc(frame_size * 2 * c->channels);
outbuf_size = 10000;
outbuf = malloc(outbuf_size);
/* select other audio parameters supported by the encoder */
c->sample_rate = select_sample_rate(codec);
c->channel_layout = select_channel_layout(codec);
c->channels = av_get_channel_layout_nb_channels(c->channel_layout);
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "Could not open codec\n");
exit(1);
}
f = fopen(filename, "wb");
if (!f) {
fprintf(stderr, "could not open %s\n", filename);
fprintf(stderr, "Could not open %s\n", filename);
exit(1);
}
/* frame containing input raw audio */
frame = avcodec_alloc_frame();
if (!frame) {
fprintf(stderr, "Could not allocate audio frame\n");
exit(1);
}
frame->nb_samples = c->frame_size;
frame->format = c->sample_fmt;
frame->channel_layout = c->channel_layout;
/* the codec gives us the frame size, in samples,
* 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);
samples = av_malloc(buffer_size);
if (!samples) {
fprintf(stderr, "Could not allocate %d bytes for samples buffer\n",
buffer_size);
exit(1);
}
/* setup the data pointers in the AVFrame */
ret = avcodec_fill_audio_frame(frame, c->channels, c->sample_fmt,
(const uint8_t*)samples, buffer_size, 0);
if (ret < 0) {
fprintf(stderr, "Could not setup audio frame\n");
exit(1);
}
@@ -93,19 +183,46 @@ static void audio_encode_example(const char *filename)
t = 0;
tincr = 2 * M_PI * 440.0 / c->sample_rate;
for(i=0;i<200;i++) {
for(j=0;j<frame_size;j++) {
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
for (j = 0; j < c->frame_size; j++) {
samples[2*j] = (int)(sin(t) * 10000);
samples[2*j+1] = samples[2*j];
for (k = 1; k < c->channels; k++)
samples[2*j + k] = samples[2*j];
t += tincr;
}
/* encode the samples */
out_size = avcodec_encode_audio(c, outbuf, outbuf_size, samples);
fwrite(outbuf, 1, out_size, f);
ret = avcodec_encode_audio2(c, &pkt, frame, &got_output);
if (ret < 0) {
fprintf(stderr, "Error encoding audio frame\n");
exit(1);
}
if (got_output) {
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
}
}
/* get the delayed frames */
for (got_output = 1; got_output; i++) {
ret = avcodec_encode_audio2(c, &pkt, NULL, &got_output);
if (ret < 0) {
fprintf(stderr, "Error encoding frame\n");
exit(1);
}
if (got_output) {
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
}
}
fclose(f);
free(outbuf);
free(samples);
av_freep(&samples);
avcodec_free_frame(&frame);
avcodec_close(c);
av_free(c);
}
@@ -125,12 +242,12 @@ static void audio_decode_example(const char *outfilename, const char *filename)
av_init_packet(&avpkt);
printf("Decode audio file %s\n", filename);
printf("Decode audio file %s to %s\n", filename, outfilename);
/* find the mpeg audio decoder */
codec = avcodec_find_decoder(CODEC_ID_MP2);
codec = avcodec_find_decoder(AV_CODEC_ID_MP2);
if (!codec) {
fprintf(stderr, "codec not found\n");
fprintf(stderr, "Codec not found\n");
exit(1);
}
@@ -138,13 +255,13 @@ static void audio_decode_example(const char *outfilename, const char *filename)
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
fprintf(stderr, "Could not open codec\n");
exit(1);
}
f = fopen(filename, "rb");
if (!f) {
fprintf(stderr, "could not open %s\n", filename);
fprintf(stderr, "Could not open %s\n", filename);
exit(1);
}
outfile = fopen(outfilename, "wb");
@@ -162,7 +279,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
if (!decoded_frame) {
if (!(decoded_frame = avcodec_alloc_frame())) {
fprintf(stderr, "out of memory\n");
fprintf(stderr, "Could not allocate audio frame\n");
exit(1);
}
} else
@@ -203,7 +320,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
avcodec_close(c);
av_free(c);
av_free(decoded_frame);
avcodec_free_frame(&decoded_frame);
}
/*
@@ -213,23 +330,22 @@ static void video_encode_example(const char *filename, int codec_id)
{
AVCodec *codec;
AVCodecContext *c= NULL;
int i, out_size, x, y, outbuf_size;
int i, ret, x, y, got_output;
FILE *f;
AVFrame *picture;
uint8_t *outbuf;
int had_output=0;
AVFrame *frame;
AVPacket pkt;
uint8_t endcode[] = { 0, 0, 1, 0xb7 };
printf("Encode video file %s\n", filename);
/* find the mpeg1 video encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
fprintf(stderr, "Codec not found\n");
exit(1);
}
c = avcodec_alloc_context3(codec);
picture= avcodec_alloc_frame();
/* put sample parameters */
c->bit_rate = 400000;
@@ -242,79 +358,103 @@ static void video_encode_example(const char *filename, int codec_id)
c->max_b_frames=1;
c->pix_fmt = PIX_FMT_YUV420P;
if(codec_id == CODEC_ID_H264)
if(codec_id == AV_CODEC_ID_H264)
av_opt_set(c->priv_data, "preset", "slow", 0);
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
fprintf(stderr, "Could not open codec\n");
exit(1);
}
f = fopen(filename, "wb");
if (!f) {
fprintf(stderr, "could not open %s\n", filename);
fprintf(stderr, "Could not open %s\n", filename);
exit(1);
}
/* alloc image and output buffer */
outbuf_size = 100000 + 12*c->width*c->height;
outbuf = malloc(outbuf_size);
frame = avcodec_alloc_frame();
if (!frame) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
frame->format = c->pix_fmt;
frame->width = c->width;
frame->height = c->height;
/* the image can be allocated by any means and av_image_alloc() is
* just the most convenient way if av_malloc() is to be used */
av_image_alloc(picture->data, picture->linesize,
c->width, c->height, c->pix_fmt, 1);
ret = av_image_alloc(frame->data, frame->linesize, c->width, c->height,
c->pix_fmt, 32);
if (ret < 0) {
fprintf(stderr, "Could not allocate raw picture buffer\n");
exit(1);
}
/* encode 1 second of video */
for(i=0;i<25;i++) {
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
fflush(stdout);
/* prepare a dummy image */
/* Y */
for(y=0;y<c->height;y++) {
for(x=0;x<c->width;x++) {
picture->data[0][y * picture->linesize[0] + x] = x + y + i * 3;
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++) {
picture->data[1][y * picture->linesize[1] + x] = 128 + y + i * 2;
picture->data[2][y * picture->linesize[2] + x] = 64 + x + i * 5;
frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2;
frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5;
}
}
frame->pts = i;
/* encode the image */
out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
had_output |= out_size;
printf("encoding frame %3d (size=%5d)\n", i, out_size);
fwrite(outbuf, 1, out_size, f);
ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
if (ret < 0) {
fprintf(stderr, "Error encoding frame\n");
exit(1);
}
if (got_output) {
printf("Write frame %3d (size=%5d)\n", i, pkt.size);
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
}
}
/* get the delayed frames */
for(; out_size || !had_output; i++) {
for (got_output = 1; got_output; i++) {
fflush(stdout);
out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);
had_output |= out_size;
printf("write frame %3d (size=%5d)\n", i, out_size);
fwrite(outbuf, 1, out_size, f);
ret = avcodec_encode_video2(c, &pkt, NULL, &got_output);
if (ret < 0) {
fprintf(stderr, "Error encoding frame\n");
exit(1);
}
if (got_output) {
printf("Write frame %3d (size=%5d)\n", i, pkt.size);
fwrite(pkt.data, 1, pkt.size, f);
av_free_packet(&pkt);
}
}
/* add sequence end code to have a real mpeg file */
outbuf[0] = 0x00;
outbuf[1] = 0x00;
outbuf[2] = 0x01;
outbuf[3] = 0xb7;
fwrite(outbuf, 1, 4, f);
fwrite(endcode, 1, sizeof(endcode), f);
fclose(f);
free(outbuf);
avcodec_close(c);
av_free(c);
av_free(picture->data[0]);
av_free(picture);
av_freep(&frame->data[0]);
avcodec_free_frame(&frame);
printf("\n");
}
@@ -351,18 +491,16 @@ static void video_decode_example(const char *outfilename, const char *filename)
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);
printf("Decode video file %s\n", filename);
printf("Decode video file %s to %s\n", filename, outfilename);
/* find the mpeg1 video decoder */
codec = avcodec_find_decoder(CODEC_ID_MPEG1VIDEO);
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO);
if (!codec) {
fprintf(stderr, "codec not found\n");
fprintf(stderr, "Codec not found\n");
exit(1);
}
c = avcodec_alloc_context3(codec);
picture= avcodec_alloc_frame();
if(codec->capabilities&CODEC_CAP_TRUNCATED)
c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */
@@ -372,7 +510,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
fprintf(stderr, "Could not open codec\n");
exit(1);
}
@@ -380,7 +518,13 @@ static void video_decode_example(const char *outfilename, const char *filename)
f = fopen(filename, "rb");
if (!f) {
fprintf(stderr, "could not open %s\n", filename);
fprintf(stderr, "Could not open %s\n", filename);
exit(1);
}
picture = avcodec_alloc_frame();
if (!picture) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
@@ -413,7 +557,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
exit(1);
}
if (got_picture) {
printf("saving frame %3d\n", frame);
printf("Saving frame %3d\n", frame);
fflush(stdout);
/* the picture is allocated by the decoder. no need to
@@ -435,7 +579,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
avpkt.size = 0;
len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
if (got_picture) {
printf("saving last frame %3d\n", frame);
printf("Saving last frame %3d\n", frame);
fflush(stdout);
/* the picture is allocated by the decoder. no need to
@@ -450,30 +594,42 @@ static void video_decode_example(const char *outfilename, const char *filename)
avcodec_close(c);
av_free(c);
av_free(picture);
avcodec_free_frame(&picture);
printf("\n");
}
int main(int argc, char **argv)
{
const char *filename;
const char *output_type;
/* register all the codecs */
avcodec_register_all();
if (argc <= 1) {
audio_encode_example("/tmp/test.mp2");
audio_decode_example("/tmp/test.sw", "/tmp/test.mp2");
video_encode_example("/tmp/test.h264", CODEC_ID_H264);
video_encode_example("/tmp/test.mpg", CODEC_ID_MPEG1VIDEO);
filename = "/tmp/test.mpg";
} else {
filename = argv[1];
if (argc < 2) {
printf("usage: %s output_type\n"
"API example program to decode/encode a media stream with libavcodec.\n"
"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",
argv[0]);
return 1;
}
output_type = argv[1];
// audio_decode_example("/tmp/test.sw", filename);
video_decode_example("/tmp/test%d.pgm", filename);
if (!strcmp(output_type, "h264")) {
video_encode_example("test.h264", AV_CODEC_ID_H264);
} else if (!strcmp(output_type, "mp2")) {
audio_encode_example("test.mp2");
audio_decode_example("test.sw", "test.mp2");
} else if (!strcmp(output_type, "mpg")) {
video_encode_example("test.mpg", AV_CODEC_ID_MPEG1VIDEO);
video_decode_example("test%02d.pgm", "test.mpg");
} else {
fprintf(stderr, "Invalid output type '%s', choose between 'h264', 'mp2', or 'mpg'\n",
output_type);
return 1;
}
return 0;
}

339
doc/examples/demuxing.c Normal file
View File

@@ -0,0 +1,339 @@
/*
* Copyright (c) 2012 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 demuxing API use example.
*
* Show how to use the libavformat and libavcodec API to demux and
* decode audio and video data.
*/
#include <libavutil/imgutils.h>
#include <libavutil/samplefmt.h>
#include <libavutil/timestamp.h>
#include <libavformat/avformat.h>
static AVFormatContext *fmt_ctx = NULL;
static AVCodecContext *video_dec_ctx = NULL, *audio_dec_ctx;
static AVStream *video_stream = NULL, *audio_stream = NULL;
static const char *src_filename = NULL;
static const char *video_dst_filename = NULL;
static const char *audio_dst_filename = NULL;
static FILE *video_dst_file = NULL;
static FILE *audio_dst_file = NULL;
static uint8_t *video_dst_data[4] = {NULL};
static int video_dst_linesize[4];
static int video_dst_bufsize;
static uint8_t **audio_dst_data = NULL;
static int audio_dst_linesize;
static int audio_dst_bufsize;
static int video_stream_idx = -1, audio_stream_idx = -1;
static AVFrame *frame = NULL;
static AVPacket pkt;
static int video_frame_count = 0;
static int audio_frame_count = 0;
static int decode_packet(int *got_frame, int cached)
{
int ret = 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");
return ret;
}
if (*got_frame) {
printf("video_frame%s n:%d coded_n:%d pts:%s\n",
cached ? "(cached)" : "",
video_frame_count++, frame->coded_picture_number,
av_ts2timestr(frame->pts, &video_dec_ctx->time_base));
/* copy decoded frame to destination buffer:
* this is required since rawvideo expects non aligned data */
av_image_copy(video_dst_data, video_dst_linesize,
(const uint8_t **)(frame->data), frame->linesize,
video_dec_ctx->pix_fmt, video_dec_ctx->width, video_dec_ctx->height);
/* write to rawvideo file */
fwrite(video_dst_data[0], 1, video_dst_bufsize, video_dst_file);
}
} else if (pkt.stream_index == audio_stream_idx) {
/* decode audio frame */
ret = avcodec_decode_audio4(audio_dec_ctx, frame, got_frame, &pkt);
if (ret < 0) {
fprintf(stderr, "Error decoding audio frame\n");
return ret;
}
if (*got_frame) {
printf("audio_frame%s n:%d nb_samples:%d pts:%s\n",
cached ? "(cached)" : "",
audio_frame_count++, frame->nb_samples,
av_ts2timestr(frame->pts, &audio_dec_ctx->time_base));
ret = av_samples_alloc(audio_dst_data, &audio_dst_linesize, frame->channels,
frame->nb_samples, frame->format, 1);
if (ret < 0) {
fprintf(stderr, "Could not allocate audio buffer\n");
return AVERROR(ENOMEM);
}
/* TODO: extend return code of the av_samples_* functions so that this call is not needed */
audio_dst_bufsize =
av_samples_get_buffer_size(NULL, frame->channels,
frame->nb_samples, frame->format, 1);
/* copy audio data to destination buffer:
* this is required since rawaudio expects non aligned data */
av_samples_copy(audio_dst_data, frame->data, 0, 0,
frame->nb_samples, frame->channels, frame->format);
/* write to rawaudio file */
fwrite(audio_dst_data[0], 1, audio_dst_bufsize, audio_dst_file);
av_freep(&audio_dst_data[0]);
}
}
return ret;
}
static int open_codec_context(int *stream_idx,
AVFormatContext *fmt_ctx, enum AVMediaType type)
{
int ret;
AVStream *st;
AVCodecContext *dec_ctx = NULL;
AVCodec *dec = NULL;
ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
if (ret < 0) {
fprintf(stderr, "Could not find %s stream in input file '%s'\n",
av_get_media_type_string(type), src_filename);
return ret;
} else {
*stream_idx = ret;
st = fmt_ctx->streams[*stream_idx];
/* find decoder for the stream */
dec_ctx = st->codec;
dec = avcodec_find_decoder(dec_ctx->codec_id);
if (!dec) {
fprintf(stderr, "Failed to find %s codec\n",
av_get_media_type_string(type));
return ret;
}
if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) {
fprintf(stderr, "Failed to open %s codec\n",
av_get_media_type_string(type));
return ret;
}
}
return 0;
}
static int get_format_from_sample_fmt(const char **fmt,
enum AVSampleFormat sample_fmt)
{
int i;
struct sample_fmt_entry {
enum AVSampleFormat sample_fmt; const char *fmt_be, *fmt_le;
} sample_fmt_entries[] = {
{ AV_SAMPLE_FMT_U8, "u8", "u8" },
{ AV_SAMPLE_FMT_S16, "s16be", "s16le" },
{ AV_SAMPLE_FMT_S32, "s32be", "s32le" },
{ AV_SAMPLE_FMT_FLT, "f32be", "f32le" },
{ AV_SAMPLE_FMT_DBL, "f64be", "f64le" },
};
*fmt = NULL;
for (i = 0; i < FF_ARRAY_ELEMS(sample_fmt_entries); i++) {
struct sample_fmt_entry *entry = &sample_fmt_entries[i];
if (sample_fmt == entry->sample_fmt) {
*fmt = AV_NE(entry->fmt_be, entry->fmt_le);
return 0;
}
}
fprintf(stderr,
"sample format %s is not supported as output format\n",
av_get_sample_fmt_name(sample_fmt));
return -1;
}
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"
"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"
"\n", argv[0]);
exit(1);
}
src_filename = argv[1];
video_dst_filename = argv[2];
audio_dst_filename = argv[3];
/* register all formats and codecs */
av_register_all();
/* open input file, and allocated format context */
if (avformat_open_input(&fmt_ctx, src_filename, NULL, NULL) < 0) {
fprintf(stderr, "Could not open source file %s\n", src_filename);
exit(1);
}
/* retrieve stream information */
if (avformat_find_stream_info(fmt_ctx, NULL) < 0) {
fprintf(stderr, "Could not find stream information\n");
exit(1);
}
if (open_codec_context(&video_stream_idx, fmt_ctx, AVMEDIA_TYPE_VIDEO) >= 0) {
video_stream = fmt_ctx->streams[video_stream_idx];
video_dec_ctx = video_stream->codec;
video_dst_file = fopen(video_dst_filename, "wb");
if (!video_dst_file) {
fprintf(stderr, "Could not open destination file %s\n", video_dst_filename);
ret = 1;
goto end;
}
/* allocate image where the decoded image will be put */
ret = av_image_alloc(video_dst_data, video_dst_linesize,
video_dec_ctx->width, video_dec_ctx->height,
video_dec_ctx->pix_fmt, 1);
if (ret < 0) {
fprintf(stderr, "Could not allocate raw video buffer\n");
goto end;
}
video_dst_bufsize = ret;
}
/* dump input information to stderr */
av_dump_format(fmt_ctx, 0, src_filename, 0);
if (open_codec_context(&audio_stream_idx, fmt_ctx, AVMEDIA_TYPE_AUDIO) >= 0) {
int nb_planes;
audio_stream = fmt_ctx->streams[audio_stream_idx];
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);
ret = 1;
goto end;
}
nb_planes = av_sample_fmt_is_planar(audio_dec_ctx->sample_fmt) ?
audio_dec_ctx->channels : 1;
audio_dst_data = av_mallocz(sizeof(uint8_t *) * nb_planes);
if (!audio_dst_data) {
fprintf(stderr, "Could not allocate audio data buffers\n");
ret = AVERROR(ENOMEM);
goto end;
}
}
if (!audio_stream && !video_stream) {
fprintf(stderr, "Could not find audio or video stream in the input, aborting\n");
ret = 1;
goto end;
}
frame = avcodec_alloc_frame();
if (!frame) {
fprintf(stderr, "Could not allocate frame\n");
ret = AVERROR(ENOMEM);
goto end;
}
/* initialize packet, set data to NULL, let the demuxer fill it */
av_init_packet(&pkt);
pkt.data = NULL;
pkt.size = 0;
if (video_stream)
printf("Demuxing video from file '%s' into '%s'\n", src_filename, video_dst_filename);
if (audio_stream)
printf("Demuxing video from file '%s' into '%s'\n", src_filename, audio_dst_filename);
/* read frames from the file */
while (av_read_frame(fmt_ctx, &pkt) >= 0)
decode_packet(&got_frame, 0);
/* flush cached frames */
pkt.data = NULL;
pkt.size = 0;
do {
decode_packet(&got_frame, 1);
} while (got_frame);
printf("Demuxing succeeded.\n");
if (video_stream) {
printf("Play the output video file with the command:\n"
"ffplay -f rawvideo -pix_fmt %s -video_size %dx%d %s\n",
av_get_pix_fmt_name(video_dec_ctx->pix_fmt), video_dec_ctx->width, video_dec_ctx->height,
video_dst_filename);
}
if (audio_stream) {
const char *fmt;
if ((ret = get_format_from_sample_fmt(&fmt, audio_dec_ctx->sample_fmt) < 0))
goto end;
printf("Play the output audio file with the command:\n"
"ffplay -f %s -ac %d -ar %d %s\n",
fmt, audio_dec_ctx->channels, audio_dec_ctx->sample_rate,
audio_dst_filename);
}
end:
if (video_dec_ctx)
avcodec_close(video_dec_ctx);
if (audio_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);
av_free(video_dst_data[0]);
av_free(audio_dst_data);
return ret < 0;
}

View File

@@ -84,21 +84,23 @@ static int init_filters(const char *filters_descr)
char args[512];
int ret;
AVFilter *abuffersrc = avfilter_get_by_name("abuffer");
AVFilter *abuffersink = avfilter_get_by_name("abuffersink");
AVFilter *abuffersink = avfilter_get_by_name("ffabuffersink");
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_S16, -1 };
const int64_t *chlayouts = avfilter_all_channel_layouts;
AVABufferSinkParams *abuffersink_params;
const AVFilterLink *outlink;
AVRational time_base = fmt_ctx->streams[audio_stream_index]->time_base;
filter_graph = avfilter_graph_alloc();
/* buffer audio source: the decoded frames from the decoder will be inserted here. */
if (!dec_ctx->channel_layout)
dec_ctx->channel_layout = av_get_default_channel_layout(dec_ctx->channels);
snprintf(args, sizeof(args), "%d:%d:0x%"PRIx64,
dec_ctx->sample_rate, dec_ctx->sample_fmt, dec_ctx->channel_layout);
snprintf(args, sizeof(args),
"time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%"PRIx64,
time_base.num, 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, abuffersrc, "in",
args, NULL, filter_graph);
if (ret < 0) {
@@ -109,7 +111,6 @@ static int init_filters(const char *filters_descr)
/* buffer audio sink: to terminate the filter chain. */
abuffersink_params = av_abuffersink_params_alloc();
abuffersink_params->sample_fmts = sample_fmts;
abuffersink_params->channel_layouts = chlayouts;
ret = avfilter_graph_create_filter(&buffersink_ctx, abuffersink, "out",
NULL, abuffersink_params, filter_graph);
av_free(abuffersink_params);
@@ -194,7 +195,6 @@ int main(int argc, char **argv)
avcodec_get_frame_defaults(&frame);
got_frame = 0;
ret = avcodec_decode_audio4(dec_ctx, &frame, &got_frame, &packet);
av_free_packet(&packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding audio\n");
continue;
@@ -208,15 +208,20 @@ int main(int argc, char **argv)
}
/* pull filtered audio from the filtergraph */
while (avfilter_poll_frame(buffersink_ctx->inputs[0])) {
av_buffersink_get_buffer_ref(buffersink_ctx, &samplesref, 0);
while (1) {
ret = av_buffersink_get_buffer_ref(buffersink_ctx, &samplesref, 0);
if(ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
break;
if(ret < 0)
goto end;
if (samplesref) {
print_samplesref(samplesref);
avfilter_unref_buffer(samplesref);
avfilter_unref_bufferp(&samplesref);
}
}
}
}
av_free_packet(&packet);
}
end:
avfilter_graph_free(&filter_graph);

View File

@@ -34,6 +34,7 @@
#include <libavfilter/avfiltergraph.h>
#include <libavfilter/avcodec.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
const char *filter_descr = "scale=78:24";
@@ -83,17 +84,21 @@ static int init_filters(const char *filters_descr)
char args[512];
int ret;
AVFilter *buffersrc = avfilter_get_by_name("buffer");
AVFilter *buffersink = avfilter_get_by_name("buffersink");
AVFilter *buffersink = avfilter_get_by_name("ffbuffersink");
AVFilterInOut *outputs = avfilter_inout_alloc();
AVFilterInOut *inputs = avfilter_inout_alloc();
enum PixelFormat pix_fmts[] = { PIX_FMT_GRAY8, PIX_FMT_NONE };
AVBufferSinkParams *buffersink_params;
filter_graph = avfilter_graph_alloc();
/* buffer video source: the decoded frames from the decoder will be inserted here. */
snprintf(args, sizeof(args), "%d:%d:%d:%d:%d:%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);
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) {
@@ -102,8 +107,11 @@ static int init_filters(const char *filters_descr)
}
/* 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, pix_fmts, filter_graph);
NULL, buffersink_params, filter_graph);
av_free(buffersink_params);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");
return ret;
@@ -191,7 +199,6 @@ int main(int argc, char **argv)
avcodec_get_frame_defaults(&frame);
got_frame = 0;
ret = avcodec_decode_video2(dec_ctx, &frame, &got_frame, &packet);
av_free_packet(&packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error decoding video\n");
break;
@@ -201,18 +208,27 @@ int main(int argc, char **argv)
frame.pts = av_frame_get_best_effort_timestamp(&frame);
/* push the decoded frame into the filtergraph */
av_vsrc_buffer_add_frame(buffersrc_ctx, &frame, 0);
if (av_buffersrc_add_frame(buffersrc_ctx, &frame, 0) < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n");
break;
}
/* pull filtered pictures from the filtergraph */
while (avfilter_poll_frame(buffersink_ctx->inputs[0])) {
av_buffersink_get_buffer_ref(buffersink_ctx, &picref, 0);
while (1) {
ret = av_buffersink_get_buffer_ref(buffersink_ctx, &picref, 0);
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
break;
if (ret < 0)
goto end;
if (picref) {
display_picref(picref, buffersink_ctx->inputs[0]->time_base);
avfilter_unref_buffer(picref);
avfilter_unref_bufferp(&picref);
}
}
}
}
av_free_packet(&packet);
}
end:
avfilter_graph_free(&filter_graph);

View File

@@ -37,8 +37,6 @@
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#undef exit
/* 5 seconds stream duration */
#define STREAM_DURATION 200.0
#define STREAM_FRAME_RATE 25 /* 25 images/s */
@@ -57,22 +55,22 @@ static int audio_input_frame_size;
/*
* add an audio output stream
*/
static AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id)
static AVStream *add_audio_stream(AVFormatContext *oc, AVCodec **codec,
enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
AVCodec *codec;
/* find the audio encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
*codec = avcodec_find_encoder(codec_id);
if (!(*codec)) {
fprintf(stderr, "Could not find codec\n");
exit(1);
}
st = avformat_new_stream(oc, codec);
st = avformat_new_stream(oc, *codec);
if (!st) {
fprintf(stderr, "Could not alloc stream\n");
fprintf(stderr, "Could not allocate stream\n");
exit(1);
}
st->id = 1;
@@ -92,14 +90,14 @@ static AVStream *add_audio_stream(AVFormatContext *oc, enum CodecID codec_id)
return st;
}
static void open_audio(AVFormatContext *oc, AVStream *st)
static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st)
{
AVCodecContext *c;
c = st->codec;
/* open it */
if (avcodec_open2(c, NULL, NULL) < 0) {
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
exit(1);
}
@@ -165,6 +163,7 @@ static void write_audio_frame(AVFormatContext *oc, AVStream *st)
fprintf(stderr, "Error while writing audio frame\n");
exit(1);
}
avcodec_free_frame(&frame);
}
static void close_audio(AVFormatContext *oc, AVStream *st)
@@ -177,25 +176,26 @@ static void close_audio(AVFormatContext *oc, AVStream *st)
/**************************************************************/
/* video output */
static AVFrame *picture, *tmp_picture;
static AVFrame *frame;
static AVPicture src_picture, dst_picture;
static uint8_t *video_outbuf;
static int frame_count, video_outbuf_size;
/* Add a video output stream. */
static AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id)
static AVStream *add_video_stream(AVFormatContext *oc, AVCodec **codec,
enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
AVCodec *codec;
/* find the video encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
*codec = avcodec_find_encoder(codec_id);
if (!(*codec)) {
fprintf(stderr, "codec not found\n");
exit(1);
}
st = avformat_new_stream(oc, codec);
st = avformat_new_stream(oc, *codec);
if (!st) {
fprintf(stderr, "Could not alloc stream\n");
exit(1);
@@ -203,13 +203,7 @@ static AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id)
c = st->codec;
/* find the video encoder */
codec = avcodec_find_encoder(codec_id);
if (!codec) {
fprintf(stderr, "codec not found\n");
exit(1);
}
avcodec_get_context_defaults3(c, codec);
avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
@@ -226,11 +220,11 @@ static AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id)
c->time_base.num = 1;
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
c->pix_fmt = STREAM_PIX_FMT;
if (c->codec_id == CODEC_ID_MPEG2VIDEO) {
if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
/* just for testing, we also add B frames */
c->max_b_frames = 2;
}
if (c->codec_id == CODEC_ID_MPEG1VIDEO) {
if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
/* Needed to avoid using macroblocks in which some coeffs overflow.
* This does not happen with normal video, it just happens here as
* the motion of the chroma plane does not match the luma plane. */
@@ -243,35 +237,14 @@ static AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id)
return st;
}
static AVFrame *alloc_picture(enum PixelFormat pix_fmt, int width, int height)
static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st)
{
AVFrame *picture;
uint8_t *picture_buf;
int size;
picture = avcodec_alloc_frame();
if (!picture)
return NULL;
size = avpicture_get_size(pix_fmt, width, height);
picture_buf = av_malloc(size);
if (!picture_buf) {
av_free(picture);
return NULL;
}
avpicture_fill((AVPicture *)picture, picture_buf,
pix_fmt, width, height);
return picture;
}
static void open_video(AVFormatContext *oc, AVStream *st)
{
AVCodecContext *c;
c = st->codec;
int ret;
AVCodecContext *c = st->codec;
/* open the codec */
if (avcodec_open2(c, NULL, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "Could not open codec\n");
exit(1);
}
@@ -287,9 +260,16 @@ static void open_video(AVFormatContext *oc, AVStream *st)
video_outbuf = av_malloc(video_outbuf_size);
}
/* allocate and init a re-usable frame */
frame = avcodec_alloc_frame();
if (!frame) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
/* Allocate the encoded raw picture. */
picture = alloc_picture(c->pix_fmt, c->width, c->height);
if (!picture) {
ret = avpicture_alloc(&dst_picture, c->pix_fmt, c->width, c->height);
if (ret < 0) {
fprintf(stderr, "Could not allocate picture\n");
exit(1);
}
@@ -297,18 +277,20 @@ static void open_video(AVFormatContext *oc, AVStream *st)
/* If the output format is not YUV420P, then a temporary YUV420P
* picture is needed too. It is then converted to the required
* output format. */
tmp_picture = NULL;
if (c->pix_fmt != PIX_FMT_YUV420P) {
tmp_picture = alloc_picture(PIX_FMT_YUV420P, c->width, c->height);
if (!tmp_picture) {
ret = avpicture_alloc(&src_picture, PIX_FMT_YUV420P, c->width, c->height);
if (ret < 0) {
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(AVFrame *pict, int frame_index,
static void fill_yuv_image(AVPicture *pict, int frame_index,
int width, int height)
{
int x, y, i;
@@ -331,11 +313,9 @@ static void fill_yuv_image(AVFrame *pict, int frame_index,
static void write_video_frame(AVFormatContext *oc, AVStream *st)
{
int out_size, ret;
AVCodecContext *c;
static struct SwsContext *img_convert_ctx;
c = st->codec;
int ret;
static struct SwsContext *sws_ctx;
AVCodecContext *c = st->codec;
if (frame_count >= STREAM_NB_FRAMES) {
/* No more frames to compress. The codec has a latency of a few
@@ -345,23 +325,22 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
if (c->pix_fmt != PIX_FMT_YUV420P) {
/* as we only generate a YUV420P picture, we must convert it
* to the codec pixel format if needed */
if (img_convert_ctx == NULL) {
img_convert_ctx = sws_getContext(c->width, c->height,
PIX_FMT_YUV420P,
c->width, c->height,
c->pix_fmt,
sws_flags, NULL, NULL, NULL);
if (img_convert_ctx == NULL) {
if (!sws_ctx) {
sws_ctx = sws_getContext(c->width, c->height, PIX_FMT_YUV420P,
c->width, c->height, c->pix_fmt,
sws_flags, NULL, NULL, NULL);
if (!sws_ctx) {
fprintf(stderr,
"Cannot initialize the conversion context\n");
"Could not initialize the conversion context\n");
exit(1);
}
}
fill_yuv_image(tmp_picture, frame_count, c->width, c->height);
sws_scale(img_convert_ctx, tmp_picture->data, tmp_picture->linesize,
0, c->height, picture->data, picture->linesize);
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(picture, frame_count, c->width, c->height);
fill_yuv_image(&dst_picture, frame_count, c->width, c->height);
}
}
@@ -373,19 +352,27 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = (uint8_t *)picture;
pkt.data = dst_picture.data[0];
pkt.size = sizeof(AVPicture);
ret = av_interleaved_write_frame(oc, &pkt);
} else {
/* encode the image */
out_size = avcodec_encode_video(c, video_outbuf,
video_outbuf_size, picture);
/* If size is zero, it means the image was buffered. */
if (out_size > 0) {
AVPacket pkt;
av_init_packet(&pkt);
AVPacket pkt;
int got_output;
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
if (ret < 0) {
fprintf(stderr, "Error encoding video frame\n");
exit(1);
}
/* If size is zero, it means the image was buffered. */
if (got_output) {
if (c->coded_frame->pts != AV_NOPTS_VALUE)
pkt.pts = av_rescale_q(c->coded_frame->pts,
c->time_base, st->time_base);
@@ -393,8 +380,6 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
pkt.data = video_outbuf;
pkt.size = out_size;
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc, &pkt);
@@ -412,12 +397,9 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
static void close_video(AVFormatContext *oc, AVStream *st)
{
avcodec_close(st->codec);
av_free(picture->data[0]);
av_free(picture);
if (tmp_picture) {
av_free(tmp_picture->data[0]);
av_free(tmp_picture);
}
av_free(src_picture.data[0]);
av_free(dst_picture.data[0]);
av_free(frame);
av_free(video_outbuf);
}
@@ -430,6 +412,7 @@ int main(int argc, char **argv)
AVOutputFormat *fmt;
AVFormatContext *oc;
AVStream *audio_st, *video_st;
AVCodec *audio_codec, *video_codec;
double audio_pts, video_pts;
int i;
@@ -462,19 +445,19 @@ int main(int argc, char **argv)
* and initialize the codecs. */
video_st = NULL;
audio_st = NULL;
if (fmt->video_codec != CODEC_ID_NONE) {
video_st = add_video_stream(oc, fmt->video_codec);
if (fmt->video_codec != AV_CODEC_ID_NONE) {
video_st = add_video_stream(oc, &video_codec, fmt->video_codec);
}
if (fmt->audio_codec != CODEC_ID_NONE) {
audio_st = add_audio_stream(oc, fmt->audio_codec);
if (fmt->audio_codec != AV_CODEC_ID_NONE) {
audio_st = add_audio_stream(oc, &audio_codec, fmt->audio_codec);
}
/* 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_st);
open_video(oc, video_codec, video_st);
if (audio_st)
open_audio(oc, audio_st);
open_audio(oc, audio_codec, audio_st);
av_dump_format(oc, 0, filename, 1);
@@ -487,9 +470,12 @@ int main(int argc, char **argv)
}
/* Write the stream header, if any. */
avformat_write_header(oc, NULL);
if (avformat_write_header(oc, NULL) < 0) {
fprintf(stderr, "Error occurred when opening output file\n");
return 1;
}
picture->pts = 0;
frame->pts = 0;
for (;;) {
/* Compute current audio and video time. */
if (audio_st)
@@ -512,7 +498,7 @@ int main(int argc, char **argv)
write_audio_frame(oc, audio_st);
} else {
write_video_frame(oc, video_st);
picture->pts++;
frame->pts++;
}
}

View File

@@ -0,0 +1,142 @@
/*
* Copyright (c) 2012 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
* libswscale API use example.
*/
#include <libavutil/imgutils.h>
#include <libavutil/parseutils.h>
#include <libswscale/swscale.h>
static void fill_yuv_image(uint8_t *data[4], int linesize[4],
int width, int height, int frame_index)
{
int x, y, i;
i = frame_index;
/* Y */
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
data[0][y * linesize[0] + x] = x + y + i * 3;
/* Cb and Cr */
for (y = 0; y < height / 2; y++) {
for (x = 0; x < width / 2; x++) {
data[1][y * linesize[1] + x] = 128 + y + i * 2;
data[2][y * linesize[2] + x] = 64 + x + i * 5;
}
}
}
int main(int argc, char **argv)
{
uint8_t *src_data[4], *dst_data[4];
int src_linesize[4], dst_linesize[4];
int src_w = 320, src_h = 240, dst_w, dst_h;
enum PixelFormat src_pix_fmt = PIX_FMT_YUV420P, dst_pix_fmt = PIX_FMT_RGB24;
const char *dst_size = NULL;
const char *dst_filename = NULL;
FILE *dst_file;
int dst_bufsize;
struct SwsContext *sws_ctx;
int i, ret;
if (argc != 3) {
fprintf(stderr, "Usage: %s output_file output_size\n"
"API example program to show how to scale an image with libswscale.\n"
"This program generates a series of pictures, rescales them to the given "
"output_size and saves them to an output file named output_file\n."
"\n", argv[0]);
exit(1);
}
dst_filename = argv[1];
dst_size = argv[2];
if (av_parse_video_size(&dst_w, &dst_h, dst_size) < 0) {
fprintf(stderr,
"Invalid size '%s', must be in the form WxH or a valid size abbreviation\n",
dst_size);
exit(1);
}
dst_file = fopen(dst_filename, "wb");
if (!dst_file) {
fprintf(stderr, "Could not open destination file %s\n", dst_filename);
exit(1);
}
/* create scaling context */
sws_ctx = sws_getContext(src_w, src_h, src_pix_fmt,
dst_w, dst_h, dst_pix_fmt,
SWS_BILINEAR, NULL, NULL, NULL);
if (!sws_ctx) {
fprintf(stderr,
"Impossible to create scale context for the conversion "
"fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n",
av_get_pix_fmt_name(src_pix_fmt), src_w, src_h,
av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h);
ret = AVERROR(EINVAL);
goto end;
}
/* allocate source and destination image buffers */
if ((ret = av_image_alloc(src_data, src_linesize,
src_w, src_h, src_pix_fmt, 16)) < 0) {
fprintf(stderr, "Could not allocate source image\n");
goto end;
}
/* buffer is going to be written to rawvideo file, no alignmnet */
if ((ret = av_image_alloc(dst_data, dst_linesize,
dst_w, dst_h, dst_pix_fmt, 1)) < 0) {
fprintf(stderr, "Could not allocate destination image\n");
goto end;
}
dst_bufsize = ret;
for (i = 0; i < 100; i++) {
/* generate synthetic video */
fill_yuv_image(src_data, src_linesize, src_w, src_h, i);
/* convert to destination format */
sws_scale(sws_ctx, (const uint8_t * const*)src_data,
src_linesize, 0, src_h, dst_data, dst_linesize);
/* write scaled image to file */
fwrite(dst_data[0], 1, dst_bufsize, dst_file);
}
fprintf(stderr, "Scaling succeeded. Play the output file with the command:\n"
"ffplay -f rawvideo -pix_fmt %s -video_size %dx%d %s\n",
av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h, dst_filename);
end:
if (dst_file)
fclose(dst_file);
av_freep(&src_data[0]);
av_freep(&dst_data[0]);
sws_freeContext(sws_ctx);
return ret < 0;
}

View File

@@ -213,8 +213,56 @@ For ANY other help on Avisynth, please visit the
@section How can I join video files?
A few multimedia containers (MPEG-1, MPEG-2 PS, DV) allow to join video files by
merely concatenating them.
To "join" video files is quite ambiguous. The following list explains the
different kinds of "joining" and points out how those are addressed in
FFmpeg. To join video files may mean:
@itemize
@item
To put them one after the other: this is called to @emph{concatenate} them
(in short: concat) and is addressed
@ref{How can I concatenate video files, in this very faq}.
@item
To put them together in the same file, to let the user choose between the
different versions (example: different audio languages): this is called to
@emph{multiplex} them together (in short: mux), and is done by simply
invoking ffmpeg with several @option{-i} options.
@item
For audio, to put all channels together in a single stream (example: two
mono streams into one stereo stream): this is sometimes called to
@emph{merge} them, and can be done using the
@url{http://ffmpeg.org/ffmpeg.html#amerge, @code{amerge}} filter.
@item
For audio, to play one on top of the other: this is called to @emph{mix}
them, and can be done by first merging them into a single stream and then
using the @url{http://ffmpeg.org/ffmpeg.html#pan, @code{pan}} filter to mix
the channels at will.
@item
For video, to display both together, side by side or one on top of a part of
the other; it can be done using the
@url{http://ffmpeg.org/ffmpeg.html#overlay, @code{overlay}} video filter.
@end itemize
@anchor{How can I concatenate video files}
@section How can I concatenate video files?
There are several solutions, depending on the exact circumstances.
@subsection Concatenating using filters
FFmpeg has a @url{http://ffmpeg.org/ffmpeg.html#concat-1, @code{concat}}
filter designed specifically for that, with examples in the documentation.
@subsection Concatenating at the file level
A few multimedia containers (MPEG-1, MPEG-2 PS, DV) allow to concatenate
video by merely concatenating the files them.
Hence you may concatenate your multimedia files by first transcoding them to
these privileged formats, then using the humble @code{cat} command (or the
@@ -222,28 +270,38 @@ equally humble @code{copy} under Windows), and finally transcoding back to your
format of choice.
@example
ffmpeg -i input1.avi -same_quant intermediate1.mpg
ffmpeg -i input2.avi -same_quant intermediate2.mpg
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -same_quant output.avi
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
@end example
Notice that you should either use @code{-same_quant} or set a reasonably high
bitrate for your intermediate and output files, if you want to preserve
video quality.
Additionally, you can use the @code{concat} protocol instead of @code{cat} or
@code{copy} which will avoid creation of a potentially huge intermediate file.
Also notice that you may avoid the huge intermediate files by taking advantage
of named pipes, should your platform support it:
@example
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
@end example
Note that you may need to escape the character "|" which is special for many
shells.
Another option is usage of named pipes, should your platform support it:
@example
mkfifo intermediate1.mpg
mkfifo intermediate2.mpg
ffmpeg -i input1.avi -same_quant -y intermediate1.mpg < /dev/null &
ffmpeg -i input2.avi -same_quant -y intermediate2.mpg < /dev/null &
ffmpeg -i input1.avi -qscale:v 1 -y intermediate1.mpg < /dev/null &
ffmpeg -i input2.avi -qscale:v 1 -y intermediate2.mpg < /dev/null &
cat intermediate1.mpg intermediate2.mpg |\
ffmpeg -f mpeg -i - -same_quant -c:v mpeg4 -acodec libmp3lame output.avi
ffmpeg -f mpeg -i - -qscale:v 2 -c:v mpeg4 -acodec libmp3lame -q:a 4 output.avi
@end example
@subsection Concatenating using raw audio and video
Similarly, the yuv4mpegpipe format, and the raw video, raw audio codecs also
allow concatenation, and the transcoding step is almost lossless.
When using multiple yuv4mpegpipe(s), the first line needs to be discarded
@@ -251,7 +309,8 @@ from all but the first stream. This can be accomplished by piping through
@code{tail} as seen below. Note that when piping through @code{tail} you
must use command grouping, @code{@{ ;@}}, to background properly.
For example, let's say we want to join two FLV files into an output.flv file:
For example, let's say we want to concatenate two FLV files into an
output.flv file:
@example
mkfifo temp1.a
@@ -268,7 +327,7 @@ cat temp1.a temp2.a > all.a &
cat temp1.v temp2.v > all.v &
ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
-f yuv4mpegpipe -i all.v \
-same_quant -y output.flv
-qscale:v 2 -y output.flv
rm temp[12].[av] all.[av]
@end example
@@ -310,11 +369,34 @@ specifying the exact format.
aconvert=s16:stereo:packed
@end example
@section Why does FFmpeg not see the subtitles in my VOB file?
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.
Some applications, including the @code{ffmpeg} command-line tool, can only
work with streams that were detected during the initial scan; streams that
are detected later are ignored.
The size of the initial scan is controlled by two options: @code{probesize}
(default ~5 Mo) and @code{analyzeduration} (default 5,000,000 µs = 5 s). For
the subtitle stream to be detected, both values must be large enough.
@chapter Development
@section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat?
Yes. Read the Developers Guide of the FFmpeg documentation. Alternatively,
Yes. Check the @file{doc/examples} directory in the source
repository, also available online at:
@url{https://github.com/FFmpeg/FFmpeg/tree/master/doc/examples}.
Examples are also installed by default, usually in
@code{$PREFIX/share/ffmpeg/examples}.
Also you may read the Developers Guide of the FFmpeg documentation. Alternatively,
examine the source code for one of the many open source projects that
already incorporate FFmpeg at (@url{projects.html}).
@@ -375,6 +457,24 @@ Yes, as long as the code is optional and can easily and cleanly be placed
under #if CONFIG_GPL without breaking anything. So, for example, a new codec
or filter would be OK under GPL while a bug fix to LGPL code would not.
@section I'm using FFmpeg from within my C application but the linker complains about missing symbols from the libraries themselves.
FFmpeg builds static libraries by default. In static libraries, dependencies
are not handled. That has two consequences. First, you must specify the
libraries in dependency order: @code{-lavdevice} must come before
@code{-lavformat}, @code{-lavutil} must come after everything else, etc.
Second, external libraries that are used in FFmpeg have to be specified too.
An easy way to get the full list of required libraries in dependency order
is to use @code{pkg-config}.
@example
c99 -o program program.c $(pkg-config --cflags --libs libavformat libavcodec)
@end example
See @file{doc/example/Makefile} and @file{doc/example/pc-uninstalled} for
more details.
@section I'm using FFmpeg from within my C++ application but the linker complains about missing symbols which seem to be available.
FFmpeg is a pure C project, so to use the libraries within your C++ application

View File

@@ -1,8 +1,8 @@
\input texinfo @c -*- texinfo -*-
@settitle FATE Automated Testing Environment
@settitle FFmpeg Automated Testing Environment
@titlepage
@center @titlefont{FATE Automated Testing Environment}
@center @titlefont{FFmpeg Automated Testing Environment}
@end titlepage
@node Top
@@ -78,11 +78,14 @@ Do not put a '~' character in the samples path to indicate a home
directory. Because of shell nuances, this will cause FATE to fail.
@end float
To use a custom wrapper to run the test, pass @option{--target-exec} to
@command{configure} or set the @var{TARGET_EXEC} Make variable.
@chapter Submitting the results to the FFmpeg result aggregation server
To submit your results to the server you should run fate through the
shell script tests/fate.sh from the FFmpeg sources. This script needs
shell script @file{tests/fate.sh} from the FFmpeg sources. This script needs
to be invoked with a configuration file as its first argument.
@example
@@ -118,8 +121,9 @@ present in $workdir as specified in the configuration file:
@item version
@end itemize
When you have everything working properly you can create an SSH key and
send its public part to the FATE server administrator.
When you have everything working properly you can create an SSH key pair
and send the public key to the FATE server administrator who can be contacted
at the email address @email{fate-admin@@ffmpeg.org}.
Configure your SSH client to use public key authentication with that key
when connecting to the FATE server. Also do not forget to check the identity
@@ -129,6 +133,11 @@ The FATE server's fingerprint is:
b1:31:c8:79:3f:04:1d:f8:f2:23:26:5a:fd:55:fa:92
If you have problems connecting to the FATE server, it may help to try out
the @command{ssh} command with one or more @option{-v} options. You should
get detailed output concerning your SSH configuration and the authentication
process.
The only thing left is to automate the execution of the fate.sh script and
the synchronisation of the samples directory.
@@ -166,11 +175,20 @@ the synchronisation of the samples directory.
@item THREADS
Specify how many threads to use while running regression tests, it is
quite useful to detect thread-related regressions.
@item THREAD_TYPE
Specify which threading strategy test, either @var{slice} or @var{frame},
by default @var{slice+frame}
@item CPUFLAGS
Specify CPU flags.
@item TARGET_EXEC
Specify or override the wrapper used to run the tests.
The @var{TARGET_EXEC} option provides a way to run FATE wrapped in
@command{valgrind}, @command{qemu-user} or @command{wine} or on remote targets
through @command{ssh}.
@end table
Example:
@section Examples
@example
make V=1 SAMPLES=/var/fate/samples THREADS=2 CPUFLAGS=mmx fate
@end example

View File

@@ -79,6 +79,126 @@ The format option may be needed for raw input files.
@c man end DESCRIPTION
@chapter Detailed description
@c man begin DETAILED DESCRIPTION
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 |
|_______| |______________| |_________| |______________| |________|
@end example
@command{ffmpeg} calls the libavformat library (containing demuxers) to read
input files and get packets containing encoded data from them. When there are
multiple input files, @command{ffmpeg} tries to keep them synchronized by
tracking lowest timestamp on any active input stream.
Encoded packets are then passed to the decoder (unless streamcopy is selected
for the stream, see further for a description). The decoder produces
uncompressed frames (raw video/PCM audio/...) which can be processed further by
filtering (see next section). After filtering the frames are passed to the
encoder, which encodes them and outputs encoded packets again. Finally those are
passed to the muxer, which writes the encoded packets to the output file.
@section Filtering
Before encoding, @command{ffmpeg} can process raw audio and video frames using
filters from the libavfilter library. Several chained filters form a filter
graph. @command{ffmpeg} distinguishes between two types of filtergraphs -
simple and complex.
@subsection Simple filtergraphs
Simple filtergraphs are those that have exactly one input and output, both of
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 |
|_________| |__________| |______________|
@end example
Simple filtergraphs are configured with the per-stream @option{-filter} option
(with @option{-vf} and @option{-af} aliases for video and audio respectively).
A simple filtergraph for video can look for example like this:
@example
_______ _____________ _______ _____ ________
| | | | | | | | | |
| input | ---> | deinterlace | ---> | scale | ---> | fps | ---> | output |
|_______| |_____________| |_______| |_____| |________|
@end example
Note that some filters change frame properties but not frame contents. E.g. the
@code{fps} filter in the example above changes number of frames, but does not
touch the frame contents. Another example is the @code{setpts} filter, which
only sets timestamps and otherwise passes the frames unchanged.
@subsection Complex filtergraphs
Complex filtergraphs are those which cannot be described as simply a linear
processing chain applied to one stream. This is the case e.g. when the graph has
more than one input and/or output, or when output stream type is different from
input. They can be represented with the following diagram:
@example
_________
| |
| input 0 |\ __________
|_________| \ | |
\ _________ /| output 0 |
\ | | / |__________|
_________ \| complex | /
| | | |/
| input 1 |---->| filter |\
|_________| | | \ __________
/| graph | \ | |
/ | | \| output 1 |
_________ / |_________| |__________|
| | /
| input 2 |/
|_________|
@end example
Complex filtergraphs are configured with the @option{-filter_complex} option.
Note that this option is global, since a complex filtergraph by its nature
cannot be unambiguously associated with a single stream or file.
A trivial example of a complex filtergraph is the @code{overlay} filter, which
has two video inputs and one video output, containing one video overlaid on top
of the other. Its audio counterpart is the @code{amix} filter.
@section Stream copy
Stream copy is a mode selected by supplying the @code{copy} parameter to the
@option{-codec} option. It makes @command{ffmpeg} omit the decoding and encoding
step for the specified stream, so it does only demuxing and muxing. It is useful
for changing the container format or modifying container-level metadata. The
diagram above will in this case simplify to this:
@example
_______ ______________ ________
| | | | | |
| input | demuxer | encoded data | muxer | output |
| file | ---------> | packets | -------> | file |
|_______| |______________| |________|
@end example
Since there is no decoding or encoding, it is very fast and there is no quality
loss. However it might not work in some cases because of many factors. Applying
filters is obviously also impossible, since filters work on uncompressed data.
@c man end DETAILED DESCRIPTION
@chapter Stream selection
@c man begin STREAM SELECTION
@@ -233,6 +353,24 @@ Specify the preset for matching stream(s).
@item -stats (@emph{global})
Print encoding progress/statistics. On by default.
@item -progress @var{url} (@emph{global})
Send program-friendly progress information to @var{url}.
Progress information is written approximately every second and at the end of
the encoding process. It is made of "@var{key}=@var{value}" lines. @var{key}
consists of only alphanumeric characters. The last key of a sequence of
progress information is always "progress".
@item -stdin
Enable interaction on standard input. On by default unless standard input is
used as an input. To explicitly disable interaction you need to specify
@code{-nostdin}.
Disabling interaction on standard input is useful, for example, if
ffmpeg is in the background process group. Roughly the same result can
be achieved with @code{ffmpeg ... < /dev/null} but it requires a
shell.
@item -debug_ts (@emph{global})
Print timestamp information. It is off by default. This option is
mostly useful for testing and debugging purposes, and the output
@@ -282,10 +420,27 @@ attachments.
@item -vframes @var{number} (@emph{output})
Set the number of video frames to record. This is an alias for @code{-frames:v}.
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
Set frame rate (Hz value, fraction or abbreviation), (default = 25). For output
streams implies @code{-vsync cfr}.
Set frame rate (Hz value, fraction or abbreviation).
As an input option, ignore any timestamps stored in the file and instead
generate timestamps assuming constant frame rate @var{fps}.
As an output option, duplicate or drop input frames to achieve constant output
frame rate @var{fps} (note that this actually causes the @code{fps} filter to be
inserted to the end of the corresponding filtergraph).
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
Set frame size. The format is @samp{wxh} (default - same as source).
Set frame size.
As an input option, this is a shortcut for the @option{video_size} private
option, recognized by some demuxers for which the frame size is either not
stored in the file or is configurable -- e.g. raw video or video grabbers.
As an output option, this inserts the @code{scale} video filter to the
@emph{end} of the corresponding filtergraph. Please use the @code{scale} filter
directly to insert it at the beginning or some other place.
The format is @samp{wxh} (default - same as source).
@item -aspect[:@var{stream_specifier}] @var{aspect} (@emph{output,per-stream})
Set the video display aspect ratio specified by @var{aspect}.
@@ -321,7 +476,7 @@ Use same quantizer as source (implies VBR).
Note that this is NOT SAME QUALITY. Do not use this option unless you know you
need it.
@item -pass @var{n}
@item -pass[:@var{stream_specifier}] @var{n} (@emph{output,per-stream})
Select the pass number (1 or 2). It is used to do two-pass
video encoding. The statistics of the video are recorded in the first
pass into a log file (see also the option -passlogfile),
@@ -334,16 +489,12 @@ ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
@end example
@item -passlogfile @var{prefix} (@emph{global})
@item -passlogfile[:@var{stream_specifier}] @var{prefix} (@emph{output,per-stream})
Set two-pass log file name prefix to @var{prefix}, the default file name
prefix is ``ffmpeg2pass''. The complete file name will be
@file{PREFIX-N.log}, where N is a number specific to the output
stream
Note that this option is overwritten by a local option of the same name
when using @code{-vcodec libx264}. That option maps to the x264 option stats
which has a different syntax.
@item -vlang @var{code}
Set the ISO 639 language code (3 letters) of the current video stream.
@@ -471,11 +622,23 @@ Disable subtitle recording.
Deprecated, see -bsf
@end table
@section Audio/Video grab options
@section Advanced Subtitle options:
@table @option
@item -isync (@emph{global})
Synchronize read on input.
@item -fix_sub_duration
Fix subtitles durations. For each subtitle, wait for the next packet in the
same stream and adjust the duration of the first to avoid overlap. This is
necessary with some subtitles codecs, especially DVB subtitles, because the
duration in the original packet is only a rough estimate and the end is
actually marked by an empty subtitle frame. Failing to use this option when
necessary can result in exaggerated durations or muxing failures due to
non-monotonic timestamps.
Note that this option will delay the output of all data until the next
subtitle packet is decoded: it may increase memory consumption and latency a
lot.
@end table
@section Advanced options
@@ -589,10 +752,7 @@ filter. For example, if you need to merge a media (here @file{input.mkv}) with 2
mono audio streams into one single stereo channel audio stream (and keep the
video stream), you can use the following command:
@example
ffmpeg -i input.mkv -f lavfi -i "
amovie=input.mkv:si=1 [a1];
amovie=input.mkv:si=2 [a2];
[a1][a2] amerge" -c:a pcm_s16le -c:v copy output.mkv
ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
@end example
@item -map_metadata[:@var{metadata_spec_out}] @var{infile}[:@var{metadata_spec_in}] (@emph{output,per-metadata})
@@ -690,6 +850,13 @@ Dump each input packet to stderr.
When dumping packets, also dump the payload.
@item -re (@emph{input})
Read input at native frame rate. Mainly used to simulate a grab device.
By default @command{ffmpeg} attempts to read the input(s) as fast as possible.
This option will slow down the reading of the input(s) to the native frame rate
of the input(s). It is useful for real-time output (e.g. live streaming). If
your input(s) is coming from some other live streaming source (through HTTP or
UDP for example) the server might already be in real-time, thus the option will
likely not be required. On the other hand, this is meaningful if your input(s)
is a file you are trying to push in real-time.
@item -loop_input
Loop over the input stream. Currently it works only for image
streams. This option is used for automatic FFserver testing.
@@ -756,7 +923,7 @@ Try to make the choice automatically, in order to generate a sane output.
Default value is -1.
@item -shortest
@item -shortest (@emph{output})
Finish encoding when the shortest input stream ends.
@item -dts_delta_threshold
Timestamp discontinuity delta threshold.
@@ -812,6 +979,9 @@ the matching type.
Output link labels are referred to with @option{-map}. Unlabeled outputs are
added to the first output file.
Note that with this option it is possible to use only lavfi sources without
normal input files.
For example, to overlay an image over video
@example
ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
@@ -834,8 +1004,29 @@ graph will be added to the output file automatically, so we can simply write
@example
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
@end example
To generate 5 seconds of pure red video using lavfi @code{color} source:
@example
ffmpeg -filter_complex 'color=red' -t 5 out.mkv
@end example
@end table
As a special exception, you can use a bitmap subtitle stream as input: it
will be converted into a video with the same size as the largest video in
the file, or 720x576 if no video is present. Note that this is an
experimental and temporary solution. It will be removed once libavfilter has
proper support for subtitles.
For example, to hardcode subtitles on top of a DVB-T recording stored in
MPEG-TS format, delaying the subtitles by 1 second:
@example
ffmpeg -i input.ts -filter_complex \
'[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
-sn -map '#0x2dc' output.mkv
@end example
(0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the video,
audio and subtitles streams; 0:0, 0:3 and 0:7 would have worked too)
@section Preset files
A preset file contains a sequence of @var{option}=@var{value} pairs,
one for each line, specifying a sequence of options which would be
@@ -859,15 +1050,15 @@ First ffmpeg searches for a file named @var{arg}.ffpreset in the
directories @file{$FFMPEG_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
the datadir defined at configuration time (usually @file{PREFIX/share/ffmpeg})
or in a @file{ffpresets} folder along the executable on win32,
in that order. For example, if the argument is @code{libx264-max}, it will
search for the file @file{libx264-max.ffpreset}.
in that order. For example, if the argument is @code{libvpx-1080p}, it will
search for the file @file{libvpx-1080p.ffpreset}.
If no such file is found, then ffmpeg will search for a file named
@var{codec_name}-@var{arg}.ffpreset in the above-mentioned
directories, where @var{codec_name} is the name of the codec to which
the preset file options will be applied. For example, if you select
the video codec with @code{-vcodec libx264} and use @code{-vpre max},
then it will search for the file @file{libx264-max.ffpreset}.
the video codec with @code{-vcodec libvpx} and use @code{-vpre 1080p},
then it will search for the file @file{libvpx-1080p.ffpreset}.
@c man end OPTIONS
@chapter Tips
@@ -1084,17 +1275,15 @@ composed of three digits padded with zeroes to express the sequence
number. It is the same syntax supported by the C printf function, but
only formats accepting a normal integer are suitable.
When importing an image sequence, -i also supports expanding shell-like
wildcard patterns (globbing) internally. To lower the chance of interfering
with your actual file names and the shell's glob expansion, you are required
to activate glob meta characters by prefixing them with a single @code{%}
character, like in @code{foo-%*.jpeg}, @code{foo-%?%?%?.jpeg} or
@code{foo-00%[234%]%*.jpeg}.
If your filename actually contains a character sequence of a @code{%} character
followed by a glob character, you must double the @code{%} character to escape
it. Imagine your files begin with @code{%?-foo-}, then you could use a glob
pattern like @code{%%?-foo-%*.jpeg}. For input patterns that could be both a
printf or a glob pattern, ffmpeg will assume it is a glob pattern.
When importing an image sequence, -i also supports expanding
shell-like wildcard patterns (globbing) internally, by selecting the
image2-specific @code{-pattern_type glob} option.
For example, for creating a video from filenames matching the glob pattern
@code{foo-*.jpeg}:
@example
ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi
@end example
@item
You can put many streams of the same type in the output:

View File

@@ -80,7 +80,7 @@ Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
Prettify the format of the displayed values, it corresponds to the
options "-unit -prefix -byte_binary_prefix -sexagesimal".
@item -print_format @var{writer_name}[=@var{writer_options}]
@item -of, -print_format @var{writer_name}[=@var{writer_options}]
Set the output printing format.
@var{writer_name} specifies the name of the writer, and
@@ -94,6 +94,13 @@ For example for printing the output in JSON format, specify:
For more details on the available output printing formats, see the
Writers section below.
@item -show_data
Show payload data, as an hexadecimal and ASCII dump. Coupled with
@option{-show_packets}, it will dump the packets' data. Coupled with
@option{-show_streams}, it will dump the codec extradata.
The dump is printed as the "data" field. It may contain newlines.
@item -show_error
Show information about the error found when trying to probe the input.
@@ -163,6 +170,10 @@ Show information related to program and library versions. This is the
equivalent of setting both @option{-show_program_version} and
@option{-show_library_versions} options.
@item -bitexact
Force bitexact output, useful to produce output which is not dependent
on the specific build.
@item -i @var{input_file}
Read @var{input_file}.
@@ -211,8 +222,11 @@ If set to 1 specify not to print the section header and footer.
Default value is 0.
@end table
@section compact
Compact format.
@section compact, csv
Compact and CSV format.
The @code{csv} writer is equivalent to @code{compact}, but supports
different defaults.
Each section is printed on a single line.
If no option is specifid, the output has the form:
@@ -233,21 +247,23 @@ The description of the accepted options follows.
@item item_sep, s
Specify the character to use for separating fields in the output line.
It must be a single printable character, it is "|" by default.
It must be a single printable character, it is "|" by default ("," for
the @code{csv} writer).
@item nokey, nk
If set to 1 specify not to print the key of each field. Its default
value is 0.
value is 0 (1 for the @code{csv} writer).
@item escape, e
Set the escape mode to use, default to "c".
Set the escape mode to use, default to "c" ("csv" for the @code{csv}
writer).
It can assume one of the following values:
@table @option
@item c
Perform C-like escaping. Strings containing a newline ('\n') or
carriage return ('\r'), the escaping character ('\') or the item
separator character @var{SEP} are escaped using C-like fashioned
Perform C-like escaping. Strings containing a newline ('\n'), carriage
return ('\r'), a tab ('\t'), a form feed ('\f'), the escaping
character ('\') or the item separator character @var{SEP} are escaped using C-like fashioned
escaping, so that a newline is converted to the sequence "\n", a
carriage return to "\r", '\' to "\\" and the separator @var{SEP} is
converted to "\@var{SEP}".
@@ -261,13 +277,80 @@ containing a newline ('\n'), a carriage return ('\r'), a double quote
Perform no escaping.
@end table
@item print_section, p
Print the section name at the begin of each line if the value is
@code{1}, disable it with value set to @code{0}. Default value is
@code{1}.
@end table
@section csv
CSV format.
@section flat
Flat format.
This writer is equivalent to
@code{compact=item_sep=,:nokey=1:escape=csv}.
A free-form output where each line contains an explicit key=value, such as
"streams.stream.3.tags.foo=bar". The output is shell escaped, so it can be
directly embedded in sh scripts as long as the separator character is an
alphanumeric character or an underscore (see @var{sep_char} option).
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
The description of the accepted options follows.
@table @option
@item sep_char, s
Separator character used to separate the chapter, the section name, IDs and
potential tags in the printed field key.
Default value is '.'.
@item hierarchical, h
Specify if the section name specification should be hierarchical. If
set to 1, and if there is more than one section in the current
chapter, the section name will be prefixed by the name of the
chapter. A value of 0 will disable this behavior.
Default value is 1.
@end table
@section ini
INI format output.
Print output in an INI based format.
The following conventions are adopted:
@itemize
@item
all key and values are UTF-8
@item
'.' is the subgroup separator
@item
newline, '\t', '\f', '\b' and the following characters are escaped
@item
'\' is the escape character
@item
'#' is the comment indicator
@item
'=' is the key/value separator
@item
':' is not used but usually parsed as key/value separator
@end itemize
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
The description of the accepted options follows.
@table @option
@item hierarchical, h
Specify if the section name specification should be hierarchical. If
set to 1, and if there is more than one section in the current
chapter, the section name will be prefixed by the name of the
chapter. A value of 0 will disable this behavior.
Default value is 1.
@end table
@section json
JSON based format.
@@ -342,7 +425,7 @@ MOV timecode is extracted from tmcd track, so is available in the tmcd
stream metadata (@option{-show_streams}, see @var{TAG:timecode}).
@item
DV and GXF timecodes are available in format metadata
DV, GXF and AVI timecodes are available in format metadata
(@option{-show_format}, see @var{TAG:timecode}).
@end itemize

View File

@@ -39,9 +39,12 @@
<xsd:attribute name="dts_time" type="xsd:float" />
<xsd:attribute name="duration" type="xsd:long" />
<xsd:attribute name="duration_time" type="xsd:float" />
<xsd:attribute name="convergence_duration" type="xsd:long" />
<xsd:attribute name="convergence_duration_time" type="xsd:float" />
<xsd:attribute name="size" type="xsd:long" use="required" />
<xsd:attribute name="pos" type="xsd:long" />
<xsd:attribute name="flags" type="xsd:string" use="required" />
<xsd:attribute name="data" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="frameType">
@@ -53,11 +56,15 @@
<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="pkt_duration" type="xsd:long" />
<xsd:attribute name="pkt_duration_time" type="xsd:float"/>
<xsd:attribute name="pkt_pos" type="xsd:long" />
<!-- audio attributes -->
<xsd:attribute name="sample_fmt" type="xsd:string"/>
<xsd:attribute name="nb_samples" type="xsd:long" />
<xsd:attribute name="channels" type="xsd:int" />
<xsd:attribute name="channel_layout" type="xsd:string"/>
<!-- video attributes -->
<xsd:attribute name="width" type="xsd:long" />
@@ -80,13 +87,19 @@
</xsd:complexType>
<xsd:complexType name="streamType">
<xsd:sequence>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:int" use="required"/>
<xsd:attribute name="codec_name" type="xsd:string" />
<xsd:attribute name="codec_long_name" type="xsd:string" />
<xsd:attribute name="profile" type="xsd:string" />
<xsd:attribute name="codec_type" type="xsd:string" />
<xsd:attribute name="codec_time_base" type="xsd:string" use="required"/>
<xsd:attribute name="codec_tag" type="xsd:string" use="required"/>
<xsd:attribute name="codec_tag_string" type="xsd:string" use="required"/>
<xsd:attribute name="extradata" type="xsd:string" />
<!-- video attributes -->
<xsd:attribute name="width" type="xsd:int"/>
@@ -108,7 +121,9 @@
<xsd:attribute name="r_frame_rate" type="xsd:string" use="required"/>
<xsd:attribute name="avg_frame_rate" type="xsd:string" use="required"/>
<xsd:attribute name="time_base" type="xsd:string" use="required"/>
<xsd:attribute name="start_pts" type="xsd:long"/>
<xsd:attribute name="start_time" type="xsd:float"/>
<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="nb_frames" type="xsd:int"/>
@@ -124,7 +139,7 @@
<xsd:attribute name="filename" type="xsd:string" use="required"/>
<xsd:attribute name="nb_streams" type="xsd:int" use="required"/>
<xsd:attribute name="format_name" type="xsd:string" use="required"/>
<xsd:attribute name="format_long_name" type="xsd:string" use="required"/>
<xsd:attribute name="format_long_name" type="xsd:string"/>
<xsd:attribute name="start_time" type="xsd:float"/>
<xsd:attribute name="duration" type="xsd:float"/>
<xsd:attribute name="size" type="xsd:long"/>

View File

@@ -12,7 +12,7 @@ Format negotiation
==================
The query_formats method should set, for each input and each output links,
the list supported formats.
the list of supported formats.
For video links, that means pixel format. For audio links, that means
channel layout, and sample format (the sample packing is implied by the
@@ -26,14 +26,167 @@ Format negotiation
references to the list are updated.
That means that if a filter requires that its input and output have the
same format amongst a supported list, all it have to do is use a reference
same format amongst a supported list, all it has to do is use a reference
to the same list of formats.
Buffer references ownership and permissions
===========================================
TODO
Principle
---------
Audio and video data are voluminous; the buffer and buffer reference
mechanism is intended to avoid, as much as possible, expensive copies of
that data while still allowing the filters to produce correct results.
The data is stored in buffers represented by AVFilterBuffer structures.
They must not be accessed directly, but through references stored in
AVFilterBufferRef structures. Several references can point to the
same buffer; the buffer is automatically deallocated once all
corresponding references have been destroyed.
The characteristics of the data (resolution, sample rate, etc.) are
stored in the reference; different references for the same buffer can
show different characteristics. In particular, a video reference can
point to only a part of a video buffer.
A reference is usually obtained as input to the start_frame or
filter_samples method or requested using the ff_get_video_buffer or
ff_get_audio_buffer functions. A new reference on an existing buffer can
be created with the avfilter_ref_buffer. A reference is destroyed using
the avfilter_unref_bufferp function.
Reference ownership
-------------------
At any time, a reference “belongs” to a particular piece of code,
usually a filter. With a few caveats that will be explained below, only
that piece of code is allowed to access it. It is also responsible for
destroying it, although this is sometimes done automatically (see the
section on link reference fields).
Here are the (fairly obvious) rules for reference ownership:
* A reference received by the start_frame or filter_samples method
belong to the corresponding filter.
Special exception: for video references: the reference may be used
internally for automatic copying and must not be destroyed before
end_frame; it can be given away to ff_start_frame.
* A reference passed to ff_start_frame or ff_filter_samples is given
away and must no longer be used.
* A reference created with avfilter_ref_buffer belongs to the code that
created it.
* A reference obtained with ff_get_video_buffer or ff_get_audio_buffer
belongs to the code that requested it.
* A reference given as return value by the get_video_buffer or
get_audio_buffer method is given away and must no longer be used.
Link reference fields
---------------------
The AVFilterLink structure has a few AVFilterBufferRef fields. Here are
the rules to handle them:
* cur_buf is set before the start_frame and filter_samples methods to
the same reference given as argument to the methods and belongs to the
destination filter of the link. If it has not been cleared after
end_frame or filter_samples, libavfilter will automatically destroy
the reference; therefore, any filter that needs to keep the reference
for longer must set cur_buf to NULL.
* out_buf belongs to the source filter of the link and can be used to
store a reference to the buffer that has been sent to the destination.
If it is not NULL after end_frame or filter_samples, libavfilter will
automatically destroy the reference.
If a video input pad does not have a start_frame method, the default
method will request a buffer on the first output of the filter, store
the reference in out_buf and push a second reference to the output.
* src_buf, cur_buf_copy and partial_buf are used by libavfilter
internally and must not be accessed by filters.
Reference permissions
---------------------
The AVFilterBufferRef structure has a perms field that describes what
the code that owns the reference is allowed to do to the buffer data.
Different references for the same buffer can have different permissions.
For video filters, the permissions only apply to the parts of the buffer
that have already been covered by the draw_slice method.
The value is a binary OR of the following constants:
* AV_PERM_READ: the owner can read the buffer data; this is essentially
always true and is there for self-documentation.
* AV_PERM_WRITE: the owner can modify the buffer data.
* AV_PERM_PRESERVE: the owner can rely on the fact that the buffer data
will not be modified by previous filters.
* AV_PERM_REUSE: the owner can output the buffer several times, without
modifying the data in between.
* AV_PERM_REUSE2: the owner can output the buffer several times and
modify the data in between (useless without the WRITE permissions).
* AV_PERM_ALIGN: the owner can access the data using fast operations
that require data alignment.
The READ, WRITE and PRESERVE permissions are about sharing the same
buffer between several filters to avoid expensive copies without them
doing conflicting changes on the data.
The REUSE and REUSE2 permissions are about special memory for direct
rendering. For example a buffer directly allocated in video memory must
not modified once it is displayed on screen, or it will cause tearing;
it will therefore not have the REUSE2 permission.
The ALIGN permission is about extracting part of the buffer, for
copy-less padding or cropping for example.
References received on input pads are guaranteed to have all the
permissions stated in the min_perms field and none of the permissions
stated in the rej_perms.
References obtained by ff_get_video_buffer and ff_get_audio_buffer are
guaranteed to have at least all the permissions requested as argument.
References created by avfilter_ref_buffer have the same permissions as
the original reference minus the ones explicitly masked; the mask is
usually ~0 to keep the same permissions.
Filters should remove permissions on reference they give to output
whenever necessary. It can be automatically done by setting the
rej_perms field on the output pad.
Here are a few guidelines corresponding to common situations:
* Filters that modify and forward their frame (like drawtext) need the
WRITE permission.
* Filters that read their input to produce a new frame on output (like
scale) need the READ permission on input and and must request a buffer
with the WRITE permission.
* Filters that intend to keep a reference after the filtering process
is finished (after end_frame or filter_samples returns) must have the
PRESERVE permission on it and remove the WRITE permission if they
create a new reference to give it away.
* Filters that intend to modify a reference they have kept after the end
of the filtering process need the REUSE2 permission and must remove
the PRESERVE permission if they create a new reference to give it
away.
Frame scheduling
@@ -70,7 +223,7 @@ Frame scheduling
request_frame method or the application.
If a filter has several inputs, the filter must be ready for frames
arriving randomly on any input. Therefore, any filter with several input
arriving randomly on any input. Therefore, any filter with several inputs
will most likely require some kind of queuing mechanism. It is perfectly
acceptable to have a limited queue and to drop frames when the inputs
are too unbalanced.
@@ -85,7 +238,7 @@ Frame scheduling
For a filter, if there are queued frames already ready, one of these
frames should be pushed. If not, the filter should request a frame on
one of its input, repeatedly until at least one frame has been pushed.
one of its inputs, repeatedly until at least one frame has been pushed.
Return values:
if request_frame could produce a frame, it should return 0;

File diff suppressed because it is too large Load Diff

View File

@@ -24,17 +24,22 @@ instructions. To enable using OpenJPEG in FFmpeg, pass @code{--enable-libopenjp
@file{./configure}.
@section OpenCORE and VisualOn libraries
@section OpenCORE, VisualOn, and Fraunhofer libraries
Spun off Google Android sources, OpenCore and VisualOn libraries provide
encoders for a number of audio codecs.
Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
libraries provide encoders for a number of audio codecs.
@float NOTE
OpenCORE and VisualOn libraries are under the Apache License 2.0
(see @url{http://www.apache.org/licenses/LICENSE-2.0} for details), which is
incompatible with the LGPL version 2.1 and GPL version 2. You have to
incompatible to the LGPL version 2.1 and GPL version 2. You have to
upgrade FFmpeg's license to LGPL version 3 (or if you have enabled
GPL components, GPL version 3) to use it.
GPL components, GPL version 3) by passing @code{--enable-version3} to configure in
order to use it.
The Fraunhofer AAC library is licensed under a license incompatible to the GPL
and is not known to be compatible to the LGPL. Therefore, you have to pass
@code{--enable-nonfree} to configure to use it.
@end float
@subsection OpenCORE AMR
@@ -63,6 +68,14 @@ Go to @url{http://sourceforge.net/projects/opencore-amr/} and follow the
instructions for installing the library.
Then pass @code{--enable-libvo-amrwbenc} to configure to enable it.
@subsection Fraunhofer AAC library
FFmpeg can make use of the Fraunhofer AAC library for AAC encoding.
Go to @url{http://sourceforge.net/projects/opencore-amr/} and follow the
instructions for installing the library.
Then pass @code{--enable-libfdk-aac} to configure to enable it.
@section LAME
FFmpeg can make use of the LAME library for MP3 encoding.
@@ -71,6 +84,14 @@ Go to @url{http://lame.sourceforge.net/} and follow the
instructions for installing the library.
Then pass @code{--enable-libmp3lame} to configure to enable it.
@section TwoLAME
FFmpeg can make use of the TwoLAME library for MP2 encoding.
Go to @url{http://www.twolame.org/} and follow the
instructions for installing the library.
Then pass @code{--enable-libtwolame} to configure to enable it.
@section libvpx
FFmpeg can make use of the libvpx library for VP8 encoding.
@@ -93,6 +114,17 @@ 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 libilbc
iLBC is a narrowband speech codec that has been made freely available
by Google as part of the WebRTC project. libilbc is a packaging friendly
copy of the iLBC codec. FFmpeg can make use of the libilbc library for
iLBC encoding and decoding.
Go to @url{https://github.com/dekkers/libilbc} and follow the instructions for
installing the library. Then pass @code{--enable-libilbc} to configure to
enable it.
@chapter Supported File Formats, Codecs or Features
@@ -116,6 +148,8 @@ 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
@tab Multimedia format used in game Heart Of Darkness.
@item Apple HTTP Live Streaming @tab @tab X
@item Artworx Data Format @tab @tab X
@item ASF @tab X @tab X
@@ -183,7 +217,7 @@ library:
@tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
playout servers.
@item iCEDraw File @tab @tab X
@item ICO @tab @tab X
@item ICO @tab X @tab X
@tab Microsoft Windows ICO
@item id Quake II CIN video @tab @tab X
@item id RoQ @tab X @tab X
@@ -191,6 +225,7 @@ library:
@item IEC61937 encapsulation @tab X @tab X
@item IFF @tab @tab X
@tab Interchange File Format
@item iLBC @tab X @tab X
@item Interplay MVE @tab @tab X
@tab Format used in various Interplay computer games.
@item IV8 @tab @tab X
@@ -323,6 +358,8 @@ library:
@tab Multimedia format used by many games.
@item SMJPEG @tab X @tab X
@tab Used in certain Loki game ports.
@item Smush @tab @tab X
@tab Multimedia format used in some LucasArts games.
@item Sony OpenMG (OMA) @tab X @tab X
@tab Audio format used in Sony Sonic Stage and Sony Vegas.
@item Sony PlayStation STR @tab @tab X
@@ -337,7 +374,7 @@ library:
@item True Audio @tab @tab X
@item VC-1 test bitstream @tab X @tab X
@item WAV @tab X @tab X
@item WavPack @tab @tab X
@item WavPack @tab X @tab X
@item WebM @tab X @tab X
@item Windows Televison (WTV) @tab X @tab X
@item Wing Commander III movie @tab @tab X
@@ -353,7 +390,6 @@ library:
@item eXtended BINary text (XBIN) @tab @tab X
@item YUV4MPEG pipe @tab X @tab X
@item Psygnosis YOP @tab @tab X
@item ZeroCodec Lossless Video @tab @tab X
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
@@ -427,6 +463,7 @@ following image formats are supported:
@item 8SVX fibonacci @tab @tab X
@item A64 multicolor @tab X @tab
@tab Creates video suitable to be played on a commodore 64 (multicolor mode).
@item Amazing Studio PAF Video @tab @tab X
@item American Laser Games MM @tab @tab X
@tab Used in games like Mad Dog McCree.
@item AMV Video @tab X @tab X
@@ -476,9 +513,11 @@ following image formats are supported:
@item Delphine Software International CIN video @tab @tab X
@tab Codec used in Delphine Software International games.
@item Discworld II BMV Video @tab @tab X
@item Canopus Lossless Codec @tab @tab X
@item Cinepak @tab @tab X
@item Cirrus Logic AccuPak @tab X @tab X
@tab fourcc: CLJR
@item CPiA Video Format @tab @tab X
@item Creative YUV (CYUV) @tab @tab X
@item DFA @tab @tab X
@tab Codec used in Chronomaster game.
@@ -548,8 +587,18 @@ 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 lossless MJPEG @tab X @tab X
@item Microsoft ATC Screen @tab @tab X
@tab Also known as Microsoft Screen 3.
@item Microsoft Expression Encoder Screen @tab @tab X
@tab Also known as Microsoft Titanium Screen 2.
@item Microsoft RLE @tab @tab X
@item Microsoft Screen 1 @tab @tab X
@tab Also known as Windows Media Video V7 Screen.
@item Microsoft Screen 2 @tab @tab X
@tab Also known as Windows Media Video V9 Screen.
@item Microsoft Video 1 @tab @tab X
@item Mimic @tab @tab X
@tab Used in MSN Messenger Webcam streams.
@@ -578,8 +627,6 @@ following image formats are supported:
@tab fourcc: VP60,VP61,VP62
@item VP8 @tab E @tab X
@tab fourcc: VP80, encoding supported through external library libvpx
@item planar RGB @tab @tab X
@tab fourcc: 8BPS
@item Prores @tab @tab X
@tab fourcc: apch,apcn,apcs,apco
@item Q-team QPEG @tab @tab X
@@ -619,11 +666,13 @@ following image formats are supported:
@tab fourcc: SP5X
@item TechSmith Screen Capture Codec @tab @tab X
@tab fourcc: TSCC
@item TechSmith Screen Capture Codec 2 @tab @tab X
@tab fourcc: TSC2
@item Theora @tab E @tab X
@tab encoding supported through external library libtheora
@item Tiertex Limited SEQ video @tab @tab X
@tab Codec used in DOS CD-ROM FlashBack game.
@item Ut Video @tab @tab X
@item Ut Video @tab X @tab X
@item v210 QuickTime uncompressed 4:2:2 10-bit @tab X @tab X
@item v308 QuickTime uncompressed 4:4:4 @tab X @tab X
@item v408 QuickTime uncompressed 4:4:4:4 @tab X @tab X
@@ -647,6 +696,7 @@ following image formats are supported:
@item Psygnosis YOP Video @tab @tab X
@item yuv4 @tab X @tab X
@tab libquicktime uncompressed packed 4:2:0
@item ZeroCodec Lossless Video @tab @tab X
@item ZLIB @tab X @tab X
@tab part of LCL, encoder experimental
@item Zip Motion Blocks Video @tab X @tab X
@@ -715,6 +765,7 @@ following image formats are supported:
@tab encoding supported through external library libopencore-amrnb
@item AMR-WB @tab E @tab X
@tab encoding supported through external library libvo-amrwbenc
@item Amazing Studio PAF Audio @tab @tab X
@item Apple lossless audio @tab X @tab X
@tab QuickTime fourcc 'alac'
@item Atrac 1 @tab @tab X
@@ -748,6 +799,9 @@ following image formats are supported:
@tab encoding supported through external library libgsm
@item GSM Microsoft variant @tab E @tab X
@tab encoding supported through external library libgsm
@item IAC (Indeo Audio Coder) @tab @tab X
@item iLBC (Internet Low Bitrate Codec) @tab E @tab E
@tab encoding and decoding supported through external library libilbc
@item IMC (Intel Music Coder) @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 3:1 @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 6:1 @tab @tab X
@@ -757,6 +811,7 @@ following image formats are supported:
@tab Only versions 3.97-3.99 are supported.
@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.
@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
@@ -813,6 +868,8 @@ following image formats are supported:
@item TrueHD @tab @tab X
@tab Used in HD-DVD and Blu-Ray discs.
@item TwinVQ (VQF flavor) @tab @tab X
@item VIMA @tab @tab X
@tab Used in LucasArts SMUSH animations.
@item Vorbis @tab E @tab X
@tab A native but very primitive encoder exists.
@item WavPack @tab @tab X
@@ -835,14 +892,19 @@ performance on systems without hardware floating point support).
@multitable @columnfractions .4 .1 .1 .1 .1
@item Name @tab Muxing @tab Demuxing @tab Encoding @tab Decoding
@item SSA/ASS @tab X @tab X @tab X @tab X
@item DVB @tab X @tab X @tab X @tab X
@item DVD @tab X @tab X @tab X @tab X
@item JACOsub @tab X @tab X @tab @tab X
@item MicroDVD @tab X @tab X @tab @tab X
@item PGS @tab @tab @tab @tab X
@item SubRip (SRT) @tab X @tab X @tab X @tab X
@item XSUB @tab @tab @tab X @tab X
@item SSA/ASS @tab X @tab X @tab X @tab X
@item DVB @tab X @tab X @tab X @tab X
@item DVD @tab X @tab X @tab X @tab X
@item JACOsub @tab X @tab X @tab @tab X
@item MicroDVD @tab X @tab X @tab @tab X
@item PGS @tab @tab @tab @tab X
@item RealText @tab @tab X @tab @tab X
@item SAMI @tab @tab X @tab @tab X
@item SubRip (SRT) @tab X @tab X @tab X @tab X
@item SubViewer @tab @tab X @tab @tab X
@item 3GPP Timed Text @tab @tab @tab X @tab X
@item WebVTT @tab @tab X @tab @tab X
@item XSUB @tab @tab @tab X @tab X
@end multitable
@code{X} means that the feature is supported.
@@ -851,19 +913,31 @@ performance on systems without hardware floating point support).
@multitable @columnfractions .4 .1
@item Name @tab Support
@item Apple HTTP Live Streaming @tab X
@item file @tab X
@item Gopher @tab X
@item HLS @tab X
@item HTTP @tab X
@item MMS @tab X
@item HTTPS @tab X
@item MMSH @tab X
@item MMST @tab X
@item pipe @tab X
@item RTMP @tab X
@item RTMPE @tab X
@item RTMPS @tab X
@item RTMPT @tab X
@item RTMPTE @tab X
@item RTMPTS @tab X
@item RTP @tab X
@item SCTP @tab X
@item TCP @tab X
@item TLS @tab X
@item UDP @tab X
@end multitable
@code{X} means that the protocol is supported.
@code{E} means that support is provided through an external library.
@section Input/Output Devices
@@ -871,13 +945,17 @@ performance on systems without hardware floating point support).
@item Name @tab Input @tab Output
@item ALSA @tab X @tab X
@item BKTR @tab X @tab
@item caca @tab @tab X
@item DV1394 @tab X @tab
@item Lavfi virtual device @tab X @tab
@item Linux framebuffer @tab X @tab
@item JACK @tab X @tab
@item LIBCDIO @tab X
@item LIBDC1394 @tab X @tab
@item OpenAL @tab X
@item OSS @tab X @tab X
@item Pulseaudio @tab X @tab
@item SDL @tab @tab X
@item Video4Linux2 @tab X @tab
@item VfW capture @tab X @tab
@item X11 grabbing @tab X @tab
@@ -889,9 +967,10 @@ performance on systems without hardware floating point support).
@multitable @columnfractions .4 .1 .1
@item Codec/format @tab Read @tab Write
@item AVI @tab X @tab X
@item DV @tab X @tab X
@item GXF @tab X @tab X
@item MOV @tab X @tab
@item MOV @tab X @tab X
@item MPEG1/2 @tab X @tab X
@item MXF @tab X @tab X
@end multitable

View File

@@ -258,6 +258,32 @@ git commit
@end example
@chapter Git configuration
In order to simplify a few workflows, it is advisable to configure both
your personal Git installation and your local FFmpeg repository.
@section Personal Git installation
Add the following to your @file{~/.gitconfig} to help @command{git send-email}
and @command{git format-patch} detect renames:
@example
[diff]
renames = copy
@end example
@section Repository configuration
In order to have @command{git send-email} automatically send patches
to the ffmpeg-devel mailing list, add the following stanza
to @file{/path/to/ffmpeg/repository/.git/config}:
@example
[sendemail]
to = ffmpeg-devel@@ffmpeg.org
@end example
@chapter FFmpeg specific
@section Reverting broken commits
@@ -346,6 +372,43 @@ git checkout -b svn_23456 $SHA1
where @var{$SHA1} is the commit hash from the @command{git log} output.
@chapter pre-push checklist
Once you have a set of commits that you feel are ready for pushing,
work through the following checklist to doublecheck everything is in
proper order. This list tries to be exhaustive. In case you are just
pushing a typo in a comment, some of the steps may be unnecessary.
Apply your common sense, but if in doubt, err on the side of caution.
First, make sure that the commits and branches you are going to push
match what you want pushed and that nothing is missing, extraneous or
wrong. You can see what will be pushed by running the git push command
with --dry-run first. And then inspecting the commits listed with
@command{git log -p 1234567..987654}. The @command{git status} command
may help in finding local changes that have been forgotten to be added.
Next let the code pass through a full run of our testsuite.
@itemize
@item @command{make distclean}
@item @command{/path/to/ffmpeg/configure}
@item @command{make check}
@item if fate fails due to missing samples run @command{make fate-rsync} and retry
@end itemize
Make sure all your changes have been checked before pushing them, the
testsuite only checks against regressions and that only to some extend. It does
obviously not check newly added features/code to be working unless you have
added a test for that (which is recommended).
Also note that every single commit should pass the test suite, not just
the result of a series of patches.
Once everything passed, push the changes to your public ffmpeg clone and post a
merge request to ffmpeg-devel. You can also push them directly but this is not
recommended.
@chapter Server Issues
Contact the project admins @email{root@@ffmpeg.org} if you have technical

View File

@@ -112,6 +112,19 @@ defaults to 0).
Set audio device number for devices with same name (starts at 0,
defaults to 0).
@item pixel_format
Select pixel format to be used by DirectShow. This may only be set when
the video codec is not set or set to rawvideo.
@item audio_buffer_size
Set audio device buffer size in milliseconds (which can directly
impact latency, depending on the device).
Defaults to using the audio device's
default buffer size (typically some multiple of 500ms).
Setting this value too low can degrade performance.
See also
@url{http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx}
@end table
@subsection Examples
@@ -179,6 +192,59 @@ 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 iec61883
FireWire DV/HDV input device using libiec61883.
To enable this input device, you need libiec61883, libraw1394 and
libavc1394 installed on your system. Use the configure option
@code{--enable-libiec61883} to compile with the device enabled.
The iec61883 capture device supports capturing from a video device
connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
FireWire stack (juju). This is the default DV/HDV input method in Linux
Kernel 2.6.37 and later, since the old FireWire stack was removed.
Specify the FireWire port to be used as input file, or "auto"
to choose the first port connected.
@subsection Options
@table @option
@item dvtype
Override autodetection of DV/HDV. This should only be used if auto
detection does not work, or if usage of a different device type
should be prohibited. Treating a DV device as HDV (or vice versa) will
not work and result in undefined behavior.
The values @option{auto}, @option{dv} and @option{hdv} are supported.
@item dvbuffer
Set maxiumum size of buffer for incoming data, in frames. For DV, this
is an exact value. For HDV, it is not frame exact, since HDV does
not have a fixed frame size.
@end table
@subsection Examples
@itemize
@item
Grab and show the input of a FireWire DV/HDV device.
@example
ffplay -f iec61883 -i auto
@end example
@item
Grab and record the input of a FireWire DV/HDV device,
using a packet buffer of 100000 packets if the source is HDV.
@example
ffmpeg -f iec61883 -i auto -hdvbuffer 100000 out.mpg
@end example
@end itemize
@section jack
JACK input device.
@@ -577,17 +643,23 @@ properties of your X11 display (e.g. grep for "name" or "dimensions").
For example to grab from @file{:0.0} using @command{ffmpeg}:
@example
ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpg
@end example
# Grab at position 10,20.
Grab at position @code{10,20}:
@example
ffmpeg -f x11grab -r 25 -s cif -i :0.0+10,20 out.mpg
@end example
@subsection @var{follow_mouse} AVOption
@subsection Options
The syntax is:
@example
-follow_mouse centered|@var{PIXELS}
@end example
@table @option
@item draw_mouse
Specify whether to draw the mouse pointer. A value of @code{0} specify
not to draw the pointer. Default value is @code{1}.
@item follow_mouse
Make the grabbed area follow the mouse. The argument can be
@code{centered} or a number of pixels @var{PIXELS}.
When it is specified with "centered", the grabbing region follows the mouse
pointer and keeps the pointer at the center of region; otherwise, the region
@@ -597,28 +669,36 @@ zero) to the edge of region.
For example:
@example
ffmpeg -f x11grab -follow_mouse centered -r 25 -s cif -i :0.0 out.mpg
@end example
# Follows only when the mouse pointer reaches within 100 pixels to edge
To follow only when the mouse pointer reaches within 100 pixels to edge:
@example
ffmpeg -f x11grab -follow_mouse 100 -r 25 -s cif -i :0.0 out.mpg
@end example
@subsection @var{show_region} AVOption
@item framerate
Set the grabbing frame rate. Default value is @code{ntsc},
corresponding to a framerate of @code{30000/1001}.
The syntax is:
@example
-show_region 1
@end example
@item show_region
Show grabbed region on screen.
If @var{show_region} AVOption is specified with @var{1}, then the grabbing
region will be indicated on screen. With this option, it's easy to know what is
being grabbed if only a portion of the screen is grabbed.
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.
For example:
@example
ffmpeg -f x11grab -show_region 1 -r 25 -s cif -i :0.0+10,20 out.mpg
# With follow_mouse
ffmpeg -f x11grab -follow_mouse centered -show_region 1 -r 25 -s cif -i :0.0 out.mpg
@end example
With @var{follow_mouse}:
@example
ffmpeg -f x11grab -follow_mouse centered -show_region 1 -r 25 -s cif -i :0.0 out.mpg
@end example
@item video_size
Set the video frame size. Default value is @code{vga}.
@end table
@c man end INPUT DEVICES

View File

@@ -1,92 +0,0 @@
\input texinfo @c -*- texinfo -*-
@settitle Libavfilter Documentation
@titlepage
@center @titlefont{Libavfilter Documentation}
@end titlepage
@top
@contents
@chapter Introduction
Libavfilter is the filtering API of FFmpeg. It is the substitute of the
now deprecated 'vhooks' and started as a Google Summer of Code project.
Audio filtering integration into the main FFmpeg repository is a work in
progress, so audio API and ABI should not be considered stable yet.
@chapter Tutorial
In libavfilter, it is possible for filters to have multiple inputs and
multiple outputs.
To illustrate the sorts of things that are possible, we can
use a complex filter graph. For example, the following one:
@example
input --> split --> fifo -----------------------> overlay --> output
| ^
| |
+------> fifo --> crop --> vflip --------+
@end example
splits the stream in two streams, sends one stream through the crop filter
and the vflip filter before merging it back with the other stream by
overlaying it on top. You can use the following command to achieve this:
@example
ffmpeg -i input -vf "[in] split [T1], fifo, [T2] overlay=0:H/2 [out]; [T1] fifo, crop=iw:ih/2:0:ih/2, vflip [T2]" output
@end example
The result will be that in output the top half of the video is mirrored
onto the bottom half.
Video filters are loaded using the @var{-vf} option passed to
@command{ffmpeg} or to @command{ffplay}. Filters in the same linear
chain are separated by commas. In our example, @var{split, fifo,
overlay} are in one linear chain, and @var{fifo, crop, vflip} are in
another. The points where the linear chains join are labeled by names
enclosed in square brackets. In our example, that is @var{[T1]} and
@var{[T2]}. The magic labels @var{[in]} and @var{[out]} are the points
where video is input and output.
Some filters take in input a list of parameters: they are specified
after the filter name and an equal sign, and are separated each other
by a semicolon.
There exist so-called @var{source filters} that do not have a video
input, and we expect in the future some @var{sink filters} that will
not have video output.
@chapter graph2dot
The @file{graph2dot} program included in the FFmpeg @file{tools}
directory can be used to parse a filter graph description and issue a
corresponding textual representation in the dot language.
Invoke the command:
@example
graph2dot -h
@end example
to see how to use @file{graph2dot}.
You can then pass the dot description to the @file{dot} program (from
the graphviz suite of programs) and obtain a graphical representation
of the filter graph.
For example the sequence of commands:
@example
echo @var{GRAPH_DESCRIPTION} | \
tools/graph2dot -o graph.tmp && \
dot -Tpng graph.tmp -o graph.png && \
display graph.png
@end example
can be used to create and display an image representing the graph
described by the @var{GRAPH_DESCRIPTION} string.
@include filters.texi
@bye

65
doc/mips.txt Normal file
View File

@@ -0,0 +1,65 @@
MIPS optimizations info
===============================================
MIPS optimizations of codecs are targeting MIPS 74k family of
CPUs. Some of these optimizations are relying more on properties of
this architecture and some are relying less (and can be used on most
MIPS architectures without degradation in performance).
Along with FFMPEG copyright notice, there is MIPS copyright notice in
all the files that are created by people from MIPS Technologies.
Example of copyright notice:
===============================================
/*
* Copyright (c) 2012
* MIPS Technologies, Inc., California.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the MIPS Technologies, Inc., nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE MIPS TECHNOLOGIES, INC. BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* Author: Author Name (author_name@@mips.com)
*/
Files that have MIPS copyright notice in them:
===============================================
* libavutil/mips/
libm_mips.h
* libavcodec/mips/
acelp_filters_mips.c
acelp_vectors_mips.c
amrwbdec_mips.c
amrwbdec_mips.h
celp_filters_mips.c
celp_math_mips.c
compute_antialias_fixed.h
compute_antialias_float.h
lsp_mips.h
dsputil_mips.c
fft_mips.c
fft_table.h
fft_init_table.c
fmtconvert_mips.c
mpegaudiodsp_mips_fixed.c
mpegaudiodsp_mips_float.c

View File

@@ -146,6 +146,39 @@ ffmpeg -i INPUT -f framemd5 -
See also the @ref{md5} muxer.
@anchor{ico}
@section ico
ICO file muxer.
Microsoft's icon file format (ICO) has some strict limitations that should be noted:
@itemize
@item
Size cannot exceed 256 pixels in any dimension
@item
Only BMP and PNG images can be stored
@item
If a BMP image is used, it must be one of the following pixel formats:
@example
BMP Bit Depth FFmpeg Pixel Format
1bit pal8
4bit pal8
8bit pal8
16bit rgb555le
24bit bgr24
32bit bgra
@end example
@item
If a BMP image is used, it must use the BITMAPINFOHEADER DIB header
@item
If a PNG image is used, it must use the rgba pixel format
@end itemize
@anchor{image2}
@section image2
@@ -428,7 +461,7 @@ 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
@section segment
@section segment, stream_segment, ssegment
Basic stream segmenter.
@@ -436,30 +469,166 @@ The segmenter 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}.
@code{stream_segment} is a variant of the muxer used to write to
streaming output formats, i.e. which do not require global headers,
and is recommended for outputting e.g. to MPEG transport stream segments.
@code{ssegment} is a shorter alias for @code{stream_segment}.
Every segment starts with a video keyframe, if a video stream is present.
Note that if you want accurate splitting for a video file, you need to
make the input key frames correspond to the exact splitting times
expected by the segmenter, or the segment muxer will start the new
segment with the key frame found next after the specified start
time.
The segment muxer works best with a single constant frame rate video.
Optionally it can generate a flat list of the created segments, one segment
per line.
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.
The segment muxer supports the following options:
@table @option
@item segment_format @var{format}
Override the inner container format, by default it is guessed by the filename
extension.
@item segment_time @var{t}
Set segment duration to @var{t} seconds.
@item segment_list @var{name}
Generate also a listfile named @var{name}.
Generate also a listfile named @var{name}. If not specified no
listfile is generated.
@item segment_list_flags @var{flags}
Set flags affecting the segment list generation.
It currently supports the following flags:
@table @var
@item cache
Allow caching (only affects M3U8 list files).
@item live
Allow live-friendly file generation.
This currently only affects M3U8 lists. In particular, write a fake
EXT-X-TARGETDURATION duration field at the top of the file, based on
the specified @var{segment_time}.
@end table
Default value is @code{cache}.
@item segment_list_size @var{size}
Overwrite the listfile once it reaches @var{size} entries.
Overwrite the listfile once it reaches @var{size} entries. If 0
the listfile is never overwritten. Default value is 0.
@item segment_list type @var{type}
Specify the format for the segment list file.
The following values are recognized:
@table @option
@item flat
Generate a flat list for the created segments, one segment per line.
@item csv, ext
Generate a list for the created segments, one segment per line,
each line matching the format (comma-separated values):
@example
@var{segment_filename},@var{segment_start_time},@var{segment_end_time}
@end example
@var{segment_filename} is the name of the output file generated by the
muxer according to the provided pattern. CSV escaping (according to
RFC4180) is applied if required.
@var{segment_start_time} and @var{segment_end_time} specify
the segment start and end time expressed in seconds.
A list file with the suffix @code{".csv"} or @code{".ext"} will
auto-select this format.
@code{ext} is deprecated in favor or @code{csv}.
@item m3u8
Generate an extended M3U8 file, version 4, compliant with
@url{http://tools.ietf.org/id/draft-pantos-http-live-streaming-08.txt}.
A list file with the suffix @code{".m3u8"} will auto-select this format.
@end table
If not specified the type is guessed from the list file name suffix.
@item segment_time @var{time}
Set segment duration to @var{time}. Default value is "2".
@item segment_time_delta @var{delta}
Specify the accuracy time when selecting the start time for a
segment. Default value is "0".
When delta is specified a key-frame will start a new segment if its
PTS satisfies the relation:
@example
PTS >= start_time - time_delta
@end example
This option is useful when splitting video content, which is always
split at GOP boundaries, in case a key frame is found just before the
specified split time.
In particular may be used in combination with the @file{ffmpeg} option
@var{force_key_frames}. The key frame times specified by
@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
the specified time and the time set by @var{force_key_frames}.
@item segment_times @var{times}
Specify a list of split points. @var{times} contains a list of comma
separated duration specifications, in increasing order.
@item segment_wrap @var{limit}
Wrap around segment index once it reaches @var{limit}.
@end table
Some examples follow.
@itemize
@item
To remux the content of file @file{in.mkv} to a list of segments
@file{out-000.nut}, @file{out-001.nut}, etc., and write the list of
generated segments to @file{out.list}:
@example
ffmpeg -i in.mkv -c copy -map 0 -f segment -list out.list out%03d.nut
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out%03d.nut
@end example
@item
As the example above, but segment the input file according to the split
points specified by the @var{segment_times} option:
@example
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
@end example
@item
As the example above, but use the @code{ffmpeg} @var{force_key_frames}
option to force key frames in the input at the specified location, together
with the segment option @var{segment_time_delta} to account for
possible roundings operated when setting key frame times.
@example
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -vcodec mpeg4 -acodec pcm_s16le -map 0 \
-f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
@end example
In order to force key frames on the input file, transcoding is
required.
@item
To convert the @file{in.mkv} to TS segments using the @code{libx264}
and @code{libfaac} encoders:
@example
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts
@end example
@item
Segment the input file, and create an M3U8 live playlist (can be used
as live HLS source):
@example
ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
-segment_list_flags +live -segment_time 10 out%03d.mkv
@end example
@end itemize
@section mp3
The MP3 muxer writes a raw MP3 stream with an ID3v2 header at the beginning and
@@ -489,10 +658,11 @@ Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
@end example
Attach a picture to an mp3:
To attach a picture to an mp3 file select both the audio and the picture stream
with @code{map}:
@example
ffmpeg -i input.mp3 -i cover.png -c copy -metadata:s:v title="Album cover"
-metadata:s:v comment="Cover (Front)" out.mp3
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
@c man end MUXERS

View File

@@ -22,6 +22,88 @@ A description of the currently available output devices follows.
ALSA (Advanced Linux Sound Architecture) output device.
@section caca
CACA output device.
This output devices allows 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.
To enable this output device you need to configure FFmpeg with
@code{--enable-libcaca}.
libcaca is a graphics library that outputs text instead of pixels.
For more information about libcaca, check:
@url{http://caca.zoy.org/wiki/libcaca}
@subsection Options
@table @option
@item window_title
Set the CACA window title, if not specified default to the filename
specified for the output device.
@item window_size
Set the CACA 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.
@item driver
Set display driver.
@item algorithm
Set dithering algorithm. Dithering is necessary
because the picture being rendered has usually far more colours than
the available palette.
The accepted values are listed with @code{-list_dither algorithms}.
@item antialias
Set antialias method. Antialiasing smoothens the rendered
image and avoids the commonly seen staircase effect.
The accepted values are listed with @code{-list_dither antialiases}.
@item charset
Set which characters are going to be used when rendering text.
The accepted values are listed with @code{-list_dither charsets}.
@item color
Set color to be used when rendering text.
The accepted values are listed with @code{-list_dither colors}.
@item list_drivers
If set to @option{true}, print a list of available drivers and exit.
@item list_dither
List available dither options related to the argument.
The argument must be one of @code{algorithms}, @code{antialiases},
@code{charsets}, @code{colors}.
@end table
@subsection Examples
@itemize
@item
The following command shows the @command{ffmpeg} output is an
CACA window, forcing its size to 80x25:
@example
ffmpeg -i INPUT -vcodec rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
@end example
@item
Show the list of available drivers and exit:
@example
ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
@end example
@item
Show the list of available dither colors and exit:
@example
ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
@end example
@end itemize
@section oss
OSS (Open Sound System) output device.
@@ -55,7 +137,8 @@ to the same value of @var{window_title}.
@item window_size
Set the SDL 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.
If not specified it defaults to the size of the input video,
downscaled according to the aspect ratio.
@end table
@subsection Examples

View File

@@ -318,24 +318,9 @@ following "Devel" ones:
binutils, gcc4-core, make, git, mingw-runtime, texi2html
@end example
And the following "Utils" one:
In order to run FATE you will also need the following "Utils" packages:
@example
diffutils
@end example
Then run
@example
./configure
@end example
to make a static build.
To build shared libraries add a special compiler flag to work around current
@code{gcc4-core} package bugs in addition to the normal configure flags:
@example
./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions
bc, diffutils
@end example
If you want to build FFmpeg with additional libraries, download Cygwin

View File

@@ -194,7 +194,7 @@ content across a TCP/IP network.
The required syntax is:
@example
rtmp://@var{server}[:@var{port}][/@var{app}][/@var{playpath}]
rtmp://@var{server}[:@var{port}][/@var{app}][/@var{instance}][/@var{playpath}]
@end example
The accepted parameters are:
@@ -209,11 +209,88 @@ The number of the TCP port to use (by default is 1935).
@item app
It is the name of the application to access. It usually corresponds to
the path where the application is installed on the RTMP server
(e.g. @file{/ondemand/}, @file{/flash/live/}, etc.).
(e.g. @file{/ondemand/}, @file{/flash/live/}, etc.). You can override
the value parsed from the URI through the @code{rtmp_app} option, too.
@item playpath
It is the path or name of the resource to play with reference to the
application specified in @var{app}, may be prefixed by "mp4:".
application specified in @var{app}, may be prefixed by "mp4:". You
can override the value parsed from the URI through the @code{rtmp_playpath}
option, too.
@item listen
Act as a server, listening for an incoming connection.
@item timeout
Maximum time to wait for the incoming connection. Implies listen.
@end table
Additionally, the following parameters can be set via command line options
(or in code via @code{AVOption}s):
@table @option
@item rtmp_app
Name of application to connect on the RTMP server. This option
overrides the parameter specified in the URI.
@item rtmp_buffer
Set the client buffer time in milliseconds. The default is 3000.
@item rtmp_conn
Extra arbitrary AMF connection parameters, parsed from a string,
e.g. like @code{B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0}.
Each value is prefixed by a single character denoting the type,
B for Boolean, N for number, S for string, O for object, or Z for null,
followed by a colon. For Booleans the data must be either 0 or 1 for
FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or
1 to end or begin an object, respectively. Data items in subobjects may
be named, by prefixing the type with 'N' and specifying the name before
the value (i.e. @code{NB:myFlag:1}). This option may be used multiple
times to construct arbitrary AMF sequences.
@item rtmp_flashver
Version of the Flash plugin used to run the SWF player. The default
is LNX 9,0,124,2.
@item rtmp_flush_interval
Number of packets flushed in the same request (RTMPT only). The default
is 10.
@item rtmp_live
Specify that the media is a live stream. No resuming or seeking in
live streams is possible. The default value is @code{any}, which means the
subscriber first tries to play the live stream specified in the
playpath. If a live stream of that name is not found, it plays the
recorded stream. The other possible values are @code{live} and
@code{recorded}.
@item rtmp_pageurl
URL of the web page in which the media was embedded. By default no
value will be sent.
@item rtmp_playpath
Stream identifier to play or to publish. This option overrides the
parameter specified in the URI.
@item rtmp_subscribe
Name of live stream to subscribe to. By default no value will be sent.
It is only sent if the option is specified or if rtmp_live
is set to live.
@item rtmp_swfhash
SHA256 hash of the decompressed SWF file (32 bytes).
@item rtmp_swfsize
Size of the decompressed SWF file, required for SWFVerification.
@item rtmp_swfurl
URL of the SWF player for the media. By default no value will be sent.
@item rtmp_swfverify
URL to player swf file, compute hash/size automatically.
@item rtmp_tcurl
URL of the target stream. Defaults to proto://host[:port]/app.
@end table
@@ -223,6 +300,46 @@ For example to read with @command{ffplay} a multimedia resource named
ffplay rtmp://myserver/vod/sample
@end example
@section rtmpe
Encrypted Real-Time Messaging Protocol.
The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
streaming multimedia content within standard cryptographic primitives,
consisting of Diffie-Hellman key exchange and HMACSHA256, generating
a pair of RC4 keys.
@section rtmps
Real-Time Messaging Protocol over a secure SSL connection.
The Real-Time Messaging Protocol (RTMPS) is used for streaming
multimedia content across an encrypted connection.
@section rtmpt
Real-Time Messaging Protocol tunneled through HTTP.
The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
for streaming multimedia content within HTTP requests to traverse
firewalls.
@section rtmpte
Encrypted Real-Time Messaging Protocol tunneled through HTTP.
The Encrypted Real-Time Messaging Protocol tunneled through HTTP (RTMPTE)
is used for streaming multimedia content within HTTP requests to traverse
firewalls.
@section rtmpts
Real-Time Messaging Protocol tunneled through HTTPS.
The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is used
for streaming multimedia content within HTTPS requests to traverse
firewalls.
@section rtmp, rtmpe, rtmps, rtmpt, rtmpte
Real-Time Messaging Protocol and its variants supported through
@@ -315,6 +432,8 @@ Flags for @code{rtsp_flags}:
@table @option
@item filter_src
Accept packets only from negotiated peer address and port.
@item listen
Act as a server, listening for an incoming connection.
@end table
When receiving data over UDP, the demuxer tries to reorder received packets
@@ -347,6 +466,12 @@ To send a stream in realtime to a RTSP server, for others to watch:
ffmpeg -re -i @var{input} -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
@end example
To receive a stream in realtime:
@example
ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp @var{output}
@end example
@section sap
Session Announcement Protocol (RFC 2974). This is not technically a
@@ -453,6 +578,11 @@ tcp://@var{hostname}:@var{port}[?@var{options}]
@item listen
Listen for an incoming connection
@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.
@example
ffmpeg -i @var{input} -f @var{format} tcp://@var{hostname}:@var{port}?listen
ffplay tcp://@var{hostname}:@var{port}
@@ -460,6 +590,48 @@ ffplay tcp://@var{hostname}:@var{port}
@end table
@section tls
Transport Layer Security/Secure Sockets Layer
The required syntax for a TLS/SSL url is:
@example
tls://@var{hostname}:@var{port}[?@var{options}]
@end example
@table @option
@item listen
Act as a server, listening for an incoming connection.
@item cafile=@var{filename}
Certificate authority file. The file must be in OpenSSL PEM format.
@item cert=@var{filename}
Certificate file. The file must be in OpenSSL PEM format.
@item key=@var{filename}
Private key file.
@item verify=@var{0|1}
Verify the peer's certificate.
@end table
Example command lines:
To create a TLS/SSL server that serves an input stream.
@example
ffmpeg -i @var{input} -f @var{format} tls://@var{hostname}:@var{port}?listen&cert=@var{server.crt}&key=@var{server.key}
@end example
To play back a stream from the TLS/SSL server using @command{ffplay}:
@example
ffplay tls://@var{hostname}:@var{port}
@end example
@section udp
User Datagram Protocol.
@@ -469,16 +641,23 @@ The required syntax for a UDP url is:
udp://@var{hostname}:@var{port}[?@var{options}]
@end example
@var{options} contains a list of &-seperated options of the form @var{key}=@var{val}.
Follow the list of supported 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
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 buffer size in bytes
Set the UDP socket buffer size in bytes. This is used both for the
receiving and the sending buffer size.
@item localport=@var{port}
override the local UDP port to bind with
Override the local UDP port to bind with.
@item localaddr=@var{addr}
Choose the local IP address. This is useful e.g. if sending multicast
@@ -486,13 +665,13 @@ and the host has multiple interfaces, where the user can choose
which interface to send on by specifying the IP address of that interface.
@item pkt_size=@var{size}
set the size in bytes of UDP packets
Set the size in bytes of UDP packets.
@item reuse=@var{1|0}
explicitly allow or disallow reusing UDP sockets
Explicitly allow or disallow reusing UDP sockets.
@item ttl=@var{ttl}
set the time to live value (for multicast only)
Set the time to live value (for multicast only).
@item connect=@var{1|0}
Initialize the UDP socket with @code{connect()}. In this case, the
@@ -504,9 +683,28 @@ and makes writes return with AVERROR(ECONNREFUSED) if "destination
unreachable" is received.
For receiving, this gives the benefit of only receiving packets from
the specified peer address/port.
@item sources=@var{address}[,@var{address}]
Only receive packets sent to the multicast group from one of the
specified sender IP addresses.
@item block=@var{address}[,@var{address}]
Ignore packets sent to the multicast group from the specified
sender IP addresses.
@item fifo_size=@var{units}
Set the UDP receiving circular buffer size, expressed as a number of
packets with size of 188 bytes. If not specified defaults to 7*4096.
@item overrun_nonfatal=@var{1|0}
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.
@end table
Some usage examples of the udp protocol with @command{ffmpeg} follow.
Some usage examples of the UDP protocol with @command{ffmpeg} follow.
To stream over UDP to a remote endpoint:
@example

View File

@@ -144,7 +144,7 @@ The undefined value can be expressed using the "0:0" string.
@section Color
It can be the name of a color (case insensitive match) or a
[0x|#]RRGGBB[AA] sequence, possibly followed by "@" and a string
[0x|#]RRGGBB[AA] sequence, possibly followed by "@@" and a string
representing the alpha component.
The alpha component may be a string composed by "0x" followed by an

View File

@@ -158,6 +158,9 @@ $AFTER_BODY_OPEN
EOT
}
# declare encoding in header
$IN_ENCODING = $ENCODING = "utf-8";
# no navigation elements
$SECTION_NAVIGATION = 0;
# the same for texi2html 5.0

5042
ffmpeg.c

File diff suppressed because it is too large Load Diff

409
ffmpeg.h Normal file
View File

@@ -0,0 +1,409 @@
/*
* 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
*/
#ifndef FFMPEG_H
#define FFMPEG_H
#include "config.h"
#include <stdint.h>
#include <stdio.h>
#include <signal.h>
#if HAVE_PTHREADS
#include <pthread.h>
#endif
#include "cmdutils.h"
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/avfiltergraph.h"
#include "libavutil/avutil.h"
#include "libavutil/dict.h"
#include "libavutil/fifo.h"
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
#include "libswresample/swresample.h"
#define VSYNC_AUTO -1
#define VSYNC_PASSTHROUGH 0
#define VSYNC_CFR 1
#define VSYNC_VFR 2
#define VSYNC_DROP 0xff
#define MAX_STREAMS 1024 /* arbitrary sanity check value */
/* select an input stream for an output stream */
typedef struct StreamMap {
int disabled; /** 1 is this mapping is disabled by a negative map */
int file_index;
int stream_index;
int sync_file_index;
int sync_stream_index;
char *linklabel; /** name of an output link, for mapping lavfi outputs */
} StreamMap;
typedef struct {
int file_idx, stream_idx, channel_idx; // input
int ofile_idx, ostream_idx; // output
} AudioChannelMap;
typedef struct OptionsContext {
/* input/output options */
int64_t start_time;
const char *format;
SpecifierOpt *codec_names;
int nb_codec_names;
SpecifierOpt *audio_channels;
int nb_audio_channels;
SpecifierOpt *audio_sample_rate;
int nb_audio_sample_rate;
SpecifierOpt *frame_rates;
int nb_frame_rates;
SpecifierOpt *frame_sizes;
int nb_frame_sizes;
SpecifierOpt *frame_pix_fmts;
int nb_frame_pix_fmts;
/* input options */
int64_t input_ts_offset;
int rate_emu;
SpecifierOpt *ts_scale;
int nb_ts_scale;
SpecifierOpt *dump_attachment;
int nb_dump_attachment;
/* output options */
StreamMap *stream_maps;
int nb_stream_maps;
AudioChannelMap *audio_channel_maps; /* one info entry per -map_channel */
int nb_audio_channel_maps; /* number of (valid) -map_channel settings */
int metadata_global_manual;
int metadata_streams_manual;
int metadata_chapters_manual;
const char **attachments;
int nb_attachments;
int chapters_input_file;
int64_t recording_time;
uint64_t limit_filesize;
float mux_preload;
float mux_max_delay;
int shortest;
int video_disable;
int audio_disable;
int subtitle_disable;
int data_disable;
/* indexed by output file stream index */
int *streamid_map;
int nb_streamid_map;
SpecifierOpt *metadata;
int nb_metadata;
SpecifierOpt *max_frames;
int nb_max_frames;
SpecifierOpt *bitstream_filters;
int nb_bitstream_filters;
SpecifierOpt *codec_tags;
int nb_codec_tags;
SpecifierOpt *sample_fmts;
int nb_sample_fmts;
SpecifierOpt *qscale;
int nb_qscale;
SpecifierOpt *forced_key_frames;
int nb_forced_key_frames;
SpecifierOpt *force_fps;
int nb_force_fps;
SpecifierOpt *frame_aspect_ratios;
int nb_frame_aspect_ratios;
SpecifierOpt *rc_overrides;
int nb_rc_overrides;
SpecifierOpt *intra_matrices;
int nb_intra_matrices;
SpecifierOpt *inter_matrices;
int nb_inter_matrices;
SpecifierOpt *top_field_first;
int nb_top_field_first;
SpecifierOpt *metadata_map;
int nb_metadata_map;
SpecifierOpt *presets;
int nb_presets;
SpecifierOpt *copy_initial_nonkeyframes;
int nb_copy_initial_nonkeyframes;
SpecifierOpt *copy_prior_start;
int nb_copy_prior_start;
SpecifierOpt *filters;
int nb_filters;
SpecifierOpt *fix_sub_duration;
int nb_fix_sub_duration;
SpecifierOpt *pass;
int nb_pass;
SpecifierOpt *passlogfiles;
int nb_passlogfiles;
} OptionsContext;
typedef struct InputFilter {
AVFilterContext *filter;
struct InputStream *ist;
struct FilterGraph *graph;
uint8_t *name;
} InputFilter;
typedef struct OutputFilter {
AVFilterContext *filter;
struct OutputStream *ost;
struct FilterGraph *graph;
uint8_t *name;
/* temporary storage until stream maps are processed */
AVFilterInOut *out_tmp;
} OutputFilter;
typedef struct FilterGraph {
int index;
const char *graph_desc;
AVFilterGraph *graph;
InputFilter **inputs;
int nb_inputs;
OutputFilter **outputs;
int nb_outputs;
} FilterGraph;
typedef struct InputStream {
int file_index;
AVStream *st;
int discard; /* true if stream data should be discarded */
int decoding_needed; /* true if the packets must be decoded in 'raw_fifo' */
AVCodec *dec;
AVFrame *decoded_frame;
int64_t start; /* time when read started */
/* predicted dts of the next packet read for this stream or (when there are
* several frames in a packet) of the next frame in current packet (in AV_TIME_BASE units) */
int64_t next_dts;
int64_t dts; ///< dts of the last packet read for this stream (in AV_TIME_BASE units)
int64_t next_pts; ///< synthetic pts for the next decode frame (in AV_TIME_BASE units)
int64_t pts; ///< current pts of the decoded frame (in AV_TIME_BASE units)
int wrap_correction_done;
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;
AVRational framerate; /* framerate forced with -r */
int top_field_first;
int resample_height;
int resample_width;
int resample_pix_fmt;
int resample_sample_fmt;
int resample_sample_rate;
int resample_channels;
uint64_t resample_channel_layout;
int fix_sub_duration;
struct { /* previous decoded subtitle and related variables */
int got_output;
int ret;
AVSubtitle subtitle;
} prev_sub;
struct sub2video {
int64_t last_pts;
AVFilterBufferRef *ref;
int w, h;
} sub2video;
/* a pool of free buffers for decoded data */
FrameBuffer *buffer_pool;
int dr1;
/* decoded data from this stream goes into all those filters
* currently video and audio only */
InputFilter **filters;
int nb_filters;
} InputStream;
typedef struct InputFile {
AVFormatContext *ctx;
int eof_reached; /* true if eof reached */
int eagain; /* true if last read attempt returned EAGAIN */
int ist_index; /* index of first stream in input_streams */
int64_t ts_offset;
int nb_streams; /* number of stream that ffmpeg is aware of; may be different
from ctx.nb_streams if new streams appear during av_read_frame() */
int nb_streams_warn; /* number of streams that the user was warned of */
int rate_emu;
#if HAVE_PTHREADS
pthread_t thread; /* thread reading from this file */
int finished; /* the thread has exited */
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;
typedef struct OutputStream {
int file_index; /* file index */
int index; /* stream index in the output file */
int source_index; /* InputStream index */
AVStream *st; /* stream in the output file */
int encoding_needed; /* true if encoding needed for this stream */
int frame_number;
/* input pts and corresponding output pts
for A/V sync */
struct InputStream *sync_ist; /* input stream to sync against */
int64_t sync_opts; /* output frame counter, could be changed to some true timestamp */ // FIXME look at frame_number
/* pts of the first frame encoded for this stream, used for limiting
* recording time */
int64_t first_pts;
AVBitStreamFilterContext *bitstream_filters;
AVCodec *enc;
int64_t max_frames;
AVFrame *filtered_frame;
/* video only */
AVRational frame_rate;
int force_fps;
int top_field_first;
float frame_aspect_ratio;
float last_quality;
/* forced key frames */
int64_t *forced_kf_pts;
int forced_kf_count;
int forced_kf_index;
char *forced_keyframes;
/* audio only */
int audio_channels_map[SWR_CH_MAX]; /* list of the channels id to pick from the source stream */
int audio_channels_mapped; /* number of channels in audio_channels_map */
char *logfile_prefix;
FILE *logfile;
OutputFilter *filter;
char *avfilter;
int64_t sws_flags;
int64_t swr_dither_method;
double swr_dither_scale;
AVDictionary *opts;
int 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;
int copy_initial_nonkeyframes;
int copy_prior_start;
int keep_pix_fmt;
} OutputStream;
typedef struct OutputFile {
AVFormatContext *ctx;
AVDictionary *opts;
int ost_index; /* index of the first stream in output_streams */
int64_t recording_time; ///< desired length of the resulting file in microseconds == AV_TIME_BASE units
int64_t start_time; ///< start time in microseconds == AV_TIME_BASE units
uint64_t limit_filesize; /* filesize limit expressed in bytes */
int shortest;
} OutputFile;
extern InputStream **input_streams;
extern int nb_input_streams;
extern InputFile **input_files;
extern int nb_input_files;
extern OutputStream **output_streams;
extern int nb_output_streams;
extern OutputFile **output_files;
extern int nb_output_files;
extern FilterGraph **filtergraphs;
extern int nb_filtergraphs;
extern char *vstats_filename;
extern float audio_drift_threshold;
extern float dts_delta_threshold;
extern float dts_error_threshold;
extern int audio_volume;
extern int audio_sync_method;
extern int video_sync_method;
extern int do_benchmark;
extern int do_benchmark_all;
extern int do_deinterlace;
extern int do_hex_dump;
extern int do_pkt_dump;
extern int copy_ts;
extern int copy_tb;
extern int debug_ts;
extern int exit_on_error;
extern int print_stats;
extern int qp_hist;
extern int same_quant;
extern int stdin_interaction;
extern int frame_bits_per_raw_sample;
extern AVIOContext *progress_avio;
extern const AVIOInterruptCB int_cb;
extern const OptionDef options[];
void term_init(void);
void term_exit(void);
void reset_options(OptionsContext *o, int is_input);
void show_usage(void);
void opt_output_file(void *optctx, const char *filename);
void assert_avoptions(AVDictionary *m);
int guess_input_channel_layout(InputStream *ist);
enum PixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum PixelFormat target);
void choose_sample_fmt(AVStream *st, AVCodec *codec);
int configure_filtergraph(FilterGraph *fg);
int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out);
int ist_in_filtergraph(FilterGraph *fg, InputStream *ist);
FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost);
#endif /* FFMPEG_H */

774
ffmpeg_filter.c Normal file
View File

@@ -0,0 +1,774 @@
/*
* ffmpeg filter configuration
*
* 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 "ffmpeg.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/avfiltergraph.h"
#include "libavfilter/buffersink.h"
#include "libavutil/audioconvert.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h"
#include "libavutil/imgutils.h"
#include "libavutil/samplefmt.h"
enum PixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum PixelFormat target)
{
if (codec && codec->pix_fmts) {
const enum PixelFormat *p = codec->pix_fmts;
int has_alpha= av_pix_fmt_descriptors[target].nb_components % 2 == 0;
enum PixelFormat best= PIX_FMT_NONE;
if (st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (st->codec->codec_id == AV_CODEC_ID_MJPEG) {
p = (const enum PixelFormat[]) { PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_NONE };
} else if (st->codec->codec_id == AV_CODEC_ID_LJPEG) {
p = (const enum PixelFormat[]) { PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUVJ444P, PIX_FMT_YUV420P,
PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_BGRA, PIX_FMT_NONE };
}
}
for (; *p != PIX_FMT_NONE; p++) {
best= avcodec_find_best_pix_fmt_of_2(best, *p, target, has_alpha, NULL);
if (*p == target)
break;
}
if (*p == PIX_FMT_NONE) {
if (target != PIX_FMT_NONE)
av_log(NULL, AV_LOG_WARNING,
"Incompatible pixel format '%s' for codec '%s', auto-selecting format '%s'\n",
av_pix_fmt_descriptors[target].name,
codec->name,
av_pix_fmt_descriptors[best].name);
return best;
}
}
return target;
}
void choose_sample_fmt(AVStream *st, AVCodec *codec)
{
if (codec && codec->sample_fmts) {
const enum AVSampleFormat *p = codec->sample_fmts;
for (; *p != -1; p++) {
if (*p == st->codec->sample_fmt)
break;
}
if (*p == -1) {
if((codec->capabilities & CODEC_CAP_LOSSLESS) && av_get_sample_fmt_name(st->codec->sample_fmt) > av_get_sample_fmt_name(codec->sample_fmts[0]))
av_log(NULL, AV_LOG_ERROR, "Conversion will not be lossless.\n");
if(av_get_sample_fmt_name(st->codec->sample_fmt))
av_log(NULL, AV_LOG_WARNING,
"Incompatible sample format '%s' for codec '%s', auto-selecting format '%s'\n",
av_get_sample_fmt_name(st->codec->sample_fmt),
codec->name,
av_get_sample_fmt_name(codec->sample_fmts[0]));
st->codec->sample_fmt = codec->sample_fmts[0];
}
}
}
static char *choose_pix_fmts(OutputStream *ost)
{
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 == PIX_FMT_NONE)
return NULL;
return av_strdup(av_get_pix_fmt_name(ost->st->codec->pix_fmt));
}
if (ost->st->codec->pix_fmt != PIX_FMT_NONE) {
return av_strdup(av_get_pix_fmt_name(choose_pixel_fmt(ost->st, ost->enc, ost->st->codec->pix_fmt)));
} else if (ost->enc && ost->enc->pix_fmts) {
const enum PixelFormat *p;
AVIOContext *s = NULL;
uint8_t *ret;
int len;
if (avio_open_dyn_buf(&s) < 0)
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) {
p = (const enum PixelFormat[]) { PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_NONE };
} else if (ost->st->codec->codec_id == AV_CODEC_ID_LJPEG) {
p = (const enum PixelFormat[]) { PIX_FMT_YUVJ420P, PIX_FMT_YUVJ422P, PIX_FMT_YUVJ444P, PIX_FMT_YUV420P,
PIX_FMT_YUV422P, PIX_FMT_YUV444P, PIX_FMT_BGRA, PIX_FMT_NONE };
}
}
for (; *p != PIX_FMT_NONE; p++) {
const char *name = av_get_pix_fmt_name(*p);
avio_printf(s, "%s:", name);
}
len = avio_close_dyn_buf(s, &ret);
ret[len - 1] = 0;
return ret;
} else
return NULL;
}
/**
* Define a function for building a string containing a list of
* allowed formats,
*/
#define DEF_CHOOSE_FORMAT(type, var, supported_list, none, get_name, separator)\
static char *choose_ ## var ## s(OutputStream *ost) \
{ \
if (ost->st->codec->var != none) { \
get_name(ost->st->codec->var); \
return av_strdup(name); \
} else if (ost->enc->supported_list) { \
const type *p; \
AVIOContext *s = NULL; \
uint8_t *ret; \
int len; \
\
if (avio_open_dyn_buf(&s) < 0) \
exit_program(1); \
\
for (p = ost->enc->supported_list; *p != none; p++) { \
get_name(*p); \
avio_printf(s, "%s" separator, name); \
} \
len = avio_close_dyn_buf(s, &ret); \
ret[len - 1] = 0; \
return ret; \
} else \
return NULL; \
}
// DEF_CHOOSE_FORMAT(enum PixelFormat, pix_fmt, pix_fmts, PIX_FMT_NONE,
// GET_PIX_FMT_NAME, ":")
DEF_CHOOSE_FORMAT(enum AVSampleFormat, sample_fmt, sample_fmts,
AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME, ",")
DEF_CHOOSE_FORMAT(int, sample_rate, supported_samplerates, 0,
GET_SAMPLE_RATE_NAME, ",")
DEF_CHOOSE_FORMAT(uint64_t, channel_layout, channel_layouts, 0,
GET_CH_LAYOUT_NAME, ",")
FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost)
{
FilterGraph *fg = av_mallocz(sizeof(*fg));
if (!fg)
exit_program(1);
fg->index = nb_filtergraphs;
fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs), &fg->nb_outputs,
fg->nb_outputs + 1);
if (!(fg->outputs[0] = av_mallocz(sizeof(*fg->outputs[0]))))
exit_program(1);
fg->outputs[0]->ost = ost;
fg->outputs[0]->graph = fg;
ost->filter = fg->outputs[0];
fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs), &fg->nb_inputs,
fg->nb_inputs + 1);
if (!(fg->inputs[0] = av_mallocz(sizeof(*fg->inputs[0]))))
exit_program(1);
fg->inputs[0]->ist = ist;
fg->inputs[0]->graph = fg;
ist->filters = grow_array(ist->filters, sizeof(*ist->filters),
&ist->nb_filters, ist->nb_filters + 1);
ist->filters[ist->nb_filters - 1] = fg->inputs[0];
filtergraphs = grow_array(filtergraphs, sizeof(*filtergraphs),
&nb_filtergraphs, nb_filtergraphs + 1);
filtergraphs[nb_filtergraphs - 1] = fg;
return fg;
}
static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
{
InputStream *ist = NULL;
enum AVMediaType type = avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx);
int i;
// TODO: support other filter types
if (type != AVMEDIA_TYPE_VIDEO && type != AVMEDIA_TYPE_AUDIO) {
av_log(NULL, AV_LOG_FATAL, "Only video and audio filters supported "
"currently.\n");
exit_program(1);
}
if (in->name) {
AVFormatContext *s;
AVStream *st = NULL;
char *p;
int file_idx = strtol(in->name, &p, 0);
if (file_idx < 0 || file_idx >= nb_input_files) {
av_log(NULL, AV_LOG_FATAL, "Invalid file index %d in filtergraph description %s.\n",
file_idx, fg->graph_desc);
exit_program(1);
}
s = input_files[file_idx]->ctx;
for (i = 0; i < s->nb_streams; i++) {
enum AVMediaType stream_type = s->streams[i]->codec->codec_type;
if (stream_type != type &&
!(stream_type == AVMEDIA_TYPE_SUBTITLE &&
type == AVMEDIA_TYPE_VIDEO /* sub2video hack */))
continue;
if (check_stream_specifier(s, s->streams[i], *p == ':' ? p + 1 : p) == 1) {
st = s->streams[i];
break;
}
}
if (!st) {
av_log(NULL, AV_LOG_FATAL, "Stream specifier '%s' in filtergraph description %s "
"matches no streams.\n", p, fg->graph_desc);
exit_program(1);
}
ist = input_streams[input_files[file_idx]->ist_index + st->index];
} else {
/* 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)
break;
}
if (i == nb_input_streams) {
av_log(NULL, AV_LOG_FATAL, "Cannot find a matching stream for "
"unlabeled input pad %d on filter %s\n", in->pad_idx,
in->filter_ctx->name);
exit_program(1);
}
}
av_assert0(ist);
ist->discard = 0;
ist->decoding_needed++;
ist->st->discard = AVDISCARD_NONE;
fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs),
&fg->nb_inputs, fg->nb_inputs + 1);
if (!(fg->inputs[fg->nb_inputs - 1] = av_mallocz(sizeof(*fg->inputs[0]))))
exit_program(1);
fg->inputs[fg->nb_inputs - 1]->ist = ist;
fg->inputs[fg->nb_inputs - 1]->graph = fg;
ist->filters = grow_array(ist->filters, sizeof(*ist->filters),
&ist->nb_filters, ist->nb_filters + 1);
ist->filters[ist->nb_filters - 1] = fg->inputs[fg->nb_inputs - 1];
}
static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
{
char *pix_fmts;
OutputStream *ost = ofilter->ost;
AVCodecContext *codec = ost->st->codec;
AVFilterContext *last_filter = out->filter_ctx;
int pad_idx = out->pad_idx;
int ret;
char name[255];
AVBufferSinkParams *buffersink_params = av_buffersink_params_alloc();
snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&ofilter->filter,
avfilter_get_by_name("ffbuffersink"),
name, NULL, NULL, fg->graph);
av_freep(&buffersink_params);
if (ret < 0)
return ret;
if (codec->width || codec->height) {
char args[255];
AVFilterContext *filter;
snprintf(args, sizeof(args), "%d:%d:flags=0x%X",
codec->width,
codec->height,
(unsigned)ost->sws_flags);
snprintf(name, sizeof(name), "scaler for output stream %d:%d",
ost->file_index, ost->index);
if ((ret = avfilter_graph_create_filter(&filter, avfilter_get_by_name("scale"),
name, args, NULL, fg->graph)) < 0)
return ret;
if ((ret = avfilter_link(last_filter, pad_idx, filter, 0)) < 0)
return ret;
last_filter = filter;
pad_idx = 0;
}
if ((pix_fmts = choose_pix_fmts(ost))) {
AVFilterContext *filter;
snprintf(name, sizeof(name), "pixel format for output stream %d:%d",
ost->file_index, ost->index);
if ((ret = avfilter_graph_create_filter(&filter,
avfilter_get_by_name("format"),
"format", pix_fmts, NULL,
fg->graph)) < 0)
return ret;
if ((ret = avfilter_link(last_filter, pad_idx, filter, 0)) < 0)
return ret;
last_filter = filter;
pad_idx = 0;
av_freep(&pix_fmts);
}
if (ost->frame_rate.num && 0) {
AVFilterContext *fps;
char args[255];
snprintf(args, sizeof(args), "fps=%d/%d", ost->frame_rate.num,
ost->frame_rate.den);
snprintf(name, sizeof(name), "fps for output stream %d:%d",
ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&fps, avfilter_get_by_name("fps"),
name, args, NULL, fg->graph);
if (ret < 0)
return ret;
ret = avfilter_link(last_filter, pad_idx, fps, 0);
if (ret < 0)
return ret;
last_filter = fps;
pad_idx = 0;
}
if ((ret = avfilter_link(last_filter, pad_idx, ofilter->filter, 0)) < 0)
return ret;
return 0;
}
static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
{
OutputStream *ost = ofilter->ost;
AVCodecContext *codec = ost->st->codec;
AVFilterContext *last_filter = out->filter_ctx;
int pad_idx = out->pad_idx;
char *sample_fmts, *sample_rates, *channel_layouts;
char name[255];
int ret;
snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&ofilter->filter,
avfilter_get_by_name("ffabuffersink"),
name, NULL, NULL, fg->graph);
if (ret < 0)
return ret;
#define AUTO_INSERT_FILTER(opt_name, filter_name, arg) do { \
AVFilterContext *filt_ctx; \
\
av_log(NULL, AV_LOG_INFO, opt_name " is forwarded to lavfi " \
"similarly to -af " filter_name "=%s.\n", arg); \
\
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(filter_name), \
filter_name, arg, NULL, fg->graph); \
if (ret < 0) \
return ret; \
\
ret = avfilter_link(last_filter, pad_idx, filt_ctx, 0); \
if (ret < 0) \
return ret; \
\
last_filter = filt_ctx; \
pad_idx = 0; \
} while (0)
if (ost->audio_channels_mapped) {
int i;
AVBPrint pan_buf;
av_bprint_init(&pan_buf, 256, 8192);
av_bprintf(&pan_buf, "0x%"PRIx64,
av_get_default_channel_layout(ost->audio_channels_mapped));
for (i = 0; i < ost->audio_channels_mapped; i++)
if (ost->audio_channels_map[i] != -1)
av_bprintf(&pan_buf, ":c%d=c%d", i, ost->audio_channels_map[i]);
AUTO_INSERT_FILTER("-map_channel", "pan", pan_buf.str);
av_bprint_finalize(&pan_buf, NULL);
}
if (codec->channels && !codec->channel_layout)
codec->channel_layout = av_get_default_channel_layout(codec->channels);
sample_fmts = choose_sample_fmts(ost);
sample_rates = choose_sample_rates(ost);
channel_layouts = choose_channel_layouts(ost);
if (sample_fmts || sample_rates || channel_layouts) {
AVFilterContext *format;
char args[256];
args[0] = 0;
if (sample_fmts)
av_strlcatf(args, sizeof(args), "sample_fmts=%s:",
sample_fmts);
if (sample_rates)
av_strlcatf(args, sizeof(args), "sample_rates=%s:",
sample_rates);
if (channel_layouts)
av_strlcatf(args, sizeof(args), "channel_layouts=%s:",
channel_layouts);
av_freep(&sample_fmts);
av_freep(&sample_rates);
av_freep(&channel_layouts);
snprintf(name, sizeof(name), "audio format for output stream %d:%d",
ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&format,
avfilter_get_by_name("aformat"),
name, args, NULL, fg->graph);
if (ret < 0)
return ret;
ret = avfilter_link(last_filter, pad_idx, format, 0);
if (ret < 0)
return ret;
last_filter = format;
pad_idx = 0;
}
if (audio_volume != 256 && 0) {
char args[256];
snprintf(args, sizeof(args), "%f", audio_volume / 256.);
AUTO_INSERT_FILTER("-vol", "volume", args);
}
if ((ret = avfilter_link(last_filter, pad_idx, ofilter->filter, 0)) < 0)
return ret;
return 0;
}
#define DESCRIBE_FILTER_LINK(f, inout, in) \
{ \
AVFilterContext *ctx = inout->filter_ctx; \
AVFilterPad *pads = in ? ctx->input_pads : ctx->output_pads; \
int nb_pads = in ? ctx->input_count : ctx->output_count; \
AVIOContext *pb; \
\
if (avio_open_dyn_buf(&pb) < 0) \
exit_program(1); \
\
avio_printf(pb, "%s", ctx->filter->name); \
if (nb_pads > 1) \
avio_printf(pb, ":%s", avfilter_pad_get_name(pads, inout->pad_idx));\
avio_w8(pb, 0); \
avio_close_dyn_buf(pb, &f->name); \
}
int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
{
av_freep(&ofilter->name);
DESCRIBE_FILTER_LINK(ofilter, out, 0);
switch (avfilter_pad_get_type(out->filter_ctx->output_pads, out->pad_idx)) {
case AVMEDIA_TYPE_VIDEO: return configure_output_video_filter(fg, ofilter, out);
case AVMEDIA_TYPE_AUDIO: return configure_output_audio_filter(fg, ofilter, out);
default: av_assert0(0);
}
}
static int sub2video_prepare(InputStream *ist)
{
AVFormatContext *avf = input_files[ist->file_index]->ctx;
int i, ret, w, h;
uint8_t *image[4];
int linesize[4];
/* 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;
if (!(w && h)) {
for (i = 0; i < avf->nb_streams; i++) {
if (avf->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
w = FFMAX(w, avf->streams[i]->codec->width);
h = FFMAX(h, avf->streams[i]->codec->height);
}
}
if (!(w && h)) {
w = FFMAX(w, 720);
h = FFMAX(h, 576);
}
av_log(avf, AV_LOG_INFO, "sub2video: using %dx%d canvas\n", w, h);
}
ist->sub2video.w = ist->st->codec->width = w;
ist->sub2video.h = ist->st->codec->height = h;
/* rectangles are PIX_FMT_PAL8, but we have no guarantee that the
palettes for all rectangles are identical or compatible */
ist->st->codec->pix_fmt = PIX_FMT_RGB32;
ret = av_image_alloc(image, linesize, w, h, PIX_FMT_RGB32, 32);
if (ret < 0)
return ret;
memset(image[0], 0, h * linesize[0]);
ist->sub2video.ref = avfilter_get_video_buffer_ref_from_arrays(
image, linesize, AV_PERM_READ | AV_PERM_PRESERVE,
w, h, PIX_FMT_RGB32);
if (!ist->sub2video.ref) {
av_free(image[0]);
return AVERROR(ENOMEM);
}
return 0;
}
static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
AVFilterInOut *in)
{
AVFilterContext *first_filter = in->filter_ctx;
AVFilter *filter = avfilter_get_by_name("buffer");
InputStream *ist = ifilter->ist;
AVRational tb = ist->framerate.num ? av_inv_q(ist->framerate) :
ist->st->time_base;
AVRational fr = ist->framerate.num ? ist->framerate :
ist->st->r_frame_rate;
AVRational sar;
AVBPrint args;
char name[255];
int pad_idx = in->pad_idx;
int ret;
if (ist->st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
ret = sub2video_prepare(ist);
if (ret < 0)
return ret;
}
sar = ist->st->sample_aspect_ratio.num ?
ist->st->sample_aspect_ratio :
ist->st->codec->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->st->codec->width,
ist->st->codec->height, ist->st->codec->pix_fmt,
tb.num, tb.den, sar.num, sar.den,
SWS_BILINEAR + ((ist->st->codec->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,
ist->file_index, ist->st->index);
if ((ret = avfilter_graph_create_filter(&ifilter->filter, filter, name,
args.str, NULL, fg->graph)) < 0)
return ret;
if (ist->framerate.num) {
AVFilterContext *setpts;
snprintf(name, sizeof(name), "force CFR for input from stream %d:%d",
ist->file_index, ist->st->index);
if ((ret = avfilter_graph_create_filter(&setpts,
avfilter_get_by_name("setpts"),
name, "N", NULL,
fg->graph)) < 0)
return ret;
if ((ret = avfilter_link(setpts, 0, first_filter, pad_idx)) < 0)
return ret;
first_filter = setpts;
pad_idx = 0;
}
if ((ret = avfilter_link(ifilter->filter, 0, first_filter, pad_idx)) < 0)
return ret;
return 0;
}
static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
AVFilterInOut *in)
{
AVFilterContext *first_filter = in->filter_ctx;
AVFilter *filter = avfilter_get_by_name("abuffer");
InputStream *ist = ifilter->ist;
int pad_idx = in->pad_idx;
char args[255], name[255];
int ret;
snprintf(args, sizeof(args), "time_base=%d/%d:sample_rate=%d:sample_fmt=%s"
":channel_layout=0x%"PRIx64,
1, ist->st->codec->sample_rate,
ist->st->codec->sample_rate,
av_get_sample_fmt_name(ist->st->codec->sample_fmt),
ist->st->codec->channel_layout);
snprintf(name, sizeof(name), "graph %d input from stream %d:%d", fg->index,
ist->file_index, ist->st->index);
if ((ret = avfilter_graph_create_filter(&ifilter->filter, filter,
name, args, NULL,
fg->graph)) < 0)
return ret;
#define AUTO_INSERT_FILTER_INPUT(opt_name, filter_name, arg) do { \
AVFilterContext *filt_ctx; \
\
av_log(NULL, AV_LOG_INFO, opt_name " is forwarded to lavfi " \
"similarly to -af " filter_name "=%s.\n", arg); \
\
snprintf(name, sizeof(name), "graph %d %s for input stream %d:%d", \
fg->index, filter_name, ist->file_index, ist->st->index); \
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(filter_name), \
name, arg, NULL, fg->graph); \
if (ret < 0) \
return ret; \
\
ret = avfilter_link(filt_ctx, 0, first_filter, pad_idx); \
if (ret < 0) \
return ret; \
\
first_filter = filt_ctx; \
} while (0)
if (audio_sync_method > 0) {
char args[256] = {0};
av_strlcatf(args, sizeof(args), "min_comp=0.001:min_hard_comp=%f", audio_drift_threshold);
if (audio_sync_method > 1)
av_strlcatf(args, sizeof(args), ":max_soft_comp=%f", audio_sync_method/(double)ist->st->codec->sample_rate);
AUTO_INSERT_FILTER_INPUT("-async", "aresample", args);
}
// if (ost->audio_channels_mapped) {
// int i;
// AVBPrint pan_buf;
// av_bprint_init(&pan_buf, 256, 8192);
// av_bprintf(&pan_buf, "0x%"PRIx64,
// av_get_default_channel_layout(ost->audio_channels_mapped));
// for (i = 0; i < ost->audio_channels_mapped; i++)
// if (ost->audio_channels_map[i] != -1)
// av_bprintf(&pan_buf, ":c%d=c%d", i, ost->audio_channels_map[i]);
// AUTO_INSERT_FILTER_INPUT("-map_channel", "pan", pan_buf.str);
// av_bprint_finalize(&pan_buf, NULL);
// }
if (audio_volume != 256) {
char args[256];
snprintf(args, sizeof(args), "%f", audio_volume / 256.);
AUTO_INSERT_FILTER_INPUT("-vol", "volume", args);
}
if ((ret = avfilter_link(ifilter->filter, 0, first_filter, pad_idx)) < 0)
return ret;
return 0;
}
static int configure_input_filter(FilterGraph *fg, InputFilter *ifilter,
AVFilterInOut *in)
{
av_freep(&ifilter->name);
DESCRIBE_FILTER_LINK(ifilter, in, 1);
switch (avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx)) {
case AVMEDIA_TYPE_VIDEO: return configure_input_video_filter(fg, ifilter, in);
case AVMEDIA_TYPE_AUDIO: return configure_input_audio_filter(fg, ifilter, in);
default: av_assert0(0);
}
}
int configure_filtergraph(FilterGraph *fg)
{
AVFilterInOut *inputs, *outputs, *cur;
int ret, i, init = !fg->graph, simple = !fg->graph_desc;
const char *graph_desc = simple ? fg->outputs[0]->ost->avfilter :
fg->graph_desc;
avfilter_graph_free(&fg->graph);
if (!(fg->graph = avfilter_graph_alloc()))
return AVERROR(ENOMEM);
if (simple) {
OutputStream *ost = fg->outputs[0]->ost;
char args[255];
snprintf(args, sizeof(args), "flags=0x%X", (unsigned)ost->sws_flags);
fg->graph->scale_sws_opts = av_strdup(args);
}
if ((ret = avfilter_graph_parse2(fg->graph, graph_desc, &inputs, &outputs)) < 0)
return ret;
if (simple && (!inputs || inputs->next || !outputs || outputs->next)) {
av_log(NULL, AV_LOG_ERROR, "Simple filtergraph '%s' does not have "
"exactly one input and output.\n", graph_desc);
return AVERROR(EINVAL);
}
for (cur = inputs; !simple && init && cur; cur = cur->next)
init_input_filter(fg, cur);
for (cur = inputs, i = 0; cur; cur = cur->next, i++)
if ((ret = configure_input_filter(fg, fg->inputs[i], cur)) < 0)
return ret;
avfilter_inout_free(&inputs);
if (!init || simple) {
/* we already know the mappings between lavfi outputs and output streams,
* so we can finish the setup */
for (cur = outputs, i = 0; cur; cur = cur->next, i++)
configure_output_filter(fg, fg->outputs[i], cur);
avfilter_inout_free(&outputs);
if ((ret = avfilter_graph_config(fg->graph, NULL)) < 0)
return ret;
} else {
/* wait until output mappings are processed */
for (cur = outputs; cur;) {
fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs),
&fg->nb_outputs, fg->nb_outputs + 1);
if (!(fg->outputs[fg->nb_outputs - 1] = av_mallocz(sizeof(*fg->outputs[0]))))
exit_program(1);
fg->outputs[fg->nb_outputs - 1]->graph = fg;
fg->outputs[fg->nb_outputs - 1]->out_tmp = cur;
cur = cur->next;
fg->outputs[fg->nb_outputs - 1]->out_tmp->next = NULL;
}
}
return 0;
}
int ist_in_filtergraph(FilterGraph *fg, InputStream *ist)
{
int i;
for (i = 0; i < fg->nb_inputs; i++)
if (fg->inputs[i]->ist == ist)
return 1;
return 0;
}

2504
ffmpeg_opt.c Normal file

File diff suppressed because it is too large Load Diff

950
ffplay.c

File diff suppressed because it is too large Load Diff

1462
ffprobe.c

File diff suppressed because it is too large Load Diff

View File

@@ -40,6 +40,7 @@
#include "libavformat/internal.h"
#include "libavformat/url.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/lfg.h"
#include "libavutil/dict.h"
@@ -47,6 +48,8 @@
#include "libavutil/random_seed.h"
#include "libavutil/parseutils.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include <stdarg.h>
#include <unistd.h>
#include <fcntl.h>
@@ -55,7 +58,6 @@
#include <poll.h>
#endif
#include <errno.h>
#include <sys/time.h>
#include <time.h>
#include <sys/wait.h>
#include <signal.h>
@@ -561,9 +563,11 @@ static void start_multicast(void)
default_port = 6000;
for(stream = first_stream; stream != NULL; stream = stream->next) {
if (stream->is_multicast) {
unsigned random0 = av_lfg_get(&random_state);
unsigned random1 = av_lfg_get(&random_state);
/* open the RTP connection */
snprintf(session_id, sizeof(session_id), "%08x%08x",
av_lfg_get(&random_state), av_lfg_get(&random_state));
random0, random1);
/* choose a port if none given */
if (stream->multicast_port == 0) {
@@ -761,7 +765,7 @@ static void start_wait_request(HTTPContext *c, int is_rtsp)
static void http_send_too_busy_reply(int fd)
{
char buffer[300];
char buffer[400];
int len = snprintf(buffer, sizeof(buffer),
"HTTP/1.0 503 Server too busy\r\n"
"Content-type: text/html\r\n"
@@ -771,6 +775,7 @@ static void http_send_too_busy_reply(int fd)
"<p>The number of current connections is %d, and this exceeds the limit of %d.</p>\r\n"
"</body></html>\r\n",
nb_connections, nb_max_connections);
av_assert0(len < sizeof(buffer));
send(fd, buffer, len, 0);
}
@@ -1563,7 +1568,7 @@ static int http_parse_request(HTTPContext *c)
if (stream->stream_type == STREAM_TYPE_REDIRECT) {
c->http_error = 301;
q = c->buffer;
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 301 Moved\r\n"
"Location: %s\r\n"
"Content-type: text/html\r\n"
@@ -1571,6 +1576,7 @@ static int http_parse_request(HTTPContext *c)
"<html><head><title>Moved</title></head><body>\r\n"
"You should be <a href=\"%s\">redirected</a>.\r\n"
"</body></html>\r\n", stream->feed_filename, stream->feed_filename);
q += strlen(q);
/* prepare output buffer */
c->buffer_ptr = c->buffer;
c->buffer_end = q;
@@ -1601,7 +1607,7 @@ static int http_parse_request(HTTPContext *c)
if (c->post == 0 && max_bandwidth < current_bandwidth) {
c->http_error = 503;
q = c->buffer;
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 503 Server too busy\r\n"
"Content-type: text/html\r\n"
"\r\n"
@@ -1610,6 +1616,7 @@ static int http_parse_request(HTTPContext *c)
"<p>The bandwidth being served (including your stream) is %"PRIu64"kbit/sec, "
"and this exceeds the limit of %"PRIu64"kbit/sec.</p>\r\n"
"</body></html>\r\n", current_bandwidth, max_bandwidth);
q += strlen(q);
/* prepare output buffer */
c->buffer_ptr = c->buffer;
c->buffer_end = q;
@@ -1652,7 +1659,7 @@ static int http_parse_request(HTTPContext *c)
q = c->buffer;
switch(redir_type) {
case REDIR_ASX:
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 200 ASX Follows\r\n"
"Content-type: video/x-ms-asf\r\n"
"\r\n"
@@ -1660,22 +1667,25 @@ static int http_parse_request(HTTPContext *c)
//"<!-- Autogenerated by ffserver -->\r\n"
"<ENTRY><REF HREF=\"http://%s/%s%s\"/></ENTRY>\r\n"
"</ASX>\r\n", hostbuf, filename, info);
q += strlen(q);
break;
case REDIR_RAM:
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 200 RAM Follows\r\n"
"Content-type: audio/x-pn-realaudio\r\n"
"\r\n"
"# Autogenerated by ffserver\r\n"
"http://%s/%s%s\r\n", hostbuf, filename, info);
q += strlen(q);
break;
case REDIR_ASF:
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 200 ASF Redirect follows\r\n"
"Content-type: video/x-ms-asf\r\n"
"\r\n"
"[Reference]\r\n"
"Ref1=http://%s/%s%s\r\n", hostbuf, filename, info);
q += strlen(q);
break;
case REDIR_RTSP:
{
@@ -1685,12 +1695,13 @@ static int http_parse_request(HTTPContext *c)
p = strrchr(hostname, ':');
if (p)
*p = '\0';
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 200 RTSP Redirect follows\r\n"
/* XXX: incorrect mime type ? */
"Content-type: application/x-rtsp\r\n"
"\r\n"
"rtsp://%s:%d/%s\r\n", hostname, ntohs(my_rtsp_addr.sin_port), filename);
q += strlen(q);
}
break;
case REDIR_SDP:
@@ -1699,10 +1710,11 @@ static int http_parse_request(HTTPContext *c)
int sdp_data_size, len;
struct sockaddr_in my_addr;
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 200 OK\r\n"
"Content-type: application/sdp\r\n"
"\r\n");
q += strlen(q);
len = sizeof(my_addr);
getsockname(c->fd, (struct sockaddr *)&my_addr, &len);
@@ -1821,12 +1833,12 @@ static int http_parse_request(HTTPContext *c)
}
/* prepare http header */
q = c->buffer;
q += snprintf(q, q - (char *) c->buffer + c->buffer_size, "HTTP/1.0 200 OK\r\n");
c->buffer[0] = 0;
av_strlcatf(c->buffer, c->buffer_size, "HTTP/1.0 200 OK\r\n");
mime_type = c->stream->fmt->mime_type;
if (!mime_type)
mime_type = "application/x-octet-stream";
q += snprintf(q, q - (char *) c->buffer + c->buffer_size, "Pragma: no-cache\r\n");
av_strlcatf(c->buffer, c->buffer_size, "Pragma: no-cache\r\n");
/* for asf, we need extra headers */
if (!strcmp(c->stream->fmt->name,"asf_stream")) {
@@ -1834,10 +1846,11 @@ static int http_parse_request(HTTPContext *c)
c->wmp_client_id = av_lfg_get(&random_state);
q += snprintf(q, q - (char *) c->buffer + c->buffer_size, "Server: Cougar 4.1.0.3923\r\nCache-Control: no-cache\r\nPragma: client-id=%d\r\nPragma: features=\"broadcast\"\r\n", c->wmp_client_id);
av_strlcatf(c->buffer, c->buffer_size, "Server: Cougar 4.1.0.3923\r\nCache-Control: no-cache\r\nPragma: client-id=%d\r\nPragma: features=\"broadcast\"\r\n", c->wmp_client_id);
}
q += snprintf(q, q - (char *) c->buffer + c->buffer_size, "Content-Type: %s\r\n", mime_type);
q += snprintf(q, q - (char *) c->buffer + c->buffer_size, "\r\n");
av_strlcatf(c->buffer, c->buffer_size, "Content-Type: %s\r\n", mime_type);
av_strlcatf(c->buffer, c->buffer_size, "\r\n");
q = c->buffer + strlen(c->buffer);
/* prepare output buffer */
c->http_error = 0;
@@ -1848,7 +1861,7 @@ static int http_parse_request(HTTPContext *c)
send_error:
c->http_error = 404;
q = c->buffer;
q += snprintf(q, c->buffer_size,
snprintf(q, c->buffer_size,
"HTTP/1.0 404 Not Found\r\n"
"Content-type: text/html\r\n"
"\r\n"
@@ -1856,6 +1869,7 @@ static int http_parse_request(HTTPContext *c)
"<head><title>404 Not Found</title></head>\n"
"<body>%s</body>\n"
"</html>\n", msg);
q += strlen(q);
/* prepare output buffer */
c->buffer_ptr = c->buffer;
c->buffer_end = q;
@@ -2020,7 +2034,7 @@ static void compute_status(HTTPContext *c)
char cpuperc[10];
char cpuused[64];
if (fscanf(pid_stat, "%10s %64s", cpuperc,
if (fscanf(pid_stat, "%9s %63s", cpuperc,
cpuused) == 2) {
avio_printf(pb, "Currently using %s%% of the cpu. Total time used %s.\n",
cpuperc, cpuused);
@@ -2923,12 +2937,14 @@ static int prepare_sdp_description(FFStream *stream, uint8_t **pbuffer,
{
AVFormatContext *avc;
AVStream *avs = NULL;
AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
int i;
avc = avformat_alloc_context();
if (avc == NULL) {
if (avc == NULL || !rtp_format) {
return -1;
}
avc->oformat = rtp_format;
av_dict_set(&avc->metadata, "title",
stream->title[0] ? stream->title : "No Title", 0);
avc->nb_streams = stream->nb_streams;
@@ -3093,9 +3109,12 @@ static void rtsp_cmd_setup(HTTPContext *c, const char *url,
found:
/* generate session id if needed */
if (h->session_id[0] == '\0')
if (h->session_id[0] == '\0') {
unsigned random0 = av_lfg_get(&random_state);
unsigned random1 = av_lfg_get(&random_state);
snprintf(h->session_id, sizeof(h->session_id), "%08x%08x",
av_lfg_get(&random_state), av_lfg_get(&random_state));
random0, random1);
}
/* find rtp session, and create it if none found */
rtp_c = find_rtp_session(h->session_id);
@@ -3553,7 +3572,7 @@ static void extract_mpeg4_header(AVFormatContext *infile)
mpeg4_count = 0;
for(i=0;i<infile->nb_streams;i++) {
st = infile->streams[i];
if (st->codec->codec_id == CODEC_ID_MPEG4 &&
if (st->codec->codec_id == AV_CODEC_ID_MPEG4 &&
st->codec->extradata_size == 0) {
mpeg4_count++;
}
@@ -3566,7 +3585,7 @@ static void extract_mpeg4_header(AVFormatContext *infile)
if (av_read_packet(infile, &pkt) < 0)
break;
st = infile->streams[pkt.stream_index];
if (st->codec->codec_id == CODEC_ID_MPEG4 &&
if (st->codec->codec_id == AV_CODEC_ID_MPEG4 &&
st->codec->extradata_size == 0) {
av_freep(&st->codec->extradata);
/* fill extradata with the header */
@@ -3757,7 +3776,7 @@ static void build_feed_streams(void)
s->nb_streams = feed->nb_streams;
s->streams = feed->streams;
if (avformat_write_header(s, NULL) < 0) {
http_log("Container doesn't supports the required parameters\n");
http_log("Container doesn't support the required parameters\n");
exit(1);
}
/* XXX: need better api */
@@ -3882,22 +3901,22 @@ static void add_codec(FFStream *stream, AVCodecContext *av)
memcpy(st->codec, av, sizeof(AVCodecContext));
}
static enum CodecID opt_audio_codec(const char *arg)
static enum AVCodecID opt_audio_codec(const char *arg)
{
AVCodec *p= avcodec_find_encoder_by_name(arg);
if (p == NULL || p->type != AVMEDIA_TYPE_AUDIO)
return CODEC_ID_NONE;
return AV_CODEC_ID_NONE;
return p->id;
}
static enum CodecID opt_video_codec(const char *arg)
static enum AVCodecID opt_video_codec(const char *arg)
{
AVCodec *p= avcodec_find_encoder_by_name(arg);
if (p == NULL || p->type != AVMEDIA_TYPE_VIDEO)
return CODEC_ID_NONE;
return AV_CODEC_ID_NONE;
return p->id;
}
@@ -3940,7 +3959,7 @@ static int ffserver_opt_default(const char *opt, const char *arg,
static int ffserver_opt_preset(const char *arg,
AVCodecContext *avctx, int type,
enum CodecID *audio_id, enum CodecID *video_id)
enum AVCodecID *audio_id, enum AVCodecID *video_id)
{
FILE *f=NULL;
char filename[1000], tmp[1000], tmp2[1000], line[1000];
@@ -4022,7 +4041,7 @@ static int parse_ffconfig(const char *filename)
FFStream **last_stream, *stream, *redirect;
FFStream **last_feed, *feed, *s;
AVCodecContext audio_enc, video_enc;
enum CodecID audio_id, video_id;
enum AVCodecID audio_id, video_id;
f = fopen(filename, "r");
if (!f) {
@@ -4039,8 +4058,8 @@ static int parse_ffconfig(const char *filename)
stream = NULL;
feed = NULL;
redirect = NULL;
audio_id = CODEC_ID_NONE;
video_id = CODEC_ID_NONE;
audio_id = AV_CODEC_ID_NONE;
video_id = AV_CODEC_ID_NONE;
#define ERROR(...) report_config_error(filename, line_num, &errors, __VA_ARGS__)
for(;;) {
@@ -4233,8 +4252,8 @@ static int parse_ffconfig(const char *filename)
avcodec_get_context_defaults3(&video_enc, NULL);
avcodec_get_context_defaults3(&audio_enc, NULL);
audio_id = CODEC_ID_NONE;
video_id = CODEC_ID_NONE;
audio_id = AV_CODEC_ID_NONE;
video_id = AV_CODEC_ID_NONE;
if (stream->fmt) {
audio_id = stream->fmt->audio_codec;
video_id = stream->fmt->video_codec;
@@ -4316,13 +4335,13 @@ static int parse_ffconfig(const char *filename)
} else if (!av_strcasecmp(cmd, "AudioCodec")) {
get_arg(arg, sizeof(arg), &p);
audio_id = opt_audio_codec(arg);
if (audio_id == CODEC_ID_NONE) {
if (audio_id == AV_CODEC_ID_NONE) {
ERROR("Unknown AudioCodec: %s\n", arg);
}
} else if (!av_strcasecmp(cmd, "VideoCodec")) {
get_arg(arg, sizeof(arg), &p);
video_id = opt_video_codec(arg);
if (video_id == CODEC_ID_NONE) {
if (video_id == AV_CODEC_ID_NONE) {
ERROR("Unknown VideoCodec: %s\n", arg);
}
} else if (!av_strcasecmp(cmd, "MaxTime")) {
@@ -4513,9 +4532,9 @@ static int parse_ffconfig(const char *filename)
if (stream)
video_enc.dark_masking = atof(arg);
} else if (!av_strcasecmp(cmd, "NoVideo")) {
video_id = CODEC_ID_NONE;
video_id = AV_CODEC_ID_NONE;
} else if (!av_strcasecmp(cmd, "NoAudio")) {
audio_id = CODEC_ID_NONE;
audio_id = AV_CODEC_ID_NONE;
} else if (!av_strcasecmp(cmd, "ACL")) {
parse_acl_row(stream, feed, NULL, p, filename, line_num);
} else if (!av_strcasecmp(cmd, "DynamicACL")) {
@@ -4553,12 +4572,12 @@ static int parse_ffconfig(const char *filename)
ERROR("No corresponding <Stream> for </Stream>\n");
} else {
if (stream->feed && stream->fmt && strcmp(stream->fmt->name, "ffm") != 0) {
if (audio_id != CODEC_ID_NONE) {
if (audio_id != AV_CODEC_ID_NONE) {
audio_enc.codec_type = AVMEDIA_TYPE_AUDIO;
audio_enc.codec_id = audio_id;
add_codec(stream, &audio_enc);
}
if (video_id != CODEC_ID_NONE) {
if (video_id != AV_CODEC_ID_NONE) {
video_enc.codec_type = AVMEDIA_TYPE_VIDEO;
video_enc.codec_id = video_id;
add_codec(stream, &video_enc);
@@ -4646,13 +4665,12 @@ static void opt_debug(void)
logfilename[0] = '-';
}
static int opt_help(const char *opt, const char *arg)
void show_help_default(const char *opt, const char *arg)
{
printf("usage: ffserver [options]\n"
"Hyper fast multi format Audio/Video streaming server\n");
printf("\n");
show_help_options(options, "Main options:\n", 0, 0);
return 0;
show_help_options(options, "Main options:", 0, 0, 0);
}
static const OptionDef options[] = {

View File

@@ -30,8 +30,7 @@
#include "dsputil.h"
#include "get_bits.h"
//#undef NDEBUG
//#include <assert.h>
#include "libavutil/avassert.h"
#define BLOCK_TYPE_VLC_BITS 5
#define ACDC_VLC_BITS 9
@@ -328,7 +327,7 @@ static inline void mcdc(uint16_t *dst, const uint16_t *src, int log2w,
}
break;
default:
assert(0);
av_assert2(0);
}
}
@@ -343,7 +342,7 @@ static void decode_p_block(FourXContext *f, uint16_t *dst, uint16_t *src,
uint16_t *start = (uint16_t *)f->last_picture.data[0];
uint16_t *end = start + stride * (f->avctx->height - h + 1) - (1 << log2w);
assert(code >= 0 && code <= 6);
av_assert2(code >= 0 && code <= 6);
if (code == 0) {
if (f->g.buffer_end - f->g.buffer < 1) {
@@ -837,7 +836,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
cfrm->size + data_size + FF_INPUT_BUFFER_PADDING_SIZE);
// explicit check needed as memcpy below might not catch a NULL
if (!cfrm->data) {
av_log(f->avctx, AV_LOG_ERROR, "realloc falure");
av_log(f->avctx, AV_LOG_ERROR, "realloc falure\n");
return -1;
}
@@ -982,7 +981,7 @@ static av_cold int decode_end(AVCodecContext *avctx)
AVCodec ff_fourxm_decoder = {
.name = "4xm",
.type = AVMEDIA_TYPE_VIDEO,
.id = CODEC_ID_4XM,
.id = AV_CODEC_ID_4XM,
.priv_data_size = sizeof(FourXContext),
.init = decode_init,
.close = decode_end,

View File

@@ -33,7 +33,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
@@ -220,7 +222,7 @@ static av_cold int decode_end(AVCodecContext *avctx)
AVCodec ff_eightbps_decoder = {
.name = "8bps",
.type = AVMEDIA_TYPE_VIDEO,
.id = CODEC_ID_8BPS,
.id = AV_CODEC_ID_8BPS,
.priv_data_size = sizeof(EightBpsContext),
.init = decode_init,
.close = decode_end,

View File

@@ -37,7 +37,9 @@
* http://aminet.net/mods/smpl/
*/
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "libavutil/common.h"
/** decoder context */
typedef struct EightSvxContext {
@@ -111,17 +113,25 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
/* decode and interleave the first packet */
if (!esc->samples && avpkt) {
uint8_t *deinterleaved_samples, *p = NULL;
int packet_size = avpkt->size;
esc->samples_size = avctx->codec->id == CODEC_ID_8SVX_RAW || avctx->codec->id ==CODEC_ID_PCM_S8_PLANAR?
avpkt->size : avctx->channels + (avpkt->size-avctx->channels) * 2;
if (packet_size % avctx->channels) {
av_log(avctx, AV_LOG_WARNING, "Packet with odd size, ignoring last byte\n");
if (packet_size < avctx->channels)
return packet_size;
packet_size -= packet_size % avctx->channels;
}
esc->samples_size = !esc->table ?
packet_size : avctx->channels + (packet_size-avctx->channels) * 2;
if (!(esc->samples = av_malloc(esc->samples_size)))
return AVERROR(ENOMEM);
/* decompress */
if (avctx->codec->id == CODEC_ID_8SVX_FIB || avctx->codec->id == CODEC_ID_8SVX_EXP) {
if (esc->table) {
const uint8_t *buf = avpkt->data;
uint8_t *dst;
int buf_size = avpkt->size;
int n = esc->samples_size;
int i, n = esc->samples_size;
if (buf_size < 2) {
av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
@@ -129,15 +139,15 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
}
if (!(deinterleaved_samples = av_mallocz(n)))
return AVERROR(ENOMEM);
p = deinterleaved_samples;
dst = p = deinterleaved_samples;
/* the uncompressed starting value is contained in the first byte */
if (avctx->channels == 2) {
delta_decode(deinterleaved_samples , buf+1, buf_size/2-1, buf[0], esc->table);
buf += buf_size/2;
delta_decode(deinterleaved_samples+n/2-1, buf+1, buf_size/2-1, buf[0], esc->table);
} else
delta_decode(deinterleaved_samples , buf+1, buf_size-1 , buf[0], esc->table);
dst = deinterleaved_samples;
for (i = 0; i < avctx->channels; i++) {
delta_decode(dst, buf + 1, buf_size / avctx->channels - 1, buf[0], esc->table);
buf += buf_size / avctx->channels;
dst += n / avctx->channels - 1;
}
} else {
deinterleaved_samples = avpkt->data;
}
@@ -150,7 +160,8 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
}
/* get output buffer */
esc->frame.nb_samples = (FFMIN(MAX_FRAME_SIZE, esc->samples_size - esc->samples_idx) +avctx->channels-1) / avctx->channels;
av_assert1(!(esc->samples_size % avctx->channels || esc->samples_idx % avctx->channels));
esc->frame.nb_samples = FFMIN(MAX_FRAME_SIZE, esc->samples_size - esc->samples_idx) / avctx->channels;
if ((ret = avctx->get_buffer(avctx, &esc->frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
@@ -166,7 +177,7 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
*dst++ = *src++ + 128;
esc->samples_idx += out_data_size;
return avctx->codec->id == CODEC_ID_8SVX_FIB || avctx->codec->id == CODEC_ID_8SVX_EXP ?
return esc->table ?
(avctx->frame_number == 0)*2 + out_data_size / 2 :
out_data_size;
}
@@ -181,10 +192,10 @@ static av_cold int eightsvx_decode_init(AVCodecContext *avctx)
}
switch (avctx->codec->id) {
case CODEC_ID_8SVX_FIB: esc->table = fibonacci; break;
case CODEC_ID_8SVX_EXP: esc->table = exponential; break;
case CODEC_ID_PCM_S8_PLANAR:
case CODEC_ID_8SVX_RAW: esc->table = NULL; break;
case AV_CODEC_ID_8SVX_FIB: esc->table = fibonacci; break;
case AV_CODEC_ID_8SVX_EXP: esc->table = exponential; break;
case AV_CODEC_ID_PCM_S8_PLANAR:
case AV_CODEC_ID_8SVX_RAW: esc->table = NULL; break;
default:
av_log(avctx, AV_LOG_ERROR, "Invalid codec id %d.\n", avctx->codec->id);
return AVERROR_INVALIDDATA;
@@ -208,10 +219,11 @@ static av_cold int eightsvx_decode_close(AVCodecContext *avctx)
return 0;
}
#if CONFIG_EIGHTSVX_FIB_DECODER
AVCodec ff_eightsvx_fib_decoder = {
.name = "8svx_fib",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_8SVX_FIB,
.id = AV_CODEC_ID_8SVX_FIB,
.priv_data_size = sizeof (EightSvxContext),
.init = eightsvx_decode_init,
.decode = eightsvx_decode_frame,
@@ -219,11 +231,12 @@ AVCodec ff_eightsvx_fib_decoder = {
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("8SVX fibonacci"),
};
#endif
#if CONFIG_EIGHTSVX_EXP_DECODER
AVCodec ff_eightsvx_exp_decoder = {
.name = "8svx_exp",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_8SVX_EXP,
.id = AV_CODEC_ID_8SVX_EXP,
.priv_data_size = sizeof (EightSvxContext),
.init = eightsvx_decode_init,
.decode = eightsvx_decode_frame,
@@ -231,11 +244,12 @@ AVCodec ff_eightsvx_exp_decoder = {
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("8SVX exponential"),
};
#endif
#if CONFIG_PCM_S8_PLANAR_DECODER
AVCodec ff_pcm_s8_planar_decoder = {
.name = "pcm_s8_planar",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_PCM_S8_PLANAR,
.id = AV_CODEC_ID_PCM_S8_PLANAR,
.priv_data_size = sizeof(EightSvxContext),
.init = eightsvx_decode_init,
.close = eightsvx_decode_close,
@@ -243,3 +257,4 @@ AVCodec ff_pcm_s8_planar_decoder = {
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit planar"),
};
#endif

View File

@@ -6,6 +6,7 @@ FFLIBS = avutil
HEADERS = avcodec.h \
avfft.h \
dxva2.h \
old_codec_ids.h \
vaapi.h \
vda.h \
vdpau.h \
@@ -17,6 +18,7 @@ OBJS = allcodecs.o \
avpacket.o \
bitstream.o \
bitstream_filter.o \
codec_desc.o \
dsputil.o \
faanidct.o \
fmtconvert.o \
@@ -32,13 +34,14 @@ OBJS = allcodecs.o \
utils.o \
# parts needed for many different codecs
OBJS-$(CONFIG_AANDCT) += aandcttab.o
OBJS-$(CONFIG_AANDCTTABLES) += aandcttab.o
OBJS-$(CONFIG_AC3DSP) += ac3dsp.o
OBJS-$(CONFIG_CRYSTALHD) += crystalhd.o
OBJS-$(CONFIG_ENCODERS) += faandct.o jfdctfst.o jfdctint.o
OBJS-$(CONFIG_DCT) += dct.o dct32_fixed.o dct32_float.o
OBJS-$(CONFIG_DWT) += dwt.o
OBJS-$(CONFIG_DWT) += dwt.o snow.o
OBJS-$(CONFIG_DXVA2) += dxva2.o
OBJS-$(CONFIG_ENCODERS) += faandct.o jfdctfst.o jfdctint.o
OBJS-$(CONFIG_ERROR_RESILIENCE) += error_resilience.o
FFT-OBJS-$(CONFIG_HARDCODED_TABLES) += cos_tables.o cos_fixed_tables.o
OBJS-$(CONFIG_FFT) += avfft.o fft_fixed.o fft_float.o \
$(FFT-OBJS-yes)
@@ -51,14 +54,19 @@ OBJS-$(CONFIG_LPC) += lpc.o
OBJS-$(CONFIG_LSP) += lsp.o
OBJS-$(CONFIG_MDCT) += mdct_fixed.o mdct_float.o
OBJS-$(CONFIG_MPEGAUDIODSP) += mpegaudiodsp.o \
mpegaudiodsp_data.o \
mpegaudiodsp_fixed.o \
mpegaudiodsp_float.o
OBJS-$(CONFIG_MPEGVIDEO) += mpegvideo.o mpegvideo_motion.o
OBJS-$(CONFIG_MPEGVIDEOENC) += mpegvideo_enc.o mpeg12data.o \
motion_est.o ratecontrol.o
OBJS-$(CONFIG_RANGECODER) += rangecoder.o
RDFT-OBJS-$(CONFIG_HARDCODED_TABLES) += sin_tables.o
OBJS-$(CONFIG_RDFT) += rdft.o $(RDFT-OBJS-yes)
OBJS-$(CONFIG_SINEWIN) += sinewin.o
OBJS-$(CONFIG_VAAPI) += vaapi.o
OBJS-$(CONFIG_VDA) += vda.o
OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_VP3DSP) += vp3dsp.o
# decoders/encoders/hardware accelerators
OBJS-$(CONFIG_A64MULTI_ENCODER) += a64multienc.o elbg.o
@@ -86,8 +94,12 @@ OBJS-$(CONFIG_AMRNB_DECODER) += amrnbdec.o celp_filters.o \
OBJS-$(CONFIG_AMRWB_DECODER) += amrwbdec.o celp_filters.o \
celp_math.o acelp_filters.o \
acelp_vectors.o \
acelp_pitch_delay.o lsp.o
acelp_pitch_delay.o
OBJS-$(CONFIG_AMV_DECODER) += sp5xdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpeg.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
OBJS-$(CONFIG_ANM_DECODER) += anm.o
OBJS-$(CONFIG_ANSI_DECODER) += ansi.o cga_data.o
OBJS-$(CONFIG_APE_DECODER) += apedec.o
@@ -101,6 +113,7 @@ OBJS-$(CONFIG_ATRAC1_DECODER) += atrac1.o atrac.o
OBJS-$(CONFIG_ATRAC3_DECODER) += atrac3.o atrac.o
OBJS-$(CONFIG_AURA_DECODER) += cyuv.o
OBJS-$(CONFIG_AURA2_DECODER) += aura.o
OBJS-$(CONFIG_AVRP_DECODER) += avrndec.o
OBJS-$(CONFIG_AVRP_DECODER) += r210dec.o
OBJS-$(CONFIG_AVRP_ENCODER) += r210enc.o
OBJS-$(CONFIG_AVS_DECODER) += avs.o
@@ -120,26 +133,25 @@ OBJS-$(CONFIG_BMV_VIDEO_DECODER) += bmv.o
OBJS-$(CONFIG_BMV_AUDIO_DECODER) += bmv.o
OBJS-$(CONFIG_C93_DECODER) += c93.o
OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdec.o cavsdsp.o \
mpeg12data.o mpegvideo.o
cavsdata.o mpeg12data.o
OBJS-$(CONFIG_CDGRAPHICS_DECODER) += cdgraphics.o
OBJS-$(CONFIG_CDXL_DECODER) += cdxl.o
OBJS-$(CONFIG_CINEPAK_DECODER) += cinepak.o
OBJS-$(CONFIG_CLJR_DECODER) += cljr.o
OBJS-$(CONFIG_CLJR_ENCODER) += cljr.o
OBJS-$(CONFIG_CLLC_DECODER) += cllc.o
OBJS-$(CONFIG_COOK_DECODER) += cook.o
OBJS-$(CONFIG_CPIA_DECODER) += cpia.o
OBJS-$(CONFIG_CSCD_DECODER) += cscd.o
OBJS-$(CONFIG_CYUV_DECODER) += cyuv.o
OBJS-$(CONFIG_DCA_DECODER) += dca.o synth_filter.o dcadsp.o \
dca_parser.o
OBJS-$(CONFIG_DCA_DECODER) += dcadec.o dca.o dcadsp.o \
dca_parser.o synth_filter.o
OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o \
dirac_arith.o mpeg12data.o dwt.o
OBJS-$(CONFIG_DFA_DECODER) += dfa.o
OBJS-$(CONFIG_DNXHD_DECODER) += dnxhddec.o dnxhddata.o
OBJS-$(CONFIG_DNXHD_ENCODER) += dnxhdenc.o dnxhddata.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
OBJS-$(CONFIG_DNXHD_ENCODER) += dnxhdenc.o dnxhddata.o
OBJS-$(CONFIG_DPX_DECODER) += dpx.o
OBJS-$(CONFIG_DPX_ENCODER) += dpxenc.o
OBJS-$(CONFIG_DSICINAUDIO_DECODER) += dsicinav.o
@@ -153,30 +165,26 @@ OBJS-$(CONFIG_DVVIDEO_ENCODER) += dv.o dvdata.o dv_profile.o
OBJS-$(CONFIG_DXA_DECODER) += dxa.o
OBJS-$(CONFIG_DXTORY_DECODER) += dxtory.o
OBJS-$(CONFIG_EAC3_DECODER) += eac3dec.o eac3_data.o
OBJS-$(CONFIG_EAC3_ENCODER) += eac3enc.o ac3enc.o ac3enc_float.o \
ac3tab.o ac3.o kbdwin.o eac3_data.o
OBJS-$(CONFIG_EAC3_ENCODER) += eac3enc.o eac3_data.o
OBJS-$(CONFIG_EACMV_DECODER) += eacmv.o
OBJS-$(CONFIG_EAMAD_DECODER) += eamad.o eaidct.o mpeg12.o \
mpeg12data.o mpegvideo.o \
error_resilience.o
mpeg12data.o
OBJS-$(CONFIG_EATGQ_DECODER) += eatgq.o eaidct.o
OBJS-$(CONFIG_EATGV_DECODER) += eatgv.o
OBJS-$(CONFIG_EATQI_DECODER) += eatqi.o eaidct.o mpeg12.o \
mpeg12data.o mpegvideo.o \
error_resilience.o
mpeg12data.o
OBJS-$(CONFIG_EIGHTBPS_DECODER) += 8bps.o
OBJS-$(CONFIG_EIGHTSVX_EXP_DECODER) += 8svx.o
OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER) += 8svx.o
OBJS-$(CONFIG_EIGHTSVX_RAW_DECODER) += 8svx.o
OBJS-$(CONFIG_ESCAPE124_DECODER) += escape124.o
OBJS-$(CONFIG_ESCAPE130_DECODER) += escape130.o
OBJS-$(CONFIG_EXR_DECODER) += exr.o
OBJS-$(CONFIG_FFV1_DECODER) += ffv1.o rangecoder.o
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1.o rangecoder.o
OBJS-$(CONFIG_FFV1_DECODER) += ffv1.o
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1.o
OBJS-$(CONFIG_FFVHUFF_DECODER) += huffyuv.o
OBJS-$(CONFIG_FFVHUFF_ENCODER) += huffyuv.o
OBJS-$(CONFIG_FFWAVESYNTH_DECODER) += ffwavesynth.o
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o flacdsp.o
OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o
OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o
@@ -187,39 +195,32 @@ OBJS-$(CONFIG_FOURXM_DECODER) += 4xm.o
OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o
OBJS-$(CONFIG_FRWU_DECODER) += frwu.o
OBJS-$(CONFIG_G723_1_DECODER) += g723_1.o acelp_vectors.o \
celp_filters.o celp_math.o
celp_filters.o
OBJS-$(CONFIG_G723_1_ENCODER) += g723_1.o acelp_vectors.o celp_math.o
OBJS-$(CONFIG_G729_DECODER) += g729dec.o lsp.o celp_math.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
OBJS-$(CONFIG_GIF_DECODER) += gifdec.o lzw.o
OBJS-$(CONFIG_GIF_ENCODER) += gif.o lzwenc.o
OBJS-$(CONFIG_GSM_DECODER) += gsmdec.o gsmdec_data.o msgsmdec.o
OBJS-$(CONFIG_GSM_MS_DECODER) += gsmdec.o gsmdec_data.o msgsmdec.o
OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261.o h261data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_H261_ENCODER) += h261enc.o h261.o h261data.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261.o h261data.o
OBJS-$(CONFIG_H261_ENCODER) += h261enc.o h261.o h261data.o
OBJS-$(CONFIG_H263_DECODER) += h263dec.o h263.o ituh263dec.o \
mpeg4video.o mpeg4videodec.o flvdec.o\
intelh263dec.o mpegvideo.o \
error_resilience.o
intelh263dec.o
OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_H263_ENCODER) += mpegvideo_enc.o mpeg4video.o \
mpeg4videoenc.o motion_est.o \
ratecontrol.o h263.o ituh263enc.o \
flvenc.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_H263_ENCODER) += mpeg4videoenc.o mpeg4video.o \
h263.o ituh263enc.o flvenc.o
OBJS-$(CONFIG_H264_DECODER) += h264.o \
h264_loopfilter.o h264_direct.o \
cabac.o h264_sei.o h264_ps.o \
h264_refs.o h264_cavlc.o h264_cabac.o\
mpegvideo.o error_resilience.o
h264_refs.o h264_cavlc.o h264_cabac.o
OBJS-$(CONFIG_H264_DXVA2_HWACCEL) += dxva2_h264.o
OBJS-$(CONFIG_H264_VAAPI_HWACCEL) += vaapi_h264.o
OBJS-$(CONFIG_H264_VDA_HWACCEL) += vda_h264.o
OBJS-$(CONFIG_H264_VDA_DECODER) += vda_h264_dec.o
OBJS-$(CONFIG_HUFFYUV_DECODER) += huffyuv.o
OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o
OBJS-$(CONFIG_IAC_DECODER) += imc.o
OBJS-$(CONFIG_IDCIN_DECODER) += idcinvideo.o
OBJS-$(CONFIG_IDF_DECODER) += bintext.o cga_data.o
OBJS-$(CONFIG_IFF_BYTERUN1_DECODER) += iff.o
@@ -241,26 +242,21 @@ OBJS-$(CONFIG_JV_DECODER) += jvdec.o
OBJS-$(CONFIG_KGV1_DECODER) += kgv1dec.o
OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o
OBJS-$(CONFIG_LAGARITH_DECODER) += lagarith.o lagarithrac.o
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc.o mjpeg.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc.o mjpeg.o
OBJS-$(CONFIG_LOCO_DECODER) += loco.o
OBJS-$(CONFIG_MACE3_DECODER) += mace.o
OBJS-$(CONFIG_MACE6_DECODER) += mace.o
OBJS-$(CONFIG_MDEC_DECODER) += mdec.o mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MDEC_DECODER) += mdec.o mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MICRODVD_DECODER) += microdvddec.o ass.o
OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o
OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpeg.o
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpeg.o \
mpegvideo_enc.o motion_est.o \
ratecontrol.o mpeg12data.o \
mpegvideo.o
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpeg.o
OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegbdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_MLP_DECODER) += mlpdec.o mlpdsp.o
OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o
OBJS-$(CONFIG_MOTIONPIXELS_DECODER) += motionpixels.o
OBJS-$(CONFIG_MOVTEXT_DECODER) += movtextdec.o ass.o
OBJS-$(CONFIG_MOVTEXT_ENCODER) += movtextenc.o ass_split.o
OBJS-$(CONFIG_MP1_DECODER) += mpegaudiodec.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP1FLOAT_DECODER) += mpegaudiodec_float.o mpegaudiodecheader.o \
@@ -268,7 +264,7 @@ OBJS-$(CONFIG_MP1FLOAT_DECODER) += mpegaudiodec_float.o mpegaudiodecheade
OBJS-$(CONFIG_MP2_DECODER) += mpegaudiodec.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP2_ENCODER) += mpegaudioenc.o mpegaudio.o \
mpegaudiodata.o
mpegaudiodata.o mpegaudiodsp_data.o
OBJS-$(CONFIG_MP2FLOAT_DECODER) += mpegaudiodec_float.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP3ADU_DECODER) += mpegaudiodec.o mpegaudiodecheader.o \
@@ -285,31 +281,19 @@ OBJS-$(CONFIG_MP3_DECODER) += mpegaudiodec.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP3FLOAT_DECODER) += mpegaudiodec_float.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MPC7_DECODER) += mpc7.o mpc.o mpegaudiodec.o \
mpegaudiodecheader.o mpegaudio.o \
mpegaudiodata.o
OBJS-$(CONFIG_MPC8_DECODER) += mpc8.o mpc.o mpegaudiodec.o \
mpegaudiodecheader.o mpegaudio.o \
mpegaudiodata.o
OBJS-$(CONFIG_MPC7_DECODER) += mpc7.o mpc.o
OBJS-$(CONFIG_MPC8_DECODER) += mpc8.o mpc.o
OBJS-$(CONFIG_MPEGVIDEO_DECODER) += mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEG_XVMC_DECODER) += mpegvideo_xvmc.o
OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpegvideo_enc.o \
timecode.o \
motion_est.o ratecontrol.o \
mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpeg12.o \
timecode.o
OBJS-$(CONFIG_MPEG2_DXVA2_HWACCEL) += dxva2_mpeg2.o
OBJS-$(CONFIG_MPEG2_VAAPI_HWACCEL) += vaapi_mpeg2.o
OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpegvideo_enc.o \
timecode.o \
motion_est.o ratecontrol.o \
mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12.o mpeg12data.o
OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o \
timecode.o
OBJS-$(CONFIG_MPEG4_VAAPI_HWACCEL) += vaapi_mpeg4.o
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4.o msmpeg4data.o h263dec.o \
@@ -323,14 +307,20 @@ OBJS-$(CONFIG_MSMPEG4V3_ENCODER) += msmpeg4.o msmpeg4enc.o msmpeg4data.o \
h263dec.o h263.o ituh263dec.o \
mpeg4videodec.o
OBJS-$(CONFIG_MSRLE_DECODER) += msrle.o msrledec.o
OBJS-$(CONFIG_MSA1_DECODER) += mss3.o mss34dsp.o
OBJS-$(CONFIG_MSS1_DECODER) += mss1.o mss12.o
OBJS-$(CONFIG_MSS2_DECODER) += mss2.o mss12.o mss2dsp.o
OBJS-$(CONFIG_MSVIDEO1_DECODER) += msvideo1.o
OBJS-$(CONFIG_MSVIDEO1_ENCODER) += msvideo1enc.o elbg.o
OBJS-$(CONFIG_MSZH_DECODER) += lcldec.o
OBJS-$(CONFIG_MTS2_DECODER) += mss4.o mss34dsp.o
OBJS-$(CONFIG_MXPEG_DECODER) += mxpegdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_NELLYMOSER_DECODER) += nellymoserdec.o nellymoser.o
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o \
audio_frame_queue.o
OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o
OBJS-$(CONFIG_PAF_VIDEO_DECODER) += paf.o
OBJS-$(CONFIG_PAF_AUDIO_DECODER) += paf.o
OBJS-$(CONFIG_PAM_DECODER) += pnmdec.o pnm.o
OBJS-$(CONFIG_PAM_ENCODER) += pamenc.o pnm.o
OBJS-$(CONFIG_PBM_DECODER) += pnmdec.o pnm.o
@@ -353,12 +343,10 @@ OBJS-$(CONFIG_PRORES_ENCODER) += proresenc_anatoliy.o
OBJS-$(CONFIG_PRORES_ANATOLIY_ENCODER) += proresenc_anatoliy.o
OBJS-$(CONFIG_PRORES_KOSTYA_ENCODER) += proresenc_kostya.o proresdata.o proresdsp.o
OBJS-$(CONFIG_PTX_DECODER) += ptx.o
OBJS-$(CONFIG_QCELP_DECODER) += qcelpdec.o celp_math.o \
OBJS-$(CONFIG_QCELP_DECODER) += qcelpdec.o \
celp_filters.o acelp_vectors.o \
acelp_filters.o
OBJS-$(CONFIG_QDM2_DECODER) += qdm2.o mpegaudiodec.o \
mpegaudiodecheader.o mpegaudio.o \
mpegaudiodata.o
OBJS-$(CONFIG_QDM2_DECODER) += qdm2.o
OBJS-$(CONFIG_QDRAW_DECODER) += qdrw.o
OBJS-$(CONFIG_QPEG_DECODER) += qpeg.o
OBJS-$(CONFIG_QTRLE_DECODER) += qtrle.o
@@ -370,10 +358,11 @@ OBJS-$(CONFIG_R210_ENCODER) += r210enc.o
OBJS-$(CONFIG_RA_144_DECODER) += ra144dec.o ra144.o celp_filters.o
OBJS-$(CONFIG_RA_144_ENCODER) += ra144enc.o ra144.o celp_filters.o \
audio_frame_queue.o
OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_math.o celp_filters.o
OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_filters.o
OBJS-$(CONFIG_RALF_DECODER) += ralf.o
OBJS-$(CONFIG_RAWVIDEO_DECODER) += rawdec.o
OBJS-$(CONFIG_RAWVIDEO_ENCODER) += rawenc.o
OBJS-$(CONFIG_REALTEXT_DECODER) += realtextdec.o ass.o
OBJS-$(CONFIG_RL2_DECODER) += rl2.o
OBJS-$(CONFIG_ROQ_DECODER) += roqvideodec.o roqvideo.o
OBJS-$(CONFIG_ROQ_ENCODER) += roqvideoenc.o roqvideo.o elbg.o
@@ -384,11 +373,11 @@ OBJS-$(CONFIG_RV10_DECODER) += rv10.o
OBJS-$(CONFIG_RV10_ENCODER) += rv10enc.o
OBJS-$(CONFIG_RV20_DECODER) += rv10.o
OBJS-$(CONFIG_RV20_ENCODER) += rv20enc.o
OBJS-$(CONFIG_RV30_DECODER) += rv30.o rv34.o rv30dsp.o rv34dsp.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_RV40_DECODER) += rv40.o rv34.o rv34dsp.o rv40dsp.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_RV30_DECODER) += rv30.o rv34.o rv30dsp.o rv34dsp.o
OBJS-$(CONFIG_RV40_DECODER) += rv40.o rv34.o rv34dsp.o rv40dsp.o
OBJS-$(CONFIG_SAMI_DECODER) += samidec.o ass.o
OBJS-$(CONFIG_S302M_DECODER) += s302m.o
OBJS-$(CONFIG_SANM_DECODER) += sanm.o
OBJS-$(CONFIG_SGI_DECODER) += sgidec.o
OBJS-$(CONFIG_SGI_ENCODER) += sgienc.o rle.o
OBJS-$(CONFIG_SHORTEN_DECODER) += shorten.o
@@ -399,12 +388,9 @@ OBJS-$(CONFIG_SIPR_DECODER) += sipr.o acelp_pitch_delay.o \
OBJS-$(CONFIG_SMACKAUD_DECODER) += smacker.o
OBJS-$(CONFIG_SMACKER_DECODER) += smacker.o
OBJS-$(CONFIG_SMC_DECODER) += smc.o
OBJS-$(CONFIG_SNOW_DECODER) += snowdec.o snow.o rangecoder.o
OBJS-$(CONFIG_SNOW_ENCODER) += snowenc.o snow.o rangecoder.o \
motion_est.o ratecontrol.o \
h263.o mpegvideo.o \
error_resilience.o ituh263enc.o \
mpegvideo_enc.o mpeg12data.o
OBJS-$(CONFIG_SNOW_DECODER) += snowdec.o snow.o
OBJS-$(CONFIG_SNOW_ENCODER) += snowenc.o snow.o \
h263.o ituh263enc.o
OBJS-$(CONFIG_SOL_DPCM_DECODER) += dpcm.o
OBJS-$(CONFIG_SONIC_DECODER) += sonic.o
OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o
@@ -412,38 +398,38 @@ OBJS-$(CONFIG_SONIC_LS_ENCODER) += sonic.o
OBJS-$(CONFIG_SP5X_DECODER) += sp5xdec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_SRT_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SRT_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_SUBRIP_DECODER) += srtdec.o ass.o
OBJS-$(CONFIG_SUBRIP_ENCODER) += srtenc.o ass_split.o
OBJS-$(CONFIG_SUBVIEWER_DECODER) += subviewerdec.o ass.o
OBJS-$(CONFIG_SUNRAST_DECODER) += sunrast.o
OBJS-$(CONFIG_SUNRAST_ENCODER) += sunrastenc.o
OBJS-$(CONFIG_SVQ1_DECODER) += svq1dec.o svq1.o h263.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_SVQ1_DECODER) += svq1dec.o svq1.o svq13.o h263.o
OBJS-$(CONFIG_SVQ1_ENCODER) += svq1enc.o svq1.o \
motion_est.o h263.o \
mpegvideo.o error_resilience.o \
ituh263enc.o mpegvideo_enc.o \
ratecontrol.o mpeg12data.o
OBJS-$(CONFIG_SVQ3_DECODER) += h264.o svq3.o \
h263.o ituh263enc.o
OBJS-$(CONFIG_SVQ3_DECODER) += svq3.o svq13.o h263.o h264.o \
h264_loopfilter.o h264_direct.o \
h264_sei.o h264_ps.o h264_refs.o \
h264_cavlc.o h264_cabac.o cabac.o \
mpegvideo.o error_resilience.o \
svq1dec.o svq1.o h263.o
h264_cavlc.o h264_cabac.o cabac.o
OBJS-$(CONFIG_TARGA_DECODER) += targa.o
OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o
OBJS-$(CONFIG_THEORA_DECODER) += xiph.o
OBJS-$(CONFIG_THP_DECODER) += mjpegdec.o mjpeg.o
OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o
OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o
OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_data.o
OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o tiff_data.o
OBJS-$(CONFIG_TMV_DECODER) += tmv.o cga_data.o
OBJS-$(CONFIG_TRUEHD_DECODER) += mlpdec.o mlpdsp.o
OBJS-$(CONFIG_TRUEMOTION1_DECODER) += truemotion1.o
OBJS-$(CONFIG_TRUEMOTION2_DECODER) += truemotion2.o
OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o
OBJS-$(CONFIG_TSCC_DECODER) += tscc.o msrledec.o
OBJS-$(CONFIG_TSCC2_DECODER) += tscc2.o
OBJS-$(CONFIG_TTA_DECODER) += tta.o
OBJS-$(CONFIG_TWINVQ_DECODER) += twinvq.o celp_math.o
OBJS-$(CONFIG_TWINVQ_DECODER) += twinvq.o
OBJS-$(CONFIG_TXD_DECODER) += txd.o s3tc.o
OBJS-$(CONFIG_ULTI_DECODER) += ulti.o
OBJS-$(CONFIG_UTVIDEO_DECODER) += utvideo.o
OBJS-$(CONFIG_UTVIDEO_DECODER) += utvideodec.o utvideo.o
OBJS-$(CONFIG_UTVIDEO_ENCODER) += utvideoenc.o utvideo.o
OBJS-$(CONFIG_V210_DECODER) += v210dec.o
OBJS-$(CONFIG_V210_ENCODER) += v210enc.o
OBJS-$(CONFIG_V308_DECODER) += v308dec.o
@@ -469,14 +455,15 @@ OBJS-$(CONFIG_VORBIS_DECODER) += vorbisdec.o vorbis.o \
vorbis_data.o xiph.o
OBJS-$(CONFIG_VORBIS_ENCODER) += vorbisenc.o vorbis.o \
vorbis_data.o
OBJS-$(CONFIG_VP3_DECODER) += vp3.o vp3dsp.o
OBJS-$(CONFIG_VP3_DECODER) += vp3.o
OBJS-$(CONFIG_VP5_DECODER) += vp5.o vp56.o vp56data.o vp56dsp.o \
vp3dsp.o vp56rac.o
vp56rac.o
OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o vp56dsp.o \
vp3dsp.o vp6dsp.o vp56rac.o
vp6dsp.o vp56rac.o
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o
OBJS-$(CONFIG_WEBVTT_DECODER) += webvttdec.o
OBJS-$(CONFIG_WMALOSSLESS_DECODER) += wmalosslessdec.o wma_common.o
OBJS-$(CONFIG_WMAPRO_DECODER) += wmaprodec.o wma.o wma_common.o
OBJS-$(CONFIG_WMAV1_DECODER) += wmadec.o wma.o wma_common.o aactab.o
@@ -484,7 +471,7 @@ OBJS-$(CONFIG_WMAV1_ENCODER) += wmaenc.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAV2_DECODER) += wmadec.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAV2_ENCODER) += wmaenc.o wma.o wma_common.o aactab.o
OBJS-$(CONFIG_WMAVOICE_DECODER) += wmavoice.o \
celp_math.o celp_filters.o \
celp_filters.o \
acelp_vectors.o acelp_filters.o
OBJS-$(CONFIG_WMV1_DECODER) += msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o \
@@ -606,54 +593,61 @@ OBJS-$(CONFIG_ADPCM_THP_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_XA_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_YAMAHA_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_VIMA_DECODER) += vima.o adpcm_data.o
# libavformat dependencies
OBJS-$(CONFIG_ADTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_ADX_DEMUXER) += adx.o
OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o \
ac3tab.o
OBJS-$(CONFIG_DV_DEMUXER) += dv_profile.o
OBJS-$(CONFIG_DV_MUXER) += dv_profile.o timecode.o
OBJS-$(CONFIG_FLAC_DEMUXER) += flacdec.o flacdata.o flac.o vorbis_data.o \
OBJS-$(CONFIG_FLAC_DEMUXER) += flac.o flacdata.o vorbis_data.o \
vorbis_parser.o xiph.o
OBJS-$(CONFIG_FLAC_MUXER) += flacdec.o flacdata.o flac.o vorbis_data.o
OBJS-$(CONFIG_FLAC_MUXER) += flac.o flacdata.o vorbis_data.o
OBJS-$(CONFIG_FLV_DEMUXER) += mpeg4audio.o
OBJS-$(CONFIG_GXF_DEMUXER) += mpeg12data.o
OBJS-$(CONFIG_IFF_DEMUXER) += iff.o
OBJS-$(CONFIG_ISMV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_LATM_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MATROSKA_AUDIO_MUXER) += xiph.o mpeg4audio.o vorbis_data.o \
flacdec.o flacdata.o flac.o
flac.o flacdata.o
OBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MATROSKA_MUXER) += xiph.o mpeg4audio.o \
flacdec.o flacdata.o flac.o \
mpegaudiodata.o vorbis_data.o
OBJS-$(CONFIG_MATROSKA_MUXER) += mpeg4audio.o mpegaudiodata.o \
flac.o flacdata.o vorbis_data.o xiph.o
OBJS-$(CONFIG_MP2_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MP3_MUXER) += mpegaudiodata.o mpegaudiodecheader.o
OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o timecode.o
OBJS-$(CONFIG_MOV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MPEGTS_MUXER) += mpegvideo.o mpeg4audio.o
OBJS-$(CONFIG_MPEGTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MXF_MUXER) += timecode.o
OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o
OBJS-$(CONFIG_OGG_DEMUXER) += flacdec.o flacdata.o flac.o \
dirac.o mpeg12data.o vorbis_parser.o \
xiph.o vorbis_data.o
OBJS-$(CONFIG_OGG_MUXER) += xiph.o flacdec.o flacdata.o flac.o \
OBJS-$(CONFIG_OGG_DEMUXER) += xiph.o flac.o flacdata.o \
mpeg12data.o vorbis_parser.o \
dirac.o vorbis_data.o
OBJS-$(CONFIG_OGG_MUXER) += xiph.o flac.o flacdata.o \
vorbis_data.o
OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o mpegvideo.o xiph.o
OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o xiph.o
OBJS-$(CONFIG_RTPDEC) += mjpeg.o
OBJS-$(CONFIG_SPDIF_DEMUXER) += aacadtsdec.o mpeg4audio.o
OBJS-$(CONFIG_WEBM_MUXER) += xiph.o mpeg4audio.o \
flacdec.o flacdata.o flac.o \
mpegaudiodata.o vorbis_data.o
OBJS-$(CONFIG_SPDIF_MUXER) += dca.o
OBJS-$(CONFIG_WEBM_MUXER) += mpeg4audio.o mpegaudiodata.o \
xiph.o flac.o flacdata.o \
vorbis_data.o
OBJS-$(CONFIG_WTV_DEMUXER) += mpeg4audio.o mpegaudiodata.o
# external codec libraries
OBJS-$(CONFIG_LIBAACPLUS_ENCODER) += libaacplus.o
OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o
OBJS-$(CONFIG_LIBFAAC_ENCODER) += libfaac.o audio_frame_queue.o
OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o audio_frame_queue.o
OBJS-$(CONFIG_LIBGSM_DECODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_ENCODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsm.o
OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsm.o
OBJS-$(CONFIG_LIBILBC_DECODER) += libilbc.o
OBJS-$(CONFIG_LIBILBC_ENCODER) += libilbc.o
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o mpegaudiodecheader.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o \
@@ -663,6 +657,7 @@ OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o \
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o
OBJS-$(CONFIG_LIBOPUS_DECODER) += libopus_dec.o vorbis_data.o
OBJS-$(CONFIG_LIBSCHROEDINGER_DECODER) += libschroedingerdec.o \
libschroedinger.o
OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER) += libschroedingerenc.o \
@@ -671,13 +666,15 @@ OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o audio_frame_queue.o
OBJS-$(CONFIG_LIBSTAGEFRIGHT_H264_DECODER)+= libstagefright.o
OBJS-$(CONFIG_LIBTHEORA_ENCODER) += libtheoraenc.o
OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
OBJS-$(CONFIG_LIBUTVIDEO_DECODER) += libutvideodec.o
OBJS-$(CONFIG_LIBUTVIDEO_ENCODER) += libutvideoenc.o
OBJS-$(CONFIG_LIBVO_AACENC_ENCODER) += libvo-aacenc.o mpeg4audio.o \
audio_frame_queue.o
OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbis.o audio_frame_queue.o \
vorbis_data.o vorbis_parser.o
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o audio_frame_queue.o \
vorbis_data.o vorbis_parser.o xiph.o
OBJS-$(CONFIG_LIBVPX_DECODER) += libvpxdec.o
OBJS-$(CONFIG_LIBVPX_ENCODER) += libvpxenc.o
OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
@@ -687,12 +684,14 @@ OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o
# parsers
OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o \
aacadtsdec.o mpeg4audio.o
OBJS-$(CONFIG_AAC_LATM_PARSER) += latm_parser.o
OBJS-$(CONFIG_AC3_PARSER) += ac3_parser.o ac3tab.o \
aac_ac3_parser.o
OBJS-$(CONFIG_ADX_PARSER) += adx_parser.o adx.o
OBJS-$(CONFIG_BMP_PARSER) += bmp_parser.o
OBJS-$(CONFIG_CAVSVIDEO_PARSER) += cavs_parser.o
OBJS-$(CONFIG_COOK_PARSER) += cook_parser.o
OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o
OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o dca.o
OBJS-$(CONFIG_DIRAC_PARSER) += dirac_parser.o
OBJS-$(CONFIG_DNXHD_PARSER) += dnxhd_parser.o
OBJS-$(CONFIG_DVBSUB_PARSER) += dvbsub_parser.o
@@ -706,27 +705,23 @@ OBJS-$(CONFIG_H264_PARSER) += h264_parser.o h264.o \
cabac.o \
h264_refs.o h264_sei.o h264_direct.o \
h264_loopfilter.o h264_cabac.o \
h264_cavlc.o h264_ps.o \
mpegvideo.o error_resilience.o
OBJS-$(CONFIG_AAC_LATM_PARSER) += latm_parser.o
h264_cavlc.o h264_ps.o
OBJS-$(CONFIG_MJPEG_PARSER) += mjpeg_parser.o
OBJS-$(CONFIG_MLP_PARSER) += mlp_parser.o mlp.o
OBJS-$(CONFIG_MPEG4VIDEO_PARSER) += mpeg4video_parser.o h263.o \
mpegvideo.o error_resilience.o \
mpeg4videodec.o mpeg4video.o \
ituh263dec.o h263dec.o
OBJS-$(CONFIG_PNG_PARSER) += png_parser.o
OBJS-$(CONFIG_MPEGAUDIO_PARSER) += mpegaudio_parser.o \
mpegaudiodecheader.o mpegaudiodata.o
OBJS-$(CONFIG_MPEGVIDEO_PARSER) += mpegvideo_parser.o \
mpeg12.o mpeg12data.o \
mpegvideo.o error_resilience.o
mpeg12.o mpeg12data.o
OBJS-$(CONFIG_PNM_PARSER) += pnm_parser.o pnm.o
OBJS-$(CONFIG_RV30_PARSER) += rv34_parser.o
OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \
msmpeg4.o msmpeg4data.o mpeg4video.o \
h263.o mpegvideo.o error_resilience.o
h263.o
OBJS-$(CONFIG_VORBIS_PARSER) += vorbis_parser.o xiph.o
OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o
OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o
@@ -749,9 +744,9 @@ OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o
OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += movsub_bsf.o
# thread libraries
OBJS-$(HAVE_PTHREADS) += pthread.o
OBJS-$(HAVE_W32THREADS) += pthread.o
OBJS-$(HAVE_OS2THREADS) += pthread.o
OBJS-$(HAVE_PTHREADS) += pthread.o frame_thread_encoder.o
OBJS-$(HAVE_W32THREADS) += pthread.o frame_thread_encoder.o
OBJS-$(HAVE_OS2THREADS) += pthread.o frame_thread_encoder.o
# inverse.o contains the ff_inverse table definition, which is used by
# the FASTDIV macro (from libavutil); since referencing the external
@@ -762,8 +757,8 @@ OBJS-$(!CONFIG_SMALL) += inverse.o
SKIPHEADERS += %_tablegen.h \
%_tables.h \
aac_tablegen_decl.h \
codec_names.h \
fft-internal.h \
old_codec_ids.h \
tableprint.h \
$(ARCH)/vp56_arith.h \
@@ -772,7 +767,7 @@ SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER) += libschroedinger.h
SKIPHEADERS-$(CONFIG_LIBUTVIDEO) += libutvideo.h
SKIPHEADERS-$(CONFIG_MPEG_XVMC_DECODER) += xvmc.h
SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda.h vda_internal.h
SKIPHEADERS-$(CONFIG_VDA) += vda.h
SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h
SKIPHEADERS-$(HAVE_OS2THREADS) += os2threads.h
SKIPHEADERS-$(HAVE_W32THREADS) += w32pthreads.h
@@ -789,6 +784,8 @@ TESTPROGS = cabac \
TESTPROGS-$(HAVE_MMX) += motion
TESTOBJS = dctref.o
TOOLS = fourcc2pixfmt
HOSTPROGS = aac_tablegen \
aacps_tablegen \
cbrt_tablegen \
@@ -802,7 +799,7 @@ HOSTPROGS = aac_tablegen \
CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
$(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o
$(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dctref.o $(SUBDIR)aandcttab.o
TRIG_TABLES = cos cos_fixed sin
TRIG_TABLES := $(TRIG_TABLES:%=$(SUBDIR)%_tables.c)
@@ -836,10 +833,3 @@ $(SUBDIR)motionpixels.o: $(SUBDIR)motionpixels_tables.h
$(SUBDIR)pcm.o: $(SUBDIR)pcm_tables.h
$(SUBDIR)qdm2.o: $(SUBDIR)qdm2_tables.h
endif
CODEC_NAMES_SH := $(SRC_PATH)/$(SUBDIR)codec_names.sh
AVCODEC_H := $(SRC_PATH)/$(SUBDIR)avcodec.h
$(SUBDIR)codec_names.h: $(CODEC_NAMES_SH) config.h $(AVCODEC_H)
$(CC) $(CPPFLAGS) $(CFLAGS) -E $(AVCODEC_H) | \
$(CODEC_NAMES_SH) config.h $@
$(SUBDIR)utils.o: $(SUBDIR)codec_names.h

View File

@@ -29,6 +29,7 @@
#include "a64tables.h"
#include "elbg.h"
#include "internal.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#define DITHERSTEPS 8
@@ -187,7 +188,7 @@ static av_cold int a64multi_init_encoder(AVCodecContext *avctx)
av_log(avctx, AV_LOG_INFO, "charset lifetime set to %d frame(s)\n", c->mc_lifetime);
c->mc_frame_counter = 0;
c->mc_use_5col = avctx->codec->id == CODEC_ID_A64_MULTI5;
c->mc_use_5col = avctx->codec->id == AV_CODEC_ID_A64_MULTI5;
c->mc_pal_size = 4 + c->mc_use_5col;
/* precalc luma values for later use */
@@ -368,10 +369,11 @@ static int a64multi_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
return 0;
}
#if CONFIG_A64MULTI_ENCODER
AVCodec ff_a64multi_encoder = {
.name = "a64multi",
.type = AVMEDIA_TYPE_VIDEO,
.id = CODEC_ID_A64_MULTI,
.id = AV_CODEC_ID_A64_MULTI,
.priv_data_size = sizeof(A64Context),
.init = a64multi_init_encoder,
.encode2 = a64multi_encode_frame,
@@ -380,11 +382,12 @@ AVCodec ff_a64multi_encoder = {
.long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64"),
.capabilities = CODEC_CAP_DELAY,
};
#endif
#if CONFIG_A64MULTI5_ENCODER
AVCodec ff_a64multi5_encoder = {
.name = "a64multi5",
.type = AVMEDIA_TYPE_VIDEO,
.id = CODEC_ID_A64_MULTI5,
.id = AV_CODEC_ID_A64_MULTI5,
.priv_data_size = sizeof(A64Context),
.init = a64multi_init_encoder,
.encode2 = a64multi_encode_frame,
@@ -393,3 +396,4 @@ AVCodec ff_a64multi5_encoder = {
.long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64, extended with 5th color (colram)"),
.capabilities = CODEC_CAP_DELAY,
};
#endif

View File

@@ -30,6 +30,7 @@
#ifndef AVCODEC_AAC_H
#define AVCODEC_AAC_H
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "dsputil.h"
#include "fft.h"
@@ -292,6 +293,7 @@ typedef struct {
FFTContext mdct_ltp;
DSPContext dsp;
FmtConvertContext fmt_conv;
AVFloatDSPContext fdsp;
int random_state;
/** @} */
@@ -302,6 +304,15 @@ typedef struct {
float *output_data[MAX_CHANNELS]; ///< Points to each element's 'ret' buffer (PCM output).
/** @} */
/**
* @name Japanese DTV specific extension
* @{
*/
int enable_jp_dmono; ///< enable japanese DTV specific 'dual mono'
int dmono_mode; ///< select the channel to decode in dual mono.
/** @} */
DECLARE_ALIGNED(32, float, temp)[128];
OutputConfiguration oc[2];

View File

@@ -20,6 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/common.h"
#include "parser.h"
#include "aac_ac3_parser.h"
@@ -78,7 +79,7 @@ get_next:
and total number of samples found in an AAC ADTS header are not
reliable. Bit rate is still accurate because the total frame duration in
seconds is still correct (as is the number of bits in the frame). */
if (avctx->codec_id != CODEC_ID_AAC) {
if (avctx->codec_id != AV_CODEC_ID_AAC) {
avctx->sample_rate = s->sample_rate;
/* allow downmixing to stereo (or mono for AC-3) */
@@ -86,8 +87,8 @@ get_next:
avctx->request_channels < s->channels &&
(avctx->request_channels <= 2 ||
(avctx->request_channels == 1 &&
(avctx->codec_id == CODEC_ID_AC3 ||
avctx->codec_id == CODEC_ID_EAC3)))) {
(avctx->codec_id == AV_CODEC_ID_AC3 ||
avctx->codec_id == AV_CODEC_ID_EAC3)))) {
avctx->channels = avctx->request_channels;
} else {
avctx->channels = s->channels;

View File

@@ -55,7 +55,7 @@ typedef struct AACAC3ParseContext {
uint64_t state;
int need_next_header;
enum CodecID codec_id;
enum AVCodecID codec_id;
} AACAC3ParseContext;
int ff_aac_ac3_parse(AVCodecParserContext *s1,

View File

@@ -61,7 +61,7 @@ static av_cold int aac_parse_init(AVCodecParserContext *s1)
AVCodecParser ff_aac_parser = {
.codec_ids = { CODEC_ID_AAC },
.codec_ids = { AV_CODEC_ID_AAC },
.priv_data_size = sizeof(AACAC3ParseContext),
.parser_init = aac_parse_init,
.parser_parse = ff_aac_ac3_parse,

View File

@@ -506,7 +506,7 @@ static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce,
idx = cb;
ppos = max_sfb;
while (ppos > 0) {
assert(idx >= 0);
av_assert1(idx >= 0);
cb = idx;
stackrun[stack_len] = path[ppos][cb].run;
stackcb [stack_len] = cb;

View File

@@ -79,7 +79,7 @@
Parametric Stereo.
*/
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "internal.h"
#include "get_bits.h"
@@ -112,6 +112,10 @@
static VLC vlc_scalefactors;
static VLC vlc_spectral[11];
static int output_configure(AACContext *ac,
uint8_t layout_map[MAX_ELEM_ID*4][3], int tags,
int channel_config, enum OCStatus oc_type);
#define overread_err "Input buffer exhausted before END element found\n"
static int count_channels(uint8_t (*layout)[3], int tags)
@@ -369,12 +373,12 @@ static void push_output_configuration(AACContext *ac) {
* configuration is unlocked.
*/
static void pop_output_configuration(AACContext *ac) {
if (ac->oc[1].status != OC_LOCKED) {
if (ac->oc[0].status == OC_LOCKED) {
ac->oc[1] = ac->oc[0];
ac->avctx->channels = ac->oc[1].channels;
ac->avctx->channel_layout = ac->oc[1].channel_layout;
}
if (ac->oc[1].status != OC_LOCKED && ac->oc[0].status != OC_NONE) {
ac->oc[1] = ac->oc[0];
ac->avctx->channels = ac->oc[1].channels;
ac->avctx->channel_layout = ac->oc[1].channel_layout;
output_configure(ac, ac->oc[1].layout_map, ac->oc[1].layout_map_tags,
ac->oc[1].m4ac.chan_config, ac->oc[1].status);
}
}
@@ -575,6 +579,8 @@ static void decode_channel_map(uint8_t layout_map[][3],
case AAC_CHANNEL_LFE:
syn_ele = TYPE_LFE;
break;
default:
av_assert0(0);
}
layout_map[0][0] = syn_ele;
layout_map[0][1] = get_bits(gb, 4);
@@ -781,7 +787,7 @@ static int decode_audio_specific_config(AACContext *ac,
*
* @return Returns a 32-bit pseudorandom integer
*/
static av_always_inline int lcg_random(int previous_val)
static av_always_inline int lcg_random(unsigned previous_val)
{
return previous_val * 1664525 + 1013904223;
}
@@ -840,6 +846,14 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
ac->avctx = avctx;
ac->oc[1].m4ac.sample_rate = avctx->sample_rate;
if (avctx->request_sample_fmt == AV_SAMPLE_FMT_FLT) {
avctx->sample_fmt = AV_SAMPLE_FMT_FLT;
output_scale_factor = 1.0 / 32768.0;
} else {
avctx->sample_fmt = AV_SAMPLE_FMT_S16;
output_scale_factor = 1.0;
}
if (avctx->extradata_size > 0) {
if (decode_audio_specific_config(ac, ac->avctx, &ac->oc[1].m4ac,
avctx->extradata,
@@ -875,12 +889,9 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
}
}
if (avctx->request_sample_fmt == AV_SAMPLE_FMT_FLT) {
avctx->sample_fmt = AV_SAMPLE_FMT_FLT;
output_scale_factor = 1.0 / 32768.0;
} else {
avctx->sample_fmt = AV_SAMPLE_FMT_S16;
output_scale_factor = 1.0;
if (avctx->channels > MAX_CHANNELS) {
av_log(avctx, AV_LOG_ERROR, "Too many channels\n");
return AVERROR_INVALIDDATA;
}
AAC_INIT_VLC_STATIC( 0, 304);
@@ -899,6 +910,7 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
ff_dsputil_init(&ac->dsp, avctx);
ff_fmt_convert_init(&ac->fmt_conv, avctx);
avpriv_float_dsp_init(&ac->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
ac->random_state = 0x1f2e3d4c;
@@ -1305,7 +1317,7 @@ static inline float *VMUL4S(float *dst, const float *v, unsigned idx,
t.i = s.i ^ (sign & 1U<<31);
*dst++ = v[idx>>4 & 3] * t.f;
sign <<= nz & 1; nz >>= 1;
sign <<= nz & 1;
t.i = s.i ^ (sign & 1U<<31);
*dst++ = v[idx>>6 & 3] * t.f;
@@ -2067,10 +2079,10 @@ static void windowing_and_mdct_ltp(AACContext *ac, float *out,
const float *swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;
if (ics->window_sequence[0] != LONG_STOP_SEQUENCE) {
ac->dsp.vector_fmul(in, in, lwindow_prev, 1024);
ac->fdsp.vector_fmul(in, in, lwindow_prev, 1024);
} else {
memset(in, 0, 448 * sizeof(float));
ac->dsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
ac->fdsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);
}
if (ics->window_sequence[0] != LONG_START_SEQUENCE) {
ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);
@@ -2374,6 +2386,21 @@ static int parse_adts_frame_header(AACContext *ac, GetBitContext *gb)
return -7;
} else {
ac->oc[1].m4ac.chan_config = 0;
/**
* dual mono frames in Japanese DTV can have chan_config 0
* WITHOUT specifying PCE.
* thus, set dual mono as default.
*/
if (ac->enable_jp_dmono && ac->oc[0].status == OC_NONE) {
layout_map_tags = 2;
layout_map[0][0] = layout_map[1][0] = TYPE_SCE;
layout_map[0][2] = layout_map[1][2] = AAC_CHANNEL_FRONT;
layout_map[0][1] = 0;
layout_map[1][1] = 1;
if (output_configure(ac, layout_map, layout_map_tags,
0, OC_TRIAL_FRAME))
return -7;
}
}
ac->oc[1].m4ac.sample_rate = hdr_info.sample_rate;
ac->oc[1].m4ac.sampling_index = hdr_info.sampling_index;
@@ -2391,13 +2418,15 @@ static int parse_adts_frame_header(AACContext *ac, GetBitContext *gb)
}
static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
int *got_frame_ptr, GetBitContext *gb)
int *got_frame_ptr, GetBitContext *gb, AVPacket *avpkt)
{
AACContext *ac = avctx->priv_data;
ChannelElement *che = NULL, *che_prev = NULL;
enum RawDataBlockType elem_type, elem_type_prev = TYPE_END;
int err, elem_id;
int samples = 0, multiplier, audio_found = 0, pce_found = 0;
int is_dmono, sce_count = 0;
float *tmp = NULL;
if (show_bits(gb, 12) == 0xfff) {
if (parse_adts_frame_header(ac, gb) < 0) {
@@ -2432,6 +2461,7 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
case TYPE_SCE:
err = decode_ics(ac, &che->ch[0], gb, 0, 0);
audio_found = 1;
sce_count++;
break;
case TYPE_CPE:
@@ -2510,6 +2540,20 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
multiplier = (ac->oc[1].m4ac.sbr == 1) ? ac->oc[1].m4ac.ext_sample_rate > ac->oc[1].m4ac.sample_rate : 0;
samples <<= multiplier;
/* for dual-mono audio (SCE + SCE) */
is_dmono = ac->enable_jp_dmono && sce_count == 2 &&
ac->oc[1].channel_layout == (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT);
if (is_dmono) {
if (ac->dmono_mode == 0) {
tmp = ac->output_data[1];
ac->output_data[1] = ac->output_data[0];
} else if (ac->dmono_mode == 1) {
tmp = ac->output_data[0];
ac->output_data[0] = ac->output_data[1];
}
}
if (samples) {
/* get output buffer */
ac->frame.nb_samples = samples;
@@ -2532,12 +2576,25 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
}
*got_frame_ptr = !!samples;
if (is_dmono) {
if (ac->dmono_mode == 0)
ac->output_data[1] = tmp;
else if (ac->dmono_mode == 1)
ac->output_data[0] = tmp;
}
if (ac->oc[1].status && audio_found) {
avctx->sample_rate = ac->oc[1].m4ac.sample_rate << multiplier;
avctx->frame_size = samples;
ac->oc[1].status = OC_LOCKED;
}
if (multiplier) {
int side_size;
uint32_t *side = av_packet_get_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, &side_size);
if (side && side_size>=4)
AV_WL32(side, 2*AV_RL32(side));
}
return 0;
fail:
pop_output_configuration(ac);
@@ -2558,6 +2615,10 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
const uint8_t *new_extradata = av_packet_get_side_data(avpkt,
AV_PKT_DATA_NEW_EXTRADATA,
&new_extradata_size);
int jp_dualmono_size;
const uint8_t *jp_dualmono = av_packet_get_side_data(avpkt,
AV_PKT_DATA_JP_DUALMONO,
&jp_dualmono_size);
if (new_extradata && 0) {
av_free(avctx->extradata);
@@ -2576,9 +2637,14 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
}
}
ac->enable_jp_dmono = !!jp_dualmono;
ac->dmono_mode = 0;
if (jp_dualmono && jp_dualmono_size > 0)
ac->dmono_mode = *jp_dualmono;
init_get_bits(&gb, buf, buf_size * 8);
if ((err = aac_decode_frame_int(avctx, data, got_frame_ptr, &gb)) < 0)
if ((err = aac_decode_frame_int(avctx, data, got_frame_ptr, &gb, avpkt)) < 0)
return err;
buf_consumed = (get_bits_count(&gb) + 7) >> 3;
@@ -2613,7 +2679,7 @@ static av_cold int aac_decode_close(AVCodecContext *avctx)
struct LATMContext {
AACContext aac_ctx; ///< containing AACContext
int initialized; ///< initilized after a valid extradata was seen
int initialized; ///< initialized after a valid extradata was seen
// parser data
int audio_mux_version_A; ///< LATM syntax version
@@ -2658,10 +2724,15 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
if (bits_consumed < 0)
return AVERROR_INVALIDDATA;
if (ac->oc[1].m4ac.sample_rate != m4ac.sample_rate ||
if (!latmctx->initialized ||
ac->oc[1].m4ac.sample_rate != m4ac.sample_rate ||
ac->oc[1].m4ac.chan_config != m4ac.chan_config) {
av_log(avctx, AV_LOG_INFO, "audio config changed\n");
if(latmctx->initialized) {
av_log(avctx, AV_LOG_INFO, "audio config changed\n");
} else {
av_log(avctx, AV_LOG_INFO, "initializing latmctx\n");
}
latmctx->initialized = 0;
esize = (bits_consumed+7) / 8;
@@ -2705,9 +2776,9 @@ static int read_stream_mux_config(struct LATMContext *latmctx,
return AVERROR_PATCHWELCOME;
}
// for each program (which there is only on in DVB)
// for each program (which there is only one in DVB)
// for each layer (which there is only on in DVB)
// for each layer (which there is only one in DVB)
if (get_bits(gb, 3)) { // numLayer
av_log_missing_feature(latmctx->aac_ctx.avctx,
"multiple layers are not supported\n", 1);
@@ -2828,7 +2899,7 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out,
return AVERROR_INVALIDDATA;
muxlength = get_bits(&gb, 13) + 3;
// not enough data, the parser should have sorted this
// not enough data, the parser should have sorted this out
if (muxlength > avpkt->size)
return AVERROR_INVALIDDATA;
@@ -2858,7 +2929,7 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out,
return AVERROR_INVALIDDATA;
}
if ((err = aac_decode_frame_int(avctx, out, got_frame_ptr, &gb)) < 0)
if ((err = aac_decode_frame_int(avctx, out, got_frame_ptr, &gb, avpkt)) < 0)
return err;
return muxlength;
@@ -2879,12 +2950,12 @@ static av_cold int latm_decode_init(AVCodecContext *avctx)
AVCodec ff_aac_decoder = {
.name = "aac",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AAC,
.id = AV_CODEC_ID_AAC,
.priv_data_size = sizeof(AACContext),
.init = aac_decode_init,
.close = aac_decode_close,
.decode = aac_decode_frame,
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
.long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
.sample_fmts = (const enum AVSampleFormat[]) {
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
},
@@ -2901,12 +2972,12 @@ AVCodec ff_aac_decoder = {
AVCodec ff_aac_latm_decoder = {
.name = "aac_latm",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AAC_LATM,
.id = AV_CODEC_ID_AAC_LATM,
.priv_data_size = sizeof(struct LATMContext),
.init = latm_decode_init,
.close = aac_decode_close,
.decode = latm_decode_frame,
.long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Codec LATM syntax)"),
.long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Coding LATM syntax)"),
.sample_fmts = (const enum AVSampleFormat[]) {
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
},

View File

@@ -30,6 +30,7 @@
* add temporal noise shaping
***********************************/
#include "libavutil/float_dsp.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "put_bits.h"
@@ -182,7 +183,9 @@ static void put_audio_specific_config(AVCodecContext *avctx)
}
#define WINDOW_FUNC(type) \
static void apply_ ##type ##_window(DSPContext *dsp, SingleChannelElement *sce, const float *audio)
static void apply_ ##type ##_window(DSPContext *dsp, AVFloatDSPContext *fdsp, \
SingleChannelElement *sce, \
const float *audio)
WINDOW_FUNC(only_long)
{
@@ -190,7 +193,7 @@ WINDOW_FUNC(only_long)
const float *pwindow = sce->ics.use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;
float *out = sce->ret;
dsp->vector_fmul (out, audio, lwindow, 1024);
fdsp->vector_fmul (out, audio, lwindow, 1024);
dsp->vector_fmul_reverse(out + 1024, audio + 1024, pwindow, 1024);
}
@@ -200,7 +203,7 @@ WINDOW_FUNC(long_start)
const float *swindow = sce->ics.use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128;
float *out = sce->ret;
dsp->vector_fmul(out, audio, lwindow, 1024);
fdsp->vector_fmul(out, audio, lwindow, 1024);
memcpy(out + 1024, audio + 1024, sizeof(out[0]) * 448);
dsp->vector_fmul_reverse(out + 1024 + 448, audio + 1024 + 448, swindow, 128);
memset(out + 1024 + 576, 0, sizeof(out[0]) * 448);
@@ -213,7 +216,7 @@ WINDOW_FUNC(long_stop)
float *out = sce->ret;
memset(out, 0, sizeof(out[0]) * 448);
dsp->vector_fmul(out + 448, audio + 448, swindow, 128);
fdsp->vector_fmul(out + 448, audio + 448, swindow, 128);
memcpy(out + 576, audio + 576, sizeof(out[0]) * 448);
dsp->vector_fmul_reverse(out + 1024, audio + 1024, lwindow, 1024);
}
@@ -227,7 +230,7 @@ WINDOW_FUNC(eight_short)
int w;
for (w = 0; w < 8; w++) {
dsp->vector_fmul (out, in, w ? pwindow : swindow, 128);
fdsp->vector_fmul (out, in, w ? pwindow : swindow, 128);
out += 128;
in += 128;
dsp->vector_fmul_reverse(out, in, swindow, 128);
@@ -235,7 +238,9 @@ WINDOW_FUNC(eight_short)
}
}
static void (*const apply_window[4])(DSPContext *dsp, SingleChannelElement *sce, const float *audio) = {
static void (*const apply_window[4])(DSPContext *dsp, AVFloatDSPContext *fdsp,
SingleChannelElement *sce,
const float *audio) = {
[ONLY_LONG_SEQUENCE] = apply_only_long_window,
[LONG_START_SEQUENCE] = apply_long_start_window,
[EIGHT_SHORT_SEQUENCE] = apply_eight_short_window,
@@ -248,7 +253,7 @@ static void apply_window_and_mdct(AACEncContext *s, SingleChannelElement *sce,
int i;
float *output = sce->ret;
apply_window[sce->ics.window_sequence[0]](&s->dsp, sce, audio);
apply_window[sce->ics.window_sequence[0]](&s->dsp, &s->fdsp, sce, audio);
if (sce->ics.window_sequence[0] != EIGHT_SHORT_SEQUENCE)
s->mdct1024.mdct_calc(&s->mdct1024, sce->coeffs, output);
@@ -517,7 +522,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
/* add current frame to queue */
if (frame) {
if ((ret = ff_af_queue_add(&s->afq, frame) < 0))
if ((ret = ff_af_queue_add(&s->afq, frame)) < 0)
return ret;
}
@@ -571,7 +576,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
}
start_ch += chans;
}
if ((ret = ff_alloc_packet2(avctx, avpkt, 768 * s->channels))) {
if ((ret = ff_alloc_packet2(avctx, avpkt, 8192 * s->channels))) {
av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n");
return ret;
}
@@ -693,6 +698,7 @@ static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s)
int ret = 0;
ff_dsputil_init(&s->dsp, avctx);
avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
// window init
ff_kbd_window_init(ff_aac_kbd_long_1024, 4.0, 1024);
@@ -795,11 +801,11 @@ fail:
#define AACENC_FLAGS AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM
static const AVOption aacenc_options[] = {
{"stereo_mode", "Stereo coding method", offsetof(AACEncContext, options.stereo_mode), AV_OPT_TYPE_INT, {.dbl = 0}, -1, 1, AACENC_FLAGS, "stereo_mode"},
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.dbl = -1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
{"ms_off", "Disable Mid/Side coding", 0, AV_OPT_TYPE_CONST, {.dbl = 0 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
{"ms_force", "Force Mid/Side for the whole frame if possible", 0, AV_OPT_TYPE_CONST, {.dbl = 1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
{"aac_coder", "", offsetof(AACEncContext, options.aac_coder), AV_OPT_TYPE_INT, {.dbl = 2}, 0, AAC_CODER_NB-1, AACENC_FLAGS},
{"stereo_mode", "Stereo coding method", offsetof(AACEncContext, options.stereo_mode), AV_OPT_TYPE_INT, {.i64 = 0}, -1, 1, AACENC_FLAGS, "stereo_mode"},
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.i64 = -1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
{"ms_off", "Disable Mid/Side coding", 0, AV_OPT_TYPE_CONST, {.i64 = 0 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
{"ms_force", "Force Mid/Side for the whole frame if possible", 0, AV_OPT_TYPE_CONST, {.i64 = 1 }, INT_MIN, INT_MAX, AACENC_FLAGS, "stereo_mode"},
{"aac_coder", "", offsetof(AACEncContext, options.aac_coder), AV_OPT_TYPE_INT, {.i64 = 2}, 0, AAC_CODER_NB-1, AACENC_FLAGS},
{NULL}
};
@@ -813,7 +819,7 @@ static const AVClass aacenc_class = {
AVCodec ff_aac_encoder = {
.name = "aac",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AAC,
.id = AV_CODEC_ID_AAC,
.priv_data_size = sizeof(AACEncContext),
.init = aac_encode_init,
.encode2 = aac_encode_frame,
@@ -823,6 +829,6 @@ AVCodec ff_aac_encoder = {
CODEC_CAP_EXPERIMENTAL,
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLT,
AV_SAMPLE_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"),
.long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
.priv_class = &aacenc_class,
};

View File

@@ -22,6 +22,7 @@
#ifndef AVCODEC_AACENC_H
#define AVCODEC_AACENC_H
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "put_bits.h"
#include "dsputil.h"
@@ -61,6 +62,7 @@ typedef struct AACEncContext {
FFTContext mdct1024; ///< long (1024 samples) frame transform context
FFTContext mdct128; ///< short (128 samples) frame transform context
DSPContext dsp;
AVFloatDSPContext fdsp;
float *planar_samples[6]; ///< saved preprocessed input
int samplerate_index; ///< MPEG-4 samplerate index

View File

@@ -23,6 +23,7 @@
#ifndef AACPS_TABLEGEN_H
#define AACPS_TABLEGEN_H
#include <math.h>
#include <stdint.h>
#if CONFIG_HARDCODED_TABLES

View File

@@ -24,6 +24,8 @@
* AAC encoder psychoacoustic model
*/
#include "libavutil/libm.h"
#include "avcodec.h"
#include "aactab.h"
#include "psymodel.h"
@@ -292,7 +294,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
int i, j, g, start;
float prev, minscale, minath, minsnr, pe_min;
const int chan_bitrate = ctx->avctx->bit_rate / ctx->avctx->channels;
const int bandwidth = ctx->avctx->cutoff ? ctx->avctx->cutoff : ctx->avctx->sample_rate / 2;
const int bandwidth = ctx->avctx->cutoff ? ctx->avctx->cutoff : AAC_CUTOFF(ctx->avctx);
const float num_bark = calc_bark((float)bandwidth);
ctx->model_priv_data = av_mallocz(sizeof(AacPsyContext));
@@ -333,7 +335,7 @@ static av_cold int psy_3gpp_init(FFPsyContext *ctx) {
coeff->spread_low[1] = pow(10.0, -bark_width * en_spread_low);
coeff->spread_hi [1] = pow(10.0, -bark_width * en_spread_hi);
pe_min = bark_pe * bark_width;
minsnr = pow(2.0f, pe_min / band_sizes[g]) - 1.5f;
minsnr = exp2(pe_min / band_sizes[g]) - 1.5f;
coeff->min_snr = av_clipf(1.0f / minsnr, PSY_SNR_25DB, PSY_SNR_1DB);
}
start = 0;
@@ -524,8 +526,11 @@ static float calc_reduction_3gpp(float a, float desired_pe, float pe,
{
float thr_avg, reduction;
thr_avg = powf(2.0f, (a - pe) / (4.0f * active_lines));
reduction = powf(2.0f, (a - desired_pe) / (4.0f * active_lines)) - thr_avg;
if(active_lines == 0.0)
return 0;
thr_avg = exp2f((a - pe) / (4.0f * active_lines));
reduction = exp2f((a - desired_pe) / (4.0f * active_lines)) - thr_avg;
return FFMAX(reduction, 0.0f);
}
@@ -563,7 +568,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
AacPsyChannel *pch = &pctx->ch[channel];
int start = 0;
int i, w, g;
float desired_bits, desired_pe, delta_pe, reduction, spread_en[128] = {0};
float desired_bits, desired_pe, delta_pe, reduction= NAN, spread_en[128] = {0};
float a = 0.0f, active_lines = 0.0f, norm_fac = 0.0f;
float pe = pctx->chan_bitrate > 32000 ? 0.0f : FFMAX(50.0f, 100.0f - pctx->chan_bitrate * 100.0f / 32000.0f);
const int num_bands = ctx->num_bands[wi->num_windows == 8];
@@ -583,7 +588,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
form_factor += sqrtf(fabs(coefs[start+i]));
}
band->thr = band->energy * 0.001258925f;
band->nz_lines = form_factor / powf(band->energy / band_sizes[g], 0.25f);
band->nz_lines = band->energy>0 ? form_factor / powf(band->energy / band_sizes[g], 0.25f) : 0;
start += band_sizes[g];
}
@@ -703,7 +708,7 @@ static void psy_3gpp_analyze_channel(FFPsyContext *ctx, int channel,
float delta_sfb_pe = band->norm_fac * norm_fac * delta_pe;
float thr = band->thr;
thr *= powf(2.0f, delta_sfb_pe / band->active_lines);
thr *= exp2f(delta_sfb_pe / band->active_lines);
if (thr > coeffs[g].min_snr * band->energy && band->avoid_holes == PSY_3GPP_AH_INACTIVE)
thr = FFMAX(band->thr, coeffs[g].min_snr * band->energy);
band->thr = thr;

View File

@@ -1594,10 +1594,6 @@ static void sbr_hf_assemble(float Y1[38][64][2],
0.11516383427084,
0.03183050093751,
};
static const int8_t phi[2][4] = {
{ 1, 0, -1, 0}, // real
{ 0, 1, 0, -1}, // imaginary
};
float (*g_temp)[48] = ch_data->g_temp, (*q_temp)[48] = ch_data->q_temp;
int indexnoise = ch_data->f_indexnoise;
int indexsine = ch_data->f_indexsine;
@@ -1621,7 +1617,6 @@ static void sbr_hf_assemble(float Y1[38][64][2],
for (e = 0; e < ch_data->bs_num_env; e++) {
for (i = 2 * ch_data->t_env[e]; i < 2 * ch_data->t_env[e + 1]; i++) {
int phi_sign = (1 - 2*(kx & 1));
LOCAL_ALIGNED_16(float, g_filt_tab, [48]);
LOCAL_ALIGNED_16(float, q_filt_tab, [48]);
float *g_filt, *q_filt;
@@ -1651,13 +1646,17 @@ static void sbr_hf_assemble(float Y1[38][64][2],
q_filt, indexnoise,
kx, m_max);
} else {
for (m = 0; m < m_max; m++) {
Y1[i][m + kx][0] +=
sbr->s_m[e][m] * phi[0][indexsine];
Y1[i][m + kx][1] +=
sbr->s_m[e][m] * (phi[1][indexsine] * phi_sign);
phi_sign = -phi_sign;
int idx = indexsine&1;
int A = (1-((indexsine+(kx & 1))&2));
int B = (A^(-idx)) + idx;
float *out = &Y1[i][kx][idx];
float *in = sbr->s_m[e];
for (m = 0; m+1 < m_max; m+=2) {
out[2*m ] += in[m ] * A;
out[2*m+2] += in[m+1] * B;
}
if(m_max&1)
out[2*m ] += in[m ] * A;
}
indexnoise = (indexnoise + m_max) & 0x1ff;
indexsine = (indexsine + 1) & 3;

View File

@@ -36,14 +36,29 @@ typedef struct AascContext {
AVCodecContext *avctx;
GetByteContext gb;
AVFrame frame;
uint32_t palette[AVPALETTE_COUNT];
int palette_size;
} AascContext;
static av_cold int aasc_decode_init(AVCodecContext *avctx)
{
AascContext *s = avctx->priv_data;
uint8_t *ptr;
int i;
s->avctx = avctx;
switch (avctx->bits_per_coded_sample) {
case 8:
avctx->pix_fmt = PIX_FMT_PAL8;
ptr = avctx->extradata;
s->palette_size = FFMIN(avctx->extradata_size, AVPALETTE_SIZE);
for (i = 0; i < s->palette_size / 4; i++) {
s->palette[i] = 0xFFU << 24 | AV_RL32(ptr);
ptr += 4;
}
break;
case 16:
avctx->pix_fmt = PIX_FMT_RGB555;
break;
@@ -112,6 +127,9 @@ static int aasc_decode_frame(AVCodecContext *avctx,
return -1;
}
if (avctx->pix_fmt == PIX_FMT_PAL8)
memcpy(s->frame.data[1], s->palette, s->palette_size);
*data_size = sizeof(AVFrame);
*(AVFrame*)data = s->frame;
@@ -133,7 +151,7 @@ static av_cold int aasc_decode_end(AVCodecContext *avctx)
AVCodec ff_aasc_decoder = {
.name = "aasc",
.type = AVMEDIA_TYPE_VIDEO,
.id = CODEC_ID_AASC,
.id = AV_CODEC_ID_AASC,
.priv_data_size = sizeof(AascContext),
.init = aasc_decode_init,
.close = aasc_decode_end,

View File

@@ -167,9 +167,9 @@ static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info,
if (hdr.bitstream_mode == 0x7 && hdr.channels > 1)
hdr_info->service_type = AV_AUDIO_SERVICE_TYPE_KARAOKE;
if(hdr.bitstream_id>10)
hdr_info->codec_id = CODEC_ID_EAC3;
else if (hdr_info->codec_id == CODEC_ID_NONE)
hdr_info->codec_id = CODEC_ID_AC3;
hdr_info->codec_id = AV_CODEC_ID_EAC3;
else if (hdr_info->codec_id == AV_CODEC_ID_NONE)
hdr_info->codec_id = AV_CODEC_ID_AC3;
*need_next_header = (hdr.frame_type != EAC3_FRAME_TYPE_AC3_CONVERT);
*new_frame_start = (hdr.frame_type != EAC3_FRAME_TYPE_DEPENDENT);
@@ -186,7 +186,7 @@ static av_cold int ac3_parse_init(AVCodecParserContext *s1)
AVCodecParser ff_ac3_parser = {
.codec_ids = { CODEC_ID_AC3, CODEC_ID_EAC3 },
.codec_ids = { AV_CODEC_ID_AC3, AV_CODEC_ID_EAC3 },
.priv_data_size = sizeof(AACAC3ParseContext),
.parser_init = ac3_parse_init,
.parser_parse = ff_aac_ac3_parse,

View File

@@ -620,34 +620,6 @@ static inline void do_imdct(AC3DecodeContext *s, int channels)
}
}
/**
* Downmix the output to mono or stereo.
*/
void ff_ac3_downmix_c(float (*samples)[256], float (*matrix)[2],
int out_ch, int in_ch, int len)
{
int i, j;
float v0, v1;
if (out_ch == 2) {
for (i = 0; i < len; i++) {
v0 = v1 = 0.0f;
for (j = 0; j < in_ch; j++) {
v0 += samples[j][i] * matrix[j][0];
v1 += samples[j][i] * matrix[j][1];
}
samples[0][i] = v0;
samples[1][i] = v1;
}
} else if (out_ch == 1) {
for (i = 0; i < len; i++) {
v0 = 0.0f;
for (j = 0; j < in_ch; j++)
v0 += samples[j][i] * matrix[j][0];
samples[0][i] = v0;
}
}
}
/**
* Upmix delay samples from stereo to original channel layout.
*/
@@ -1266,19 +1238,19 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
do_imdct(s, s->channels);
if (downmix_output) {
s->dsp.ac3_downmix(s->output, s->downmix_coeffs,
s->out_channels, s->fbw_channels, 256);
s->ac3dsp.downmix(s->output, s->downmix_coeffs,
s->out_channels, s->fbw_channels, 256);
}
} else {
if (downmix_output) {
s->dsp.ac3_downmix(s->transform_coeffs + 1, s->downmix_coeffs,
s->out_channels, s->fbw_channels, 256);
s->ac3dsp.downmix(s->transform_coeffs + 1, s->downmix_coeffs,
s->out_channels, s->fbw_channels, 256);
}
if (downmix_output && !s->downmixed) {
s->downmixed = 1;
s->dsp.ac3_downmix(s->delay, s->downmix_coeffs, s->out_channels,
s->fbw_channels, 128);
s->ac3dsp.downmix(s->delay, s->downmix_coeffs, s->out_channels,
s->fbw_channels, 128);
}
do_imdct(s, s->out_channels);
@@ -1433,6 +1405,8 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data,
}
}
s->frame.decode_error_flags = err ? FF_DECODE_ERROR_INVALID_BITSTREAM : 0;
*got_frame_ptr = 1;
*(AVFrame *)data = s->frame;
@@ -1454,9 +1428,9 @@ static av_cold int ac3_decode_end(AVCodecContext *avctx)
#define OFFSET(x) offsetof(AC3DecodeContext, x)
#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM)
static const AVOption options[] = {
{ "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {1.0}, 0.0, 1.0, PAR },
{ "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 1.0, PAR },
{"dmix_mode", "Preferred Stereo Downmix Mode", OFFSET(preferred_stereo_downmix), AV_OPT_TYPE_INT, {.dbl = -1 }, -1, 2, 0, "dmix_mode"},
{"dmix_mode", "Preferred Stereo Downmix Mode", OFFSET(preferred_stereo_downmix), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 2, 0, "dmix_mode"},
{"ltrt_cmixlev", "Lt/Rt Center Mix Level", OFFSET(ltrt_center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, 0},
{"ltrt_surmixlev", "Lt/Rt Surround Mix Level", OFFSET(ltrt_surround_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, 0},
{"loro_cmixlev", "Lo/Ro Center Mix Level", OFFSET(loro_center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, 0},
@@ -1475,7 +1449,7 @@ static const AVClass ac3_decoder_class = {
AVCodec ff_ac3_decoder = {
.name = "ac3",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.id = AV_CODEC_ID_AC3,
.priv_data_size = sizeof (AC3DecodeContext),
.init = ac3_decode_init,
.close = ac3_decode_end,
@@ -1499,7 +1473,7 @@ static const AVClass eac3_decoder_class = {
AVCodec ff_eac3_decoder = {
.name = "eac3",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_EAC3,
.id = AV_CODEC_ID_EAC3,
.priv_data_size = sizeof (AC3DecodeContext),
.init = ac3_decode_init,
.close = ac3_decode_end,

View File

@@ -227,9 +227,6 @@ int ff_eac3_parse_header(AC3DecodeContext *s);
*/
void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch);
void ff_ac3_downmix_c(float (*samples)[256], float (*matrix)[2],
int out_ch, int in_ch, int len);
/**
* Apply spectral extension to each channel by copying lower frequency
* coefficients to higher frequency bins and applying side information to

View File

@@ -214,6 +214,31 @@ static void ac3_sum_square_butterfly_float_c(float sum[4],
}
}
static void ac3_downmix_c(float (*samples)[256], float (*matrix)[2],
int out_ch, int in_ch, int len)
{
int i, j;
float v0, v1;
if (out_ch == 2) {
for (i = 0; i < len; i++) {
v0 = v1 = 0.0f;
for (j = 0; j < in_ch; j++) {
v0 += samples[j][i] * matrix[j][0];
v1 += samples[j][i] * matrix[j][1];
}
samples[0][i] = v0;
samples[1][i] = v1;
}
} else if (out_ch == 1) {
for (i = 0; i < len; i++) {
v0 = 0.0f;
for (j = 0; j < in_ch; j++)
v0 += samples[j][i] * matrix[j][0];
samples[0][i] = v0;
}
}
}
av_cold void ff_ac3dsp_init(AC3DSPContext *c, int bit_exact)
{
c->ac3_exponent_min = ac3_exponent_min_c;
@@ -227,6 +252,7 @@ av_cold void ff_ac3dsp_init(AC3DSPContext *c, int bit_exact)
c->extract_exponents = ac3_extract_exponents_c;
c->sum_square_butterfly_int32 = ac3_sum_square_butterfly_int32_c;
c->sum_square_butterfly_float = ac3_sum_square_butterfly_float_c;
c->downmix = ac3_downmix_c;
if (ARCH_ARM)
ff_ac3dsp_init_arm(c, bit_exact);

View File

@@ -131,6 +131,9 @@ typedef struct AC3DSPContext {
void (*sum_square_butterfly_float)(float sum[4], const float *coef0,
const float *coef1, int len);
void (*downmix)(float (*samples)[256], float (*matrix)[2], int out_ch,
int in_ch, int len);
} AC3DSPContext;
void ff_ac3dsp_init (AC3DSPContext *c, int bit_exact);

View File

@@ -2427,7 +2427,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx)
s->avctx = avctx;
s->eac3 = avctx->codec_id == CODEC_ID_EAC3;
s->eac3 = avctx->codec_id == AV_CODEC_ID_EAC3;
ff_ac3_common_init();
@@ -2491,6 +2491,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx)
#endif
ff_dsputil_init(&s->dsp, avctx);
avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT);
dprint_options(s);

View File

@@ -29,6 +29,8 @@
#define AVCODEC_AC3ENC_H
#include <stdint.h>
#include "libavutil/float_dsp.h"
#include "ac3.h"
#include "ac3dsp.h"
#include "avcodec.h"
@@ -158,6 +160,7 @@ typedef struct AC3EncodeContext {
AVCodecContext *avctx; ///< parent AVCodecContext
PutBitContext pb; ///< bitstream writer context
DSPContext dsp;
AVFloatDSPContext fdsp;
AC3DSPContext ac3dsp; ///< AC-3 optimized functions
FFTContext mdct; ///< FFT context for MDCT calculation
const SampleType *mdct_window; ///< MDCT window function array

View File

@@ -34,8 +34,13 @@
#define AC3ENC_TYPE AC3ENC_TYPE_AC3_FIXED
#include "ac3enc_opts_template.c"
static const AVClass ac3enc_class = { "Fixed-Point AC-3 Encoder", av_default_item_name,
ac3fixed_options, LIBAVUTIL_VERSION_INT };
static const AVClass ac3enc_class = {
.class_name = "Fixed-Point AC-3 Encoder",
.item_name = av_default_item_name,
.option = ac3_options,
.version = LIBAVUTIL_VERSION_INT,
};
#include "ac3enc_template.c"
@@ -68,10 +73,11 @@ av_cold int AC3_NAME(mdct_init)(AC3EncodeContext *s)
/*
* Apply KBD window to input samples prior to MDCT.
*/
static void apply_window(DSPContext *dsp, int16_t *output, const int16_t *input,
static void apply_window(void *dsp, int16_t *output, const int16_t *input,
const int16_t *window, unsigned int len)
{
dsp->apply_window_int16(output, input, window, len);
DSPContext *dsp0 = dsp;
dsp0->apply_window_int16(output, input, window, len);
}
@@ -149,7 +155,7 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx)
AVCodec ff_ac3_fixed_encoder = {
.name = "ac3_fixed",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.id = AV_CODEC_ID_AC3,
.priv_data_size = sizeof(AC3EncodeContext),
.init = ac3_fixed_encode_init,
.encode2 = ff_ac3_fixed_encode_frame,

View File

@@ -36,8 +36,12 @@
#if CONFIG_AC3_ENCODER
#define AC3ENC_TYPE AC3ENC_TYPE_AC3
#include "ac3enc_opts_template.c"
static const AVClass ac3enc_class = { "AC-3 Encoder", av_default_item_name,
ac3_options, LIBAVUTIL_VERSION_INT };
static const AVClass ac3enc_class = {
.class_name = "AC-3 Encoder",
.item_name = av_default_item_name,
.option = ac3_options,
.version = LIBAVUTIL_VERSION_INT,
};
#endif
#include "ac3enc_template.c"
@@ -86,10 +90,12 @@ av_cold int ff_ac3_float_mdct_init(AC3EncodeContext *s)
/*
* Apply KBD window to input samples prior to MDCT.
*/
static void apply_window(DSPContext *dsp, float *output, const float *input,
const float *window, unsigned int len)
static void apply_window(void *dsp, float *output,
const float *input, const float *window,
unsigned int len)
{
dsp->vector_fmul(output, input, window, len);
AVFloatDSPContext *fdsp = dsp;
fdsp->vector_fmul(output, input, window, len);
}
@@ -147,7 +153,7 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl)
AVCodec ff_ac3_encoder = {
.name = "ac3",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_AC3,
.id = AV_CODEC_ID_AC3,
.priv_data_size = sizeof(AC3EncodeContext),
.init = ff_ac3_encode_init,
.encode2 = ff_ac3_float_encode_frame,

View File

@@ -23,60 +23,54 @@
#include "internal.h"
#include "ac3.h"
#if AC3ENC_TYPE == AC3ENC_TYPE_AC3_FIXED
static const AVOption ac3fixed_options[] = {
#elif AC3ENC_TYPE == AC3ENC_TYPE_AC3
static const AVOption ac3_options[] = {
#else /* AC3ENC_TYPE_EAC3 */
static const AVOption eac3_options[] = {
#endif
/* Metadata Options */
{"per_frame_metadata", "Allow Changing Metadata Per-Frame", OFFSET(allow_per_frame_metadata), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, 1, AC3ENC_PARAM},
{"per_frame_metadata", "Allow Changing Metadata Per-Frame", OFFSET(allow_per_frame_metadata), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, AC3ENC_PARAM},
#if AC3ENC_TYPE != AC3ENC_TYPE_EAC3
/* AC-3 downmix levels */
{"center_mixlev", "Center Mix Level", OFFSET(center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = LEVEL_MINUS_4POINT5DB }, 0.0, 1.0, AC3ENC_PARAM},
{"surround_mixlev", "Surround Mix Level", OFFSET(surround_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = LEVEL_MINUS_6DB }, 0.0, 1.0, AC3ENC_PARAM},
#endif
/* audio production information */
{"mixing_level", "Mixing Level", OFFSET(mixing_level), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, 111, AC3ENC_PARAM},
{"room_type", "Room Type", OFFSET(room_type), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_SMALL_ROOM, AC3ENC_PARAM, "room_type"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "room_type"},
{"large", "Large Room", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_LARGE_ROOM }, INT_MIN, INT_MAX, AC3ENC_PARAM, "room_type"},
{"small", "Small Room", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_SMALL_ROOM }, INT_MIN, INT_MAX, AC3ENC_PARAM, "room_type"},
{"mixing_level", "Mixing Level", OFFSET(mixing_level), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, 111, AC3ENC_PARAM},
{"room_type", "Room Type", OFFSET(room_type), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_SMALL_ROOM, AC3ENC_PARAM, "room_type"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "room_type"},
{"large", "Large Room", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_LARGE_ROOM }, INT_MIN, INT_MAX, AC3ENC_PARAM, "room_type"},
{"small", "Small Room", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_SMALL_ROOM }, INT_MIN, INT_MAX, AC3ENC_PARAM, "room_type"},
/* other metadata options */
{"copyright", "Copyright Bit", OFFSET(copyright), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, 1, AC3ENC_PARAM},
{"dialnorm", "Dialogue Level (dB)", OFFSET(dialogue_level), AV_OPT_TYPE_INT, {.dbl = -31 }, -31, -1, AC3ENC_PARAM},
{"dsur_mode", "Dolby Surround Mode", OFFSET(dolby_surround_mode), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_MODE_ON, AC3ENC_PARAM, "dsur_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsur_mode"},
{"on", "Dolby Surround Encoded", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsur_mode"},
{"off", "Not Dolby Surround Encoded", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsur_mode"},
{"original", "Original Bit Stream", OFFSET(original), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, 1, AC3ENC_PARAM},
{"copyright", "Copyright Bit", OFFSET(copyright), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, 1, AC3ENC_PARAM},
{"dialnorm", "Dialogue Level (dB)", OFFSET(dialogue_level), AV_OPT_TYPE_INT, {.i64 = -31 }, -31, -1, AC3ENC_PARAM},
{"dsur_mode", "Dolby Surround Mode", OFFSET(dolby_surround_mode), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_MODE_ON, AC3ENC_PARAM, "dsur_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsur_mode"},
{"on", "Dolby Surround Encoded", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsur_mode"},
{"off", "Not Dolby Surround Encoded", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsur_mode"},
{"original", "Original Bit Stream", OFFSET(original), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, 1, AC3ENC_PARAM},
/* extended bitstream information */
{"dmix_mode", "Preferred Stereo Downmix Mode", OFFSET(preferred_stereo_downmix), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_DOWNMIX_LORO, AC3ENC_PARAM, "dmix_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dmix_mode"},
{"ltrt", "Lt/Rt Downmix Preferred", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_DOWNMIX_LTRT }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dmix_mode"},
{"loro", "Lo/Ro Downmix Preferred", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_DOWNMIX_LORO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dmix_mode"},
{"dmix_mode", "Preferred Stereo Downmix Mode", OFFSET(preferred_stereo_downmix), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_DOWNMIX_LORO, AC3ENC_PARAM, "dmix_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dmix_mode"},
{"ltrt", "Lt/Rt Downmix Preferred", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_DOWNMIX_LTRT }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dmix_mode"},
{"loro", "Lo/Ro Downmix Preferred", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_DOWNMIX_LORO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dmix_mode"},
{"ltrt_cmixlev", "Lt/Rt Center Mix Level", OFFSET(ltrt_center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, AC3ENC_PARAM},
{"ltrt_surmixlev", "Lt/Rt Surround Mix Level", OFFSET(ltrt_surround_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, AC3ENC_PARAM},
{"loro_cmixlev", "Lo/Ro Center Mix Level", OFFSET(loro_center_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, AC3ENC_PARAM},
{"loro_surmixlev", "Lo/Ro Surround Mix Level", OFFSET(loro_surround_mix_level), AV_OPT_TYPE_FLOAT, {.dbl = -1.0 }, -1.0, 2.0, AC3ENC_PARAM},
{"dsurex_mode", "Dolby Surround EX Mode", OFFSET(dolby_surround_ex_mode), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_MODE_ON, AC3ENC_PARAM, "dsurex_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsurex_mode"},
{"on", "Dolby Surround EX Encoded", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsurex_mode"},
{"off", "Not Dolby Surround EX Encoded", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsurex_mode"},
{"dheadphone_mode", "Dolby Headphone Mode", OFFSET(dolby_headphone_mode), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_MODE_ON, AC3ENC_PARAM, "dheadphone_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dheadphone_mode"},
{"on", "Dolby Headphone Encoded", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dheadphone_mode"},
{"off", "Not Dolby Headphone Encoded", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dheadphone_mode"},
{"ad_conv_type", "A/D Converter Type", OFFSET(ad_converter_type), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_ADCONV_HDCD, AC3ENC_PARAM, "ad_conv_type"},
{"standard", "Standard (default)", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_ADCONV_STANDARD }, INT_MIN, INT_MAX, AC3ENC_PARAM, "ad_conv_type"},
{"hdcd", "HDCD", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_ADCONV_HDCD }, INT_MIN, INT_MAX, AC3ENC_PARAM, "ad_conv_type"},
{"dsurex_mode", "Dolby Surround EX Mode", OFFSET(dolby_surround_ex_mode), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_MODE_ON, AC3ENC_PARAM, "dsurex_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsurex_mode"},
{"on", "Dolby Surround EX Encoded", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsurex_mode"},
{"off", "Not Dolby Surround EX Encoded", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dsurex_mode"},
{"dheadphone_mode", "Dolby Headphone Mode", OFFSET(dolby_headphone_mode), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_MODE_ON, AC3ENC_PARAM, "dheadphone_mode"},
{"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dheadphone_mode"},
{"on", "Dolby Headphone Encoded", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dheadphone_mode"},
{"off", "Not Dolby Headphone Encoded", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM, "dheadphone_mode"},
{"ad_conv_type", "A/D Converter Type", OFFSET(ad_converter_type), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_NONE }, AC3ENC_OPT_NONE, AC3ENC_OPT_ADCONV_HDCD, AC3ENC_PARAM, "ad_conv_type"},
{"standard", "Standard (default)", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_ADCONV_STANDARD }, INT_MIN, INT_MAX, AC3ENC_PARAM, "ad_conv_type"},
{"hdcd", "HDCD", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_ADCONV_HDCD }, INT_MIN, INT_MAX, AC3ENC_PARAM, "ad_conv_type"},
/* Other Encoding Options */
{"stereo_rematrixing", "Stereo Rematrixing", OFFSET(stereo_rematrixing), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_ON }, AC3ENC_OPT_OFF, AC3ENC_OPT_ON, AC3ENC_PARAM},
{"channel_coupling", "Channel Coupling", OFFSET(channel_coupling), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_AUTO }, AC3ENC_OPT_AUTO, AC3ENC_OPT_ON, AC3ENC_PARAM, "channel_coupling"},
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_AUTO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "channel_coupling"},
{"cpl_start_band", "Coupling Start Band", OFFSET(cpl_start), AV_OPT_TYPE_INT, {.dbl = AC3ENC_OPT_AUTO }, AC3ENC_OPT_AUTO, 15, AC3ENC_PARAM, "cpl_start_band"},
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.dbl = AC3ENC_OPT_AUTO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "cpl_start_band"},
{"stereo_rematrixing", "Stereo Rematrixing", OFFSET(stereo_rematrixing), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_ON }, AC3ENC_OPT_OFF, AC3ENC_OPT_ON, AC3ENC_PARAM},
{"channel_coupling", "Channel Coupling", OFFSET(channel_coupling), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_AUTO }, AC3ENC_OPT_AUTO, AC3ENC_OPT_ON, AC3ENC_PARAM, "channel_coupling"},
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_AUTO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "channel_coupling"},
{"cpl_start_band", "Coupling Start Band", OFFSET(cpl_start), AV_OPT_TYPE_INT, {.i64 = AC3ENC_OPT_AUTO }, AC3ENC_OPT_AUTO, 15, AC3ENC_PARAM, "cpl_start_band"},
{"auto", "Selected by the Encoder", 0, AV_OPT_TYPE_CONST, {.i64 = AC3ENC_OPT_AUTO }, INT_MIN, INT_MAX, AC3ENC_PARAM, "cpl_start_band"},
{NULL}
};

View File

@@ -33,7 +33,7 @@
static void scale_coefficients(AC3EncodeContext *s);
static void apply_window(DSPContext *dsp, SampleType *output,
static void apply_window(void *dsp, SampleType *output,
const SampleType *input, const SampleType *window,
unsigned int len);
@@ -110,8 +110,13 @@ static void apply_mdct(AC3EncodeContext *s)
AC3Block *block = &s->blocks[blk];
const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE];
#if CONFIG_AC3ENC_FLOAT
apply_window(&s->fdsp, s->windowed_samples, input_samples,
s->mdct_window, AC3_WINDOW_SIZE);
#else
apply_window(&s->dsp, s->windowed_samples, input_samples,
s->mdct_window, AC3_WINDOW_SIZE);
#endif
if (s->fixed_point)
block->coeff_shift[ch+1] = normalize_samples(s);

View File

@@ -22,6 +22,8 @@
#include <inttypes.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "avcodec.h"
#include "acelp_filters.h"
@@ -45,7 +47,7 @@ void ff_acelp_interpolate(int16_t* out, const int16_t* in,
{
int n, i;
assert(frac_pos >= 0 && frac_pos < precision);
av_assert1(frac_pos >= 0 && frac_pos < precision);
for (n = 0; n < length; n++) {
int idx = 0;
@@ -142,3 +144,12 @@ void ff_tilt_compensation(float *mem, float tilt, float *samples, int size)
samples[0] -= tilt * *mem;
*mem = new_tilt_mem;
}
void ff_acelp_filter_init(ACELPFContext *c)
{
c->acelp_interpolatef = ff_acelp_interpolatef;
c->acelp_apply_order_2_transfer_function = ff_acelp_apply_order_2_transfer_function;
if(HAVE_MIPSFPU)
ff_acelp_filter_init_mips(c);
}

View File

@@ -25,6 +25,39 @@
#include <stdint.h>
typedef struct ACELPFContext {
/**
* Floating point version of ff_acelp_interpolate()
*/
void (*acelp_interpolatef)(float *out, const float *in,
const float *filter_coeffs, int precision,
int frac_pos, int filter_length, int length);
/**
* Apply an order 2 rational transfer function in-place.
*
* @param out output buffer for filtered speech samples
* @param in input buffer containing speech data (may be the same as out)
* @param zero_coeffs z^-1 and z^-2 coefficients of the numerator
* @param pole_coeffs z^-1 and z^-2 coefficients of the denominator
* @param gain scale factor for final output
* @param mem intermediate values used by filter (should be 0 initially)
* @param n number of samples (should be a multiple of eight)
*/
void (*acelp_apply_order_2_transfer_function)(float *out, const float *in,
const float zero_coeffs[2],
const float pole_coeffs[2],
float gain,
float mem[2], int n);
}ACELPFContext;
/**
* Initialize ACELPFContext.
*/
void ff_acelp_filter_init(ACELPFContext *c);
void ff_acelp_filter_init_mips(ACELPFContext *c);
/**
* low-pass Finite Impulse Response filter coefficients.
*

View File

@@ -20,6 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/common.h"
#include "libavutil/libm.h"
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "dsputil.h"
@@ -130,7 +132,7 @@ float ff_amr_set_fixed_gain(float fixed_gain_factor, float fixed_mean_energy,
// Note 10^(0.05 * -10log(average x2)) = 1/sqrt((average x2)).
float val = fixed_gain_factor *
exp2f(M_LOG2_10 * 0.05 *
(ff_dot_productf(pred_table, prediction_error, 4) +
(ff_scalarproduct_float_c(pred_table, prediction_error, 4) +
energy_mean)) /
sqrtf(fixed_mean_energy);

View File

@@ -21,9 +21,11 @@
*/
#include <inttypes.h>
#include "libavutil/common.h"
#include "avcodec.h"
#include "dsputil.h"
#include "acelp_vectors.h"
#include "celp_math.h"
const uint8_t ff_fc_2pulses_9bits_track1[16] =
{
@@ -201,7 +203,7 @@ void ff_adaptive_gain_control(float *out, const float *in, float speech_energ,
int size, float alpha, float *gain_mem)
{
int i;
float postfilter_energ = ff_dot_productf(in, in, size);
float postfilter_energ = ff_scalarproduct_float_c(in, in, size);
float gain_scale_factor = 1.0;
float mem = *gain_mem;
@@ -222,7 +224,7 @@ void ff_scale_vector_to_given_sum_of_squares(float *out, const float *in,
float sum_of_squares, const int n)
{
int i;
float scalefactor = ff_dot_productf(in, in, n);
float scalefactor = ff_scalarproduct_float_c(in, in, n);
if (scalefactor)
scalefactor = sqrt(sum_of_squares / scalefactor);
for (i = 0; i < n; i++)
@@ -260,3 +262,11 @@ void ff_clear_fixed_vector(float *out, const AMRFixed *in, int size)
} while (x < size && repeats);
}
}
void ff_acelp_vectors_init(ACELPVContext *c)
{
c->weighted_vector_sumf = ff_weighted_vector_sumf;
if(HAVE_MIPSFPU)
ff_acelp_vectors_init_mips(c);
}

View File

@@ -25,6 +25,30 @@
#include <stdint.h>
typedef struct ACELPVContext {
/**
* float implementation of weighted sum of two vectors.
* @param[out] out result of addition
* @param in_a first vector
* @param in_b second vector
* @param weight_coeff_a first vector weight coefficient
* @param weight_coeff_a second vector weight coefficient
* @param length vectors length (should be a multiple of two)
*
* @note It is safe to pass the same buffer for out and in_a or in_b.
*/
void (*weighted_vector_sumf)(float *out, const float *in_a, const float *in_b,
float weight_coeff_a, float weight_coeff_b,
int length);
}ACELPVContext;
/**
* Initialize ACELPVContext.
*/
void ff_acelp_vectors_init(ACELPVContext *c);
void ff_acelp_vectors_init_mips(ACELPVContext *c);
/** Sparse representation for the algebraic codebook (fixed) vector */
typedef struct {
int n;

View File

@@ -96,13 +96,13 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
unsigned int max_channels = 2;
switch(avctx->codec->id) {
case CODEC_ID_ADPCM_EA:
case AV_CODEC_ID_ADPCM_EA:
min_channels = 2;
break;
case CODEC_ID_ADPCM_EA_R1:
case CODEC_ID_ADPCM_EA_R2:
case CODEC_ID_ADPCM_EA_R3:
case CODEC_ID_ADPCM_EA_XAS:
case AV_CODEC_ID_ADPCM_EA_R1:
case AV_CODEC_ID_ADPCM_EA_R2:
case AV_CODEC_ID_ADPCM_EA_R3:
case AV_CODEC_ID_ADPCM_EA_XAS:
max_channels = 6;
break;
}
@@ -112,22 +112,22 @@ static av_cold int adpcm_decode_init(AVCodecContext * avctx)
}
switch(avctx->codec->id) {
case CODEC_ID_ADPCM_CT:
case AV_CODEC_ID_ADPCM_CT:
c->status[0].step = c->status[1].step = 511;
break;
case CODEC_ID_ADPCM_IMA_WAV:
case AV_CODEC_ID_ADPCM_IMA_WAV:
if (avctx->bits_per_coded_sample != 4) {
av_log(avctx, AV_LOG_ERROR, "Only 4-bit ADPCM IMA WAV files are supported\n");
return -1;
}
break;
case CODEC_ID_ADPCM_IMA_APC:
case AV_CODEC_ID_ADPCM_IMA_APC:
if (avctx->extradata && avctx->extradata_size >= 8) {
c->status[0].predictor = AV_RL32(avctx->extradata);
c->status[1].predictor = AV_RL32(avctx->extradata + 4);
}
break;
case CODEC_ID_ADPCM_IMA_WS:
case AV_CODEC_ID_ADPCM_IMA_WS:
if (avctx->extradata && avctx->extradata_size >= 2)
c->vqa_version = AV_RL16(avctx->extradata);
break;
@@ -423,22 +423,22 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
switch (avctx->codec->id) {
/* constant, only check buf_size */
case CODEC_ID_ADPCM_EA_XAS:
case AV_CODEC_ID_ADPCM_EA_XAS:
if (buf_size < 76 * ch)
return 0;
nb_samples = 128;
break;
case CODEC_ID_ADPCM_IMA_QT:
case AV_CODEC_ID_ADPCM_IMA_QT:
if (buf_size < 34 * ch)
return 0;
nb_samples = 64;
break;
/* simple 4-bit adpcm */
case CODEC_ID_ADPCM_CT:
case CODEC_ID_ADPCM_IMA_APC:
case CODEC_ID_ADPCM_IMA_EA_SEAD:
case CODEC_ID_ADPCM_IMA_WS:
case CODEC_ID_ADPCM_YAMAHA:
case AV_CODEC_ID_ADPCM_CT:
case AV_CODEC_ID_ADPCM_IMA_APC:
case AV_CODEC_ID_ADPCM_IMA_EA_SEAD:
case AV_CODEC_ID_ADPCM_IMA_WS:
case AV_CODEC_ID_ADPCM_YAMAHA:
nb_samples = buf_size * 2 / ch;
break;
}
@@ -448,46 +448,46 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
/* simple 4-bit adpcm, with header */
header_size = 0;
switch (avctx->codec->id) {
case CODEC_ID_ADPCM_4XM:
case CODEC_ID_ADPCM_IMA_ISS: header_size = 4 * ch; break;
case CODEC_ID_ADPCM_IMA_AMV: header_size = 8; break;
case CODEC_ID_ADPCM_IMA_SMJPEG: header_size = 4; break;
case AV_CODEC_ID_ADPCM_4XM:
case AV_CODEC_ID_ADPCM_IMA_ISS: header_size = 4 * ch; break;
case AV_CODEC_ID_ADPCM_IMA_AMV: header_size = 8; break;
case AV_CODEC_ID_ADPCM_IMA_SMJPEG: header_size = 4; break;
}
if (header_size > 0)
return (buf_size - header_size) * 2 / ch;
/* more complex formats */
switch (avctx->codec->id) {
case CODEC_ID_ADPCM_EA:
case AV_CODEC_ID_ADPCM_EA:
has_coded_samples = 1;
*coded_samples = bytestream2_get_le32(gb);
*coded_samples -= *coded_samples % 28;
nb_samples = (buf_size - 12) / 30 * 28;
break;
case CODEC_ID_ADPCM_IMA_EA_EACS:
case AV_CODEC_ID_ADPCM_IMA_EA_EACS:
has_coded_samples = 1;
*coded_samples = bytestream2_get_le32(gb);
nb_samples = (buf_size - (4 + 8 * ch)) * 2 / ch;
break;
case CODEC_ID_ADPCM_EA_MAXIS_XA:
case AV_CODEC_ID_ADPCM_EA_MAXIS_XA:
nb_samples = (buf_size - ch) / ch * 2;
break;
case CODEC_ID_ADPCM_EA_R1:
case CODEC_ID_ADPCM_EA_R2:
case CODEC_ID_ADPCM_EA_R3:
case AV_CODEC_ID_ADPCM_EA_R1:
case AV_CODEC_ID_ADPCM_EA_R2:
case AV_CODEC_ID_ADPCM_EA_R3:
/* maximum number of samples */
/* has internal offsets and a per-frame switch to signal raw 16-bit */
has_coded_samples = 1;
switch (avctx->codec->id) {
case CODEC_ID_ADPCM_EA_R1:
case AV_CODEC_ID_ADPCM_EA_R1:
header_size = 4 + 9 * ch;
*coded_samples = bytestream2_get_le32(gb);
break;
case CODEC_ID_ADPCM_EA_R2:
case AV_CODEC_ID_ADPCM_EA_R2:
header_size = 4 + 5 * ch;
*coded_samples = bytestream2_get_le32(gb);
break;
case CODEC_ID_ADPCM_EA_R3:
case AV_CODEC_ID_ADPCM_EA_R3:
header_size = 4 + 5 * ch;
*coded_samples = bytestream2_get_be32(gb);
break;
@@ -496,35 +496,35 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
nb_samples = (buf_size - header_size) * 2 / ch;
nb_samples -= nb_samples % 28;
break;
case CODEC_ID_ADPCM_IMA_DK3:
case AV_CODEC_ID_ADPCM_IMA_DK3:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = ((buf_size - 16) * 2 / 3 * 4) / ch;
break;
case CODEC_ID_ADPCM_IMA_DK4:
case AV_CODEC_ID_ADPCM_IMA_DK4:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = 1 + (buf_size - 4 * ch) * 2 / ch;
break;
case CODEC_ID_ADPCM_IMA_WAV:
case AV_CODEC_ID_ADPCM_IMA_WAV:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = 1 + (buf_size - 4 * ch) / (4 * ch) * 8;
break;
case CODEC_ID_ADPCM_MS:
case AV_CODEC_ID_ADPCM_MS:
if (avctx->block_align > 0)
buf_size = FFMIN(buf_size, avctx->block_align);
nb_samples = 2 + (buf_size - 7 * ch) * 2 / ch;
break;
case CODEC_ID_ADPCM_SBPRO_2:
case CODEC_ID_ADPCM_SBPRO_3:
case CODEC_ID_ADPCM_SBPRO_4:
case AV_CODEC_ID_ADPCM_SBPRO_2:
case AV_CODEC_ID_ADPCM_SBPRO_3:
case AV_CODEC_ID_ADPCM_SBPRO_4:
{
int samples_per_byte;
switch (avctx->codec->id) {
case CODEC_ID_ADPCM_SBPRO_2: samples_per_byte = 4; break;
case CODEC_ID_ADPCM_SBPRO_3: samples_per_byte = 3; break;
case CODEC_ID_ADPCM_SBPRO_4: samples_per_byte = 2; break;
case AV_CODEC_ID_ADPCM_SBPRO_2: samples_per_byte = 4; break;
case AV_CODEC_ID_ADPCM_SBPRO_3: samples_per_byte = 3; break;
case AV_CODEC_ID_ADPCM_SBPRO_4: samples_per_byte = 2; break;
}
if (!s->status[0].step_index) {
nb_samples++;
@@ -533,7 +533,7 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
nb_samples += buf_size * samples_per_byte / ch;
break;
}
case CODEC_ID_ADPCM_SWF:
case AV_CODEC_ID_ADPCM_SWF:
{
int buf_bits = buf_size * 8 - 2;
int nbits = (bytestream2_get_byte(gb) >> 6) + 2;
@@ -546,14 +546,14 @@ static int get_nb_samples(AVCodecContext *avctx, GetByteContext *gb,
nb_samples += 1 + (bits_left - block_hdr_size) / (nbits * ch);
break;
}
case CODEC_ID_ADPCM_THP:
case AV_CODEC_ID_ADPCM_THP:
has_coded_samples = 1;
bytestream2_skip(gb, 4); // channel size
*coded_samples = bytestream2_get_be32(gb);
*coded_samples -= *coded_samples % 14;
nb_samples = (buf_size - 80) / (8 * ch) * 14;
break;
case CODEC_ID_ADPCM_XA:
case AV_CODEC_ID_ADPCM_XA:
nb_samples = (buf_size / 128) * 224 / ch;
break;
}
@@ -605,7 +605,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
st = avctx->channels == 2 ? 1 : 0;
switch(avctx->codec->id) {
case CODEC_ID_ADPCM_IMA_QT:
case AV_CODEC_ID_ADPCM_IMA_QT:
/* In QuickTime, IMA is encoded by chunks of 34 bytes (=64 samples).
Channel data is interleaved per-chunk. */
for (channel = 0; channel < avctx->channels; channel++) {
@@ -648,7 +648,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
}
break;
case CODEC_ID_ADPCM_IMA_WAV:
case AV_CODEC_ID_ADPCM_IMA_WAV:
for(i=0; i<avctx->channels; i++){
cs = &(c->status[i]);
cs->predictor = *samples++ = sign_extend(bytestream2_get_le16u(&gb), 16);
@@ -676,7 +676,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
samples += 7 * avctx->channels;
}
break;
case CODEC_ID_ADPCM_4XM:
case AV_CODEC_ID_ADPCM_4XM:
for (i = 0; i < avctx->channels; i++)
c->status[i].predictor = sign_extend(bytestream2_get_le16u(&gb), 16);
@@ -701,7 +701,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
}
break;
case CODEC_ID_ADPCM_MS:
case AV_CODEC_ID_ADPCM_MS:
{
int block_predictor;
@@ -744,7 +744,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
break;
}
case CODEC_ID_ADPCM_IMA_DK4:
case AV_CODEC_ID_ADPCM_IMA_DK4:
for (channel = 0; channel < avctx->channels; channel++) {
cs = &c->status[channel];
cs->predictor = *samples++ = sign_extend(bytestream2_get_le16u(&gb), 16);
@@ -755,13 +755,13 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
}
}
for (n = nb_samples >> (1 - st); n > 0; n--) {
for (n = (nb_samples - 1) >> (1 - st); n > 0; n--) {
int v = bytestream2_get_byteu(&gb);
*samples++ = adpcm_ima_expand_nibble(&c->status[0 ], v >> 4 , 3);
*samples++ = adpcm_ima_expand_nibble(&c->status[st], v & 0x0F, 3);
}
break;
case CODEC_ID_ADPCM_IMA_DK3:
case AV_CODEC_ID_ADPCM_IMA_DK3:
{
int last_byte = 0;
int nibble;
@@ -822,7 +822,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
break;
}
case CODEC_ID_ADPCM_IMA_ISS:
case AV_CODEC_ID_ADPCM_IMA_ISS:
for (channel = 0; channel < avctx->channels; channel++) {
cs = &c->status[channel];
cs->predictor = sign_extend(bytestream2_get_le16u(&gb), 16);
@@ -849,14 +849,14 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*samples++ = adpcm_ima_expand_nibble(&c->status[st], v2, 3);
}
break;
case CODEC_ID_ADPCM_IMA_APC:
case AV_CODEC_ID_ADPCM_IMA_APC:
while (bytestream2_get_bytes_left(&gb) > 0) {
int v = bytestream2_get_byteu(&gb);
*samples++ = adpcm_ima_expand_nibble(&c->status[0], v >> 4 , 3);
*samples++ = adpcm_ima_expand_nibble(&c->status[st], v & 0x0F, 3);
}
break;
case CODEC_ID_ADPCM_IMA_WS:
case AV_CODEC_ID_ADPCM_IMA_WS:
if (c->vqa_version == 3) {
for (channel = 0; channel < avctx->channels; channel++) {
int16_t *smp = samples + channel;
@@ -881,7 +881,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
bytestream2_seek(&gb, 0, SEEK_END);
break;
case CODEC_ID_ADPCM_XA:
case AV_CODEC_ID_ADPCM_XA:
while (bytestream2_get_bytes_left(&gb) >= 128) {
if ((ret = xa_decode(avctx, samples, buf + bytestream2_tell(&gb), &c->status[0],
&c->status[1], avctx->channels)) < 0)
@@ -890,7 +890,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
samples += 28 * 8;
}
break;
case CODEC_ID_ADPCM_IMA_EA_EACS:
case AV_CODEC_ID_ADPCM_IMA_EA_EACS:
for (i=0; i<=st; i++) {
c->status[i].step_index = bytestream2_get_le32u(&gb);
if (c->status[i].step_index > 88u) {
@@ -908,14 +908,14 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*samples++ = adpcm_ima_expand_nibble(&c->status[st], byte & 0x0F, 3);
}
break;
case CODEC_ID_ADPCM_IMA_EA_SEAD:
case AV_CODEC_ID_ADPCM_IMA_EA_SEAD:
for (n = nb_samples >> (1 - st); n > 0; n--) {
int byte = bytestream2_get_byteu(&gb);
*samples++ = adpcm_ima_expand_nibble(&c->status[0], byte >> 4, 6);
*samples++ = adpcm_ima_expand_nibble(&c->status[st], byte & 0x0F, 6);
}
break;
case CODEC_ID_ADPCM_EA:
case AV_CODEC_ID_ADPCM_EA:
{
int previous_left_sample, previous_right_sample;
int current_left_sample, current_right_sample;
@@ -970,7 +970,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
break;
}
case CODEC_ID_ADPCM_EA_MAXIS_XA:
case AV_CODEC_ID_ADPCM_EA_MAXIS_XA:
{
int coeff[2][2], shift[2];
@@ -1000,14 +1000,14 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
bytestream2_seek(&gb, 0, SEEK_END);
break;
}
case CODEC_ID_ADPCM_EA_R1:
case CODEC_ID_ADPCM_EA_R2:
case CODEC_ID_ADPCM_EA_R3: {
case AV_CODEC_ID_ADPCM_EA_R1:
case AV_CODEC_ID_ADPCM_EA_R2:
case AV_CODEC_ID_ADPCM_EA_R3: {
/* channel numbering
2chan: 0=fl, 1=fr
4chan: 0=fl, 1=rl, 2=fr, 3=rr
6chan: 0=fl, 1=c, 2=fr, 3=rl, 4=rr, 5=sub */
const int big_endian = avctx->codec->id == CODEC_ID_ADPCM_EA_R3;
const int big_endian = avctx->codec->id == AV_CODEC_ID_ADPCM_EA_R3;
int previous_sample, current_sample, next_sample;
int coeff1, coeff2;
int shift;
@@ -1025,7 +1025,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
bytestream2_seek(&gb, offsets[channel], SEEK_SET);
samplesC = samples + channel;
if (avctx->codec->id == CODEC_ID_ADPCM_EA_R1) {
if (avctx->codec->id == AV_CODEC_ID_ADPCM_EA_R1) {
current_sample = sign_extend(bytestream2_get_le16(&gb), 16);
previous_sample = sign_extend(bytestream2_get_le16(&gb), 16);
} else {
@@ -1074,7 +1074,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
count = FFMAX(count, count1);
}
if (avctx->codec->id != CODEC_ID_ADPCM_EA_R1) {
if (avctx->codec->id != AV_CODEC_ID_ADPCM_EA_R1) {
c->status[channel].predictor = current_sample;
c->status[channel].prev_sample = previous_sample;
}
@@ -1084,7 +1084,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
bytestream2_seek(&gb, 0, SEEK_END);
break;
}
case CODEC_ID_ADPCM_EA_XAS:
case AV_CODEC_ID_ADPCM_EA_XAS:
for (channel=0; channel<avctx->channels; channel++) {
int coeff[2][4], shift[4];
short *s2, *s = &samples[channel];
@@ -1113,9 +1113,9 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
}
break;
case CODEC_ID_ADPCM_IMA_AMV:
case CODEC_ID_ADPCM_IMA_SMJPEG:
if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV) {
case AV_CODEC_ID_ADPCM_IMA_AMV:
case AV_CODEC_ID_ADPCM_IMA_SMJPEG:
if (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_AMV) {
c->status[0].predictor = sign_extend(bytestream2_get_le16u(&gb), 16);
c->status[0].step_index = bytestream2_get_le16u(&gb);
bytestream2_skipu(&gb, 4);
@@ -1133,7 +1133,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
for (n = nb_samples >> (1 - st); n > 0; n--) {
int hi, lo, v = bytestream2_get_byteu(&gb);
if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV) {
if (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_AMV) {
hi = v & 0x0F;
lo = v >> 4;
} else {
@@ -1145,16 +1145,16 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*samples++ = adpcm_ima_expand_nibble(&c->status[0], hi, 3);
}
break;
case CODEC_ID_ADPCM_CT:
case AV_CODEC_ID_ADPCM_CT:
for (n = nb_samples >> (1 - st); n > 0; n--) {
int v = bytestream2_get_byteu(&gb);
*samples++ = adpcm_ct_expand_nibble(&c->status[0 ], v >> 4 );
*samples++ = adpcm_ct_expand_nibble(&c->status[st], v & 0x0F);
}
break;
case CODEC_ID_ADPCM_SBPRO_4:
case CODEC_ID_ADPCM_SBPRO_3:
case CODEC_ID_ADPCM_SBPRO_2:
case AV_CODEC_ID_ADPCM_SBPRO_4:
case AV_CODEC_ID_ADPCM_SBPRO_3:
case AV_CODEC_ID_ADPCM_SBPRO_2:
if (!c->status[0].step_index) {
/* the first byte is a raw sample */
*samples++ = 128 * (bytestream2_get_byteu(&gb) - 0x80);
@@ -1163,7 +1163,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
c->status[0].step_index = 1;
nb_samples--;
}
if (avctx->codec->id == CODEC_ID_ADPCM_SBPRO_4) {
if (avctx->codec->id == AV_CODEC_ID_ADPCM_SBPRO_4) {
for (n = nb_samples >> (1 - st); n > 0; n--) {
int byte = bytestream2_get_byteu(&gb);
*samples++ = adpcm_sbpro_expand_nibble(&c->status[0],
@@ -1171,7 +1171,7 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
*samples++ = adpcm_sbpro_expand_nibble(&c->status[st],
byte & 0x0F, 4, 0);
}
} else if (avctx->codec->id == CODEC_ID_ADPCM_SBPRO_3) {
} else if (avctx->codec->id == AV_CODEC_ID_ADPCM_SBPRO_3) {
for (n = nb_samples / 3; n > 0; n--) {
int byte = bytestream2_get_byteu(&gb);
*samples++ = adpcm_sbpro_expand_nibble(&c->status[0],
@@ -1195,18 +1195,18 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
}
}
break;
case CODEC_ID_ADPCM_SWF:
case AV_CODEC_ID_ADPCM_SWF:
adpcm_swf_decode(avctx, buf, buf_size, samples);
bytestream2_seek(&gb, 0, SEEK_END);
break;
case CODEC_ID_ADPCM_YAMAHA:
case AV_CODEC_ID_ADPCM_YAMAHA:
for (n = nb_samples >> (1 - st); n > 0; n--) {
int v = bytestream2_get_byteu(&gb);
*samples++ = adpcm_yamaha_expand_nibble(&c->status[0 ], v & 0x0F);
*samples++ = adpcm_yamaha_expand_nibble(&c->status[st], v >> 4 );
}
break;
case CODEC_ID_ADPCM_THP:
case AV_CODEC_ID_ADPCM_THP:
{
int table[2][16];
int prev[2][2];
@@ -1282,30 +1282,30 @@ AVCodec ff_ ## name_ ## _decoder = { \
}
/* Note: Do not forget to add new entries to the Makefile as well. */
ADPCM_DECODER(CODEC_ID_ADPCM_4XM, adpcm_4xm, "ADPCM 4X Movie");
ADPCM_DECODER(CODEC_ID_ADPCM_CT, adpcm_ct, "ADPCM Creative Technology");
ADPCM_DECODER(CODEC_ID_ADPCM_EA, adpcm_ea, "ADPCM Electronic Arts");
ADPCM_DECODER(CODEC_ID_ADPCM_EA_MAXIS_XA, adpcm_ea_maxis_xa, "ADPCM Electronic Arts Maxis CDROM XA");
ADPCM_DECODER(CODEC_ID_ADPCM_EA_R1, adpcm_ea_r1, "ADPCM Electronic Arts R1");
ADPCM_DECODER(CODEC_ID_ADPCM_EA_R2, adpcm_ea_r2, "ADPCM Electronic Arts R2");
ADPCM_DECODER(CODEC_ID_ADPCM_EA_R3, adpcm_ea_r3, "ADPCM Electronic Arts R3");
ADPCM_DECODER(CODEC_ID_ADPCM_EA_XAS, adpcm_ea_xas, "ADPCM Electronic Arts XAS");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_AMV, adpcm_ima_amv, "ADPCM IMA AMV");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_APC, adpcm_ima_apc, "ADPCM IMA CRYO APC");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3, "ADPCM IMA Duck DK3");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4, "ADPCM IMA Duck DK4");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs, "ADPCM IMA Electronic Arts EACS");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead, "ADPCM IMA Electronic Arts SEAD");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_ISS, adpcm_ima_iss, "ADPCM IMA Funcom ISS");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt, "ADPCM IMA QuickTime");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_SMJPEG, adpcm_ima_smjpeg, "ADPCM IMA Loki SDL MJPEG");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav, "ADPCM IMA WAV");
ADPCM_DECODER(CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws, "ADPCM IMA Westwood");
ADPCM_DECODER(CODEC_ID_ADPCM_MS, adpcm_ms, "ADPCM Microsoft");
ADPCM_DECODER(CODEC_ID_ADPCM_SBPRO_2, adpcm_sbpro_2, "ADPCM Sound Blaster Pro 2-bit");
ADPCM_DECODER(CODEC_ID_ADPCM_SBPRO_3, adpcm_sbpro_3, "ADPCM Sound Blaster Pro 2.6-bit");
ADPCM_DECODER(CODEC_ID_ADPCM_SBPRO_4, adpcm_sbpro_4, "ADPCM Sound Blaster Pro 4-bit");
ADPCM_DECODER(CODEC_ID_ADPCM_SWF, adpcm_swf, "ADPCM Shockwave Flash");
ADPCM_DECODER(CODEC_ID_ADPCM_THP, adpcm_thp, "ADPCM Nintendo Gamecube THP");
ADPCM_DECODER(CODEC_ID_ADPCM_XA, adpcm_xa, "ADPCM CDROM XA");
ADPCM_DECODER(CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha, "ADPCM Yamaha");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_4XM, adpcm_4xm, "ADPCM 4X Movie");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_CT, adpcm_ct, "ADPCM Creative Technology");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA, adpcm_ea, "ADPCM Electronic Arts");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_MAXIS_XA, adpcm_ea_maxis_xa, "ADPCM Electronic Arts Maxis CDROM XA");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_R1, adpcm_ea_r1, "ADPCM Electronic Arts R1");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_R2, adpcm_ea_r2, "ADPCM Electronic Arts R2");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_R3, adpcm_ea_r3, "ADPCM Electronic Arts R3");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_EA_XAS, adpcm_ea_xas, "ADPCM Electronic Arts XAS");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_AMV, adpcm_ima_amv, "ADPCM IMA AMV");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_APC, adpcm_ima_apc, "ADPCM IMA CRYO APC");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3, "ADPCM IMA Duck DK3");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4, "ADPCM IMA Duck DK4");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs, "ADPCM IMA Electronic Arts EACS");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead, "ADPCM IMA Electronic Arts SEAD");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_ISS, adpcm_ima_iss, "ADPCM IMA Funcom ISS");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt, "ADPCM IMA QuickTime");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_SMJPEG, adpcm_ima_smjpeg, "ADPCM IMA Loki SDL MJPEG");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav, "ADPCM IMA WAV");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws, "ADPCM IMA Westwood");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_MS, adpcm_ms, "ADPCM Microsoft");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_SBPRO_2, adpcm_sbpro_2, "ADPCM Sound Blaster Pro 2-bit");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_SBPRO_3, adpcm_sbpro_3, "ADPCM Sound Blaster Pro 2.6-bit");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_SBPRO_4, adpcm_sbpro_4, "ADPCM Sound Blaster Pro 4-bit");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_SWF, adpcm_swf, "ADPCM Shockwave Flash");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_THP, adpcm_thp, "ADPCM Nintendo Gamecube THP");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_XA, adpcm_xa, "ADPCM CDROM XA");
ADPCM_DECODER(AV_CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha, "ADPCM Yamaha");

View File

@@ -94,7 +94,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
avctx->bits_per_coded_sample = av_get_bits_per_sample(avctx->codec->id);
switch (avctx->codec->id) {
case CODEC_ID_ADPCM_IMA_WAV:
case AV_CODEC_ID_ADPCM_IMA_WAV:
/* each 16 bits sample gives one nibble
and we have 4 bytes per channel overhead */
avctx->frame_size = (BLKSIZE - 4 * avctx->channels) * 8 /
@@ -104,11 +104,11 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
avctx->block_align = BLKSIZE;
avctx->bits_per_coded_sample = 4;
break;
case CODEC_ID_ADPCM_IMA_QT:
case AV_CODEC_ID_ADPCM_IMA_QT:
avctx->frame_size = 64;
avctx->block_align = 34 * avctx->channels;
break;
case CODEC_ID_ADPCM_MS:
case AV_CODEC_ID_ADPCM_MS:
/* each 16 bits sample gives one nibble
and we have 7 bytes per channel overhead */
avctx->frame_size = (BLKSIZE - 7 * avctx->channels) * 2 / avctx->channels + 2;
@@ -125,11 +125,11 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
bytestream_put_le16(&extradata, ff_adpcm_AdaptCoeff2[i] * 4);
}
break;
case CODEC_ID_ADPCM_YAMAHA:
case AV_CODEC_ID_ADPCM_YAMAHA:
avctx->frame_size = BLKSIZE * 2 / avctx->channels;
avctx->block_align = BLKSIZE;
break;
case CODEC_ID_ADPCM_SWF:
case AV_CODEC_ID_ADPCM_SWF:
if (avctx->sample_rate != 11025 &&
avctx->sample_rate != 22050 &&
avctx->sample_rate != 44100) {
@@ -297,13 +297,13 @@ static void adpcm_compress_trellis(AVCodecContext *avctx,
nodes[0]->step = c->step_index;
nodes[0]->sample1 = c->sample1;
nodes[0]->sample2 = c->sample2;
if (version == CODEC_ID_ADPCM_IMA_WAV ||
version == CODEC_ID_ADPCM_IMA_QT ||
version == CODEC_ID_ADPCM_SWF)
if (version == AV_CODEC_ID_ADPCM_IMA_WAV ||
version == AV_CODEC_ID_ADPCM_IMA_QT ||
version == AV_CODEC_ID_ADPCM_SWF)
nodes[0]->sample1 = c->prev_sample;
if (version == CODEC_ID_ADPCM_MS)
if (version == AV_CODEC_ID_ADPCM_MS)
nodes[0]->step = c->idelta;
if (version == CODEC_ID_ADPCM_YAMAHA) {
if (version == AV_CODEC_ID_ADPCM_YAMAHA) {
if (c->step == 0) {
nodes[0]->step = 127;
nodes[0]->sample1 = 0;
@@ -325,7 +325,7 @@ static void adpcm_compress_trellis(AVCodecContext *avctx,
const int range = (j < frontier / 2) ? 1 : 0;
const int step = nodes[j]->step;
int nidx;
if (version == CODEC_ID_ADPCM_MS) {
if (version == AV_CODEC_ID_ADPCM_MS) {
const int predictor = ((nodes[j]->sample1 * c->coeff1) +
(nodes[j]->sample2 * c->coeff2)) / 64;
const int div = (sample - predictor) / step;
@@ -401,9 +401,9 @@ static void adpcm_compress_trellis(AVCodecContext *avctx,
STORE_NODE(ms, FFMAX(16,
(ff_adpcm_AdaptationTable[nibble] * step) >> 8));
}
} else if (version == CODEC_ID_ADPCM_IMA_WAV ||
version == CODEC_ID_ADPCM_IMA_QT ||
version == CODEC_ID_ADPCM_SWF) {
} else if (version == AV_CODEC_ID_ADPCM_IMA_WAV ||
version == AV_CODEC_ID_ADPCM_IMA_QT ||
version == AV_CODEC_ID_ADPCM_SWF) {
#define LOOP_NODES(NAME, STEP_TABLE, STEP_INDEX)\
const int predictor = nodes[j]->sample1;\
const int div = (sample - predictor) * 4 / STEP_TABLE;\
@@ -422,7 +422,7 @@ static void adpcm_compress_trellis(AVCodecContext *avctx,
}
LOOP_NODES(ima, ff_adpcm_step_table[step],
av_clip(step + ff_adpcm_index_table[nibble], 0, 88));
} else { //CODEC_ID_ADPCM_YAMAHA
} else { //AV_CODEC_ID_ADPCM_YAMAHA
LOOP_NODES(yamaha, step,
av_clip((step * ff_adpcm_yamaha_indexscale[nibble]) >> 8,
127, 24567));
@@ -490,7 +490,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
samples = (const int16_t *)frame->data[0];
st = avctx->channels == 2;
if (avctx->codec_id == CODEC_ID_ADPCM_SWF)
if (avctx->codec_id == AV_CODEC_ID_ADPCM_SWF)
pkt_size = (2 + avctx->channels * (22 + 4 * (frame->nb_samples - 1)) + 7) / 8;
else
pkt_size = avctx->block_align;
@@ -499,7 +499,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
dst = avpkt->data;
switch(avctx->codec->id) {
case CODEC_ID_ADPCM_IMA_WAV:
case AV_CODEC_ID_ADPCM_IMA_WAV:
n = frame->nb_samples / 8;
c->status[0].prev_sample = samples[0];
/* c->status[0].step_index = 0;
@@ -564,7 +564,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
}
}
break;
case CODEC_ID_ADPCM_IMA_QT:
case AV_CODEC_ID_ADPCM_IMA_QT:
{
int ch, i;
PutBitContext pb;
@@ -594,7 +594,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
flush_put_bits(&pb);
break;
}
case CODEC_ID_ADPCM_SWF:
case AV_CODEC_ID_ADPCM_SWF:
{
int i;
PutBitContext pb;
@@ -616,10 +616,11 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
if (avctx->trellis > 0) {
FF_ALLOC_OR_GOTO(avctx, buf, 2 * n, error);
adpcm_compress_trellis(avctx, samples + 2, buf, &c->status[0], n);
adpcm_compress_trellis(avctx, samples + avctx->channels, buf,
&c->status[0], n);
if (avctx->channels == 2)
adpcm_compress_trellis(avctx, samples + 3, buf + n,
&c->status[1], n);
adpcm_compress_trellis(avctx, samples + avctx->channels + 1,
buf + n, &c->status[1], n);
for (i = 0; i < n; i++) {
put_bits(&pb, 4, buf[i]);
if (avctx->channels == 2)
@@ -638,7 +639,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
flush_put_bits(&pb);
break;
}
case CODEC_ID_ADPCM_MS:
case AV_CODEC_ID_ADPCM_MS:
for (i = 0; i < avctx->channels; i++) {
int predictor = 0;
*dst++ = predictor;
@@ -682,7 +683,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
}
}
break;
case CODEC_ID_ADPCM_YAMAHA:
case AV_CODEC_ID_ADPCM_YAMAHA:
n = frame->nb_samples / 2;
if (avctx->trellis > 0) {
FF_ALLOC_OR_GOTO(avctx, buf, 2 * n * 2, error);
@@ -717,6 +718,9 @@ error:
return AVERROR(ENOMEM);
}
static const enum AVSampleFormat sample_fmts[] = {
AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE
};
#define ADPCM_ENCODER(id_, name_, long_name_) \
AVCodec ff_ ## name_ ## _encoder = { \
@@ -727,13 +731,12 @@ AVCodec ff_ ## name_ ## _encoder = { \
.init = adpcm_encode_init, \
.encode2 = adpcm_encode_frame, \
.close = adpcm_encode_close, \
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, \
AV_SAMPLE_FMT_NONE }, \
.sample_fmts = sample_fmts, \
.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
}
ADPCM_ENCODER(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt, "ADPCM IMA QuickTime");
ADPCM_ENCODER(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav, "ADPCM IMA WAV");
ADPCM_ENCODER(CODEC_ID_ADPCM_MS, adpcm_ms, "ADPCM Microsoft");
ADPCM_ENCODER(CODEC_ID_ADPCM_SWF, adpcm_swf, "ADPCM Shockwave Flash");
ADPCM_ENCODER(CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha, "ADPCM Yamaha");
ADPCM_ENCODER(AV_CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt, "ADPCM IMA QuickTime");
ADPCM_ENCODER(AV_CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav, "ADPCM IMA WAV");
ADPCM_ENCODER(AV_CODEC_ID_ADPCM_MS, adpcm_ms, "ADPCM Microsoft");
ADPCM_ENCODER(AV_CODEC_ID_ADPCM_SWF, adpcm_swf, "ADPCM Shockwave Flash");
ADPCM_ENCODER(AV_CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha, "ADPCM Yamaha");

View File

@@ -18,6 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "adx.h"

View File

@@ -89,7 +89,7 @@ static int adx_parse(AVCodecParserContext *s1,
}
AVCodecParser ff_adx_parser = {
.codec_ids = { CODEC_ID_ADPCM_ADX },
.codec_ids = { AV_CODEC_ID_ADPCM_ADX },
.priv_data_size = sizeof(ADXParseContext),
.parser_parse = adx_parse,
.parser_close = ff_parse_close,

View File

@@ -176,7 +176,7 @@ static void adx_decode_flush(AVCodecContext *avctx)
AVCodec ff_adpcm_adx_decoder = {
.name = "adpcm_adx",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_ADPCM_ADX,
.id = AV_CODEC_ID_ADPCM_ADX,
.priv_data_size = sizeof(ADXContext),
.init = adx_decode_init,
.decode = adx_decode_frame,

View File

@@ -164,7 +164,7 @@ static int adx_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
AVCodec ff_adpcm_adx_encoder = {
.name = "adpcm_adx",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_ADPCM_ADX,
.id = AV_CODEC_ID_ADPCM_ADX,
.priv_data_size = sizeof(ADXContext),
.init = adx_encode_init,
.encode2 = adx_encode_frame,

View File

@@ -37,7 +37,7 @@
* 8bit sample size
* 8bit history mult (40)
* 8bit initial history (14)
* 8bit kmodifier (10)
* 8bit rice param limit (10)
* 8bit channels
* 16bit maxRun (255)
* 32bit max coded frame size (0 means unknown)
@@ -45,7 +45,7 @@
* 32bit samplerate
*/
#include "libavutil/audioconvert.h"
#include "avcodec.h"
#include "get_bits.h"
#include "bytestream.h"
@@ -53,128 +53,137 @@
#include "mathops.h"
#define ALAC_EXTRADATA_SIZE 36
#define MAX_CHANNELS 2
#define MAX_CHANNELS 8
typedef struct {
AVCodecContext *avctx;
AVFrame frame;
GetBitContext gb;
int channels;
int numchannels;
int32_t *predict_error_buffer[2];
int32_t *output_samples_buffer[2];
int32_t *extra_bits_buffer[2];
/* buffers */
int32_t *predicterror_buffer[MAX_CHANNELS];
uint32_t max_samples_per_frame;
uint8_t sample_size;
uint8_t rice_history_mult;
uint8_t rice_initial_history;
uint8_t rice_limit;
int32_t *outputsamples_buffer[MAX_CHANNELS];
int extra_bits; /**< number of extra bits beyond 16-bit */
int nb_samples; /**< number of samples in the current frame */
int32_t *extra_bits_buffer[MAX_CHANNELS];
/* stuff from setinfo */
uint32_t setinfo_max_samples_per_frame; /* 0x1000 = 4096 */ /* max samples per frame? */
uint8_t setinfo_sample_size; /* 0x10 */
uint8_t setinfo_rice_historymult; /* 0x28 */
uint8_t setinfo_rice_initialhistory; /* 0x0a */
uint8_t setinfo_rice_kmodifier; /* 0x0e */
/* end setinfo stuff */
int extra_bits; /**< number of extra bits beyond 16-bit */
int direct_output;
} ALACContext;
static inline int decode_scalar(GetBitContext *gb, int k, int limit, int readsamplesize){
/* read x - number of 1s before 0 represent the rice */
int x = get_unary_0_9(gb);
enum RawDataBlockType {
/* At the moment, only SCE, CPE, LFE, and END are recognized. */
TYPE_SCE,
TYPE_CPE,
TYPE_CCE,
TYPE_LFE,
TYPE_DSE,
TYPE_PCE,
TYPE_FIL,
TYPE_END
};
static const uint8_t alac_channel_layout_offsets[8][8] = {
{ 0 },
{ 0, 1 },
{ 2, 0, 1 },
{ 2, 0, 1, 3 },
{ 2, 0, 1, 3, 4 },
{ 2, 0, 1, 4, 5, 3 },
{ 2, 0, 1, 4, 5, 6, 3 },
{ 2, 6, 7, 0, 1, 4, 5, 3 }
};
static const uint16_t alac_channel_layouts[8] = {
AV_CH_LAYOUT_MONO,
AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_SURROUND,
AV_CH_LAYOUT_4POINT0,
AV_CH_LAYOUT_5POINT0_BACK,
AV_CH_LAYOUT_5POINT1_BACK,
AV_CH_LAYOUT_6POINT1_BACK,
AV_CH_LAYOUT_7POINT1_WIDE_BACK
};
static inline unsigned int decode_scalar(GetBitContext *gb, int k, int bps)
{
unsigned int x = get_unary_0_9(gb);
if (x > 8) { /* RICE THRESHOLD */
/* use alternative encoding */
x = get_bits(gb, readsamplesize);
} else {
if (k >= limit)
k = limit;
x = get_bits_long(gb, bps);
} else if (k != 1) {
int extrabits = show_bits(gb, k);
if (k != 1) {
int extrabits = show_bits(gb, k);
/* multiply x by 2^k - 1, as part of their strange algorithm */
x = (x << k) - x;
/* multiply x by 2^k - 1, as part of their strange algorithm */
x = (x << k) - x;
if (extrabits > 1) {
x += extrabits - 1;
skip_bits(gb, k);
} else
skip_bits(gb, k - 1);
}
if (extrabits > 1) {
x += extrabits - 1;
skip_bits(gb, k);
} else
skip_bits(gb, k - 1);
}
return x;
}
static int bastardized_rice_decompress(ALACContext *alac,
int32_t *output_buffer,
int output_size,
int readsamplesize, /* arg_10 */
int rice_initialhistory, /* arg424->b */
int rice_kmodifier, /* arg424->d */
int rice_historymult, /* arg424->c */
int rice_kmodifier_mask /* arg424->e */
)
static int rice_decompress(ALACContext *alac, int32_t *output_buffer,
int nb_samples, int bps, int rice_history_mult)
{
int output_count;
unsigned int history = rice_initialhistory;
int i;
unsigned int history = alac->rice_initial_history;
int sign_modifier = 0;
for (output_count = 0; output_count < output_size; output_count++) {
int32_t x;
int32_t x_modified;
int32_t final_val;
/* standard rice encoding */
int k; /* size of extra bits */
for (i = 0; i < nb_samples; i++) {
int k;
unsigned int x;
if(get_bits_left(&alac->gb) <= 0)
return -1;
/* read k, that is bits as is */
/* calculate rice param and decode next value */
k = av_log2((history >> 9) + 3);
x= decode_scalar(&alac->gb, k, rice_kmodifier, readsamplesize);
x_modified = sign_modifier + x;
final_val = (x_modified + 1) / 2;
if (x_modified & 1) final_val *= -1;
output_buffer[output_count] = final_val;
k = FFMIN(k, alac->rice_limit);
x = decode_scalar(&alac->gb, k, bps);
x += sign_modifier;
sign_modifier = 0;
output_buffer[i] = (x >> 1) ^ -(x & 1);
/* now update the history */
history += x_modified * rice_historymult
- ((history * rice_historymult) >> 9);
if (x_modified > 0xffff)
/* update the history */
if (x > 0xffff)
history = 0xffff;
else
history += x * rice_history_mult -
((history * rice_history_mult) >> 9);
/* special case: there may be compressed blocks of 0 */
if ((history < 128) && (output_count+1 < output_size)) {
int k;
unsigned int block_size;
if ((history < 128) && (i + 1 < nb_samples)) {
int block_size;
sign_modifier = 1;
k = 7 - av_log2(history) + ((history + 16) >> 6 /* / 64 */);
block_size= decode_scalar(&alac->gb, k, rice_kmodifier, 16);
/* calculate rice param and decode block size */
k = 7 - av_log2(history) + ((history + 16) >> 6);
k = FFMIN(k, alac->rice_limit);
block_size = decode_scalar(&alac->gb, k, 16);
if (block_size > 0) {
if(block_size >= output_size - output_count){
av_log(alac->avctx, AV_LOG_ERROR, "invalid zero block size of %d %d %d\n", block_size, output_size, output_count);
block_size= output_size - output_count - 1;
if (block_size >= nb_samples - i) {
av_log(alac->avctx, AV_LOG_ERROR,
"invalid zero block size of %d %d %d\n", block_size,
nb_samples, i);
block_size = nb_samples - i - 1;
}
memset(&output_buffer[output_count+1], 0, block_size * 4);
output_count += block_size;
memset(&output_buffer[i + 1], 0,
block_size * sizeof(*output_buffer));
i += block_size;
}
if (block_size > 0xffff)
sign_modifier = 0;
if (block_size <= 0xffff)
sign_modifier = 1;
history = 0;
}
}
@@ -186,131 +195,81 @@ static inline int sign_only(int v)
return v ? FFSIGN(v) : 0;
}
static void predictor_decompress_fir_adapt(int32_t *error_buffer,
int32_t *buffer_out,
int output_size,
int readsamplesize,
int16_t *predictor_coef_table,
int predictor_coef_num,
int predictor_quantitization)
static void lpc_prediction(int32_t *error_buffer, int32_t *buffer_out,
int nb_samples, int bps, int16_t *lpc_coefs,
int lpc_order, int lpc_quant)
{
int i;
int32_t *pred = buffer_out;
/* first sample always copies */
*buffer_out = *error_buffer;
if (!predictor_coef_num) {
if (output_size <= 1)
return;
if (nb_samples <= 1)
return;
memcpy(buffer_out+1, error_buffer+1, (output_size-1) * 4);
if (!lpc_order) {
memcpy(&buffer_out[1], &error_buffer[1],
(nb_samples - 1) * sizeof(*buffer_out));
return;
}
if (predictor_coef_num == 0x1f) { /* 11111 - max value of predictor_coef_num */
/* second-best case scenario for fir decompression,
* error describes a small difference from the previous sample only
*/
if (output_size <= 1)
return;
for (i = 0; i < output_size - 1; i++) {
int32_t prev_value;
int32_t error_value;
prev_value = buffer_out[i];
error_value = error_buffer[i+1];
buffer_out[i+1] =
sign_extend((prev_value + error_value), readsamplesize);
if (lpc_order == 31) {
/* simple 1st-order prediction */
for (i = 1; i < nb_samples; i++) {
buffer_out[i] = sign_extend(buffer_out[i - 1] + error_buffer[i],
bps);
}
return;
}
/* read warm-up samples */
if (predictor_coef_num > 0)
for (i = 0; i < predictor_coef_num; i++) {
int32_t val;
for (i = 1; i <= lpc_order && i < nb_samples; i++)
buffer_out[i] = sign_extend(buffer_out[i - 1] + error_buffer[i], bps);
val = buffer_out[i] + error_buffer[i+1];
val = sign_extend(val, readsamplesize);
buffer_out[i+1] = val;
}
/* NOTE: 4 and 8 are very common cases that could be optimized. */
/* 4 and 8 are very common cases (the only ones i've seen). these
* should be unrolled and optimized
*/
for (; i < nb_samples; i++) {
int j;
int val = 0;
int error_val = error_buffer[i];
int error_sign;
int d = *pred++;
/* general case */
if (predictor_coef_num > 0) {
for (i = predictor_coef_num + 1; i < output_size; i++) {
int j;
int sum = 0;
int outval;
int error_val = error_buffer[i];
/* LPC prediction */
for (j = 0; j < lpc_order; j++)
val += (pred[j] - d) * lpc_coefs[j];
val = (val + (1 << (lpc_quant - 1))) >> lpc_quant;
val += d + error_val;
buffer_out[i] = sign_extend(val, bps);
for (j = 0; j < predictor_coef_num; j++) {
sum += (buffer_out[predictor_coef_num-j] - buffer_out[0]) *
predictor_coef_table[j];
/* adapt LPC coefficients */
error_sign = sign_only(error_val);
if (error_sign) {
for (j = 0; j < lpc_order && error_val * error_sign > 0; j++) {
int sign;
val = d - pred[j];
sign = sign_only(val) * error_sign;
lpc_coefs[j] -= sign;
val *= sign;
error_val -= (val >> lpc_quant) * (j + 1);
}
outval = (1 << (predictor_quantitization-1)) + sum;
outval = outval >> predictor_quantitization;
outval = outval + buffer_out[0] + error_val;
outval = sign_extend(outval, readsamplesize);
buffer_out[predictor_coef_num+1] = outval;
if (error_val > 0) {
int predictor_num = predictor_coef_num - 1;
while (predictor_num >= 0 && error_val > 0) {
int val = buffer_out[0] - buffer_out[predictor_coef_num - predictor_num];
int sign = sign_only(val);
predictor_coef_table[predictor_num] -= sign;
val *= sign; /* absolute value */
error_val -= ((val >> predictor_quantitization) *
(predictor_coef_num - predictor_num));
predictor_num--;
}
} else if (error_val < 0) {
int predictor_num = predictor_coef_num - 1;
while (predictor_num >= 0 && error_val < 0) {
int val = buffer_out[0] - buffer_out[predictor_coef_num - predictor_num];
int sign = - sign_only(val);
predictor_coef_table[predictor_num] -= sign;
val *= sign; /* neg value */
error_val -= ((val >> predictor_quantitization) *
(predictor_coef_num - predictor_num));
predictor_num--;
}
}
buffer_out++;
}
}
}
static void decorrelate_stereo(int32_t *buffer[MAX_CHANNELS],
int numsamples, uint8_t interlacing_shift,
uint8_t interlacing_leftweight)
static void decorrelate_stereo(int32_t *buffer[2], int nb_samples,
int decorr_shift, int decorr_left_weight)
{
int i;
for (i = 0; i < numsamples; i++) {
for (i = 0; i < nb_samples; i++) {
int32_t a, b;
a = buffer[0][i];
b = buffer[1][i];
a -= (b * interlacing_leftweight) >> interlacing_shift;
a -= (b * decorr_left_weight) >> decorr_shift;
b += a;
buffer[0][i] = b;
@@ -318,141 +277,90 @@ static void decorrelate_stereo(int32_t *buffer[MAX_CHANNELS],
}
}
static void append_extra_bits(int32_t *buffer[MAX_CHANNELS],
int32_t *extra_bits_buffer[MAX_CHANNELS],
int extra_bits, int numchannels, int numsamples)
static void append_extra_bits(int32_t *buffer[2], int32_t *extra_bits_buffer[2],
int extra_bits, int channels, int nb_samples)
{
int i, ch;
for (ch = 0; ch < numchannels; ch++)
for (i = 0; i < numsamples; i++)
for (ch = 0; ch < channels; ch++)
for (i = 0; i < nb_samples; i++)
buffer[ch][i] = (buffer[ch][i] << extra_bits) | extra_bits_buffer[ch][i];
}
static void interleave_stereo_16(int32_t *buffer[MAX_CHANNELS],
int16_t *buffer_out, int numsamples)
static int decode_element(AVCodecContext *avctx, void *data, int ch_index,
int channels)
{
int i;
for (i = 0; i < numsamples; i++) {
*buffer_out++ = buffer[0][i];
*buffer_out++ = buffer[1][i];
}
}
static void interleave_stereo_24(int32_t *buffer[MAX_CHANNELS],
int32_t *buffer_out, int numsamples)
{
int i;
for (i = 0; i < numsamples; i++) {
*buffer_out++ = buffer[0][i] << 8;
*buffer_out++ = buffer[1][i] << 8;
}
}
static void interleave_stereo_32(int32_t *buffer[MAX_CHANNELS],
int32_t *buffer_out, int numsamples)
{
int i;
for (i = 0; i < numsamples; i++) {
*buffer_out++ = buffer[0][i];
*buffer_out++ = buffer[1][i];
}
}
static int alac_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
const uint8_t *inbuffer = avpkt->data;
int input_buffer_size = avpkt->size;
ALACContext *alac = avctx->priv_data;
int has_size, bps, is_compressed, decorr_shift, decorr_left_weight, ret;
uint32_t output_samples;
int i, ch;
int channels;
unsigned int outputsamples;
int hassize;
unsigned int readsamplesize;
int isnotcompressed;
uint8_t interlacing_shift;
uint8_t interlacing_leftweight;
int i, ch, ret;
skip_bits(&alac->gb, 4); /* element instance tag */
skip_bits(&alac->gb, 12); /* unused header bits */
init_get_bits(&alac->gb, inbuffer, input_buffer_size * 8);
channels = get_bits(&alac->gb, 3) + 1;
if (channels != avctx->channels) {
av_log(avctx, AV_LOG_ERROR, "frame header channel count mismatch\n");
return AVERROR_INVALIDDATA;
}
/* 2^result = something to do with output waiting.
* perhaps matters if we read > 1 frame in a pass?
*/
skip_bits(&alac->gb, 4);
skip_bits(&alac->gb, 12); /* unknown, skip 12 bits */
/* the output sample size is stored soon */
hassize = get_bits1(&alac->gb);
/* the number of output samples is stored in the frame */
has_size = get_bits1(&alac->gb);
alac->extra_bits = get_bits(&alac->gb, 2) << 3;
bps = alac->sample_size - alac->extra_bits + channels - 1;
if (bps > 32) {
av_log(avctx, AV_LOG_ERROR, "bps is unsupported: %d\n", bps);
return AVERROR_PATCHWELCOME;
}
/* whether the frame is compressed */
isnotcompressed = get_bits1(&alac->gb);
is_compressed = !get_bits1(&alac->gb);
if (hassize) {
/* now read the number of samples as a 32bit integer */
outputsamples = get_bits_long(&alac->gb, 32);
if(outputsamples > alac->setinfo_max_samples_per_frame){
av_log(avctx, AV_LOG_ERROR, "outputsamples %d > %d\n", outputsamples, alac->setinfo_max_samples_per_frame);
return -1;
}
} else
outputsamples = alac->setinfo_max_samples_per_frame;
/* get output buffer */
if (outputsamples > INT32_MAX) {
av_log(avctx, AV_LOG_ERROR, "unsupported block size: %u\n", outputsamples);
if (has_size)
output_samples = get_bits_long(&alac->gb, 32);
else
output_samples = alac->max_samples_per_frame;
if (!output_samples || output_samples > alac->max_samples_per_frame) {
av_log(avctx, AV_LOG_ERROR, "invalid samples per frame: %d\n",
output_samples);
return AVERROR_INVALIDDATA;
}
alac->frame.nb_samples = outputsamples;
if ((ret = avctx->get_buffer(avctx, &alac->frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
if (!alac->nb_samples) {
/* get output buffer */
alac->frame.nb_samples = output_samples;
if ((ret = avctx->get_buffer(avctx, &alac->frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
} else if (output_samples != alac->nb_samples) {
av_log(avctx, AV_LOG_ERROR, "sample count mismatch: %u != %d\n",
output_samples, alac->nb_samples);
return AVERROR_INVALIDDATA;
}
alac->nb_samples = output_samples;
if (alac->direct_output) {
for (ch = 0; ch < channels; ch++)
alac->output_samples_buffer[ch] = (int32_t *)alac->frame.extended_data[ch_index + ch];
}
readsamplesize = alac->setinfo_sample_size - alac->extra_bits + channels - 1;
if (readsamplesize > MIN_CACHE_BITS) {
av_log(avctx, AV_LOG_ERROR, "readsamplesize too big (%d)\n", readsamplesize);
return -1;
}
if (is_compressed) {
int16_t lpc_coefs[2][32];
int lpc_order[2];
int prediction_type[2];
int lpc_quant[2];
int rice_history_mult[2];
if (!isnotcompressed) {
/* so it is compressed */
int16_t predictor_coef_table[MAX_CHANNELS][32];
int predictor_coef_num[MAX_CHANNELS];
int prediction_type[MAX_CHANNELS];
int prediction_quantitization[MAX_CHANNELS];
int ricemodifier[MAX_CHANNELS];
interlacing_shift = get_bits(&alac->gb, 8);
interlacing_leftweight = get_bits(&alac->gb, 8);
decorr_shift = get_bits(&alac->gb, 8);
decorr_left_weight = get_bits(&alac->gb, 8);
for (ch = 0; ch < channels; ch++) {
prediction_type[ch] = get_bits(&alac->gb, 4);
prediction_quantitization[ch] = get_bits(&alac->gb, 4);
ricemodifier[ch] = get_bits(&alac->gb, 3);
predictor_coef_num[ch] = get_bits(&alac->gb, 5);
prediction_type[ch] = get_bits(&alac->gb, 4);
lpc_quant[ch] = get_bits(&alac->gb, 4);
rice_history_mult[ch] = get_bits(&alac->gb, 3);
lpc_order[ch] = get_bits(&alac->gb, 5);
/* read the predictor table */
for (i = 0; i < predictor_coef_num[ch]; i++)
predictor_coef_table[ch][i] = (int16_t)get_bits(&alac->gb, 16);
for (i = lpc_order[ch] - 1; i >= 0; i--)
lpc_coefs[ch][i] = get_sbits(&alac->gb, 16);
}
if (alac->extra_bits) {
for (i = 0; i < outputsamples; i++) {
for (i = 0; i < alac->nb_samples; i++) {
if(get_bits_left(&alac->gb) <= 0)
return -1;
for (ch = 0; ch < channels; ch++)
@@ -460,14 +368,9 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
}
}
for (ch = 0; ch < channels; ch++) {
int ret = bastardized_rice_decompress(alac,
alac->predicterror_buffer[ch],
outputsamples,
readsamplesize,
alac->setinfo_rice_initialhistory,
alac->setinfo_rice_kmodifier,
ricemodifier[ch] * alac->setinfo_rice_historymult / 4,
(1 << alac->setinfo_rice_kmodifier) - 1);
int ret=rice_decompress(alac, alac->predict_error_buffer[ch],
alac->nb_samples, bps,
rice_history_mult[ch] * alac->rice_history_mult / 4);
if(ret<0)
return ret;
@@ -480,89 +383,145 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data,
* However, this prediction type is not currently used by the
* reference encoder.
*/
predictor_decompress_fir_adapt(alac->predicterror_buffer[ch],
alac->predicterror_buffer[ch],
outputsamples, readsamplesize,
NULL, 31, 0);
lpc_prediction(alac->predict_error_buffer[ch],
alac->predict_error_buffer[ch],
alac->nb_samples, bps, NULL, 31, 0);
} else if (prediction_type[ch] > 0) {
av_log(avctx, AV_LOG_WARNING, "unknown prediction type: %i\n",
prediction_type[ch]);
}
predictor_decompress_fir_adapt(alac->predicterror_buffer[ch],
alac->outputsamples_buffer[ch],
outputsamples, readsamplesize,
predictor_coef_table[ch],
predictor_coef_num[ch],
prediction_quantitization[ch]);
lpc_prediction(alac->predict_error_buffer[ch],
alac->output_samples_buffer[ch], alac->nb_samples,
bps, lpc_coefs[ch], lpc_order[ch], lpc_quant[ch]);
}
} else {
/* not compressed, easy case */
for (i = 0; i < outputsamples; i++) {
for (i = 0; i < alac->nb_samples; i++) {
if(get_bits_left(&alac->gb) <= 0)
return -1;
for (ch = 0; ch < channels; ch++) {
alac->outputsamples_buffer[ch][i] = get_sbits_long(&alac->gb,
alac->setinfo_sample_size);
alac->output_samples_buffer[ch][i] =
get_sbits_long(&alac->gb, alac->sample_size);
}
}
alac->extra_bits = 0;
interlacing_shift = 0;
interlacing_leftweight = 0;
alac->extra_bits = 0;
decorr_shift = 0;
decorr_left_weight = 0;
}
if (get_bits(&alac->gb, 3) != 7)
av_log(avctx, AV_LOG_ERROR, "Error : Wrong End Of Frame\n");
if (channels == 2 && interlacing_leftweight) {
decorrelate_stereo(alac->outputsamples_buffer, outputsamples,
interlacing_shift, interlacing_leftweight);
if (channels == 2 && decorr_left_weight) {
decorrelate_stereo(alac->output_samples_buffer, alac->nb_samples,
decorr_shift, decorr_left_weight);
}
if (alac->extra_bits) {
append_extra_bits(alac->outputsamples_buffer, alac->extra_bits_buffer,
alac->extra_bits, alac->numchannels, outputsamples);
append_extra_bits(alac->output_samples_buffer, alac->extra_bits_buffer,
alac->extra_bits, channels, alac->nb_samples);
}
switch(alac->setinfo_sample_size) {
case 16:
if (channels == 2) {
interleave_stereo_16(alac->outputsamples_buffer,
(int16_t *)alac->frame.data[0], outputsamples);
} else {
int16_t *outbuffer = (int16_t *)alac->frame.data[0];
for (i = 0; i < outputsamples; i++) {
outbuffer[i] = alac->outputsamples_buffer[0][i];
if(av_sample_fmt_is_planar(avctx->sample_fmt)) {
switch(alac->sample_size) {
case 16: {
for (ch = 0; ch < channels; ch++) {
int16_t *outbuffer = (int16_t *)alac->frame.extended_data[ch_index + ch];
for (i = 0; i < alac->nb_samples; i++)
*outbuffer++ = alac->output_samples_buffer[ch][i];
}}
break;
case 24: {
for (ch = 0; ch < channels; ch++) {
for (i = 0; i < alac->nb_samples; i++)
alac->output_samples_buffer[ch][i] <<= 8;
}}
break;
}
}else{
switch(alac->sample_size) {
case 16: {
int16_t *outbuffer = ((int16_t *)alac->frame.extended_data[0]) + ch_index;
for (i = 0; i < alac->nb_samples; i++) {
for (ch = 0; ch < channels; ch++)
*outbuffer++ = alac->output_samples_buffer[ch][i];
outbuffer += alac->channels - channels;
}
}
break;
case 24: {
int32_t *outbuffer = ((int32_t *)alac->frame.extended_data[0]) + ch_index;
for (i = 0; i < alac->nb_samples; i++) {
for (ch = 0; ch < channels; ch++)
*outbuffer++ = alac->output_samples_buffer[ch][i] << 8;
outbuffer += alac->channels - channels;
}
}
break;
case 32: {
int32_t *outbuffer = ((int32_t *)alac->frame.extended_data[0]) + ch_index;
for (i = 0; i < alac->nb_samples; i++) {
for (ch = 0; ch < channels; ch++)
*outbuffer++ = alac->output_samples_buffer[ch][i];
outbuffer += alac->channels - channels;
}
}
break;
}
break;
case 24:
if (channels == 2) {
interleave_stereo_24(alac->outputsamples_buffer,
(int32_t *)alac->frame.data[0], outputsamples);
} else {
int32_t *outbuffer = (int32_t *)alac->frame.data[0];
for (i = 0; i < outputsamples; i++)
outbuffer[i] = alac->outputsamples_buffer[0][i] << 8;
}
break;
case 32:
if (channels == 2) {
interleave_stereo_32(alac->outputsamples_buffer,
(int32_t *)alac->frame.data[0], outputsamples);
} else {
int32_t *outbuffer = (int32_t *)alac->frame.data[0];
for (i = 0; i < outputsamples; i++)
outbuffer[i] = alac->outputsamples_buffer[0][i];
}
break;
}
if (input_buffer_size * 8 - get_bits_count(&alac->gb) > 8)
av_log(avctx, AV_LOG_ERROR, "Error : %d bits left\n", input_buffer_size * 8 - get_bits_count(&alac->gb));
return 0;
}
static int alac_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
ALACContext *alac = avctx->priv_data;
enum RawDataBlockType element;
int channels;
int ch, ret, got_end;
init_get_bits(&alac->gb, avpkt->data, avpkt->size * 8);
got_end = 0;
alac->nb_samples = 0;
ch = 0;
while (get_bits_left(&alac->gb) >= 3) {
element = get_bits(&alac->gb, 3);
if (element == TYPE_END) {
got_end = 1;
break;
}
if (element > TYPE_CPE && element != TYPE_LFE) {
av_log(avctx, AV_LOG_ERROR, "syntax element unsupported: %d\n", element);
return AVERROR_PATCHWELCOME;
}
channels = (element == TYPE_CPE) ? 2 : 1;
if (ch + channels > alac->channels) {
av_log(avctx, AV_LOG_ERROR, "invalid element channel count\n");
return AVERROR_INVALIDDATA;
}
ret = decode_element(avctx, data,
alac_channel_layout_offsets[alac->channels - 1][ch],
channels);
if (ret < 0 && get_bits_left(&alac->gb))
return ret;
ch += channels;
}
if (!got_end) {
av_log(avctx, AV_LOG_ERROR, "no end tag found. incomplete packet.\n");
return AVERROR_INVALIDDATA;
}
if (avpkt->size * 8 - get_bits_count(&alac->gb) > 8) {
av_log(avctx, AV_LOG_ERROR, "Error : %d bits left\n",
avpkt->size * 8 - get_bits_count(&alac->gb));
}
*got_frame_ptr = 1;
*(AVFrame *)data = alac->frame;
return input_buffer_size;
return avpkt->size;
}
static av_cold int alac_decode_close(AVCodecContext *avctx)
@@ -570,9 +529,10 @@ static av_cold int alac_decode_close(AVCodecContext *avctx)
ALACContext *alac = avctx->priv_data;
int ch;
for (ch = 0; ch < alac->numchannels; ch++) {
av_freep(&alac->predicterror_buffer[ch]);
av_freep(&alac->outputsamples_buffer[ch]);
for (ch = 0; ch < FFMIN(alac->channels, 2); ch++) {
av_freep(&alac->predict_error_buffer[ch]);
if (!alac->direct_output)
av_freep(&alac->output_samples_buffer[ch]);
av_freep(&alac->extra_bits_buffer[ch]);
}
@@ -582,14 +542,21 @@ static av_cold int alac_decode_close(AVCodecContext *avctx)
static int allocate_buffers(ALACContext *alac)
{
int ch;
for (ch = 0; ch < alac->numchannels; ch++) {
int buf_size = alac->setinfo_max_samples_per_frame * sizeof(int32_t);
int buf_size;
FF_ALLOC_OR_GOTO(alac->avctx, alac->predicterror_buffer[ch],
if (alac->max_samples_per_frame > INT_MAX / sizeof(int32_t))
goto buf_alloc_fail;
buf_size = alac->max_samples_per_frame * sizeof(int32_t);
for (ch = 0; ch < FFMIN(alac->channels, 2); ch++) {
FF_ALLOC_OR_GOTO(alac->avctx, alac->predict_error_buffer[ch],
buf_size, buf_alloc_fail);
FF_ALLOC_OR_GOTO(alac->avctx, alac->outputsamples_buffer[ch],
buf_size, buf_alloc_fail);
alac->direct_output = alac->sample_size > 16 && av_sample_fmt_is_planar(alac->avctx->sample_fmt);
if (!alac->direct_output) {
FF_ALLOC_OR_GOTO(alac->avctx, alac->output_samples_buffer[ch],
buf_size, buf_alloc_fail);
}
FF_ALLOC_OR_GOTO(alac->avctx, alac->extra_bits_buffer[ch],
buf_size, buf_alloc_fail);
@@ -609,19 +576,18 @@ static int alac_set_info(ALACContext *alac)
bytestream2_skipu(&gb, 12); // size:4, alac:4, version:4
/* buffer size / 2 ? */
alac->setinfo_max_samples_per_frame = bytestream2_get_be32u(&gb);
if (alac->setinfo_max_samples_per_frame >= UINT_MAX/4){
av_log(alac->avctx, AV_LOG_ERROR,
"setinfo_max_samples_per_frame too large\n");
alac->max_samples_per_frame = bytestream2_get_be32u(&gb);
if (!alac->max_samples_per_frame || alac->max_samples_per_frame > INT_MAX) {
av_log(alac->avctx, AV_LOG_ERROR, "max samples per frame invalid: %u\n",
alac->max_samples_per_frame);
return AVERROR_INVALIDDATA;
}
bytestream2_skipu(&gb, 1); // compatible version
alac->setinfo_sample_size = bytestream2_get_byteu(&gb);
alac->setinfo_rice_historymult = bytestream2_get_byteu(&gb);
alac->setinfo_rice_initialhistory = bytestream2_get_byteu(&gb);
alac->setinfo_rice_kmodifier = bytestream2_get_byteu(&gb);
alac->numchannels = bytestream2_get_byteu(&gb);
alac->sample_size = bytestream2_get_byteu(&gb);
alac->rice_history_mult = bytestream2_get_byteu(&gb);
alac->rice_initial_history = bytestream2_get_byteu(&gb);
alac->rice_limit = bytestream2_get_byteu(&gb);
alac->channels = bytestream2_get_byteu(&gb);
bytestream2_get_be16u(&gb); // maxRun
bytestream2_get_be32u(&gb); // max coded frame size
bytestream2_get_be32u(&gb); // average bitrate
@@ -633,45 +599,48 @@ static int alac_set_info(ALACContext *alac)
static av_cold int alac_decode_init(AVCodecContext * avctx)
{
int ret;
int req_packed;
ALACContext *alac = avctx->priv_data;
alac->avctx = avctx;
/* initialize from the extradata */
if (alac->avctx->extradata_size != ALAC_EXTRADATA_SIZE) {
av_log(avctx, AV_LOG_ERROR, "alac: expected %d extradata bytes\n",
av_log(avctx, AV_LOG_ERROR, "expected %d extradata bytes\n",
ALAC_EXTRADATA_SIZE);
return -1;
}
if (alac_set_info(alac)) {
av_log(avctx, AV_LOG_ERROR, "alac: set_info failed\n");
av_log(avctx, AV_LOG_ERROR, "set_info failed\n");
return -1;
}
switch (alac->setinfo_sample_size) {
case 16: avctx->sample_fmt = AV_SAMPLE_FMT_S16;
req_packed = LIBAVCODEC_VERSION_MAJOR < 55 && !av_sample_fmt_is_planar(avctx->request_sample_fmt);
switch (alac->sample_size) {
case 16: avctx->sample_fmt = req_packed ? AV_SAMPLE_FMT_S16 : AV_SAMPLE_FMT_S16P;
break;
case 32:
case 24: avctx->sample_fmt = AV_SAMPLE_FMT_S32;
case 24:
case 32: avctx->sample_fmt = req_packed ? AV_SAMPLE_FMT_S32 : AV_SAMPLE_FMT_S32P;
break;
default: av_log_ask_for_sample(avctx, "Sample depth %d is not supported.\n",
alac->setinfo_sample_size);
alac->sample_size);
return AVERROR_PATCHWELCOME;
}
if (alac->numchannels < 1) {
if (alac->channels < 1) {
av_log(avctx, AV_LOG_WARNING, "Invalid channel count\n");
alac->numchannels = avctx->channels;
alac->channels = avctx->channels;
} else {
if (alac->numchannels > MAX_CHANNELS)
alac->numchannels = avctx->channels;
if (alac->channels > MAX_CHANNELS)
alac->channels = avctx->channels;
else
avctx->channels = alac->numchannels;
avctx->channels = alac->channels;
}
if (avctx->channels > MAX_CHANNELS) {
av_log(avctx, AV_LOG_ERROR, "Unsupported channel count: %d\n",
avctx->channels);
return AVERROR_PATCHWELCOME;
}
avctx->channel_layout = alac_channel_layouts[alac->channels - 1];
if ((ret = allocate_buffers(alac)) < 0) {
av_log(avctx, AV_LOG_ERROR, "Error allocating buffers\n");
@@ -687,7 +656,7 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
AVCodec ff_alac_decoder = {
.name = "alac",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_ALAC,
.id = AV_CODEC_ID_ALAC,
.priv_data_size = sizeof(ALACContext),
.init = alac_decode_init,
.close = alac_decode_close,

View File

@@ -78,17 +78,15 @@ typedef struct AlacEncodeContext {
} AlacEncodeContext;
static void init_sample_buffers(AlacEncodeContext *s,
const int16_t *input_samples)
static void init_sample_buffers(AlacEncodeContext *s, int16_t **input_samples)
{
int ch, i;
for (ch = 0; ch < s->avctx->channels; ch++) {
const int16_t *sptr = input_samples + ch;
for (i = 0; i < s->frame_size; i++) {
s->sample_buf[ch][i] = *sptr;
sptr += s->avctx->channels;
}
int32_t *bptr = s->sample_buf[ch];
const int16_t *sptr = input_samples[ch];
for (i = 0; i < s->frame_size; i++)
bptr[i] = sptr[i];
}
}
@@ -347,8 +345,7 @@ static void alac_entropy_coder(AlacEncodeContext *s)
}
}
static int write_frame(AlacEncodeContext *s, AVPacket *avpkt,
const int16_t *samples)
static int write_frame(AlacEncodeContext *s, AVPacket *avpkt, int16_t **samples)
{
int i, j;
int prediction_type = 0;
@@ -358,8 +355,10 @@ static int write_frame(AlacEncodeContext *s, AVPacket *avpkt,
if (s->verbatim) {
write_frame_header(s);
for (i = 0; i < s->frame_size * s->avctx->channels; i++)
put_sbits(pb, 16, *samples++);
/* samples are channel-interleaved in verbatim mode */
for (i = 0; i < s->frame_size; i++)
for (j = 0; j < s->avctx->channels; j++)
put_sbits(pb, 16, samples[j][i]);
} else {
init_sample_buffers(s, samples);
write_frame_header(s);
@@ -426,11 +425,6 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
avctx->frame_size = s->frame_size = DEFAULT_FRAME_SIZE;
if (avctx->sample_fmt != AV_SAMPLE_FMT_S16) {
av_log(avctx, AV_LOG_ERROR, "only pcm_s16 input samples are supported\n");
return -1;
}
/* TODO: Correctly implement multi-channel ALAC.
It is similar to multi-channel AAC, in that it has a series of
single-channel (SCE), channel-pair (CPE), and LFE elements. */
@@ -542,11 +536,11 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
{
AlacEncodeContext *s = avctx->priv_data;
int out_bytes, max_frame_size, ret;
const int16_t *samples = (const int16_t *)frame->data[0];
int16_t **samples = (int16_t **)frame->extended_data;
s->frame_size = frame->nb_samples;
if (avctx->frame_size < DEFAULT_FRAME_SIZE)
if (frame->nb_samples < DEFAULT_FRAME_SIZE)
max_frame_size = get_max_frame_size(s->frame_size, avctx->channels,
DEFAULT_SAMPLE_SIZE);
else
@@ -574,13 +568,13 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
AVCodec ff_alac_encoder = {
.name = "alac",
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_ALAC,
.id = AV_CODEC_ID_ALAC,
.priv_data_size = sizeof(AlacEncodeContext),
.init = alac_encode_init,
.encode2 = alac_encode_frame,
.close = alac_encode_close,
.capabilities = CODEC_CAP_SMALL_LAST_FRAME,
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16P,
AV_SAMPLE_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"),
};

Some files were not shown because too many files have changed in this diff Show More