ffmpeg.git
4 years agovdpau: add support for 4:2:2 and 4:4:4 chroma sampling
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:10 +0000 (19:15 +0200)]
vdpau: add support for 4:2:2 and 4:4:4 chroma sampling

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agovdpau: add helper for surface chroma type and size
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:09 +0000 (19:15 +0200)]
vdpau: add helper for surface chroma type and size

Since the VDPAU pixel format does not distinguish between different
VDPAU video surface chroma types, we need another way to pass this
data to the application.

Originally VDPAU in libavcodec only supported decoding to 8-bits YUV
with 4:2:0 chroma sampling. Correspondingly, applications assumed that
libavcodec expected VDP_CHROMA_TYPE_420 video surfaces for output.
However some of the new HEVC profiles proposed for addition to VDPAU
would require different depth and/or sampling:
http://lists.freedesktop.org/archives/vdpau/2014-July/000167.html
...as would lossless AVC profiles:
http://lists.freedesktop.org/archives/vdpau/2014-November/000241.html

To preserve backward binary compatibility with existing applications,
a new av_vdpau_bind_context() flag is introduced in a further change.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agolibavcodec: add AV_HWACCEL_ALLOW_HIGH_DEPTH flag
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:08 +0000 (19:15 +0200)]
libavcodec: add AV_HWACCEL_ALLOW_HIGH_DEPTH flag

This can be used by the application to signal its ability to cope with
video surface of types other than 8-bits YUV 4:2:0.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agoavcodec: add AVCodecContext.sw_pix_fmt
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:07 +0000 (19:15 +0200)]
avcodec: add AVCodecContext.sw_pix_fmt

This carries the pixel format that would be used if it were not for
hardware acceleration. This is equal to AVCodecContext.pix_fmt if
hardware acceleration is not in use.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agoh264: factor hwaccel pixel formats list
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:06 +0000 (19:15 +0200)]
h264: factor hwaccel pixel formats list

This is to avoid proliferation of similar tables in following changes.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agompegts: add support for Opus
Kieran Kunhya [Fri, 17 Oct 2014 23:25:16 +0000 (00:25 +0100)]
mpegts: add support for Opus

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agolibavformat: Only use MoveFileExA when targeting the desktop API subset
Martin Storsjö [Mon, 15 Dec 2014 21:55:30 +0000 (23:55 +0200)]
libavformat: Only use MoveFileExA when targeting the desktop API subset

The MoveFileExA is available in the headers regardless which API
subset is targeted, but it is missing in the Windows Phone link
libraries. When targeting Windows Store apps, the function is
available both in the headers and in the link libraries, and thus
there is no indication for the build system that this function
should be avoided - such an indication is only given by the
Windows App Certification Kit, which forbids using the MoveFileExA
function.

Therefore check the WINAPI_FAMILY defines instead, to figure out
which API subset is targeted.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpenc_mpegts: Call write_trailer for the mpegts muxer even if no output buffer exists
Martin Storsjö [Fri, 19 Dec 2014 13:26:23 +0000 (15:26 +0200)]
rtpenc_mpegts: Call write_trailer for the mpegts muxer even if no output buffer exists

Since the mpegts muxer now can handle being called with a NULL
AVIOContext, we don't need to try to allocate one before calling
write_trailer.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agompegts: Support running the write_trailer function without an AVIOContext
Martin Storsjö [Fri, 19 Dec 2014 13:23:06 +0000 (15:23 +0200)]
mpegts: Support running the write_trailer function without an AVIOContext

If opening and closing dynamic buffers as AVIOContext, we may
not have any AVIOContext available when wanting to close and
deallocate the muxer. Allow calling write_trailer despite this.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agolibavformat: Allow calling av_write_trailer with a NULL AVIOContext
Martin Storsjö [Fri, 19 Dec 2014 13:40:02 +0000 (15:40 +0200)]
libavformat: Allow calling av_write_trailer with a NULL AVIOContext

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoon2avc: check number of channels
Michael Niedermayer [Sat, 4 Oct 2014 20:15:07 +0000 (22:15 +0200)]
on2avc: check number of channels

Fixes invalid memory access.

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8549
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agosmc: fix the bounds check
Michael Niedermayer [Fri, 3 Oct 2014 20:50:45 +0000 (22:50 +0200)]
smc: fix the bounds check

Fixes invalid writes when there are more blocks in a run than total
remaining blocks.

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8548
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agogifdec: refactor interleave end handling
Michael Niedermayer [Fri, 3 Oct 2014 18:15:52 +0000 (20:15 +0200)]
gifdec: refactor interleave end handling

Fixes invalid writes with very small image heights.

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8547
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agommvideo: check frame dimensions
Anton Khirnov [Sun, 14 Dec 2014 20:01:59 +0000 (21:01 +0100)]
mmvideo: check frame dimensions

The frame size must be set by the caller and each dimension must be a
multiple of 2.

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8543
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
4 years agojvdec: check frame dimensions
Anton Khirnov [Sun, 14 Dec 2014 20:01:59 +0000 (21:01 +0100)]
jvdec: check frame dimensions

The frame size must be set by the caller and each dimension must be a
multiple of 8.

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8542
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
4 years agomjpegdec: check for pixel format changes
Anton Khirnov [Sun, 14 Dec 2014 19:52:13 +0000 (20:52 +0100)]
mjpegdec: check for pixel format changes

Fixes possible invalid memory access.

Based on code by Michael Niedermayer <michaelni@gmx.at>

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8541
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
4 years agomov: avoid a memleak when multiple stss boxes are present
Anton Khirnov [Tue, 12 Aug 2014 14:39:10 +0000 (14:39 +0000)]
mov: avoid a memleak when multiple stss boxes are present

CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
4 years agoimgconvert: check memory allocations and propagate errors
Vittorio Giovara [Wed, 17 Dec 2014 15:01:45 +0000 (16:01 +0100)]
imgconvert: check memory allocations and propagate errors

4 years agowma: check memory allocations and propagate errors
Vittorio Giovara [Wed, 17 Dec 2014 15:01:46 +0000 (16:01 +0100)]
wma: check memory allocations and propagate errors

4 years agolavfi: always check av_expr_parse_and_eval() return value
Vittorio Giovara [Wed, 17 Dec 2014 14:19:43 +0000 (15:19 +0100)]
lavfi: always check av_expr_parse_and_eval() return value

CC: libav-stable@libav.org
Bug-Id: CID 703624

4 years agoxcbgrab: Move NULL check before pointer dereference
Vittorio Giovara [Wed, 17 Dec 2014 14:19:41 +0000 (15:19 +0100)]
xcbgrab: Move NULL check before pointer dereference

Bug-Id: CID 1254668

4 years agotakdec: check av_samples_get_buffer_size() return value
Vittorio Giovara [Wed, 17 Dec 2014 14:19:42 +0000 (15:19 +0100)]
takdec: check av_samples_get_buffer_size() return value

CC: libav-stable@libav.org
Bug-Id: CID 747734

4 years agoaacps: invert the order of parameters of ipdopd_reset()
Vittorio Giovara [Wed, 17 Dec 2014 14:19:40 +0000 (15:19 +0100)]
aacps: invert the order of parameters of ipdopd_reset()

This is the order that the caller uses in the rest of the file. The
same operation is applied to both parameters, so this change is only
done for consistency, it doesn't change the actual behaviour.

Bug-Id: CID 732285 / CID 732286

4 years agortsp: check ffurl_get_file_handle() return value
Vittorio Giovara [Wed, 17 Dec 2014 14:19:39 +0000 (15:19 +0100)]
rtsp: check ffurl_get_file_handle() return value

CC: libav-stable@libav.org
Bug-Id: CID 717844

4 years agocheck memory errors from av_strdup()
Vittorio Giovara [Wed, 17 Dec 2014 13:53:45 +0000 (14:53 +0100)]
check memory errors from av_strdup()

4 years agoassdec: check the right variable
Vittorio Giovara [Wed, 17 Dec 2014 13:53:44 +0000 (14:53 +0100)]
assdec: check the right variable

CC: libav-stable@libav.org
Bug-Id: CID 1257815

4 years agoaacenc: correctly check returned value
Vittorio Giovara [Wed, 17 Dec 2014 13:53:43 +0000 (14:53 +0100)]
aacenc: correctly check returned value

CC: libav-stable@libav.org
4 years agolcl: return an appropriate error code
Vittorio Giovara [Wed, 17 Dec 2014 13:53:42 +0000 (14:53 +0100)]
lcl: return an appropriate error code

4 years agompegts: check get16() return value
Vittorio Giovara [Wed, 17 Dec 2014 13:53:41 +0000 (14:53 +0100)]
mpegts: check get16() return value

And break flow of execution rather than exiting the function.

CC: libav-stable@libav.org
Bug-Id: CID 732186

4 years agooggdec: add support for VP8 demuxing
James Almer [Fri, 12 Dec 2014 20:57:43 +0000 (20:57 +0000)]
oggdec: add support for VP8 demuxing

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agocmdutils: check file access functions return values
Vittorio Giovara [Tue, 16 Dec 2014 09:43:48 +0000 (10:43 +0100)]
cmdutils: check file access functions return values

CC: libav-stable@libav.org
Bug-Id: CID 703706

4 years agoa64multi: check elbg return values
Vittorio Giovara [Tue, 16 Dec 2014 09:33:38 +0000 (10:33 +0100)]
a64multi: check elbg return values

4 years agoroqvideo: check memory allocations and propagate errors
Vittorio Giovara [Tue, 16 Dec 2014 09:33:37 +0000 (10:33 +0100)]
roqvideo: check memory allocations and propagate errors

4 years agoelbg: check memory allocations and propagate errors
Vittorio Giovara [Tue, 16 Dec 2014 09:33:36 +0000 (10:33 +0100)]
elbg: check memory allocations and propagate errors

4 years agolavu: Refactor side data wiping
Luca Barbato [Mon, 15 Dec 2014 19:38:00 +0000 (20:38 +0100)]
lavu: Refactor side data wiping

And make sure the nb_side_data field is reset as well.

Based on an initial patch from wm4 <nfxjfg@googlemail.com>.

CC: libav-stable@libav.org
4 years agofate: add test for offset theora
Vittorio Giovara [Fri, 12 Dec 2014 03:35:46 +0000 (03:35 +0000)]
fate: add test for offset theora

4 years agotheora: support different visible and coded frame size
Vittorio Giovara [Fri, 12 Dec 2014 20:27:46 +0000 (20:27 +0000)]
theora: support different visible and coded frame size

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agofate: add a DPX parser test
Vittorio Giovara [Mon, 1 Dec 2014 15:20:10 +0000 (16:20 +0100)]
fate: add a DPX parser test

4 years agoDPX parser
Paul B Mahol [Mon, 1 Dec 2014 15:20:09 +0000 (16:20 +0100)]
DPX parser

Additional improvements and fixes by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agotiff: support encoding and decoding 64bit images
Carl Eugen Hoyos [Wed, 10 Dec 2014 18:16:09 +0000 (18:16 +0000)]
tiff: support encoding and decoding 64bit images

4 years agomovenc: Adjust the pts of new fragments similarly to what is done for dts
Martin Storsjö [Sun, 23 Nov 2014 21:23:43 +0000 (23:23 +0200)]
movenc: Adjust the pts of new fragments similarly to what is done for dts

The pts and the corresponding duration is written in sidx
atoms, thus make sure these match up correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agolibavformat: Add a muxer wrapping mpegts encoding into RTP
Martin Storsjö [Mon, 9 May 2011 13:44:54 +0000 (16:44 +0300)]
libavformat: Add a muxer wrapping mpegts encoding into RTP

Since this structurally is quite different from normal RTP
(multiple streams are muxed into one single mpegts stream,
which is packetized into one single RTP session), it is kept
as a separate muxer.

Since this structurally also behaves differently than normal
RTP, all of the other muxers that do chained RTP muxing
(rtsp, sap, mp4) would need to be updated similarly to handle
this - in particular, creating one single rtp_mpegts muxer
for the whole presentation instead of one rtp muxer per stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortp: Initial H.261 support
Thomas Volkert [Sat, 6 Dec 2014 18:54:07 +0000 (19:54 +0100)]
rtp: Initial H.261 support

The packetizer only supports splitting at GOB headers - if
such aren't available frequently enough, it splits at any
random byte offset (not at a macroblock boundary either, which
would be allowed by the spec) and sends a payload header pretend
that it starts with a GOB header.

As long as a receiver doesn't try to handle such cases cleverly
but just drops broken frames, this shouldn't matter too much
in practice.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpenc: Avoid brittle switch fallthroughs
Martin Storsjö [Thu, 18 Dec 2014 10:20:11 +0000 (12:20 +0200)]
rtpenc: Avoid brittle switch fallthroughs

Instead explicitly jump to the default case in the cases where
it is wanted, and avoid fallthrough between different codecs,
which could easily introduce bugs if people editing the code
aren't careful.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoh261dec: Fix context initialization sequence
Michael Niedermayer [Fri, 15 Aug 2014 00:50:41 +0000 (02:50 +0200)]
h261dec: Fix context initialization sequence

ff_mpv_common_init sets s->context_initialized.

This fixes decoding of h261 in the cases where the demuxer
hasn't already set the frame size.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoh261enc: Disallow sliced encoding
Martin Storsjö [Wed, 17 Dec 2014 10:18:03 +0000 (12:18 +0200)]
h261enc: Disallow sliced encoding

This avoids trying to do sliced encoding, even if a slice/packet
size is requested (via the -ps option or the rtp_payload_size
field), since the encoder currently doesn't support it (or at least
our decoder can't decode it, even if the h261_encode_gob_header
function is hooked up to be called from the slicing part in
mpegvideo_enc.c).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpdec_h263_rfc2190: Clear the stored bits if discarding buffered data
Martin Storsjö [Wed, 17 Dec 2014 11:50:06 +0000 (13:50 +0200)]
rtpdec_h263_rfc2190: Clear the stored bits if discarding buffered data

If we throw away the buffered incomplete frame, make sure to also
throw away the buffered bits of an incomplete byte at the same
time.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpenc: Set the AVFMT_TS_NONSTRICT flag
Martin Storsjö [Fri, 12 Dec 2014 16:57:38 +0000 (18:57 +0200)]
rtpenc: Set the AVFMT_TS_NONSTRICT flag

In particular, when packetizing mpegts into rtp, the input packet
timestamp may come from more than one stream, which could cause
multiple packets be written with the same timestamp.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpenc: Set the timestamp properly when sending mpegts data, too
Martin Storsjö [Mon, 9 May 2011 13:44:37 +0000 (16:44 +0300)]
rtpenc: Set the timestamp properly when sending mpegts data, too

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agosrtpproto: fix option flag type
Tristan Matthews [Tue, 16 Dec 2014 19:07:53 +0000 (14:07 -0500)]
srtpproto: fix option flag type

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agodashenc: Adjust the start time of a segment to the end of the previous segment
Martin Storsjö [Fri, 28 Nov 2014 08:43:53 +0000 (10:43 +0200)]
dashenc: Adjust the start time of a segment to the end of the previous segment

This is the same adjustment that the mp4 muxer does to the start
timestamp of fragments, since the timestamp of a sample in an mp4
file is implicit from the sum of earlier sample durations.

This avoids gaps in the timeline (which can stop dash.js from
playing it back), and makes sure the timestamp on the segmenter
level matches what the mp4 muxer actually writes into the segments.

This is only an issue if the AVPacket duration of the last
packet of a segment doesn't point to the actual start timestamp
of the next packet (the first in the next segment).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agodashenc: Write segment timelines properly if the timeline has gaps
Martin Storsjö [Fri, 28 Nov 2014 08:40:05 +0000 (10:40 +0200)]
dashenc: Write segment timelines properly if the timeline has gaps

Write a new start time if the duration of the previous segment
didn't match the start of the next one. Check that segments
actually are continuous before writing a repeat count.

This makes sure timestamps deduced from the timeline actually
match the real start timestamp as written in filenames (if
using a template containing $Time$).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agomov: Fix handling of zero-length metadata values
Martin Storsjö [Mon, 15 Dec 2014 10:09:10 +0000 (12:09 +0200)]
mov: Fix handling of zero-length metadata values

Since 3cec81f4d4, a zero-length metadata value would try to
allocate 2*0 bytes, where av_malloc() returns NULL.

Always add one to the allocated length, to allow space for
a null terminator in the zero-length case.

Incidentally, this fixes fate-alac on RVCT 4.0, where a compiler
bug seems to mess up the mov muxer to the point that it writes
the wrong sort of metadata. Previously this bug was undetected,
but since 3cec81f4d4 such mov files started returning
AVERROR(ENOMEM) in the mov demuxer.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agotiff: set the correct return value when check_size() fails
Vittorio Giovara [Fri, 12 Dec 2014 18:25:58 +0000 (18:25 +0000)]
tiff: set the correct return value when check_size() fails

Only one instance affected and solved as other occurences.

4 years agotiff: Check the check_size() return value and forward it
Luca Barbato [Wed, 10 Dec 2014 01:44:20 +0000 (02:44 +0100)]
tiff: Check the check_size() return value and forward it

Also use the same type for add_entry and check_size.

Bug-Id: CID 700699
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Vittorio Giovara <vittorio.giovarao@gmail.com>
4 years agoprores: Evaluate all the quantizers
Luca Barbato [Wed, 10 Dec 2014 00:43:50 +0000 (01:43 +0100)]
prores: Evaluate all the quantizers

Prevent an uninitialized data access.

CC: libav-stable@libav.org
Bug-Id: CID 703824 / CID 703825
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agomatroskadec: Fix read-after-free in matroska_read_seek()
Xiaohan Wang [Thu, 6 Nov 2014 20:59:54 +0000 (12:59 -0800)]
matroskadec: Fix read-after-free in matroska_read_seek()

In matroska_read_seek(), |tracks| is assigned at the begining of the
function. However, functions like matroska_parse_cues() could reallocate
the tracks and invalidate |tracks|.

This assigns |tracks| only before using it, so that it will not get
invalidated elsewhere.

Bug-Id: chromium/427266

4 years agompegvideo: move REBASE_PICTURE where it is used
Vittorio Giovara [Tue, 9 Dec 2014 16:47:53 +0000 (16:47 +0000)]
mpegvideo: move REBASE_PICTURE where it is used

Drop an unused #undef from h264 decoder.

4 years agompegvideo: remove unused function declaration
Vittorio Giovara [Tue, 9 Dec 2014 16:47:52 +0000 (16:47 +0000)]
mpegvideo: remove unused function declaration

4 years agohevc: always clip luma_log2_weight_denom
Vittorio Giovara [Wed, 10 Dec 2014 01:41:44 +0000 (01:41 +0000)]
hevc: always clip luma_log2_weight_denom

Its value shall be between 0 and 7 according to the specifications.

CC: libav-stable@libav.org
Bug-Id: CID 1257502

5 years agovaapi: wrap codec specific functions in appropiate #ifs
Thiago Santos [Sun, 14 Dec 2014 20:59:27 +0000 (22:59 +0200)]
vaapi: wrap codec specific functions in appropiate #ifs

Fix linking when only a subset of vaapi decoders is enabled.

Bug-Id: 760
CC: libav-stable@libav.org
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agosvq1dec: Unbreak the scratch buffer allocation
Michael Niedermayer [Sat, 6 Dec 2014 10:40:30 +0000 (11:40 +0100)]
svq1dec: Unbreak the scratch buffer allocation

The input packets are always assumed to be padded and
the av_fast_ family of function takes a pointer to a pointer.

Thanks to Nicolas Dufresne <nicolas.dufresne@collabora.com> for
a similar patch.

Introduced in 7b588bb691644e1b3c168b99accf74248a24e3cf.

Bug-Id: 766
CC: libav-stable@libav.org
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agoasvenc: Forward the error instead of asserting on it
Luca Barbato [Wed, 10 Dec 2014 02:40:25 +0000 (03:40 +0100)]
asvenc: Forward the error instead of asserting on it

Bug-Id: CID 732997
CC: libav-stable@libav.org
5 years agoavconv: Use the mpeg12 private option scan_offset
Julien Ramseier [Sun, 14 Dec 2014 01:00:04 +0000 (02:00 +0100)]
avconv: Use the mpeg12 private option scan_offset

Introduced in aed790070486b1b01b48106310d9d0ca1730e459

Bug-Id: debian/773055
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agovdpau: add mapping for H.264 Constrained Baseline profile and fallback
Rémi Denis-Courmont [Sat, 13 Dec 2014 16:42:21 +0000 (18:42 +0200)]
vdpau: add mapping for H.264 Constrained Baseline profile and fallback

Old VDPAU drivers do not support this newly defined profile, so falling
back to Main profile is necessary for backward binary compatibility.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agovdpau: add mapping for H.264 Extended profile
Rémi Denis-Courmont [Sat, 13 Dec 2014 16:42:20 +0000 (18:42 +0200)]
vdpau: add mapping for H.264 Extended profile

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agovdpau: revector macro to reduce line span
Rémi Denis-Courmont [Sat, 13 Dec 2014 16:42:19 +0000 (18:42 +0200)]
vdpau: revector macro to reduce line span

Signed-off-by: Anton Khirnov <anton@khirnov.net>
5 years agothread: use "" instead of <> for including the w32pthreads wrapper
Anton Khirnov [Mon, 1 Dec 2014 13:15:36 +0000 (14:15 +0100)]
thread: use "" instead of <> for including the w32pthreads wrapper

Found-by: Dave Yeo <dave.r.yeo@gmail.com>
5 years agodashenc: Change the duration fields to 64 bit
Martin Storsjö [Wed, 10 Dec 2014 06:08:59 +0000 (08:08 +0200)]
dashenc: Change the duration fields to 64 bit

For the last_duration field, it's mostly theoretical, but the
total_duration field more probably may need to actually be 64 bit.

Bug-Id: CID 1254944
Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agolibfdk-aacdec: Fix a boundary check
Martin Storsjö [Wed, 10 Dec 2014 06:02:43 +0000 (08:02 +0200)]
libfdk-aacdec: Fix a boundary check

This avoids potential out of bounds writes, with potential future
versions of the library.

Bug-Id: CID 1254945
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoxcbgrab: Support empty filename string correctly
Luca Barbato [Wed, 26 Nov 2014 05:20:52 +0000 (06:20 +0100)]
xcbgrab: Support empty filename string correctly

Bug-Id: CID 1254664
CC: libav-stable@libav.org
5 years agodashenc: log file output progress in verbose mode
Bryan Huh [Tue, 9 Dec 2014 08:11:23 +0000 (08:11 +0000)]
dashenc: log file output progress in verbose mode

As the manifest/segments are flushed to disk, log to stderr the
progress, when in verbose logging mode

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agortpproto: Fix the input RTP data format check
Martin Storsjö [Tue, 9 Dec 2014 14:05:14 +0000 (16:05 +0200)]
rtpproto: Fix the input RTP data format check

Only the upper 2 bits of the first byte are known to be
a fixed value.

The lower bits in the first byte of a RTP packet could be set
if the input is from another RTP packetizers than libavformat's,
but for RTCP packets, they would also be set when sending RTCP RR
packets, triggering false warnings about incorrect input format
to the protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agofate: add dolby true hd tests
Janne Grunau [Mon, 8 Dec 2014 15:21:43 +0000 (16:21 +0100)]
fate: add dolby true hd tests

The existing meridian audio test does not test
ff_mlp_rematrix_channel_arm. This sample (first 640k of
https://samples.libav.org/A-codecs/TrueHD/TrueHD.raw) uses
ff_mlp_rematrix_channel_arm. Since this sample has 5.1 channels it also
allows testing the integrated downmixing.

5 years agoarm: mlpdsp: handle pic offset calculation in a macro
Janne Grunau [Mon, 8 Dec 2014 13:10:18 +0000 (14:10 +0100)]
arm: mlpdsp: handle pic offset calculation in a macro

Makes the code easier to read since it hides different offset
calculations for arm and thumb mode.

5 years agoarm: make ff_mlp_filter_channel_arm and ff_mlp_rematrix_channel_arm position independent
Janne Grunau [Mon, 8 Dec 2014 12:25:55 +0000 (13:25 +0100)]
arm: make ff_mlp_filter_channel_arm and ff_mlp_rematrix_channel_arm position independent

No significant difference in used cpu cycles on a cortex-a9.

5 years agolibavformat: Build hevc.o when building the RTP muxer
Martin Storsjö [Tue, 9 Dec 2014 10:13:54 +0000 (12:13 +0200)]
libavformat: Build hevc.o when building the RTP muxer

The RTP muxer enables the actual codepaths within sdp.c,
which depend on hevc.o since e5cfc8fd.

This fixes builds with --disable-everything --enable-muxer=rtp.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoaarch64: Use .data.rel.ro for const data with relocations
Martin Storsjö [Sun, 16 Nov 2014 10:52:21 +0000 (12:52 +0200)]
aarch64: Use .data.rel.ro for const data with relocations

This reverts commit c00365b46d464ce47716315c1801818d811bdb9a
in addition to using a different section.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoarm: Use .data.rel.ro for const data with relocations
Martin Storsjö [Sun, 16 Nov 2014 10:51:54 +0000 (12:51 +0200)]
arm: Use .data.rel.ro for const data with relocations

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agomov: further expand the list of parsed metadata tags
Dave Rice [Fri, 28 Nov 2014 23:44:06 +0000 (23:44 +0000)]
mov: further expand the list of parsed metadata tags

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agomov: expand the list of parsed metadata tags
Vittorio Giovara [Fri, 28 Nov 2014 23:25:20 +0000 (23:25 +0000)]
mov: expand the list of parsed metadata tags

Based on L-Smash code by Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>.

5 years agomov: parse XMP metadata on demand
Vittorio Giovara [Wed, 3 Dec 2014 02:43:24 +0000 (02:43 +0000)]
mov: parse XMP metadata on demand

The Extensible Metadata Platform tag can contain various kind of data
which are not strictly related to the video file, such as history of edits
and saves from the project file. So display XMP metadata only when the
user explicitly requires it.

Based on a patch by Marek Fort <marek.fort@chyronhego.com>.

5 years agomov: parse @PRM and @PRQ metadata tags
Vittorio Giovara [Wed, 3 Dec 2014 02:42:29 +0000 (02:42 +0000)]
mov: parse @PRM and @PRQ metadata tags

These tags describe the product and quicktime library version respectively.
They originate from Adobe Premiere, but also some other programs use them.
Contrary to other tags, they contain 'raw' data which is not to be
interpreted as iso639 or mac strings.

Based on a patch by Peter Ross <pross@xvid.org>.

5 years agomov: cosmetics: reorder the list of tags
Vittorio Giovara [Wed, 3 Dec 2014 02:41:43 +0000 (02:41 +0000)]
mov: cosmetics: reorder the list of tags

Alphabetically order the list by the tag to facilitate the insertion of
new ones.

5 years agoh264: increase MAX_SLICES to 32
Vittorio Giovara [Fri, 5 Dec 2014 03:46:13 +0000 (03:46 +0000)]
h264: increase MAX_SLICES to 32

H264 streams from CounterPath Bria and some Cisco phones need an
increased pool for correct decoding.

Bug-Id: 645
Sample-Id: bria-h264.mka

5 years agovf_frei0r: do not increment string if it reached the end
Vittorio Giovara [Fri, 5 Dec 2014 02:15:09 +0000 (02:15 +0000)]
vf_frei0r: do not increment string if it reached the end

Bug-Id: 778
CC: libav-stable@libav.org
5 years agoAllow reading of growing avi files (currently being written)
Joakim Plate [Fri, 5 Dec 2014 03:06:50 +0000 (03:06 +0000)]
Allow reading of growing avi files (currently being written)

This uses the RIFF header stored size to figure out the expected AVI
file size, instead of the actual file. To work fully it requires handling
failed avio_seek() instead of assuming they always succeed.

Some fate file has been cut off and contains half a frame at the end which
previously was not output during demuxing. This frame is now output to
encoder, thus the fate diff update.

Bug-Id: 261
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agodpx: always write the image offset
Zoltan Kovacs [Fri, 5 Dec 2014 02:42:10 +0000 (02:42 +0000)]
dpx: always write the image offset

According to the DPX file format description found at
http://www.fileformat.info/format/dpx/egff.htm the ImageElement part of
the GenericImageHeader also contains an an offset to the real image data
beside the same member that can be found in the GenericFileHeader.

Libav keeps this member empty (=0) while some applications expects it to
be filled properly. FATE test updated accordingly.

Bug-Id: 742
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoriff: Support decoding png in avi (ImageJ)
Carl Eugen Hoyos [Thu, 4 Dec 2014 19:13:19 +0000 (19:13 +0000)]
riff: Support decoding png in avi (ImageJ)

5 years agoarm: fft_vfp: Unify the behaviour in ff_fft_calc_vfp between arm/thumb
Martin Storsjö [Sun, 16 Nov 2014 10:46:51 +0000 (12:46 +0200)]
arm: fft_vfp: Unify the behaviour in ff_fft_calc_vfp between arm/thumb

Don't include the function pointer table in the code segment
in arm mode.

This shouldn't have any significant performance effect. It does
end up as a few more instructions than before, for ARM, but
only at the entry to this function, not within the fft functions
themselves.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agoarm: fft_vfp: Add a missing "endconst" when building in thumb mode
Martin Storsjö [Sun, 16 Nov 2014 10:38:53 +0000 (12:38 +0200)]
arm: fft_vfp: Add a missing "endconst" when building in thumb mode

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agortpproto: Write a warning if the input data written isn't RTP packetized
Martin Storsjö [Sat, 6 Dec 2014 23:42:06 +0000 (01:42 +0200)]
rtpproto: Write a warning if the input data written isn't RTP packetized

Tell the user that the RTP muxer needs to be used to packetize
the data - using the RTP protocol on its own isn't enough.

Signed-off-by: Martin Storsjö <martin@martin.st>
5 years agodoc: Use the correct @subsection tag
Luca Barbato [Sun, 7 Dec 2014 17:38:56 +0000 (18:38 +0100)]
doc: Use the correct @subsection tag

makeinfo would otherwise refuse to build it.

5 years agomp3: Tweak the probe scores
Luca Barbato [Sat, 6 Dec 2014 11:32:25 +0000 (12:32 +0100)]
mp3: Tweak the probe scores

Having more than 10 consecutive frames decoded as mp3 should be
considered a clear signal that the sample is mp3 and not mpegps.

Reported-By: Florian Iragne <florian@iragne.fr>
CC: libav-stable@libav.org
5 years agolatm: Do not give a score for a single instance
Luca Barbato [Fri, 5 Dec 2014 14:31:20 +0000 (15:31 +0100)]
latm: Do not give a score for a single instance

Bug-Id: 773
CC: libav-stable@libav.org
5 years agolavfi: Increase drawtext font size limits
Михаил Муковников [Tue, 2 Dec 2014 14:09:30 +0000 (17:09 +0300)]
lavfi: Increase drawtext font size limits

Raise the maximum font size to a larger value.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agov210enc: Add SIMD optimised 8-bit and 10-bit encoders
Kieran Kunhya [Tue, 2 Dec 2014 17:08:25 +0000 (17:08 +0000)]
v210enc: Add SIMD optimised 8-bit and 10-bit encoders

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agoswscale: Properly scale YUV
Derek Buitenhuis [Tue, 2 Dec 2014 17:08:24 +0000 (17:08 +0000)]
swscale: Properly scale YUV

Only shift limited range luma, and always only shift chroma
for upconversion.

Based off a patch by Michael Niedermayer.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
5 years agomov: skip version and flags attributes in mov_read_chan()
Matthieu Bouron [Thu, 4 Dec 2014 19:13:39 +0000 (19:13 +0000)]
mov: skip version and flags attributes in mov_read_chan()

Fixes decting channel layout for files with uncommon audio, such as
FL and FR in two separate streams. Introduced in 3bab7cd.

CC: libav-devel@libav.org
Sample-Id: ticket1474.mov
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
5 years agolavc: mention that the parser callback never returns an error
Vittorio Giovara [Thu, 4 Dec 2014 20:46:16 +0000 (20:46 +0000)]
lavc: mention that the parser callback never returns an error