Compare commits

...

3769 Commits

Author SHA1 Message Date
Michael Niedermayer
edc00dea02 update for 1.1.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-20 01:11:06 +01:00
Michael Niedermayer
1135928903 init_get_bits: fix off by 1 error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7980cca05c)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 17:59:23 +01:00
Michael Niedermayer
6f3bc92c29 init_get_bits8: zero pointers & struct on error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 153fad14e5)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 17:59:22 +01:00
Michael Niedermayer
bd531038e8 init_get_bits8: check byte_size against being positive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ac73d3a12a)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 17:59:21 +01:00
Carl Eugen Hoyos
90da0cb60e The c99-to-c89 binaries are now hosted on videolan.org.
(cherry picked from commit c29c7c1470)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 17:59:20 +01:00
Michael Niedermayer
3049d5b9b3 doc/RELEASE_NOTES
mention changed sample_fmt for audio decoders

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 16:31:51 +01:00
Michael Niedermayer
43c6b45a53 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)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 16:18:08 +01:00
Michael Niedermayer
68a0477bc0 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-01-19 16:18:01 +01:00
Paul B Mahol
ccf0cd967d 012v: remove double ; and return correct error code if ff_get_buffer() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit 2516023695)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 16:17:24 +01:00
Michael Niedermayer
002ad7cd39 Merge remote-tracking branch 'qatar/release/9' into release/1.1
* qatar/release/9:
  fate: update ref after rv30_loop_filter fix
  rv30: fix masking in rv30_loop_filter()
  libcdio: support recent cdio-paranoia
  theora: Skip zero-sized headers
  h264: add 3 pixels below for subpixel filter wait position
  h264: fix ff_generate_sliding_window_mmcos() prototype.
  h264: don't clobber mmco opcode tables for non-first slice headers.

Conflicts:
	configure
	libavcodec/h264_refs.c
	tests/ref/fate/filter-delogo
	tests/ref/fate/rv30

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-19 15:54:36 +01:00
Jonas Bechtel
397fafad23 Fix opencv detection.
This commit changes the ".so" argument placement in check_ld sub-program.
(cherry picked from commit a003c5bd4f)
2013-01-18 10:32:49 +01:00
Michael Niedermayer
30f0cd2f1e h264: fix () placement
Fixes null pointer dereference

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:31 +01:00
Michael Niedermayer
4d6d8d9ae9 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-18 05:14:31 +01:00
Michael Niedermayer
9348514a67 lavf/mux: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 1ac5a8d7e3)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:31 +01:00
Michael Niedermayer
17704500fb 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-18 05:14:31 +01:00
Michael Niedermayer
2338eda8d8 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-18 05:14:31 +01:00
Michael Niedermayer
6a0633e961 svq1enc: Fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 37be1d802f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:31 +01:00
Michael Niedermayer
16dc41de27 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-18 05:14:31 +01:00
Michael Niedermayer
ab471e17e4 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-18 05:14:31 +01:00
Michael Niedermayer
3be8aeb14e 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-18 05:14:31 +01:00
Michael Niedermayer
b48e251360 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-18 05:14:31 +01:00
Michael Niedermayer
65a4b90840 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-18 05:14:31 +01:00
Michael Niedermayer
59956a5957 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-18 05:14:31 +01:00
Michael Niedermayer
d4a08e560d 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-18 05:14:31 +01:00
Michael Niedermayer
dacac91973 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-18 05:14:30 +01:00
Michael Niedermayer
d39400fed7 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-18 05:14:30 +01:00
Michael Niedermayer
07174ed841 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-18 05:14:30 +01:00
Michael Niedermayer
e7475335b1 doc/examples: fix assignments in if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 48a7981e6f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:30 +01:00
Michael Niedermayer
722bfe4e7c 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-18 05:14:30 +01:00
Michael Niedermayer
cc8ab98656 mpeg12enc: check dimension validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:30 +01:00
Michael Niedermayer
d7cff9f8e8 mpeg12enc: Correctly mask dimensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:30 +01:00
Michael Niedermayer
9bfda9df71 mpeg12: Support decoding dimensions that are a multiple of 4096
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-18 05:14:30 +01:00
Luca Barbato
0a837b6317 fate: update ref after rv30_loop_filter fix
(cherry picked from commit 56ef1ef1f7)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-17 23:47:01 +01:00
Xi Wang
c3c1db7c56 rv30: fix masking in rv30_loop_filter()
The mask `x && (1 << y)' is incorrect and always yields true.

The correct form should be `x & (1 << y)'.

CC: libav-stable@libav.org

Signed-off-by: Xi Wang <xi.wang@gmail.com>
(cherry picked from commit 783e37f7ef)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-17 22:00:01 +01:00
Luca Barbato
21ca4ab944 libcdio: support recent cdio-paranoia
Upstream decided to split the paranoia interface and move the headers
accordingly.
(cherry picked from commit 57224e425c567a87798b66425acc383c6dd37331)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-17 21:42:03 +01:00
Martin Storsjö
c749bec8c3 theora: Skip zero-sized headers
This fixes a regression since d9cf5f51/7a2ee770f5 with theora
over RTP (possibly with other variants of theora as well).

In theora over RTP, the second of the 3 headers turns out to be
0 bytes long, which prior to d9cf5f51 worked just fine. After
d9cf5f51, reading from the bitstream reader fails (since the reader
wasn't initialized but returned an error if initialized with 0 bits).

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit e33db35b4a)

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-17 19:11:54 +02:00
Carl Eugen Hoyos
a95306e2d7 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:40:02 +01:00
Carl Eugen Hoyos
ed12d1ecad Fix compilation with --disable-everything.
(cherry picked from commit f023003ce6)
2013-01-17 17:39:00 +01:00
Michael Niedermayer
05ed9b7005 oggparsevorbis: fix vorbis_cleanup return type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 04:34:47 +01:00
Michael Niedermayer
76477c3843 Merge remote-tracking branch 'qatar/release/9' into release/1.1
* qatar/release/9:
  libx264: use the library specific default rc_initial_buffer_occupancy
  lavc: set the default rc_initial_buffer_occupancy
  lavc: introduce the convenience function init_get_bits8
  lavc: check for overflow in init_get_bits
  APIchanges: Fill in missing hashes and dates; fix a version number typo.
  configure: enable pic for shared libs on AArch64
  zmbv: Reset the decoder on keyframe errors
  vc1dec: prevent a crash due missing pred_flag parameter
  matroska: Fix use after free
  vp3: Fix double free in vp3_decode_end()
  update Changelog
  oggdec: make sure the private parse data is cleaned up
  oggdec: free the ogg streams on read_header failure
  update Changelog
  x86: lavr: use the x86inc.asm automatic stack alignment in mixing functions
  Prepare 9.1 Release

Conflicts:
	Changelog
	RELEASE
	doc/APIchanges
	libavcodec/utils.c
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-17 04:26:42 +01:00
Carl Eugen Hoyos
ccc4219558 Fix detection of struct v4l2_frmsize_discrete.
It was always detected successfully.
(cherry picked from commit c345100efc)
2013-01-17 02:13:40 +01:00
Ronald S. Bultje
9d60f608af 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.

CC: libav-stable@libav.org

(cherry picked from commit fb845ffdd3)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 22:20:10 +01:00
Anton Khirnov
6a4803a6a9 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: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 22:19:42 +01:00
Ronald S. Bultje
c3b67720f9 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.

(cherry picked from commit bad446e251)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 22:19:07 +01:00
Michael Niedermayer
1c373456f6 oggdec: Leave treatment of serial changes to the decoder.
Attempting to re-parse the headers at demuxer level is a
pandora box the way its done currently.

This allows full reconfiguration of vorbis streams

Fixes Ticket2117
Fixes Ticket2121

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c994bb2fb7)
2013-01-15 21:12:03 +01:00
Michael Niedermayer
9636266cbd vorbisdec: handle midstream parameter changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e9ffee23f3)
2013-01-15 21:12:03 +01:00
Michael Niedermayer
dc3349024a vorbisdec: support freeing partially allocated contexts.
Fixes null pointer derefernces

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 778069c832)
2013-01-15 21:12:03 +01:00
Michael Niedermayer
66a3112100 oggdec: resync from the last page.
Previously we re synced from where we where which cam lead
to loosing pages.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c5cf58d4b9)
2013-01-15 21:12:03 +01:00
Luca Barbato
72eca26bf9 libx264: use the library specific default rc_initial_buffer_occupancy
By default libav sets it to 3/4 while x264 sets it to 9/10.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit 47812070a2)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 09:12:46 +01:00
Luca Barbato
e44d56b18d lavc: set the default rc_initial_buffer_occupancy
rc_buffer_size is not set before.

Solve the initial the rate control underflow issue reported in
bug 222.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit bff3607547)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-15 09:12:41 +01:00
Luca Barbato
71e00caeab lavc: introduce the convenience function init_get_bits8
Accept the buffer size in bytes and check for overflow before passing
the value in bits to init_get_bits.
(cherry picked from commit e28ac6e5e2)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-14 05:22:22 +01:00
Luca Barbato
7a2ee770f5 lavc: check for overflow in init_get_bits
Fix an undefined behaviour and make the function return a proper
error in case of overflow.

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

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-14 05:21:57 +01:00
Diego Biurrun
fadebd256e APIchanges: Fill in missing hashes and dates; fix a version number typo. 2013-01-12 12:59:25 +01:00
André Pankratz
3dab6e5429 lavfi/yadif: fix shorthand/option mismatch
Fix trac ticket #2128.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
(cherry picked from commit 0287eea914)
2013-01-12 02:34:06 +01:00
Marcin Juszkiewicz
bc182a6aca configure: enable pic for shared libs on AArch64
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit d11cb13b0e)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 13:02:44 +01:00
Luca Barbato
fbde7b2d0a zmbv: Reset the decoder on keyframe errors
Prevent the crash on fuzzed files as reported in bug 63.
(cherry picked from commit c1d1ef4ecd)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 12:42:56 +01:00
Vladimir Pantelic
58baa367d6 vc1dec: prevent a crash due missing pred_flag parameter
Handle pred_flag parameter not given to get_mvdata_interlaced()

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit 7b8c5b263b)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 12:42:56 +01:00
Dale Curtis
ca2e3f1131 matroska: Fix use after free
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit ae3d416369)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 02:17:19 +01:00
Ronald Bultje
ebd3aa429c vp3: Fix double free in vp3_decode_end()
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit ec86ba5731)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-11 02:17:09 +01:00
Michael Niedermayer
ddb0317154 dirac: fix inverted check
Regression since: ea6da80
Fixes Ticket2123

I cannot reproduce any regressions by flipping the wrong condition
to how it should have been.

Thanks-to: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 57bdd67646)
2013-01-09 09:48:49 +01:00
Clément Bœsch
606aa3baee lavf/mux: do not pass a copy of the packet to write_packet().
Sometimes the muxer modifies the packet, like for instance lavf/mp3enc
changing pkt->destruct in order to keep a copy. These changes must be
kept, even though the muxer behaviour is questionable. Regression since
0072116.

Fixes #2124.
(cherry picked from commit 119d70db50)
2013-01-08 23:26:49 +01:00
Carl Eugen Hoyos
36dac6da41 Add forgotten AVC Intra entry to Changelog.
(cherry picked from commit b23aff6755)
2013-01-08 23:26:36 +01:00
Paul B Mahol
9202824e1b Changelog: move Megalux where it belongs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
(cherry picked from commit e13c5abbd7)
2013-01-08 23:26:19 +01:00
Reinhard Tartler
0135dd73bb update Changelog 2013-01-07 11:14:31 +01:00
Luca Barbato
c01be297ce oggdec: make sure the private parse data is cleaned up
(cherry picked from commit d894f74762)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-07 09:00:09 +01:00
Luca Barbato
42bd6d9cf6 oggdec: free the ogg streams on read_header failure
Plug an annoying memory leak on broken files.
(cherry picked from commit 89b51b570d)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-07 09:00:04 +01:00
Michael Niedermayer
79013a59c0 update for 1.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 22:42:56 +01:00
Michael Niedermayer
58edabb198 MAINTAINERS: add 1.1, remove 0.10
If someone else wants to maintain a old release, please contact us

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 21:42:35 +01:00
Michael Niedermayer
d46fca4b75 RELEASE: 1.1.git for master
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 21:42:35 +01:00
Michael Niedermayer
6270564abc Changelog, update for 1.1 release
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 21:28:15 +01:00
Michael Niedermayer
2713e43ac8 ff_get_audio_frame_size: try to fix wma in wav
Fixes Ticket1905, Ticket2114

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 19:46:04 +01:00
Stefano Sabatini
b3d814753c tests/fate/avfilter.mak: merge pp tests into GPL test list
The mp=pp filter was removed and replaced with a native implementation,
so the dependency on CONFIG_MP_FILTER stands no more.
2013-01-06 19:04:24 +01:00
Clément Bœsch
caee85bbce lavfi/kerndeint: remove unused pixel_step. 2013-01-06 18:59:15 +01:00
Clément Bœsch
f6659e5c5e lavfi/kerndeint: fix temp buffer linesize.
Also re-enable the FATE test.
2013-01-06 18:59:15 +01:00
Carl Eugen Hoyos
1ae9d2820e Support decoding AC-3 in wav.
All known samples are actually ac3-in-spdif-in-wav, so use
the spdif demuxer to get the ac3 frames.
2013-01-06 18:48:51 +01:00
Reinhard Tartler
c1555ae4b6 update Changelog 2013-01-06 18:05:04 +01:00
Carl Eugen Hoyos
9ff92cf195 012v decoder.
The decoder also supports a12v, but removes the transparency layer
since no samples with actual transparency are available for testing.
2013-01-06 17:59:27 +01:00
rogerdpack
40648d8cc3 add note on windows pipe
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 17:47:49 +01:00
Michael Niedermayer
f6ef62eb7f doc/ffmpeg-resampler: Try to document async
Improvements welcome!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 17:47:49 +01:00
Carl Eugen Hoyos
9ffe790afc Support stereo as experimental feature in mmf / Yamaha SMAF.
Fixes ticket #1085.
2013-01-06 16:38:24 +01:00
Justin Ruggles
a557005417 x86: lavr: use the x86inc.asm automatic stack alignment in mixing functions
CC:libav-stable@libav.org
(cherry picked from commit 95d01c3f1c)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2013-01-06 15:46:12 +01:00
Reinhard Tartler
8069b44ebf Prepare 9.1 Release 2013-01-06 15:45:51 +01:00
Michael Niedermayer
631ec0642d fate: disable kerndeint test
The filter has been added recently and does not yet pass tests on all platforms.
It should not be included in the tests in the release until it works.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 15:08:38 +01:00
Michael Niedermayer
8214c1d82c mxfenc: avoid depending on private codec structures and functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 14:08:08 +01:00
Michael Niedermayer
3db02b83e7 dnxhd: Add avpriv_dnxhd_get_frame_size()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 13:58:46 +01:00
Michael Niedermayer
11e1466b43 cos_tablegen: fix the lack on M_PI
We dont include mathematics.h as the headers get configured by config.h
for the target not the host.

Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 13:56:55 +01:00
Thilo Borgmann
bfde6e5c02 alsdec: Introduce failsafe switch to keep ALSSpecificConfig consistent to the input.
Reveiwed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 13:55:58 +01:00
Thilo Borgmann
95f81159de alsdec: Consistently use a period at the end of error messages.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 13:52:53 +01:00
Michael Niedermayer
7456164b50 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: lavr: use the x86inc.asm automatic stack alignment in mixing functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 13:20:23 +01:00
Peter Ross
c44b4ee6ea frmdec: reduce probe score to reflect test accuracy (and pass probetest) 2013-01-06 16:51:57 +11:00
Michael Niedermayer
e797f22efa vf_tinterlace: fix logical/bit op mixup
Fixes CID966642

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 04:38:53 +01:00
Clément Bœsch
521daf1409 lavfi/kerndeint: get pix format description only once.
This makes the code faster.
2013-01-06 04:37:33 +01:00
Peter Ross
c4bfb0f121 fate: kerndeint requires gpl 2013-01-06 14:36:51 +11:00
Clément Bœsch
aaf59766b9 lavfi/avfilter: remove now unused {src,cur,out}_buf.
This was supposed to be removed in 565e4993, but it was delayed due to
the port of the remaining filters. These buffer ref pointers are not
used anymore, thus dropped.
2013-01-06 04:14:56 +01:00
Clément Bœsch
2e7744a6a2 lavc/subviewerdec: fix potential NULL deref.
Fixes CID966647
2013-01-06 04:04:22 +01:00
Peter Ross
3d0994be2f Megalux Frame demuxer 2013-01-06 13:58:15 +11:00
Michael Niedermayer
e27c470f2b fate: disable lavfi-histeq
The filter has been added recently and does not yet pass tests on all platforms.
It should not be included in the tests in the release until it works.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 02:40:44 +01:00
Michael Niedermayer
0ef615126f vf_kerndeint: memset buffer to avoid use of uninitialized memory.
This might fix fate failures.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 02:40:44 +01:00
Piotr Bandurski
4784a135b2 tiffdec: Use the correct height field.
Fixes Ticket913

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-06 01:56:53 +01:00
Carl Eugen Hoyos
8bf70159dc 10l: Update fate seeking reference after last commit. 2013-01-05 23:42:00 +01:00
Carl Eugen Hoyos
1a34103f0f mmf.c: Use LIBAVFORMAT_IDENT when writing Yamaha SMAF version information. 2013-01-05 23:39:46 +01:00
Michael Niedermayer
39d1875455 libavfilter/video.h: remove unused things related to the start/slice/end API
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 23:36:09 +01:00
Michael Niedermayer
2468827c06 internal.h: remove start/end_frame from AVFilterPad
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 23:36:09 +01:00
内田佳久
7e5d4fa97d mmf.c: Do not write metadata into the SMAF Contents Info chunk. 2013-01-05 23:11:09 +01:00
Justin Ruggles
95d01c3f1c x86: lavr: use the x86inc.asm automatic stack alignment in mixing functions
CC:libav-stable@libav.org
2013-01-05 16:14:35 -05:00
Michael Niedermayer
f3c9d66baf libspeexdec: fix terminator check
Fixes Ticket2096

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 18:36:13 +01:00
James Almer
6717d1a96f MAINTAINERS: add myself as maintainer of lavf/astenc.c
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 17:07:50 +01:00
James Almer
b7d77f8e64 astenc: Enable the loop flag only when needed
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 17:07:42 +01:00
Michael Niedermayer
9a697cfe71 lavu: test for broken binutils on ARM
Some old gnu assemblers fail to assemble qdadd correctly
Ideally we should check this at build time, but better to
check at run time than mysteriously failing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 16:25:37 +01:00
Nicolas George
305180f525 lavu/base64: return meaningful error code. 2013-01-05 15:40:40 +01:00
Carl Eugen Hoyos
6a9af92565 Allow remaining 32bit RGB packed pix_fmts in kerndeint filter.
Reviewed-by: Stefano Sabatini
2013-01-05 14:40:06 +01:00
Stefano Sabatini
860b5c0a63 lavfi/kerndeint: fix mismatch between declared pixel format and test
+10l.
2013-01-05 14:04:33 +01:00
Michael Niedermayer
bb4fb7715c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: fix NULL checking in sws_alloc_context()
  mxfdec: fix NULL checking in mxf_get_sorted_table_segments()
  finalize changelog for version 9

Conflicts:
	Changelog
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 13:37:30 +01:00
Michael Niedermayer
2163c8828d Merge commit 'b14e89b3c5e6d7f6401a2ff1e3d198fa902e988a'
* commit 'b14e89b3c5e6d7f6401a2ff1e3d198fa902e988a':
  Prepare for 9 Release.
  Update release notes for the 9 release.
  avprobe: also output dar/par if only defined in stream

Conflicts:
	RELEASE
	avprobe.c
	doc/RELEASE_NOTES

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 13:27:59 +01:00
Matthieu Bouron
be0a67bd65 lavfi/drawutils: fix blending computation in blend_line function
If width is not alligned with hsub, background component should only be
multiplied once by sub alpha component.
2013-01-05 13:08:02 +01:00
Michael Niedermayer
f27eb1b702 lavu: check that assert level is defined
fix warning

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 12:21:39 +01:00
Paul B Mahol
14d50c19dc w64dec: support metadata (summarylist guid)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-05 11:03:52 +00:00
Paul B Mahol
d4211c4722 alsdec: change channel sorting so it match reference implementation
Read channel source instead of channel target for channel sorting.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-05 09:36:14 +00:00
Stefano Sabatini
0140566359 lavfi: add histeq filter
This is a port of virtual dub's histogram equalization filter by Donald
A. Graft. Based on the work by Jérémy Tran <tran.jeremy.av@gmail.com>,
done for SOCIS 2012.
2013-01-05 10:25:32 +01:00
Stefano Sabatini
172505b8bc lavfi: add kerndeint filter
This is a port of the kerndeint filter (libmpcodecs/vf_kerndeint) by
Donal A. Graft (original avisynth plugin author), and is based on the
work by Jérémy Tran <tran.jeremy.av@gmail.com> done for SOCIS 2012.
2013-01-05 10:25:32 +01:00
Stefano Sabatini
92f1bed14c tests/lavfi-regression: always require three parameters in do_lavfi_pixfmts()
Force commands to specify the name of the test to run. This simplifies
extending the function with a new parameter, which will be done in a
following patch.
2013-01-05 10:25:32 +01:00
Carl Eugen Hoyos
c52e07bb6e Fix AVCI50 SPS to specify a SAR of 4:3 instead of 3:4. 2013-01-05 09:20:03 +01:00
Matthieu Bouron
bbab9cceb9 lavfi/drawutils: fix typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-05 05:21:44 +01:00
Xi Wang
f73f76fd20 swscale: fix NULL checking in sws_alloc_context()
sws_getCachedContext() and sws_getContext() expect sws_alloc_context()
to return NULL when out of memory, as follows.

    if (!(context = sws_alloc_context()))
        return NULL;

This patch fixes sws_alloc_context() to return NULL in that case.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-04 20:44:00 -05:00
Xi Wang
3b81bba3bc mxfdec: fix NULL checking in mxf_get_sorted_table_segments()
The following out-of-memory check is broken.

    *sorted_segments  = av_mallocz(...);
    if (!sorted_segments) { ... }

The correct NULL check should use *sorted_segments.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-01-04 20:43:42 -05:00
Reinhard Tartler
3f89b49b07 finalize changelog for version 9 2013-01-05 00:20:33 +01:00
Michael Niedermayer
498e1c6bb9 lavu: check av_clip*() limits
This code cannot use av_assert* due to circular header dependancies

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 22:19:31 +01:00
Paul B Mahol
ddeb299234 lavc: remove img_get_alpha_info as it not available any more
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-04 20:13:03 +00:00
Michael Niedermayer
fa11f36876 mpegpsenc: avoid shifting dts/pts
Only shift if needed to avoid negative scr when requested
or for dvd.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 20:58:59 +01:00
Michael Niedermayer
cf369d4449 mpegpsenc: show first SCR/DTS at debug level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 20:58:59 +01:00
Michael Niedermayer
9fd0cf8a3b mpegpsenc: move preload recalculation to where its needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 20:58:59 +01:00
Michael Niedermayer
2a23f6035e mpegpsenc: Fix SCR handling for DVD
This makes the initial SCR equal 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 20:58:59 +01:00
Michael Niedermayer
84aba8eed9 mpegpsenc: restructure SCR handling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 20:58:59 +01:00
Justin Ruggles
f2214c6224 au: use ff_raw_write_packet() 2013-01-04 19:52:57 +00:00
Paul B Mahol
d885cc41e5 Fix "knwon" typo and add a check in tools/patcheck
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-04 19:24:37 +00:00
Maximilian Seesslen
467c033858 fixed granularity of video quality when encoding with theora codec
The floating point version of av_clip has to be used when converting the quality level.

Signed-off-by: Maximilian Seesslen <mes@seesslen.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 18:46:24 +01:00
Anton Khirnov
b14e89b3c5 Prepare for 9 Release. 2013-01-04 17:53:47 +01:00
Anton Khirnov
a5d8c9243a Update release notes for the 9 release.
Add a paragraph about MSVC and mention 24-bit FLAC encoding.
2013-01-04 17:50:34 +01:00
Michael Niedermayer
c98d3056cf msrle: fix small palette handling
Fixes second file in Ticket1273

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 17:06:29 +01:00
Alexander Strasser
ac25b31ede lswr: Improve default resampler's default parameters
After making some blind tests on a small collection of music
samples for home usage. It turned out that the default cutoff
was too low.

The impact of filter_size was not clearly distinguishable (the
results were on the edge) with the music samples but turned out
to be clearly audible in some synthetic samples.

Thanks to Daniel for helping out with the listening tests.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2013-01-04 16:47:57 +01:00
Michael Niedermayer
a08194b4c5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: fix missing " in header documentation
  aviobuf: Discard old buffered, previously read data in ffio_read_partial

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 13:29:15 +01:00
Michael Niedermayer
8d0b2aae71 Merge commit 'e96406eda4f143f101bd44372f7b2d542183000a'
* commit 'e96406eda4f143f101bd44372f7b2d542183000a':
  rtsp: Add support for depacketizing RTP data via custom IO

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 13:23:19 +01:00
Michael Niedermayer
ea96feddb7 Merge commit '3f95f0dda55fca74b646937095a02a8fa9776622'
* commit '3f95f0dda55fca74b646937095a02a8fa9776622':
  rtpdec: Move the URLContext used for RTCP RR out from the context, to a parameter

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 13:13:30 +01:00
Michael Niedermayer
e1cf1a9c89 Merge commit 'a0b7e289075dccf223b7f407790d8a86fc5d77e8'
* commit 'a0b7e289075dccf223b7f407790d8a86fc5d77e8':
  aviobuf: Partial support for reading in read/write contexts
  build: Avoid detecting bogus components named 'x'

Conflicts:
	libavcodec/allcodecs.c
	libavdevice/alldevices.c
	libavformat/allformats.c
	libavformat/aviobuf.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 13:01:54 +01:00
Michael Niedermayer
d0b450457b matroskadec: fix ffio_init_context() usage
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 13:01:30 +01:00
Anton Khirnov
dda20a6e2c avprobe: also output dar/par if only defined in stream
Based on a patch by Jan Gerber <j@v2v.cc>
2013-01-04 12:55:58 +01:00
Stefano Sabatini
cb8d3965fd lavfi/yadif: add support to named constants 2013-01-04 11:48:54 +01:00
Stefano Sabatini
f7dc6aa6b1 lavfi/yadif: add support to named options and options introspection
Also rename the "enable_auto" field to "deint", to match the name of the
option.
2013-01-04 11:48:54 +01:00
Stefano Sabatini
8674597fe5 lavfi/yadif: remove redundant NULL checks in uninit 2013-01-04 11:48:53 +01:00
Stefano Sabatini
4ea7c17932 lavfi/yadif: fail during the configuration stage in case of invalid video size
This is better than repeatedly failing during the filtering stage.
2013-01-04 11:48:53 +01:00
Stefano Sabatini
b52c1d0c99 lavfi/yadif: remove unused poll_frame callback 2013-01-04 11:48:53 +01:00
Carl Eugen Hoyos
155cdc1d05 Add a comment about an intentional misspelling to the id3v1 tags. 2013-01-04 10:32:39 +01:00
Carl Eugen Hoyos
2284448775 Revert "Fix id3v1 tag spelling."
The misspelling is used in the specification.

This reverts commit 95016fd1c8.
2013-01-04 10:29:31 +01:00
Benjamin Kerensa
95016fd1c8 Fix id3v1 tag spelling. 2013-01-04 10:11:29 +01:00
Peter Meerwald
be6cde3ce8 lavr: fix missing " in header documentation
Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-04 10:29:55 +02:00
Michael Niedermayer
b888cea9cb ac3dec: split out pointer update loop for saftey
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 06:20:39 +01:00
Michael Niedermayer
4e0738cec9 mpegaudiodec/mp3on4: fix buffer size.
The larger (and really ugly) size is not needed anymore.

Found-by: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 06:20:19 +01:00
Michael Niedermayer
7b5fdd04de locodec: flip RGBA
Fixes Ticket1222

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-04 04:49:16 +01:00
Michael Niedermayer
9e36d9e4ed pngdec: fix decoding of right column for 2/4bpp
Fixes Ticket1146

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 23:40:22 +01:00
Reimar Döffinger
c5142a95a5 Support more AVC-Intra files
Followup to http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/151321
patch by Reimar and Thomas Mundt fixes some AVC-Intra files from
different tickets.
It does not fix http://samples.ffmpeg.org/ffmpeg-
bugs/trac/ticket524/AVCI50.mov

Authors of this commit are: Reimar and Thomas Mundt
Patch and commit message mostly taken from ffmpeg-devel, mail by Carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 21:48:38 +01:00
Reimar Döffinger
def01739c1 mxfdec: Set AV_FIELD_PROGRESSIVE, needed for AVC-intra
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 21:44:33 +01:00
Paul B Mahol
28d75441ec fate: update seek-lavf-aiff after previous commit
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-03 20:03:43 +00:00
Paul B Mahol
48340bbb36 aiffenc: metadata support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-03 19:35:02 +00:00
Paul B Mahol
0c8943939e gifdec: use log level that have more common sense
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-03 19:33:57 +00:00
Michael Niedermayer
bbb11f383e lavf: add return to silence compiler warning
The added statement is not reachable

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 20:02:14 +01:00
Nicolas George
be01d1a24d fate: disable globbing when calling shell functions.
Some of the filters tests use globbing characters, especially
brackets for filter pad labels. While most of these strings
are way too complicated to ever match an existing file name
and are therefore kept unchanged in the command line (an old
misfeature of the shell language that happens to be convenient
here), at least one use is simple enough to match random files
lying in the current directory. If that happens, the string,
that was meant to be kept verbatim, is replaced by the file
name, and that causes the test to fail (or worse).
2013-01-03 16:16:07 +01:00
Martin Storsjö
53c25ee073 aviobuf: Discard old buffered, previously read data in ffio_read_partial
This makes RTP custom IO work properly with pure read-only
AVIOContexts as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 15:17:10 +02:00
Martin Storsjö
e96406eda4 rtsp: Add support for depacketizing RTP data via custom IO
To use this, set sdpflags=custom_io to the sdp demuxer. During
the avformat_open_input call, the SDP is read from the AVFormatContext
AVIOContext (ctx->pb) - after the avformat_open_input call,
during the av_read_frame() calls, the same ctx->pb is used for reading
packets (and sending back RTCP RR packets).

Normally, one would use this with a read-only AVIOContext for the
SDP during the avformat_open_input call, then close that one and
replace it with a read-write one for the packets after the
avformat_open_input call has returned.

This allows using the RTP depacketizers as "pure" demuxers, without
having them tied to the libavformat network IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 15:15:27 +02:00
Martin Storsjö
3f95f0dda5 rtpdec: Move the URLContext used for RTCP RR out from the context, to a parameter
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 15:14:34 +02:00
Martin Storsjö
a0b7e28907 aviobuf: Partial support for reading in read/write contexts
So far, aviocontexts are used either in pure-read or pure-write
mode - full read/write mode doesn't work well (and implementing it
is a much larger, not totally trivial change).

This patch allows using avio_read and ffio_read_partial on
read/write aviocontexts, where the read operations are passed
through directly unbuffered, while writes are buffered as usual.

This is enough to support the operations needed by packet based
data transfer like in udp/rtp, where aviocontext is the only
public API for hooking up custom IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 15:14:09 +02:00
Clément Bœsch
3048fae63c build: Avoid detecting bogus components named 'x'
The function find_things() in configure is confused by component
registration calls as part of multiline macros defining combined
component registration.  Coalesce those macros into one line to
work around the issue.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 15:11:25 +02:00
Michael Niedermayer
1894302a44 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cmdutils: update copyright year to 2013
  h264: check SPS entries directly to detect pixel format changes
  forgotten changelogs for 9_beta2

Conflicts:
	Changelog
	cmdutils.c
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 13:22:45 +01:00
Johan Andersson
7768a635c4 cmdutils: update copyright year to 2013
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-03 13:35:12 +02:00
Janne Grunau
9ac44ad9d0 h264: check SPS entries directly to detect pixel format changes
Comparing AVCodecContext.pix_fmt against the get_pixel_format() return
value has the side effect of calling the get_format() callback on each
slice. Users of the callback will probably handle hardware accelerator
initialization in the callback.
2013-01-03 11:09:00 +01:00
Clément Bœsch
dc8b36746a lavf/webvtt: use ff_subtitles_read_chunk().
The FATE test is updated because the line breaks in the dialogue
rectangles are now proper CRLF.
2013-01-03 07:46:30 +01:00
Clément Bœsch
3fa642d60f subviewer: sanitize packets.
The data does not contain timing or trailing line breaks anymore. In
addition to being less idiotic, it is consistent with other codecs and
thus allows more switches between formats and codecs. It also fixes the
issue of the trailing line returns being simple \n instead of CRLF in
the ASS rectangle dialogue (this is the reason of the FATE update).
2013-01-03 07:25:47 +01:00
Reinhard Tartler
60e60d99ad forgotten changelogs for 9_beta2 2013-01-03 07:09:41 +01:00
Michael Niedermayer
52334f5be2 tiff: print error for old style LZW
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 04:26:57 +01:00
Clément Bœsch
491ca0e89f Replace references to "que" with the appropriate word.
"que" sounds like a slang word to me. This commit renames a few
variables, fix the comments and the logging messages (sometimes along
with small other typo fixes).
2013-01-03 00:21:47 +01:00
Clément Bœsch
43adc62e70 lavf/mpegtsenc: fix missing word in error message. 2013-01-03 00:04:41 +01:00
Clément Bœsch
f263426eed lavu/math: fix than/then typo, and add a comma. 2013-01-03 00:02:51 +01:00
Michael Niedermayer
98db905896 avformat_seek_file: Dont attempt to rescale INT64_MIN/MAX
This fixes a integer overflow in fate

Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 00:02:22 +01:00
Michael Niedermayer
740e740895 av_rescale: support passing MIN/MAX through
Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-03 00:02:22 +01:00
Lou Logan
091ce6bcb2 doc/faq: add -start_number example
Also add example showing cat piping images to ffmpeg.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-01-02 23:52:35 +01:00
Stefano Sabatini
69d75dc4dd lavu/base64: extend/clarify doxy for the base64 API
Also improve overall consistency.
2013-01-02 23:52:35 +01:00
Clément Bœsch
49a78e6b8c lavu/eval: handle div by zero in mod().
Similarly to 03f5043f5, we use the FTRAPV config setting.
2013-01-02 23:15:45 +01:00
Michael Niedermayer
aa86d2d884 lavf: move stream==-1 handling from ff_subtitles_queue_seek() to avformat_seek_file()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-02 23:02:33 +01:00
Clément Bœsch
fc86f86353 fate/sub2video: move sws flags globally in the filtergraph.
The flags are necessary for the auto inserted scaler (because the
overlay filter needs an alpha channel for the overlay surface).
2013-01-02 21:48:56 +01:00
Michael Niedermayer
ccb7f20309 fate: add missing bitexact flag to scale filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-02 20:15:10 +01:00
Nicolas George
b252d9e777 fate: add sub2video test. 2013-01-02 17:53:12 +01:00
Nicolas George
e4f14c32b9 examples/muxing: improve error messages.
Illustrate the use of return values, av_err2str and
avcodec_get_name.
2013-01-02 17:42:00 +01:00
Nicolas George
b99bef17b4 lavfi/avfiltergraph: check pick_format return code. 2013-01-02 16:56:03 +01:00
Stefano Sabatini
82deb0c42e doc/muxers: adopt new -codec:SPEC syntax in segment example 2013-01-02 16:30:11 +01:00
Stefano Sabatini
8bbe9d90fa doc/muxers: add a dedicated section for segment examples 2013-01-02 16:29:58 +01:00
Stefano Sabatini
fd44dfb29d doc/muxers: fix typos in the segment chapter 2013-01-02 16:29:42 +01:00
Clément Bœsch
8bc74221f8 lavf: remove generic index flag from text subtitles.
This flag is not necessary.
2013-01-02 10:32:21 +01:00
Clément Bœsch
5a2f3f0bca lavf/vobsub: do not count trailing NUL char in extradata.
See 36e61e24.
2013-01-02 09:31:07 +01:00
Michael Niedermayer
1e28fa21de rawdec: fix NV12
Fixes Ticket646

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-02 03:56:57 +01:00
Janne Grunau
e9fd51b0d6 h264: check SPS entries directly to detect pixel format changes
Comparing AVCodecContext.pix_fmt against the get_pixel_format() return
value has the side effect of calling the get_format() callback on each
slice. Users of the callback will probably handle hardware accelerator
initialization in the callback.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-02 02:28:57 +01:00
Michael Niedermayer
341e40f1e1 lavf: Fix codec id forcing with probed codecs
Fixes Ticket2088

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-02 01:17:36 +01:00
Michael Niedermayer
3a6b6f425e lavf: move force_codec_ids() up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-02 01:17:36 +01:00
Nicolas George
98ce9b8468 fate: merge mapchan and options into ffmpeg.
They were two very short files that cover ffmpeg-specific features.
2013-01-01 23:48:41 +01:00
Nicolas George
102cf964dd ffmpeg: sub2video: set resample size.
Necessary after 04a530f.
2013-01-01 23:06:34 +01:00
Nicolas George
5ed5e90f2a lavc/dvdsubenc: improve color distance function.
Consider the color space as an hypercone with apex alpha=0
and base alpha=1 instead of an hypercube.
Make the encoder consider very transparent colors more similar
even if the hue is very different.
This corresponds roughly to using the alpha as a weight for the
color difference.
Only 4 bits of alpha are used, because this is what dvdsub uses,
and it avoids overflows.

Fix trac ticket #2005.
2013-01-01 20:07:37 +01:00
Nicolas George
8dbbaf568e lavf/matroskaenc: respect bitexact for attachments.
Use the first 64 bits of the SHA1 of the content as file UID
instead of a random number if the bitexact flag is set.
2013-01-01 19:43:21 +01:00
Nicolas George
5bab99baea ffmpeg: apply flags to attachments too. 2013-01-01 19:43:21 +01:00
Nicolas George
951a03b3a8 ffmpeg: move stream_copy flags handling after attachments. 2013-01-01 19:43:20 +01:00
rogerdpack
10a9277562 better filter error message when accidentally reusing outputs
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 19:39:10 +01:00
Nicolas George
ecda1d3cbe lavf: add data: URI scheme. 2013-01-01 19:29:04 +01:00
Paul B Mahol
ba1cbf40ce lavfi/lut: use ff_fill_rgba_map()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-01 17:07:57 +00:00
Piotr Bandurski
fde13052fb aiffdec: set block duration for QDM2
Fixes #1697.
2013-01-01 17:03:22 +00:00
Clément Bœsch
7d66bc7920 lavc/movtextdec: keep the min size instead of max to fix overread.
Fixes Ticket #2087.
2013-01-01 16:41:37 +01:00
Clément Bœsch
1dd4a21cb7 fate: re-enable fate-sub-mpsub.
This reverts commit 580ee973d1.
2013-01-01 16:34:00 +01:00
Clément Bœsch
c14f8a52b0 lavf/mov: fix timecode track reference usage. 2013-01-01 16:20:10 +01:00
Clément Bœsch
8d398f40b4 lavf/mov: simplify timecode track ref.
There can be only one track reference. The multiple tref handling is
handled at a different level.
2013-01-01 16:20:10 +01:00
Nicolas George
69a1667b06 ffmpeg: mark attachment streams finished.
Fix trac ticket #2083.
2013-01-01 16:05:35 +01:00
Michael Niedermayer
9b53306178 cmdutils: we have 2013
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 15:43:37 +01:00
Nicolas George
82541d8330 lavfi: merge all filtering code into ff_filter_frame. 2013-01-01 15:19:04 +01:00
Hendrik Leppkes
765158dd82 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.
2013-01-01 15:16:37 +01:00
Paul B Mahol
8c33cb5c77 fate: add nistsphere demuxer test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-01 14:02:54 +00:00
Michael Niedermayer
9336a980bb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: Add support for limelight authentication
  rtmp: Add support for adobe authentication

Conflicts:
	Changelog
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 14:04:50 +01:00
Paul B Mahol
8e4e532bb2 lavfi/avcodec: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-01-01 12:57:07 +00:00
Michael Niedermayer
c047a41bc5 Merge commit '33f28a3be3092f642778253d9529dd66fe2a014a'
* commit '33f28a3be3092f642778253d9529dd66fe2a014a':
  rtmp: Add a function for writing AMF strings based on two substrings
  rtmp: Return a proper error code in handle_invoke_error

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 13:54:22 +01:00
Clément Bœsch
d079d1d368 ffprobe: do not escape '"' between single quotes. 2013-01-01 13:32:51 +01:00
Clément Bœsch
c1abfcd7d6 doc/resampler: remove .html from link text. 2013-01-01 10:59:51 +01:00
Michael Niedermayer
13131685f1 ffmpeg: avoid negative timestamps for DVD
dvdauthor cannot handle files with ts wraps

Fixes ticket383

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 04:59:03 +01:00
Nicolas George
2eb2e1798e lavfi: add avfilter_get_audio_buffer_ref_from_arrays_channels.
It is the same as avfilter_get_audio_buffer_ref_from_arrays
except it has a "channels" and the channel layout can be 0.
2013-01-01 02:01:28 +01:00
Michael Niedermayer
f105fe5c22 rawdec: fix decoding of odd dimensioned raw yv12
Fix Ticket339 part 2 of 2

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 00:44:44 +01:00
Carl Eugen Hoyos
67abe21c0b mov: fix handling of odd sized yv12
Part 1 of 2 to fix Ticket339

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-01 00:44:44 +01:00
Michael Niedermayer
6e8df250fd mpeg12: fix frame_pred_frame_dct handling in field pictures
Fixes Ticket254

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 20:55:03 +01:00
Michael Niedermayer
49ec0d8ed2 mpeg12: print invalid cbp value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 20:55:02 +01:00
Michael Niedermayer
343900a147 mpeg12: print error for invalid skip cases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 20:55:02 +01:00
Nicolas George
9e28e0035a lavc/flacenc: improve error return.
Use meaningful error codes and add log messages.
2012-12-31 19:11:12 +01:00
Nicolas George
11ab2c25b6 lavfi/avfiltergraph: print query_formats errors. 2012-12-31 18:43:04 +01:00
Nicolas George
5f12d5ad78 lswr: improve rematrixing error message.
Report channel layout/count for insufficiently determined
rematrixing.
2012-12-31 18:43:04 +01:00
Michael Niedermayer
08196c785a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: suppress -fPIC in msvc builds
  Drop unnecessary 'l' length modifier when printfing double values.
  truemotion2: Sanitize tm2_read_header()

Conflicts:
	libavcodec/truemotion2.c
	libavfilter/src_movie.c
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 14:20:01 +01:00
Michael Niedermayer
98275283d5 Merge commit '5e6ee38bd3cef0dd05f1dd7977c71f3479eb6d01'
* commit '5e6ee38bd3cef0dd05f1dd7977c71f3479eb6d01':
  FATE: add cavs test
  cavsdec: export picture type in the output frame

Conflicts:
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 13:53:21 +01:00
Michael Niedermayer
ca95d1b32d Merge commit '7d8482640058d66867602a6f58446c9342d9d146'
* commit '7d8482640058d66867602a6f58446c9342d9d146':
  cavs: deMpegEncContextize

Note, the bugfixes have all been in FFmpeg previously, this just switches away
from MpegEncContext

Conflicts:
	libavcodec/cavs.c
	libavcodec/cavsdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 13:38:01 +01:00
Michael Niedermayer
6ddda83c3f Merge commit '64bb3fa6b7f5b2db22b7577585d5861be24eebd8'
* commit '64bb3fa6b7f5b2db22b7577585d5861be24eebd8':
  cavs: cosmetics, reformat top part
  cavsdec: cosmetics, reformat
  libavcodec/utils: Add braces to shut up gcc warnings

Conflicts:
	libavcodec/cavsdec.c
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-31 13:14:06 +01:00
Clément Bœsch
87350d6b44 lavc/textdec: fix subviewer1 preproc check. 2012-12-31 13:06:29 +01:00
Martin Storsjö
c1ea44c54d rtmp: Add support for limelight authentication
Limelight is a not too uncommon CDN. The authentication scheme is
pretty similar to the adobe authentication, but is even closer to
normal http digest authentication (but not close enough to warrant
sharing code) than the adobe version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 13:39:09 +02:00
Martin Storsjö
08225d0126 rtmp: Add support for adobe authentication
This is mostly used to authenticate the client when publishing.
Tested with wowza and akamai.

Some but not all servers support resending a new connect invoke
within the same connection, so always reconnect for sending a new
connection attempt. This matches what other applications do as well.

The authentication scheme is structurally pretty similar to http
digest authentication, but uses base64 instead of hex strings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 13:39:08 +02:00
Martin Storsjö
33f28a3be3 rtmp: Add a function for writing AMF strings based on two substrings
This avoids having to concatenate them into one buffer before writing
them as AMF.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 13:39:07 +02:00
Martin Storsjö
c76daa89ab rtmp: Return a proper error code in handle_invoke_error
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 13:39:06 +02:00
Hendrik Leppkes
506409776c configure: suppress -fPIC in msvc builds
MSVC doesn't understand the option, and emits a warning on every
call to cl.exe.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-31 12:34:30 +02:00
Diego Biurrun
bcb8d9eb8f Drop unnecessary 'l' length modifier when printfing double values.
%f denotes a double argument and 'l' does nothing in this case
according to the C spec.
2012-12-31 11:20:45 +01:00
Diego Biurrun
117f79de2d truemotion2: Sanitize tm2_read_header()
Also give a variable a more sensible name.
2012-12-31 11:20:45 +01:00
Clément Bœsch
72ff8ee158 lavc: correctly set AVSubtitle format for text based subtitles. 2012-12-31 10:08:27 +01:00
Clément Bœsch
e3c25860dc lavc/utils: reindent in avcodec_decode_subtitle2(). 2012-12-31 10:06:32 +01:00
Paul B Mahol
9a74282644 Sony Wave64 muxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-31 07:10:57 +00:00
Clément Bœsch
fe5a2fc46c Changelog: remove av_{base,dir}_name addition.
This belongs only to APIChanges, where it is already present.

Spotted-by: Stefano
2012-12-31 02:33:24 +01:00
Clément Bœsch
8d06e83d16 lavfi/Makefile: add missing dependencies to FFLIBS. 2012-12-31 01:40:34 +01:00
Clément Bœsch
21b6991cd5 lavfi/Makefile: make FFLIBS list consistent. 2012-12-31 01:38:31 +01:00
Clément Bœsch
1f265f5205 microdvd: sanitize AVPackets.
Current MicroDVD AVPackets contain timing information and trailing line
breaks. The data is now only composed of the markup data. Doing this
consistently between text subtitles decoders allows to use different
codec for various formats. For instance, MicroDVD markup is sometimes
found in some VPlayer files. Also, generally speaking, the subtitles
text decoders have no use of these timings (and they must not use them
since it would break any user timing adjustment).

Technically, this is a major ABI break. In practice, a mismatching
lavf/lavc will now error out for MicroDVD decoding. Supporting both
formats requires unnecessary complex and fragile code.

FATE needs update because line breaks in the ASS file were "\n" (because
that's what is used in the original file). ASS format expect "\r\n" line
breaks; this commit fixes this issue. Also note that this "\r\n"
trailing need to be moved at some point from the decoders to the ASS
muxer.
2012-12-31 00:41:35 +01:00
Clément Bœsch
faa94061dd Add SubViewer v1 subtitles demuxer and decoder. 2012-12-31 00:01:58 +01:00
Clément Bœsch
7b43402724 Add PJS subtitles demuxer and decoder. 2012-12-30 23:55:28 +01:00
Clément Bœsch
580ee973d1 FATE: disable fate-sub-mpsub temporarly.
Sample has been forgotten, revert this commit in a day or two, when
sample is available everywhere.
2012-12-30 23:42:52 +01:00
Clément Bœsch
a1e4e352a6 Add AQTitle subtitles demuxer. 2012-12-30 23:37:14 +01:00
Clément Bœsch
949506191a lavf/subtitles: fix CLRF/CRLF typo. 2012-12-30 23:14:34 +01:00
Clément Bœsch
725d6c615c Add MPlayer subtitles demuxer. 2012-12-30 23:09:49 +01:00
Clément Bœsch
d9ac8d2967 lavf: move srtdec:read_chunk() to subtitles utils.
This function can be useful for various other subtitles formats.
2012-12-30 22:58:58 +01:00
Clément Bœsch
67286fa98b 10l: export ff_bprint_to_extradata between libs using avpriv_ prefix.
Both libavformat and libavcodec requires this function.
2012-12-30 22:54:56 +01:00
Clément Bœsch
5c68aae908 Add VPlayer subtitles demuxer and decoder.
Note that the linebreaks text codec option (but not the feature) has
been removed; its main goal was to allow demuxers to configure the text
decoder (and not meant to be used by users), but the AVOption are not a
viable solution. This is solved differently in this commit.
2012-12-30 22:46:42 +01:00
Clément Bœsch
5f02844c8d Add MPL2 subtitles demuxer and decoder. 2012-12-30 22:37:25 +01:00
Clément Bœsch
2d3305e4f4 lavc/avcodec: fix FF_INPUT_/BUFFER_/PADDING_SIZE typo. 2012-12-30 22:22:18 +01:00
Clément Bœsch
9db5f82032 ffserver: add missing padding to extradata. 2012-12-30 22:22:18 +01:00
Clément Bœsch
36e61e24e7 lavc: add ff_bprint_to_extradata() helper and use it.
This commit also makes sure the extradata and subtitle_header are NUL
terminated, without taking into account the trailing '\0' in account in
the size.

At the same time, it should fix 'warning: dereferencing type-punned
pointer will break strict-aliasing rules' warning for compilers who
don't consider uint8_t** and char** compatibles.
2012-12-30 22:19:04 +01:00
Clément Bœsch
e911f4ae72 lavc/srtenc: just like the decoder, mark SRT encoder as deprecated. 2012-12-30 21:39:36 +01:00
Clément Bœsch
1b673cd9ff lavc/srtenc: do not add trailing line breaks with SubRip.
The SRT muxer is reponsible for separating events with two line breaks,
there is no need to add more than necessary. Similarly, other muxers
(such as Matroska) are not supposed to add line breaks at the end of the
payload.
2012-12-30 21:39:36 +01:00
Clément Bœsch
3af3a3006f lavf/srtdec: remove line break hack.
This is not necessary anymore since the last commit.
2012-12-30 21:39:35 +01:00
Clément Bœsch
d927d8395d lavc/srtdec: make some sscanf to work at the end of a line.
Fix sscanf calls that can't work at the end of a line unless it ends
with \r\n or \n: the markup line may/should/must not end with these
characters.
2012-12-30 21:39:35 +01:00
Anton Khirnov
5e6ee38bd3 FATE: add cavs test 2012-12-30 18:52:51 +01:00
Anton Khirnov
fb0cb11f09 cavsdec: export picture type in the output frame 2012-12-30 18:52:26 +01:00
Anton Khirnov
7d84826400 cavs: deMpegEncContextize
It does not use any of the mpegvideo infrastructure, just a few fields
from the context.

Fixes a segfault with the emu edge flag, since emu edge buffer is now
allocated as a part of the frame buffer allocation and cavs calls
ff_get_buffer() directly, it does not use mpegvideo buffer management.

Fixes a memleak of the last frame.
2012-12-30 18:48:11 +01:00
Anton Khirnov
64bb3fa6b7 cavs: cosmetics, reformat top part 2012-12-30 18:47:54 +01:00
Anton Khirnov
185c2ef849 cavsdec: cosmetics, reformat 2012-12-30 18:47:30 +01:00
Nicolas George
c36302a7a4 lavfi/sink_buffer: switch to filter_frame. 2012-12-30 18:29:57 +01:00
Nicolas George
a978c04e22 lavfi/video: ensure that filter_frame is called.
This is a temporary workaround until all filters have been
upgraded to filter_frame and the framework can forget completely
about start_frame/draw_slice/end_frame.
2012-12-30 18:29:57 +01:00
Don Moir
522cb6abf2 gifdec: use transparent instead of background color index
Wrong code was commited in 64f4fb75c4.
2012-12-30 17:21:25 +00:00
Michael Niedermayer
b84871b8eb vf_tinterlace: dont mix declarations and expressions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 16:59:52 +01:00
Michael Niedermayer
c0c0b19644 lavfi: remove some draw_slice related code that has become unneeded
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 16:58:50 +01:00
Mark Himsley
8997a0fa79 lavfi/tinterlace: add low-pass-filter for top/bottom interleave modes
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-12-30 15:19:23 +01:00
Stefano Sabatini
9e3b6285cb doc/filters: drop duplicated description of resampler options in aresample docs
Avoid duplication, and point to the complete description of options.
Also provide a more complete specification of the supported syntax.
2012-12-30 15:04:58 +01:00
Michael Niedermayer
cbed2426a0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  snow: use VideoDSPContext

Conflicts:
	libavcodec/snow.c

Nothing merged here, this has already been fixed in ffmpeg long ago

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 14:51:06 +01:00
Michael Niedermayer
384dd9804d Merge commit '30a76487304e7250294c9c0e9fa179bf07fd822a'
* commit '30a76487304e7250294c9c0e9fa179bf07fd822a':
  hlsenc: make segment number unsigned
  hlsenc: make EXT-X-MEDIA-SEQUENCE always increase

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 14:21:55 +01:00
Michael Niedermayer
56c71cd599 Merge commit '9b1370aced385698bc783747917544ab69ecb373'
* commit '9b1370aced385698bc783747917544ab69ecb373':
  hlsenc: do not add timestamps in different timebases
  hlsenc: use the correct AV_TIME_BASE macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 14:11:17 +01:00
Michael Niedermayer
19e1c8e4f2 Merge commit '0448f26c97c5ab4858d31e456a4f1738ae783242'
* commit '0448f26c97c5ab4858d31e456a4f1738ae783242':
  hlsenc: keep the playlist to the correct number of items
  hlsenc: use the segment filename in the playlist entry

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 14:02:19 +01:00
Michael Niedermayer
2ce43b37fc Merge commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405'
* commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405':
  hlsenc: check append_entry return value
  hlsenc: use the basename to generate the list entries
  avstring: add av_basename and av_dirname

Conflicts:
	Changelog
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 13:54:50 +01:00
Clément Bœsch
613001d75f Merge back some registering macros in all*.c.
This breaks the sed in configure:find_things(). Fixes regression from
c73c87b. Fixes Ticket2079.

Found-by: jamal
2012-12-30 07:18:21 +01:00
Clément Bœsch
c83002a4f8 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.
2012-12-30 06:57:34 +01:00
Michael Niedermayer
b113d4a83c aacdec: make dual mono mode selectable through AVOptions too.
Based on patch by Akihiro Tsukada

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 05:29:17 +01:00
Michael Niedermayer
644f021ccf aacdec: simplify dmono
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 05:29:17 +01:00
Michael Niedermayer
6d38661920 aacdec: fix dual mono
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30 05:29:17 +01:00
Clément Bœsch
518239cd61 build: postproc cleanup.
This reverts 79f80f5c, moves postproc along with the other libraries,
and fix the postproc dependency to libavutil.
2012-12-30 02:27:52 +01:00
Diego Biurrun
015da965a6 libavcodec/utils: Add braces to shut up gcc warnings
libavcodec/utils.c:1050:5: warning: missing braces around initializer [-Wmissing-braces]
libavcodec/utils.c:1314:5: warning: missing braces around initializer [-Wmissing-braces]
2012-12-30 01:52:04 +01:00
Michael Niedermayer
c77eb4ee90 sws: fix warning: cast from pointer to integer of different size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 20:50:43 +01:00
Michael Niedermayer
3cd137bfea vf_deshake: fix strict aliassing errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 20:00:48 +01:00
Michael Niedermayer
aa9507cc3d swscale: fix warning: assignment from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 19:39:42 +01:00
Michael Niedermayer
05d81a57f5 motion_est_template: fix warning: "ASSERT_LEVEL" is not defined
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 19:37:20 +01:00
Michael Niedermayer
4f1d7cc0ed bktr: fix warning: missing braces around initializer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 19:27:07 +01:00
Dave Yeo
925c9f444f Fix OS/2 threading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 18:56:33 +01:00
Michael Niedermayer
53228f47d6 avf_concat: init pointers to NULL for saftey and to avoid warning of uninitialized use.
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 18:56:33 +01:00
James Almer
d59d39e164 wavdec: fix duration calculation for files with invalid data size
Some wav files report a data size that is bigger than the actual file size.
Fall back to estimation from bitrate in such cases.

Fixes ticket #2065.

Signed-off-by: James Almer <jamrial@gmail.com>
2012-12-29 17:46:01 +00:00
Luca Barbato
d615da60c1 snow: use VideoDSPContext
It was left over from the initial conversion.
2012-12-29 18:05:49 +01:00
Luca Barbato
30a7648730 hlsenc: make segment number unsigned
It will overflow if somebody keeps streaming for a time long enough.
2012-12-29 17:26:30 +01:00
Luca Barbato
9b1370aced hlsenc: do not add timestamps in different timebases
start_time is in stream timebase units while end_time is
in AV_TIME_BASE ones.
2012-12-29 17:26:30 +01:00
Luca Barbato
0448f26c97 hlsenc: keep the playlist to the correct number of items
Consider the corner case with a list size larger than the wrap
number.
2012-12-29 17:26:30 +01:00
Kanglin
27a15e0af6 hlsenc: make EXT-X-MEDIA-SEQUENCE always increase 2012-12-29 17:26:30 +01:00
Kanglin
0d8cc7a3b2 hlsenc: use the correct AV_TIME_BASE macro
recording_time is in AV_TIME_BASE units.
2012-12-29 17:26:30 +01:00
Luca Barbato
6dd93ee6f1 hlsenc: check append_entry return value 2012-12-29 17:26:29 +01:00
Luca Barbato
ae85d6c9c0 hlsenc: use the segment filename in the playlist entry
Avoid calling av_get_frame_filename twice, once to generate the
segment filename and once to generate the playlist.
2012-12-29 17:26:29 +01:00
Luca Barbato
66f7b4862f hlsenc: use the basename to generate the list entries
The segment path is desumed from the playlist path, recording a
relative path in the playlist while serving the file could lead
to misleading results.
2012-12-29 17:26:29 +01:00
Luca Barbato
d8fd06c37d avstring: add av_basename and av_dirname
Thread safe version of the common basename and dirname.
2012-12-29 17:26:22 +01:00
Michael Niedermayer
981baf742c lavfi: replace REGISTER_BUILTIN_FILTER() by REGISTER_FILTER_UNCONDITIONAL()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 15:37:05 +01:00
Michael Niedermayer
83d4a8442c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cosmetics: Prettyprint codec/format/filter registration files

Conflicts:
	libavcodec/allcodecs.c
	libavdevice/alldevices.c
	libavfilter/allfilters.c
	libavformat/allformats.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 14:27:38 +01:00
Michael Niedermayer
2a9443a110 Merge commit '69583bd3b1eba471366141c945030c163e073e02'
* commit '69583bd3b1eba471366141c945030c163e073e02':
  avfilter: Refactor unconditional filter registration
  build: Add rtpenc_chain extra config option
  configure: Add --disable-all command line option

Conflicts:
	libavfilter/allfilters.c
	libavformat/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 13:05:37 +01:00
Michael Niedermayer
ba34e56c0d Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: fix type of time_diff in waveform display
  ffplay: always display audio visualization if mode is set
  ffplay: hide cursor on no mouse movement
  ffplay: reset external clock to unknown on start
  ffplay: only drop frames if not in frame step mode
  ffplay: move frame step pause from the video thread to video_refresh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 04:34:27 +01:00
Michael Niedermayer
c5bea1b02b xtea: fix unused variable warning for config_small
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 03:37:46 +01:00
Michael Niedermayer
e0a99d5411 msmpeg4enc: fix possible use of uninitialized warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 03:07:45 +01:00
Michael Niedermayer
2fbc8ea08e hpel_motion_search: move code used for asserts under correct #if
This avoids compiler warnings about set but not used variables

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 03:07:45 +01:00
Michael Niedermayer
30872fa09b ivi_common: Fix use of uninitialized warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 03:07:45 +01:00
Michael Niedermayer
76e65a1b73 avs: silence "may be used uninitialized" warnings
We initialize the struct to 0 to also ensure any actual use of
the pointers in it will not lead to security issues.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-29 03:07:45 +01:00
Paul B Mahol
3f8ee30e63 mmfenc: use ff_raw_write_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 22:21:56 +00:00
Paul B Mahol
f18d2137d6 aiffenc: use ff_raw_write_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 22:06:39 +00:00
Paul B Mahol
8ad010a7e0 soxenc: use ff_raw_write_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 21:58:03 +00:00
Paul B Mahol
a4b62f36c7 soxdec: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 21:50:42 +00:00
Paul B Mahol
09401694db soxenc: use ffio_fill
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 21:48:07 +00:00
Paul B Mahol
a4912aa61e soxenc: use FFALIGN
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 21:37:08 +00:00
Michael Niedermayer
07abf13da4 h264: avoid a grayscale related if() in hl_decode_mb()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 21:01:54 +01:00
Marton Balint
92b50b71a1 ffplay: fix type of time_diff in waveform display
Fixes time diff overflow visible as showing the same few waveforms in a loop at
the end of file.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:01 +01:00
Marton Balint
ec89ea3022 ffplay: always display audio visualization if mode is set
Fixes ticket #1903.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:01 +01:00
Marton Balint
ef7f3b0870 ffplay: hide cursor on no mouse movement
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:00 +01:00
Marton Balint
0ca4e9f014 ffplay: reset external clock to unknown on start
Fixes a delay and initial frame drops on starting realtime streams with
external clock.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:01:00 +01:00
Marton Balint
4e33d8ebb3 ffplay: only drop frames if not in frame step mode
Fixes ticket #2053.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 20:00:07 +01:00
Marton Balint
97660b8b13 ffplay: move frame step pause from the video thread to video_refresh
This way we pause the video right after we displayed a new frame. Partially
fixes ticket #2053.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-28 19:59:46 +01:00
Diego Biurrun
c73c87b412 cosmetics: Prettyprint codec/format/filter registration files 2012-12-28 19:18:13 +01:00
Diego Biurrun
69583bd3b1 avfilter: Refactor unconditional filter registration 2012-12-28 19:18:13 +01:00
Diego Biurrun
5ad2f0bfb2 build: Add rtpenc_chain extra config option
Also fixes linking in various configs with only individual parts enabled
because the RTP muxer chaining code depends on the general RTP code,
which is now accounted for.
2012-12-28 19:18:13 +01:00
Diego Biurrun
844c68520e configure: Add --disable-all command line option
This option disables all programs, libraries and other parts of Libav
that get built as part of the compilation process.
2012-12-28 19:17:02 +01:00
Paul B Mahol
507956824c auenc: do not write invalid file size
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-28 16:29:22 +00:00
Michael Niedermayer
8afe168c78 vf_divtc: dont mix av_strdup and free
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 17:05:19 +01:00
Michael Niedermayer
baa5d6df77 vf_detc: dont mix av_strdup & free
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 17:04:54 +01:00
Michael Niedermayer
458afd2a0e vf_mp: fix 'discards const qualifier from pointer target type'
args are not supposed to be changed by filters even if the argument is
not marked as const.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 17:00:01 +01:00
Michael Niedermayer
33f15ab35d libavutil/samplefmt: Fix project name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 14:05:41 +01:00
Michael Niedermayer
0d4572a54b MAINTAINERS: s/mjpeg.c/mjpeg*.c/
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 13:04:44 +01:00
Stefano Sabatini
0156dd6530 lavf/segment: add segment_frames option
This is meant to address trac ticket #1483.
2012-12-28 11:17:22 +01:00
Stefano Sabatini
7a8face9fb lavf/segment: add reference_stream option 2012-12-28 10:57:02 +01:00
Michael Niedermayer
9e04e11e83 libpostproc: alloc a few bytes more in the temporary buffer
This avoids dering reading 4 bytes prior the buffer (1 byte can
be used)

Fixes Ticket2057

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 02:47:25 +01:00
Michael Niedermayer
f1185fbbec libpostproc: Fix off by 1 error in the C dering code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-28 01:48:40 +01:00
Michael Niedermayer
69db85c30c mjpegdec: Support 16bit DQT
Fixes Ticket2072

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-27 23:18:40 +01:00
Paul B Mahol
10a3fa8f31 build: fix g723_1 decoder dependency
g723_1 decoder needs celp_math.o because it calls ff_dot_product().

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-27 18:23:11 +00:00
Don Moir
64f4fb75c4 gifdec: fix transparent background color
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-27 18:10:25 +00:00
Michael Niedermayer
b61097fe0d mjpegdec: reset restart_count on progressive scans
Fixes Ticket2068

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-27 17:41:53 +01:00
Stefano Sabatini
ae2b51acd2 doc/encoders: clarify the direction of the quality setting parameters for libtheora 2012-12-27 15:47:15 +01:00
Stefano Sabatini
7e0676a715 doc/ffmpeg-formats: extend documentation for the probesize parameter 2012-12-27 15:47:15 +01:00
Stefano Sabatini
750382d5c8 ffmpeg: remove annoying logs and improve reporting in case of unavailable bitrate 2012-12-27 15:47:15 +01:00
Michael Niedermayer
b3f3fe3c28 MAINTAINERS: add libswresample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-27 12:15:59 +01:00
Rob Sykes
8d9a503313 docs: add soxr documentation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-27 12:13:17 +01:00
Rob Sykes
03d38ee207 soxr_resample: soxr API parameter rename
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-27 11:59:55 +01:00
Rob Sykes
f2957adb23 soxr_resample: Correct email address
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-27 11:58:16 +01:00
Clément Bœsch
ceee4407e3 lavfi/tile: small align cosmetics. 2012-12-26 21:32:38 +01:00
Clément Bœsch
4cd724daee lavfi/tile: remove usage of link->{cur,out}_buf. 2012-12-26 21:30:46 +01:00
Clément Bœsch
3b870f973e lavfi/scale: remove usage of link->cur_buf. 2012-12-26 21:30:45 +01:00
Clément Bœsch
a612e86ea6 lavfi/deshake: remove usage of link->cur_buf. 2012-12-26 21:30:45 +01:00
Clément Bœsch
5673a0102a lavfi/decimate: remove usage of link->cur_buf. 2012-12-26 21:30:45 +01:00
Clément Bœsch
33e0eb5109 lavfi/video: remove unused ff_inplace_start_frame(). 2012-12-26 21:30:45 +01:00
Michael Niedermayer
011169cd41 mjpegdec: handle the occurance of rstn emulation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 20:43:56 +01:00
Michael Niedermayer
5ff8ca1f04 mjpegdec: Handle RSTn in progressive jpegs
Fixes Ticket2003

Reviewed-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 20:43:20 +01:00
Michael Niedermayer
47e7f57a4b mjpegdec: factor handle_rstn() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 20:25:02 +01:00
Paul B Mahol
c46cfedf09 build: mp filter does not depend on postproc anymore
This fixes testprogs build target if libpostproc is disabled.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-26 19:14:07 +00:00
Michael Niedermayer
a2349dc3f0 vf_idet: fix type of stats
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 17:27:28 +01:00
Clément Bœsch
d155abd1fc lavfi/idet: remove unused assert include. 2012-12-26 17:17:36 +01:00
Clément Bœsch
a7f0af1b9a lavfi/idet: remove unecessary context assignment. 2012-12-26 17:17:36 +01:00
Clément Bœsch
43cbd4406e lavfi/idet: support named parameters.
The parameters are currently not documented in doc/filters.texi, but now
they at least appear in the automatic help.
2012-12-26 17:17:36 +01:00
Clément Bœsch
915d7487d7 lavfi/idet: remove unecessary poll_frame callback. 2012-12-26 17:17:36 +01:00
Michael Niedermayer
39d178806d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: initialize videodsp with correct pixel depth

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 15:19:35 +01:00
Michael Niedermayer
075eaf8d6a vc1dsp: fix the warning fix, make it work with --disable-asm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 14:24:31 +01:00
Stefano Sabatini
955c7c7bc6 doc/resampler: extend docs for min_comp and min_hard_comp options
Based on the text from the aresample filter docs.
2012-12-26 11:56:36 +01:00
Stefano Sabatini
e06c147581 lavfi/aresample: fix style
Improve overall consistency/improve readability.
2012-12-26 11:56:35 +01:00
Michael Niedermayer
b36745339d libswscale/swscale-test: fix some const correctness
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 03:14:59 +01:00
Michael Niedermayer
fceeac9847 vc1dsp: fix pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 03:00:35 +01:00
Michael Niedermayer
67c1acf234 lavc/utils: fix 'warning: missing braces around initializer'
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 01:53:45 +01:00
Michael Niedermayer
169dfe320d lcldec: fix zlib const pointer warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 01:37:38 +01:00
Michael Niedermayer
2ad1eb1907 imgconvert: fix 2 "discards const qualifier from pointer target type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 01:36:00 +01:00
Michael Niedermayer
2eab1a178c imgconvert: dont depend on default return type for get_color_type()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 01:34:26 +01:00
Michael Niedermayer
4f927542fb h264_direct: silence several warning: assignment from incompatible pointer type"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-26 01:23:19 +01:00
Janne Grunau
1f4ea4e068 mpegvideo: initialize videodsp with correct pixel depth
Fixes decoding of 9/10 bit per pixel h264 videos as reported in
https://bugzilla.libav.org/show_bug.cgi?id=404 .
2012-12-26 00:24:21 +01:00
Jean First
7fc73d9ab7 rmdec: fix compiler warning for uninitialized variables
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 23:54:34 +01:00
4c41fc88df mpegts: update AVProgram after pmt change
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 20:30:36 +01:00
Tomas Härdin
928727f951 mxfdec: Rescale audio stream duration from EditRate to SampleRate
Since 83cab07 audio stream time bases are based on SampleRate, not EditRate.
This fixes trac ticket #2029 and a few seeking issues.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 17:45:34 +01:00
Michael Niedermayer
a752b9b863 ffmpeg: use the new swr -async parameter instead of a set of parameters.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 17:22:14 +01:00
Michael Niedermayer
f9e55c0fed swr: support -async X as a simple way to do what ffmpeg -async X did
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 17:21:09 +01:00
Michael Niedermayer
0b980e57ac Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: fix greenish line on the right edge with some xv sizes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 16:36:57 +01:00
Hendrik Leppkes
8b6b3632fe vf_pp: add postproc to the library dependencys for avfilter when enabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 15:49:27 +01:00
Marton Balint
cf0c63d99a ffplay: fix greenish line on the right edge with some xv sizes
If the XV image linesize was different from the width, SDL would create an
overlay wider than the actually requested one. This causes a greenish line on
the right, because the rightmost texel is blended with unset data.  This patch
introduces a function which duplicates the rightmost texel to the unset space,
that way the blending will be done with duplicated border texels.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-12-25 13:54:07 +01:00
Michael Niedermayer
1be8d0fbda srt_probe: make buffer pointer const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 02:57:48 +01:00
Michael Niedermayer
9cb887ed37 dsputil_mmx: fix pointer type for emulated_edge_mc_func()
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 02:04:31 +01:00
Michael Niedermayer
f89f3d4a98 str_probe: make buffer related pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:55:22 +01:00
Michael Niedermayer
28b9099ac1 pva_probe: make buffer related pointers and function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:54:41 +01:00
Michael Niedermayer
59693ed96c mxf_probe: make buffer related pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:54:20 +01:00
Michael Niedermayer
c8e5efb496 mpc8_probe: make buffer related pointers and function arguments const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:51:59 +01:00
Michael Niedermayer
7a84664ffe mp3_read_probe: make buffer related pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:51:32 +01:00
Michael Niedermayer
9d95deef61 microdvd_probe: make buffer pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:50:58 +01:00
Michael Niedermayer
c3cb338955 mpegps_probe: make buffer related pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:50:14 +01:00
Michael Niedermayer
e1f9432644 loas_probe: make buffer pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:45:56 +01:00
Michael Niedermayer
29397c99e0 lmlm4_probe: make buffer pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:45:43 +01:00
Michael Niedermayer
23348647b2 ipmovie_probe: make buffer pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:44:59 +01:00
Michael Niedermayer
4fcf6aa7a3 flac_probe: make buffer pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:43:14 +01:00
Michael Niedermayer
658bd6db7b ac3_eac3_probe: mark buffer pointers const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:42:23 +01:00
Michael Niedermayer
d7e050b11d adts_aac_probe: mark buffer pointers as const
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-25 01:41:00 +01:00
Michael Niedermayer
ec40d15d82 oggdec: fix warning: assignment discards qualifiers from pointer target type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 22:37:24 +01:00
Michael Niedermayer
bd16f0a331 avfiltergraph: put variables used in #if 0 code themselfs under #if 0
Fixes unused variable warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 22:35:27 +01:00
Michael Niedermayer
70d5cd103a mcdec: suppress "warning: a/vst may be used uninitialized in this function"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 18:31:37 +01:00
Michael Niedermayer
e9c4f36c52 lavf/mpeg: suppress warning: lpcm_header_len may be used uninitialized in this function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 18:18:03 +01:00
Michael Niedermayer
7681b8e9a9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  wnv1: cosmetics, reformat
  xan: remove a trivially true if().
  ansi: do not depend on get_buffer() initializing the frame.
  zerocodec: remove an unused variable.
  zmbv: remove some pointless comments and empty lines

Conflicts:
	libavcodec/xan.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 16:20:07 +01:00
Michael Niedermayer
9dbedf331e Merge commit 'c6303f8d70c25dd6c6e6486c78bf99c9924e2b6b'
* commit 'c6303f8d70c25dd6c6e6486c78bf99c9924e2b6b':
  yop: simplify/sanitize the decoding loop
  c93: set palette_has_changed.
  bmp: cosmetics, reformat
  hlsenc: Don't duplicate a string constant

Conflicts:
	libavcodec/bmp.c
	tests/ref/fate/yop

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 15:48:02 +01:00
Michael Niedermayer
ba8e909c82 Merge commit '3193b13aa1e271f6d2dd68de67d448c08aef3c00'
* commit '3193b13aa1e271f6d2dd68de67d448c08aef3c00':
  hlsenc: Allocate enough space for the pattern string
  lavc: Correct the description of pkt_dts
  avfilter: Compile FIFO filters unconditionally

Conflicts:
	libavcodec/avcodec.h
	libavfilter/Makefile
	libavfilter/allfilters.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 15:29:15 +01:00
Michael Niedermayer
d69238e991 Merge commit 'f3298f12997eb4b7ad203766f768f92e3dd72a2a'
* commit 'f3298f12997eb4b7ad203766f768f92e3dd72a2a':
  Return proper error code after av_log_ask_for_sample()
  configure: cosmetics: Separate hwaccel dependencies from decoders/encoders
  oggdec: check memory allocation

Conflicts:
	configure
	libavcodec/pictordec.c
	libavformat/anm.c
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 15:09:58 +01:00
Michael Niedermayer
c6664242e0 Merge commit 'f5f1cf52240759208b42477e2157a7b4409ade10'
* commit 'f5f1cf52240759208b42477e2157a7b4409ade10':
  oggdec: K&R cosmetic formatting
  hlsenc: correctly report target duration

Conflicts:
	libavformat/oggdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 14:43:03 +01:00
Anton Khirnov
0a9132b84c wnv1: cosmetics, reformat 2012-12-24 09:18:19 +01:00
Anton Khirnov
51648da4dc xan: remove a trivially true if().
This function used to be shared with the xxan decoder, but that is not
true anymore.
2012-12-24 09:17:57 +01:00
Anton Khirnov
99e36ddd3e ansi: do not depend on get_buffer() initializing the frame.
The background changes from 128 (used by the default/cmdutils
get_buffer()) to 0. This looks more correct.
2012-12-24 09:17:45 +01:00
Anton Khirnov
261f0b14ed zerocodec: remove an unused variable. 2012-12-24 09:17:40 +01:00
Anton Khirnov
8adfacff5c zmbv: remove some pointless comments and empty lines 2012-12-24 09:17:34 +01:00
Anton Khirnov
c6303f8d70 yop: simplify/sanitize the decoding loop
Do not overwrite linesize set by get_buffer().

The last frame in the FATE test is not decoded anymore, since the file
is cut and a part of it is missing.
2012-12-24 09:16:51 +01:00
Anton Khirnov
f6e395e132 c93: set palette_has_changed. 2012-12-24 09:16:11 +01:00
Anton Khirnov
3eab600752 bmp: cosmetics, reformat 2012-12-24 09:15:30 +01:00
Michael Niedermayer
98b7a50a21 tiffdec: Fix runend handling
Fixes Ticket1999

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 04:35:12 +01:00
Michael Niedermayer
d4d8d4f786 rl2: return EOF on EOF
Fixes Ticket1947

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 02:51:51 +01:00
Michael Niedermayer
eeb111d364 Changelog: reword H264-MT entry
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-24 01:57:45 +01:00
Stefano Sabatini
86c6bf040b doc/filters: remove outdated comments
Audio API should not be considered unstable any longer, and mentioning
VHOOK is confusing, as it was removed 4 years ago.
2012-12-24 01:36:21 +01:00
Clément Bœsch
98dc25672f lavc/pthread: do not re-define _GNU_SOURCE if already defined.
This fixes the following warning with GCC:
    libavcodec/pthread.c:35:0: warning: _GNU_SOURCE redefined [enabled by default]
    <command-line>::0: note: this is the location of the previous definition

The reason of the presence of this flag is:
    % pkg-config --cflags sdl
    -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL
2012-12-24 00:54:06 +01:00
Clément Bœsch
00ebac6dfd doc: stop generating syntax.html.
Just like doc/eval.texi, this file is meant to be included from
ffmpeg-utils.texi, and not to be used as a standalone documentation.
2012-12-24 00:53:55 +01:00
Martin Storsjö
4a9f7d2bf9 hlsenc: Don't duplicate a string constant
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-24 00:02:48 +02:00
Stefano Sabatini
3193b13aa1 hlsenc: Allocate enough space for the pattern string
If s->filename doesn't contain any period/filename extension to strip
away, the buffer will be too small to fit both strings. This isn't
any buffer overflow since the concatenation uses av_strlcat with
the right buffer size.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-24 00:02:45 +02:00
Paul B Mahol
4f5440adc2 NIST SPHERE demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-23 21:22:43 +00:00
Paul B Mahol
98fed176cf alsdec: improve warning message when invalid channel position is found
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-23 21:17:44 +00:00
Clément Bœsch
57e99ea44d doc/ffserver: fix a few typo. 2012-12-23 20:25:28 +01:00
Martin Storsjö
0940580adb lavc: Correct the description of pkt_dts
The description as updated in 6e5c44b0f made it sound like it is
handled exactly like the pts, which it is not. Clarify that it
is the packet that triggered returning the frame instead of just
the last avpacket (in case of frame threading, it won't be the
dts of the last packet).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-23 20:52:21 +02:00
Michael Niedermayer
d33c939bac docs: add aresample/async example
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 19:47:51 +01:00
Michael Niedermayer
3e15775333 x86/ac3dsp_init: try to workaround ICC failure.
The asm code is not valid for older compilers as it uses too many
operands, ICC on x86_32 seems affected by this.
This patch disables the affected code for ICC on x86_32 and should
make it compileable again.
A better fix would be to use fewer operands or to change this code
to yasm, later is being worked on AFAIK so this is a temporary
solution.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 19:27:19 +01:00
Clément Bœsch
768c47ec37 lavfi: remove mp=pp filter.
Native pp filter is available.

postproc dependency is also dropped from mp wrapper since it was the
only filter needing that dependency.
2012-12-23 19:03:36 +01:00
Clément Bœsch
9b8de93036 lavfi: add pp filter.
Ported from MPlayer. Original author is A'rpi, with various
contributions from Michael Niedermayer. The original documentation was
mostly written by Diego Biurrun. See the MPlayer history for full
credits.

The filter is under GPL like the original filter, even if it differs
quite a lot. There is not much point in making it LGPL since pp is under
GPL.
2012-12-23 19:03:36 +01:00
Clément Bœsch
72380d15ae fate/mp=pp: remove dering subfilter test.
This subfilter gives a different output when linesize and width are
differents.
2012-12-23 19:03:36 +01:00
Clément Bœsch
e36ba9884f fate/mp=pp: expand subfilters with dr (dering) in them.
Commands are equivalent at this point.
2012-12-23 19:03:36 +01:00
Diego Biurrun
5af53731d9 avfilter: Compile FIFO filters unconditionally
Building libavfilter without that functionality makes little sense.
2012-12-23 18:57:01 +01:00
Diego Biurrun
f3298f1299 Return proper error code after av_log_ask_for_sample() 2012-12-23 18:56:56 +01:00
Diego Biurrun
ed40b6bf07 configure: cosmetics: Separate hwaccel dependencies from decoders/encoders
Also move mpegvideo_select statement to the correct position.
2012-12-23 18:51:52 +01:00
Michael Niedermayer
85e83e7a58 doc/ffmpeg-resampler: mention that the options also work with the aresample filter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 18:31:33 +01:00
Piotr Bandurski
9bbfcc2675 rmenc: write correct bytes per minute
improves playback of ac3 in RealPlayer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 16:08:10 +01:00
Piotr Bandurski
76f126ba2e rmdec: set bit rate for ra3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 15:59:41 +01:00
Michael Niedermayer
8e09e183fc Merge remote-tracking branch 'qatar/master'
* qatar/master:
  8bps: cosmetics
  aasc: cosmetics, reformat
  ansi: remove an extra return
  asvdec: cosmetics, reformat
  aura: cosmetics, reformat

Conflicts:
	libavcodec/aasc.c
	libavcodec/asvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 15:03:15 +01:00
Michael Niedermayer
def18e5470 Merge commit 'b047c68783aa4042b322af7af043b643d5daf09c'
* commit 'b047c68783aa4042b322af7af043b643d5daf09c':
  4xm: don't rely on get_buffer() initializing the frame.
  huffyuv: split encoder and decoder into separate files.
  lavc: make pkt_{p,d}ts doxy less confusing

Conflicts:
	libavcodec/Makefile
	libavcodec/huffyuv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 14:53:21 +01:00
Michael Niedermayer
2f9903f662 Merge commit '418693bdc5edad72b0d055f741931612d797eb05'
* commit '418693bdc5edad72b0d055f741931612d797eb05':
  lavc: rewrite and extend AVFrame doxy
  opt: avoid segfault in av_opt_next() if the class does not have an option list
  ttadec: fix last frame handling when seeking
  alacdec: do not be too strict about the extradata size

Conflicts:
	libavcodec/alac.c
	libavcodec/avcodec.h
	libavcodec/tta.c
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 13:32:40 +01:00
Luca Barbato
ba064ebe48 oggdec: check memory allocation 2012-12-23 12:19:15 +01:00
Luca Barbato
f5f1cf5224 oggdec: K&R cosmetic formatting 2012-12-23 12:19:08 +01:00
Luca Barbato
7e98956e72 hlsenc: correctly report target duration 2012-12-23 12:13:41 +01:00
Anton Khirnov
b6d7d4efae 8bps: cosmetics
Remove some pointless comments and empty lines.
2012-12-23 11:17:53 +01:00
Anton Khirnov
b047c68783 4xm: don't rely on get_buffer() initializing the frame. 2012-12-23 11:17:53 +01:00
Anton Khirnov
c64cf2a37b aasc: cosmetics, reformat 2012-12-23 11:17:53 +01:00
Anton Khirnov
808b2227d7 ansi: remove an extra return 2012-12-23 11:17:53 +01:00
Anton Khirnov
c3a76c3dec asvdec: cosmetics, reformat 2012-12-23 11:17:53 +01:00
Anton Khirnov
bdfa24514e aura: cosmetics, reformat 2012-12-23 11:17:53 +01:00
Anton Khirnov
2ca5ca2957 huffyuv: split encoder and decoder into separate files. 2012-12-23 11:17:49 +01:00
Anton Khirnov
6e5c44b043 lavc: make pkt_{p,d}ts doxy less confusing 2012-12-23 10:35:32 +01:00
Anton Khirnov
418693bdc5 lavc: rewrite and extend AVFrame doxy 2012-12-23 10:35:27 +01:00
Michael Niedermayer
f9d8658d67 libpostproc: fix leak of 2kb
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 04:55:14 +01:00
Michael Niedermayer
ca9eb9305a mpegvideo_enc: fix edge emulation of dimension%16 != 0 for YUV != 420
Fixes Ticket2041

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 04:20:18 +01:00
James Darnley
707af43d19 lavf/y4m: spellcheck
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 01:01:17 +01:00
Piotr Bandurski
2e6bd22bbf rmdec: set bit rate for ra4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-23 00:10:49 +01:00
Michael Niedermayer
bc5d6e4b96 docs: point to aresample from asyncts docs
"Fixes" Ticket2036

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 22:33:57 +01:00
Stefano Sabatini
60c801c679 lavf/hlsenc: reuse pattern string, rather than redefining it
Improve robustness.
2012-12-22 22:02:06 +01:00
Stefano Sabatini
005b360b9c lavf/hlsenc: fix basename size computation off-by-one bug 2012-12-22 22:02:06 +01:00
Justin Ruggles
d02202e08a opt: avoid segfault in av_opt_next() if the class does not have an option list
CC: libav-stable@libav.org
2012-12-22 15:43:27 -05:00
Justin Ruggles
5778299c7e ttadec: fix last frame handling when seeking
Using a frame count, as is done currently, does not work at all with
seeking. Instead, when the number of samples in the final frame has
been decoded, we check if only the 32-bit CRC is remaining. If so, we
assume that it is the final frame.

There is no longer a need to keep total_frames in TTAContext.
2012-12-22 14:45:35 -05:00
Johannes Nixdorf
e749b5dd98 configure: consider using /usr/include/openjpeg-1.5 when searching for openjpeg
Beginning with version 1.5.1 openjpeg defaults to install its headers to
/usr/include/openjpeg-${major}.${minor} instead of /usr/include without
providing a compatibility symlink making the old test fail.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 18:55:39 +01:00
Michael Niedermayer
985aa0be82 h264: Detect POC inconsistencies and try to handle them reasonably
Improves the file from Ticket2050

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 18:35:43 +01:00
Justin Ruggles
68a04b0cce alacdec: do not be too strict about the extradata size
Sometimes the extradata has duplicate atoms, but that shouldn't prevent
decoding. Just ensure that it is at least 36 bytes as a sanity check.

CC: libav-stable@libav.org
2012-12-22 12:18:41 -05:00
Stefano Sabatini
5715d67bae Changelog: add entry about the new documentation layout design 2012-12-22 17:58:56 +01:00
Clément Bœsch
1330d1d049 doc/filters: reword introduction sentence of aformat. 2012-12-22 16:25:15 +01:00
Clément Bœsch
ba5ea7db99 doc/filters: simplify escaping in aformat.
Escaping the '=' is not necessary, and quoting the arguments allow to
remove the comma escaping as well.
2012-12-22 16:25:15 +01:00
Stefano Sabatini
0824aa6743 doc/filters: add overlay daisy-chaining example 2012-12-22 16:15:53 +01:00
Stefano Sabatini
35b97ad7c0 doc/filters: rework and itemize examples for the overlay filter 2012-12-22 16:15:13 +01:00
Stefano Sabatini
bde1e8bf06 lavfi/overlay: make use of av_opt_set_from_string()
Simplify.
2012-12-22 16:14:23 +01:00
Stefano Sabatini
5e402a5319 lavfi/overlay: switch to filter_frame API 2012-12-22 16:12:26 +01:00
Michael Niedermayer
98256622a6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flac: only set channel layout if not previously set or on channel count change
  prepare 9_beta3 release

Conflicts:
	RELEASE

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 13:25:53 +01:00
Justin Ruggles
aef5150719 flac: only set channel layout if not previously set or on channel count change
Fixes Bug 402
2012-12-22 01:35:28 -05:00
Michael Niedermayer
3f72dbe462 ffplay: fix another use of context instead of frame parameters
Fixes Ticket2050

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 03:41:55 +01:00
Michael Niedermayer
5ffb5e7a2d 4xm: check the correct stream, fix fate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 03:41:55 +01:00
Paul B Mahol
44fe118e0a lavc/4xm: use bytestream2_get_bytes_left
Also replace relevant bytestream2 functions with unchecked variants due
code that already checks for overreads.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-22 00:27:29 +00:00
Stefano Sabatini
6b50df6b3a doc/filters: rename reference to movie filter from "src_movie" to "movie"
Should be less confusing.
2012-12-22 01:03:46 +01:00
Michael Niedermayer
e16bac7b33 videodsp: Fix project name
These are all part of splited out dsp utils from FFmpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 00:58:08 +01:00
Michael Niedermayer
90eaa989f1 x86/videodsp_init: Add back lost author attribution
Code originates from:
910b9f30 libavcodec/dsputil.c            (David Conrad        2010-05-27 04:39:27 +0000  334) void ff_emulated_edge_mc(uint8_t *buf, const uint8_t *src, int linesize, int block_w, int block_h,
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  335)                                     int src_x, int src_y, int w, int h){
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  336)     int x, y;
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  337)     int start_y, start_x, end_y, end_x;
b5a093b3 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-25 20:22:36 +0000  338)
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  339)     if(src_y>= h){
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  340)         src+= (h-1-src_y)*linesize;
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  341)         src_y=h-1;
225f9c44 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-15 00:25:53 +0000  342)     }else if(src_y<=-block_h){
225f9c44 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-15 00:25:53 +0000  343)         src+= (1-block_h-src_y)*linesize;
225f9c44 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-15 00:25:53 +0000  344)         src_y=1-block_h;
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  345)     }
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  346)     if(src_x>= w){
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  347)         src+= (w-1-src_x);
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  348)         src_x=w-1;
225f9c44 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-15 00:25:53 +0000  349)     }else if(src_x<=-block_w){
225f9c44 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-15 00:25:53 +0000  350)         src+= (1-block_w-src_x);
225f9c44 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-15 00:25:53 +0000  351)         src_x=1-block_w;
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  352)     }
93a21abd libavcodec/mpegvideo.c          (Michael Niedermayer 2002-07-14 18:37:35 +0000  353)
b8a78f41 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-11-10 11:46:59 +0000  354)     start_y= FFMAX(0, -src_y);
b8a78f41 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-11-10 11:46:59 +0000  355)     start_x= FFMAX(0, -src_x);
b8a78f41 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-11-10 11:46:59 +0000  356)     end_y= FFMIN(block_h, h-src_y);
b8a78f41 libavcodec/mpegvideo.c          (Michael Niedermayer 2002-11-10 11:46:59 +0000  357)     end_x= FFMIN(block_w, w-src_x);

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 00:58:08 +01:00
Michael Niedermayer
28286a63d0 videodsp_template.c: fix year
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-22 00:58:08 +01:00
Stefano Sabatini
e64a7f2c78 doc/default.css: use ffmpeg.org website CSS
The attribute container of the top-level div is changed from "class" to
"id" to match the website CSS.

Improve consistency between website docs and local documentation style.
2012-12-22 00:38:48 +01:00
Stefano Sabatini
042c2a1af8 doc: move HTML CSS to a dedicated file default.css 2012-12-22 00:38:41 +01:00
Paul B Mahol
185d1f3bfc lavfi: declare arrays that never change as static const
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-21 22:38:59 +00:00
Michael Niedermayer
165be91c2b img2enc: fix typo
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 22:56:13 +01:00
Michael Niedermayer
2f436b1fce lavc: Warn in case the set bitrate is very low
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 22:50:57 +01:00
rogerdpack
d828bae9d2 better failure message for img2enc
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 21:18:12 +01:00
Piotr Bandurski
0e3a4da106 yop: set video bit rate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 21:18:12 +01:00
Paul B Mahol
a8ebb77493 lavfi/swapuv: use FFSWAP
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-21 19:04:11 +00:00
Carl Eugen Hoyos
a3a22c2178 Revert "Always write all colours for animated gif files, including transparent ones."
It breaks some opaque samples.

This reverts commit d4fdaafdb7.
2012-12-21 18:18:39 +01:00
Carl Eugen Hoyos
0fb79f30db Support H264 over video4linux2.
Tested-by: Val Malykh
2012-12-21 18:12:29 +01:00
Michael Niedermayer
1b598e6776 Merge commit 'c7d4de3d730473167e31cf765e0333c965f934d3'
* commit 'c7d4de3d730473167e31cf765e0333c965f934d3':
  rtpdec_vp8: Don't return known-broken packets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 17:51:31 +01:00
Michael Niedermayer
bb3420d88e Merge commit '90c784cc13f6bf21a8eb69f3b88b50c7a70f6c59'
* commit '90c784cc13f6bf21a8eb69f3b88b50c7a70f6c59':
  rtpdec: Pass the sequence number to depacketizers
  configure: Make avconv depend on null, anull and resample filters

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 17:46:43 +01:00
Michael Niedermayer
be2c0adc96 Merge commit '69f086e0f90f23d89e5739b099a4f984fa6a7885'
* commit '69f086e0f90f23d89e5739b099a4f984fa6a7885':
  build: avfilter: Remove duplicate compilation entry for vf_scale

Conflicts:
	libavfilter/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 17:39:03 +01:00
Michael Niedermayer
d27edc038a Merge commit '511cf612ac979f536fd65e14603a87ca5ad435f3'
* commit '511cf612ac979f536fd65e14603a87ca5ad435f3':
  miscellaneous typo fixes

Conflicts:
	libavcodec/4xm.c
	libavcodec/lagarith.c
	libavcodec/parser.c
	libavcodec/ratecontrol.c
	libavcodec/shorten.c
	libavcodec/vda_h264.c
	libavformat/dvenc.c
	libavformat/wtv.c
	tools/patcheck

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 17:32:52 +01:00
Michael Niedermayer
a41bf09d9c Merge commit '6906b19346ae8a330bfaa1c16ce535be10789723'
* commit '6906b19346ae8a330bfaa1c16ce535be10789723':
  lavc: add missing files for arm
  lavc: introduce VideoDSPContext

Conflicts:
	configure
	libavcodec/arm/dsputil_init_armv5te.c
	libavcodec/dsputil.c
	libavcodec/dsputil.h
	libavcodec/dsputil_template.c
	libavcodec/h264.c
	libavcodec/mpegvideo.h
	libavcodec/mpegvideo_enc.c
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 17:18:43 +01:00
Reinhard Tartler
9378be9f32 prepare 9_beta3 release 2012-12-21 15:16:33 +01:00
Paul B Mahol
fb3f28ee28 alsdec: cosmetics after previous commit
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-21 14:14:57 +00:00
Paul B Mahol
ae27b70b9d alsdec: channel sorting
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-21 14:11:12 +00:00
Michael Niedermayer
29707f5ba6 Merge commit 'a925f723a915bc0255e2673f8817af5212131763'
* commit 'a925f723a915bc0255e2673f8817af5212131763':
  rtp: Don't read priv_data unless it is allocated
  flvenc: Check whether seeking back to the header succeeded
  sapenc: Pass the title on to the chained muxers

Conflicts:
	libavformat/flvenc.c
	libavformat/sapenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 14:06:42 +01:00
Martin Storsjö
c7d4de3d73 rtpdec_vp8: Don't return known-broken packets
This is built on the assumption that the first partition of each
VP8 packet is essential for decoding any later packet - if this
partition is broken/missed, the arithmetic coder gets out of sync
and decoding the bitstream in further packet ends up with total
garbage. If packets of a frame are lost, make sure the first
partition is intact (return only this part of the packet, nothing
else), otherwise stop returning data until the next keyframe is
received.

Alternatively, one would simply not return any packets at all
until the next keyframe, if packet loss is detected.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-21 14:14:47 +02:00
Martin Storsjö
90c784cc13 rtpdec: Pass the sequence number to depacketizers
This allows depacketizers to figure out if packets have been lost.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-21 14:14:40 +02:00
Michael Niedermayer
63753186cc lavf: Remove "Adjusting PTS forward" code
it causes problems (incorrectly detect TS discontinuities)
 with a brokan TS file (test-audio-broken.ts)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 05:12:05 +01:00
Paul B Mahol
cfa530034f gifdec: remove dead store
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-21 00:33:14 +00:00
Michael Niedermayer
230bef0a89 ffplay: fix handling of resolution changes with h264-mt
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-21 00:50:47 +01:00
Carl Eugen Hoyos
9eca649a92 Fix compilation with --disable-everything --enable-muxer=mov. 2012-12-21 00:27:34 +01:00
Diego Biurrun
0a0e340f5b configure: Make avconv depend on null, anull and resample filters
Building avconv without that functionality makes little sense.
2012-12-21 00:21:53 +01:00
Diego Biurrun
69f086e0f9 build: avfilter: Remove duplicate compilation entry for vf_scale
vf_scale should not be unconditionally compiled even if disabled.
2012-12-21 00:18:34 +01:00
Diego Biurrun
511cf612ac miscellaneous typo fixes 2012-12-21 00:18:34 +01:00
Stefano Sabatini
340b7caf54 lavf/hlsenc: provide some feedback in case of invalid basename 2012-12-21 00:07:21 +01:00
Stefano Sabatini
28b96efab5 lavf/hlsenc: fix minor grammar inconsistencies in the option help messages 2012-12-21 00:07:13 +01:00
Stefano Sabatini
b448677e6e doc: remove inclusion of libav* documentation in tools
This shrinks the tool manuals to a manageable size. Relevant manuals are
referenced in the "See Also" chapter.

Overall documentation inclusion should still be possible through the use
of a conditional variable set during configuration time, if someone feels
the need for a huge-wall-of-text-fashioned manual.
2012-12-20 23:48:23 +01:00
Stefano Sabatini
ca3327d56f doc/ffmpeg-formats: include metadata chapter
The metadata muxer/demuxer belongs to the formats documentation.
2012-12-20 23:46:56 +01:00
Carl Eugen Hoyos
d4fdaafdb7 Always write all colours for animated gif files, including transparent ones.
This fixes the colour of the transparent background (as seen with ffplay),
and makes the background of some non-keyframes transparent that was
incorrectly shown as opaque for some samples.
2012-12-20 23:05:42 +01:00
Paul B Mahol
9321e93502 gifdec: fix invalid write in gif_copy_img_rect
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-20 17:56:52 +00:00
Paul B Mahol
c004de0b1c gifdec: fix invalid write in giff_fill_rect
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-20 17:46:05 +00:00
Michael Niedermayer
103410d67e ffmpeg_opt: fix recording time in->out carryover.
This should fix valgrind complaints.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 17:45:43 +01:00
Nicolas George
c7a1239bf9 lavfi/af_aconvert: update audio->channels. 2012-12-20 17:01:35 +01:00
Piotr Bandurski
17714adbf8 tiffdec: support LZW compression with inverted FillOrder 2012-12-20 15:38:52 +00:00
Clément Bœsch
217bdd08e3 lavf/srtdec: reindent after previous commits. 2012-12-20 16:13:53 +01:00
Clément Bœsch
6c26fc7704 lavf/srtenc: honor subtitle position side data. 2012-12-20 16:13:52 +01:00
Clément Bœsch
1dab8d9157 lavf/srtdec: switch to FFDemuxSubtitlesQueue API. 2012-12-20 16:13:52 +01:00
Clément Bœsch
0072116ccb lavf: split packets before muxing.
After demuxing, data and side are merged. Before decoding, they are
split. Encoder will perform with data and side split. This means that a
muxer can receive split data (after encoding) but also merged data (if
called directly after demuxing). This commit makes sure data and side
are split for the muxer.
2012-12-20 16:13:52 +01:00
Piotr Bandurski
52f2176366 aiffenc: set correct number of bits foru8 in aiff
with this change QuickTime is able to play u8 aiff file generated by FFmpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 16:05:30 +01:00
Luca Barbato
6906b19346 lavc: add missing files for arm
Across the many retouches those did not make the main commit.
2012-12-20 14:07:23 +01:00
Ronald S. Bultje
8c53d39e7f lavc: introduce VideoDSPContext
Move some functions from dsputil. The idea is that videodsp contains
functions that are useful for a large and varied set of video decoders.
Currently, it contains emulated_edge_mc() and prefetch().

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-20 13:40:45 +01:00
Martin Storsjö
a925f723a9 rtp: Don't read priv_data unless it is allocated
This makes all users of rtpenc_chain (rtsp muxer, sapenc, mov
rtp hinting) work again, broken since 8034130e0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-20 14:25:49 +02:00
Nicolas George
0146c1f0f1 lavfi: remove init and check of rate and layout.
The sample rate and channel layout are negotiated and set
by the filter graph system.
2012-12-20 13:03:42 +01:00
Nicolas George
5033a1af17 lavfi/buffersrc: remove init of rate and layout.
The sample rate and channel layout are negotiated and set
by the filter graph system, the filters must not set them.
2012-12-20 13:03:42 +01:00
Nicolas George
34de47aa35 lavfi: add an accessor for ref->audio->channels. 2012-12-20 13:03:41 +01:00
Nicolas George
238edd2fe3 lavfi: add a channels field to AVFilterLink.
Also: fix af_pan and af_aresample, that forgot to update
audio->channels.
2012-12-20 13:03:41 +01:00
Michael Niedermayer
a9275b4f69 h264: Fix code to also handle pix format changes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 12:56:47 +01:00
Michael Niedermayer
41135b7f64 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: add option for dithering during sample format conversion to s16
  mpeg12: do not decode extradata more than once.

Conflicts:
	libavcodec/mpeg12.c
	libavcodec/mpeg12.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 12:18:28 +01:00
Michael Niedermayer
40ea343866 Merge commit 'c661cb6672af5ebcb900ec8766b24761bd2ab011'
* commit 'c661cb6672af5ebcb900ec8766b24761bd2ab011':
  cmdutils: pass number of groups to split_commandline().
  mov: handle h263 and flv1 for codec_tag 'H','2','6','3'
  h264: fix sps parsing for SVC and CAVLC 4:4:4 Intra profiles

Conflicts:
	libavcodec/h264_ps.c
	libavformat/isom.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 12:06:15 +01:00
Björn Axelsson
1eaff98c83 flvenc: Check whether seeking back to the header succeeded
The FLV muxer tries to update the header in write_trailer, which is
impossible if writing to a pipe or network stream. Don't write header
data if seeking to the header fails.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-20 12:37:42 +02:00
Jernej Virag
e30e8e311e sapenc: Pass the title on to the chained muxers
This makes sure it ends up in the SDP, providing a proper session name
in the SAP announcements.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-20 12:37:34 +02:00
Clément Bœsch
174c483e2e lavfi/select: fix compilation with avcodec disabled. 2012-12-20 05:17:36 +01:00
James Almer
974ac57e83 astenc: Remove two AVRationals with denominator 1
They are completely superfluous when using av_rescale_q_rnd().
Call av_rescale_rnd() using what used to be the numerators instead.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 05:05:55 +01:00
Michael Niedermayer
8525fa7c2c h264: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 04:22:21 +01:00
Michael Niedermayer
a46c565796 ffmpeg_opt: fix pointer types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 04:21:29 +01:00
Michael Niedermayer
73db0bf1b0 mpegvideo: increase scratchpad sizes
These where reduced in f1d8763a02
and this change can cause out of array accesses.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 03:58:13 +01:00
Clément Bœsch
53fa6f5863 doc/general: sort subtitles formats. 2012-12-20 03:55:16 +01:00
Clément Bœsch
e5e5664ca0 fate: add and fix subtitles dependencies. 2012-12-20 03:50:34 +01:00
Michael Niedermayer
7e90053822 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpegvideo: increase edge_emu_buffer size for VC1
  lavc: merge latest x86inc.asm fixes with x264

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 02:51:35 +01:00
Michael Niedermayer
1667152a9c Merge commit 'acb571c89a065d943163c11efb46de35774f1909'
* commit 'acb571c89a065d943163c11efb46de35774f1909':
  avcodec: bump minor for adaptive h264 frame-mt
  avconv: pass the actually selected decoder to filter_codec_opts().

Conflicts:
	Changelog
	ffmpeg_opt.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 02:44:22 +01:00
Michael Niedermayer
ba4bcb191a cmdutils: implement debug/fdebug log level update differently.
The old implementation is no longer possibly due to limitations
of the new command line parser.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 02:38:18 +01:00
Michael Niedermayer
af4b1c02ac Merge commit '77bd1bc73a1946b0f0ce09a7cbb242a65e138d06'
* commit '77bd1bc73a1946b0f0ce09a7cbb242a65e138d06':
  avconv: use new options parser.

Conflicts:
	ffmpeg.c
	ffmpeg.h
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-20 02:38:02 +01:00
Justin Ruggles
b2fe6756e3 lavr: add option for dithering during sample format conversion to s16 2012-12-19 18:52:54 -05:00
Clément Bœsch
52b866471e doc/faq: move filter links to the ffmpeg-filters.html page. 2012-12-20 00:36:08 +01:00
Clément Bœsch
521a963a7d doc/faq: improve concatenation entry. 2012-12-20 00:36:08 +01:00
Clément Bœsch
cb0881c794 ffmpeg: use GROW_ARRAY in opt_map_channel. 2012-12-19 22:57:35 +01:00
Michael Niedermayer
61bc3d80e9 Merge commit '0ec1642b60a5b1a4d913e2b9e3899173dff77e7a'
* commit '0ec1642b60a5b1a4d913e2b9e3899173dff77e7a':
  cmdutils: don't log an error in opt_default().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 22:47:40 +01:00
Michael Niedermayer
33f9b2436a Merge commit '8c9af5b2051b9927f845c7afdfeb30b82670ee77'
* commit '8c9af5b2051b9927f845c7afdfeb30b82670ee77':
  cmdutils: add a commandline pre-parser.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 22:38:04 +01:00
Anton Khirnov
5823686261 mpeg12: do not decode extradata more than once.
Fixes CVE-2012-2803.

CC: libav-stable@libav.org
2012-12-19 22:32:54 +01:00
Michael Niedermayer
465c7de792 Merge commit 'a01c02bcff755a7891f777706b27452203aac71e'
* commit 'a01c02bcff755a7891f777706b27452203aac71e':
  cmdutils: split parse_option().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 22:24:54 +01:00
Anton Khirnov
c661cb6672 cmdutils: pass number of groups to split_commandline().
This makes the code simpler and avoids mixing designated and
non-designated initializers in a potentially unsafe way in avconv.
2012-12-19 22:13:41 +01:00
Michael Niedermayer
330983b728 Merge commit '10bca66101b79954512cd9d8ee20c3bc4513adf3'
* commit '10bca66101b79954512cd9d8ee20c3bc4513adf3':
  cmdutils: add a macro to simplify grow_array() calls.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 22:04:03 +01:00
Michael Niedermayer
f61498e1df Merge commit '9e696d2e5ffaa763c564682ec18c3b51b3e5fccc'
Merge only for metadata, functionality had been previously integrated.

* commit '9e696d2e5ffaa763c564682ec18c3b51b3e5fccc':
  h264: support frame parameter changes during frame-mt

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:59:33 +01:00
Michael Niedermayer
ca4dd3810e h264: use must_reinit to simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
af0fafcb6f h264: decode_update_thread_context() copy parameter sets before using them
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
e33811bd26 h264: remove reschange blocking
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
c2dfb1e37c h264: support frame size changes with multi threading
Based on code by Janne Grunau

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
7e6c68394f ffmpeg_filter: use frame instead of decoder context pixel format
prevents regressions from h264-mt frame size changing code

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
04a530f7d3 ffmpeg_filter: use frame dimensions instead of decoder context dimensions.
avoids regression from the h264-mt frame size change code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
8ea4a5533f h264: move h264_set_parameter_from_sps() call up
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
afc03268b4 h264: move list_count and current_slice reset to flush_change()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
971c469a0d h264: split flush_change() out of flush_dpb()
Based on a patch by Janne Grunau
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Michael Niedermayer
25a0af51da h264: factor get_pixel_format() out
Based on patch by Janne Grunau

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 21:46:11 +01:00
Paul B Mahol
76877beada au: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-19 20:16:35 +00:00
Clément Bœsch
a1d14336d3 pp: fix a few typo in the template. 2012-12-19 17:59:25 +01:00
Paul B Mahol
d85854b269 pvfdec: drop pointless casting of buffer in ff_get_line()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-19 15:55:39 +00:00
Michael Niedermayer
642a655f7d Merge commit 'f1d8763a02b5fce9a7d9789e049d74a45b15e1e8'
* commit 'f1d8763a02b5fce9a7d9789e049d74a45b15e1e8':
  mpegvideo: allocate scratch buffers after linesize is known

Conflicts:
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 15:44:59 +01:00
Janne Grunau
bb2bab92e7 mov: handle h263 and flv1 for codec_tag 'H','2','6','3'
The sample in https://bugzilla.libav.org/show_bug.cgi?id=393 and
samples/F4V/H263_NM_f.mp4 both have codec_tag H263 for different
codecs. H263 is apparently used by Flash Media Server for Sorensen
Spark videos.

Patch based on commit 5442083b1c by
Carl Eugen Hoyos. Fixes bug 393.
2012-12-19 14:50:14 +01:00
Michael Niedermayer
e84194f060 Merge commit 'ed2d7d5868a4a5d914f1e5488d63ea696a3b2937'
* commit 'ed2d7d5868a4a5d914f1e5488d63ea696a3b2937':
  ff_h264_direct_ref_list_init: fix B slice check.
  h264: increase dist_scale_factor for up to 32 references

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 14:39:30 +01:00
Michael Niedermayer
af804dbe9e Merge commit '523c7bd23c781aa0f3a85044896f5e18e8b52534'
* commit '523c7bd23c781aa0f3a85044896f5e18e8b52534':
  misc typo, style and wording fixes

Conflicts:
	libavcodec/options_table.h
	libavutil/pixfmt.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 14:28:58 +01:00
Victor Lopez
1c8bf3bfed h264: fix sps parsing for SVC and CAVLC 4:4:4 Intra profiles
Fixes bug 396.

CC: libav-stable@libav.org
2012-12-19 13:40:48 +01:00
Clément Bœsch
80a9297b71 doc: remove mention of fifo filter in the introduction.
It's confusing and not necessary, especially in the introduction.
2012-12-19 12:58:52 +01:00
Stefano Sabatini
022e118e3f lavfi/setpts: enable debug logs, and improve/extend debug messages 2012-12-19 11:49:54 +01:00
Carl Eugen Hoyos
ec4a084581 Show underscores in av_get_codec_tag_string(). 2012-12-19 10:01:07 +01:00
Stefano Sabatini
c5d7c7d33b doc: extend "See Also" chapters in library manuals
In particular, make "See Also" chapter rendered in HTML output.
2012-12-19 09:33:44 +01:00
Stefano Sabatini
9b323a9b95 doc: extend "See Also" chapters in component manuals
In particular, make "See Also" chapter rendered in HTML output.
2012-12-19 09:33:44 +01:00
Stefano Sabatini
9d6517aa67 doc: extend "See Also" chapter rendering for ff* tools
Add more references, and generate alternative variants for HTML and POD
output. In particular, this allows to render a "See Also" chapter in the
HTML output.
2012-12-19 09:33:44 +01:00
Stefano Sabatini
c2ac647710 doc: rework synopsis section for ff* tools
Fix syntax, remove pointless introductory sentence, improve overall
consistency.
2012-12-19 09:33:44 +01:00
Stefano Sabatini
461716d3bf doc: use a common authors.texi file blurb
Factorize.
2012-12-19 09:33:43 +01:00
Stefano Sabatini
ca3d786227 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.
2012-12-19 09:33:04 +01:00
Janne Grunau
45635885e4 mpegvideo: increase edge_emu_buffer size for VC1
The VC1 decoder uses edge_emu_buffer simultaneously for luma and chroma
and needs more space. That was not a problem before f1d8763a02
since the size for edge_emu_buffer was always calculated with 2 byte per
pixel since the linesize was not known.

Fixes occasionally fate errors in vc1_sa10143.
2012-12-19 07:57:22 +01:00
Ronald S. Bultje
a34d9ad969 lavc: merge latest x86inc.asm fixes with x264
Unbreak NASM support.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-19 07:27:33 +01:00
Michael Niedermayer
1166fc07a2 utils: fix duration calculation for strange_duration_example.ts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 04:16:15 +01:00
Clément Bœsch
de2022c5dd lavfi/gradfun: small align cosmetics. 2012-12-19 03:22:58 +01:00
Clément Bœsch
fea6f5e14d doc/filters: reformat and rework gradfun.
Note that examples are changed.
2012-12-19 03:16:43 +01:00
Clément Bœsch
526e2415bd lavfi/gradfun: support named options.
This breaks usage for out-of-range values.
2012-12-19 03:13:26 +01:00
Clément Bœsch
ca83e6ce26 fate: re-enable lavfi gradfun filter test. 2012-12-19 03:13:26 +01:00
Clément Bœsch
3bdd70fc66 lavfi/gradfun: reduce up limit for threshold.
This will prevent an overflow in the SSSE3 and MMX filter_line code:
delta is expressed as an u16 being shifted by 2 to the left. If it
overflows, having a strength not above 64 will make sure that m is set
to 0 (making the m*m*delta >> 14 expression void).

A value above 64 should not make any sense unless gradfun is used as a
blur filter.
2012-12-19 03:13:26 +01:00
Clément Bœsch
63e1fc2588 lavfi/gradfun: remove rounding to match C and SSE code.
There is no noticable benefit for such precision.
2012-12-19 03:13:25 +01:00
Clément Bœsch
60ba9a9a88 lavfi/gradfun: fix dithering in MMX code.
Current dithering only use the first 4w instead of the whole 8 random values.
2012-12-19 03:13:25 +01:00
Clément Bœsch
49de902a1e lavfi/gradfun: fix rounding in MMX code.
Current code divide before increasing precision.
2012-12-19 03:13:25 +01:00
Clément Bœsch
dd8a76ab08 lavfi/gradfun: do not increment DC pointer for odd values.
First DC is only used once otherwise. This also makes the code
consistent with ASM versions.
2012-12-19 03:13:25 +01:00
Paul B Mahol
dea9da5f16 qcelpdata: correct start bit for cbgain[0] in qcelp_rate_octave_bitmap[]
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-19 01:24:56 +00:00
Michael Niedermayer
c4a32d92fe ffmpeg: Fix shortest with libx264
Encoders that buffer a significant number of frames where a "few"
frames off with -shortest

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-19 00:08:37 +01:00
Stefano Sabatini
1b9ced685a MAINTAINERS: update my GPG key fingerprint 2012-12-18 23:08:02 +01:00
Carl Eugen Hoyos
d687b8c875 Cosmetics: Reindent after last commit. 2012-12-18 23:06:00 +01:00
Carl Eugen Hoyos
00a62e6776 Do not skip three bytes and don't search for extradata in old realaudio files.
Fixes ticket #1557.
2012-12-18 23:04:19 +01:00
Janne Grunau
acb571c89a avcodec: bump minor for adaptive h264 frame-mt
Also adds forgotten Changelog entry.
2012-12-18 20:26:53 +01:00
Anton Khirnov
e82cb79adf avconv: pass the actually selected decoder to filter_codec_opts(). 2012-12-18 20:15:06 +01:00
Anton Khirnov
77bd1bc73a avconv: use new options parser. 2012-12-18 20:14:54 +01:00
Anton Khirnov
0ec1642b60 cmdutils: don't log an error in opt_default().
It results in spurious errors when using the new preparser.
2012-12-18 20:14:46 +01:00
Anton Khirnov
8c9af5b205 cmdutils: add a commandline pre-parser.
It splits the commandline into a more convenient internal representation
for further parsing.

This will allow e.g.
- processing global options first independently of their location on the
  commandline, eliminating ugly hacks for processing e.g. cpuflags
  first
- better options validation and error reporting. It is now possible for
  the parser to know that it's applying an input option to an output
  file or vice versa and act accordingly.
2012-12-18 20:13:55 +01:00
Anton Khirnov
a01c02bcff cmdutils: split parse_option().
Separate the code that searches for the option to use and the code that
actually writes it. The writing code will be reused by the new options
parser.
2012-12-18 20:12:40 +01:00
Anton Khirnov
10bca66101 cmdutils: add a macro to simplify grow_array() calls. 2012-12-18 20:11:06 +01:00
Janne Grunau
9e696d2e5f h264: support frame parameter changes during frame-mt
Fixes CVE-2012-2782.
2012-12-18 19:55:10 +01:00
Janne Grunau
f1d8763a02 mpegvideo: allocate scratch buffers after linesize is known
Since we can't know which stride a custom get_buffer() implementation is
going to use we have to allocate this scratch buffers after the linesize
is known. It was pretty safe for 8 bit per pixel pixel formats since we
always allocated memory for up to 16 bits per pixel. It broke hoever
with cmdutis.c's alloc_buffer() and high pixel bit depth since it
allocated larger edges than mpegvideo expected.

Fixes fuzzed sample nasa-8s2.ts_s244342.
2012-12-18 19:48:30 +01:00
Michael Niedermayer
ed2d7d5868 ff_h264_direct_ref_list_init: fix B slice check.
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-12-18 19:44:22 +01:00
Janne Grunau
73ad2c2fa7 h264: increase dist_scale_factor for up to 32 references
Compute dist_scale_factor_field only for MBAFF since that is the only
case in which it is used.
2012-12-18 19:36:58 +01:00
Michael Niedermayer
9700a7a1dd af_apad: remove unneeded av_opt_free
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 17:31:01 +01:00
Michael Niedermayer
c311431e29 apad: add whole_len and pad_len options.
These options allow padding to a specific length or adding a specific amount if silence.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 17:30:31 +01:00
Michael Niedermayer
c2640146e0 apad: fix apad_options formating
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 17:16:03 +01:00
Michael Niedermayer
b7e085a288 af_apad: add user setable packet_size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 17:01:33 +01:00
Michael Niedermayer
5eae7f8f35 avfilter: add apad filter
This filter pads an audio stream with silence
It can together with -shortest be used to extend audio streams to
the same length as video.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 16:30:08 +01:00
Michael Niedermayer
5c2fc3bdd7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: formatting cosmetics
  h264: use mbaff ref indices in fill_colmap() only for mbaff references

Conflicts:
	libavcodec/h264_direct.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 15:00:05 +01:00
Michael Niedermayer
14f79ba18f h264: remove redundant parts of old slice in extradata code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 14:52:44 +01:00
Michael Niedermayer
99321d1b03 h264: merge old and new "slice in extradata" checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 14:50:12 +01:00
Michael Niedermayer
09b4ae8331 Merge commit '61c6eef5456f2bc8b1dc49a0a759c975551cea29'
* commit '61c6eef5456f2bc8b1dc49a0a759c975551cea29':
  h264: prevent decoding of slice NALs in extradata
  doxy: Clarify what avpriv_set_pts_info does

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 14:38:10 +01:00
Michael Niedermayer
94ecbe23c5 Merge commit 'c35f0e8495e34c2082dcde805e9323c9f6a4cb0a'
* commit 'c35f0e8495e34c2082dcde805e9323c9f6a4cb0a':
  au: Reorder code so that both muxer and demuxer are under #ifdefs
  fate: Move RALF test into lossless audio group
  cosmetics: Use consistent names for multiple inclusion guards.

Conflicts:
	libavformat/au.c
	tests/fate/lossless-audio.mak
	tests/fate/real.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 14:27:59 +01:00
Peter Ross
95015634f5 wtv: permit root table and first sectors to be located beyond 2GB boundary
Fixes ticket #2025.

Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-19 00:18:17 +11:00
Michael Niedermayer
ebfb738fa4 nutdec: sanity check r_frame_rate
This fixes files that store a somewhat incorrect value.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 14:03:04 +01:00
Diego Biurrun
523c7bd23c misc typo, style and wording fixes 2012-12-18 13:36:51 +01:00
Diego Biurrun
ea061af15a configure: formatting cosmetics 2012-12-18 13:36:50 +01:00
Michael Niedermayer
c9aab8a123 h264: use mbaff ref indices in fill_colmap() only for mbaff references
Prevents writing beyond array bounds.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-12-18 11:02:23 +01:00
Janne Grunau
61c6eef545 h264: prevent decoding of slice NALs in extradata
It is not posible to call get_buffer during frame-mt codec
initialization. Libavformat might pass huge amounts of data as
extradata after parsing broken files. The 'extradata' for the fuzzed
sample sample_varPAR_s5374_r001-02.avi is 2.8M large and contains
multiple slices.
2012-12-18 11:01:14 +01:00
Clément Bœsch
8b63744f48 Fix "bistream" typo and add a check in tools/patcheck. 2012-12-18 02:47:34 +01:00
Stefano Sabatini
1dd33d472a doc/ffmpeg-bitstream-filters: fix typo in title 2012-12-18 02:00:28 +01:00
Carl Eugen Hoyos
a71de9a2a2 Fix typo in mvc decoder. 2012-12-18 01:58:17 +01:00
Michael Niedermayer
41bebda485 mjpegenc: fix restart interval parameters for yuv444
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 01:21:48 +01:00
Michael Niedermayer
28b85b1fff mjpegenc: fix YUV444 with w%16!=0
Fixes Ticket2040

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-18 01:21:48 +01:00
Stefano Sabatini
85e6f6d9c1 doc/indevs: update syntax for the color filter in the lavfi device examples 2012-12-18 00:06:35 +01:00
Stefano Sabatini
1f9855dbc1 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.
2012-12-18 00:06:35 +01:00
Stefano Sabatini
9bba683578 doc/Makefile: add docclean rule
This allows to clean the doc directory from the parent project dir.
The command:
make -C doc clean

does not work as long as the paths specified in doc/Makefile are relative
to the parent dir.

Also it is consitent with "testclean" and "distclean" targets.
2012-12-18 00:06:17 +01:00
Stefano Sabatini
f14e248783 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.
2012-12-17 23:54:07 +01:00
Stefano Sabatini
992772b947 doc: remove references to external documents
Fix a few warnings generated when creating the manuals.

Our current doc generation toolchain does not allow to reference external
documents.
2012-12-17 23:53:50 +01:00
Michael Niedermayer
1d29624c73 oggparsevorbis: check channels
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 20:51:50 +01:00
Jernej Virag
2f7465b5bf SAP muxer set session name from metadata
Pass "title" metadata field to av_sdp_create (as in RTP muxer) in SAP
muxer for correct
session name in SAP SDP announcements.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 17:31:55 +01:00
Michael Niedermayer
8976ef7aec concatdec: change data type to suppress warning about limited range of data type on some platforms.
Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 17:31:34 +01:00
Derek Buitenhuis
26e4f0c70f doxy: Clarify what avpriv_set_pts_info does
The "pts for a given stream" was nonsensical.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-12-17 11:20:00 -05:00
Derek Buitenhuis
df0d6735b3 doxy: Clarify what avpriv_set_pts_info does
The "pts for a given stream" was nonsensical.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-12-17 11:18:27 -05:00
Diego Biurrun
c35f0e8495 au: Reorder code so that both muxer and demuxer are under #ifdefs
This reduces code size when either piece has been disabled.
2012-12-17 17:02:22 +01:00
Diego Biurrun
4d6c96fd69 fate: Move RALF test into lossless audio group 2012-12-17 17:02:22 +01:00
Diego Biurrun
81c7c817a4 cosmetics: Use consistent names for multiple inclusion guards. 2012-12-17 17:02:22 +01:00
Michael Niedermayer
8505daacc5 Merge remote-tracking branch 'ramiro/dshow'
* ramiro/dshow:
  dshow: call CoUninitialize() on dshow_read_close()
  dshow: handle events in graph

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 14:38:26 +01:00
Michael Niedermayer
082dd17bd2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avresample: use valid log context in mixing functions
  lavr: remove automatic context close/open for resampling compensation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 14:11:51 +01:00
Michael Niedermayer
8d07bbca63 Merge commit 'f322b2073581119de5da74f92a03309a36891cfa'
* commit 'f322b2073581119de5da74f92a03309a36891cfa':
  lavr: only save/restore the mixing matrix if mixing is being done
  rtpdec_vp8: Cosmetics: Fix bad alignment/indentation
  rtpenc: Allow including a SDES/CNAME block in RTCP SR packets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 14:06:11 +01:00
Michael Niedermayer
021b3497e1 Merge commit '65e053271a98f7acf3ef6b412998cfcb44a8eef8'
* commit '65e053271a98f7acf3ef6b412998cfcb44a8eef8':
  rtpenc_vp8: Include the picture number in VP8 packets

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 13:46:54 +01:00
Piotr Bandurski
0f450ac575 siff: set duration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 13:34:30 +01:00
Peter Ross
fb9d58509c isom: support SGI RLE 8-bit in QuickTime file format
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-17 20:37:54 +11:00
Peter Ross
6fb40779cd Silicon Graphics Movie (.mv) demuxer
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-17 20:37:54 +11:00
Peter Ross
746b1dcc98 Silicon Graphics Motion Video Compressor 1 & 2 decoder
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-17 20:37:54 +11:00
Peter Ross
afa1617b93 SGI RLE 8-bit decoder
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-17 20:37:54 +11:00
Ramiro Polla
83a9f29f60 dshow: call CoUninitialize() on dshow_read_close()
Every call to CoInitialize should have a matching CoUnititalize.

Based on patch by Don Moir <donmoir@comcast.net>.
2012-12-17 03:44:51 -02:00
Ramiro Polla
190f6135b4 dshow: handle events in graph
Handling DirectShow events prevents infinite loops when there is an error in
the graph, such as a device being disconnected. This makes it possible for
dshow to return an error to the caller and run the cleanup code.

Based on patch by Don Moir <donmoir@comcast.net>.
2012-12-17 03:44:12 -02:00
Hendrik Leppkes
0cf3505930 avresample: use valid log context in mixing functions
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-12-16 19:59:58 -05:00
Michael Niedermayer
2e59142fa9 sctp: dont abort on invalid input
Fixes Ticket1865

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 01:53:35 +01:00
Michael Niedermayer
d28dfa2d42 ac3dec: fix outptr increment.
Fixes decoding regression

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 01:35:14 +01:00
Justin Ruggles
f322b20735 lavr: only save/restore the mixing matrix if mixing is being done 2012-12-16 19:26:17 -05:00
Justin Ruggles
f1c2915ce1 lavr: remove automatic context close/open for resampling compensation
It adds unnecessary complication for insignificant usability improvement.
The user really should know if they'll need resampling compensation before
opening the context.

Note that only the documentation has changed. The current functionality will
still work until the next major bump.
2012-12-16 19:26:17 -05:00
Michael Niedermayer
7973a07590 h264: Improve first slice and slice type checks
This prevents a null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-17 01:08:19 +01:00
Michael Niedermayer
55b243cade doc/examples/resampling_audio.c: fix path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 21:37:23 +01:00
Clément Bœsch
0212c1c43d swr/doxy: fix missing quote in code example. 2012-12-16 21:04:54 +01:00
Clément Bœsch
9ad6b13020 lavu/pixdesc: fix a const qualifier discarding warning. 2012-12-16 20:41:28 +01:00
Clément Bœsch
7fb49639e6 lavu: make sure av_pix_fmt_desc_next returns a valid pix fmt.
This is required because there are some "holes" in the list for
compatibility with the fork.

The commit also removes the now unecessary check from cmdutils.

Found-by: wm4
2012-12-16 20:39:39 +01:00
Martin Storsjö
e798085f96 rtpdec_vp8: Cosmetics: Fix bad alignment/indentation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-16 21:33:20 +02:00
Martin Storsjö
3b2e8d1d21 rtpenc: Allow including a SDES/CNAME block in RTCP SR packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-16 21:32:58 +02:00
Martin Storsjö
65e053271a rtpenc_vp8: Include the picture number in VP8 packets
This makes it easier for receivers to decide what to do if data
is lost.

Refactor calculating the max payload size, to avoid hardcoding the
header size in too many places, reducing the number of lines that
have to be touched if the header is adjusted further.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-16 21:32:13 +02:00
Piotr Bandurski
cb8163d0bd bfi: set duration
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 16:53:01 +01:00
Michael Niedermayer
de89dff8da brstm: ask for samples for version != 1.0
This also avoids 2 unused variable warnings.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 15:05:31 +01:00
Michael Niedermayer
633ae5a210 mjpegenc: fix 444 block count so it is below 10
Fixes Ticket1990

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 15:05:31 +01:00
Paul B Mahol
5be38f9421 brstm: add missing new line to request for sample messages
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-16 13:04:17 +00:00
Michael Niedermayer
5b09c3407e doc/filters: fix "Dolby Pro Logic II" option name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 13:24:59 +01:00
Michael Niedermayer
efb4f96a7a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: fix memleak on error during SPS parsing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 13:21:42 +01:00
Stefano Sabatini
94877aad57 lavfi/crop: free x and y parsed expression objects
Fix leak introduced in 1e5492ffe6.
2012-12-16 13:16:47 +01:00
Michael Niedermayer
dde4832b64 Merge commit '27c8337e595a058347150269d5c2c48281e4285b'
* commit '27c8337e595a058347150269d5c2c48281e4285b':
  h264-mt: handle NAL_DPAs before calling ff_thread_finish_setup
  lavr: move AudioMix struct definition to audio_mix.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 13:09:30 +01:00
Paul B Mahol
1081d78746 build: fix idf demuxer dependency
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-16 12:00:23 +00:00
Paul B Mahol
f4fe4fa89f Remove 8SVX_RAW on next lavc mayor bump
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-16 11:40:26 +00:00
Piotr Bandurski
5648069270 aiff: support in24/in32 tags
Supported by QuickTime, libaudiofile and Csound.
2012-12-16 10:41:00 +00:00
James Almer
7959c26fb0 brstm: fix number of samples for the last block
Signed-off-by: James Almer <jamrial@gmail.com>
2012-12-16 10:34:33 +00:00
Piotr Bandurski
d0bdcbcb28 thp: set duration 2012-12-16 10:27:54 +00:00
Stefano Sabatini
013b700771 ffplay: provide some feedback in case the codec cannot be set 2012-12-16 10:58:02 +01:00
Stefano Sabatini
1cbb11cda7 ffplay: set codec_id in codec context
Set codec id in case another codec is forced on the context (e.g. when
the user specify the codec with -codec).

For example fix:
ffplay -vcodec pgmyuv -i "tests/vsynth1/%02d.pgm"
2012-12-16 10:58:02 +01:00
Stefano Sabatini
cb0f97b59d ffplay: improve robustness of opt_codec(), and add options acodec,vcodec,scodec
Fail with a meaningfull error message in case of bogus input.

Also the new options are more consistent with the rest of the tool
options, since it does not support generic stream specifiers.
2012-12-16 10:57:50 +01:00
Michael Niedermayer
718eab527b ffmpeg: Improve filter input fps selection heuristic.
This fixes a broken file that has a incorrect timebase at the codec level.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 05:21:29 +01:00
Michael Niedermayer
1e901ffc61 wrap_timestamp: remove unneeded check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 01:07:53 +01:00
Michael Niedermayer
1662bd350a lavf: fix integer overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 01:05:36 +01:00
Michael Niedermayer
d7599bd8e2 h264: dont mess with frame gaps on second fields.
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-16 00:28:36 +01:00
Peter Ross
c16f768d73 ffmpeg: replace magic number with VSYNC_CFR 2012-12-16 09:48:54 +11:00
Harald Axmann
2d74dea84f lavf: Provide a monotonic timestamp to the outside world
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 21:28:45 +01:00
Piotr Bandurski
388241efa2 mpegvideo_enc/rv20: width and height must be multiple of 4
RealPlayer does not play rv20 files when sizes are not multiple of 4

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 21:28:45 +01:00
Stefano Sabatini
0ebf85774b doc/filters: remove @example use for showing syntax
I forgot to merge with the previous commit.
2012-12-15 21:02:30 +01:00
Stefano Sabatini
a871b5cc98 doc/filters: extend syntax description for transpose, and add examples 2012-12-15 20:56:14 +01:00
Stefano Sabatini
6722f35dd3 doc/filters: add basic crop examples
Use it to show difference between shorthand and named parameters.
2012-12-15 20:48:42 +01:00
Stefano Sabatini
55b81528a9 doc/filters: itemize crop examples 2012-12-15 20:48:36 +01:00
Stefano Sabatini
1e5492ffe6 lavfi/crop: add support to option parsing
Also fix documentation accordingly.
2012-12-15 20:48:20 +01:00
Janne Grunau
a421bbfe83 h264: fix memleak on error during SPS parsing
Introduced in d7d6efe42b.
2012-12-15 19:16:39 +01:00
Janne Grunau
27c8337e59 h264-mt: handle NAL_DPAs before calling ff_thread_finish_setup
Since a NAL_DPA can start a new frame it has to be handled before
ff_thread_finish_setup is called.
2012-12-15 19:06:37 +01:00
Justin Ruggles
230acdde26 lavr: move AudioMix struct definition to audio_mix.c 2012-12-15 12:26:15 -05:00
Michael Niedermayer
2b643855e0 dirac_parser: check prev_pu_offset before using it
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 16:04:49 +01:00
Piotr Bandurski
fef75ef200 mpegvideo_enc/rv10: width and hieghtmust be multiple of 16
RealPlayer does not play correctly rv10 files when sizes are not multiple of 16

"RealVideo Encoder 1.0 supports any size image that is a multiple of sixteen pixels."

Reviewed-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 16:04:49 +01:00
rogerdpack
fe3e0e486e lavd/dshow: rename dshow class name
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-12-15 15:46:20 +01:00
Michael Niedermayer
ac6cb666d9 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp56: release frames on error

Conflicts:
	libavcodec/vp56.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 14:18:13 +01:00
Stefano Sabatini
54b0c04ae3 lavfi/overlay: clarify/fix comment, add a few empty lines to ease readability 2012-12-15 14:08:42 +01:00
Stefano Sabatini
3d1e2ada25 lavfi/overlay: remove duplicated definition of ff_null_get_video_buffer()
Simplify.
2012-12-15 13:51:24 +01:00
Stefano Sabatini
8f44170d30 lavfi/avfilter.h: clarify doxy for AVFilterLink.out_buf 2012-12-15 13:51:24 +01:00
Michael Niedermayer
f186ecc164 Merge commit 'bb675d3ac6d722d5e117ae9042a996b55ca05b1d'
* commit 'bb675d3ac6d722d5e117ae9042a996b55ca05b1d':
  vp56: make parse_header return standard error codes

Conflicts:
	libavcodec/vp56.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 13:41:06 +01:00
Michael Niedermayer
75b7e543df fate: update fate for 1a490df12f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 12:41:24 +01:00
Stefano Sabatini
33ab9ebd09 doc/APIchanges: fill empty git commit hashes and dates 2012-12-15 11:46:47 +01:00
Stefano Sabatini
1a490df12f ffprobe: show pkt_size in frame
Fix trac ticket #2027.
2012-12-15 11:46:47 +01:00
Stefano Sabatini
96d815fc0c lavc: add pkt_size field to AVFrame 2012-12-15 11:46:30 +01:00
Jean First
a8b3f0c5cf fate: check if rsync has the contimeout option
rsync on osx misses the --contimeout option

Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 01:33:19 +01:00
Michael Niedermayer
b6671787db flashsv2_prime: check block before using it.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-15 00:19:52 +01:00
Michael Niedermayer
02d6d05339 dcadec: check xch_base_channel against channel_order_tab.
Fix null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 23:37:44 +01:00
Michael Niedermayer
51fcf276f8 mp3on4: fix null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 21:50:43 +01:00
Michael Niedermayer
a99c273a3f dnxhddec: fix CID changed check.
Fixes Null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 20:58:01 +01:00
Michael Niedermayer
e095c4ea6d fate: update asyncts reference
We cannot update the existing file because this would break
ffmpeg 1.0, which uses it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 19:02:39 +01:00
Stefano Sabatini
ecebf6fc82 lavf/segment: provide more debug feedback when a new segment starts 2012-12-14 18:19:47 +01:00
Stefano Sabatini
df5f9496e6 lavf/segment: add missing flags to segmenter option constants 2012-12-14 18:19:47 +01:00
Michael Niedermayer
6ca2465556 ass_split_section: dont overread array
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 18:10:35 +01:00
Michael Niedermayer
b2c2589ecf westwood_vqa: fix null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 17:55:57 +01:00
Michael Niedermayer
3c5c6b9d61 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ivi_common: check that scan pattern is set before using it.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 16:05:12 +01:00
Michael Niedermayer
be26232efa Merge commit '07acdd651d1e2f4cfa5f610e616e70e323bb69cd'
* commit '07acdd651d1e2f4cfa5f610e616e70e323bb69cd':
  ivi_common: use proper logging context in ivi_decode_blocks().
  ivi_common: make some functions and tables static.
  asyncts: ignore min_delta only if first_pts is set

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

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 15:56:56 +01:00
Michael Niedermayer
a01fe55077 Merge commit 'c0dc57f1264dad1e121772d03abdb9e14ed8857f'
* commit 'c0dc57f1264dad1e121772d03abdb9e14ed8857f':
  asyncts: merge two conditions
  x86inc: fully concatenate tokens to fix macro expansion for nasm
  h264: initialize frame-mt context copies properly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 15:43:46 +01:00
Michael Niedermayer
2f265d9087 Merge commit '6a27ae28f9bde981e85c82cf5bf42c5f43fb6f13'
* commit '6a27ae28f9bde981e85c82cf5bf42c5f43fb6f13':
  mpegvideo: treat delayed pictures as used

Conflicts:
	libavcodec/h264.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 15:36:37 +01:00
Michael Niedermayer
86b4dc6277 Merge commit 'bd255f9feb4deea4c990e582f0ba3b90d7b64b4c'
* commit 'bd255f9feb4deea4c990e582f0ba3b90d7b64b4c':
  lavc: set frame parameters after decoding only if necessary

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 15:30:12 +01:00
Michael Niedermayer
3b5c0f5e36 h264: remove low_delay/has_b_frame setting code from nal loop
This code is now executed in h264_set_parameter_from_sps()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 15:22:19 +01:00
Michael Niedermayer
b9d887c225 Merge commit '072be3e8969f24113d599444be4d6a0ed04a6602'
* commit '072be3e8969f24113d599444be4d6a0ed04a6602':
  h264: set parameters from SPS whenever it changes
  asyncts: cosmetics: reindent

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 15:17:51 +01:00
Michael Niedermayer
b6e7041f90 Merge commit 'b35e5d985dd12acf9a0aaa52334134edcf35d68e'
* commit 'b35e5d985dd12acf9a0aaa52334134edcf35d68e':
  doc: improve documentation for the asyncts filter first_pts option
  asyncts: fix the asyncts behavior when using the first_pts option

Conflicts:
	libavfilter/af_asyncts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 13:58:12 +01:00
Michael Niedermayer
593f5c0f3c Merge commit '8083332c2de9ee189f96844ff4c2d9be1844116f'
* commit '8083332c2de9ee189f96844ff4c2d9be1844116f':
  asyncts: use clipped delta value when setting resample compensation
  asyncts: fix flushing of final samples at EOF
  vp6: properly fail on unsupported feature

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 13:51:20 +01:00
Luca Barbato
f33b5ba63e vp56: release frames on error
Fixes CVE-2012-2783

CC: libav-stable@libav.org
2012-12-14 13:21:59 +01:00
Luca Barbato
bb675d3ac6 vp56: make parse_header return standard error codes
Returning 0 for failure is misleading.

CC: libav-stable@libav.org
2012-12-14 13:21:59 +01:00
Anton Khirnov
deabb52ab4 ivi_common: check that scan pattern is set before using it.
Fixes CVE-2012-2791.

CC: libav-stable@libav.org
2012-12-14 07:10:53 +01:00
Anton Khirnov
07acdd651d ivi_common: use proper logging context in ivi_decode_blocks(). 2012-12-14 07:10:48 +01:00
Anton Khirnov
8ab42021f2 ivi_common: make some functions and tables static. 2012-12-14 07:08:38 +01:00
Peter Ross
5c78a8129c sauce: test filetype correctly for datatype 5 (binary text) 2012-12-14 16:46:29 +11:00
Michael Niedermayer
58f30175e1 mem: minor simplification of the alignment hack code
Idea-by: wanzhang
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 05:36:22 +01:00
Michael Niedermayer
d18706244f audioconvert/arm: require alignment of 16
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 04:49:09 +01:00
Michael Niedermayer
ceb9f8d927 audioconvert: support simd code with specific alignment requirements.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 04:47:17 +01:00
Michael Niedermayer
a286b04daf configure/arm: print if thumb mode is enabled
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 02:37:32 +01:00
Michael Niedermayer
a974adc3c7 g729dec: check pitch_delay_int.
Fix out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 01:13:21 +01:00
Justin Ruggles
c0dc57f126 asyncts: merge two conditions 2012-12-13 18:51:56 -05:00
Justin Ruggles
4e5a8878d5 asyncts: ignore min_delta only if first_pts is set 2012-12-13 18:51:56 -05:00
Michael Niedermayer
56d09250ef nuv: dont try to copy an empty frame
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-14 00:31:18 +01:00
Janne Grunau
0995ad8db4 x86inc: fully concatenate tokens to fix macro expansion for nasm
Fixes build errors with nasm introduced in 6f40e9f070 for stack
memory alignment. Noticed by BugMaster.
2012-12-13 23:57:09 +01:00
Björn Axelsson
2947e7b7a7 flvenc: don't write random data if seek fails
The FLV muxer tries to update the header in write_trailer, which is
impossible if writing to a pipe or network stream. Don't write header
data if seek to header fails.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 21:54:35 +01:00
Michael Niedermayer
0aa0bab40d docs: -asyncts has been replaced by aresample not asyncts in ffmpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 21:54:35 +01:00
Stefano Sabatini
ddf6131a0a lavf/segment: add segment_start_number option
Consistent with the image2 muxer.
2012-12-13 21:38:43 +01:00
Stefano Sabatini
d93d03a492 lavf/segment: add function set_segment_filename()
Factorize.
2012-12-13 21:05:07 +01:00
Janne Grunau
6a27ae28f9 mpegvideo: treat delayed pictures as used
This requires to move the avcodec_default_free_buffers() call to
ff_MPV_common_end() since otherwise delayed pictures would get freed
during a size change.
2012-12-13 21:02:42 +01:00
Janne Grunau
bd255f9feb lavc: set frame parameters after decoding only if necessary
Direct rendering capable decoders call get_buffer() which will set the
frame parameters.

Prevents frames with wrong parameters when a decoder outputs delayed
frames after a resolution or pixel format change.
2012-12-13 21:02:42 +01:00
Janne Grunau
072be3e896 h264: set parameters from SPS whenever it changes
Fixes a crash in the fuzzed sample sample_varPAR.avi_s26638 with
alternating bit depths.
2012-12-13 21:02:42 +01:00
Janne Grunau
0eae920c3c h264: initialize frame-mt context copies properly 2012-12-13 21:02:42 +01:00
Justin Ruggles
b35e5d985d doc: improve documentation for the asyncts filter first_pts option
Note the time base for the option. Add an additional example description.
2012-12-13 13:02:21 -05:00
Justin Ruggles
8083332c2d asyncts: use clipped delta value when setting resample compensation
The max_comp option is supposed to limit maximum compensation, but
currently the clipped value is not actually used.
2012-12-13 13:02:21 -05:00
Justin Ruggles
0ee440fe38 asyncts: cosmetics: reindent 2012-12-13 13:02:21 -05:00
Justin Ruggles
c143de40c3 asyncts: fix the asyncts behavior when using the first_pts option
Currently it will do padding, but it does not properly handle
start-of-stream trimming as documented.
2012-12-13 13:02:21 -05:00
Justin Ruggles
f266486b2e asyncts: fix flushing of final samples at EOF 2012-12-13 13:02:21 -05:00
Michael Niedermayer
616e6ffac6 aresample: increase n_out buffer size a bit to reduce delay in some corner cases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 18:17:48 +01:00
Michael Niedermayer
7726916c14 mpegts: check av_new_stream() return value.
Fixes CID703728
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 17:46:17 +01:00
Luca Barbato
be75fed975 vp6: properly fail on unsupported feature
Interlacing is not supported at all and mismanaged down the normal
codepaths causing possible buffer management issues.

CC: libav-stable@libav.org
2012-12-13 17:05:45 +01:00
Michael Niedermayer
0ea4742341 qt-faststart: Check offset_count
Fixes CID733836
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 15:07:20 +01:00
Michael Niedermayer
eee8c94f50 cavsdec: check ff_get_buffer() return value
Fixes CID747721
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 14:32:58 +01:00
Michael Niedermayer
5cb080fa5e snowenc: check ff_get_buffer() return value
Fixes CID747722
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 14:26:03 +01:00
Michael Niedermayer
7effc26ba7 svq1enc: check ff_get_buffer() return value
Fixes CID747723
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 14:20:24 +01:00
Michael Niedermayer
1818a1130d alsdec: propagate error codes in read_block()
Reviewed-by: Thilo Borgmann <thilo.borgmann@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 13:59:15 +01:00
Michael Niedermayer
0213d5ad86 alsdec: make return checking for read_*_block_data() consistent
Reviewed-by: Thilo Borgmann <thilo.borgmann@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 13:59:11 +01:00
Michael Niedermayer
79bfba14b7 alsdec: Use AVERROR_INVALIDDATA in read_const_block_data
Reviewed-by: Thilo Borgmann <thilo.borgmann@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 13:58:52 +01:00
Nedeljko Babic
d7117138cf mips: ac3 downmix updated to the new data layout.
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 13:51:05 +01:00
Nicolas George
2dbc84b1a8 lavf/matroskaenc: check for overflow in display width. 2012-12-13 12:45:07 +01:00
Michael Niedermayer
7897919a88 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacdec: Fix an off-by-one overwrite when switching to LTP profile from MAIN.
  x86inc: fix stack alignment on win64
  rtpproto: Remove unused defines

Conflicts:
	libavcodec/aacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 12:23:48 +01:00
Michael Niedermayer
2e5e2bf935 Merge commit 'f3f60dcbdd6ff2201526a603fe28293975bb7667'
* commit 'f3f60dcbdd6ff2201526a603fe28293975bb7667':
  rtpdec_mpeg4: Cosmetic cleanup
  rtpdec: Cosmetic cleanup of the header
  rtpdec: Get rid of a useless _s suffix on a struct name

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 12:18:12 +01:00
Michael Niedermayer
de7c95d551 Merge commit '7941159df6aad2d219e2a7184489be7a735dd944'
* commit '7941159df6aad2d219e2a7184489be7a735dd944':
  rtpdec/enc: Remove outdated/useless/misleading comments
  rtpdec: Improve some comments
  rtpdec: Remove unused context variables
  rtpdec: Limit writing to the buffer size
  svq1: Fix building with -DDEBUG
  svq1: return meaningful error codes.

Conflicts:
	libavcodec/svq1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 12:06:19 +01:00
Michael Niedermayer
9c0ec23c7d Merge commit '998fdcff41bbda8ef13c991743376556f910efa9'
* commit '998fdcff41bbda8ef13c991743376556f910efa9':
  lavc: replace some forgotten instances of PixelFormat with AVPixelFormat
  svq1: unmacroify macros used only once.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 11:53:15 +01:00
Michael Niedermayer
e7f255d89b Merge commit '95baf701db719ecad6b31000429e20eca2526ed6'
* commit '95baf701db719ecad6b31000429e20eca2526ed6':
  svq1: deMpegEncContextize

Conflicts:
	libavcodec/svq1dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 11:49:12 +01:00
Michael Niedermayer
db6e960450 lavfi: drop ff_null_start_frame/end_frame/draw_slice.
The functions have become unused

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-13 03:38:16 +01:00
Stefano Sabatini
43912625e0 lavfi/select: assign NAN to ignored values
Also log scene value. Improve debugging.
2012-12-13 00:18:49 +01:00
Stefano Sabatini
6ba1f28008 lavfi/select: add support to options
Add options introspection, and improve error feedback.
2012-12-13 00:16:30 +01:00
Stefano Sabatini
c214cd18e2 lavfi/select: in select_frame(), rename picref -> ref
The variable is now used also for audio frames.
2012-12-13 00:12:55 +01:00
Stefano Sabatini
e7a0b2e054 doc/filters: itemize select/aselect examples
Improve rendering.
2012-12-13 00:11:20 +01:00
Stefano Sabatini
c51f090ff9 lavfi: mv vf_select.c -> f_select.c
The file now contains also an audio select implementation. Also move the
aselect/select documentation from video filters to the multimedia filters
section.
2012-12-13 00:10:43 +01:00
Stefano Sabatini
f5461face5 lavfi: add aselect audio variant of select 2012-12-13 00:10:24 +01:00
Stefano Sabatini
64c5fbd7de lavfi/select: remove deprecated and unused poll_frame() callback
Simplify.
2012-12-13 00:03:50 +01:00
Alex Converse
6d5b009267 aacdec: Fix an off-by-one overwrite when switching to LTP profile from MAIN.
Found-by: pawlkt
CC: libav-stable@libav.org
2012-12-12 13:22:10 -08:00
Nicolas George
26db6535fc lavf/matroskaenc: use integers to for display size.
Avoid rounding differences between x86_32 and x86_64.
Fix trac ticket #1997.
2012-12-12 20:59:34 +01:00
Ronald S. Bultje
140367aff9 x86inc: fix stack alignment on win64
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 21:30:49 +02:00
Michael Niedermayer
a01679586c mpeg1video: fix regression with slices != threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 20:12:11 +01:00
Michael Niedermayer
03df972016 mpeg1video: support multi threaded slice encoding.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 19:29:32 +01:00
Michael Niedermayer
f18c873ab5 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>
2012-12-12 17:46:05 +01:00
Michael Niedermayer
03b9d4a7dc msmpeg4dec: fix coeff index
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 17:46:05 +01:00
Michael Niedermayer
028cc42a16 read_gab2_sub: fix null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 17:46:05 +01:00
Michael Niedermayer
02b238186a avfilter_get_audio_buffer_ref_from_frame: check that layout and channels match if they are set
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 17:46:05 +01:00
Nicolas George
0f236345fb ffmpeg: sub2video: use start and end time.
Until now, the end_display_time was ignored, making single
packets subtitles (like dvdsub) stay indefinitely.

start_display_time was also ignored, but is it almost always 0.
2012-12-12 15:05:50 +01:00
Martin Storsjö
29d2595ad7 rtpproto: Remove unused defines
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 16:01:24 +02:00
Michael Niedermayer
e69e780cde ff_copy_buffer_ref: use the channel count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 14:12:47 +01:00
Michael Niedermayer
5a4eb6aa27 avfilter_get_video_buffer_ref_from_frame: check channel count
more than 8 channels is not supported and crashes with null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 14:12:47 +01:00
Michael Niedermayer
0ceca269b6 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>
2012-12-12 14:12:47 +01:00
Nicolas George
16c3cb9bbf lavf/concatdec: avoid leaking URLs.
Use av_realloc instead of av_realloc_f to keep the original
array in case of failure: it is freed in full by the fail label.
2012-12-12 12:15:57 +01:00
Michael Niedermayer
75b3911e5a mxf_set_audio_pts: fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 11:35:47 +01:00
Michael Niedermayer
a0f659b275 oggspeexparse: fix array overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 11:21:23 +01:00
Martin Storsjö
f3f60dcbdd rtpdec_mpeg4: Cosmetic cleanup
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:50 +02:00
Martin Storsjö
584a017925 rtpdec: Cosmetic cleanup of the header
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:44 +02:00
Martin Storsjö
abf74a1169 rtpdec: Get rid of a useless _s suffix on a struct name
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:38 +02:00
Martin Storsjö
7941159df6 rtpdec/enc: Remove outdated/useless/misleading comments
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:33 +02:00
Martin Storsjö
d6ec745246 rtpdec: Improve some comments
The previous comment about the buffer was wildly inaccurate and
misleading.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:28 +02:00
Martin Storsjö
e66d448c75 rtpdec: Remove unused context variables
These stem from back when both the rtp muxer and rtp depacketizing
shared the same struct.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:22 +02:00
Martin Storsjö
81ef519252 rtpdec: Limit writing to the buffer size
This fixes potential buffer overwrites.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:18:16 +02:00
Martin Storsjö
48238fd00b svq1: Fix building with -DDEBUG
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-12 12:17:52 +02:00
Michael Niedermayer
12fcc626d6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavr: fix segfault due to overlooked change needed in 14758e3
  x86inc: support stack mem allocation and re-alignment in PROLOGUE

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 10:50:21 +01:00
Ronald S. Bultje
ce58642ed0 x86inc: support stack mem allocation and re-alignment in PROLOGUE.
Use this in VP8/H264-8bit loopfilter functions so they can be used if
there is no aligned stack (e.g. MSVC 32bit or ICC 10.x).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 10:37:52 +01:00
Michael Niedermayer
82c0211213 Merge commit '14758e3211d34a97c42b07acae117ce5627d7f57'
* commit '14758e3211d34a97c42b07acae117ce5627d7f57':
  lavr: temporarily store custom matrix in AVAudioResampleContext
  lavr: clarify documentation for avresample_get/set_matrix()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 10:31:56 +01:00
Michael Niedermayer
8dbc384f15 Merge commit 'd04c17c91363a6b15d1ac2d79c817f3d5e2998b3'
* commit 'd04c17c91363a6b15d1ac2d79c817f3d5e2998b3':
  swfdec: cosmetics: fix indentation

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 10:16:23 +01:00
Michael Niedermayer
d276f28b7d swfdec: print warning when len is cliped
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 10:14:06 +01:00
Carl Eugen Hoyos
31f9cf38f0 Fix frame-rate documentation. 2012-12-12 10:08:43 +01:00
Anton Khirnov
c4182d72c9 svq1: return meaningful error codes. 2012-12-12 10:00:08 +01:00
Anton Khirnov
998fdcff41 lavc: replace some forgotten instances of PixelFormat with AVPixelFormat 2012-12-12 09:59:58 +01:00
Anton Khirnov
84a0806680 svq1: unmacroify macros used only once. 2012-12-12 09:59:41 +01:00
Anton Khirnov
95baf701db svq1: deMpegEncContextize
This decoder is quite simple and none of the MpegEncContext complexity
is actually needed.
2012-12-12 09:57:21 +01:00
Michael Niedermayer
be5389d585 Merge commit 'e70c5b034c4787377e82cab2d5565486baec0c2a'
* commit 'e70c5b034c4787377e82cab2d5565486baec0c2a':
  swfdec: do better validation of tag length
  Make LOCAL_ALIGNED syntactically similar on all systems

Conflicts:
	libavformat/swfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 09:55:56 +01:00
Justin Ruggles
42b5688d5e lavr: fix segfault due to overlooked change needed in 14758e3
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-12 09:09:00 +01:00
Ronald S. Bultje
6f40e9f070 x86inc: support stack mem allocation and re-alignment in PROLOGUE
Use this in VP8/H264-8bit loopfilter functions so they can be used if
there is no aligned stack (e.g. MSVC 32bit or ICC 10.x).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-12 05:23:46 +01:00
Clément Bœsch
9138f6da4a lavfi/showinfo: check plane count before dereferencing. 2012-12-12 02:55:10 +01:00
Michael Niedermayer
2fb240ddb6 ac3dec: fix out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 01:22:09 +01:00
Michael Niedermayer
a202541f9b cafdec: Check duration before use.
Fix division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 01:22:09 +01:00
Michael Niedermayer
99a8552dae bfi: fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 01:22:09 +01:00
Michael Niedermayer
1cf7b61fb2 Changelog: update for soxr
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-12 01:22:09 +01:00
Stefano Sabatini
803af8101f doc/ffmpeg: fix/extend documentation for -copyts 2012-12-12 00:36:04 +01:00
Rob Sykes
801b315729 swr: Add SOX resampler support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 22:04:00 +01:00
Rob Sykes
41049d07f2 swr: add a lowpass default so that each Resampler can have its own default.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 22:04:00 +01:00
Michael Niedermayer
ae5a55e77a swr: move flush into Resampler
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 22:04:00 +01:00
Michael Niedermayer
431dcc49d2 swr: make realloc_audio() available outside swresample.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 22:04:00 +01:00
Rob Sykes
5a5d70748c swr: Add API to make resample engine selectable.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 22:04:00 +01:00
Michael Niedermayer
e8e575633f lavc/utils: Do not require dimensions for PNG.
pngenc doesnt need them and mplayer doesnt set them.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 22:04:00 +01:00
Stefano Sabatini
bbc8f0cd9b doc/filters: fix grammar mistake in setfield documentation
Spotted-by: Tim Nicholson <nichot20@yahoo.com>
2012-12-11 21:52:26 +01:00
Justin Ruggles
14758e3211 lavr: temporarily store custom matrix in AVAudioResampleContext
This allows AudioMix to be treated the same way as other conversion contexts
and removes the requirement to allocate it at the same time as the
AVAudioResampleContext.

The current matrix get/set functions are split between the public interface
and AudioMix private functions.
2012-12-11 14:00:32 -05:00
Justin Ruggles
887d4c05c9 lavr: clarify documentation for avresample_get/set_matrix() 2012-12-11 14:00:32 -05:00
Clément Bœsch
4b4f16cdc0 lavfi/fps: remove parse opt error message.
See cc650cf0 for more info.
2012-12-11 18:14:08 +01:00
Clément Bœsch
b2f2321cec doc/filters: extend fps documentation. 2012-12-11 18:12:26 +01:00
Clément Bœsch
0e0e3db189 lavfi/fps: add shorthand. 2012-12-11 18:12:11 +01:00
Michael Niedermayer
7d05bbb656 mxfdec: drop unneeded extradata padding
Found-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 16:40:28 +01:00
Justin Ruggles
d04c17c913 swfdec: cosmetics: fix indentation 2012-12-11 09:37:17 -05:00
Justin Ruggles
e70c5b034c 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.
2012-12-11 09:36:26 -05:00
Michael Niedermayer
b65570808c mxfdec: fix leak of extradata
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 14:43:47 +01:00
Mans Rullgard
02823f6d71 Make LOCAL_ALIGNED syntactically similar on all systems
This changes the LOCAL_ALIGNED definition on systems where
DECLARE_ALIGNED is used so it matches the manual alignment
case, ensuring invalid use will not compile on x86 only to
fail on everything else.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-11 11:59:15 +00:00
Michael Niedermayer
9e28c7ef64 filters.texi: document more aresample options
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 12:50:34 +01:00
Michael Niedermayer
7dee5f04ac svq3: fix cast type to be independant of "sizeof(int)"
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 12:50:34 +01:00
Paul B Mahol
17d5746d96 build: fix dca encoder dependencies
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-11 11:46:22 +00:00
Paul B Mahol
2375139007 fate: add BRSTM demuxer test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-11 11:34:47 +00:00
Peter Ross
7016aa655b iff decoder: support RGB8 and RGBN 2012-12-11 20:17:30 +11:00
Peter Ross
53ae32d331 iff demuxer: support RGB8 and RGBN 2012-12-11 20:17:30 +11:00
Michael Niedermayer
67c1b5b026 lavf: remove unneeded pb check
Fixes CID747727
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 09:34:47 +01:00
Michael Niedermayer
b688a28470 astenc: fix assignment vs compare
Fixes CID747736
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 08:56:42 +01:00
Michael Niedermayer
a70b38d2dd lavf: fix memleak
Fixes CID747738
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 08:51:34 +01:00
Michael Niedermayer
9696ad6a76 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: fix 'clean' target
  ZeroCodec: Flip output

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 08:24:45 +01:00
Clément Bœsch
fd3cdcaf5f lavfi: remove mp=denoise3d filter.
hqdn3d was meant to be a more efficient denoise3d filter, is supported
natively, and is faster on my computer thanks to the ASM optimisations.
2012-12-11 04:28:08 +01:00
Clément Bœsch
80e5c51d73 doc: fix a -map syntax in one command line example. 2012-12-11 03:57:33 +01:00
Clément Bœsch
7eafd274d8 build: fix prores decoder dependencies.
According to lavc/proresdsp.c, both prores and prores-lgpl decoders need
lavc/x86/proresdsp_init.c:ff_proresdsp_x86_init().
2012-12-11 02:54:55 +01:00
Clément Bœsch
18d9398143 doxy: add ref for lavfi, lpp and lsws. 2012-12-11 02:13:43 +01:00
Michael Niedermayer
5595e7a102 doxy: fix swr group name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 01:53:18 +01:00
Carl Eugen Hoyos
71b1912963 Print bpc (for bits per component) with pixel format if it is smaller than expected. 2012-12-11 01:26:32 +01:00
Stefano Sabatini
8e9056559e lavf/segment: add reset_timestamps option
The new options reset the timestamps at each new segment, so that the
generated segments will have timestamps starting close to 0.

It is meant to address trac ticket #1425.
2012-12-11 00:18:23 +01:00
Michael Niedermayer
22e4988673 opt: fix memleak on error of range_array
Fixes CID747739
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 00:03:23 +01:00
Michael Niedermayer
0a60f83075 http: dont null check p, its unneeded
Fixes CID747740
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 00:03:23 +01:00
Michael Niedermayer
b11a889055 vf_tinterlace: default of mode switch is impossible, add assert.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-11 00:03:23 +01:00
Michael Niedermayer
e7101a7f3f libavcodec/x86/mpegvideo: switch to av_assert2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 23:30:16 +01:00
Michael Niedermayer
623184afa2 itu H.263: Fix handling of PB blocks
This fixes artifacts in Ticket744

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 23:23:27 +01:00
Michael Niedermayer
c3bb3334f6 h264: dont try to allocate scratchpad if linesize is not known
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 20:52:14 +01:00
Mans Rullgard
395c3feb3b build: fix 'clean' target
This fixes removal of TOOLS as well as HOSTPROGS declared in the
top-level Makefile.  The clean target in common.mak needs to be
eval'd since the variables used within are reset for each library.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-10 17:23:53 +00:00
Michael Niedermayer
c73685398d swfdec: check lens validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 17:25:44 +01:00
Carl Eugen Hoyos
2ddf7c88d1 ZeroCodec: Flip output
The initial testing of the VFW binary codec was flawed,
likely due to an AviSynth bug.

Re-testing using VirtualDub and various professional editing
applications has revealed it should have been flipped.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-12-10 11:19:42 -05:00
Paul B Mahol
a354839bfa build: update mxf muxer dependencies
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-10 13:59:15 +00:00
Paul B Mahol
d880c34408 lavc: fix typo and avrn build dependencies
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-10 13:49:53 +00:00
Michael Niedermayer
ddbf0702c5 dsputil_mmx: switch to av_assert2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 14:41:31 +01:00
Paul B Mahol
4c7515286b takdec: silence/fix warning for undefined behavior
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-10 12:06:30 +00:00
Michael Niedermayer
4a5289ade3 mips: disable ac3 downmix, until its updated to the new data layout.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 12:45:11 +01:00
Michael Niedermayer
6321e02896 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtpdec: Remove an outdated todo comment
  rtpdec: Rename a static variable to normal naming conventions
  sh4: dsputil: remove duplicate of ff_gmc_c()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 12:13:42 +01:00
Peter Ross
f540851ce3 mov: parse @PRM and @PRQ metadata tags
These tags describe the product and quicktime library version respectively.
Originate from Adobe Premier, but some other products use them.
2012-12-10 21:12:59 +11:00
Peter Ross
e044cd4123 codec_desc: AV_CODEC_ID_SMPTE_KLV is data 2012-12-10 21:08:09 +11:00
Martin Storsjö
ccb59c106a rtpdec: Remove an outdated todo comment
This comment was added in e309128f, in 2002, and has been brought
along since then more or less unmodified.

The first point of the todo was implemented in dbf30963 in 2006,
the second one is not relevant to rtpdec.c (brought along from
rtp.c in 8eb793c4 in 2008) but would be more relevant to the
rtp muxer, although it isn't a good idea anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-10 11:58:32 +02:00
Martin Storsjö
0d85663a47 rtpdec: Rename a static variable to normal naming conventions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-10 11:58:25 +02:00
Mans Rullgard
f9e493c6f5 sh4: dsputil: remove duplicate of ff_gmc_c()
This function is an exact duplicate of the generic one.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-10 09:53:58 +00:00
Michael Niedermayer
7aabeea9ba ac3dec: fix bugs in direct buffer use.
This fixes potentially exploitable out of array writes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 04:45:30 +01:00
Michael Niedermayer
529d3e0026 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dsputil: remove unused macro WRAPPER8_16
  configure: fix automatic processing of _extralibs in check_deps
  libvpxenc: Support forcing keyframes
  ac3dec: decode directly into output buffers

Conflicts:
	libavcodec/ac3dec.c
	libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 02:16:33 +01:00
Michael Niedermayer
a933698457 Merge commit '30b39164256999efc8d77edc85e2e0b963c24834'
* commit '30b39164256999efc8d77edc85e2e0b963c24834':
  ac3dec: make downmix() take array of pointers to channel data

Conflicts:
	libavcodec/ac3dsp.c
	libavcodec/ac3dsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 02:06:50 +01:00
Michael Niedermayer
b7d8484f27 Merge commit 'b8f3ab8e6a7ce3627764da53b809628c828d4047'
* commit 'b8f3ab8e6a7ce3627764da53b809628c828d4047':
  ac3dec: output planar float only
  svq3: make slice type value unsigned to match svq3_get_ue_golomb return type
  configure: Have protocols select network code instead of depending on it

Conflicts:
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 01:32:37 +01:00
Michael Niedermayer
78ac7ee970 Merge commit '5d471b73d20616f5ac701ff62e5de49465cda264'
* commit '5d471b73d20616f5ac701ff62e5de49465cda264':
  rtpdec: K&R formatting and spelling cosmetics
  cosmetics: Fix dropable --> droppable typo

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 01:27:10 +01:00
Mans Rullgard
5c75708cf0 configure: fix automatic processing of _extralibs in check_deps
This fixes the automatic use of $foo_extralibs when feature foo
is enabled indirectly through a _select or _suggest.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-10 01:23:23 +01:00
Michael Niedermayer
20899c54f0 http/utils: rename "demuxer" to mime_type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-10 01:00:16 +01:00
Michael Niedermayer
cbe43e62c9 ffserver: set oformat
Fix Ticket1986

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 23:39:06 +01:00
Mans Rullgard
2dd95bd7cf dsputil: remove unused macro WRAPPER8_16
This macro has never been used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-09 22:21:04 +00:00
Paul B Mahol
cef28b5602 tak: reduce difference with qatar
Mostly cosmetics changes, but also makes
decoding little faster here.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-09 22:01:00 +00:00
Mans Rullgard
d4f8cecc86 configure: fix automatic processing of _extralibs in check_deps
This fixes the automatic use of $foo_extralibs when feature foo
is enabled indirectly through a _select or _suggest.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-09 21:20:58 +00:00
Stefano Sabatini
461b5bf4ab lavc/avcodec: extend/clarify/fix documentation for avcodec_fill_audio_frame() 2012-12-09 21:55:46 +01:00
Stefano Sabatini
ad47ac20ae lavf/segment: remove silly assert(), improve feedback
The code should not assert in case of invalid user input. Fails
gracefully instead.
2012-12-09 20:42:35 +01:00
Michael Niedermayer
68bc012190 http/utils: move mime -> demuxer maping from http to utils
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 20:24:49 +01:00
Michael Niedermayer
0af7ccd9e2 mpeg12: move current_picture_ptr reset to the end of decode_frame.
This fixes passing fields instead of frames into the decoder.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 19:49:51 +01:00
Martin Storsjö
774e6fc9ed libvpxenc: Support forcing keyframes
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-09 20:28:08 +02:00
Michael Niedermayer
e3d95b54db probe: belive protocol content type if set and avoid lengthly probing.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 19:12:34 +01:00
Michael Niedermayer
76d851b656 http: export ICY content type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 19:12:34 +01:00
Nicolas George
160013736e lavf: TED Talks JSON captions demuxer. 2012-12-09 18:50:38 +01:00
Carl Eugen Hoyos
18eb31963b Improve x264opts description. 2012-12-09 18:24:56 +01:00
Peter Ross
9282fbb9ad mpegts: demux asynchronous SMPTE 336M Key-Length-Value (KLV) metadata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 17:15:46 +01:00
Michael Niedermayer
3193a5cdbf arm: put prefetch under matching #ifdef as the actual code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 17:14:15 +01:00
Mans Rullgard
30b3916425 ac3dec: make downmix() take array of pointers to channel data 2012-12-09 15:52:01 +00:00
Mans Rullgard
b8f3ab8e6a ac3dec: output planar float only
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-09 15:52:01 +00:00
Mans Rullgard
ec5da7aee2 ac3dec: decode directly into output buffers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-09 15:52:01 +00:00
Janne Grunau
288bb3da16 svq3: make slice type value unsigned to match svq3_get_ue_golomb return type 2012-12-09 15:51:45 +01:00
Diego Biurrun
998c1ee10c configure: Have protocols select network code instead of depending on it 2012-12-09 14:56:12 +01:00
Michael Niedermayer
1374b5e15b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avio: K&R cosmetic formatting

Conflicts:
	libavformat/aviobuf.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 14:08:01 +01:00
Michael Niedermayer
e7d924da30 Merge commit '91ac403b1316d59b4f43c4ea0f237e24cec2819a'
* commit '91ac403b1316d59b4f43c4ea0f237e24cec2819a':
  lavf: fix arithmetic overflows in avformat_seek_file()
  mjpeg: initialize input padding after unescaped buffer to zero

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 13:56:46 +01:00
Martin Storsjö
5d471b73d2 rtpdec: K&R formatting and spelling cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-12-09 13:36:11 +01:00
Diego Biurrun
ba0c898120 cosmetics: Fix dropable --> droppable typo 2012-12-09 13:36:11 +01:00
Michael Niedermayer
5de1f7a7bd Merge commit '18e6f087c4a50bede8449ee164778945480be50c'
* commit '18e6f087c4a50bede8449ee164778945480be50c':
  img2: document the options available
  hls: improve options description
  hls: use a meaningful long name
  hls: add start_number option
  h264: check for invalid zeros_left before writing

Conflicts:
	doc/demuxers.texi
	doc/muxers.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 13:35:49 +01:00
Michael Niedermayer
9f92e590ba mxfdec: fix double free
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 11:46:26 +01:00
Carl Eugen Hoyos
66dc3ba356 Flip zerocodec output.
Fixes ticket #1218
2012-12-09 10:24:16 +01:00
Luca Barbato
1dd1c1c884 avio: K&R cosmetic formatting 2012-12-09 09:45:45 +01:00
Michael Niedermayer
e8ca7cfa4f h264: avoid calling idr() twice
Fixes rare race condition leading to null pointer dereferences.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 06:06:15 +01:00
Clément Bœsch
4c554c967f lavc/libcelt: add missing internal.h include.
This should fix build (include is necessary for ff_get_buffer).
2012-12-09 03:43:03 +01:00
Paul B Mahol
92f630eaf2 add forgotten AV_ prefix to some CODEC_IDs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-09 01:47:58 +00:00
Piotr Bandurski
7f01247572 tiff: support zlib with invertedFillOrder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-09 01:00:54 +01:00
Stefano Sabatini
f494647206 lavu/opt: change the way ranges are printed 2012-12-08 22:18:38 +01:00
Ramiro Polla
f2c49da9ac dshow: fix return code when opening device
Successfully opening a device altered the ret variable, making the function
not cleanup properly and return an incorrect value for errors that happened
afterwards.

Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 21:44:30 +01:00
Mans Rullgard
91ac403b13 lavf: fix arithmetic overflows in avformat_seek_file()
The values compared here can be more than INT64_MAX apart.  Since the
difference is always positive, converting to uint64_t before subtracting
gives the correct result without overflows.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-08 19:35:16 +00:00
Stefano Sabatini
129d737150 lavu/opt: make av_opt_query_ranges_default() return a meaningful error code 2012-12-08 19:53:03 +01:00
Piotr Bandurski
e5550c0d09 mjpegdec: support more pix_fmt_ids for grayscale
samples created with

"cjpeg -grayscale -sample 1x3 / 1x4 / 3x1 / 3x3 / 4x1 / 4x3 / 4x4"

http://www.datafilehost.com/download-d828329d.html

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 19:24:09 +01:00
Stefano Sabatini
0ad654d4c9 lavu/opt: perform misc cosmetical fixes 2012-12-08 19:13:20 +01:00
Stefano Sabatini
642a60f1c2 lavfi/setfield: add support to named options and introspection 2012-12-08 18:26:32 +01:00
Michael Niedermayer
0110108a7c sbr_hf_gen_sse: Optimize code a bit more.
Core I7 (Sandy Bridge) 135 to 107 cycles
Core i5 (Arrandale) 162 to 142 (Thanks to Christophe Gisquet for testing)

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 17:30:11 +01:00
Matthieu Bouron
7f154bd54f lavfi/setfield: switch to filter_frame API
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-12-08 17:19:17 +01:00
Matthieu Bouron
4cd40ef343 lavfi/idet: switch to filter_frame API
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-12-08 17:19:17 +01:00
Janne Grunau
6a1aa5cb26 mjpeg: initialize input padding after unescaped buffer to zero
Fixes valgrind --undef-value-errors=yes warnings caused by valid
overreads in the fate vsynth jpegls, cover-art-ape and cover-art-wv
tests.
2012-12-08 17:05:45 +01:00
Luca Barbato
18e6f087c4 img2: document the options available 2012-12-08 17:04:23 +01:00
Luca Barbato
3c3a580f93 hls: improve options description 2012-12-08 17:04:23 +01:00
Luca Barbato
adbe03077d hls: use a meaningful long name 2012-12-08 17:04:22 +01:00
Luca Barbato
5fbceb2c63 hls: add start_number option 2012-12-08 17:04:22 +01:00
Ronald S. Bultje
ddd7559ad9 h264: check for invalid zeros_left before writing
Prevent an invalid write into coeffs[scantable[-1]] if zeros_left
itself was an invalid VLC code (and thus -1).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-08 17:04:22 +01:00
Michael Niedermayer
5c076205a6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  golomb: use unsigned arithmetics in svq3_get_ue_golomb()
  x86: float_dsp: fix loading of the len parameter on x86-32
  takdec: fix initialisation of LOCAL_ALIGNED array
  takdec: fix initialisation of LOCAL_ALIGNED array

Conflicts:
	libavcodec/rv30.c
	libavcodec/svq3.c
	libavcodec/takdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 16:36:47 +01:00
Paul B Mahol
1a4250493b MAINTAINERS: add myself for my works
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-08 15:18:08 +00:00
Stefano Sabatini
5825e9425b lavfi/version: remove unused dropped symbol 2012-12-08 16:04:09 +01:00
Michael Niedermayer
3a7ef8dc44 Merge commit '57231e4d5b467833fb289439cd35a92513bb55c1'
* commit '57231e4d5b467833fb289439cd35a92513bb55c1':
  tak: demuxer, parser, and decoder

Not merged as requested by Author and Maintainer of tak in FFmpeg.
I just merged a few typo fixes and minor cosmetic improvments.

Conflicts:
	Changelog
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/tak.c
	libavcodec/tak.h
	libavcodec/tak_parser.c
	libavcodec/takdec.c
	libavcodec/version.h
	libavformat/takdec.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 15:54:18 +01:00
Stefano Sabatini
64e174e8b8 doc/filters: move volumedetect documentation below volume 2012-12-08 15:41:12 +01:00
Stefano Sabatini
10db70d5e9 lavfi: drop af_volume_stefano.c in favor of af_volume_justin.c
Justin's version has more features but is otherwise equivalent from the
point of view of the syntax.
2012-12-08 15:40:07 +01:00
Stefano Sabatini
759e7a237f doc/filters: fix copy&paste error in volume_justin documentation
Spotted by ubitux.
2012-12-08 15:38:20 +01:00
Stefano Sabatini
769546631c lavfi/volume_justin: add support to option shorthands and introspection 2012-12-08 15:22:55 +01:00
Stefano Sabatini
402ac72bbc lavfi/volume_justin: fix a few grammar inconsistencies in options description 2012-12-08 15:22:55 +01:00
Clément Bœsch
7f70db3f4f doc: sync avoid_negative_ts option with internal help. 2012-12-08 15:17:47 +01:00
Michael Niedermayer
57cee85023 Merge commit '096abfa15052977eed93f0b5e01afd2d47c53c1f'
* commit '096abfa15052977eed93f0b5e01afd2d47c53c1f':
  parser: fix large overreads
  bitstream: add get_bits64() to support reading more than 32 bits at once
  arm: detect cpu features at runtime on Linux

Conflicts:
	libavcodec/parser.c
	libavformat/mpegts.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:58:56 +01:00
Michael Niedermayer
7efee140d7 get_bits: rename get_bits_longlong to get_bits64
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:53:01 +01:00
Michael Niedermayer
b2b12a1022 mpegts: rename get_bits64 to get_ts64
Renaming because of name conflict

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:52:50 +01:00
Michael Niedermayer
aba1a48cc5 Merge commit 'b326755989b346d0d935e0628e8865f9b2951c30'
* commit 'b326755989b346d0d935e0628e8865f9b2951c30':
  arm: rename ARMVFP config symbol to VFP

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:24:16 +01:00
Michael Niedermayer
89c8eaa321 Merge commit '637606de2d2e0af0a9fa2f23f943765d7d7c5cd5'
* commit '637606de2d2e0af0a9fa2f23f943765d7d7c5cd5':
  configure: arm: make _inline arch ext symbols depend on inline_asm
  arm: use HAVE*_INLINE/EXTERNAL macros for conditional compilation

Conflicts:
	configure
	libavcodec/arm/dca.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:19:55 +01:00
Michael Niedermayer
ee9e7a2e7a Merge commit '7f2b3dcabd108926bde819ad574017f4161d1546'
* commit '7f2b3dcabd108926bde819ad574017f4161d1546':
  configure: arm: check inline and external asm support for extensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:13:58 +01:00
Michael Niedermayer
4f0cf62d5a Merge commit 'c6ebc9faa2210d7f36a3036c357f6f199520f575'
* commit 'c6ebc9faa2210d7f36a3036c357f6f199520f575':
  configure: add check_insn function
  configure: clean up check_inline_asm and check_as functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:08:47 +01:00
Michael Niedermayer
fa6bab7857 Merge commit 'f0fe245bc31cf4fa3b3ed0240cd1ab6f0d5043ea'
* commit 'f0fe245bc31cf4fa3b3ed0240cd1ab6f0d5043ea':
  configure: arm: set fast_clz and fast_unaligned in cpuflags section

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 14:04:41 +01:00
Michael Niedermayer
840a002b69 Merge commit '1234c66a315b139339d52ca193b3f1d67af9ce19'
* commit '1234c66a315b139339d52ca193b3f1d67af9ce19':
  configure: arm: detect toolchain default arch version

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 13:57:29 +01:00
Michael Niedermayer
7181806dc1 Merge commit '9ebd45c2d58ad9241ad09718679f0cf7fb57da52'
* commit '9ebd45c2d58ad9241ad09718679f0cf7fb57da52':
  configure: do not bypass cpuflags section if --cpu not given
  dct-test: arm: indicate required cpu features for optimised funcs
  snow: fix build after 594d4d5df3
  arm: fix use of uninitialised value in ff_fft_fixed_init_arm()
  avpicture: Don't assume a valid pix fmt in avpicture_get_size

Conflicts:
	libavcodec/avpicture.c
	libavcodec/snow.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 13:49:26 +01:00
Reimar Döffinger
8ee14aa5c7 lavf: improve avoid_negative_ts help text
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 13:30:43 +01:00
Janne Grunau
9a2e79116d golomb: use unsigned arithmetics in svq3_get_ue_golomb()
This prevents undefined behaviour of signed left shift if the coded
value is larger than 2^31. Large values are most likely invalid and
caused errors or by feeding random.

Validate every use of svq3_get_ue_golomb() and changed the place there
the return value was compared with negative numbers. dirac.c was clean,
fixed rv30 and svq3.
2012-12-08 12:55:10 +01:00
Stefano Sabatini
35e81441fc lavfi/sendcmd: switch to filter_frame API 2012-12-08 12:10:40 +01:00
Stefano Sabatini
3eae531de2 lavfi/swapuv: switch to filter_frame API 2012-12-08 12:10:34 +01:00
Nicolas George
e6701d51e1 lavc/mlpdec: reset layout when channels change.
Triggered by the sample for trac ticket #1726.
2012-12-08 10:12:38 +01:00
Justin Ruggles
1c012e6bfb x86: float_dsp: fix loading of the len parameter on x86-32 2012-12-07 21:19:29 -05:00
Paul B Mahol
3fd60d8049 gifdec: port to bytestream2 API
While here remove ff_lzw_cur_ptr() as it become obsolete.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-08 01:13:07 +00:00
Michael Niedermayer
e0a553d526 opt_list: fix vertical alignment of types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 01:34:28 +01:00
Michael Niedermayer
f4ceca6261 opt: print ranges in opt_list()
The formating can and should be improved.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 01:34:28 +01:00
Michael Niedermayer
a8e0d51bb8 opt: Add support to query ranges
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-08 01:34:28 +01:00
Josh Allmann
b3deec3253 takdec: fix initialisation of LOCAL_ALIGNED array
When LOCAL_ALIGNED uses manual alignment initialisation is not
possible.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-12-08 00:00:30 +01:00
Mans Rullgard
cd71af90a9 takdec: fix initialisation of LOCAL_ALIGNED array
When LOCAL_ALIGNED uses manual alignment initialisation is not
possible.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 22:13:57 +00:00
Michael Niedermayer
419ade4b61 lavc: check dimensions for video encoders
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 22:58:13 +01:00
Paul B Mahol
57231e4d5b tak: demuxer, parser, and decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-12-07 16:15:02 -05:00
Michael Niedermayer
096abfa150 parser: fix large overreads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-12-07 16:15:02 -05:00
Michael Niedermayer
41540b36a1 bitstream: add get_bits64() to support reading more than 32 bits at once
Also remove a duplicate function in the MPEG-TS demuxer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-12-07 16:15:02 -05:00
Michael Niedermayer
320ae9fb78 sws_scale: check input against NULL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 21:50:07 +01:00
Clément Bœsch
710c4baf52 lavf: VobSub demuxer. 2012-12-07 21:18:06 +01:00
Stefano Sabatini
fe508f807a lavfi/alphaextract: consistently prefer "cur" over "in" in filter_frame()
Improve consistency/readability.
2012-12-07 19:45:34 +01:00
Stefano Sabatini
0bc0d31b7b lavfi/alphaextract: access outlink properties rather than out_buf->video
Avoid one dereference, simplify.
2012-12-07 19:45:27 +01:00
Stefano Sabatini
130c6497d2 lavfi/alphaextract: fix assignment of invalid size value to memcpy in case linesize < 0
Fix crash, for example in the command:
ffmpeg -f image2 -vcodec pgmyuv -i tests/vsynth1/%02d.pgm \
  -vf "[in]format=yuv420p,split,alphamerge,split[o3][o4];
       [o4]vflip,alphaextract[alpha];[o3][alpha]alphamerge[out]" \
  -vcodec rawvideo -f nut md5:
2012-12-07 19:43:19 +01:00
Stefano Sabatini
c3ad91a3d7 lavfi/alphaextract: switch to filter_frame() API 2012-12-07 19:42:59 +01:00
Stefano Sabatini
1f467220cf lavfi/alphaextract: drop cur_linesize = out_linesize branch in draw_slice()
The code causes uninitialized data copy, and may be actually slower than
a loop over each line in case the padding is big.
2012-12-07 19:09:47 +01:00
Paul B Mahol
fe63d41302 brstm: do not return partial packets
Such packets are useless.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-07 17:55:45 +00:00
Mans Rullgard
b326755989 arm: rename ARMVFP config symbol to VFP
This is consistent with usual ARM nomenclature as well as with the
VFPV3 and NEON symbols which both lack the ARM prefix.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:04 +00:00
Mans Rullgard
b57c1da81e arm: detect cpu features at runtime on Linux
This allows compiling optimised functions for features not enabled
in the core build and selecting these at runtime if the system has
the necessary support.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:04 +00:00
Mans Rullgard
637606de2d configure: arm: make _inline arch ext symbols depend on inline_asm
This makes --disable-inline-asm work as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
7f2b3dcabd configure: arm: check inline and external asm support for extensions
This tests instruction set support in both inline and external asm.
If both fail, the base config option is disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
c6ebc9faa2 configure: add check_insn function
The check_insn function tests an instruction in both inline asm and
standalone assembly, and sets _external/_inline config properties
accordingly.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
f0fe245bc3 configure: arm: set fast_clz and fast_unaligned in cpuflags section
These are properties of the targeted core and do not depend on
specific assembly support in the toolchain which if missing will
render the controlling options here disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
1234c66a31 configure: arm: detect toolchain default arch version
Probe for the toolchain default architecture version if no --cpu flag
is present or an unknown cpu is specified.  Works with gcc, clang and
armcc.

This allows configuring based on the arch version even if it is not
explicitly specified to configure.  It also causes an explicit -march
flag to be added to CFLAGS and ASFLAGS, which in turn lets us do
proper instruction set tests with the assembler.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
9ebd45c2d5 configure: do not bypass cpuflags section if --cpu not given
This will allow arch-specific ways of determining the target
variant when none is specified on the command line.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
a7831d509f arm: use HAVE*_INLINE/EXTERNAL macros for conditional compilation
These macros reflect the actual capabilities required here.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
7fd90119bb configure: clean up check_inline_asm and check_as functions
The check_inline_asm function should check the actual C compiler,
not the one used for assembly files.  Usually these are the same,
but they might be different, typically when using a compiler other
than gcc.

The check_as should, as its name suggests, test the type of input
the AS command is used with, i.e. a standalond assembly (.S) file.

Finally, check for gnu assembler using the modified check_as as
this reflects actual usage.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
c29d49c1b3 dct-test: arm: indicate required cpu features for optimised funcs
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Anton Khirnov
380232fac3 snow: fix build after 594d4d5df3 2012-12-07 16:35:06 +01:00
Michael Niedermayer
857d7194ca Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: add a pointer for weighted prediction temporary buffer

Conflicts:
	libavcodec/h264.c
	libavcodec/h264.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 16:29:07 +01:00
Paul B Mahol
6777aa6387 lavc/takdec: s/get_b/get_bits_esc4
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-07 15:19:49 +00:00
Martin Storsjö
4ed0c35c40 avcodec: Fix a typo in an option description
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
2012-12-07 16:16:20 +01:00
Paul B Mahol
1c779854b5 lavc/takdec: simplify code
Merge get_scale/get_shift into set_sample_rate_params().
Rename tak_set_bps to set_bps_params and remove 2nd argument.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-07 15:01:02 +00:00
Michael Niedermayer
7c425e4f2d Merge commit 'd7d6efe42b0d2057e67999b96b9a391f533d2333'
* commit 'd7d6efe42b0d2057e67999b96b9a391f533d2333':
  h264: check sps.log2_max_frame_num for validity
  mov: validate number of DataReferenceBox entries against box size
  mov: compute avg_frame_rate only if duration is known
  flac: change minimum and default of lpc_passes option to 1

Conflicts:
	libavcodec/h264_ps.c
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 15:52:43 +01:00
Michael Niedermayer
af164d7d9f Merge commit 'c25fc5c2bb6ae8c93541c9427df3e47206d95152'
* commit 'c25fc5c2bb6ae8c93541c9427df3e47206d95152':
  fate: dpcm: Add dependencies
  SBR DSP x86: implement SSE sbr_hf_gen
  AAC SBR: use AVFloatDSPContext's vector_fmul
  fate: image: Add dependencies
  Changelog: add an entry for deprecating the avconv -vol option
  x86: float_dsp: fix compilation of ff_vector_dmul_scalar_avx() on x86-32

Conflicts:
	Changelog
	libavutil/x86/float_dsp.asm
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 15:21:41 +01:00
Mans Rullgard
92dad6687f arm: fix use of uninitialised value in ff_fft_fixed_init_arm()
When initialising an FFTContext for a plain FFT, mdct_bits is not set
and can contain a garbage value.  Since nbits is always valid and for
MDCT operation is mdct_bits - 2 checking this instead avoids using an
uninitialised value while having the same effect.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 13:11:57 +00:00
Paul B Mahol
8ca8b43d71 lavf/pcm: check size, do not produce invalid packets
Inspired by 92b8c9d89e.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-07 13:05:43 +00:00
Michael Niedermayer
ea6da80cb4 diracdec: check dimensions against chroma format.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 13:43:40 +01:00
Martin Storsjö
2c96392277 avpicture: Don't assume a valid pix fmt in avpicture_get_size
When called from the v4l2 input device, pix_fmt can be
AV_PIX_FMT_NONE (for jpeg formats). Before 50ba57e0, this wasn't
an issue for avpicture_get_size, but after that commit, this
lead to crashes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-07 14:28:47 +02:00
Janne Grunau
a394959bbe h264: add a pointer for weighted prediction temporary buffer
Reusing MpegEncContext's obmc_scratchpad for this becomes a mess with
adaptive frame-mt.
2012-12-07 11:43:28 +01:00
Janne Grunau
d7d6efe42b h264: check sps.log2_max_frame_num for validity
Fixes infinite or long taking loop in frame num gap code in
the fuzzed sample bipbop234.ts_s223302.

CC: libav-stable@libav.org
2012-12-07 11:43:28 +01:00
Janne Grunau
8cc2fa1e5d mov: validate number of DataReferenceBox entries against box size
Avoids a 2G memory allocation and parsing of random data in
mov_read_dref(). The fuzzed sample sample.mp4_s224424 triggers this.
2012-12-07 11:43:28 +01:00
Janne Grunau
80b6b31417 mov: compute avg_frame_rate only if duration is known
Fixes an assert in fuzzed sample sample.mp4_s265930.
2012-12-07 11:43:28 +01:00
Janne Grunau
480be07a96 flac: change minimum and default of lpc_passes option to 1
Avoid use of uninitialized and uncomputed linear least square models
during ff_lpc_calc_coefs() for FF_LPC_TYPE_CHOLESKY. Fixes running
make fate-flac-16-lpc-cholesk with valgrind --undef-value-errors=yes.
2012-12-07 11:43:28 +01:00
Diego Biurrun
c25fc5c2bb fate: dpcm: Add dependencies 2012-12-07 11:34:16 +01:00
Christophe Gisquet
2aef3d66c9 SBR DSP x86: implement SSE sbr_hf_gen
Start and end index are multiple of 2, therefore guaranteeing aligned access.
Also, this allows to generate 4 floats per loop, keeping the alignment all
along.

Timing:
- 32 bits: 326c -> 172c
- 64 bits: 323c -> 156c

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-12-07 11:04:26 +01:00
Christophe Gisquet
9a16359c38 AAC SBR: use AVFloatDSPContext's vector_fmul
Around 5% speedup on the code block using 'vector_fmul_add's.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-12-07 10:33:39 +01:00
Diego Biurrun
33086f9265 fate: image: Add dependencies 2012-12-07 10:14:31 +01:00
Michael Niedermayer
f5d6b0c9c2 diracdec: fix typo in mctmp allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 02:24:14 +01:00
Michael Niedermayer
2f6ec9fdd7 diracdec: Test mctmp and mcscratch for malloc failure.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 02:24:14 +01:00
Michael Niedermayer
b84d1bf193 diracdec: fix emulated_edge condition, fix out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-07 02:24:14 +01:00
Paul B Mahol
f8d68822c0 takdec: use samplefmt.h from libavutil
Instead of having own code for calculating decoded buffer size
just use already provided functions from libavutil.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-07 01:11:55 +00:00
Paul B Mahol
6a7fed193c add missing dependency for tak demuxer 2012-12-07 00:15:47 +00:00
Paul B Mahol
4e4a95b18e takdec: remove get_code() and use get_sbits() directly
As found by Justin, this is probably bug in reference decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-07 00:03:47 +00:00
Carl Eugen Hoyos
24b20087bd Fix compilation with yasm 0.6.2. 2012-12-07 00:26:45 +01:00
Michael Niedermayer
892750b07b fix tipo
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 22:59:21 +01:00
Stefano Sabatini
da9a45b681 lavfi/tinterlace: drop redundant NULL checks in uninit() 2012-12-06 22:32:03 +01:00
Stefano Sabatini
c6a216771f lavfi/tinterlace: add support to option parsing
Simplify code, and provide introspection through the AVOption system.
2012-12-06 22:31:42 +01:00
Stefano Sabatini
fef7b2e0be lavfi/tinterlace: switch to filter_frame API
Also add missing NULL checks.
2012-12-06 22:30:59 +01:00
Michael Niedermayer
656500c503 lavf: improve help text for avoid_negative_ts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 22:06:40 +01:00
Michael Niedermayer
4b6869d6e0 bitstream: make vlc init of static tables thread safe.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 21:46:42 +01:00
Clément Bœsch
bbd44f6ca4 lavfi/mp: switch to ff_filter_frame. 2012-12-06 21:11:28 +01:00
Paul B Mahol
586c2528a0 dxa: port to bytestream2 API
Protects against overreads in input buffer.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 19:09:48 +00:00
Paul B Mahol
547b8aeed4 smacker: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 18:06:52 +00:00
Paul B Mahol
29c3ebf56e siff: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 18:00:37 +00:00
Paul B Mahol
7510a9a466 lavf/apedec: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 17:17:49 +00:00
Paul B Mahol
4d1912ff4d huffyuv: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 16:56:40 +00:00
Paul B Mahol
4a722a5cab huffyuv: check for malloc failures
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 16:44:43 +00:00
Justin Ruggles
b64ba37c4c Changelog: add an entry for deprecating the avconv -vol option 2012-12-06 11:33:38 -05:00
Paul B Mahol
7f261ac850 huffyuv: make use of av_fast_padded_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 16:31:54 +00:00
Clément Bœsch
eaa47e7454 lavfi/deshake: small align prettifying. 2012-12-06 16:20:31 +01:00
Clément Bœsch
03778575b9 lavfi/deshake: switch inverted comments. 2012-12-06 16:20:31 +01:00
Clément Bœsch
0678641b7c lavfi/deshake: remove unecessary check before unref. 2012-12-06 16:20:31 +01:00
Clément Bœsch
e7b0e83e96 lavfi/deshake: switch to filter_frame. 2012-12-06 16:20:31 +01:00
Michael Niedermayer
71949ef715 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: slice-mt: check master context for valid current_picture_ptr
  h264: slice-mt: get last_pic_dropable from master context
  alacenc: add support for multi-channel encoding

Conflicts:
	Changelog
	libavcodec/alac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 16:14:38 +01:00
Michael Niedermayer
54a71f2e6c Merge commit 'b519298a1578e0c895d53d4b4ed8867b1c031a56'
* commit 'b519298a1578e0c895d53d4b4ed8867b1c031a56':
  pixdesc: fix yuva 10bit bit depth
  avconv: deprecate the -vol option
  x86: af_volume: add SSE2/SSSE3/AVX-optimized s32 volume scaling
  x86: af_volume: add SSE2-optimized s16 volume scaling

Conflicts:
	ffmpeg.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 15:55:47 +01:00
Michael Niedermayer
1bb547192f lavfi: rename af_volume to af_volume_stefano
This matches the naming style of the new af_volume_justin filter.

Note, Yes i would too prefer having one filter instead of 2.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 15:29:23 +01:00
Michael Niedermayer
b38c79bf23 Merge commit 'b384e031daeb1ac612620985e3e5377bc587559c'
* commit 'b384e031daeb1ac612620985e3e5377bc587559c':
  lavfi: add volume filter

Conflicts:
	Changelog
	libavfilter/Makefile
	libavfilter/af_volume.c
	libavfilter/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 15:18:59 +01:00
Clément Bœsch
377d201790 lavd/lavfi: fix float.h include.
float.h is a system header.
2012-12-06 15:09:47 +01:00
Clément Bœsch
a0b2e8e155 lavfi/silencedetect: use eval builtin to parse dB.
Also update FATE test to use the dB form.
2012-12-06 15:08:38 +01:00
Michael Niedermayer
15784c2bab Merge commit '9d5c62ba5b586c80af508b5914934b1c439f6652'
* commit '9d5c62ba5b586c80af508b5914934b1c439f6652':
  lavu/opt: do not filter out the initial sign character except for flags
  eval: treat dB as decibels instead of decibytes
  float_dsp: add vector_dmul_scalar() to multiply a vector of doubles

Conflicts:
	libavutil/eval.c
	tests/ref/fate/eval

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 14:33:38 +01:00
Justin Ruggles
ecc8b02194 x86: float_dsp: fix compilation of ff_vector_dmul_scalar_avx() on x86-32
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-12-06 14:11:15 +01:00
Nicolas George
32aedebdc5 lavf: add a concat demuxer. 2012-12-06 14:09:14 +01:00
Stefano Sabatini
c3fa6add58 lavfi/field: switch to filter_frame API 2012-12-06 13:51:34 +01:00
Stefano Sabatini
3942294fd5 lavfi/drawtext: make use of outlink variable in filter_frame()
Fix warning.
2012-12-06 13:51:27 +01:00
Paul B Mahol
3bb3cddd96 mmfdec: fix seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-06 11:56:00 +00:00
Clément Bœsch
1e85fd6a47 lavfi/mp: remove dead extern vf_info_t declarations. 2012-12-06 12:52:58 +01:00
anonymous
de42d2a347 lavfi/mp: add ff_ prefix to exported symbols 2012-12-06 12:38:37 +01:00
Clément Bœsch
0f65d56080 Add examples/resampling_audio to .gitignore. 2012-12-06 12:13:01 +01:00
Stefano Sabatini
e8278b9d56 doc/decoders: fix typo in "@Options" 2012-12-06 10:16:10 +01:00
Stefano Sabatini
89920387da examples: add resampling_audio.c file 2012-12-06 10:09:37 +01:00
Janne Grunau
3ab5f7dc13 h264: slice-mt: check master context for valid current_picture_ptr
Fixes errors in slice based multithreading introduced in 0b300daad2.
2012-12-06 04:45:04 +01:00
Janne Grunau
24c62ea7a5 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 .
2012-12-06 04:44:57 +01:00
Michael Niedermayer
7885fa7685 ff_lock_avcodec: make the lock state be consistent in case of failure.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 03:12:34 +01:00
Michael Niedermayer
2dec950f49 avcodec_open: if obtaining a lock fails, dont attempt to unlock it.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 02:52:46 +01:00
Michael Niedermayer
0393cf15db Revert "Acquire lock when initializing parsers."
This reverts commit 7feef7dbca.

This commit causes assertion failures due to use of parser_init from multiple
threads, for example indirectly by ffmpeg.c and more directly from the
packet read functions.

I dont know how to fix this quickly, and fixing ffmpeg.c leaves
the possibility of other applications being affected.
Crashing the applications until this is resolved is clearly no good
thus this revert, so we have time to think about the problem.

Crashes can be reproduced by using multiple input files in ffmpeg.
2012-12-06 02:52:46 +01:00
Michael Niedermayer
eed865540a Revert "Add assert that the avcodec lock is held when initializing static VLC tables."
This reverts commit dd154198b1.
2012-12-06 02:52:07 +01:00
Michael Niedermayer
d7169280a6 frame_thread_encoder: fix locking while locks are held
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 02:51:26 +01:00
Michael Niedermayer
bde6f6eadc vc1dec: prevent v_edge_pos from becoming negative.
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 02:51:26 +01:00
Michael Niedermayer
b6a7f66f93 resample: remove disabled debug code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-06 02:51:26 +01:00
Clément Bœsch
d3451a9c0f fate/hqdn3d: add -idct simple.
This should fix FATE failure on ARM. IDCT is required since it's a JPEG
source.
2012-12-05 23:36:31 +01:00
Janne Grunau
5945c7b35d h264: slice-mt: check master context for valid current_picture_ptr
Fixes errors in slice based multithreading introduced in 0b300daad2.

CC: libav-stable@libav.org
2012-12-05 23:16:37 +01:00
Janne Grunau
a8cb1746c5 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 .

CC: libav-stable@libav.org
2012-12-05 23:16:37 +01:00
Clément Bœsch
2273b3aaf9 swr: remove unused ONE define. 2012-12-05 23:04:01 +01:00
Justin Ruggles
5e1bbb8c7e alacenc: add support for multi-channel encoding 2012-12-05 16:13:37 -05:00
Paul B Mahol
9ef29af2e8 cafenc: do not include riff.h
ff_codec_get_tag() was moved to internal.h

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 20:44:28 +00:00
Paul B Mahol
9f66531d46 lavc/dxa: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 20:28:45 +00:00
Paul B Mahol
0aabd35b62 lavf/dxa: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 20:18:04 +00:00
Paul B Mahol
c5008135c2 dxa: signal EOF
Fixes #1948.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 20:03:30 +00:00
Reimar Döffinger
dd154198b1 Add assert that the avcodec lock is held when initializing static VLC tables.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-12-05 21:01:17 +01:00
Reimar Döffinger
7feef7dbca Acquire lock when initializing parsers.
This is necessary since they might be initializing or
even using static VLC tables.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-12-05 21:01:17 +01:00
Reimar Döffinger
25fec8595d avcodec: add ff_lock/unlock_avcodec functions.
Will be used in future patches, together with the
variable that allows checking whether the lock is held.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-12-05 21:01:17 +01:00
Piotr Bandurski
5381960501 wmaenc: add new line to some error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 20:29:27 +01:00
Wolfram Gloger
928346091a mpegvideo_parser: fix buffer access beyond end
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 20:29:18 +01:00
Reimar Döffinger
58df8befda av_assert should use AV_LOG_PANIC.
The description of AV_LOG_PANIC 100% matches what av_assert
does, while AV_LOG_FATAL does not really.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-12-05 20:25:32 +01:00
Michael Niedermayer
6d7effa9bd mpegvideo_enc: use av_log() in debug code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 19:31:27 +01:00
Michael Niedermayer
911c00e60f motion_est: use av_log() in debug code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 19:31:27 +01:00
Michael Niedermayer
7c2481f2d7 j2kenc: remove duplicate debug functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 19:31:27 +01:00
Michael Niedermayer
9bb188da96 j2k: avoid printf() useage in debug code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 19:31:27 +01:00
Michael Niedermayer
b023392f34 mpegvideo: remove #if/define PARANOID code
This code never did anything as far as i can remember

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 19:31:27 +01:00
Paul B Mahol
4012cd6c4f lavc: fix decode_frame() third parameter semantics for rest of video decoders
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 18:24:43 +00:00
Paul B Mahol
b519298a15 pixdesc: fix yuva 10bit bit depth
It was wrongly set as the yuva 16bit one.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-05 17:52:55 +01:00
Michael Niedermayer
835fd779a4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: workaround for slighly broken 'test' shell builtin
  mimic: initialize padding of swap_buf through av_fast_padded_malloc
  eamad: initialize padding of bitstream_buf through av_fast_padded_malloc()
  raw demuxer: initialize end of partial packets

Conflicts:
	tests/fate-run.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 17:33:12 +01:00
Justin Ruggles
b384e031da lavfi: add volume filter
Based on the volume filter in FFmpeg written by Stefano Sabatini
<stefasab@gmail.com>.
2012-12-05 11:23:37 -05:00
Justin Ruggles
9a71d362a6 avconv: deprecate the -vol option
Remove the code for volume scaling in avconv.c and instead auto-insert a
volume filter into the beginning of the filter chain.
2012-12-05 11:23:37 -05:00
Justin Ruggles
b30a363331 x86: af_volume: add SSE2/SSSE3/AVX-optimized s32 volume scaling 2012-12-05 11:23:37 -05:00
Justin Ruggles
f96f1e06a4 x86: af_volume: add SSE2-optimized s16 volume scaling 2012-12-05 11:23:37 -05:00
Justin Ruggles
9d5c62ba5b lavu/opt: do not filter out the initial sign character except for flags
This allows parsing of special-case negative numbers like decibels.
2012-12-05 11:23:36 -05:00
Justin Ruggles
5312268b34 eval: treat dB as decibels instead of decibytes 2012-12-05 11:23:36 -05:00
Justin Ruggles
ac7eb4cb20 float_dsp: add vector_dmul_scalar() to multiply a vector of doubles
Include x86-optimized versions for SSE2 and AVX.
2012-12-05 11:23:36 -05:00
Michael Niedermayer
fc1152de41 Merge commit 'df9b9567518f2840d79a4a96b447ebe1aa326408'
* commit 'df9b9567518f2840d79a4a96b447ebe1aa326408':
  lavc: fix decode_frame() third parameter semantics for video decoders

Conflicts:
	libavcodec/cscd.c
	libavcodec/eamad.c
	libavcodec/ffv1dec.c
	libavcodec/gifdec.c
	libavcodec/h264.c
	libavcodec/iff.c
	libavcodec/mjpegdec.c
	libavcodec/pcx.c
	libavcodec/vp56.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 17:20:19 +01:00
Michael Niedermayer
022553e875 Merge commit '387bef95d28019c13c6805cfa4079e59948284e5'
* commit '387bef95d28019c13c6805cfa4079e59948284e5':
  lavc: factorise setting buffer type in avcodec_default_get_buffer().

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 17:02:42 +01:00
Michael Niedermayer
83db6cb521 Merge commit 'e57c4706e969afa1f2384481b955ccd9494cddb5'
* commit 'e57c4706e969afa1f2384481b955ccd9494cddb5':
  lavc: don't reuse audio buffers

This commit causes a 0.5% speedloss for mp3 and 2% for raw pcm, that is
"time ffmpeg" style tested thus includes disk IO, demux and parsing

I would not have merged it if it wasnt required for the "new" buffer API
but sadly it is.
Once the new API is in ill reimplement proper buffer reuse, which will
fix this speedloss. In case we choose not to merge the "new" buffer
API then this commit here should be reverted.

Conflicts:
	libavcodec/internal.h
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 16:53:12 +01:00
Michael Niedermayer
d2a3f08daf lavc: move ff_init_buffer_info() down to ff_get_buffer()
and remove redundant code from ff_get_buffer()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 15:58:37 +01:00
Michael Niedermayer
2f980cf39a Merge commit 'ff953fecffd3b9a616a046723fb9d4690be032a6'
* commit 'ff953fecffd3b9a616a046723fb9d4690be032a6':
  lavc: set frame properties in ff_get_buffer().

Conflicts:
	libavcodec/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 15:58:07 +01:00
Michael Niedermayer
874c5b02c4 Merge commit '594d4d5df3c70404168701dd5c90b7e6e5587793'
* commit '594d4d5df3c70404168701dd5c90b7e6e5587793':
  lavc: add a wrapper for AVCodecContext.get_buffer().

Conflicts:
	libavcodec/4xm.c
	libavcodec/8svx.c
	libavcodec/bmv.c
	libavcodec/cljr.c
	libavcodec/cscd.c
	libavcodec/dnxhddec.c
	libavcodec/dpcm.c
	libavcodec/dpx.c
	libavcodec/eacmv.c
	libavcodec/eamad.c
	libavcodec/frwu.c
	libavcodec/g723_1.c
	libavcodec/gifdec.c
	libavcodec/idcinvideo.c
	libavcodec/iff.c
	libavcodec/indeo3.c
	libavcodec/internal.h
	libavcodec/interplayvideo.c
	libavcodec/kmvc.c
	libavcodec/mpc7.c
	libavcodec/mpegaudiodec.c
	libavcodec/pcx.c
	libavcodec/pngdec.c
	libavcodec/pnmdec.c
	libavcodec/rl2.c
	libavcodec/snow.c
	libavcodec/targa.c
	libavcodec/tscc.c
	libavcodec/txd.c
	libavcodec/utils.c
	libavcodec/v210dec.c
	libavcodec/vb.c
	libavcodec/vmdav.c
	libavcodec/vp56.c
	libavcodec/vqavideo.c
	libavcodec/wavpack.c
	libavcodec/wnv1.c
	libavcodec/xl.c
	libavcodec/yop.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 15:18:12 +01:00
Paul B Mahol
4727611d48 ircamenc: 10l do not use avio_skip()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 13:46:35 +00:00
Paul B Mahol
4c18562d02 Ensoniq Paris Audio File demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 13:01:22 +00:00
Paul B Mahol
880191637f IRCAM demuxer & muxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 13:01:22 +00:00
Paul B Mahol
8ecf22ffb0 rsodec: use ff_pcm_read_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 12:40:57 +00:00
Paul B Mahol
acac16b5c7 soxdec: use ff_pcm_read_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 12:40:57 +00:00
Paul B Mahol
c090b5427d audec: use ff_pcm_read_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 12:40:57 +00:00
Paul B Mahol
a647eb5a87 pvfdec: use ff_pcm_read_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 12:40:57 +00:00
Paul B Mahol
15ab0393fd avr: use ff_pcm_read_packet()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 12:40:57 +00:00
Paul B Mahol
93dc8ed0a1 pcmdec: move read_packet function to pcm.c so it can be shared with other demuxers
While here remove pts/dts code, it is apparently not needed and cause
problems for demuxers that will use such function.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 12:40:57 +00:00
Michael Niedermayer
99efd59626 Merge commit 'cb45553f577f8e0ebfe05d3287e1b6fa5859b967'
* commit 'cb45553f577f8e0ebfe05d3287e1b6fa5859b967':
  Remove pointless #undefs of previously forbidden functions.
  fate: Add dependencies for bmp, cdxl, dfa, mp3

Conflicts:
	doc/examples/muxing.c
	libavfilter/filtfmts.c
	libavutil/des.c
	libavutil/eval.c
	libavutil/log.c
	libavutil/parseutils.c
	tests/fate/mp3.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 13:34:45 +01:00
Michael Niedermayer
1fa2bdc90a fate: disable vf_gradfun test
The non working test interferes with other peoples work

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 13:10:24 +01:00
Michael Niedermayer
09de0ffeab vc1dec: Fix null pointer dereference in vc1_decode_skip_blocks()
This handles the last frame being unavailable like all the other
code in vc1dec.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 13:01:16 +01:00
Nicolas George
217b10de3f lavc/dvdsubdec: accept palette from options.
On DVDs, the palette is part of the IFO file and therefore
not available when reading from a dumped VOB file.
2012-12-05 09:25:48 +01:00
Michael Niedermayer
9db3fb6ed8 oggdec: prevent codec from changing through ogg_replace_stream()
This prevents inconsistencies leading to out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 04:40:19 +01:00
Michael Niedermayer
599ae9995f ff_emulated_edge_mc: fix handling of w/h being 0
Fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 03:45:10 +01:00
Paul B Mahol
45326cb684 pixdesc: fix broken yuva definitions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-05 01:04:45 +00:00
Michael Niedermayer
8bf16e677f ffv1enc: allow encoding with 1 slice for CIF and smaller in version 3
the default is still 4 slices for any resolution, this just allows the user
to force 1 slice.
This in my quick test improves compression by 1% for a 320x240 sample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-05 01:22:43 +01:00
Carl Eugen Hoyos
4e6f9db493 Set some audio stream properties in the vivo demuxer.
This allows playback with MPlayer and the binary decoder.

Reviewed-by: Paul B Mahol
2012-12-05 01:21:12 +01:00
Mans Rullgard
da025d115a fate: workaround for slighly broken 'test' shell builtin
Some shells, e.g. minix3, have a broken 'test' builtin which fails
if the first operand of a binary operator looks like a unary operator.
Prefixing the values with 'x' prevents this from happening.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-04 23:38:17 +00:00
Janne Grunau
c15fea7933 mimic: initialize padding of swap_buf through av_fast_padded_malloc 2012-12-05 00:02:44 +01:00
Janne Grunau
42060c7030 eamad: initialize padding of bitstream_buf through av_fast_padded_malloc() 2012-12-05 00:02:44 +01:00
Janne Grunau
54c7fe6d68 raw demuxer: initialize end of partial packets 2012-12-05 00:02:43 +01:00
Clément Bœsch
b5ffbcd0cd fate: add gradfun filter test. 2012-12-05 00:01:17 +01:00
Clément Bœsch
ab981cab93 fate: add hqdn3d filter test. 2012-12-05 00:01:17 +01:00
Clément Bœsch
ab5497df15 lavfi/subtitles: 10l close codec before format.
Fix invalid memory accesses.
2012-12-04 23:56:02 +01:00
Anton Khirnov
df9b956751 lavc: fix decode_frame() third parameter semantics for video decoders
It's got_frame, not data size
2012-12-04 21:45:36 +01:00
Anton Khirnov
387bef95d2 lavc: factorise setting buffer type in avcodec_default_get_buffer(). 2012-12-04 21:45:23 +01:00
Anton Khirnov
e57c4706e9 lavc: don't reuse audio buffers
Any performance gain from this is negligible and not worth the extra
code.
2012-12-04 21:43:53 +01:00
Anton Khirnov
ff953fecff lavc: set frame properties in ff_get_buffer().
There is no point in duplicating this code in every get_buffer()
implementation.
2012-12-04 21:42:44 +01:00
Anton Khirnov
594d4d5df3 lavc: add a wrapper for AVCodecContext.get_buffer().
It will be useful in the upcoming transition to refcounted AVFrames.
2012-12-04 21:41:59 +01:00
Anton Khirnov
cb45553f57 Remove pointless #undefs of previously forbidden functions. 2012-12-04 21:40:22 +01:00
Nicolas George
03847eb825 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.
2012-12-04 19:49:51 +01:00
Nicolas George
0444733b78 lavfi/drawtext: add the reload option. 2012-12-04 19:06:22 +01:00
Michael Niedermayer
83ddedbbf2 lavf: the core rfps code needs 2 durations to estimate rfps
This fixes a regression where this count became 1 with
HPM-GC\ EXPORT\ FCP-1A-AVCI100-1080i25-001.mxf

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-04 18:04:29 +01:00
Paul B Mahol
a3bb59b163 av_register_protocol is gone :(
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-04 17:01:27 +00:00
Paul B Mahol
481c843a47 rawvideodec: set bit rate
Fixes #1989.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-04 15:52:58 +00:00
Clément Bœsch
3b1b8f88b7 ffmpeg: small indent fix. 2012-12-04 16:40:11 +01:00
Michael Niedermayer
60c2cddff0 ffmpeg: use the correct variables in do_video_stats()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-04 16:36:09 +01:00
Thierry Foucu
e98fab1372 Update video stats log during encode flush
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-04 16:36:09 +01:00
Paul B Mahol
18aaed6475 gifdec: do not handle timestamps
It is broken, and results will be messed up when seeking.

This also fix duration displayed for streams when using -c copy.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-04 15:21:24 +00:00
Carl Eugen Hoyos
0877f64fea Add debug output when skipping unknown swf tags.
Reviewed-by: Clément Bœsch
2012-12-04 15:52:37 +01:00
Diego Biurrun
90153465b0 fate: Add dependencies for bmp, cdxl, dfa, mp3 2012-12-04 15:24:05 +01:00
Michael Niedermayer
dacd6202ec Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ppc: always use pic for shared libraries
  build: cosmetics: Move CONFIG_RTPDEC entry to a more suitable place
  fate: ea, h264: prettyprinting and ordering cosmetics

Conflicts:
	tests/fate/ea.mak
	tests/fate/h264.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-04 14:23:22 +01:00
Paul B Mahol
765debf51f auenc: remove pointless assigment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-04 12:42:50 +00:00
Paul B Mahol
266e88a47c mmf: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-04 11:59:46 +00:00
James Almer
b70251c0ad AST Muxer
Signed-off-by: James Almer <jamrial@gmail.com>
2012-12-04 11:25:46 +00:00
James Almer
7f0e7fc9e2 ast: Rename ast.c -> astdec.c
Signed-off-by: James Almer <jamrial@gmail.com>
2012-12-04 10:51:38 +00:00
Peter Ross
1696c72af4 iff demuxer: include DEEP TVDC lookup table in extradata buffer
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-04 20:53:26 +11:00
Peter Ross
59fe5a339b iff decoder: DEEP TVDC 32-bit decoder
Signed-off-by: Peter Ross <pross@xvid.org>
2012-12-04 20:53:26 +11:00
Michael Niedermayer
400647f9ba configure: Fix ARM thumb detection
The detection detects the default but not if it even works.
Check building a simple piece of code and disable thumb if it fails
This fixes a compile failure

If someone has a better idea, just replace this by it!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-04 05:47:10 +01:00
Michael Niedermayer
5e1bacf2d4 matroskadec: reset size when freeing data.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-04 03:50:09 +01:00
Clément Bœsch
359cd12a43 lavfi/mp: fix invalid read with filters with no argument. 2012-12-04 03:47:16 +01:00
Clément Bœsch
ef1868351d lavfi/removelogo: switch to ff_filter_frame. 2012-12-04 02:31:40 +01:00
Clément Bœsch
3313e46c4a lavfi: add subtitles filter. 2012-12-04 01:49:03 +01:00
Luca Barbato
1944d532a8 ppc: always use pic for shared libraries
CC: libav-stable@libav.org
2012-12-03 22:53:30 +01:00
Clément Bœsch
b5eb630e21 lavfi: remove some video w/h settings after avfilter_copy_buffer_ref_props.
video->[wh] will be set with the same values as the input after
avfilter_copy_buffer_ref_props. These filters don't change the size of
the input so there is no need for this code.
2012-12-03 21:47:03 +01:00
Clément Bœsch
d91388367f lavfi/gradfun: remove check for AV_PERM_PRESERVE.
This check does not make sense in this context, see
doc/filter_design.txt for details about the usage of such flag.
2012-12-03 20:38:29 +01:00
Reimar Döffinger
e2fc6a01f6 libspeex: allow custom sample rates again.
This was broken by 3b061c5e10
Fixes trac issue #1974.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-12-03 19:59:04 +01:00
Diego Biurrun
62641dce71 build: cosmetics: Move CONFIG_RTPDEC entry to a more suitable place 2012-12-03 19:32:03 +01:00
Michael Niedermayer
03290ffb57 mpegts: check that codec is not open in mpegts_find_stream_type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 17:34:38 +01:00
Michael Niedermayer
8897b5aa4c mpegts_set_stream_info: remove unneeded codec id check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 17:29:56 +01:00
Michael Niedermayer
4c160b68cc ff_mp4_read_dec_config_descr: check that the codec is not open
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 17:27:52 +01:00
Peter Ross
f2ceb67e5b doc: describe micro versioning policy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 16:31:51 +01:00
Paul B Mahol
0a8360c4f9 takdec: add .sample_fmts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-03 15:21:19 +00:00
Paul B Mahol
694dc6251e shorten: update .sample_fmts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-03 15:13:35 +00:00
Diego Biurrun
201628899b fate: ea, h264: prettyprinting and ordering cosmetics 2012-12-03 15:34:37 +01:00
Michael Niedermayer
d0b7e832fe Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Strip ordinals from mingw generated def files
  configure: arm: detect default thumb state of compiler

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 15:28:35 +01:00
Stefano Sabatini
8bee8f778a lswr/swresample: use AV_OPT_TYPE_SAMPLE_FMT for sample format options
Improve usability and robustness.
2012-12-03 13:49:56 +01:00
Martin Storsjö
eb7018d2fc configure: Strip ordinals from mingw generated def files
The def files are used for generating import libraries for
other toolchains (in particular, for generating import libraries
for MSVC for DLLs built with mingw).

The def files produced by mingw/gcc contains ordinals for each
exported function. When MSVC tools generate import libraries
from such a def file, MSVC links to the DLL by the ordinals
instead of linking by name.

Since the def files aren't maintained by hand, the ordinal
numbers are assigned (more or less) randomly and any caller
linking to the libs by ordinals will break as soon as the libraries
export more/fewer functions.

Therefore, strip out the ordinals from the generated def files,
to make users link to the libraries by name.

Callers linking to the DLLs using the gcc provided import library
link by name as they should.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-03 13:39:47 +02:00
Mans Rullgard
66371c2851 configure: arm: detect default thumb state of compiler
This makes configure honour the compiler default if thumb is not
explicitly enabled or disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-03 11:06:06 +00:00
Piotr Bandurski
7e93b0ba4b ra144enc: reject unsupported sample rates 2012-12-03 10:03:27 +00:00
Michael Niedermayer
5e2be27e65 fate: fix typos in wtv seek test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 03:15:41 +01:00
Michael Niedermayer
b452c8a722 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: fft: Fix libavcodec dependency
  build: Make the ISMV muxer select the MOV muxer
  configure: move arm arch extensions to a separate variable

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 02:59:19 +01:00
Michael Niedermayer
7711f19eda Merge commit 'e816034a5fa131b13c4ad87bb0b5065b4f5697c6'
* commit 'e816034a5fa131b13c4ad87bb0b5065b4f5697c6':
  fate-seek: remove use of gnu make 3.82 only private modifier
  fate: move vsynth reference files to their own directory
  fate: move fate-acodec reference files to their own dir
  configure: avplay now depends on avresample
  fate: split dependencies for fate-seek tests

Conflicts:
	configure
	tests/fate/seek.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 02:33:27 +01:00
Michael Niedermayer
211372e86d Merge commit '0b300daad2f5cb59a7c06dde5ac701685e6edf16'
* commit '0b300daad2f5cb59a7c06dde5ac701685e6edf16':
  h264: error out on unset current_picture_ptr for h->current_slice > 0
  avprobe: report per stream bit rate if set by the decoder
  aac: avoid a memcpy in sbr_qmf_analysis

Conflicts:
	avprobe.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 01:56:47 +01:00
Michael Niedermayer
9c208b404c vp56: Ignore reconfiguration from the alpha plane.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-03 01:37:40 +01:00
Diego Biurrun
eebc40e177 fate: fft: Fix libavcodec dependency 2012-12-03 01:34:14 +01:00
Diego Biurrun
31f16dc1a1 build: Make the ISMV muxer select the MOV muxer
They share the same code, so building one w/o the other makes no sense.
2012-12-03 01:20:10 +01:00
Mans Rullgard
81dfa21ec9 configure: move arm arch extensions to a separate variable
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-03 00:15:19 +00:00
Janne Grunau
e816034a5f fate-seek: remove use of gnu make 3.82 only private modifier 2012-12-03 00:37:07 +01:00
Janne Grunau
c8148e5c93 fate: move vsynth reference files to their own directory 2012-12-03 00:36:10 +01:00
Janne Grunau
337dbe2adb fate: move fate-acodec reference files to their own dir 2012-12-03 00:29:35 +01:00
Diego Biurrun
d173ede1b7 configure: avplay now depends on avresample 2012-12-02 23:39:35 +01:00
Janne Grunau
abab0435d4 fate: split dependencies for fate-seek tests
Each fate-seek test depends now only on the corresponding fate-acodec,
fate-vsynth2 or fate-lavf test which creates the file seek-tests
operates on. The tests and references are renamed to match the test they
depend on.
2012-12-02 23:25:41 +01:00
Janne Grunau
0b300daad2 h264: error out on unset current_picture_ptr for h->current_slice > 0
Fixes a segfault with fuzzed sample sample_varPAR_s11622_r001-02.avi.

CC: libav-stable@libav.org
2012-12-02 23:24:53 +01:00
Janne Grunau
89a4465bd9 avprobe: report per stream bit rate if set by the decoder 2012-12-02 23:23:34 +01:00
Michael Niedermayer
ec79b1fc88 wtvdec: fix null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 22:36:15 +01:00
Christophe Gisquet
e32bea8eb4 aac: avoid a memcpy in sbr_qmf_analysis
Swapping buffer indices allows saving one memcpy that accounts for 1% of the
runtime, according to oprofile.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-02 21:07:48 +01:00
Michael Niedermayer
80aa89bdff asfdec: check extradata size before alloc and read
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 20:44:58 +01:00
Michael Niedermayer
936eaa89be h264: check for integer overflow, fix null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 20:44:58 +01:00
Nicolas George
2cb227f6a2 lavu/channel_layout: document the semantic of layouts. 2012-12-02 18:51:04 +01:00
Stefano Sabatini
5148147b26 lavfi/bbox: switch to ff_filter_frame() API 2012-12-02 18:13:49 +01:00
Stefano Sabatini
255be0734d lavfi/alphamerge: fix leak introduced in 217163eb 2012-12-02 18:04:57 +01:00
Paul B Mahol
49435d3888 gifdec: read pixel aspect ratio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-02 16:59:11 +00:00
Nicolas George
ddd87236f0 lavfi/vf_super2xsai: fix output ref size. 2012-12-02 17:08:17 +01:00
Stefano Sabatini
bd465fdc73 lavfi/framestep: switch to ff_filter_frame API 2012-12-02 15:02:05 +01:00
Stefano Sabatini
fbc339ff41 lavfi/super2xsai: switch to ff_filter_frame() API 2012-12-02 15:01:56 +01:00
Clément Bœsch
adfd9ca3fa lavfi/hue: move to ff_filter_frame. 2012-12-02 14:44:31 +01:00
Clément Bœsch
72e84a08e6 fate: add hue filter test. 2012-12-02 14:44:26 +01:00
Nicolas George
24cb1f9718 lavfi/vf_tile: forward errors. 2012-12-02 13:53:41 +01:00
Nicolas George
3b316247fb lavfi/vf_tile: cosmetic after last commit. 2012-12-02 13:53:41 +01:00
Nicolas George
6f3d2fb18b lavfi/vf_tile: switch to filter_frame.
Also add error check on buffer allocation.
2012-12-02 13:53:41 +01:00
Michael Niedermayer
8be18ffd6a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: fix indentation in option parsing loop

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 13:47:07 +01:00
Stefano Sabatini
3d72820722 lavfi/decimate: switch to ff_filter_frame() API 2012-12-02 12:42:29 +01:00
Stefano Sabatini
217163eb98 lavfi/alphamerge: switch to ff_filter_frame() API 2012-12-02 12:42:29 +01:00
Stefano Sabatini
83ab46a57e lavfi/blackdetect: switch to new ff_filter_frame() API 2012-12-02 12:42:29 +01:00
Nicolas George
86a2486812 lavu/parseutils: accept %J for hours >= 24.
Allow to parse durations >= 24:00:00.
2012-12-02 11:48:56 +01:00
Michael Niedermayer
b61ba262a1 mpc8: check seektable size before attempting to use it.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 04:21:42 +01:00
Michael Niedermayer
ff7e2342bb dcadec: fix reading from prior to an array
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 04:01:41 +01:00
Clément Bœsch
9e1914dfba lavfi/hqdn3d: avoid use of uninitialized variable. 2012-12-02 02:53:22 +01:00
Clément Bœsch
a3554bb457 lavfi/gradfun: avoid use of uninitialized variable. 2012-12-02 02:42:07 +01:00
Michael Niedermayer
77693c541a xxan: more complete ybuf checks, fix out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-02 00:48:07 +01:00
Carl Eugen Hoyos
196920060b Add FourCC V264 for H264 in CCTV recordings. 2012-12-02 00:43:39 +01:00
Clément Bœsch
f61369d762 lavfi/vsrc: switch to ff_filter_frame. 2012-12-02 00:23:45 +01:00
Mans Rullgard
7e9e7cc236 configure: fix indentation in option parsing loop
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-01 23:16:23 +00:00
Clément Bœsch
6d2892c9f5 lavf/assdec: return appropriate error code instead of -1. 2012-12-02 00:06:03 +01:00
Clément Bœsch
069c897549 lavf/assdec: add ass_ prefix to callbacks. 2012-12-02 00:06:03 +01:00
Clément Bœsch
e0260e25b0 lavf/assdec: rewrite using the demux subtitles API. 2012-12-02 00:06:03 +01:00
Clément Bœsch
bad4e112a2 lavf: use ff_subtitles_queue_seek() for text subtitles demuxers. 2012-12-02 00:06:03 +01:00
Clément Bœsch
ad5d72b123 lavf/subtitles: seek a little more backward when necessary.
If some previous subtitles are overlapping with the current time
we make sure they are raised so the renderer can display them too.
2012-12-02 00:06:03 +01:00
Clément Bœsch
ff3624b1ad lavf/subtitles: add ff_subtitles_queue_seek().
This function is almost identical to lavf/assdec:read_seek2(). It
performs a generic seek for text subtitles demuxers for the new seeking
API.

The only difference with assdec:read_seek2 is the ts_diff being
unsigned to avoid overflows.

The seek callback in the ASS demuxer will be removed when it is
redesigned to use FFDemuxSubtitlesQueue.
2012-12-02 00:06:03 +01:00
Clément Bœsch
b684f744ac ffmpeg: use avformat_seek_file() instead of av_seek_frame().
avformat_seek_file() is the new API. It will make sure the read_seek2()
callback is called when the demuxer has it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
2012-12-02 00:06:02 +01:00
Michael Niedermayer
aae4780362 vmnc: Check for integer overflow
Fixes null pointer dereference and potential out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 22:25:50 +01:00
Michael Niedermayer
3b2cd83a82 dcadec: check lfe field
Fix out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 22:10:42 +01:00
Paul B Mahol
56e149fda9 PVF demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 21:02:45 +00:00
Carl Eugen Hoyos
5442083b1c Support Sorenson Spark in f4v files streamed by Flash Media Server. 2012-12-01 21:16:11 +01:00
Michael Niedermayer
873049e6d8 mxfdec: check index_tables before dereferencing in close.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 20:19:09 +01:00
Michael Niedermayer
7389bb12e6 svq1dec: update w/h only if the header is successfully parsed.
Prevents inconsistency and out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 20:19:09 +01:00
Stefano Sabatini
c9ff32215b lavu/opt: allow to set sample and pixel format with av_opt_set_int()
This change requires the user to specify min and max value, and makes
possible to prevent the user to set AV_{SAMPLE,PIX}_FMT_NONE if
forbidden.

Add required ifdeffery in case of mixed libraries, when libavutil is
updated but not the other libraries.

This is a followup of 08d0969c14.
2012-12-01 19:33:30 +01:00
Michael Niedermayer
b5cedf8b66 fate/mp3: increase fuzz for NEON, due to different rounding from lrintf()
This should fix fate failures of the hecommon test

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 17:15:57 +01:00
Stefano Sabatini
13c39e9676 lavfi/geq: add T variable and example 2012-12-01 16:05:15 +01:00
Michael Niedermayer
5473f6258c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Use headers in the check for _beginthreadex for w32threads
  avutil: Use a configure check to enable windows console functions
  avutil: Include io.h with a separate condition from windows console functions

Conflicts:
	libavutil/log.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 13:10:48 +01:00
Stefano Sabatini
12cd992d67 doc/ffmpeg-filters: add short description 2012-12-01 13:06:56 +01:00
Michael Niedermayer
13d351bd45 tests/ref/seek/lavf_gif: update for 9d5cfce855: gifdec: rudimentary seeking
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 12:56:12 +01:00
Paul B Mahol
9d5cfce855 gifdec: rudimentary seeking
With this ffplay -loop X successfully seeks to start.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 11:43:50 +00:00
Paul B Mahol
2152b60f39 gifdec: use av_fast_malloc()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 10:53:22 +00:00
Paul B Mahol
6b11ae7112 shorten: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 10:17:50 +00:00
Paul B Mahol
e4af8ed8c7 ws-snd1: return meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 10:17:45 +00:00
Paul B Mahol
679c7578a6 wnv1: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 10:17:20 +00:00
Paul B Mahol
51bcf8ac85 xldec: K&R formatting cosmetics
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 10:17:20 +00:00
Paul B Mahol
24e5cb4836 xldec: return meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 10:17:16 +00:00
Paul B Mahol
3b56ed3478 motionpixels: use meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 09:18:21 +00:00
Paul B Mahol
b912895d94 mvi: check av_mallocz() result
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-12-01 09:06:24 +00:00
Michael Niedermayer
822d10e7c5 swscale: fix 12 and 14 bit YUV planar output with scaling.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 03:41:24 +01:00
Michael Niedermayer
f0695b09dd pcmdec: check codec_id
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 02:36:28 +01:00
Michael Niedermayer
b90e795f73 check std tag size before reading.
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-01 00:30:11 +01:00
Michael Niedermayer
a7ee6281f7 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>
2012-12-01 00:00:08 +01:00
Michael Niedermayer
991e23519a aacps: check iid/icc_par more completely.
Fixes global out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 22:23:49 +01:00
Michael Niedermayer
7205e896a1 dxa: check reference frame availability before use.
Fix NULL pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 22:23:49 +01:00
Paul B Mahol
daede25f0b update Changelog
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-30 16:52:37 +00:00
Paul B Mahol
57b00d7ab1 gifdec: remove width and height from demuxer context
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-30 16:09:02 +00:00
Michael Niedermayer
2c69fcc2ff smacker: more complete vlc length check, fixes out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 16:14:18 +01:00
Michael Niedermayer
50cbe09d8c smacker: check smacker_decode_tree() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 16:14:18 +01:00
Paul B Mahol
d56b15017a undo file modifiers that suck in
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-30 15:00:35 +00:00
Martin Storsjö
3bbe63d1a4 configure: Use headers in the check for _beginthreadex for w32threads
When targeting the metro API subset, this function still exists in
the link libraries, but is excluded from the headers. This makes
sure w32threads is automatically disabled when targeting this API
subset (since not all the necessary functions for it are available).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-30 16:57:02 +02:00
Martin Storsjö
7e6a11bcf7 avutil: Use a configure check to enable windows console functions
Not all versions or API subsets of windows have these functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-30 16:56:57 +02:00
Martin Storsjö
b70abd5b61 avutil: Include io.h with a separate condition from windows console functions
Not all versions of windows have the console color functions,
while io.h might be needed for isatty (which can be found in
unistd.h or io.h).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-30 16:56:54 +02:00
Vitaliy E Sugrobov
f83657fcf6 Add exception for "gif" in image2 probe() method.
Without this exception files with ".gif" extension by default
recognized as input suitable for image2 demuxer rather than gif.
In order to pass image through gif demuxer it was necessary
to use -f gif option.
This change affected 'make fate' test results because previously
image2 demuxer and gif decoder took only first frame of multiframe
test data, which is no longer true with gif demuxer.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:35:11 +00:00
Vitaliy E Sugrobov
5603b2bf6e Gif demuxer
Gif demuxer is capable of extracting multiple frames from gif file.
In conjunction with gif decoder it implements support for reading
animated gifs.
Demuxer has two options available to user: default_delay and min_delay.
These options are for protection from too rapid gif animations. In practice
it is standard approach to slow down rendering of this kind of gifs. If you try to
play gif with delay between frames of one hundredth of second (100fps) using
one of major web browsers, you get significantly slower playback,
around 10 fps. This is because browser detects that delay value is less than some
threshold (usually 2 hundredths of second) and reset it to default value (usually 10
hundredths of second, which corresponds to 10fps). Manipulating these options user
can achieve the same effect during conversion to some video format. Otherwise user
can set them to not protect from rapid animations at all.
The other case when these options necessary is for gif images encoded according to
gif87a standard since prior to gif89a there was no delay information included in file.
Bump lavf minor version.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:33:58 +00:00
Vitaliy E Sugrobov
005cb97e3e Move some definitions to header file.
Share them with upcoming demuxer module.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:33:58 +00:00
Vitaliy E Sugrobov
de0cb7f070 Additional checks to prevent overread.
Check for availability of some required amount of bytes in buffer before
reading further.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:33:58 +00:00
Vitaliy E Sugrobov
91499f4ee8 Prepare gif decoder for use in conjunction with gif demuxer.
Add capability of reading multiple frames instead of only first.
Implement support for different gif frame 'disposal methods'.
Add option that allows to change background color resulting from
conversion of gif with transparency to any other format which
not support it.
Also bump lavc minor version.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:33:58 +00:00
Vitaliy E Sugrobov
c5fe41c768 Add meaningful error codes and constants.
Replace literals with named constants in several pieces of code
like 'return -1' and 'case 0xab'.
Change the way decoder handles absence of image data in a file:
notify gif_decode_frame() caller with got_picture set to zero
instead of returning -1.

Signed-off-by: Vitaliy E Sugrobov <vsugrob@hotmail.com>
2012-11-30 14:33:58 +00:00
Michael Niedermayer
034a1afbd8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avutil: Include io.h with a separate condition from MapViewOfFile
  cmdutils: Use a configure check for enabling CommandLineToArgvW

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 14:55:12 +01:00
Michael Niedermayer
db29a7c7c2 Merge commit '9d46eaec7a90bd8f5cd9e45398c6d17804182320'
* commit '9d46eaec7a90bd8f5cd9e45398c6d17804182320':
  build: The FLAC encoder also depends on the flacdsp code
  img2: K&R formatting cosmetics
  h264: check context state before decoding slice data partitions
  flashsv: make sure data for zlib priming is available

Conflicts:
	libavcodec/Makefile
	libavformat/img2.c
	libavformat/img2dec.c
	libavformat/img2enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 14:49:13 +01:00
Clément Bœsch
8119d8b01f configure: add lavfi avr dep to .pc when required. 2012-11-30 14:19:14 +01:00
Paul B Mahol
d4c59f77b6 adpcm/thp: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-30 10:48:37 +00:00
Paul B Mahol
1560c3295d iff: fix some incorrect interpretations of invalid files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-30 10:44:00 +00:00
Paul B Mahol
50b5c2296a iff: MAUD support
Based on patch by Piotr Bandurski
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-30 10:34:55 +00:00
Carl Eugen Hoyos
ccf771cd79 Correctly skip strf tag for subtitles when decoding avi.
Fixes ticket #1797.
2012-11-30 10:18:37 +01:00
Michael Niedermayer
d9bec3b6a2 lavc: fix duplicate stats_out line.
Found-by: Thierry Foucu
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 05:31:41 +01:00
Michael Niedermayer
bc16031a41 mjpegdec: print error message when quant_index is invalid
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 04:17:03 +01:00
Michael Niedermayer
a2f680c7bc mjpegdec: check h/v_count, fix context becoming inconsistent and causing out of array accesses.
This also fixes a long standing comment in the code.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-30 04:17:03 +01:00
Stefano Sabatini
08d0969c14 lavu/opt: change the way default pixel and sample format value is set
Use the i64 field rather than the string value. Using a string to set a
default sample/pixel format is weird, also the new interface is more
consistent with the rest of the API.

This is technically an API break, but hopefully there are no applications
using this feature outside of FFmpeg. In order to save backward
compatibility with mixed libraries in case libavutil is updated but not
the other libraries, some ifdeffery hacks are added.

Note that the version check is only performed when class->version != 0,
since if it is not defined then we assume that no version was defined and
the class is not affected by the change.

We will luckily get rid of the hack at the next major bump.
2012-11-30 00:01:53 +01:00
Michael Niedermayer
0b28abf903 vble: check packet size.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 23:12:42 +01:00
Michael Niedermayer
10416a4d56 id3v2: check index against buffer size. Fix out of array access
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 23:12:42 +01:00
Piotr Bandurski
0b14c197f1 iff: mention all decoders 2012-11-29 19:16:10 +00:00
Paul B Mahol
9a31997938 BRSTM demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-29 19:04:35 +00:00
Martin Storsjö
15816c8e8b avutil: Include io.h with a separate condition from MapViewOfFile
The existence of MapViewOfFile isn't linked to the existence of
io.h.

Not all versions of windows have MapViewOfFile (in particular,
Windows Phone 8 and the "metro" windows 8 API subset don't),
while they still have io.h (and need it for open/read/close).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-29 18:19:57 +02:00
Martin Storsjö
15caccb9be cmdutils: Use a configure check for enabling CommandLineToArgvW
This simplifies the condition to avoid hardcoding the systems
where the function exists. This also simplifies support for
newer Windows API subsets where this function doesn't exist,
such as Windows Phone 8 and the "metro" API subset of Windows 8.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-29 18:19:36 +02:00
Diego Biurrun
9d46eaec7a build: The FLAC encoder also depends on the flacdsp code
Fixes linking with only the FLAC encoder enabled.
2012-11-29 17:15:57 +01:00
Diego Biurrun
cc7d5cfeec img2: K&R formatting cosmetics
Also introduce local img_ namespace to simplify debugging.
2012-11-29 17:15:57 +01:00
Michael Niedermayer
6abb9a901f 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>
2012-11-29 15:56:36 +01:00
Michael Niedermayer
27eada287a tiffdec: better checks for bitstream offsets, fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 15:35:05 +01:00
Michael Niedermayer
3ae6104511 roqvideodec: check dimensions validity
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 15:24:30 +01:00
Janne Grunau
c1fcf563b1 h264: check context state before decoding slice data partitions
Fixes mov_h264_aac__Demo_FlagOfOurFathers.mov.SIGSEGV.4e9.656.

Found-by: Mateusz "j00ru" Jurczyk
CC: libav-stable@libav.org
2012-11-29 14:40:05 +01:00
Paul B Mahol
a9236b87b7 fate: add tak dependencies
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-29 13:24:48 +00:00
Paul B Mahol
26f1b1a0fa fate: add ADPCM 4XM test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-29 13:24:48 +00:00
Michael Niedermayer
0ecfcf8621 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avplay: Do not use removed av_get_int()
  avconv: fix variable shadowing in configure_input_audio_filter()

Conflicts:
	ffmpeg_filter.c
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 14:22:58 +01:00
Michael Niedermayer
9f8e2e92ae Merge commit 'e4d349b4014ee2a03f521027e0bd1ace4a9e60bd'
* commit 'e4d349b4014ee2a03f521027e0bd1ace4a9e60bd':
  fate: h264: Add dependencies
  fate: ea: Add dependencies
  fate: Do not unconditionally run libavutil tests
  rtpenc_chain: Remove unused variable
  nuv: check for malloc failure when allocating extradata
  nuv: use the stream indices generated by avformat_new_stream()

Conflicts:
	tests/fate/ea.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 14:16:46 +01:00
Janne Grunau
3ae69b9166 flashsv: make sure data for zlib priming is available
Fixes a segfault in the fuzzed sample resolutionchange.flv_s314809.

CC: libav-stable@libav.org
2012-11-29 14:15:05 +01:00
Michael Niedermayer
52066bdb30 Merge commit 'c74f81786d434dfaf9b3dff06aa96bfd23d0127b'
* commit 'c74f81786d434dfaf9b3dff06aa96bfd23d0127b':
  nuv: cosmetics: pretty-printing

Conflicts:
	libavformat/nuv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 14:07:51 +01:00
Michael Niedermayer
d7b20bfbb5 Merge commit '5c7bf2dddee5bdfa247ff0d57cb8a37d19077f66'
* commit '5c7bf2dddee5bdfa247ff0d57cb8a37d19077f66':
  lavf: move nuv fourcc audio tags from riff to nuv
  lavf: add a common function for selecting a pcm codec from parameters

Conflicts:
	libavformat/internal.h
	libavformat/mov.c
	libavformat/riff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 14:00:44 +01:00
Michael Niedermayer
076300bf8b Merge commit 'bfe5454cd238b16e7977085f880205229103eccb'
* commit 'bfe5454cd238b16e7977085f880205229103eccb':
  lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h
  lavf: move "MP3 " fourcc from riff to nut
  fate: vpx: Add dependencies
  fate: Fix wavpack-matroskamode test dependencies
  x86: dsputilenc: port to cpuflags

Conflicts:
	libavformat/internal.h
	libavformat/nut.c
	tests/fate/vpx.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 13:45:57 +01:00
Michael Niedermayer
7dc0ed80e8 Merge commit '1f3f896564501c23b44fcf605567c78ce066b539'
* commit '1f3f896564501c23b44fcf605567c78ce066b539':
  fate: Add dependencies for Vorbis, ProRes, QTRLE, utvideo tests
  fate: real: Add dependencies
  fate: lossless-audio: Add dependencies
  x86: h264dsp: Fix linking with yasm and optimizations disabled

Conflicts:
	libavcodec/x86/h264dsp_init.c
	tests/fate/lossless-audio.mak
	tests/fate/real.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 13:35:56 +01:00
Clément Bœsch
a7eabbb20d lavfi/concat: prefer av_asprintf() over stack allocated buffer. 2012-11-29 12:55:56 +01:00
Clément Bœsch
b99f1303ad lavfi/concat: switch to filter_frame. 2012-11-29 12:55:56 +01:00
Clément Bœsch
ea3bad0e9e lavfi/smartblur: switch to filter_frame. 2012-11-29 12:49:03 +01:00
Clément Bœsch
9262f13269 lavfi/show{spectrum,waves}: use ff_filter_frame(). 2012-11-29 11:44:20 +01:00
Anton Khirnov
e2718e7a70 avplay: Do not use removed av_get_int()
Fixes build with lavfi disabled.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-29 10:52:23 +01:00
Stefano Sabatini
605f1d9865 lsws: define version in SWScaler class
The version number is useful to check the libavutil version against which
the library was compiled at run-time, which in turn may be useful to deal
with binary compatibility issues.
2012-11-29 10:20:21 +01:00
Stefano Sabatini
cf56c20761 doc/Makefile: rework component configuration logic
Only enable component manual when the corresponding library providing
the feature is enabled.
2012-11-29 10:19:52 +01:00
Stefano Sabatini
989c6a4943 doc/ffmpeg-codecs: add short description 2012-11-29 09:50:39 +01:00
Michael Niedermayer
3fd8e07265 vsrc_mandelbrot: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 05:52:31 +01:00
Clément Bœsch
9236e9f1e1 lavfi/ebur128: use ff_filter_frame() everywhere. 2012-11-29 03:48:14 +01:00
Michael Niedermayer
55a5ded67e Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: increase maximum frame duration to 1 hour for streams without TS discontinuity
  ffplay: fix updating external clock after seeking
  ffplay: disallow seeking before the start of the file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 03:18:35 +01:00
Michael Niedermayer
1eb8809a41 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_fieldorder: require write permissions
  vf_fieldorder: reindent

Conflicts:
	libavfilter/vf_fieldorder.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:54:50 +01:00
Michael Niedermayer
87b9dc0982 Merge commit '565e4993c63f797e2d50ad2f1e8f62fdbe299666'
The commit has already been split and commited, this merge is just for metadata.
What has not been merged is the removial of some start/end_frame / draw_slice
related functions that are still in use. They can be removed once they are
unused.

* commit '565e4993c63f797e2d50ad2f1e8f62fdbe299666':
  lavfi: merge start_frame/draw_slice/end_frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:51:22 +01:00
Clément Bœsch
031d644878 lavfi/ass: switch to filter_frame. 2012-11-29 02:36:34 +01:00
Anton Khirnov
9178235ffb avfilter: mark start_frame/end_frame/draw_slice as deprecated
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:30:11 +01:00
Clément Bœsch
502ecc9cc2 lavfi/colormatrix: 10l fix forgotten buffer unref. 2012-11-29 02:21:16 +01:00
Clément Bœsch
269cd07702 lavfi/colormatrix: switch to filter_frame. 2012-11-29 02:16:33 +01:00
Anton Khirnov
88f8af26a9 vf_format: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:09:40 +01:00
Anton Khirnov
7c42814782 vf_copy: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:09:22 +01:00
Anton Khirnov
ece5decbe0 vf_null: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:09:01 +01:00
Michael Niedermayer
015c2b4066 libavfilter: default to filter_frame when neither it nor start/slice/end is set.
this is needed for vf_null and a few others.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 02:08:49 +01:00
Anton Khirnov
60e50dd960 buffersrc: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 01:55:26 +01:00
Anton Khirnov
b5ecfa1d8d buffersink: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 01:55:26 +01:00
Clément Bœsch
5d796270c5 lavfi/thumbnail: re-use ctx instead of inlink->dst. 2012-11-29 01:43:28 +01:00
Clément Bœsch
782993d9e4 lavfi/thumbnail: use avfilter_unref_bufferp() where appropriate. 2012-11-29 01:38:08 +01:00
Clément Bœsch
24f425319d lavfi/thumbnail: switch to filter_frame. 2012-11-29 01:34:55 +01:00
Anton Khirnov
69d4420aea libavfilter/split: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 01:20:53 +01:00
Michael Niedermayer
94fdef818e vf_scale: switch to filter_frame
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 01:20:53 +01:00
Clément Bœsch
3860e34b08 lavfi/sendcmd: expose the options for both filters. 2012-11-29 00:52:00 +01:00
Clément Bœsch
0b70ffa4ac lavfi/sendcmd: add FLAGS to AVOption array. 2012-11-29 00:50:37 +01:00
Clément Bœsch
a5b765236b lavfi: add priv_class for some forgotten filters.
This allows to print the options available when using commands such as
ffmpeg -help full.
2012-11-29 00:50:37 +01:00
Clément Bœsch
8a12c96d27 lavfi/mptestsrc: add FLAGS to AVOption array. 2012-11-29 00:50:37 +01:00
Anton Khirnov
0a767ad796 vf_blackframe: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 00:32:08 +01:00
Anton Khirnov
8f21cfc6b3 vf_aspect: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 00:31:50 +01:00
Anton Khirnov
aa61728d0a vf_cropdetect: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 00:15:56 +01:00
Anton Khirnov
71f82c3805 vf_crop: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 00:15:40 +01:00
Justin Ruggles
95682d8cd2 avconv: fix variable shadowing in configure_input_audio_filter() 2012-11-28 18:13:21 -05:00
Anton Khirnov
a42b89910b vf_drawbox: switch to filter frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 00:09:53 +01:00
Anton Khirnov
267290ce3b vflip: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-29 00:09:31 +01:00
Michael Niedermayer
8c1f98d954 Merge commit 'bb6c67bb36b136de10256f0999128df4a42f9ffc'
* commit 'bb6c67bb36b136de10256f0999128df4a42f9ffc':
  lavfi: remove vf_slicify

Conflicts:
	doc/filters.texi
	libavfilter/Makefile
	libavfilter/allfilters.c
	libavfilter/vf_slicify.c
	tests/lavfi-regression.sh
	tests/ref/lavfi/crop_scale_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 23:59:15 +01:00
Stefano Sabatini
5ddc072d0d doc: add ffmpeg-bitstream-filters.texi file 2012-11-28 23:51:12 +01:00
Anton Khirnov
5f648ce43e vf_yadif: switch to filter_frame, this filter did not support slices
signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 23:47:01 +01:00
Anton Khirnov
9a65b8c0a2 vf_fade: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 23:47:01 +01:00
Clément Bœsch
2d9d444051 lavfi: convert remaining input/output list compound literals to named objects.
This is following 568c70e79e.
2012-11-28 23:19:20 +01:00
Anton Khirnov
bff576c779 vf_lut: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 22:39:35 +01:00
Anton Khirnov
eb7e7e82e1 vf_hflip: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 22:39:16 +01:00
Anton Khirnov
dabb993c44 f_setpts: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 22:27:51 +01:00
Anton Khirnov
bb56436cfd f_settb: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 22:19:43 +01:00
Michael Niedermayer
eb1424b4fe src_movie: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:58:45 +01:00
Anton Khirnov
f7f6f281dd vsrc_testsrc: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:58:39 +01:00
Anton Khirnov
c262e8cff6 vsink_nullsink: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:49:04 +01:00
Anton Khirnov
45eed9b197 vf_unsharp: switch to filter_frame, this filter did not support slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:47:39 +01:00
Michael Niedermayer
afded1816b vf_transpose: switch to filter_frame
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:46:23 +01:00
Marton Balint
f7eb50f3c0 ffplay: increase maximum frame duration to 1 hour for streams without TS discontinuity
Partially fixes ticket #1707. A-V sync still needs some work after seeking...

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-28 21:39:50 +01:00
Marton Balint
2efd01a32f ffplay: fix updating external clock after seeking
Now it should work for the timestamp based and the byte based case as well.
Also only update the external clock if the seeking was successful.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-28 21:39:50 +01:00
Marton Balint
fc38bbcd6a ffplay: disallow seeking before the start of the file
In timestamp based seeking we update the external clock to the seek target,
therefore we should use sane timestamps even if libavformat could handle
seeking before the start of the file.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-28 21:39:50 +01:00
Anton Khirnov
2c3b665379 vf_select: switch to filter_frame
The new code reads the input frame when its ready, the previous
code did read the input frame during start_frame at which point it
may not yet be available.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:28:02 +01:00
Anton Khirnov
0663a9eab8 vf_showinfo: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:28:02 +01:00
Michael Niedermayer
6be0df5080 vf_pad: switch to filter_frame
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 21:28:02 +01:00
Daniel Verkamp
a0958949eb Vivo demuxer 2012-11-28 20:13:05 +00:00
Michael Niedermayer
e42b7ff2b2 vf_pixdesctest: switch to filter_frame
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 20:25:55 +01:00
Anton Khirnov
1f94f86ab5 vf_libopencv: switch to filter_frame, this filter did not support slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 20:25:55 +01:00
Clément Bœsch
5d170b09d3 lavfi/geq: switch to filter_frame. 2012-11-28 20:20:40 +01:00
Anton Khirnov
2a06bc10e7 vf_gradfun: switch to filter_frame, this filter did not support slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 20:06:06 +01:00
Anton Khirnov
6325957b28 vf_frei0r: switch to filter_frame, the filter did not support slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 20:06:06 +01:00
Clément Bœsch
57d9c86bf3 lavfi/edgedetect: switch to filter_frame. 2012-11-28 20:03:01 +01:00
Diego Biurrun
e4d349b401 fate: h264: Add dependencies 2012-11-28 19:58:21 +01:00
Diego Biurrun
d2f576bd49 fate: ea: Add dependencies 2012-11-28 19:36:13 +01:00
Diego Biurrun
47e7fb8815 fate: Do not unconditionally run libavutil tests
Now that libavutil can be disabled, this should be conditional.
2012-11-28 19:36:13 +01:00
Anton Khirnov
92b57e8dac vf_fps: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 19:28:41 +01:00
Anton Khirnov
e67fdbffe5 vf_fieldorder: switch to filter_frame, this filter did not support real slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 19:23:32 +01:00
Michael Niedermayer
59907340e1 libavfilter/fifo: fix indent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 19:18:24 +01:00
Michael Niedermayer
b5572ab861 vf_boxblur: cosmetics to reduce diff to qatar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 19:18:24 +01:00
Diego Biurrun
2c4593dd13 rtpenc_chain: Remove unused variable 2012-11-28 18:17:49 +01:00
Michael Niedermayer
7bfa2f25c0 vf_drawtext: switch to filter_frame, this filter did not support slices
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 18:07:51 +01:00
Michael Niedermayer
384641468b vf_delogo: switch to filter_frame, this filter did not support slices
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 18:07:33 +01:00
Michael Niedermayer
ed547e2ce5 vf_hqdn3d: fix permissions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 18:05:09 +01:00
Michael Niedermayer
46a4e72bc5 vf_delogo: fix order of operations in apply_delogo()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 18:03:03 +01:00
Anton Khirnov
250b122e3a vf_boxblur: switch to filter_frame, boxblur did not support slices
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 17:33:42 +01:00
Anton Khirnov
05945c7f88 libavfilter/fifo: switch to filter_frame, the filter did not support slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 17:33:42 +01:00
Paul B Mahol
6549a9b753 pgssubdec: remove unused variable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-28 16:21:25 +00:00
Justin Ruggles
c74f81786d nuv: cosmetics: pretty-printing 2012-11-28 11:18:50 -05:00
Justin Ruggles
5c7bf2ddde lavf: move nuv fourcc audio tags from riff to nuv 2012-11-28 11:18:50 -05:00
Justin Ruggles
ab87d9b667 nuv: check for malloc failure when allocating extradata
Also make sure extradata is freed in the case where multiple
NUV_EXTRADATA frame types are found. This may not happen in practice,
but it could happen in a malformed stream, which would lead to a memleak
if not handled.
2012-11-28 11:18:50 -05:00
Justin Ruggles
261e9348ef lavf: add a common function for selecting a pcm codec from parameters 2012-11-28 11:18:50 -05:00
Justin Ruggles
838ed296df nuv: use the stream indices generated by avformat_new_stream() 2012-11-28 11:18:50 -05:00
Justin Ruggles
bfe5454cd2 lavf: move ff_codec_get_tag() and ff_codec_get_id() definitions to internal.h 2012-11-28 11:18:49 -05:00
Justin Ruggles
cdaa1f84fb lavf: move "MP3 " fourcc from riff to nut
Original commit, 7b24f9b, says it was added because it is used in libnut.
2012-11-28 11:18:49 -05:00
Paul B Mahol
01eed8c607 iff demuxer: 16SV support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-28 15:55:14 +00:00
Anton Khirnov
1b43fc127c vf_hqdn3d: switch to filter_frame
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Michael Niedermayer
8227a0b7df libavfilter: update doxy for filter_frame
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Michael Niedermayer
3ed483cdfa libavfilter: Support using filter_frame for video
With this we can mix filters using filter_frame OR start/draw_slice/end

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Michael Niedermayer
a0b8eec719 default_filter_frame: fix argument name
Based on code by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Michael Niedermayer
f6dd145533 avfilter: check that filter_frame and slice variants are not both used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Michael Niedermayer
cd7febd33f lavfi: replace filter_samples by filter_frame
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 16:43:34 +01:00
Reimar Döffinger
16af29a7a6 vc1dec: add hacks to ensure static tables are initialized in open().
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-11-28 16:41:48 +01:00
Reimar Döffinger
92947c6d72 Use err_out label for error-case cleanup.
Will simplify future changes (introducing proper
locking around opening/closing parsers).

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-11-28 16:41:48 +01:00
Reimar Döffinger
8aa29f063c atrac3: do not use init_static_data to init VLC data.
It would be called while registering the codec, which means
it needlessly wastes memory when it is never used.
Instead do the work when first opening the codec.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-11-28 16:41:48 +01:00
Diego Biurrun
db9dbfb72a fate: vpx: Add dependencies 2012-11-28 16:19:55 +01:00
Diego Biurrun
a1d1fc9b4a fate: Fix wavpack-matroskamode test dependencies 2012-11-28 16:05:44 +01:00
Diego Biurrun
9b15c0a9b3 x86: dsputilenc: port to cpuflags 2012-11-28 16:05:44 +01:00
Diego Biurrun
1f3f896564 fate: Add dependencies for Vorbis, ProRes, QTRLE, utvideo tests 2012-11-28 14:45:28 +01:00
Diego Biurrun
5116ac7774 fate: real: Add dependencies 2012-11-28 14:45:28 +01:00
Diego Biurrun
9534e0f552 fate: lossless-audio: Add dependencies 2012-11-28 14:45:28 +01:00
Diego Biurrun
89145fbbfe x86: h264dsp: Fix linking with yasm and optimizations disabled
Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.
2012-11-28 14:45:28 +01:00
Paul B Mahol
23101ceaa2 avrdec: implement seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-28 13:03:48 +00:00
Michael Niedermayer
42d3fea65f Merge commit 'af7d13ee4a4bf8d708f9b0598abb8f6e22b76de1'
* commit 'af7d13ee4a4bf8d708f9b0598abb8f6e22b76de1':
  asink_nullsink: plug a memory leak.
  x86: h264_idct: port to cpuflags
  x86: cpu: Drop unused HAVE_RWEFLAGS condition

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 13:32:17 +01:00
Michael Niedermayer
264441715b Merge commit 'f5fa03660db16f9d78abc5a626438b4d0b54f563'
* commit 'f5fa03660db16f9d78abc5a626438b4d0b54f563':
  vble: Do not abort decoding when version is not 1
  lavr: do not pass consumed samples as a parameter to ff_audio_resample()
  lavr: correct the documentation for the ff_audio_resample() return value
  lavr: do not pass sample count as a parameter to ff_audio_convert()
  x86: h264_weight: port to cpuflags
  configure: Enable avconv filter dependencies automatically

Conflicts:
	configure
	libavcodec/x86/h264_weight.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 13:27:18 +01:00
Paul B Mahol
b0d9b011c7 avrdec: sample rate takes 3 bytes not 4
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-28 11:02:22 +00:00
Paul B Mahol
1793128cf7 avrdec: fix typo in .long_name
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-28 10:56:59 +00:00
Anton Khirnov
4c973de9a5 vf_fieldorder: require write permissions
This filter modifies the input frame.
2012-11-28 08:50:24 +01:00
Anton Khirnov
49dd71a6f1 vf_fieldorder: reindent 2012-11-28 08:50:24 +01:00
Anton Khirnov
565e4993c6 lavfi: merge start_frame/draw_slice/end_frame
Any alleged performance benefits gained from the split are purely
mythological and do not justify added code complexity.
2012-11-28 08:50:19 +01:00
Anton Khirnov
bb6c67bb36 lavfi: remove vf_slicify
The following commit will make it useless.

The crop_scale_vflip FATE test changes because of off-by-one differences
in output when vflipped slices are passed to sws.
2012-11-28 08:44:01 +01:00
Anton Khirnov
af7d13ee4a asink_nullsink: plug a memory leak. 2012-11-28 08:43:54 +01:00
Michael Niedermayer
2c923983b6 qpeg: reset palette on seeks
Fixes Ticket1921

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 05:16:15 +01:00
Michael Niedermayer
2754dbb6e1 nut: put nut PCM audio tags in front of avi tags.
This fixes correctly storing and identifying PCM in nut.

Based on patch by Luca Barbato
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-28 02:03:56 +01:00
Diego Biurrun
2e89aeed65 x86: h264_idct: port to cpuflags 2012-11-28 00:28:09 +01:00
Diego Biurrun
490df522c7 x86: cpu: Drop unused HAVE_RWEFLAGS condition
The test for rweflags was dropped in a previous commit.
2012-11-28 00:28:09 +01:00
Stefano Sabatini
3a227f5d90 doc: add ffmpeg-protocols.texi manual 2012-11-27 23:35:45 +01:00
Stefano Sabatini
9c492271a8 doc: move syntax and eval chapters from libavutil to ffmpeg-utils
Move utilities description to a dedicated manual, consistent with what I
did with the rest of the documentation.
2012-11-27 23:35:35 +01:00
Stefano Sabatini
d82331721e doc: add libavdevice.texi and ffmpeg-devices.texi files 2012-11-27 23:35:25 +01:00
Stefano Sabatini
8ddeae5ae7 doc: add libavformat.texi and ffmpeg-formats.texi files 2012-11-27 23:35:19 +01:00
Stefano Sabatini
2ac6a3d1bf lavfi/drawtext: add support to expansion of generic expressions 2012-11-27 23:27:50 +01:00
Piotr Bandurski
f5fa03660d vble: Do not abort decoding when version is not 1
Some combinations of OS, VirtualDub, and VBLE can accidentally
set the version to a value other than 1. Since no other version
of VBLE was ever released, simply warn about it.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-11-27 17:16:04 -05:00
Justin Ruggles
1d86aa8b0f lavr: do not pass consumed samples as a parameter to ff_audio_resample()
Since the resampler handles buffering of unconsumed samples internally, the
caller does not need this information.
2012-11-27 16:49:19 -05:00
Justin Ruggles
d2f9f8e094 lavr: correct the documentation for the ff_audio_resample() return value 2012-11-27 16:49:18 -05:00
Justin Ruggles
7f534d11ed lavr: do not pass sample count as a parameter to ff_audio_convert()
It will always be the number of samples in the input buffer, so just use that
directly instead of passing it as a separate parameter.
2012-11-27 16:49:18 -05:00
Diego Biurrun
28e1cf19aa x86: h264_weight: port to cpuflags 2012-11-27 21:10:38 +01:00
Michael Niedermayer
2cfa6fd025 mjpegdec: dont set got_picture to 0 per frame.
Fixes Ticket1915

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 20:16:49 +01:00
Michael Niedermayer
541efe4120 mjpegdec: reset got_picture on errors, successful return, init and flush.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 20:16:49 +01:00
Michael Niedermayer
1c16483cc0 mjpegdec: replace returns by goto fail in frame decode.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 20:16:49 +01:00
Michael Niedermayer
de9fc0e9d6 mjpegdec: make sure ret is set before its used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 20:16:49 +01:00
Paul B Mahol
761aba6811 fate: add ADPCM IMA Dialogic OKI decoder test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-27 19:07:18 +00:00
Michael Niedermayer
93b89868e1 h264: support invalid annex B in mp4
Fixes Ticket1914

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 18:06:00 +01:00
Martin Storsjö
54fd593a0e configure: Enable avconv filter dependencies automatically
This makes sure minimal configurations such as
"--disable-everything --enable-avconv" will enable the filters
necessary for running avconv, instead of just keeping avconv
disabled (even if the user specified "--enable-avconv").

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-27 17:05:01 +02:00
Michael Niedermayer
c2c1726847 ffserver remove CONFIG_NOCUTILS check
Nothing sets CONFIG_NOCUTILS, i also dont remember anything setting it in
the past.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 14:41:41 +01:00
Michael Niedermayer
4063bb212e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: set Picture.owner2 to the current thread

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 14:36:53 +01:00
Michael Niedermayer
577b39aea2 Merge commit '6e5cdf26281945ddea3aaf5eca4d127791f23ca8'
* commit '6e5cdf26281945ddea3aaf5eca4d127791f23ca8':
  h264: check ref_count validity for num_ref_idx_active_override_flag
  h264: add missing new line to log message
  dcadec: skip QMF on unused channels
  wavenc: write fact chunk sample count at the correct file position
  riff: do not add empty metadata tags in INFO chunk

Conflicts:
	libavcodec/dcadec.c
	libavcodec/h264.c
	libavformat/riff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 14:31:04 +01:00
Michael Niedermayer
b4d4e51027 Merge commit '3c370f5abc55739a261534b9f9bdc739cedbbbb9'
* commit '3c370f5abc55739a261534b9f9bdc739cedbbbb9':
  riff: only warn on a bad INFO chunk code size instead of failing
  configure: Add separate list for libraries and use where appropriate
  x86: float_dsp: add SSE version of vector_fmul_scalar()

Conflicts:
	configure
	libavformat/riff.c
	libavutil/x86/float_dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 14:10:05 +01:00
Michael Niedermayer
2684d2e3ea Merge commit '284ea790d89441fa1e6b2d72d3c1ed6d61972f0b'
* commit '284ea790d89441fa1e6b2d72d3c1ed6d61972f0b':
  dsputil: move vector_fmul_scalar() to AVFloatDSPContext in libavutil
  aacenc: use the correct output buffer
  aacdec: fix signed overflows in lcg_random()
  base64: fix signed overflow in shift

Conflicts:
	libavcodec/dsputil.c
	libavutil/base64.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 13:39:52 +01:00
Michael Niedermayer
257196209f file: fix 10l error in access() check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 13:24:00 +01:00
Janne Grunau
d5e83122bd h264: set Picture.owner2 to the current thread
This does not seem to have an effect currently. Fate-h264 passes with
THREADS=1..16 and both threading types as before. It fixes however a
segfault during error resilience with my adaptive-frame-mt patchset.
A picture in use during error resilience gets realloced in another
thread in the fuzzed sample sample_varPAR.avi_s226019.
2012-11-27 12:26:33 +01:00
Janne Grunau
6e5cdf2628 h264: check ref_count validity for num_ref_idx_active_override_flag
Fixes segfault in the fuzzed sample bipbop234.ts_s226407.

CC: libav-stable@libav.org
2012-11-27 12:26:33 +01:00
Janne Grunau
150b2361ca h264: add missing new line to log message 2012-11-27 12:26:33 +01:00
Paul B Mahol
51d6879939 AFC demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-27 10:17:28 +00:00
Paul B Mahol
10c8f91341 astdec: improve probing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-27 10:16:30 +00:00
Mark Himsley
13c6252536 lavfi/overlay: enable yuva420p as overlay background
Same calculation as for RGBA etc to create unpremultiplied output.
Useful for creating an intermediate "Mix/Effects bank", in vision mixer
(switcher) terminology.

Example command:

ffmpeg -i input.mov -vf
"[in]scale=iw:ih:interl=1,format=yuv420p[bg];movie=BBC_blocks_watermark.png,scale=iw:ih:interl=1,format=yuva420p[dog];movie=Kickabout_strap.mov,scale=iw:ih:interl=1,format=yuva420p[strap];[strap][dog]overlay=0:0[me1];[bg][me1]overlay=0:0,scale=0:0:interl=1[out]"
-b:v 3M -an output.mov

Fix trac ticket #549.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-11-27 10:44:42 +01:00
Michael Niedermayer
8aa6d899c0 cafdec: fix seeking with adpcm
Fixes Ticket1906

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 05:03:24 +01:00
Michael Niedermayer
16ef48c37f file: Fallback to stat() based file_check() when access() or its named flags are unavailable.
Should fix compilation on native windows
We could also use _access() and literal numbers as flags but i cant test it
and the compilation failure should be fixed ASAP

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 05:03:24 +01:00
Michael Niedermayer
465becbc4f configure: check for access()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 05:03:23 +01:00
Michael Niedermayer
5d47850bbd dcadec: skip QMF on unused channels
When the extra rear channel is present but unused, the
s->channel_order_tab[] value for that channel is -1. The QMF can be
skipped for the extra channel, and doing so avoids an out-of-array read
on s->samples_chanptr[].

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-11-26 22:50:37 -05:00
Michael Niedermayer
407921072f file: fix file_check()
Fixes Ticket1904

This should work on windows, but if not please contact me ASAP
i have another idea on how to solve this without access() if that
really doesnt work on windows.

Strongly based on patch by divVerent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-27 03:53:53 +01:00
Michael Niedermayer
2fe0094e0b wavenc: write fact chunk sample count at the correct file position
Fixes curruption of metadata in the INFO chunk.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-11-26 19:11:10 -05:00
Justin Ruggles
3c370f5abc riff: only warn on a bad INFO chunk code size instead of failing
fixes Bug 392
2012-11-26 19:08:51 -05:00
Justin Ruggles
259d8c5647 riff: do not add empty metadata tags in INFO chunk 2012-11-26 19:08:51 -05:00
Diego Biurrun
d89f2fa970 configure: Add separate list for libraries and use where appropriate 2012-11-26 22:46:07 +01:00
Michael Niedermayer
109268c826 get_dc: fix rounding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 21:26:24 +01:00
Michael Niedermayer
8d231e37af af_aresample: consistently use ROUNDED_DIV
This fixes issues with negative timestamps

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 21:09:15 +01:00
Michael Niedermayer
89d5262289 mpeg4videodec: use ROUNDED_DIV for pts calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 21:08:57 +01:00
Paul B Mahol
67be7fb432 adpcm: thp, afc: support multichannel decoding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-26 19:52:40 +00:00
Sergio Garcia Murillo
ec51b3308e h264: Fix minor bug in h264.c error trace
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 17:38:35 +01:00
Justin Ruggles
947f933687 x86: float_dsp: add SSE version of vector_fmul_scalar() 2012-11-26 11:30:19 -05:00
Justin Ruggles
284ea790d8 dsputil: move vector_fmul_scalar() to AVFloatDSPContext in libavutil 2012-11-26 11:29:06 -05:00
Michael Niedermayer
1e27655388 aacenc: use the correct output buffer
This fixes segfault caused by 3d3cf6745e
when SingleChannelElement.ret was renamed to SingleChannelElement.ret_buf.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-11-26 11:17:17 -05:00
Michael Niedermayer
4b5a12a2cb af_aresample: fix rounding of negative timestamps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 16:25:47 +01:00
Michael Niedermayer
386fc67c79 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavf: avoid integer overflow in ff_compute_frame_duration()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 16:24:23 +01:00
Michael Niedermayer
a3f30f2e99 Merge commit '5ae72f54532960cb9eae82a1c9e8d505106c022b'
* commit '5ae72f54532960cb9eae82a1c9e8d505106c022b':
  flashsv: check for keyframe before using differential coding
  h264: enable low delay only if no delayed frames were seen
  x86: fix build without inline asm

Conflicts:
	libavcodec/h264.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 16:11:02 +01:00
Michael Niedermayer
59b68ee887 Merge commit '3d3cf6745e2a5dc9c377244454c3186d75b177fa'
* commit '3d3cf6745e2a5dc9c377244454c3186d75b177fa':
  aacdec: use float planar sample format for output

Conflicts:
	libavcodec/aacdec.c
	libavcodec/aacsbr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 15:15:02 +01:00
Mans Rullgard
edd80ec7e3 aacdec: fix signed overflows in lcg_random()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-26 13:34:58 +00:00
Mans Rullgard
dd3b73f390 base64: fix signed overflow in shift
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-26 13:34:58 +00:00
Michael Niedermayer
a13148f633 Merge commit '8e134e5104e99a69cd4cea10540a7ce9c3682a2c'
* commit '8e134e5104e99a69cd4cea10540a7ce9c3682a2c':
  lavc: clarify get_buffer() documentation
  mpegaudiodec: use planar sample format for output unless packed is requested
  x86: h264 qpel: use the correct number of utilized xmm regs in cglobal

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 14:24:19 +01:00
Michael Niedermayer
86270236d5 dsputil_mmx: ff_put_dirac_pixels depend now on yasm.
Fix compile failure without yasm

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 13:59:41 +01:00
Peter Ross
76f60788e7 iff demuxer: don't bother checking bitmap compression type; iff decoder does this now
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2012-11-26 23:29:02 +11:00
Peter Ross
f737e76026 iff decoder: reindent
Signed-off-by: Peter Ross <pross@xvid.org>
2012-11-26 23:29:02 +11:00
Peter Ross
929a24efff iff decoder: merge iff ilbm and byterun1 decoders
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
2012-11-26 23:29:02 +11:00
Peter Ross
f2dc82b90f dpx: perform width/height upgrade and av_image_check_size earlier to prevent segfault on malformed input
Signed-off-by: Peter Ross <pross@xvid.org>
2012-11-26 12:11:08 +00:00
Paul B Mahol
5a3370816f av_get_audio_frame_duration: add ADPCM_AFC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-26 11:59:44 +00:00
Paul B Mahol
c5607dfddc doc/general: improve AST description
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-26 10:40:51 +00:00
Janne Grunau
7709ce029a lavf: avoid integer overflow in ff_compute_frame_duration()
Scaling the denominator instead of the numerator if it is too large
loses precision. Fixes an assert caused by a negative frame duration in
the fuzzed sample nasa-8s2.ts_s202310.

CC: libav-stable@libav.org
2012-11-26 10:26:08 +01:00
Janne Grunau
5ae72f5453 flashsv: check for keyframe before using differential coding
Fixes a segfault in te fuzzed sample resolutionchange.flv_s211713.

CC: libav-stable@libav.org
2012-11-26 10:26:01 +01:00
Janne Grunau
706acb558a h264: enable low delay only if no delayed frames were seen
Dropping frames is undesirable but that is the only way by which the
decoder could return to low delay mode. Instead emit a warning and
continue with delayed frames.
Fixes a crash in fuzzed sample nasa-8s2.ts_s20033 caused by a larger
than expected has_b_frames value. Low delay keeps getting re-enabled
from a presumely broken SPS.

CC: libav-stable@libav.org
2012-11-26 10:25:39 +01:00
Michael Niedermayer
b5e0e327ce ffmpeg: fix swr filter_type for auto inserted aresample filters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 04:06:19 +01:00
Michael Niedermayer
4bd6d73fc8 ffmpeg: fix passing swresample options to the auto inserted swr
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 03:51:29 +01:00
Michael Niedermayer
69d45d2ecb avfiltergraph: add aresample_swr_opts
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 03:51:08 +01:00
Michael Niedermayer
2624027439 lavu: drop time redefinition as it causes some problems in some uncommon configurations.
Based-on: e96d90eed6
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 02:23:30 +01:00
Michael Niedermayer
7b29b07394 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  remove #defines to prevent use of discouraged external functions
  x86: h264: Convert 8-bit QPEL inline assembly to YASM

Conflicts:
	libavcodec/x86/dsputil_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 02:17:02 +01:00
Diego Biurrun
7ee4071362 x86: fix build without inline asm
The qpel functions referenced here are not related to h264 and should
thus never have been under CONFIG_H264QPEL.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-26 01:50:47 +01:00
Paul B Mahol
7d2156aee8 adpcm/thp: make use of ADPCMChannelStatus to store prev samples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-26 00:44:45 +00:00
Justin Ruggles
3d3cf6745e aacdec: use float planar sample format for output 2012-11-25 19:06:36 -05:00
Justin Ruggles
8e134e5104 lavc: clarify get_buffer() documentation
This is needed for the AAC decoder, which may need to call get_buffer()
more than once if the channel configuration changes.
2012-11-25 19:06:36 -05:00
Justin Ruggles
3ffed68c2a mpegaudiodec: use planar sample format for output unless packed is requested 2012-11-25 19:05:58 -05:00
Michael Niedermayer
66c3bac2b9 Merge commit 'ad01ba6ceaea7d71c4b9887795523438689b5a96'
* commit 'ad01ba6ceaea7d71c4b9887795523438689b5a96':
  x86: h264: Remove 3dnow QPEL code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 00:57:33 +01:00
Justin Ruggles
2d3993ce8c x86: h264 qpel: use the correct number of utilized xmm regs in cglobal
Fixes xmm register clobbering on win64.
2012-11-25 18:48:43 -05:00
Michael Niedermayer
bf2f93cdbf Merge commit '28c8e288fa0342fdef532a7522a4707bebf831cc'
* commit '28c8e288fa0342fdef532a7522a4707bebf831cc':
  x86: h264_chromamc: port to cpuflags
  yop: fix typo
  avconv: fix copying per-stream metadata.
  doc: avtools-common-opts: Fix terminology concerning metric prefixes
  configure: suncc: Add compiler arch support for Nehalem & Sandy Bridge
  riff: Make ff_riff_tags static and move under appropriate #ifdef

Conflicts:
	libavformat/riff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26 00:43:45 +01:00
Stefano Sabatini
b473c9937e lavu/samplefmt: return the size of the allocated samples buffer at the next bump
Make the functions av_samples_fill_arrays, av_samples_alloc, and
avcodec_fill_audio_frame return a buffer size rather than 0 in case of
success. This will be enabled at the next libavutil major bump, in order
to preserve backward compatibility.

Returning the size allows to simplify the code, avoiding a few function
calls.
2012-11-25 23:23:24 +01:00
Ivan Pozdeev
329b8f85b0 doc/encoders: add a note for x264 options that use colon
Signed-off-by: Ivan Pozdeev <ivan_pozdeev@mail.ru>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-11-25 23:17:26 +01:00
Carl Eugen Hoyos
d643dd5c55 Support switching field order when decoding frwu.
The binary encoder has a "switch field order" setting that
moves one line from the top to the bottom of the frame.

Fixes ticket #966.
2012-11-25 23:06:12 +01:00
Janne Grunau
e96d90eed6 remove #defines to prevent use of discouraged external functions
Preventing the use of discouraged or 'insecure' external functions
through defines in an internal header is not a good solution. The
header is not guaranteed to be included universally which makes
overlooking bad use of said functions during review more likely.

There are cases were those functions either are the most straight
forward solution or even have to be used. Using malloc or free is
required if the allocation or release is done by other libraries.
2012-11-25 23:02:04 +01:00
Michael Niedermayer
b5b9686615 imc: flush decoder
Fixes Ticket1899

Based on code by ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 22:48:18 +01:00
Michael Niedermayer
579d21f777 tga: check palette size earlier.
Fixes Ticket1895

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 22:33:54 +01:00
Daniel Kang
610e00b359 x86: h264: Convert 8-bit QPEL inline assembly to YASM
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 20:38:35 +01:00
Stefano Sabatini
e55c3857d2 lavc/utils: check return value of avcodec_fill_audio_frame() for < 0
Assume that the value is always negative in case of error, as stated in
the docs, do not assume that the value cannot be != 0 in case of success.
2012-11-25 20:34:01 +01:00
Daniel Kang
ad01ba6cea x86: h264: Remove 3dnow QPEL code
The only CPUs that have 3dnow and don't have mmxext are 12 years old.
Moreover, AMD has dropped 3dnow extensions from newer CPUs.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 20:32:55 +01:00
Stefano Sabatini
51e9f58e1c lavu/opt: add support for reading pixel and sample format through av_get_int()
Simplify backward compatibility, when switching from AV_OPT_TYPE_INT to
AV_OPT_TYPE_SAMPLE/PIXEL_FMT.
2012-11-25 20:31:39 +01:00
Stefano Sabatini
cf6c6134cd doc: add libswscale.texi and ffmpeg-scaler.texi files 2012-11-25 19:21:30 +01:00
Peter Ross
33181975b5 mpsmpeg4: use av_image_check_size
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 18:38:12 +01:00
Peter Ross
a246a603bf avrndec: use av_image_check_size
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 18:38:12 +01:00
Peter Ross
2d954ccd84 rawdec: use av_image_check_size
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 18:38:12 +01:00
Stefano Sabatini
252746d052 lavu/imgutils: add consistency checks to av_image_copy_plane()
Add assertions and abort in case of invalid |dst_linesize| < bytewidth or
|src_linesize| < bytewidth.

Avoid to silently corrupt memory.
2012-11-25 18:19:59 +01:00
Diego Biurrun
28c8e288fa x86: h264_chromamc: port to cpuflags 2012-11-25 17:25:10 +01:00
Paul B Mahol
b491da18d1 yop: fix typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-11-25 11:10:52 -05:00
Anton Khirnov
4632abc7a3 avconv: fix copying per-stream metadata.
It is handled separately from other types because it uses stream
specifiers and currently that triggers an assert in SET_DICT.

CC:libav-stable@libav.org
2012-11-25 16:35:20 +01:00
Stefano Sabatini
26c531cc22 lavu/opt: fix range shown in set_format() log message 2012-11-25 15:50:46 +01:00
Stefano Sabatini
be2c0bc949 configure: prefer "resampling" in the libswresample pkg-config description 2012-11-25 15:01:33 +01:00
Stefano Sabatini
c70ec631c9 lavu/opt: add av_opt_ accessors for pixel/format/image size options
The interface is implemented against the style of the other options
accessors. Possibly simplify programmatic setting of options.
2012-11-25 15:01:33 +01:00
Peter Ross
fdd71cf04c iff decoder: initialise HAM line decoder with first palette entry
The palette is organised into 'hold' and 'modify' pairs, hence why
the first palette entry is pal[1].

Fixes ticket #1701.

Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 14:40:36 +01:00
Michael Niedermayer
8f507feecb avfiltergraph: add AVOption table
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 14:36:22 +01:00
Marcus Stollsteimer
2bf794b698 doc: avtools-common-opts: Fix terminology concerning metric prefixes
'k', 'M', and 'G' are SI (unit) prefixes or metric prefixes,
not 'number postfixes'. Also, the statement regarding binary
prefixes ("powers of 2 are used instead of powers of 10")
might be misinterpreted (1 kB = 10^3 B, but 1 KiB != 2^3 B).

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 14:26:39 +01:00
Sean McGovern
f2ce813e37 configure: suncc: Add compiler arch support for Nehalem & Sandy Bridge
GCC does not appear to have a -march= string for Westmere, which is a
bit surprising as it has a few more instructions than a Nehalem, but
a few less than a Sandy Bridge.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 14:15:30 +01:00
Diego Biurrun
ddb009425c riff: Make ff_riff_tags static and move under appropriate #ifdef
The table is not used outside the file.
2012-11-25 13:32:10 +01:00
Michael Niedermayer
48cbdaea15 smacker: fix smacker_decode_header_tree() empty vlc table init
Fixes Ticket1858

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 02:40:59 +01:00
Michael Niedermayer
e6305f7631 mov: set flags to indicate that byte wise seeking is not supported.
Fixes Ticket1831

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-25 01:19:33 +01:00
Stefano Sabatini
e903cb4194 doc: add libswresample.texi and ffmpeg-resampler.texi files 2012-11-25 00:28:36 +01:00
Stefano Sabatini
f62abbf3b7 doc: move filters documentation to dedicated manual page ffmpeg-filters 2012-11-25 00:28:27 +01:00
Stefano Sabatini
fa4ead1d66 doc: move codec options and descriptions to a dedicated manual page 2012-11-25 00:27:07 +01:00
Nicolas George
ca4872e887 lavf/sbgdec: use proper constants for av_log(). 2012-11-24 23:56:52 +01:00
Carl Eugen Hoyos
d080292651 Support u8 in aiff.
Fixes ticket #1960.
Reviewed-by; Paul B Mahol
2012-11-24 21:21:50 +01:00
Michael Niedermayer
807fa714f0 adpcmdec: Fix OOM/infloop
Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 19:29:03 +01:00
Michael Niedermayer
34b6f1efa2 libopencore_amrwb: check packet size
Fix OOM

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 18:26:54 +01:00
Michael Niedermayer
57c0da6fe4 smacker: sanity check audio size.
Fixes, excessive memory allocation
Fixes Ticket1892

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 18:02:08 +01:00
Michael Niedermayer
014058abea af_aresample: check ff_get_audio_buffer() failure
Fixes null pointer dereference

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 17:33:32 +01:00
Michael Niedermayer
ed017ab945 atrac1: Check block align.
Fixes OOM
Fixes second samples posted in Ticket1893

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 16:38:22 +01:00
Michael Niedermayer
5c392bac9a ra288: Check block align.
Fixes OOM
Fixes Ticket1893

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 16:38:22 +01:00
Carl Eugen Hoyos
387f50606c Fix type of default value for v210 decoder option -custom_stride.
Reviewed-by: Paul B Mahol
2012-11-24 16:09:07 +01:00
Piotr Bandurski
081bf60ec6 c93: signal EOF 2012-11-24 15:04:32 +00:00
Paul B Mahol
05b02e9c0f mmf: simplify code by using FFMIN
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 14:27:55 +00:00
Paul B Mahol
7f321fca23 mmf: signal EOF
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 14:24:13 +00:00
Paul B Mahol
9378a90add omadec: remove stale comment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 11:41:43 +00:00
Paul B Mahol
4995145f40 codec_desc: mark PCM A-law/mu-law lossy
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 11:19:27 +00:00
Paul B Mahol
2d62732b21 codec_desc: provide aliases for PCM A-law/mu-law
Inspired by d21b82fd3a.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 11:14:06 +00:00
Paul B Mahol
3d8e684f05 ADPCM IMA Dialogic decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 10:56:47 +00:00
Paul B Mahol
ed591ed842 rl2: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 10:28:23 +00:00
Paul B Mahol
1a61c7a54b wvenc: multichannel muxing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 10:20:46 +00:00
Paul B Mahol
1b9467aea1 omaenc: remove superfluous "OMA: "
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 10:04:20 +00:00
Paul B Mahol
bc5ba1c7fd omaenc: abort for unsupported codecs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-24 10:04:20 +00:00
Piotr Bandurski
6d6bf250dd riff: fix decoding of 24-bit packed int (type 1, 20-bit) 2012-11-24 10:54:38 +01:00
Carl Eugen Hoyos
95903e3cfd Support G.722 in Sun AU. 2012-11-24 10:43:32 +01:00
Carl Eugen Hoyos
df651cf42e Add an annotation field as required by the specification when muxing Sun AU.
Reviewed-by: Paul B Mahol
2012-11-24 10:43:11 +01:00
Michael Niedermayer
f1470ca685 ratecontrol: Fix assertion failure on mismatching 2pass file.
Fixes Ticket582

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 03:03:17 +01:00
Michael Niedermayer
66244baf1d ffmpeg: fix mixed declarations and statements.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 03:02:11 +01:00
Michael Niedermayer
d92073ac93 ffmpeg: Correct starttime based on non discarded streams.
Fixes Ticket1830

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 01:54:49 +01:00
Michael Niedermayer
fe97bf60b8 ffmpeg: minor simplification of wraping code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-24 01:34:26 +01:00
Michael Niedermayer
09456d0df1 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>
2012-11-23 23:41:57 +01:00
Stefano Sabatini
9a7256e8e0 ffprobe: free dictionary in opt_show_entries()
Fix memleak.
2012-11-23 18:49:26 +01:00
Paul B Mahol
a8ebbf87be fate: add ADPCM AFC decoder test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-23 17:30:05 +00:00
Paul B Mahol
6f9ca8cbe0 fate: add AST demuxer test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-23 17:30:05 +00:00
Michael Niedermayer
0efcf16a3e replace av_log(0, by av_log(NULL,
The first parameter is a pointer and NULL is more correct

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 18:10:02 +01:00
Michael Niedermayer
c322f19855 vf_mandelbrot: give all av_log a context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 18:05:16 +01:00
Michael Niedermayer
533a8b2a7d x86/mpegvideoenc_template: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 17:57:22 +01:00
Michael Niedermayer
8328df74f3 motion_est: use av_assert* instead of assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 16:40:53 +01:00
Michael Niedermayer
56540bb3b5 h263dec: switch 2 asserts to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 16:36:17 +01:00
Michael Niedermayer
5da885b84d dv: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 15:52:12 +01:00
Michael Niedermayer
7ca97b6b3c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: sort cpuflags section by architecture

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 14:03:31 +01:00
Michael Niedermayer
d28467b62e Merge commit '457cc333b424994ecf80a82369325771e0397fd9'
* commit '457cc333b424994ecf80a82369325771e0397fd9':
  configure: properly support DEC/Compaq compiler

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 13:53:54 +01:00
Michael Niedermayer
25ca8aef54 Merge commit '4a606c830ae664013cea33800094d4d0f4ec62da'
* commit '4a606c830ae664013cea33800094d4d0f4ec62da':
  av_memcpy_backptr: optimise some special cases
  mpegvideo: simplify dxy calculation in hpel_motion()
  build: add rules to generate preprocessed source files

Conflicts:
	Makefile
	libavutil/mem.c
	library.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 13:30:51 +01:00
Mans Rullgard
33db40f8d3 configure: sort cpuflags section by architecture
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:07:23 +00:00
Mans Rullgard
457cc333b4 configure: properly support DEC/Compaq compiler
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:07:11 +00:00
Mans Rullgard
4a606c830a av_memcpy_backptr: optimise some special cases
- Add special cases for offsets of 2, 3, or 4 bytes.  This means the
  offset is always >4 in the generic case, allowing 32-bit copies to
  be used there.
- Don't use memcpy() for sizes less than 16 bytes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:04:17 +00:00
Mans Rullgard
5e39bb073a mpegvideo: simplify dxy calculation in hpel_motion()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:03:54 +00:00
Mans Rullgard
c262649291 build: add rules to generate preprocessed source files
This is useful for debugging.  Dependencies for these files are not
generated due to limitations in many compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:03:32 +00:00
Michael Niedermayer
e9c372362c id3v2: restructure compressed and unsync code
This should fix the interaction between the 2.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 03:28:20 +01:00
Michael Niedermayer
0560b28f12 ffv1dec: remove incorrect assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 02:42:00 +01:00
Michael Niedermayer
3616afced6 rmdec: fix av_log level and context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 01:19:48 +01:00
Michael Niedermayer
2fc0cbd9a6 truemotion2: Fix av_log level and context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 01:19:26 +01:00
Michael Niedermayer
801a2a1df0 mpeg12: fix av_log level and context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 01:18:53 +01:00
Michael Niedermayer
42dde253ec dcadec: fix av_log level
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-23 01:18:31 +01:00
Michael Niedermayer
be89693ddc avidec: try to support oddly muxed MMES stream
Fixes ticket1804

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 23:20:35 +01:00
Carl Eugen Hoyos
dd6abc921a vqavideo: Reinitialise the actually used partial codebook bytestream-reader.
Fixes ticket #1942.
2012-11-22 22:28:17 +01:00
Paul B Mahol
6aa6baa4f2 xmv: signal EOF
Fixes #1946.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-22 20:37:24 +00:00
Michael Niedermayer
66b45d8f7a movenc: fix assert failure caused by rounding.
Fixes Ticket1820

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 20:58:06 +01:00
Paul B Mahol
32cd3a7c16 ADPCM AFC decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-22 19:27:44 +00:00
Michael Niedermayer
08e26e7f5c id3v2: print ver/flags/len on debug level.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 19:31:04 +01:00
Stefano Sabatini
4a753fc5f7 tests: prefer ffprobe -show_entries to -show_format_entry
The latter option was deprecated.
2012-11-22 15:57:41 +01:00
Michael Niedermayer
a9cfbf6d4b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  id3v2: fix reading unsynchronized frames.
  cdgraphics: fix incorrect vertical offset mask in cdg_scroll()
  apetag: fix error handling in ff_ape_parse_tag()

Conflicts:
	libavformat/id3v2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 15:36:50 +01:00
Stefano Sabatini
c8a5365dcf ffprobe: implement -sections option 2012-11-22 14:19:29 +01:00
Stefano Sabatini
196765a7cc ffprobe: implement subsection field selection through the -show_entries option 2012-11-22 14:19:25 +01:00
Anton Khirnov
9ae80e6a9c id3v2: fix reading unsynchronized frames.
Current code would incorrectly process e.g. 'ff 00 ff 00 ff' to
'ff ff ff', while it should be 'ff ff 00 ff'.

Fixes Bug 395.

CC: libav-stable@libav.org
2012-11-22 13:40:04 +01:00
Stefano Sabatini
f67ebf5b77 lavfi/avfiltergraph: improve error message in graph_check_validity()
Fix trac ticket #1944.
2012-11-22 13:14:20 +01:00
Stefano Sabatini
eb87b340e8 lavfi/drawtext: add support for printing frame numbers
Fix trac ticket #1949.
2012-11-22 13:14:19 +01:00
Tim Nicholson
dcbf72836c ffmpeg: add setting of field_order flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 05:30:43 +01:00
Michael Niedermayer
91743fb730 frwu: do not set interlacing flags.
Our fate frwu sample is definitely not interlaced.
If someone has a interlaced frwu file, please contact us.

Without this change the field order patch would cause
incorrect interlacing information to be written when
using frwu input.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 05:21:38 +01:00
Michael Niedermayer
305a935968 brender: move declaration out of for() to make old compilers happy.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 01:07:16 +01:00
Aleksi Nurmi
492a5f835c brender_pix: a new image decoder
PIX is an image file format that was used by the BRender 3d engine.

Signed-off-by: Aleksi Nurmi <aleksi.nurmi@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-22 01:06:25 +01:00
Carl Eugen Hoyos
2e08a82d5e Fix the path to the C99-to-C89 Converter & Wrapper to the only existing repository.
Ronald deleted his public c99-to-c89 repository today.
2012-11-22 00:46:14 +01:00
Stefano Sabatini
3a0f3ffe8e ffmpeg: fix weird reindent 2012-11-22 00:13:14 +01:00
Stefano Sabatini
02b4ae0427 ffmpeg: print debug_ts off and off_time values with timestamp helper routines 2012-11-22 00:13:14 +01:00
Bojan Zivkovic
e41b518555 mips: Fixing HAVE_MIPSFPU dependencies
Signed-off-by: Bojan Zivkovic <bojan@mips.com>
Reviewed-by: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:57:29 +01:00
Peter Ross
bdba96e93c use correct doxygen parameter direction syntax
Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:56:15 +01:00
Peter Ross
9ccc349f77 ensure comment blocks that contain doxygen commands start with double asterix
Reveiwed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:55:15 +01:00
Piotr Bandurski
88161b2a52 siff: signal EOF
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:52:20 +01:00
Piotr Bandurski
9530439e5f segafilm: signal EOF
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:51:21 +01:00
Piotr Bandurski
1ed7ca00dc bethsoftvid: signal EOF
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:22:38 +01:00
Piotr Bandurski
425d0888c3 bfi: signal EOF
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 23:22:38 +01:00
Paul B Mahol
8e6957964e yop: fix 10l typo
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-21 20:15:02 +00:00
Michael Niedermayer
b93c933cd2 imgconvert-test: count the number of unused pixel format values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 20:25:30 +01:00
Michael Niedermayer
fb1bb97d87 imgconvert-test: skip pix formats without name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 20:25:30 +01:00
Stefano Sabatini
64dc383de5 ffprobe: fix typo in a comment 2012-11-21 20:17:57 +01:00
Stefano Sabatini
6ca9c74cc6 ffprobe: add "," at the end of enum list 2012-11-21 20:17:57 +01:00
Michael Niedermayer
2c5d911166 imgconvert-test: test alpha flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 20:07:34 +01:00
Michael Niedermayer
1dafbdac65 pixdesc: fix alpha flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 20:07:34 +01:00
Michael Niedermayer
c9ad2e9aa3 imgconvert: remove avg_bits_per_pixel(), its redundant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 20:07:17 +01:00
Peter Ross
0705cbd002 bink: return AVERROR_EOF upon reaching end of file
Fixes ticket #1935.

Signed-off-by: Peter Ross <pross@xvid.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 19:25:20 +01:00
Michael Niedermayer
60b59d657e codec_descriptors: fix typo in mpeg 2 video
Found-by: Ramiro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 18:25:01 +01:00
Michael Niedermayer
ea5adf7080 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flashsv: Drop unused function and struct parameters
  pcm: fix decoding of pcm_s16le_planar on big-endian

Conflicts:
	libavcodec/pcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 18:12:13 +01:00
Michael Niedermayer
b044e81f06 Merge commit 'ae3822bca16f1cdb2460a35b16f8ef636a04314e'
* commit 'ae3822bca16f1cdb2460a35b16f8ef636a04314e':
  imgconvert: remove PixFmtInfo

Conflicts:
	libavcodec/imgconvert.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 18:03:04 +01:00
Michael Niedermayer
6ff544e473 imgconvert: fix color type for non normal pix_fmts like HW stuff and unused entries.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:44:16 +01:00
Michael Niedermayer
6adf97fe00 avcodec_get_pix_fmt_loss: remove PixFmtInfo use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:44:16 +01:00
Michael Niedermayer
fc04c99dea imgconvert: print color type too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:44:16 +01:00
Paul B Mahol
e4e7846db8 cdxl: use url_feof()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-21 16:39:44 +00:00
Michael Niedermayer
f6c4395374 imgconvert: remove PixFmtInfo use from avg_bits_per_pixel()
This fixes several inconsistencies with YUV >8bit formats caused
due to missing information in the PixFmtInfo table.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:06:11 +01:00
Michael Niedermayer
0880f26bbe avcodec_find_best_pix_fmt_of_2: favor formats with fewer components if it does not incur a loss.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:06:11 +01:00
Michael Niedermayer
649d8bd8a5 pixdesc: add av_get_padded_bits_per_pixel()
This will be needed to allow removing the PixFmtInfo table

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:05:50 +01:00
Michael Niedermayer
ad9333d5ef imgconvert-test: add avg bits per pixel
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:03:31 +01:00
Michael Niedermayer
0efa240f2b is_yuv_planar: remove use of PixFmtInfo
This fixes the behavior for a few yuva 16bit formats

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:03:31 +01:00
Michael Niedermayer
be19e7e373 imgconvert: add self test code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 17:03:31 +01:00
Paul B Mahol
168a7f06de rawenc: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-21 15:34:45 +00:00
Michael Niedermayer
494945cb66 Merge commit 'd1d9efaae6c7e8466b06c30ca21c6b569dd2e480'
* commit 'd1d9efaae6c7e8466b06c30ca21c6b569dd2e480':
  avcodec: split avpicture from imgconvert
  pixdesc: add PIX_FMT_ALPHA flag

Conflicts:
	libavcodec/imgconvert.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 15:37:01 +01:00
Xi Wang
0d3123666a cdgraphics: fix incorrect vertical offset mask in cdg_scroll()
The vertical offset mask 0x07 is suspicious.

    v_off = FFMIN(data[2] & 0x07, CDG_BORDER_HEIGHT - 1);

Note that v_off is up to 11 (CDG_BORDER_HEIGHT - 1), the correct mask
should be 0x0F.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-11-21 14:35:26 +01:00
Xi Wang
b655cfefaf apetag: fix error handling in ff_ape_parse_tag()
The following error handling is broken due to signedness.

    int file_size;
    uint32_t tag_bytes;
    int64_t tag_start;
    ...
    tag_start = file_size - tag_bytes - APE_TAG_FOOTER_BYTES;
    if (tag_start < 0) { ... }

Note that tag_bytes is unsigned, which makes the right-hand side of
`tag_start = ...' unsigned, too.  The 32-bit unsigned value is then
zero-extended to 64 bits.  Therefore, tag_start must be non-negative,
and the check (tag_start < 0) is always false, which breaks the error
handling.  This patch fixes the check.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-11-21 14:35:26 +01:00
Diego Biurrun
17fecb4a59 flashsv: Drop unused function and struct parameters 2012-11-21 11:49:41 +01:00
Piotr Bandurski
4bf3bc6f96 sierravmd: signal EOF 2012-11-21 10:38:52 +00:00
Paul B Mahol
e94f429474 cafdec: return right code if EOF is reached
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-21 10:34:38 +00:00
Piotr Bandurski
25d8ebd422 thp: signal EOF 2012-11-21 10:21:54 +00:00
Piotr Bandurski
9a0ecd507a rpl: return AVERROR_EOF instead of -1 2012-11-21 09:48:46 +00:00
Clément Bœsch
030db0c1dd lavf/hls: whitespace cosmetics after 23db5418. 2012-11-21 08:01:51 +01:00
Clément Bœsch
57d7e21c34 lavf: move libmodplug registration with the other ext lib.
Also remove the duplicated #if.
2012-11-21 08:00:35 +01:00
LYF
23db5418ed hls: create an AVProgram for each variant
Without the information, application may choose audio from one variant
and video from another variant, which leads to fetch two variants from
network. This enables av_find_best_stream() to find matching audio and
video streams, so that only one variant is fetched from network.

Signed-off-by: LYF <yefei.li@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-21 01:24:01 +01:00
Stefano Sabatini
8b6aeb1fcd lavf/segment: fix value for the M3U8 EXT-X-MEDIA
From the M3U8 specification:
|The EXT-X-MEDIA-SEQUENCE tag indicates the sequence number of the first
|URI that appears in a Playlist file.

Previously it was using the list index number. Also remove now unused
list_count field.
2012-11-20 22:48:28 +01:00
Stefano Sabatini
5a1ac463e0 lavf/segment: do not pre-increment segment_idx value
Increment the value just when a new segment with the given index is
started. Simplify logic, improve readability.
2012-11-20 22:48:28 +01:00
Stefano Sabatini
2b31aa8895 lavf/segment: unbreak behavior for segment muxer
The segment muxer presumes the use of AVFMT_GLOBALHEADER, ssegment should
be use in case of formats which requires no global headers.

Regression introduced when merging
0826d8513d.
2012-11-20 22:48:28 +01:00
Stefano Sabatini
b6c05879ea lavf/segment: consistently use "seg" in segment_start() 2012-11-20 22:48:28 +01:00
Stefano Sabatini
3d52083a27 ffmpeg: rework debugging timestamp logs in process_input()
Print timestamps before and after ffmpeg timestamp postprocessing.
Help to debug how ffmpeg processes the input timestamps.
2012-11-20 22:48:28 +01:00
Clément Bœsch
cc88734c3c lavf/srtdec: trim line break event separators from packet.
The muxer add them automatically, so this avoid having a bunch of line
breaks all over the output files. One '\n' is still kept/added because
the lavc subrip decoder seems to have trouble with line ending abruptly
(it doesn't flush correctly the tags). This bug is harmless but should
be fixed; though, this doesn't look like a trivial change. When this bug
gets fixed, we can consider removing the '\n' at the end of the packet.

The 2048B buffer limit was also removed while moving to AVBPrint API.
Note that this doesn't really matter since the decoder is limited as
well.
2012-11-20 22:38:39 +01:00
Carl Eugen Hoyos
d513fb1c75 Add -skip_initial_bytes option.
Fixes ticket #1909.
2012-11-20 22:04:14 +01:00
Carl Eugen Hoyos
b1e190d0fd Correctly signal EOF when demuxing caf files. 2012-11-20 22:04:03 +01:00
Clément Bœsch
52b7823b73 swr: include stdint.h instead of inttypes.h.
stdint.h is for the [u]int*_t types, which is the only thing we need for
the prototypes. inttypes.h includes stdint.h and defines more thing we
don't need here.

Bump micro in case a user app was relying on this include for its own
code.
2012-11-20 21:53:06 +01:00
Michael Niedermayer
391f323615 rc: fix 10l typo in rc_max_available_vbv_use calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 21:11:05 +01:00
Paul B Mahol
50a9530bc4 fate: increase pcm coverage
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-20 19:29:00 +00:00
Clément Bœsch
186942a5e3 swr: fix a few typo in the public header. 2012-11-20 20:29:05 +01:00
Michael Niedermayer
156a75a459 swr-doxy: elaborate on swr_get_delay() and the timebase
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 20:05:08 +01:00
Michael Niedermayer
7cca237ddd swr: general doxy text about swr and example code.
Based on doxy from avr
Reviewed-by: Clément Bœsch
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 19:46:08 +01:00
ChanMin Kim
4293464705 lavf/segment: do not copy codec_tag when not available
Some muxers do not allow stream if codec_tag is incompatible.

Sometimes the passed input codec's codec_tag is not compatible with the
output muxer.

Because the codec_tag field of the segment muxer cannot be set, ffmpeg.c
doesn't know how to handle these cases.

Signed-off-by: ChanMin Kim <kcm1700@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 19:19:31 +01:00
Peter Ross
6253cee497 the hyperlink to the Developer's Certificate of Origin no longer works; use Linux kernel hyperlink
Signed-off-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 19:19:31 +01:00
Paul B Mahol
dd59f0125d add some planar PCM encoders
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-20 17:29:00 +00:00
Paul B Mahol
f17f759544 pcmdec: use memcpy() when possible for planar decoders
This is faster (at least with clang).

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-20 17:28:36 +00:00
Justin Ruggles
00dd9a6d6a pcm: fix decoding of pcm_s16le_planar on big-endian
The sample count is decremented by the DECODE() macro and needs to be reset
in each loop iteration. Also, DECODE() increments the src pointer so that does
not need to be done separately.
2012-11-20 10:52:49 -05:00
Michael Niedermayer
07a866282f oggdec: fix memleak on header parsing failure
Fixes Ticket1931

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 15:14:12 +01:00
Stefano Sabatini
99a30ad56d doc/platform: replace link to site arrozcru.org with link to ffmpeg.zeranoe.com
ffmpeg.arrozcru.org is currently unmaintained, and it redirects to
ffmpeg.zeranoe.com.
2012-11-20 14:59:39 +01:00
Michael Niedermayer
6dadb0e425 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: add 24-bit ALAC tests
  FATE: rename ALAC tests from alac-* to alac-16-*

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 14:35:27 +01:00
Paul B Mahol
00e02366a5 pcmenc: use ENCODE macro for pcm_s8
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-20 13:18:56 +00:00
Michael Niedermayer
2d232f8b88 pcm: revert from libavs planar code to durandals.
The libav code does not work on big endian.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 14:04:38 +01:00
Michael Niedermayer
70c0f13a9a Merge commit '7c278d2ae410a64bdd89f1777026b4b963c30a1a'
* commit '7c278d2ae410a64bdd89f1777026b4b963c30a1a':
  alacenc: support 24-bit encoding
  pcmdec: use planar sample format for pcm_s16le_planar
  vorbisdec: use float planar sample format

Conflicts:
	libavcodec/pcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 13:34:27 +01:00
Luca Barbato
ae3822bca1 imgconvert: remove PixFmtInfo
It is pleonastic and was used in stale functions pending replacement.
2012-11-20 12:45:58 +01:00
Luca Barbato
d1d9efaae6 avcodec: split avpicture from imgconvert
All the non deprecated functions are in avpicture.c now.
2012-11-20 12:45:58 +01:00
Luca Barbato
cbe5a60c9d pixdesc: add PIX_FMT_ALPHA flag 2012-11-20 12:45:58 +01:00
Paul B Mahol
da8242e2d6 8svx: move pcm_s8_planar decoder to pcm.c
Removes limitation of max 2 channels for pcm_s8_planar decoder by moving
it to more natural place.

AV_CODEC_ID_8SVX_RAW is not used by anything anymore and is going to be
removed.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-20 11:36:28 +00:00
Paul B Mahol
a5e382ad7f 4xm: return error code if decode_init() failed
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-20 09:42:32 +00:00
Justin Ruggles
b353321caa FATE: add 24-bit ALAC tests 2012-11-20 00:26:46 -05:00
Justin Ruggles
7c278d2ae4 alacenc: support 24-bit encoding 2012-11-20 00:26:45 -05:00
Justin Ruggles
3e6c2a67a1 FATE: rename ALAC tests from alac-* to alac-16-*
This will distinguish ALAC 16-bit tests from ALAC tests with other bit
depths.
2012-11-20 00:26:45 -05:00
Justin Ruggles
c9d0f4506f pcmdec: use planar sample format for pcm_s16le_planar 2012-11-19 23:48:37 -05:00
Justin Ruggles
79b7747556 vorbisdec: use float planar sample format 2012-11-19 23:48:37 -05:00
Michael Niedermayer
cf5f4c5169 aacsbr: check sample_rate before using it, fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 04:04:30 +01:00
Michael Niedermayer
aed128f07d 4xmdec: fix integer overflow, null ptr dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 03:00:22 +01:00
Peter Ross
ed27ed9f4f iff: DEEP RLE 32-bit decoder
Fixes ticket #1046.

Signed-off-by: Peter Ross <pross@xvid.org>
2012-11-20 09:49:49 +11:00
Bojan Zivkovic
a74ae4691a mips: Optimization of AC3 FP encoder and EAC3 FP decoder
Signed-off-by: Bojan Zivkovic <bojan@mips.com>
Reveiwed-by: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 22:24:44 +01:00
Clément Bœsch
c02ae48271 swr: set default channel count options to 0.
If not set, they will be defined using the channel layout setting, which
is much more convenient when using swr_alloc() instead of
swr_alloc_set_opts().
2012-11-19 18:49:14 +01:00
Gavin Kinsey
19660a8876 Allow use of @ character in username and passwords embedded in URLs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 18:02:28 +01:00
Michael Niedermayer
ebf4750200 pthreads: increase MAX_BUFFERS due to 24c043c98e
This might fix a hypothetical memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 17:32:13 +01:00
Michael Niedermayer
c44a028e19 af_aresample: allocate at least 1 sample buffer. Fix null ptr dereference.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 15:55:54 +01:00
Piotr Bandurski
1b20877f34 vble: remove superfluous braces
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 15:36:20 +01:00
Michael Niedermayer
e6d81ce22e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: h264_intrapred: Fix C function names in comments
  x86: SPLATD: port to cpuflags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 14:24:20 +01:00
Michael Niedermayer
4116151a4b Merge commit '1c5805521c3e406886341d752ebf38f8d41e1d13'
* commit '1c5805521c3e406886341d752ebf38f8d41e1d13':
  PGS subtitles: Set AVSubtitle pts value
  configure: Refactor CPPFLAGS settings for glibc/uclibc
  configure: add basic support for ARM AArch64
  build: set -U__STRICT_ANSI__ for newlib

Conflicts:
	configure
	libavcodec/pgssubdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 14:05:41 +01:00
Michael Niedermayer
fdbb6164a2 sbr: increase f_tablelim size, it appears it was too small by 1.
Prevent out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 13:09:02 +01:00
Paul B Mahol
b0d83e0dba doc/general: remove duplicate entry for ADPCM SMJPEG IMA
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-19 10:25:19 +00:00
Paul B Mahol
305fe9ae59 nut: add tag for PCM signed 8-bit planar
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-19 09:55:20 +00:00
Paul B Mahol
086e305276 doc/general: remove 8SVX audio, there is no such codec
While here add missing PCM signed 8-bit planar.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-19 09:52:32 +00:00
Paul B Mahol
0dbf297229 doc/general: move 8SVX codecs to right section
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-19 09:52:25 +00:00
Carl Eugen Hoyos
a5d4e94a97 Support iLBC in caf. 2012-11-19 10:19:50 +01:00
Michael Niedermayer
ba353436a3 h264: dont stop parsing NALs without cleanup on DPC.
Fixes a deadlock with frame threads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 04:08:11 +01:00
Piotr Bandurski
45d8537ccf vble: do not abort when version is not 1
Fixes ticket #1923.

Reviewed-by: Derek Buitenhuis
2012-11-19 01:55:51 +01:00
Michael Niedermayer
24c043c98e mpegvideo: increase MAX_PICTURE_NUMBER.
avoid abort().

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 01:38:06 +01:00
Piotr Bandurski
ade9960fc6 avrndec: support lowres for mjpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-19 00:42:39 +01:00
Michael Niedermayer
e8fed4d331 error concealment: check that references are frames and not fields.
frames cant have field references.
Fixes a deadlock

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 23:02:46 +01:00
Michael Niedermayer
8a03a60b4a h264: Check gray scale CBP, fix out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 23:02:46 +01:00
Michael Niedermayer
27d39c225b liavfi/avcodec: allow channel layouts with fewer channels than actually available.
This fixes the regression with Ticket1726, where some audio was lost.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 22:54:18 +01:00
Paul B Mahol
0df7d95a5e pcmenc: remove dead increment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-18 21:12:25 +00:00
Paul B Mahol
6557c46d91 pcm: move i into for loop to avoid { } inside switch statement
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-18 20:45:03 +00:00
Paul B Mahol
a6f4c41a7e fate: add mjpeg-422 and mjpeg-444 tests
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-18 19:45:21 +00:00
Michael Niedermayer
36cf247e43 ff_h264_direct_ref_list_init: fix B slice check.
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 19:10:57 +01:00
Paul B Mahol
9f02d4ed0f mjpegenc: yuvj444p support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-18 17:46:45 +00:00
Diego Biurrun
89923fce70 x86: h264_intrapred: Fix C function names in comments
Function names changed after switching to declaration with
PRED4x4/8x8/8x8L/16x16 macros in the C code.
2012-11-18 18:34:05 +01:00
John Stebbins
1c5805521c PGS subtitles: Set AVSubtitle pts value
pts should be that of the packet containing the presentation segment.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-18 18:34:05 +01:00
Diego Biurrun
87af05c575 x86: SPLATD: port to cpuflags 2012-11-18 18:34:05 +01:00
Stefano Sabatini
158763312f lavfi/frei0r: in init() check path loop, free resources in a single point 2012-11-18 16:52:46 +01:00
Stefano Sabatini
6c7ae49330 lavfi/frei0r: extend load_path() to support arbitrarily long paths 2012-11-18 16:52:46 +01:00
Michael Niedermayer
d6c184880e 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>
2012-11-18 16:47:29 +01:00
Michael Niedermayer
2d5f1addbe h264: fix integer overflow, assert failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 16:47:29 +01:00
Michael Niedermayer
1a947dfa83 ff_mpeg_update_thread_context: assert context unequality
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 16:47:29 +01:00
Clément Bœsch
f48cddfe4c pp: add SSE2 deInterlaceInterpolateCubic().
2124 decicycles in deInterlaceInterpolateCubic_C, 67100774 runs, 8090 skips
458 decicycles in deInterlaceInterpolateCubic_MMX2, 67107146 runs, 1718 skips
382 decicycles in deInterlaceInterpolateCubic_SSE2, 67107086 runs, 1778 skips
2012-11-18 16:21:59 +01:00
Clément Bœsch
4e264d1c79 pp: add support for SSE2. 2012-11-18 16:21:59 +01:00
Clément Bœsch
f6be711a69 lavfi/mp/pp: use PP_CPU_CAPS_AUTO. 2012-11-18 16:21:59 +01:00
Clément Bœsch
59d686f100 pp: add auto detection cpu flag. 2012-11-18 16:21:59 +01:00
Clément Bœsch
e034b07e40 pp: add various const for pointers. 2012-11-18 16:20:09 +01:00
Nicolas George
c437c251b8 lavfi/drawtext: implement more generic expansion.
The new expansion mechanism uses the %{...} notation.
For compatibility reasons, it must be enabled explicitly,
but a warning is printed if a conflict is likely to happen.
2012-11-18 15:55:47 +01:00
Piotr Bandurski
4413a8428a iff: decode HAM8 images with masking correctly.
Fixes ticket #967.

Reviewed-by: Peter Ross
2012-11-18 15:48:22 +01:00
Michael Niedermayer
4fecc3cf09 h264: Skip odd NALs in extradata, prevent undefined behavior
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 14:26:58 +01:00
Marton Balint
4bee03034b lavf: let av_find_best_stream use bitrate info if available
I guess the user expects to see the stream with the highest bitrate, not with
the most frames, this is especially useful for multi bitrate streams.

This patch changes av_find_best_stream to select the stream based on a number
of conditions, the first condition has the highest priority, the last condition
has the lowest:

1) Select the stream with the highest FFMIN(5, codec_info_nb_frames) value
2) Select the stream with the highest bitrate
3) Select the stream with the highest codec_info_nb_frames
4) Select the first stream

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 13:57:08 +01:00
Peter Ross
05001dd7ca iff: process DEEP DLOC chunk to obtain image dimensions
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 13:47:17 +01:00
Peter Ross
d26eeb0dc1 iff: recognise more DEEP colorspaces
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 13:46:36 +01:00
Michael Niedermayer
0c79a3d9cb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: lavr: fix stack allocation for 7 and 8 channel downmixing on x86-32
  lavr: fix the decision for writing directly to the output buffer
  parisc: work around bug in gcc 4.3 and later

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 13:35:15 +01:00
Paul B Mahol
d0a503c97c ast: check bit depth too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-18 12:29:05 +00:00
Paul B Mahol
f5f29910dd img2enc: remove dead code
Nothing in lavc sets extradata for such codec and this is wrong place
for it anyway.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-18 12:09:20 +00:00
Diego Biurrun
3bd1eacd2a configure: Refactor CPPFLAGS settings for glibc/uclibc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-18 12:00:18 +00:00
Mans Rullgard
5873b623a9 configure: add basic support for ARM AArch64
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-18 12:00:18 +00:00
Mans Rullgard
8f7b814f54 build: set -U__STRICT_ANSI__ for newlib
This is (erroneously) required to enable various things in the
newlib headers.  As cygwin uses newlib, it is covered by this.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-18 12:00:17 +00:00
Carl Eugen Hoyos
ab82b77822 Fix possible NULL-pointer dereference when decoding mov files.
Fixes CID743440, introduced in 850e5c0.
2012-11-18 08:52:50 +01:00
Michael Niedermayer
dab19048a1 mjpegdec: reset h/v_count, fix assertion failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-18 06:00:44 +01:00
Ronald S. Bultje
7a9e65acee x86: lavr: fix stack allocation for 7 and 8 channel downmixing on x86-32
Fixes crashes on Win32 and stack overruns on x86-32 in general.
2012-11-17 20:16:04 -05:00
Justin Ruggles
02738792c5 lavr: fix the decision for writing directly to the output buffer
If there are any samples remaining in the output fifo from previous conversion
calls, we have to output those samples first instead of doing direct output
of the current samples.
2012-11-17 20:09:40 -05:00
Paul B Mahol
e3edee6d2f eamad: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 20:28:52 +00:00
Paul B Mahol
d98364edce smush: check audio packet size
Fixes null pointer dereference.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 19:58:54 +00:00
Michael Niedermayer
845724c82c vcr1: check if dimensions are supported, fix out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 20:43:56 +01:00
Michael Niedermayer
fb1ea777b3 electronicarts: check size before reading duration out of a chunk.
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 20:43:56 +01:00
Paul B Mahol
461ecea068 AST demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 19:30:08 +00:00
Paul B Mahol
9ba41ae63e PCM signed 16-bit big-endian planar decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 19:30:08 +00:00
Paul B Mahol
37e2a9783f lxfdec: remove deplanarization hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 19:30:04 +00:00
Paul B Mahol
467dfd5dfa PCM signed 24-bit/32-bit little-endian planar decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-17 19:09:43 +00:00
Nicolas George
ee2d6fbc92 doc/texi2pod: recognize @table @command. 2012-11-17 19:47:56 +01:00
Nicolas George
29e388abcb lavfi/drawtext: use bprint for the expanded text. 2012-11-17 19:47:56 +01:00
Nicolas George
4cd74c8143 lavu/bprint: implement av_bprint_strftime(). 2012-11-17 19:47:56 +01:00
Mans Rullgard
5af530f5a9 parisc: work around bug in gcc 4.3 and later
A bug in tail call optimisation in gcc 4.3 and later on parisc causes
numerous tests to fail.  Disabling this optimisation gives a working
build.  See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55023

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-17 17:54:28 +00:00
Michael Niedermayer
f96a653184 flvdec: disable hack that attempts to parse aac bitstream in the flv demuxer.
I was unable to find a file that needs this hack, if you have one please
contact us!
Fixes out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 18:49:08 +01:00
Michael Niedermayer
63ac64864c eamad: fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 16:27:18 +01:00
Michael Niedermayer
130dc95187 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: add a bink version 'b' test
  FATE: add a bink version 'i' test
  libswscale: remove unnecessary direct #if LIBSWSCALE_VERSION_MAJOR

Conflicts:
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 13:06:12 +01:00
Michael Niedermayer
abf91f7fee Merge commit '8f5587c3d0bc4b5f075e4282215bda91a21fc12e'
* commit '8f5587c3d0bc4b5f075e4282215bda91a21fc12e':
  cpu.h: define AV_CPU_FLAG_MMX2 for libavutil major 52
  h264: Fix parameters to ff_er_add_slice() call
  h264: always check ref_count for validity

Conflicts:
	libavcodec/h264.c
	libavutil/cpu.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 12:58:00 +01:00
Nicolas George
cb8c5e531c cmdutils: free the report file name.
Fix coverity issue 743443, which was a harmless leak.
2012-11-17 12:41:22 +01:00
Nicolas George
1ba2e589cc configure: add --fatal-warnings option. 2012-11-17 12:01:17 +01:00
Nicolas George
c551c3b18b configure: warn when en/disabling has no effect.
Print a warning for --enable- or --disable-something=pattern
does not match any component.
2012-11-17 11:57:17 +01:00
Stefano Sabatini
a0f2d3fff5 lavf/avienc: return proper error codes, and provide some more feedback 2012-11-17 11:15:00 +01:00
Anton Khirnov
da5408ede9 FATE: add a bink version 'b' test 2012-11-17 08:45:47 +01:00
Anton Khirnov
108bfe4e43 FATE: add a bink version 'i' test 2012-11-17 08:45:47 +01:00
Michael Niedermayer
8ad9b48c9b xxan: check ybuf index before use.
Fixes out of array access

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 04:45:56 +01:00
Michael Niedermayer
774830050a cook: check subbands more completely, fix out of array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 03:43:17 +01:00
Michael Niedermayer
84281d111c ff_mpeg4videodec_static_init: fix return type
Fixes CID743439
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 02:31:11 +01:00
Michael Niedermayer
caedd51e56 mxfdec: fix potential integer overflow in mxf_compute_sample_count()
Fixes CID743442
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 02:20:50 +01:00
Michael Niedermayer
7b723ed4c0 cpu: add a few cpu names as aliases for their cpu flags
Help to complete this list is welcome!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 02:09:56 +01:00
Michael Niedermayer
65e57975b9 cpu: add cmov ro the table, which appears to have been forgotten
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 02:09:56 +01:00
Michael Niedermayer
31fce39942 tm2: check for invalid vlcs, fix out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-17 02:09:56 +01:00
Clément Bœsch
c6945228e8 pp: simplify postProcess(). 2012-11-16 23:13:36 +01:00
Clément Bœsch
375cd3f2ec pp: rework the way templating is done.
This refactoring simplifies the usage of the template: define the
profile and include the template is all that is required. It should now
be easier to add more instruction sets.

The HAVE_* flags are changed with TEMPLATE_PP_* setting to avoid messing
them up.

See the top comment in postprocess_template.c for details.
2012-11-16 23:13:36 +01:00
Michael Niedermayer
6535d81d87 g723_1dec: Fix lsp2lpc() so it can handle values at the ends of the table.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 21:36:44 +01:00
Michael Niedermayer
2207ea44fb ff_emulated_edge_mc: fix integer anomalies, fix out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 21:33:52 +01:00
Alexander Strasser
7750c48d30 dshow: Use NO_DSHOW_STRSAFE for all dshow header inclusions
Move the NO_DSHOW_STRSAFE macro definition in front of the dshow.h
system header inclusion.

This excludes the usage of the STRSAFE functions consistently.

Further background on this can be found in the commit message of
revision 05ee0db1 where the #define was initially introduced.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-11-16 19:26:13 +01:00
Michael Niedermayer
c2cbc80ae9 ffv1enc: consider 2pass float rounding, fix loop
Found-by: "Peter B." <pb@das-werkstatt.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 17:01:13 +01:00
Stefano Sabatini
ee6ae8355e doc/filters: fix a few typos in the frei0r docs 2012-11-16 16:52:14 +01:00
Stefano Sabatini
cb309922cb doc/ffprobe: factorize definition of writers syntax
The writers option syntax was unified.
2012-11-16 16:52:13 +01:00
Janne Grunau
80716953c2 libswscale: remove unnecessary direct #if LIBSWSCALE_VERSION_MAJOR
SWS_CPU_CAPS are deprecated and slated to removed with libswscale major
version 3. No need to provide a SWS_CPU_CAPS_MMX2 as backward
compatibility define under the same explicit condition.
2012-11-16 15:04:57 +01:00
Janne Grunau
8f5587c3d0 cpu.h: define AV_CPU_FLAG_MMX2 for libavutil major 52 2012-11-16 15:04:48 +01:00
Matthieu Bouron
83cab07a4c mxfdec: set audio packets pts
Also fix playback of ntsc files.

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 14:12:37 +01:00
Xidorn Quan
8ee6db393c mov: add more udta meta data recognition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 14:12:37 +01:00
Clément Bœsch
2dd0da787c lavf/mp3enc: make sure the header is valid before writing audio pkt.
An invalid header can lead avpriv_mpegaudio_decode_header() to overread
and/or div by zero.
2012-11-16 14:11:08 +01:00
Michael Niedermayer
ff3b59c848 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: dsputil: port to cpuflags
  crc: av_crc() parameter names should match between .c, .h and doxygen
  avserver: replace av_read_packet with av_read_frame
  avserver: fix constness casting warnings

Conflicts:
	libavcodec/x86/dsputil.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 13:23:35 +01:00
Janne Grunau
e6160bda98 h264: Fix parameters to ff_er_add_slice() call
s->mb_x is reset to zero a couple of lines above. It does not make
sense to call ff_er_add_slice() with 0 as endx when the end of the
macroblock row was reached. Fixes unnecessary and counterproductive
error resilience in https://bugzilla.libav.org/show_bug.cgi?id=394.

CC: libav-stable@libav.org
2012-11-16 13:18:28 +01:00
Janne Grunau
60b6b8c019 h264: always check ref_count for validity
Fixes a crash with zuffed files.
2012-11-16 13:18:28 +01:00
Michael Niedermayer
f30cf51d46 ffserver: put NoDaemon back so as not not break existing conf files.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 13:12:09 +01:00
Michael Niedermayer
3db32ec119 Merge commit 'bf5f46b4cc47b7a4568119f224057d4ff91b6cdd'
* commit 'bf5f46b4cc47b7a4568119f224057d4ff91b6cdd':
  APIChanges: add entry for av_read_packet deprecation
  mxfdec: fix typo in mxf_read_seek()
  avserver: use freopen to redirect stdin/out/err to /dev/null
  avserver: remove daemon mode
  configure: Check for -Werror parameters on clang
  doxygen: remove obsolete options from Doxyfile
  configure: Add option to disable all command line programs

Conflicts:
	Changelog
	configure
	doc/APIchanges
	doc/ffserver.conf
	doc/ffserver.texi
	ffserver.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 13:07:10 +01:00
Diego Biurrun
8c3849bc76 x86: dsputil: port to cpuflags 2012-11-16 10:38:23 +01:00
Diego Biurrun
8ff0f7763d crc: av_crc() parameter names should match between .c, .h and doxygen 2012-11-16 10:38:23 +01:00
Nicolas George
926481078b lavu/opt: fix av_opt_get_key_value() API.
Do not skip the end delimiter.
Reserve positive return values.
This is an API break, but the function was introduced less than
two weeks ago.
2012-11-16 10:36:45 +01:00
Nicolas George
468781f828 doc/APIchanges: clarify comment on new APIs. 2012-11-16 10:36:45 +01:00
Michael Niedermayer
68def00a63 rv34: check image size before using it
fixes assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 05:16:34 +01:00
Michael Niedermayer
7845f8d282 vc1dec: do not allow field_mode to change after the first header
Fixes out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-16 04:58:46 +01:00
Clément Bœsch
8f42b09604 swr/resample: fix SSSE3 included unconditionally.
10l Regression since 8ea88339.
2012-11-15 23:52:44 +01:00
Clément Bœsch
5cd567cfb4 pp: fix typo in avg() comment. 2012-11-15 21:54:18 +01:00
Clément Bœsch
4c0aece192 pp: use av_clip_uint8 instead of a custom implementation. 2012-11-15 21:54:13 +01:00
Clément Bœsch
c4f317e7fe pp: fix a few typo in the internal header. 2012-11-15 21:54:07 +01:00
Clément Bœsch
b3bf9b1d97 lavfi/geq: fix GPL license header.
100l: original code is GPL, header miscopied. LICENSE file and configure
dependency are fine.
2012-11-15 21:48:39 +01:00
Clément Bœsch
5e68bf9b92 swr/rematrix: move templating parameters to template itself. 2012-11-15 21:24:49 +01:00
Clément Bœsch
8ea8833979 swr/resample: move templating parameters to template itself.
It has various benefits such as allowing some refactoring, clarifying
the code in the inclusion part, and making the template understandable
in standalone.

This commit is based on the templating method used by Justin Ruggles for
libavresample.
2012-11-15 21:24:49 +01:00
Michael Niedermayer
e31b1938ac zmbv: avoid use of uninitialized data
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 20:58:36 +01:00
Michael Niedermayer
c2409a7c5b vmdav: more complete check for block_align, prevent out of array access.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 20:58:36 +01:00
Michael Niedermayer
ea3eaa37b1 flashsv: only realloc blocks for version 2
Fixes 10l regression introducing a memleak

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 20:58:35 +01:00
Janne Grunau
566de8cde2 avserver: replace av_read_packet with av_read_frame 2012-11-15 18:04:53 +01:00
Janne Grunau
39c4afd926 avserver: fix constness casting warnings
Use a different char* for extracting info string from the URL. The
other pointer can be made const then which elimates the need for a
cast and fixes the following warnings:
warning: to be safe all intermediate pointers in cast from ‘char **’ to
‘const char **’ must be ‘const’ qualified [-Wcast-qual]
2012-11-15 18:04:53 +01:00
Janne Grunau
bf5f46b4cc APIChanges: add entry for av_read_packet deprecation 2012-11-15 17:49:53 +01:00
Janne Grunau
c84cce5a99 mxfdec: fix typo in mxf_read_seek()
Check the number of index tables before using byte offset based seeking
instead of the index_tables pointer.

Found by Måns Rullgård <mans@mansr.com>.
2012-11-15 17:37:09 +01:00
Janne Grunau
a4cd2ad89a avserver: use freopen to redirect stdin/out/err to /dev/null 2012-11-15 17:36:38 +01:00
Mans Rullgard
ada51a334a avserver: remove daemon mode
This code spews a multitude of warnings with glibc (unchecked
return values), some of them possibly warranted.  Furthermore,
the deamonisation is not suitable for use with typical startup
scripts as it does not provide the PID of the daemon in any way.
Users wishing to run avserver as a daemon can still do so using
start-stop-daemon or equivalent tools.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-11-15 17:36:14 +01:00
Martin Storsjö
9eded0fe41 configure: Check for -Werror parameters on clang
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-15 18:22:03 +02:00
Janne Grunau
116ae7285e doxygen: remove obsolete options from Doxyfile
The options USE_INLINE_TREES, SHOW_DIRECTORIES and HTML_ALIGN_MEMBERS
became obsolete with doxygen 1.8.1 (releaded 2012-05-19). The generated
outpu for older doxygen versions should not change since they were set
to the default value.
2012-11-15 17:18:37 +01:00
Paul B Mahol
eca2eb2dfa pcm: give more descriptive name to codec
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-15 16:04:35 +00:00
Michael Niedermayer
c0d68be555 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>
2012-11-15 16:46:51 +01:00
Michael Niedermayer
bc08ca841e flashsv: reallocate block array independant of frame type.
Fixes NULL pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 16:46:42 +01:00
Carl Eugen Hoyos
850e5c041d Read QuickTime version 1 audio fields in broken mov files.
Matrox XMIO capture boards write files with major brand "JUNK"
and compatible brand "qt  " that contain QuickTime version 1
audio fields.

Fixes ticket #1881.
2012-11-15 14:38:19 +01:00
Michael Niedermayer
d53f447130 swr: move if() block into the only branch where it can be true.
This should make the code a tiny tiny bit faster.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 12:33:40 +01:00
Michael Niedermayer
17da2d9eee swr: reorder/redesign operations to avoid integer overflow.
This fixes a out of array read.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 12:33:40 +01:00
Clément Bœsch
0e482a8e49 ffserver: fix streams and priv_data memleaks when closing a connection. 2012-11-15 11:52:44 +01:00
Michael Niedermayer
a9b1536a01 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  bgmc: Fix av_malloc checks in ff_bgmc_init()
  rtp: set the payload type as stream id

Conflicts:
	libavformat/rtpenc_chain.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 11:31:13 +01:00
Michael Niedermayer
4d941eac16 Merge commit '3b4296f41473a5b39e84d7a49d480624c9c60040'
* commit '3b4296f41473a5b39e84d7a49d480624c9c60040':
  avformat: clarify stream id for muxing
  fate: Add dependencies for aac, alac, amrnb, amrwb, atrac tests
  ppc: do not pass redundant compiler flags
  avutil: change GET_UTF8 to not use av_log2()
  segment: fix NULL pointer dereference in seg_write_header()

Conflicts:
	tests/fate/aac.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 11:12:25 +01:00
Michael Niedermayer
62006b539d ituh263dec: more complete w/h check.
Fixes a division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 02:44:03 +01:00
Michael Niedermayer
caa2fa2c69 rv10: always check image size not just in some cases.
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 02:17:26 +01:00
Michael Niedermayer
a3cb7f992f xwma: check bytes_per_sample, fix division by 0.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 00:56:54 +01:00
Michael Niedermayer
12eb2fd539 dxa: dont try to use the previous frame if there is none.
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-15 00:43:30 +01:00
Michael Niedermayer
e70144cba1 bink: check quant_index, fix out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 23:54:00 +01:00
Diego Biurrun
e28b7553ae configure: Add option to disable all command line programs 2012-11-14 23:03:36 +01:00
Xi Wang
b74dbdd5e9 bgmc: Fix av_malloc checks in ff_bgmc_init()
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-14 23:03:36 +01:00
Michael Niedermayer
612ecfbbbb gifdec: check ff_lzw_decode_init() return value, fix out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 23:00:11 +01:00
Michael Niedermayer
50f0a6b4e6 wmaprodec: check num_sfb for validity. Fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 21:15:08 +01:00
Luca Barbato
3b4296f414 avformat: clarify stream id for muxing 2012-11-14 20:38:51 +01:00
Luca Barbato
8034130e06 rtp: set the payload type as stream id
Support multiple video/audio streams with different format in the
same session.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-11-14 20:38:51 +01:00
Michael Niedermayer
30bce34b67 vpriv_adx_decode_header: avoid underreading the array.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 19:16:08 +01:00
Michael Niedermayer
ab8517b891 vc1dec: require a minimum of 2x2 for the edge pos. Avoid assertion failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 19:16:08 +01:00
Paul B Mahol
dbc44667ce Add missing dependency for avr demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-14 18:02:28 +00:00
Michael Niedermayer
ccce723c6d vc1dec: check first field slices, fix out of array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 17:35:01 +01:00
Diego Biurrun
a3138ebfa8 fate: Add dependencies for aac, alac, amrnb, amrwb, atrac tests 2012-11-14 15:09:59 +01:00
Mans Rullgard
7f1fcaf0e6 ppc: do not pass redundant compiler flags
The -mpowerpc64 and -mpowerpc-gfxopt flags are implicitly set by
-mcpu as needed.  Passing them explicitly is redundant and can
conflict with user-supplied flags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-14 13:50:43 +00:00
Mans Rullgard
7ba0c1b390 avutil: change GET_UTF8 to not use av_log2()
This removes an inter-library dependency on ff_log2_tab causing
linking errors in some configurations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-14 13:50:42 +00:00
Michael Niedermayer
87d073eacc mov: Dont try to calculate with unknown durations, fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 14:08:44 +01:00
Michael Niedermayer
a1b5c9634e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: mmx2 ---> mmxext in asm constructs

Conflicts:
	libavcodec/x86/h264_chromamc_10bit.asm
	libavcodec/x86/h264_deblock.asm
	libavcodec/x86/h264dsp_init.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 12:34:30 +01:00
Michael Niedermayer
b0c543b1de Merge commit 'da39cac8def7ea73cad2fa2b611209663c7abe2c'
Not merged, its not broken

* commit 'da39cac8def7ea73cad2fa2b611209663c7abe2c':
  Drop broken and unused CABAC test program.

Conflicts:
	libavcodec/Makefile
	libavcodec/cabac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 12:31:28 +01:00
Michael Niedermayer
d4e74d5d6d Remove deprecation of avcodec_get_chroma_sub_sample.
Add explanations what the difference between the 2 functions are and
when either should be used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 12:04:39 +01:00
Michael Niedermayer
e13d5e9a4b Merge commit '5e9c6ef8f3beb9ed7b271654a82349ac90fe43f2'
* commit '5e9c6ef8f3beb9ed7b271654a82349ac90fe43f2':
  x86: h264_weight_10bit: port to cpuflags
  libtheoraenc: add missing pixdesc.h header
  avcodec: remove ff_is_hwaccel_pix_fmt
  pixdesc: add av_pix_fmt_get_chroma_sub_sample
  hlsenc: stand alone hls segmenter

Conflicts:
	doc/muxers.texi
	libavcodec/ffv1enc.c
	libavcodec/imgconvert.c
	libavcodec/mpegvideo_enc.c
	libavcodec/tiffenc.c
	libavformat/Makefile
	libavformat/allformats.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 11:59:20 +01:00
Xi Wang
e8769b37fe segment: fix NULL pointer dereference in seg_write_header()
Since the pointer `oc' is NULL, oc->oformat->name will cause a null
pointer dereference.  This patch changes it to seg->oformat->name.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-14 12:33:27 +02:00
Clément Bœsch
26afdbcfc0 ffserver: fix NULL dereference with quoted Stream name. 2012-11-14 10:09:57 +01:00
Clément Bœsch
a9ba9268d7 ffserver: prefer av_asprintf over malloc+snprintf for Launch setting. 2012-11-14 10:09:51 +01:00
Michael Niedermayer
66ff90f4a3 8bps: check index against buffer size before reading line length pointer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 03:34:01 +01:00
Michael Niedermayer
7acee6654c mpeg12data: increase size of ff_mpeg1_default_intra_matrix to prevent harmless overreads from crashing
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 03:17:52 +01:00
Michael Niedermayer
e1631f8ebe aasc: check before reading the first 4 byte, fix overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 03:03:35 +01:00
Michael Niedermayer
39c5cd601e vmnc: check input size before reading chunk header, fix overread
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 02:51:38 +01:00
Michael Niedermayer
b61658829b Merge remote-tracking branch 'lippit/master'
* lippit/master:
  Update iec61883 to handle multiple devices, and allow selection of DV device by its GUID

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 02:24:17 +01:00
Michael Niedermayer
9f088712d4 ffmpeg: fix double ;;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 02:06:50 +01:00
Michael Niedermayer
9406d6be55 ffmpeg: fix audio timestamps on stream copy with -ss
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 01:42:33 +01:00
Diego Biurrun
26301caaa1 x86: mmx2 ---> mmxext in asm constructs 2012-11-14 00:58:51 +01:00
Diego Biurrun
da39cac8de Drop broken and unused CABAC test program. 2012-11-14 00:36:17 +01:00
Michael Niedermayer
2f74f8d7dc imc: sanity check scalefactors.
This fixes undefined behavior

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 00:03:42 +01:00
Michael Niedermayer
1f1960519a lxfdec: fix "no audio stream" check. avoid null ptrs deref
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-14 00:03:42 +01:00
Stefano Sabatini
334a0d15c6 lavfi/frei0r: add additional trailing slash in FREI0R_PATH paths
Allow to accept paths with no ending trailing slash.

Based on a patch by rogerdpack <rogerpack2005@gmail.com>.
2012-11-13 22:54:29 +01:00
Stefano Sabatini
9a2028d4f4 lavfi/frei0r: correctly handle paths longer than 1023 chars 2012-11-13 22:41:01 +01:00
Michael Niedermayer
af9ec3dd1d av_probe_input_format3: support NULL as buffer. Fixes null ptr deref
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 22:21:10 +01:00
Michael Niedermayer
001af703c6 alac: check channel count more completely, fix out of array read
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 22:08:09 +01:00
Michael Niedermayer
b119133136 avrndec: calculate true_height only when used.
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 22:03:21 +01:00
Michael Niedermayer
7373b3ad04 pcmdec: consistently use codec_id, fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 21:45:53 +01:00
Michael Niedermayer
eab022d863 mpegts: prevent freeing ones own section in pat_cb
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 21:45:53 +01:00
Michael Niedermayer
4392e69ad4 mov: check stps correctly, avoid overreading 1 element.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 21:45:53 +01:00
Michael Niedermayer
3669915e93 dvdec: check ipcm more completely, avoid assert failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 21:45:53 +01:00
Clément Bœsch
41ebbb3b04 lavf/wtvenc: fix s[tp]_pairs memleak. 2012-11-13 20:02:43 +01:00
Georg Lippitsch
15b02ddee0 Update iec61883 to handle multiple devices, and allow
selection of DV device by its GUID
2012-11-13 19:44:21 +01:00
Michael Niedermayer
7c76eaeca2 mpeg4video_parser: init static tables before use, fix nulll ptr deref
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 19:21:59 +01:00
Michael Niedermayer
1bd024ec77 mpeg4videodec: split static decoder table init out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 19:20:59 +01:00
Diego Biurrun
5e9c6ef8f3 x86: h264_weight_10bit: port to cpuflags 2012-11-13 19:07:09 +01:00
Michael Niedermayer
c74cd99986 rv10: consider B frames in low delay streams invalid.
Fix assertion failure

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 18:00:00 +01:00
Luca Barbato
83f9ed42ec libtheoraenc: add missing pixdesc.h header
Was left out from c1a02e884a.
2012-11-13 17:42:13 +01:00
Michael Niedermayer
a0212ecf84 dcadec: check layout & channel count for consistency.
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 17:33:38 +01:00
Luca Barbato
cc085993f4 avcodec: remove ff_is_hwaccel_pix_fmt
It is used only in one place and is unlikely it would be needed
elsewhere.
2012-11-13 16:21:47 +01:00
Luca Barbato
c1a02e884a pixdesc: add av_pix_fmt_get_chroma_sub_sample
Deprecate avcodec_get_chroma_sub_sample.
2012-11-13 16:14:55 +01:00
Michael Niedermayer
4facddd568 mpegts: dont set stream info when a decoder has already been opened.
Fixes assertion failure.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 15:44:13 +01:00
Michael Niedermayer
327cd0d09b mpegts: prevent freeing ones own section in pmt_cb
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 15:44:13 +01:00
Paul B Mahol
09a0392341 paf: set channel layout
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-13 13:25:19 +00:00
Paul B Mahol
1acd2f6ba7 Replace rest of libavutil/audioconvert.h with libavutil/channel_layout.h
Also remove it in once case when it is not needed.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-13 13:21:21 +00:00
Michael Niedermayer
e97a24109c avcodec.h: update audioconvert.h header after rename
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 13:30:52 +01:00
Stefano Sabatini
7945665200 lavfi: store and propagate number of channels information in audio buffer properties
The channels field is required since the channel layout is not always
available.
2012-11-13 12:15:27 +01:00
Stefano Sabatini
9d2a7c0481 doc/encoders: document libtheora encoder 2012-11-13 12:15:23 +01:00
Stefano Sabatini
8cb76ef275 lavc/libtheoraenc: return proper error codes 2012-11-13 11:37:48 +01:00
Michael Niedermayer
799d749c77 Merge remote-tracking branch 'qatar/master'
* qatar/master: (24 commits)
  yop: set channel layout
  wtv: set channel layout for mpeg audio
  westwood_aud: set channel layout
  wc3movie: set channel layout
  tmv: set channel layout
  tiertexseq: set channel layout
  swfdec: set channel layout
  sol: set channel layout
  smacker: set channel layout
  siff: set channel layout
  sierravmd: set channel layout
  rtpdec_amr: set channel layout
  rsodec: set channel layout
  rmdec: set channel layout for RA version 3
  qcp: set channel layout
  psxstr: set channel layout
  omadec: set channel layout
  oggparsespeex: validate channel count and set channel layout
  nuv: set channel layout
  mxg: set channel layout
  ...

Conflicts:
	libavformat/swfdec.c
	libavformat/wtv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 11:09:38 +01:00
Michael Niedermayer
7eb40d85f2 Merge commit 'ef1b23ad21e3f12fc4ff2a73a6d4d4cd9d630c4b'
* commit 'ef1b23ad21e3f12fc4ff2a73a6d4d4cd9d630c4b': (21 commits)
  jvdec: set channel layout
  iss: set channel layout
  ipmovie: set channel layout
  iff: set channel layout
  idroqdec: set channel layout
  gxfdec: set channel layout when applicable
  gsmdec: set channel layout
  flvdec: set channel layout
  dv: set channel layout
  dsicin: set channel layout
  daud: set channel layout
  cdxl: set channel layout
  bmv: set channel layout
  bink: set channel layout
  bfi: set channel layout
  bethsoftvid: set channel layout
  apc: set channel layout
  amr: set channel_layout
  ppc: replace pointer casting with AV_COPY32
  ppc: fix some unused variable warnings
  ...

Conflicts:
	libavformat/amr.c
	libavformat/iff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 10:55:07 +01:00
Michael Niedermayer
a8f2420e06 remove tests/asynth1.sw
This file appears to have been commited by 100l mistake.

Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 10:36:25 +01:00
Clément Bœsch
f6f52936be fate/avfilter: honor GPL dependency. 2012-11-13 09:16:26 +01:00
Luca Barbato
22a0827dff hlsenc: stand alone hls segmenter
Simplifies usage but has higher latency.
2012-11-13 01:37:05 +01:00
Michael Niedermayer
d8a1eb11b7 wavpack: check the blocks sample count, fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 01:13:07 +01:00
Michael Niedermayer
580021cfc4 wavpack: check ch_offset
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 01:11:59 +01:00
Michael Niedermayer
e9cb533fbb flashv: check if keyframe is available, fix null deref.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 00:22:24 +01:00
Michael Niedermayer
4b2f696d6e flashv: use avcodec_set_dimensions()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-13 00:21:45 +01:00
Michael Niedermayer
0a373c31cb svq1dec: dont export the qscale table.
SVQ1 has no qscales so the table is of no use, and it triggers a bug as
SVQ1 does not maintain the size of the table properly causing a crash.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 23:01:42 +01:00
Michael Niedermayer
7ab690bf5f indeo4: more complete check for the scan vs block sizes.
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 23:01:42 +01:00
Clément Bœsch
7581ad24a9 lavc/aac: fix shared build failures with MSVC.
This is a workaround until a better solution is found.
2012-11-12 22:28:57 +01:00
Michael Niedermayer
0e239b22db xan: check size_segment before reading, fixes out of array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 20:50:13 +01:00
Michael Niedermayer
a9456c7c5c mjpegdec: tighten unescaped_buf_size size check, prevent null ptr deref
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 20:27:57 +01:00
Michael Niedermayer
abe68364a3 swfdec: check space before copy
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 19:29:27 +01:00
Michael Niedermayer
d1493d2ce5 theora: check that pix fmt is valid, fix null ptr deref
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 18:12:17 +01:00
Michael Niedermayer
9eef41b848 lagarith: always allocate for 4 planes. Fixes out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 18:05:08 +01:00
Paul B Mahol
87c113f4b3 wv: use right function to read block_samples
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-12 15:50:04 +00:00
Justin Ruggles
b9629acb6b yop: set channel layout 2012-11-12 10:33:23 -05:00
Justin Ruggles
935fbb66ef wtv: set channel layout for mpeg audio 2012-11-12 10:33:23 -05:00
Justin Ruggles
7b48d93e8a westwood_aud: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
2ce7f820d4 wc3movie: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
a94b0267f2 tmv: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
7f348bd764 tiertexseq: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
a3949fe11f swfdec: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
1c7587728c sol: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
bfccd76adb smacker: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
57e590e4b8 siff: set channel layout 2012-11-12 10:33:22 -05:00
Justin Ruggles
a634896cf8 sierravmd: set channel layout 2012-11-12 10:33:21 -05:00
Justin Ruggles
c1ac602d53 rtpdec_amr: set channel layout 2012-11-12 10:33:21 -05:00
Justin Ruggles
ce842029ce rsodec: set channel layout 2012-11-12 10:33:21 -05:00
Justin Ruggles
60a585304c rmdec: set channel layout for RA version 3 2012-11-12 10:33:21 -05:00
Justin Ruggles
444b79c18a qcp: set channel layout 2012-11-12 10:33:21 -05:00
Justin Ruggles
b5e3e77711 psxstr: set channel layout 2012-11-12 10:33:21 -05:00
Justin Ruggles
c9759eb426 omadec: set channel layout 2012-11-12 10:33:21 -05:00
Justin Ruggles
ef1b23ad21 jvdec: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
d4088efbe2 oggparsespeex: validate channel count and set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
4371131283 iss: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
232e9c4c4b nuv: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
cc57228e31 mxg: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
66d7ceb4aa mvi: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
f6c6e5aac1 mpc7: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
f24b0b1b6c mmf: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
87199d34db mm: set channel layout 2012-11-12 10:33:20 -05:00
Justin Ruggles
41a2d9590d ipmovie: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
024e03701c iff: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
73e2007f3d idroqdec: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
f6c3adde41 gxfdec: set channel layout when applicable 2012-11-12 10:33:19 -05:00
Justin Ruggles
d4a105ae5c gsmdec: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
644d8d2e5a flvdec: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
d5ca70b103 dv: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
49e7af06f2 dsicin: set channel layout 2012-11-12 10:33:19 -05:00
Justin Ruggles
a05a63785c daud: set channel layout
Update FATE reference due to WAVE channel mask now being set correctly.
2012-11-12 10:33:18 -05:00
Justin Ruggles
0d09a5848f cdxl: set channel layout 2012-11-12 10:33:18 -05:00
Justin Ruggles
e8088d6e4b bmv: set channel layout 2012-11-12 10:33:18 -05:00
Justin Ruggles
2fe804f316 bink: set channel layout 2012-11-12 10:33:18 -05:00
Justin Ruggles
ff50d27a63 bfi: set channel layout 2012-11-12 10:33:18 -05:00
Justin Ruggles
b5d1a15d1b bethsoftvid: set channel layout 2012-11-12 10:33:18 -05:00
Justin Ruggles
39f0e9b8c6 apc: set channel layout 2012-11-12 10:33:18 -05:00
Justin Ruggles
5595368bcc amr: set channel_layout 2012-11-12 10:33:18 -05:00
Michael Niedermayer
c433823750 4xmdec: test version for cfrms, fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 14:56:33 +01:00
Michael Niedermayer
be818df547 wavpack: fix out of array access
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 14:43:05 +01:00
Paul B Mahol
0cbb31a264 adpcm: reindent after previous commit
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-12 11:46:22 +00:00
Paul B Mahol
e8a9b1a1a0 adpcm: ADPCM IMA SMJPEG stereo decoding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-12 11:46:22 +00:00
Paul B Mahol
0baec57d09 anm: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-12 11:46:12 +00:00
Michael Niedermayer
4d60e5051e Merge remote-tracking branch 'qatar/master'
* qatar/master:
  binkaudio: set channel layout

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 12:18:58 +01:00
Michael Niedermayer
8c0a14d221 Merge commit '2b479bcab0a8365a7c094c5fa44b8cb6da9810d0'
These patches have not been merged at the request of Carl

* commit '2b479bcab0a8365a7c094c5fa44b8cb6da9810d0':
  build: Drop AVX assembly ifdefs
  x86: Require an assembler able to cope with AVX instructions

Conflicts:
	libavcodec/x86/fft.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 12:18:26 +01:00
Michael Niedermayer
03b078721c Merge commit '97bf7c03b1338a867da52c159a2afecbdedcfa88'
* commit '97bf7c03b1338a867da52c159a2afecbdedcfa88':
  doc: git-howto: Leave reviewers time to react before pushing patches
  Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
  lavu: rename audioconvert.* to channel_layout.* and deprecate audioconvert.h

Conflicts:
	doc/APIchanges
	doc/examples/decoding_encoding.c
	doc/git-howto.texi
	ffmpeg_filter.c
	libavcodec/flacdec.c
	libavcodec/imc.c
	libavcodec/mpegaudiodec.c
	libavcodec/utils.c
	libavfilter/asrc_anullsrc.c
	libavfilter/audio.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/avfiltergraph.c
	libavfilter/buffer.c
	libavutil/Makefile
	libavutil/audioconvert.h
	libavutil/channel_layout.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 11:32:11 +01:00
Mans Rullgard
a384f6a7f7 ppc: replace pointer casting with AV_COPY32
This removes warnings about strict aliasing violations.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-12 10:31:31 +00:00
Mans Rullgard
031aac9861 ppc: fix some unused variable warnings
The third argument of OP_U8_ALTIVEC is evaluated at most once so
there is no need for a potentially unused temporary variable.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-12 10:31:31 +00:00
Mans Rullgard
9eda2a85c6 configure: remove support for -n flag in print_enabled()
This flag is no longer used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-12 10:30:02 +00:00
Michael Niedermayer
da501ea857 Merge commit '802713c4e7b41bc2deed754d78649945c3442063'
* commit '802713c4e7b41bc2deed754d78649945c3442063':
  mss2: prevent potential uninitialized reads
  mss2: reindent after last commit
  mss2: fix handling of unmasked implicit WMV9 rectangles
  configure: add lavu dependency to lavr/lavfi .pc files
  x86inc: Set program_name outside of x86inc.asm

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 10:57:06 +01:00
Justin Ruggles
faf340f60c binkaudio: set channel layout 2012-11-12 00:41:02 -05:00
Michael Niedermayer
3a04c18d89 vc1dec: prevent null ptr dereferences.
The added checks are in line with existing checks but should
probably be replaced by more advanced error concealment at some
point.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 01:43:12 +01:00
Michael Niedermayer
8e749733c1 vc1dec: factorize srcU/V offseting out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 01:43:12 +01:00
Michael Niedermayer
b5f4836f8c vc1: check image height, fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 01:43:12 +01:00
Michael Niedermayer
8824a9ed22 mpeg12: clean current picture ptr.
This avoids having a stray pointer left that may not represent the current picture
and state.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-12 01:43:11 +01:00
Clément Bœsch
3a7f00810c lavfi: remove mp=geq filter.
Native geq video filter is now available.
2012-11-11 23:18:12 +01:00
Clément Bœsch
8eecbaf5e4 lavfi: add geq filter. 2012-11-11 23:12:54 +01:00
Clément Bœsch
3704804c8f lavf/assenc: add non strict ts flag.
ASS can have several events at the same time.
2012-11-11 22:58:56 +01:00
Clément Bœsch
2b3597f0d1 lavfi: remove mp=fixpts filter.
lavfi/f_setpts.c should allow everything mp=fixpts supports, with a lot
of additional control.
2012-11-11 22:49:53 +01:00
Clément Bœsch
84aed3faf0 lavfi: remove mp=tile filter.
The native tile video filter is now feature equivalent.
2012-11-11 22:43:18 +01:00
Clément Bœsch
a8afb0830e fate/lavfi: increase vf tile coverage. 2012-11-11 22:43:18 +01:00
Clément Bœsch
11ed12c256 doc/filters: complete tile documentation. 2012-11-11 22:43:18 +01:00
Clément Bœsch
7582012058 lavfi/tile: extend shorthand parameters.
This makes the syntax similar to mp=tile.
2012-11-11 22:43:18 +01:00
Clément Bœsch
4a90e7124d lavfi/tile: add nb_frames option. 2012-11-11 22:43:18 +01:00
Clément Bœsch
ecfaff350f lavfi/tile: add margin and padding options. 2012-11-11 22:43:17 +01:00
Clément Bœsch
aa5a029091 lavfi/tile: allow named arguments. 2012-11-11 22:43:17 +01:00
Michael Niedermayer
5aedee4fac gxf: avoid null ptr deref without streams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 20:58:04 +01:00
Michael Niedermayer
c871244306 proresdec: check input size before reading qmats, prevent overreading.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 20:52:01 +01:00
Diego Biurrun
2b479bcab0 build: Drop AVX assembly ifdefs
An assembler able to cope with AVX instructions is now required.
2012-11-11 20:43:28 +01:00
Diego Biurrun
97bf7c03b1 doc: git-howto: Leave reviewers time to react before pushing patches 2012-11-11 20:43:28 +01:00
Diego Biurrun
b8e8a07c6c x86: Require an assembler able to cope with AVX instructions
All modern assemblers have this capability.  Older NASM versions
that lack the capability produce code that crashes at runtime,
so it's better to error out during the build process instead.

CC: libav-stable@libav.org
2012-11-11 20:43:28 +01:00
Michael Niedermayer
7faa17764a dsicinav: update bitmap_frame_size, avoid out of array reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 19:47:01 +01:00
Justin Ruggles
a903f8f087 Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Justin Ruggles
5980f5dd18 lavu: rename audioconvert.* to channel_layout.* and deprecate audioconvert.h 2012-11-11 13:35:12 -05:00
Michael Niedermayer
26452e24ed snow: fix edge emu switch
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 19:02:31 +01:00
Michael Niedermayer
b7b7e2348c msmpeg4dec: check w/h, prevent assert failure later
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 18:46:22 +01:00
Michael Niedermayer
192db16b9c segafilm: fix division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 18:32:46 +01:00
Michael Niedermayer
f1d6f013b2 omadec: fix len check in nprobe() prevent out of array access
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 18:16:48 +01:00
Michael Niedermayer
44c23aa1b8 zmbvdec: check decompression buffer size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 18:09:11 +01:00
Michael Niedermayer
3ba58433e1 diracdec: check wavelet depth, prevent out of array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 17:20:36 +01:00
Michael Niedermayer
8c4145343d libvorbisdec: dont try to update an empty que
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 16:43:53 +01:00
Michael Niedermayer
0a4087b893 diracdec: Use only one frame per reference
Prevents null ptr dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 16:43:53 +01:00
Alberto Delmás
802713c4e7 mss2: prevent potential uninitialized reads
The alternative to zeroing on init is setting the corrupted flag in
all cases where pal_pic is not fully written, at the cost of added
complexity.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-11-11 16:07:50 +01:00
Kostya Shishkov
6d93308c0c mss2: reindent after last commit 2012-11-11 16:07:42 +01:00
Alberto Delmás
b077eb0780 mss2: fix handling of unmasked implicit WMV9 rectangles
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-11-11 16:07:36 +01:00
Anton Khirnov
e5e1a06e44 configure: add lavu dependency to lavr/lavfi .pc files 2012-11-11 15:45:18 +01:00
Stefano Sabatini
c0aff4064d doc/Makefile: generate library headers with the correct section number 2012-11-11 14:06:27 +01:00
Peter Ross
6f78ba8b0b electronic arts: support rare samples containing adpcm_ea_r1 audio
Fixes ticket #1549.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 12:52:02 +01:00
Peter Ross
d168fcb68f electronicarts: use av_log_ask_for_sample
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 12:51:16 +01:00
Michael Niedermayer
039f4ff4c2 h264: 2nd try at getting sm2v working
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 12:50:03 +01:00
Michael Niedermayer
def8588fb5 dwt_yasm/vertical_compose: fix width witdth argument.
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 12:41:35 +01:00
Michael Niedermayer
bec37935ec Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: h264_qpel_10bit: drop unused parameter from MC10/MC20/MC30 macros

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 12:18:05 +01:00
Stefano Sabatini
514910fb2d doc: add libavfilter.texi
With some re-wording by Alexander Strasser <eclipse7@gmx.net>.
2012-11-11 11:15:53 +01:00
Stefano Sabatini
598546e1df doc: add libavutil.texi
With some fixes and better wording by Alexander Strasser
<eclipse7@gmx.net>.
2012-11-11 11:15:53 +01:00
Diego Biurrun
f0d124f005 x86inc: Set program_name outside of x86inc.asm
This reduces the local difference to the x264 upstream version.
2012-11-11 11:06:19 +01:00
Paul B Mahol
c1947015b2 smackaud: return meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-11 10:05:20 +00:00
Paul B Mahol
2a374f06c4 targa: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-11 09:44:36 +00:00
Michael Niedermayer
7dab48bb73 diracdec: allocate enough space for blocks
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 04:01:39 +01:00
Michael Niedermayer
dca2fa10d3 diracdec: fix edge emulation check, fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 03:34:40 +01:00
Michael Niedermayer
991f6bf93d h264: Support SMV2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 02:51:23 +01:00
Michael Niedermayer
a39d36146a h264_refs: Print default in case we are missing a reference.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 02:51:23 +01:00
Michael Niedermayer
d7da4d47a6 mxfdec: avoid double free and leaks.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 02:20:04 +01:00
Michael Niedermayer
c2ca0163af matroskadec: check h in generic rm packet shuffler
Fixes crash

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 01:19:44 +01:00
Michael Niedermayer
1f41cffe1e mjpegdec: check SE.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-11 01:19:44 +01:00
Clément Bœsch
e56b098410 lavf/srtenc: ignore invalid timed packets instead of failing.
This way we don't abort in the middle of remuxing, just warn about an
event ignored. The index increment is moved to make sure the output
numbers still make sense.
2012-11-10 22:43:27 +01:00
Michael Niedermayer
a1e093a6fb alac: fix bps check
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 21:54:30 +01:00
Michael Niedermayer
47ca2487ae lavfi/avcodec: check that injected avframes use a supported channel layout
This fixes out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 21:45:34 +01:00
Michael Niedermayer
a150bad406 lavfi/avcodec: check avfilter_copy_frame_props() return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 21:37:40 +01:00
Nedeljko Babic
304a1ed1e8 mips: Add dependencies on HAVE_INLINE_ASM
Add dependencies on HAVE_INLINE_ASM for files and parts of code
 where it is necessary.

Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Reviewed-by: Vitor Sessak <vitor1001@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 19:55:54 +01:00
Michael Niedermayer
2d71f31df2 lag_read_prob_header: fix out of array access
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 19:39:05 +01:00
Michael Niedermayer
b53f89710b alac: Check channel indexes more completely, fix out of array accesses.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 18:22:47 +01:00
Michael Niedermayer
3920d13878 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>
2012-11-10 17:42:35 +01:00
Michael Niedermayer
fd4f4923cc alac: fix nb_samples < order case
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 17:14:04 +01:00
Diego Biurrun
6cd796049d x86: h264_qpel_10bit: drop unused parameter from MC10/MC20/MC30 macros 2012-11-10 14:49:09 +01:00
Michael Niedermayer
eb3dc23705 mov: Make sure no streams after the header lack a timescale.
Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 13:29:23 +01:00
Piotr Bandurski
cc5c2ef09d riff: add SMV2 FourCC for H264
sample:

http://samples.mplayerhq.hu/V-codecs/smv2.avi

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 13:16:14 +01:00
Michael Niedermayer
2ce64413e2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: PALIGNR: port to cpuflags
  x86: h264_qpel_10bit: port to cpuflags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 12:44:39 +01:00
Carl Eugen Hoyos
b56ff0b261 Allow forcing a frame size in bytes for image2pipe.
This allows decoding of concatenated frames encoded in
uncompressed formats like v210.
The frame size cannot be generally calculated, FFmpeg
also supports broken encoders.

Fixes ticket #1869.
2012-11-10 02:25:17 +01:00
Carl Eugen Hoyos
f91f049a22 Add yuv4xxp12 and yuv4xxp14 pixel formats to y4m encoder and decoder.
Reviewed-by: Paul B Mahol
2012-11-10 02:19:55 +01:00
Peter Ross
8b67ec77f0 pictordec: fill any unset portion of the image
Fixes ticket #1710

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 02:02:35 +01:00
Piotr Bandurski
49c2f2d57e riff: add GXVE FourCC for WMV2
sample:

http://samples.mplayerhq.hu/V-codecs/ViVD/vivd.avi

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 01:58:51 +01:00
Michael Niedermayer
dab70c62d2 ivi_common: check ref_tile size, fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-10 01:52:14 +01:00
Michael Niedermayer
a93c7ca6ef ivi_common: more MV Checks, fixes out of array reads
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 23:39:41 +01:00
Michael Niedermayer
c63e76ba35 ebml_read_binary: use fast_padded_malloc()
Fixes out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 23:35:58 +01:00
Diego Biurrun
4b60fac419 x86: PALIGNR: port to cpuflags 2012-11-09 21:31:31 +01:00
Michael Niedermayer
98b377004d twinvq: make ibps check unsigned
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 21:22:12 +01:00
Diego Biurrun
4d1f69f244 x86: h264_qpel_10bit: port to cpuflags 2012-11-09 21:17:05 +01:00
Michael Niedermayer
2fbb37b51b iff/ilbm: check remaining buffer size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 21:06:01 +01:00
Michael Niedermayer
b8551f8ea7 pcmdec: check that channels is valid.
Prevents a division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 21:06:01 +01:00
Michael Niedermayer
ac7ff0963b aacdec: fix temporary array size
Avoids out of array accesses.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 21:05:43 +01:00
Michael Niedermayer
623cfc93d9 pngdec: check that format matches too not just dimensions
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 19:59:05 +01:00
Michael Niedermayer
02a325cb6f tiffdec: check rps, fix infinite loop.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 19:28:57 +01:00
Michael Niedermayer
b8dc5f8bb3 twinvq: check bitrate for validity avoid division by 0
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 18:46:17 +01:00
Michael Niedermayer
e481ba2ed7 vqf: check samplerate, avoid division by 0.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 18:05:19 +01:00
Michael Niedermayer
fb6a72cde5 iff: avoid out of array reads, due to too many planes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 17:47:51 +01:00
Michael Niedermayer
7989f7e0b5 xmv: Fix integer overflow
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 17:18:01 +01:00
Michael Niedermayer
9195377bc5 vp56dec: Fix handling of alpha configuration changes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 17:03:47 +01:00
Michael Niedermayer
7ec1fe1f47 lavf: Dont compare absolute to relative timestamps in duration gcd
This prevents a division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 14:59:43 +01:00
Michael Niedermayer
4c6e7c2d4d ivi_common: dont dereference null pointers.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 14:17:42 +01:00
Michael Niedermayer
13451f5520 atrac3dec: Check coding mode against channels.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 13:26:20 +01:00
Michael Niedermayer
5ee008e01d qdm2: check that coding_method is valid before using it.
Fixes out of array reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 13:13:50 +01:00
Michael Niedermayer
909a18f73b mjpegbdec: dont return a picture when there is no picture.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 12:44:26 +01:00
Michael Niedermayer
6d1c5ea04a 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>
2012-11-09 12:14:28 +01:00
Michael Niedermayer
ce1ebb31a9 tiffdec: use checked reads for tget*()
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 12:05:03 +01:00
Michael Niedermayer
1b5a6d3c49 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  flacenc: ensure the order is within the min/max range in LPC order search
  avconv: rescale packet duration to muxer time base when flushing encoders
  add 24-bit FLAC encoding to Changelog
  rtpenc_aac: Fix calculation of the header size
  x86: h264_intrapred: port to cpuflags

Conflicts:
	Changelog
	libavformat/rtpenc_aac.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 10:29:51 +01:00
Michael Niedermayer
769354348a PRINT_CODEC_SUPPORTED: fix used variable
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-09 03:08:29 +01:00
Nicolas George
aeb4d27dec doc/faq: explain libfoo-dev packages. 2012-11-08 21:05:10 +01:00
Justin Ruggles
3a2731cbd3 flacenc: ensure the order is within the min/max range in LPC order search
This fixes use of uninitialized values when the FLAC encoder uses the
2-level, 4-level, and 8-level search methods. Fixes failure of the
fate-flac-24-comp-8 test when run using valgrind.
2012-11-08 13:57:34 -05:00
Justin Ruggles
3ba416408a avconv: rescale packet duration to muxer time base when flushing encoders
Fixes Bug 385
2012-11-08 13:57:34 -05:00
Justin Ruggles
00f8ad41c7 add 24-bit FLAC encoding to Changelog
Also move a misplaced line from the 9_beta2 section to <next>
2012-11-08 13:57:34 -05:00
Luca Abeni
e004d175fe rtpenc_aac: Fix calculation of the header size
Previously the high end byte was always set to zero. Also get
rid of an unnecessary multiplication (which in practice couldn't
overflow) before shifting.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-08 19:48:32 +02:00
Michael Niedermayer
3affcc99a8 frame_thread_encoder: silence integer to pointer without cast warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-08 18:25:24 +01:00
Diego Biurrun
6ca60d4ddd x86: h264_intrapred: port to cpuflags 2012-11-08 18:05:23 +01:00
Michael Niedermayer
5ff43ec72d sctp: silence const warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-08 16:06:04 +01:00
Michael Niedermayer
60e028958c ffmdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-08 15:54:14 +01:00
Michael Niedermayer
4a28962454 libopencore-amr: fix av_log() argument
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-08 15:46:51 +01:00
Michael Niedermayer
bc17a6f5c0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libvpxenc: Allow enabling constrained quality (CQ) mode

Conflicts:
	configure
	libavcodec/libvpxenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-08 08:07:05 +01:00
Luca Abeni
78e08fd340 rtpenc_aac: Fix 10l bug
Fixes CID602564
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-08 01:54:16 +01:00
Nicolas George
d55911adc8 doc/faq: replace @file by @command for "ffmpeg". 2012-11-07 23:45:12 +01:00
Alexander Strasser
4ccfcc8a0b doc/libavcodec: hint to where to find the Git history
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-11-07 23:33:31 +01:00
Stefano Sabatini
58d1d7024d doc/Makefile: change DOCLIBS check
More consistent with the rest of the build system, and more compact.
2012-11-07 23:18:11 +01:00
Stefano Sabatini
1c6962dc20 lavu: remove disabled FF_API_OLD_EVAL_NAMES code 2012-11-07 23:18:05 +01:00
Stefano Sabatini
ef4dc3e55b lavu/opt: show valid range in case of out-of-range value
Improve feedback.
2012-11-07 23:17:57 +01:00
James Zern
12776d5d2a libvpxenc: Allow enabling constrained quality (CQ) mode
The CQ mode was introduced in libvpx 0.9.6.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-08 00:01:54 +02:00
Thierry Foucu
98cbbabadb Fix the packet duration when flushing the encoder.
A similar patch was posted by Justin Ruggles <justin.ruggles@gmail.com>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 22:29:11 +01:00
Michael Niedermayer
9dfe07a1fb fate-rsync: replace -a by -rlt
This remove the owner, group and permission preservation on fatesample checkouts
These caused problems for durandal_1707

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 18:33:52 +01:00
Michael Niedermayer
4d2f83f8ac gsm_parser: fix infinite loop
Fixes Ticket1894
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 18:08:23 +01:00
Paul B Mahol
08101e62cb adpcm: improve smjpeg decoding
Previous version had significant artifacts.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-07 13:03:50 +00:00
Peter Ross
a373f35272 wtvenc: produce seekable files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:59:03 +01:00
Peter Ross
b89cd2a028 wtvenc: simplify write_timestamp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:51:38 +01:00
Peter Ross
3e65134326 wtvenc: output third video pts in timestamp chunk (this is what Microsoft Windows Media Center expects)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:45:01 +01:00
Peter Ross
0d9435048c wtvenc: indent fixup
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:44:50 +01:00
Peter Ross
b50759cd6b wtvenc: do not emit stream2 and DSATTRIB_TRANSPORT_PROPERTY chunks; these are not required for playback
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:42:01 +01:00
Michael Niedermayer
fdfbb793c3 ffv1dec: propagate return code from ffv1_common_init()
Fixes Ticket1824
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:27:01 +01:00
Michael Niedermayer
dd11615bbc ffv1dec: more completely check slice count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 13:26:37 +01:00
Michael Niedermayer
cb395929e3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libopencore-amr: Check the return value of amr_decode_fix_avctx

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 10:26:40 +01:00
Paul B Mahol
7c2cfaac6a smjpegenc: use bits_per_coded_sample instead of calling function
Final result is same and this allows support of multiple values per codec.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-07 01:31:39 +00:00
Michael Niedermayer
de0aa9e5a4 kgv1dec: fix end condition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-07 01:51:24 +01:00
Martin Storsjö
ad961726dc libopencore-amr: Check the return value of amr_decode_fix_avctx
This allows getting rid of redundant checks later in the codec
specific init functions.

Move the check to before actually initializing the decoder lib,
to simplify error handling.

This fixes a case of returning a value from a void function, present since
d40dab907.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-07 00:48:50 +02:00
Stefano Sabatini
2b442ff5f5 lavfi/movie: return proper error code in case of av_get_token() allocation failure
Also slightly clarify logic, and should fix coverity issue CID 717771.
2012-11-06 23:31:16 +01:00
Stefano Sabatini
29d46d7bce ffprobe: fix potential NULL pointer dereference
Found by Coverity, should fix CID 733741.
2012-11-06 22:59:24 +01:00
Stefano Sabatini
b5436f4b5d lavfi/showwaves: return error in case of allocation failure in filter_samples() 2012-11-06 22:48:54 +01:00
Stefano Sabatini
5f634480d1 lavfi/showwaves: simplify check in filter_samples()
Also fix Coverity issue CID 733743: Dereference after null check
2012-11-06 22:48:17 +01:00
Nicolas George
e9b8523d52 sbgdec: dont set slide to a uninitialized value
Fixed CID703833
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 21:46:22 +01:00
Michael Niedermayer
44e9d7f182 vf_drawbox: dont move uninitialized and then unused colors around
Fixes CID741419
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 21:40:23 +01:00
Michael Niedermayer
2ca649f177 utils: fix integer overflow with DURATION_MAX_READ_SIZE
Fixes CID703746
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 18:44:14 +01:00
Paul B Mahol
1c445f4b93 fate: add PMP demuxer test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-06 16:18:30 +00:00
Paul B Mahol
4744f67d4f wavpack: check if number of samples is not too big
Wavpack format documentation mentions that 131072 is
max number of samples.

This fixes huge memory allocations in sample from ticket #1889.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-06 16:15:19 +00:00
Peter Ross
e6ef628b1e wtv: move duplicated guids into wtv.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 15:52:33 +01:00
Peter Ross
1701a22fce wtv: rename ff_stream_guid to ff_SBE2_STREAM_DESC_EVENT
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 15:51:41 +01:00
Peter Ross
9632f5efcf wtvenc: fix typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 15:50:36 +01:00
Michael Niedermayer
1e4e497911 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: atrac: Place atrac1 and atrac3 tests in different groups
  fate: aac: cosmetics: Group AAC LATM tests together
  x86: avresample: Add missing colons to assembly labels

Conflicts:
	tests/fate/aac.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 15:11:53 +01:00
Paul B Mahol
0fe8c9f458 wavpack: use more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-06 12:56:44 +00:00
Diego Biurrun
e6c4c0f7cf fate: atrac: Place atrac1 and atrac3 tests in different groups 2012-11-06 13:47:53 +01:00
Diego Biurrun
06c7b33831 fate: aac: cosmetics: Group AAC LATM tests together 2012-11-06 13:37:36 +01:00
Stefano Sabatini
f6b39376ce .gitignore: ignore *.3 files as well 2012-11-06 12:24:12 +01:00
Stefano Sabatini
a1934daeb4 doc/Makefile: remove .3 file with make clean 2012-11-06 12:23:13 +01:00
Diego Biurrun
352e18b766 x86: avresample: Add missing colons to assembly labels
YASM accepts labels without colons, but NASM issues warnings.
2012-11-06 12:07:35 +01:00
Alexander Strasser
98506e16c7 doc/libavcodec: do not say multimedia streams in the title
The mention of multimedia stream sounds more like multiple
elementary media streams like video and audio multiplexed
into a multimedia container format.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-11-06 11:55:37 +01:00
Alexander Strasser
23b57b0203 doc/libavcodec: improve wording in description
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-11-06 11:55:29 +01:00
Stefano Sabatini
d658f9a1cb doc/ffserver: fix typos/reword paragraphs about FFM versions 2012-11-06 11:35:14 +01:00
Stefano Sabatini
e8c0b6710c examples/muxing: fix typo: allocated -> allocate 2012-11-06 11:28:28 +01:00
Michael Niedermayer
6a302331dd Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: adjust external clock speed based on buffer fullness for realtime sources

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 04:02:42 +01:00
Michael Niedermayer
2a0dfc51ea img2enc: support 16bit per sample yuv in split planes.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 02:27:04 +01:00
Michael Niedermayer
52c40a0e52 MAINTAINERS: fix entry for img2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 01:46:21 +01:00
Michael Niedermayer
2c87565147 img2enc: support storing alpha planes too in split plane mode
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 01:42:26 +01:00
Michael Niedermayer
db012e161e img2enc: Fix yuva with yuv split planes.
Previously the chroma planes where corrupted in this case.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 01:31:41 +01:00
Michael Niedermayer
67ee2d2f6d img2enc: check pix_fmt for split planes mode.
Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 01:31:41 +01:00
Michael Niedermayer
6dfcc7abdd img2enc: ensure that the codec is rawvideo for split planes mode.
Found-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-06 01:31:41 +01:00
Stefano Sabatini
7f6f8f642c examples/demuxing: fix braino
s/video/audio/ in a log message.
2012-11-06 01:10:12 +01:00
Stefano Sabatini
794cea588c examples/demuxing: dump input information *after* trying to open audio stream
Implement more logical code flow.
2012-11-06 01:10:12 +01:00
Paul B Mahol
c99564492c fate: add more pix_fmt tests for xwd
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 22:31:24 +00:00
Michael Niedermayer
6493842900 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  FATE: add a 24-bit FLAC encoding test
  FATE: rename FLAC tests from flac-* to flac-16-*
  flacenc: use RICE2 entropy coding mode for 24-bit
  flacenc: add 24-bit encoding
  flacdsp: move lpc encoding from FLAC encoder to FLACDSPContext

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 23:01:34 +01:00
Michael Niedermayer
7d26be63c2 Merge commit '5ff998a233d759d0de83ea6f95c383d03d25d88e'
* commit '5ff998a233d759d0de83ea6f95c383d03d25d88e':
  flacenc: use uint64_t for bit counts
  flacenc: remove wasted trailing 0 bits
  lavu: add av_ctz() for trailing zero bit count
  flacenc: use a separate buffer for byte-swapping for MD5 checksum on big-endian
  fate: aac: Place LATM tests and general AAC tests in different groups
  build: The A64 muxer depends on rawenc.o for ff_raw_write_packet()

Conflicts:
	doc/APIchanges
	libavutil/version.h
	tests/fate/aac.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 22:51:20 +01:00
Michael Niedermayer
e859339e7a Merge commit '930e26a3ea9d223e04bac4cdde13697cec770031'
* commit '930e26a3ea9d223e04bac4cdde13697cec770031':
  x86: h264qpel: Only define mmxext QPEL functions if H264QPEL is enabled
  x86: PABSW: port to cpuflags
  x86: vc1dsp: port to cpuflags
  rtmp: Use av_strlcat instead of strncat

Conflicts:
	libavcodec/x86/h264_qpel.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 22:36:05 +01:00
Martin Storsjö
f0615557e0 rtmpproto: Use av_strlcat instead of strncat
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Fixes: [FFmpeg-devel] rtmpproto compile error
Similar patch: [FFmpeg-devel] [PATCH] call to strncat replaced with av_strlcat to avoid compile issue with systems implementing strncat via strcat.
2012-11-05 21:47:43 +01:00
Paul B Mahol
10ac70d249 avrndec: use more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 20:47:22 +00:00
Paul B Mahol
70727e8774 lavf/avr: make .long_name consistent with others
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 20:47:22 +00:00
Paul B Mahol
efbe162f7d cljr: use meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 20:47:13 +00:00
Justin Ruggles
8a58894fc6 FATE: add a 24-bit FLAC encoding test 2012-11-05 15:32:30 -05:00
Justin Ruggles
5ff998a233 flacenc: use uint64_t for bit counts
Needed to avoid integer overflows for 24-bit encoding.
2012-11-05 15:32:30 -05:00
Justin Ruggles
31c3b9c95e FATE: rename FLAC tests from flac-* to flac-16-*
This will distinguish FLAC 16-bit tests from FLAC tests with other bit
depths.
2012-11-05 15:32:30 -05:00
Justin Ruggles
e783316322 flacenc: remove wasted trailing 0 bits 2012-11-05 15:32:30 -05:00
Justin Ruggles
2e76f34387 flacenc: use RICE2 entropy coding mode for 24-bit 2012-11-05 15:32:30 -05:00
Justin Ruggles
13e1ee6c84 flacenc: add 24-bit encoding 2012-11-05 15:32:30 -05:00
Justin Ruggles
799e232490 flacdsp: move lpc encoding from FLAC encoder to FLACDSPContext
Also, templatize the functions for 16-bit and 32-bit sample range. This will
be used for 24-bit FLAC encoding.
2012-11-05 15:32:30 -05:00
Justin Ruggles
dfde8a34e5 lavu: add av_ctz() for trailing zero bit count 2012-11-05 15:32:29 -05:00
Justin Ruggles
6a744d2619 flacenc: use a separate buffer for byte-swapping for MD5 checksum on big-endian
This is much faster than calculating the MD5 one sample at a time.
2012-11-05 15:32:29 -05:00
Michael Niedermayer
282a6308bf udp: check ff_socket_nonblock() return code
Fixes CID733719
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 21:21:04 +01:00
Diego Biurrun
2253df76c1 fate: aac: Place LATM tests and general AAC tests in different groups 2012-11-05 20:48:50 +01:00
Diego Biurrun
92fec47d69 build: The A64 muxer depends on rawenc.o for ff_raw_write_packet() 2012-11-05 20:48:50 +01:00
Diego Biurrun
930e26a3ea x86: h264qpel: Only define mmxext QPEL functions if H264QPEL is enabled
This fixes compilation with --disable-everything and components enabled.
2012-11-05 20:48:43 +01:00
Michael Niedermayer
30d27685b1 segment: fix null ptr deref
Fixes CID732220
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 20:26:10 +01:00
Paul B Mahol
962314fe27 AVR demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 17:31:22 +00:00
Piotr Bandurski
8d88920578 dpcm: use AV_LOG_ERROR for error message. 2012-11-05 17:44:24 +01:00
Piotr Bandurski
461797f6aa riff: add "lsvm" FourCC for H263. 2012-11-05 17:43:01 +01:00
Michael Niedermayer
b2b67fd610 docs/ffserver: document ffm/ffm2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 16:36:44 +01:00
Michael Niedermayer
9829ec1a9c ffm: redesign header format to make it extensible
Currently FFM files generated with one versions of ffmpeg generally
cannot be read by another.
By spliting data into chunks, more fields can saftely be appended to
chunks as well as new chunks added.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 16:36:44 +01:00
Paul B Mahol
2a2d39c721 fate: add more pix_fmt tests for pam
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 14:59:31 +00:00
Diego Biurrun
dbb37e7711 x86: PABSW: port to cpuflags 2012-11-05 14:51:10 +01:00
Diego Biurrun
6c104826bd x86: vc1dsp: port to cpuflags 2012-11-05 14:51:10 +01:00
Martin Storsjö
d578f94746 rtmp: Use av_strlcat instead of strncat
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-05 15:37:09 +02:00
Paul B Mahol
e870a7dd4a lavfi: stop using -1 instead use AV_PIX_FMT_NONE/AV_SAMPLE_FMT_NONE
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 13:34:08 +00:00
Michael Niedermayer
f4aaf987a5 frame_thread_encoder: fix handling of case where the encoder does not output a packet.
This case could cause a deadlock

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 13:30:08 +01:00
Paul B Mahol
17e67c5321 fate: add smjpegenc test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-05 11:22:53 +00:00
Clément Bœsch
a8b3130181 lavf/srtdec: recognize subtitles starting at event index 0. 2012-11-05 07:37:45 +01:00
Carl Eugen Hoyos
c673ef1288 Write tiff tag YCbCrPositioning if chroma_sample_location is top-left. 2012-11-05 04:43:17 +01:00
Michael Niedermayer
b015cd7eda fate: try to fix mxpeg failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 02:20:52 +01:00
Paul B Mahol
cc5bcaa48e pnm: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 23:35:09 +00:00
Paul B Mahol
ae5ecb8e60 pnm: remove duplicated check for maxval > 255
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 23:33:17 +00:00
Michael Niedermayer
e82afa3e2d filmstripenc: fix rounding that caused fate failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 00:28:21 +01:00
Michael Niedermayer
a147c1b2b1 oggenc: remove unneeded null check.
The code would have segfaulted before if it where null

Fixes CID732218
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 00:28:21 +01:00
Michael Niedermayer
1ba0d9b5d1 oss: warn when non block mode cannot be enabled.
Fixes CID732183
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 00:28:21 +01:00
Paul B Mahol
a0348d0966 pnm: remove nonsense code
If maxval is more than 255 than each value takes 2 bytes with most
significant byte first.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 23:17:12 +00:00
Paul B Mahol
bf8f4db413 fate: add MxPEG test
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 22:23:43 +00:00
Paul B Mahol
992a6a53ef cdxl: add read_probe function
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 20:19:43 +00:00
Paul B Mahol
6e625d4198 fate: add some missing dependencies
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 19:11:26 +00:00
Michael Niedermayer
5eaeb4237b ivi_common: dc_transform is needed for intra
Fixes CID90582 CID90536
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 19:27:15 +01:00
Michael Niedermayer
712287ef45 ff_ac3_apply_rematrixing: set flags to NULL
This makes the code more robust

Related to CID703820
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 19:26:54 +01:00
Marton Balint
747c749d42 ffplay: adjust external clock speed based on buffer fullness for realtime sources
This provides a means to synchronize the player clock to the clock of the
encoder.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-04 18:29:49 +01:00
Stefano Sabatini
74a50e75a8 lavu: drop disabled FF_API_OLD_TC_ADJUST_FRAMENUM code 2012-11-04 18:10:39 +01:00
Stefano Sabatini
008ace3524 doc/libavcodec: apply misc minor typo fixes 2012-11-04 18:01:16 +01:00
Stefano Sabatini
1ba2459fbb lavfi/scale: declare the filter private class
Allow to show the supported options in the ffmpeg -h full output.
2012-11-04 18:01:16 +01:00
Paul B Mahol
1b3dbe3f75 lcldec: fix decoding of uncompressed rgb24 sample
Sample from ticket #1216 does not use any compression but bitstream
claims it is. Reference decoder decodes sample just fine.

Fixes #1216.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 16:58:14 +00:00
Paul B Mahol
c4dd4f19f3 smush: improve probing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 16:50:58 +00:00
Michael Niedermayer
a15adabdd3 aacsbr: fix integer overflow
Fixes CID603186
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 17:37:28 +01:00
Carl Eugen Hoyos
b5d496f3a4 Support new transparency colour-spaces with libopenjpeg.
Reviewed-by: Michael Bradshaw
2012-11-04 17:32:31 +01:00
Paul B Mahol
b0428741c6 indeo3: move get_buffer() above decode_plane() calls
This ensure that decode_plane() mmx code like AV_COPY64()
does not interfere with possible float instructions in
release_buffer/get_buffer.

Found-by: Carl Eugen Hoyos

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 14:42:32 +00:00
Michael Niedermayer
a04698c4a9 ffserver: zero dest_addr
Fixes CID733838
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 13:00:20 +01:00
Michael Niedermayer
bbd7b46b94 sab_diamond_search: add assert to double check the minima_count
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 13:00:20 +01:00
Stefano Sabatini
617d0d41a2 doc: add libavcodec.texi
The option chapter is based on the avoptions_codec.texi auto-generated
file.
2012-11-04 11:54:57 +01:00
Nicolas George
1fa47f8dea cmdutils: allow to set the report file name.
The file name can be set by setting the FFREPORT environment
variable to "file=something".

Fix trac ticket #1823.
2012-11-04 10:52:43 +01:00
Nicolas George
3bdf4971ba lavu/opt: implement av_opt_get_key_value().
This function does the low-level work of av_opt_set_from_string()
but can be used when there is no option context or when a generic
handling of unknown keys is needed.

av_opt_set_from_string() is changed to make use of it.
2012-11-04 10:47:52 +01:00
Nicolas George
e021eeb9f0 lavu/opt: parse key into a mallocated buffer.
It removes the hardcoded limit on the key size without making
the code much more complex, and it makes for a more versatile API.
2012-11-04 10:47:52 +01:00
Michael Niedermayer
4e6fa5be3c Revert "cmdutils: allow specifying the file for -report"
This reverts commit 841bf0ef24.
This does not fully work as the file is used before the filename is parsed
so not all information is written in the specified file.
2012-11-04 10:47:52 +01:00
Paul B Mahol
50d3a1a962 vocenc: fix 10l regression
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 04:46:10 +00:00
Paul B Mahol
1c5b56eec7 vocenc: abort if unsupported codec is used
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-04 03:59:08 +00:00
Michael Niedermayer
4a2599b0e6 transform: give avfilter_transform() a return value for returning an error
Fixes CID703674
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 01:30:16 +01:00
Michael Niedermayer
5f53138621 movenc: remove unneeded check
Fixes CID741417
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 01:03:52 +01:00
Michael Niedermayer
c9e4554329 cook: fix use of uninitialized variable
Fixes CID741418
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-04 01:03:52 +01:00
Stefano Sabatini
d034847f7a lavfi/earwax: add missing NULL check in filter_samples() 2012-11-04 00:17:27 +01:00
Stefano Sabatini
3af7919be4 add tools/fourcc2pixfmt to .gitignore 2012-11-03 23:40:28 +01:00
Stefano Sabatini
aa48446c9a lavc/xfaceenc: prefer do{}while() over for(){} construct in xface_encode_frame() loop
Slightly simplify readability, since the initial check is unnecessary.
2012-11-03 23:35:50 +01:00
Michael Niedermayer
33d54af427 fate: add filmstrip test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 22:47:14 +01:00
Xidorn Quan
0ecef3a0ef amr_decode_fix_avctx should not return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 21:38:37 +01:00
Stefano Sabatini
6450c05ba5 lswr/swresample: adopt globally consistent rules for options help message
The help text tells what the option does, not what the accepted parameter
is. Thus convert strings of the kind:

Bikeshed Color
to
set bikeshed color
2012-11-03 20:38:02 +01:00
Stefano Sabatini
0372ecfa48 lavc/options_table: force non-negative bitrate range
It does not make sense to set a negative bitrate.
2012-11-03 20:38:02 +01:00
Michael Niedermayer
930226cf52 crystalhd: fix missing braces warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 20:22:53 +01:00
Michael Niedermayer
ab796ded75 avstring: fix compiler warning about freeing const pointers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 20:22:53 +01:00
Nicolas George
73180ecd0a doc/faq: make the -sameq question more explicit.
Wording suggested by Stefano Sabatini, should have been
merged with the previous commit.
2012-11-03 17:13:44 +01:00
Nicolas George
8cf6377ac1 doc/faq: explain why -sameq is gone. 2012-11-03 17:03:13 +01:00
Paul B Mahol
94f224516c westwood_aud: remove stale comment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-03 14:54:17 +00:00
Michael Niedermayer
2581d9bcbb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  doc: add apidoc target for doxygen API documentation
  matroskadec: do not use avpacket internals

Conflicts:
	doc/Makefile
	libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 14:48:51 +01:00
Michael Niedermayer
37e81996dc Merge commit '9221efef7968463f3e3d9ce79ea72eaca082e73f'
* commit '9221efef7968463f3e3d9ce79ea72eaca082e73f':
  lavf: fix av_interleaved_write_frame() doxy.
  lavf: clarify the lifetime of demuxed packets.
  avconv: do not free muxed packet on streamcopy.
  crc: move doxy to the header
  vf_drawtext: do not use deprecated av_tree_node_size
  x86: Refactor PSWAPD fallback implementations and port to cpuflags

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 14:24:11 +01:00
Michael Niedermayer
1885ffb03d Merge commit '9a07c1332cfe092b57b5758f22b686ca58806c60'
* commit '9a07c1332cfe092b57b5758f22b686ca58806c60':
  parser: Move Doxygen documentation to the header files
  PGS subtitles: Expose forced flag
  x86: PMINUB: port to cpuflags

Conflicts:
	libavcodec/avcodec.h
	libavcodec/pgssubdec.c
	libavcodec/version.h
	libavcodec/x86/ac3dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 14:13:45 +01:00
Stefano Sabatini
b91fa5fcca lavu/opt: set sample format default value, and accept NULL value
Fix commit c9eaa98a3e.
+10l.
2012-11-03 13:53:49 +01:00
Michael Niedermayer
1dad486714 Merge commit '9ce02e14f01de50fcc6f7f459544b140be66d615'
* commit '9ce02e14f01de50fcc6f7f459544b140be66d615':
  x86: ac3dsp: port to cpuflags
  x86util: Add cpuflags_mmxext alias for cpuflags_mmx2
  x86inc: Only define program_name if the macro is unset

Conflicts:
	libavcodec/x86/ac3dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 13:38:38 +01:00
Stefano Sabatini
1c755f7667 lavc/options_table: make "request_sample_fmt" an AV_OPT_TYPE_SAMPLE_FMT option
Simplify, increase robustness in case a new sample format is added.
2012-11-03 12:15:42 +01:00
Stefano Sabatini
ca11f6b240 lavu/opt: prefer if(){}else{} over if()else{} construct
Improve consistency.
2012-11-03 12:14:53 +01:00
Stefano Sabatini
481fdeeecf lavu/opt: add AV_OPT_SAMPLE_FMT option 2012-11-03 12:14:26 +01:00
Stefano Sabatini
7be09a91c2 lswr/swresample.h: use consistent inclusion guard header name 2012-11-03 12:06:43 +01:00
Stefano Sabatini
a62242678f ffmpeg: complain loudly and exit in case removed -sameq option is specified
This is better than silently ignoring the option, which results in
unexpected quality results.
2012-11-03 12:05:43 +01:00
Stefano Sabatini
c9eaa98a3e doc/ffmpeg: remove -debug option description
The option belongs to libavcodec, so it results duplicated in the file.
2012-11-03 11:01:48 +01:00
Michael Niedermayer
b7280cff9a asfdec: check stream_index for validity
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 05:58:12 +01:00
Michael Niedermayer
e5927910c2 asfdec: flip the interpretation of the header aspect back
This reverts 2de8877689

Fixes Ticket 1883

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 05:49:07 +01:00
Michael Niedermayer
343c73e252 asfdec: parse aspect ratio payload extension
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 05:49:07 +01:00
Michael Niedermayer
8c93269e42 asfdec: correctly parse payload extensions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 05:37:18 +01:00
Michael Niedermayer
2d8c76eb1f asfdec: parse payload extension list
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 05:35:35 +01:00
Michael Niedermayer
ac2a3a7a05 vf_tinterlace: check av_image_get_linesize() return value
Fixes CID703717
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 02:38:30 +01:00
Michael Niedermayer
03764f6735 af_earwax: remove unused pointer value
Fixes CID703849
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 02:38:23 +01:00
Michael Niedermayer
d3dfe99bc5 libgsmdec: fix decoding of non 8khz gsm files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 00:50:22 +01:00
Michael Niedermayer
6e6033b793 gsmdec: fix decoding of non 8khz gsm files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-03 00:50:22 +01:00
Paul B Mahol
20ac916e6d indeo3: release buffer before calling decode_plane 2012-11-02 23:43:23 +00:00
Paul B Mahol
b02116cc4a Revert "Partly revert f174fba: indeo3 decoder does not support direct rendering."
f174fba did not introduce DR1 flag it was already available before that.

This reverts commit 8bf44d5c96.
2012-11-02 23:36:57 +00:00
Michael Niedermayer
4ad6ef00a2 libvo-amrwbenc: allow sampling rates other than 16khz
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 23:47:58 +01:00
Michael Niedermayer
b30f4510d8 libopencore-amr: allow sampling rates other than 8khz
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 23:47:58 +01:00
Michael Niedermayer
0aaf0a07d4 libopencore-amrdec: allow sampling rates other than 8khz
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 23:47:58 +01:00
Michael Niedermayer
2c1e9383a2 amrwbdec: allow sample rates other than 16khz
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 23:47:58 +01:00
Michael Niedermayer
d8aaec38fc amrnbdec: allow sample rates other than 8khz
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 23:47:58 +01:00
Paul B Mahol
f58f600c68 lclenc: make compression level user selectable
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-02 22:14:14 +00:00
Heesuk Jung
25b7aa980b Fix bit_rate in MPEG1/2 Video
In ISO/IEC 13818-2, bit rate is differently determined according to video type

1) MPEG1 Video
 Bit_rate and vbv_delay are set to 3FFFF and FFFF respectively
 to indicate variable bitrate. Other values are for constant bitrate.
 VBV is only defined for constant bit rate operation.
 Ths STD supersedes the VBV model for vbr.

2) MPEG2 Video
 Even if the bitrate is constant, the value of bit_rate may not be the actual bitrate
 since bit_rate need only be an upper bound to that actual bitrate.
 VBV is only defined for variable bit rate operation.
 Constant bit rate is viewed as a special case of vbr.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 22:27:17 +01:00
Paul B Mahol
77d89a5b16 apedec: consume packet after it has been fully decoded
Timestamp handling of decoded frames are much simpler now.

Fixes #1675.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-02 19:44:49 +00:00
Janne Grunau
b3fab1f2cd doc: add apidoc target for doxygen API documentation
Documentation includes only the externally visible API of the installed
headers.

Based on a patch by Anton Khirnov <anton@khirnov.net>.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-11-02 18:28:56 +01:00
Anton Khirnov
9221efef79 lavf: fix av_interleaved_write_frame() doxy.
A sentence was mistakenly inserted in the middle of another sentence.
2012-11-02 18:28:56 +01:00
Anton Khirnov
34871beb5e matroskadec: do not use avpacket internals 2012-11-02 18:28:56 +01:00
Anton Khirnov
717a450993 lavf: clarify the lifetime of demuxed packets. 2012-11-02 18:28:56 +01:00
Anton Khirnov
c8977f6d26 avconv: do not free muxed packet on streamcopy.
The packet belongs to lavf, the caller must not free it or access it in
any other way.
No change in practice, since destruct is set to NULL anyway.
2012-11-02 18:28:56 +01:00
Anton Khirnov
b4dc6dccba crc: move doxy to the header 2012-11-02 18:28:56 +01:00
Anton Khirnov
b68aac7ea3 vf_drawtext: do not use deprecated av_tree_node_size 2012-11-02 18:28:55 +01:00
Paul B Mahol
c39fb30816 smjpegdec: set nb_frames for video stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-02 16:32:51 +00:00
Diego Biurrun
0a7a94f2e5 x86: Refactor PSWAPD fallback implementations and port to cpuflags 2012-11-02 17:05:29 +01:00
Diego Biurrun
9a07c1332c parser: Move Doxygen documentation to the header files 2012-11-02 16:44:23 +01:00
John Stebbins
85f67c4865 PGS subtitles: Expose forced flag
Useful for detection of subtitles displayed during foreign language
scenes.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-02 16:13:35 +01:00
Diego Biurrun
26f01bd106 x86: PMINUB: port to cpuflags 2012-11-02 15:38:15 +01:00
Diego Biurrun
9ce02e14f0 x86: ac3dsp: port to cpuflags 2012-11-02 15:24:50 +01:00
Diego Biurrun
61bc2bc7d4 x86util: Add cpuflags_mmxext alias for cpuflags_mmx2
"mmxext" is a more sensible name and more common in outside projects.
2012-11-02 15:22:34 +01:00
Nicolas George
805b57001f lavc/pngdec: decode textual data (tEXt and zTXt).
Requested in trac ticket #1857.
2012-11-02 15:12:29 +01:00
Nicolas George
483c1aa5f1 lavu/bprint: add av_bprint_get_buffer().
It is useful to use bprint to handle a growing buffer
used with another API.
2012-11-02 15:12:29 +01:00
Michael Niedermayer
8551c6bec0 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dv1394: Swap the min and max values of the 'standard' option
  rtpdec_vp8: Don't parse fields that aren't used
  lavc: add some AVPacket doxy.
  audiointerleave: deobfuscate a function call.
  rtpdec: factorize identical code used in several handlers
  a64: remove interleaved mode.
  doc: Point to the new location of the c99-to-c89 tool
  decode_audio3: initialize AVFrame
  ws-snd1: set channel layout
  wmavoice: set channel layout
  wmapro: use AVCodecContext.channels instead of keeping a private copy
  wma: do not keep private copies of some AVCodecContext fields

Conflicts:
	libavcodec/wmadec.c
	libavcodec/wmaenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 14:57:36 +01:00
Diego Biurrun
012f73e271 x86inc: Only define program_name if the macro is unset
This allows overriding the value from outside of the file.
2012-11-02 14:38:00 +01:00
Michael Niedermayer
6788350281 Merge commit '50a65e7a540ce6747f81d6dbf6a602ad35be77ff'
* commit '50a65e7a540ce6747f81d6dbf6a602ad35be77ff': (24 commits)
  vmdaudio: set channel layout
  twinvq: validate sample rate code
  twinvq: set channel layout
  twinvq: validate that channels is not <= 0
  truespeech: set channel layout
  sipr: set channel layout
  shorten: validate that the channel count in the header is not <= 0
  ra288dec: set channel layout
  ra144dec: set channel layout
  qdm2: remove unneeded checks for channel count
  qdm2: make sure channels is not <= 0 and set channel layout
  qcelpdec: set channel layout
  nellymoserdec: set channels to 1
  libopencore-amr: set channel layout for amr-nb or if not set by the user
  libilbc: set channel layout
  dpcm: use AVCodecContext.channels instead of keeping a private copy
  imc: set channels to 1 instead of validating it
  gsmdec: always set channel layout and sample rate at initialization
  libgsmdec: always set channel layout and sample rate at initialization
  g726dec: do not validate sample rate
  ...

Conflicts:
	libavcodec/dpcm.c
	libavcodec/qdm2.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 14:20:33 +01:00
Michael Niedermayer
00aa7fa786 pcm: fix handling of more than 8 channels for planar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 14:00:23 +01:00
Michael Niedermayer
db9f426cab Merge commit '8ac0f6767bf63d3e6b308ee6648ff02598b81e03'
* commit '8ac0f6767bf63d3e6b308ee6648ff02598b81e03':
  dcadec: allow the decoder to change the channel layout mid-stream
  cook: use av_dlog() for debug logging instead of av_log() with AV_LOG_ERROR
  cook: move samples_per_frame from COOKSubpacket to where it is used
  cook: use av_get_channel_layout_nb_channels() instead of cook_count_channels()
  cook: reverse a condition so that the code makes more sense
  cook: remove unneeded COOKContext variable, sample_rate
  cook: remove unneeded COOKContext variable, bit_rate
  cook: use AVCodecContext.channels instead of keeping a private copy
  bmvaudio: set channel layout at init() rather than validating it
  atrac1: do not keep a copy of channel count in the private context
  dsicinaudio: set channels and channel layout
  g722dec: set channel layout at initialization instead of validating it
  amrwbdec: set channels, channel_layout, and sample_rate
  amrnbdec: set channels, channel_layout, and sample_rate
  dca_parser: allow the parser to change the sample rate
  lavc: check channel count after decoder init
  lavc: move SANE_NB_CHANNELS to internal.h and use it in the PCM decoders

Conflicts:
	libavcodec/dcadec.c
	libavcodec/pcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 13:43:57 +01:00
Michael Niedermayer
e1c804d883 dv1394: Swap the min and max values of the 'standard' option
DV1394_NTSC has a lower value than DV1394_PAL.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-02 11:25:48 +02:00
Martin Storsjö
2b831a59d9 rtpdec_vp8: Don't parse fields that aren't used
This avoids warnings about unused variables.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-02 10:59:17 +02:00
Anton Khirnov
0876c28080 lavc: add some AVPacket doxy. 2012-11-02 07:58:38 +01:00
Anton Khirnov
fdc8672886 audiointerleave: deobfuscate a function call.
right above there is if (pkt) {<do stuff>; pkt = NULL}, so pkt is just a
fancy name for NULL at this point.
2012-11-02 07:58:38 +01:00
Anton Khirnov
179a5c37e0 rtpdec: factorize identical code used in several handlers 2012-11-02 07:58:37 +01:00
Anton Khirnov
f70381ab9d a64: remove interleaved mode.
It has been disabled since it was added two years ago.
2012-11-02 07:58:37 +01:00
Jason
a5f6720f13 Add QT CC track mux support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 05:00:27 +01:00
Michael Niedermayer
ebfc212b02 dv1394: fix order of AVOption fields
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 02:07:15 +01:00
Alexis Ballier
1475815a1a Apply again [916352f282] that got lost in the merges.
Do not quote second argument to filter{,_out} in check_ld. We want to keep/remove all the space-separated words matching the -l* pattern, not keep everything if the whole argument begins with -l and remove it otherwise.

This also fixes errors like:
./configure: eval: line 418: syntax error near unexpected token `-l*'
./configure: eval: line 418: `case  in -l*) ;; *) echo  ;; esac'
when run with ./configure --enable-openal

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-02 00:28:25 +01:00
Michael Niedermayer
099786a638 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: remove redundant !codec check
  ffplay: only initialize codec opts before using it
  ffplay: always free buffersink_params in configure_video_filters
  ffplay: remove uneeded format filter, buffersink format is set
  ffplay: check for buffersink_params allocation success
  ffplay: always free inputs and outputs in configure_filtergraph
  ffplay: fill the unused part of the window with black
  ffplay: add update parameter to fill_rectangle

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 22:09:02 +01:00
Martin Storsjö
c19e9d00a7 doc: Point to the new location of the c99-to-c89 tool
This location contains prebuilt binaries as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-01 22:47:50 +02:00
Michael Niedermayer
f742c7b2ce lavf: fix integer overflow in rfps calculation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 21:37:29 +01:00
Michael Niedermayer
bacebe1f95 avienc: force a valid timebase for video
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 20:26:59 +01:00
Ilkka Ollakka
6d1270a0f9 decode_audio3: initialize AVFrame
Same fix and issue as in a25d912dca

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-11-01 19:43:05 +01:00
Stefano Sabatini
7669144ada doc/platform: Comply With All Capitalized Words Convention 2012-11-01 19:37:41 +01:00
Michael Niedermayer
4695ee71b0 lavfi/fifo: add assert to ensure request was successfull.
We would crash a moment later anyway if this fails.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 18:02:23 +01:00
Michael Niedermayer
304ebed586 mpegts_probe: detect files with garbage at the begin.
Fixes Ticket1811

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 17:22:04 +01:00
Justin Ruggles
5459848b14 ws-snd1: set channel layout 2012-11-01 11:30:04 -04:00
Justin Ruggles
f7b8506573 wmavoice: set channel layout 2012-11-01 11:30:04 -04:00
Justin Ruggles
50a65e7a54 vmdaudio: set channel layout 2012-11-01 11:29:19 -04:00
Justin Ruggles
002097a00b wmapro: use AVCodecContext.channels instead of keeping a private copy 2012-11-01 11:29:19 -04:00
Justin Ruggles
b5f628e227 twinvq: validate sample rate code
A large invalid value could cause undefined behavior when left-shifted
by 8 later in the function.
2012-11-01 11:29:19 -04:00
Justin Ruggles
2ed40608e9 wma: do not keep private copies of some AVCodecContext fields
channels, sample_rate, bit_rate, and block_align can be used directly from
the AVCodecContext
2012-11-01 11:29:19 -04:00
Justin Ruggles
335826cf5f twinvq: set channel layout 2012-11-01 11:29:19 -04:00
Justin Ruggles
8cc72ce5a0 twinvq: validate that channels is not <= 0
This could occur due to integer overflow when reading the channel count from
the extradata.
2012-11-01 11:29:19 -04:00
Justin Ruggles
cebea00c8a truespeech: set channel layout 2012-11-01 11:29:18 -04:00
Justin Ruggles
523734eb6a sipr: set channel layout 2012-11-01 11:29:18 -04:00
Justin Ruggles
4c53f4aed3 shorten: validate that the channel count in the header is not <= 0 2012-11-01 11:29:18 -04:00
Justin Ruggles
4e13e50432 ra288dec: set channel layout 2012-11-01 11:29:18 -04:00
Justin Ruggles
6159f64364 ra144dec: set channel layout 2012-11-01 11:29:18 -04:00
Justin Ruggles
eb38d8fe92 qdm2: remove unneeded checks for channel count 2012-11-01 11:29:18 -04:00
Justin Ruggles
be2ab8b75a qdm2: make sure channels is not <= 0 and set channel layout 2012-11-01 11:29:18 -04:00
Justin Ruggles
e3d6ab5704 qcelpdec: set channel layout 2012-11-01 11:29:18 -04:00
Justin Ruggles
d26701ce2f nellymoserdec: set channels to 1 2012-11-01 11:29:17 -04:00
Justin Ruggles
d40dab907a libopencore-amr: set channel layout for amr-nb or if not set by the user 2012-11-01 11:29:17 -04:00
Justin Ruggles
30f8da29bf libilbc: set channel layout 2012-11-01 11:29:17 -04:00
Justin Ruggles
0fd1ddf155 dpcm: use AVCodecContext.channels instead of keeping a private copy 2012-11-01 11:29:17 -04:00
Justin Ruggles
1c7a016153 imc: set channels to 1 instead of validating it 2012-11-01 11:29:17 -04:00
Justin Ruggles
32c7769e5c gsmdec: always set channel layout and sample rate at initialization
Only mono 8kHz is supported.
2012-11-01 11:29:17 -04:00
Justin Ruggles
8ac0f6767b dcadec: allow the decoder to change the channel layout mid-stream 2012-11-01 11:29:16 -04:00
Justin Ruggles
c5b8acad73 libgsmdec: always set channel layout and sample rate at initialization
Only mono 8kHz is supported.
2012-11-01 11:29:16 -04:00
Justin Ruggles
a346aaf148 g726dec: do not validate sample rate
For decoding it does not really matter what the sample rate is.
2012-11-01 11:29:16 -04:00
Justin Ruggles
e00eb03cd8 g726dec: set channel layout at initialization instead of validating it 2012-11-01 11:29:16 -04:00
Justin Ruggles
99d8686357 flacdec: do not warn on sample rate change 2012-11-01 11:29:16 -04:00
Justin Ruggles
90fcac0e95 flacdec: allow mid-stream channel layout change
Although the libFLAC decoder cannot handle such a change, it is allowed by the
spec and could potentially occur with live streams.
2012-11-01 11:29:16 -04:00
Justin Ruggles
268f8ba112 flacdec: use av_samples_* functions for sample buffer allocation
Also, return an error on allocation failure.
2012-11-01 11:29:16 -04:00
Justin Ruggles
93e27f86f1 cook: use av_dlog() for debug logging instead of av_log() with AV_LOG_ERROR 2012-11-01 11:29:15 -04:00
Justin Ruggles
8f173ef019 cook: move samples_per_frame from COOKSubpacket to where it is used 2012-11-01 11:29:15 -04:00
Justin Ruggles
7efbba2e36 cook: use av_get_channel_layout_nb_channels() instead of cook_count_channels() 2012-11-01 11:29:15 -04:00
Justin Ruggles
d21b2e4726 cook: reverse a condition so that the code makes more sense 2012-11-01 11:29:15 -04:00
Justin Ruggles
926e9d28f1 cook: remove unneeded COOKContext variable, sample_rate 2012-11-01 11:29:15 -04:00
Justin Ruggles
8aa5b8c5c8 cook: remove unneeded COOKContext variable, bit_rate 2012-11-01 11:29:15 -04:00
Justin Ruggles
3509eee19c cook: use AVCodecContext.channels instead of keeping a private copy 2012-11-01 11:29:14 -04:00
Justin Ruggles
a3145d0335 bmvaudio: set channel layout at init() rather than validating it 2012-11-01 11:29:14 -04:00
Justin Ruggles
a38eadf7ed atrac1: do not keep a copy of channel count in the private context 2012-11-01 11:29:14 -04:00
Justin Ruggles
4f56f9c48f dsicinaudio: set channels and channel layout 2012-11-01 11:29:14 -04:00
Justin Ruggles
ec2694d259 g722dec: set channel layout at initialization instead of validating it 2012-11-01 11:29:14 -04:00
Justin Ruggles
ee0e9678e7 amrwbdec: set channels, channel_layout, and sample_rate
Only mono 16kHz is supported.
2012-11-01 11:29:14 -04:00
Justin Ruggles
b24a4449a5 amrnbdec: set channels, channel_layout, and sample_rate
Only mono 8kHz is supported.
2012-11-01 11:29:14 -04:00
Justin Ruggles
a4202003b2 dca_parser: allow the parser to change the sample rate 2012-11-01 11:29:13 -04:00
Justin Ruggles
0366664ef9 lavc: check channel count after decoder init
Ensures the decoder did not set channel count to an insanely high value
during initialization, which could cause large memory usage when it tries to
get a buffer during decoding.
2012-11-01 11:29:13 -04:00
Justin Ruggles
bb6941af2a lavc: move SANE_NB_CHANNELS to internal.h and use it in the PCM decoders 2012-11-01 11:29:13 -04:00
Tomas Härdin
84e7d368d6 mxfdec: Fix inferred misuses of enums
This fixes CID 700457, 700458 and 703705.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 16:21:12 +01:00
Marton Balint
fec39d99d6 ffplay: remove redundant !codec check
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
fdb933444a ffplay: only initialize codec opts before using it
Fixes Coverity CID 733793.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
8cb740245d ffplay: always free buffersink_params in configure_video_filters
Fixes Coverity CID 733792.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
09214f494b ffplay: remove uneeded format filter, buffersink format is set
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
afd9e705de ffplay: check for buffersink_params allocation success
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
abd49a7524 ffplay: always free inputs and outputs in configure_filtergraph
Fixes Coverity CID 733791.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
65f6c42a9f ffplay: fill the unused part of the window with black
Should fix ticket #1667.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Marton Balint
00b70f8d29 ffplay: add update parameter to fill_rectangle
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-11-01 15:46:18 +01:00
Michael Niedermayer
e5cf100d3d mpegvideo_probe: check slice order
Fixes: Enrique.mp3

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 15:08:03 +01:00
Michael Niedermayer
7fd9d49ba7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add ac3/eac3 tests to FATE_SAMPLES_AVCONV
  avconv_opt, cmdutils: Add missing function parameter Doxygen
  x86: Move optimization suffix to end of function names

Conflicts:
	cmdutils.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 13:25:46 +01:00
Michael Niedermayer
add7513e64 Merge commit 'fa8fcab1e0d31074c0644c4ac5194474c6c26415'
* commit 'fa8fcab1e0d31074c0644c4ac5194474c6c26415':
  x86: h264_chromamc_10bit: drop pointless PAVG %define
  x86: mmx2 ---> mmxext in function names
  swscale: do not forget to swap data in formats with different endianness

Conflicts:
	libavcodec/x86/dsputil_mmx.c
	libavfilter/x86/gradfun.c
	libswscale/input.c
	libswscale/utils.c
	libswscale/x86/swscale.c
	tests/ref/lavfi/pixfmts_scale

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 13:11:51 +01:00
Stefano Sabatini
14f1fa56b2 doc/filters: add "Notes on filtergraph escaping" section
Should help to clarify escaping issues in the filtergraph syntax. In
particular, should address trac ticket #1813.
2012-11-01 11:47:35 +01:00
Michael Niedermayer
6204ea17f1 rational: test add/sub too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 02:59:44 +01:00
Michael Niedermayer
841bf0ef24 cmdutils: allow specifying the file for -report
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 02:59:44 +01:00
Carl Eugen Hoyos
7139f0e6be Fix typo in platform documentation. 2012-11-01 01:45:53 +01:00
Paul B Mahol
bb9bc1fc98 flicvideo: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-11-01 00:29:05 +00:00
Michael Niedermayer
6a712e7f62 sws: bump micro for range bugfix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 00:32:15 +01:00
Michael Niedermayer
25a21c587c eval-test: add some otherwise untested functions.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-01 00:32:15 +01:00
Clément Bœsch
54a48d2f04 lavfi: fix references to avfilter_* functions that don't exist anymore. 2012-10-31 20:54:59 +01:00
Paul B Mahol
010f1ce954 ffv1: assert that there is at least one slice
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-31 19:42:07 +00:00
Janne Grunau
6b07830a77 fate: add ac3/eac3 tests to FATE_SAMPLES_AVCONV
Fixes typo in 2cbdd7c929.
2012-10-31 20:01:08 +01:00
Clément Bœsch
fd6707ed0e lavfi/hue: add missing GPL dependency. 2012-10-31 19:28:02 +01:00
Clément Bœsch
5b4cae50c9 LICENSE: update GPL filter list. 2012-10-31 19:28:02 +01:00
Clément Bœsch
f53112b665 lavfi: remove hqdn3d libmpcodecs wrapper.
The native filter was ported from the MPlayer project when the mp
wrapper didn't even exist, and when mp=hqdn3d was added, it was already
obsolete.
2012-10-31 19:28:02 +01:00
Michael Niedermayer
adc39b28a5 av_image_copy: check for av_image_get_linesize() failure.
Fixes CID703722
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 19:12:48 +01:00
Michael Niedermayer
6992b0bfc2 utils: fix rounding of micro seconds
Found-by: Johan Wessfeldt <johan.wessfeldt@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 19:12:47 +01:00
Diego Biurrun
fa8fcab1e0 x86: h264_chromamc_10bit: drop pointless PAVG %define
It is only used in one place so there is no need for the abstraction.
2012-10-31 18:21:55 +01:00
Diego Biurrun
02e4275180 avconv_opt, cmdutils: Add missing function parameter Doxygen 2012-10-31 18:21:55 +01:00
Diego Biurrun
c37322e68c x86: Move optimization suffix to end of function names
This simplifies cpuflags porting.
2012-10-31 18:21:55 +01:00
Diego Biurrun
d8eda37080 x86: mmx2 ---> mmxext in function names 2012-10-31 17:53:57 +01:00
Kostya Shishkov
38fdf72580 swscale: do not forget to swap data in formats with different endianness
Otherwise during scaling it will try to interpret input in the wrong way and
that leads to the test results disagreeing on different platforms and with
different optimizations.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-31 17:53:57 +01:00
Michael Niedermayer
3a34ac6541 file: typo
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 17:01:52 +01:00
Michael Niedermayer
31bf820a26 av_tempfile: document umask() issue
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 16:24:04 +01:00
Stefano Sabatini
1b21642149 lavfi/scale: avoid to print a NULL value in log message
Fix possible crash occurring when libc does not support NULL printing.
2012-10-31 15:46:46 +01:00
Nick Brereton
09ea482d5d Fix #1827, segfault with XXCH samples when downsampling.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 14:49:46 +01:00
Stefano Sabatini
be0b37c649 lavf/avienc: fix/extend error message, in case of too large number of skipped frames 2012-10-31 14:46:40 +01:00
Stefano Sabatini
f35d5f966f lavf/avienc: enable debug log 2012-10-31 14:46:24 +01:00
Stefano Sabatini
29a9e4d5c9 lavfi/mp: drop the mp=rectangle filter
All the rectangle features have been ported to the native drawbox filter,
which has an equivalent syntax.
2012-10-31 14:46:18 +01:00
Stefano Sabatini
9d478f38cd lavfi/drawbox: add "width" and "height" aliases for "w" and "h" options 2012-10-31 14:43:47 +01:00
Stefano Sabatini
93399e9381 lavfi/drawbox: add thickness option 2012-10-31 14:43:47 +01:00
Michael Niedermayer
84833b028b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  aacdec: Drop some unused function arguments
  x86: Fix assembly with NASM
  x86: fmtconvert: Refactor cvtps2pi emulation through cpuflags

Conflicts:
	libavcodec/aacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 14:27:11 +01:00
Michael Niedermayer
28c0678eb7 Merge commit 'be923ed659016350592acb9b3346f706f8170ac5'
* commit 'be923ed659016350592acb9b3346f706f8170ac5':
  x86: fmtconvert: port to cpuflags
  x86: MMX2 ---> MMXEXT in macro names

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 14:16:18 +01:00
Michael Niedermayer
4b874fc4fc Merge commit 'a65bdceb060628881578afb29df4eb222421381f'
* commit 'a65bdceb060628881578afb29df4eb222421381f':
  x86: mmx2 ---> mmxext in variable names

Conflicts:
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 14:08:49 +01:00
Michael Niedermayer
78ec407d5a Merge commit '652f5185945c8405fc57aed353286858df8d066f'
* commit '652f5185945c8405fc57aed353286858df8d066f':
  x86: mmx2 ---> mmxext in comments and messages

Conflicts:
	libswscale/x86/swscale_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 14:02:35 +01:00
Michael Niedermayer
9766d9c985 Merge commit '04581c8c77ce779e4e70684ac45302972766be0f'
* commit '04581c8c77ce779e4e70684ac45302972766be0f':
  x86: yasm: Use complete source path for macro helper %includes

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 13:57:09 +01:00
Dave Yeo
264f12342c x86: Fix assembly with NASM
Unlike YASM, NASM only looks for include files in the current
directory, not in the directory that included files reside in.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-31 13:50:01 +01:00
Michael Niedermayer
3174616f59 Merge commit '6860b4081d046558c44b1b42f22022ea341a2a73'
* commit '6860b4081d046558c44b1b42f22022ea341a2a73':
  x86: include x86inc.asm in x86util.asm
  cng: Reindent some incorrectly indented lines
  cngdec: Allow flushing the decoder
  cngdec: Make the dbov variable have the right unit
  cngdec: Fix the memset size to cover the full array
  cngdec: Update the LPC coefficients after averaging the reflection coefficients
  configure: fix print_config() with broke awks

Conflicts:
	libavcodec/x86/ac3dsp.asm
	libavcodec/x86/dct32.asm
	libavcodec/x86/deinterlace.asm
	libavcodec/x86/dsputil.asm
	libavcodec/x86/dsputilenc.asm
	libavcodec/x86/fft.asm
	libavcodec/x86/fmtconvert.asm
	libavcodec/x86/h264_chromamc.asm
	libavcodec/x86/h264_deblock.asm
	libavcodec/x86/h264_deblock_10bit.asm
	libavcodec/x86/h264_idct.asm
	libavcodec/x86/h264_idct_10bit.asm
	libavcodec/x86/h264_intrapred.asm
	libavcodec/x86/h264_intrapred_10bit.asm
	libavcodec/x86/h264_weight.asm
	libavcodec/x86/vc1dsp.asm
	libavcodec/x86/vp3dsp.asm
	libavcodec/x86/vp56dsp.asm
	libavcodec/x86/vp8dsp.asm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 13:43:33 +01:00
Michael Niedermayer
976175fbe5 probetest: fix possible use of uninitialized data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 13:16:52 +01:00
Stefano Sabatini
755038d07d lavfi/drawbox: remove some unnecessary parentheses 2012-10-31 12:20:50 +01:00
Stefano Sabatini
003bd88d99 lavfi/drawbox: reindent after previous commit 2012-10-31 12:14:21 +01:00
Stefano Sabatini
1b3fdd9731 lavfi/drawbox: implement color=invert mode
Based on a libmpcodecs/vf_rectangle.c feature.
2012-10-31 12:14:21 +01:00
Stefano Sabatini
652fab5996 lavfi/mp: drop wrapped field filter
The filter has been ported to a native libavfilter filter.
2012-10-31 12:14:09 +01:00
Stefano Sabatini
3c4aa50620 lavfi: add field filter
The filter is a port of libmpcodecs/vf_field.c, since there is no common
code I relicensed it as LGPL, while keeping the original author
copyright.
2012-10-31 12:07:11 +01:00
Diego Biurrun
5707af8d0b aacdec: Drop some unused function arguments 2012-10-31 10:54:52 +01:00
Dave Yeo
9c167914a1 x86: Fix assembly with NASM
Unlike YASM, NASM only looks for include files in the current
directory, not in the directory that included files reside in.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-31 10:20:35 +01:00
Paul B Mahol
dc239b3b40 av_get_audio_frame_duration: add IAC
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-31 03:44:37 +00:00
Michael Niedermayer
0e4d34e087 pix_fmt_info: add 9/10 bit YUVA formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 03:10:35 +01:00
Michael Niedermayer
6c49562d79 tree-test: fix printf() types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 03:10:35 +01:00
Michael Niedermayer
370e397256 sws: fix handling of big endian alpha
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-31 03:10:35 +01:00
Diego Biurrun
be923ed659 x86: fmtconvert: port to cpuflags 2012-10-31 01:05:03 +01:00
Diego Biurrun
be2c456e96 x86: fmtconvert: Refactor cvtps2pi emulation through cpuflags 2012-10-31 01:05:03 +01:00
Diego Biurrun
588fafe7f3 x86: MMX2 ---> MMXEXT in macro names 2012-10-31 01:04:55 +01:00
Diego Biurrun
a65bdceb06 x86: mmx2 ---> mmxext in variable names 2012-10-31 00:37:42 +01:00
Diego Biurrun
652f518594 x86: mmx2 ---> mmxext in comments and messages 2012-10-31 00:37:42 +01:00
Diego Biurrun
04581c8c77 x86: yasm: Use complete source path for macro helper %includes
This is more consistent with the way we handle C #includes and
it simplifies the build system.
2012-10-31 00:37:42 +01:00
Diego Biurrun
6860b4081d x86: include x86inc.asm in x86util.asm
This is necessary to allow refactoring some x86util macros with cpuflags.
2012-10-31 00:37:42 +01:00
Stefano Sabatini
1730dcf093 doc/filters: fix typo in drawbox section 2012-10-30 23:48:24 +01:00
Stefano Sabatini
b6248299f6 doc/filters: itemize examples for drawbox, add an example, fix grammar 2012-10-30 23:38:50 +01:00
Stefano Sabatini
2ed7e6cce5 lavfi/drawbox: extend syntax, accept named options 2012-10-30 23:36:36 +01:00
Stefano Sabatini
b420b87848 lavfi/tinterlace: remove poll_frame() callback
That interface is deprecated, and apparently useless.
2012-10-30 23:32:20 +01:00
Paul B Mahol
7adc600219 av_get_audio_frame_duration: add G723_1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-30 21:53:38 +00:00
Paul B Mahol
7b378c2fb7 lavfi: remove yuvcsp and yvu9 libmpcodecs wrappers
Same functionality is provided by libswscale.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-30 21:24:29 +00:00
Michael Niedermayer
f7a9a99661 wavenc: fix curruption of metadata
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 21:48:39 +01:00
Michael Niedermayer
2f84f13806 fate: remove typo, reenable AC3 tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 20:53:30 +01:00
Michael Niedermayer
28bcca46ed av_get_audio_frame_duration: fix IMC
Fixes Ticket1658
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 20:31:06 +01:00
Paul B Mahol
b90d7840df lavc: const correctness for avpicture_fill()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-30 18:40:24 +00:00
Clément Bœsch
03179c2426 lavfi/smartblur: add missing draw slice call.
This fixes output with filtergraphs such as 'split[a][b];
[a]pad=iw*2[src]; [b]smartblur=1:1:1[filt]; [src][filt]overlay=w'
2012-10-30 19:37:20 +01:00
Michael Niedermayer
5cac0656a3 af_ashowinfo: integrate config_input() in filter_samples.
This is simpler and also should allow the code to function when the
channel number changes.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 19:26:07 +01:00
Mans Rullgard
674c4a11cb configure: fix print_config() with broke awks
Some awk versions do not treat the result of unary + on a (numeric)
string as numeric, giving wrong results when used in a boolean context
Using unary - instead is logically equivalent works as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-30 19:26:07 +01:00
Michael Niedermayer
4d2f1d8c93 swscale.c:remove fill_plane9or10() use fillPlane16()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 18:51:21 +01:00
Michael Niedermayer
70c25c6205 sws: move fillPlane16() to header so it can be used from more than 1 place
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 18:51:21 +01:00
Michael Niedermayer
89d2f014bc sws_unscaled: drop fill_plane9or10()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 18:51:21 +01:00
Tomas Härdin
a44c3ae3b0 Change my GPG fingerprint
The old key expired

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 18:51:21 +01:00
Michael Niedermayer
65e0a3ccd8 sws: fix BE/LE handling for fillPlane16()
Based on fill_plane9or10() by luca barbato

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 18:51:15 +01:00
Michael Niedermayer
a201639a01 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  pixfmt: support more yuva formats
  swscale: support gray to 9bit and 10bit formats
  configure: rewrite print_config() function using awk
  FATE: fix (AD)PCM test dependencies broken in e519990
  Use ptrdiff_t instead of int for intra pred "stride" function parameter.
  x86: use PRED4x4/8x8/8x8L/16x16 macros to declare intrapred prototypes.

Conflicts:
	libavcodec/h264pred.c
	libavcodec/h264pred_template.c
	libavutil/pixfmt.h
	libswscale/swscale_unscaled.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 17:47:36 +01:00
Paul B Mahol
788afee86e lavfi: remove palette libmpcodecs wrapper
The filter is useless, swscale should be used instead.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-30 16:21:33 +00:00
Paul B Mahol
8a4284adbf ff: fix case where image does not have alpha channel
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-30 15:28:13 +00:00
Martin Storsjö
ab9545a290 cng: Reindent some incorrectly indented lines
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-30 16:51:29 +02:00
Martin Storsjö
6b68223d31 cngdec: Allow flushing the decoder
After a flush, don't average the output envelope and energy with
previous iterations.

Also start directly from the target values for the first iteration
at startup.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-30 16:51:25 +02:00
Martin Storsjö
036e6c37d3 cngdec: Make the dbov variable have the right unit
Previously the unit of the variable was Bov, not dBov.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-30 16:51:21 +02:00
Martin Storsjö
cafefd889b cngdec: Fix the memset size to cover the full array
This was a leftover from previous iterations of the code, where the
refl coef arrays were statically allocated.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-30 16:51:16 +02:00
Martin Storsjö
9b50d20cd2 cngdec: Update the LPC coefficients after averaging the reflection coefficients
I somehow messed up the placement of this one.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-30 16:51:12 +02:00
Michael Niedermayer
6f5f7f705d Merge commit '08b028c18dc31b6de741861b9555669dcca4d12a'
* commit '08b028c18dc31b6de741861b9555669dcca4d12a':
  Remove INIT_AVX from x86inc.asm.
  Remove usage of INIT_AVX in h264_intrapred_10bit.asm.
  dv: fix indentation

Conflicts:
	libavformat/dv.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 15:28:24 +01:00
Michael Niedermayer
e79c3858b3 Merge commit '14f031d7ecfabba0ef02776d4516aa3dcb7c40d8'
* commit '14f031d7ecfabba0ef02776d4516aa3dcb7c40d8':
  dv: use AVStream.index instead of abusing AVStream.id
  lavfi: add ashowinfo filter
  avcodec: Add a RFC 3389 comfort noise codec
  lpc: Add a function for calculating reflection coefficients from samples
  lpc: Add a function for calculating reflection coefficients from autocorrelation coefficients
  lavr: document upper bound on number of output samples.
  lavr: add general API usage doxy
  indeo3: remove duplicate capabilities line.
  fate: ac3: Add dependencies

Conflicts:
	Changelog
	doc/filters.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/version.h
	libavfilter/Makefile
	libavfilter/af_ashowinfo.c
	libavfilter/allfilters.c
	libavfilter/version.h
	libavutil/avutil.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 14:40:22 +01:00
Mans Rullgard
d16c4aebba configure: fix print_config() with broke awks
Some awk versions do not treat the result of unary + on a (numeric)
string as numeric, giving wrong results when used in a boolean context
Using unary - instead is logically equivalent works as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-30 13:33:29 +00:00
Michael Niedermayer
cd37963684 Merge commit '381dc1a5ec0925b281c573457c413ae643567086'
* commit '381dc1a5ec0925b281c573457c413ae643567086':
  fate: ac3: Place E-AC-3 tests and AC-3 tests in different groups
  fate: Add shorthands for acodec PCM and ADPCM tests
  avconv: Drop unused function argument from do_video_stats()
  cmdutils: Conditionally compile libswscale-related bits
  aacenc: Drop some unused function arguments
  rtsp: Avoid a cast when calling strtol
  nut: support textual data
  nutenc: verbosely report unsupported negative pts

Conflicts:
	cmdutils.c
	ffmpeg.c
	libavformat/nut.c
	libavformat/nutenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 13:52:03 +01:00
Michael Niedermayer
60e957476e rawdec: check avpicture_get_size() return value
Fixes CID205019
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 13:18:57 +01:00
Carl Eugen Hoyos
d3de3a16d1 Partly revert f174fba: yop decoder does not support direct rendering. 2012-10-30 12:09:25 +01:00
Luca Barbato
7658295ba3 pixfmt: support more yuva formats
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-30 12:02:42 +01:00
Luca Barbato
26b5ad2543 swscale: support gray to 9bit and 10bit formats
With the input of Kostya and Ronald.
2012-10-30 12:02:41 +01:00
Carl Eugen Hoyos
8bf44d5c96 Partly revert f174fba: indeo3 decoder does not support direct rendering. 2012-10-30 11:51:58 +01:00
Mans Rullgard
f454e87923 configure: rewrite print_config() function using awk
This is much faster with slow shells and noticeably faster even
with bash on a fast Linux system.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-30 10:28:25 +00:00
Paul B Mahol
5f614bcf2c vqavideo: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-30 03:29:08 +00:00
Anton Khirnov
02e6364259 FATE: fix (AD)PCM test dependencies broken in e519990
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-30 03:13:41 +01:00
Michael Niedermayer
4b7f34a34e mpeg12videodec: dont pass mpeg1 VBR special case value on as bitrate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 02:27:50 +01:00
Heesuk Jung
c349177b8c mpeg12video_parser: Wrong bit rate in MPEG2 video file (Ticket #1862)
mpegvideo parser sometime get wrong stream bit rate which is 0x3FFFF*400.
But maximum bit rate of MPEG2 video is up to 80 Mbps in case 1920x1080 resolution.
When bit rate is 0x3FFFF*400, set bit rate zero.

* Problematic link
https://docs.google.com/open?id=0B6r7ZfWFIypCUkhPa0dyTGdFSE0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 02:19:52 +01:00
Michael Niedermayer
740959fdbf mpeg12parser: cleanup bitrate parsing.
This fixes several bugs in the code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-30 02:19:21 +01:00
Ronald S. Bultje
95c89da36e Use ptrdiff_t instead of int for intra pred "stride" function parameter.
This way, SIMD-optimized functions don't have to sign-extend their
stride argument manually to be able to do pointer arithmetic.
2012-10-29 17:49:13 -07:00
Ronald S. Bultje
bad8e33dc9 x86: use PRED4x4/8x8/8x8L/16x16 macros to declare intrapred prototypes. 2012-10-29 17:48:23 -07:00
Ronald S. Bultje
08b028c18d Remove INIT_AVX from x86inc.asm. 2012-10-29 14:51:14 -07:00
Michael Niedermayer
11d695d120 x11grab: fix mixed declaration and code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 22:24:10 +01:00
Michael Niedermayer
977cb54f94 tree: fix type used for testing the tree
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 22:21:25 +01:00
Michael Niedermayer
1838961357 qt-faststart: fix signedness of variable used to hold return code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 22:11:22 +01:00
Michael Niedermayer
91295f03d4 mp3dec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 22:11:21 +01:00
Michael Niedermayer
ba8adf9be5 truemotion2: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 22:11:19 +01:00
Ronald S. Bultje
c285edd06e Remove usage of INIT_AVX in h264_intrapred_10bit.asm.
Replace INIT_AVX by INIT_XMM avx. Port the whole file to use cpuflag
based function declarations. Remove (now unused) cputype argument in
function declaration macros. Change function prototypes to have mmx2
instead of mmxext as suffix, since that's required by cpuflags.
2012-10-29 14:10:51 -07:00
Anton Khirnov
ede4cedf47 dv: fix indentation 2012-10-29 21:35:09 +01:00
Anton Khirnov
14f031d7ec dv: use AVStream.index instead of abusing AVStream.id 2012-10-29 21:34:05 +01:00
Piotr Bandurski
bf0d098a98 pictordec: decode 1bpp / 4bpp images when extra header marker is missing
based on 56f6628bca

samples:

http://www.datafilehost.com/download-94b5bc1b.html

Reviewed-and-Tested-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 21:32:03 +01:00
Anton Khirnov
20dd41af85 lavfi: add ashowinfo filter
It can be useful for debugging.

Based on a patch by Stefano Sabatini <stefano.sabatini-lala@poste.it>
2012-10-29 21:29:58 +01:00
Piotr Bandurski
a29ed50ed7 avuidec: correct long_name
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 21:13:50 +01:00
Paul B Mahol
9051025102 lavc: remove duplicated .capabilities
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-29 20:06:52 +00:00
Martin Storsjö
9b500b8f6c avcodec: Add a RFC 3389 comfort noise codec
This isn't too useful as a normal codec, but can be used in
voip style applications. The decoder updates the noise
generator parameters when a packet is given to it for decoding,
but if called with an empty packet, it generates more noise
according to the last parameters.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-29 22:00:43 +02:00
Martin Storsjö
8b25a20efb lpc: Add a function for calculating reflection coefficients from samples
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-29 21:53:16 +02:00
Justin Ruggles
39ef66f530 lpc: Add a function for calculating reflection coefficients from autocorrelation coefficients
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-29 21:53:13 +02:00
Anton Khirnov
dc5793062e lavr: document upper bound on number of output samples.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-29 20:05:47 +01:00
Anton Khirnov
01b760190d lavr: add general API usage doxy
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-29 20:05:41 +01:00
Anton Khirnov
bff5e5f8b3 indeo3: remove duplicate capabilities line. 2012-10-29 20:04:56 +01:00
Diego Biurrun
381dc1a5ec fate: ac3: Place E-AC-3 tests and AC-3 tests in different groups 2012-10-29 19:07:58 +01:00
Diego Biurrun
2cbdd7c929 fate: ac3: Add dependencies 2012-10-29 19:07:58 +01:00
Diego Biurrun
e519990ced fate: Add shorthands for acodec PCM and ADPCM tests 2012-10-29 19:07:58 +01:00
Diego Biurrun
70478746a9 avconv: Drop unused function argument from do_video_stats() 2012-10-29 19:07:58 +01:00
Diego Biurrun
ab79966475 cmdutils: Conditionally compile libswscale-related bits
This fixes compilation with libswscale disabled.
2012-10-29 19:02:12 +01:00
rogerdpack
c1804dc4ce lavfi/frei0r: allow for Windows style paths
Update path handling against the latest Frei0r specification changes.

Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2012-10-29 18:50:48 +01:00
Stefano Sabatini
7691860c73 lavfi/frei0r: update link to spec
Fri0r project moved from piksel.org to frei0r.dyne.org.
2012-10-29 18:48:00 +01:00
Diego Biurrun
72c758f1fd aacenc: Drop some unused function arguments 2012-10-29 18:27:54 +01:00
Stefano Sabatini
19add3224f lavfi/scale: implement clever/insane parsing heuristic, and add a size option
If the first argument can be read as a video size, set that output size
in the scale. This allows to specify in a filtergraph scale=qcif or
scale=320x240.

This is not completely safe, for example in case of a typo in the video
size string the first argument will be read as the input width
expression, giving rise to a confusing comment.
2012-10-29 17:44:53 +01:00
Stefano Sabatini
d4604d10fe lavu/parseutils: add trailing characters check in av_parse_video_size()
Return an error in case the video size specifications contains spurious
trailing chars, like in "320x240foobar".
2012-10-29 17:39:26 +01:00
Stefano Sabatini
adf0cd1456 doc/filters: itemize scale examples, and create a dedicated subsection for them 2012-10-29 17:39:26 +01:00
Stefano Sabatini
c2428ada71 lavfi/scale: return error code in case of failed reconfiguration in start_frame()
Avoid an assert, since now the function supports error code return.
2012-10-29 17:39:26 +01:00
Stefano Sabatini
83938c3d4c lavfi/scale: accept named options, make parsing more robust
Also update documentation accordingly.
2012-10-29 17:39:26 +01:00
Martin Storsjö
f21d5c905d rtsp: Avoid a cast when calling strtol
This gets rid of this warning:

libavformat/rtsp.c: In function ‘rtsp_parse_transport’:
libavformat/rtsp.c:794: warning: cast discards qualifiers from pointer target type

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-29 17:47:25 +02:00
Tim Nicholson
8a9b48bfa9 movenc: Add required 'prof' atom to 'tapt' atom set.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 16:45:37 +01:00
Michael Niedermayer
67420b3de5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavc: add CODEC_CAP_DR1 to all video decoders missing them
  rtpdec: Cosmetic cleanup

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 13:15:27 +01:00
Luca Barbato
d4bff9f1ab nut: support textual data
Plain text (utf8 encoded) data can be muxed and demuxed in nut.
2012-10-29 12:03:28 +01:00
Stefano Sabatini
7d1e003abd doc/syntax: add a "Quoting and escaping" section 2012-10-29 11:56:15 +01:00
Luca Barbato
07585ffa62 nutenc: verbosely report unsupported negative pts
Additionally use the correct error number.
2012-10-29 10:52:13 +01:00
Anton Khirnov
f174fbac3c lavc: add CODEC_CAP_DR1 to all video decoders missing them 2012-10-29 09:51:23 +01:00
Michael Niedermayer
b4e6265136 dcadec: skip QMF on unused channels
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 05:21:47 +01:00
Michael Niedermayer
a3886ea3c5 smoothstreamingenc: check return value of mkdir()
Fixes CID732188
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 03:34:17 +01:00
Michael Niedermayer
b399816d9c smoothstreamingenc: fix integer overflow
Fixes CID732248
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 03:17:08 +01:00
Michael Niedermayer
224afddc7c ismindex: check return value of avio_open_dyn_buf()
Fixes CID733723
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-29 02:53:43 +01:00
Leon van Stuivenberg
c5be6192f0 cmdutils: avoid using cpp directives within printf macro arguments
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

It appears such construct has undefined behavior
2012-10-29 01:03:02 +01:00
Paul B Mahol
c2e2b3029e cafdec: fix parsing of chunks which may have unused data
Specification mentions 'strg', 'mark', 'regn', 'info', .. chunks
to have data section size larger than chunk's current meaningful
content in order to reserve room for additional data.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-28 20:33:29 +00:00
Clément Bœsch
3d6a246b4b lavf/srtenc: add AVFMT_TS_NONSTRICT flag.
There is not really a problem in having two events at the same time.
Even if it's not perfectly correct, it helps remuxing more files
(typically our FATE sample).
2012-10-28 20:45:58 +01:00
Martin Storsjö
48f01398ba rtpdec: Cosmetic cleanup
Mainly clean up the RTP statistics code, plus a few other obviously
misindentend lines.

Remove some useless comments, de-doxygenize some comments,
add spacing around operators and fix a typo.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-28 20:50:01 +02:00
Michael Niedermayer
d41c019da0 fate/scalenorm: unbreak fate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 18:26:11 +01:00
Stefano Sabatini
74e81b4de1 tests: do not set bogus scale sws_flags option in the scalenorm test
sws_flags is not a valid scale option, and thus is ignored.
2012-10-28 17:20:50 +01:00
Michael Niedermayer
f472d01c25 frame_thread_encode: fix context memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 17:04:11 +01:00
Michael Niedermayer
991db63951 frame_thread_encoder: fix packet memleak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 16:47:23 +01:00
Michael Niedermayer
d8246d475c vc1dec: mark by assert that the default path cannot occur
Fixes CID703827, CID703828
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 16:11:14 +01:00
Paul B Mahol
07ed191b15 parse ID3v2 chapters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-28 15:10:28 +00:00
Carl Eugen Hoyos
3f44809415 Synchronize libmpcodecs: Support 16bit yuv in telecine filter.
Fixes ticket 1782.
2012-10-28 15:46:35 +01:00
Carl Eugen Hoyos
96fac764fa Add an additional AAC TwoCC.
Mentioned on http://msdn.microsoft.com/en-us/library/dd341376%28prot.20%29.aspx
Originally committed to vlc by Jean-Baptiste.
2012-10-28 14:50:11 +01:00
bbraun
d72aef4e92 movenc: add more metadata types
Fixes Ticket1052

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 14:36:57 +01:00
Michael Niedermayer
ac090fa68c lavu: keep context size variables
They are essential to be able to use the utils without av_malloc()
That is for example use with malloc(), memalign(), some other
private allocation function, on the stack or others.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 14:33:41 +01:00
Michael Niedermayer
c73fcc8de3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  yuv4mpeg: reject unsupported codecs
  nutenc: K&R formatting cosmetics
  assdec: fix qsort() callback signature
  configure: detect sparc64 automatically
  vp8: fix memset() crossing array boundary
  h264: fix invalid pointer arithmetic
  amrwbdec: fix invalid pointer arithmetic

Conflicts:
	libavformat/nutenc.c
	libavformat/yuv4mpeg.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 14:24:27 +01:00
Michael Niedermayer
8943ad4014 Merge commit '4521645b1aee9e9ad8f5cea7b2392cd5f6ffcd26'
* commit '4521645b1aee9e9ad8f5cea7b2392cd5f6ffcd26':
  avio: fix pointer type mismatches in avio_enum_protocols()
  avserver: use socklen_t where appropriate
  udp: use socklen_t where appropriate
  network: use HAVE_THREADS instead of local hack
  af_channelmap: remove stray enum declaration
  buffersink: remove stray semicolon after function definition

Conflicts:
	libavformat/avio.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 13:19:11 +01:00
Michael Niedermayer
f9f79cb0ec fate: make sure the global sws flags are set to be bitexact for scalenorm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 13:05:35 +01:00
Nicolas George
14f69a0516 fate: add a test for scale with variable input format. 2012-10-28 09:59:03 +01:00
Nicolas George
b0e2f4a757 lavfi/concat: implement unsafe mode. 2012-10-28 09:14:34 +01:00
Luca Barbato
424b1e7642 yuv4mpeg: reject unsupported codecs
The muxer already rejects unsupported pixel formats, reject also
unsupported codecs to prevent dangerous misuses.
2012-10-28 05:07:55 +01:00
Luca Barbato
fce4450dec nutenc: K&R formatting cosmetics 2012-10-28 05:07:55 +01:00
Michael Niedermayer
c4a36b6f70 lpc: check that lpc_type is valid in ff_lpc_calc_coefs
Fixes CID700759
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 03:27:16 +01:00
Michael Niedermayer
8edf9b1fa4 sws: rgb has no range, avoid random results if the user tries to mess with it anyway.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 02:46:56 +02:00
Michael Niedermayer
d23e8f53ad swr: use 64bit index/len for x86_64 mix
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 02:09:08 +02:00
Michael Niedermayer
2aecfd4f20 vf_showinfo: check return code of av_image_get_linesize()
Fixes CID703716
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-28 00:40:28 +02:00
Michael Niedermayer
0f943ed3c8 swfenc: zero fifo after freeing
Fixes CID602000
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 23:03:07 +02:00
Michael Niedermayer
189fbcede8 tak_parser: check ff_combine_frame() return code
Fixes CID733706
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 23:03:07 +02:00
Clément Bœsch
6078bd8024 lavf/showspectrum: fix unaligned rdft data. 2012-10-27 22:59:05 +02:00
Piotr Bandurski
2ef26b5e73 riff: support 0xa100 TwoCC
fixes decoding of file "4790b7f1c44f98e35f3b806468fa615f5930a5b3.wav" from ticket #1856
(0xa100 = Comverse Infosys Ltd. G723 1)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 21:41:59 +02:00
Michael Niedermayer
6c8d259ab1 msmpeg4dec: fix init code to not fail when called from 2 threads at the same time.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 21:39:06 +02:00
Michael Niedermayer
f44be0da94 ff_h263_decode_init_vlc: fix order of operations to avoid failure with 2 threads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 21:31:49 +02:00
Mans Rullgard
4cbae57cef assdec: fix qsort() callback signature
This changes the event_cmp() function to the correct signature,
avoiding an ugly cast.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 18:26:28 +01:00
Mans Rullgard
4cd217c065 configure: detect sparc64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 18:24:55 +01:00
Mans Rullgard
4471a24207 vp8: fix memset() crossing array boundary
Indexing across array boundaries is not allowed by C99.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 17:02:46 +01:00
Mans Rullgard
c4cccc8d3f h264: fix invalid pointer arithmetic
Subtracting a (positive) value from the address of an array violates
C99 section 6.5.6:

  If both the pointer operand and the result point to elements of the
  same array object, or one past the last element of the array object,
  the evaluation shall not produce an overflow; otherwise, the
  behavior is undefined.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 17:02:46 +01:00
Mans Rullgard
50be207759 amrwbdec: fix invalid pointer arithmetic
Subtracting a (positive) value from the address of an array violates
C99 section 6.5.6:

  If both the pointer operand and the result point to elements of the
  same array object, or one past the last element of the array object,
  the evaluation shall not produce an overflow; otherwise, the
  behavior is undefined.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 17:02:45 +01:00
Reimar Döffinger
5f9cbad603 Port MPlayer fixes for coverity issues in libmpcodecs.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2012-10-27 17:52:41 +02:00
Michael Niedermayer
425c30ddae sws: loose the minimum dimension checks
A few quick tests show no fundamental problem with such diemnsions

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 16:54:31 +02:00
Michael Niedermayer
733f85b7ae sws: improve error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 16:54:05 +02:00
Michael Niedermayer
7de2196029 sws: fix extreem downscaling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 16:29:24 +02:00
Michael Niedermayer
95760b33e7 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: fix tests for 2-arg math functions
  doc: git-howto: Clarify comment about pushing series of commits
  ivi_common: Drop unused function parameter from decode_band()
  cook: Remove some silly Doxygen comments
  cook: Remove senseless maybe_reformat_buffer32() function
  cook: cosmetics: Better names for joint_decode() function parameters
  cook: cosmetics: Better name for ccpl COOKSubpacket member
  doxygen: Add av_alloc_size to list of predefined macros
  doxygen: Drop some pointless entries from PREDEFINED macros list
  h263: avoid memcpys over array bound in motion vector caching for obmc

Conflicts:
	configure
	doc/git-howto.texi
	libavcodec/cook.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 15:02:35 +02:00
Mans Rullgard
4521645b1a avio: fix pointer type mismatches in avio_enum_protocols()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:43:44 +01:00
Mans Rullgard
cc64ec570c avserver: use socklen_t where appropriate
Various socket functions expect a pointer to socklen_t which is not
necessarily int.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:11:49 +01:00
Mans Rullgard
be2efe0c7b udp: use socklen_t where appropriate
getsockname() takes a pointer to socklen_t which is not necessarily
int.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:11:46 +01:00
Mans Rullgard
9efbfe57e0 network: use HAVE_THREADS instead of local hack
HAVE_THREADS is set in config.h if pthreads or w32threads is
available, which presumably the proper condition here.

Also fixes undefined behaviour in preprocessor directives.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:11:17 +01:00
Mans Rullgard
67a68dcec2 af_channelmap: remove stray enum declaration
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:06:43 +01:00
Mans Rullgard
6b776c61da buffersink: remove stray semicolon after function definition
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:06:27 +01:00
Xidorn Quan
c25e9292ba fix a compiling error with llvm-gcc
Move some #include in vda.h down to prevent libavutil headers
from interfering with system headers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 04:32:40 +02:00
Michael Niedermayer
1909dbf11d ffmpeg: use av_rescale_delta() for audio stream copy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 04:01:31 +02:00
Michael Niedermayer
2bcbdd8456 lavu: add more doxy to av_rescale_delta
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 02:58:09 +02:00
Michael Bradshaw
c430cb49fd Update my email address
Signed-off-by: Michael Bradshaw <mjbshaw@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 02:06:21 +02:00
Michael Niedermayer
e823e73677 sws_getGaussianVec: check variance and quality
Found-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 01:25:00 +02:00
Michael Niedermayer
fe573d1a9b sws_allocVec: check length validity
Found-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 01:24:51 +02:00
Michael Niedermayer
a9d97e1b0a ffmpeg: use av_rescale_delta() on the audio filter input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 00:26:35 +02:00
Michael Niedermayer
8766ad9eb1 lavu: add av_rescale_delta()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 00:26:35 +02:00
Michael Niedermayer
03e44bcb3f ffmpeg: trivial simplification
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 00:26:35 +02:00
Michael Niedermayer
90d4b07063 mathemathics: update copyright years
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 00:26:35 +02:00
Michael Niedermayer
ae52eb7fc7 lavu: add av_clip64()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-27 00:26:35 +02:00
Mans Rullgard
1aa07aa21c configure: fix tests for 2-arg math functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-26 22:50:42 +01:00
Clément Bœsch
5f0105b820 lavf/srtenc: allow zero duration events.
This is useful when you want to remux events with zero (or too small)
durations.
2012-10-26 21:48:27 +02:00
Clément Bœsch
eb36ee1ee1 lavc/srtenc: fix invalid read in case of SubRip.
Regression since 6057de19b. The ptr-2 is used to eat the \r\n and add
the position information on the timing line. This can't be done in case
of SubRip where the timing isn't present in the payload.

Note that we can't use yet the side data to transmit the position
information since the encode subtitles API is still using buffer+size
instead AVPacket as input.
2012-10-26 21:48:27 +02:00
Diego Biurrun
ca7f59119b doc: git-howto: Clarify comment about pushing series of commits 2012-10-26 18:28:38 +02:00
Diego Biurrun
87cdd7c694 ivi_common: Drop unused function parameter from decode_band() 2012-10-26 18:28:38 +02:00
Diego Biurrun
707f58f515 cook: Remove some silly Doxygen comments 2012-10-26 18:28:38 +02:00
Diego Biurrun
8a61ba0e81 cook: Remove senseless maybe_reformat_buffer32() function 2012-10-26 18:28:38 +02:00
Diego Biurrun
f23b4a0682 cook: cosmetics: Better names for joint_decode() function parameters 2012-10-26 18:28:38 +02:00
Diego Biurrun
20015379a4 cook: cosmetics: Better name for ccpl COOKSubpacket member 2012-10-26 18:28:38 +02:00
Diego Biurrun
13bbefd57e doxygen: Add av_alloc_size to list of predefined macros
This avoids Doxygen believing the attribute is the function name.
2012-10-26 18:28:38 +02:00
Diego Biurrun
74e742d6ad doxygen: Drop some pointless entries from PREDEFINED macros list 2012-10-26 18:28:38 +02:00
Michael Niedermayer
5b45b66220 cws2fws: check fstat return code.
Fixes CID733720
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 18:24:50 +02:00
Michael Niedermayer
86aba86b1b cws2fws: check lseek() return
Fixes: CID733721
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 18:24:50 +02:00
Michael Niedermayer
59eae88429 cws2fws: check inflateInit return value
Fixes CID733722
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 18:24:50 +02:00
Janne Grunau
154ff81870 h263: avoid memcpys over array bound in motion vector caching for obmc
Fixes CID602232.
2012-10-26 17:38:07 +02:00
Paul B Mahol
adc61d68b0 bit: check av_new_packet() return value
Fixes CID703626.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-26 15:34:25 +00:00
Michael Niedermayer
ca28cb5f83 examples: fix doxy so they appear on the example page
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 16:32:32 +02:00
Michael Niedermayer
c01a462cda rmdec: fix null derefercne
Fixes CID733714
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 16:18:09 +02:00
Michael Niedermayer
1bf5071104 rmdec: use av_assert for audio_pkt_cnt
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 16:13:16 +02:00
Michael Niedermayer
9aa630a520 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: sanitise sparc vis check
  configure: recognise more sparc variants as --cpu argument
  build: Include HEADERS-yes in the HEADERS variable
  pcm: change references to raw to pcm
  ffv1: set the range coder state in decode_slice_header
  pcmdec: change default of channels parameter to 1

Conflicts:
	libavformat/pcmdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 15:20:48 +02:00
Mans Rullgard
6aa93689ab configure: sanitise sparc vis check
It is wrong to force -mcpu=ultrasparc when checking for vis.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-26 12:29:03 +01:00
Michael Kostylev
eadfb0560a configure: recognise more sparc variants as --cpu argument
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-26 12:29:03 +01:00
Paul B Mahol
7fe6f6e2b1 caf muxer: write metadata
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-26 03:12:45 +00:00
Michael Niedermayer
507f2940cc Merge commit '1b891d17c531e8a63c2974aab4bf997ce70746f3'
* commit '1b891d17c531e8a63c2974aab4bf997ce70746f3':
  avconv: fix bitrate report when writing to /dev/null
  avfilter: fix graphparser memleaks on error paths
  rawdec: remove ff_raw_read_header
  pcmdec: remove dependency from rawdec
  g722: refactor out of rawdec.c
  rawvideo: use a specific read_header

Conflicts:
	ffmpeg.c
	libavformat/Makefile
	libavformat/rawdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 14:24:57 +02:00
Michael Niedermayer
9f36ec6aa9 aacps: fix order of operands of ipdopd_reset().
With the current implementation this is purely cosmetic

Fixes CID732285
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 03:24:13 +02:00
Michael Niedermayer
0018aa9013 aacps: loose self assignment
Fixes CID604123
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 03:24:13 +02:00
Michael Niedermayer
f69f9b3876 aacenc: replace scale factor warning by assert
The code would crash after printing the warning

Fixes CID717903, CID717904
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 03:24:13 +02:00
Matthieu Bouron
cfb1c3c9f0 aiffdec: read ID3 attached pictures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-26 01:52:40 +02:00
Paul B Mahol
73f9d2e887 cafenc: make .long_name match demuxer
While here reindent .codec_tag .

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-25 23:04:13 +00:00
Stefano Sabatini
15f52e50fe tools: add ffescape utility 2012-10-25 23:56:16 +02:00
Paul B Mahol
04a585f054 fraps: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-25 21:51:45 +00:00
Paul B Mahol
43f662d9bf lvfdec: cosmetics: fix identation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-25 20:57:40 +00:00
Clément Bœsch
13d26716fb lavfi/showspectrum: add sliding mode. 2012-10-25 22:20:22 +02:00
Stefano Sabatini
b19bfd6c9f lavd/lavfi: fix leak in case of failure
Jump to the common release code in case of failure.
2012-10-25 21:35:40 +02:00
Nicolas George
48ec8b25a7 lavfi/af_volumedetect: print stats in uninit().
If the stats are printed when request_frame on the input
returns EOF, then they are never printed if the filter is
not flushed, in particular when using the -t ffmpeg option.

Fix trac ticket #1727.
2012-10-25 20:16:09 +02:00
Alexis Ballier
ce028ab9a7 Restore installation of libavutil/lzo.h after 2a91ada828
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 20:00:19 +02:00
Nicolas George
77a72d3485 lavfi/vf_fps: allow to set the rounding method.
By default, fps selects frames near PTS 0, 0.5, 1.5, 2.5, etc.
With round=down, it selects the frames near PTS 0, 1, 2, 3, etc.
2012-10-25 19:42:44 +02:00
Martin Ettl
cc72d52dc1 ffserver: fix printf argument type 2012-10-25 16:35:57 +00:00
Martin Storsjö
121604b024 build: Include HEADERS-yes in the HEADERS variable
This makes sure the previously always installed public header
lzo.h is installed if the LZO functionality is enabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-25 18:36:11 +03:00
Luca Barbato
254056c4ab pcm: change references to raw to pcm 2012-10-25 17:08:58 +02:00
Paul B Mahol
d8245c3bcd dsicinav: return proper error code in case of malloc failure
Fixes null pointer dereference.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-25 13:46:19 +00:00
Paul B Mahol
296f9c2b3b dsicinav: return meaningful error code
While here remove redundant references in error message.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-25 13:10:23 +00:00
Janne Grunau
1b891d17c5 avconv: fix bitrate report when writing to /dev/null
avio_size() reports the filesize which returns 0 for /dev/null.
avio_tell() reports the current position.

Also handle errors from avio_tell().
2012-10-25 15:00:15 +02:00
Janne Grunau
285b706b55 avfilter: fix graphparser memleaks on error paths
Fixes CID700635, CID700636 and CID732274.
2012-10-25 15:00:15 +02:00
Luca Barbato
587874ef1c rawdec: remove ff_raw_read_header
It is not used anymore and is a kludge.
2012-10-25 14:05:13 +02:00
Luca Barbato
2ef4d586d6 pcmdec: remove dependency from rawdec
The code shared is not actually shared with anything else.
2012-10-25 14:05:13 +02:00
Luca Barbato
5f0e161dd6 g722: refactor out of rawdec.c 2012-10-25 14:05:05 +02:00
Luca Barbato
42c26a4864 rawvideo: use a specific read_header
ff_raw_read_header is used only for this demuxer for video.
2012-10-25 14:04:18 +02:00
Tomas Härdin
5c108092a3 mxfenc: Write MultipleDescriptor ref in Preface
Reviewed-by: Matthieu Bouron <matthieu.bouron@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 13:56:24 +02:00
Michael Niedermayer
da4e4d65f4 aacdec: reorder multiuplications to make code safer against too large input values.
Fixes CID700697
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 13:45:26 +02:00
Michael Niedermayer
aa604e8e33 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avutil: Make LZO decoder code configure-time selectable
  avutil: Move memcpy_backptr() to mem.c
  configure: detect parisc64 automatically
  configure: detect ppc64 automatically
  configure: detect mips64 automatically
  configure: generalise 64-bit test
  smoothstreamingenc: Don't assume streams start from timestamp 0

Conflicts:
	configure
	libavutil/Makefile
	libavutil/lzo.c
	libavutil/lzo.h
	libavutil/mem.c
	libavutil/mem.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 13:15:58 +02:00
Diego Biurrun
2a91ada828 avutil: Make LZO decoder code configure-time selectable 2012-10-25 11:49:49 +02:00
Diego Biurrun
5bac2d0c30 avutil: Move memcpy_backptr() to mem.c
The function is used elsewhere and does not belong with the LZO code.
2012-10-25 11:36:57 +02:00
Michael Niedermayer
d312ffdd79 mpegvideo: fix lowres on field pictures
Fixes Ticket1846

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 04:03:58 +02:00
Michael Niedermayer
1a535fc477 fate: reenable some recently lost audio tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 03:13:32 +02:00
Michael Niedermayer
fa48da1ee9 ffmpeg: fix null ptr deref in psnr printing code
Fixes CID205005
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 01:38:15 +02:00
Michael Niedermayer
a1af505d66 roqaudioenc: remove dead code
Fixes CID703669
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 01:38:15 +02:00
Michael Niedermayer
4a2297294f qt-faststart: check return of ftello()
Fixes CID739863
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 01:32:45 +02:00
Michael Niedermayer
ed68085104 asfdec: fixed signedness in comparission
Fixes CID739864
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 00:35:55 +02:00
Michael Niedermayer
0008e0d632 cmdutils: fix unclosed file on error
Fixes CID739865
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 00:32:34 +02:00
Michael Niedermayer
58c2c17f1d mov_probe: use correct variable
Fixes CID739867
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 00:24:25 +02:00
Michael Niedermayer
aa47821344 cmdutils: remove writes in never read variable
Fixes CID739868
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-25 00:24:25 +02:00
Clément Bœsch
2ecf9492ff lavf/srtenc: set codec to subrip by default.
We don't have a text encoder yet, so this commit makes automatic
encoding working with srt output.
2012-10-25 00:17:56 +02:00
Clément Bœsch
fd090a5d09 lavf/srtenc: simplify timing printing. 2012-10-25 00:17:46 +02:00
Clément Bœsch
c27b3816e4 srt: make the demuxer output SubRip packets.
The SRT format should never have outputted CODEC_ID_SRT packets in the
first place: SRT is a subtitle format containing SubRip text markup
events. The timing information is part of the format, not the codec, and
thus CODEC_ID_SRT should not exist.

Creating packets with the timing information within the payload only
leads to problem (such as remuxing with timing alteration not working),
especially when the SubRip markup is being used in container like
Matroska in addition to this standalone SRT format.

The main reason the timing line was included in those CODEC_ID_SRT
packets is likely because it contained extra information (the event
position) the codec actually needs. This issue is solved by using the
AV_PKT_DATA_SUBTITLE_POSITION side data type.
2012-10-25 00:09:36 +02:00
Clément Bœsch
4d46fd0b3e lavc: add AV_PKT_DATA_SUBTITLE_POSITION side data type.
This commit introduces a new packet side data type for the subtitle
position information. This is meant to be used by the SRT format where
that information is stored along with the timing, which is not part of
the subrip packets.
2012-10-24 23:58:18 +02:00
Clément Bœsch
60d9ee1b75 lavc/utils: make sub decode consistent with A/V.
This allows side data to be transmitted properly with subtitles.
2012-10-24 23:56:43 +02:00
Clément Bœsch
a96b39de62 lavf/srtdec: simplify start/end computation.
Also fix potential overflow (CID733778)
2012-10-24 23:56:43 +02:00
Stefano Sabatini
a945607a78 ffprobe: add an array of section print buffers to the WriterContext
Allow to factorize buffers initialization/release, for all the writers
which use it. Simplify.
2012-10-24 23:40:21 +02:00
Stefano Sabatini
a161def1e4 Doxyfile: update examples path and patterns 2012-10-24 23:40:15 +02:00
Stefano Sabatini
ce875a613a 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.
2012-10-24 23:33:47 +02:00
Michael Niedermayer
f68ff2e0e7 fourcc2pixfmt: fix compilation
If someone finds a cleaner fix, dont hesitate to revert this!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 22:25:43 +02:00
Michael Niedermayer
95d07f33dc libavfilter: include needed header for AVDictionary
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 22:24:54 +02:00
Clément Bœsch
c01d1d4ddf http: add -content_type user option. 2012-10-24 22:15:31 +02:00
Paul B Mahol
6ddb03caf0 pgmyuvenc: do not create files which are not supported
It is possible to support files with odd width and/or height
if real width and height are stored in header.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-24 18:38:31 +00:00
Paul B Mahol
e12cfd044c lavf: const correctness for avformat_new_stream
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-24 17:55:35 +00:00
Tomas Härdin
e3ba817b95 mxfenc: Fix possible integer overflows
None of these are likely unless the user is writing a file with two billion
streams or a duration of around two months.

This fixes CIDs 700568, 700569, 700570, 700571, 700572 and 700573.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 17:46:27 +02:00
Tomas Härdin
fbb39f44f1 mxfdec: Fix potential leak in mxf_read_local_tags()
This fixes CID 733800.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 17:45:49 +02:00
Tomas Härdin
1d22d269f5 mxfdec: Fix a potential DoS vector in mxf_read_pixel_layout()
There's a a potential DoS problem in this function. Say an MXF file is
created with a PixelLayout with a long run of non-zeroes. Such a file could be
sent quickly (packed) over the net and would unpack quite fast. mxfdec would
then read it byte-by-byte, which would take considerable time.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 17:44:35 +02:00
Tomas Härdin
187630b244 mxfdec: Fix CID 732262
Coverity thinks ofs can end up 15, thus writing past the end of layout[]. This
is incorrect since it's always incremented by 2. Checking ofs <= 14 makes
Coverity happy and doesn't hurt.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 17:44:35 +02:00
Mans Rullgard
a6e9d64977 configure: detect parisc64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
56203596ae configure: detect ppc64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
2acda282eb configure: detect mips64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
d4c99513f4 configure: generalise 64-bit test
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Stefano Sabatini
55c77a0ca3 doc/filters: escape special Texinfo character @ in overlay example 2012-10-24 17:22:00 +02:00
Stefano Sabatini
51467ee868 doc/filters: remove unnecessary and inconsistent double ',' escaping 2012-10-24 17:21:25 +02:00
Michael Niedermayer
7d0ca5b7e4 doxygen: disable header/footer/stylesheet
They dont work at all and trash the output totally
also they are unmaintained -> that is if you want to maintain them
contact us !

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 17:14:50 +02:00
Michael Niedermayer
8a34b85fa8 avio: detect implicit truncation by assert in avio_w*
This check is somewhat more lenient as would be ideal because we dont
know if the input is signed or unsigned

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 15:42:00 +02:00
Michael Niedermayer
a3fb3a670e avio: avoid implicit truncation in avio_w*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 15:27:03 +02:00
Michael Niedermayer
e377b50b2d matroskaenc: avoid implicit truncation in avio_w*
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 15:27:01 +02:00
Michael Niedermayer
d0ab71ed11 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  asfdec: cosmetics, reformat ff_asf_parse_packet()
  g.723.1: add missing CODEC_CAP_DR1
  avconv: remove now unneeded calls to avcodec_get_frame_defaults().
  lavc: initialize output AVFrame before decoding.

Conflicts:
	libavformat/asfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 14:26:13 +02:00
Michael Niedermayer
719fde47ca Merge commit 'c68317ebbe4915035df0b08c23eea7a0b80ab881'
* commit 'c68317ebbe4915035df0b08c23eea7a0b80ab881':
  lavc: fix documentation for AVCodecContext.delay
  atrac3: return an error if extradata_size is not a specific known size
  lavc: use the correct API version guard macro for avcodec_encode_audio()
  Move Doxyfile into the doc/ subdirectory
  doxygen: Build Doxygen documentation in the doc/ subdirectory
  dfa: use av_memcpy_backptr() where previously impossible
  av_memcpy_backptr: Drop no longer necessary malloc padding

Conflicts:
	.gitignore
	libavcodec/avcodec.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 14:18:17 +02:00
Michael Niedermayer
5cf794e0c1 Merge commit 'd82f188504410fdfa446c5682c128c31bb5851a4'
* commit 'd82f188504410fdfa446c5682c128c31bb5851a4':
  Remove need for padding in av_memcpy_backptr()

Conflicts:
	libavutil/lzo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 14:10:44 +02:00
Michael Niedermayer
5555d2075a Merge commit 'ceb754d041f5f6327fd9195a5f43575af9516daa'
* commit 'ceb754d041f5f6327fd9195a5f43575af9516daa':
  lzo: Use AV_COPY*U macros where appropriate
  prepare 9_beta2 release
  dsputil: Replace AV_WNxx(AV_RNxx()) combinations by AV_COPYxxU
  intreadwrite: Add AV_COPYxxU macros for copying to/from unaligned addresses
  dxtory: Replace AV_WN16A(AV_RN16A()) combination by AV_COPY16
  mp3: properly forward mp_decode_frame errors

Conflicts:
	RELEASE
	libavcodec/mpegaudiodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 14:01:36 +02:00
Martin Storsjö
c44cef978b smoothstreamingenc: Don't assume streams start from timestamp 0
Also use dts instead of pts for deciding where to split fragments.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-24 14:46:08 +03:00
Michael Niedermayer
f3b8096bc0 Merge commit '0c03cc68386443f1e96ab6fb358220faf67cd5ff'
* commit '0c03cc68386443f1e96ab6fb358220faf67cd5ff':
  mp3: exit on parsing error in mp_decode_frame
  rtmppkt: Avoid unescaped backslash in Doxygen comment
  fate-lavfi: replace sed/grep/cut combos with awk
  build: Plan 9 support

Conflicts:
	configure
	tests/lavfi-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 13:42:58 +02:00
Michael Niedermayer
42ee9f3981 build: fix detection of math functions with 2 parameters.
The code from libav seems to have been entirely untested.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 13:15:42 +02:00
Michael Niedermayer
2dbc93455c Merge commit '80521c1997a23e148edf89e11b939ab8646297ca'
* commit '80521c1997a23e148edf89e11b939ab8646297ca':
  build: allow targets to specify extra objects to link with executables
  swscale: avoid pointless use of compound literals
  libm: add fallbacks for various single-precision functions
  network: use getservbyport() only if available
  network: add fallbacks for INADDR_LOOPBACK and INET_ADDRSTRLEN
  Include sys/time.h before sys/resource.h

Conflicts:
	Makefile
	configure
	libavutil/libm.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 12:53:26 +02:00
Anton Khirnov
292a08cbab asfdec: cosmetics, reformat ff_asf_parse_packet() 2012-10-24 08:46:45 +02:00
Anton Khirnov
5a9567631a g.723.1: add missing CODEC_CAP_DR1 2012-10-24 08:46:45 +02:00
Anton Khirnov
8e84f2055c avconv: remove now unneeded calls to avcodec_get_frame_defaults(). 2012-10-24 08:46:45 +02:00
Anton Khirnov
1bc64c2814 lavc: initialize output AVFrame before decoding.
Avoids memleaks with audio when extended_data is nontrivial and the user
doesn't reset the frame.
Shouldn't have any effect for video for now, but might be useful in the
future.
2012-10-24 08:46:45 +02:00
Michael Niedermayer
cccb45751e yuv2rgb: fix integer overflow in fill_gv_table()
Fixes CID703747
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 01:24:26 +02:00
Michael Niedermayer
a494792961 yuv2rgb: fix integer overflow in fill_table
Fixes CID703748
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 01:22:56 +02:00
Michael Niedermayer
6c87b2be72 swscale_unscaled: remove unused variables
Fixes CID739472
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 01:09:14 +02:00
Michael Niedermayer
3556e7ce73 mpegvideo enc: choose VBV buffer size for mpeg4 when none is specified instead of failing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 00:40:18 +02:00
Michael Niedermayer
1856162caa mpegvideo enc: choose VBV buffer size for mpeg1/2 when none is specified instead of failing
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-24 00:40:18 +02:00
Stefano Sabatini
33c4535db7 examples/decoding_encoding: add and use the decode_write_frame function
Allow to factorize code in video_decode_example(), simplify.
2012-10-24 00:29:37 +02:00
Stefano Sabatini
4a227a706d lavc/utils: fix a few grammar/style nits in log messages
In avcodec_open2(), apply consistent casing and avoid "or" conjunction at
the beginning of a sentence, in the messages issued in case of
experimental codec usage.
2012-10-24 00:29:37 +02:00
Stefano Sabatini
5ffadec30a lavc/utils: propagate or return meaningful error codes in avcodec_open2() 2012-10-24 00:29:37 +02:00
Carl Eugen Hoyos
2fdc6f355c Do not detect mov with maximum score if the atom size is too small.
Fixes mpegts-in-mov, ticket #987 / issue 2223.
2012-10-23 22:41:15 +02:00
Stefano Sabatini
8b03cd3cd7 lavd/lavfi: add graph_file option
Allow to specify a filename where to put the filtergraph description.

This is useful to override limitations or glitches of particular shell
environments, and allows a level of indirection for specifying
filtergraphs.
2012-10-23 22:08:55 +02:00
Stefano Sabatini
bd6240e7e9 lavfi/sendcmd: move buf init() variable to internal scope where it is used 2012-10-23 22:08:55 +02:00
Stefano Sabatini
c7065f1f89 lavfi/sendcmd: release file in case of failed allocation
Avoid hanging file.
2012-10-23 22:08:55 +02:00
Isaac Dooley
469a65b150 x11: Fix x11grab BadCursor
Fixes Ticket1738

Based-on: A fix found in a perl module (http://ffmpeg.org/pipermail/ffmpeg-user/2012-August/008804.html)
Reviewed-by: Clemens Fruhwirth <clemens@endorphin.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 21:49:01 +02:00
Justin Ruggles
c68317ebbe lavc: fix documentation for AVCodecContext.delay 2012-10-23 14:35:27 -04:00
Justin Ruggles
44d854a518 atrac3: return an error if extradata_size is not a specific known size
Also fixes 3 compiler warnings about using uninitialized variables.
2012-10-23 14:35:27 -04:00
Justin Ruggles
a5ef830b12 lavc: use the correct API version guard macro for avcodec_encode_audio() 2012-10-23 14:35:27 -04:00
Diego Biurrun
5e28e97433 Move Doxyfile into the doc/ subdirectory 2012-10-23 20:25:41 +02:00
Diego Biurrun
d7a39b3340 doxygen: Build Doxygen documentation in the doc/ subdirectory 2012-10-23 20:25:30 +02:00
Mans Rullgard
d82f188504 Remove need for padding in av_memcpy_backptr()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 18:57:24 +01:00
Mans Rullgard
a153e45b95 dfa: use av_memcpy_backptr() where previously impossible
Since the requirement for output padding has been lifted, we can
use av_memcpy_backptr() here as well.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 18:57:24 +01:00
Diego Biurrun
e831b3b852 av_memcpy_backptr: Drop no longer necessary malloc padding
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 18:57:24 +01:00
Paul B Mahol
e2820d99f2 pnmdec: use more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-23 17:25:38 +00:00
Diego Biurrun
ceb754d041 lzo: Use AV_COPY*U macros where appropriate 2012-10-23 18:45:50 +02:00
Reinhard Tartler
a9f0dce283 prepare 9_beta2 release 2012-10-23 18:30:36 +02:00
Michael Niedermayer
5442c6cce3 lavf: fix duration estimation for multi program TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 18:11:26 +02:00
Michael Niedermayer
31cdf6002a lavf: increase retries to guess duration from pts by 1
This fixes finding the duration for one TS file

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 17:31:31 +02:00
Diego Biurrun
330b864cda dsputil: Replace AV_WNxx(AV_RNxx()) combinations by AV_COPYxxU 2012-10-23 16:54:17 +02:00
Diego Biurrun
af6dd6de08 intreadwrite: Add AV_COPYxxU macros for copying to/from unaligned addresses 2012-10-23 16:54:08 +02:00
Diego Biurrun
aa91fe8091 dxtory: Replace AV_WN16A(AV_RN16A()) combination by AV_COPY16 2012-10-23 16:53:42 +02:00
Michael Niedermayer
d8f27eceaa asfdec: ignore stored duration for truncated files
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 16:11:38 +02:00
Peter Ross
8469fc17e2 wtvdec: display warning for encrypted wtv files (instead of 'unsupported chunk' messages)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 15:26:57 +02:00
Michael Niedermayer
4d54ecf4b8 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: check that dependencies actually exist
  fate: fix ENCMUX macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 15:12:20 +02:00
Michael Niedermayer
79ec524ff5 Merge commit 'ec444c84cfd30ef34a4e7b4ec7ee77d7e5250d25'
* commit 'ec444c84cfd30ef34a4e7b4ec7ee77d7e5250d25':
  mpegaudiodec: Fix buffer handling on random access
  mpegaudio: Refactor mp3on4 flush function
  fate: Add dependencies for audio tests
  fate: cosmetics: Group idct8x8 test together with all other libavcodec tests
  fate: More fine-grained dependencies for libavcodec test programs

Conflicts:
	tests/fate/audio.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 15:08:55 +02:00
Michael Niedermayer
35ce42e070 Merge commit '8b8899ac3233b4f7af83ded0dc032fad8902d714'
* commit '8b8899ac3233b4f7af83ded0dc032fad8902d714':
  fate: Declare avcodec/avformat deps in the respective Makefile snippets
  fate: Add dependencies for WMA and WavPack tests
  Improve wording and spelling of av_log_missing_feature messages.
  lavu: remove disabled FF_API_AV_FIFO_PEEK cruft

Conflicts:
	libavcodec/aacsbr.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 15:00:27 +02:00
Michael Niedermayer
d0ac26a264 Merge commit 'c692957c4edd119920cd7f2121628dd183589e6a'
* commit 'c692957c4edd119920cd7f2121628dd183589e6a':
  lavu: remove disabled avoptions cruft
  lavu: remove disabled FF_API_GET_BITS_PER_SAMPLE_FMT cruft

Conflicts:
	libavutil/opt.c
	libavutil/opt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 14:50:31 +02:00
Luca Barbato
0c03cc6838 mp3: exit on parsing error in mp_decode_frame
Properly forward mp_decode_layer3 errors, mp_decode_layer1 and
mp_decode_layer2 do not return errors.

Based on a patch by Michael Niedermayer.
2012-10-23 14:22:16 +02:00
Luca Barbato
9ab0874ea8 mp3: properly forward mp_decode_frame errors
The function can return either a parsing error or a memory management
error.
2012-10-23 14:22:16 +02:00
Diego Biurrun
c2dac8ac7a rtmppkt: Avoid unescaped backslash in Doxygen comment 2012-10-23 13:36:58 +02:00
Michael Niedermayer
a65bc2712d Merge commit '468ea9d5b14f92fe61f47f034e67066f65163f5f'
* commit '468ea9d5b14f92fe61f47f034e67066f65163f5f':
  Revert "avutil: make some tables visible again"
  Revert "avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility"

Conflicts:
	libavcodec/sqrt_tab.c
	libavutil/libavutil.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 13:34:42 +02:00
Michael Niedermayer
c2a25e141e Merge commit 'add3a6902ea4d459f36655656a1f8daa409118a7'
* commit 'add3a6902ea4d459f36655656a1f8daa409118a7':
  lavu: bump major to 52

Conflicts:
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 13:17:47 +02:00
Michael Niedermayer
af3fe43d84 Merge commit '2b8dd371e4d276ca0d342e82b8b4cc281be0630a'
* commit '2b8dd371e4d276ca0d342e82b8b4cc281be0630a':
  lavu: postpone recent deprecations until the next major bump
  APIchanges: update lavr bump date
  avconv: only apply presets when we have an encoder.
  atrac3: replace a calculation with FFALIGN()
  atrac3: remove unused ATRAC3Context field, sample_rate
  atrac3: use sizeof(variable) instead of sizeof(type)
  atrac3: simplify MDCT window calculation

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 13:05:52 +02:00
Mans Rullgard
2a222a7255 fate-lavfi: replace sed/grep/cut combos with awk
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:01:18 +01:00
Mans Rullgard
4ebc6a7410 build: Plan 9 support
This adds support for building on Plan 9 x86-32.  The compat/plan9
directory contains these items:

- replacements for the 'head' and 'printf' shell commands
- wrapper for main() to disable FPU exceptions

Larger required changes to the system are described in the
documentation.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:01:18 +01:00
Mans Rullgard
80521c1997 build: allow targets to specify extra objects to link with executables
This allows targets to include special objects when linking
executables without including them in (shared) libraries.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:22 +01:00
Mans Rullgard
a805cefd8b swscale: avoid pointless use of compound literals
Some compilers (e.g. old gcc) have trouble with these.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Mans Rullgard
fab0a8b2c6 libm: add fallbacks for various single-precision functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Mans Rullgard
c3e73100af network: use getservbyport() only if available
The absence of this function will only give a less informative
string back from our fallback implementation of getnameinfo().

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Mans Rullgard
da0d0ae9a4 network: add fallbacks for INADDR_LOOPBACK and INET_ADDRSTRLEN
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Mans Rullgard
3f65eff408 Include sys/time.h before sys/resource.h
Some systems require sys/time.h being explicitly included before
sys/resource.h.  The configure check already does this.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Michael Niedermayer
7bc6631dd0 Merge commit '5d1007f74dd496d54b932242004382f44e3b22b4'
* commit '5d1007f74dd496d54b932242004382f44e3b22b4':
  atrac3: initialize static tables in AVCodec.init_static_data()
  atrac3: separate window initialization from IMDCT initialization
  atrac3: move the 'frame_factor' field from ATRAC3Context to where it is used
  atrac3: remove unused ATRAC3Context field, bit_rate

Conflicts:
	libavcodec/atrac3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 12:51:13 +02:00
Michael Niedermayer
8748472f39 Merge commit 'a2664c91fba15a1307f676ffad511f8f86fb3a27'
* commit 'a2664c91fba15a1307f676ffad511f8f86fb3a27':
  atrac3: move the 'samples_per_frame' field from ATRAC3Context to where it is used
  atrac3: remove unused ATRAC3Context field, samples_per_channel
  atrac3: use AVCodecContext.block_align instead of keeping a private copy
  atrac3: move the 'delay' field from ATRAC3Context to where it is used
  atrac3: move the 'version' field from ATRAC3Context to where it is used

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 12:41:08 +02:00
Michael Niedermayer
dcb0d1193a Merge commit '5ac673b5531d846b79a3d77e3e932e0cb1234c45'
* commit '5ac673b5531d846b79a3d77e3e932e0cb1234c45':
  atrac3: use AVCodecContext.channels instead of keeping a private copy
  atrac3: simplify some loop indexing
  atrac3: cosmetics: pretty-printing and renaming
  pcm: define AVCodec instances only for enabled codecs
  libxvid: remove useless doxy comments.
  lavc: remove stats_out from the options table.

Conflicts:
	libavcodec/atrac3.c
	libavcodec/pcm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 12:36:16 +02:00
Mans Rullgard
a1f6ad69c7 fate: check that dependencies actually exist
This causes make to exit with an error message if a nonexistent
dependency is specified rather than silently dropping the test.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 11:12:24 +01:00
Mans Rullgard
6f9018fc5e fate: fix ENCMUX macro
This matches how it is actually being called.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 11:12:24 +01:00
Michael Niedermayer
ec444c84cf mpegaudiodec: Fix buffer handling on random access 2012-10-23 10:52:25 +02:00
Diego Biurrun
2f17f265ed mpegaudio: Refactor mp3on4 flush function 2012-10-23 10:52:25 +02:00
Diego Biurrun
88bdec03b9 fate: Add dependencies for audio tests 2012-10-23 10:52:25 +02:00
Diego Biurrun
71f3eb4536 fate: cosmetics: Group idct8x8 test together with all other libavcodec tests 2012-10-23 10:52:15 +02:00
Diego Biurrun
8b8899ac32 fate: Declare avcodec/avformat deps in the respective Makefile snippets 2012-10-23 10:28:40 +02:00
Diego Biurrun
7d420a4294 fate: More fine-grained dependencies for libavcodec test programs 2012-10-23 10:28:40 +02:00
Diego Biurrun
e273a1a542 fate: Add dependencies for WMA and WavPack tests 2012-10-23 10:28:40 +02:00
Diego Biurrun
8f4c414df6 Improve wording and spelling of av_log_missing_feature messages. 2012-10-23 10:28:40 +02:00
Anton Khirnov
c692957c4e lavu: remove disabled avoptions cruft 2012-10-23 07:33:05 +02:00
Anton Khirnov
468ea9d5b1 Revert "avutil: make some tables visible again"
This reverts commit def8c94699.

After the major bump this is no longer necessary.
2012-10-23 07:33:05 +02:00
Anton Khirnov
add3a6902e lavu: bump major to 52
In addition to the recent tables mess, the AVOption defaults behavior
changed, so an old lavc used with a new lavu will get completely messed
up defaults.
2012-10-23 07:33:05 +02:00
Anton Khirnov
2b8dd371e4 lavu: postpone recent deprecations until the next major bump 2012-10-23 07:33:05 +02:00
Anton Khirnov
00ed7f5958 lavu: remove disabled FF_API_AV_FIFO_PEEK cruft 2012-10-23 07:33:05 +02:00
Anton Khirnov
8207c67a24 lavu: remove disabled FF_API_GET_BITS_PER_SAMPLE_FMT cruft 2012-10-23 07:33:05 +02:00
Anton Khirnov
c6b25d1d5e Revert "avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility"
This reverts commit d15c21e5fa.

After the major bump this is no longer necessary.
2012-10-23 07:33:05 +02:00
Anton Khirnov
9cac8a5199 APIchanges: update lavr bump date 2012-10-23 07:33:05 +02:00
Anton Khirnov
4e61a38aa0 avconv: only apply presets when we have an encoder.
Fixes a crash when using a preset with stream copy.

CC: libav-stable@libav.org
2012-10-23 07:30:58 +02:00
Michael Niedermayer
34ccb94796 g723_1: remove unneeded cliping
Fixes CID703731
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 03:03:59 +02:00
Michael Niedermayer
e9b61fffbe g722dec: s/Libav/FFmpeg/ The copyright years predate the existence of Libav
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 03:03:53 +02:00
Michael Niedermayer
7770c0da07 fate/mapchan: add bitexact flag
fixes fate breakage

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 02:19:38 +02:00
Paul B Mahol
a57d560db3 LVF demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-22 23:22:39 +00:00
Michael Niedermayer
3318d6b940 ffmpeg: check avpicture_get_size() retuen value
Fixes CID205018
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 00:22:23 +02:00
Michael Niedermayer
da317efd92 j2k: reorder multiplications to avoid interger overflows related to precincts
Fixes CID703778, CID703777
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 00:03:49 +02:00
Michael Niedermayer
45ae9a8fc9 j2k: reorder multiplications to avoid interger overflows related to code blocks
Fixes CID703776, CID703775
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-23 00:03:49 +02:00
Clément Bœsch
7c2d5eec29 fate: quote file paths in movie/amovie filtergraphs.
This should avoid some nasty ':' escaping.
2012-10-22 23:13:54 +02:00
Clément Bœsch
2649b78384 fate: improve metadata filter deps readability. 2012-10-22 23:13:53 +02:00
Clément Bœsch
ae69c683e5 fate: add scale filter to the scene detect dependencies.
The select filter requires some conversion to rgb24 for the scene
detection.
2012-10-22 23:13:53 +02:00
Clément Bœsch
7be9c0c10f fate: fix SAMPLES dependency for ffprobe.
FATE_SAMPLES_FFPROBE is a different list than FATE_FFPROBE, the same way
FATE_SAMPLES_FFMPEG is a different list than FATE_FFMPEG; these
FATE_SAMPLES_<tool> lists are in the FATE_EXTERN list, which is only
used when SAMPLES is set.
2012-10-22 23:13:53 +02:00
Michael Niedermayer
0de41ead6f qt-faststart: check fseeko() return codes
Fixes CID733725

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 22:42:51 +02:00
Michael Niedermayer
250fe6eeb4 cmdutils: apply option to codec and format contexts if possible.
This is needed for setting both contexts -err_detect at once.

Reviewed-by: Clément Bœsch <ubitux@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 22:24:23 +02:00
Matthieu Bouron
c68a8a1340 lavf/aiffdec: don't stop parsing after SSND chunk
Some file has ID3 chunk placed after SSND.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 19:38:27 +02:00
Matthieu Bouron
d8173f264f dv: fix a check on dv_extract_timecode return value
Fixes CID733808

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 19:09:47 +02:00
Michael Niedermayer
22793d7bb3 ffmpeg/lavc: move experimental warnings to libavcodec.
This way they are available to all applications and not just ffmpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 17:58:33 +02:00
Justin Ruggles
5d1007f74d atrac3: initialize static tables in AVCodec.init_static_data() 2012-10-22 10:10:08 -04:00
Justin Ruggles
a1f4cd371a atrac3: replace a calculation with FFALIGN()
This allocates 4 bytes less than the previous code if avctx->block_align is
a multiple of 4, but the extra 4 bytes is not really needed.
2012-10-22 10:10:08 -04:00
Justin Ruggles
78edce3f19 atrac3: separate window initialization from IMDCT initialization 2012-10-22 10:10:08 -04:00
Justin Ruggles
808686fc1e atrac3: remove unused ATRAC3Context field, sample_rate 2012-10-22 10:10:08 -04:00
Justin Ruggles
c51311b907 atrac3: move the 'frame_factor' field from ATRAC3Context to where it is used 2012-10-22 10:10:08 -04:00
Justin Ruggles
89a6c32bc1 atrac3: use sizeof(variable) instead of sizeof(type) 2012-10-22 10:10:08 -04:00
Justin Ruggles
327747de15 atrac3: simplify MDCT window calculation 2012-10-22 10:10:08 -04:00
Justin Ruggles
a2664c91fb atrac3: move the 'samples_per_frame' field from ATRAC3Context to where it is used 2012-10-22 10:10:07 -04:00
Justin Ruggles
7e76f27081 atrac3: remove unused ATRAC3Context field, bit_rate 2012-10-22 10:10:07 -04:00
Justin Ruggles
7c1f93afe6 atrac3: remove unused ATRAC3Context field, samples_per_channel 2012-10-22 10:10:07 -04:00
Justin Ruggles
cdd0e0de81 atrac3: use AVCodecContext.block_align instead of keeping a private copy 2012-10-22 10:10:07 -04:00
Justin Ruggles
64ebbb8f89 atrac3: move the 'delay' field from ATRAC3Context to where it is used 2012-10-22 10:10:07 -04:00
Justin Ruggles
5ac673b553 atrac3: use AVCodecContext.channels instead of keeping a private copy 2012-10-22 10:10:06 -04:00
Justin Ruggles
56a9d2b44e atrac3: move the 'version' field from ATRAC3Context to where it is used 2012-10-22 10:10:06 -04:00
Justin Ruggles
aefdb735c3 atrac3: simplify some loop indexing 2012-10-22 10:10:06 -04:00
Justin Ruggles
e55d53905f atrac3: cosmetics: pretty-printing and renaming
also does some minor refactoring.
2012-10-22 10:10:06 -04:00
Mans Rullgard
abdee95224 pcm: define AVCodec instances only for enabled codecs
This defines an AVCodec only if the corresponding CONFIG option is
enabled instead of using the broad CONFIG_ENCODERS/DECODERS.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-22 14:40:57 +01:00
Anton Khirnov
5957aefc7c libxvid: remove useless doxy comments. 2012-10-22 15:20:23 +02:00
Michael Niedermayer
f9cf14c8da Merge remote-tracking branch 'qatar/master'
* qatar/master:
  riff: remove a write-only variable
  lavc: extend frame_size doxy.
  alacdec: set bits_per_raw_sample

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 14:50:06 +02:00
Anton Khirnov
b691135d0c lavc: remove stats_out from the options table.
Since it is declared as a string AVOption, the generic freeing code
attempts to free it on codec close. Some codecs might have already freed
it elsewhere (or didn't even allocate it with av_malloc() in the first
place), so this might lead to an invalid free.

There is no point in having this field accessible as an AVOption, so
remove it from the options table.

Fixes Bug 380.

CC: libav-stable@libav.org
2012-10-22 14:44:07 +02:00
Michael Niedermayer
e3a91c51f7 Merge commit 'c3e15f7b39aac2012f09ee4ca86d2bc674ffdbd4'
* commit 'c3e15f7b39aac2012f09ee4ca86d2bc674ffdbd4':
  rtpdec: Don't pass a non-AVClass pointer as log context
  rtsp: Update a comment to the current filename scheme
  avcodec: handle AVERROR_EXPERIMENTAL
  avutil: Add AVERROR_EXPERIMENTAL
  avcodec: prefer decoders without CODEC_CAP_EXPERIMENTAL

Conflicts:
	doc/APIchanges
	ffmpeg.c
	libavcodec/utils.c
	libavformat/rtpdec.c
	libavutil/error.c
	libavutil/error.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 14:39:12 +02:00
Michael Niedermayer
c3778df2d4 ffmpeg: fix negative array index
Fixes CID733808
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 13:58:19 +02:00
Michael Niedermayer
6182e0a6f6 vf_aspect: unbreak avoption system
This fixes ff* -h infinite looping

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 13:12:15 +02:00
Stefano Sabatini
6752aac6bc lavfi/aspect: add max option 2012-10-22 10:46:43 +02:00
Stefano Sabatini
ccd6def9b3 lavfi/aspect: extend syntax for the setdar and setsar filters
Add support for named options, and deprecate old "num:den" ambiguous
syntax.
2012-10-22 10:46:34 +02:00
Stefano Sabatini
b6e36a4244 lavu/parseutils: remove unused gcd variable in av_parse_ratio()
Fix warning.
2012-10-22 10:41:51 +02:00
Paul B Mahol
cb0add3ce9 lavf/flacenc: disallow creation of invalid files with -c copy
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-22 08:07:09 +00:00
Anton Khirnov
6173a8fe5d riff: remove a write-only variable 2012-10-22 08:49:58 +02:00
Anton Khirnov
d6f4fe68c8 lavc: extend frame_size doxy. 2012-10-22 08:49:58 +02:00
Justin Ruggles
46a86c6194 alacdec: set bits_per_raw_sample 2012-10-21 23:54:51 -04:00
Martin Storsjö
c3e15f7b39 rtpdec: Don't pass a non-AVClass pointer as log context
The log context is assumed to start with an AVClass pointer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-22 01:46:33 +03:00
Martin Storsjö
e0d5ac6ae3 rtsp: Update a comment to the current filename scheme
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-22 01:46:10 +03:00
Michael Niedermayer
2d11ee4bfc fate: fix fate-filter-metadata-scenedetect
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 00:07:53 +02:00
Michael Niedermayer
39747d87d0 avfilter_graph_parse: add support for parsing sws_flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-22 00:07:35 +02:00
Michael Niedermayer
248b1ff26b Fix various uses of av_log_missing_feature()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 23:13:53 +02:00
Nathan Caldwell
c854102da7 avcodec: handle AVERROR_EXPERIMENTAL
Error out on init if a codec with CODEC_CAP_EXPERIMENTAL is requested
and strict_std_compliance is not FF_COMPLIANCE_EXPERIMENTAL.

Move the check from avconv to avcodec_open2() and return
AVERROR_EXPERIMENTAL accordingly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-21 23:03:26 +02:00
Nathan Caldwell
a893655bda avutil: Add AVERROR_EXPERIMENTAL
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-21 22:38:21 +02:00
Nathan Caldwell
a4aa20fbdb avcodec: prefer decoders without CODEC_CAP_EXPERIMENTAL
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-21 22:27:58 +02:00
Stefano Sabatini
8f37a1e8dc lavfi/avfiltergraph: avoid to print "(null)" in the scale args
Fix parsing.
2012-10-21 21:44:53 +02:00
Stefano Sabatini
2969abd908 lavfi/graphparser: fix parsing error in case of NULL sws_opts addition
If sws_opts was NULL it was resulting in the args being set to
"W:H:(null)", which with the new parsing code was generating a syntax
failure.
2012-10-21 21:44:45 +02:00
Stefano Sabatini
8c2dbc3805 lavc/utils: provide more feedback in case of experimental codec 2012-10-21 21:11:02 +02:00
Michael Niedermayer
5713091818 mpegaudiodec: Fix buffer handling on random access
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 20:59:08 +02:00
Clément Bœsch
e168165489 doc/muxers: document mov faststart option. 2012-10-21 20:23:09 +02:00
Clément Bœsch
c0d56bf8a4 fate: fix filter metadata dependency to ffprobe. 2012-10-21 20:10:37 +02:00
Carl Eugen Hoyos
fa190b3cd7 Improve MPEG-PS-in-MOV detection.
Fixes issue 1520.
2012-10-21 19:30:43 +02:00
Michael Niedermayer
747a00b688 Merge remote-tracking branch 'cus/stable'
* cus/stable:
  ffplay: if there is no audio stream, use external clock by default
  ffplay: use get_master_sync_type where necessary
  ffplay: add get_master_sync_type function
  ffplay: only check external clock if current frame serial matches the displayed frame serial
  ffplay: add serial field to PacketQueue entry and populate it
  ffplay: fix external time sync mode
  ffplay: initialize audio and video pts drift
  ffplay: fix nosync threshold check in synchronize_audio
  ffplay: use framedrop by default when sync is not done to video

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:56:58 +02:00
Marton Balint
d6e9566949 h264: add support for AFD detection
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Kieran Kunhya <kierank@ob-encoder.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:22:50 +02:00
Michael Niedermayer
40ceb6d49f libavformat/oggenc: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:23 +02:00
Michael Niedermayer
c2c066784f libavformat/mxfenc: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:23 +02:00
Michael Niedermayer
b8a64d69a9 libavformat/mpegvideodec: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:23 +02:00
Michael Niedermayer
fefe9bd782 libavformat/movenc: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:23 +02:00
Michael Niedermayer
217193facd bavformat/mov: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:23 +02:00
Michael Niedermayer
f72b735d41 libavcodec/vorbisenc: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:22 +02:00
Michael Niedermayer
4ce9312d76 libavcodec/cook: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:22 +02:00
Michael Niedermayer
38797dc31b compat/getopt: add {} to complex ifs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 18:05:22 +02:00
Clément Bœsch
fbedce6b85 lavfi/silencedetect: export silence info to metadata. 2012-10-21 17:29:11 +02:00
Clément Bœsch
de23953de2 lavfi/select: store scene score in buf ref metadata. 2012-10-21 17:29:11 +02:00
Clément Bœsch
6fb2fd895e lavc: add lavfi metadata support.
This commit introduces a new AVPacket side data type:
AV_PKT_DATA_STRINGS_METADATA. Its main goal is to provide a way to
transmit the metadata from the AVFilterBufferRef up to the AVFrame. This
is at the moment "only" useful for lavfi input from libavdevice:
lavd/lavfi only outputs packets, and the metadata from the buffer ref
kept in its context needs to be transmitted from the packet to the frame
by the decoders. The buffer ref can be destroyed at any time (along with
the metadata), and a duplication of the AVPacket needs to duplicate the
metadata as well, so the choice of using the side data to store them was
selected.

Making sure lavd/lavfi raises the metadata is useful to allow tools like
ffprobe to access the filters metadata (it is at the moment the only
way); ffprobe will now automatically show the AVFrame metadata in any
customizable output format for users. API users will also be able to
access the AVFrame->metadata pointer the same way ffprobe does
(av_frame_get_metadata).

All the changes are done in this single commit to avoid some memory
leaks: for instances, the changes in lavfi/avcodec.c are meant to
duplicate the metadata from the buffer ref into the AVFrame. Unless we
have an internal way of freeing the AVFrame->metadata automatically, it
will leak in most of the user apps. To fix this problem, we introduce
AVCodecContext->metadata and link avctx->metadata to the current
frame->metadata and free it at each decode frame call (and in the codec
closing callback for the last one). But doing this also means to update
the way the tiff decoder already handles the AVFrame->metadata (it's the
only one decoder with frame metadata at the moment), by making sure it
is not trying to free a pointer already freed by the lavc internals.

The lavfi/avcodec.c buffer ref code is based on an old Thomas Kühnel
work, the rest of the code belongs to the commit author.

Signed-off-by: Thomas Kühnel <kuehnelth@googlemail.com>
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
2012-10-21 17:29:10 +02:00
Marton Balint
3166a6fc37 ffplay: if there is no audio stream, use external clock by default
Otherwise playing the video could be much slower than realtime if the system
can't decode or display the frames fast enough.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
d30c69251f ffplay: use get_master_sync_type where necessary
We should make decisions based on the real sync type. This also simplifies
the code.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
fca16a1571 ffplay: add get_master_sync_type function
The real av_sync_type may be different to VideoState->av_sync_type, because the
required audio or video stream for audio or video clock may not be available.
We will use a function to query the real av_sync_type which is used for
determining the master clock.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
b2a8850969 ffplay: only check external clock if current frame serial matches the displayed frame serial
This way we avoid updating the external clocks with timestamps beloging to
frames before seek.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
2a4c7e6540 ffplay: add serial field to PacketQueue entry and populate it
The purpose of the serial field is to accompany the decoded data during the
decoding process to know if the decoded data belongs to the data stream after
the latest packet queue flush.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
77bd595ad2 ffplay: fix external time sync mode
We now initalize the external clock to 0 and, we use the system clock to
regulate the timings of audio and video in external clock sync mode.  We
recover from external clock sync loss, when the delay to external clock is
bigger than AV_NOSYNC_THRESHOLD.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
66bb5b1bc9 ffplay: initialize audio and video pts drift
This makes sensible audio and video clock values even before displaying the
first frame.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
eaa91ed863 ffplay: fix nosync threshold check in synchronize_audio
Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Marton Balint
da56955621 ffplay: use framedrop by default when sync is not done to video
When using external sync, framedrop is perfectly fine.

Signed-off-by: Marton Balint <cus@passwd.hu>
2012-10-21 17:18:12 +02:00
Michael Niedermayer
d7b8a9a589 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: adpcm: cosmetics: Sort test entries
  fate: adpcm: Add dependencies
  svq3: cosmetics: Drop useless parentheses

Conflicts:
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 17:09:36 +02:00
Michael Niedermayer
0e09761686 Merge commit 'a7d2861d36756b913e85681b86ed3385274e8ced'
* commit 'a7d2861d36756b913e85681b86ed3385274e8ced':
  svq3: K&R formatting cosmetics
  fate: Introduce ENCMUX macro for tests that require encoders and a muxer
  ffv1: Add missing #includes to header file

Conflicts:
	libavcodec/ffv1.h
	libavcodec/svq3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 17:01:01 +02:00
Michael Niedermayer
aa760b1735 Merge commit '2d09b36c0379fcda8f984bc8ad8816c8326fd7bd'
* commit '2d09b36c0379fcda8f984bc8ad8816c8326fd7bd':
  doc/platform: Add info on shared builds with MSVC
  doc/platform: Move a caveat down to the notes section
  ARM: reinstate optimised intmath.h
  ffv1: update to ffv1 version 3

Conflicts:
	doc/platform.texi
	libavcodec/ffv1.c
	libavcodec/ffv1.h
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 16:13:55 +02:00
Michael Niedermayer
99ea47fe5a Merge commit '4a2a4524a3f50ed302820ba971ddd48e78c7436f'
* commit '4a2a4524a3f50ed302820ba971ddd48e78c7436f':
  ffv1: propagate errors

Conflicts:
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 14:55:21 +02:00
Michael Niedermayer
69fd0b7adb Merge commit '71f7b22dba60524b2285643ae0b49d8f64977129'
* commit '71f7b22dba60524b2285643ae0b49d8f64977129':
  ffv1: split decoder and encoder

Conflicts:
	libavcodec/Makefile
	libavcodec/ffv1.c
	libavcodec/ffv1.h
	libavcodec/ffv1dec.c
	libavcodec/ffv1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 14:37:15 +02:00
Michael Niedermayer
e4255eaf47 ffv1: split decoder and encoder
This is not based on lucas work due to code divergence (its less work this way
than trying to merge from a split based on 2 years outdated code)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 14:26:23 +02:00
Michael Niedermayer
dcbff35199 Merge commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9'
* commit 'd15c21e5fa3961f10026da1a3080a3aa3cf4cec9':
  avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility
  avutil: make some tables visible again
  avutil: remove inline av_log2 from public API
  celp_math: rename ff_log2 to ff_log2_q15

Conflicts:
	libavutil/libavutil.v

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 13:35:42 +02:00
Michael Niedermayer
05f228b0a0 ffv1: fix gray
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 04:25:30 +02:00
Michael Niedermayer
b6267901c4 mp3demux: Rewrite xing TOC based seeking
The libav code depends on mp3 startcodes only occuring at the start of
frames. But there is nothing in mp3 that prevents them occuring elsewhere
by chance. Thus the code would fail randomly, the new code searches for 3
consecutive valid frames. If this turns out to be still insufficient the
number can be raised further, or additional checks added.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 03:13:46 +02:00
Michael Niedermayer
7696a392e2 mp3dec: propagate error code correctly.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-21 02:52:10 +02:00
Clément Bœsch
273fca9ac0 lavfi/silencedetect: increase duration precision.
This should also fix CID717889.
2012-10-21 01:28:19 +02:00
Clément Bœsch
99a520000d lavf/webvttdec: fix potential timing overflows.
Should fix CID733781 and CID733782.
2012-10-21 01:16:49 +02:00
Clément Bœsch
1ea3c03743 lavf/subviewerdec: fix potential timing overflows.
Should fix CID733779 and CID733780.
2012-10-21 01:08:17 +02:00
Michael Niedermayer
044c0e62ea udp: add missing mutex unlock
Fixes CID703688
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 23:31:32 +02:00
Michael Niedermayer
c4503a2e40 rtpdec: check av_new_packet() return value
Fixes CID733715
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 23:07:16 +02:00
Michael Niedermayer
3a8b66af6c rtmp_write_amf_data: remove dead code
Fixes CID732199
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 22:57:30 +02:00
Michael Niedermayer
e4ef2e073c riff_has_valid_tags: remove unused variable
Fixes CID739471
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 22:34:01 +02:00
Diego Biurrun
620345f930 fate: adpcm: cosmetics: Sort test entries
This also places tests of related formats together.
2012-10-20 21:10:21 +02:00
Diego Biurrun
a7d2861d36 svq3: K&R formatting cosmetics 2012-10-20 21:10:21 +02:00
Diego Biurrun
2e0c410485 fate: adpcm: Add dependencies 2012-10-20 21:10:21 +02:00
Diego Biurrun
8860878291 fate: Introduce ENCMUX macro for tests that require encoders and a muxer 2012-10-20 21:10:21 +02:00
Diego Biurrun
af1ede069c svq3: cosmetics: Drop useless parentheses 2012-10-20 21:10:21 +02:00
Diego Biurrun
6cfca5b6ae ffv1: Add missing #includes to header file 2012-10-20 21:10:21 +02:00
Michael Niedermayer
73581afe01 nutdec: fix integer overflow
Fixes CID700575
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 20:45:32 +02:00
Michael Niedermayer
d633e15d7d nsvdec: fix division by 0
Fixes CID717749
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 20:20:39 +02:00
Michael Niedermayer
ee23dcf534 avformat_free_context: allow NULL as argument
Fixes CID703682
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 20:13:18 +02:00
Michael Niedermayer
830f7f189f mmsh: fix integer overflow in mmsh_seek()
Fixes CID703745
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 20:13:18 +02:00
Stefano Sabatini
d3b8d56e06 examples/decoding_encoding: prefer 'frame' over 'picture' for an AVFrame
Decrease confusion.
2012-10-20 19:42:55 +02:00
Michael Niedermayer
dd84efe3c7 matroskaenc: Fix hypothetical integer overflows
Fixes CID700562-7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 19:05:15 +02:00
Michael Niedermayer
b1f517f503 matroskaenc: check avio_open_dyn_buf() retuen code
Fixes CID703629
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 19:05:15 +02:00
Derek Buitenhuis
eed7406416 doc/platform: Add info on shared builds with MSVC
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-20 13:00:12 -04:00
Derek Buitenhuis
11a73745d5 doc/platform: Move a caveat down to the notes section
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-20 12:59:20 -04:00
Derek Buitenhuis
2d09b36c03 doc/platform: Add info on shared builds with MSVC
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-20 12:55:59 -04:00
Derek Buitenhuis
f2a7236d0c doc/platform: Move a caveat down to the notes section
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-20 12:55:59 -04:00
Mans Rullgard
ebe46b8063 ARM: reinstate optimised intmath.h
Use of the ARM optimised intmath.h was accidentally dropped in 9734b8b.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-20 17:26:37 +01:00
Luca Barbato
0f13cd3187 ffv1: update to ffv1 version 3
Based on code from Carl Eugen Hoyos, Michael Niedermayer and Paul B Mahol.
2012-10-20 18:14:52 +02:00
Luca Barbato
4a2a4524a3 ffv1: propagate errors 2012-10-20 18:14:51 +02:00
Luca Barbato
71f7b22dba ffv1: split decoder and encoder 2012-10-20 18:14:43 +02:00
Hendrik Leppkes
79393a8363 Replace usage of the deprecated av_pix_fmt_descriptors array with av_pix_fmt_desc_get
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 18:00:13 +02:00
Michael Niedermayer
2c5b92fe90 matroskadec: fix double negation typo
Fixes CID602563
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 16:58:33 +02:00
Michael Niedermayer
1116491c53 matroska_parse_rm_audio: check for malloc failure
Fixes CID733712
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 16:55:45 +02:00
Michael Niedermayer
d7cabb3c7e bgmc: check the correct pointers
Fixes CID90539, CID90538
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 15:33:44 +02:00
Michael Niedermayer
bf52ad1e49 lavc: revert broken hunk from 1cd9c81ddb
This should fix fate failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 13:59:53 +02:00
Martin Storsjö
d15c21e5fa avutil: Add a copy of ff_sqrt_tab back into avutil to restore ABI compatibility
Earlier versions of for instance of libavcodec expect this symbol to be
present in libavutil. This commit can be reverted after the next major
bump.

New shared builds of avcodec will link to the internal copy of the
table within that library, so those builds won't rely on this table
being present in avutil any longer either.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-20 14:31:55 +03:00
Reinhard Tartler
def8c94699 avutil: make some tables visible again
These tables are used for instance by older versions of libavcodec and
need to remain visible until the next SONAME bump.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-20 14:31:55 +03:00
Mans Rullgard
8c0a3d5fe0 avutil: remove inline av_log2 from public API
This removes inline av_log2 and av_log2_16bit from the public API,
instead exporting them as regular functions.  In-tree code still
gets the inline and otherwise optimised variants.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-20 12:28:45 +01:00
Mans Rullgard
f0c07be649 celp_math: rename ff_log2 to ff_log2_q15
This name is more descriptive as the function returns a fixed-point
value with 15 fraction bits.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-20 12:28:45 +01:00
Michael Niedermayer
6912e7a008 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Group math functions into a separate variable
  avutil/mem: K&R formatting cosmetics
  avutil/lzo: K&R formatting cosmetics

Conflicts:
	configure
	libavutil/mem.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 13:18:59 +02:00
Michael Niedermayer
04c6ecb7da Merge commit 'c9ef43215c7d68c2cdcdbe02287aa114f27a32ed'
* commit 'c9ef43215c7d68c2cdcdbe02287aa114f27a32ed':
  fate-vc1: add dependencies
  ARM: fix overreads in neon h264 chroma mc
  rtsp: Make sure the ret variable is initialized in ff_rtsp_fetch_packet
  gitignore: ignore files created by msvc
  fate: Add proper dependencies for the tests in video.mak
  configure: Disable Snow decoder and encoder by default
  lzo: Drop obsolete fast_memcpy reference
  build: Drop OBJS declaration for non-existing PCM_DVD encoder
  mpeg4videodec: Disable frame multithreading for GMC, its not implemented at all

Conflicts:
	libavcodec/mpegvideo.c
	libavformat/rtsp.c
	tests/fate/microsoft.mak
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 12:37:52 +02:00
Stefano Sabatini
cdea54b4c8 lavu/parseutils: rework rational reduction logic in av_parse_ratio()
Avoid to divide num and den by gcd in case of a parsed expression, since
that is already done in av_d2q(), and force reduction in case of "a:b"
form, allowing to honour the max parameter.

The latter change is consistent with the a/b case, and with the
documentation.
2012-10-20 12:19:53 +02:00
Stefano Sabatini
935ecfb002 examples/scaling_video: remove unnecessary intermediary variable in fill_yuv_frame() 2012-10-20 12:06:45 +02:00
Stefano Sabatini
7bc533c41b lavc/utils: fix a few case/punctuation inconsistencies in avcodec_open2() 2012-10-20 12:06:20 +02:00
Stefano Sabatini
1cd9c81ddb lavc/utils: extend feedback provided by avcodec_open2() 2012-10-20 12:06:14 +02:00
Stefano Sabatini
7b116a94af examples/decoding_encoding: fix misc typos in the usage text 2012-10-20 11:30:13 +02:00
Stefano Sabatini
8c4753f7f5 examples/decoding_encoding: remove misplaced and confusing comment 2012-10-20 11:30:13 +02:00
Stefano Sabatini
6d6ccbae4c examples/decoding_encoding: add missing checks on avcodec_alloc_context3() 2012-10-20 11:30:13 +02:00
Diego Biurrun
79042ab376 configure: Group math functions into a separate variable
This avoids some duplication when listing and testing for the functions.
2012-10-20 02:34:29 +02:00
Diego Biurrun
5532cf3178 avutil/mem: K&R formatting cosmetics 2012-10-20 02:34:29 +02:00
Diego Biurrun
c08536979b avutil/lzo: K&R formatting cosmetics 2012-10-20 02:34:29 +02:00
Mans Rullgard
c9ef43215c fate-vc1: add dependencies
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-20 01:31:01 +01:00
Mans Rullgard
1846ddf0a7 ARM: fix overreads in neon h264 chroma mc
The loops were reading ahead one line, which could end up outside the
buffer for reference blocks at the edge of the picture.  Removing
this readahead has no measurable performance impact.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-20 01:28:38 +01:00
Hendrik Leppkes
04bf2e7f0e swresample: include ff_log2_tab for shared builds
This is done in accordance with all other libraries, which no longer access ff_log2_tab from avutil directly for shared builds, and instead obtain their own copy.

This change is required for MSVC DLL builds, as well as avoids accessing a private symbol from another library.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 01:58:04 +02:00
Hendrik Leppkes
953a3dcc4e Mark data symbols shared between libraries with av_export
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 01:56:50 +02:00
Martin Storsjö
2f41eaa9c6 rtsp: Make sure the ret variable is initialized in ff_rtsp_fetch_packet
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-20 01:59:06 +03:00
Hendrik Leppkes
33f2a49423 vc1: only disable interlaced b-frames for software decoding
Tested-by: Gwenole Beauchesne <gb.devel@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 00:07:43 +02:00
Hendrik Leppkes
b87ff34496 vc1: implement vc1 field interlaced dxva2 decoding
Tested-by: Gwenole Beauchesne <gb.devel@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-20 00:07:14 +02:00
Michael Niedermayer
8fb8d539a4 hlsproto: fix integer overflow
Fixes CID703743
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 23:24:03 +02:00
Michael Niedermayer
ba39303050 gxfenc: fix null ptr dereference
Fixes CID703677
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 23:21:41 +02:00
Michael Niedermayer
395caf3de8 hls: fix integer overflow
Fixes CID717892
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 23:00:47 +02:00
Michael Niedermayer
a96577df38 avio: fix sizeof argument
Fixes CID732284
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 22:35:32 +02:00
Hendrik Leppkes
d2d08d706b gitignore: ignore files created by msvc
exp files are created in every build and contain export information
of the libraries. Both pdb and ilk are created during debug builds,
and contain linking and debug information used by MSVC.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-19 22:15:03 +02:00
Michael Niedermayer
d30351363f url_alloc_for_protocol: fix use of uninitialized variable
Fixes CID703830
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 22:14:13 +02:00
Michael Niedermayer
3d48dd01fd avidec: remove unneeded null check
Fixes CID29555
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 21:46:39 +02:00
Michael Niedermayer
aaf78e4d14 vf_mp: fix null ptr deref in case of ENOMEM
Fixes CID703675
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 19:59:38 +02:00
Michael Niedermayer
042a738b45 vf_mp: check list in querry_format()
Fixes CID717772
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 19:59:38 +02:00
Michael Niedermayer
31fdf3065d vf_idet: reorder operations to avoid division by 0
Fixes CID733738
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 19:59:32 +02:00
Martin Storsjö
12549db653 fate: Add proper dependencies for the tests in video.mak
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-19 20:27:16 +03:00
Michael Niedermayer
0fa26bd470 utvideoenc: fix theoretical integer overflow
The image sizes needed for this overflow to happen are currently not
supported in lavc, thus this should have no effect execpt making the
code more robust in light of future changes.

Fixes CID732245
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 18:57:57 +02:00
Michael Niedermayer
d86ef54476 avcodec_align_dimensions2: add missing breaks
This should have just cosmetic effects

Fixes CID603265
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 18:50:09 +02:00
Ash Hughes
2470851f12 lavc: enable recursively using avcodec_open2/close.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 18:05:12 +02:00
Diego Biurrun
4b587848ce configure: Disable Snow decoder and encoder by default
Snow has serious unfixed bugs and no real-world use.
2012-10-19 17:10:10 +02:00
Diego Biurrun
8fb1e26405 lzo: Drop obsolete fast_memcpy reference 2012-10-19 17:04:41 +02:00
Diego Biurrun
c896aa984e build: Drop OBJS declaration for non-existing PCM_DVD encoder 2012-10-19 17:04:41 +02:00
Petter Ericson
7abf394814 mov.c: Check for stsd + m1s tag indicating MOV-wrapped MPEG-PS, and force continued probing if found.
Fixes Ticket241
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 16:07:49 +02:00
Michael Niedermayer
6bcdfe48d0 mpeg4videodec: Disable frame multithreading for GMC, its not implemented at all
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-19 15:42:35 +03:00
jamal
9434ead2f3 fate: Handle lavf-fate tests in a makefile
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 14:20:11 +02:00
Michael Niedermayer
c5fd9d3c35 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: Add proper dependencies in qt.mak
  fate: Add proper dependencies in lossless-video.mak
  indeo3: do not try to output more lines than we can fit
  bmv: get a new frame on every decode_frame(), so we can use direct rendering

Conflicts:
	libavcodec/bmv.c
	tests/fate/lossless-video.mak
	tests/fate/qt.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 14:15:47 +02:00
Michael Niedermayer
81ff0c24ef Merge commit '1cd432e167b1a80853760c89a33606e2b5f229c2'
* commit '1cd432e167b1a80853760c89a33606e2b5f229c2':
  configure: fix libcdio check
  rtsp: Allow setting the reordering buffer size via an AVOption
  rtsp: Vertically align a constant definition
  rtp: Update the check for distinguishing between RTP and RTCP
  aac: fix build with hardcoded tables
  fate: dependencies for screen codec tests
  riff: Move functions around to be covered by appropriate #ifdefs

Conflicts:
	configure
	tests/fate/screen.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 13:58:14 +02:00
Michael Niedermayer
93f244e3ab Merge commit '0af1fe845a9d7112da0a58d33a4fc81fe7c47e95'
* commit '0af1fe845a9d7112da0a58d33a4fc81fe7c47e95':
  avformat: Fix references to the removed function av_write_header in comments
  changelog: Mention the MSVC DLL support
  fate: add dependencies for misc microsoft codecs
  fate-twinvq: add dependencies
  fate-mpc: add dependencies
  fate-indeo: add dependencies
  fate-als: add dependencies
  fate: dependencies for demux tests

Conflicts:
	Changelog
	tests/Makefile
	tests/fate/demux.mak
	tests/fate/microsoft.mak
	tests/fate/mpc.mak
	tests/fate/vqf.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 13:47:47 +02:00
Michael Niedermayer
b0554fec04 Merge commit 'c0329748b04e1f175dad8c9c2ebf22a5e2dc5b72'
* commit 'c0329748b04e1f175dad8c9c2ebf22a5e2dc5b72':
  fate: add a dependency helper macro
  Add support for building shared libraries with MSVC
  avcodec: Rename avpriv_frame_rate_tab to ff_mpeg12_frame_rate_tab
  gxf: Add a local copy of the relevant parts of the frame rate table
  configure: Split out msvc as a separate target OS
  aviobuf: Remove a senseless ifdef in avio_seek

Conflicts:
	configure
	libavcodec/dirac.c
	libavcodec/mpeg12data.h
	libavcodec/mpeg12enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 13:29:24 +02:00
Martin Storsjö
61cc99748c fate: Add proper dependencies in qt.mak
The output of make fate-list is identical to before.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-19 10:43:14 +03:00
Martin Storsjö
91485e744f fate: Add proper dependencies in lossless-video.mak
The output of make fate-list is identical to before.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-19 10:43:13 +03:00
Kostya Shishkov
169514c440 indeo3: do not try to output more lines than we can fit
Internally chroma planes have multiple of four height while allocated image
planes might be smaller if CODEC_FLAG_EMU_EDGE is set. Thus we should not
output more lines of chroma than frame can accept.

Also the decoder can be safely switched to direct rendering now.
2012-10-19 07:58:51 +02:00
Kostya Shishkov
8774d58358 bmv: get a new frame on every decode_frame(), so we can use direct rendering 2012-10-19 07:58:51 +02:00
Michael Niedermayer
d50aa006fb tiffenc: fix integer overflow
Fixes CID700699
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 03:36:42 +02:00
Michael Niedermayer
a06f943f9d roqvideodec: replace dead code by assert
Fixes CID732195
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 03:15:06 +02:00
Michael Niedermayer
c0b17ea106 roqaudioenc: Fix crash with very small roq files
Fixes CID703669
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 02:57:57 +02:00
Paul B Mahol
4ebf305951 lavc/tta: do not overwrite bits_per_coded_sample
It is supposed to be set in libavformat only.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:02 +00:00
Paul B Mahol
445f36d7c8 kmvc: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:02 +00:00
Paul B Mahol
be536f084a xxan: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:01 +00:00
Paul B Mahol
0bf40e0ef4 lavc/yop: remove redudant YOP in av_log() messages
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:01 +00:00
Paul B Mahol
4c6c6a266e jvdec: use more meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:01 +00:00
Paul B Mahol
527224830a idcinvideo: if decoding fails return error
Previously if frame decoding failed it would be
silently reported as valid frame.

The fate ref is updated because sample have
truncated last video packet.

While here return meaningful error codes.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:01 +00:00
Paul B Mahol
aadb7b3ac4 lavc/c93: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-19 00:08:01 +00:00
Mans Rullgard
1cd432e167 configure: fix libcdio check
The compiler/linker flags passed to check_lib2 should not be quoted.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-19 01:02:58 +01:00
Michael Niedermayer
05b0337025 motionpixels/mp_decode_frame_helper: assert that the first pixel doesnt reuse the last.
reusing the last would use uninitialized data, this should be
impossible currently, but better to check by assert.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 01:20:27 +02:00
Michael Niedermayer
df727d408c mlp_parser: print error when ff_combine_frame() fails to add the current buffer
Fixes part of CID602338
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-19 00:05:03 +02:00
Clément Bœsch
e807a2b648 lavc: add raw text subtitles decoder. 2012-10-18 22:51:44 +02:00
Martin Storsjö
3f055f8f5f rtsp: Allow setting the reordering buffer size via an AVOption
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 23:10:48 +03:00
Martin Storsjö
1c37744963 rtsp: Vertically align a constant definition
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 23:10:42 +03:00
Martin Storsjö
0de9380be5 rtp: Update the check for distinguishing between RTP and RTCP
Also add enums for more RTCP packet types, according to the IANA
list of registered types.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 23:10:20 +03:00
Michael Niedermayer
c753b56b4d ff_convert_matrix: fix integer overflow
Fixes CID608053
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 21:51:04 +02:00
Michael Niedermayer
5537c92f84 mpegvideoenc: check return value of ff_MPV_frame_start()
Fixes CID703622
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 21:42:31 +02:00
Michael Niedermayer
2472f3facb lzwenc: change assert to av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 21:42:04 +02:00
Michael Niedermayer
97d1cb5cd4 bmv: remove unreachable default case
Fixes CID732191
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 21:13:28 +02:00
Mans Rullgard
7a12d97eb1 aac: fix build with hardcoded tables
aac_tablegen.h includes aac.h for the POW_SF2_ZERO definition, but
this also pulls in a raft of other headers, some of which are not
safe to use in code built with the host compiler.

Moving POW_SF2_ZERO to aac_tablegen_decl.h, where the declaration
of the array it relates to already resides, fixes the problems.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 19:59:43 +01:00
Michael Niedermayer
23b203014f indeo4: prevent printing uninitialized variable
Fixes CID703822
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 20:41:51 +02:00
Michael Niedermayer
2b1a2466c7 dv: change assert(a2 < 4) to av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 20:29:03 +02:00
Diego Biurrun
e8fe208be8 fate: dependencies for screen codec tests 2012-10-18 18:44:06 +02:00
Diego Biurrun
7b2121e7e2 riff: Move functions around to be covered by appropriate #ifdefs
This fixes compilation with --disable-muxers.
2012-10-18 16:12:45 +02:00
Michael Niedermayer
d0c27e88d2 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>
2012-10-18 16:03:16 +02:00
Michael Niedermayer
1350dffdc6 riff: dont discard truncated metadata
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 16:02:50 +02:00
Martin Storsjö
0af1fe845a avformat: Fix references to the removed function av_write_header in comments
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 16:33:48 +03:00
Martin Storsjö
22310eef9f changelog: Mention the MSVC DLL support
Also retroactively add a changelog entry to the 9beta1 list
for general MSVC support, which was present there already.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 16:33:34 +03:00
Mans Rullgard
55351de9f4 fate: add dependencies for misc microsoft codecs
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:31 +01:00
Mans Rullgard
c0329748b0 fate: add a dependency helper macro
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:28 +01:00
Mans Rullgard
22f5149ec4 fate-twinvq: add dependencies
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:28 +01:00
Mans Rullgard
08c6a12a56 fate-mpc: add dependencies
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:28 +01:00
Mans Rullgard
2e05143a8d fate-indeo: add dependencies
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:28 +01:00
Mans Rullgard
b55dda4a72 fate-als: add dependencies
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:28 +01:00
Mans Rullgard
eccd0671cc fate: dependencies for demux tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-18 13:12:28 +01:00
Martin Storsjö
d66c52c2b3 Add support for building shared libraries with MSVC
This requires the makedef perl script by Derek, from the
c89-to-c99 repo. That scripts produces a .def file, listing
the symbols to be exported, based on the gcc version scripts
and the built object files.

To properly load non-function symbols from DLL files, the
data symbol declarations need to have the attribute
__declspec(dllimport) when building the calling code. (On mingw,
the linker can fix this up automatically, which is why it has not
been an issue so far. If this attribute is omitted, linking
actually succeeds, but reads from the table will not produce the
desired results at runtime.)

MSVC seems to manage to link DLLs (and run properly) even if
this attribute is present while building the library itself
(which normally isn't recommended) - other object files in the
same library manage to link to the symbol (with a small warning
at link time, like "warning LNK4049: locally defined symbol
_avpriv_mpa_bitrate_tab imported" - it doesn't seem to be possible
to squelch this warning), and the definition of the tables
themselves produce a warning that can be squelched ("warning C4273:
'avpriv_mpa_bitrate_tab' : inconsistent dll linkage, see previous
definition of 'avpriv_mpa_bitrate_tab').

In this setup, mingw isn't able to link object files that refer to
data symbols with __declspec(dllimport) without those symbols
actually being linked via a DLL (linking avcodec.dll ends up with
errors like "undefined reference to `__imp__avpriv_mpa_freq_tab'").
The dllimport declspec isn't needed at all in mingw, so we simply
choose not to declare it for other compilers than MSVC that requires
it. (If ICL support later requires it, the condition can be extended
later to include both of them.)

This also implies that code that is built to link to a certain
library as a DLL can't link to the same library as a static library.
Therefore, we only allow building either static or shared but not
both at the same time. (That is, static libraries as such can be,
and actually are, built - this is used for linking the test tools to
internal symbols in the libraries - but e.g. libavformat built to
link to libavcodec as a DLL cannot link statically to libavcodec.)

Also, linking to DLLs is slightly different from linking to shared
libraries on other platforms. DLLs use a thing called import
libraries, which is basically a stub library allowing the linker
to know which symbols exist in the DLL and what name the DLL will
have at runtime.

In mingw/gcc, the import library is usually named libfoo.dll.a,
which goes next to a static library named libfoo.a. This allows
gcc to pick the dynamic one, if available, from the normal -lfoo
switches, just as it does for libfoo.a vs libfoo.so on Unix. On
MSVC however, you need to literally specify the name of the import
library instead of the static library.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 14:26:15 +03:00
Martin Storsjö
eaa9b2e66c avcodec: Rename avpriv_frame_rate_tab to ff_mpeg12_frame_rate_tab
This table doesn't need to be shared with libavformat any longer.
Add mpeg12 to the name to make it less ambiguous, while renaming it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 14:26:14 +03:00
Martin Storsjö
fc085c5b33 gxf: Add a local copy of the relevant parts of the frame rate table
This avoids having to share this table across the library
boundaries.

This shared table used to be problematic, if always declaring
all exported data symbols with the dllimport attribute (even
while building that same library), since it needs to be a
link-time constant when it is used in AVCodec declarations
(in mpeg12enc.c).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 14:26:13 +03:00
Martin Storsjö
53e8cd68b7 configure: Split out msvc as a separate target OS
The name mingw32 as target OS is both misleading, and very little
of the target OS specific settings actually match.

Since the target OS default is set based on uname, the default
(which on MSYS is set to mingw) is overridden by --toolchain=msvc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 14:26:12 +03:00
Michael Niedermayer
3777e6b3bf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mips64: mark hi/lo registers clobbered in MAC64/MLS64 macros
  fate: list lavfi tests in a makefile

Conflicts:
	configure
	tests/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 12:16:08 +02:00
Michael Niedermayer
9317b73f11 Merge commit '36ac9a16a19a365ce58cc871484c20cffe9b6401'
* commit '36ac9a16a19a365ce58cc871484c20cffe9b6401':
  fate: dependencies for seek tests
  fate: handle lavf test dependencies entirely in make

Conflicts:
	configure
	tests/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 11:42:42 +02:00
Michael Niedermayer
5806cd9365 fate: dependencies for ffmpeg vsynth tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 11:01:53 +02:00
Michael Niedermayer
aadaa8112a fate: dependencies for ffmpeg acodec tests
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 11:01:15 +02:00
Michael Niedermayer
17e4b0644b Merge commit '292d1e78743855404c7d07e3e7cb3f9c9ae6275b'
* commit '292d1e78743855404c7d07e3e7cb3f9c9ae6275b':
  fate: dependencies for acodec tests
  fate: dependencies for vsynth tests
  fate: add macros useful for conditionally enabling things
  libmp3lame: resize the output buffer if needed

Conflicts:
	tests/fate/acodec.mak
	tests/fate/vcodec.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 10:48:00 +02:00
Michael Niedermayer
eb19d89d8e cache: check lseek() return
Fixes CID717496
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 00:55:03 +02:00
Martin Storsjö
b760ffdd07 aviobuf: Remove a senseless ifdef in avio_seek
This seemed to assume that one never used writing avio unless
muxers or networking was enabled.

This ifdef is a remnant since 8fa641f8.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 01:44:05 +03:00
Michael Niedermayer
ce739e66f4 cmdutils: add missing check for ftell() return
Fixed CID703706
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18 00:10:59 +02:00
Mans Rullgard
b93e934aee mips64: mark hi/lo registers clobbered in MAC64/MLS64 macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:37:12 +01:00
Mans Rullgard
36ac9a16a1 fate: dependencies for seek tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
292d1e7874 fate: dependencies for acodec tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
206a070dce fate: list lavfi tests in a makefile
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
fa26335003 fate: handle lavf test dependencies entirely in make
This makes the lavf tests depend on all codecs and formats they use.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
b262e45597 fate: dependencies for vsynth tests
This makes the vsynth tests run only if the required codecs and
formats are enabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
21fed588cb fate: add macros useful for conditionally enabling things
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Alexis Ballier
916352f282 configure: do not quote arguments passed to filter{,_out} in check_ld.
This fixes the following error:
./configure: eval: line 417: syntax error near unexpected token `-lcdio_cdda'
[...]
Broken by 66a1ccd74 when doing, e.g., ./configure --enable-gpl --enable-libcdio.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 23:28:50 +02:00
Michael Niedermayer
35daf3ca81 cmdutils: remove unneeded null check
Fixes CID703769
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 23:28:50 +02:00
Stefano Sabatini
eebde404bc examples/muxing: merge add_audio_stream() and add_video_stream()
Factorize.
2012-10-17 21:39:13 +02:00
Stefano Sabatini
eda0a52bf1 examples/muxing: check on frame
Fix crash in case frame is not defined (e.g. with muxing out.wav).
2012-10-17 21:39:13 +02:00
Stefano Sabatini
d6196d9421 examples/muxing: fix bogus setting of st->id 2012-10-17 21:39:12 +02:00
Stefano Sabatini
5ca298df2d examples/muxing: remove misleading comment about pending API change
The API was never changed since 2003. Replace with a comment about the
performed operation.
2012-10-17 21:39:12 +02:00
Stefano Sabatini
1f7962625c examples/muxing: remove video_outbuf unused and useless code 2012-10-17 21:39:12 +02:00
Nicolas George
709628aa71 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.
2012-10-17 21:28:58 +02:00
Michael Niedermayer
d185c8a79b tiff: run strlen() after setting the pointer
Fixes CID733803
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:58:08 +02:00
Michael Niedermayer
f03c0f6afc ffmdec: check av_new_packet() return value
Fixes CID733711
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:45:59 +02:00
Michael Niedermayer
a0e0e1e192 ffmdec: fix hypothetical overflows
Fixes CID703739
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:36:30 +02:00
Michael Niedermayer
71bc8c95d7 ffm_read_write_index: check lseek return code
Fixes CID732184
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:35:16 +02:00
Michael Niedermayer
378a5b9c5f ffm_write_write_index: check lseek() return code
Fixes CID732185
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:23:16 +02:00
Michael Niedermayer
7fd65104f4 ffm_seek: fix division by zero
Fixes CID732202
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:14:43 +02:00
Michael Niedermayer
657998b5ee libavfilter/lavfutils: remove useless NULL check on format context
Fixes: CID733804
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:00:31 +02:00
Michael Niedermayer
fd9e88fe60 libavfilter/lavfutils: remove useless NULL check on codec context
The code would crash before if it was NULL

Fixes CID733804
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 20:00:20 +02:00
Michael Niedermayer
a4fe661157 mov_probe: fix integer overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 17:50:14 +02:00
Paul B Mahol
9b762e2cba idcinvideo: remove redundant " id CIN Video: " from av_log()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-17 14:09:47 +00:00
Justin Ruggles
abd8b9e7e0 libmp3lame: resize the output buffer if needed
The LAME API documentation for the required buffer size refers to the size for
a single encode call. However, we store multiple frames in the same output
buffer but only read 1 frame at a time out of it. As a result, the buffer size
given in lame_encode_buffer() is actually smaller than what it should be.
Since we do not know how many frames it will end up buffering, it is best to
just reallocate if needed.
2012-10-17 09:59:13 -04:00
Michael Niedermayer
775d41b617 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  configure: Add support for Tilera processors
  wavdec: check size before reading the data, not after.

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 15:53:42 +02:00
Michael Niedermayer
940ee63630 Merge commit '79922d7237aba2b8c6abbd2e06a0c08e4f498ad4'
* commit '79922d7237aba2b8c6abbd2e06a0c08e4f498ad4':
  wav: do not fail on empty INFO tags

Conflicts:
	libavformat/wavdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 15:52:04 +02:00
Michael Niedermayer
df5e089da9 Merge commit '31c54711cc3f1484af101d629bbb805820d37ad1'
* commit '31c54711cc3f1484af101d629bbb805820d37ad1':
  lavf: split wav muxer and demuxer into separate files.

Conflicts:
	libavformat/wavdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 15:46:08 +02:00
Michael Niedermayer
d8cfa98358 Merge commit '58b619c8a226cc4564ad5af291bc99a04f89ee56'
* commit '58b619c8a226cc4564ad5af291bc99a04f89ee56':
  wav muxer: write metadata

Conflicts:
	Changelog
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 15:16:23 +02:00
Michael Niedermayer
c079da5073 Merge commit '0bca0283ccded5e32da143a462168ad1988a58fd'
* commit '0bca0283ccded5e32da143a462168ad1988a58fd':
  riff: do not write empty INFO tags

Conflicts:
	tests/ref/fate/vsynth1-cljr
	tests/ref/fate/vsynth1-ffvhuff
	tests/ref/fate/vsynth1-h261
	tests/ref/fate/vsynth1-h263
	tests/ref/fate/vsynth1-h263-obmc
	tests/ref/fate/vsynth1-h263p
	tests/ref/fate/vsynth1-huffyuv
	tests/ref/fate/vsynth1-jpegls
	tests/ref/fate/vsynth1-mjpeg
	tests/ref/fate/vsynth1-mpeg4-adap
	tests/ref/fate/vsynth1-mpeg4-adv
	tests/ref/fate/vsynth1-mpeg4-error
	tests/ref/fate/vsynth1-mpeg4-nr
	tests/ref/fate/vsynth1-mpeg4-qpel
	tests/ref/fate/vsynth1-mpeg4-qprd
	tests/ref/fate/vsynth1-mpeg4-rc
	tests/ref/fate/vsynth1-mpeg4-thread
	tests/ref/fate/vsynth1-msmpeg4
	tests/ref/fate/vsynth1-msmpeg4v2
	tests/ref/fate/vsynth1-rgb
	tests/ref/fate/vsynth1-wmv1
	tests/ref/fate/vsynth1-wmv2
	tests/ref/fate/vsynth1-yuv
	tests/ref/fate/vsynth2-cljr
	tests/ref/fate/vsynth2-ffvhuff
	tests/ref/fate/vsynth2-h261
	tests/ref/fate/vsynth2-h263
	tests/ref/fate/vsynth2-h263-obmc
	tests/ref/fate/vsynth2-h263p
	tests/ref/fate/vsynth2-huffyuv
	tests/ref/fate/vsynth2-jpegls
	tests/ref/fate/vsynth2-mjpeg
	tests/ref/fate/vsynth2-mpeg4-adap
	tests/ref/fate/vsynth2-mpeg4-error
	tests/ref/fate/vsynth2-mpeg4-nr
	tests/ref/fate/vsynth2-mpeg4-qpel
	tests/ref/fate/vsynth2-mpeg4-qprd
	tests/ref/fate/vsynth2-mpeg4-rc
	tests/ref/fate/vsynth2-mpeg4-thread
	tests/ref/fate/vsynth2-msmpeg4
	tests/ref/fate/vsynth2-msmpeg4v2
	tests/ref/fate/vsynth2-rgb
	tests/ref/fate/vsynth2-wmv1
	tests/ref/fate/vsynth2-wmv2
	tests/ref/fate/vsynth2-yuv
	tests/ref/lavf/avi
	tests/ref/seek/h261_avi
	tests/ref/seek/h263_avi
	tests/ref/seek/h263p_avi
	tests/ref/seek/lavf_avi
	tests/ref/seek/mjpeg_avi
	tests/ref/seek/mpeg4_adap_avi
	tests/ref/seek/mpeg4_error_avi
	tests/ref/seek/mpeg4_nr_avi
	tests/ref/seek/mpeg4_qpel_avi
	tests/ref/seek/mpeg4_qprd_avi
	tests/ref/seek/mpeg4_rc_avi
	tests/ref/seek/mpeg4_thread_avi
	tests/ref/seek/msmpeg4_avi
	tests/ref/seek/msmpeg4v2_avi
	tests/ref/seek/wmv1_avi
	tests/ref/seek/wmv2_avi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 14:43:26 +02:00
Michael Niedermayer
fadfbb354b Merge commit '71e92414bfd79e56ea6fff174a665ff7b9b86e68'
* commit '71e92414bfd79e56ea6fff174a665ff7b9b86e68':
  lavf: move RIFF INFO tag writing from avienc to riff
  avconv: fix disabling auto mappings with -map_metadata

Conflicts:
	ffmpeg_opt.c
	libavformat/riff.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 14:30:25 +02:00
Michael Niedermayer
d6e87190fd Merge commit 'a25d912dca9cd553440167e0476c47581359c0fc'
* commit 'a25d912dca9cd553440167e0476c47581359c0fc':
  avcodec_encode_audio(): fix invalid free
  pcm-mpeg: correct bitrate calculation
  ffv1: K&R formatting cosmetics
  fate: Add rangecoder test
  network: #include stdint.h in network.h
  nut: export codec_tag provided by rawvideo
  avserver: move avserver-specific code from ffmdec.c to avserver.c

Conflicts:
	ffserver.c
	libavcodec/ffv1.c
	libavformat/ffmdec.c
	libavformat/nutenc.c
	tests/ref/lavfi/crop
	tests/ref/lavfi/crop_scale
	tests/ref/lavfi/crop_scale_vflip
	tests/ref/lavfi/crop_vflip
	tests/ref/lavfi/null
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_crop
	tests/ref/lavfi/pixfmts_hflip
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_pad
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip
	tests/ref/lavfi/scale200
	tests/ref/lavfi/scale500
	tests/ref/lavfi/vflip
	tests/ref/lavfi/vflip_crop
	tests/ref/lavfi/vflip_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 14:17:55 +02:00
Paul B Mahol
1ade37ae9c lavc/tta: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-17 12:11:34 +00:00
Paul B Mahol
d6ea59b860 tta: datalen is unsigned integer per reference library
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-17 11:58:08 +00:00
Michael Niedermayer
364c60bf64 sws-test: parse command line args before initing contexts
This fixes parsing comand line args after ref

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 11:56:36 +02:00
Clément Bœsch
711ffb84df lavf/swfdec: support DefineBitsLossless{,2} tag. 2012-10-17 07:49:17 +02:00
Michael Niedermayer
4e2e3d943e ffv1: fix packed rgb with 1.3
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 03:19:11 +02:00
Michael Niedermayer
adbb75dbd8 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>
2012-10-17 02:48:30 +02:00
Michael Niedermayer
7b8fd29816 examples/muxing: fix video pts
Fixes Ticket1801
Based on suggestion from AztecC
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 02:40:00 +02:00
Derek Buitenhuis
c75848cd4c configure: Add support for Tilera processors
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-16 18:24:18 -04:00
Michael Niedermayer
5d2b885074 lavfi: limit matching w/h/fmt asserts to non scale filters
This fixes a regression with the scale filters input changing.
In the long run filters should get a flag to indicate support of this
and then this flag be used here.
But the regression should not be left standing until thats done.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 00:06:12 +02:00
Michael Niedermayer
6cbb8a450f libavfilter/buffersrc: Do not fail hard on changes of input parameters.
Several filters support this already.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 00:06:12 +02:00
Michael Niedermayer
3e0b29ccd0 ffmpeg: Make video filter graph reinit user selectable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-17 00:06:12 +02:00
Michael Niedermayer
a07e9d72a1 yuvPlanartouyvy_c: fix sign extension
Fixes CID732281
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 21:06:24 +02:00
Michael Niedermayer
a30972609c yuvPlanartoyuy2_c: fix sign extension
Fixes CID732282
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 20:50:53 +02:00
Michael Niedermayer
cb65b32c97 mp3enc: remove unneeded null ptr check
Fixes: CID733746
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 20:27:16 +02:00
Michael Niedermayer
6d55a40b00 mov: print warning if ff_get_wav_header() fails
Fixes CID717497
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 20:21:31 +02:00
Michael Niedermayer
24d6af0f7e sierravmd: flip reduce arg order.
This should make no difference but might help static analyzers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 20:03:37 +02:00
Michael Niedermayer
de6c150444 nut: fix int32 overflow
Fixes CID700574
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 19:59:01 +02:00
Michael Niedermayer
340305646a riff: fix division by zero for G726
Fixes CID717752
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 19:56:05 +02:00
Michael Niedermayer
9de5b11d58 swr-test: fix division by 0
Fixes CID733739
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 19:40:57 +02:00
Michael Niedermayer
dd3e5baa59 swr-test: check pointers before use
Fixes: CID733807, CID733806
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 19:39:25 +02:00
Anton Khirnov
a43283b6f4 wavdec: check size before reading the data, not after. 2012-10-16 18:52:21 +02:00
Anton Khirnov
79922d7237 wav: do not fail on empty INFO tags
Fixes Bug 379

CC: libav-stable@libav.org
2012-10-16 18:52:14 +02:00
Anton Khirnov
31c54711cc lavf: split wav muxer and demuxer into separate files. 2012-10-16 18:52:07 +02:00
Victor Vasiliev
58b619c8a2 wav muxer: write metadata
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-16 18:51:56 +02:00
Victor Vasiliev
0bca0283cc riff: do not write empty INFO tags
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-16 18:51:16 +02:00
Victor Vasiliev
71e92414bf lavf: move RIFF INFO tag writing from avienc to riff
It will be useful in the wav muxer.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-16 18:50:36 +02:00
Anton Khirnov
a119c64e38 avconv: fix disabling auto mappings with -map_metadata
CC: libav-stable@libav.org
2012-10-16 18:49:59 +02:00
Rafaël Carré
a25d912dca avcodec_encode_audio(): fix invalid free
Since 2bc0de385, AVFrame needs to be initialized
before calling avcodec_get_frame_defaults().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-10-16 18:49:31 +02:00
Christian Schmidt
4a7429203a pcm-mpeg: correct bitrate calculation
Bitrate calculation is off since the bluray spec always specifies
an even number of coded channels. This was honored in the decoder,
but not for bitrate calculation.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-16 16:03:03 +02:00
Luca Barbato
9a978b334b ffv1: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-16 15:45:55 +02:00
Diego Biurrun
c0a6cac292 fate: Add rangecoder test 2012-10-16 15:45:55 +02:00
Mans Rullgard
1fbaabefc4 network: #include stdint.h in network.h
This header uses various types provided by stdint.h without
explicitly including it.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-16 14:45:29 +01:00
Luca Barbato
21de6ba5c1 nut: export codec_tag provided by rawvideo
Raw audio does not provide valid audio tags while rawvideo does.
The fate refs have to be updated because it undoes the previous tag
change.
2012-10-16 15:26:31 +02:00
Mans Rullgard
3b20eb25e7 avserver: move avserver-specific code from ffmdec.c to avserver.c
This way avserver only depends on the data structures of the ffm
demuxer, which it already does, and not also on private functions
being exported by the library.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-16 14:20:05 +01:00
Michael Niedermayer
8227d36bd3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: simplify linking tools with cmdutils.o
  tiny_psnr: fix range calculation for sample size of 32 bits

Conflicts:
	Makefile
	tests/tiny_psnr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 14:15:16 +02:00
Michael Niedermayer
83962004f7 Merge commit '3dc06b6972cf389269e9c36ff0a4373f80f7149b'
* commit '3dc06b6972cf389269e9c36ff0a4373f80f7149b':
  tiny_psnr: check for specified sample size less than 1
  fate: improve md5sum utility selection
  rangecoder-test: Drop timer output that clutters stderr

Conflicts:
	tests/tiny_psnr.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 14:04:14 +02:00
Michael Niedermayer
5717562c78 Merge commit 'c1fcfdec75468009dc7de29a5d1c6adf3b2ef77d'
* commit 'c1fcfdec75468009dc7de29a5d1c6adf3b2ef77d':
  rangecoder-test: Return in case of an error
  build: simplify enabling of compat objects

Conflicts:
	configure
	libavutil/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 13:57:10 +02:00
Stefano Sabatini
25f3827e1d tools/ffeval: do not use UNIX-specific /dev/std{in,out} files
Should fix behavior when the /dev/ directory is not defined (e.g. on
Windows).
2012-10-16 13:51:44 +02:00
Stefano Sabatini
7ca102a7d7 examples: add README file with simple compilation instructions 2012-10-16 13:34:48 +02:00
Michael Niedermayer
d15be9108e Merge commit '66a1ccd7467ab1913cd8877114c6d4c2588bb12f'
* commit '66a1ccd7467ab1913cd8877114c6d4c2588bb12f':
  configure: simplify argument handling in check_ld

Conflicts:
	configure

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 13:27:19 +02:00
Michael Niedermayer
9270a2b374 Merge commit '4c995fafd861f537360b3717901cdbed6a6844e7'
* commit '4c995fafd861f537360b3717901cdbed6a6844e7':
  configure: simplify get_version() function
  build: support asan and tsan toolchain shortcuts
  rmdec: Move SIPR code shared with Matroska demuxer to a separate file

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 13:20:46 +02:00
Andrew Euell
36b3b2376d gitignore: add *.dylib for those of us on Darwin/OS X systems.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 04:14:09 +02:00
Michael Niedermayer
4cc4ca5847 mandelbrot: fix inner=period coloring routine
Fixes CID717571
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 04:00:55 +02:00
Michael Niedermayer
9c669672c7 x86/motion_est: widen before multiply.
This fixes CID700558, CID700557, CID700556
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 03:09:28 +02:00
Michael Niedermayer
3896cd11a1 mxfenc: explicitly truncate continuity count.
The field is intended to overflow and have only its low 16bits stored.
This commit avoids the implicit truncation and clarifies that its
intended and not a bug

S326m section 7.6 ("Continuity count"):
> The continuity count word consists of 2 bytes allow-
> ing a number to be created by a modulo 65536
> counter (bits C15 to C0 in figure 7). The continuity
> count shall increment by 1 for each newly transmit-
> ted content package with the same SDTI source and
> destination addresses. The continuity count may
> be used to detect whether the content package
> sequence has been broken by an operation such as
> a routing switch.

Approved-by: Tjoppen
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 03:01:15 +02:00
Michael Niedermayer
1fe45903b8 msvideo1enc: fix interframe encoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 02:22:27 +02:00
Michael Niedermayer
ba31e59e83 ffmpeg: Override r_frame_rate by corrected timebase only for interlaced streams
Fixes Ticket1664

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 01:04:42 +02:00
Michael Niedermayer
901f4bb6fc utils: consider mpeg4 in mp4/mov to have a unreliable timebase
Partly fixes Ticket1664

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-16 01:04:02 +02:00
Michael Niedermayer
f5581266f7 ra288: assert order to be withinn supported range in do_hybrid_window()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 23:55:54 +02:00
Michael Niedermayer
db3a0aae9f msvideo1enc: fix initial keyframe value
keyframe was never set to anything but 1

Fixes CID733730
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 23:52:08 +02:00
Mans Rullgard
07b3790d36 build: simplify linking tools with cmdutils.o
This avoids repeating cmdutils.o in both the prerequisites and
the link command.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 22:28:07 +01:00
Mans Rullgard
bf868c4a9b tiny_psnr: fix range calculation for sample size of 32 bits
For a sample size of 32 bits, the shift would overflow producing
undefined results.  Incidentally, in the only test currently using
32-bit samples, the output matches the reference exactly on most
systems meaning the bad 'max' value is never used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 21:41:25 +01:00
Mans Rullgard
3dc06b6972 tiny_psnr: check for specified sample size less than 1
A zero or negative sample size is impossible and should be
reported as an error.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 21:40:18 +01:00
Stefano Sabatini
faa1cb50ed lavfi/ass: extend syntax for ass filter
Make the filter accept named options for the first argument, and update
documentation accordingly.
2012-10-15 22:40:08 +02:00
Mans Rullgard
099294577c fate: improve md5sum utility selection
The 'md5sum' command is used with the -b flag so the presence test
must also use this flag.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 21:40:08 +01:00
Stefano Sabatini
22c5cc239c tools/ffeval: include compat/getopt.c in case of missing system getopt() 2012-10-15 21:58:02 +02:00
Stefano Sabatini
a726ac9a11 examples/muxing: extend usage notice 2012-10-15 21:36:14 +02:00
Michael Niedermayer
0cc3cd5c65 Merge branch 'docu' of https://github.com/rdp/FFmpeg
* 'docu' of https://github.com/rdp/FFmpeg:
  docu: add word resize to scale filter, to make searching for the word resize simpler
  docu: change verb flite
  docu: add flite ffmpeg example
  docu: fix flite example

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 21:22:10 +02:00
Diego Biurrun
f1be514540 rangecoder-test: Drop timer output that clutters stderr 2012-10-15 21:16:36 +02:00
Diego Biurrun
c1fcfdec75 rangecoder-test: Return in case of an error 2012-10-15 21:15:17 +02:00
Michael Niedermayer
547ec4d303 ffmpeg: check timebase validity before using it.
Found-by: Daemon404
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 20:35:45 +02:00
Nicolas Noirbent
af32a1f2d1 doc/filters: pad examples should be a @subsection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 20:35:45 +02:00
rogerdpack
dfd085aae2 docu: add word resize to scale filter, to make searching for the word resize simpler
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2012-10-15 11:28:45 -06:00
rogerdpack
a8eaa9ebc6 docu: change verb flite
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2012-10-15 11:26:39 -06:00
rogerdpack
7f5a78a0da docu: add flite ffmpeg example
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2012-10-15 11:26:07 -06:00
rogerdpack
d9d5470636 docu: fix flite example
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
2012-10-15 11:24:08 -06:00
Paul B Mahol
3ca8a23288 lavf/audiointerleave: check return value of av_new_packet()
Fixes CID733709.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 17:03:41 +00:00
Paul B Mahol
bb502411dd nutdec: check return value of av_new_packet()
Fixes CID733173.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 17:03:41 +00:00
Tomas Härdin
8cbb8f5357 dv: Set FS flag from AVFrame.top_field_first
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 18:53:44 +02:00
Tomas Härdin
7b383bd9d7 dvdec: Set top_field_first from FS flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 18:53:44 +02:00
Tomas Härdin
2b4bbd12c2 dvdec: Move the VSC pack parsing to before avctx->execute()
This allows the next commit to parse the FS flag.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 18:53:44 +02:00
Tim Nicholson
0ee57f8b14 rawdec.c: Extract interlace information from quicktime flag if it exisits.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 18:53:44 +02:00
Mans Rullgard
84e65c763d build: simplify enabling of compat objects
Add a configure function to pull in a compat object and set up
redirects in one operation.  This avoids duplicating conditions
across configure and makefiles.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 17:46:19 +01:00
Mans Rullgard
66a1ccd746 configure: simplify argument handling in check_ld
Use the existing filter functions instead of open-coding the
separation of general flags and libraries.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 17:46:18 +01:00
Mans Rullgard
4c995fafd8 configure: simplify get_version() function
awk alone can do this, no need for grep.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 17:46:18 +01:00
Luca Barbato
0fbb62a8e6 build: support asan and tsan toolchain shortcuts 2012-10-15 18:25:35 +02:00
Paul B Mahol
d7d5b5dfc1 flvdec: check return value of create_stream()
Fixes null pointer dereference. Fixes CID732242.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 15:59:53 +00:00
Paul B Mahol
295218f531 idcin: check chunk_size value before using it
Fixes integer overflow. Fixes CID732223.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 15:48:13 +00:00
Paul B Mahol
3f8148911c img2dec: check return value of av_new_packet()
Fixes CID703626.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 14:53:56 +00:00
Paul B Mahol
011f3892ff h264: use designated initializers for AVClass
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 13:43:33 +00:00
Stefano Sabatini
59e31aa2ca examples/muxing: provide more information in case of avcodec_open2 failure 2012-10-15 15:35:50 +02:00
Stefano Sabatini
6133149e0c examples/muxing: add missing error checks 2012-10-15 15:35:50 +02:00
Stefano Sabatini
e56b3a5ebb examples/muxing: fix case inconsistency in message 2012-10-15 15:35:49 +02:00
Paul B Mahol
e75357ea7c xbmenc: cosmetics: reindent
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 13:28:23 +00:00
Paul B Mahol
5864fe62ef flacdec: replace -1 with AV_SAMPLE_FMT_NONE
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 13:26:47 +00:00
Michael Niedermayer
5c7a62aef5 movenc: fix tmcd parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 15:09:46 +02:00
Michael Niedermayer
5bac83dae8 shorten: fix U8 to be planar too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 15:09:46 +02:00
Paul B Mahol
916e40b5b4 smacker: return more meaningfull error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 12:48:38 +00:00
Michael Niedermayer
ae237a117a Merge remote-tracking branch 'qatar/master'
* qatar/master:
  swscale: try to use mmap only if available
  configure: check for mprotect
  wmapro: use planar sample format
  wmalossless: output in planar sample format
  wmadec: use float planar sample format output
  shorten: use planar sample format
  lavc: update documentation for AVFrame.extended_data

Conflicts:
	libavcodec/shorten.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 14:09:35 +02:00
Diego Biurrun
7e68c91e24 rmdec: Move SIPR code shared with Matroska demuxer to a separate file 2012-10-15 13:34:07 +02:00
Paul B Mahol
4f5e5a0513 lavf/txd: cosmetics: fix identation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-15 08:12:25 +00:00
Clément Bœsch
b08273c9ca lavf/mkv: avoid negative ts by default.
This fixes playback in some circumstances (like webm in firefox).
Regression after 2c34367b.

It is also matching the Matroska specifications:
http://matroska.org/technical/specs/notes.html, "The quick eye will
notice that if a Cluster's Timecode is set to zero, it is possible to
have Blocks with a negative Raw Timecode. Blocks with a negative Raw
Timecode are not valid."
2012-10-15 09:19:21 +02:00
Stefano Sabatini
304c37b216 tests: add fate-xface test 2012-10-15 08:32:34 +02:00
Stefano Sabatini
cd559bb49a lavc: add xface image decoder and encoder
Based on libcompface code by James Ashton <James.Ashton@anu.edu.au>, and
relicensed to LGPL with the author's consent.
2012-10-15 08:32:18 +02:00
Mans Rullgard
95cd815c36 swscale: try to use mmap only if available
Some systems, e.g. Minix, have sys/mman.h defining MAP_ANONYMOUS without
providing (working) mmap and friends.  The mmx filter generation code
checks only for MAP_ANONYMOUS, not for availability of mmap itself which
leads to build errors on aforementioned systems.

This changes the conditional compilation to use mmap only if all the
required functions are available.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 02:39:49 +01:00
Mans Rullgard
e98b02de5f configure: check for mprotect
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 02:39:49 +01:00
Michael Niedermayer
35782bfbca h264: Change asserts to av_asserts in ff_h264_fill_default_ref_list()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 03:22:00 +02:00
Michael Niedermayer
151469db33 j2kenc: remove unneeded dereference
Fixes CID703723
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 03:18:08 +02:00
Michael Niedermayer
1b8f4d773c ffmpeg: use framerate not fieldrate as filter input.
Fixes a problem described in Ticket1065

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-15 00:40:36 +02:00
Michael Niedermayer
a63d7213b3 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>
2012-10-14 23:40:14 +02:00
Justin Ruggles
f9d732c264 wmapro: use planar sample format 2012-10-14 16:48:23 -04:00
Justin Ruggles
2725ce7c7c wmalossless: output in planar sample format 2012-10-14 16:48:23 -04:00
Justin Ruggles
7ebfe5b44a wmadec: use float planar sample format output 2012-10-14 16:48:23 -04:00
Justin Ruggles
977eb7d567 shorten: use planar sample format 2012-10-14 16:48:22 -04:00
Michael Niedermayer
bc077ca6b5 j2kdec: remove unneeded operation
Fixes CID717554
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 22:16:31 +02:00
Michael Niedermayer
1e6cbb01e9 j2kdec: make curtilenum integer.
This fixes a potential crash.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 22:16:31 +02:00
Michael Niedermayer
0de0ae5a20 tag_tree_decode: check node being non null
Fixes CID717843
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 22:16:31 +02:00
Michael Niedermayer
a6cac64f69 compute_lpc_coefs: assert that normalize and fail have a supported combination
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 22:16:31 +02:00
Michael Niedermayer
93ef29b6f4 noise_bsf: fix division by 0
Fixes CID733737
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 21:45:42 +02:00
Justin Ruggles
8441909f49 lavc: update documentation for AVFrame.extended_data 2012-10-14 15:00:45 -04:00
Michael Chinen
c73b1a1d80 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>
2012-10-14 20:39:10 +02:00
Thilo Borgmann
41bf943f70 bgmc: fix sizeof arguments (should fix CIDs: 700724 and 608084)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 20:37:43 +02:00
Michael Niedermayer
45bd0d15f4 lavf: fix fps detection with PAFF H.264
Fixes Ticket1065
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 19:20:23 +02:00
Hendrik Leppkes
572781b25f h264: fix parsing of old lossless profile (profile_idc == 144)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 16:04:10 +02:00
Peter Ross
6bf43441f0 eatgq: raise error on unsupported macroblock mode
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 16:01:22 +02:00
Peter Ross
0ea55365b9 ansi: by design nb_args may exceed the size of the args array, so guard accordingly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 15:56:36 +02:00
Michael Niedermayer
d6f6a7557c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avutil: Do not make ff_ symbols globally visible.
  avutil: Rename ff_set_systematic_pal2() ---> avpriv_set_systematic_pal2()
  build: tms470: work around glibc math.h problems
  configure: improve tms470 compiler usage with glibc

Conflicts:
	libavcodec/bmpenc.c
	libavcodec/rawdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 15:11:34 +02:00
Paul B Mahol
de3b1116da eatgq: fix small overread
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-14 12:54:10 +00:00
Michael Niedermayer
82c0055c5e Merge commit 'b5198a2637b7b45b0049a1d4b386a06f016f2520'
* commit 'b5198a2637b7b45b0049a1d4b386a06f016f2520':
  configure: tms470: add mapping for -mfpu=vfpv3-d16 flag
  configure: recognise Minix as OS
  configure: work around bug in ash shell
  eval-test: make table static const
  lavr: handle clipping in the float to s32 conversion
  nut: support pcm codecs not mapped in avi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 14:46:13 +02:00
Michael Niedermayer
db51c65961 Merge commit '1bd442c276e6688b43777a198cad0d7e3a92123f'
* commit '1bd442c276e6688b43777a198cad0d7e3a92123f':
  nut: prioritize native tags

Conflicts:
	tests/ref/lavfi/crop
	tests/ref/lavfi/crop_scale
	tests/ref/lavfi/crop_scale_vflip
	tests/ref/lavfi/crop_vflip
	tests/ref/lavfi/null
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_crop
	tests/ref/lavfi/pixfmts_hflip
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_pad
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip
	tests/ref/lavfi/scale200
	tests/ref/lavfi/scale500
	tests/ref/lavfi/vflip
	tests/ref/lavfi/vflip_crop
	tests/ref/lavfi/vflip_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 14:31:55 +02:00
Michael Niedermayer
03760297b1 doc/nut: Clarify what/where is the official nut specification
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 14:05:41 +02:00
Paul B Mahol
039341eb43 wv: do not report invalid stream duration
If total number of samples is -1 it means stream is of unknown length.

Fixes ticket #1777.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-14 10:41:16 +00:00
Paul B Mahol
dd5aff001e svq1dec: use log level that have more common sense
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-14 09:21:48 +00:00
Paul B Mahol
7b9fc769e4 svq1dec: use more common way to check if result is not zero
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-14 09:18:36 +00:00
Paul B Mahol
8f4020d8a4 svq1dec: check return value of get_bits1() in more common way
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-14 09:14:35 +00:00
Paul B Mahol
e2bf1082cc svq1dec: return more meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-14 09:12:19 +00:00
Michael Niedermayer
d31098113f mp3enc: fix signed C99 overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 05:52:50 +02:00
Michael Niedermayer
2217a2249d dpxenc: fix signed c99 overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 05:48:02 +02:00
Michael Niedermayer
7a32ab5ed0 sws: get rid of C99 signed overflows try #2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 05:16:59 +02:00
Michael Niedermayer
693097c355 paf: avoid C99 overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 04:01:41 +02:00
Michael Niedermayer
3ee8eefbf2 sws: avoid signed C99 overflows
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 03:59:45 +02:00
Michael Niedermayer
555f352f99 swr/rematrix: fix C99 left shift overflow
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 03:48:05 +02:00
Michael Niedermayer
014b178f84 g723_1: fix overflow in square_root()
the intermediate does not fit in a signed 32bit int

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 03:42:28 +02:00
Michael Niedermayer
2fed05f53a avoid more "0xFF << 24" as it is considered a integer overflow in C99
missed these in my previous search and replace

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 03:34:16 +02:00
Michael Niedermayer
b12d92efd6 avoid "0xFF << 24" as it is considered a integer overflow in C99
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 03:26:31 +02:00
Michael Niedermayer
d3d715ff13 mpeg4videodec: Recalculate timebase in case of guessing time increment bits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 03:26:31 +02:00
Clément Bœsch
096d96ffda lavfi/select/scene: use pointer increments instead of y*linesize. 2012-10-14 02:09:05 +02:00
Clément Bœsch
0852648301 lavfi/select/scene: fix potential overread.
Also make sure we use the actual width of the image and not the whole
linesize.
2012-10-14 02:08:06 +02:00
Clément Bœsch
dff826b4a8 lavfi/select/scene: move out convoluted sad variable init from loop. 2012-10-14 01:23:00 +02:00
Thilo Borgmann
feaff427c0 alsdec: fix clipping of weightings for MCC decoding
Fixes CID717905
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 00:18:46 +02:00
Michael Niedermayer
20ec0d2a75 mpegvideo: fix motion_val checks
Fixes CID604124
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 00:08:53 +02:00
Michael Niedermayer
f4d73f0fb5 mpegvideo: check return value of ff_MPV_common_init()
Fixes CID703621
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 00:08:44 +02:00
Michael Niedermayer
8cda27b753 avcodec_find_best_pix_fmt_of_2: fix handling or PIX_FMT_NONE
Fixes CID733775
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-14 00:08:44 +02:00
Michael Niedermayer
b3eb4f54c0 flashsv: check deflateInit() return value
Fixes CID703620
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 22:48:32 +02:00
Michael Niedermayer
6581b6cef4 dnxhdenc: assert ff_dnxhd_get_cid_table() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 22:40:14 +02:00
Michael Niedermayer
1037e484f0 dnxhddata_ Fix mixup of sizeof() and array elements in ff_dnxhd_find_cid()
Fixes CID717910
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 22:36:15 +02:00
Michael Niedermayer
670b927aa2 ffv1: make sure gob_count is not 0
Fixes division by 0
Fixes CID733736

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 22:33:40 +02:00
Michael Niedermayer
f70a651b3f sws-test: raise limigts a bit.
these cases arent used but theres no point in failing on them

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 21:19:52 +02:00
Michael Niedermayer
3689ec3d28 pp: avoid overflow in w*h
Fixes CID700580
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 21:17:43 +02:00
Michael Niedermayer
c0f0bec2f2 sws-test: check W/H
Fixes CID733834
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 21:17:43 +02:00
Paul B Mahol
2c85727f6c lavc/codec_desc: add/update properties of some codecs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 18:50:23 +00:00
Michael Niedermayer
225d3cc1cc ffeval: avoid folding EOF onto a valid char
Fixes CID733704
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 20:35:56 +02:00
Michael Niedermayer
80db07adfe probetest: check command line arguments
Fixes CID733835
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 20:35:56 +02:00
Michael Niedermayer
8ab0b9caba trasher: check seek return value.
Fixes CID733726
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 20:35:56 +02:00
Diego Biurrun
7638f0b2fe avutil: Do not make ff_ symbols globally visible. 2012-10-13 20:01:56 +02:00
Paul B Mahol
a5e0046a73 xbmdec: s/av_reverse/ff_reverse
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 18:00:48 +00:00
Diego Biurrun
52d113ee06 avutil: Rename ff_set_systematic_pal2() ---> avpriv_set_systematic_pal2()
Functions used across libraries should have avpriv_ and not ff_ prefixes.
2012-10-13 19:59:20 +02:00
Mans Rullgard
b5198a2637 configure: tms470: add mapping for -mfpu=vfpv3-d16 flag
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 18:21:36 +01:00
Mans Rullgard
b6f8d635f2 build: tms470: work around glibc math.h problems
The glibc definitions of INFINITY and NAN do not work with the
tms470 compiler, nor do our usual fallbacks.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 18:21:36 +01:00
Mans Rullgard
5ab432fa35 configure: improve tms470 compiler usage with glibc
Apply flags to work around glibc quirks only if glibc is detected,
and add a few more such flags.

Do not mess with as/ld settings in probe_cc.  This is not the
proper place.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 18:21:36 +01:00
Michael Niedermayer
183117fed7 libavutil: loose idiotic circular dependancies between version and avutil.h
This fixes the recently appearing PIX_FMT warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 18:47:18 +02:00
Dmitry Samonenko
083c7bf701 sdp: output speex optional vbr parameter
Optional sdp speex payload parameter is outputed only when
data is encoded. It's not printed in case of stream copy.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 18:47:18 +02:00
Michael Niedermayer
c45b829d52 tests: fix checksums for png aspect ratio change
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 18:47:18 +02:00
Paul B Mahol
93931143fe lavc: return s->get_buffer() error code if it errors out
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 16:03:03 +00:00
Paul B Mahol
f58f90238f pngenc: write sample aspect ratio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 16:02:09 +00:00
Paul B Mahol
8288c2b6cb pngdec: read sample aspect ratio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 16:02:09 +00:00
Michael Niedermayer
2a56e65c3b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vc1: Use codec ID from AVCodecContext while parsing frame header
  avplay: support mid-stream sample rate changes

Conflicts:
	ffplay.c
	libavcodec/vc1.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 17:09:13 +02:00
Michael Niedermayer
d0707677fa ffplay: use audio parameters from the decoded frame instead of AVCodecContext
Based on commit by Justin Ruggles (the changed code is too different to apply as is)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 16:47:50 +02:00
Michael Niedermayer
15ef1cfe64 Merge commit 'f5962229bfcb14c2879e69ccdf7f1a4934168609'
* commit 'f5962229bfcb14c2879e69ccdf7f1a4934168609':
  avplay: use audio parameters from the decoded frame instead of AVCodecContext
  dca: allocate a secondary buffer for extra channels when downmixing
  configure: use utilities from /usr/xpg4/bin if it exists
  avstring-test: fix memory leaks

Conflicts:
	ffplay.c
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 16:39:42 +02:00
Paul B Mahol
6571833d1a smjpegdec: use url_feof()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 14:15:58 +00:00
Michael Niedermayer
18884f159b Merge commit '0a7005bebd23ade7bb852bce0401af1a8fdbb723'
* commit '0a7005bebd23ade7bb852bce0401af1a8fdbb723':
  rtpdec_xiph: fix function return type
  smjpeg: fix type of 'ret' variable in smjpeg_read_packet()
  mpegvideo: remove write-only variable
  Use proper return values in case of missing features
  fate: add avstring test
  rangecoder-test: Set error message log level to error, instead of debug

Conflicts:
	libavcodec/aacdec.c
	libavcodec/amrnbdec.c
	libavcodec/mpegvideo.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 15:42:49 +02:00
Michael Niedermayer
c55bebe2cc Merge commit '90558e848a29ef1e85ecb1832ad9a26eebe958e0'
* commit '90558e848a29ef1e85ecb1832ad9a26eebe958e0':
  rangecoder: K&R formatting cosmetics

Conflicts:
	libavcodec/rangecoder.c
	libavcodec/rangecoder.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 15:35:05 +02:00
Michael Niedermayer
85fe70b64c Merge commit 'ca411fc1d34329cd17b28627f697e391ae52073f'
* commit 'ca411fc1d34329cd17b28627f697e391ae52073f':
  avcodec: Remove broken MMI optimizations

Conflicts:
	arch.mak
	configure
	libavcodec/avcodec.h
	libavcodec/mips/Makefile
	libavcodec/mips/dsputil_mmi.c
	libavcodec/mips/idct_mmi.c
	libavcodec/mips/mmi.h
	libavcodec/mips/mpegvideo_mmi.c
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 15:25:11 +02:00
Mans Rullgard
741a8b724e configure: recognise Minix as OS
No special setup is required for Minix.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 14:05:55 +01:00
Mans Rullgard
ac17ccf73a configure: work around bug in ash shell
The ash 'test' builtin misbehaves if the first operand of a binary
operator looks like a unary operator.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 14:05:55 +01:00
Michael Niedermayer
b4ca1b159f Merge commit 'bc4620e5d61a4dd9a1f654fadd281a172aab04be'
* commit 'bc4620e5d61a4dd9a1f654fadd281a172aab04be':
  Remove libmpeg2 #define remnants
  De-doxygenize some top-level files

Conflicts:
	ffmpeg.c
	ffmpeg.h
	ffmpeg_filter.c
	ffplay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 15:01:39 +02:00
Michael Niedermayer
d6c342fdc0 Merge commit 'd5c62122a7b26704bf867a1262df358623bf5edf'
* commit 'd5c62122a7b26704bf867a1262df358623bf5edf':
  Move av_reverse table to libavcodec

Conflicts:
	libavcodec/asvenc.c
	libavcodec/vble.c
	libavutil/common.h
	libavutil/mathematics.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 14:35:42 +02:00
Michael Niedermayer
d197bd4f5e Merge commit '930c9d4373e0f3cb7c64fcfc129127a309f6d066'
* commit '930c9d4373e0f3cb7c64fcfc129127a309f6d066':
  avutil: Duplicate ff_log2_tab instead of sharing it across libs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 14:24:58 +02:00
Michael Niedermayer
3b0bb321a5 Merge commit 'f6c38c5f4ed6683a6a61db2ed418a68bbe5f5507'
* commit 'f6c38c5f4ed6683a6a61db2ed418a68bbe5f5507':
  avfilter: call x86 init functions under if (ARCH_X86), not if (HAVE_MMX)
  rtspdec: Set the default port for listen mode, if none is specified
  tscc2: Fix an out of array access
  rtmpproto: Fix an out of array write
  rtspdec: Fix use of uninitialized byte
  vp8: reset loopfilter delta values at keyframes.
  avutil: add yuva422p and yuva444p formats

Conflicts:
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 14:14:11 +02:00
Sami Pietilä
3cc0252732 vp8dec: reset loopfilter delta values at keyframes
while testing a VP8 encoder I found a mismatch between FFMPEG and libvpx
VP8 decoders. The reason for this mismatch is that FFMPEG doesn't reset
loopfilter delta values at keyframes. Patch that fixes the issue is below.
I've verified that the output of ffmpeg after this patch matches libvpx.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 12:43:24 +02:00
Mans Rullgard
74c39bc682 eval-test: make table static const
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 11:39:25 +01:00
Justin Ruggles
10e645e9cb lavr: handle clipping in the float to s32 conversion
We cannot clip to INT_MAX because that value cannot be exactly
represented by a float value and ends up overflowing during conversion
anyway. We need to use a slightly smaller float value, which ends up
with slightly inaccurate results for samples which clip or nearly clip,
but it is close enough. Using doubles as intermediates in the conversion
would be more accurate, but it takes about twice as much time.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-13 12:34:34 +02:00
Luca Barbato
1bd442c276 nut: prioritize native tags
Use native tags instead of avi ones, simplifies a lot raw video codecs
handling.
2012-10-13 12:33:18 +02:00
Luca Barbato
92281850a2 nut: support pcm codecs not mapped in avi
The native tags will be used when available.
2012-10-13 12:33:18 +02:00
Carl Eugen Hoyos
6254ffe0ca Allow autodetection of some dnxhd files that can be decoded correctly.
Fixes ticket #1807.
2012-10-13 11:59:37 +02:00
Paul B Mahol
e8b50385cf fate: update pcx reference
It changed because encoder now writes 0/1 for
sample aspect ratio instead of 0/0.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 09:07:12 +00:00
Paul B Mahol
79133fd0e5 pcxenc: store sample aspect ratio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 08:22:27 +00:00
Paul B Mahol
f2f711cde2 pcx: read sample aspect ratio
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 08:22:26 +00:00
Paul B Mahol
92b3d8bc53 bethsoftvideo: return meaningfull error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 08:07:41 +00:00
Paul B Mahol
efb0e4e7af truemotion2: use more meaningful return codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-13 07:55:50 +00:00
Mashiat Sarker Shakkhar
5d2be71b9e vc1: Use codec ID from AVCodecContext while parsing frame header
This fixes a segfault with samples that I have (both of them MPEG-TS). Looks like
avctx->codec is not being set during parsing.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-10-13 08:33:07 +02:00
Justin Ruggles
6304f78edf avplay: support mid-stream sample rate changes
Resample to the rate that was configured in SDL.
2012-10-13 00:19:00 -04:00
Justin Ruggles
f5962229bf avplay: use audio parameters from the decoded frame instead of AVCodecContext 2012-10-13 00:18:48 -04:00
Justin Ruggles
61d5313d94 dca: allocate a secondary buffer for extra channels when downmixing
The output AVFrame buffer only has data for the downmix channels.
Fixes a segfault when decoding dca with request_channels == 2.
2012-10-13 00:07:10 -04:00
Michael Niedermayer
ff814c75a3 ffserver: fix return value of add_codec()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 05:36:41 +02:00
Michael Niedermayer
8dc8994427 jpegls: increase run_index to 4
Fixes part of CID717913
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:54:04 +02:00
Michael Niedermayer
4acfe3d193 jpegls: fix off limit
Fixes part of CID717913
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:54:04 +02:00
Michael Niedermayer
9f9307ff2a rv30_decode_intra_types: make check tighter
This makes no differnce as the affected values cannot occur
But it will likely help static analyzers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:32:38 +02:00
Michael Niedermayer
3f01042142 ff_celp_lp_synthesis_filterf: change loop end check
This makes no difference for supported input but avoids a
out of array read with input that is never passed in currently

Fixes CID717919
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:32:38 +02:00
Michael Niedermayer
3f350a482f ff_celp_lp_synthesis_filterf: check that filter_length is within the supported range
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:32:38 +02:00
Michael Niedermayer
f657d495b0 rtpdec_qdm2: change one assert to av_assert0
Failure of this assert could lead to hard to debug behavior

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:32:37 +02:00
Michael Niedermayer
e47024d72f wtvdec: fix memleak on error
Fixes CID718002
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 02:37:47 +02:00
Michael Niedermayer
120b38b966 avio: redesign ffio_rewind_with_probe_data()
This prevents a double free

Fixes CID718285
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 02:08:59 +02:00
Michael Niedermayer
54b2d317ed ffv1: avoid checking a double for equality
if 0.0 != 0.0 a out of array read would occur, equal checks
with floating point may behave in such odd ways, though
this is very unlikely in a real implementation of a compiler

Fixes: CID718936
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 01:51:45 +02:00
Michael Niedermayer
d2a618ab22 af_pan: fix memleak of arg
Fixes CID718988
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 01:51:45 +02:00
Michael Niedermayer
f374e9989b vf_fade: fix memleaks of args
Fixes: CID718989
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 01:08:08 +02:00
Mans Rullgard
a77f01c725 configure: use utilities from /usr/xpg4/bin if it exists
Solaris defaults to non-standard utilities (grep, sed, ...) with
proper ones being in /usr/xpg4/bin.  Prefixing PATH with this
directory when it exists ensures we get correct variants.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 23:57:01 +01:00
Mans Rullgard
0daac647af avstring-test: fix memory leaks
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 23:51:12 +01:00
Michael Niedermayer
0f46825d98 ffserver: prevent nb_streams from becoming too large
Fixes CID732249

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 00:31:21 +02:00
Michael Niedermayer
c2340831b8 aacsbr: change order of operation to prevent out of array read
Fixes CID732250
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 00:31:21 +02:00
Georg Lippitsch
24778c32d8 Fix writing 12 bit DPX
The DPX encoder now writes 12 DPX that open correctly (tested with
ImageMagick), and also correspond to the 12 bit sample files at
http://samples.ffmpeg.org/image-samples/dpx_samples.zip

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 00:31:21 +02:00
Georg Lippitsch
05b7315412 Fix DPX decoder
Rewrite the DPX decoder to work with provided sample DPXs at
http://samples.ffmpeg.org/image-samples/dpx_samples.zip

The decoder could only decode 8 and 10 bit without alpha correctly,
failing or even crashing at other flavors. This patch aims to fix
these issues, properly decoding all variants of DPX provided in the
referenced DPX sample zip. For 10 and 12 bit, the alpha channel
is ignored, but decoding is still possible.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 00:31:21 +02:00
Mans Rullgard
0a7005bebd rtpdec_xiph: fix function return type
parse_packed_headers() returns either zero or a negative error code
so its return type must be signed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 22:21:10 +01:00
Mans Rullgard
366484fff1 smjpeg: fix type of 'ret' variable in smjpeg_read_packet()
The 'ret' variable is used for negative error codes so it should
be a signed type.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 22:21:10 +01:00
Mans Rullgard
7e76fc528d mpegvideo: remove write-only variable
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 22:21:10 +01:00
Clément Bœsch
cdfa926415 lavf/swf: transform the swf tags define in an enum. 2012-10-12 23:15:21 +02:00
Clément Bœsch
a1d2210deb lavf/swf: re-align after previous commit. 2012-10-12 23:15:12 +02:00
Clément Bœsch
91fad50f63 lavf/swf: define more tags.
Based on swf specs v10, page 271-273.
2012-10-12 23:15:08 +02:00
Clément Bœsch
cd78192d09 lavf/swfdec: return more meaningful error codes. 2012-10-12 23:15:05 +02:00
Michael Niedermayer
5e885275f1 mpeg4videodec: disable frame multithreading for GMC, its not implemented at all
This fixes race conditions in decoding MPEG-4 GMC files

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 22:53:22 +02:00
Clément Bœsch
0c40220b9d 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-10-12 21:59:06 +02:00
Diego Biurrun
90558e848a rangecoder: K&R formatting cosmetics 2012-10-12 20:56:54 +02:00
Diego Biurrun
ca411fc1d3 avcodec: Remove broken MMI optimizations
The code fails to compile and is broken beyond repair.
2012-10-12 20:56:54 +02:00
Diego Biurrun
bc4620e5d6 Remove libmpeg2 #define remnants 2012-10-12 20:56:54 +02:00
Diego Biurrun
717addecad Use proper return values in case of missing features 2012-10-12 20:56:54 +02:00
Diego Biurrun
c1ef30a6ba De-doxygenize some top-level files 2012-10-12 20:56:54 +02:00
Diego Biurrun
9e6ea3cef9 fate: add avstring test 2012-10-12 20:56:54 +02:00
Diego Biurrun
4c66af6141 rangecoder-test: Set error message log level to error, instead of debug 2012-10-12 20:56:54 +02:00
Diego Biurrun
d5c62122a7 Move av_reverse table to libavcodec
It is only used in that library.
2012-10-12 20:39:18 +02:00
Diego Biurrun
930c9d4373 avutil: Duplicate ff_log2_tab instead of sharing it across libs
The table is so small that the space gain is not worth the
performance overhead of cross-library access.
2012-10-12 20:39:17 +02:00
Michael Niedermayer
b8d64559d5 movenc: fix timescale for timecode track
regression since b02493e476

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 20:16:48 +02:00
Diego Biurrun
f6c38c5f4e avfilter: call x86 init functions under if (ARCH_X86), not if (HAVE_MMX) 2012-10-12 19:58:51 +02:00
rogerdpack
8684e39656 add dshow maintainer
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 19:52:05 +02:00
Michael Niedermayer
3a48e38ad0 motion_est: more complete SAB diamond size check
This makes no difference with the current #defines

Fixes CID732255
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 19:33:39 +02:00
Michael Niedermayer
6f557a2e12 caca: fix 10l typo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 19:05:58 +02:00
Paul B Mahol
a291345b1e sws: do not use av_pix_fmt_descriptors directly
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 16:57:04 +00:00
Paul B Mahol
82eba22667 lavd: do not use av_pix_fmt_descriptors directly
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 15:58:37 +00:00
Michael Niedermayer
0d002de4a4 exr: fix twin ;
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 17:58:15 +02:00
Heesuk Jung
e3301459f6 avidec: Use sample size in case incorrect timestamps for aac in AVI (Ticket #1755)
In some case for aac in AVI, avidec extracts wrong PTS value.
(www.ffmpeg.org/trac/ffmpeg/ticket/1755)

I found additional case(ss=4096) and add condition.

Problematic file link : https://docs.google.com/open?id=0B6r7ZfWFIypCOTdZQUtGVEdJUUE

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 17:57:35 +02:00
Paul B Mahol
77e6b085a3 imgutils: do not use av_pix_fmt_descriptors directly
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 15:39:50 +00:00
Michael Bradshaw
a41c824c53 Parse DEFINESOUND tags in swf (fix ticket 1638)
Signed-off-by: Michael Bradshaw <mbradshaw@sorensonmedia.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 17:37:34 +02:00
Paul B Mahol
a51540d811 lavc: do not use av_pix_fmt_descriptors directly
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 15:31:42 +00:00
Michael Niedermayer
27ccc82e1b Merge remote-tracking branch 'qatar/master'
* qatar/master:
  lavu,lavd: do not use av_pix_fmt_descriptors directly.

Conflicts:
	libavutil/imgutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 17:21:01 +02:00
Martin Storsjö
5a2cb78219 rtspdec: Set the default port for listen mode, if none is specified
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-12 18:17:24 +03:00
Michael Niedermayer
c80b59f679 tscc2: Fix an out of array access
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-12 18:17:10 +03:00
Michael Niedermayer
2f1b2ff934 rtmpproto: Fix an out of array write
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-12 18:16:59 +03:00
Michael Niedermayer
eae35eadc0 rtspdec: Fix use of uninitialized byte
ffurl_read_complete can return 0 as well as negative error codes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-12 18:16:57 +03:00
Michael Niedermayer
13afee951a Merge commit '59ee9f78b0cc4fb84ae606fa317d8102ad32a627'
* commit '59ee9f78b0cc4fb84ae606fa317d8102ad32a627':
  lavfi: do not use av_pix_fmt_descriptors directly.

Conflicts:
	libavfilter/buffersrc.c
	libavfilter/drawutils.c
	libavfilter/filtfmts.c
	libavfilter/vf_ass.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_lut.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vf_showinfo.c
	libavfilter/vf_transpose.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 17:04:58 +02:00
Michael Niedermayer
af7dd79a32 Merge commit '50ba57e0ce63d9904269ea0728936a0c79f8bfb5'
* commit '50ba57e0ce63d9904269ea0728936a0c79f8bfb5':
  lavc: do not use av_pix_fmt_descriptors directly.

Conflicts:
	libavcodec/imgconvert.c
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/mpegvideo.c
	libavcodec/rawdec.c
	libavcodec/rawenc.c
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 16:48:26 +02:00
Paul B Mahol
3d179edf6d yop: check return value of avformat_new_stream()
Fixes null pointer dereference, fixes CID703729.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 14:25:00 +00:00
Sami Pietila
0bf511d579 vp8: reset loopfilter delta values at keyframes.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-10-12 07:17:38 -07:00
Michael Niedermayer
a9bd51b1e6 Merge commit '9953ff3cd844eb5f6d8dfce98cad94b78a0fc7dc'
* commit '9953ff3cd844eb5f6d8dfce98cad94b78a0fc7dc':
  mpegvideo: fix indentation
  sws: do not use av_pix_fmt_descriptors directly.

Conflicts:
	libavcodec/mpegvideo.c
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 15:57:28 +02:00
Michael Niedermayer
a33ed6bc74 Merge commit 'b7f1010c8fce09096057528f7cd29589ea1ae7df'
* commit 'b7f1010c8fce09096057528f7cd29589ea1ae7df':
  tools: do not use av_pix_fmt_descriptors directly.
  pixdesc: add functions for accessing pixel format descriptors.
  build: add support for Tru64 (OSF/1)
  md5: Allocate a normal private context for the opaque md5 context pointer

Conflicts:
	cmdutils.c
	doc/APIchanges
	ffprobe.c
	libavformat/md5enc.c
	libavutil/version.h
	tools/graph2dot.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 15:34:49 +02:00
Luca Barbato
6d5600e855 avutil: add yuva422p and yuva444p formats 2012-10-12 15:09:51 +02:00
Michael Niedermayer
f391e405df Merge commit 'e002e3291e6dc7953f843abf56fc14f08f238b21'
* commit 'e002e3291e6dc7953f843abf56fc14f08f238b21':
  Use the new aes/md5/sha/tree allocation functions
  avutil: Add functions for allocating opaque contexts for algorithms
  svq3: fix pointer type warning
  svq3: replace unsafe pointer casting with intreadwrite macros
  parseutils-test: various cleanups

Conflicts:
	doc/APIchanges
	libavcodec/svq3.c
	libavutil/parseutils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 14:52:34 +02:00
Michael Niedermayer
d6135a886d Merge commit '15ba7f6525c0f56f0c8e3e3e0c0c5129de054f41'
* commit '15ba7f6525c0f56f0c8e3e3e0c0c5129de054f41':
  parseutils: fix const removal warning
  prepare 9_beta1 release

Conflicts:
	Changelog
	RELEASE
	libavutil/parseutils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 14:38:04 +02:00
Michael Niedermayer
e335658370 Merge commit '9734b8ba56d05e970c353dfd5baafa43fdb08024'
* commit '9734b8ba56d05e970c353dfd5baafa43fdb08024':
  Move avutil tables only used in libavcodec to libavcodec.

Conflicts:
	libavcodec/mathtables.c
	libavutil/intmath.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 14:26:46 +02:00
Michael Niedermayer
43cce41267 Merge commit '0a75d1da23b8659ec49391469bb592da12760077'
* commit '0a75d1da23b8659ec49391469bb592da12760077':
  options_table: refs option is not snow-only
  random_seed: Support using CryptGenRandom on windows
  doc: update the faq entry about custom I/O

Conflicts:
	doc/faq.texi
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 14:15:33 +02:00
Paul B Mahol
caa7e24eb1 truemotion2: remove unreachable code
Fixes CID610345.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 11:54:38 +00:00
Anton Khirnov
22c8cbc0da lavu,lavd: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
Anton Khirnov
59ee9f78b0 lavfi: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
Anton Khirnov
50ba57e0ce lavc: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
Anton Khirnov
9953ff3cd8 mpegvideo: fix indentation 2012-10-12 12:45:38 +02:00
Anton Khirnov
b7f1010c8f tools: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:38 +02:00
Anton Khirnov
0a7068fa5d sws: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:38 +02:00
Anton Khirnov
d2fcb356ca pixdesc: add functions for accessing pixel format descriptors.
Make av_pix_fmt_descriptors table static on next major bump.

Making the table public is dangerous, since the caller has no way to
know how large it actually is. It also prevents adding new fields to
AVPixFmtDescriptor without a major bump.
2012-10-12 12:45:25 +02:00
Paul B Mahol
4dcf71aacc takdec: stop decoding in case of unknown bps
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 09:18:58 +00:00
Paul B Mahol
56519d7d14 takdec: s/bits_per_coded_sample/bits_per_raw_sample
bits_per_coded_sample should be set from demuxer and
not from decoder.

Prior to this change value set from demuxer would get
overwritten in decoder.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-12 09:07:31 +00:00
Michael Niedermayer
62722ae2d4 nellymoserenc: fix array element ordering
Fixes assertion failures in trellis encoder
Fixes valgrind warnings in trellis encoder
Fixes CID732257
Fixes CID732256
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 04:19:38 +02:00
Mans Rullgard
fdd666094d build: add support for Tru64 (OSF/1)
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 02:17:54 +01:00
Michael Niedermayer
927d866a99 tscc2: fix out of array access
Fixes CID732260
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 02:26:50 +02:00
Michael Niedermayer
5a75924dfd rtmpproto: fix out of array write
Fixes CID732263
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 02:06:51 +02:00
Michael Niedermayer
e576105d84 motion-test: zero dsp context
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 01:44:35 +02:00
Michael Niedermayer
5e689b65ce dv: zero dsp before init, this fixes use of uninitialized dct_bits
Fixes CID732292
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 01:43:11 +02:00
Michael Niedermayer
e0909ff158 lavc: Fix use of uninitialized field.
Fixes CID732297
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 00:22:15 +02:00
Michael Niedermayer
0c6b9b9fe5 rtspdec:read_line: fix use of uninitialized byte
Fixes CID732301
Fixes CID723300
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 00:08:28 +02:00
Michael Niedermayer
1b5069aa41 sanm: fix off by 1 error in draw_glyph()
This fix changes nothing as nothing passed a so large value

Fixes CID733785
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 00:08:28 +02:00
Michael Niedermayer
59cbedfc3d update_initial_timestamps: increase pts_buffer size
Fixes CID733786
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-12 00:08:28 +02:00
Martin Storsjö
da18e918a4 md5: Allocate a normal private context for the opaque md5 context pointer
This avoids having to overestimate the md5 context size, which
isn't known beforehand, allowing us to use the new allocate functions
instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-11 23:35:29 +03:00
Martin Storsjö
e002e3291e Use the new aes/md5/sha/tree allocation functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-11 23:35:28 +03:00
Martin Storsjö
9a92aea27b avutil: Add functions for allocating opaque contexts for algorithms
The current API where the plain size is exposed is not of much
use - in most cases it is allocated dynamically anyway.

If allocated e.g. on the stack via an uint8_t array, there's no
guarantee that the struct's members are aligned properly (unless
the array is overallocated and the opaque pointer within it
manually aligned to some unspecified alignment).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-11 23:35:27 +03:00
Paul B Mahol
3632f35c8e bethsoftvid: check return value of av_packet_new_side_data()
Fixes null pointer dereference, fixes CID733777.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-11 19:40:27 +00:00
Mans Rullgard
fb32f31af7 svq3: fix pointer type warning
Fixes:
libavcodec/svq3.c:661:9: warning: passing argument 2 of 'svq3_decode_block' from incompatible pointer type
libavcodec/svq3.c:208:19: note: expected 'DCTELEM *' but argument is of type 'DCTELEM (*)[32]'

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-11 20:40:23 +01:00
Mans Rullgard
366b72f149 svq3: replace unsafe pointer casting with intreadwrite macros
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-11 20:40:23 +01:00
Paul B Mahol
313b40efbd bmp: unbreak non BMP_RGB compression for v4 and v5
Fixes CID733728 & CID733729.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-11 18:05:06 +00:00
Mans Rullgard
15ba7f6525 parseutils: fix const removal warning
The const qualifier is still removed although it happens inside
the strtol() function so no warning is generated.

Fixes:
libavutil/parseutils.c:110:11: warning: assignment discards qualifiers from pointer target type

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-11 18:00:27 +01:00
Mans Rullgard
68e360a83c parseutils-test: various cleanups
- make tables static const
- remove useless use of compound literal
- break long lines
- fix a comma/semicolon typo

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-11 18:00:27 +01:00
Clément Bœsch
9ad1ea13e0 lavfi/ebur128: fix typo in condition.
Fixes CID733727.
2012-10-11 18:41:07 +02:00
Janne Grunau
e578f8f468 prepare 9_beta1 release 2012-10-11 18:36:40 +02:00
Diego Biurrun
9734b8ba56 Move avutil tables only used in libavcodec to libavcodec. 2012-10-11 18:29:36 +02:00
Michael Niedermayer
26474d1098 random_seed: fix digest size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 18:28:21 +02:00
Michael Niedermayer
7fe5548531 random_seed: fix out of array read
Fixes CID733787
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 18:28:21 +02:00
Diego Biurrun
0a75d1da23 options_table: refs option is not snow-only 2012-10-11 18:27:44 +02:00
Michael Niedermayer
adcbb3fd8b yuv2rgb: fix declared array sizes, so they match actuals.
Fixes CID733789, and others
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 18:20:24 +02:00
Martin Storsjö
1093383d6c random_seed: Support using CryptGenRandom on windows
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-11 18:49:34 +03:00
Michael Niedermayer
b96d1859d5 jpeglsenc: favor av_freep() for saftey over av_free() when a variable is still accessible afterwards
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 17:45:36 +02:00
Michael Niedermayer
34bbab432c jpeglsnec: fix memleak of state in error case
Fixes CID733794
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 17:44:58 +02:00
Michael Niedermayer
104b1d9e10 libvpxenc: fix memleak on error path
Fixes CID733795
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 17:41:36 +02:00
Michael Niedermayer
c9454cb643 av_tempfile: fix leak in error case
Fixes CID733796 Part2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 17:09:57 +02:00
Michael Niedermayer
229ccce6cc libxvid_rc: fix leaks in ff_xvid_rate_control_init()
Fixes CID733796 Part1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 17:08:33 +02:00
Michael Niedermayer
4b20b21b8d tiff: fix leak on error return in doubles2str()
Fixes CID733797
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 16:51:08 +02:00
Michael Niedermayer
9ba2484ece af_aresample: fix leak on alloc failure
Fixes CID733798
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 16:48:25 +02:00
Michael Niedermayer
7457da3698 drawtext: fix leak with timecodes
Fixes CID733799
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 16:45:50 +02:00
Michael Niedermayer
bb35864759 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mlpdsp: adding missing file
  dsputil: split out mlp dsp function
  sh4: add required #include, fix build
  averror: make error values proper negative values
  build: do not use LIB as variable name
  build: whitespace cosmetics
  build: remove single-use variable THIS_LIB

Conflicts:
	libavutil/error.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 15:55:41 +02:00
Michael Niedermayer
526cb36e4b Merge commit '4436f25a1682ada3f7226cb6fadf429946933161'
* commit '4436f25a1682ada3f7226cb6fadf429946933161':
  build: remove references to unused EXTRAOBJS variable
  lavfi: convert input/ouput list compound literals to named objects
  fate: add h263 obmc vsynth tests
  avconv: remove bogus warning when using avconv -h without parameter
  averror: explicitly define AVERROR_* values
  flashsv: propagate inflateReset() errors
  indeo4/5: remove constant parameter num_bands from wavelet recomposition
  mxfdec: return error if no segments are available in mxf_get_sorted_table_segments
  Double motion vector range for HPEL interlaced picture in proper place

Conflicts:
	libavcodec/v210dec.h
	libavfilter/af_aformat.c
	libavfilter/af_amix.c
	libavfilter/af_asyncts.c
	libavfilter/af_channelmap.c
	libavfilter/af_join.c
	libavfilter/asrc_anullsrc.c
	libavfilter/buffersrc.c
	libavfilter/f_setpts.c
	libavfilter/f_settb.c
	libavfilter/fifo.c
	libavfilter/src_movie.c
	libavfilter/vf_ass.c
	libavfilter/vf_blackframe.c
	libavfilter/vf_boxblur.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawbox.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_fieldorder.c
	libavfilter/vf_fps.c
	libavfilter/vf_hflip.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_select.c
	libavfilter/vf_transpose.c
	libavfilter/vf_yadif.c
	libavfilter/vsrc_testsrc.c
	libavformat/mxfdec.c
	libavutil/error.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 15:46:48 +02:00
Luca Barbato
26b3fde6a7 doc: update the faq entry about custom I/O
URLProtocols are private and custom AVIOContexts are a simple and
easier solution for most of the situations.
2012-10-11 15:12:30 +02:00
Michael Niedermayer
a75dd13b1b Merge commit 'eb657ecefdeb8b2ed9bfb55d3c2c9e0f568486bf'
* commit 'eb657ecefdeb8b2ed9bfb55d3c2c9e0f568486bf':
  vc1dec: Set opposite to the correct value for 1REF field pictures

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 14:36:36 +02:00
Michael Niedermayer
ce27c9eb25 Merge commit '7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692'
* commit '7cc3c4e1d4179aeabcd891090e31ee5e5bfd9692':
  vc1dec: Invoke edge emulation regardless of MV precision for 1-MV chroma

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 14:32:41 +02:00
Michael Niedermayer
b6c3487e7f Merge commit '88058d9a994f42e4e9ed4e67baf696bbfe53128c'
* commit '88058d9a994f42e4e9ed4e67baf696bbfe53128c':
  vc1dec: Set chroma reference field from REFFIELD for 1REF field pictures
  segment: support applehttp style list

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 14:28:18 +02:00
Michael Niedermayer
de31814ab0 Merge commit 'b522000e9b2ca36fe5b2751096b9a5f5ed8f87e6'
* commit 'b522000e9b2ca36fe5b2751096b9a5f5ed8f87e6':
  avio: introduce avio_closep
  mpegtsenc: set muxing type notification to verbose
  vc1dec: Use correct spelling of "opposite"
  a64multienc: change mc_frame_counter to unsigned
  arm: call arm-specific rv34dsp init functions under if (ARCH_ARM)
  svq1: Drop a bunch of useless parentheses
  parseutils-test: do not print numerical error codes
  svq1: K&R formatting cosmetics

Conflicts:
	doc/APIchanges
	libavcodec/svq1dec.c
	libavcodec/svq1enc.c
	libavformat/version.h
	libavutil/parseutils.c
	tests/ref/fate/parseutils

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 14:03:12 +02:00
Luca Barbato
1ec6293086 mlpdsp: adding missing file 2012-10-11 12:34:36 +02:00
Luca Barbato
2d6caade22 dsputil: split out mlp dsp function 2012-10-11 12:01:08 +02:00
Mans Rullgard
25dc79bc14 sh4: add required #include, fix build
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-11 10:55:26 +01:00
Stefano Sabatini
c4aaff8c02 Revert "configure: link flite against libasound"
This reverts commit 396648cc6a.

The commit made impossible to build against libflite if libasound is not
available (e.g. on Windows). Thus remove the -lasound flag. In case of
libflite static linking the workaround is to enable
--extra-ldflags=-lasound (or disable the ALSA output device in libflite).
2012-10-11 11:19:18 +02:00
Stefano Sabatini
396648cc6a configure: link flite against libasound
libflite depends on libasound. Fix a linking failure when linking against
a static version of libflite.

Reported-by: Vladimir Kraljevic
2012-10-11 11:08:48 +02:00
Paul B Mahol
8cd1c0febe pcx: convert to bytestream2 API
Protects against overreads in input buffer.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-11 08:06:45 +00:00
Michael Niedermayer
492b8ec4c5 av_opt_set_from_string: fix memleak
Fixes CID733801
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 04:42:52 +02:00
Michael Niedermayer
7df9f595c9 swri_resample_init: unsupported sample formats are an internal error.
This condition cannot happen.

Fixes CID733802
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 04:36:23 +02:00
Michael Niedermayer
e47ab0b2c9 ffmpeg_opt: dont fail for sameq/same_quant.
Instead print a warning.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 04:00:16 +02:00
Michael Niedermayer
4334ba043e ffprobe: fix use of uninitialized pointer in av_strtok()
Fixes CID733837
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 03:37:43 +02:00
Michael Niedermayer
bdcff5af7f af_volumedetect: fix use of uninitilaized variable in case of planar audio.
Fixes: CID733841
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 03:12:40 +02:00
Michael Niedermayer
989c91b504 asrc_aevalsrc: Fix use of uninitialized pointer inside av_strtok()
Fixes CID733842
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 03:00:34 +02:00
Michael Niedermayer
4e4ae2f82c sha: change loop condition to be tighter.
This makes no change to the way the code functions, but should make
it easier for static analyzers to see the valid range for i

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 02:42:18 +02:00
Michael Niedermayer
fac1ccbda1 swscale-test: fix freeing of uninitialized variable
Fixes: CID733844
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 02:21:28 +02:00
Matthieu Bouron
e782d8728f fate: add vf_idet filter to lavfi regression tests
This test only make sure that the idet filter does not crash.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 02:21:28 +02:00
Michael Niedermayer
4d4f431ab7 vf_idet: zero pointers after freeing references
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 02:21:28 +02:00
Michael Niedermayer
cac749a551 vf_idet: fix free after use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 02:21:28 +02:00
Janne Grunau
1a2c7880aa averror: make error values proper negative values
Fixes stupid mistake in 25227c3a78.
2012-10-11 01:07:57 +02:00
Mans Rullgard
4436f25a16 build: remove references to unused EXTRAOBJS variable
This was part of a ghastly hack that is long since gone.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Mans Rullgard
effe443877 build: do not use LIB as variable name
The Microsoft linker uses the LIB environment variable which
clashes with a make variable of the same name.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Mans Rullgard
1c7428e655 build: whitespace cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Mans Rullgard
e5c6e9a6f2 build: remove single-use variable THIS_LIB
Replace the single use of THIS_LIB with its value.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 23:46:31 +01:00
Carl Eugen Hoyos
1a104bf641 Fix broken timestamps for some mp3 in avi samples.
Mostly based on 73ad355 by Michael Niedermayer.
Fixes ticket #606.
2012-10-10 23:59:43 +02:00
Mans Rullgard
568c70e79e lavfi: convert input/ouput list compound literals to named objects
A number of compilers, for example those from TI and IBM, choke on
these initialisers.  The current style is also quite ugly.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 22:26:12 +01:00
Michael Niedermayer
317505b566 lavf: do not prematurely accept a format with low score in init_input()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 21:41:20 +02:00
Michael Niedermayer
b47396b614 img2dec: detect .raw files only with a low score as img2
They can be many other things and this otherwise breaks probing of some .raw files.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 21:40:03 +02:00
Michael Niedermayer
94f5470a20 lavf: add a AVPROBE_SCORE_RETRY instead of using hardcoded values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 21:39:19 +02:00
Janne Grunau
b404c66056 fate: add h263 obmc vsynth tests 2012-10-10 21:24:32 +02:00
Janne Grunau
8d09d39a4b avconv: remove bogus warning when using avconv -h without parameter 2012-10-10 21:24:32 +02:00
Janne Grunau
25227c3a78 averror: explicitly define AVERROR_* values 2012-10-10 21:24:32 +02:00
Janne Grunau
c466eb1746 flashsv: propagate inflateReset() errors
Fixes CID717493.
2012-10-10 21:24:32 +02:00
Janne Grunau
6d556e8327 indeo4/5: remove constant parameter num_bands from wavelet recomposition
Fixes bogus uninitialized value compiler and coverity warnings.
2012-10-10 21:24:32 +02:00
Janne Grunau
bd141f5ec9 mxfdec: return error if no segments are available in mxf_get_sorted_table_segments
Fixes CID732275.
2012-10-10 21:24:32 +02:00
Mashiat Sarker Shakkhar
35a35d49d2 Double motion vector range for HPEL interlaced picture in proper place
The existing code is not in the right place and it should cover both
interlaced frame and field pictures.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-10 14:56:02 -04:00
Mashiat Sarker Shakkhar
eb657ecefd vc1dec: Set opposite to the correct value for 1REF field pictures
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-10 14:55:38 -04:00
Mashiat Sarker Shakkhar
7cc3c4e1d4 vc1dec: Invoke edge emulation regardless of MV precision for 1-MV chroma
This is required due to the way VC-1 handles chroma pull-back which may end
up causing negative chroma MV for zero luma MV. Edge emulation needs to be
invoked in such cases.

This only affects vertical component of chroma motion vector.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-10 14:54:19 -04:00
Mashiat Sarker Shakkhar
88058d9a99 vc1dec: Set chroma reference field from REFFIELD for 1REF field pictures
Interlaced field pictures can have one or two reference pictures, signaled
by NUMREF syntax element. For single reference pictures, reference picture
is determined by REFFIELD syntax element.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-10 14:50:07 -04:00
Luca Barbato
b522000e9b avio: introduce avio_closep 2012-10-10 18:56:55 +02:00
Luca Barbato
26db9100b2 segment: support applehttp style list 2012-10-10 18:56:55 +02:00
Luca Barbato
82569b01a1 mpegtsenc: set muxing type notification to verbose 2012-10-10 18:56:54 +02:00
Michael Niedermayer
9586db6ae5 lavc: docs: the field_order is set by the demuxer and not libavcodec for decoding
This makes the documentation match the implementation

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 18:50:56 +02:00
Michael Niedermayer
92c3173c84 qt-faststart: fix printf argument type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 18:50:56 +02:00
Paul B Mahol
2c5b1a2a6a txd: remove duplicated header inclusion
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-10 16:48:13 +00:00
Paul B Mahol
ee109c6bc2 dtshd: fix seeking
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-10 15:50:32 +00:00
Michael Niedermayer
73ad355d23 avidec: fix 10l typo
found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 17:06:12 +02:00
Michael Niedermayer
229e33a2b6 avidec: override sample size of 1024 for VBR AAC
Fixes Ticket1755

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 16:48:58 +02:00
Matthieu Bouron
f94edfe484 vf_idet: remove some unnecessary statement and unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 16:48:58 +02:00
Mashiat Sarker Shakkhar
7fb35ee931 vc1dec: Use correct spelling of "opposite"
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-10 16:28:31 +02:00
Janne Grunau
706a559b30 a64multienc: change mc_frame_counter to unsigned
GCC cannot proof that c->mc_frame_counter is always >- 0, changing the
type from int to unsigned fixes following warning:

libavcodec/a64multienc.c: In function ‘a64multi_encode_frame’:
libavcodec/a64multienc.c:342:17: warning: ‘buf’ may be used uninitialized in this function[-Wuninitialized]

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-10-10 15:33:06 +02:00
Jean-Baptiste Kempf
507dce2536 arm: call arm-specific rv34dsp init functions under if (ARCH_ARM)
Assign NEON specific function pointers after runtime check via
av_get_cpu_flags().

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-10-10 15:28:50 +02:00
Diego Biurrun
63a46c6101 svq1: Drop a bunch of useless parentheses 2012-10-10 15:10:53 +02:00
Paul B Mahol
03cc52a07d takdec: fix seeking
The previous approach was just wrong.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-10 13:09:26 +00:00
Mans Rullgard
41e46a5fba parseutils-test: do not print numerical error codes
The error codes differ between systems so printing the value makes
the fate test fail on some systems.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 13:33:45 +01:00
Diego Biurrun
ada12f8366 svq1: K&R formatting cosmetics 2012-10-10 14:14:22 +02:00
Michael Niedermayer
c6d39fb3c5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  build: sanitize linking of tools and test programs
  fate: Refactor setting of environment variables for groups of tests

Conflicts:
	tests/fate/audio.mak
	tests/fate/real.mak
	tests/fate/voice.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 14:13:51 +02:00
Michael Niedermayer
cd6f5c4895 Merge commit '6d0beefbf6ee6dbf8efb522a9307e54c6ed5f702'
* commit '6d0beefbf6ee6dbf8efb522a9307e54c6ed5f702':
  swscale: Do not make ff_ symbols globally visible.
  rtspdec: use av_strlcpy for writing into fixed size buffer
  g722enc: fix size argument in memset
  http: use av_strlcpy instead of strcpy() without size checks
  avfilter: correct memcpy size avfilter_copy_buf_props()
  lavc: split asv12 encoder/decoder

Conflicts:
	libavcodec/asvdec.c
	libavfilter/buffer.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 14:07:05 +02:00
Michael Niedermayer
b7ebb49d03 Merge commit 'fb722a900fc5cc9e003b9fef25b27ed7fc5547a2'
* commit 'fb722a900fc5cc9e003b9fef25b27ed7fc5547a2':
  avconv: remove -same_quant

Conflicts:
	Changelog
	doc/faq.texi
	ffmpeg.c
	ffmpeg.h
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 13:51:07 +02:00
Paul B Mahol
eb71f027f0 dtshd: remove redundant/wrong avio_tell()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-10 11:25:36 +00:00
Paul B Mahol
1470c8a9a3 takdec: remove redundant/wrong avio_tell()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-10 11:25:36 +00:00
Michael Niedermayer
50b5477616 Merge commit 'b94e4acb4874843e914fd3cb8e089aff0756bb4a'
* commit 'b94e4acb4874843e914fd3cb8e089aff0756bb4a':
  cmdutils_read_file: increment *size after writing the trailing \0
  af_resample: unref out_buf when avresample_convert returns 0
  af_amix: prevent memory leak on error path
  vc1dec: prevent memory leak in error path
  vc1dec: prevent memory leak on av_realloc error
  af_channelmap: free old extended_data on reallocation
  avconv: simplify memory allocation in copy_chapters
  matroskaenc: check cue point validity before reallocation
  swfenc: error out for more than 1 audio or video stream
  build: link test programs only against static libs

Conflicts:
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 13:18:05 +02:00
Michael Niedermayer
eadba3e94d Merge commit 'cbcd497f384f0f8ef3f76f85b29b644b900d6b9f'
* commit 'cbcd497f384f0f8ef3f76f85b29b644b900d6b9f':
  adxdec: use planar sample format
  adpcmdec: use planar sample format for adpcm_thp
  adpcmdec: use planar sample format for adpcm_ea_xas
  adpcmdec: use planar sample format for adpcm_ea_r1/r2/r3
  adpcmdec: use planar sample format for adpcm_xa
  adpcmdec: use planar sample format for adpcm_ima_ws for vqa version 3
  adpcmdec: use planar sample format for adpcm_4xm
  adpcmdec: use planar sample format for adpcm_ima_wav
  adpcmdec: use planar sample format for adpcm_ima_qt
  pcmdec: use planar sample format for pcm_lxf
  mace: use planar sample format
  atrac1: use planar sample format
  build: non-x86: Only compile mpegvideo optimizations when necessary
  rtpdec_mpeg4: au_headers is a single array, simple av_free is enough
  avcodec: free extended_data instead address of it
  fate: Add tests of the ff_make_absolute_url function
  url: Handle relative urls starting with two slashes
  url: Handle relative urls being just a new query string
  url: Don't treat slashes in query parameters as directory separators

Conflicts:
	libavcodec/adxdec.c
	libavcodec/mips/Makefile
	libavcodec/pcm.c
	libavcodec/utils.c
	libavformat/Makefile
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 13:01:27 +02:00
Mans Rullgard
4b895cb294 build: sanitize linking of tools and test programs
This makes sure proper linker arguments are used for the tools and
test programs when shared libraries are enabled.  The tools are
linked using the usual -l flag while for test programs the full
name of the static library is used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 11:24:09 +01:00
Diego Biurrun
096a5d76a5 fate: Refactor setting of environment variables for groups of tests 2012-10-10 10:49:51 +02:00
Paul B Mahol
b4e516e30e pcx: use meaningful return values
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-10 07:49:03 +00:00
Michael Niedermayer
25f44b041c x86/dsputil_mmx: change assert() to av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-10 04:49:41 +02:00
Diego Biurrun
6d0beefbf6 swscale: Do not make ff_ symbols globally visible. 2012-10-10 02:08:01 +02:00
Duncan Salerno
f3f35f7430 crypto should allow passing of options to the underlying protocol via the url_open2 interface
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 22:52:25 +02:00
Clément Bœsch
6ac5e3fe9d lavfi/silencedetect: add av_opt_free() call.
This avoids a memleak with noise_str.
2012-10-09 22:37:29 +02:00
Duncan Salerno
bd2f8e8f79 Fix second use of AVOptions in HLS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 22:12:34 +02:00
Janne Grunau
d5ef9354ce rtspdec: use av_strlcpy for writing into fixed size buffer
Fixes CID231347.
2012-10-09 21:05:15 +02:00
Janne Grunau
f1de23faaa g722enc: fix size argument in memset
Fixes CID700725.
2012-10-09 21:05:15 +02:00
Janne Grunau
4a7c0c4555 http: use av_strlcpy instead of strcpy() without size checks
Fixes CID700730.
2012-10-09 21:05:14 +02:00
Janne Grunau
79e6e8eba2 avfilter: correct memcpy size avfilter_copy_buf_props()
Does not make a difference in this case since sizeof(uint8_t*) ==
sizeof(uint8_t**). Fixes CID703814.
2012-10-09 21:05:14 +02:00
Anton Khirnov
233a5a807e lavc: split asv12 encoder/decoder 2012-10-09 20:32:35 +02:00
Anton Khirnov
fb722a900f avconv: remove -same_quant
It has not worked for anything other than fringe codecs (asv1/2, mdec,
mjpeg[b]) since about 2003 and nobody ever noticed or complained. This
sufficiently proves that there are no users of this option who have a
clue of what they are doing, so it is completely useless.
2012-10-09 20:32:34 +02:00
Janne Grunau
b94e4acb48 cmdutils_read_file: increment *size after writing the trailing \0
Fixes CID732166.
2012-10-09 18:43:30 +02:00
Janne Grunau
ac9a89562a af_resample: unref out_buf when avresample_convert returns 0
Fixes CID732273.
2012-10-09 18:43:30 +02:00
Andrey Utkin
b6f435fbc8 http: add 'timeout' AVOption
This option is passed though to underlying tcp protocol context

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 17:47:14 +02:00
Andrey Utkin
2e009c6042 tcp: accept params through avio_open2() options
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 17:24:55 +02:00
Andrey Utkin
949acefc11 tcp: use timeout option consistently
Default _connection_ timeout value 5 seconds is left as i/o timeout also

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 17:18:43 +02:00
Andrey Utkin
d2b18c8f5b Introduce ff_network_wait_fd_timeout()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 17:17:05 +02:00
KO Myung-Hun
3a45688abc lavc: include os2threads.h in vp8.h if HAVE_OS2THREADS is enabled
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 16:55:36 +02:00
Anuj Mittal
8d2e0e2c70 Check for resync marker based on vop coding type- vop_fcode_forward and vop_fcode_backward L
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 16:48:51 +02:00
Anuj Mittal
ce19aec15b Check resync marker only when enabled.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 16:48:43 +02:00
Janne Grunau
8501c09868 af_amix: prevent memory leak on error path
Fixes CID732272.
2012-10-09 16:15:15 +02:00
Janne Grunau
6f8ef5320f vc1dec: prevent memory leak in error path
Fixes CID732271.
2012-10-09 16:09:41 +02:00
Janne Grunau
714f5ab597 vc1dec: prevent memory leak on av_realloc error 2012-10-09 16:07:12 +02:00
Janne Grunau
1afd7a118f af_channelmap: free old extended_data on reallocation
Prevents writes to freed memory and the leak of the old extended data.
Fixes CID732303.
2012-10-09 15:41:24 +02:00
Janne Grunau
18ff4d2020 avconv: simplify memory allocation in copy_chapters
Make just a single reallocation per call instead of one reallocation
per copied chapters. This fixes possible memory leaks on realloc
failures. Also correct the allocation since it needs multiples of
sizeof(AVChapter*) and not sizeof(AVChapter).

Fixes CID700633 and CID700719.
2012-10-09 15:39:05 +02:00
Janne Grunau
4ffbe3f3a5 matroskaenc: check cue point validity before reallocation
Prevents memory leak and possible access to freed memory.
Fixes CID605744.
2012-10-09 15:39:05 +02:00
Janne Grunau
53e122dd4a swfenc: error out for more than 1 audio or video stream
Prevents CID602000.
2012-10-09 15:39:05 +02:00
Mans Rullgard
0fb3b24ada build: link test programs only against static libs
The test programs use internal symbols so cannot be linked against the
shared libs.  Linking against both shared and static is pointless and
might do something strange depending on the linker.  This changes the
dependencies so the test programs are linked only against the static
library for the component they belong to.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-09 14:16:21 +01:00
Justin Ruggles
cbcd497f38 adxdec: use planar sample format 2012-10-09 09:03:52 -04:00
Justin Ruggles
4ebd74cec7 adpcmdec: use planar sample format for adpcm_thp 2012-10-09 09:03:52 -04:00
Justin Ruggles
327cdb04e3 adpcmdec: use planar sample format for adpcm_ea_xas 2012-10-09 09:03:52 -04:00
Justin Ruggles
da9620e8e5 adpcmdec: use planar sample format for adpcm_ea_r1/r2/r3 2012-10-09 09:03:52 -04:00
Justin Ruggles
d2b6ae02aa adpcmdec: use planar sample format for adpcm_xa 2012-10-09 09:03:52 -04:00
Justin Ruggles
8b854283c3 adpcmdec: use planar sample format for adpcm_ima_ws for vqa version 3 2012-10-09 09:03:52 -04:00
Justin Ruggles
4356d66d78 adpcmdec: use planar sample format for adpcm_4xm 2012-10-09 09:03:52 -04:00
Justin Ruggles
1b9ac72908 adpcmdec: use planar sample format for adpcm_ima_wav 2012-10-09 09:03:52 -04:00
Justin Ruggles
176db0b892 adpcmdec: use planar sample format for adpcm_ima_qt 2012-10-09 09:03:52 -04:00
Justin Ruggles
7e5f045039 pcmdec: use planar sample format for pcm_lxf 2012-10-09 09:03:51 -04:00
Justin Ruggles
c1a9cfd1fe mace: use planar sample format 2012-10-09 09:03:51 -04:00
Justin Ruggles
23d53c5473 atrac1: use planar sample format 2012-10-09 09:03:51 -04:00
Diego Biurrun
ac56ff9cc9 build: non-x86: Only compile mpegvideo optimizations when necessary 2012-10-09 14:45:59 +02:00
Janne Grunau
8dd0650fe6 rtpdec_mpeg4: au_headers is a single array, simple av_free is enough
Fixes CID700204.
2012-10-09 14:24:36 +02:00
Janne Grunau
3fbda309e5 avcodec: free extended_data instead address of it
Fixes CID732173.
2012-10-09 14:04:46 +02:00
Martin Storsjö
7bc433b36d fate: Add tests of the ff_make_absolute_url function
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-09 14:16:34 +03:00
Duncan Salerno
33893e6abc url: Handle relative urls starting with two slashes
This is defined by RFC 3986 section 5.4.1 to be handled this way.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-09 14:16:33 +03:00
Duncan Salerno
eea003814c url: Handle relative urls being just a new query string
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-09 14:16:32 +03:00
Duncan Salerno
a6363e3d89 url: Don't treat slashes in query parameters as directory separators
Strip off query parameters from the original url before
applying the new relative path.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-09 14:16:31 +03:00
Michael Niedermayer
ef9fe5bedd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mingw/cygwin: Stop adding -fno-common to gcc CFLAGS
  Restructure av_log_missing_feature message
  rtp: Support packetization/depacketization of opus
  file: Set the return value type for lseek to int64_t.
  ppc: fix Altivec build with old compilers
  build: add LTO support for PGI compiler
  build: add -Mdse to PGI optimisation flags
  rtpenc_vp8: Update the packetizer to the latest spec version
  rtpdec_vp8: Make the depacketizer implement the latest spec draft
  doc: allow building with old texi2html versions
  avutil: skip old_pix_fmts.h since it is just a list

Conflicts:
	libavcodec/aacdec.c
	libavcodec/h264.c
	libavcodec/ppc/fmtconvert_altivec.c
	libavcodec/utils.c
	libavformat/file.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 13:06:04 +02:00
Diego Biurrun
a75b9a1804 mingw/cygwin: Stop adding -fno-common to gcc CFLAGS
This was done to work around toolchain bugs that have long been fixed.
2012-10-09 11:39:26 +02:00
Diego Biurrun
f75f4194d1 Restructure av_log_missing_feature message
Some invocations include a verb in the log message, others do not.  Yet
av_log_missing_feature expects callers to provide a verb.  Change the
function to include a verb instead and update the callers accordingly.
The result is a more natural function API and correct English in the
function invocations.
2012-10-09 11:39:26 +02:00
Paul B Mahol
238e904df3 DTS-HD demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-09 08:59:09 +00:00
Martin Storsjö
c136a813d7 rtp: Support packetization/depacketization of opus
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-09 11:57:11 +03:00
Paul B Mahol
3a2d3df0e0 fate-lossless-tak: remove unneeded -f s16le
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-09 08:48:36 +00:00
Yusuke Nakamura
e04826c34e file: Set the return value type for lseek to int64_t.
This fixes a regression in 4ed5ac5.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-09 11:27:12 +03:00
Carl Eugen Hoyos
61a9f099b7 Write 32bit palette to Targa files.
Current ImageMagick fails to read such files,
therefore only write the 32bit palette if the
palette actually contains any transparency
information.
2012-10-09 10:13:14 +02:00
Michael Niedermayer
1e83e6ad7a ra144: fix code with ftrapv.
A better solution is welcome!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 06:02:34 +02:00
Michael Niedermayer
03f5043f5d eval: Fix eval test with ftrapv
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 06:02:34 +02:00
Michael Niedermayer
e73bac484f configure: add support to nicely enable ftrapv
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 06:02:34 +02:00
Bobby Bingham
b56f94cc36 targa: cosmetics - add some whitespace
Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-10-08 22:49:23 -05:00
Bobby Bingham
50787fe350 targa: remove unused context members
Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-10-08 22:47:58 -05:00
Bobby Bingham
c2eec3df89 targa: support 2-way and 4-way interleaved files
Fixes ticket #701

Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-10-08 22:47:57 -05:00
Bobby Bingham
3d9cdfdce7 targa: use named constants for flag values
Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-10-08 22:47:57 -05:00
Michael Niedermayer
d07940b76d motion_est: switch asserts to av_asserts
note, the asserts where enabled by default before this

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 05:06:39 +02:00
Michael Niedermayer
72c2d8a346 dsputil: convert asserts to av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 04:07:30 +02:00
Michael Niedermayer
8da7907a4a adpcmenc: switch to av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 04:00:55 +02:00
Carl Eugen Hoyos
b49d94e4f2 Support decoding of targa files with 32bit palette. 2012-10-09 01:58:48 +02:00
Mans Rullgard
f79364b2c3 ppc: fix Altivec build with old compilers
The vec_splat() intrinsic requires a constant argument for the
element number, and the code relies on the compiler unrolling
the loop to provide this.  Manually unrolling the loop avoids
this reliance and works with all compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-08 23:14:51 +01:00
Tim Nicholson
a02762995b movenc.c: Force correct value for "Samples per packet" for pcm audio
Apple spec is for it to always be "1" for uncompressed audio.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-09 00:01:09 +02:00
Mans Rullgard
643933f51d build: add LTO support for PGI compiler
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-08 22:30:41 +01:00
Mans Rullgard
8f23907f3e build: add -Mdse to PGI optimisation flags
Enable dead store elimination.  The last few releases work no worse
with this flag than without.  Older versions failed to build some
source files when using this flag.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-08 22:30:41 +01:00
Martin Storsjö
c9b10cc4db rtpenc_vp8: Update the packetizer to the latest spec version
Tested to work with the gstreamer depacketizer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-08 23:55:53 +03:00
Martin Storsjö
66d652cbf3 rtpdec_vp8: Make the depacketizer implement the latest spec draft
Not all details are implemented, but it's enough for proper
playback as long as there is no packet loss.

Tested to work with the packetizer in gstreamer (which although
uses a different codec name, to clarify that it is still a spec
draft).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-08 23:55:52 +03:00
Michael Niedermayer
52dc18d414 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86)
  x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86)
  x86: call most of the x86 dsp init functions under if (ARCH_X86)
  doc: support the new website layout
  doc: remove a warning from filters.texi
  doc: initial nut documentation
  segment: drop global headers setting
  lavu: fix typo in Makefile

Conflicts:
	doc/Makefile
	doc/filters.texi
	doc/t2h.init
	libavcodec/fmtconvert.c
	libavcodec/proresdsp.c
	libavcodec/x86/Makefile
	libavcodec/x86/vc1dsp_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 21:46:34 +02:00
Mans Rullgard
27a310e381 doc: allow building with old texi2html versions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-08 20:08:51 +01:00
Michael Niedermayer
ac627b3d38 Merge commit '716d413c13981da15323c7a3821860536eefdbbb'
* commit '716d413c13981da15323c7a3821860536eefdbbb':
  Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat

Conflicts:
	doc/examples/muxing.c
	ffmpeg.h
	ffmpeg_filter.c
	ffmpeg_opt.c
	ffplay.c
	ffprobe.c
	libavcodec/8bps.c
	libavcodec/aasc.c
	libavcodec/aura.c
	libavcodec/avcodec.h
	libavcodec/avs.c
	libavcodec/bfi.c
	libavcodec/bmp.c
	libavcodec/bmpenc.c
	libavcodec/c93.c
	libavcodec/cscd.c
	libavcodec/cyuv.c
	libavcodec/dpx.c
	libavcodec/dpxenc.c
	libavcodec/eatgv.c
	libavcodec/escape124.c
	libavcodec/ffv1.c
	libavcodec/flashsv.c
	libavcodec/fraps.c
	libavcodec/h264.c
	libavcodec/huffyuv.c
	libavcodec/iff.c
	libavcodec/imgconvert.c
	libavcodec/indeo3.c
	libavcodec/kmvc.c
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/libx264.c
	libavcodec/ljpegenc.c
	libavcodec/mjpegdec.c
	libavcodec/mjpegenc.c
	libavcodec/motionpixels.c
	libavcodec/mpeg12.c
	libavcodec/mpeg12enc.c
	libavcodec/mpeg4videodec.c
	libavcodec/mpegvideo_enc.c
	libavcodec/pamenc.c
	libavcodec/pcxenc.c
	libavcodec/pgssubdec.c
	libavcodec/pngdec.c
	libavcodec/pngenc.c
	libavcodec/pnm.c
	libavcodec/pnmdec.c
	libavcodec/pnmenc.c
	libavcodec/ptx.c
	libavcodec/qdrw.c
	libavcodec/qpeg.c
	libavcodec/qtrleenc.c
	libavcodec/raw.c
	libavcodec/rawdec.c
	libavcodec/rl2.c
	libavcodec/sgidec.c
	libavcodec/sgienc.c
	libavcodec/snowdec.c
	libavcodec/snowenc.c
	libavcodec/sunrast.c
	libavcodec/targa.c
	libavcodec/targaenc.c
	libavcodec/tiff.c
	libavcodec/tiffenc.c
	libavcodec/tmv.c
	libavcodec/truemotion2.c
	libavcodec/utils.c
	libavcodec/vb.c
	libavcodec/vp3.c
	libavcodec/wnv1.c
	libavcodec/xl.c
	libavcodec/xwddec.c
	libavcodec/xwdenc.c
	libavcodec/yop.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/avfilter.c
	libavfilter/avfilter.h
	libavfilter/buffersrc.c
	libavfilter/drawutils.c
	libavfilter/formats.c
	libavfilter/src_movie.c
	libavfilter/vf_ass.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fade.c
	libavfilter/vf_format.c
	libavfilter/vf_hflip.c
	libavfilter/vf_lut.c
	libavfilter/vf_overlay.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavfilter/vf_transpose.c
	libavfilter/vf_yadif.c
	libavfilter/video.c
	libavfilter/vsrc_testsrc.c
	libavformat/movenc.c
	libavformat/mxf.h
	libavformat/utils.c
	libavformat/yuv4mpeg.c
	libavutil/imgutils.c
	libavutil/pixdesc.c
	libswscale/input.c
	libswscale/output.c
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c
	libswscale/utils.c
	libswscale/x86/swscale_template.c
	libswscale/x86/yuv2rgb.c
	libswscale/x86/yuv2rgb_template.c
	libswscale/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 21:06:57 +02:00
Anton Khirnov
89715a3cf1 lavu: fix typo in Makefile 2012-10-08 20:12:00 +02:00
Michael Niedermayer
ae77266fce Merge commit '78071a1420b425dfb787ac739048f523007b8139'
* commit '78071a1420b425dfb787ac739048f523007b8139':
  pixfmt: add AV_ prefixes to PIX_FMT_*

Conflicts:
	doc/APIchanges
	libavutil/pixfmt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 19:42:49 +02:00
Michael Niedermayer
43c157f4a4 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  af_resample: avoid conversion of identical sample formats for 1 channel
  avcodec: allow either planar or interleaved sample format when encoding mono
  adpcmenc: ensure calls to adpcm_ima_compress_sample() are in the right order
  timefilter: De-doxygenize normal code comments and drop silly ones
  gxf: Include the right header for the avpriv_frame_rate_tab declaration

Conflicts:
	libavcodec/adpcmenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 13:11:11 +02:00
Janne Grunau
ea14a655f7 avutil: skip old_pix_fmts.h since it is just a list 2012-10-08 12:09:16 +02:00
Janne Grunau
7e522859fc x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86) 2012-10-08 11:54:05 +02:00
Janne Grunau
cb36febcbc x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86) 2012-10-08 11:54:05 +02:00
Janne Grunau
f101eab1be x86: call most of the x86 dsp init functions under if (ARCH_X86)
Rename the called dsp init functions to *_init_x86.
2012-10-08 11:54:05 +02:00
Luca Barbato
d19d01bf62 doc: support the new website layout 2012-10-08 11:22:42 +02:00
Luca Barbato
91f5f87561 doc: remove a warning from filters.texi
The tag @table expects @item to mark entries.
2012-10-08 11:22:42 +02:00
Luca Barbato
175d0d94da doc: initial nut documentation 2012-10-08 11:22:42 +02:00
Luca Barbato
0826d8513d segment: drop global headers setting
avconv provides an option to set it externally and there isn't a way for
the outer demuxer to report the inner demuxer flag.

Solves a bad interaction between mpegts and x264, but requires
additional setting for the user.
2012-10-08 11:22:42 +02:00
Paul B Mahol
d7a4739265 TAK demuxer, decoder and parser
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-08 09:06:25 +00:00
Clément Bœsch
208a5d1322 fate/ffprobe: add some stream metadata. 2012-10-08 11:03:27 +02:00
Clément Bœsch
f7c46d251c ffserver: fix seeking with ?date=...
Regression since 5f847bf61d.

After this commit, timestamps pushed by FFmpeg won't be relative
anymore, but absolute (based on the date/time at the beginning of the
push). This will allow seeking to work properly. Before this patch, the
seek was done, but ffm timestamps were way smallers than the absolute
requested timestamp (based on a date), so the seek was done, but to the
end of the stream (which was similar to no effect at all).
2012-10-08 09:03:19 +02:00
Anton Khirnov
8728b958ff lavu: fix typo in Makefile 2012-10-08 08:10:23 +02:00
Anton Khirnov
716d413c13 Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat 2012-10-08 07:13:26 +02:00
Anton Khirnov
78071a1420 pixfmt: add AV_ prefixes to PIX_FMT_* 2012-10-08 07:12:16 +02:00
Pavel Koshevoy
9425dc3dba Fix build failure on osx 10.5.8 ppc
Second parameter to vec_splat must be a literal, not a variable
value.  Therefore the second nested for-loop in
float_to_int16_stride_altivec had to be unrolled.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 05:40:26 +02:00
Michael Niedermayer
f464b02d22 mpegts: fuzzy crc check for not so spec compliant files
Fixes Ticket598

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 05:25:27 +02:00
Michael Niedermayer
43bbc3f477 xtea: give constants the correct type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 03:44:18 +02:00
Michael Niedermayer
89074e9066 wmalosslessdec: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 03:12:44 +02:00
Michael Niedermayer
b9a7719828 tscc: fix "assignment discards qualifiers from pointer target type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 03:11:02 +02:00
Michael Niedermayer
c5fdd0696a tiff: fix "assignment discards qualifiers from pointer target type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 03:09:16 +02:00
Michael Niedermayer
bd2613a322 rangecoder: fix "incompatible pointer type" warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 03:06:04 +02:00
Michael Niedermayer
106790a4e9 ffv1: fix array data types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 02:11:25 +02:00
Michael Niedermayer
fc6860a3eb 8svx: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 02:09:28 +02:00
Michael Niedermayer
adcfc0535d mxfenc: fix av_log data type for dts paramater
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 02:08:28 +02:00
Michael Niedermayer
f2a7e1a62b mux: change 1 assert->av_assert1()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 23:31:27 +02:00
Michael Niedermayer
2714e841bc x86/motion_est: assert->av_assert2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 23:31:27 +02:00
Michael Niedermayer
f9b0694cc8 motion-test: fix height parameter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 23:31:27 +02:00
Justin Ruggles
7b556be673 af_resample: avoid conversion of identical sample formats for 1 channel
When there is only 1 channel, the planar and interleaved formats of the same
data type should be treated as identical.
2012-10-07 16:45:50 -04:00
Justin Ruggles
37f701f1c3 avcodec: allow either planar or interleaved sample format when encoding mono
When there is only 1 channel, the planar and interleaved formats of the same
data type should be treated as identical.
2012-10-07 16:45:50 -04:00
Justin Ruggles
5364327186 adpcmenc: ensure calls to adpcm_ima_compress_sample() are in the right order
Should fix fate-acodec-adpcm-ima_wav with several compilers.
2012-10-07 16:45:50 -04:00
Diego Biurrun
62ae37decd timefilter: De-doxygenize normal code comments and drop silly ones 2012-10-07 22:31:29 +02:00
Justin Ruggles
d58b25aaa2 adpcmenc: ensure calls to adpcm_ima_compress_sample() are in the right order
Should fix fate-acodec-adpcm-ima_wav with several compilers.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 22:29:42 +02:00
Paul B Mahol
27a341518e avformat: fix typo in comment
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-07 17:57:13 +00:00
Michael Niedermayer
979b9b1f47 h264: switch some asserts to av_assert1/2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 19:39:49 +02:00
Michael Niedermayer
1822aee7e6 dsputil_template: replace assert() by av_assert2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 19:31:15 +02:00
Martin Storsjö
e67b0f9952 gxf: Include the right header for the avpriv_frame_rate_tab declaration
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-07 14:14:37 +03:00
Michael Niedermayer
87244c8f20 matroskaenc: remove MATROSKA_ID_VIDEODISPLAYUNIT 3
Should fix ticket 1754

Thanks-to: Moritz Bunkus <moritz@bunkus.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 12:48:31 +02:00
Michael Niedermayer
79d30321a2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  wmaenc: use float planar sample format
  (e)ac3enc: use planar sample format
  aacenc: use planar sample format
  adpcmenc: use planar sample format for adpcm_ima_wav and adpcm_ima_qt
  adpcmenc: move 'ch' variable to higher scope
  adpcmenc: fix 3 instances of variable shadowing
  adpcm_ima_wav: simplify encoding
  libvorbis: use planar sample format
  libmp3lame: use planar sample formats
  vorbisenc: use float planar sample format
  ffm: do not write or read the audio sample format
  parseutils: fix parsing of invalid alpha values
  doc/RELEASE_NOTES: update for the 9 release.
  smoothstreamingenc: Add a more verbose error message
  smoothstreamingenc: Ignore the return value from mkdir
  smoothstreamingenc: Try writing a manifest when opening the muxer
  smoothstreamingenc: Move the output_chunk_list and write_manifest functions up
  smoothstreamingenc: Properly return errors from ism_flush to the caller
  smoothstreamingenc: Check the output UrlContext before accessing it

Conflicts:
	doc/RELEASE_NOTES
	libavcodec/aacenc.c
	libavcodec/ac3enc_template.c
	libavcodec/wmaenc.c
	tests/ref/lavf/ffm

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 11:28:38 +02:00
Michael Niedermayer
537ef8bebf movenc: support an alternative to edit lists to handle the first DTS != 0 case.
Some software does not support edit lists at all, the adobe flash
player seems to be one of these. Which results in AV sync errors when
edit lists are used to adjust AV sync.

2nd try on implementing this, the first try had various issues

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 06:04:40 +02:00
Michael Niedermayer
d067e25437 mov: fix integer avoption types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 03:20:36 +02:00
Michael Niedermayer
c6c560deed mpeg4videodec: fix integer avoption types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 03:20:36 +02:00
Michael Niedermayer
57e1553e9f libvpcenc: fix flags voption types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 03:20:36 +02:00
Michael Niedermayer
3c9502b0f6 h264: fix integer avoption types
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 03:20:36 +02:00
jamal
ffc1d959a0 tests/Makefile: fix ffprobe-test.nut with target-exec
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-07 03:20:36 +02:00
Michael Niedermayer
19a4e10360 gmc_mmx: enable also for large pictures when emu edge isnt needed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 23:12:57 +02:00
Michael Niedermayer
e063ffbf4b dsputil_mmx: put optimized gmc code back and avoid a VLA without loosing features.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 23:04:31 +02:00
Michael Niedermayer
094a82c7de get_bits: get_bits_long() support n=0 as the docs allow it
also the 0 case is indeed used in some code pathes

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 23:04:10 +02:00
Michael Niedermayer
ac6659aff7 movenc: fix regression with yuyv caused by c5f23d
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 20:23:17 +02:00
Justin Ruggles
31b2262dca wmaenc: use float planar sample format 2012-10-06 13:23:13 -04:00
Justin Ruggles
b1540fc884 (e)ac3enc: use planar sample format 2012-10-06 13:23:13 -04:00
Justin Ruggles
f3e2d68df6 aacenc: use planar sample format 2012-10-06 13:23:13 -04:00
Bobby Bingham
51211d351c vf_tile: fix typos/grammar in comments
Signed-off-by: Bobby Bingham <uhmmmm@gmail.com>
2012-10-06 11:34:10 -05:00
Justin Ruggles
095be4fbf6 adpcmenc: use planar sample format for adpcm_ima_wav and adpcm_ima_qt 2012-10-06 12:25:33 -04:00
Justin Ruggles
d9a13c2f56 adpcmenc: move 'ch' variable to higher scope
It is used for multiple codecs.
2012-10-06 12:25:33 -04:00
Justin Ruggles
9606f19b4e adpcmenc: fix 3 instances of variable shadowing 2012-10-06 12:25:33 -04:00
Justin Ruggles
1e35574bad adpcm_ima_wav: simplify encoding 2012-10-06 12:25:33 -04:00
Justin Ruggles
cfc0a80a1d libvorbis: use planar sample format 2012-10-06 12:25:32 -04:00
Justin Ruggles
473b297f26 libmp3lame: use planar sample formats 2012-10-06 12:25:32 -04:00
Justin Ruggles
233783e2c1 vorbisenc: use float planar sample format 2012-10-06 12:25:32 -04:00
Justin Ruggles
11dcddb97b ffm: do not write or read the audio sample format 2012-10-06 12:21:54 -04:00
Mans Rullgard
6221e2478c parseutils: fix parsing of invalid alpha values
An alpha specifier outside the valid range results in a conversion from
double to long with undefined result.  Range-checking the double and
only converting it after it passes avoids this.

Fixes fate-parseutils errors on some systems.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-06 17:08:29 +01:00
Michael Niedermayer
293e5423c6 configure: enable -Werror=vla
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 14:03:32 +02:00
Michael Niedermayer
24702a91e4 pca: get rid of VLA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 14:03:15 +02:00
Michael Niedermayer
56d7f7d955 snowenc: get rid of VLA (well it wasnt really variable anyway)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 13:59:35 +02:00
Anton Khirnov
37ac11d92e doc/RELEASE_NOTES: update for the 9 release.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-06 13:55:18 +02:00
Michael Niedermayer
13a215236b swr-test: avoid VLA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 13:48:47 +02:00
Michael Niedermayer
55c49afc42 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  yuv4mpeg: return proper error codes.
  Give all anonymously typedeffed structs in headers a name
  fate: Add parseutils test
  parseutils-test: Drop random colors from parsing test
  vf_pad/scale: use double precision for aspect ratios.
  build: error on variable-length arrays
  ppc: swscale: rework yuv2planeX_altivec()
  ppc: fmtconvert: kill VLA in float_to_int16_interleave_altivec()
  x86: dsputil: kill VLA in gmc_mmx()
  libspeexenc: Updated commentary to reflect recent changes
  libspeexenc: Add an option for enabling DTX
  doc/APIchanges: fill in missing dates and hashes.
  lavr: bump major to 1 and declare it stable.
  lavr: change the type of the data buffers to uint8_t**.
  lavc: deprecate the audio resampling API.

Conflicts:
	cmdutils.h
	configure
	doc/APIchanges
	ffplay.c
	libavcodec/dwt.h
	libavcodec/libspeexenc.c
	libavfilter/vf_pad.c
	libavfilter/vf_scale.c
	libavformat/asf.h
	tests/fate/libavutil.mak
	tests/ref/fate/parseutils

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 13:45:08 +02:00
Stefano Sabatini
886c3662d3 doc/filters: fix typo 2012-10-06 12:53:11 +02:00
Michael Niedermayer
9d19d7c335 segment: reverse pass avoid_negative_ts from the muxer
This fixes failures with formats not supporting negative TS

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 12:07:26 +02:00
Martin Storsjö
cde26748ae smoothstreamingenc: Add a more verbose error message
This helps tracking down the cause if this happens to be an issue.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-06 13:05:35 +03:00
Martin Storsjö
fadd3a6821 smoothstreamingenc: Ignore the return value from mkdir
We don't need to return an error if the directory already existed.
We make sure that the directory actually is properly writeable later
within ism_write_header by writing a manifest anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-06 13:05:34 +03:00
Martin Storsjö
8e2763786d smoothstreamingenc: Try writing a manifest when opening the muxer
This allows failing cleaner and earlier if unable to write to
the output directory.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-06 13:05:33 +03:00
Martin Storsjö
3ea06ac59e smoothstreamingenc: Move the output_chunk_list and write_manifest functions up
This allows calling write_manifest from ism_write_header without
a forward declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-06 13:05:32 +03:00
Martin Storsjö
5fa43f76aa smoothstreamingenc: Properly return errors from ism_flush to the caller
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-06 13:05:31 +03:00
Martin Storsjö
eb2f391018 smoothstreamingenc: Check the output UrlContext before accessing it
This code can be called with a NULL UrlContext if writing of the
trailer involves seeking.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-06 13:05:30 +03:00
Michael Niedermayer
2c34367b4a libvorbisenc: fix afq delay setting
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 11:51:18 +02:00
Anton Khirnov
d3a72becc6 yuv4mpeg: return proper error codes.
Fixes Bug 373.

CC:libav-stable@libav.org
2012-10-06 10:42:39 +02:00
Diego Biurrun
e4cbf7529b Give all anonymously typedeffed structs in headers a name
Anonymous structs cannot be forward declared and have no benefit.
2012-10-06 09:27:11 +02:00
Diego Biurrun
76f644d9f7 fate: Add parseutils test 2012-10-06 09:24:54 +02:00
Diego Biurrun
c010fce6c9 parseutils-test: Drop random colors from parsing test
This guarantees stable output for comparing test results.
2012-10-06 09:21:54 +02:00
Anton Khirnov
ba04177eeb vf_pad/scale: use double precision for aspect ratios.
Fixes Bug 203.

CC:libav-stable@libav.org
2012-10-06 07:27:53 +02:00
Carl Eugen Hoyos
7548c80acc Pinnacle TARGA CineWave YUV16 decoder (fourcc Y216).
Fixes ticket #1354
2012-10-06 06:20:52 +02:00
Michael Niedermayer
5de75336a1 mpegvideo_armv5te: change asserts to av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 04:45:57 +02:00
Michael Niedermayer
ed015f67a2 ffv1enc: fix assert in put_vlc_symbol() and update to av_assert2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 03:29:37 +02:00
Michael Niedermayer
856834a77f ffv1: change w/h asserts to check as the condition can likely happen
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 03:16:24 +02:00
Michael Niedermayer
5709e20199 ffv1: remove commented asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 03:16:24 +02:00
Stefano Sabatini
1578d01d8f Changelog: add empty line after version lines
Fix spacing inconsistency.
2012-10-06 00:05:40 +02:00
Stefano Sabatini
531872d763 ffprobe: reindent after previous commit 2012-10-05 23:58:23 +02:00
Stefano Sabatini
3d189d41c1 ffprobe: add -select_streams option 2012-10-05 23:58:18 +02:00
Mans Rullgard
c07d56a684 build: error on variable-length arrays
With all the VLAs gone, make sure they never come back.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-05 22:33:32 +01:00
Mans Rullgard
07eb7e20af ppc: swscale: rework yuv2planeX_altivec()
This gets rid of the variable-length scratch buffer by filtering 16
pixels at a time and writing directly to the destination.  The extra
loads this requires to load the source values are compensated by not
doing a round-trip to memory before shifting.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-05 22:33:32 +01:00
Mans Rullgard
642b4efaf7 ppc: fmtconvert: kill VLA in float_to_int16_interleave_altivec()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-05 22:33:32 +01:00
Mans Rullgard
bcf07a15a0 x86: dsputil: kill VLA in gmc_mmx()
Instead of using an evil VLA, fall back to C version when edge
emulation is needed.  MPEG4 GMC is a rarely used fringe feature
so the speed loss is an acceptable cost for safer code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-05 22:33:32 +01:00
Dmitry Samonenko
f1c6a740fc libspeexenc: Updated commentary to reflect recent changes
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-05 23:29:24 +03:00
Dmitry Samonenko
978d5bd2a7 libspeexenc: Add an option for enabling DTX
Discontinuous transmission is an addition to VAD/VBR operation, that
allows to greatly reduce bitrate for silent chunks or stationary
noises.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-05 23:29:24 +03:00
Carl Eugen Hoyos
d9dfe9a5ae Fix libcdio detection. 2012-10-05 21:45:02 +02:00
Carl Eugen Hoyos
eb63a74789 Do not print debug output for the (MPlayer) pullup filter. 2012-10-05 21:03:59 +02:00
Carl Eugen Hoyos
4c5a9fd65a Fix showspectrum dependencies: Add rdft. 2012-10-05 20:13:02 +02:00
Paul B Mahol
0a7d4ea31b configure: dts demuxer needs dca_parser
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-05 17:22:20 +00:00
Giorgio Vazzana
db4bb4c983 oggparsetheora: fix comment header parsing
Pass the correct header size to ff_vorbis_comment()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 18:07:13 +02:00
Michael Niedermayer
0ed023275f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: don't touch H264Context->ref_count[] during MB decoding
  x86: get_cpu_flags: add necessary ifdefs around function body
  x86: Drop CPU detection intrinsics
  x86: Add YASM implementations of cpuid and xgetbv from x264

Conflicts:
	configure
	libavcodec/h264_cabac.c
	libavcodec/h264_cavlc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 17:04:15 +02:00
Michael Niedermayer
2a77d4f70b Merge commit '65d12900432ac880d764edbbd36818431484a76e'
* commit '65d12900432ac880d764edbbd36818431484a76e':
  configure: add --enable-lto option
  x86: cpu: Break out test for cpuid capabilities into separate function
  x86: ff_get_cpu_flags_x86(): Avoid a pointless variable indirection
  build: Factor out mpegaudio dependencies to CONFIG_MPEGAUDIO
  segment: Add comments about calls that only are relevant for some muxers
  segment: Add an option for omitting the first header and final trailer

Conflicts:
	configure
	libavcodec/Makefile
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:52:13 +02:00
Michael Niedermayer
f74f8bc864 Merge commit 'a854362b40f0e458db5a1fb0d2612a5702ee0ace'
* commit 'a854362b40f0e458db5a1fb0d2612a5702ee0ace':
  segment: Flush buffered data before finishing a segment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:41:50 +02:00
Michael Niedermayer
b26cbf75bc Merge commit 'f7b240434c015056bc6319ddbdb8483757cc13e2'
* commit 'f7b240434c015056bc6319ddbdb8483757cc13e2':
  segment: Set the resend_headers flag for each segment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:30:34 +02:00
Michael Niedermayer
50c555e396 Merge commit '378a6315b7c48195ffd94e6aa9aa6d663d42b35e'
* commit '378a6315b7c48195ffd94e6aa9aa6d663d42b35e':
  segment: Add an option for disabling writing of a header/trailer to each segment

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:21:16 +02:00
Michael Niedermayer
008d36ba1d Merge commit 'eb447d515956b3ce182d9750083131735f00324c'
* commit 'eb447d515956b3ce182d9750083131735f00324c':
  segment: Free and reinit the muxer before calling avformat_write_header

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 15:48:23 +02:00
Michael Niedermayer
1bd22229d7 Merge commit '73871dc96ff78053b9dcd0eb259b7f5a5308ec87'
* commit '73871dc96ff78053b9dcd0eb259b7f5a5308ec87':
  segment: Use the public av_write_header/av_write_trailer functions

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 15:12:54 +02:00
Michael Niedermayer
d19728da6f Merge commit '0edae4e6286096023cdd6adea74722fa06029867'
* commit '0edae4e6286096023cdd6adea74722fa06029867':
  segment: Properly create new AVStreams for the chained muxer
  segment: Add a missing space

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 15:03:02 +02:00
Anton Khirnov
2f49e3da33 doc/APIchanges: fill in missing dates and hashes. 2012-10-05 14:01:39 +02:00
Anton Khirnov
006afc7a0b lavr: bump major to 1 and declare it stable. 2012-10-05 13:50:13 +02:00
Anton Khirnov
e7ba5b1de0 lavr: change the type of the data buffers to uint8_t**.
This is more consistent with what the rest of Libav does.

This breaks API.
2012-10-05 13:49:44 +02:00
Anton Khirnov
30223b3bf2 lavc: deprecate the audio resampling API.
It has been superseded by lavr.
2012-10-05 13:47:56 +02:00
Ronald S. Bultje
2e59210edf lavc/h264: don't touch H264Context->ref_count[] during MB decoding.
The variable is copied to subsequent threads at the same time, so this
may cause wrong ref_count[] values to be copied to subsequent threads.

This bug was found using TSAN and Helgrind.

Original patch by Ronald, adapted with a local_ref_count by Clément,
following the suggestion of Michael Niedermayer.

Signed-off-by: Clément Bœsch <clement.boesch@smartjog.com>
2012-10-05 07:35:58 +02:00
Duncan Salerno
5cdd3b995c hls: Disable http seekability probing
Some HLS servers return 403 when the Range header is present. Disabling http
seekability probing prevents the header from being added.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 05:15:55 +02:00
Duncan Salerno
8a33210d1b http: prevent the Range header being sent when seekability probing isnt used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 05:13:28 +02:00
Duncan Salerno
dd1e6b2a13 http: add option to prevent probing for HTTP seekability
Add an tri-state (seek, non seek, automatic detection) option to HTTP to control seekability (default: automatic).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 05:11:58 +02:00
Michael Niedermayer
cf5a98b9e3 mpeg2videodec: fix list of supported frame rates to include sane ext rates.
This only adds a subset of the frame rates that can be stored, a full list
would be more than 500 entries. Such full list could (and should) be added
if it has a usecase but the number of users of even the now added rates
seem rather small.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 02:51:19 +02:00
Ronald S. Bultje
f6f7d15041 h264: don't touch H264Context->ref_count[] during MB decoding
The variable is copied to subsequent threads at the same time, so this
may cause wrong ref_count[] values to be copied to subsequent threads.

This bug was found using TSAN.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-05 02:49:45 +02:00
Dmitry Samonenko
66a4ac5182 libspeexenc: Updated commentary to reflect recent changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 00:17:38 +02:00
Dmitry Samonenko
038325ac05 libspeexenc: Add an option for enabling DTX
Discontinuous transmission is an addition to VAD/VBR operation, that
allows to greatly reduce bitrate for silent chunks or stationary
noises.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 00:18:01 +02:00
Michael Niedermayer
d56834201b 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>
2012-10-05 00:18:01 +02:00
Tim Nicholson
60b433d905 movenc.c: Add support for >16bit BE flavours
Currently only LE handled correctly
Updated fate checksums to reflect new headers

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 21:31:10 +02:00
Diego Biurrun
a7329e5fc2 x86: get_cpu_flags: add necessary ifdefs around function body
ff_get_cpu_flags_x86() requires cpuid(), which is conditionally defined
elsewhere in the file.  Surrounding the function body with ifdefs allows
building even when cpuid is not defined.  An empty cpuflags mask is
returned in this case.
2012-10-04 19:29:14 +02:00
Diego Biurrun
f6fbce761e x86: Drop CPU detection intrinsics
Now that there is CPU detection in YASM, there will always be one of
inline or external assembly enabled, which obviates the need to fall
back on CPU detection through compiler intrinsics.
2012-10-04 19:29:14 +02:00
Diego Biurrun
1f6d86991f x86: Add YASM implementations of cpuid and xgetbv from x264
This allows detecting CPU features with builds that have neither
gcc inline assembly nor the right compiler intrinsics enabled.
2012-10-04 19:29:14 +02:00
Mans Rullgard
65d1290043 configure: add --enable-lto option
This works with gcc.  Other compilers might need to have a flag
mapping added.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-04 18:21:49 +01:00
Diego Biurrun
54b243141e x86: cpu: Break out test for cpuid capabilities into separate function 2012-10-04 18:09:21 +02:00
Diego Biurrun
cc5e9e5ff0 x86: ff_get_cpu_flags_x86(): Avoid a pointless variable indirection 2012-10-04 17:58:42 +02:00
Diego Biurrun
1e164c0bcc build: Factor out mpegaudio dependencies to CONFIG_MPEGAUDIO
A new hidden config variable is added for the codecs that depend on the
mpegaudio parts.
2012-10-04 17:58:42 +02:00
Michael Niedermayer
2e8dcde1fe ffplay: autodetect realtime streams and enable infbuf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 17:35:20 +02:00
Michael Niedermayer
cb3fd029b7 ffplay: add a 3rd state to infbuf for autodetection
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 17:34:47 +02:00
Martin Storsjö
91c1567beb segment: Add comments about calls that only are relevant for some muxers
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 18:22:47 +03:00
Michael Niedermayer
e214306775 mpeg2enc: support and use frame_rate_ext when needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 15:25:30 +02:00
Michael Niedermayer
489d8a79a6 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vf_overlay: properly sync inputs.

Conflicts:
	libavfilter/vf_overlay.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 13:20:50 +02:00
Michael Niedermayer
0f1446a4d0 Merge commit 'ab35ec29a4071871934856c00da7d6ebcc0c095b'
* commit 'ab35ec29a4071871934856c00da7d6ebcc0c095b':
  vf_overlay: get rid of pointless messing with timebase.
  samplefmt: make av_samples_alloc() initialize the data to silence.
  libspeexdec: handle NULL return value from speex_packet_to_header()
  h264probe: Don't error out on bits that no longer are reserved
  mpegvideo: set extended_data in ff_update_duplicate_context()
  libspeexdec: properly handle DTX for multiple frames-per-packet
  libspeexdec: move the SpeexHeader from LibSpeexContext to where it is used
  libspeexdec: simplify setting of frame_size
  libspeexdec: set channel_layout

Conflicts:
	libavfilter/vf_overlay.c
	libavformat/h264dec.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 13:11:45 +02:00
Martin Storsjö
a854362b40 segment: Flush buffered data before finishing a segment
This makes sure any buffered data is written to the segment, for
muxers that buffer up data internally (e.g. fragmented mp4).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
f7b240434c segment: Set the resend_headers flag for each segment
This makes sure new inline headers are emitted when the next
packet is written. This allows segmenting mpegts without calling
write_header/write_trailer (nor freeing/reiniting the muxer)
for each segment.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
378a6315b7 segment: Add an option for disabling writing of a header/trailer to each segment
Some segmented formats (such as fragmented mp4) are "bare", as in,
the segment files do not have the same headers/trailers as full normal
files of that format have.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
eb447d5159 segment: Free and reinit the muxer before calling avformat_write_header
This makes sure the muxers are set up in the way they expect
with no data left around from the previous run (which could
cause various issues including memory leaks, depending on the chaine
muxer).

This fixes memory leaks with the mpegts and flv muxers. It also
makes the usage of chained muxers correct.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
73871dc96f segment: Use the public av_write_header/av_write_trailer functions
With this change, the segmenter muxer doesn't rely on anything
not available/supported to libavformat external users, making
the segmenter muxer do things just like a normal segmenter
application using libavformat would do.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
0edae4e628 segment: Properly create new AVStreams for the chained muxer
Before, the chained muxer reused the AVStreams array from
the outer muxer, which made it impossible to use the proper
public functions (such as av_write_frame) when calling the
chained muxer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
c864c3968a segment: Add an option for omitting the first header and final trailer
This allows writing totally bare segments, without any header/trailer
included anywhere.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
aa9f128b7c segment: Add a missing space
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:08 +03:00
Michael Niedermayer
741f5b021a Merge commit '29abb04e73b0580ebe38703cadb988d26df6a76a'
* commit '29abb04e73b0580ebe38703cadb988d26df6a76a':
  libspeexdec: If the channel count is not valid, decode as stereo.
  libspeexdec: improve setting of Speex mode and sample rate
  libspeex: Add a private option for enabling VAD
  xtea: Test inplace decryption
  xtea: Fix CBC decryption when src==dst
  xtea: Factorize testing into a separate function
  configure: Refactor HAVE_ options available on the command line
  avconv/avprobe: Add missing 'void' to exit_program() definition
  Allow use of strncpy()
  blowfish: Add more tests
  blowfish: Fix CBC decryption with dst==src
  blowfish: Factorize testing into a separate function

Conflicts:
	configure
	libavcodec/libspeexdec.c
	libavutil/xtea.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 12:30:25 +02:00
Anton Khirnov
4673a5a761 vf_overlay: properly sync inputs.
Right now it incorrectly assumes that the frames are sent in the proper
order, which worked with old ffmpeg and avconv versions by accident.
2012-10-04 10:23:25 +02:00
Anton Khirnov
ab35ec29a4 vf_overlay: get rid of pointless messing with timebase.
Output frames correspond 1:1 to input frames on the main input.
So use the main input timebase for output.
2012-10-04 10:21:58 +02:00
Anton Khirnov
cd15b7c03d samplefmt: make av_samples_alloc() initialize the data to silence.
Right now the buffer is zeroed, which does not represent silence for U8(P).
2012-10-04 08:05:21 +02:00
Michael Niedermayer
047dcfabc7 afq: sanity assert on remaining_samples
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 03:01:36 +02:00
Michael Niedermayer
b27e2b6e12 afq: update remaining samples variable.
Fixes Ticket1785 (opusenc used this variable)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 02:41:41 +02:00
Michael Niedermayer
b02493e476 movenc: force video timebase to be 0.1ms precisse at least.
The timebases before where only guranteed to be 1/fps precisse
and could cause AV sync errors on low fps

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-04 01:33:49 +02:00
Justin Ruggles
c9df48909e libspeexdec: handle NULL return value from speex_packet_to_header()
This will happen when the extradata is not a valid Speex header.
2012-10-03 18:26:25 -04:00
Michael Niedermayer
769ed3057e h264probe: Don't error out on bits that no longer are reserved
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 00:59:34 +03:00
Janne Grunau
1481e19825 mpegvideo: set extended_data in ff_update_duplicate_context()
AVFrame.extended_data has to reset to the AVFrame.data of the current
thread context after copying the frame contents.
Fixes crashes with frame-threading after 2bc0de3858.
2012-10-03 22:08:49 +02:00
Justin Ruggles
29abb04e73 libspeexdec: If the channel count is not valid, decode as stereo.
When initialized as stereo, libspeex can decode either mono or stereo packets
and will output stereo.
2012-10-03 16:03:32 -04:00
Justin Ruggles
45e5d0c3ac libspeexdec: properly handle DTX for multiple frames-per-packet 2012-10-03 16:03:32 -04:00
Justin Ruggles
908e22b93a libspeexdec: move the SpeexHeader from LibSpeexContext to where it is used 2012-10-03 16:03:32 -04:00
Justin Ruggles
892695c851 libspeexdec: simplify setting of frame_size 2012-10-03 16:03:32 -04:00
Justin Ruggles
27c3f9c03e libspeexdec: set channel_layout 2012-10-03 16:03:32 -04:00
Justin Ruggles
3b061c5e10 libspeexdec: improve setting of Speex mode and sample rate
If there is no extradata and the sample rate given by the user is not valid,
decode as ultra-wideband.
2012-10-03 16:03:31 -04:00
Michael Niedermayer
5e6439a125 ff_choose_timebase: only try factors upto 14
otherwise a unexpected timebase could be choosen
that is one that is thousand times more precisse than requested
which can have sideeffects.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 21:38:56 +02:00
Michael Niedermayer
de707bc8bd mux/nut: factorize ff_choose_timebase() out of nut
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 21:34:43 +02:00
Dmitry Samonenko
ad11681acd libspeex: Add a private option for enabling VAD
Speex detects non-speech periods and encodes them with just enough bits
to reproduce the background noise, aka ``comfort noise generation''.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 19:23:39 +03:00
Michael Niedermayer
05e5a24f79 tiffenc: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 18:20:28 +02:00
Michael Niedermayer
f0fce9f33e xtea: Test inplace decryption
Based on test code by: Giorgio Vazzana <mywing81@gmail.com>

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 19:19:53 +03:00
Michael Niedermayer
b434500431 xtea: Fix CBC decryption when src==dst
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 19:19:49 +03:00
Martin Storsjö
ca074cc313 xtea: Factorize testing into a separate function
Based on a patch by Michael Niedermayer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 19:19:37 +03:00
Diego Biurrun
fd712a5584 configure: Refactor HAVE_ options available on the command line 2012-10-03 18:08:25 +02:00
Diego Biurrun
8be5b0d6d5 avconv/avprobe: Add missing 'void' to exit_program() definition 2012-10-03 18:07:49 +02:00
Michael Niedermayer
dc82b2c0f1 framecrcenc: print flags and side data elements
The new fields are only printed when they differ from their defaults
this way only few fate refs change

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 16:51:30 +02:00
Michael Niedermayer
6a697b42d0 parser: fix large overreads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 16:14:59 +02:00
Clément Bœsch
1e2e2c8095 lavc/h264: move ff_init_cabac_states() from decode_slice() to ff_h264_decode_init().
This fixes one of the potential races spotted by Helgrind.
2012-10-03 15:38:22 +02:00
Mans Rullgard
05e209c04c Allow use of strncpy()
There are cases where strncpy() does exactly what is required.
A blanket ban forces more convoluted solutions to be used in those
cases and has been a cause of bugs.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-03 14:36:51 +01:00
Martin Storsjö
75366a504d blowfish: Add more tests
Test inplace ECB, normal CBC and inplace CBC encryption/decryption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 16:05:54 +03:00
Martin Storsjö
87f023f2c0 blowfish: Fix CBC decryption with dst==src
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 16:05:23 +03:00
Martin Storsjö
0cc9a64b92 blowfish: Factorize testing into a separate function
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-03 16:05:05 +03:00
Michael Niedermayer
7e5496fc41 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ARM: use numeric ID for Tag_ABI_align_preserved
  segment: Pass the interrupt callback on to the chained AVFormatContext, too
  ARM: bswap: drop armcc version of av_bswap16()
  ARM: set Tag_ABI_align_preserved in all asm files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 13:35:02 +02:00
Mans Rullgard
51a15ed740 ARM: use numeric ID for Tag_ABI_align_preserved
Some old assemblers still in use do not support named tags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-03 11:49:55 +01:00
Michael Niedermayer
695f086939 ffv1dec: print bps for pict debug too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 05:43:32 +02:00
Justin Ruggles
df824548d0 8svx: Fixing header size, move decoding to per call instead of the first call.
The fate checksum change is due to the header size having been wrong.

Credit&Authorship for the code belongs to Justin Ruggles
Blame for bugs in this merging of the code belong to the Commiter
Commit message by Commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 03:49:24 +02:00
Michael Niedermayer
26d1c7d9c3 8svx: avoid custom clip, avoid +128 for compressed data.
Based on:
	commit e371878416
	Author: Justin Ruggles <justin.ruggles@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 02:50:10 +02:00
Michael Niedermayer
6eed92a2b7 8svx: fix delta_decode cliping limits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 01:52:29 +02:00
Nicolas George
72f10d5473 8svx: copy start value in output samples.
Otherwise, the last byte of each stream is left uninitialized.

Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 01:45:27 +02:00
Martin Ettl
f077e1fb4c ffserver: fix potential buffer overflow, based on wrong fscanf format indentifier.
Fixed Ticket1780

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 22:59:03 +02:00
Michael Niedermayer
d4e82a341e 8svx: remove malloc and memcpy that have become unneeded
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 22:44:09 +02:00
Martin Storsjö
4edb34f6cc segment: Pass the interrupt callback on to the chained AVFormatContext, too
This might not be needed at the moment, but it's good practice to
pass it to all chained AVFormatContexts, if it would happen to be
used there at a later point.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-02 22:14:07 +02:00
Michael Niedermayer
8f0168a3b9 fix exit_program() prototypes
This fixes 2 warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 21:55:31 +02:00
Mans Rullgard
1ca3b62b10 ARM: bswap: drop armcc version of av_bswap16()
This function causes several versions of armcc to miscompile code,
and the performance impact is small.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-02 19:47:56 +01:00
Mans Rullgard
5e826fd65e ARM: set Tag_ABI_align_preserved in all asm files
All our ARM asm preserves alignment so setting this attribute
in a common location is simpler.  This removes numerous warnings
when linking with armcc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-02 19:47:56 +01:00
Michael Niedermayer
032ba74ed2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ARM: fix Thumb PIC on Apple
  nut: add do {} while (0) to GET_V
  tiffenc: Check av_malloc() results.
  tiffenc: Simplify pixel format setup using AVPixFmtDescriptor.
  Use atexit() instead of defining a custom exit_program() interface.
  msvc: Fix detection of VFW & Avisynth required libs

Conflicts:
	ffmpeg.c
	ffmpeg_opt.c
	ffplay.c
	ffprobe.c
	ffserver.c
	libavcodec/tiffenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 19:48:54 +02:00
Michael Niedermayer
dd78e1090b Merge commit '1e46c63eb72be752e044ba32257d77f35cbd9dac'
* commit '1e46c63eb72be752e044ba32257d77f35cbd9dac':
  avformat: refactor avformat_write_header

Conflicts:
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 18:48:56 +02:00
Michael Niedermayer
6cbbf4a274 Merge commit '86bbdf865e04bc5ddc2021b0620e6de634375253'
* commit '86bbdf865e04bc5ddc2021b0620e6de634375253':
  avformat: refactor avformat_write_header

Conflicts:
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 18:36:09 +02:00
Michael Niedermayer
513042c926 Merge commit '55f9037f38bc3beacb2f5a17408c1d24c077d7fd'
* commit '55f9037f38bc3beacb2f5a17408c1d24c077d7fd':
  avformat: split muxing functions from util.c

Conflicts:
	libavformat/internal.h
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 18:20:24 +02:00
Michael Niedermayer
f5b31daa5e libopusenc: use more specific and correct name for the channel order
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 17:34:10 +02:00
Michael Niedermayer
e88ca80dc3 Merge commit 'bfcd4b6a1691d20aebc6d2308424c2a88334a9f0'
* commit 'bfcd4b6a1691d20aebc6d2308424c2a88334a9f0':
  adpcmdec: set AVCodec.sample_fmts
  twinvq: use planar sample format
  ralf: use planar sample format
  mpc7/8: use planar sample format
  iac/imc: use planar sample format
  dcadec: use float planar sample format
  cook: use planar sample format
  atrac3: use float planar sample format
  apedec: output in planar sample format
  8svx: use planar sample format

Conflicts:
	libavcodec/8svx.c
	libavcodec/dcadec.c
	libavcodec/mpc7.c
	libavcodec/mpc8.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 17:27:52 +02:00
Michael Niedermayer
82db8ee321 Merge commit 'fd41cb43702498948ff14ba8c284fd5c15fc729d'
* commit 'fd41cb43702498948ff14ba8c284fd5c15fc729d':
  avconv: improve sample format negotiation for decoder request
  Opus encoder using libopus
  mpegts: Drop pointless casting of hex_dump_debug arguments
  avformat: const correctness for av_hex_dump / av_hex_dump_log
  wmadec: Adjust debug printf argument length modifier

Conflicts:
	Changelog
	ffmpeg.c
	libavcodec/libopusdec.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 14:58:19 +02:00
Michael Niedermayer
f7f5370b4b mov: add option to ignore edit lists.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 14:18:46 +02:00
Mans Rullgard
7bda4ed780 ARM: fix Thumb PIC on Apple
LDR with register offset and PC as base register is not available in
the Thumb instruction set so the addition must be done separately.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-02 13:12:33 +01:00
Luca Barbato
72d30b2792 nut: add do {} while (0) to GET_V
Make it consistent with the other function-like macros.
2012-10-02 12:16:47 +02:00
Stefano Sabatini
e97e0eff84 doc/swresample.txt: fix typos 2012-10-02 09:43:27 +02:00
Stefano Sabatini
c053f48662 lavfi/transpose: add passthrough option 2012-10-02 09:43:06 +02:00
Stefano Sabatini
6300062774 lavfi/transpose: add support to named options and shortands
Allow extensibility.
2012-10-02 09:20:10 +02:00
Alex Converse
b92dfb56d4 tiffenc: Check av_malloc() results. 2012-10-01 17:46:44 -07:00
Alex Converse
9bc055e358 tiffenc: Simplify pixel format setup using AVPixFmtDescriptor. 2012-10-01 17:46:44 -07:00
Dmitry Samonenko
c785b6db73 Libspeex VAD support
Option for Voice Activity Detection is added to speex encoder.

Speex detects non-speech periods and encodes them with just enough bits
to reproduce the background noise, aka ``comfort noise generation''.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 02:24:55 +02:00
Michael Niedermayer
44ae7badae ffmpeg: print muxed packet sizes in debug output too
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 02:14:02 +02:00
Michael Niedermayer
4abc411b97 nutenc: choose for non audio streams a timebase with finer resolution.
While a 25 fps stream can in general store frame durations in 1/25
units, this is not true for the timestamps. For example a 25fps
and a 25000/1001 fps stream when they are stored together might have
a matching 0 timestamp point but when for example a chapter from
this is cut the new start is no longer aligned. The issue gets
MUCH worse when the streams are lower fps, like 1 or 2 fps.

This commit thus makes the muxer choose a multiple of the
framerate as timebase that is at least about 20 micro seconds precise

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 01:09:12 +02:00
Michael Niedermayer
e3fb5bc147 nut: store and read the r_frame_rate
With this, when we use a finer timebase than neccessary to store
durations the demuxer still knows what the original timebase was.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 01:09:12 +02:00
Michael Niedermayer
4eb0f5f635 nutenc: use 1/sample rate as timebase for audio instead of framesize/sample rate
This way audio frames can be exactly stored even when they are not
aligned with timestamp 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-02 01:09:12 +02:00
Clément Bœsch
c4dba58f47 isom: fix redundant redeclaration of ff_mov_read_chan().
Silence a GCC warning. A leftover of the disabled version is still
available in lavf/isom.c.
2012-10-02 00:26:15 +02:00
Diego Elio Pettenò
5e3f9979fa Use atexit() instead of defining a custom exit_program() interface. 2012-10-01 17:17:42 -04:00
Derek Buitenhuis
bd680c7b49 msvc: Fix detection of VFW & Avisynth required libs
It should be vfw32.lib with MSVC.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-01 16:39:40 -04:00
Clément Bœsch
2308c5bb25 lavfi/edgedetect: add missing minus in a comment. 2012-10-01 22:31:14 +02:00
Clément Bœsch
d771b1d137 lavfi: EBU R.128 scanner. 2012-10-01 22:26:19 +02:00
Clément Bœsch
81bbce9cf3 Move xGA font data from lavc to lavu.
This needs to be accessible for libavfilter in the next commit.
2012-10-01 22:24:17 +02:00
Luca Barbato
1e46c63eb7 avformat: refactor avformat_write_header
Split away option settings, sanity checks and general setup.
2012-10-01 19:57:57 +02:00
Luca Barbato
86bbdf865e avformat: refactor avformat_write_header
Mostly cosmetic changes adding some intermediate to shorten the lines.
2012-10-01 19:57:57 +02:00
Luca Barbato
55f9037f38 avformat: split muxing functions from util.c 2012-10-01 19:57:57 +02:00
Justin Ruggles
bfcd4b6a16 adpcmdec: set AVCodec.sample_fmts 2012-10-01 13:42:44 -04:00
Justin Ruggles
1478a3601e twinvq: use planar sample format 2012-10-01 13:42:44 -04:00
Justin Ruggles
a34be78546 ralf: use planar sample format 2012-10-01 13:42:44 -04:00
Justin Ruggles
1a3459033d mpc7/8: use planar sample format 2012-10-01 13:42:44 -04:00
Justin Ruggles
fd41cb4370 avconv: improve sample format negotiation for decoder request
This takes into account planar vs. packed when comparing to find the closest
sample format match.
2012-10-01 13:42:43 -04:00
Justin Ruggles
3fca0d7210 iac/imc: use planar sample format 2012-10-01 13:42:43 -04:00
Justin Ruggles
64c312aa29 dcadec: use float planar sample format 2012-10-01 13:42:43 -04:00
Justin Ruggles
cbf6ee7823 cook: use planar sample format 2012-10-01 13:42:43 -04:00
Justin Ruggles
9af4eaa8ea atrac3: use float planar sample format 2012-10-01 13:42:43 -04:00
Justin Ruggles
461ba7e97a apedec: output in planar sample format 2012-10-01 13:42:43 -04:00
Justin Ruggles
cf8c93ada4 8svx: use planar sample format 2012-10-01 13:42:43 -04:00
Michael Niedermayer
c39916bc2f jpeglsdec: move pict debug log under correct if()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-01 16:45:59 +02:00
Michael Niedermayer
64604e2679 cpu: improve av_get_cpu_flags() doxy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-01 16:41:37 +02:00
Michael Niedermayer
31ab1575e5 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  avcodec: Convert some commented-out printf/av_log instances to av_dlog
  avcodec: Drop silly and/or broken printf debug output
  avcodec: Drop some silly commented-out av_log() invocations
  avformat: Convert some commented-out printf/av_log instances to av_dlog
  avformat: Remove non-compiling and/or silly commented-out printf/av_log statements
  Remove some silly disabled code.
  ac3dec: ensure get_buffer() gets a buffer for the correct number of channels

Conflicts:
	libavcodec/dnxhddec.c
	libavcodec/ffv1.c
	libavcodec/h264.c
	libavcodec/h264_parser.c
	libavcodec/mjpegdec.c
	libavcodec/motion_est_template.c
	libavcodec/mpegaudiodec.c
	libavcodec/mpegvideo_enc.c
	libavcodec/put_bits.h
	libavcodec/ratecontrol.c
	libavcodec/wmaenc.c
	libavdevice/timefilter.c
	libavformat/asfdec.c
	libavformat/avidec.c
	libavformat/avienc.c
	libavformat/flvenc.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-01 16:12:38 +02:00
Nathan Caldwell
6cb8c85409 Opus encoder using libopus
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-01 14:42:40 +02:00
Diego Biurrun
15d35bee83 mpegts: Drop pointless casting of hex_dump_debug arguments 2012-10-01 13:18:28 +02:00
Diego Biurrun
d3c40a7d1d avformat: const correctness for av_hex_dump / av_hex_dump_log 2012-10-01 13:18:28 +02:00
Diego Biurrun
d25fe4cc65 wmadec: Adjust debug printf argument length modifier 2012-10-01 12:46:41 +02:00
Diego Biurrun
1218777ffd avcodec: Convert some commented-out printf/av_log instances to av_dlog 2012-10-01 10:24:28 +02:00
Diego Biurrun
9c6cf7f2c9 avcodec: Drop silly and/or broken printf debug output 2012-10-01 10:24:28 +02:00
Diego Biurrun
6f6b0311a3 avcodec: Drop some silly commented-out av_log() invocations 2012-10-01 10:24:28 +02:00
Diego Biurrun
72eaba5e4f avformat: Convert some commented-out printf/av_log instances to av_dlog 2012-10-01 10:24:28 +02:00
Diego Biurrun
11d4e92ed9 avformat: Remove non-compiling and/or silly commented-out printf/av_log statements 2012-10-01 10:24:28 +02:00
Diego Biurrun
14d3e7ad11 Remove some silly disabled code. 2012-10-01 10:24:28 +02:00
Paul B Mahol
adc5539e7b smacker: read escape codes in single get_bits() call
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-10-01 07:51:47 +00:00
Justin Ruggles
56b6a43056 ac3dec: ensure get_buffer() gets a buffer for the correct number of channels
If there is an error during frame parsing, but AVCodecContext.channels was
changed and AC3DecodeContext.out_channels was set previously, the two may not
match.

Fixes CVE-2012-2802
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

CC: libav-stable@libav.org
2012-10-01 00:10:59 -04:00
Michael Niedermayer
14fd34d73b movenc: fix edit list for the case of negative pts.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-01 04:53:40 +02:00
Michael Niedermayer
015b805d13 sws: drop unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 23:14:20 +02:00
Michael Niedermayer
115e291b53 swscale: move main swscale wraper to swscale.c
It never belonged to swscale_unscaled.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 23:10:56 +02:00
Michael Niedermayer
59003fe7c0 qt-faststart: simplify code by using FFMIN
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 22:19:54 +02:00
Michael Niedermayer
610efb6773 qt-faststart: dont allocate a bigger buffer than needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 22:19:54 +02:00
Jan Ehrhardt
f4d9148fe2 qt-faststart: speedup
qt-faststart is terribly slow when the input file and the output file
are on a slow disk like a SD card. By increasing the copy_buffer from
1K to 32M I decreased the processing time on a sample file from
1600 seconds to 4 seconds. The timing difference is during 'copying
rest of file'.

S:\SD_VIDEO\PRG001>e:\utils\qt-faststart 00005.mp4 5.mp4
ftyp          0 32
free         32 8
mdat         40 13744391
moov   13744431 141848
 patching stco atom...
 patching stco atom...
 writing ftyp atom...
 writing moov atom...
 copying rest of file...

Execution time: 1576.259 s

S:\SD_VIDEO\PRG001>s:\utils\qt-faststart 00005.mp4 5.mp4
ftyp          0 32
free         32 8
mdat         40 13744391
moov   13744431 141848
 patching stco atom...
 patching stco atom...
 writing ftyp atom...
 writing moov atom...
 copying rest of file...

Execution time: 3.846 s

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 22:19:54 +02:00
Clément Bœsch
13d878366f lavfi/ashowinfo: check plane value before deferencing. 2012-09-30 21:00:52 +02:00
Giorgio Vazzana
a8cb21fd62 xtea: fix decryption with --enable-small
iv decrypt handling code needs to be executed regardless of CONFIG_SMALL

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 20:52:13 +02:00
Clément Bœsch
178ecfc257 swscale: fix To{Y,UV} extern prototypes.
This fix a bunch of "assignment from incompatible pointer type" warnings
with GCC.
2012-09-30 20:45:32 +02:00
Clément Bœsch
0065d31dcd APIchanges: fill hashes.
Also fix some dates (use the commit date instead of the author date).
2012-09-30 20:43:26 +02:00
Clément Bœsch
a04cb9823b Move subrip/text API change info from Changelog to doc/APIchanges.
Note that a lavf bump was missing so I'm using 54.28.100 as a reference.
2012-09-30 20:38:05 +02:00
Michael Niedermayer
29619f47c1 fft-test: fix order of operations for calculating the average error
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 20:10:07 +02:00
Paul B Mahol
857797bc14 vima: check packet size before initializing bitstream reader
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-09-30 17:29:37 +00:00
Paul B Mahol
06f5edc9be vima: fix typo in license header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-09-30 17:29:37 +00:00
Michael Niedermayer
48154c2594 xtea: move iv decrypt handling code into xtea_crypt_ecb()
this simplifies things are avoids a temporary

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 17:52:45 +02:00
Michael Niedermayer
a4dcdd04d7 xtea-test: test inplace decryption
Based on test code by: Giorgio Vazzana <mywing81@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 17:51:45 +02:00
Giorgio Vazzana
8c3ee93be5 xtea: fix CBC mode when src=dst
In CBC mode, when src=dst and we are decrypting a block different
from the first one, we need to save the current block of ciphertext
(which will constitute the initialization vector for the next block)
before we overwrite it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 17:51:45 +02:00
Michael Niedermayer
a0321dadfd xtea-test: factorize test code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 17:51:45 +02:00
Paul B Mahol
3fa100244f flac: use get_bits_longlong()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-09-30 14:05:04 +00:00
Paul B Mahol
01c9ffa913 tta: let samples declaration match cast
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-09-30 13:39:38 +00:00
Michael Niedermayer
f51c4bfe3f bitstream: add get_bits_longlong() to support more than 32bits
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 15:20:40 +02:00
The makemkv authors
89a823ace9 ffmpeg: disable buffering for stderr, needed for win32 runtime
Found in http://www.makemkv.com/download/ffmpeg/mmffmpeg-1.7.7.patch.gz

Commit message by commiter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 15:13:35 +02:00
Michael Niedermayer
20bd921082 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: avoid stuck buffer pointer in decode_nal_units
  mpeg12: fix the semantics of the int* parameter of decode()

Conflicts:
	libavcodec/mpeg12.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 14:28:35 +02:00
Michael Niedermayer
853a93804d Merge commit 'd9a2e87b1ce44cce23801e7ec6810f8bf994fa23'
* commit 'd9a2e87b1ce44cce23801e7ec6810f8bf994fa23':
  mpeg12: move mpeg_decode_frame() lower
  avsdec: Set dimensions instead of relying on the demuxer.
  wmalosslessdec: Reset put bit buffer when num_saved_bits is reset.

Conflicts:
	libavcodec/avs.c
	libavcodec/mpeg12.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 14:10:25 +02:00
Michael Niedermayer
e5ce6d447b Merge commit 'd05f72c75445969cd7bdb1d860635c9880c67fb6'
* commit 'd05f72c75445969cd7bdb1d860635c9880c67fb6':
  dfa: improve boundary checks in decode_dds1()
  wmalosslessdec: Fix reading too many bits in decode_channel_residues()
  wmalosslessdec: fix a get_bits(0) in decode_ac_filter
  wmalosslessdec: make MCLMS arrays big enough for what is written into them.
  indeo4/5: check empty tile size in decode_mb_info().
  ivi_common: make ff_ivi_process_empty_tile() static.
  indeo5: check tile size in decode_mb_info().
  indeo3: fix out of cell write.

Conflicts:
	libavcodec/dfa.c
	libavcodec/indeo3.c
	libavcodec/indeo5.c
	libavcodec/ivi_common.c
	libavcodec/wmalosslessdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 13:52:48 +02:00
Stefano Sabatini
301f6da039 ffprobe: extend disposition printing support
This generalizes the previous work on disposition printing.

Disposition flags are shown in a dedicated section, which should improve
output intellegibility, extensibility and filtering operations.

This breaks output syntax with the recently introduced disposition
printing.
2012-09-30 12:22:19 +02:00
Stefano Sabatini
50efde6bcb ffprobe: generalize nesting model for the XML writer
Do not make use of ad-hoc "tags" code, introduce a new section flag
SECTION_FLAG_HAS_VARIABLE_FIELDS to deal with the tags in a
content-agnostic way.

This is required by the pending disposition change.
2012-09-30 12:07:47 +02:00
Nicolas George
e4b1fcd474 lavu/opt: cosmetic fixes forgotten in the previous patch. 2012-09-30 10:23:08 +02:00
Nicolas George
438978fb4b opt: implement av_opt_set_from_string().
It is similar to av_set_options_string() but accepts a list
of options that can be in shorthand: if the key is omitted
on the first fields, the keys from the shorthand list are
assumed, in order.
2012-09-30 09:21:29 +02:00
Michael Niedermayer
5f1c3c785c get_bits_long: fix variable type
This fixes a theoretical signed overflow

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 02:37:40 +02:00
Michael Niedermayer
01aa664f21 cyuv: implement raw cyuv
Fixes Ticket1620

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-30 00:13:54 +02:00
Jindřich Makovička
1a8c6917f6 h264: avoid stuck buffer pointer in decode_nal_units
When decode_nal_units() previously encountered a NAL_END_SEQUENCE,
and there are some junk bytes left in the input buffer, but no start codes,
buf_index gets stuck 3 bytes before the end of the buffer.

This can trigger an infinite loop in the caller code, eg. in
try_decode_trame(), as avcodec_decode_video() then keeps returning zeroes,
with 3 bytes of the input packet still available.

With this change, the remaining bytes are skipped so the whole packet gets
consumed.

CC:libav-stable@libav.org

Signed-off-by: Jindřich Makovička <makovick@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 19:31:17 +02:00
Alexander Strasser
99b18b110c doc/fate: Move fate config example into doc subdirectory
Be compatible with texi2html 5.0 which doesn't search relative
file names in search paths anymore.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-29 19:27:01 +02:00
Anton Khirnov
0f583d20d5 mpeg12: fix the semantics of the int* parameter of decode()
It is got_output, not data_size.
2012-09-29 19:18:39 +02:00
Anton Khirnov
d9a2e87b1c mpeg12: move mpeg_decode_frame() lower
Avoids a forward declaration of decode_chunks().
2012-09-29 19:18:24 +02:00
Michael Niedermayer
85f477935c avsdec: Set dimensions instead of relying on the demuxer.
The decode function assumes that the video will have those dimensions.

Fixes CVE-2012-2801

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 19:18:07 +02:00
Michael Niedermayer
d65d834731 wmalosslessdec: Reset put bit buffer when num_saved_bits is reset.
Fixes CVE-2012-2799

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 19:17:38 +02:00
Anton Khirnov
d05f72c754 dfa: improve boundary checks in decode_dds1()
Fixes CVE-2012-2798

CC:libav-stable@libav.org
2012-09-29 19:17:07 +02:00
Anton Khirnov
6a99310fce wmalosslessdec: Fix reading too many bits in decode_channel_residues()
Fixes a part of CVE-2012-2795

CC:libav-stable@libav.org

Based on a patch by Michael Niedermayer <michaelni@gmx.at>

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-09-29 19:16:32 +02:00
Michael Niedermayer
f48fbf2eb5 wmalosslessdec: fix a get_bits(0) in decode_ac_filter
Fixes a part of CVE-2012-2795

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 19:15:27 +02:00
Michael Niedermayer
607f57152c wmalosslessdec: make MCLMS arrays big enough for what is written into them.
Fixes a part of CVE-2012-2795

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 19:14:25 +02:00
Anton Khirnov
ae3da0ae55 indeo4/5: check empty tile size in decode_mb_info().
This prevents writing into a too small array if some parameters changed
without the tile being reallocated.

Based on a patch by Michael Niedermayer <michaelni@gmx.at>

Fixes CVE-2012-2800

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-09-29 19:13:45 +02:00
Anton Khirnov
5d2170c53b ivi_common: make ff_ivi_process_empty_tile() static.
It's not used outside of ivi_common.c
2012-09-29 19:12:57 +02:00
Michael Niedermayer
2d09cdbaf2 indeo5: check tile size in decode_mb_info().
This prevents writing into a too small array if some parameters changed
without the tile being reallocated.

Fixes CVE-2012-2794

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 19:12:36 +02:00
Anton Khirnov
e4d4044339 indeo3: fix out of cell write.
Fixes CVE-2012-2776.

CC:libav-stable@libav.org

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-09-29 19:12:04 +02:00
Michael Niedermayer
f049729e61 ffv1enc: fix integer overflow with high resolutions and lots of slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 19:11:25 +02:00
Michael Niedermayer
594b1fcb28 mov: add av_dlog() to dump edit lists.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 18:50:18 +02:00
Michael Niedermayer
3ceeb01c06 mov: only print multiple edit lists warning for actually unsupported cases
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 18:44:35 +02:00
Michael Niedermayer
44a7a6300d lavf: free probe data in case we close before probing finished
Fixes Ticket1634

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 17:33:05 +02:00
Michael Niedermayer
acfe69669c bink: reindent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 16:25:29 +02:00
Michael Niedermayer
897d336984 bink: remove unneeded special case in the init code.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 16:25:25 +02:00
Michael Niedermayer
574e87943e bink: get rid of double precision float use
Add a small table of integers instead as this is simpler and
avoid rounding issues (though such rounding issues are unlikely in this case)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 16:23:57 +02:00
jamal
062cd9acc1 fate: Fix --disable-zlib
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 16:09:05 +02:00
rogerdpack
1bdb4b26a8 dshow: enhance error message
Signed-off-by: rogerdpack <rogerpack2005@gmail.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Reviewed-by: Ramiro Polla <ramiro.polla@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 15:48:49 +02:00
Michael Niedermayer
6fcd4f3c72 dfa: replace redundant check by assert
The values are checked in the wraper function used to call this code.

This was introduced by: ee715f49a0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 15:34:22 +02:00
Michael Niedermayer
b96dc093ea Merge remote-tracking branch 'qatar/master'
* qatar/master:
  wmalosslessdec: increase channel_coeffs/residues size
  wmalosslessdec: increase WMALL_BLOCK_MAX_BITS to 14.
  lagarith: check count before writing zeros.
  wmaprodec: check num_vec_coeffs for validity
  avidec: use actually read size instead of requested size
  avidec: return 0, not packet size from read_packet().

Conflicts:
	libavcodec/lagarith.c
	libavcodec/wmalosslessdec.c
	libavcodec/wmaprodec.c
	libavformat/avidec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 15:11:34 +02:00
Michael Niedermayer
8672fc7b04 Merge commit 'b146d74730ab9ec5abede9066f770ad851e45fbc'
* commit 'b146d74730ab9ec5abede9066f770ad851e45fbc':
  indeo4: update AVCodecContext width/height on size change
  dfa: check that the caller set width/height properly.
  indeo5dec: Make sure we have had a valid gop header.
  cavsdec: check for changing w/h.
  lavc: set channel count from channel layout in avcodec_open2().
  doc/platform: Rework the Visual Studio linking section
  doc/faq: Change the Visual Studio entry to reflect current status
  doc/platform: Replace Visual Studio section with build instructions
  doc/platform: Nuke section on linking static MinGW-built libs with MSVC
  doc/platform: Remove false claim about MinGW installer
  doc/platform: Mention MinGW-w64
  dsputil_mmx: fix reading prior of the src array in sub_hfyu_median_prediction()
  mpegaudiodec: fix short_start calculation

Conflicts:
	doc/faq.texi
	doc/platform.texi
	libavcodec/cavsdec.c
	libavcodec/indeo5.c
	libavcodec/ivi_common.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-29 14:45:55 +02:00
Anton Khirnov
065b3a1cfa wmalosslessdec: increase channel_coeffs/residues size
Fixes CVE-2012-2792

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-09-29 10:29:53 +02:00
Anton Khirnov
4a969030e4 wmalosslessdec: increase WMALL_BLOCK_MAX_BITS to 14. 2012-09-29 10:29:52 +02:00
Stefano Sabatini
74bd0cf49c ffprobe: rework/fix ini writer
Do not build from scratch the section header for each section, but build
it using the previous level buffer, thus improving efficiency.

Also fix some few corner cases related to numbering which are exposed by
the pending disposition patch.
2012-09-29 10:25:11 +02:00
Stefano Sabatini
01e4537f66 ffprobe: rework/fix flat writer
Do not build from scratch the section header for each section, but build
using the previous level buffer, thus improving efficiency and fix some
few corner cases which are exposed by the pending disposition patch.
2012-09-29 10:25:04 +02:00
Stefano Sabatini
06fd4c2dfa ffprobe: generalize nesting model for the compact writer
Regular section fields nested in a regular section are now prefixed by
the nested section name.

This is required by the pending change related to disposition.
2012-09-29 10:24:53 +02:00
Stefano Sabatini
44c1cc3f8e ffprobe: generalize nesting model for the default writer
Regular section fields nested in a regular section are now prefixed by
the nested section name.

This is required by the pending change related to disposition.
2012-09-29 10:24:45 +02:00
Stefano Sabatini
b6ea9c8765 ffprobe: drop SECTION_ENTRY macro
The use of the macro makes to add new optional fields somewhat harder.
2012-09-29 10:24:36 +02:00
Stefano Sabatini
23564a4a4a ffprobe: add support to library ident printing 2012-09-29 10:24:28 +02:00
Michael Niedermayer
b631e4ed64 lagarith: check count before writing zeros.
Fixes CVE-2012-2793

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 09:28:32 +02:00
Michael Niedermayer
99f392a584 wmaprodec: check num_vec_coeffs for validity
Fixes CVE-2012-2789

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 09:28:15 +02:00
Anton Khirnov
0af49a63c7 avidec: use actually read size instead of requested size
Fixes CVE-2012-2788
2012-09-29 09:27:59 +02:00
Anton Khirnov
eeade678f0 avidec: return 0, not packet size from read_packet(). 2012-09-29 09:27:51 +02:00
Michael Niedermayer
b146d74730 indeo4: update AVCodecContext width/height on size change
Fixes CVE-2012-2787

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 09:27:32 +02:00
Anton Khirnov
ee715f49a0 dfa: check that the caller set width/height properly.
Fixes CVE-2012-2786.
2012-09-29 09:27:08 +02:00
Michael Niedermayer
891918431d indeo5dec: Make sure we have had a valid gop header.
This prevents decoding happening on a half initialized context.

Fixes CVE-2012-2779

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 09:26:30 +02:00
Michael Niedermayer
c20a696306 cavsdec: check for changing w/h.
Our decoder does not support changing w/h.

Fixes CVE-2012-2777 and CVE-2012-2784.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-29 09:26:04 +02:00
Anton Khirnov
12e1e83461 lavc: set channel count from channel layout in avcodec_open2().
Some decoders (e.g. nellymoser) only set channel_layout and do not set
channel count.
2012-09-29 09:25:40 +02:00
Derek Buitenhuis
bad603c66a doc/platform: Rework the Visual Studio linking section
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 16:35:49 -04:00
Derek Buitenhuis
08c3156dbf doc/faq: Change the Visual Studio entry to reflect current status
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 16:34:18 -04:00
Derek Buitenhuis
f8241055c7 doc/platform: Replace Visual Studio section with build instructions
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 16:33:22 -04:00
Derek Buitenhuis
7147efa9f5 doc/platform: Nuke section on linking static MinGW-built libs with MSVC
This practice is not supported by the MinGW developers, and even requires
patching the MinGW runtimes in newer versions. Furthermore, we now support
build with MSVC, so this section is rendered useless.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 16:31:07 -04:00
Derek Buitenhuis
d41906f65d doc/platform: Remove false claim about MinGW installer
This works just fine, and has for quite a while, using the mingw-get
installer.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 16:31:06 -04:00
Derek Buitenhuis
583661ee0d doc/platform: Mention MinGW-w64
This is the toolchain most use to build.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 16:30:53 -04:00
Derek Buitenhuis
7d1d446990 doc/platform: Rework the Visual Studio linking section
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 15:52:21 -04:00
Derek Buitenhuis
ed8a2ddeea doc/faq: Change the Visual Studio entry to reflect current status
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 15:50:45 -04:00
Derek Buitenhuis
f45b54437a doc/platform: Replace Visual Studio section with build instructions
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 15:50:32 -04:00
Derek Buitenhuis
3e071551af doc/platform: Nuke section on linking static MinGW-built libs with MSVC
This practice is not supported by the MinGW developers, and even requires
patching the MinGW runtimes in newer versions. Furthermore, we now support
build with MSVC, so this section is rendered useless.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 15:27:59 -04:00
Derek Buitenhuis
55254a3f7f doc/platform: Remove false claim about MinGW installer
This works just fine, and has for quite a while, using the mingw-get
installer.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 15:27:25 -04:00
Derek Buitenhuis
6a3078bb89 doc/platform: Mention MinGW-w64
This is the toolchain most, including Libav's nightlies, use to build.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-09-28 15:27:13 -04:00
Michael Niedermayer
c0209facd2 mov: remove default of 1024 sample skip for aac.
It is not correct in all cases and it is less predictable than a skip of 0
for user applications.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 20:30:37 +02:00
Michael Niedermayer
bfe735b582 aacdec: detect faac and skip correct amount of startup samples
This also fixes aac in adts and other containers than mov.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 20:30:37 +02:00
Michael Niedermayer
791b5954bc 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-28 12:25:07 -04:00
Stefano Sabatini
ed2b69a4c3 ffprobe: remove unused "args" argument in writer init callback
The parameter is no longer used, since the arguments are parsed at the
framework level.
2012-09-28 16:37:27 +02:00
Luca Barbato
97cfa55eea mpegaudiodec: fix short_start calculation
The value should be always 3, as it follows from the specification.

Fix a stack buffer overflow in exponents_from_scale_factors as reported
by asan. Thanks to Dale Curtis for the sample vector.
2012-09-28 16:02:39 +02:00
jamal
a70b4935f1 Add missing version macros to libraries
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 15:10:18 +02:00
jamal
b75c3d2b8b swresample: Create version.h header
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 15:10:36 +02:00
jamal
ec87389183 postproc: Create version.h header
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 15:06:26 +02:00
jamal
35e09036c4 avcodec: Add missing include to version.h
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 15:06:08 +02:00
Michael Niedermayer
c402d36afa nutdec: fix get_vb_trace() / -DTRACE compile
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 14:21:53 +02:00
Michael Niedermayer
2acb5cd907 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  libopus: Remap channels using libopus' internal remapping.
  Opus decoder using libopus
  avcodec: document the use of AVCodecContext.delay for audio decoding
  vc1dec: add flush function for WMV9 and VC-1 decoders
  http: Increase buffer sizes to cope with longer URIs
  nutenc: const correctness for ff_put_v_trace/put_s_trace function arguments
  h264_refs: Fix debug tprintf argument types
  golomb: const correctness for get_ue()/get_se() function arguments
  get_bits: const correctness for get_bits_trace()/get_xbits_trace() arguments

Conflicts:
	Changelog
	libavcodec/Makefile
	libavcodec/version.h
	libavformat/http.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 13:54:40 +02:00
Nathan Caldwell
d16860a237 libopus: Remap channels using libopus' internal remapping.
This way we can directly remap channels from Opus' channel order to
libav's internal channel order, instead of mapping channels from
Opus' order to Vorbis' order then to libav's order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-28 11:03:32 +02:00
Nicolas George
44617d6ec9 Opus decoder using libopus
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-28 11:03:20 +02:00
Nathan Caldwell
e4aa3831b7 avcodec: document the use of AVCodecContext.delay for audio decoding
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-28 10:50:07 +02:00
Kostya Shishkov
4dc8c8386e vc1dec: add flush function for WMV9 and VC-1 decoders
CC: libav-stable@libav.org
2012-09-28 07:08:54 +02:00
Michael Niedermayer
4fefe91a33 configure: add missing dependancies for gpl tests
fixes fate without --enable-gpl

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 05:25:22 +02:00
Michael Niedermayer
7ed9ec033f Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dwt: Drop unused functions spatial_compose{53|97}i()
  nutdec: Remove unused and broken debug function stub
  avcodec: Drop long-deprecated imgconvert.h header
  Add Opus support to the Ogg muxer.
  Add Opus codec id and codec description.
  avformat: Identify anonymous AVIO typedef structs.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/imgconvert.h
	libavcodec/version.h
	libavformat/oggenc.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 05:11:19 +02:00
Michael Niedermayer
ac7d0c79c3 mp3dec: ask for 8khz switch point mp3s
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 04:39:10 +02:00
Michael Niedermayer
a96e3a3e77 tests/Makefile: fix ffprobe test dependancy
This fixes the ffprobe tests under mingw/wine

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-28 02:40:53 +02:00
Duncan Salerno
8bd324e9e4 http: Increase buffer sizes to cope with longer URIs
Use the MAX_URL_SIZE define where applicable. Increase buffer
sizes for all buffers that need to fit a long pathname - buffers
that need to fit only the hostname (and other short strings, but
not the pathname - such as "headers" in http_connect) are kept
at 1024 bytes for now.

Also increase the max line length in http_read_header, since it
might need to contain a full url for Location: redirects.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-28 00:09:38 +03:00
Diego Biurrun
bc66827fb1 nutenc: const correctness for ff_put_v_trace/put_s_trace function arguments 2012-09-27 19:32:47 +02:00
Diego Biurrun
6c5b0517e0 h264_refs: Fix debug tprintf argument types 2012-09-27 19:10:10 +02:00
Diego Biurrun
80412997c8 golomb: const correctness for get_ue()/get_se() function arguments 2012-09-27 19:10:10 +02:00
Diego Biurrun
e00215040a get_bits: const correctness for get_bits_trace()/get_xbits_trace() arguments 2012-09-27 19:10:10 +02:00
Diego Biurrun
4e5b7f31f7 dwt: Drop unused functions spatial_compose{53|97}i() 2012-09-27 12:08:09 +02:00
Diego Biurrun
83655442fa nutdec: Remove unused and broken debug function stub 2012-09-27 12:02:33 +02:00
Diego Biurrun
0ae3ba8daa avcodec: Drop long-deprecated imgconvert.h header 2012-09-27 12:02:33 +02:00
Nathan Caldwell
bcc1f7caeb Add Opus support to the Ogg muxer.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-27 10:48:35 +02:00
Andrew D'Addesio
2a3d82ab46 Add Opus codec id and codec description.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-27 10:48:35 +02:00
Dale Curtis
0575772fa0 avformat: Identify anonymous AVIO typedef structs.
Anonymous typedef structs prevent forward declaration, this
change gives the AVIOContext and AVIOInterruptCB structures
a name.  These structures are now in line with other common
structures such as AVFormatContext and AVCodecContext.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-27 09:14:22 +02:00
Luca Barbato
22f7942fe7 ffv1: set the range coder state in decode_slice_header 2001-01-01 01:06:41 +01:00
Janne Grunau
dcdfb8ede3 pcmdec: change default of channels parameter to 1
This was previously implicitly done in ff_raw_read_header().
Fixes fate tests with pcm input.
2012-10-25 15:14:40 +02:00
1983 changed files with 77429 additions and 46151 deletions

10
.gitignore vendored
View File

@@ -3,10 +3,14 @@
*.d
*.def
*.dll
*.dylib
*.exe
*.exp
*.h.c
*.ilk
*.lib
*.pc
*.pdb
*.so
*.so.*
*.ver
@@ -22,6 +26,7 @@
/config.*
/version.h
/doc/*.1
/doc/*.3
/doc/*.html
/doc/*.pod
/doc/avoptions_codec.texi
@@ -32,10 +37,11 @@
/doc/examples/filtering_video
/doc/examples/metadata
/doc/examples/muxing
/doc/examples/resampling_audio
/doc/examples/scaling_video
/doc/fate.txt
/doc/doxy/html/
/doc/print_options
/doxy/
/libavcodec/*_tablegen
/libavcodec/*_tables.c
/libavcodec/*_tables.h
@@ -51,6 +57,8 @@
/tools/ffbisect
/tools/bisect.need
/tools/cws2fws
/tools/fourcc2pixfmt
/tools/ffescape
/tools/ffeval
/tools/graph2dot
/tools/ismindex

View File

@@ -1,10 +1,75 @@
Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version next:
version <next>:
- Fix a crash on windows platforms related to automatic stack alignment
in libavresample
- Fix memleaks in the ogg demuxer. Related to CVE-2012-2882
version 1.1:
- stream disposition information printing in ffprobe
- filter for loudness analysis following EBU R128
- Opus encoder using libopus
- ffprobe -select_streams option
- Pinnacle TARGA CineWave YUV16 decoder
- TAK demuxer, decoder and parser
- DTS-HD demuxer
- remove -same_quant, it hasn't worked for years
- FFM2 support
- X-Face image encoder and decoder
- 24-bit FLAC encoding
- multi-channel ALAC encoding up to 7.1
- metadata (INFO tag) support in WAV muxer
- subtitles raw text decoder
- support for building DLLs using MSVC
- LVF demuxer
- ffescape tool
- metadata (info chunk) support in CAF muxer
- field filter ported from libmpcodecs
- AVR demuxer
- geq filter ported from libmpcodecs
- remove ffserver daemon mode
- AST muxer/demuxer
- new expansion syntax for drawtext
- BRender PIX image decoder
- ffprobe -show_entries option
- ffprobe -sections option
- ADPCM IMA Dialogic decoder
- BRSTM demuxer
- animated GIF decoder and demuxer
- PVF demuxer
- subtitles filter
- IRCAM muxer/demuxer
- Paris Audio File demuxer
- Virtual concatenation demuxer
- VobSub demuxer
- JSON captions for TED talks decoding support
- SOX Resampler support in libswresample
- aselect filter
- SGI RLE 8-bit decoder
- Silicon Graphics Motion Video Compressor 1 & 2 decoder
- Silicon Graphics Movie demuxer
- apad filter
- Resolution & pixel format change support with multithreading for H.264
- documentation split into per-component manuals
- pp (postproc) filter ported from MPlayer
- NIST Sphere demuxer
- MPL2, VPlayer, MPlayer, AQTitle, PJS and SubViewer v1 subtitles demuxers and decoders
- Sony Wave64 muxer
- adobe and limelight publisher authentication in RTMP
- data: URI scheme
- support building on the Plan 9 operating system
- kerndeint filter ported from MPlayer
- histeq filter ported from VirtualDub
- Megalux Frame demuxer
- 012v decoder
- Improved AVC Intra decoding support
version 1.0:
- INI and flat output in ffprobe
- Scene detection in libavfilter
- Indeo Audio decoder
@@ -57,8 +122,6 @@ version 1.0:
- 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
@@ -69,6 +132,7 @@ version 1.0:
- WebVTT demuxer and decoder (simple tags supported)
- RTP packetization of JPEG
- faststart option in the MOV/MP4 muxer
- support for building with MSVC
version 0.11:
@@ -112,6 +176,7 @@ version 0.11:
- vorbis parser
- png parser
- audio mix filter
- ffv1: support (draft) version 1.3
version 0.10:

View File

@@ -23,13 +23,21 @@ Specifically, the GPL parts of FFmpeg are
libswresample/swresample-test.c
- the texi2pod.pl tool
- the following filters in libavfilter:
- f_ebur128.c
- vf_blackframe.c
- vf_boxblur.c
- vf_colormatrix.c
- vf_cropdetect.c
- vf_decimate.c
- vf_delogo.c
- vf_geq.c
- vf_histeq.c
- vf_hqdn3d.c
- vf_hue.c
- vf_kerndeint.c
- vf_mp.c
- vf_pp.c
- vf_smartblur.c
- vf_super2xsai.c
- vf_tinterlace.c
- vf_yadif.c

View File

@@ -130,6 +130,7 @@ Codecs:
bmp.c Mans Rullgard, Kostya Shishkov
cavs* Stefan Gehrer
celp_filters.* Vitor Sessak
cdxl.c Paul B Mahol
cinepak.c Roberto Togni
cljr Alex Beregszaszi
cllc.c Derek Buitenhuis
@@ -182,7 +183,7 @@ Codecs:
lzo.h, lzo.c Reimar Doeffinger
mdec.c Michael Niedermayer
mimic.c Ramiro Polla
mjpeg.c Michael Niedermayer
mjpeg*.c Michael Niedermayer
mlp* Ramiro Polla
mmvideo.c Peter Ross
mpc* Kostya Shishkov
@@ -193,6 +194,7 @@ Codecs:
msvideo1.c Mike Melanson
nellymoserdec.c Benjamin Larsson
nuv.c Reimar Doeffinger
paf.* Paul B Mahol
pcx.c Ivo van Poorten
pgssubdec.c Reimar Doeffinger
ptx.c Ivo van Poorten
@@ -217,6 +219,7 @@ Codecs:
srt* Aurelien Jacobs
sunrast.c Ivo van Poorten
svq3.c Michael Niedermayer
tak* Paul B Mahol
targa.c Kostya Shishkov
tiff.c Kostya Shishkov
truemotion1* Mike Melanson
@@ -232,6 +235,7 @@ Codecs:
vc1* Kostya Shishkov
vcr1.c Michael Niedermayer
vda_h264_dec.c Xidorn Quan
vima.c Paul B Mahol
vmnc.c Kostya Shishkov
vorbis_enc.c Oded Shimon
vorbis_dec.c Denes Balatoni, David Conrad
@@ -246,8 +250,10 @@ Codecs:
wmv2.c Michael Niedermayer
wnv1.c Kostya Shishkov
xan.c Mike Melanson
xbm* Paul B Mahol
xl.c Kostya Shishkov
xvmc.c Ivan Kalvachev
xwd* Paul B Mahol
zerocodec.c Derek Buitenhuis
zmbv* Kostya Shishkov
@@ -270,7 +276,7 @@ libavdevice
libdc1394.c Roman Shaposhnik
v4l2.c Luca Abeni
vfwcap.c Ramiro Polla
dshow.c Roger Pack
libavfilter
===========
@@ -301,17 +307,25 @@ Generic parts:
Muxers/Demuxers:
4xm.c Mike Melanson
adtsenc.c Robert Swain
afc.c Paul B Mahol
aiff.c Baptiste Coudurier
ape.c Kostya Shishkov
ass* Aurelien Jacobs
astdec.c Paul B Mahol
astenc.c James Almer
avi* Michael Niedermayer
avr.c Paul B Mahol
bink.c Peter Ross
brstm.c Paul B Mahol
caf* Peter Ross
cdxl.c Paul B Mahol
crc.c Michael Niedermayer
daud.c Reimar Doeffinger
dtshddec.c Paul B Mahol
dv.c Roman Shaposhnik
dxa.c Kostya Shishkov
electronicarts.c Peter Ross
epafdec.c Paul B Mahol
ffm* Baptiste Coudurier
flac* Justin Ruggles
flic.c Mike Melanson
@@ -322,19 +336,22 @@ Muxers/Demuxers:
idroqdec.c Mike Melanson
iff.c Jaikrishnan Menon
ipmovie.c Mike Melanson
img2.c Michael Niedermayer
img2*.c Michael Niedermayer
ircam* Paul B Mahol
iss.c Stefan Gehrer
jacosub* Clément Bœsch
jvdec.c Peter Ross
libmodplug.c Clément Bœsch
libnut.c Oded Shimon
lmlm4.c Ivo van Poorten
lvfdec.c Paul B Mahol
lxfdec.c Tomas Härdin
matroska.c Aurelien Jacobs
matroskadec.c Aurelien Jacobs
matroskaenc.c David Conrad
metadata* Aurelien Jacobs
microdvd* Aurelien Jacobs
mgsts.c Paul B Mahol
mm.c Peter Ross
mov.c Michael Niedermayer, Baptiste Coudurier
movenc.c Michael Niedermayer, Baptiste Coudurier
@@ -346,6 +363,7 @@ Muxers/Demuxers:
mtv.c Reynaldo H. Verdejo Pinochet
mxf* Baptiste Coudurier
mxfdec.c Tomas Härdin
nistspheredec.c Paul B Mahol
nsvdec.c Francois Revol
nut.c Michael Niedermayer
nuv.c Reimar Doeffinger
@@ -353,8 +371,10 @@ Muxers/Demuxers:
oggenc.c Baptiste Coudurier
oggparse*.c David Conrad
oma.c Maxim Poliakovski
paf.c Paul B Mahol
psxstr.c Mike Melanson
pva.c Ivo van Poorten
pvfdec.c Paul B Mahol
r3d.c Baptiste Coudurier
raw.c Michael Niedermayer
rdt.c Ronald S. Bultje
@@ -370,8 +390,10 @@ Muxers/Demuxers:
segafilm.c Mike Melanson
siff.c Kostya Shishkov
smacker.c Kostya Shishkov
smjpeg* Paul B Mahol
srtdec.c Aurelien Jacobs
swf.c Baptiste Coudurier
takdec.c Paul B Mahol
tta.c Alex Beregszaszi
txd.c Ivo van Poorten
voc.c Aurelien Jacobs
@@ -380,6 +402,7 @@ Muxers/Demuxers:
westwood.c Mike Melanson
wtv.c Peter Ross
wv.c Kostya Shishkov
wvenc.c Paul B Mahol
Protocols:
bluray.c Petri Hintukainen
@@ -388,6 +411,20 @@ Protocols:
udp.c Luca Abeni
libswresample
=============
Generic parts:
audioconvert.c Michael Niedermayer
dither.c Michael Niedermayer
rematrix*.c Michael Niedermayer
swresample*.c Michael Niedermayer
Resamplers:
resample*.c Michael Niedermayer
soxr_resample.c Rob Sykes
Operating systems / CPU architectures
=====================================
@@ -408,9 +445,9 @@ x86 Michael Niedermayer
Releases
========
1.1 Michael Niedermayer
1.0 Michael Niedermayer
0.11 Michael Niedermayer
0.10 Michael Niedermayer
@@ -441,6 +478,6 @@ Reinhard Tartler 9300 5DC2 7E87 6C37 ED7B CA9A 9808 3544 9453 48A4
Reynaldo H. Verdejo Pinochet 6E27 CD34 170C C78E 4D4F 5F40 C18E 077F 3114 452A
Robert Swain EE7A 56EA 4A81 A7B5 2001 A521 67FA 362D A2FC 3E71
Sascha Sommer 38A0 F88B 868E 9D3A 97D4 D6A0 E823 706F 1E07 0D3C
Stefano Sabatini 9A43 10F8 D32C D33C 48E7 C52C 5DF2 8E4D B2EE 066B
Stefano Sabatini 0D0B AD6B 5330 BBAD D3D6 6A0C 719C 2839 FC43 2D5F
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
Tomas Härdin A79D 4E3D F38F 763F 91F5 8B33 A01E 8AE0 41BB 2551

View File

@@ -17,7 +17,8 @@ PROGS-$(CONFIG_FFSERVER) += ffserver
PROGS := $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
INSTPROGS = $(PROGS-yes:%=%$(PROGSSUF)$(EXESUF))
OBJS = cmdutils.o
OBJS = cmdutils.o $(EXEOBJS)
OBJS-ffmpeg = ffmpeg_opt.o ffmpeg_filter.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
@@ -41,7 +42,7 @@ FFLIBS-$(CONFIG_SWSCALE) += swscale
FFLIBS := avutil
DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd
EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile
EXAMPLES_FILES := $(wildcard $(SRC_PATH)/doc/examples/*.c) $(SRC_PATH)/doc/examples/Makefile $(SRC_PATH)/doc/examples/README
SKIPHEADERS = cmdutils_common_opts.h
@@ -56,8 +57,8 @@ $(PROGS): %$(EXESUF): %_g$(EXESUF)
$(CP) $< $@
$(STRIP) $@
$(TOOLS): %$(EXESUF): %.o
$(LD) $(LDFLAGS) $(LD_O) $< $(ELIBS)
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
@@ -68,9 +69,9 @@ config.h: .config
@-tput sgr0 2>/dev/null
SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \
ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ARMV5TE-OBJS ARMV6-OBJS ARMVFP-OBJS NEON-OBJS \
MMI-OBJS ALTIVEC-OBJS VIS-OBJS \
HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \
ARMV5TE-OBJS ARMV6-OBJS VFP-OBJS NEON-OBJS \
ALTIVEC-OBJS VIS-OBJS \
MMX-OBJS YASM-OBJS \
MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \
OBJS HOSTOBJS TESTOBJS
@@ -91,8 +92,8 @@ endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
define DOPROG
OBJS-$(1) += $(1).o
$(1)$(PROGSSUF)_g$(EXESUF): $(OBJS-$(1))
OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS)
$(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))
@@ -101,8 +102,8 @@ endef
$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P))))
%$(PROGSSUF)_g$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) cmdutils.o $(FF_EXTRALIBS)
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
OBJDIRS += tools
@@ -152,7 +153,6 @@ uninstall-data:
clean::
$(RM) $(ALLPROGS) $(ALLPROGS_G)
$(RM) $(CLEANSUFFIXES)
$(RM) $(TOOLS)
$(RM) $(CLEANSUFFIXES:%=tools/%)
$(RM) coverage.info
$(RM) -r coverage-html

View File

@@ -1 +1 @@
1.0.git
1.1.1

1
VERSION Normal file
View File

@@ -0,0 +1 @@
1.1.1

View File

@@ -1,9 +1,8 @@
OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes)
OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes)
OBJS-$(HAVE_ARMVFP) += $(ARMVFP-OBJS) $(ARMVFP-OBJS-yes)
OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-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)

View File

@@ -41,6 +41,7 @@
#endif
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/mathematics.h"
#include "libavutil/imgutils.h"
#include "libavutil/parseutils.h"
@@ -54,14 +55,17 @@
#include "libavformat/network.h"
#endif
#if HAVE_SYS_RESOURCE_H
#include <sys/time.h>
#include <sys/resource.h>
#endif
static int init_report(const char *env);
struct SwsContext *sws_opts;
SwrContext *swr_opts;
AVDictionary *format_opts, *codec_opts;
const int this_year = 2012;
const int this_year = 2013;
static FILE *report_file;
@@ -126,7 +130,7 @@ double parse_number_or_die(const char *context, const char *numstr, int type,
else
return d;
av_log(NULL, AV_LOG_FATAL, error, context, numstr, min, max);
exit_program(1);
exit(1);
return 0;
}
@@ -137,7 +141,7 @@ int64_t parse_time_or_die(const char *context, const char *timestr,
if (av_parse_time(&us, timestr, is_duration) < 0) {
av_log(NULL, AV_LOG_FATAL, "Invalid %s specification for %s: %s\n",
is_duration ? "duration" : "date", context, timestr);
exit_program(1);
exit(1);
}
return us;
}
@@ -196,7 +200,7 @@ static const OptionDef *find_option(const OptionDef *po, const char *name)
return po;
}
#if defined(_WIN32) && !defined(__MINGW32CE__)
#if HAVE_COMMANDLINETOARGVW
#include <windows.h>
#include <shellapi.h>
/* Will be leaked on exit */
@@ -256,38 +260,16 @@ static inline void prepare_app_arguments(int *argc_ptr, char ***argv_ptr)
{
/* nothing to do */
}
#endif /* WIN32 && !__MINGW32CE__ */
#endif /* HAVE_COMMANDLINETOARGVW */
int parse_option(void *optctx, const char *opt, const char *arg,
const OptionDef *options)
static int write_option(void *optctx, const OptionDef *po, const char *opt,
const char *arg)
{
const OptionDef *po;
int bool_val = 1;
int *dstcount;
void *dst;
po = find_option(options, opt);
if (!po->name && opt[0] == 'n' && opt[1] == 'o') {
/* handle 'no' bool option */
po = find_option(options, opt + 2);
if ((po->name && (po->flags & OPT_BOOL)))
bool_val = 0;
}
if (!po->name)
po = find_option(options, "default");
if (!po->name) {
av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt);
return AVERROR(EINVAL);
}
if (po->flags & HAS_ARG && !arg) {
av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt);
return AVERROR(EINVAL);
}
/* new-style options contain an offset into optctx, old-style address of
* a global var*/
dst = po->flags & (OPT_OFFSET | OPT_SPEC) ? (uint8_t *)optctx + po->u.off
: po->u.dst_ptr;
void *dst = po->flags & (OPT_OFFSET | OPT_SPEC) ?
(uint8_t *)optctx + po->u.off : po->u.dst_ptr;
int *dstcount;
if (po->flags & OPT_SPEC) {
SpecifierOpt **so = dst;
@@ -304,9 +286,7 @@ int parse_option(void *optctx, const char *opt, const char *arg,
str = av_strdup(arg);
// av_freep(dst);
*(char **)dst = str;
} else if (po->flags & OPT_BOOL) {
*(int *)dst = bool_val;
} else if (po->flags & OPT_INT) {
} else if (po->flags & OPT_BOOL || po->flags & OPT_INT) {
*(int *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT_MIN, INT_MAX);
} else if (po->flags & OPT_INT64) {
*(int64_t *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT64_MIN, INT64_MAX);
@@ -325,7 +305,41 @@ int parse_option(void *optctx, const char *opt, const char *arg,
}
}
if (po->flags & OPT_EXIT)
exit_program(0);
exit(0);
return 0;
}
int parse_option(void *optctx, const char *opt, const char *arg,
const OptionDef *options)
{
const OptionDef *po;
int ret;
po = find_option(options, opt);
if (!po->name && opt[0] == 'n' && opt[1] == 'o') {
/* handle 'no' bool option */
po = find_option(options, opt + 2);
if ((po->name && (po->flags & OPT_BOOL)))
arg = "0";
} else if (po->flags & OPT_BOOL)
arg = "1";
if (!po->name)
po = find_option(options, "default");
if (!po->name) {
av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt);
return AVERROR(EINVAL);
}
if (po->flags & HAS_ARG && !arg) {
av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt);
return AVERROR(EINVAL);
}
ret = write_option(optctx, po, opt, arg);
if (ret < 0)
return ret;
return !!(po->flags & HAS_ARG);
}
@@ -351,7 +365,7 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options
opt++;
if ((ret = parse_option(optctx, opt, argv[optindex], options)) < 0)
exit_program(1);
exit(1);
optindex += ret;
} else {
if (parse_arg_function)
@@ -360,6 +374,29 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options
}
}
int parse_optgroup(void *optctx, OptionGroup *g)
{
int i, ret;
av_log(NULL, AV_LOG_DEBUG, "Parsing a group of options: %s %s.\n",
g->group_def->name, g->arg);
for (i = 0; i < g->nb_opts; i++) {
Option *o = &g->opts[i];
av_log(NULL, AV_LOG_DEBUG, "Applying option %s (%s) with argument %s.\n",
o->key, o->opt->help, o->val);
ret = write_option(optctx, o->opt, o->key, o->val);
if (ret < 0)
return ret;
}
av_log(NULL, AV_LOG_DEBUG, "Successfully parsed a group of options.\n");
return 0;
}
int locate_option(int argc, char **argv, const OptionDef *options,
const char *optname)
{
@@ -380,7 +417,7 @@ int locate_option(int argc, char **argv, const OptionDef *options,
(po->name && !strcmp(optname, po->name)))
return i;
if (!po || po->flags & HAS_ARG)
if (po->flags & HAS_ARG)
i++;
}
return 0;
@@ -413,13 +450,14 @@ static void dump_argument(const char *a)
void parse_loglevel(int argc, char **argv, const OptionDef *options)
{
int idx = locate_option(argc, argv, options, "loglevel");
const char *env;
if (!idx)
idx = locate_option(argc, argv, options, "v");
if (idx && argv[idx + 1])
opt_loglevel(NULL, "loglevel", argv[idx + 1]);
idx = locate_option(argc, argv, options, "report");
if (idx || getenv("FFREPORT")) {
opt_report("report");
if ((env = getenv("FFREPORT")) || idx) {
init_report(env);
if (report_file) {
int i;
fprintf(report_file, "Command line:\n");
@@ -436,9 +474,14 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options)
int opt_default(void *optctx, const char *opt, const char *arg)
{
const AVOption *o;
int consumed = 0;
char opt_stripped[128];
const char *p;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(), *sc, *swr_class;
const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class();
const AVClass *sc, *swr_class;
if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug"))
av_log_set_level(AV_LOG_DEBUG);
if (!(p = strchr(opt, ':')))
p = opt + strlen(opt);
@@ -447,41 +490,268 @@ int opt_default(void *optctx, const char *opt, const char *arg)
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') &&
(o = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ))))
(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)))
consumed = 1;
}
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(consumed)
av_log(NULL, AV_LOG_VERBOSE, "Routing %s to codec and muxer layer\n", opt);
consumed = 1;
}
#if CONFIG_SWSCALE
sc = sws_get_class();
if (!o && (o = av_opt_find(&sc, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
if (!consumed && 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) {
av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt);
return ret;
}
consumed = 1;
}
#endif
#if CONFIG_SWRESAMPLE
swr_class = swr_get_class();
if (!o && (o = av_opt_find(&swr_class, opt, NULL, 0,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) {
if (!consumed && 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;
}
consumed = 1;
}
#endif
if (o)
if (consumed)
return 0;
av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt);
return AVERROR_OPTION_NOT_FOUND;
}
/*
* Check whether given option is a group separator.
*
* @return index of the group definition that matched or -1 if none
*/
static int match_group_separator(const OptionGroupDef *groups, int nb_groups,
const char *opt)
{
int i;
for (i = 0; i < nb_groups; i++) {
const OptionGroupDef *p = &groups[i];
if (p->sep && !strcmp(p->sep, opt))
return i;
}
return -1;
}
/*
* Finish parsing an option group.
*
* @param group_idx which group definition should this group belong to
* @param arg argument of the group delimiting option
*/
static void finish_group(OptionParseContext *octx, int group_idx,
const char *arg)
{
OptionGroupList *l = &octx->groups[group_idx];
OptionGroup *g;
GROW_ARRAY(l->groups, l->nb_groups);
g = &l->groups[l->nb_groups - 1];
*g = octx->cur_group;
g->arg = arg;
g->group_def = l->group_def;
#if CONFIG_SWSCALE
g->sws_opts = sws_opts;
#endif
g->swr_opts = swr_opts;
g->codec_opts = codec_opts;
g->format_opts = format_opts;
codec_opts = NULL;
format_opts = NULL;
#if CONFIG_SWSCALE
sws_opts = NULL;
#endif
swr_opts = NULL;
init_opts();
memset(&octx->cur_group, 0, sizeof(octx->cur_group));
}
/*
* Add an option instance to currently parsed group.
*/
static void add_opt(OptionParseContext *octx, const OptionDef *opt,
const char *key, const char *val)
{
int global = !(opt->flags & (OPT_PERFILE | OPT_SPEC | OPT_OFFSET));
OptionGroup *g = global ? &octx->global_opts : &octx->cur_group;
GROW_ARRAY(g->opts, g->nb_opts);
g->opts[g->nb_opts - 1].opt = opt;
g->opts[g->nb_opts - 1].key = key;
g->opts[g->nb_opts - 1].val = val;
}
static void init_parse_context(OptionParseContext *octx,
const OptionGroupDef *groups, int nb_groups)
{
static const OptionGroupDef global_group = { "global" };
int i;
memset(octx, 0, sizeof(*octx));
octx->nb_groups = nb_groups;
octx->groups = av_mallocz(sizeof(*octx->groups) * octx->nb_groups);
if (!octx->groups)
exit(1);
for (i = 0; i < octx->nb_groups; i++)
octx->groups[i].group_def = &groups[i];
octx->global_opts.group_def = &global_group;
octx->global_opts.arg = "";
init_opts();
}
void uninit_parse_context(OptionParseContext *octx)
{
int i, j;
for (i = 0; i < octx->nb_groups; i++) {
OptionGroupList *l = &octx->groups[i];
for (j = 0; j < l->nb_groups; j++) {
av_freep(&l->groups[j].opts);
av_dict_free(&l->groups[j].codec_opts);
av_dict_free(&l->groups[j].format_opts);
#if CONFIG_SWSCALE
sws_freeContext(l->groups[j].sws_opts);
#endif
if(CONFIG_SWRESAMPLE)
swr_free(&l->groups[j].swr_opts);
}
av_freep(&l->groups);
}
av_freep(&octx->groups);
av_freep(&octx->cur_group.opts);
av_freep(&octx->global_opts.opts);
uninit_opts();
}
int split_commandline(OptionParseContext *octx, int argc, char *argv[],
const OptionDef *options,
const OptionGroupDef *groups, int nb_groups)
{
int optindex = 1;
/* perform system-dependent conversions for arguments list */
prepare_app_arguments(&argc, &argv);
init_parse_context(octx, groups, nb_groups);
av_log(NULL, AV_LOG_DEBUG, "Splitting the commandline.\n");
while (optindex < argc) {
const char *opt = argv[optindex++], *arg;
const OptionDef *po;
int ret;
av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt);
/* unnamed group separators, e.g. output filename */
if (opt[0] != '-' || !opt[1]) {
finish_group(octx, 0, opt);
av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name);
continue;
}
opt++;
#define GET_ARG(arg) \
do { \
arg = argv[optindex++]; \
if (!arg) { \
av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\
return AVERROR(EINVAL); \
} \
} while (0)
/* named group separators, e.g. -i */
if ((ret = match_group_separator(groups, nb_groups, opt)) >= 0) {
GET_ARG(arg);
finish_group(octx, ret, arg);
av_log(NULL, AV_LOG_DEBUG, " matched as %s with argument '%s'.\n",
groups[ret].name, arg);
continue;
}
/* normal options */
po = find_option(options, opt);
if (po->name) {
if (po->flags & OPT_EXIT) {
/* optional argument, e.g. -h */
arg = argv[optindex++];
} else if (po->flags & HAS_ARG) {
GET_ARG(arg);
} else {
arg = "1";
}
add_opt(octx, po, opt, arg);
av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with "
"argument '%s'.\n", po->name, po->help, arg);
continue;
}
/* AVOptions */
if (argv[optindex]) {
ret = opt_default(NULL, opt, argv[optindex]);
if (ret >= 0) {
av_log(NULL, AV_LOG_DEBUG, " matched as AVOption '%s' with "
"argument '%s'.\n", opt, argv[optindex]);
optindex++;
continue;
} else if (ret != AVERROR_OPTION_NOT_FOUND) {
av_log(NULL, AV_LOG_ERROR, "Error parsing option '%s' "
"with argument '%s'.\n", opt, argv[optindex]);
return ret;
}
}
/* boolean -nofoo options */
if (opt[0] == 'n' && opt[1] == 'o' &&
(po = find_option(options, opt + 2)) &&
po->name && po->flags & OPT_BOOL) {
add_opt(octx, po, opt, "0");
av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with "
"argument 0.\n", po->name, po->help);
continue;
}
av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'.\n", opt);
return AVERROR_OPTION_NOT_FOUND;
}
if (octx->cur_group.nb_opts || codec_opts || format_opts)
av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the "
"commandline.\n");
av_log(NULL, AV_LOG_DEBUG, "Finished splitting the commandline.\n");
return 0;
}
int opt_loglevel(void *optctx, const char *opt, const char *arg)
{
const struct { const char *name; int level; } log_levels[] = {
@@ -511,30 +781,89 @@ int opt_loglevel(void *optctx, const char *opt, const char *arg)
"Possible levels are numbers or:\n", arg);
for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++)
av_log(NULL, AV_LOG_FATAL, "\"%s\"\n", log_levels[i].name);
exit_program(1);
exit(1);
}
av_log_set_level(level);
return 0;
}
int opt_report(const char *opt)
static void expand_filename_template(AVBPrint *bp, const char *template,
struct tm *tm)
{
char filename[64];
int c;
while ((c = *(template++))) {
if (c == '%') {
if (!(c = *(template++)))
break;
switch (c) {
case 'p':
av_bprintf(bp, "%s", program_name);
break;
case 't':
av_bprintf(bp, "%04d%02d%02d-%02d%02d%02d",
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec);
break;
case '%':
av_bprint_chars(bp, c, 1);
break;
}
} else {
av_bprint_chars(bp, c, 1);
}
}
}
static int init_report(const char *env)
{
char *filename_template = NULL;
char *key, *val;
int ret, count = 0;
time_t now;
struct tm *tm;
AVBPrint filename;
if (report_file) /* already opened */
return 0;
time(&now);
tm = localtime(&now);
snprintf(filename, sizeof(filename), "%s-%04d%02d%02d-%02d%02d%02d.log",
program_name,
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec);
report_file = fopen(filename, "w");
while (env && *env) {
if ((ret = av_opt_get_key_value(&env, "=", ":", 0, &key, &val)) < 0) {
if (count)
av_log(NULL, AV_LOG_ERROR,
"Failed to parse FFREPORT environment variable: %s\n",
av_err2str(ret));
break;
}
if (*env)
env++;
count++;
if (!strcmp(key, "file")) {
av_free(filename_template);
filename_template = val;
val = NULL;
} else {
av_log(NULL, AV_LOG_ERROR, "Unknown key '%s' in FFREPORT\n", key);
}
av_free(val);
av_free(key);
}
av_bprint_init(&filename, 0, 1);
expand_filename_template(&filename,
av_x_if_null(filename_template, "%p-%t.log"), tm);
av_free(filename_template);
if (!av_bprint_is_complete(&filename)) {
av_log(NULL, AV_LOG_ERROR, "Out of memory building report file name\n");
return AVERROR(ENOMEM);
}
report_file = fopen(filename.str, "w");
if (!report_file) {
av_log(NULL, AV_LOG_ERROR, "Failed to open report \"%s\": %s\n",
filename, strerror(errno));
filename.str, strerror(errno));
return AVERROR(errno);
}
av_log_set_callback(log_callback_report);
@@ -544,11 +873,17 @@ int opt_report(const char *opt)
program_name,
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec,
filename);
filename.str);
av_log_set_level(FFMAX(av_log_get_level(), AV_LOG_VERBOSE));
av_bprint_finalize(&filename, NULL);
return 0;
}
int opt_report(const char *opt)
{
return init_report(NULL);
}
int opt_max_alloc(void *optctx, const char *opt, const char *arg)
{
char *tail;
@@ -557,7 +892,7 @@ int opt_max_alloc(void *optctx, const char *opt, const char *arg)
max = strtol(arg, &tail, 10);
if (*tail) {
av_log(NULL, AV_LOG_FATAL, "Invalid max_alloc \"%s\".\n", arg);
exit_program(1);
exit(1);
}
av_max_alloc(max);
return 0;
@@ -575,12 +910,6 @@ int opt_cpuflags(void *optctx, const char *opt, const char *arg)
return 0;
}
int opt_codec_debug(void *optctx, const char *opt, const char *arg)
{
av_log_set_level(AV_LOG_DEBUG);
return opt_default(NULL, opt, arg);
}
int opt_timelimit(void *optctx, const char *opt, const char *arg)
{
#if HAVE_SETRLIMIT
@@ -691,12 +1020,13 @@ int show_version(void *optctx, const char *opt, const char *arg)
int show_license(void *optctx, const char *opt, const char *arg)
{
printf(
#if CONFIG_NONFREE
printf(
"This version of %s has nonfree parts compiled in.\n"
"Therefore it is not legally redistributable.\n",
program_name
program_name );
#elif CONFIG_GPLV3
printf(
"%s is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
"the Free Software Foundation; either version 3 of the License, or\n"
@@ -709,8 +1039,9 @@ int show_license(void *optctx, const char *opt, const char *arg)
"\n"
"You should have received a copy of the GNU General Public License\n"
"along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
program_name, program_name, program_name
program_name, program_name, program_name );
#elif CONFIG_GPL
printf(
"%s is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
"the Free Software Foundation; either version 2 of the License, or\n"
@@ -724,8 +1055,9 @@ int show_license(void *optctx, const char *opt, const char *arg)
"You should have received a copy of the GNU General Public License\n"
"along with %s; if not, write to the Free Software\n"
"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
program_name, program_name, program_name
program_name, program_name, program_name );
#elif CONFIG_LGPLV3
printf(
"%s is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU Lesser General Public License as published by\n"
"the Free Software Foundation; either version 3 of the License, or\n"
@@ -738,8 +1070,9 @@ int show_license(void *optctx, const char *opt, const char *arg)
"\n"
"You should have received a copy of the GNU Lesser General Public License\n"
"along with %s. If not, see <http://www.gnu.org/licenses/>.\n",
program_name, program_name, program_name
program_name, program_name, program_name );
#else
printf(
"%s is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU Lesser General Public\n"
"License as published by the Free Software Foundation; either\n"
@@ -753,9 +1086,8 @@ int show_license(void *optctx, const char *opt, const char *arg)
"You should have received a copy of the GNU Lesser General Public\n"
"License along with %s; if not, write to the Free Software\n"
"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n",
program_name, program_name, program_name
program_name, program_name, program_name );
#endif
);
return 0;
}
@@ -810,7 +1142,7 @@ int show_formats(void *optctx, const char *opt, const char *arg)
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \
if (codec->field) { \
const type *p = c->field; \
const type *p = codec->field; \
\
printf(" Supported " list_name ":"); \
while (*p != term) { \
@@ -851,8 +1183,8 @@ static void print_codec(const AVCodec *c)
}
printf("\n");
}
PRINT_CODEC_SUPPORTED(c, pix_fmts, enum PixelFormat, "pixel formats",
PIX_FMT_NONE, GET_PIX_FMT_NAME);
PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats",
AV_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",
@@ -908,8 +1240,8 @@ static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
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);
av_log(NULL, AV_LOG_ERROR, "Out of memory\n");
exit(1);
}
desc = NULL;
while ((desc = avcodec_descriptor_next(desc)))
@@ -1094,7 +1426,7 @@ int show_filters(void *optctx, const char *opt, const char *arg)
int show_pix_fmts(void *optctx, const char *opt, const char *arg)
{
enum PixelFormat pix_fmt;
const AVPixFmtDescriptor *pix_desc = NULL;
printf("Pixel formats:\n"
"I.... = Supported Input format for conversion\n"
@@ -1110,10 +1442,8 @@ int show_pix_fmts(void *optctx, const char *opt, const char *arg)
# define sws_isSupportedOutput(x) 0
#endif
for (pix_fmt = 0; pix_fmt < PIX_FMT_NB; pix_fmt++) {
const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[pix_fmt];
if(!pix_desc->name)
continue;
while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) {
enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc);
printf("%c%c%c%c%c %-16s %d %2d\n",
sws_isSupportedInput (pix_fmt) ? 'I' : '.',
sws_isSupportedOutput(pix_fmt) ? 'O' : '.',
@@ -1303,6 +1633,11 @@ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size)
fseek(f, 0, SEEK_END);
*size = ftell(f);
fseek(f, 0, SEEK_SET);
if (*size == (size_t)-1) {
av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", strerror(errno));
fclose(f);
return AVERROR(errno);
}
*bufptr = av_malloc(*size + 1);
if (!*bufptr) {
av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n");
@@ -1320,7 +1655,7 @@ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size)
ret = AVERROR_EOF;
} else {
ret = 0;
(*bufptr)[*size++] = '\0';
(*bufptr)[(*size)++] = '\0';
}
fclose(f);
@@ -1467,13 +1802,13 @@ void *grow_array(void *array, int elem_size, int *size, int new_size)
{
if (new_size >= INT_MAX / elem_size) {
av_log(NULL, AV_LOG_ERROR, "Array too big.\n");
exit_program(1);
exit(1);
}
if (*size < new_size) {
uint8_t *tmp = av_realloc(array, new_size*elem_size);
if (!tmp) {
av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n");
exit_program(1);
exit(1);
}
memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size);
*size = new_size;
@@ -1484,13 +1819,19 @@ void *grow_array(void *array, int elem_size, int *size, int new_size)
static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbuf)
{
FrameBuffer *buf = av_mallocz(sizeof(*buf));
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->pix_fmt);
FrameBuffer *buf;
int i, ret;
const int pixel_size = av_pix_fmt_descriptors[s->pix_fmt].comp[0].step_minus1+1;
int pixel_size;
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 (!desc)
return AVERROR(EINVAL);
pixel_size = desc->comp[0].step_minus1 + 1;
buf = av_mallocz(sizeof(*buf));
if (!buf)
return AVERROR(ENOMEM);
@@ -1563,11 +1904,6 @@ int codec_get_buffer(AVCodecContext *s, AVFrame *frame)
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

View File

@@ -139,7 +139,7 @@ typedef struct SpecifierOpt {
} u;
} SpecifierOpt;
typedef struct {
typedef struct OptionDef {
const char *name;
int flags;
#define HAS_ARG 0x0001
@@ -204,6 +204,8 @@ int show_help(void *optctx, const char *opt, const char *arg);
* Parse the command line arguments.
*
* @param optctx an opaque options context
* @param argc number of command line arguments
* @param argv values of command line arguments
* @param options Array with the definitions required to interpret every
* option of the form: -option_name [argument]
* @param parse_arg_function Name of the function called to process every
@@ -221,6 +223,95 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options
int parse_option(void *optctx, const char *opt, const char *arg,
const OptionDef *options);
/**
* An option extracted from the commandline.
* Cannot use AVDictionary because of options like -map which can be
* used multiple times.
*/
typedef struct Option {
const OptionDef *opt;
const char *key;
const char *val;
} Option;
typedef struct OptionGroupDef {
/**< group name */
const char *name;
/**
* Option to be used as group separator. Can be NULL for groups which
* are terminated by a non-option argument (e.g. ffmpeg output files)
*/
const char *sep;
} OptionGroupDef;
typedef struct OptionGroup {
const OptionGroupDef *group_def;
const char *arg;
Option *opts;
int nb_opts;
AVDictionary *codec_opts;
AVDictionary *format_opts;
struct SwsContext *sws_opts;
struct SwrContext *swr_opts;
} OptionGroup;
/**
* A list of option groups that all have the same group type
* (e.g. input files or output files)
*/
typedef struct OptionGroupList {
const OptionGroupDef *group_def;
OptionGroup *groups;
int nb_groups;
} OptionGroupList;
typedef struct OptionParseContext {
OptionGroup global_opts;
OptionGroupList *groups;
int nb_groups;
/* parsing state */
OptionGroup cur_group;
} OptionParseContext;
/**
* Parse an options group and write results into optctx.
*
* @param optctx an app-specific options context. NULL for global options group
*/
int parse_optgroup(void *optctx, OptionGroup *g);
/**
* Split the commandline into an intermediate form convenient for further
* processing.
*
* The commandline is assumed to be composed of options which either belong to a
* group (those with OPT_SPEC, OPT_OFFSET or OPT_PERFILE) or are global
* (everything else).
*
* A group (defined by an OptionGroupDef struct) is a sequence of options
* terminated by either a group separator option (e.g. -i) or a parameter that
* is not an option (doesn't start with -). A group without a separator option
* must always be first in the supplied groups list.
*
* All options within the same group are stored in one OptionGroup struct in an
* OptionGroupList, all groups with the same group definition are stored in one
* OptionGroupList in OptionParseContext.groups. The order of group lists is the
* same as the order of group definitions.
*/
int split_commandline(OptionParseContext *octx, int argc, char *argv[],
const OptionDef *options,
const OptionGroupDef *groups, int nb_groups);
/**
* Free all allocated memory in an OptionParseContext.
*/
void uninit_parse_context(OptionParseContext *octx);
/**
* Find the '-loglevel' option in the command line args and apply it.
*/
@@ -249,6 +340,8 @@ int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec);
* Create a new options dictionary containing only the options from
* opts which apply to the codec with ID codec_id.
*
* @param opts dictionary to place options in
* @param codec_id ID of the codec that should be filtered for
* @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.
@@ -382,6 +475,7 @@ int read_yesno(void);
* Read the file with name filename, and put its content in a newly
* allocated 0-terminated buffer.
*
* @param filename file to read from
* @param bufptr location where pointer to buffer is returned
* @param size location where size of buffer is returned
* @return 0 in case of success, a negative value corresponding to an
@@ -410,29 +504,28 @@ int cmdutils_read_file(const char *filename, char **bufptr, size_t *size);
FILE *get_preset_file(char *filename, size_t filename_size,
const char *preset_name, int is_path, const char *codec_name);
/**
* Do all the necessary cleanup and abort.
* This function is implemented in the avtools, not cmdutils.
*/
av_noreturn void exit_program(int ret);
/**
* Realloc array to hold new_size elements of elem_size.
* Calls exit_program() on failure.
* Calls exit() on failure.
*
* @param array array to reallocate
* @param elem_size size in bytes of each element
* @param size new element count will be written here
* @param new_size number of elements to place in reallocated array
* @return reallocated array
*/
void *grow_array(void *array, int elem_size, int *size, int new_size);
#define GROW_ARRAY(array, nb_elems)\
array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1)
typedef struct FrameBuffer {
uint8_t *base[4];
uint8_t *data[4];
int linesize[4];
int h, w;
enum PixelFormat pix_fmt;
enum AVPixelFormat pix_fmt;
int refcount;
struct FrameBuffer **pool; ///< head of the buffer pool

View File

@@ -16,8 +16,6 @@
{ "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" },
{ "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

@@ -30,7 +30,7 @@ CFLAGS += $(ECFLAGS)
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
ASFLAGS := $(CPPFLAGS) $(ASFLAGS)
CXXFLAGS += $(CPPFLAGS) $(CFLAGS)
YASMFLAGS += $(IFLAGS:%=%/) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm
YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm
HOSTCCFLAGS = $(IFLAGS) $(HOSTCFLAGS)
LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
@@ -56,6 +56,9 @@ COMPILE_S = $(call COMPILE,AS)
%.o: %.S
$(COMPILE_S)
%.i: %.c
$(CC) $(CCFLAGS) $(CC_E) $<
%.h.c:
$(Q)echo '#include "$*.h"' >$@
@@ -94,6 +97,7 @@ HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))
TOOLS += $(TOOLS-yes)
TOOLOBJS := $(TOOLS:%=tools/%.o)
TOOLS := $(TOOLS:%=tools/%$(EXESUF))
HEADERS += $(HEADERS-yes)
DEP_LIBS := $(foreach NAME,$(FFLIBS),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME))
@@ -124,7 +128,13 @@ CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda
DISTCLEANSUFFIXES = *.pc
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
define RULES
clean::
$(RM) $(OBJS) $(OBJS:.o=.d)
$(RM) $(HOSTPROGS)
$(RM) $(TOOLS)
endef
$(eval $(RULES))
-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d))

View File

@@ -46,7 +46,7 @@ static int getopt(int argc, char *argv[], char *opts)
int c;
char *cp;
if (sp == 1)
if (sp == 1) {
if (optind >= argc ||
argv[optind][0] != '-' || argv[optind][1] == '\0')
return EOF;
@@ -54,6 +54,7 @@ static int getopt(int argc, char *argv[], char *opts)
optind++;
return EOF;
}
}
optopt = c = argv[optind][sp];
if (c == ':' || (cp = strchr(opts, c)) == NULL) {
fprintf(stderr, ": illegal option -- %c\n", c);

10
compat/plan9/head Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
n=10
case "$1" in
-n) n=$2; shift 2 ;;
-n*) n=${1#-n}; shift ;;
esac
exec sed ${n}q "$@"

34
compat/plan9/main.c Normal file
View File

@@ -0,0 +1,34 @@
/*
* 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
*/
int plan9_main(int argc, char **argv);
#undef main
int main(int argc, char **argv)
{
/* The setfcr() function in lib9 is broken, must use asm. */
#ifdef __i386
short fcr;
__asm__ volatile ("fstcw %0 \n"
"or $63, %0 \n"
"fldcw %0 \n"
: "=m"(fcr));
#endif
return plan9_main(argc, argv);
}

2
compat/plan9/printf Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
exec awk "BEGIN { for (i = 2; i < ARGC; i++) printf \"$1\", ARGV[i] }" "$@"

7
compat/tms470/math.h Normal file
View File

@@ -0,0 +1,7 @@
#include_next <math.h>
#undef INFINITY
#undef NAN
#define INFINITY (*(const float*)((const unsigned []){ 0x7f800000 }))
#define NAN (*(const float*)((const unsigned []){ 0x7fc00000 }))

1264
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,100 +1,185 @@
Never assume the API of libav* to be stable unless at least 1 month has passed
since the last major version increase.
since the last major version increase or the API was added.
The last version increases were:
libavcodec: 2012-01-27
libavdevice: 2011-04-18
libavfilter: 2012-06-22
libavformat: 2012-01-27
libavresample: 2012-04-24
libavresample: 2012-10-05
libpostproc: 2011-04-18
libswresample: 2011-09-19
libswscale: 2011-06-20
libavutil: 2011-04-18
libavutil: 2012-10-22
API changes, most recent first:
2012-09-01 - xxxxxxx - lavu 51.72.100 - parseutils.h
2012-12-20 - xxxxxxx - lavfi 3.28.100 - avfilter.h
Add AVFilterLink.channels, avfilter_link_get_channels()
and avfilter_ref_get_channels().
2012-12-15 - 2ada584d - lavc 54.80.100 - avcodec.h
Add pkt_size field to AVFrame.
2012-11-25 - c70ec631 - lavu 52.9.100 - opt.h
Add the following convenience functions to opt.h:
av_opt_get_image_size
av_opt_get_pixel_fmt
av_opt_get_sample_fmt
av_opt_set_image_size
av_opt_set_pixel_fmt
av_opt_set_sample_fmt
2012-11-17 - 4cd74c81 - lavu 52.8.100 - bprint.h
Add av_bprint_strftime().
2012-11-15 - 92648107 - lavu 52.7.100 - opt.h
Add av_opt_get_key_value().
2012-11-13 - 79456652 - lavfi 3.23.100 - avfilter.h
Add channels field to AVFilterBufferRefAudioProps.
2012-11-03 - 481fdeee - lavu 52.3.100 - opt.h
Add AV_OPT_TYPE_SAMPLE_FMT value to AVOptionType enum.
2012-10-21 - 6fb2fd8 - lavc 54.68.100 - avcodec.h
lavfi 3.20.100 - avfilter.h
Add AV_PKT_DATA_STRINGS_METADATA side data type, used to transmit key/value
strings between AVPacket and AVFrame, and add metadata field to
AVCodecContext (which shall not be accessed by users; see AVFrame metadata
instead).
2012-09-27 - a70b493 - lavd 54.3.100 - version.h
Add LIBAVDEVICE_IDENT symbol.
2012-09-27 - a70b493 - lavfi 3.18.100 - version.h
Add LIBAVFILTER_IDENT symbol.
2012-09-27 - a70b493 - libswr 0.16.100 - version.h
Add LIBSWRESAMPLE_VERSION, LIBSWRESAMPLE_BUILD
and LIBSWRESAMPLE_IDENT symbols.
2012-09-06 - 29e972f - 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
2012-08-25 - 2626cc4 - lavf 54.28.100
Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP instead
of AV_CODEC_ID_TEXT.
2012-08-13 - 5c0d8bc - 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
2012-08-12 - a25346e - lavu 51.69.100 - opt.h
Add AV_OPT_FLAG_FILTERING_PARAM symbol in opt.h.
2012-07-31 - xxxxxxx - lavc 54.46.100
2012-07-31 - 23fc4dd - lavc 54.46.100
Add channels field to AVFrame.
2012-07-30 - xxxxxxx - lavu 51.66.100
2012-07-30 - f893904 - lavu 51.66.100
Add av_get_channel_description()
and av_get_standard_channel_layout() functions.
2012-07-20 - xxxxxxx - lavc 54.43.100
2012-07-21 - 016a472 - lavc 54.43.100
Add decode_error_flags field to AVFrame.
2012-07-20 - xxxxxxx - lavf 54.18.100
2012-07-20 - b062936 - lavf 54.18.100
Add avformat_match_stream_specifier() function.
2012-07-14 - xxxxxxx - lavc 54.38.100 - avcodec.h
2012-07-14 - f49ec1b - 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
2012-07-10 - 0e003d8 - lavc 54.33.100
Add av_fast_padded_mallocz().
2012-07-10 - xxxxxxx - lavfi 3.2.0 - avfilter.h
2012-07-10 - 21d5609 - lavfi 3.2.0 - avfilter.h
Add init_opaque() callback to AVFilter struct.
2012-06-26 - xxxxxxx - lavu 51.63.100 - imgutils.h
2012-06-26 - e6674e4 - 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
2012-06-24 - c41899a - lavu 51.62.100 - version.h
version moved from avutil.h to version.h
2012-04-11 - xxxxxxx - lavu 51.58.100 - error.h
2012-04-11 - 359abb1 - 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
2012-06-05 - 62b39d4 - lavc 54.24.100
Add pkt_duration field to AVFrame.
2012-05-24 - xxxxxxx - lavu 51.54.100
2012-05-24 - f2ee065 - lavu 51.54.100
Move AVPALETTE_SIZE and AVPALETTE_COUNT macros from
libavcodec/avcodec.h to libavutil/pixfmt.h.
2012-05-07 - xxxxxxx - lavf 54.5.100
2012-05-14 - 94a9ac1 - lavf 54.5.100
Add av_guess_sample_aspect_ratio() function.
2012-04-20 - xxxxxxx - lavfi 2.70.100
2012-04-20 - 65fa7bc - lavfi 2.70.100
Add avfilter_unref_bufferp() to avfilter.h.
2012-04-12 - xxxxxxx - lavfi 2.68.100
2012-04-13 - 162e400 - lavfi 2.68.100
Install libavfilter/asrc_abuffer.h public header.
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
2012-12-29 - d8fd06c - lavu 52.3.0 - avstring.h
Add av_basename() and av_dirname().
2012-11-11 - 5980f5d - lavu 52.2.0 - audioconvert.h
Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.
2012-11-05 - dfde8a3 - lavu 52.1.0 - intmath.h
Add av_ctz() for trailing zero bit count
2012-10-21 - a893655 - lavu 51.45.0 - error.h
Add AVERROR_EXPERIMENTAL
2012-10-12 - d2fcb35 - lavu 51.44.0 - pixdesc.h
Add functions for accessing pixel format descriptors.
Accessing the av_pix_fmt_descriptors array directly is now
deprecated.
2012-10-11 - 9a92aea - lavu 51.43.0 - aes.h, md5.h, sha.h, tree.h
Add functions for allocating the opaque contexts for the algorithms,
2012-10-10 - b522000 - lavf 54.18.0 - avio.h
Add avio_closep to complement avio_close.
2012-10-08 - 78071a1 - lavu 51.42.0 - pixfmt.h
Rename PixelFormat to AVPixelFormat and all PIX_FMT_* to AV_PIX_FMT_*.
To provide backwards compatibility, PixelFormat is now #defined as
AVPixelFormat.
Note that this can break user code that includes pixfmt.h and uses the
'PixelFormat' identifier. Such code should either #undef PixelFormat
or stop using the PixelFormat name.
2012-10-05 - e7ba5b1 - lavr 1.0.0 - avresample.h
Data planes parameters to avresample_convert() and
avresample_read() are now uint8_t** instead of void**.
Libavresample is now stable.
2012-09-24 - a42aada - 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
2012-09-12 - 8919fee - 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
2012-09-04 - 686a329 - 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
2012-08-30 - a231832 - lavc 54.26.1 - avcodec.h
Add codec descriptor properties AV_CODEC_PROP_LOSSY and
AV_CODEC_PROP_LOSSLESS.
@@ -228,6 +313,10 @@ API changes, most recent first:
2012-01-24 - 0c3577b - lavfi 2.60.100
Add avfilter_graph_dump.
2012-03-20 - 3c90cc2 - lavfo 54.2.0
Deprecate av_read_packet(), use av_read_frame() with
AVFMT_FLAG_NOPARSE | AVFMT_FLAG_NOFILLIN in AVFormatContext.flags
2012-03-05 - lavc 54.8.0
6699d07 Add av_get_exact_bits_per_sample()
9524cf7 Add av_get_audio_frame_duration()

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 =
PROJECT_NUMBER = 1.1.1
# 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
@@ -44,7 +44,7 @@ PROJECT_LOGO =
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = doxy
OUTPUT_DIRECTORY = doc/doxy
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -288,7 +288,7 @@ TYPEDEF_HIDES_STRUCT = NO
# causing a significant performance penality.
# If the system has enough physical memory increasing the cache will improve the
# performance by keeping more symbols in memory. Note that the value works on
# a logarithmic scale so increasing the size by one will rougly double the
# a logarithmic scale so increasing the size by one will roughly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols
@@ -489,12 +489,6 @@ MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.
SHOW_DIRECTORIES = NO
# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
# This will remove the Files entry from the Quick Index and from the
# Folder Tree View (if specified). The default is YES.
@@ -645,15 +639,14 @@ EXCLUDE_SYMBOLS =
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH = libavcodec/ \
libavformat/
EXAMPLE_PATH = doc/examples/
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS = *-example.c
EXAMPLE_PATTERNS = *.c
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
@@ -800,13 +793,13 @@ HTML_FILE_EXTENSION = .html
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
HTML_HEADER = doc/doxy/header.html
#HTML_HEADER = doc/doxy/header.html
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER = doc/doxy/footer.html
#HTML_FOOTER = doc/doxy/footer.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
@@ -815,7 +808,7 @@ HTML_FOOTER = doc/doxy/footer.html
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
HTML_STYLESHEET = doc/doxy/doxy_stylesheet.css
#HTML_STYLESHEET = doc/doxy/doxy_stylesheet.css
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the stylesheet and background images
@@ -825,7 +818,7 @@ HTML_STYLESHEET = doc/doxy/doxy_stylesheet.css
# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
# The allowed range is 0 to 359.
HTML_COLORSTYLE_HUE = 120
#HTML_COLORSTYLE_HUE = 120
# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
# the colors in the HTML output. For a value of 0 the output will use
@@ -848,12 +841,6 @@ HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded. For this to work a browser that supports
@@ -1034,11 +1021,6 @@ ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
# and Class Hierarchy pages using a tree view instead of an ordered list.
USE_INLINE_TREES = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
@@ -1374,14 +1356,9 @@ INCLUDE_FILE_PATTERNS =
# instead of the = operator.
PREDEFINED = "__attribute__(x)=" \
"RENAME(x)=x ## _TMPL" \
"DEF(x)=x ## _TMPL" \
HAVE_AV_CONFIG_H \
HAVE_MMX \
HAVE_MMXEXT \
HAVE_AMD3DNOW \
"DECLARE_ALIGNED(a,t,n)=t n" \
"offsetof(x,y)=0x42"
"offsetof(x,y)=0x42" \
av_alloc_size \
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.

View File

@@ -1,13 +1,30 @@
MANPAGES = $(PROGS-yes:%=doc/%.1)
PODPAGES = $(PROGS-yes:%=doc/%.pod)
HTMLPAGES = $(PROGS-yes:%=doc/%.html) \
LIBRARIES-$(CONFIG_AVUTIL) += libavutil
LIBRARIES-$(CONFIG_SWSCALE) += libswscale
LIBRARIES-$(CONFIG_SWRESAMPLE) += libswresample
LIBRARIES-$(CONFIG_AVCODEC) += libavcodec
LIBRARIES-$(CONFIG_AVFORMAT) += libavformat
LIBRARIES-$(CONFIG_AVDEVICE) += libavdevice
LIBRARIES-$(CONFIG_AVFILTER) += libavfilter
COMPONENTS-yes = $(PROGS-yes)
COMPONENTS-$(CONFIG_AVUTIL) += ffmpeg-utils
COMPONENTS-$(CONFIG_SWSCALE) += ffmpeg-scaler
COMPONENTS-$(CONFIG_SWRESAMPLE) += ffmpeg-resampler
COMPONENTS-$(CONFIG_AVCODEC) += ffmpeg-codecs ffmpeg-bitstream-filters
COMPONENTS-$(CONFIG_AVFORMAT) += ffmpeg-formats ffmpeg-protocols
COMPONENTS-$(CONFIG_AVDEVICE) += ffmpeg-devices
COMPONENTS-$(CONFIG_AVFILTER) += ffmpeg-filters
MANPAGES = $(COMPONENTS-yes:%=doc/%.1) $(LIBRARIES-yes:%=doc/%.3)
PODPAGES = $(COMPONENTS-yes:%=doc/%.pod) $(LIBRARIES-yes:%=doc/%.pod)
HTMLPAGES = $(COMPONENTS-yes:%=doc/%.html) $(LIBRARIES-yes:%=doc/%.html) \
doc/developer.html \
doc/faq.html \
doc/fate.html \
doc/general.html \
doc/git-howto.html \
doc/nut.html \
doc/platform.html \
doc/syntax.html \
TXTPAGES = doc/fate.txt \
@@ -22,6 +39,7 @@ all-$(CONFIG_DOC): doc
doc: documentation
apidoc: doc/doxy/html
documentation: $(DOCS)
TEXIDEP = awk '/^@(verbatim)?include/ { printf "$@: $(@D)/%s\n", $$2 }' <$< >$(@:%=%.d)
@@ -48,11 +66,16 @@ doc/%.pod: doc/%.texi $(GENTEXI)
$(Q)$(TEXIDEP)
$(M)perl $(SRC_PATH)/doc/texi2pod.pl -Idoc $< $@
doc/%.1: TAG = MAN
doc/%.1 doc/%.3: TAG = MAN
doc/%.1: doc/%.pod $(GENTEXI)
$(M)pod2man --section=1 --center=" " --release=" " $< > $@
doc/%.3: doc/%.pod $(GENTEXI)
$(M)pod2man --section=3 --center=" " --release=" " $< > $@
$(DOCS): | doc/
$(DOCS) doc/doxy/html: | doc/
doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(INSTHEADERS)
$(M)$(SRC_PATH)/doc/doxy-wrapper.sh $(SRC_PATH) $^
install-man:
@@ -69,9 +92,12 @@ uninstall: uninstall-man
uninstall-man:
$(RM) $(addprefix "$(MANDIR)/man1/",$(ALLMANPAGES))
docclean: clean
clean::
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
$(RM) $(TXTPAGES) doc/*.html doc/*.pod doc/*.1 doc/*.3 $(CLEANSUFFIXES:%=doc/%) doc/avoptions_*.texi
$(RM) -r doc/doxy/html
-include $(wildcard $(DOCS:%=%.d))
.PHONY: doc documentation
.PHONY: apidoc doc documentation

View File

@@ -1,7 +1,7 @@
Release Notes
=============
* 0.10 "Freedom" January, 2012
* 1.1 "Fire Flower" January, 2013
General notes
@@ -14,3 +14,12 @@ accepted. If you are experiencing issues with any formally released version of
FFmpeg, please try git master to check if the issue still exists. If it does,
make your report against the development code following the usual bug reporting
guidelines.
Of big interest to our Windows users, FFmpeg now supports building with the MSVC
compiler. Since MSVC does not support C99 features used extensively by FFmpeg,
this has been accomplished using a converter that turns C99 code to C89. See the
platform-specific documentation for more detailed documentation on building
FFmpeg with MSVC.
The used output sample format for several audio decoders has changed, make
sure you always check/use AVCodecContext.sample_fmt or AVFrame.format.

11
doc/authors.texi Normal file
View File

@@ -0,0 +1,11 @@
@chapter Authors
The FFmpeg developers.
For details about the authorship, see the Git history of the project
(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
@command{git log} in the FFmpeg source directory, or browsing the
online repository at @url{http://source.ffmpeg.org}.
Maintainers for the specific components are listed in the file
@file{MAINTAINERS} in the source code tree.

View File

@@ -1,10 +1,11 @@
All the numerical options, if not specified otherwise, accept in input
a string representing a number, which may contain one of the
International System number postfixes, for example 'K', 'M', 'G'.
If 'i' is appended after the postfix, powers of 2 are used instead of
powers of 10. The 'B' postfix multiplies the value for 8, and can be
appended after another postfix or used alone. This allows using for
example 'KB', 'MiB', 'G' and 'B' as postfix.
SI unit prefixes, for example 'K', 'M', 'G'.
If 'i' is appended after the prefix, binary prefixes are used,
which are based on powers of 1024 instead of powers of 1000.
The 'B' postfix multiplies the value by 8, and can be
appended after a unit prefix or used alone. This allows using for
example 'KB', 'MiB', 'G' and 'B' as number postfix.
Options which do not take arguments are boolean options, and set the
corresponding value to true. They can be set to false by prefixing
@@ -151,8 +152,21 @@ directory.
This file can be useful for bug reports.
It also implies @code{-loglevel verbose}.
Note: setting the environment variable @code{FFREPORT} to any value has the
same effect.
Setting the environment variable @code{FFREPORT} to any value has the
same effect. If the value is a ':'-separated key=value sequence, these
options will affect the report; options values must be escaped if they
contain special characters or the options delimiter ':' (see the
``Quoting and escaping'' section in the ffmpeg-utils manual). The
following option is recognized:
@table @option
@item file
set the file name to use for the report; @code{%p} is expanded to the name
of the program, @code{%t} is expanded to a timestamp, @code{%%} is expanded
to a plain @code{%}
@end table
Errors in parsing the environment variable are not fatal, and will not
appear in the report.
@item -cpuflags flags (@emph{global})
Allows setting and clearing cpu flags. This option is intended
@@ -195,6 +209,3 @@ use @option{-option 0}/@option{-option 1}.
Note2 old undocumented way of specifying per-stream AVOptions by prepending
v/a/s to the options name is now obsolete and will be removed soon.
@include avoptions_codec.texi
@include avoptions_format.texi

View File

@@ -61,3 +61,29 @@ use is purely internal and the format of the data it accepts is not publicly
documented.
@c man end AUDIO DECODERS
@chapter Subtitles Decoders
@c man begin SUBTILES DECODERS
@section dvdsub
This codec decodes the bitmap subtitles used in DVDs; the same subtitles can
also be found in VobSub file pairs and in some Matroska files.
@subsection Options
@table @option
@item palette
Specify the global palette used by the bitmaps. When stored in VobSub, the
palette is normally specified in the index file; in Matroska, the palette is
stored in the codec extra-data in the same format as in VobSub. In DVDs, the
palette is stored in the IFO file, and therefore not available when reading
from dumped VOB files.
The format for this option is a string containing 16 24-bits hexadecimal
numbers (without 0x prefix) separated by comas, for example @code{0d00ee,
ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1,
7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b}.
@end table
@c man end SUBTILES DECODERS

149
doc/default.css Normal file
View File

@@ -0,0 +1,149 @@
a {
color: #2D6198;
}
a:visited {
color: #884488;
}
#banner {
background-color: white;
position: relative;
text-align: center;
}
#banner img {
padding-bottom: 1px;
padding-top: 5px;
}
#body {
margin-left: 1em;
margin-right: 1em;
}
body {
background-color: #313131;
margin: 0;
text-align: justify;
}
.center {
margin-left: auto;
margin-right: auto;
text-align: center;
}
#container {
background-color: white;
color: #202020;
margin-left: 1em;
margin-right: 1em;
}
#footer {
text-align: center;
}
h1, h2, h3 {
padding-left: 0.4em;
border-radius: 4px;
padding-bottom: 0.2em;
padding-top: 0.2em;
border: 1px solid #6A996A;
}
h1 {
background-color: #7BB37B;
color: #151515;
font-size: 1.2em;
padding-bottom: 0.3em;
padding-top: 0.3em;
}
h2 {
color: #313131;
font-size: 0.9em;
background-color: #ABE3AB;
}
h3 {
color: #313131;
font-size: 0.8em;
margin-bottom: -8px;
background-color: #BBF3BB;
}
img {
border: 0;
}
#navbar {
background-color: #738073;
border-bottom: 1px solid #5C665C;
border-top: 1px solid #5C665C;
margin-top: 12px;
padding: 0.3em;
position: relative;
text-align: center;
}
#navbar a, #navbar_secondary a {
color: white;
padding: 0.3em;
text-decoration: none;
}
#navbar a:hover, #navbar_secondary a:hover {
background-color: #313131;
color: white;
text-decoration: none;
}
#navbar_secondary {
background-color: #738073;
border-bottom: 1px solid #5C665C;
border-left: 1px solid #5C665C;
border-right: 1px solid #5C665C;
padding: 0.3em;
position: relative;
text-align: center;
}
p {
margin-left: 1em;
margin-right: 1em;
}
pre {
margin-left: 3em;
margin-right: 3em;
padding: 0.3em;
border: 1px solid #bbb;
background-color: #f7f7f7;
}
dl dt {
font-weight: bold;
}
#proj_desc {
font-size: 1.2em;
}
#repos {
margin-left: 1em;
margin-right: 1em;
border-collapse: collapse;
border: solid 1px #6A996A;
}
#repos th {
background-color: #7BB37B;
border: solid 1px #6A996A;
}
#repos td {
padding: 0.2em;
border: solid 1px #6A996A;
}

View File

@@ -184,4 +184,56 @@ the script is directly played, the actual times will match the absolute
timestamps up to the sound controller's clock accuracy, but if the user
somehow pauses the playback or seeks, all times will be shifted accordingly.
@section concat
Virtual concatenation script demuxer.
This demuxer reads a list of files and other directives from a text file and
demuxes them one after the other, as if all their packet had been muxed
together.
The timestamps in the files are adjusted so that the first file starts at 0
and each next file starts where the previous one finishes. Note that it is
done globally and may cause gaps if all streams do not have exactly the same
length.
All files must have the same streams (same codecs, same time base, etc.).
This script format can currently not be probed, it must be specified explicitly.
@subsection Syntax
The script is a text file in extended-ASCII, with one directive per line.
Empty lines, leading spaces and lines starting with '#' are ignored. The
following directive is recognized:
@table @option
@item @code{file @var{path}}
Path to a file to read; special characters and spaces must be escaped with
backslash or single quotes.
@end table
@section tedcaptions
JSON captions used for @url{http://www.ted.com/, TED Talks}.
TED does not provide links to the captions, but they can be guessed from the
page. The file @file{tools/bookmarklets.html} from the FFmpeg source tree
contains a bookmarklet to expose them.
This demuxer accepts the following option:
@table @option
@item start_time
Set the start time of the TED talk, in milliseconds. The default is 15000
(15s). It is used to sync the captions with the downloadable videos, because
they include a 15s intro.
@end table
Example: convert the captions to a format most players understand:
@example
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
@end example
@c man end INPUT DEVICES

View File

@@ -170,7 +170,7 @@ For exported names, each library has its own prefixes. Just check the existing
code and name accordingly.
@end itemize
@subsection Miscellanous conventions
@subsection Miscellaneous conventions
@itemize @bullet
@item
fprintf and printf are forbidden in libavformat and libavcodec,
@@ -317,7 +317,8 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
(e.g. addition of a function to the public API or extension of an
existing data structure).
Incrementing the third component means a noteworthy binary compatible
change (e.g. encoder bug fix that matters for the decoder).
change (e.g. encoder bug fix that matters for the decoder). The third
component always starts at 100 to distinguish FFmpeg from Libav.
@item
Compiler warnings indicate potential bugs or code with bad style. If a type of
warning always points to correct and clean code, that warning should
@@ -429,7 +430,7 @@ send a reminder by email. Your patch should eventually be dealt with.
Was the patch generated with git format-patch or send-email?
@item
Did you sign off your patch? (git commit -s)
See @url{http://kerneltrap.org/files/Jeremy/DCO.txt} for the meaning
See @url{http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/SubmittingPatches} for the meaning
of sign off.
@item
Did you provide a clear git commit log message?

14
doc/doxy-wrapper.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/sh
SRC_PATH="${1}"
DOXYFILE="${2}"
shift 2
doxygen - <<EOF
@INCLUDE = ${DOXYFILE}
INPUT = $@
HTML_HEADER = ${SRC_PATH}/doc/doxy/header.html
HTML_FOOTER = ${SRC_PATH}/doc/doxy/footer.html
HTML_STYLESHEET = ${SRC_PATH}/doc/doxy/doxy_stylesheet.css
EOF

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,9 @@
</div>
<div id="footer">
Generated on $datetime for $projectname by&#160;<a href="http://www.doxygen.org/index.html">doxygen</a> $doxygenversion
</div>
<footer class="footer pagination-right">
<span class="label label-info">
Generated on $datetime for $projectname by&#160;<a href="http://www.doxygen.org/index.html">doxygen</a> $doxygenversion
</span>
</footer>
</div>
</body>
</html>

View File

@@ -1,14 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath$doxy_stylesheet.css" rel="stylesheet" type="text/css" />
<!--Header replace -->
</head>
<div id="container">
<div class="container">
<div id="body">
<div>
<!--Header replace -->
<div class="menu">

View File

@@ -420,6 +420,46 @@ Selected by Encoder (default)
A description of some of the currently available video encoders
follows.
@section libtheora
Theora format supported through libtheora.
Requires the presence of the libtheora headers and library during
configuration. You need to explicitly configure the build with
@code{--enable-libtheora}.
@subsection Options
The following global options are mapped to internal libtheora options
which affect the quality and the bitrate of the encoded stream.
@table @option
@item b
Set the video bitrate, only works if the @code{qscale} flag in
@option{flags} is not enabled.
@item flags
Used to enable constant quality mode encoding through the
@option{qscale} flag, and to enable the @code{pass1} and @code{pass2}
modes.
@item g
Set the GOP size.
@item global_quality
Set the global quality in lambda units, only works if the
@code{qscale} flag in @option{flags} is enabled. The value is clipped
in the [0 - 10*@code{FF_QP2LAMBDA}] range, and then multiplied for 6.3
to get a value in the native libtheora range [0-63]. A higher value
corresponds to a higher quality.
For example, to set maximum constant quality encoding with
@command{ffmpeg}:
@example
ffmpeg -i INPUT -flags:v qscale -global_quality:v "10*QP2LAMBDA" -codec:v libtheora OUTPUT.ogg
@end example
@end table
@section libvpx
VP8 format supported through libvpx.
@@ -577,10 +617,12 @@ Specify Weighted prediction for P-frames.
Deprecated in favor of @var{x264opts} (see @var{weightp} libx264 option).
@item x264opts @var{options}
Allow to set any x264 option, see x264 --fullhelp for a list.
Allow to set any x264 option, see @code{x264 --fullhelp} for a list.
@var{options} is a list of @var{key}=@var{value} couples separated by
":".
":". In @var{filter} and @var{psy-rd} options that use ":" as a separator
themselves, use "," instead. They accept it as well since long ago but this
is kept undocumented for some reason.
@end table
For example to specify libx264 encoding options with @command{ffmpeg}:

View File

@@ -17,6 +17,7 @@ EXAMPLES= decoding_encoding \
filtering_audio \
metadata \
muxing \
resampling_audio \
scaling_video \
OBJS=$(addsuffix .o,$(EXAMPLES))

18
doc/examples/README Normal file
View File

@@ -0,0 +1,18 @@
FFmpeg examples README
----------------------
Both following use cases rely on pkg-config and make, thus make sure
that you have them installed and working on your system.
1) Build the installed examples in a generic read/write user directory
Copy to a read/write user directory and just use "make", it will link
to the libraries on your system, assuming the PKG_CONFIG_PATH is
correctly configured.
2) Build the examples in-tree
Assuming you are in the source FFmpeg checkout directory, you need to build
FFmpeg (no need to make install in any prefix). Then you can go into the
doc/examples and run a command such as PKG_CONFIG_PATH=pc-uninstalled make.

View File

@@ -27,13 +27,14 @@
* Note that libavcodec only handles codecs (mpeg, mpeg4, etc...),
* not file formats (avi, vob, mp4, mov, mkv, mxf, flv, mpegts, mpegps, etc...). See library 'libavformat' for the
* format handling
* @example doc/examples/decoding_encoding.c
*/
#include <math.h>
#include <libavutil/opt.h>
#include <libavcodec/avcodec.h>
#include <libavutil/audioconvert.h>
#include <libavutil/channel_layout.h>
#include <libavutil/common.h>
#include <libavutil/imgutils.h>
#include <libavutil/mathematics.h>
@@ -121,6 +122,10 @@ static void audio_encode_example(const char *filename)
}
c = avcodec_alloc_context3(codec);
if (!c) {
fprintf(stderr, "Could not allocate audio codec context\n");
exit(1);
}
/* put sample parameters */
c->bit_rate = 64000;
@@ -252,6 +257,10 @@ static void audio_decode_example(const char *outfilename, const char *filename)
}
c = avcodec_alloc_context3(codec);
if (!c) {
fprintf(stderr, "Could not allocate audio codec context\n");
exit(1);
}
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
@@ -346,6 +355,10 @@ static void video_encode_example(const char *filename, int codec_id)
}
c = avcodec_alloc_context3(codec);
if (!c) {
fprintf(stderr, "Could not allocate video codec context\n");
exit(1);
}
/* put sample parameters */
c->bit_rate = 400000;
@@ -356,7 +369,7 @@ static void video_encode_example(const char *filename, int codec_id)
c->time_base= (AVRational){1,25};
c->gop_size = 10; /* emit one intra frame every ten frames */
c->max_b_frames=1;
c->pix_fmt = PIX_FMT_YUV420P;
c->pix_fmt = AV_PIX_FMT_YUV420P;
if(codec_id == AV_CODEC_ID_H264)
av_opt_set(c->priv_data, "preset", "slow", 0);
@@ -475,15 +488,42 @@ static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize,
fclose(f);
}
static int decode_write_frame(const char *outfilename, AVCodecContext *avctx,
AVFrame *frame, int *frame_count, AVPacket *pkt, int last)
{
int len, got_frame;
char buf[1024];
len = avcodec_decode_video2(avctx, frame, &got_frame, pkt);
if (len < 0) {
fprintf(stderr, "Error while decoding frame %d\n", *frame_count);
return len;
}
if (got_frame) {
printf("Saving %sframe %3d\n", last ? "last " : "", *frame_count);
fflush(stdout);
/* the picture is allocated by the decoder, no need to free it */
snprintf(buf, sizeof(buf), outfilename, *frame_count);
pgm_save(frame->data[0], frame->linesize[0],
avctx->width, avctx->height, buf);
(*frame_count)++;
}
if (pkt->data) {
pkt->size -= len;
pkt->data += len;
}
return 0;
}
static void video_decode_example(const char *outfilename, const char *filename)
{
AVCodec *codec;
AVCodecContext *c= NULL;
int frame, got_picture, len;
int frame_count;
FILE *f;
AVFrame *picture;
AVFrame *frame;
uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
char buf[1024];
AVPacket avpkt;
av_init_packet(&avpkt);
@@ -501,6 +541,11 @@ static void video_decode_example(const char *outfilename, const char *filename)
}
c = avcodec_alloc_context3(codec);
if (!c) {
fprintf(stderr, "Could not allocate video codec context\n");
exit(1);
}
if(codec->capabilities&CODEC_CAP_TRUNCATED)
c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */
@@ -514,21 +559,19 @@ static void video_decode_example(const char *outfilename, const char *filename)
exit(1);
}
/* the codec gives us the frame size, in samples */
f = fopen(filename, "rb");
if (!f) {
fprintf(stderr, "Could not open %s\n", filename);
exit(1);
}
picture = avcodec_alloc_frame();
if (!picture) {
frame = avcodec_alloc_frame();
if (!frame) {
fprintf(stderr, "Could not allocate video frame\n");
exit(1);
}
frame = 0;
frame_count = 0;
for(;;) {
avpkt.size = fread(inbuf, 1, INBUF_SIZE, f);
if (avpkt.size == 0)
@@ -550,26 +593,9 @@ static void video_decode_example(const char *outfilename, const char *filename)
/* here, we use a stream based decoder (mpeg1video), so we
feed decoder and see if it could decode a frame */
avpkt.data = inbuf;
while (avpkt.size > 0) {
len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
if (len < 0) {
fprintf(stderr, "Error while decoding frame %d\n", frame);
while (avpkt.size > 0)
if (decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 0) < 0)
exit(1);
}
if (got_picture) {
printf("Saving frame %3d\n", frame);
fflush(stdout);
/* the picture is allocated by the decoder. no need to
free it */
snprintf(buf, sizeof(buf), outfilename, frame);
pgm_save(picture->data[0], picture->linesize[0],
c->width, c->height, buf);
frame++;
}
avpkt.size -= len;
avpkt.data += len;
}
}
/* some codecs, such as MPEG, transmit the I and P frame with a
@@ -577,24 +603,13 @@ static void video_decode_example(const char *outfilename, const char *filename)
chance to get the last frame of the video */
avpkt.data = NULL;
avpkt.size = 0;
len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
if (got_picture) {
printf("Saving last frame %3d\n", frame);
fflush(stdout);
/* the picture is allocated by the decoder. no need to
free it */
snprintf(buf, sizeof(buf), outfilename, frame);
pgm_save(picture->data[0], picture->linesize[0],
c->width, c->height, buf);
frame++;
}
decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 1);
fclose(f);
avcodec_close(c);
av_free(c);
avcodec_free_frame(&picture);
avcodec_free_frame(&frame);
printf("\n");
}
@@ -610,8 +625,8 @@ int main(int argc, char **argv)
"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",
"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;
}

View File

@@ -26,6 +26,7 @@
*
* Show how to use the libavformat and libavcodec API to demux and
* decode audio and video data.
* @example doc/examples/demuxing.c
*/
#include <libavutil/imgutils.h>
@@ -208,7 +209,7 @@ int main (int argc, char **argv)
/* register all formats and codecs */
av_register_all();
/* open input file, and allocated format context */
/* open input file, and allocate 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);
@@ -242,9 +243,6 @@ int main (int argc, char **argv)
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;
@@ -267,6 +265,9 @@ int main (int argc, char **argv)
}
}
/* dump input information to stderr */
av_dump_format(fmt_ctx, 0, src_filename, 0);
if (!audio_stream && !video_stream) {
fprintf(stderr, "Could not find audio or video stream in the input, aborting\n");
ret = 1;
@@ -288,7 +289,7 @@ int main (int argc, char **argv)
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);
printf("Demuxing audio from file '%s' into '%s'\n", src_filename, audio_dst_filename);
/* read frames from the file */
while (av_read_frame(fmt_ctx, &pkt) >= 0)
@@ -313,7 +314,7 @@ int main (int argc, char **argv)
if (audio_stream) {
const char *fmt;
if ((ret = get_format_from_sample_fmt(&fmt, audio_dec_ctx->sample_fmt) < 0))
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",

View File

@@ -25,6 +25,7 @@
/**
* @file
* API example for audio decoding and filtering
* @example doc/examples/filtering_audio.c
*/
#include <unistd.h>

View File

@@ -24,6 +24,7 @@
/**
* @file
* API example for decoding and filtering
* @example doc/examples/filtering_video.c
*/
#define _XOPEN_SOURCE 600 /* for usleep */
@@ -87,7 +88,7 @@ static int init_filters(const char *filters_descr)
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 };
enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
AVBufferSinkParams *buffersink_params;
filter_graph = avfilter_graph_alloc();

View File

@@ -23,6 +23,7 @@
/**
* @file
* Shows how the metadata API can be used in application programs.
* @example doc/examples/metadata.c
*/
#include <stdio.h>

View File

@@ -26,6 +26,7 @@
*
* Output a media file in any supported libavformat format.
* The default codecs are used.
* @example doc/examples/muxing.c
*/
#include <stdlib.h>
@@ -41,7 +42,7 @@
#define STREAM_DURATION 200.0
#define STREAM_FRAME_RATE 25 /* 25 images/s */
#define STREAM_NB_FRAMES ((int)(STREAM_DURATION * STREAM_FRAME_RATE))
#define STREAM_PIX_FMT PIX_FMT_YUV420P /* default pix_fmt */
#define STREAM_PIX_FMT AV_PIX_FMT_YUV420P /* default pix_fmt */
static int sws_flags = SWS_BICUBIC;
@@ -52,19 +53,18 @@ static float t, tincr, tincr2;
static int16_t *samples;
static int audio_input_frame_size;
/*
* add an audio output stream
*/
static AVStream *add_audio_stream(AVFormatContext *oc, AVCodec **codec,
enum AVCodecID codec_id)
/* Add an output stream. */
static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec,
enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
/* find the audio encoder */
/* find the encoder */
*codec = avcodec_find_encoder(codec_id);
if (!(*codec)) {
fprintf(stderr, "Could not find codec\n");
fprintf(stderr, "Could not find encoder for '%s'\n",
avcodec_get_name(codec_id));
exit(1);
}
@@ -73,32 +73,75 @@ static AVStream *add_audio_stream(AVFormatContext *oc, AVCodec **codec,
fprintf(stderr, "Could not allocate stream\n");
exit(1);
}
st->id = 1;
st->id = oc->nb_streams-1;
c = st->codec;
/* put sample parameters */
c->sample_fmt = AV_SAMPLE_FMT_S16;
c->bit_rate = 64000;
c->sample_rate = 44100;
c->channels = 2;
switch ((*codec)->type) {
case AVMEDIA_TYPE_AUDIO:
st->id = 1;
c->sample_fmt = AV_SAMPLE_FMT_S16;
c->bit_rate = 64000;
c->sample_rate = 44100;
c->channels = 2;
break;
// some formats want stream headers to be separate
case AVMEDIA_TYPE_VIDEO:
avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
c->bit_rate = 400000;
/* Resolution must be a multiple of two. */
c->width = 352;
c->height = 288;
/* timebase: This is the fundamental unit of time (in seconds) in terms
* of which frame timestamps are represented. For fixed-fps content,
* timebase should be 1/framerate and timestamp increments should be
* identical to 1. */
c->time_base.den = STREAM_FRAME_RATE;
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 == AV_CODEC_ID_MPEG2VIDEO) {
/* just for testing, we also add B frames */
c->max_b_frames = 2;
}
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. */
c->mb_decision = 2;
}
break;
default:
break;
}
/* Some formats want stream headers to be separate. */
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
return st;
}
/**************************************************************/
/* audio output */
static float t, tincr, tincr2;
static int16_t *samples;
static int audio_input_frame_size;
static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st)
{
AVCodecContext *c;
int ret;
c = st->codec;
/* open it */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "could not open codec\n");
ret = avcodec_open2(c, codec, NULL);
if (ret < 0) {
fprintf(stderr, "Could not open audio codec: %s\n", av_err2str(ret));
exit(1);
}
@@ -115,6 +158,10 @@ static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st)
samples = av_malloc(audio_input_frame_size *
av_get_bytes_per_sample(c->sample_fmt) *
c->channels);
if (!samples) {
fprintf(stderr, "Could not allocate audio samples buffer\n");
exit(1);
}
}
/* Prepare a 16 bit dummy audio frame of 'frame_size' samples and
@@ -139,7 +186,7 @@ static void write_audio_frame(AVFormatContext *oc, AVStream *st)
AVCodecContext *c;
AVPacket pkt = { 0 }; // data and size must be 0;
AVFrame *frame = avcodec_alloc_frame();
int got_packet;
int got_packet, ret;
av_init_packet(&pkt);
c = st->codec;
@@ -152,15 +199,22 @@ static void write_audio_frame(AVFormatContext *oc, AVStream *st)
av_get_bytes_per_sample(c->sample_fmt) *
c->channels, 1);
avcodec_encode_audio2(c, &pkt, frame, &got_packet);
ret = avcodec_encode_audio2(c, &pkt, frame, &got_packet);
if (ret < 0) {
fprintf(stderr, "Error encoding audio frame: %s\n", av_err2str(ret));
exit(1);
}
if (!got_packet)
return;
pkt.stream_index = st->index;
/* Write the compressed frame to the media file. */
if (av_interleaved_write_frame(oc, &pkt) != 0) {
fprintf(stderr, "Error while writing audio frame\n");
ret = av_interleaved_write_frame(oc, &pkt);
if (ret != 0) {
fprintf(stderr, "Error while writing audio frame: %s\n",
av_err2str(ret));
exit(1);
}
avcodec_free_frame(&frame);
@@ -178,64 +232,7 @@ static void close_audio(AVFormatContext *oc, AVStream *st)
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, AVCodec **codec,
enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
/* find the video encoder */
*codec = avcodec_find_encoder(codec_id);
if (!(*codec)) {
fprintf(stderr, "codec not found\n");
exit(1);
}
st = avformat_new_stream(oc, *codec);
if (!st) {
fprintf(stderr, "Could not alloc stream\n");
exit(1);
}
c = st->codec;
avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
/* Put sample parameters. */
c->bit_rate = 400000;
/* Resolution must be a multiple of two. */
c->width = 352;
c->height = 288;
/* timebase: This is the fundamental unit of time (in seconds) in terms
* of which frame timestamps are represented. For fixed-fps content,
* timebase should be 1/framerate and timestamp increments should be
* identical to 1. */
c->time_base.den = STREAM_FRAME_RATE;
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 == AV_CODEC_ID_MPEG2VIDEO) {
/* just for testing, we also add B frames */
c->max_b_frames = 2;
}
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. */
c->mb_decision = 2;
}
/* Some formats want stream headers to be separate. */
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
return st;
}
static int frame_count;
static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st)
{
@@ -243,23 +240,12 @@ static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st)
AVCodecContext *c = st->codec;
/* open the codec */
if (avcodec_open2(c, codec, NULL) < 0) {
fprintf(stderr, "Could not open codec\n");
ret = avcodec_open2(c, codec, NULL);
if (ret < 0) {
fprintf(stderr, "Could not open video codec: %s\n", av_err2str(ret));
exit(1);
}
video_outbuf = NULL;
if (!(oc->oformat->flags & AVFMT_RAWPICTURE)) {
/* Allocate output buffer. */
/* XXX: API change will be done. */
/* Buffers passed into lav* can be allocated any way you prefer,
* as long as they're aligned enough for the architecture, and
* they're freed appropriately (such as using av_free for buffers
* allocated with av_malloc). */
video_outbuf_size = 200000;
video_outbuf = av_malloc(video_outbuf_size);
}
/* allocate and init a re-usable frame */
frame = avcodec_alloc_frame();
if (!frame) {
@@ -270,17 +256,18 @@ static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st)
/* Allocate the encoded raw picture. */
ret = avpicture_alloc(&dst_picture, c->pix_fmt, c->width, c->height);
if (ret < 0) {
fprintf(stderr, "Could not allocate picture\n");
fprintf(stderr, "Could not allocate picture: %s\n", av_err2str(ret));
exit(1);
}
/* If the output format is not YUV420P, then a temporary YUV420P
* picture is needed too. It is then converted to the required
* output format. */
if (c->pix_fmt != PIX_FMT_YUV420P) {
ret = avpicture_alloc(&src_picture, PIX_FMT_YUV420P, c->width, c->height);
if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
ret = avpicture_alloc(&src_picture, AV_PIX_FMT_YUV420P, c->width, c->height);
if (ret < 0) {
fprintf(stderr, "Could not allocate temporary picture\n");
fprintf(stderr, "Could not allocate temporary picture: %s\n",
av_err2str(ret));
exit(1);
}
}
@@ -322,11 +309,11 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
* frames if using B-frames, so we get the last frames by
* passing the same picture again. */
} else {
if (c->pix_fmt != PIX_FMT_YUV420P) {
if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
/* as we only generate a YUV420P picture, we must convert it
* to the codec pixel format if needed */
if (!sws_ctx) {
sws_ctx = sws_getContext(c->width, c->height, PIX_FMT_YUV420P,
sws_ctx = sws_getContext(c->width, c->height, AV_PIX_FMT_YUV420P,
c->width, c->height, c->pix_fmt,
sws_flags, NULL, NULL, NULL);
if (!sws_ctx) {
@@ -345,8 +332,7 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
}
if (oc->oformat->flags & AVFMT_RAWPICTURE) {
/* Raw video case - the API will change slightly in the near
* future for that. */
/* Raw video case - directly store the picture in the packet */
AVPacket pkt;
av_init_packet(&pkt);
@@ -367,15 +353,12 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
if (ret < 0) {
fprintf(stderr, "Error encoding video frame\n");
fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
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);
if (c->coded_frame->key_frame)
pkt.flags |= AV_PKT_FLAG_KEY;
@@ -388,7 +371,7 @@ static void write_video_frame(AVFormatContext *oc, AVStream *st)
}
}
if (ret != 0) {
fprintf(stderr, "Error while writing video frame\n");
fprintf(stderr, "Error while writing video frame: %s\n", av_err2str(ret));
exit(1);
}
frame_count++;
@@ -400,7 +383,6 @@ static void close_video(AVFormatContext *oc, AVStream *st)
av_free(src_picture.data[0]);
av_free(dst_picture.data[0]);
av_free(frame);
av_free(video_outbuf);
}
/**************************************************************/
@@ -414,7 +396,7 @@ int main(int argc, char **argv)
AVStream *audio_st, *video_st;
AVCodec *audio_codec, *video_codec;
double audio_pts, video_pts;
int i;
int ret, i;
/* Initialize libavcodec, and register all codecs and formats. */
av_register_all();
@@ -422,8 +404,10 @@ int main(int argc, char **argv)
if (argc != 2) {
printf("usage: %s output_file\n"
"API example program to output a media file with libavformat.\n"
"This program generates a synthetic audio and video stream, encodes and\n"
"muxes them into a file named output_file.\n"
"The output format is automatically guessed according to the file extension.\n"
"Raw images can also be output by using '%%d' in the filename\n"
"Raw images can also be output by using '%%d' in the filename.\n"
"\n", argv[0]);
return 1;
}
@@ -445,11 +429,12 @@ int main(int argc, char **argv)
* and initialize the codecs. */
video_st = NULL;
audio_st = NULL;
if (fmt->video_codec != AV_CODEC_ID_NONE) {
video_st = add_video_stream(oc, &video_codec, fmt->video_codec);
video_st = add_stream(oc, &video_codec, fmt->video_codec);
}
if (fmt->audio_codec != AV_CODEC_ID_NONE) {
audio_st = add_audio_stream(oc, &audio_codec, fmt->audio_codec);
audio_st = add_stream(oc, &audio_codec, fmt->audio_codec);
}
/* Now that all the parameters are set, we can open the audio and
@@ -463,19 +448,24 @@ int main(int argc, char **argv)
/* open the output file, if needed */
if (!(fmt->flags & AVFMT_NOFILE)) {
if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) {
fprintf(stderr, "Could not open '%s'\n", filename);
ret = avio_open(&oc->pb, filename, AVIO_FLAG_WRITE);
if (ret < 0) {
fprintf(stderr, "Could not open '%s': %s\n", filename,
av_err2str(ret));
return 1;
}
}
/* Write the stream header, if any. */
if (avformat_write_header(oc, NULL) < 0) {
fprintf(stderr, "Error occurred when opening output file\n");
ret = avformat_write_header(oc, NULL);
if (ret < 0) {
fprintf(stderr, "Error occurred when opening output file: %s\n",
av_err2str(ret));
return 1;
}
frame->pts = 0;
if (frame)
frame->pts = 0;
for (;;) {
/* Compute current audio and video time. */
if (audio_st)
@@ -498,7 +488,7 @@ int main(int argc, char **argv)
write_audio_frame(oc, audio_st);
} else {
write_video_frame(oc, video_st);
frame->pts++;
frame->pts += av_rescale_q(1, video_st->codec->time_base, video_st->time_base);
}
}

View File

@@ -0,0 +1,223 @@
/*
* 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.
*/
/**
* @example doc/examples/resampling_audio.c
* libswresample API use example.
*/
#include <libavutil/opt.h>
#include <libavutil/channel_layout.h>
#include <libavutil/samplefmt.h>
#include <libswresample/swresample.h>
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 not supported as output format\n",
av_get_sample_fmt_name(sample_fmt));
return AVERROR(EINVAL);
}
/**
* Fill dst buffer with nb_samples, generated starting from t.
*/
void fill_samples(double *dst, int nb_samples, int nb_channels, int sample_rate, double *t)
{
int i, j;
double tincr = 1.0 / sample_rate, *dstp = dst;
const double c = 2 * M_PI * 440.0;
/* generate sin tone with 440Hz frequency and duplicated channels */
for (i = 0; i < nb_samples; i++) {
*dstp = sin(c * *t);
for (j = 1; j < nb_channels; j++)
dstp[j] = dstp[0];
dstp += nb_channels;
*t += tincr;
}
}
int alloc_samples_array_and_data(uint8_t ***data, int *linesize, int nb_channels,
int nb_samples, enum AVSampleFormat sample_fmt, int align)
{
int nb_planes = av_sample_fmt_is_planar(sample_fmt) ? nb_channels : 1;
*data = av_malloc(sizeof(*data) * nb_planes);
if (!*data)
return AVERROR(ENOMEM);
return av_samples_alloc(*data, linesize, nb_channels,
nb_samples, sample_fmt, align);
}
int main(int argc, char **argv)
{
int64_t src_ch_layout = AV_CH_LAYOUT_STEREO, dst_ch_layout = AV_CH_LAYOUT_SURROUND;
int src_rate = 48000, dst_rate = 44100;
uint8_t **src_data = NULL, **dst_data = NULL;
int src_nb_channels = 0, dst_nb_channels = 0;
int src_linesize, dst_linesize;
int src_nb_samples = 1024, dst_nb_samples, max_dst_nb_samples;
enum AVSampleFormat src_sample_fmt = AV_SAMPLE_FMT_DBL, dst_sample_fmt = AV_SAMPLE_FMT_S16;
const char *dst_filename = NULL;
FILE *dst_file;
int dst_bufsize;
const char *fmt;
struct SwrContext *swr_ctx;
double t;
int ret;
if (argc != 2) {
fprintf(stderr, "Usage: %s output_file\n"
"API example program to show how to resample an audio stream with libswresample.\n"
"This program generates a series of audio frames, resamples them to a specified "
"output format and rate and saves them to an output file named output_file.\n",
argv[0]);
exit(1);
}
dst_filename = argv[1];
dst_file = fopen(dst_filename, "wb");
if (!dst_file) {
fprintf(stderr, "Could not open destination file %s\n", dst_filename);
exit(1);
}
/* create resampler context */
swr_ctx = swr_alloc();
if (!swr_ctx) {
fprintf(stderr, "Could not allocate resampler context\n");
ret = AVERROR(ENOMEM);
goto end;
}
/* set options */
av_opt_set_int(swr_ctx, "in_channel_layout", src_ch_layout, 0);
av_opt_set_int(swr_ctx, "in_sample_rate", src_rate, 0);
av_opt_set_sample_fmt(swr_ctx, "in_sample_fmt", src_sample_fmt, 0);
av_opt_set_int(swr_ctx, "out_channel_layout", dst_ch_layout, 0);
av_opt_set_int(swr_ctx, "out_sample_rate", dst_rate, 0);
av_opt_set_sample_fmt(swr_ctx, "out_sample_fmt", dst_sample_fmt, 0);
/* initialize the resampling context */
if ((ret = swr_init(swr_ctx)) < 0) {
fprintf(stderr, "Failed to initialize the resampling context\n");
goto end;
}
/* allocate source and destination samples buffers */
src_nb_channels = av_get_channel_layout_nb_channels(src_ch_layout);
ret = alloc_samples_array_and_data(&src_data, &src_linesize, src_nb_channels,
src_nb_samples, src_sample_fmt, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate source samples\n");
goto end;
}
/* compute the number of converted samples: buffering is avoided
* ensuring that the output buffer will contain at least all the
* converted input samples */
max_dst_nb_samples = dst_nb_samples =
av_rescale_rnd(src_nb_samples, dst_rate, src_rate, AV_ROUND_UP);
/* buffer is going to be directly written to a rawaudio file, no alignment */
dst_nb_channels = av_get_channel_layout_nb_channels(dst_ch_layout);
ret = alloc_samples_array_and_data(&dst_data, &dst_linesize, dst_nb_channels,
dst_nb_samples, dst_sample_fmt, 0);
if (ret < 0) {
fprintf(stderr, "Could not allocate destination samples\n");
goto end;
}
t = 0;
do {
/* generate synthetic audio */
fill_samples((double *)src_data[0], src_nb_samples, src_nb_channels, src_rate, &t);
/* compute destination number of samples */
dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, src_rate) +
src_nb_samples, dst_rate, src_rate, AV_ROUND_UP);
if (dst_nb_samples > max_dst_nb_samples) {
av_free(dst_data[0]);
ret = av_samples_alloc(dst_data, &dst_linesize, dst_nb_channels,
dst_nb_samples, dst_sample_fmt, 1);
if (ret < 0)
break;
max_dst_nb_samples = dst_nb_samples;
}
/* convert to destination format */
ret = swr_convert(swr_ctx, dst_data, dst_nb_samples, (const uint8_t **)src_data, src_nb_samples);
if (ret < 0) {
fprintf(stderr, "Error while converting\n");
goto end;
}
dst_bufsize = av_samples_get_buffer_size(&dst_linesize, dst_nb_channels,
ret, dst_sample_fmt, 1);
printf("t:%f in:%d out:%d\n", t, src_nb_samples, ret);
fwrite(dst_data[0], 1, dst_bufsize, dst_file);
} while (t < 10);
if ((ret = get_format_from_sample_fmt(&fmt, dst_sample_fmt)) < 0)
goto end;
fprintf(stderr, "Resampling succeeded. Play the output file with the command:\n"
"ffplay -f %s -channel_layout %"PRId64" -channels %d -ar %d %s\n",
fmt, dst_ch_layout, dst_nb_channels, dst_rate, dst_filename);
end:
if (dst_file)
fclose(dst_file);
if (src_data)
av_freep(&src_data[0]);
av_freep(&src_data);
if (dst_data)
av_freep(&dst_data[0]);
av_freep(&dst_data);
swr_free(&swr_ctx);
return ret < 0;
}

View File

@@ -23,6 +23,7 @@
/**
* @file
* libswscale API use example.
* @example doc/examples/scaling_video.c
*/
#include <libavutil/imgutils.h>
@@ -32,20 +33,18 @@
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;
int x, y;
/* Y */
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
data[0][y * linesize[0] + x] = x + y + i * 3;
data[0][y * linesize[0] + x] = x + y + frame_index * 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;
data[1][y * linesize[1] + x] = 128 + y + frame_index * 2;
data[2][y * linesize[2] + x] = 64 + x + frame_index * 5;
}
}
}
@@ -55,7 +54,7 @@ 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;
enum AVPixelFormat src_pix_fmt = AV_PIX_FMT_YUV420P, dst_pix_fmt = AV_PIX_FMT_RGB24;
const char *dst_size = NULL;
const char *dst_filename = NULL;
FILE *dst_file;

View File

@@ -79,6 +79,17 @@ not a bug they should fix:
Then again, some of them do not know the difference between an undecidable
problem and an NP-hard problem...
@section I have installed this library with my distro's package manager. Why does @command{configure} not see it?
Distributions usually split libraries in several packages. The main package
contains the files necessary to run programs using the library. The
development package contains the files necessary to build programs using the
library. Sometimes, docs and/or data are in a separate package too.
To build FFmpeg, you need to install the development package. It is usually
called @file{libfoo-dev} or @file{libfoo-devel}. You can remove it after the
build is finished, but be sure to keep the main package.
@chapter Usage
@section ffmpeg does not work; what is wrong?
@@ -99,7 +110,16 @@ Then you may run:
Notice that @samp{%d} is replaced by the image number.
@file{img%03d.jpg} means the sequence @file{img001.jpg}, @file{img002.jpg}, etc...
@file{img%03d.jpg} means the sequence @file{img001.jpg}, @file{img002.jpg}, etc.
Use the @option{-start_number} option to declare a starting number for
the sequence. This is useful if your sequence does not start with
@file{img001.jpg} but is still in a numerical order. The following
example will start with @file{img100.jpg}:
@example
ffmpeg -f image2 -start_number 100 -i img%d.jpg /tmp/a.mpg
@end example
If you have large number of pictures to rename, you can use the
following command to ease the burden. The command, using the bourne
@@ -122,6 +142,12 @@ Then run:
The same logic is used for any image format that ffmpeg reads.
You can also use @command{cat} to pipe images to ffmpeg:
@example
cat *.jpg | ffmpeg -f image2pipe -c:v mjpeg -i - output.mpg
@end example
@section How do I encode movie to single pictures?
Use:
@@ -234,18 +260,18 @@ invoking ffmpeg with several @option{-i} options.
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.
@url{http://ffmpeg.org/ffmpeg-filters.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
using the @url{http://ffmpeg.org/ffmpeg-filters.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.
@url{http://ffmpeg.org/ffmpeg-filters.html#overlay, @code{overlay}} video filter.
@end itemize
@@ -254,12 +280,19 @@ the other; it can be done using the
There are several solutions, depending on the exact circumstances.
@subsection Concatenating using filters
@subsection Concatenating using the concat @emph{filter}
FFmpeg has a @url{http://ffmpeg.org/ffmpeg.html#concat-1, @code{concat}}
filter designed specifically for that, with examples in the documentation.
FFmpeg has a @url{http://ffmpeg.org/ffmpeg-filters.html#concat,
@code{concat}} filter designed specifically for that, with examples in the
documentation. This operation is recommended if you need to re-encode.
@subsection Concatenating at the file level
@subsection Concatenating using the concat @emph{demuxer}
FFmpeg has a @url{http://www.ffmpeg.org/ffmpeg-formats.html#concat,
@code{concat}} demuxer which you can use when you want to avoid a re-encode and
your format doesn't support file level concatenation.
@subsection Concatenating using the concat @emph{protocol} (file level)
A few multimedia containers (MPEG-1, MPEG-2 PS, DV) allow to concatenate
video by merely concatenating the files them.
@@ -297,7 +330,7 @@ mkfifo intermediate2.mpg
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 - -qscale:v 2 -c:v mpeg4 -acodec libmp3lame -q:a 4 output.avi
ffmpeg -f mpeg -i - -c:v mpeg4 -acodec libmp3lame output.avi
@end example
@subsection Concatenating using raw audio and video
@@ -327,7 +360,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 \
-qscale:v 2 -y output.flv
-y output.flv
rm temp[12].[av] all.[av]
@end example
@@ -385,6 +418,20 @@ 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.
@section Why was the @command{ffmpeg} @option{-sameq} option removed? What to use instead?
The @option{-sameq} option meant "same quantizer", and made sense only in a
very limited set of cases. Unfortunately, a lot of people mistook it for
"same quality" and used it in places where it did not make sense: it had
roughly the expected visible effect, but achieved it in a very inefficient
way.
Each encoder has its own set of options to set the quality-vs-size balance,
use the options for the encoder you are using to set the quality level to a
point acceptable for your tastes. The most common options to do that are
@option{-qscale} and @option{-qmax}, but you should peruse the documentation
of the encoder you chose.
@chapter Development
@section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat?
@@ -408,31 +455,8 @@ with @code{#ifdef}s related to the compiler.
@section Is Microsoft Visual C++ supported?
No. Microsoft Visual C++ is not compliant to the C99 standard and does
not - among other things - support the inline assembly used in FFmpeg.
If you wish to use MSVC++ for your
project then you can link the MSVC++ code with libav* as long as
you compile the latter with a working C compiler. For more information, see
the @emph{Microsoft Visual C++ compatibility} section in the FFmpeg
documentation.
There have been efforts to make FFmpeg compatible with MSVC++ in the
past. However, they have all been rejected as too intrusive, especially
since MinGW does the job adequately. None of the core developers
work with MSVC++ and thus this item is low priority. Should you find
the silver bullet that solves this problem, feel free to shoot it at us.
We strongly recommend you to move over from MSVC++ to MinGW tools.
@section Can I use FFmpeg or libavcodec under Windows?
Yes, but the Cygwin or MinGW tools @emph{must} be used to compile FFmpeg.
Read the @emph{Windows} section in the FFmpeg documentation to find more
information.
To get help and instructions for building FFmpeg under Windows, check out
the FFmpeg Windows Help Forum at
@url{http://ffmpeg.arrozcru.org/}.
Yes. Please see the @uref{platform.html, Microsoft Visual C++}
section in the FFmpeg documentation.
@section Can you add automake, libtool or autoconf support?
@@ -490,8 +514,8 @@ to use them you have to append -D__STDC_CONSTANT_MACROS to your CXXFLAGS
@section I have a file in memory / a API different from *open/*read/ libc how do I use it with libavformat?
You have to implement a URLProtocol, see @file{libavformat/file.c} in
FFmpeg and @file{libmpdemux/demux_lavf.c} in MPlayer sources.
You have to create a custom AVIOContext using @code{avio_alloc_context},
see @file{libavformat/aviobuf.c} in FFmpeg and @file{libmpdemux/demux_lavf.c} in MPlayer or MPlayer2 sources.
@section Where can I find libav* headers for Pascal/Delphi?

View File

@@ -93,11 +93,11 @@ tests/fate.sh /path/to/fate_config
@end example
A configuration file template with comments describing the individual
configuration variables can be found at @file{tests/fate_config.sh.template}.
configuration variables can be found at @file{doc/fate_config.sh.template}.
@ifhtml
The mentioned configuration template is also available here:
@verbatiminclude ../tests/fate_config.sh.template
@verbatiminclude fate_config.sh.template
@end ifhtml
Create a configuration that suits your needs, based on the configuration

View File

@@ -0,0 +1,45 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Bitstream Filters Documentation
@titlepage
@center @titlefont{FFmpeg Bitstream Filters Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
This document describes the bitstream filters provided by the
libavcodec library.
A bitstream filter operates on the encoded stream data, and performs
bitstream level modifications without performing decoding.
@c man end DESCRIPTION
@include bitstream_filters.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libavcodec.html,libavcodec}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavcodec(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-bitstream-filters
@settitle FFmpeg bitstream filters
@end ignore
@bye

1128
doc/ffmpeg-codecs.texi Normal file

File diff suppressed because it is too large Load Diff

62
doc/ffmpeg-devices.texi Normal file
View File

@@ -0,0 +1,62 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Devices Documentation
@titlepage
@center @titlefont{FFmpeg Devices Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
This document describes the input and output devices provided by the
libavdevice library.
@c man end DESCRIPTION
@chapter Device Options
@c man begin DEVICE OPTIONS
The libavdevice library provides the same interface as
libavformat. Namely, an input device is considered like a demuxer, and
an output device like a muxer, and the interface and generic device
options are the same provided by libavformat (see the ffmpeg-formats
manual).
In addition each input or output device may support so-called private
options, which are specific for that component.
Options may be set by specifying -@var{option} @var{value} in the
FFmpeg tools, or by setting the value explicitly in the device
@code{AVFormatContext} options or using the @file{libavutil/opt.h} API
for programmatic use.
@c man end DEVICE OPTIONS
@include indevs.texi
@include outdevs.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libavdevice.html,libavdevice}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavdevice(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-devices
@settitle FFmpeg devices
@end ignore
@bye

42
doc/ffmpeg-filters.texi Normal file
View File

@@ -0,0 +1,42 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Filters Documentation
@titlepage
@center @titlefont{FFmpeg Filters Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
This document describes filters, sources, and sinks provided by the
libavfilter library.
@c man end DESCRIPTION
@include filters.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libavfilter.html,libavfilter}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavfilter(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-filters
@settitle FFmpeg filters
@end ignore
@bye

171
doc/ffmpeg-formats.texi Normal file
View File

@@ -0,0 +1,171 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Formats Documentation
@titlepage
@center @titlefont{FFmpeg Formats Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
This document describes the supported formats (muxers and demuxers)
provided by the libavformat library.
@c man end DESCRIPTION
@chapter Format Options
@c man begin FORMAT OPTIONS
The libavformat library provides some generic global options, which
can be set on all the muxers and demuxers. In addition each muxer or
demuxer may support so-called private options, which are specific for
that component.
Options may be set by specifying -@var{option} @var{value} in the
FFmpeg tools, or by setting the value explicitly in the
@code{AVFormatContext} options or using the @file{libavutil/opt.h} API
for programmatic use.
The list of supported options follows:
@table @option
@item avioflags @var{flags} (@emph{input/output})
Possible values:
@table @samp
@item direct
Reduce buffering.
@end table
@item probesize @var{integer} (@emph{input})
Set probing size in bytes, i.e. the size of the data to analyze to get
stream information. A higher value will allow to detect more
information in case it is dispersed into the stream, but will increase
latency. Must be an integer not lesser than 32. It is 5000000 by default.
@item packetsize @var{integer} (@emph{output})
Set packet size.
@item fflags @var{flags} (@emph{input/output})
Set format flags.
Possible values:
@table @samp
@item ignidx
Ignore index.
@item genpts
Generate PTS.
@item nofillin
Do not fill in missing values that can be exactly calculated.
@item noparse
Disable AVParsers, this needs @code{+nofillin} too.
@item igndts
Ignore DTS.
@item discardcorrupt
Discard corrupted frames.
@item sortdts
Try to interleave output packets by DTS.
@item keepside
Do not merge side data.
@item latm
Enable RTP MP4A-LATM payload.
@item nobuffer
Reduce the latency introduced by optional buffering
@end table
@item analyzeduration @var{integer} (@emph{input})
Specify how many microseconds are analyzed to estimate duration.
@item cryptokey @var{hexadecimal string} (@emph{input})
Set decryption key.
@item indexmem @var{integer} (@emph{input})
Set max memory used for timestamp index (per stream).
@item rtbufsize @var{integer} (@emph{input})
Set max memory used for buffering real-time frames.
@item fdebug @var{flags} (@emph{input/output})
Print specific debug info.
Possible values:
@table @samp
@item ts
@end table
@item max_delay @var{integer} (@emph{input/output})
Set maximum muxing or demuxing delay in microseconds.
@item fpsprobesize @var{integer} (@emph{input})
Set number of frames used to probe fps.
@item audio_preload @var{integer} (@emph{output})
Set microseconds by which audio packets should be interleaved earlier.
@item chunk_duration @var{integer} (@emph{output})
Set microseconds for each chunk.
@item chunk_size @var{integer} (@emph{output})
Set size in bytes for each chunk.
@item err_detect, f_err_detect @var{flags} (@emph{input})
Set error detection flags. @code{f_err_detect} is deprecated and
should be used only via the @command{ffmpeg} tool.
Possible values:
@table @samp
@item crccheck
Verify embedded CRCs.
@item bitstream
Detect bitstream specification deviations.
@item buffer
Detect improper bitstream length.
@item explode
Abort decoding on minor error detection.
@item careful
Consider things that violate the spec and have not been seen in the
wild as errors.
@item compliant
Consider all spec non compliancies as errors.
@item aggressive
Consider things that a sane encoder should not do as an error.
@end table
@item use_wallclock_as_timestamps @var{integer} (@emph{input})
Use wallclock as timestamps.
@item avoid_negative_ts @var{integer} (@emph{output})
Shift timestamps to make them positive. 1 enables, 0 disables, default
of -1 enables when required by target format.
@end table
@c man end FORMAT OPTIONS
@include demuxers.texi
@include muxers.texi
@include metadata.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libavformat.html,libavformat}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavformat(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-formats
@settitle FFmpeg formats
@end ignore
@bye

42
doc/ffmpeg-protocols.texi Normal file
View File

@@ -0,0 +1,42 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Protocols Documentation
@titlepage
@center @titlefont{FFmpeg Protocols Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
This document describes the input and output protocols provided by the
libavformat library.
@c man end DESCRIPTION
@include protocols.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libavformat.html,libavformat}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavformat(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-protocols
@settitle FFmpeg protocols
@end ignore
@bye

238
doc/ffmpeg-resampler.texi Normal file
View File

@@ -0,0 +1,238 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Resampler Documentation
@titlepage
@center @titlefont{FFmpeg Resampler Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The FFmpeg resampler provides an high-level interface to the
libswresample library audio resampling utilities. In particular it
allows to perform audio resampling, audio channel layout rematrixing,
and convert audio format and packing layout.
@c man end DESCRIPTION
@chapter Resampler Options
@c man begin RESAMPLER OPTIONS
The audio resampler supports the following named options.
Options may be set by specifying -@var{option} @var{value} in the
FFmpeg tools, @var{option}=@var{value} for the aresample filter,
by setting the value explicitly in the
@code{SwrContext} options or using the @file{libavutil/opt.h} API for
programmatic use.
@table @option
@item ich, in_channel_count
Set the number of input channels. Default value is 0. Setting this
value is not mandatory if the corresponding channel layout
@option{in_channel_layout} is set.
@item och, out_channel_count
Set the number of output channels. Default value is 0. Setting this
value is not mandatory if the corresponding channel layout
@option{out_channel_layout} is set.
@item uch, used_channel_count
Set the number of used channels. Default value is 0. This option is
only used for special remapping.
@item isr, in_sample_rate
Set the input sample rate. Default value is 0.
@item osr, out_sample_rate
Set the output sample rate. Default value is 0.
@item isf, in_sample_fmt
Specify the input sample format. It is set by default to @code{none}.
@item osf, out_sample_fmt
Specify the output sample format. It is set by default to @code{none}.
@item tsf, internal_sample_fmt
Set the internal sample format. Default value is @code{none}.
@item icl, in_channel_layout
Set the input channel layout.
@item ocl, out_channel_layout
Set the output channel layout.
@item clev, center_mix_level
Set center mix level. It is a value expressed in deciBel, and must be
inclusively included between -32 and +32.
@item slev, surround_mix_level
Set surround mix level. It is a value expressed in deciBel, and must
be inclusively included between -32 and +32.
@item lfe_mix_evel
Set LFE mix level.
@item rmvol, rematrix_volume
Set rematrix volume. Default value is 1.0.
@item flags, swr_flags
Set flags used by the converter. Default value is 0.
It supports the following individual flags:
@table @option
@item res
force resampling
@end table
@item dither_scale
Set the dither scale. Default value is 1.
@item dither_method
Set dither method. Default value is 0.
Supported values:
@table @samp
@item rectangular
select rectangular dither
@item triangular
select triangular dither
@item triangular_hp
select triangular dither with high pass
@end table
@item resampler
Set resampling engine. Default value is swr.
Supported values:
@table @samp
@item swr
select the native SW Resampler; filter options precision and cheby are not
applicable in this case.
@item soxr
select the SoX Resampler (where available); compensation, and filter options
filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this
case.
@end table
@item filter_size
For swr only, set resampling filter size, default value is 32.
@item phase_shift
For swr only, set resampling phase shift, default value is 10, must be included
between 0 and 30.
@item linear_interp
Use Linear Interpolation if set to 1, default value is 0.
@item cutoff
Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float
value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr
(which, with a sample-rate of 44100, preserves the entire audio band to 20kHz).
@item precision
For soxr only, the precision in bits to which the resampled signal will be
calculated. The default value of 20 (which, with suitable dithering, is
appropriate for a destination bit-depth of 16) gives SoX's 'High Quality'; a
value of 28 gives SoX's 'Very High Quality'.
@item cheby
For soxr only, selects passband rolloff none (Chebyshev) & higher-precision
approximation for 'irrational' ratios. Default value is 0.
@item async
For swr only, simple 1 parameter audio sync to timestamps using stretching,
squeezing, filling and trimming. Setting this to 1 will enable filling and
trimming, larger values represent the maximum amount in samples that the data
may be stretched or squeezed for each second.
Default value is 0, thus no compensation is applied to make the samples match
the audio timestamps.
@item min_comp
For swr only, set the minimum difference between timestamps and audio data (in
seconds) to trigger stretching/squeezing/filling or trimming of the
data to make it match the timestamps. The default is that
stretching/squeezing/filling and trimming is disabled
(@option{min_comp} = @code{FLT_MAX}).
@item min_hard_comp
For swr only, set the minimum difference between timestamps and audio data (in
seconds) to trigger adding/dropping samples to make it match the
timestamps. This option effectively is a threshold to select between
hard (trim/fill) and soft (squeeze/stretch) compensation. Note that
all compensation is by default disabled through @option{min_comp}.
The default is 0.1.
@item comp_duration
For swr only, set duration (in seconds) over which data is stretched/squeezed
to make it match the timestamps. Must be a non-negative double float value,
default value is 1.0.
@item max_soft_comp
For swr only, set maximum factor by which data is stretched/squeezed to make it
match the timestamps. Must be a non-negative double float value, default value
is 0.
@item matrix_encoding
Select matrixed stereo encoding.
It accepts the following values:
@table @samp
@item none
select none
@item dolby
select Dolby
@item dplii
select Dolby Pro Logic II
@end table
Default value is @code{none}.
@item filter_type
For swr only, select resampling filter type. This only affects resampling
operations.
It accepts the following values:
@table @samp
@item cubic
select cubic
@item blackman_nuttall
select Blackman Nuttall Windowed Sinc
@item kaiser
select Kaiser Windowed Sinc
@end table
@item kaiser_beta
For swr only, set Kaiser Window Beta value. Must be an integer included between
2 and 16, default value is 9.
@end table
@c man end RESAMPLER OPTIONS
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libswresample.html,libswresample}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libswresample(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-resampler
@settitle FFmpeg Resampler
@end ignore
@bye

141
doc/ffmpeg-scaler.texi Normal file
View File

@@ -0,0 +1,141 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Scaler Documentation
@titlepage
@center @titlefont{FFmpeg Scaler Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The FFmpeg rescaler provides an high-level interface to the libswscale
library image conversion utilities. In particular it allows to perform
image rescaling and pixel format conversion.
@c man end DESCRIPTION
@chapter Scaler Options
@c man begin SCALER OPTIONS
The video scaler supports the following named options.
Options may be set by specifying -@var{option} @var{value} in the
FFmpeg tools. For programmatic use, they can be set explicitly in the
@code{SwsContext} options or through the @file{libavutil/opt.h} API.
@table @option
@item sws_flags
Set the scaler flags. This is also used to set the scaling
algorithm. Only a single algorithm should be selected.
It accepts the following values:
@table @samp
@item fast_bilinear
Select fast bilinear scaling algorithm.
@item bilinear
Select bilinear scaling algorithm.
@item bicubic
Select bicubic scaling algorithm.
@item experimental
Select experimental scaling algorithm.
@item neighbor
Select nearest neighbor rescaling algorithm.
@item area
Select averaging area rescaling algorithm.
@item bicubiclin
Select bicubic scaling algorithm for the luma component, bilinear for
chroma components.
@item gauss
Select Gaussian rescaling algorithm.
@item sinc
Select sinc rescaling algorithm.
@item lanczos
Select lanczos rescaling algorithm.
@item spline
Select natural bicubic spline rescaling algorithm.
@item print_info
Enable printing/debug logging.
@item accurate_rnd
Enable accurate rounding.
@item full_chroma_int
Enable full chroma interpolation.
@item full_chroma_inp
Select full chroma input.
@item bitexact
Enable bitexact output.
@end table
@item srcw
Set source width.
@item srch
Set source height.
@item dstw
Set destination width.
@item dsth
Set destination height.
@item src_format
Set source pixel format (must be expressed as an integer).
@item dst_format
Set destination pixel format (must be expressed as an integer).
@item src_range
Select source range.
@item dst_range
Select destination range.
@item param0, param1
Set scaling algorithm parameters. The specified values are specific of
some scaling algorithms and ignored by others. The specified values
are floating point number values.
@end table
@c man end SCALER OPTIONS
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libswscale.html,libswscale}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libswscale(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-scaler
@settitle FFmpeg video scaling and pixel format converter
@end ignore
@bye

43
doc/ffmpeg-utils.texi Normal file
View File

@@ -0,0 +1,43 @@
\input texinfo @c -*- texinfo -*-
@settitle FFmpeg Utilities Documentation
@titlepage
@center @titlefont{FFmpeg Utilities Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
This document describes some generic features and utilities provided
by the libavutil library.
@c man end DESCRIPTION
@include syntax.texi
@include eval.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{libavutil.html,libavutil}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1), libavutil(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg-utils
@settitle FFmpeg utilities
@end ignore
@bye

View File

@@ -11,13 +11,7 @@
@chapter Synopsis
The generic syntax is:
@example
@c man begin SYNOPSIS
ffmpeg [global options] [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{outfile}@}...
@c man end
@end example
ffmpeg [@var{global_options}] @{[@var{input_file_options}] -i @file{input_file}@} ... @{[@var{output_file_options}] @file{output_file}@} ...
@chapter Description
@c man begin DESCRIPTION
@@ -58,7 +52,7 @@ options apply ONLY to the next input or output file and are reset between files.
@item
To set the video bitrate of the output file to 64kbit/s:
@example
ffmpeg -i input.avi -b:v 64k output.avi
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
@end example
@item
@@ -426,8 +420,7 @@ 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).
frame rate @var{fps}.
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
Set frame size.
@@ -470,11 +463,6 @@ Disable video recording.
@item -vcodec @var{codec} (@emph{output})
Set the video codec. This is an alias for @code{-codec:v}.
@item -same_quant
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{stream_specifier}] @var{n} (@emph{output,per-stream})
Select the pass number (1 or 2). It is used to do two-pass
@@ -801,39 +789,7 @@ Copy chapters from input file with index @var{input_file_index} to the next
output file. If no chapter mapping is specified, then chapters are copied from
the first input file with at least one chapter. Use a negative file index to
disable any chapter copying.
@item -debug @var{category}
Print specific debug info.
@var{category} is a number or a string containing one of the following values:
@table @samp
@item bitstream
@item buffers
picture buffer allocations
@item bugs
@item dct_coeff
@item er
error recognition
@item mb_type
macroblock (MB) type
@item mmco
memory management control operations (H.264)
@item mv
motion vector
@item pict
picture info
@item pts
@item qp
per-block quantization parameter (QP)
@item rc
rate control
@item skip
@item startcode
@item thread_ops
threading operations
@item vis_mb_type
visualize block types
@item vis_qp
visualize quantization parameter (QP), lower QP are tinted greener
@end table
@item -benchmark (@emph{global})
Show benchmarking information at the end of an encode.
Shows CPU time used and maximum memory consumption.
@@ -896,9 +852,17 @@ Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps
the parameter is the maximum samples per second by which the audio is changed.
-async 1 is a special case where only the start of the audio stream is corrected
without any later correction.
This option has been deprecated. Use the @code{asyncts} audio filter instead.
This option has been deprecated. Use the @code{aresample} audio filter instead.
@item -copyts
Copy timestamps from input to output.
Do not process input timestamps, but keep their values without trying
to sanitize them. In particular, do not remove the initial start time
offset value.
Note that, depending on the @option{vsync} option or on specific muxer
processing, the output timestamps may mismatch with the input
timestamps even when this option is selected.
@item -copytb @var{mode}
Specify how to set the encoder timebase when stream copying. @var{mode} is an
integer numeric value, and can assume one of the following values:
@@ -944,7 +908,7 @@ ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
@end example
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
Set bitstream filters for matching streams. @var{bistream_filters} is
Set bitstream filters for matching streams. @var{bitstream_filters} is
a comma-separated list of bitstream filters. Use the @code{-bsfs} option
to get the list of bitstream filters.
@example
@@ -968,7 +932,8 @@ ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
Define a complex filter graph, i.e. one with arbitrary number of inputs and/or
outputs. For simple graphs -- those with one input and one output of the same
type -- see the @option{-filter} options. @var{filtergraph} is a description of
the filter graph, as described in @ref{Filtergraph syntax}.
the filter graph, as described in the ``Filtergraph syntax'' section of the
ffmpeg-filters manual.
Input link labels must refer to input streams using the
@code{[file_index:stream_specifier]} syntax (i.e. the same as @option{-map}
@@ -1289,7 +1254,7 @@ ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi
You can put many streams of the same type in the output:
@example
ffmpeg -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut
ffmpeg -i test1.avi -i test2.avi -map 0:3 -map 0:2 -map 0:1 -map 0:0 -c copy test12.nut
@end example
The resulting output file @file{test12.avi} will contain first four streams from
@@ -1311,32 +1276,35 @@ ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
@end itemize
@c man end EXAMPLES
@include syntax.texi
@include eval.texi
@include decoders.texi
@include encoders.texi
@include demuxers.texi
@include muxers.texi
@include indevs.texi
@include outdevs.texi
@include protocols.texi
@include bitstream_filters.texi
@include filters.texi
@include metadata.texi
@chapter See Also
@ifhtml
@url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-utils.html,ffmpeg-utils},
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},
@url{ffmpeg-filters.html,ffmpeg-filters}
@end ifhtml
@ifnothtml
ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffmpeg
@settitle ffmpeg video converter
@c man begin SEEALSO
ffplay(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
See git history
@c man end
@end ignore
@bye

View File

@@ -11,11 +11,7 @@
@chapter Synopsis
@example
@c man begin SYNOPSIS
ffplay [options] [@file{input_file}]
@c man end
@end example
ffplay [@var{options}] [@file{input_file}]
@chapter Description
@c man begin DESCRIPTION
@@ -134,8 +130,20 @@ Exit when video is done playing.
Exit if any key is pressed.
@item -exitonmousedown
Exit if any mouse button is pressed.
@item -codec:@var{stream_type}
Force a specific decoder implementation
@item -codec:@var{media_specifier} @var{codec_name}
Force a specific decoder implementation for the stream identified by
@var{media_specifier}, which can assume the values @code{a} (audio),
@code{v} (video), and @code{s} subtitle.
@item -acodec @var{codec_name}
Force a specific audio decoder.
@item -vcodec @var{codec_name}
Force a specific video decoder.
@item -scodec @var{codec_name}
Force a specific subtitle decoder.
@end table
@section While playing
@@ -178,29 +186,35 @@ Seek to percentage in file corresponding to fraction of width.
@c man end
@include syntax.texi
@include eval.texi
@include decoders.texi
@include demuxers.texi
@include muxers.texi
@include indevs.texi
@include outdevs.texi
@include protocols.texi
@include filters.texi
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-utils.html,ffmpeg-utils},
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},
@url{ffmpeg-filters.html,ffmpeg-filters}
@end ifhtml
@ifnothtml
ffmpeg(1), ffprobe(1), ffserver(1),
ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffplay
@settitle FFplay media player
@c man begin SEEALSO
ffmpeg(1), ffprobe(1), ffserver(1) and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
The FFmpeg developers
@c man end
@end ignore
@bye

View File

@@ -11,13 +11,7 @@
@chapter Synopsis
The generic syntax is:
@example
@c man begin SYNOPSIS
ffprobe [options] [@file{input_file}]
@c man end
@end example
ffprobe [@var{options}] [@file{input_file}]
@chapter Description
@c man begin DESCRIPTION
@@ -45,6 +39,10 @@ ffprobe output is designed to be easily parsable by a textual filter,
and consists of one or more sections of a form defined by the selected
writer, which is specified by the @option{print_format} option.
Sections may contain other nested sections, and are identified by a
name (which may be shared by other sections), and an unique
name. See the output of @option{sections}.
Metadata tags stored in the container or in the streams are recognized
and printed in the corresponding "FORMAT" or "STREAM" section.
@@ -94,6 +92,25 @@ 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 -sections
Print sections structure and section information, and exit. The output
is not meant to be parsed by a machine.
@item -select_streams @var{stream_specifier}
Select only the streams specified by @var{stream_specifier}. This
option affects only the options related to streams
(e.g. @code{show_streams}, @code{show_packets}, etc.).
For example to show only audio streams, you can use the command:
@example
ffprobe -show_streams -select_streams a INPUT
@end example
To show only video packets belonging to the video stream with index 1:
@example
ffprobe -show_packets -select_streams v:1 INPUT
@end example
@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
@@ -118,6 +135,59 @@ Like @option{-show_format}, but only prints the specified entry of the
container format information, rather than all. This option may be given more
than once, then all specified entries will be shown.
This option is deprecated, use @code{show_entries} instead.
@item -show_entries @var{section_entries}
Set list of entries to show.
Entries are specified according to the following
syntax. @var{section_entries} contains a list of section entries
separated by @code{:}. Each section entry is composed by a section
name (or unique name), optionally followed by a list of entries local
to that section, separated by @code{,}.
If section name is specified but is followed by no @code{=}, all
entries are printed to output, together with all the contained
sections. Otherwise only the entries specified in the local section
entries list are printed. In particular, if @code{=} is specified but
the list of local entries is empty, then no entries will be shown for
that section.
Note that the order of specification of the local section entries is
not honored in the output, and the usual display order will be
retained.
The formal syntax is given by:
@example
@var{LOCAL_SECTION_ENTRIES} ::= @var{SECTION_ENTRY_NAME}[,@var{LOCAL_SECTION_ENTRIES}]
@var{SECTION_ENTRY} ::= @var{SECTION_NAME}[=[@var{LOCAL_SECTION_ENTRIES}]]
@var{SECTION_ENTRIES} ::= @var{SECTION_ENTRY}[:@var{SECTION_ENTRIES}]
@end example
For example, to show only the index and type of each stream, and the PTS
time, duration time, and stream index of the packets, you can specify
the argument:
@example
packet=pts_time,duration_time,stream_index : stream=index,codec_type
@end example
To show all the entries in the section "format", but only the codec
type in the section "stream", specify the argument:
@example
format : stream=codec_type
@end example
To show all the tags in the stream and format sections:
@example
format_tags : format_tags
@end example
To show only the @code{title} tag (if available) in the stream
sections:
@example
stream_tags=title
@end example
@item -show_packets
Show information about each packet contained in the input multimedia
stream.
@@ -186,8 +256,9 @@ Read @var{input_file}.
A writer defines the output format adopted by @command{ffprobe}, and will be
used for printing all the parts of the output.
A writer may accept one or more arguments, which specify the options to
adopt.
A writer may accept one or more arguments, which specify the options
to adopt. The options are specified as a list of @var{key}=@var{value}
pairs, separated by ":".
A description of the currently available writers follows.
@@ -206,9 +277,6 @@ keyN=valN
Metadata tags are printed as a line in the corresponding FORMAT or
STREAM section, and are prefixed by the string "TAG:".
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
A description of the accepted options follows.
@table @option
@@ -238,9 +306,6 @@ Metadata tags are printed in the corresponding "format" or "stream"
section. A metadata tag key, if printed, is prefixed by the string
"tag:".
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
The description of the accepted options follows.
@table @option
@@ -292,9 +357,6 @@ A free-form output where each line contains an explicit key=value, such as
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
@@ -357,9 +419,6 @@ JSON based format.
Each section is printed using JSON notation.
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
The description of the accepted options follows.
@table @option
@@ -386,9 +445,6 @@ Note that the output issued will be compliant to the
(@option{unit}, @option{prefix}, @option{byte_binary_prefix},
@option{sexagesimal} etc.) are specified.
This writer accepts options as a list of @var{key}=@var{value} pairs,
separated by ":".
The description of the accepted options follows.
@table @option
@@ -431,25 +487,35 @@ DV, GXF and AVI timecodes are available in format metadata
@end itemize
@c man end TIMECODE
@include syntax.texi
@include decoders.texi
@include demuxers.texi
@include protocols.texi
@include indevs.texi
@chapter See Also
@ifhtml
@url{ffplay.html,ffmpeg}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-utils.html,ffmpeg-utils},
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},
@url{ffmpeg-filters.html,ffmpeg-filters}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffserver(1),
ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffprobe
@settitle ffprobe media prober
@c man begin SEEALSO
ffmpeg(1), ffplay(1), ffserver(1) and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
The FFmpeg developers
@c man end
@end ignore
@bye

View File

@@ -59,6 +59,7 @@
<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" />
<xsd:attribute name="pkt_size" type="xsd:int" />
<!-- audio attributes -->
<xsd:attribute name="sample_fmt" type="xsd:string"/>
@@ -86,9 +87,24 @@
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="streamDispositionType">
<xsd:attribute name="default" type="xsd:int" use="required" />
<xsd:attribute name="dub" type="xsd:int" use="required" />
<xsd:attribute name="original" type="xsd:int" use="required" />
<xsd:attribute name="comment" type="xsd:int" use="required" />
<xsd:attribute name="lyrics" type="xsd:int" use="required" />
<xsd:attribute name="karaoke" type="xsd:int" use="required" />
<xsd:attribute name="forced" type="xsd:int" use="required" />
<xsd:attribute name="hearing_impaired" type="xsd:int" use="required" />
<xsd:attribute name="visual_impaired" type="xsd:int" use="required" />
<xsd:attribute name="clean_effects" type="xsd:int" use="required" />
<xsd:attribute name="attached_pic" type="xsd:int" use="required" />
</xsd:complexType>
<xsd:complexType name="streamType">
<xsd:sequence>
<xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="disposition" type="ffprobe:streamDispositionType" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="index" type="xsd:int" use="required"/>
@@ -100,8 +116,6 @@
<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" />
<xsd:attribute name="default" type="xsd:int" use="required"/>
<xsd:attribute name="forced" type="xsd:int" use="required"/>
<!-- video attributes -->
<xsd:attribute name="width" type="xsd:int"/>
@@ -112,7 +126,6 @@
<xsd:attribute name="pix_fmt" type="xsd:string"/>
<xsd:attribute name="level" type="xsd:int"/>
<xsd:attribute name="timecode" type="xsd:string"/>
<xsd:attribute name="attached_pic" type="xsd:int"/>
<!-- audio attributes -->
<xsd:attribute name="sample_fmt" type="xsd:string"/>
@@ -175,6 +188,7 @@
<xsd:attribute name="minor" type="xsd:int" use="required"/>
<xsd:attribute name="micro" type="xsd:int" use="required"/>
<xsd:attribute name="version" type="xsd:int" use="required"/>
<xsd:attribute name="ident" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="libraryVersionsType">

View File

@@ -25,10 +25,6 @@ MaxBandwidth 1000
# '-' is the standard output.
CustomLog -
# Suppress that if you want to launch ffserver as a daemon.
NoDaemon
##################################################################
# Definition of the live feeds. Each live feed contains one video
# and/or audio sequence coming from an ffmpeg encoder or another

View File

@@ -9,15 +9,9 @@
@contents
@chapter Synopsys
@chapter Synopsis
The generic syntax is:
@example
@c man begin SYNOPSIS
ffserver [options]
@c man end
@end example
ffserver [@var{options}]
@chapter Description
@c man begin DESCRIPTION
@@ -28,11 +22,6 @@ several live feeds, streaming from files and time shifting on live feeds
(you can seek to positions in the past on each live feed, provided you
specify a big enough feed storage in ffserver.conf).
ffserver runs in daemon mode by default; that is, it puts itself in
the background and detaches from its TTY, unless it is launched in
debug mode or a NoDaemon option is specified in the configuration
file.
This documentation covers only the streaming aspects of ffserver /
ffmpeg. All questions about parameters for ffmpeg, codec questions,
etc. are not covered here. Read @file{ffmpeg.html} for more
@@ -92,7 +81,7 @@ to make it work correctly.
@section What do I need?
I use Linux on a 900 MHz Duron with a cheapo Bt848 based TV capture card. I'm
I use Linux on a 900 MHz Duron with a cheap Bt848 based TV capture card. I'm
using stock Linux 2.4.17 with the stock drivers. [Actually that isn't true,
I needed some special drivers for my motherboard-based sound card.]
@@ -238,6 +227,19 @@ You use this by adding the ?date= to the end of the URL for the stream.
For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}.
@c man end
@section What is FFM, FFM2
FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
video and audio streams and encoding options, and can store a moving time segment
of an infinite movie or a whole movie.
FFM is version specific, and there is limited compatibility of FFM files
generated by one version of ffmpeg/ffserver and another version of
ffmpeg/ffserver. It may work but its not guaranteed to work.
FFM2 is extensible while maintaining compatibility and should work between
differing versions of tools. FFM2 is the default.
@chapter Options
@c man begin OPTIONS
@@ -254,26 +256,40 @@ within the various <Stream> sections. Since ffserver will not launch
any ffmpeg instances, you will have to launch them manually.
@item -d
Enable debug mode. This option increases log verbosity, directs log
messages to stdout and causes ffserver to run in the foreground
rather than as a daemon.
messages to stdout.
@end table
@c man end
@chapter See Also
@ifhtml
The @file{doc/ffserver.conf} example,
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe},
@url{ffmpeg-utils.html,ffmpeg-utils},
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{ffmpeg-codecs.html,ffmpeg-codecs},
@url{ffmpeg-bitstream-filters,ffmpeg-bitstream-filters},
@url{ffmpeg-formats.html,ffmpeg-formats},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{ffmpeg-protocols.html,ffmpeg-protocols},
@url{ffmpeg-filters.html,ffmpeg-filters}
@end ifhtml
@ifnothtml
The @file{doc/ffserver.conf} example, ffmpeg(1), ffplay(1), ffprobe(1),
ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1),
ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1),
ffmpeg-devices(1), ffmpeg-protocols(1), ffmpeg-filters(1)
@end ifnothtml
@include authors.texi
@ignore
@setfilename ffserver
@settitle ffserver video server
@c man begin SEEALSO
ffmpeg(1), ffplay(1), ffprobe(1), the @file{ffserver.conf}
example and the FFmpeg HTML documentation
@c man end
@c man begin AUTHORS
The FFmpeg developers
@c man end
@end ignore
@bye

View File

@@ -52,7 +52,7 @@ Buffer references ownership and permissions
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
filter_frame 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.
@@ -68,14 +68,14 @@ Buffer references ownership and permissions
Here are the (fairly obvious) rules for reference ownership:
* A reference received by the start_frame or filter_samples method
* A reference received by the start_frame or filter_frame 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
* A reference passed to ff_start_frame or ff_filter_frame is given
away and must no longer be used.
* A reference created with avfilter_ref_buffer belongs to the code that
@@ -93,16 +93,16 @@ Buffer references ownership and permissions
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
* cur_buf is set before the start_frame and filter_frame 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
end_frame or filter_frame, 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
If it is not NULL after end_frame or filter_frame, libavfilter will
automatically destroy the reference.
If a video input pad does not have a start_frame method, the default
@@ -179,7 +179,7 @@ Buffer references ownership and permissions
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
is finished (after end_frame or filter_frame returns) must have the
PRESERVE permission on it and remove the WRITE permission if they
create a new reference to give it away.
@@ -198,7 +198,7 @@ Frame scheduling
Simple filters that output one frame for each input frame should not have
to worry about it.
start_frame / filter_samples
start_frame / filter_frame
----------------------------
These methods are called when a frame is pushed to the filter's input.
@@ -233,7 +233,7 @@ Frame scheduling
This method is called when a frame is wanted on an output.
For an input, it should directly call start_frame or filter_samples on
For an input, it should directly call start_frame or filter_frame on
the corresponding output.
For a filter, if there are queued frames already ready, one of these
@@ -266,4 +266,4 @@ Frame scheduling
Note that, except for filters that can have queued frames, request_frame
does not push frames: it requests them to its input, and as a reaction,
the start_frame / filter_samples method will be called and do the work.
the start_frame / filter_frame method will be called and do the work.

File diff suppressed because it is too large Load Diff

View File

@@ -147,9 +147,15 @@ library:
@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 AFC @tab @tab X
@tab Audio format used on the Nintendo Gamecube.
@item ASF @tab X @tab X
@item AST @tab X @tab X
@tab Audio format used on the Nintendo Wii.
@item AVI @tab X @tab X
@item AVISynth @tab @tab X
@item AVR @tab @tab X
@tab Audio format used on Mac.
@item AVS @tab @tab X
@tab Multimedia format used by the Creature Shock game.
@item Beam Software SIFF @tab @tab X
@@ -163,6 +169,8 @@ library:
@tab Used in Z and Z95 games.
@item Brute Force & Ignorance @tab @tab X
@tab Used in the game Flash Traffic: City of Angels.
@item BRSTM @tab @tab X
@tab Audio format used on the Nintendo Wii.
@item BWF @tab X @tab X
@item CRI ADX @tab X @tab X
@tab Audio-only format used in console video games.
@@ -193,6 +201,7 @@ library:
@item Electronic Arts cdata @tab @tab X
@item Electronic Arts Multimedia @tab @tab X
@tab Used in various EA games; files have extensions like WVE and UV2.
@item Ensoniq Paris Audio File @tab @tab X
@item FFM (FFserver live feed) @tab X @tab X
@item Flash (SWF) @tab X @tab X
@item Flash 9 (AVM2) @tab X @tab X
@@ -207,7 +216,7 @@ library:
@item G.723.1 @tab X @tab X
@item G.729 BIT @tab X @tab X
@item G.729 raw @tab @tab X
@item GIF Animation @tab X @tab
@item GIF Animation @tab X @tab X
@item GXF @tab X @tab X
@tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
playout servers.
@@ -227,11 +236,13 @@ library:
@tab A format generated by IndigoVision 8000 video server.
@item IVF (On2) @tab X @tab X
@tab A format used by libvpx
@item IRCAM @tab X @tab X
@item LATM @tab X @tab X
@item LMLM4 @tab @tab X
@tab Used by Linux Media Labs MPEG-4 PCI boards
@item LOAS @tab @tab X
@tab contains LATM multiplexed AAC audio
@item LVF @tab @tab X
@item LXF @tab @tab X
@tab VR native stream format, used by Leitch/Harris' video servers.
@item Matroska @tab X @tab X
@@ -242,6 +253,8 @@ library:
@tab Used in Sim City 3000; file extension .xa.
@item MD Studio @tab @tab X
@item Metal Gear Solid: The Twin Snakes @tab @tab X
@item Megalux Frame @tab @tab X
@tab Used by Megalux Ultimate Paint
@item Mobotix .mxg @tab @tab X
@item Monkey's Audio @tab @tab X
@item Motion Pixels MVI @tab @tab X
@@ -269,6 +282,7 @@ library:
@tab SMPTE 386M, D-10/IMX Mapping.
@item NC camera feed @tab @tab X
@tab NC (AVIP NC4600) camera streams
@item NIST SPeech HEader REsources @tab @tab X
@item NTT TwinVQ (VQF) @tab @tab X
@tab Nippon Telegraph and Telephone Corporation TwinVQ.
@item Nullsoft Streaming Video @tab @tab X
@@ -277,6 +291,7 @@ library:
@tab NUT Open Container Format
@item Ogg @tab X @tab X
@item Playstation Portable PMP @tab @tab X
@item Portable Voice Format @tab @tab X
@item TechnoTrend PVA @tab @tab X
@tab Used by TechnoTrend DVB PCI boards.
@item QCP @tab @tab X
@@ -287,6 +302,7 @@ library:
@item raw Dirac @tab X @tab X
@item raw DNxHD @tab X @tab X
@item raw DTS @tab X @tab X
@item raw DTS-HD @tab @tab X
@item raw E-AC-3 @tab X @tab X
@item raw FLAC @tab X @tab X
@item raw GSM @tab @tab X
@@ -304,6 +320,7 @@ library:
@item raw video @tab X @tab X
@item raw id RoQ @tab X @tab
@item raw Shorten @tab @tab X
@item raw TAK @tab @tab X
@item raw TrueHD @tab X @tab X
@item raw VC-1 @tab @tab X
@item raw PCM A-law @tab X @tab X
@@ -345,6 +362,7 @@ library:
@item SDP @tab @tab X
@item Sega FILM/CPK @tab @tab X
@tab Used in many Sega Saturn console games.
@item Silicon Graphics Movie @tab @tab X
@item Sierra SOL @tab @tab X
@tab .sol files used in Sierra Online games.
@item Sierra VMD @tab @tab X
@@ -358,7 +376,7 @@ library:
@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
@item Sony Wave64 (W64) @tab @tab X
@item Sony Wave64 (W64) @tab X @tab X
@item SoX native format @tab X @tab X
@item SUN AU format @tab X @tab X
@item Text files @tab @tab X
@@ -368,6 +386,7 @@ library:
@tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
@item True Audio @tab @tab X
@item VC-1 test bitstream @tab X @tab X
@item Vivo @tab @tab X
@item WAV @tab X @tab X
@item WavPack @tab X @tab X
@item WebM @tab X @tab X
@@ -402,6 +421,8 @@ following image formats are supported:
@tab Only uncompressed GIFs are generated.
@item BMP @tab X @tab X
@tab Microsoft BMP image
@item PIX @tab @tab X
@tab PIX is an image format used in the Argonaut BRender engine.
@item DPX @tab X @tab X
@tab Digital Picture Exchange
@item EXR @tab @tab X
@@ -439,6 +460,8 @@ following image formats are supported:
@tab Targa (.TGA) image format
@item XBM @tab X @tab X
@tab X BitMap image format
@item XFace @tab X @tab X
@tab X-Face image format
@item XWD @tab X @tab X
@tab X Window Dump image format
@end multitable
@@ -454,8 +477,6 @@ following image formats are supported:
@item 4X Movie @tab @tab X
@tab Used in certain computer games.
@item 8088flex TMV @tab @tab X
@item 8SVX exponential @tab @tab X
@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
@@ -622,6 +643,8 @@ 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 Pinnacle TARGA CineWave YUV16 @tab @tab X
@tab fourcc: Y216
@item Prores @tab @tab X
@tab fourcc: apch,apcn,apcs,apco
@item Q-team QPEG @tab @tab X
@@ -645,8 +668,11 @@ following image formats are supported:
@tab Texture dictionaries used by the Renderware Engine.
@item RL2 video @tab @tab X
@tab used in some games by Entertainment Software Partners
@item SGI RLE 8-bit @tab @tab X
@item Sierra VMD video @tab @tab X
@tab Used in Sierra VMD files.
@item Silicon Graphics Motion Video Compressor 1 (MVC1) @tab @tab X
@item Silicon Graphics Motion Video Compressor 2 (MVC2) @tab @tab X
@item Smacker video @tab @tab X
@tab Video encoding used in Smacker.
@item SMPTE VC-1 @tab @tab X
@@ -706,7 +732,8 @@ following image formats are supported:
@multitable @columnfractions .4 .1 .1 .4
@item Name @tab Encoding @tab Decoding @tab Comments
@item 8SVX audio @tab @tab X
@item 8SVX exponential @tab @tab X
@item 8SVX fibonacci @tab @tab X
@item AAC+ @tab E @tab X
@tab encoding supported through external library libaacplus
@item AAC @tab E @tab X
@@ -737,19 +764,19 @@ following image formats are supported:
@item ADPCM IMA Westwood @tab @tab X
@item ADPCM ISS IMA @tab @tab X
@tab Used in FunCom games.
@item ADPCM IMA Dialogic @tab @tab X
@item ADPCM IMA Duck DK3 @tab @tab X
@tab Used in some Sega Saturn console games.
@item ADPCM IMA Duck DK4 @tab @tab X
@tab Used in some Sega Saturn console games.
@item ADPCM Microsoft @tab X @tab X
@item ADPCM MS IMA @tab X @tab X
@item ADPCM Nintendo Gamecube AFC @tab @tab X
@item ADPCM Nintendo Gamecube THP @tab @tab X
@item ADPCM QT IMA @tab X @tab X
@item ADPCM SEGA CRI ADX @tab X @tab X
@tab Used in Sega Dreamcast games.
@item ADPCM Shockwave Flash @tab X @tab X
@item ADPCM SMJPEG IMA @tab @tab X
@tab Used in certain Loki game ports.
@item ADPCM Sound Blaster Pro 2-bit @tab @tab X
@item ADPCM Sound Blaster Pro 2.6-bit @tab @tab X
@item ADPCM Sound Blaster Pro 4-bit @tab @tab X
@@ -813,9 +840,15 @@ following image formats are supported:
@item Musepack SV7 @tab @tab X
@item Musepack SV8 @tab @tab X
@item Nellymoser Asao @tab X @tab X
@item Opus @tab E @tab E
@tab supported through external library libopus
@item PCM A-law @tab X @tab X
@item PCM mu-law @tab X @tab X
@item PCM 16-bit little-endian planar @tab @tab X
@item PCM signed 8-bit planar @tab X @tab X
@item PCM signed 16-bit big-endian planar @tab X @tab X
@item PCM signed 16-bit little-endian planar @tab X @tab X
@item PCM signed 24-bit little-endian planar @tab X @tab X
@item PCM signed 32-bit little-endian planar @tab X @tab X
@item PCM 32-bit floating point big-endian @tab X @tab X
@item PCM 32-bit floating point little-endian @tab X @tab X
@item PCM 64-bit floating point big-endian @tab X @tab X
@@ -859,6 +892,7 @@ following image formats are supported:
@tab experimental codec
@item Speex @tab E @tab E
@tab supported through external library libspeex
@item TAK (Tom's lossless Audio Kompressor) @tab @tab X
@item True Audio (TTA) @tab @tab X
@item TrueHD @tab @tab X
@tab Used in HD-DVD and Blu-Ray discs.
@@ -887,17 +921,25 @@ 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 3GPP Timed Text @tab @tab @tab X @tab X
@item AQTitle @tab @tab X @tab @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 MPL2 @tab @tab X @tab @tab X
@item MPsub (MPlayer) @tab @tab X @tab @tab X
@item PGS @tab @tab @tab @tab X
@item PJS (Phoenix) @tab @tab X @tab @tab X
@item RealText @tab @tab X @tab @tab X
@item SAMI @tab @tab X @tab @tab X
@item SSA/ASS @tab X @tab X @tab X @tab X
@item SubRip (SRT) @tab X @tab X @tab X @tab X
@item SubViewer v1 @tab @tab X @tab @tab X
@item SubViewer @tab @tab X @tab @tab X
@item 3GPP Timed Text @tab @tab @tab X @tab X
@item TED Talks captions @tab @tab X @tab @tab X
@item VobSub (IDX+SUB) @tab @tab X @tab @tab X
@item VPlayer @tab @tab X @tab @tab X
@item WebVTT @tab @tab X @tab @tab X
@item XSUB @tab @tab @tab X @tab X
@end multitable

View File

@@ -224,6 +224,13 @@ 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.
@item dvguid
Select the capture device by specifying it's GUID. Capturing will only
be performed from the specified device and fails if no device with the
given GUID is found. This is useful to select the input if multiple
devices are connected at the same time.
Look at /sys/bus/firewire/devices to find out the GUIDs.
@end table
@subsection Examples
@@ -320,6 +327,12 @@ label, but all the others need to be specified explicitly.
If not specified defaults to the filename specified for the input
device.
@item graph_file
Set the filename of the filtergraph to be read and sent to the other
filters. Syntax of the filtergraph is the same as the one specified by
the option @var{graph}.
@end table
@subsection Examples
@@ -328,14 +341,14 @@ device.
@item
Create a color video stream and play it back with @command{ffplay}:
@example
ffplay -f lavfi -graph "color=pink [out0]" dummy
ffplay -f lavfi -graph "color=c=pink [out0]" dummy
@end example
@item
As the previous example, but use filename for specifying the graph
description, and omit the "out0" label:
@example
ffplay -f lavfi color=pink
ffplay -f lavfi color=c=pink
@end example
@item

48
doc/libavcodec.texi Normal file
View File

@@ -0,0 +1,48 @@
\input texinfo @c -*- texinfo -*-
@settitle Libavcodec Documentation
@titlepage
@center @titlefont{Libavcodec Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libavcodec library provides a generic encoding/decoding framework
and contains multiple decoders and encoders for audio, video and
subtitle streams, and several bitstream filters.
The shared architecture provides various services ranging from bit
stream I/O to DSP optimizations, and makes it suitable for
implementing robust and fast codecs as well as for experimentation.
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-codecs.html,ffmpeg-codecs}, @url{ffmpeg-bitstream-filters.html,bitstream-filters},
@url{libavutil.html,libavutil}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
libavutil(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libavcodec
@settitle media streams decoding and encoding library
@end ignore
@bye

45
doc/libavdevice.texi Normal file
View File

@@ -0,0 +1,45 @@
\input texinfo @c -*- texinfo -*-
@settitle Libavdevice Documentation
@titlepage
@center @titlefont{Libavdevice Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libavdevice library provides a generic framework for grabbing from
and rendering to many common multimedia input/output devices, and
supports several input and output devices, including Video4Linux2,
VfW, DShow, and ALSA.
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-devices.html,ffmpeg-devices},
@url{libavutil.html,libavutil}, @url{libavcodec.html,libavcodec}, @url{libavformat.html,libavformat}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-devices(1),
libavutil(3), libavcodec(3), libavformat(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libavdevice
@settitle multimedia device handling library
@end ignore
@bye

44
doc/libavfilter.texi Normal file
View File

@@ -0,0 +1,44 @@
\input texinfo @c -*- texinfo -*-
@settitle Libavfilter Documentation
@titlepage
@center @titlefont{Libavfilter Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libavfilter library provides a generic audio/video filtering
framework containing several filters, sources and sinks.
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-filters.html,ffmpeg-filters},
@url{libavutil.html,libavutil}, @url{libswscale.html,libswscale}, @url{libswresample.html,libswresample},
@url{libavcodec.html,libavcodec}, @url{libavformat.html,libavformat}, @url{libavdevice.html,libavdevice}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-filters(1),
libavutil(3), libswscale(3), libswresample(3), libavcodec(3), libavformat(3), libavdevice(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libavfilter
@settitle multimedia filtering library
@end ignore
@bye

48
doc/libavformat.texi Normal file
View File

@@ -0,0 +1,48 @@
\input texinfo @c -*- texinfo -*-
@settitle Libavformat Documentation
@titlepage
@center @titlefont{Libavformat Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libavformat library provides a generic framework for multiplexing
and demultiplexing (muxing and demuxing) audio, video and subtitle
streams. It encompasses multiple muxers and demuxers for multimedia
container formats.
It also supports several input and output protocols to access a media
resource.
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-formats.html,ffmpeg-formats}, @url{ffmpeg-protocols.html,ffmpeg-protocols},
@url{libavutil.html,libavutil}, @url{libavcodec.html,libavcodec}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-formats(1), ffmpeg-protocols(1),
libavutil(3), libavcodec(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libavformat
@settitle multimedia muxing and demuxing library
@end ignore
@bye

44
doc/libavutil.texi Normal file
View File

@@ -0,0 +1,44 @@
\input texinfo @c -*- texinfo -*-
@settitle Libavutil Documentation
@titlepage
@center @titlefont{Libavutil Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libavutil library is a utility library to aid portable
multimedia programming. It contains safe portable string functions,
random number generators, data structures, additional mathematics
functions, cryptography and multimedia related functionality (like
enumerations for pixel and sample formats).
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-utils.html,ffmpeg-utils}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-utils(1)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libavutil
@settitle multimedia-biased utility library
@end ignore
@bye

70
doc/libswresample.texi Normal file
View File

@@ -0,0 +1,70 @@
\input texinfo @c -*- texinfo -*-
@settitle Libswresample Documentation
@titlepage
@center @titlefont{Libswresample Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libswresample library performs highly optimized audio resampling,
rematrixing and sample format conversion operations.
Specifically, this library performs the following conversions:
@itemize
@item
@emph{Resampling}: is the process of changing the audio rate, for
example from an high sample rate of 44100Hz to 8000Hz. Audio
conversion from high to low sample rate is a lossy process. Several
resampling options and algorithms are available.
@item
@emph{Format conversion}: is the process of converting the type of
samples, for example from 16-bit signed samples to unsigned 8-bit or
float samples. It also handles packing conversion, when passing from
packed layout (all samples belonging to distinct channels interleaved
in the same buffer), to planar layout (all samples belonging to the
same channel stored in a dedicated buffer or "plane").
@item
@emph{Rematrixing}: is the process of changing the channel layout, for
example from stereo to mono. When the input channels cannot be mapped
to the output streams, the process is lossy, since it involves
different gain factors and mixing.
@end itemize
Various other audio conversions (e.g. stretching and padding) are
enabled through dedicated options.
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-resampler.html,ffmpeg-resampler},
@url{libavutil.html,libavutil}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-resampler(1),
libavutil(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libswresample
@settitle audio resampling library
@end ignore
@bye

63
doc/libswscale.texi Normal file
View File

@@ -0,0 +1,63 @@
\input texinfo @c -*- texinfo -*-
@settitle Libswscale Documentation
@titlepage
@center @titlefont{Libswscale Documentation}
@end titlepage
@top
@contents
@chapter Description
@c man begin DESCRIPTION
The libswscale library performs highly optimized image scaling and
colorspace and pixel format conversion operations.
Specifically, this library performs the following conversions:
@itemize
@item
@emph{Rescaling}: is the process of changing the video size. Several
rescaling options and algorithms are available. This is usually a
lossy process.
@item
@emph{Pixel format conversion}: is the process of converting the image
format and colorspace of the image, for example from planar YUV420P to
RGB24 packed. It also handles packing conversion, that is converts
from packed layout (all pixels belonging to distinct planes
interleaved in the same buffer), to planar layout (all samples
belonging to the same plane stored in a dedicated buffer or "plane").
This is usually a lossy process in case the source and destination
colorspaces differ.
@end itemize
@c man end DESCRIPTION
@chapter See Also
@ifhtml
@url{ffmpeg.html,ffmpeg}, @url{ffplay.html,ffplay}, @url{ffprobe.html,ffprobe}, @url{ffserver.html,ffserver},
@url{ffmpeg-scaler.html,ffmpeg-scaler},
@url{libavutil.html,libavutil}
@end ifhtml
@ifnothtml
ffmpeg(1), ffplay(1), ffprobe(1), ffserver(1),
ffmpeg-scaler(1),
libavutil(3)
@end ifnothtml
@include authors.texi
@ignore
@setfilename libswscale
@settitle video scaling and pixel format conversion library
@end ignore
@bye

View File

@@ -45,8 +45,10 @@ Example of copyright notice:
Files that have MIPS copyright notice in them:
===============================================
* libavutil/mips/
float_dsp_mips.c
libm_mips.h
* libavcodec/mips/
ac3dsp_mips.c
acelp_filters_mips.c
acelp_vectors_mips.c
amrwbdec_mips.c

View File

@@ -129,6 +129,32 @@ ffmpeg -i INPUT -f framemd5 -
See also the @ref{md5} muxer.
@anchor{hls}
@section hls
Apple HTTP Live Streaming muxer that segments MPEG-TS according to
the HTTP Live Streaming specification.
It creates a playlist file and numbered segment files. The output
filename specifies the playlist filename; the segment filenames
receive the same basename as the playlist, a sequential number and
a .ts extension.
@example
ffmpeg -i in.nut out.m3u8
@end example
@table @option
@item -hls_time @var{seconds}
Set the segment length in seconds.
@item -hls_list_size @var{size}
Set the maximum number of playlist entries.
@item -hls_wrap @var{wrap}
Set the number after which index wraps.
@item -start_number @var{number}
Start the sequence from @var{number}.
@end table
@anchor{ico}
@section ico
@@ -214,6 +240,11 @@ Note also that the pattern must not necessarily contain "%d" or
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
@end example
@table @option
@item -start_number @var{number}
Start the sequence from @var{number}.
@end table
The image muxer supports the .Y.U.V image file format. This format is
special in that that each image frame consists of three files, for
each of the YUV420P components. To read or write this image file format,
@@ -252,7 +283,8 @@ See also the @ref{framemd5} muxer.
The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4
file has all the metadata about all packets stored in one location
(written at the end of the file, it can be moved to the start for
better playback using the @command{qt-faststart} tool). A fragmented
better playback by adding @var{faststart} to the @var{movflags}, or
using the @command{qt-faststart} tool). A fragmented
file consists of a number of fragments, where packets and metadata
about these packets are stored together. Writing a fragmented
file has the advantage that the file is decodable even if the
@@ -310,6 +342,10 @@ more efficient), but with this option set, the muxer writes one moof/mdat
pair for each track, making it easier to separate tracks.
This option is implicitly set when writing ismv (Smooth Streaming) files.
@item -movflags faststart
Run a second pass moving the moov atom on top of the file. This
operation can take a while, and will not work in various situations such
as fragmented output, thus it is not enabled by default.
@end table
Smooth Streaming content can be pushed in real time to a publishing
@@ -457,7 +493,9 @@ 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.
Every segment starts with a keyframe of the selected reference stream,
which is set through the @option{reference_stream} option.
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
@@ -473,6 +511,13 @@ the option @var{segment_list}. The list type is specified by the
The segment muxer supports the following options:
@table @option
@item reference_stream @var{specifier}
Set the reference stream, as specified by the string @var{specifier}.
If @var{specifier} is set to @code{auto}, the reference is choosen
automatically. Otherwise it must be a stream specifier (see the ``Stream
specifiers'' chapter in the ffmpeg manual) which specifies the
reference stream. The default value is ``auto''.
@item segment_format @var{format}
Override the inner container format, by default it is guessed by the filename
extension.
@@ -562,11 +607,29 @@ 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_frames @var{frames}
Specify a list of split video frame numbers. @var{frames} contains a
list of comma separated integer numbers, in increasing order.
This option specifies to start a new segment whenever a reference
stream key frame is found and the sequential number (starting from 0)
of the frame is greater or equal to the next value in the list.
@item segment_wrap @var{limit}
Wrap around segment index once it reaches @var{limit}.
@item segment_start_number @var{number}
Set the sequence number of the first segment. Defaults to @code{0}.
@item reset_timestamps @var{1|0}
Reset timestamps at the begin of each segment, so that each segment
will start with near-zero timestamps. It is meant to ease the playback
of the generated segments. May not work with some combinations of
muxers/codecs. It is set to @code{0} by default.
@end table
Some examples follow.
@section Examples
@itemize
@item
@@ -590,12 +653,19 @@ 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 \
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a 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
Segment the input file by splitting the input file according to the
frame numbers sequence specified with the @var{segment_frames} option:
@example
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
@end example
@item
To convert the @file{in.mkv} to TS segments using the @code{libx264}
and @code{libfaac} encoders:

138
doc/nut.texi Normal file
View File

@@ -0,0 +1,138 @@
\input texinfo @c -*- texinfo -*-
@settitle NUT
@titlepage
@center @titlefont{NUT}
@end titlepage
@top
@contents
@chapter Description
NUT is a low overhead generic container format. It stores audio, video,
subtitle and user-defined streams in a simple, yet efficient, way.
It was created by a group of FFmpeg and MPlayer developers in 2003
and was finalized in 2008.
The official nut specification is at svn://svn.mplayerhq.hu/nut
In case of any differences between this text and the official specification,
the official specification shall prevail.
@chapter Container-specific codec tags
@section Generic raw YUVA formats
Since many exotic planar YUVA pixel formats are not considered by
the AVI/QuickTime FourCC lists, the following scheme is adopted for
representing them.
The first two bytes can contain the values:
Y1 = only Y
Y2 = Y+A
Y3 = YUV
Y4 = YUVA
The third byte represents the width and height chroma subsampling
values for the UV planes, that is the amount to shift the luma
width/height right to find the chroma width/height.
The fourth byte is the number of bits used (8, 16, ...).
If the order of bytes is inverted, that means that each component has
to be read big-endian.
@section Raw Audio
@multitable @columnfractions .4 .4
@item ALAW @tab A-LAW
@item ULAW @tab MU-LAW
@item P<type><interleaving><bits> @tab little-endian PCM
@item <bits><interleaving><type>P @tab big-endian PCM
@end multitable
<type> is S for signed integer, U for unsigned integer, F for IEEE float
<interleaving> is D for default, P is for planar.
<bits> is 8/16/24/32
@example
PFD[32] would for example be signed 32 bit little-endian IEEE float
@end example
@section Subtitles
@multitable @columnfractions .4 .4
@item UTF8 @tab Raw UTF-8
@item SSA[0] @tab SubStation Alpha
@item DVDS @tab DVD subtitles
@item DVBS @tab DVB subtitles
@end multitable
@section Raw Data
@multitable @columnfractions .4 .4
@item UTF8 @tab Raw UTF-8
@end multitable
@section Codecs
@multitable @columnfractions .4 .4
@item 3IV1 @tab non-compliant MPEG-4 generated by old 3ivx
@item ASV1 @tab Asus Video
@item ASV2 @tab Asus Video 2
@item CVID @tab Cinepak
@item CYUV @tab Creative YUV
@item DIVX @tab non-compliant MPEG-4 generated by old DivX
@item DUCK @tab Truemotion 1
@item FFV1 @tab FFmpeg video 1
@item FFVH @tab FFmpeg Huffyuv
@item H261 @tab ITU H.261
@item H262 @tab ITU H.262
@item H263 @tab ITU H.263
@item H264 @tab ITU H.264
@item HFYU @tab Huffyuv
@item I263 @tab Intel H.263
@item IV31 @tab Indeo 3.1
@item IV32 @tab Indeo 3.2
@item IV50 @tab Indeo 5.0
@item LJPG @tab ITU JPEG (lossless)
@item MJLS @tab ITU JPEG-LS
@item MJPG @tab ITU JPEG
@item MPG4 @tab MS MPEG-4v1 (not ISO MPEG-4)
@item MP42 @tab MS MPEG-4v2
@item MP43 @tab MS MPEG-4v3
@item MP4V @tab ISO MPEG-4 Part 2 Video (from old encoders)
@item mpg1 @tab ISO MPEG-1 Video
@item mpg2 @tab ISO MPEG-2 Video
@item MRLE @tab MS RLE
@item MSVC @tab MS Video 1
@item RT21 @tab Indeo 2.1
@item RV10 @tab RealVideo 1.0
@item RV20 @tab RealVideo 2.0
@item RV30 @tab RealVideo 3.0
@item RV40 @tab RealVideo 4.0
@item SNOW @tab FFmpeg Snow
@item SVQ1 @tab Sorenson Video 1
@item SVQ3 @tab Sorenson Video 3
@item theo @tab Xiph Theora
@item TM20 @tab Truemotion 2.0
@item UMP4 @tab non-compliant MPEG-4 generated by UB Video MPEG-4
@item VCR1 @tab ATI VCR1
@item VP30 @tab VP 3.0
@item VP31 @tab VP 3.1
@item VP50 @tab VP 5.0
@item VP60 @tab VP 6.0
@item VP61 @tab VP 6.1
@item VP62 @tab VP 6.2
@item VP70 @tab VP 7.0
@item WMV1 @tab MS WMV7
@item WMV2 @tab MS WMV8
@item WMV3 @tab MS WMV9
@item WV1F @tab non-compliant MPEG-4 generated by ?
@item WVC1 @tab VC-1
@item XVID @tab non-compliant MPEG-4 generated by old Xvid
@item XVIX @tab non-compliant MPEG-4 generated by old Xvid with interlacing bug
@end multitable

View File

@@ -253,7 +253,7 @@ Optimization guide for ARM11 (used in Nokia N800 Internet Tablet):
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0211j/DDI0211J_arm1136_r1p5_trm.pdf
Optimization guide for Intel XScale (used in Sharp Zaurus PDA):
http://download.intel.com/design/intelxscale/27347302.pdf
Intel Wireless MMX2 Coprocessor: Programmers Reference Manual
Intel Wireless MMX 2 Coprocessor: Programmers Reference Manual
http://download.intel.com/design/intelxscale/31451001.pdf
PowerPC-specific:

View File

@@ -1,8 +1,8 @@
\input texinfo @c -*- texinfo -*-
@settitle Platform Specific information
@settitle Platform Specific Information
@titlepage
@center @titlefont{Platform Specific information}
@center @titlefont{Platform Specific Information}
@end titlepage
@top
@@ -77,30 +77,15 @@ For information about compiling FFmpeg on OS/2 see
@chapter Windows
To get help and instructions for building FFmpeg under Windows, check out
the FFmpeg Windows Help Forum at
@url{http://ffmpeg.arrozcru.org/}.
the FFmpeg Windows Help Forum at @url{http://ffmpeg.zeranoe.com/forum/}.
@section Native Windows compilation
@section Native Windows compilation using MinGW or MinGW-w64
FFmpeg can be built to run natively on Windows using the MinGW tools. Install
the latest versions of MSYS and MinGW from @url{http://www.mingw.org/}.
You can find detailed installation instructions in the download
section and the FAQ.
FFmpeg does not build out-of-the-box with the packages the automated MinGW
installer provides. It also requires coreutils to be installed and many other
packages updated to the latest version. The minimum versions for some packages
are listed below:
@itemize
@item bash 3.1
@item msys-make 3.81-2 (note: not mingw32-make)
@item w32api 3.13
@item mingw-runtime 3.15
@end itemize
FFmpeg automatically passes @code{-fno-common} to the compiler to work around
a GCC bug (see @url{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216}).
FFmpeg can be built to run natively on Windows using the MinGW or MinGW-w64
toolchains. Install the latest versions of MSYS and MinGW or MinGW-w64 from
@url{http://www.mingw.org/} or @url{http://mingw-w64.sourceforge.net/}.
You can find detailed installation instructions in the download section and
the FAQ.
Notes:
@@ -121,149 +106,105 @@ libavformat) as DLLs.
@end itemize
@section Microsoft Visual C++ compatibility
@section Microsoft Visual C++
As stated in the FAQ, FFmpeg will not compile under MSVC++. However, if you
want to use the libav* libraries in your own applications, you can still
compile those applications using MSVC++. But the libav* libraries you link
to @emph{must} be built with MinGW. However, you will not be able to debug
inside the libav* libraries, since MSVC++ does not recognize the debug
symbols generated by GCC.
We strongly recommend you to move over from MSVC++ to MinGW tools.
FFmpeg can be built with MSVC using a C99-to-C89 conversion utility and
wrapper.
This description of how to use the FFmpeg libraries with MSVC++ is based on
Microsoft Visual C++ 2005 Express Edition. If you have a different version,
you might have to modify the procedures slightly.
You will need the following prerequisites:
@subsection Using static libraries
@itemize
@item @uref{http://download.videolan.org/pub/contrib/c99-to-c89/, C99-to-C89 Converter & Wrapper}
@item @uref{http://code.google.com/p/msinttypes/, msinttypes}
@item @uref{http://www.mingw.org/, MSYS}
@item @uref{http://yasm.tortall.net/, YASM}
@item @uref{http://gnuwin32.sourceforge.net/packages/bc.htm, bc for Windows} if
you want to run @uref{fate.html, FATE}.
@end itemize
Assuming you have just built and installed FFmpeg in @file{/usr/local}:
To set up a proper MSVC environment in MSYS, you simply need to run
@code{msys.bat} from the Visual Studio command prompt.
@enumerate
Place @code{makedef}, @code{c99wrap.exe}, @code{c99conv.exe}, and @code{yasm.exe}
somewhere in your @code{PATH}.
@item Create a new console application ("File / New / Project") and then
select "Win32 Console Application". On the appropriate page of the
Application Wizard, uncheck the "Precompiled headers" option.
Next, make sure @code{inttypes.h} and any other headers and libs you want to use
are located in a spot that MSVC can see. Do so by modifying the @code{LIB} and
@code{INCLUDE} environment variables to include the @strong{Windows} paths to
these directories. Alternatively, you can try and use the
@code{--extra-cflags}/@code{--extra-ldflags} configure options.
@item Write the source code for your application, or, for testing, just
copy the code from an existing sample application into the source file
that MSVC++ has already created for you. For example, you can copy
@file{libavformat/output-example.c} from the FFmpeg distribution.
@item Open the "Project / Properties" dialog box. In the "Configuration"
combo box, select "All Configurations" so that the changes you make will
affect both debug and release builds. In the tree view on the left hand
side, select "C/C++ / General", then edit the "Additional Include
Directories" setting to contain the path where the FFmpeg includes were
installed (i.e. @file{c:\msys\1.0\local\include}).
Do not add MinGW's include directory here, or the include files will
conflict with MSVC's.
@item Still in the "Project / Properties" dialog box, select
"Linker / General" from the tree view and edit the
"Additional Library Directories" setting to contain the @file{lib}
directory where FFmpeg was installed (i.e. @file{c:\msys\1.0\local\lib}),
the directory where MinGW libs are installed (i.e. @file{c:\mingw\lib}),
and the directory where MinGW's GCC libs are installed
(i.e. @file{C:\mingw\lib\gcc\mingw32\4.2.1-sjlj}). Then select
"Linker / Input" from the tree view, and add the files @file{libavformat.a},
@file{libavcodec.a}, @file{libavutil.a}, @file{libmingwex.a},
@file{libgcc.a}, and any other libraries you used (i.e. @file{libz.a})
to the end of "Additional Dependencies".
@item Now, select "C/C++ / Code Generation" from the tree view. Select
"Debug" in the "Configuration" combo box. Make sure that "Runtime
Library" is set to "Multi-threaded Debug DLL". Then, select "Release" in
the "Configuration" combo box and make sure that "Runtime Library" is
set to "Multi-threaded DLL".
@item Click "OK" to close the "Project / Properties" dialog box.
@item MSVC++ lacks some C99 header files that are fundamental for FFmpeg.
Get msinttypes from @url{http://code.google.com/p/msinttypes/downloads/list}
and install it in MSVC++'s include directory
(i.e. @file{C:\Program Files\Microsoft Visual Studio 8\VC\include}).
@item MSVC++ also does not understand the @code{inline} keyword used by
FFmpeg, so you must add this line before @code{#include}ing libav*:
@example
#define inline _inline
@end example
@item Build your application, everything should work.
@end enumerate
@subsection Using shared libraries
This is how to create DLL and LIB files that are compatible with MSVC++:
@enumerate
@item Add a call to @file{vcvars32.bat} (which sets up the environment
variables for the Visual C++ tools) as the first line of @file{msys.bat}.
The standard location for @file{vcvars32.bat} is
@file{C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat},
and the standard location for @file{msys.bat} is @file{C:\msys\1.0\msys.bat}.
If this corresponds to your setup, add the following line as the first line
of @file{msys.bat}:
Finally, run:
@example
call "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
@end example
Alternatively, you may start the @file{Visual Studio 2005 Command Prompt},
and run @file{c:\msys\1.0\msys.bat} from there.
@item Within the MSYS shell, run @code{lib.exe}. If you get a help message
from @file{Microsoft (R) Library Manager}, this means your environment
variables are set up correctly, the @file{Microsoft (R) Library Manager}
is on the path and will be used by FFmpeg to create
MSVC++-compatible import libraries.
@item Build FFmpeg with
@example
./configure --enable-shared
./configure --toolchain=msvc
make
make install
@end example
Your install path (@file{/usr/local/} by default) should now have the
necessary DLL and LIB files under the @file{bin} directory.
If you wish to compile shared libraries, add @code{--enable-shared} to your
configure options. Note that due to the way MSVC handles DLL imports and
exports, you cannot compile static and shared libraries at the same time, and
enabling shared libraries will automatically disable the static ones.
Notes:
@itemize
@item It is possible that coreutils' @code{link.exe} conflicts with MSVC's linker.
You can find out by running @code{which link} to see which @code{link.exe} you
are using. If it is located at @code{/bin/link.exe}, then you have the wrong one
in your @code{PATH}. Either move or remove that copy, or make sure MSVC's
@code{link.exe} takes precedence in your @code{PATH} over coreutils'.
@item If you wish to build with zlib support, you will have to grab a compatible
zlib binary from somewhere, with an MSVC import lib, or if you wish to link
statically, you can follow the instructions below to build a compatible
@code{zlib.lib} with MSVC. Regardless of which method you use, you must still
follow step 3, or compilation will fail.
@enumerate
@item Grab the @uref{http://zlib.net/, zlib sources}.
@item Edit @code{win32/Makefile.msc} so that it uses -MT instead of -MD, since
this is how FFmpeg is built as well.
@item Edit @code{zconf.h} and remove its inclusion of @code{unistd.h}. This gets
erroneously included when building FFmpeg.
@item Run @code{nmake -f win32/Makefile.msc}.
@item Move @code{zlib.lib}, @code{zconf.h}, and @code{zlib.h} to somewhere MSVC
can see.
@end enumerate
Alternatively, build the libraries with a cross compiler, according to
the instructions below in @ref{Cross compilation for Windows with Linux}.
@item FFmpeg has been tested with Visual Studio 2010 and 2012, Pro and Express.
Anything else is not officially supported.
To use those files with MSVC++, do the same as you would do with
the static libraries, as described above. But in Step 4,
you should only need to add the directory where the LIB files are installed
(i.e. @file{c:\msys\usr\local\bin}). This is not a typo, the LIB files are
installed in the @file{bin} directory. And instead of adding the static
libraries (@file{libxxx.a} files) you should add the MSVC import libraries
(@file{avcodec.lib}, @file{avformat.lib}, and
@file{avutil.lib}). Note that you should not use the GCC import
libraries (@file{libxxx.dll.a} files), as these will give you undefined
reference errors. There should be no need for @file{libmingwex.a},
@file{libgcc.a}, and @file{wsock32.lib}, nor any other external library
statically linked into the DLLs.
@end itemize
@subsection Linking to FFmpeg with Microsoft Visual C++
If you plan to link with MSVC-built static libraries, you will need
to make sure you have @code{Runtime Library} set to
@code{Multi-threaded (/MT)} in your project's settings.
FFmpeg headers do not declare global data for Windows DLLs through the usual
dllexport/dllimport interface. Such data will be exported properly while
building, but to use them in your MSVC++ code you will have to edit the
building, but to use them in your MSVC code you will have to edit the
appropriate headers and mark the data as dllimport. For example, in
libavutil/pixdesc.h you should have:
@example
extern __declspec(dllimport) const AVPixFmtDescriptor av_pix_fmt_descriptors[];
@end example
Note that using import libraries created by dlltool requires
the linker optimization option to be set to
"References: Keep Unreferenced Data (@code{/OPT:NOREF})", otherwise
the resulting binaries will fail during runtime. This isn't
required when using import libraries generated by lib.exe.
You will also need to define @code{inline} to something MSVC understands:
@example
#define inline __inline
@end example
Also note, that as stated in @strong{Microsoft Visual C++}, you will need
an MSVC-compatible @uref{http://code.google.com/p/msinttypes/, inttypes.h}.
If you plan on using import libraries created by dlltool, you must
set @code{References} to @code{No (/OPT:NOREF)} under the linker optimization
settings, otherwise the resulting binaries will fail during runtime.
This is not required when using import libraries generated by @code{lib.exe}.
This issue is reported upstream at
@url{http://sourceware.org/bugzilla/show_bug.cgi?id=12633}.
@@ -272,12 +213,12 @@ To create import libraries that work with the @code{/OPT:REF} option
@enumerate
@item Open @emph{Visual Studio 2005 Command Prompt}.
@item Open the @emph{Visual Studio Command Prompt}.
Alternatively, in a normal command line prompt, call @file{vcvars32.bat}
which sets up the environment variables for the Visual C++ tools
(the standard location for this file is
@file{C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat}).
(the standard location for this file is something like
@file{C:\Program Files (x86_\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat}).
@item Enter the @file{bin} directory where the created LIB and DLL files
are stored.
@@ -362,4 +303,67 @@ and for a build with shared libraries
./configure --target-os=mingw32 --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
@end example
@chapter Plan 9
The native @uref{http://plan9.bell-labs.com/plan9/, Plan 9} compiler
does not implement all the C99 features needed by FFmpeg so the gcc
port must be used. Furthermore, a few items missing from the C
library and shell environment need to be fixed.
@itemize
@item GNU awk, grep, make, and sed
Working packages of these tools can be found at
@uref{http://code.google.com/p/ports2plan9/downloads/list, ports2plan9}.
They can be installed with @uref{http://9front.org/, 9front's} @code{pkg}
utility by setting @code{pkgpath} to
@code{http://ports2plan9.googlecode.com/files/}.
@item Missing/broken @code{head} and @code{printf} commands
Replacements adequate for building FFmpeg can be found in the
@code{compat/plan9} directory. Place these somewhere they will be
found by the shell. These are not full implementations of the
commands and are @emph{not} suitable for general use.
@item Missing C99 @code{stdint.h} and @code{inttypes.h}
Replacement headers are available from
@url{http://code.google.com/p/plan9front/issues/detail?id=152}.
@item Missing or non-standard library functions
Some functions in the C library are missing or incomplete. The
@code{@uref{http://ports2plan9.googlecode.com/files/gcc-apelibs-1207.tbz,
gcc-apelibs-1207}} package from
@uref{http://code.google.com/p/ports2plan9/downloads/list, ports2plan9}
includes an updated C library, but installing the full package gives
unusable executables. Instead, keep the files from @code{gccbin.tgz}
under @code{/386/lib/gnu}. From the @code{libc.a} archive in the
@code{gcc-apelibs-1207} package, extract the following object files and
turn them into a library:
@itemize
@item @code{strerror.o}
@item @code{strtoll.o}
@item @code{snprintf.o}
@item @code{vsnprintf.o}
@item @code{vfprintf.o}
@item @code{_IO_getc.o}
@item @code{_IO_putc.o}
@end itemize
Use the @code{--extra-libs} option of @code{configure} to inform the
build system of this library.
@item FPU exceptions enabled by default
Unlike most other systems, Plan 9 enables FPU exceptions by default.
These must be disabled before calling any FFmpeg functions. While the
included tools will do this automatically, other users of the
libraries must do it themselves.
@end itemize
@bye

View File

@@ -75,6 +75,15 @@ ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
Note that you may need to escape the character "|" which is special for
many shells.
@section data
Data in-line in the URI. See @url{http://en.wikipedia.org/wiki/Data_URI_scheme}.
For example, to convert a GIF file given inline with @command{ffmpeg}:
@example
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
@end example
@section file
File access protocol.

View File

@@ -23,7 +23,7 @@ Let's consider the problem of minimizing:
rate is the filesize
distortion is the quality
lambda is a fixed value choosen as a tradeoff between quality and filesize
lambda is a fixed value chosen as a tradeoff between quality and filesize
Is this equivalent to finding the best quality for a given max
filesize? The answer is yes. For each filesize limit there is some lambda
factor for which minimizing above will get you the best quality (using your

View File

@@ -31,7 +31,7 @@ Special Converter v
v
Output
Planar/Packed convertion is done when needed during sample format convertion
Planar/Packed conversion is done when needed during sample format conversion.
Every step can be skipped without memcpy when its not needed.
Either Resampling and Rematrixing can be performed first depending on which
way its faster.
@@ -39,8 +39,8 @@ The Buffers are needed for resampling due to resamplng being a process that
requires future and past data, it thus also introduces inevitably a delay when
used.
Internally 32bit float and 16bit int is supported currently, other formats can
easily be added
easily be added.
Externally all sample formats in packed and planar configuration are supported
Its also trivial to add special converters for common cases
If only sample format and or packed/planar convertion is needed it
It's also trivial to add special converters for common cases.
If only sample format and/or packed/planar conversion is needed, it
is performed from input to output directly in a single pass with no intermediates.

View File

@@ -58,7 +58,7 @@ Input to YUV Converter
Horizontal scaler
There are several horizontal scalers. A special case worth mentioning is
the fast bilinear scaler that is made of runtime-generated MMX2 code
the fast bilinear scaler that is made of runtime-generated MMXEXT code
using specially tuned pshufw instructions.
The remaining scalers are specially-tuned for various filter lengths.
They scale 8-bit unsigned planar data to 16-bit signed planar data.

View File

@@ -1,9 +1,81 @@
@chapter Syntax
@c man begin SYNTAX
When evaluating specific formats, FFmpeg uses internal library parsing
functions, shared by the tools. This section documents the syntax of
some of these formats.
This section documents the syntax and formats employed by the FFmpeg
libraries and tools.
@anchor{quoting_and_escaping}
@section Quoting and escaping
FFmpeg adopts the following quoting and escaping mechanism, unless
explicitly specified. The following rules are applied:
@itemize
@item
@code{'} and @code{\} are special characters (respectively used for
quoting and escaping). In addition to them, there might be other
special characters depending on the specific syntax where the escaping
and quoting are employed.
@item
A special character is escaped by prefixing it with a '\'.
@item
All characters enclosed between '' are included literally in the
parsed string. The quote character @code{'} itself cannot be quoted,
so you may need to close the quote and escape it.
@item
Leading and trailing whitespaces, unless escaped or quoted, are
removed from the parsed string.
@end itemize
Note that you may need to add a second level of escaping when using
the command line or a script, which depends on the syntax of the
adopted shell language.
The function @code{av_get_token} defined in
@file{libavutil/avstring.h} can be used to parse a token quoted or
escaped according to the rules defined above.
The tool @file{tools/ffescape} in the FFmpeg source tree can be used
to automatically quote or escape a string in a script.
@subsection Examples
@itemize
@item
Escape the string @code{Crime d'Amour} containing the @code{'} special
character:
@example
Crime d\'Amour
@end example
@item
The string above contains a quote, so the @code{'} needs to be escaped
when quoting it:
@example
'Crime d'\''Amour'
@end example
@item
Include leading or trailing whitespaces using quoting:
@example
' this string starts and ends with whitespaces '
@end example
@item
Escaping and quoting can be mixed together:
@example
' The string '\'string\'' is a string '
@end example
@item
To include a literal @code{\} you can use either escaping or quoting:
@example
'c:\foo' can be written as c:\\foo
@end example
@end itemize
@anchor{date syntax}
@section Date

View File

@@ -6,73 +6,18 @@ sub FFmpeg_end_section($$)
$EXTRA_HEAD =
'<link rel="icon" href="favicon.png" type="image/png" />
<link rel="stylesheet" type="text/css" href="default.css" />
';
$CSS_LINES = <<EOT;
<style type="text/css">
<!--
a.summary-letter { text-decoration: none }
a { color: #2D6198; }
a:visited { color: #884488; }
h1 a, h2 a, h3 a { text-decoration: inherit; color: inherit; }
p { margin-left: 1em; margin-right: 1em; }
table { margin-left: 2em; }
pre { margin-left: 2em; }
#footer { text-align: center; }
#body { margin-left: 1em; margin-right: 1em; }
body { background-color: #313131; margin: 0; }
#container {
background-color: white;
color: #202020;
margin-left: 1em;
margin-right: 1em;
}
h1 {
background-color: #7BB37B;
border: 1px solid #6A996A;
color: #151515;
font-size: 1.2em;
padding-bottom: 0.2em;
padding-left: 0.4em;
padding-top: 0.2em;
}
h2 {
color: #313131;
font-size: 1.2em;
}
h3 {
color: #313131;
font-size: 0.8em;
margin-bottom: -8px;
}
.note {
margin: 1em;
border: 1px solid #bbc9d8;
background-color: #dde1e1;
}
.important {
margin: 1em;
border: 1px solid #d26767;
background-color: #f8e1e1;
}
-->
</style>
$CSS_LINES = $ENV{"FFMPEG_CSS"} || <<EOT;
<link rel="stylesheet" type="text/css" href="default.css" />
EOT
my $FFMPEG_NAVBAR = $ENV{"FFMPEG_NAVBAR"} || '';
$AFTER_BODY_OPEN =
'<div id="container">' .
"\n$FFMPEG_NAVBAR\n" .
'<div id="body">';
my $TEMPLATE_HEADER = $ENV{"FFMPEG_HEADER"} || <<EOT;
<link rel="icon" href="favicon.png" type="image/png" />
</head>
<body>
<div id="container">
EOT
$PRE_BODY_CLOSE = '</div></div>';
@@ -83,9 +28,11 @@ $print_page_foot = \&FFmpeg_print_page_foot;
sub FFmpeg_print_page_foot($$)
{
my $fh = shift;
print $fh '<div id="footer">' . "\n";
T2H_DEFAULT_print_page_foot($fh);
print $fh "</div>\n";
my $program_string = defined &T2H_DEFAULT_program_string ?
T2H_DEFAULT_program_string() : program_string();
print $fh '<footer class="footer pagination-right">' . "\n";
print $fh '<span class="label label-info">' . $program_string;
print $fh "</span></footer></div>\n";
}
$float = \&FFmpeg_float;
@@ -107,11 +54,11 @@ sub FFmpeg_float($$$$)
if ($caption =~ /NOTE/)
{
$class = "note";
$class = "alert alert-info";
}
elsif ($caption =~ /IMPORTANT/)
{
$class = "important";
$class = "alert alert-warning";
}
return '<div class="float ' . $class . '">' . "$label\n" . $text . '</div>';
@@ -134,7 +81,7 @@ sub FFmpeg_print_page_head($$)
$longtitle = "FFmpeg documentation : " . $longtitle;
print $fh <<EOT;
$DOCTYPE
<!DOCTYPE html>
<html>
$Texi2HTML::THISDOC{'copying'}<!-- Created on $Texi2HTML::THISDOC{today} by $Texi2HTML::THISDOC{program} -->
<!--
@@ -150,11 +97,7 @@ $description
<meta name="Generator" content="$Texi2HTML::THISDOC{program}">
$encoding
$CSS_LINES
$EXTRA_HEAD
</head>
<body $BODYTEXT>
$AFTER_BODY_OPEN
$TEMPLATE_HEADER
EOT
}

View File

@@ -27,9 +27,9 @@ use warnings;
$output = 0;
$skipping = 0;
%sects = ();
@sects_sequence = ();
$section = "";
%chapters = ();
@chapters_sequence = ();
$chapter = "";
@icstack = ();
@endwstack = ();
@skstack = ();
@@ -116,18 +116,24 @@ INF: while(<$inf>) {
die "cannot open $1: $!\n";
};
# Look for blocks surrounded by @c man begin SECTION ... @c man end.
# This really oughta be @ifman ... @end ifman and the like, but such
# would require rev'ing all other Texinfo translators.
/^\@c\s+man\s+begin\s+([A-Za-z ]+)/ and $sect = $1, push (@sects_sequence, $sect), $output = 1, next;
/^\@c\s+man\s+end/ and do {
$sects{$sect} = "" unless exists $sects{$sect};
$sects{$sect} .= postprocess($section);
$section = "";
$output = 0;
/^\@chapter\s+([A-Za-z ]+)/ and do {
# close old chapter
$chapters{$chapter_name} .= postprocess($chapter) if ($chapter_name);
# start new chapter
$chapter_name = $1, push (@chapters_sequence, $chapter_name);
$chapters{$chapter_name} = "" unless exists $chapters{$chapter_name};
$chapter = "";
$output = 1;
next;
};
/^\@bye/ and do {
# close old chapter
$chapters{$chapter_name} .= postprocess($chapter) if ($chapter_name);
last INF;
};
# handle variables
/^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do {
$defs{$1} = $2;
@@ -150,14 +156,14 @@ INF: while(<$inf>) {
# Ignore @end foo, where foo is not an operation which may
# cause us to skip, if we are presently skipping.
my $ended = $1;
next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex)$/;
next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex|ifhtml|ifnothtml)$/;
die "\@end $ended without \@$ended at line $.\n" unless defined $endw;
die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw;
$endw = pop @endwstack;
if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex)$/) {
if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex|ifhtml|ifnothtml)$/) {
$skipping = pop @skstack;
next;
} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
@@ -190,11 +196,11 @@ INF: while(<$inf>) {
next;
};
/^\@(ignore|menu|iftex)\b/ and do {
/^\@(ignore|menu|iftex|ifhtml|ifnothtml)\b/ and do {
push @endwstack, $endw;
push @skstack, $skipping;
$endw = $1;
$skipping = 1;
$skipping = $endw !~ /ifnothtml/;
next;
};
@@ -211,7 +217,6 @@ INF: while(<$inf>) {
s/\@TeX\{\}/TeX/g;
s/\@pounds\{\}/\#/g;
s/\@minus(?:\{\})?/-/g;
s/\\,/,/g;
# Now the ones that have to be replaced by special escapes
# (which will be turned back into text by unmunge())
@@ -269,7 +274,7 @@ INF: while(<$inf>) {
push @icstack, $ic;
$endw = $1;
$ic = $2;
$ic =~ s/\@(?:samp|strong|key|gcctabopt|option|env)/B/;
$ic =~ s/\@(?:samp|strong|key|gcctabopt|option|env|command)/B/;
$ic =~ s/\@(?:code|kbd)/C/;
$ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
$ic =~ s/\@(?:file)/F/;
@@ -294,7 +299,7 @@ INF: while(<$inf>) {
}
};
$section .= $shift.$_."\n";
$chapter .= $shift.$_."\n";
}
# End of current file.
close($inf);
@@ -303,16 +308,15 @@ $inf = pop @instack;
die "No filename or title\n" unless defined $fn && defined $tl;
$sects{NAME} = "$fn \- $tl\n";
$sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
$chapters{NAME} = "$fn \- $tl\n";
$chapters{FOOTNOTES} .= "=back\n" if exists $chapters{FOOTNOTES};
unshift @sects_sequence, "NAME";
for $sect (@sects_sequence) {
if(exists $sects{$sect}) {
$head = $sect;
$head =~ s/SEEALSO/SEE ALSO/;
unshift @chapters_sequence, "NAME";
for $chapter (@chapters_sequence) {
if (exists $chapters{$chapter}) {
$head = uc($chapter);
print "=head1 $head\n\n";
print scalar unmunge ($sects{$sect});
print scalar unmunge ($chapters{$chapter});
print "\n";
}
}
@@ -366,7 +370,7 @@ sub postprocess
# @uref can take one, two, or three arguments, with different
# semantics each time. @url and @email are just like @uref with
# one argument, for our purposes.
s/\@(?:uref|url|email)\{([^\},]*)\}/&lt;B<$1>&gt;/g;
s/\@(?:uref|url|email)\{([^\},]*),?[^\}]*\}/&lt;B<$1>&gt;/g;
s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g;
s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g;
@@ -410,13 +414,13 @@ sub unmunge
sub add_footnote
{
unless (exists $sects{FOOTNOTES}) {
$sects{FOOTNOTES} = "\n=over 4\n\n";
unless (exists $chapters{FOOTNOTES}) {
$chapters{FOOTNOTES} = "\n=over 4\n\n";
}
$sects{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++;
$sects{FOOTNOTES} .= $_[0];
$sects{FOOTNOTES} .= "\n\n";
$chapters{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++;
$chapters{FOOTNOTES} .= $_[0];
$chapters{FOOTNOTES} .= "\n\n";
}
# stolen from Symbol.pm

View File

@@ -85,8 +85,8 @@ here are some edges we could choose from:
/ \
O-----2--4--O
Finding the new best pathes and scores for each point of our new column is
trivial given we know the previous column best pathes and scores:
Finding the new best paths and scores for each point of our new column is
trivial given we know the previous column best paths and scores:
O-----0-----8
\

309
ffmpeg.c
View File

@@ -43,7 +43,7 @@
#include "libswscale/swscale.h"
#include "libswresample/swresample.h"
#include "libavutil/opt.h"
#include "libavutil/audioconvert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/parseutils.h"
#include "libavutil/samplefmt.h"
#include "libavutil/colorspace.h"
@@ -69,6 +69,7 @@
# include "libavfilter/buffersink.h"
#if HAVE_SYS_RESOURCE_H
#include <sys/time.h>
#include <sys/types.h>
#include <sys/resource.h>
#elif HAVE_GETPROCESSTIMES
@@ -108,7 +109,7 @@ const int program_birth_year = 2000;
static FILE *vstats_file;
static void do_video_stats(AVFormatContext *os, OutputStream *ost, int frame_size);
static void do_video_stats(OutputStream *ost, int frame_size);
static int64_t getutime(void);
static int run_as_daemon = 0;
@@ -208,17 +209,29 @@ static void sub2video_update(InputStream *ist, AVSubtitle *sub)
AVFilterBufferRef *ref = ist->sub2video.ref;
int8_t *dst;
int dst_linesize;
int i;
int64_t pts = av_rescale_q(sub->pts, AV_TIME_BASE_Q, ist->st->time_base);
int num_rects, i;
int64_t pts, end_pts;
if (!ref)
return;
if (sub) {
pts = av_rescale_q(sub->pts + sub->start_display_time * 1000,
AV_TIME_BASE_Q, ist->st->time_base);
end_pts = av_rescale_q(sub->pts + sub->end_display_time * 1000,
AV_TIME_BASE_Q, ist->st->time_base);
num_rects = sub->num_rects;
} else {
pts = ist->sub2video.end_pts;
end_pts = INT64_MAX;
num_rects = 0;
}
dst = ref->data [0];
dst_linesize = ref->linesize[0];
memset(dst, 0, h * dst_linesize);
for (i = 0; i < sub->num_rects; i++)
for (i = 0; i < num_rects; i++)
sub2video_copy_rect(dst, dst_linesize, w, h, sub->rects[i]);
sub2video_push_ref(ist, pts);
ist->sub2video.end_pts = end_pts;
}
static void sub2video_heartbeat(InputStream *ist, int64_t pts)
@@ -241,6 +254,8 @@ static void sub2video_heartbeat(InputStream *ist, int64_t pts)
/* do not send the heartbeat frame if the subtitle is already ahead */
if (pts2 <= ist2->sub2video.last_pts)
continue;
if (pts2 >= ist2->sub2video.end_pts)
sub2video_update(ist2, NULL);
for (j = 0, nb_reqs = 0; j < ist2->nb_filters; j++)
nb_reqs += av_buffersrc_get_nb_failed_requests(ist2->filters[j]->filter);
if (nb_reqs)
@@ -354,8 +369,10 @@ static int read_key(void)
}
if (is_pipe) {
/* When running under a GUI, you will end here. */
if (!PeekNamedPipe(input_handle, NULL, 0, NULL, &nchars, NULL))
if (!PeekNamedPipe(input_handle, NULL, 0, NULL, &nchars, NULL)) {
// input pipe may have been closed by the program that ran ffmpeg
return -1;
}
//Read it
if(nchars != 0) {
read(0, &ch, 1);
@@ -378,7 +395,7 @@ static int decode_interrupt_cb(void *ctx)
const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL };
void av_noreturn exit_program(int ret)
static void exit_program(void)
{
int i, j;
@@ -456,8 +473,6 @@ void av_noreturn exit_program(int ret)
(int) received_sigterm);
exit (255);
}
exit(ret);
}
void assert_avoptions(AVDictionary *m)
@@ -465,25 +480,13 @@ void assert_avoptions(AVDictionary *m)
AVDictionaryEntry *t;
if ((t = av_dict_get(m, "", NULL, AV_DICT_IGNORE_SUFFIX))) {
av_log(NULL, AV_LOG_FATAL, "Option %s not found.\n", t->key);
exit_program(1);
exit(1);
}
}
static void assert_codec_experimental(AVCodecContext *c, int encoder)
static void abort_codec_experimental(AVCodec *c, int encoder)
{
const char *codec_string = encoder ? "encoder" : "decoder";
AVCodec *codec;
if (c->codec->capabilities & CODEC_CAP_EXPERIMENTAL &&
c->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
av_log(NULL, AV_LOG_FATAL, "%s '%s' is experimental and might produce bad "
"results.\nAdd '-strict experimental' if you want to use it.\n",
codec_string, c->codec->name);
codec = encoder ? avcodec_find_encoder(c->codec->id) : avcodec_find_decoder(c->codec->id);
if (!(codec->capabilities & CODEC_CAP_EXPERIMENTAL))
av_log(NULL, AV_LOG_FATAL, "Or use the non experimental %s '%s'.\n",
codec_string, codec->name);
exit_program(1);
}
exit(1);
}
static void update_benchmark(const char *fmt, ...)
@@ -564,7 +567,7 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
avctx->codec ? avctx->codec->name : "copy");
print_error("", a);
if (exit_on_error)
exit_program(1);
exit(1);
}
*pkt = new_pkt;
@@ -575,17 +578,18 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
if (debug_ts) {
av_log(NULL, AV_LOG_INFO, "muxer <- type:%s "
"pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s\n",
"pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s size:%d\n",
av_get_media_type_string(ost->st->codec->codec_type),
av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &ost->st->time_base),
av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ost->st->time_base)
av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &ost->st->time_base),
pkt->size
);
}
ret = av_interleaved_write_frame(s, pkt);
if (ret < 0) {
print_error("av_interleaved_write_frame()", ret);
exit_program(1);
exit(1);
}
}
@@ -595,9 +599,8 @@ static void close_output_stream(OutputStream *ost)
ost->finished = 1;
if (of->shortest) {
int i;
for (i = 0; i < of->ctx->nb_streams; i++)
output_streams[of->ost_index + i]->finished = 1;
int64_t end = av_rescale_q(ost->sync_opts - ost->first_pts, ost->st->codec->time_base, AV_TIME_BASE_Q);
of->recording_time = FFMIN(of->recording_time, end);
}
}
@@ -636,7 +639,7 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost,
update_benchmark(NULL);
if (avcodec_encode_audio2(enc, &pkt, frame, &got_packet) < 0) {
av_log(NULL, AV_LOG_FATAL, "Audio encoding failed (avcodec_encode_audio2)\n");
exit_program(1);
exit(1);
}
update_benchmark("encode_audio %d.%d", ost->file_index, ost->index);
@@ -677,6 +680,8 @@ static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void *
/* create temporary picture */
size = avpicture_get_size(dec->pix_fmt, dec->width, dec->height);
if (size < 0)
return;
buf = av_malloc(size);
if (!buf)
return;
@@ -715,7 +720,7 @@ static void do_subtitle_out(AVFormatContext *s,
if (sub->pts == AV_NOPTS_VALUE) {
av_log(NULL, AV_LOG_ERROR, "Subtitle packets must have a pts\n");
if (exit_on_error)
exit_program(1);
exit(1);
return;
}
@@ -751,7 +756,7 @@ static void do_subtitle_out(AVFormatContext *s,
subtitle_out_max_size, sub);
if (subtitle_out_size < 0) {
av_log(NULL, AV_LOG_FATAL, "Subtitle encoding failed\n");
exit_program(1);
exit(1);
}
av_init_packet(&pkt);
@@ -774,8 +779,7 @@ static void do_subtitle_out(AVFormatContext *s,
static void do_video_out(AVFormatContext *s,
OutputStream *ost,
AVFrame *in_picture,
float quality)
AVFrame *in_picture)
{
int ret, format_video_sync;
AVPacket pkt;
@@ -800,7 +804,7 @@ static void do_video_out(AVFormatContext *s,
format_video_sync = video_sync_method;
if (format_video_sync == VSYNC_AUTO)
format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : VSYNC_VFR) : 1;
format_video_sync = (s->oformat->flags & AVFMT_VARIABLE_FPS) ? ((s->oformat->flags & AVFMT_NOTIMESTAMPS) ? VSYNC_PASSTHROUGH : VSYNC_VFR) : VSYNC_CFR;
switch (format_video_sync) {
case VSYNC_CFR:
@@ -857,6 +861,10 @@ static void do_video_out(AVFormatContext *s,
method. */
enc->coded_frame->interlaced_frame = in_picture->interlaced_frame;
enc->coded_frame->top_field_first = in_picture->top_field_first;
if (enc->coded_frame->interlaced_frame)
enc->field_order = enc->coded_frame->top_field_first ? AV_FIELD_TB:AV_FIELD_BT;
else
enc->field_order = AV_FIELD_PROGRESSIVE;
pkt.data = (uint8_t *)in_picture;
pkt.size = sizeof(AVPicture);
pkt.pts = av_rescale_q(in_picture->pts, enc->time_base, ost->st->time_base);
@@ -879,9 +887,15 @@ static void do_video_out(AVFormatContext *s,
big_picture.top_field_first = !!ost->top_field_first;
}
/* handles same_quant here. This is not correct because it may
not be a global option */
big_picture.quality = quality;
if (big_picture.interlaced_frame) {
if (enc->codec->id == AV_CODEC_ID_MJPEG)
enc->field_order = big_picture.top_field_first ? AV_FIELD_TT:AV_FIELD_BB;
else
enc->field_order = big_picture.top_field_first ? AV_FIELD_TB:AV_FIELD_BT;
} else
enc->field_order = AV_FIELD_PROGRESSIVE;
big_picture.quality = ost->st->codec->global_quality;
if (!enc->me_threshold)
big_picture.pict_type = 0;
if (ost->forced_kf_index < ost->forced_kf_count &&
@@ -894,7 +908,7 @@ static void do_video_out(AVFormatContext *s,
update_benchmark("encode_video %d.%d", ost->file_index, ost->index);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "Video encoding failed\n");
exit_program(1);
exit(1);
}
if (got_packet) {
@@ -934,7 +948,7 @@ static void do_video_out(AVFormatContext *s,
}
if (vstats_filename && frame_size)
do_video_stats(output_files[ost->file_index]->ctx, ost, frame_size);
do_video_stats(ost, frame_size);
}
static double psnr(double d)
@@ -942,8 +956,7 @@ static double psnr(double d)
return -10.0 * log(d) / log(10.0);
}
static void do_video_stats(AVFormatContext *os, OutputStream *ost,
int frame_size)
static void do_video_stats(OutputStream *ost, int frame_size)
{
AVCodecContext *enc;
int frame_number;
@@ -954,20 +967,20 @@ static void do_video_stats(AVFormatContext *os, OutputStream *ost,
vstats_file = fopen(vstats_filename, "w");
if (!vstats_file) {
perror("fopen");
exit_program(1);
exit(1);
}
}
enc = ost->st->codec;
if (enc->codec_type == AVMEDIA_TYPE_VIDEO) {
frame_number = ost->frame_number;
frame_number = ost->st->nb_frames;
fprintf(vstats_file, "frame= %5d q= %2.1f ", frame_number, enc->coded_frame->quality / (float)FF_QP2LAMBDA);
if (enc->flags&CODEC_FLAG_PSNR)
fprintf(vstats_file, "PSNR= %6.2f ", psnr(enc->coded_frame->error[0] / (enc->width * enc->height * 255.0 * 255.0)));
fprintf(vstats_file,"f_size= %6d ", frame_size);
/* compute pts value */
ti1 = ost->sync_opts * av_q2d(enc->time_base);
ti1 = ost->st->pts.val * av_q2d(enc->time_base);
if (ti1 < 0.01)
ti1 = 0.01;
@@ -1044,9 +1057,7 @@ static int reap_filters(void)
if (!ost->frame_aspect_ratio)
ost->st->codec->sample_aspect_ratio = picref->video->sample_aspect_ratio;
do_video_out(of->ctx, ost, filtered_frame,
same_quant ? ost->last_quality :
ost->st->codec->global_quality);
do_video_out(of->ctx, ost, filtered_frame);
break;
case AVMEDIA_TYPE_AUDIO:
avfilter_copy_buf_props(filtered_frame, picref);
@@ -1097,11 +1108,8 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
oc = output_files[0]->ctx;
total_size = avio_size(oc->pb);
if (total_size < 0) { // FIXME improve avio_size() so it works with non seekable output too
if (total_size <= 0) // FIXME improve avio_size() so it works with non seekable output too
total_size = avio_tell(oc->pb);
if (total_size < 0)
total_size = 0;
}
buf[0] = '\0';
vid = 0;
@@ -1138,7 +1146,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
for (j = 0; j < 32; j++)
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%X", (int)lrintf(log2(qp_histogram[j] + 1)));
}
if (enc->flags&CODEC_FLAG_PSNR) {
if ((enc->flags&CODEC_FLAG_PSNR) && (enc->coded_frame || is_last_report)) {
int j;
double error, error_sum = 0;
double scale, scale_sum = 0;
@@ -1182,16 +1190,21 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti
hours = mins / 60;
mins %= 60;
bitrate = pts ? total_size * 8 / (pts / 1000.0) : 0;
bitrate = pts && total_size >= 0 ? total_size * 8 / (pts / 1000.0) : -1;
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"size=%8.0fkB time=", total_size / 1024.0);
if (total_size < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"size=N/A time=");
else snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"size=%8.0fkB time=", total_size / 1024.0);
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"%02d:%02d:%02d.%02d ", hours, mins, secs,
(100 * us) / AV_TIME_BASE);
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"bitrate=%6.1fkbits/s", bitrate);
av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size);
if (bitrate < 0) snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"bitrate=N/A");
else snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
"bitrate=%6.1fkbits/s", bitrate);
if (total_size < 0) av_bprintf(&buf_script, "total_size=N/A\n");
else av_bprintf(&buf_script, "total_size=%"PRId64"\n", total_size);
av_bprintf(&buf_script, "out_time_ms=%"PRId64"\n", pts);
av_bprintf(&buf_script, "out_time=%02d:%02d:%02d.%06d\n",
hours, mins, secs, us);
@@ -1287,7 +1300,7 @@ static void flush_encoders(void)
update_benchmark("flush %s %d.%d", desc, ost->file_index, ost->index);
if (ret < 0) {
av_log(NULL, AV_LOG_FATAL, "%s encoding failed\n", desc);
exit_program(1);
exit(1);
}
*size += pkt.size;
if (ost->logfile && enc->stats_out) {
@@ -1301,7 +1314,12 @@ static void flush_encoders(void)
pkt.pts = av_rescale_q(pkt.pts, enc->time_base, ost->st->time_base);
if (pkt.dts != AV_NOPTS_VALUE)
pkt.dts = av_rescale_q(pkt.dts, enc->time_base, ost->st->time_base);
if (pkt.duration > 0)
pkt.duration = av_rescale_q(pkt.duration, enc->time_base, ost->st->time_base);
write_frame(os, &pkt, ost);
if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && vstats_filename) {
do_video_stats(ost, pkt.size);
}
}
if (stop_encoding)
@@ -1371,6 +1389,15 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p
opkt.dts = av_rescale_q(pkt->dts, ist->st->time_base, ost->st->time_base);
opkt.dts -= ost_tb_start_time;
if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && pkt->dts != AV_NOPTS_VALUE) {
int duration = av_get_audio_frame_duration(ist->st->codec, pkt->size);
if(!duration)
duration = ist->st->codec->frame_size;
opkt.dts = opkt.pts = av_rescale_delta(ist->st->time_base, pkt->dts,
(AVRational){1, ist->st->codec->sample_rate}, duration, &ist->filter_in_rescale_delta_last,
ost->st->time_base) - ost_tb_start_time;
}
opkt.duration = av_rescale_q(pkt->duration, ist->st->time_base, ost->st->time_base);
opkt.flags = pkt->flags;
@@ -1397,7 +1424,6 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p
write_frame(of->ctx, &opkt, ost);
ost->st->codec->frame_number++;
av_free_packet(&opkt);
}
static void rate_emu_sleep(InputStream *ist)
@@ -1437,8 +1463,6 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
if (!ist->decoded_frame && !(ist->decoded_frame = avcodec_alloc_frame()))
return AVERROR(ENOMEM);
else
avcodec_get_frame_defaults(ist->decoded_frame);
decoded_frame = ist->decoded_frame;
update_benchmark(NULL);
@@ -1480,7 +1504,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
av_log(NULL, AV_LOG_FATAL, "Unable to find default channel "
"layout for Input Stream #%d.%d\n", ist->file_index,
ist->st->index);
exit_program(1);
exit(1);
}
decoded_frame->channel_layout = avctx->channel_layout;
@@ -1508,7 +1532,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
int j;
if (configure_filtergraph(fg) < 0) {
av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n");
exit_program(1);
exit(1);
}
for (j = 0; j < fg->nb_outputs; j++) {
OutputStream *ost = fg->outputs[j]->ost;
@@ -1538,9 +1562,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
decoded_frame_tb = AV_TIME_BASE_Q;
}
if (decoded_frame->pts != AV_NOPTS_VALUE)
decoded_frame->pts = av_rescale_q(decoded_frame->pts,
decoded_frame_tb,
(AVRational){1, ist->st->codec->sample_rate});
decoded_frame->pts = av_rescale_delta(decoded_frame_tb, decoded_frame->pts,
(AVRational){1, ist->st->codec->sample_rate}, decoded_frame->nb_samples, &ist->filter_in_rescale_delta_last,
(AVRational){1, ist->st->codec->sample_rate});
for (i = 0; i < ist->nb_filters; i++)
av_buffersrc_add_frame(ist->filters[i]->filter, decoded_frame,
AV_BUFFERSRC_FLAG_PUSH);
@@ -1557,12 +1581,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
int i, ret = 0, resample_changed;
int64_t best_effort_timestamp;
AVRational *frame_sample_aspect;
float quality;
if (!ist->decoded_frame && !(ist->decoded_frame = avcodec_alloc_frame()))
return AVERROR(ENOMEM);
else
avcodec_get_frame_defaults(ist->decoded_frame);
decoded_frame = ist->decoded_frame;
pkt->dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, ist->st->time_base);
@@ -1578,8 +1599,6 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
return ret;
}
quality = same_quant ? decoded_frame->quality : 0;
if(ist->top_field_first>=0)
decoded_frame->top_field_first = ist->top_field_first;
@@ -1619,12 +1638,13 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
ist->resample_height = decoded_frame->height;
ist->resample_pix_fmt = decoded_frame->format;
for (i = 0; i < nb_filtergraphs; i++)
if (ist_in_filtergraph(filtergraphs[i], ist) &&
for (i = 0; i < nb_filtergraphs; i++) {
if (ist_in_filtergraph(filtergraphs[i], ist) && ist->reinit_filters &&
configure_filtergraph(filtergraphs[i]) < 0) {
av_log(NULL, AV_LOG_FATAL, "Error reinitializing filters!\n");
exit_program(1);
exit(1);
}
}
}
frame_sample_aspect= av_opt_ptr(avcodec_get_frame_class(), decoded_frame, "sample_aspect_ratio");
@@ -1632,9 +1652,6 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
int changed = ist->st->codec->width != ist->filters[i]->filter->outputs[0]->w
|| ist->st->codec->height != ist->filters[i]->filter->outputs[0]->h
|| ist->st->codec->pix_fmt != ist->filters[i]->filter->outputs[0]->format;
// XXX what an ugly hack
if (ist->filters[i]->graph->nb_outputs == 1)
ist->filters[i]->graph->outputs[0]->ost->last_quality = quality;
if (!frame_sample_aspect->num)
*frame_sample_aspect = ist->st->sample_aspect_ratio;
@@ -1659,7 +1676,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
} else
if(av_buffersrc_add_frame(ist->filters[i]->filter, decoded_frame, AV_BUFFERSRC_FLAG_PUSH)<0) {
av_log(NULL, AV_LOG_FATAL, "Failed to inject frame into filter network\n");
exit_program(1);
exit(1);
}
}
@@ -1750,7 +1767,7 @@ static int output_packet(InputStream *ist, const AVPacket *pkt)
if (pkt->dts != AV_NOPTS_VALUE) {
ist->next_dts = ist->dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
if (ist->st->codec->codec_type != AVMEDIA_TYPE_VIDEO || !ist->decoding_needed)
ist->next_pts = ist->pts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
ist->next_pts = ist->pts = ist->dts;
}
// while we have more to decode or while the decoder did output something on EOF
@@ -1858,7 +1875,7 @@ static void print_sdp(void)
AVFormatContext **avc = av_malloc(sizeof(*avc) * nb_output_files);
if (!avc)
exit_program(1);
exit(1);
for (i = 0; i < nb_output_files; i++)
avc[i] = output_files[i]->ctx;
@@ -1870,6 +1887,7 @@ static void print_sdp(void)
static int init_input_stream(int ist_index, char *error, int error_len)
{
int ret;
InputStream *ist = input_streams[ist_index];
if (ist->decoding_needed) {
@@ -1889,12 +1907,13 @@ static int init_input_stream(int ist_index, char *error, int error_len)
if (!av_dict_get(ist->opts, "threads", NULL, 0))
av_dict_set(&ist->opts, "threads", "auto", 0);
if (avcodec_open2(ist->st->codec, codec, &ist->opts) < 0) {
if ((ret = avcodec_open2(ist->st->codec, codec, &ist->opts)) < 0) {
if (ret == AVERROR_EXPERIMENTAL)
abort_codec_experimental(codec, 0);
snprintf(error, error_len, "Error while opening decoder for input stream #%d:%d",
ist->file_index, ist->st->index);
return AVERROR(EINVAL);
return ret;
}
assert_codec_experimental(ist->st->codec, 0);
assert_avoptions(ist->opts);
}
@@ -1926,7 +1945,7 @@ static void parse_forced_key_frames(char *kf, OutputStream *ost,
ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n);
if (!ost->forced_kf_pts) {
av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n");
exit_program(1);
exit(1);
}
p = kf;
@@ -2092,7 +2111,7 @@ static int transcode_init(void)
case AVMEDIA_TYPE_AUDIO:
if (audio_volume != 256) {
av_log(NULL, AV_LOG_FATAL, "-acodec copy and -vol are incompatible (frames are not decoded)\n");
exit_program(1);
exit(1);
}
codec->channel_layout = icodec->channel_layout;
codec->sample_rate = icodec->sample_rate;
@@ -2239,7 +2258,7 @@ static int transcode_init(void)
if (cmdutils_read_file(logfilename, &logbuffer, &logbuffer_size) < 0) {
av_log(NULL, AV_LOG_FATAL, "Error reading log file '%s' for pass-2 encoding\n",
logfilename);
exit_program(1);
exit(1);
}
codec->stats_in = logbuffer;
}
@@ -2248,7 +2267,7 @@ static int transcode_init(void)
if (!f) {
av_log(NULL, AV_LOG_FATAL, "Cannot write log file '%s' for pass-1 encoding: %s\n",
logfilename, strerror(errno));
exit_program(1);
exit(1);
}
ost->logfile = f;
}
@@ -2278,17 +2297,17 @@ static int transcode_init(void)
}
if (!av_dict_get(ost->opts, "threads", NULL, 0))
av_dict_set(&ost->opts, "threads", "auto", 0);
if (avcodec_open2(ost->st->codec, codec, &ost->opts) < 0) {
if ((ret = avcodec_open2(ost->st->codec, codec, &ost->opts)) < 0) {
if (ret == AVERROR_EXPERIMENTAL)
abort_codec_experimental(codec, 1);
snprintf(error, sizeof(error), "Error while opening encoder for output stream #%d:%d - maybe incorrect parameters such as bit_rate, rate, width or height",
ost->file_index, ost->index);
ret = AVERROR(EINVAL);
goto dump_format;
}
if (ost->enc->type == AVMEDIA_TYPE_AUDIO &&
!(ost->enc->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE))
av_buffersink_set_frame_size(ost->filter->filter,
ost->st->codec->frame_size);
assert_codec_experimental(ost->st->codec, 1);
assert_avoptions(ost->opts);
if (ost->st->codec->bit_rate && ost->st->codec->bit_rate < 1000)
av_log(NULL, AV_LOG_WARNING, "The bitrate parameter is set too low."
@@ -2415,10 +2434,7 @@ static int transcode_init(void)
return 0;
}
/**
* @return 1 if there are still streams where more output is wanted,
* 0 otherwise
*/
/* Return 1 if there remain streams where more output is wanted, 0 otherwise. */
static int need_output(void)
{
int i;
@@ -2697,8 +2713,8 @@ static void reset_eagain(void)
output_streams[i]->unavailable = 0;
}
/**
* @return
/*
* Return
* - 0 -- one packet was read and processed
* - AVERROR(EAGAIN) -- no packets were available for selected file,
* this function should be called again
@@ -2723,7 +2739,7 @@ static int process_input(int file_index)
if (ret != AVERROR_EOF) {
print_error(is->filename, ret);
if (exit_on_error)
exit_program(1);
exit(1);
}
ifile->eof_reached = 1;
@@ -2762,9 +2778,41 @@ static int process_input(int file_index)
if (ist->discard)
goto discard_packet;
if(!ist->wrap_correction_done && input_files[file_index]->ctx->start_time != AV_NOPTS_VALUE && ist->st->pts_wrap_bits < 64){
int64_t stime = av_rescale_q(input_files[file_index]->ctx->start_time, AV_TIME_BASE_Q, ist->st->time_base);
int64_t stime2= stime + (1ULL<<ist->st->pts_wrap_bits);
if (debug_ts) {
av_log(NULL, AV_LOG_INFO, "demuxer -> ist_index:%d type:%s "
"next_dts:%s next_dts_time:%s next_pts:%s next_pts_time:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s off:%s off_time:%s\n",
ifile->ist_index + pkt.stream_index, av_get_media_type_string(ist->st->codec->codec_type),
av_ts2str(ist->next_dts), av_ts2timestr(ist->next_dts, &AV_TIME_BASE_Q),
av_ts2str(ist->next_pts), av_ts2timestr(ist->next_pts, &AV_TIME_BASE_Q),
av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ist->st->time_base),
av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ist->st->time_base),
av_ts2str(input_files[ist->file_index]->ts_offset),
av_ts2timestr(input_files[ist->file_index]->ts_offset, &AV_TIME_BASE_Q));
}
if(!ist->wrap_correction_done && is->start_time != AV_NOPTS_VALUE && ist->st->pts_wrap_bits < 64){
int64_t stime, stime2;
// Correcting starttime based on the enabled streams
// FIXME this ideally should be done before the first use of starttime but we do not know which are the enabled streams at that point.
// so we instead do it here as part of discontinuity handling
if ( ist->next_dts == AV_NOPTS_VALUE
&& ifile->ts_offset == -is->start_time
&& (is->iformat->flags & AVFMT_TS_DISCONT)) {
int64_t new_start_time = INT64_MAX;
for (i=0; i<is->nb_streams; i++) {
AVStream *st = is->streams[i];
if(st->discard == AVDISCARD_ALL || st->start_time == AV_NOPTS_VALUE)
continue;
new_start_time = FFMIN(new_start_time, av_rescale_q(st->start_time, st->time_base, AV_TIME_BASE_Q));
}
if (new_start_time > is->start_time) {
av_log(is, AV_LOG_VERBOSE, "Correcting start time by %"PRId64"\n", new_start_time - is->start_time);
ifile->ts_offset = -new_start_time;
}
}
stime = av_rescale_q(is->start_time, AV_TIME_BASE_Q, ist->st->time_base);
stime2= stime + (1ULL<<ist->st->pts_wrap_bits);
ist->wrap_correction_done = 1;
if(stime2 > stime && pkt.dts != AV_NOPTS_VALUE && pkt.dts > stime + (1LL<<(ist->st->pts_wrap_bits-1))) {
@@ -2787,17 +2835,6 @@ static int process_input(int file_index)
if (pkt.dts != AV_NOPTS_VALUE)
pkt.dts *= ist->ts_scale;
if (debug_ts) {
av_log(NULL, AV_LOG_INFO, "demuxer -> ist_index:%d type:%s "
"next_dts:%s next_dts_time:%s next_pts:%s next_pts_time:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s off:%"PRId64"\n",
ifile->ist_index + pkt.stream_index, av_get_media_type_string(ist->st->codec->codec_type),
av_ts2str(ist->next_dts), av_ts2timestr(ist->next_dts, &AV_TIME_BASE_Q),
av_ts2str(ist->next_pts), av_ts2timestr(ist->next_pts, &AV_TIME_BASE_Q),
av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ist->st->time_base),
av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ist->st->time_base),
input_files[ist->file_index]->ts_offset);
}
if (pkt.dts != AV_NOPTS_VALUE && ist->next_dts != AV_NOPTS_VALUE &&
!copy_ts) {
int64_t pkt_dts = av_rescale_q(pkt.dts, ist->st->time_base, AV_TIME_BASE_Q);
@@ -2835,6 +2872,15 @@ static int process_input(int file_index)
}
}
if (debug_ts) {
av_log(NULL, AV_LOG_INFO, "demuxer+ffmpeg -> ist_index:%d type:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s off:%s off_time:%s\n",
ifile->ist_index + pkt.stream_index, av_get_media_type_string(ist->st->codec->codec_type),
av_ts2str(pkt.pts), av_ts2timestr(pkt.pts, &ist->st->time_base),
av_ts2str(pkt.dts), av_ts2timestr(pkt.dts, &ist->st->time_base),
av_ts2str(input_files[ist->file_index]->ts_offset),
av_ts2timestr(input_files[ist->file_index]->ts_offset, &AV_TIME_BASE_Q));
}
sub2video_heartbeat(ist, pkt.pts);
ret = output_packet(ist, &pkt);
@@ -2844,7 +2890,7 @@ static int process_input(int file_index)
av_log(NULL, AV_LOG_ERROR, "Error while decoding stream #%d:%d: %s\n",
ist->file_index, ist->st->index, buf);
if (exit_on_error)
exit_program(1);
exit(1);
}
discard_packet:
@@ -3106,19 +3152,14 @@ static void log_callback_null(void *ptr, int level, const char *fmt, va_list vl)
{
}
static void parse_cpuflags(int argc, char **argv, const OptionDef *options)
{
int idx = locate_option(argc, argv, options, "cpuflags");
if (idx && argv[idx + 1])
opt_cpuflags(NULL, "cpuflags", argv[idx + 1]);
}
int main(int argc, char **argv)
{
OptionsContext o = { 0 };
int ret;
int64_t ti;
reset_options(&o, 0);
atexit(exit_program);
setvbuf(stderr,NULL,_IONBF,0); /* win32 runtime needs this */
av_log_set_flags(AV_LOG_SKIP_REPEATED);
parse_loglevel(argc, argv, options);
@@ -3142,37 +3183,37 @@ int main(int argc, char **argv)
term_init();
parse_cpuflags(argc, argv, options);
/* parse options */
parse_options(&o, argc, argv, options, opt_output_file);
/* parse options and open all input/output files */
ret = ffmpeg_parse_options(argc, argv);
if (ret < 0)
exit(1);
if (nb_output_files <= 0 && nb_input_files == 0) {
show_usage();
av_log(NULL, AV_LOG_WARNING, "Use -h to get full help or, even better, run 'man %s'\n", program_name);
exit_program(1);
exit(1);
}
/* file converter / grab */
if (nb_output_files <= 0) {
av_log(NULL, AV_LOG_FATAL, "At least one output file must be specified\n");
exit_program(1);
exit(1);
}
// if (nb_input_files == 0) {
// av_log(NULL, AV_LOG_FATAL, "At least one input file must be specified\n");
// exit_program(1);
// exit(1);
// }
current_time = ti = getutime();
if (transcode() < 0)
exit_program(1);
exit(1);
ti = getutime() - ti;
if (do_benchmark) {
int maxrss = getmaxrss() / 1024;
printf("bench: utime=%0.3fs maxrss=%ikB\n", ti / 1000000.0, maxrss);
}
exit_program(0);
exit(0);
return 0;
}

View File

@@ -57,12 +57,12 @@
/* select an input stream for an output stream */
typedef struct StreamMap {
int disabled; /** 1 is this mapping is disabled by a negative map */
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 */
char *linklabel; /* name of an output link, for mapping lavfi outputs */
} StreamMap;
typedef struct {
@@ -71,6 +71,8 @@ typedef struct {
} AudioChannelMap;
typedef struct OptionsContext {
OptionGroup *g;
/* input/output options */
int64_t start_time;
const char *format;
@@ -161,6 +163,8 @@ typedef struct OptionsContext {
int nb_copy_prior_start;
SpecifierOpt *filters;
int nb_filters;
SpecifierOpt *reinit_filters;
int nb_reinit_filters;
SpecifierOpt *fix_sub_duration;
int nb_fix_sub_duration;
SpecifierOpt *pass;
@@ -215,6 +219,9 @@ typedef struct InputStream {
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;
int64_t filter_in_rescale_delta_last;
double ts_scale;
int is_start; /* is 1 at the start and after a discontinuity */
int saw_first_ts;
@@ -241,6 +248,7 @@ typedef struct InputStream {
struct sub2video {
int64_t last_pts;
int64_t end_pts;
AVFilterBufferRef *ref;
int w, h;
} sub2video;
@@ -253,6 +261,8 @@ typedef struct InputStream {
* currently video and audio only */
InputFilter **filters;
int nb_filters;
int reinit_filters;
} InputStream;
typedef struct InputFile {
@@ -301,7 +311,6 @@ typedef struct OutputStream {
int top_field_first;
float frame_aspect_ratio;
float last_quality;
/* forced key frames */
int64_t *forced_kf_pts;
@@ -320,6 +329,7 @@ typedef struct OutputStream {
char *avfilter;
int64_t sws_flags;
int64_t swr_filter_type;
int64_t swr_dither_method;
double swr_dither_scale;
AVDictionary *opts;
@@ -377,7 +387,6 @@ 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;
@@ -398,7 +407,7 @@ void assert_avoptions(AVDictionary *m);
int guess_input_channel_layout(InputStream *ist);
enum PixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum PixelFormat target);
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum AVPixelFormat target);
void choose_sample_fmt(AVStream *st, AVCodec *codec);
int configure_filtergraph(FilterGraph *fg);
@@ -406,4 +415,6 @@ int configure_output_filter(FilterGraph *fg, OutputFilter *ofilter, AVFilterInOu
int ist_in_filtergraph(FilterGraph *fg, InputStream *ist);
FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost);
int ffmpeg_parse_options(int argc, char **argv);
#endif /* FFMPEG_H */

View File

@@ -24,41 +24,43 @@
#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/channel_layout.h"
#include "libavutil/opt.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)
enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodec *codec, enum AVPixelFormat 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;
const enum AVPixelFormat *p = codec->pix_fmts;
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(target);
int has_alpha = desc ? desc->nb_components % 2 == 0 : 0;
enum AVPixelFormat best= AV_PIX_FMT_NONE;
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 };
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
} else if (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 };
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
}
}
for (; *p != PIX_FMT_NONE; p++) {
for (; *p != AV_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)
if (*p == AV_PIX_FMT_NONE) {
if (target != AV_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,
av_get_pix_fmt_name(target),
codec->name,
av_pix_fmt_descriptors[best].name);
av_get_pix_fmt_name(best));
return best;
}
}
@@ -93,32 +95,32 @@ static char *choose_pix_fmts(OutputStream *ost)
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)
if (ost->st->codec->pix_fmt == AV_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) {
if (ost->st->codec->pix_fmt != AV_PIX_FMT_NONE) {
return av_strdup(av_get_pix_fmt_name(choose_pixel_fmt(ost->st, ost->enc, ost->st->codec->pix_fmt)));
} else if (ost->enc && ost->enc->pix_fmts) {
const enum PixelFormat *p;
const enum AVPixelFormat *p;
AVIOContext *s = NULL;
uint8_t *ret;
int len;
if (avio_open_dyn_buf(&s) < 0)
exit_program(1);
exit(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 };
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE };
} else if (ost->st->codec->codec_id == AV_CODEC_ID_LJPEG) {
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 };
p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P,
AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
}
}
for (; *p != PIX_FMT_NONE; p++) {
for (; *p != AV_PIX_FMT_NONE; p++) {
const char *name = av_get_pix_fmt_name(*p);
avio_printf(s, "%s:", name);
}
@@ -129,10 +131,8 @@ static char *choose_pix_fmts(OutputStream *ost)
return NULL;
}
/**
* Define a function for building a string containing a list of
* allowed formats,
*/
/* 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) \
{ \
@@ -146,7 +146,7 @@ static char *choose_ ## var ## s(OutputStream *ost) \
int len; \
\
if (avio_open_dyn_buf(&s) < 0) \
exit_program(1); \
exit(1); \
\
for (p = ost->enc->supported_list; *p != none; p++) { \
get_name(*p); \
@@ -159,7 +159,7 @@ static char *choose_ ## var ## s(OutputStream *ost) \
return NULL; \
}
// DEF_CHOOSE_FORMAT(enum PixelFormat, pix_fmt, pix_fmts, PIX_FMT_NONE,
// DEF_CHOOSE_FORMAT(enum AVPixelFormat, pix_fmt, pix_fmts, AV_PIX_FMT_NONE,
// GET_PIX_FMT_NAME, ":")
DEF_CHOOSE_FORMAT(enum AVSampleFormat, sample_fmt, sample_fmts,
@@ -176,31 +176,27 @@ FilterGraph *init_simple_filtergraph(InputStream *ist, OutputStream *ost)
FilterGraph *fg = av_mallocz(sizeof(*fg));
if (!fg)
exit_program(1);
exit(1);
fg->index = nb_filtergraphs;
fg->outputs = grow_array(fg->outputs, sizeof(*fg->outputs), &fg->nb_outputs,
fg->nb_outputs + 1);
GROW_ARRAY(fg->outputs, fg->nb_outputs);
if (!(fg->outputs[0] = av_mallocz(sizeof(*fg->outputs[0]))))
exit_program(1);
exit(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);
GROW_ARRAY(fg->inputs, fg->nb_inputs);
if (!(fg->inputs[0] = av_mallocz(sizeof(*fg->inputs[0]))))
exit_program(1);
exit(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);
GROW_ARRAY(ist->filters, ist->nb_filters);
ist->filters[ist->nb_filters - 1] = fg->inputs[0];
filtergraphs = grow_array(filtergraphs, sizeof(*filtergraphs),
&nb_filtergraphs, nb_filtergraphs + 1);
GROW_ARRAY(filtergraphs, nb_filtergraphs);
filtergraphs[nb_filtergraphs - 1] = fg;
return fg;
@@ -216,7 +212,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
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);
exit(1);
}
if (in->name) {
@@ -228,7 +224,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
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);
exit(1);
}
s = input_files[file_idx]->ctx;
@@ -246,7 +242,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
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);
exit(1);
}
ist = input_streams[input_files[file_idx]->ist_index + st->index];
} else {
@@ -260,7 +256,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
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);
exit(1);
}
}
av_assert0(ist);
@@ -269,15 +265,13 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
ist->decoding_needed++;
ist->st->discard = AVDISCARD_NONE;
fg->inputs = grow_array(fg->inputs, sizeof(*fg->inputs),
&fg->nb_inputs, fg->nb_inputs + 1);
GROW_ARRAY(fg->inputs, fg->nb_inputs);
if (!(fg->inputs[fg->nb_inputs - 1] = av_mallocz(sizeof(*fg->inputs[0]))))
exit_program(1);
exit(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);
GROW_ARRAY(ist->filters, ist->nb_filters);
ist->filters[ist->nb_filters - 1] = fg->inputs[fg->nb_inputs - 1];
}
@@ -477,7 +471,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
AVIOContext *pb; \
\
if (avio_open_dyn_buf(&pb) < 0) \
exit_program(1); \
exit(1); \
\
avio_printf(pb, "%s", ctx->filter->name); \
if (nb_pads > 1) \
@@ -523,20 +517,20 @@ static int sub2video_prepare(InputStream *ist)
}
av_log(avf, AV_LOG_INFO, "sub2video: using %dx%d canvas\n", w, h);
}
ist->sub2video.w = ist->st->codec->width = w;
ist->sub2video.h = ist->st->codec->height = h;
ist->sub2video.w = ist->st->codec->width = ist->resample_width = w;
ist->sub2video.h = ist->st->codec->height = ist->resample_height = h;
/* rectangles are PIX_FMT_PAL8, but we have no guarantee that the
/* rectangles are AV_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;
ist->st->codec->pix_fmt = AV_PIX_FMT_RGB32;
ret = av_image_alloc(image, linesize, w, h, PIX_FMT_RGB32, 32);
ret = av_image_alloc(image, linesize, w, h, AV_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);
w, h, AV_PIX_FMT_RGB32);
if (!ist->sub2video.ref) {
av_free(image[0]);
return AVERROR(ENOMEM);
@@ -560,6 +554,15 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
int pad_idx = in->pad_idx;
int ret;
if (!ist->framerate.num && ist->st->codec->ticks_per_frame>1) {
AVRational codec_fr = av_inv_q(ist->st->codec->time_base);
AVRational avg_fr = ist->st->avg_frame_rate;
codec_fr.den *= ist->st->codec->ticks_per_frame;
if ( codec_fr.num>0 && codec_fr.den>0 && av_q2d(codec_fr) < av_q2d(fr)*0.7
&& fabs(1.0 - av_q2d(av_div_q(avg_fr, fr)))>0.1)
fr = codec_fr;
}
if (ist->st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
ret = sub2video_prepare(ist);
if (ret < 0)
@@ -574,8 +577,8 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
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,
"pixel_aspect=%d/%d:sws_param=flags=%d", ist->resample_width,
ist->resample_height, ist->resample_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)
@@ -658,9 +661,9 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
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);
av_strlcatf(args, sizeof(args), "async=%d", audio_sync_method);
if (audio_drift_threshold != 0.1)
av_strlcatf(args, sizeof(args), ":min_hard_comp=%f", audio_drift_threshold);
AUTO_INSERT_FILTER_INPUT("-async", "aresample", args);
}
@@ -680,6 +683,9 @@ static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,
if (audio_volume != 256) {
char args[256];
av_log(NULL, AV_LOG_WARNING, "-vol has been deprecated. Use the volume "
"audio filter instead.\n");
snprintf(args, sizeof(args), "%f", audio_volume / 256.);
AUTO_INSERT_FILTER_INPUT("-vol", "volume", args);
}
@@ -718,6 +724,17 @@ int configure_filtergraph(FilterGraph *fg)
char args[255];
snprintf(args, sizeof(args), "flags=0x%X", (unsigned)ost->sws_flags);
fg->graph->scale_sws_opts = av_strdup(args);
args[0] = 0;
if (ost->swr_filter_type != SWR_FILTER_TYPE_KAISER)
av_strlcatf(args, sizeof(args), "filter_type=%d:", (int)ost->swr_filter_type);
if (ost->swr_dither_method)
av_strlcatf(args, sizeof(args), "dither_method=%d:", (int)ost->swr_dither_method);
if (ost->swr_dither_scale != 1.0)
av_strlcatf(args, sizeof(args), "dither_scale=%f:", ost->swr_dither_scale);
if (strlen(args))
args[strlen(args)-1] = 0;
av_opt_set(fg->graph, "aresample_swr_opts", args, 0);
}
if ((ret = avfilter_graph_parse2(fg->graph, graph_desc, &inputs, &outputs)) < 0)
@@ -749,10 +766,9 @@ int configure_filtergraph(FilterGraph *fg)
} 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);
GROW_ARRAY(fg->outputs, fg->nb_outputs);
if (!(fg->outputs[fg->nb_outputs - 1] = av_mallocz(sizeof(*fg->outputs[0]))))
exit_program(1);
exit(1);
fg->outputs[fg->nb_outputs - 1]->graph = fg;
fg->outputs[fg->nb_outputs - 1]->out_tmp = cur;
cur = cur->next;

File diff suppressed because it is too large Load Diff

492
ffplay.c

File diff suppressed because it is too large Load Diff

540
ffprobe.c
View File

@@ -55,9 +55,9 @@ static int do_read_packets = 0;
static int do_show_error = 0;
static int do_show_format = 0;
static int do_show_frames = 0;
static AVDictionary *fmt_entries_to_show = NULL;
static int do_show_packets = 0;
static int do_show_streams = 0;
static int do_show_stream_disposition = 0;
static int do_show_data = 0;
static int do_show_program_version = 0;
static int do_show_library_versions = 0;
@@ -69,16 +69,26 @@ static int use_value_sexagesimal_format = 0;
static int show_private_data = 1;
static char *print_format;
static char *stream_specifier;
/* section structure definition */
#define SECTION_MAX_NB_CHILDREN 10
struct section {
int id; ///< unique id indentifying a section
int id; ///< unique id identifying a section
const char *name;
#define SECTION_FLAG_IS_WRAPPER 1 ///< the section only contains other sections, but has no data at its own level
#define SECTION_FLAG_IS_ARRAY 2 ///< the section contains an array of elements of the same type
#define SECTION_FLAG_HAS_VARIABLE_FIELDS 4 ///< the section may contain a variable number of fields with variable keys.
/// For these sections the element_name field is mandatory.
int flags;
int children_ids[SECTION_MAX_NB_CHILDREN+1]; ///< list of children section IDS, terminated by -1
const char *element_name; ///< name of the contained element, if provided
const char *unique_name; ///< unique section name, in case the name is ambiguous
AVDictionary *entries_to_show;
int show_all_entries;
};
typedef enum {
@@ -97,30 +107,31 @@ typedef enum {
SECTION_ID_PROGRAM_VERSION,
SECTION_ID_ROOT,
SECTION_ID_STREAM,
SECTION_ID_STREAM_DISPOSITION,
SECTION_ID_STREAMS,
SECTION_ID_STREAM_TAGS
SECTION_ID_STREAM_TAGS,
} SectionID;
#define SECTION_ENTRY(id, name, flags) \
[SECTION_ID_##id] = { SECTION_ID_##id, name, flags }
static const struct section sections[] = {
SECTION_ENTRY(ERROR, "error", 0),
SECTION_ENTRY(FORMAT, "format", 0),
SECTION_ENTRY(FORMAT_TAGS, "tags", 0),
SECTION_ENTRY(FRAME, "frame", 0),
SECTION_ENTRY(FRAMES, "frames", SECTION_FLAG_IS_ARRAY),
SECTION_ENTRY(FRAME_TAGS, "tags", 0),
SECTION_ENTRY(LIBRARY_VERSION, "library_version", 0),
SECTION_ENTRY(LIBRARY_VERSIONS, "library_versions", SECTION_FLAG_IS_ARRAY),
SECTION_ENTRY(PACKET, "packet", 0),
SECTION_ENTRY(PACKETS, "packets", SECTION_FLAG_IS_ARRAY),
SECTION_ENTRY(PACKETS_AND_FRAMES, "packets_and_frames", SECTION_FLAG_IS_ARRAY),
SECTION_ENTRY(PROGRAM_VERSION, "program_version", 0),
SECTION_ENTRY(ROOT, "root", SECTION_FLAG_IS_WRAPPER),
SECTION_ENTRY(STREAM, "stream", 0),
SECTION_ENTRY(STREAMS, "streams", SECTION_FLAG_IS_ARRAY),
SECTION_ENTRY(STREAM_TAGS, "tags", 0),
static struct section sections[] = {
[SECTION_ID_ERROR] = { SECTION_ID_ERROR, "error", 0, { -1 } },
[SECTION_ID_FORMAT] = { SECTION_ID_FORMAT, "format", 0, { SECTION_ID_FORMAT_TAGS, -1 } },
[SECTION_ID_FORMAT_TAGS] = { SECTION_ID_FORMAT_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "format_tags" },
[SECTION_ID_FRAMES] = { SECTION_ID_FRAMES, "frames", SECTION_FLAG_IS_ARRAY, { SECTION_ID_FRAME, -1 } },
[SECTION_ID_FRAME] = { SECTION_ID_FRAME, "frame", 0, { SECTION_ID_FRAME_TAGS, -1 } },
[SECTION_ID_FRAME_TAGS] = { SECTION_ID_FRAME_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "frame_tags" },
[SECTION_ID_LIBRARY_VERSIONS] = { SECTION_ID_LIBRARY_VERSIONS, "library_versions", SECTION_FLAG_IS_ARRAY, { SECTION_ID_LIBRARY_VERSION, -1 } },
[SECTION_ID_LIBRARY_VERSION] = { SECTION_ID_LIBRARY_VERSION, "library_version", 0, { -1 } },
[SECTION_ID_PACKETS] = { SECTION_ID_PACKETS, "packets", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
[SECTION_ID_PACKETS_AND_FRAMES] = { SECTION_ID_PACKETS_AND_FRAMES, "packets_and_frames", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PACKET, -1} },
[SECTION_ID_PACKET] = { SECTION_ID_PACKET, "packet", 0, { -1 } },
[SECTION_ID_PROGRAM_VERSION] = { SECTION_ID_PROGRAM_VERSION, "program_version", 0, { -1 } },
[SECTION_ID_ROOT] = { SECTION_ID_ROOT, "root", SECTION_FLAG_IS_WRAPPER,
{ SECTION_ID_FORMAT, SECTION_ID_FRAMES, SECTION_ID_STREAMS, SECTION_ID_PACKETS,
SECTION_ID_ERROR, SECTION_ID_PROGRAM_VERSION, SECTION_ID_LIBRARY_VERSIONS, -1} },
[SECTION_ID_STREAMS] = { SECTION_ID_STREAMS, "streams", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM, -1 } },
[SECTION_ID_STREAM] = { SECTION_ID_STREAM, "stream", 0, { SECTION_ID_STREAM_DISPOSITION, SECTION_ID_STREAM_TAGS, -1 } },
[SECTION_ID_STREAM_DISPOSITION] = { SECTION_ID_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_disposition" },
[SECTION_ID_STREAM_TAGS] = { SECTION_ID_STREAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_tags" },
};
static const OptionDef *options;
@@ -136,13 +147,16 @@ static const char unit_second_str[] = "s" ;
static const char unit_hertz_str[] = "Hz" ;
static const char unit_byte_str[] = "byte" ;
static const char unit_bit_per_second_str[] = "bit/s";
static uint64_t *nb_streams_packets;
static uint64_t *nb_streams_frames;
static int *selected_streams;
void av_noreturn exit_program(int ret)
static void exit_program(void)
{
av_dict_free(&fmt_entries_to_show);
exit(ret);
int i;
for (i = 0; i < FF_ARRAY_ELEMS(sections); i++)
av_dict_free(&(sections[i].entries_to_show));
}
struct unit_value {
@@ -214,7 +228,7 @@ typedef struct Writer {
int priv_size; ///< private size for the writer context
const char *name;
int (*init) (WriterContext *wctx, const char *args);
int (*init) (WriterContext *wctx);
void (*uninit)(WriterContext *wctx);
void (*print_section_header)(WriterContext *wctx);
@@ -243,6 +257,8 @@ struct WriterContext {
/** section per each level */
const struct section *section[SECTION_MAX_NB_LEVELS];
AVBPrint section_pbuf[SECTION_MAX_NB_LEVELS]; ///< generic print buffer dedicated to each section,
/// used by various writers
unsigned int nb_section_packet; ///< number of the packet section in case we are in "packets_and_frames" section
unsigned int nb_section_frame; ///< number of the frame section in case we are in "packets_and_frames" section
@@ -264,11 +280,15 @@ static const AVClass writer_class = {
static void writer_close(WriterContext **wctx)
{
int i;
if (!*wctx)
return;
if ((*wctx)->writer->uninit)
(*wctx)->writer->uninit(*wctx);
for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
av_bprint_finalize(&(*wctx)->section_pbuf[i], NULL);
if ((*wctx)->writer->priv_class)
av_opt_free((*wctx)->priv);
av_freep(&((*wctx)->priv));
@@ -278,7 +298,7 @@ static void writer_close(WriterContext **wctx)
static int writer_open(WriterContext **wctx, const Writer *writer, const char *args,
const struct section *sections, int nb_sections)
{
int ret = 0;
int i, ret = 0;
if (!(*wctx = av_malloc(sizeof(WriterContext)))) {
ret = AVERROR(ENOMEM);
@@ -305,8 +325,12 @@ static int writer_open(WriterContext **wctx, const Writer *writer, const char *a
(ret = av_set_options_string(priv_ctx, args, "=", ":")) < 0)
goto fail;
}
for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
av_bprint_init(&(*wctx)->section_pbuf[i], 1, AV_BPRINT_SIZE_UNLIMITED);
if ((*wctx)->writer->init)
ret = (*wctx)->writer->init(*wctx, args);
ret = (*wctx)->writer->init(*wctx);
if (ret < 0)
goto fail;
@@ -361,9 +385,9 @@ static inline void writer_print_section_footer(WriterContext *wctx)
static inline void writer_print_integer(WriterContext *wctx,
const char *key, long long int val)
{
if ((wctx->section[wctx->level]->id != SECTION_ID_FORMAT
&& wctx->section[wctx->level]->id != SECTION_ID_FORMAT_TAGS) ||
!fmt_entries_to_show || av_dict_get(fmt_entries_to_show, key, NULL, 0)) {
const struct section *section = wctx->section[wctx->level];
if (section->show_all_entries || av_dict_get(section->entries_to_show, key, NULL, 0)) {
wctx->writer->print_integer(wctx, key, val);
wctx->nb_item[wctx->level]++;
}
@@ -372,11 +396,12 @@ static inline void writer_print_integer(WriterContext *wctx,
static inline void writer_print_string(WriterContext *wctx,
const char *key, const char *val, int opt)
{
const struct section *section = wctx->section[wctx->level];
if (opt && !(wctx->writer->flags & WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS))
return;
if ((wctx->section[wctx->level]->id != SECTION_ID_FORMAT
&& wctx->section[wctx->level]->id != SECTION_ID_FORMAT_TAGS) ||
!fmt_entries_to_show || av_dict_get(fmt_entries_to_show, key, NULL, 0)) {
if (section->show_all_entries || av_dict_get(section->entries_to_show, key, NULL, 0)) {
wctx->writer->print_string(wctx, key, val);
wctx->nb_item[wctx->level]++;
}
@@ -491,6 +516,7 @@ typedef struct DefaultContext {
const AVClass *class;
int nokey;
int noprint_wrappers;
int nested_section[SECTION_MAX_NB_LEVELS];
} DefaultContext;
#define OFFSET(x) offsetof(DefaultContext, x)
@@ -523,9 +549,17 @@ static void default_print_section_header(WriterContext *wctx)
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
if (def->noprint_wrappers ||
(parent_section &&
!(parent_section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY))))
av_bprint_clear(&wctx->section_pbuf[wctx->level]);
if (parent_section &&
!(parent_section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY))) {
def->nested_section[wctx->level] = 1;
av_bprintf(&wctx->section_pbuf[wctx->level], "%s%s:",
wctx->section_pbuf[wctx->level-1].str,
upcase_string(buf, sizeof(buf),
av_x_if_null(section->element_name, section->name)));
}
if (def->noprint_wrappers || def->nested_section[wctx->level])
return;
if (!(section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY)))
@@ -536,13 +570,9 @@ static void default_print_section_footer(WriterContext *wctx)
{
DefaultContext *def = wctx->priv;
const struct section *section = wctx->section[wctx->level];
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
char buf[32];
if (def->noprint_wrappers ||
(parent_section &&
!(parent_section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY))))
if (def->noprint_wrappers || def->nested_section[wctx->level])
return;
if (!(section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY)))
@@ -552,11 +582,9 @@ static void default_print_section_footer(WriterContext *wctx)
static void default_print_str(WriterContext *wctx, const char *key, const char *value)
{
DefaultContext *def = wctx->priv;
const struct section *section = wctx->section[wctx->level];
const char *key_prefix = !strcmp(section->name, "tags") ? "TAG:" : "";
if (!def->nokey)
printf("%s%s=", key_prefix, key);
printf("%s%s=", wctx->section_pbuf[wctx->level].str, key);
printf("%s\n", value);
}
@@ -565,7 +593,7 @@ static void default_print_int(WriterContext *wctx, const char *key, long long in
DefaultContext *def = wctx->priv;
if (!def->nokey)
printf("%s=", key);
printf("%s%s=", wctx->section_pbuf[wctx->level].str, key);
printf("%lld\n", value);
}
@@ -614,15 +642,15 @@ static const char *csv_escape_str(AVBPrint *dst, const char *src, const char sep
int needs_quoting = !!src[strcspn(src, meta_chars)];
if (needs_quoting)
av_bprint_chars(dst, '\"', 1);
av_bprint_chars(dst, '"', 1);
for (; *src; src++) {
if (*src == '"')
av_bprint_chars(dst, '\"', 1);
av_bprint_chars(dst, '"', 1);
av_bprint_chars(dst, *src, 1);
}
if (needs_quoting)
av_bprint_chars(dst, '\"', 1);
av_bprint_chars(dst, '"', 1);
return dst->str;
}
@@ -639,6 +667,7 @@ typedef struct CompactContext {
int print_section;
char *escape_mode_str;
const char * (*escape_str)(AVBPrint *dst, const char *src, const char sep, void *log_ctx);
int nested_section[SECTION_MAX_NB_LEVELS];
} CompactContext;
#undef OFFSET
@@ -658,7 +687,7 @@ static const AVOption compact_options[]= {
DEFINE_WRITER_CLASS(compact);
static av_cold int compact_init(WriterContext *wctx, const char *args)
static av_cold int compact_init(WriterContext *wctx)
{
CompactContext *compact = wctx->priv;
@@ -684,37 +713,42 @@ static void compact_print_section_header(WriterContext *wctx)
{
CompactContext *compact = wctx->priv;
const struct section *section = wctx->section[wctx->level];
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
if (!strcmp(section->name, "tags"))
av_bprint_clear(&wctx->section_pbuf[wctx->level]);
if (parent_section &&
!(parent_section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY))) {
compact->nested_section[wctx->level] = 1;
av_bprintf(&wctx->section_pbuf[wctx->level], "%s%s:",
wctx->section_pbuf[wctx->level-1].str,
(char *)av_x_if_null(section->element_name, section->name));
wctx->nb_item[wctx->level] = wctx->nb_item[wctx->level-1];
else if (compact->print_section &&
} else if (compact->print_section &&
!(section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY)))
printf("%s%c", section->name, compact->item_sep);
printf("%s%c", section->name, compact->item_sep);
}
static void compact_print_section_footer(WriterContext *wctx)
{
const struct section *section = wctx->section[wctx->level];
CompactContext *compact = wctx->priv;
if (strcmp(section->name, "tags") &&
!(section->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY)))
if (!compact->nested_section[wctx->level] &&
!(wctx->section[wctx->level]->flags & (SECTION_FLAG_IS_WRAPPER|SECTION_FLAG_IS_ARRAY)))
printf("\n");
}
static void compact_print_str(WriterContext *wctx, const char *key, const char *value)
{
CompactContext *compact = wctx->priv;
const struct section *section = wctx->section[wctx->level];
const char *key_prefix = !strcmp(section->name, "tags") ? "tag:" : "";
AVBPrint buf;
if (wctx->nb_item[wctx->level]) printf("%c", compact->item_sep);
if (!compact->nokey)
printf("%s%s=", key_prefix, key);
printf("%s%s=", wctx->section_pbuf[wctx->level].str, key);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("%s", compact->escape_str(&buf, value, compact->item_sep, wctx));
av_bprint_finalize(&buf, NULL);
}
static void compact_print_int(WriterContext *wctx, const char *key, long long int value)
@@ -723,7 +757,7 @@ static void compact_print_int(WriterContext *wctx, const char *key, long long in
if (wctx->nb_item[wctx->level]) printf("%c", compact->item_sep);
if (!compact->nokey)
printf("%s=", key);
printf("%s%s=", wctx->section_pbuf[wctx->level].str, key);
printf("%lld", value);
}
@@ -774,7 +808,6 @@ static const Writer csv_writer = {
typedef struct FlatContext {
const AVClass *class;
AVBPrint section_header[SECTION_MAX_NB_LEVELS];
const char *sep_str;
char sep;
int hierarchical;
@@ -793,10 +826,9 @@ static const AVOption flat_options[]= {
DEFINE_WRITER_CLASS(flat);
static av_cold int flat_init(WriterContext *wctx, const char *args)
static av_cold int flat_init(WriterContext *wctx)
{
FlatContext *flat = wctx->priv;
int i;
if (strlen(flat->sep_str) != 1) {
av_log(wctx, AV_LOG_ERROR, "Item separator '%s' specified, but must contain a single character\n",
@@ -805,20 +837,9 @@ static av_cold int flat_init(WriterContext *wctx, const char *args)
}
flat->sep = flat->sep_str[0];
for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
av_bprint_init(&flat->section_header[i], 1, AV_BPRINT_SIZE_UNLIMITED);
return 0;
}
static void flat_uninit(WriterContext *wctx)
{
FlatContext *flat = wctx->priv;
int i;
for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
av_bprint_finalize(&flat->section_header[i], NULL);
}
static const char *flat_escape_key_str(AVBPrint *dst, const char *src, const char sep)
{
const char *p;
@@ -855,36 +876,32 @@ static const char *flat_escape_value_str(AVBPrint *dst, const char *src)
static void flat_print_section_header(WriterContext *wctx)
{
FlatContext *flat = wctx->priv;
AVBPrint *buf = &flat->section_header[wctx->level];
int i;
AVBPrint *buf = &wctx->section_pbuf[wctx->level];
const struct section *section = wctx->section[wctx->level];
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
/* build section header */
av_bprint_clear(buf);
for (i = 1; i <= wctx->level; i++) {
if (flat->hierarchical ||
!(wctx->section[i]->flags & (SECTION_FLAG_IS_ARRAY|SECTION_FLAG_IS_WRAPPER)))
av_bprintf(buf, "%s%s", wctx->section[i]->name, flat->sep_str);
}
}
if (!parent_section)
return;
av_bprintf(buf, "%s", wctx->section_pbuf[wctx->level-1].str);
static void flat_print_key_prefix(WriterContext *wctx)
{
FlatContext *flat = wctx->priv;
const struct section *parent_section = wctx->section[wctx->level-1];
if (flat->hierarchical ||
!(section->flags & (SECTION_FLAG_IS_ARRAY|SECTION_FLAG_IS_WRAPPER))) {
av_bprintf(buf, "%s%s", wctx->section[wctx->level]->name, flat->sep_str);
printf("%s", flat->section_header[wctx->level].str);
if (parent_section->flags & SECTION_FLAG_IS_ARRAY) {
int n = parent_section->id == SECTION_ID_PACKETS_AND_FRAMES ?
wctx->nb_section_packet_frame : wctx->nb_item[wctx->level-1];
printf("%d%s", n, flat->sep_str);
if (parent_section->flags & SECTION_FLAG_IS_ARRAY) {
int n = parent_section->id == SECTION_ID_PACKETS_AND_FRAMES ?
wctx->nb_section_packet_frame : wctx->nb_item[wctx->level-1];
av_bprintf(buf, "%d%s", n, flat->sep_str);
}
}
}
static void flat_print_int(WriterContext *wctx, const char *key, long long int value)
{
flat_print_key_prefix(wctx);
printf("%s=%lld\n", key, value);
printf("%s%s=%lld\n", wctx->section_pbuf[wctx->level].str, key, value);
}
static void flat_print_str(WriterContext *wctx, const char *key, const char *value)
@@ -892,7 +909,7 @@ static void flat_print_str(WriterContext *wctx, const char *key, const char *val
FlatContext *flat = wctx->priv;
AVBPrint buf;
flat_print_key_prefix(wctx);
printf("%s", wctx->section_pbuf[wctx->level].str);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("%s=", flat_escape_key_str(&buf, key, flat->sep));
av_bprint_clear(&buf);
@@ -904,7 +921,6 @@ static const Writer flat_writer = {
.name = "flat",
.priv_size = sizeof(FlatContext),
.init = flat_init,
.uninit = flat_uninit,
.print_section_header = flat_print_section_header,
.print_integer = flat_print_int,
.print_string = flat_print_str,
@@ -960,14 +976,13 @@ static char *ini_escape_str(AVBPrint *dst, const char *src)
static void ini_print_section_header(WriterContext *wctx)
{
INIContext *ini = wctx->priv;
AVBPrint buf;
int i;
AVBPrint *buf = &wctx->section_pbuf[wctx->level];
const struct section *section = wctx->section[wctx->level];
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
if (wctx->level == 0) {
av_bprint_clear(buf);
if (!parent_section) {
printf("# ffprobe output\n\n");
return;
}
@@ -975,21 +990,20 @@ static void ini_print_section_header(WriterContext *wctx)
if (wctx->nb_item[wctx->level-1])
printf("\n");
for (i = 1; i <= wctx->level; i++) {
if (ini->hierarchical ||
!(section->flags & (SECTION_FLAG_IS_ARRAY|SECTION_FLAG_IS_WRAPPER)))
av_bprintf(&buf, "%s%s", i>1 ? "." : "", wctx->section[i]->name);
}
av_bprintf(buf, "%s", wctx->section_pbuf[wctx->level-1].str);
if (ini->hierarchical ||
!(section->flags & (SECTION_FLAG_IS_ARRAY|SECTION_FLAG_IS_WRAPPER))) {
av_bprintf(buf, "%s%s", buf->str[0] ? "." : "", wctx->section[wctx->level]->name);
if (parent_section->flags & SECTION_FLAG_IS_ARRAY) {
int n = parent_section->id == SECTION_ID_PACKETS_AND_FRAMES ?
wctx->nb_section_packet_frame : wctx->nb_item[wctx->level-1];
av_bprintf(&buf, ".%d", n);
if (parent_section->flags & SECTION_FLAG_IS_ARRAY) {
int n = parent_section->id == SECTION_ID_PACKETS_AND_FRAMES ?
wctx->nb_section_packet_frame : wctx->nb_item[wctx->level-1];
av_bprintf(buf, ".%d", n);
}
}
if (!(section->flags & (SECTION_FLAG_IS_ARRAY|SECTION_FLAG_IS_WRAPPER)))
printf("[%s]\n", buf.str);
av_bprint_finalize(&buf, NULL);
printf("[%s]\n", buf->str);
}
static void ini_print_str(WriterContext *wctx, const char *key, const char *value)
@@ -1038,7 +1052,7 @@ static const AVOption json_options[]= {
DEFINE_WRITER_CLASS(json);
static av_cold int json_init(WriterContext *wctx, const char *args)
static av_cold int json_init(WriterContext *wctx)
{
JSONContext *json = wctx->priv;
@@ -1092,13 +1106,13 @@ static void json_print_section_header(WriterContext *wctx)
json->indent_level++;
if (section->flags & SECTION_FLAG_IS_ARRAY) {
printf("\"%s\": [\n", buf.str);
} else if (!(parent_section->flags & SECTION_FLAG_IS_ARRAY)) {
} else if (parent_section && !(parent_section->flags & SECTION_FLAG_IS_ARRAY)) {
printf("\"%s\": {%s", buf.str, json->item_start_end);
} else {
printf("{%s", json->item_start_end);
/* this is required so the parser can distinguish between packets and frames */
if (parent_section->id == SECTION_ID_PACKETS_AND_FRAMES) {
if (parent_section && parent_section->id == SECTION_ID_PACKETS_AND_FRAMES) {
if (!json->compact)
JSON_INDENT();
printf("\"type\": \"%s\"%s", section->name, json->item_sep);
@@ -1203,7 +1217,7 @@ static const AVOption xml_options[] = {
DEFINE_WRITER_CLASS(xml);
static av_cold int xml_init(WriterContext *wctx, const char *args)
static av_cold int xml_init(WriterContext *wctx)
{
XMLContext *xml = wctx->priv;
@@ -1240,7 +1254,7 @@ static const char *xml_escape_str(AVBPrint *dst, const char *src, void *log_ctx)
case '&' : av_bprintf(dst, "%s", "&amp;"); break;
case '<' : av_bprintf(dst, "%s", "&lt;"); break;
case '>' : av_bprintf(dst, "%s", "&gt;"); break;
case '\"': av_bprintf(dst, "%s", "&quot;"); break;
case '"' : av_bprintf(dst, "%s", "&quot;"); break;
case '\'': av_bprintf(dst, "%s", "&apos;"); break;
default: av_bprint_chars(dst, *p, 1);
}
@@ -1274,13 +1288,12 @@ static void xml_print_section_header(WriterContext *wctx)
xml->within_tag = 0;
printf(">\n");
}
if (!strcmp(section->name, "tags")) {
if (section->flags & SECTION_FLAG_HAS_VARIABLE_FIELDS) {
xml->indent_level++;
} else {
if (!(parent_section->flags & SECTION_FLAG_IS_ARRAY) &&
(wctx->level && wctx->nb_item[wctx->level-1]))
printf("\n");
if (parent_section && (parent_section->flags & SECTION_FLAG_IS_WRAPPER) &&
wctx->level && wctx->nb_item[wctx->level-1])
printf("\n");
xml->indent_level++;
if (section->flags & SECTION_FLAG_IS_ARRAY) {
@@ -1303,7 +1316,7 @@ static void xml_print_section_footer(WriterContext *wctx)
xml->within_tag = 0;
printf("/>\n");
xml->indent_level--;
} else if (!strcmp(section->name, "tags")) {
} else if (section->flags & SECTION_FLAG_HAS_VARIABLE_FIELDS) {
xml->indent_level--;
} else {
XML_INDENT(); printf("</%s>\n", section->name);
@@ -1319,9 +1332,10 @@ static void xml_print_str(WriterContext *wctx, const char *key, const char *valu
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
if (!strcmp(section->name, "tags")) {
if (section->flags & SECTION_FLAG_HAS_VARIABLE_FIELDS) {
XML_INDENT();
printf("<tag key=\"%s\"", xml_escape_str(&buf, key, wctx));
printf("<%s key=\"%s\"",
section->element_name, xml_escape_str(&buf, key, wctx));
av_bprint_clear(&buf);
printf(" value=\"%s\"/>\n", xml_escape_str(&buf, value, wctx));
} else {
@@ -1462,6 +1476,8 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
print_duration_time("pkt_duration_time", frame->pkt_duration, &stream->time_base);
if (frame->pkt_pos != -1) print_fmt ("pkt_pos", "%"PRId64, frame->pkt_pos);
else print_str_opt("pkt_pos", "N/A");
if (frame->pkt_size != -1) print_fmt ("pkt_size", "%d", av_frame_get_pkt_size(frame));
else print_str_opt("pkt_size", "N/A");
switch (stream->codec->codec_type) {
AVRational sar;
@@ -1552,14 +1568,16 @@ static void read_packets(WriterContext *w, AVFormatContext *fmt_ctx)
av_init_packet(&pkt);
while (!av_read_frame(fmt_ctx, &pkt)) {
if (do_read_packets) {
if (do_show_packets)
show_packet(w, fmt_ctx, &pkt, i++);
nb_streams_packets[pkt.stream_index]++;
}
if (do_read_frames) {
pkt1 = pkt;
while (pkt1.size && process_frame(w, fmt_ctx, &frame, &pkt1) > 0);
if (selected_streams[pkt.stream_index]) {
if (do_read_packets) {
if (do_show_packets)
show_packet(w, fmt_ctx, &pkt, i++);
nb_streams_packets[pkt.stream_index]++;
}
if (do_read_frames) {
pkt1 = pkt;
while (pkt1.size && process_frame(w, fmt_ctx, &frame, &pkt1) > 0);
}
}
av_free_packet(&pkt);
}
@@ -1621,10 +1639,6 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
print_str("codec_tag_string", val_str);
print_fmt("codec_tag", "0x%04x", dec_ctx->codec_tag);
/* Print useful disposition */
print_int("default", !!(stream->disposition & AV_DISPOSITION_DEFAULT));
print_int("forced", !!(stream->disposition & AV_DISPOSITION_FORCED));
switch (dec_ctx->codec_type) {
case AVMEDIA_TYPE_VIDEO:
print_int("width", dec_ctx->width);
@@ -1653,8 +1667,6 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
} else {
print_str_opt("timecode", "N/A");
}
print_int("attached_pic",
!!(stream->disposition & AV_DISPOSITION_ATTACHED_PIC));
break;
case AVMEDIA_TYPE_AUDIO:
@@ -1701,6 +1713,28 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
if (do_show_data)
writer_print_data(w, "extradata", dec_ctx->extradata,
dec_ctx->extradata_size);
/* Print disposition information */
#define PRINT_DISPOSITION(flagname, name) do { \
print_int(name, !!(stream->disposition & AV_DISPOSITION_##flagname)); \
} while (0)
if (do_show_stream_disposition) {
writer_print_section_header(w, SECTION_ID_STREAM_DISPOSITION);
PRINT_DISPOSITION(DEFAULT, "default");
PRINT_DISPOSITION(DUB, "dub");
PRINT_DISPOSITION(ORIGINAL, "original");
PRINT_DISPOSITION(COMMENT, "comment");
PRINT_DISPOSITION(LYRICS, "lyrics");
PRINT_DISPOSITION(KARAOKE, "karaoke");
PRINT_DISPOSITION(FORCED, "forced");
PRINT_DISPOSITION(HEARING_IMPAIRED, "hearing_impaired");
PRINT_DISPOSITION(VISUAL_IMPAIRED, "visual_impaired");
PRINT_DISPOSITION(CLEAN_EFFECTS, "clean_effects");
PRINT_DISPOSITION(ATTACHED_PIC, "attached_pic");
writer_print_section_footer(w);
}
show_tags(w, stream->metadata, SECTION_ID_STREAM_TAGS);
writer_print_section_footer(w);
@@ -1713,7 +1747,8 @@ static void show_streams(WriterContext *w, AVFormatContext *fmt_ctx)
int i;
writer_print_section_header(w, SECTION_ID_STREAMS);
for (i = 0; i < fmt_ctx->nb_streams; i++)
show_stream(w, fmt_ctx, i);
if (selected_streams[i])
show_stream(w, fmt_ctx, i);
writer_print_section_footer(w);
}
@@ -1820,7 +1855,7 @@ static void close_input_file(AVFormatContext **ctx_ptr)
static int probe_file(WriterContext *wctx, const char *filename)
{
AVFormatContext *fmt_ctx;
int ret;
int ret, i;
int section_id;
do_read_frames = do_show_frames || do_count_frames;
@@ -1830,6 +1865,22 @@ static int probe_file(WriterContext *wctx, const char *filename)
if (ret >= 0) {
nb_streams_frames = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_frames));
nb_streams_packets = av_calloc(fmt_ctx->nb_streams, sizeof(*nb_streams_packets));
selected_streams = av_calloc(fmt_ctx->nb_streams, sizeof(*selected_streams));
for (i = 0; i < fmt_ctx->nb_streams; i++) {
if (stream_specifier) {
ret = avformat_match_stream_specifier(fmt_ctx,
fmt_ctx->streams[i],
stream_specifier);
if (ret < 0)
goto end;
else
selected_streams[i] = ret;
} else {
selected_streams[i] = 1;
}
}
if (do_read_frames || do_read_packets) {
if (do_show_frames && do_show_packets &&
wctx->writer->flags & WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER)
@@ -1849,9 +1900,11 @@ static int probe_file(WriterContext *wctx, const char *filename)
if (do_show_format)
show_format(wctx, fmt_ctx);
end:
close_input_file(&fmt_ctx);
av_freep(&nb_streams_frames);
av_freep(&nb_streams_packets);
av_freep(&selected_streams);
}
return ret;
}
@@ -1891,6 +1944,7 @@ static void ffprobe_show_program_version(WriterContext *w)
print_int("minor", LIB##LIBNAME##_VERSION_MINOR); \
print_int("micro", LIB##LIBNAME##_VERSION_MICRO); \
print_int("version", version); \
print_str("ident", LIB##LIBNAME##_IDENT); \
writer_print_section_footer(w); \
} \
} while (0)
@@ -1919,11 +1973,101 @@ static int opt_format(void *optctx, const char *opt, const char *arg)
return 0;
}
static inline void mark_section_show_entries(SectionID section_id,
int show_all_entries, AVDictionary *entries)
{
struct section *section = &sections[section_id];
section->show_all_entries = show_all_entries;
if (show_all_entries) {
SectionID *id;
for (id = section->children_ids; *id != -1; id++)
mark_section_show_entries(*id, show_all_entries, entries);
} else {
av_dict_copy(&section->entries_to_show, entries, 0);
}
}
static int match_section(const char *section_name,
int show_all_entries, AVDictionary *entries)
{
int i, ret = 0;
for (i = 0; i < FF_ARRAY_ELEMS(sections); i++) {
const struct section *section = &sections[i];
if (!strcmp(section_name, section->name) ||
(section->unique_name && !strcmp(section_name, section->unique_name))) {
av_log(NULL, AV_LOG_DEBUG,
"'%s' matches section with unique name '%s'\n", section_name,
(char *)av_x_if_null(section->unique_name, section->name));
ret++;
mark_section_show_entries(section->id, show_all_entries, entries);
}
}
return ret;
}
static int opt_show_entries(void *optctx, const char *opt, const char *arg)
{
const char *p = arg;
int ret = 0;
while (*p) {
AVDictionary *entries = NULL;
char *section_name = av_get_token(&p, "=:");
int show_all_entries = 0;
if (!section_name) {
av_log(NULL, AV_LOG_ERROR,
"Missing section name for option '%s'\n", opt);
return AVERROR(EINVAL);
}
if (*p == '=') {
p++;
while (*p && *p != ':') {
char *entry = av_get_token(&p, ",:");
if (!entry)
break;
av_log(NULL, AV_LOG_VERBOSE,
"Adding '%s' to the entries to show in section '%s'\n",
entry, section_name);
av_dict_set(&entries, entry, "", AV_DICT_DONT_STRDUP_KEY);
if (*p == ',')
p++;
}
} else {
show_all_entries = 1;
}
ret = match_section(section_name, show_all_entries, entries);
if (ret == 0) {
av_log(NULL, AV_LOG_ERROR, "No match for section '%s'\n", section_name);
ret = AVERROR(EINVAL);
}
av_dict_free(&entries);
av_free(section_name);
if (ret <= 0)
break;
if (*p)
p++;
}
return ret;
}
static int opt_show_format_entry(void *optctx, const char *opt, const char *arg)
{
do_show_format = 1;
av_dict_set(&fmt_entries_to_show, arg, "", 0);
return 0;
char *buf = av_asprintf("format=%s", arg);
int ret;
av_log(NULL, AV_LOG_WARNING,
"Option '%s' is deprecated, use '-show_entries format=%s' instead\n",
opt, arg);
ret = opt_show_entries(optctx, opt, buf);
av_free(buf);
return ret;
}
static void opt_input_file(void *optctx, const char *arg)
@@ -1964,13 +2108,57 @@ static int opt_pretty(void *optctx, const char *opt, const char *arg)
return 0;
}
static int opt_show_versions(const char *opt, const char *arg)
static void print_section(SectionID id, int level)
{
do_show_program_version = 1;
do_show_library_versions = 1;
const SectionID *pid;
const struct section *section = &sections[id];
printf("%c%c%c",
section->flags & SECTION_FLAG_IS_WRAPPER ? 'W' : '.',
section->flags & SECTION_FLAG_IS_ARRAY ? 'A' : '.',
section->flags & SECTION_FLAG_HAS_VARIABLE_FIELDS ? 'V' : '.');
printf("%*c %s", level * 4, ' ', section->name);
if (section->unique_name)
printf("/%s", section->unique_name);
printf("\n");
for (pid = section->children_ids; *pid != -1; pid++)
print_section(*pid, level+1);
}
static int opt_sections(void *optctx, const char *opt, const char *arg)
{
printf("Sections:\n"
"W.. = Section is a wrapper (contains other sections, no local entries)\n"
".A. = Section contains an array of elements of the same type\n"
"..V = Section may contain a variable number of fields with variable keys\n"
"FLAGS NAME/UNIQUE_NAME\n"
"---\n");
print_section(SECTION_ID_ROOT, 0);
return 0;
}
static int opt_show_versions(const char *opt, const char *arg)
{
mark_section_show_entries(SECTION_ID_PROGRAM_VERSION, 1, NULL);
mark_section_show_entries(SECTION_ID_LIBRARY_VERSION, 1, NULL);
return 0;
}
#define DEFINE_OPT_SHOW_SECTION(section, target_section_id) \
static int opt_show_##section(const char *opt, const char *arg) \
{ \
mark_section_show_entries(SECTION_ID_##target_section_id, 1, NULL); \
return 0; \
}
DEFINE_OPT_SHOW_SECTION(error, ERROR);
DEFINE_OPT_SHOW_SECTION(format, FORMAT);
DEFINE_OPT_SHOW_SECTION(frames, FRAMES);
DEFINE_OPT_SHOW_SECTION(library_versions, LIBRARY_VERSIONS);
DEFINE_OPT_SHOW_SECTION(packets, PACKETS);
DEFINE_OPT_SHOW_SECTION(program_version, PROGRAM_VERSION);
DEFINE_OPT_SHOW_SECTION(streams, STREAMS);
static const OptionDef real_options[] = {
#include "cmdutils_common_opts.h"
{ "f", HAS_ARG, {.func_arg = opt_format}, "force format", "format" },
@@ -1985,18 +2173,22 @@ static const OptionDef real_options[] = {
{ "print_format", OPT_STRING | HAS_ARG, {(void*)&print_format},
"set the output printing format (available formats are: default, compact, csv, flat, ini, json, xml)", "format" },
{ "of", OPT_STRING | HAS_ARG, {(void*)&print_format}, "alias for -print_format", "format" },
{ "select_streams", OPT_STRING | HAS_ARG, {(void*)&stream_specifier}, "select the specified streams", "stream_specifier" },
{ "sections", OPT_EXIT, {.func_arg = opt_sections}, "print sections structure and section information, and exit" },
{ "show_data", OPT_BOOL, {(void*)&do_show_data}, "show packets data" },
{ "show_error", OPT_BOOL, {(void*)&do_show_error} , "show probing error" },
{ "show_format", OPT_BOOL, {&do_show_format} , "show format/container info" },
{ "show_frames", OPT_BOOL, {(void*)&do_show_frames} , "show frames info" },
{ "show_error", 0, {(void*)&opt_show_error}, "show probing error" },
{ "show_format", 0, {(void*)&opt_show_format}, "show format/container info" },
{ "show_frames", 0, {(void*)&opt_show_frames}, "show frames info" },
{ "show_format_entry", HAS_ARG, {.func_arg = opt_show_format_entry},
"show a particular entry from the format/container info", "entry" },
{ "show_packets", OPT_BOOL, {&do_show_packets}, "show packets info" },
{ "show_streams", OPT_BOOL, {&do_show_streams}, "show streams info" },
{ "show_entries", HAS_ARG, {.func_arg = opt_show_entries},
"show a set of specified entries", "entry_list" },
{ "show_packets", 0, {(void*)&opt_show_packets}, "show packets info" },
{ "show_streams", 0, {(void*)&opt_show_streams}, "show streams info" },
{ "count_frames", OPT_BOOL, {(void*)&do_count_frames}, "count the number of frames per stream" },
{ "count_packets", OPT_BOOL, {(void*)&do_count_packets}, "count the number of packets per stream" },
{ "show_program_version", OPT_BOOL, {(void*)&do_show_program_version}, "show ffprobe version" },
{ "show_library_versions", OPT_BOOL, {(void*)&do_show_library_versions}, "show library versions" },
{ "show_program_version", 0, {(void*)&opt_show_program_version}, "show ffprobe version" },
{ "show_library_versions", 0, {(void*)&opt_show_library_versions}, "show library versions" },
{ "show_versions", 0, {(void*)&opt_show_versions}, "show program and library versions" },
{ "show_private_data", OPT_BOOL, {(void*)&show_private_data}, "show private data" },
{ "private", OPT_BOOL, {(void*)&show_private_data}, "same as show_private_data" },
@@ -2006,15 +2198,34 @@ static const OptionDef real_options[] = {
{ NULL, },
};
static inline int check_section_show_entries(int section_id)
{
int *id;
struct section *section = &sections[section_id];
if (sections[section_id].show_all_entries || sections[section_id].entries_to_show)
return 1;
for (id = section->children_ids; *id != -1; id++)
if (check_section_show_entries(*id))
return 1;
return 0;
}
#define SET_DO_SHOW(id, varname) do { \
if (check_section_show_entries(SECTION_ID_##id)) \
do_show_##varname = 1; \
} while (0)
int main(int argc, char **argv)
{
const Writer *w;
WriterContext *wctx;
char *buf;
char *w_name = NULL, *w_args = NULL;
int ret;
int ret, i;
av_log_set_flags(AV_LOG_SKIP_REPEATED);
atexit(exit_program);
options = real_options;
parse_loglevel(argc, argv, options);
av_register_all();
@@ -2027,6 +2238,16 @@ int main(int argc, char **argv)
show_banner(argc, argv, options);
parse_options(NULL, argc, argv, options, opt_input_file);
/* mark things to show, based on -show_entries */
SET_DO_SHOW(ERROR, error);
SET_DO_SHOW(FORMAT, format);
SET_DO_SHOW(FRAMES, frames);
SET_DO_SHOW(LIBRARY_VERSIONS, library_versions);
SET_DO_SHOW(PACKETS, packets);
SET_DO_SHOW(PROGRAM_VERSION, program_version);
SET_DO_SHOW(STREAMS, streams);
SET_DO_SHOW(STREAM_DISPOSITION, stream_disposition);
if (do_bitexact && (do_show_program_version || do_show_library_versions)) {
av_log(NULL, AV_LOG_ERROR,
"-bitexact and -show_program_version or -show_library_versions "
@@ -2039,6 +2260,10 @@ int main(int argc, char **argv)
if (!print_format)
print_format = av_strdup("default");
if (!print_format) {
ret = AVERROR(ENOMEM);
goto end;
}
w_name = av_strtok(print_format, "=", &buf);
w_args = buf;
@@ -2079,7 +2304,8 @@ end:
av_freep(&print_format);
uninit_opts();
av_dict_free(&fmt_entries_to_show);
for (i = 0; i < FF_ARRAY_ELEMS(sections); i++)
av_dict_free(&(sections[i].entries_to_show));
avformat_network_deinit();

View File

@@ -29,6 +29,7 @@
#endif
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "libavformat/avformat.h"
// FIXME those are internal headers, ffserver _really_ shouldn't use them
#include "libavformat/ffm.h"
@@ -44,6 +45,7 @@
#include "libavutil/avstring.h"
#include "libavutil/lfg.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/random_seed.h"
#include "libavutil/parseutils.h"
@@ -305,12 +307,10 @@ static int rtp_new_av_stream(HTTPContext *c,
HTTPContext *rtsp_c);
static const char *my_program_name;
static const char *my_program_dir;
static const char *config_filename = "/etc/ffserver.conf";
static int ffserver_debug;
static int ffserver_daemon;
static int no_launch;
static int need_to_start_children;
@@ -328,12 +328,40 @@ static AVLFG random_state;
static FILE *logfile = NULL;
/* FIXME: make ffserver work with IPv6 */
void av_noreturn exit_program(int ret)
static int64_t ffm_read_write_index(int fd)
{
exit(ret);
uint8_t buf[8];
if (lseek(fd, 8, SEEK_SET) < 0)
return AVERROR(EIO);
if (read(fd, buf, 8) != 8)
return AVERROR(EIO);
return AV_RB64(buf);
}
static int ffm_write_write_index(int fd, int64_t pos)
{
uint8_t buf[8];
int i;
for(i=0;i<8;i++)
buf[i] = (pos >> (56 - i * 8)) & 0xff;
if (lseek(fd, 8, SEEK_SET) < 0)
return AVERROR(EIO);
if (write(fd, buf, 8) != 8)
return AVERROR(EIO);
return 8;
}
static void ffm_set_write_index(AVFormatContext *s, int64_t pos,
int64_t file_size)
{
FFMContext *ffm = s->priv_data;
ffm->write_index = pos;
ffm->file_size = file_size;
}
/* FIXME: make ffserver work with IPv6 */
/* resolve host with also IP address parsing */
static int resolve_host(struct in_addr *sin_addr, const char *hostname)
{
@@ -493,19 +521,12 @@ static void start_children(FFStream *feed)
close(i);
if (!ffserver_debug) {
i = open("/dev/null", O_RDWR);
if (i != -1) {
dup2(i, 0);
dup2(i, 1);
dup2(i, 2);
close(i);
}
}
/* This is needed to make relative pathnames work */
if (chdir(my_program_dir) < 0) {
http_log("chdir failed\n");
exit(1);
if (!freopen("/dev/null", "r", stdin))
http_log("failed to redirect STDIN to /dev/null\n;");
if (!freopen("/dev/null", "w", stdout))
http_log("failed to redirect STDOUT to /dev/null\n;");
if (!freopen("/dev/null", "w", stderr))
http_log("failed to redirect STDERR to /dev/null\n;");
}
signal(SIGPIPE, SIG_DFL);
@@ -557,7 +578,7 @@ static void start_multicast(void)
FFStream *stream;
char session_id[32];
HTTPContext *rtp_c;
struct sockaddr_in dest_addr;
struct sockaddr_in dest_addr = {0};
int default_port, stream_index;
default_port = 6000;
@@ -772,7 +793,7 @@ static void http_send_too_busy_reply(int fd)
"\r\n"
"<html><head><title>Too busy</title></head><body>\r\n"
"<p>The server is too busy to serve your request at this time.</p>\r\n"
"<p>The number of current connections is %d, and this exceeds the limit of %d.</p>\r\n"
"<p>The number of current connections is %u, and this exceeds the limit of %u.</p>\r\n"
"</body></html>\r\n",
nb_connections, nb_max_connections);
av_assert0(len < sizeof(buffer));
@@ -783,7 +804,8 @@ static void http_send_too_busy_reply(int fd)
static void new_connection(int server_fd, int is_rtsp)
{
struct sockaddr_in from_addr;
int fd, len;
socklen_t len;
int fd;
HTTPContext *c = NULL;
len = sizeof(from_addr);
@@ -899,6 +921,8 @@ static void close_connection(HTTPContext *c)
for(i=0; i<ctx->nb_streams; i++)
av_free(ctx->streams[i]);
av_freep(&ctx->streams);
av_freep(&ctx->priv_data);
if (c->stream && !c->post && c->stream->stream_type == STREAM_TYPE_LIVE)
current_bandwidth -= c->stream->bandwidth;
@@ -1466,7 +1490,8 @@ enum RedirType {
/* parse http request and prepare header */
static int http_parse_request(HTTPContext *c)
{
char *p;
const char *p;
char *p1;
enum RedirType redir_type;
char cmd[32];
char info[1024], filename[1024];
@@ -1477,10 +1502,10 @@ static int http_parse_request(HTTPContext *c)
FFStream *stream;
int i;
char ratebuf[32];
char *useragent = 0;
const char *useragent = 0;
p = c->buffer;
get_word(cmd, sizeof(cmd), (const char **)&p);
get_word(cmd, sizeof(cmd), &p);
av_strlcpy(c->method, cmd, sizeof(c->method));
if (!strcmp(cmd, "GET"))
@@ -1490,7 +1515,7 @@ static int http_parse_request(HTTPContext *c)
else
return -1;
get_word(url, sizeof(url), (const char **)&p);
get_word(url, sizeof(url), &p);
av_strlcpy(c->url, url, sizeof(c->url));
get_word(protocol, sizeof(protocol), (const char **)&p);
@@ -1503,10 +1528,10 @@ static int http_parse_request(HTTPContext *c)
http_log("%s - - New connection: %s %s\n", inet_ntoa(c->from_addr.sin_addr), cmd, url);
/* find the filename and the optional info string in the request */
p = strchr(url, '?');
if (p) {
av_strlcpy(info, p, sizeof(info));
*p = '\0';
p1 = strchr(url, '?');
if (p1) {
av_strlcpy(info, p1, sizeof(info));
*p1 = '\0';
} else
info[0] = '\0';
@@ -1625,7 +1650,7 @@ static int http_parse_request(HTTPContext *c)
}
if (redir_type != REDIR_NONE) {
char *hostinfo = 0;
const char *hostinfo = 0;
for (p = c->buffer; *p && *p != '\r' && *p != '\n'; ) {
if (av_strncasecmp(p, "Host:", 5) == 0) {
@@ -1707,7 +1732,8 @@ static int http_parse_request(HTTPContext *c)
case REDIR_SDP:
{
uint8_t *sdp_data;
int sdp_data_size, len;
int sdp_data_size;
socklen_t len;
struct sockaddr_in my_addr;
snprintf(q, c->buffer_size,
@@ -1758,7 +1784,7 @@ static int http_parse_request(HTTPContext *c)
if (!stream->is_feed) {
/* However it might be a status report from WMP! Let us log the
* data as it might come in handy one day. */
char *logline = 0;
const char *logline = 0;
int client_id = 0;
for (p = c->buffer; *p && *p != '\r' && *p != '\n'; ) {
@@ -2019,7 +2045,7 @@ static void compute_status(HTTPContext *c)
if (stream->pid) {
avio_printf(pb, "Running as pid %d.\n", stream->pid);
#if defined(linux) && !defined(CONFIG_NOCUTILS)
#if defined(linux)
{
FILE *pid_stat;
char ps_cmd[64];
@@ -2034,7 +2060,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);
@@ -2689,8 +2715,6 @@ static int http_receive_data(HTTPContext *c)
/* a packet has been received : write it in the store, except
if header */
if (c->data_count > FFM_PACKET_SIZE) {
// printf("writing pos=0x%"PRIx64" size=0x%"PRIx64"\n", feed->feed_write_index, feed->feed_size);
/* XXX: use llseek or url_seek */
lseek(c->feed_fd, feed->feed_write_index, SEEK_SET);
if (write(c->feed_fd, c->buffer, FFM_PACKET_SIZE) < 0) {
@@ -2937,12 +2961,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;
@@ -2992,7 +3018,8 @@ static void rtsp_cmd_describe(HTTPContext *c, const char *url)
char path1[1024];
const char *path;
uint8_t *content;
int content_length, len;
int content_length;
socklen_t len;
struct sockaddr_in my_addr;
/* find which url is asked */
@@ -3481,6 +3508,9 @@ static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int cop
{
AVStream *fst;
if(stream->nb_streams >= FF_ARRAY_ELEMS(stream->streams))
return NULL;
fst = av_mallocz(sizeof(AVStream));
if (!fst)
return NULL;
@@ -3488,7 +3518,7 @@ static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int cop
fst->codec = avcodec_alloc_context3(NULL);
memcpy(fst->codec, codec, sizeof(AVCodecContext));
if (codec->extradata_size) {
fst->codec->extradata = av_malloc(codec->extradata_size);
fst->codec->extradata = av_mallocz(codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
memcpy(fst->codec->extradata, codec->extradata,
codec->extradata_size);
}
@@ -3567,6 +3597,8 @@ static void extract_mpeg4_header(AVFormatContext *infile)
AVStream *st;
const uint8_t *p;
infile->flags |= AVFMT_FLAG_NOFILLIN | AVFMT_FLAG_NOPARSE;
mpeg4_count = 0;
for(i=0;i<infile->nb_streams;i++) {
st = infile->streams[i];
@@ -3580,7 +3612,7 @@ static void extract_mpeg4_header(AVFormatContext *infile)
printf("MPEG4 without extra data: trying to find header in %s\n", infile->filename);
while (mpeg4_count > 0) {
if (av_read_packet(infile, &pkt) < 0)
if (av_read_frame(infile, &pkt) < 0)
break;
st = infile->streams[pkt.stream_index];
if (st->codec->codec_id == AV_CODEC_ID_MPEG4 &&
@@ -3595,7 +3627,7 @@ static void extract_mpeg4_header(AVFormatContext *infile)
p[2] == 0x01 && p[3] == 0xb6) {
size = p - pkt.data;
// av_hex_dump_log(infile, AV_LOG_DEBUG, pkt.data, size);
st->codec->extradata = av_malloc(size);
st->codec->extradata = av_mallocz(size + FF_INPUT_BUFFER_PADDING_SIZE);
st->codec->extradata_size = size;
memcpy(st->codec->extradata, pkt.data, size);
break;
@@ -3828,6 +3860,9 @@ static void add_codec(FFStream *stream, AVCodecContext *av)
{
AVStream *st;
if(stream->nb_streams >= FF_ARRAY_ELEMS(stream->streams))
return;
/* compute default parameters */
switch(av->codec_type) {
case AVMEDIA_TYPE_AUDIO:
@@ -4085,7 +4120,7 @@ static int parse_ffconfig(const char *filename)
ERROR("%s:%d: Invalid host/IP address: %s\n", arg);
}
} else if (!av_strcasecmp(cmd, "NoDaemon")) {
ffserver_daemon = 0;
// do nothing here, its the default now
} else if (!av_strcasecmp(cmd, "RTSPPort")) {
get_arg(arg, sizeof(arg), &p);
val = atoi(arg);
@@ -4172,10 +4207,7 @@ static int parse_ffconfig(const char *filename)
feed->child_argv[i] = av_strdup(arg);
}
feed->child_argv[i] = av_malloc(30 + strlen(feed->filename));
snprintf(feed->child_argv[i], 30+strlen(feed->filename),
"http://%s:%d/%s",
feed->child_argv[i] = av_asprintf("http://%s:%d/%s",
(my_http_addr.sin_addr.s_addr == INADDR_ANY) ? "127.0.0.1" :
inet_ntoa(my_http_addr.sin_addr),
ntohs(my_http_addr.sin_port), feed->filename);
@@ -4237,7 +4269,7 @@ static int parse_ffconfig(const char *filename)
stream = av_mallocz(sizeof(FFStream));
get_arg(stream->filename, sizeof(stream->filename), &p);
q = strrchr(stream->filename, '>');
if (*q)
if (q)
*q = '\0';
for (s = first_stream; s; s = s->next) {
@@ -4659,7 +4691,6 @@ static void handle_child_exit(int sig)
static void opt_debug(void)
{
ffserver_debug = 1;
ffserver_daemon = 0;
logfilename[0] = '-';
}
@@ -4690,8 +4721,6 @@ int main(int argc, char **argv)
show_banner(argc, argv, options);
my_program_name = argv[0];
my_program_dir = getcwd(0, 0);
ffserver_daemon = 1;
parse_options(NULL, argc, argv, options, NULL);
@@ -4723,37 +4752,9 @@ int main(int argc, char **argv)
compute_bandwidth();
/* put the process in background and detach it from its TTY */
if (ffserver_daemon) {
int pid;
pid = fork();
if (pid < 0) {
perror("fork");
exit(1);
} else if (pid > 0) {
/* parent : exit */
exit(0);
} else {
/* child */
setsid();
close(0);
open("/dev/null", O_RDWR);
if (strcmp(logfilename, "-") != 0) {
close(1);
dup(0);
}
close(2);
dup(0);
}
}
/* signal init */
signal(SIGPIPE, SIG_IGN);
if (ffserver_daemon)
chdir("/");
if (http_server() < 0) {
http_log("Could not start server\n");
exit(1);

172
libavcodec/012v.c Normal file
View File

@@ -0,0 +1,172 @@
/*
* 012v decoder
*
* Copyright (C) 2012 Carl Eugen Hoyos
*
* 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 "avcodec.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
static av_cold int zero12v_decode_init(AVCodecContext *avctx)
{
avctx->pix_fmt = PIX_FMT_YUV422P16;
avctx->bits_per_raw_sample = 10;
avctx->coded_frame = avcodec_alloc_frame();
if (!avctx->coded_frame)
return AVERROR(ENOMEM);
if (avctx->codec_tag == MKTAG('a', '1', '2', 'v'))
av_log_ask_for_sample(avctx, "Samples with actual transparency needed\n");
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
return 0;
}
static int zero12v_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame, AVPacket *avpkt)
{
int line = 0, ret;
const int width = avctx->width;
AVFrame *pic = avctx->coded_frame;
uint16_t *y, *u, *v;
const uint8_t *line_end, *src = avpkt->data;
int stride = avctx->width * 8 / 3;
if (pic->data[0])
avctx->release_buffer(avctx, pic);
if (width == 1) {
av_log(avctx, AV_LOG_ERROR, "Width 1 not supported.\n");
return AVERROR_INVALIDDATA;
}
if (avpkt->size < avctx->height * stride) {
av_log(avctx, AV_LOG_ERROR, "Packet too small: %d instead of %d\n",
avpkt->size, avctx->height * stride);
return AVERROR_INVALIDDATA;
}
pic->reference = 0;
if ((ret = ff_get_buffer(avctx, pic)) < 0)
return ret;
y = (uint16_t *)pic->data[0];
u = (uint16_t *)pic->data[1];
v = (uint16_t *)pic->data[2];
line_end = avpkt->data + stride;
while (line++ < avctx->height) {
while (1) {
uint32_t t = AV_RL32(src);
src += 4;
*u++ = t << 6 & 0xFFC0;
*y++ = t >> 4 & 0xFFC0;
*v++ = t >> 14 & 0xFFC0;
if (src >= line_end - 1) {
*y = 0x80;
src++;
line_end += stride;
y = (uint16_t *)(pic->data[0] + line * pic->linesize[0]);
u = (uint16_t *)(pic->data[1] + line * pic->linesize[1]);
v = (uint16_t *)(pic->data[2] + line * pic->linesize[2]);
break;
}
t = AV_RL32(src);
src += 4;
*y++ = t << 6 & 0xFFC0;
*u++ = t >> 4 & 0xFFC0;
*y++ = t >> 14 & 0xFFC0;
if (src >= line_end - 2) {
if (!(width & 1)) {
*y = 0x80;
src += 2;
}
line_end += stride;
y = (uint16_t *)(pic->data[0] + line * pic->linesize[0]);
u = (uint16_t *)(pic->data[1] + line * pic->linesize[1]);
v = (uint16_t *)(pic->data[2] + line * pic->linesize[2]);
break;
}
t = AV_RL32(src);
src += 4;
*v++ = t << 6 & 0xFFC0;
*y++ = t >> 4 & 0xFFC0;
*u++ = t >> 14 & 0xFFC0;
if (src >= line_end - 1) {
*y = 0x80;
src++;
line_end += stride;
y = (uint16_t *)(pic->data[0] + line * pic->linesize[0]);
u = (uint16_t *)(pic->data[1] + line * pic->linesize[1]);
v = (uint16_t *)(pic->data[2] + line * pic->linesize[2]);
break;
}
t = AV_RL32(src);
src += 4;
*y++ = t << 6 & 0xFFC0;
*v++ = t >> 4 & 0xFFC0;
*y++ = t >> 14 & 0xFFC0;
if (src >= line_end - 2) {
if (width & 1) {
*y = 0x80;
src += 2;
}
line_end += stride;
y = (uint16_t *)(pic->data[0] + line * pic->linesize[0]);
u = (uint16_t *)(pic->data[1] + line * pic->linesize[1]);
v = (uint16_t *)(pic->data[2] + line * pic->linesize[2]);
break;
}
}
}
*got_frame = 1;
*(AVFrame*)data= *avctx->coded_frame;
return avpkt->size;
}
static av_cold int zero12v_decode_close(AVCodecContext *avctx)
{
AVFrame *pic = avctx->coded_frame;
if (pic->data[0])
avctx->release_buffer(avctx, pic);
av_freep(&avctx->coded_frame);
return 0;
}
AVCodec ff_zero12v_decoder = {
.name = "012v",
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_012V,
.init = zero12v_decode_init,
.close = zero12v_decode_close,
.decode = zero12v_decode_frame,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
};

View File

@@ -29,6 +29,7 @@
#include "bytestream.h"
#include "dsputil.h"
#include "get_bits.h"
#include "internal.h"
#include "libavutil/avassert.h"
@@ -345,11 +346,11 @@ static void decode_p_block(FourXContext *f, uint16_t *dst, uint16_t *src,
av_assert2(code >= 0 && code <= 6);
if (code == 0) {
if (f->g.buffer_end - f->g.buffer < 1) {
if (bytestream2_get_bytes_left(&f->g) < 1) {
av_log(f->avctx, AV_LOG_ERROR, "bytestream overread\n");
return;
}
src += f->mv[bytestream2_get_byte(&f->g)];
src += f->mv[bytestream2_get_byteu(&f->g)];
if (start > src || src > end) {
av_log(f->avctx, AV_LOG_ERROR, "mv out of pic\n");
return;
@@ -368,37 +369,37 @@ static void decode_p_block(FourXContext *f, uint16_t *dst, uint16_t *src,
} else if (code == 3 && f->version < 2) {
mcdc(dst, src, log2w, h, stride, 1, 0);
} else if (code == 4) {
if (f->g.buffer_end - f->g.buffer < 1) {
if (bytestream2_get_bytes_left(&f->g) < 1) {
av_log(f->avctx, AV_LOG_ERROR, "bytestream overread\n");
return;
}
src += f->mv[bytestream2_get_byte(&f->g)];
src += f->mv[bytestream2_get_byteu(&f->g)];
if (start > src || src > end) {
av_log(f->avctx, AV_LOG_ERROR, "mv out of pic\n");
return;
}
if (f->g2.buffer_end - f->g2.buffer < 1){
if (bytestream2_get_bytes_left(&f->g2) < 2){
av_log(f->avctx, AV_LOG_ERROR, "wordstream overread\n");
return;
}
mcdc(dst, src, log2w, h, stride, 1, bytestream2_get_le16(&f->g2));
mcdc(dst, src, log2w, h, stride, 1, bytestream2_get_le16u(&f->g2));
} else if (code == 5) {
if (f->g2.buffer_end - f->g2.buffer < 1) {
if (bytestream2_get_bytes_left(&f->g2) < 2) {
av_log(f->avctx, AV_LOG_ERROR, "wordstream overread\n");
return;
}
mcdc(dst, src, log2w, h, stride, 0, bytestream2_get_le16(&f->g2));
mcdc(dst, src, log2w, h, stride, 0, bytestream2_get_le16u(&f->g2));
} else if (code == 6) {
if (f->g2.buffer_end - f->g2.buffer < 2) {
if (bytestream2_get_bytes_left(&f->g2) < 4) {
av_log(f->avctx, AV_LOG_ERROR, "wordstream overread\n");
return;
}
if (log2w) {
dst[0] = bytestream2_get_le16(&f->g2);
dst[1] = bytestream2_get_le16(&f->g2);
dst[0] = bytestream2_get_le16u(&f->g2);
dst[1] = bytestream2_get_le16u(&f->g2);
} else {
dst[0] = bytestream2_get_le16(&f->g2);
dst[stride] = bytestream2_get_le16(&f->g2);
dst[0] = bytestream2_get_le16u(&f->g2);
dst[stride] = bytestream2_get_le16u(&f->g2);
}
}
}
@@ -428,7 +429,7 @@ static int decode_p_frame(FourXContext *f, const uint8_t *buf, int length)
bytestream_size = FFMAX(length - bitstream_size - wordstream_size, 0);
}
if (bitstream_size > length ||
if (bitstream_size > length || bitstream_size >= INT_MAX/8 ||
bytestream_size > length - bitstream_size ||
wordstream_size > length - bytestream_size - bitstream_size ||
extra > length - bytestream_size - bitstream_size - wordstream_size) {
@@ -783,7 +784,7 @@ static int decode_i_frame(FourXContext *f, const uint8_t *buf, int length)
}
static int decode_frame(AVCodecContext *avctx, void *data,
int *data_size, AVPacket *avpkt)
int *got_frame, AVPacket *avpkt)
{
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
@@ -811,6 +812,11 @@ static int decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA;
}
if (f->version <= 1) {
av_log(f->avctx, AV_LOG_ERROR, "cfrm in version %d\n", f->version);
return AVERROR_INVALIDDATA;
}
for (i = 0; i < CFRAME_BUFFER_COUNT; i++)
if (f->cfrm[i].id && f->cfrm[i].id < avctx->frame_number)
av_log(f->avctx, AV_LOG_ERROR, "lost c frame %d\n",
@@ -836,7 +842,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\n");
av_log(f->avctx, AV_LOG_ERROR, "realloc failure\n");
return -1;
}
@@ -891,10 +897,12 @@ static int decode_frame(AVCodecContext *avctx, void *data,
} else if (frame_4cc == AV_RL32("pfrm") || frame_4cc == AV_RL32("pfr2")) {
if (!f->last_picture.data[0]) {
f->last_picture.reference = 3;
if (avctx->get_buffer(avctx, &f->last_picture) < 0) {
if (ff_get_buffer(avctx, &f->last_picture) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
for (i=0; i<avctx->height; i++)
memset(f->last_picture.data[0] + i*f->last_picture.linesize[0], 0, 2*avctx->width);
}
p->pict_type = AV_PICTURE_TYPE_P;
@@ -913,7 +921,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
p->key_frame = p->pict_type == AV_PICTURE_TYPE_I;
*picture = *p;
*data_size = sizeof(AVPicture);
*got_frame = 1;
emms_c();
@@ -936,7 +944,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
if (avctx->extradata_size != 4 || !avctx->extradata) {
av_log(avctx, AV_LOG_ERROR, "extradata wrong or missing\n");
return 1;
return AVERROR_INVALIDDATA;
}
if((avctx->width % 16) || (avctx->height % 16)) {
av_log(avctx, AV_LOG_ERROR, "unsupported width/height\n");
@@ -950,9 +958,9 @@ static av_cold int decode_init(AVCodecContext *avctx)
init_vlcs(f);
if (f->version > 2)
avctx->pix_fmt = PIX_FMT_RGB565;
avctx->pix_fmt = AV_PIX_FMT_RGB565;
else
avctx->pix_fmt = PIX_FMT_BGR555;
avctx->pix_fmt = AV_PIX_FMT_BGR555;
return 0;
}

View File

@@ -38,14 +38,12 @@
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "internal.h"
static const enum PixelFormat pixfmt_rgb24[] = {
PIX_FMT_BGR24, PIX_FMT_RGB32, PIX_FMT_NONE };
static const enum AVPixelFormat pixfmt_rgb24[] = {
AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE };
/*
* Decoder context
*/
typedef struct EightBpsContext {
AVCodecContext *avctx;
AVFrame pic;
@@ -56,14 +54,8 @@ typedef struct EightBpsContext {
uint32_t pal[256];
} EightBpsContext;
/*
*
* Decode a frame
*
*/
static int decode_frame(AVCodecContext *avctx, void *data,
int *data_size, AVPacket *avpkt)
int *got_frame, AVPacket *avpkt)
{
const uint8_t *buf = avpkt->data;
int buf_size = avpkt->size;
@@ -82,7 +74,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
c->pic.reference = 0;
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
if (avctx->get_buffer(avctx, &c->pic) < 0){
if (ff_get_buffer(avctx, &c->pic) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
@@ -98,6 +90,8 @@ static int decode_frame(AVCodecContext *avctx, void *data,
for (row = 0; row < height; row++) {
pixptr = c->pic.data[0] + row * c->pic.linesize[0] + planemap[p];
pixptr_end = pixptr + c->pic.linesize[0];
if(lp - encoded + row*2 + 1 >= buf_size)
return -1;
dlen = av_be2ne16(*(const unsigned short *)(lp + row * 2));
/* Decode a row of this plane */
while (dlen > 0) {
@@ -141,19 +135,13 @@ static int decode_frame(AVCodecContext *avctx, void *data,
memcpy (c->pic.data[1], c->pal, AVPALETTE_SIZE);
}
*data_size = sizeof(AVFrame);
*got_frame = 1;
*(AVFrame*)data = c->pic;
/* always report that the buffer was completely consumed */
return buf_size;
}
/*
*
* Init 8BPS decoder
*
*/
static av_cold int decode_init(AVCodecContext *avctx)
{
EightBpsContext * const c = avctx->priv_data;
@@ -164,7 +152,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
avcodec_get_frame_defaults(&c->pic);
switch (avctx->bits_per_coded_sample) {
case 8:
avctx->pix_fmt = PIX_FMT_PAL8;
avctx->pix_fmt = AV_PIX_FMT_PAL8;
c->planes = 1;
c->planemap[0] = 0; // 1st plane is palette indexes
break;
@@ -176,7 +164,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
c->planemap[2] = 0; // 3rd plane is blue
break;
case 32:
avctx->pix_fmt = PIX_FMT_RGB32;
avctx->pix_fmt = AV_PIX_FMT_RGB32;
c->planes = 4;
#if HAVE_BIGENDIAN
c->planemap[0] = 1; // 1st plane is red
@@ -199,14 +187,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
return 0;
}
/*
*
* Uninit 8BPS decoder
*
*/
static av_cold int decode_end(AVCodecContext *avctx)
{
EightBpsContext * const c = avctx->priv_data;
@@ -217,8 +197,6 @@ static av_cold int decode_end(AVCodecContext *avctx)
return 0;
}
AVCodec ff_eightbps_decoder = {
.name = "8bps",
.type = AVMEDIA_TYPE_VIDEO,

View File

@@ -39,18 +39,20 @@
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "internal.h"
#include "libavutil/common.h"
/** decoder context */
typedef struct EightSvxContext {
AVFrame frame;
uint8_t fib_acc[2];
const int8_t *table;
/* buffer used to store the whole audio decoded/interleaved chunk,
* which is sent with the first packet */
uint8_t *samples;
int64_t samples_size;
int samples_idx;
/* buffer used to store the whole first packet.
data is only sent as one large packet */
uint8_t *data[2];
int data_size;
int data_idx;
} EightSvxContext;
static const int8_t fibonacci[16] = { -34, -21, -13, -8, -5, -3, -2, -1, 0, 1, 2, 3, 5, 8, 13, 21 };
@@ -58,48 +60,27 @@ static const int8_t exponential[16] = { -128, -64, -32, -16, -8, -4, -2, -1, 0,
#define MAX_FRAME_SIZE 2048
/**
* Interleave samples in buffer containing all left channel samples
* at the beginning, and right channel samples at the end.
* Each sample is assumed to be in signed 8-bit format.
*
* @param size the size in bytes of the dst and src buffer
*/
static void interleave_stereo(uint8_t *dst, const uint8_t *src, int size)
{
uint8_t *dst_end = dst + size;
size = size>>1;
while (dst < dst_end) {
*dst++ = *src;
*dst++ = *(src+size);
src++;
}
}
/**
* Delta decode the compressed values in src, and put the resulting
* decoded n samples in dst.
* decoded samples in dst.
*
* @param val starting value assumed by the delta sequence
* @param[in,out] state starting value. it is saved for use in the next call.
* @param table delta sequence table
* @return size in bytes of the decoded data, must be src_size*2
*/
static int delta_decode(int8_t *dst, const uint8_t *src, int src_size,
int8_t val, const int8_t *table)
static void delta_decode(uint8_t *dst, const uint8_t *src, int src_size,
uint8_t *state, const int8_t *table)
{
int n = src_size;
int8_t *dst0 = dst;
uint8_t val = *state;
while (n--) {
while (src_size--) {
uint8_t d = *src++;
val = av_clip(val + table[d & 0x0f], -127, 128);
val = av_clip_uint8(val + table[d & 0xF]);
*dst++ = val;
val = av_clip(val + table[d >> 4] , -127, 128);
val = av_clip_uint8(val + table[d >> 4]);
*dst++ = val;
}
return dst-dst0;
*state = val;
}
/** decode a frame */
@@ -107,79 +88,70 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
int *got_frame_ptr, AVPacket *avpkt)
{
EightSvxContext *esc = avctx->priv_data;
int n, out_data_size, ret;
uint8_t *src, *dst;
int buf_size;
int ch, ret;
int hdr_size = 2;
/* decode and interleave the first packet */
if (!esc->samples && avpkt) {
uint8_t *deinterleaved_samples, *p = NULL;
int packet_size = avpkt->size;
if (!esc->data[0] && avpkt) {
int chan_size = avpkt->size / avctx->channels - hdr_size;
if (packet_size % avctx->channels) {
if (avpkt->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 (esc->table) {
const uint8_t *buf = avpkt->data;
uint8_t *dst;
int buf_size = avpkt->size;
int i, n = esc->samples_size;
if (buf_size < 2) {
av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
return AVERROR(EINVAL);
}
if (!(deinterleaved_samples = av_mallocz(n)))
return AVERROR(ENOMEM);
dst = p = deinterleaved_samples;
/* the uncompressed starting value is contained in the first byte */
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;
if (avpkt->size < (hdr_size + 1) * avctx->channels) {
av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
return AVERROR(EINVAL);
}
esc->fib_acc[0] = avpkt->data[1] + 128;
if (avctx->channels == 2)
interleave_stereo(esc->samples, deinterleaved_samples, esc->samples_size);
else
memcpy(esc->samples, deinterleaved_samples, esc->samples_size);
av_freep(&p);
esc->fib_acc[1] = avpkt->data[2+chan_size+1] + 128;
esc->data_idx = 0;
esc->data_size = chan_size;
if (!(esc->data[0] = av_malloc(chan_size)))
return AVERROR(ENOMEM);
if (avctx->channels == 2) {
if (!(esc->data[1] = av_malloc(chan_size))) {
av_freep(&esc->data[0]);
return AVERROR(ENOMEM);
}
}
memcpy(esc->data[0], &avpkt->data[hdr_size], chan_size);
if (avctx->channels == 2)
memcpy(esc->data[1], &avpkt->data[2*hdr_size+chan_size], chan_size);
}
if (!esc->data[0]) {
av_log(avctx, AV_LOG_ERROR, "unexpected empty packet\n");
return AVERROR(EINVAL);
}
/* decode next piece of data from the buffer */
buf_size = FFMIN(MAX_FRAME_SIZE, esc->data_size - esc->data_idx);
if (buf_size <= 0) {
*got_frame_ptr = 0;
return avpkt->size;
}
/* get output buffer */
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) {
esc->frame.nb_samples = buf_size * 2;
if ((ret = ff_get_buffer(avctx, &esc->frame)) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return ret;
}
for (ch = 0; ch < avctx->channels; ch++) {
delta_decode(esc->frame.data[ch], &esc->data[ch][esc->data_idx],
buf_size, &esc->fib_acc[ch], esc->table);
}
esc->data_idx += buf_size;
*got_frame_ptr = 1;
*(AVFrame *)data = esc->frame;
dst = esc->frame.data[0];
src = esc->samples + esc->samples_idx;
out_data_size = esc->frame.nb_samples * avctx->channels;
for (n = out_data_size; n > 0; n--)
*dst++ = *src++ + 128;
esc->samples_idx += out_data_size;
return esc->table ?
(avctx->frame_number == 0)*2 + out_data_size / 2 :
out_data_size;
return ((avctx->frame_number == 0)*hdr_size + buf_size)*avctx->channels;
}
static av_cold int eightsvx_decode_init(AVCodecContext *avctx)
@@ -194,13 +166,11 @@ static av_cold int eightsvx_decode_init(AVCodecContext *avctx)
switch (avctx->codec->id) {
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;
}
avctx->sample_fmt = AV_SAMPLE_FMT_U8;
avctx->sample_fmt = AV_SAMPLE_FMT_U8P;
avcodec_get_frame_defaults(&esc->frame);
avctx->coded_frame = &esc->frame;
@@ -212,9 +182,10 @@ static av_cold int eightsvx_decode_close(AVCodecContext *avctx)
{
EightSvxContext *esc = avctx->priv_data;
av_freep(&esc->samples);
esc->samples_size = 0;
esc->samples_idx = 0;
av_freep(&esc->data[0]);
av_freep(&esc->data[1]);
esc->data_size = 0;
esc->data_idx = 0;
return 0;
}
@@ -230,6 +201,8 @@ AVCodec ff_eightsvx_fib_decoder = {
.close = eightsvx_decode_close,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("8SVX fibonacci"),
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
AV_SAMPLE_FMT_NONE },
};
#endif
#if CONFIG_EIGHTSVX_EXP_DECODER
@@ -243,18 +216,7 @@ AVCodec ff_eightsvx_exp_decoder = {
.close = eightsvx_decode_close,
.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 = AV_CODEC_ID_PCM_S8_PLANAR,
.priv_data_size = sizeof(EightSvxContext),
.init = eightsvx_decode_init,
.close = eightsvx_decode_close,
.decode = eightsvx_decode_frame,
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("PCM signed 8-bit planar"),
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_U8P,
AV_SAMPLE_FMT_NONE },
};
#endif

View File

@@ -16,6 +16,7 @@ HEADERS = avcodec.h \
OBJS = allcodecs.o \
audioconvert.o \
avpacket.o \
avpicture.o \
bitstream.o \
bitstream_filter.o \
codec_desc.o \
@@ -24,6 +25,8 @@ OBJS = allcodecs.o \
fmtconvert.o \
imgconvert.o \
jrevdct.o \
log2_tab.o \
mathtables.o \
options.o \
parser.o \
raw.o \
@@ -53,6 +56,8 @@ OBJS-$(CONFIG_LIBXVID) += libxvid_rc.o
OBJS-$(CONFIG_LPC) += lpc.o
OBJS-$(CONFIG_LSP) += lsp.o
OBJS-$(CONFIG_MDCT) += mdct_fixed.o mdct_float.o
OBJS-$(CONFIG_MPEGAUDIO) += mpegaudio.o mpegaudiodata.o \
mpegaudiodecheader.o
OBJS-$(CONFIG_MPEGAUDIODSP) += mpegaudiodsp.o \
mpegaudiodsp_data.o \
mpegaudiodsp_fixed.o \
@@ -66,9 +71,11 @@ OBJS-$(CONFIG_RDFT) += rdft.o $(RDFT-OBJS-yes)
OBJS-$(CONFIG_SINEWIN) += sinewin.o
OBJS-$(CONFIG_VAAPI) += vaapi.o
OBJS-$(CONFIG_VDPAU) += vdpau.o
OBJS-$(CONFIG_VIDEODSP) += videodsp.o
OBJS-$(CONFIG_VP3DSP) += vp3dsp.o
# decoders/encoders/hardware accelerators
OBJS-$(CONFIG_ZERO12V_DECODER) += 012v.o
OBJS-$(CONFIG_A64MULTI_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps.o \
@@ -84,8 +91,8 @@ OBJS-$(CONFIG_AC3_DECODER) += ac3dec.o ac3dec_data.o ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_ENCODER) += ac3enc_float.o ac3enc.o ac3tab.o \
ac3.o kbdwin.o
OBJS-$(CONFIG_AC3_FIXED_ENCODER) += ac3enc_fixed.o ac3enc.o ac3tab.o ac3.o
OBJS-$(CONFIG_ALAC_DECODER) += alac.o
OBJS-$(CONFIG_ALAC_ENCODER) += alacenc.o
OBJS-$(CONFIG_ALAC_DECODER) += alac.o alac_data.o
OBJS-$(CONFIG_ALAC_ENCODER) += alacenc.o alac_data.o
OBJS-$(CONFIG_ALS_DECODER) += alsdec.o bgmc.o mpeg4audio.o
OBJS-$(CONFIG_AMRNB_DECODER) += amrnbdec.o celp_filters.o \
celp_math.o acelp_filters.o \
@@ -105,15 +112,15 @@ OBJS-$(CONFIG_ANSI_DECODER) += ansi.o cga_data.o
OBJS-$(CONFIG_APE_DECODER) += apedec.o
OBJS-$(CONFIG_ASS_DECODER) += assdec.o ass.o ass_split.o
OBJS-$(CONFIG_ASS_ENCODER) += assenc.o ass.o
OBJS-$(CONFIG_ASV1_DECODER) += asv1.o mpeg12data.o
OBJS-$(CONFIG_ASV1_ENCODER) += asv1.o mpeg12data.o
OBJS-$(CONFIG_ASV2_DECODER) += asv1.o mpeg12data.o
OBJS-$(CONFIG_ASV2_ENCODER) += asv1.o mpeg12data.o
OBJS-$(CONFIG_ASV1_DECODER) += asvdec.o asv.o mpeg12data.o
OBJS-$(CONFIG_ASV1_ENCODER) += asvenc.o asv.o mpeg12data.o
OBJS-$(CONFIG_ASV2_DECODER) += asvdec.o asv.o mpeg12data.o
OBJS-$(CONFIG_ASV2_ENCODER) += asvenc.o asv.o mpeg12data.o
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_AVRN_DECODER) += avrndec.o mjpegdec.o mjpeg.o
OBJS-$(CONFIG_AVRP_DECODER) += r210dec.o
OBJS-$(CONFIG_AVRP_ENCODER) += r210enc.o
OBJS-$(CONFIG_AVS_DECODER) += avs.o
@@ -131,6 +138,7 @@ OBJS-$(CONFIG_BMP_DECODER) += bmp.o msrledec.o
OBJS-$(CONFIG_BMP_ENCODER) += bmpenc.o
OBJS-$(CONFIG_BMV_VIDEO_DECODER) += bmv.o
OBJS-$(CONFIG_BMV_AUDIO_DECODER) += bmv.o
OBJS-$(CONFIG_BRENDER_PIX_DECODER) += brender_pix.o
OBJS-$(CONFIG_C93_DECODER) += c93.o
OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdec.o cavsdsp.o \
cavsdata.o mpeg12data.o
@@ -141,12 +149,14 @@ 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_COMFORTNOISE_DECODER) += cngdec.o celp_filters.o
OBJS-$(CONFIG_COMFORTNOISE_ENCODER) += cngenc.o
OBJS-$(CONFIG_CPIA_DECODER) += cpia.o
OBJS-$(CONFIG_CSCD_DECODER) += cscd.o
OBJS-$(CONFIG_CYUV_DECODER) += cyuv.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_DCA_ENCODER) += dcaenc.o dca.o
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o \
dirac_arith.o mpeg12data.o dwt.o
OBJS-$(CONFIG_DFA_DECODER) += dfa.o
@@ -179,13 +189,13 @@ OBJS-$(CONFIG_EIGHTSVX_FIB_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
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1.o
OBJS-$(CONFIG_FFVHUFF_DECODER) += huffyuv.o
OBJS-$(CONFIG_FFVHUFF_ENCODER) += huffyuv.o
OBJS-$(CONFIG_FFV1_DECODER) += ffv1dec.o ffv1.o
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1enc.o ffv1.o
OBJS-$(CONFIG_FFVHUFF_DECODER) += huffyuv.o huffyuvdec.o
OBJS-$(CONFIG_FFVHUFF_ENCODER) += huffyuv.o huffyuvenc.o
OBJS-$(CONFIG_FFWAVESYNTH_DECODER) += ffwavesynth.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_FLAC_ENCODER) += flacenc.o flacdata.o flac.o flacdsp.o vorbis_data.o
OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o
OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o
OBJS-$(CONFIG_FLASHSV2_ENCODER) += flashsv2enc.o
@@ -195,7 +205,7 @@ 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_filters.o celp_math.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
@@ -218,8 +228,8 @@ 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_HUFFYUV_DECODER) += huffyuv.o huffyuvdec.o
OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o huffyuvenc.o
OBJS-$(CONFIG_IAC_DECODER) += imc.o
OBJS-$(CONFIG_IDCIN_DECODER) += idcinvideo.o
OBJS-$(CONFIG_IDF_DECODER) += bintext.o cga_data.o
@@ -257,30 +267,18 @@ 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 \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP2_DECODER) += mpegaudiodec.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP1_DECODER) += mpegaudiodec.o
OBJS-$(CONFIG_MP1FLOAT_DECODER) += mpegaudiodec_float.o
OBJS-$(CONFIG_MP2_DECODER) += mpegaudiodec.o
OBJS-$(CONFIG_MP2_ENCODER) += mpegaudioenc.o mpegaudio.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 \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP3ADUFLOAT_DECODER) += mpegaudiodec_float.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o
OBJS-$(CONFIG_MP3ON4_DECODER) += mpegaudiodec.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o \
mpeg4audio.o
OBJS-$(CONFIG_MP3ON4FLOAT_DECODER) += mpegaudiodec_float.o mpegaudiodecheader.o \
mpegaudio.o mpegaudiodata.o \
mpeg4audio.o
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_MP2FLOAT_DECODER) += mpegaudiodec_float.o
OBJS-$(CONFIG_MP3_DECODER) += mpegaudiodec.o
OBJS-$(CONFIG_MP3ADU_DECODER) += mpegaudiodec.o
OBJS-$(CONFIG_MP3ADUFLOAT_DECODER) += mpegaudiodec_float.o
OBJS-$(CONFIG_MP3FLOAT_DECODER) += mpegaudiodec_float.o
OBJS-$(CONFIG_MP3ON4_DECODER) += mpegaudiodec.o mpeg4audio.o
OBJS-$(CONFIG_MP3ON4FLOAT_DECODER) += mpegaudiodec_float.o mpeg4audio.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 \
@@ -295,6 +293,7 @@ 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_MPL2_DECODER) += mpl2dec.o ass.o
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4.o msmpeg4data.o
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4.o msmpeg4data.o h263dec.o \
h263.o ituh263dec.o mpeg4videodec.o
@@ -314,6 +313,8 @@ 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_MVC1_DECODER) += mvcdec.o
OBJS-$(CONFIG_MVC2_DECODER) += mvcdec.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 \
@@ -333,6 +334,7 @@ OBJS-$(CONFIG_PGMYUV_DECODER) += pnmdec.o pnm.o
OBJS-$(CONFIG_PGMYUV_ENCODER) += pnmenc.o pnm.o
OBJS-$(CONFIG_PGSSUB_DECODER) += pgssubdec.o
OBJS-$(CONFIG_PICTOR_DECODER) += pictordec.o cga_data.o
OBJS-$(CONFIG_PJS_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_PNG_DECODER) += png.o pngdec.o pngdsp.o
OBJS-$(CONFIG_PNG_ENCODER) += png.o pngenc.o
OBJS-$(CONFIG_PPM_DECODER) += pnmdec.o pnm.o
@@ -380,6 +382,7 @@ 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_SGIRLE_DECODER) += sgirledec.o
OBJS-$(CONFIG_SHORTEN_DECODER) += shorten.o
OBJS-$(CONFIG_SIPR_DECODER) += sipr.o acelp_pitch_delay.o \
celp_math.o acelp_vectors.o \
@@ -400,6 +403,7 @@ 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_SUBVIEWER1_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_SUBVIEWER_DECODER) += subviewerdec.o ass.o
OBJS-$(CONFIG_SUNRAST_DECODER) += sunrast.o
OBJS-$(CONFIG_SUNRAST_ENCODER) += sunrastenc.o
@@ -410,8 +414,11 @@ 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
OBJS-$(CONFIG_TEXT_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_TAK_DECODER) += takdec.o tak.o
OBJS-$(CONFIG_TARGA_DECODER) += targa.o
OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o
OBJS-$(CONFIG_TARGA_Y216_DECODER) += targa_y216dec.o
OBJS-$(CONFIG_THEORA_DECODER) += xiph.o
OBJS-$(CONFIG_THP_DECODER) += mjpegdec.o mjpeg.o
OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
@@ -461,6 +468,7 @@ OBJS-$(CONFIG_VP5_DECODER) += vp5.o vp56.o vp56data.o vp56dsp.o \
OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o vp56dsp.o \
vp6dsp.o vp56rac.o
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VPLAYER_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o
OBJS-$(CONFIG_WEBVTT_DECODER) += webvttdec.o
@@ -488,6 +496,8 @@ OBJS-$(CONFIG_XAN_WC4_DECODER) += xxan.o
OBJS-$(CONFIG_XBIN_DECODER) += bintext.o cga_data.o
OBJS-$(CONFIG_XBM_DECODER) += xbmdec.o
OBJS-$(CONFIG_XBM_ENCODER) += xbmenc.o
OBJS-$(CONFIG_XFACE_DECODER) += xfacedec.o xface.o
OBJS-$(CONFIG_XFACE_ENCODER) += xfaceenc.o xface.o
OBJS-$(CONFIG_XL_DECODER) += xl.o
OBJS-$(CONFIG_XSUB_DECODER) += xsubdec.o
OBJS-$(CONFIG_XSUB_ENCODER) += xsubenc.o
@@ -509,7 +519,6 @@ OBJS-$(CONFIG_PCM_ALAW_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_ALAW_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_BLURAY_DECODER) += pcm-mpeg.o
OBJS-$(CONFIG_PCM_DVD_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_DVD_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_F32BE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_F32BE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_F32LE_DECODER) += pcm.o
@@ -523,22 +532,30 @@ OBJS-$(CONFIG_PCM_MULAW_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_MULAW_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S8_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S8_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S8_PLANAR_DECODER) += 8svx.o
OBJS-$(CONFIG_PCM_S8_PLANAR_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S8_PLANAR_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S16BE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S16BE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S16BE_PLANAR_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S16BE_PLANAR_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S16LE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S16LE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S16LE_PLANAR_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S16LE_PLANAR_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S24BE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S24BE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S24DAUD_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S24DAUD_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S24LE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S24LE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S24LE_PLANAR_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S24LE_PLANAR_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S32BE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S32BE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S32LE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S32LE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_S32LE_PLANAR_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_S32LE_PLANAR_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_U8_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_U8_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_U16BE_DECODER) += pcm.o
@@ -558,6 +575,7 @@ OBJS-$(CONFIG_PCM_ZORK_DECODER) += pcm.o
OBJS-$(CONFIG_ADPCM_4XM_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_ADX_DECODER) += adxdec.o adx.o
OBJS-$(CONFIG_ADPCM_ADX_ENCODER) += adxenc.o adx.o
OBJS-$(CONFIG_ADPCM_AFC_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_CT_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_EA_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_EA_MAXIS_XA_DECODER) += adpcm.o adpcm_data.o
@@ -576,6 +594,7 @@ OBJS-$(CONFIG_ADPCM_IMA_DK4_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_EA_EACS_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_EA_SEAD_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_ISS_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_OKI_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_QT_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_QT_ENCODER) += adpcmenc.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_IMA_SMJPEG_DECODER) += adpcm.o adpcm_data.o
@@ -621,7 +640,7 @@ OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o
OBJS-$(CONFIG_MOV_MUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MPEGTS_MUXER) += mpeg4audio.o
OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o
OBJS-$(CONFIG_MXF_MUXER) += timecode.o
OBJS-$(CONFIG_MXF_MUXER) += timecode.o dnxhddata.o
OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o
OBJS-$(CONFIG_OGG_DEMUXER) += xiph.o flac.o flacdata.o \
mpeg12data.o vorbis_parser.o \
@@ -632,6 +651,7 @@ OBJS-$(CONFIG_RTP_MUXER) += mpeg4audio.o xiph.o
OBJS-$(CONFIG_RTPDEC) += mjpeg.o
OBJS-$(CONFIG_SPDIF_DEMUXER) += aacadtsdec.o mpeg4audio.o
OBJS-$(CONFIG_SPDIF_MUXER) += dca.o
OBJS-$(CONFIG_TAK_DEMUXER) += tak.o
OBJS-$(CONFIG_WEBM_MUXER) += mpeg4audio.o mpegaudiodata.o \
xiph.o flac.o flacdata.o \
vorbis_data.o
@@ -657,7 +677,10 @@ 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_LIBOPUS_DECODER) += libopusdec.o libopus.o \
vorbis_data.o
OBJS-$(CONFIG_LIBOPUS_ENCODER) += libopusenc.o libopus.o \
vorbis_data.o audio_frame_queue.o
OBJS-$(CONFIG_LIBSCHROEDINGER_DECODER) += libschroedingerdec.o \
libschroedinger.o
OBJS-$(CONFIG_LIBSCHROEDINGER_ENCODER) += libschroedingerenc.o \
@@ -719,6 +742,7 @@ OBJS-$(CONFIG_MPEGVIDEO_PARSER) += mpegvideo_parser.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_TAK_PARSER) += tak_parser.o tak.o
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \
msmpeg4.o msmpeg4data.o mpeg4video.o \
h263.o
@@ -748,12 +772,6 @@ 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
# table has a negative effect on performance, copy it in libavcodec as
# well.
OBJS-$(!CONFIG_SMALL) += inverse.o
SKIPHEADERS += %_tablegen.h \
%_tables.h \
aac_tablegen_decl.h \
@@ -778,6 +796,7 @@ TESTPROGS = cabac \
fft-fixed \
golomb \
iirfilter \
imgconvert \
rangecoder \
snowenc \

View File

@@ -41,7 +41,7 @@ typedef struct A64Context {
AVLFG randctx;
int mc_lifetime;
int mc_use_5col;
int mc_frame_counter;
unsigned mc_frame_counter;
int *mc_meta_charset;
int *mc_charmap;
int *mc_best_cb;

View File

@@ -378,7 +378,7 @@ AVCodec ff_a64multi_encoder = {
.init = a64multi_init_encoder,
.encode2 = a64multi_encode_frame,
.close = a64multi_close_encoder,
.pix_fmts = (const enum PixelFormat[]) {PIX_FMT_GRAY8, PIX_FMT_NONE},
.pix_fmts = (const enum AVPixelFormat[]) {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64"),
.capabilities = CODEC_CAP_DELAY,
};
@@ -392,7 +392,7 @@ AVCodec ff_a64multi5_encoder = {
.init = a64multi_init_encoder,
.encode2 = a64multi_encode_frame,
.close = a64multi_close_encoder,
.pix_fmts = (const enum PixelFormat[]) {PIX_FMT_GRAY8, PIX_FMT_NONE},
.pix_fmts = (const enum AVPixelFormat[]) {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Multicolor charset for Commodore 64, extended with 5th color (colram)"),
.capabilities = CODEC_CAP_DELAY,
};

View File

@@ -113,7 +113,7 @@ enum OCStatus {
OC_LOCKED, ///< Output configuration locked in place
};
typedef struct {
typedef struct OutputConfiguration {
MPEG4AudioConfig m4ac;
uint8_t layout_map[MAX_ELEM_ID*4][3];
int layout_map_tags;
@@ -125,7 +125,7 @@ typedef struct {
/**
* Predictor State
*/
typedef struct {
typedef struct PredictorState {
float cor0;
float cor1;
float var0;
@@ -141,12 +141,11 @@ typedef struct {
#define SCALE_MAX_POS 255 ///< scalefactor index maximum value
#define SCALE_MAX_DIFF 60 ///< maximum scalefactor difference allowed by standard
#define SCALE_DIFF_ZERO 60 ///< codebook index corresponding to zero scalefactor indices difference
#define POW_SF2_ZERO 200 ///< ff_aac_pow2sf_tab index corresponding to pow(2, 0);
/**
* Long Term Prediction
*/
typedef struct {
typedef struct LongTermPrediction {
int8_t present;
int16_t lag;
float coef;
@@ -156,7 +155,7 @@ typedef struct {
/**
* Individual Channel Stream
*/
typedef struct {
typedef struct IndividualChannelStream {
uint8_t max_sfb; ///< number of scalefactor bands per group
enum WindowSequence window_sequence[2];
uint8_t use_kb_window[2]; ///< If set, use Kaiser-Bessel window, otherwise use a sinus window.
@@ -177,7 +176,7 @@ typedef struct {
/**
* Temporal Noise Shaping
*/
typedef struct {
typedef struct TemporalNoiseShaping {
int present;
int n_filt[8];
int length[8][4];
@@ -189,7 +188,7 @@ typedef struct {
/**
* Dynamic Range Control - decoded from the bitstream but not processed further.
*/
typedef struct {
typedef struct DynamicRangeControl {
int pce_instance_tag; ///< Indicates with which program the DRC info is associated.
int dyn_rng_sgn[17]; ///< DRC sign information; 0 - positive, 1 - negative
int dyn_rng_ctl[17]; ///< DRC magnitude information
@@ -202,7 +201,7 @@ typedef struct {
*/
} DynamicRangeControl;
typedef struct {
typedef struct Pulse {
int num_pulse;
int start;
int pos[4];
@@ -212,7 +211,7 @@ typedef struct {
/**
* coupling parameters
*/
typedef struct {
typedef struct ChannelCoupling {
enum CouplingPoint coupling_point; ///< The point during decoding at which coupling is applied.
int num_coupled; ///< number of target elements
enum RawDataBlockType type[8]; ///< Type of channel element to be coupled - SCE or CPE.
@@ -226,7 +225,7 @@ typedef struct {
/**
* Single Channel Element - used for both SCE and LFE elements.
*/
typedef struct {
typedef struct SingleChannelElement {
IndividualChannelStream ics;
TemporalNoiseShaping tns;
Pulse pulse;
@@ -237,15 +236,16 @@ typedef struct {
uint8_t zeroes[128]; ///< band is not coded (used by encoder)
DECLARE_ALIGNED(32, float, coeffs)[1024]; ///< coefficients for IMDCT
DECLARE_ALIGNED(32, float, saved)[1024]; ///< overlap
DECLARE_ALIGNED(32, float, ret)[2048]; ///< PCM output
DECLARE_ALIGNED(32, float, ret_buf)[2048]; ///< PCM output buffer
DECLARE_ALIGNED(16, float, ltp_state)[3072]; ///< time signal for LTP
PredictorState predictor_state[MAX_PREDICTORS];
float *ret; ///< PCM output
} SingleChannelElement;
/**
* channel element - generic struct for SCE/CPE/CCE/LFE
*/
typedef struct {
typedef struct ChannelElement {
// CPE specific
int common_window; ///< Set if channels share a common 'IndividualChannelStream' in bitstream.
int ms_mode; ///< Signals mid/side stereo flags coding mode (used by encoder)
@@ -260,7 +260,8 @@ typedef struct {
/**
* main AAC context
*/
typedef struct {
typedef struct AACContext {
AVClass *class;
AVCodecContext *avctx;
AVFrame frame;
@@ -298,10 +299,10 @@ typedef struct {
/** @} */
/**
* @name Members used for output interleaving
* @name Members used for output
* @{
*/
float *output_data[MAX_CHANNELS]; ///< Points to each element's 'ret' buffer (PCM output).
SingleChannelElement *output_element[MAX_CHANNELS]; ///< Points to each SingleChannelElement
/** @} */
@@ -309,8 +310,8 @@ typedef struct {
* @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.
int force_dmono_mode;///< 0->not dmono, 1->use first channel, 2->use second channel
int dmono_mode; ///< 0->not dmono, 1->use first channel, 2->use second channel
/** @} */
DECLARE_ALIGNED(32, float, temp)[128];

Some files were not shown because too many files have changed in this diff Show More