ffmpeg.git
6 years agoproresdec: support mixed interlaced/non-interlaced content
Michael Smith [Mon, 21 Jan 2013 18:40:35 +0000 (19:40 +0100)]
proresdec: support mixed interlaced/non-interlaced content

Set interlaced to false if we don't have an interlaced frame

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agovp3/5: move put_no_rnd_pixels_l2 from dsputil to VP3DSPContext.
Ronald S. Bultje [Mon, 21 Jan 2013 19:02:33 +0000 (11:02 -0800)]
vp3/5: move put_no_rnd_pixels_l2 from dsputil to VP3DSPContext.

The function is only used in VP3 and VP5, so no need to have it in
DSPContext.

6 years agox86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly
Diego Biurrun [Mon, 21 Jan 2013 18:43:06 +0000 (19:43 +0100)]
x86: ac3: Fix HAVE_MMXEXT condition to only refer to external assembly

CC: libav-stable@libav.org
6 years agortpenc: Start the sequence numbers from a random offset
Martin Storsjö [Fri, 7 Dec 2012 09:12:28 +0000 (11:12 +0200)]
rtpenc: Start the sequence numbers from a random offset

Expose the current sequence number via an AVOption - this can
be used both for setting the initial sequence number, or for
querying the current number.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoRevert "fate: Use wmv2 IDCT for wmv2 tests"
Luca Barbato [Mon, 21 Jan 2013 18:43:53 +0000 (19:43 +0100)]
Revert "fate: Use wmv2 IDCT for wmv2 tests"

This reverts commit ce378f0dd0c4e5350b3280e6b3e8d6b46fe4b0a3.

6 years agoget_bits/put_bits: K&R formatting cosmetics
Diego Biurrun [Sun, 20 Jan 2013 15:10:24 +0000 (16:10 +0100)]
get_bits/put_bits: K&R formatting cosmetics

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoavidec: use sensible error codes instead of -1
Jindrich Makovicka [Thu, 17 Jan 2013 15:24:28 +0000 (16:24 +0100)]
avidec: use sensible error codes instead of -1

Use AVERROR_INVALIDDATA on invalid inputs, and AVERROR_EOF when no more
frames are available in an interleaved AVI.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agodsputilenc: x86: Convert pixel inline asm to yasm
Daniel Kang [Wed, 16 Jan 2013 07:41:39 +0000 (02:41 -0500)]
dsputilenc: x86: Convert pixel inline asm to yasm

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agolibgsm: detect libgsm header path
Brad Smith [Mon, 21 Jan 2013 01:33:27 +0000 (20:33 -0500)]
libgsm: detect libgsm header path

Libgsm header can reside either in the base include dir or in
the gsm subdir.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agofate: Use wmv2 IDCT for wmv2 tests
Ronald S. Bultje [Sat, 19 Jan 2013 20:04:06 +0000 (12:04 -0800)]
fate: Use wmv2 IDCT for wmv2 tests

6 years agovorbisdsp: change block_size type from int to intptr_t.
Ronald S. Bultje [Mon, 21 Jan 2013 06:26:42 +0000 (22:26 -0800)]
vorbisdsp: change block_size type from int to intptr_t.

This saves one instruction in the x86-64 assembly.

6 years agolavc: put FF_IDCT_{VP3,H264,CAVS,BINK,EA,WMV2} under FF_API_IDCT.
Ronald S. Bultje [Mon, 21 Jan 2013 06:15:28 +0000 (22:15 -0800)]
lavc: put FF_IDCT_{VP3,H264,CAVS,BINK,EA,WMV2} under FF_API_IDCT.

This allows us to get rid of them on the next major bump. All of the
above are functionally irrelevant, and most of them are unused, except
the vp3 one, which is used wrongly in the bfin arch optimizations.

6 years agowmv2: move IDCT to its own DSP context.
Ronald S. Bultje [Mon, 21 Jan 2013 06:12:35 +0000 (22:12 -0800)]
wmv2: move IDCT to its own DSP context.

This allows us to remove FF_IDCT_WMV2, which serves no practical purpose
other than to be able to select the WMV2 IDCT for MPEG (or vice versa)
and get corrupt output.

Fate tests for all wmv2-related tests change, because (for some obscure
reason) they forced use of the MPEG IDCT. You would get the same changes
previously by not using -idct simple in the fate test (or replacing it
with -idct auto).

6 years agodsputil: remove butterflies_float_interleave.
Ronald S. Bultje [Mon, 21 Jan 2013 05:57:35 +0000 (21:57 -0800)]
dsputil: remove butterflies_float_interleave.

The function is unused.

6 years agosrtp: Move a variable to a local scope
Martin Storsjö [Sun, 20 Jan 2013 17:06:51 +0000 (19:06 +0200)]
srtp: Move a variable to a local scope

This simplifies the code slightly.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosrtp: Add tests for the crypto suite with 32/80 bit HMAC
Martin Storsjö [Fri, 18 Jan 2013 11:44:34 +0000 (13:44 +0200)]
srtp: Add tests for the crypto suite with 32/80 bit HMAC

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosrtp: cosmetics: Use fewer lines for the test vectors
Martin Storsjö [Fri, 18 Jan 2013 11:46:16 +0000 (13:46 +0200)]
srtp: cosmetics: Use fewer lines for the test vectors

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosrtp: Don't require more input data than what actually is needed
Martin Storsjö [Fri, 18 Jan 2013 10:35:31 +0000 (12:35 +0200)]
srtp: Don't require more input data than what actually is needed

The theoretical minimum for a (not totally well formed) RTCP packet
is 8 bytes, so we shouldn't require 12 bytes as minimum input.

Also return AVERROR_INVALIDDATA instead of 0 if something that is
not a proper packet is given.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosrtp: Improve the minimum encryption buffer size check
Martin Storsjö [Fri, 18 Jan 2013 10:33:02 +0000 (12:33 +0200)]
srtp: Improve the minimum encryption buffer size check

This clarifies where the limit number comes from, and only
requires exactly as much padding space as will be needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosrtp: Add support for a few DTLS-SRTP related crypto suites
Martin Storsjö [Fri, 18 Jan 2013 10:01:33 +0000 (12:01 +0200)]
srtp: Add support for a few DTLS-SRTP related crypto suites

The main difference to the existing suites from RFC 4568 is
that the version with a 32 bit HMAC still uses 80 bit HMAC
for RTCP packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec/srtp: Handle CSRC fields being present
Martin Storsjö [Sun, 20 Jan 2013 17:00:18 +0000 (19:00 +0200)]
rtpdec/srtp: Handle CSRC fields being present

This is untested in practice, but follows the spec.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Check the return value from av_new_packet
Martin Storsjö [Sun, 20 Jan 2013 16:31:57 +0000 (18:31 +0200)]
rtpdec: Check the return value from av_new_packet

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoac3dec: fix non-optimal dithering of zero bit mantissas
Mathias Rauen [Sat, 5 Jan 2013 16:30:31 +0000 (11:30 -0500)]
ac3dec: fix non-optimal dithering of zero bit mantissas

Use a noise range of -0.707 to 0.707 instead of -0.5 to 0.5

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
6 years agoppc: vorbisdsp: Drop some unnecessary #includes
Diego Biurrun [Sun, 20 Jan 2013 15:50:04 +0000 (16:50 +0100)]
ppc: vorbisdsp: Drop some unnecessary #includes

Also fixes compilation with AltiVec disabled.

6 years agoavconv: Increase the SDP buffer size to fit xiph SDPs
Martin Storsjö [Thu, 17 Jan 2013 13:34:25 +0000 (15:34 +0200)]
avconv: Increase the SDP buffer size to fit xiph SDPs

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Move setting the parsing flags to the actual depacketizers
Martin Storsjö [Thu, 17 Jan 2013 13:29:12 +0000 (15:29 +0200)]
rtpdec: Move setting the parsing flags to the actual depacketizers

This gets rid of almost all the codec specific details from the
generic rtpdec code.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Split handling of mpeg12 audio/video to a separate depacketizer
Martin Storsjö [Thu, 17 Jan 2013 13:08:03 +0000 (15:08 +0200)]
rtpdec: Split handling of mpeg12 audio/video to a separate depacketizer

This also adds checking of mallocs.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Split mpegts parsing to a normal depacketizer
Martin Storsjö [Thu, 17 Jan 2013 12:34:59 +0000 (14:34 +0200)]
rtpdec: Split mpegts parsing to a normal depacketizer

This gets rid of a number of special cases from the common rtpdec
code.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Reorder payload handler registration alphabetically
Martin Storsjö [Thu, 17 Jan 2013 12:27:14 +0000 (14:27 +0200)]
rtpdec: Reorder payload handler registration alphabetically

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agompegts: Share the cleanup code between the demuxer and lavf-internal parser functions
Martin Storsjö [Sat, 19 Jan 2013 23:59:08 +0000 (01:59 +0200)]
mpegts: Share the cleanup code between the demuxer and lavf-internal parser functions

The lavf-internal parser functions are used when receiving
mpegts over RTP. This fixes memory leaks in this setup.

The normal mpegts demuxer close function was updated in ec7d0d2e in
2004 to fix leaks, but the parsing function used for RTP wasn't
updated and has been leaking ever since.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec_mpeg4: Return one AAC AU per AVPacket
Martin Storsjö [Tue, 15 Jan 2013 14:58:48 +0000 (16:58 +0200)]
rtpdec_mpeg4: Return one AAC AU per AVPacket

This makes the returned data valid to stream copy into other
containers as well, not only for decoding straight away.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoppc: Include string.h for memset
Martin Storsjö [Sun, 20 Jan 2013 14:30:09 +0000 (16:30 +0200)]
ppc: Include string.h for memset

This fixes build failures on ppc machines with a compiler that
supports -Werror=implicit-function-declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agovideodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL
Janne Grunau [Sun, 20 Jan 2013 13:48:35 +0000 (14:48 +0100)]
videodsp_armv5te: remove #if HAVE_ARMV5TE_EXTERNAL

libavutil/arm/asm.S sets '.arch' depending on HAVE_ARMV5TE so that
assembling armv5te code will always succeed even if the default -march
flag does not support it. HAVE_ARMV5TE_EXTERNAL tests assembling code
with the default arch.
Fixes the missing symbol ff_prefetch_arm with --cpu= not including
armv5te.

CC: libav-stable@libav.org
6 years agodsputil: drop non-compliant "fast" qpel mc functions
Mans Rullgard [Fri, 18 Jan 2013 22:37:41 +0000 (23:37 +0100)]
dsputil: drop non-compliant "fast" qpel mc functions

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoget_bits: change the failure condition in init_get_bits
Luca Barbato [Sun, 20 Jan 2013 04:10:32 +0000 (05:10 +0100)]
get_bits: change the failure condition in init_get_bits

Too much code relies in having init_get_bits fed with a valid
buffer and set its dimension to 0.

Check for NULL buffer instead.

6 years agoRemove put_no_rnd_pixels_l2 function pointer for w=16 from dsputil.
Ronald S. Bultje [Fri, 18 Jan 2013 06:02:58 +0000 (22:02 -0800)]
Remove put_no_rnd_pixels_l2 function pointer for w=16 from dsputil.

The function is never used.

6 years agoMove vorbis_inverse_coupling from dsputil to vorbisdspcontext.
Ronald S. Bultje [Sun, 20 Jan 2013 06:21:10 +0000 (22:21 -0800)]
Move vorbis_inverse_coupling from dsputil to vorbisdspcontext.

Conveniently (together with Justin's earlier patches), this makes
our vorbis decoder entirely independent of dsputil.

6 years agovp3: integrate clear_blocks with idct of previous block.
Ronald S. Bultje [Fri, 18 Jan 2013 15:43:04 +0000 (16:43 +0100)]
vp3: integrate clear_blocks with idct of previous block.

This is identical to what e.g. vp8 does, and prevents the function call
overhead (plus dependency on dsputil for this particular function).

Arm asm updated by Janne Grunau <janne-libav@jannau.net>.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
6 years agompegvideo: fix loop condition in draw_line()
Xi Wang [Sat, 19 Jan 2013 18:21:35 +0000 (13:21 -0500)]
mpegvideo: fix loop condition in draw_line()

The loop condition `x = ex' is incorrect.  It should be `x <= ex'.

This bug was introduced in commit c65dfac4 "mpegvideo.c: K&R formatting
and cosmetics."

CC:libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agodvdsubdec: parse the size from the extradata
Clément Bœsch [Wed, 16 Jan 2013 17:42:16 +0000 (18:42 +0100)]
dvdsubdec: parse the size from the extradata

Signed-off-by: Alexandra Khirnova <alexandra.khirnova@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agox86: dsputil: Drop some unused macro definitions
Diego Biurrun [Wed, 16 Jan 2013 22:50:57 +0000 (23:50 +0100)]
x86: dsputil: Drop some unused macro definitions

6 years agox86: Add a Yasm-based emms() replacement
Martin Storsjö [Wed, 9 Jan 2013 20:57:41 +0000 (22:57 +0200)]
x86: Add a Yasm-based emms() replacement

This provides a fallback when building with Yasm enabled, but neither
inline assembly, nor the _mm_empty intrinsic are available or enabled.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agox86inc: Add cvisible macro for C functions with public prefix
Diego Biurrun [Wed, 9 Jan 2013 22:17:08 +0000 (23:17 +0100)]
x86inc: Add cvisible macro for C functions with public prefix

This allows defining externally visible library symbols.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agox86inc: Rename "program_name" to "private_prefix"
Diego Biurrun [Wed, 9 Jan 2013 22:15:14 +0000 (23:15 +0100)]
x86inc: Rename "program_name" to "private_prefix"

The new name is more descriptive and will allow defining a separate
public prefix for externally visible library symbols.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoconfigure: Run SHFLAGS through ldflags_filter()
Sean McGovern [Mon, 14 Jan 2013 17:52:00 +0000 (12:52 -0500)]
configure: Run SHFLAGS through ldflags_filter()

These flags are as linker-specific as other LDFLAGS and thus
need to be translated to the correct linker syntax.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoh264: avoid pointless copying of ref lists
Anton Khirnov [Thu, 17 Jan 2013 11:25:31 +0000 (12:25 +0100)]
h264: avoid pointless copying of ref lists

ref_list is constructed from other fields per slice when needed, so do
not copy it for both frame and slice threading.
default_ref_list is constructed per frame and still needs to be copied
to per-slice contexts for slice threading, but a copy is not needed for
frame threading.

6 years agolavr: always reset mix function names and pointers in mix_function_init()
Justin Ruggles [Wed, 16 Jan 2013 19:18:38 +0000 (14:18 -0500)]
lavr: always reset mix function names and pointers in mix_function_init()

CC: libav-stable@libav.org
6 years agolavr: call mix_function_init() in ff_audio_mix_set_matrix()
Justin Ruggles [Wed, 16 Jan 2013 19:15:57 +0000 (14:15 -0500)]
lavr: call mix_function_init() in ff_audio_mix_set_matrix()

This is needed if a custom matrix is set by the user after opening the
AVAudioResampleContext because the matrix channel count can change if
different mixing coefficients are used.

CC:libav-stable@libav.org

6 years agofate: update ref after rv30_loop_filter fix
Luca Barbato [Thu, 17 Jan 2013 22:06:46 +0000 (23:06 +0100)]
fate: update ref after rv30_loop_filter fix

6 years agorv30: fix masking in rv30_loop_filter()
Xi Wang [Thu, 17 Jan 2013 06:24:15 +0000 (01:24 -0500)]
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>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agolavc: support ZenoXVID custom tag
Luca Barbato [Thu, 17 Jan 2013 13:12:44 +0000 (14:12 +0100)]
lavc: support ZenoXVID custom tag

Looks like this kind of samples are produced by certain Russian
equipment.

6 years agolibcdio: support recent cdio-paranoia
Luca Barbato [Thu, 17 Jan 2013 10:24:01 +0000 (11:24 +0100)]
libcdio: support recent cdio-paranoia

Upstream decided to split the paranoia interface and move the headers
accordingly.

6 years agofloat_dsp: Add #ifdef HAVE_INLINE_ASM around vector_fmul_window
Martin Storsjö [Thu, 17 Jan 2013 16:58:25 +0000 (18:58 +0200)]
float_dsp: Add #ifdef HAVE_INLINE_ASM around vector_fmul_window

This fixes builds on 64bit MSVC.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agotheora: Skip zero-sized headers
Martin Storsjö [Thu, 17 Jan 2013 14:03:36 +0000 (16:03 +0200)]
theora: Skip zero-sized headers

This fixes a regression since d9cf5f51 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>
6 years agoidcin: fix memleaks in idcin_read_packet()
Justin Ruggles [Tue, 15 Jan 2013 21:20:57 +0000 (16:20 -0500)]
idcin: fix memleaks in idcin_read_packet()

Fixes fate-id-cin-video failures when running FATE with valgrind.

6 years agolavc: Move vector_fmul_window to AVFloatDSPContext
Justin Ruggles [Mon, 7 Jan 2013 04:47:30 +0000 (23:47 -0500)]
lavc: Move vector_fmul_window to AVFloatDSPContext

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agortpdec_mpeg4: Check the remaining amount of data before reading
Martin Storsjö [Tue, 15 Jan 2013 13:35:18 +0000 (15:35 +0200)]
rtpdec_mpeg4: Check the remaining amount of data before reading

This fixes possible buffer overreads.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec_mpeg4: Check the return value from malloc
Martin Storsjö [Tue, 15 Jan 2013 13:27:30 +0000 (15:27 +0200)]
rtpdec_mpeg4: Check the return value from malloc

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosrtp: Mark a few variables as uninitialized
Martin Storsjö [Tue, 15 Jan 2013 13:19:55 +0000 (15:19 +0200)]
srtp: Mark a few variables as uninitialized

This squelches false positive warnings (with gcc) about them being
used uninitalized.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoconfigure: Make the new srtp protocol depend on the rtp protocol
Martin Storsjö [Tue, 15 Jan 2013 12:21:48 +0000 (14:21 +0200)]
configure: Make the new srtp protocol depend on the rtp protocol

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavf: Add a fate test for the SRTP functions
Martin Storsjö [Tue, 15 Jan 2013 13:07:44 +0000 (15:07 +0200)]
lavf: Add a fate test for the SRTP functions

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavu: Add a fate test for the HMAC API
Martin Storsjö [Tue, 15 Jan 2013 11:05:12 +0000 (13:05 +0200)]
lavu: Add a fate test for the HMAC API

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoh264: add 3 pixels below for subpixel filter wait position
Ronald S. Bultje [Tue, 15 Jan 2013 16:38:54 +0000 (08:38 -0800)]
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
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agodvdsubdec: Support palette in mkv
Joakim Plate [Tue, 15 Jan 2013 14:53:15 +0000 (15:53 +0100)]
dvdsubdec: Support palette in mkv

Matroska stores palette information as plain text in extradata.

Signed-off-by: Alexandra Khirnova <alexandra.khirnova@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agox86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags
Diego Biurrun [Fri, 27 Jul 2012 12:26:09 +0000 (14:26 +0200)]
x86: Add PAVGB macro to abstract pavgb/pavgusb instruction via cpuflags

6 years agovf_fps: add final flushed frames to the dropped frame count
Justin Ruggles [Mon, 14 Jan 2013 18:43:15 +0000 (13:43 -0500)]
vf_fps: add final flushed frames to the dropped frame count

6 years agorv34_parser: Adjust #if for disabling individual parsers
Diego Biurrun [Tue, 15 Jan 2013 15:06:00 +0000 (16:06 +0100)]
rv34_parser: Adjust #if for disabling individual parsers

As CONFIG_ values are always defined, they have to be checked via #if.

6 years agox86: ABSB2: port to cpuflags
Diego Biurrun [Sun, 15 Jul 2012 16:30:34 +0000 (18:30 +0200)]
x86: ABSB2: port to cpuflags

6 years agox86: ABSB: port to cpuflags
Diego Biurrun [Sun, 15 Jul 2012 16:29:10 +0000 (18:29 +0200)]
x86: ABSB: port to cpuflags

6 years agosdp: Include SRTP crypto params if using the srtp protocol
Martin Storsjö [Wed, 12 Dec 2012 10:59:41 +0000 (12:59 +0200)]
sdp: Include SRTP crypto params if using the srtp protocol

Also print port numbers for this protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavf: Add a protocol for SRTP encryption/decryption
Martin Storsjö [Tue, 11 Dec 2012 22:22:48 +0000 (00:22 +0200)]
lavf: Add a protocol for SRTP encryption/decryption

This is mostly useful for encryption together with the RTP muxer,
but could also be set up as IO towards the peer with the SDP
demuxer with custom IO.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortsp: Support decryption of SRTP signalled via RFC 4568 (SDES)
Martin Storsjö [Sat, 20 Oct 2012 20:18:01 +0000 (23:18 +0300)]
rtsp: Support decryption of SRTP signalled via RFC 4568 (SDES)

This only takes care of decrypting incoming packets; the outgoing
RTCP packets are not encrypted. This is enough for some use cases,
and signalling crypto keys for use with outgoing RTCP packets
doesn't fit as simply into the API. If the SDP demuxer is hooked
up with custom IO, the return packets can be encrypted e.g. via the
SRTP protocol.

If the SRTP keys aren't available within the SDP, the decryption
can be handled externally as well (when using custom IO).

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavf: Add functions for SRTP decryption/encryption
Martin Storsjö [Sat, 20 Oct 2012 22:20:35 +0000 (01:20 +0300)]
lavf: Add functions for SRTP decryption/encryption

This supports the AES_CM_128_HMAC_SHA1_80 and
AES_CM_128_HMAC_SHA1_32 cipher suites (from RFC 4568) at the
moment. The main missing features are replay protection (which can be
added later without changing the internal API), and the F8 and null
ciphers.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavu: Add an API for calculating HMAC (RFC 2104)
Martin Storsjö [Fri, 12 Oct 2012 12:01:06 +0000 (15:01 +0300)]
lavu: Add an API for calculating HMAC (RFC 2104)

This supports HMAC-MD5 and HMAC-SHA1 for now, other hashes are
simple to add.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolibx264: use the library specific default rc_initial_buffer_occupancy
Luca Barbato [Mon, 14 Jan 2013 04:32:39 +0000 (05:32 +0100)]
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>
6 years agolavc: set the default rc_initial_buffer_occupancy
Luca Barbato [Mon, 14 Jan 2013 04:32:38 +0000 (05:32 +0100)]
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>
6 years agonutdec: Always return a value from nut_read_timestamp()
Diego Biurrun [Mon, 14 Jan 2013 23:39:23 +0000 (00:39 +0100)]
nutdec: Always return a value from nut_read_timestamp()

The function is a callback that is called by ff_gen_search with
a constant stream index.

Avoid a false positive on older gcc version.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agoconfigure: Make warnings from -Wreturn-type fatal errors
Diego Biurrun [Mon, 14 Jan 2013 19:38:33 +0000 (20:38 +0100)]
configure: Make warnings from -Wreturn-type fatal errors

These warnings have no false positives and point to serious bugs.

6 years agox86: ABS2: port to cpuflags
Diego Biurrun [Sun, 15 Jul 2012 16:23:40 +0000 (18:23 +0200)]
x86: ABS2: port to cpuflags

6 years agovdpau: Remove av_unused attribute from function declaration
Rémi Denis-Courmont [Mon, 14 Jan 2013 20:00:05 +0000 (22:00 +0200)]
vdpau: Remove av_unused attribute from function declaration

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agoh264: fix ff_generate_sliding_window_mmcos() prototype.
Anton Khirnov [Mon, 14 Jan 2013 19:07:53 +0000 (20:07 +0100)]
h264: fix ff_generate_sliding_window_mmcos() prototype.

It's been returning an error value since
bad446e251405dc250c3cbee199072e083a1e4b9

Also check for the errors it returns.

6 years agosuncc: Replace more GCC flags by their equivalents in suncc_flags()
Sean McGovern [Mon, 14 Jan 2013 17:51:59 +0000 (12:51 -0500)]
suncc: Replace more GCC flags by their equivalents in suncc_flags()

Signed-off-by: Diego Biurrun <diego@biurrun.de>
6 years agolibtheoraenc: fix granularity of video quality
Maximilian Seesslen [Fri, 4 Jan 2013 15:56:00 +0000 (16:56 +0100)]
libtheoraenc: fix granularity of video quality

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: Martin Storsjö <martin@martin.st>
6 years agooggparsetheora: fix comment header parsing
Giorgio Vazzana [Fri, 5 Oct 2012 11:37:20 +0000 (13:37 +0200)]
oggparsetheora: fix comment header parsing

Pass the correct header size to ff_vorbis_comment()

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoh264: don't clobber mmco opcode tables for non-first slice headers.
Ronald S. Bultje [Mon, 14 Jan 2013 05:46:44 +0000 (21:46 -0800)]
h264: don't clobber mmco opcode tables for non-first slice headers.

Clobbering these tables will temporarily clobber the template used
as a basis for other threads to start decoding from. If the other
decoding thread updates from the template right at that moment,
subsequent threads will get invalid (or, usually, none at all) mmco
tables. This leads to invalid reference lists and subsequent decode
failures.

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

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

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
6 years agolibvpx: make vp8 and vp9 selectable
Luca Barbato [Sun, 30 Dec 2012 18:40:20 +0000 (19:40 +0100)]
libvpx: make vp8 and vp9 selectable

Support older libvpx versions.

6 years agolibvpx: support vp9
Luca Barbato [Thu, 20 Dec 2012 16:22:06 +0000 (17:22 +0100)]
libvpx: support vp9

This feature is experimental use at your risk

6 years agonut: support vp9 tag
Luca Barbato [Sat, 15 Dec 2012 22:26:07 +0000 (23:26 +0100)]
nut: support vp9 tag

6 years agomkv: support vp9 tag
Tom Finegan [Sat, 15 Dec 2012 22:18:41 +0000 (23:18 +0100)]
mkv: support vp9 tag

6 years agortpdec: Make variables that should wrap unsigned
Martin Storsjö [Mon, 14 Jan 2013 15:55:43 +0000 (17:55 +0200)]
rtpdec: Make variables that should wrap unsigned

This makes the behaviour defined when they wrap around. The value
assigned to expected_prior was a uint32_t already.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agobuild: Remove stray Makefile entry for non-existent VCR1 encoder
Diego Biurrun [Mon, 14 Jan 2013 15:43:41 +0000 (16:43 +0100)]
build: Remove stray Makefile entry for non-existent VCR1 encoder

6 years agortpdec: Handle more received packets than expected when sending RR
Martin Storsjö [Mon, 14 Jan 2013 09:34:19 +0000 (11:34 +0200)]
rtpdec: Handle more received packets than expected when sending RR

Without this, we'd signal a huge loss rate (due to unsigned
wraparound) if we had received one packet more than expected (that
is, one seq number sent twice). The code has a check for lost_interval
<= 0, but that doesn't do what was intended as long as the variable is
unsigned.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Simplify insertion into the linked list queue
Martin Storsjö [Fri, 7 Dec 2012 14:19:42 +0000 (16:19 +0200)]
rtpdec: Simplify insertion into the linked list queue

By using a pointer-to-pointer, we avoid having to keep track
of the previous packet separately.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortpdec: Remove a woefully misplaced comment
Martin Storsjö [Sun, 13 Jan 2013 16:40:13 +0000 (18:40 +0200)]
rtpdec: Remove a woefully misplaced comment

The code below the comment does not at all relate to statistics,
and even if moved to the right place, the comment adds little
value.

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agortmpproto: Fix assignments in if()
Michael Niedermayer [Sun, 13 Jan 2013 23:07:51 +0000 (00:07 +0100)]
rtmpproto: Fix assignments in if()

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavf: Fix assignments in if()
Michael Niedermayer [Sun, 13 Jan 2013 23:07:26 +0000 (00:07 +0100)]
lavf: Fix assignments in if()

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agosvq1enc: Fix assignments in if()
Michael Niedermayer [Sun, 13 Jan 2013 23:06:07 +0000 (00:06 +0100)]
svq1enc: Fix assignments in if()

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agolavc: Fix assignments in if() when calling ff_af_queue_add
Michael Niedermayer [Sun, 13 Jan 2013 23:02:50 +0000 (00:02 +0100)]
lavc: Fix assignments in if() when calling ff_af_queue_add

Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agoh264: Fix assignments in if()
Michael Niedermayer [Sun, 13 Jan 2013 22:44:01 +0000 (23:44 +0100)]
h264: Fix assignments in if()

Fixes null pointer dereference later, since if this function failed,
a positive return value was returned to the caller.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
6 years agotruemotion2: cosmetics, reformat
Anton Khirnov [Tue, 20 Nov 2012 06:43:00 +0000 (07:43 +0100)]
truemotion2: cosmetics, reformat