Commit Graph

41454 Commits

Author SHA1 Message Date
Martin Storsjö
46d4d85759 movenc: Avoid writing separate flags for the first sample if not necessary
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-09 10:36:12 +02:00
Martin Storsjö
00d751d4fc movenc: Set tfhd default sample flags based on actual samples, if possible
This avoids assuming that e.g. audio samples are marked as
sync samples.

This allows omitting the sample flags from trun, if the default
flags happen to be right for all the samples.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-09 10:36:02 +02:00
Michael Niedermayer
0ce3a0f9d9 utvideodec: Handle slice_height being zero
Fixes out of array accesses.

CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Bug-Id: CVE-2014-9604
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-09 00:51:15 +01:00
Vittorio Giovara
7b9cb7b365 avprobe: Export coded_{width,height} in -show_streams 2015-03-08 20:41:50 +00:00
Anton Khirnov
ae5e1f3d66 tiff: Check that there is no aliasing in pixel format selection
Fixes possible issues with unexpected bpp/bppcount values.

CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Bug-Id: CVE-2014-8544
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-08 19:14:14 +01:00
Martin Storsjö
6448f15af0 mxfdec: Fix the error handling for when strftime fails
The str variable is a char ** here.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-08 18:40:43 +02:00
Luca Barbato
5f5b78aca3 xcbgrab: Free the host string after checking the connection
Prevent an use after free in the error message.

Bug-Id: CID 1274040
CC: libav-stable@libav.org
2015-03-08 14:39:01 +01:00
Luca Barbato
0025f7408a vorbis: Check the vlc value in setup_classifs
The valid returned values are always at most 11bit.
Remove the previous check that assumed larger values plausible and
use a signed integer to check get_vlc2 return values.

CC: libav-stable@libav.org
2015-03-08 14:33:03 +01:00
Luca Barbato
62de77ffca vorbis: Use a local codebook variable
Makes the code a little simpler.
2015-03-08 14:33:02 +01:00
Carl Eugen Hoyos
0f9f7969ef rmdec: Improve message for demux error
Use correct context, reduce log level, don't assume it is a video stream,
and print the tag of the unknown stream.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-08 02:35:04 +00:00
Martin Storsjö
b77e335e44 configure: Move the .object_arch check to the right place
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-07 18:12:58 +02:00
Martin Storsjö
dcae2e32f7 arm: Suppress tags about used cpu arch and extensions
When all the codepaths using manually set .arch/.fpu code is
behind runtime detection, the elf attributes should be suppressed.

This allows tools to know that the final built binary doesn't
strictly require these extensions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-07 17:10:08 +02:00
Jonas Lindgren
cecf45b2bf doc: Add -list_formats all example for video4linux2
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-06 23:06:20 +01:00
Martin Storsjö
9731cf4001 movenc: Keep writing zero-entry stts atoms as intended
a876585215 had the unintended side effect of returning AVERROR(ENOMEM)
when track->entry is zero, while the code intentionally wants to
continue in that case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-06 16:17:48 +02:00
Timo Rothenpieler
5aef535a64 dashenc: Update extradata for mov muxer
The mov muxer already supports picking up extradata that wasn't
present during the avformat_write_header call - we just need to
propagate it. Since the dash muxer uses delay_moov, we have time
up until the first segment is written to get extradata filled in.

Also update the codec description string when the extradata becomes
available.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-06 10:07:17 +02:00
Timo Rothenpieler
6cf7f30655 dashenc: Simplify code by using a local variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-06 10:07:11 +02:00
Martin Storsjö
25c29d3283 libopenh264enc: Add support for building with OpenH264 1.4
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-06 10:02:47 +02:00
Himangi Saraogi
88b160a457 avfilter: Return more meaningful error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-03-05 19:36:39 +01:00
Anton Khirnov
ad786dd450 h264: remove a now redundant error check
It was only relevant when data partitioning was in use.
2015-03-05 16:10:11 +01:00
Andreas Cadhalpun
c73c3c34fe avformat/adxdec: set avctx->channels in adx_read_header
It is used in adx_read_packet, which currently depends on the
decoder/parser setting this value between reading the file header and
demuxing the first packet.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-05 15:57:48 +01:00
Andreas Cadhalpun
bb4edddd93 rmenc: limit packet size
The chunk size is limited to UINT16_MAX (written by avio_wb16), so make
sure that the packet size is not too large.

Such large frames need to be split into slices smaller than 64 kB, but
that is currently supported neither by the rv10/rv20 encoders nor the rm
muxer.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-05 15:51:05 +01:00
Andreas Cadhalpun
4f2ee9daee webp: validate the distance prefix code
According to the WebP Lossless Bitstream Specification the highest
allowed value for a prefix code is 39.

If prefix_code is too large, the calculated extra_bits has an invalid
value and triggers an assertion in get_bits.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-05 14:49:16 +01:00
Andreas Cadhalpun
66624ed631 rv10: check size of s->mb_width * s->mb_height
If it doesn't fit into 12 bits it triggers an assertion.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-05 14:49:16 +01:00
Thomas Volkert
9c09fbd805 rtpdec: experimental VP9 depacketizer (draft 0)
The code was tested with live555 server.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-05 10:05:44 +02:00
Himangi Saraogi
f3b74d944b pcxenc: Return more meaningful error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-03-04 23:44:01 +01:00
Martin Storsjö
b72b212a4c rdt: Use a separate variable to clarify the different value namespaces
The original flags variable contains rtpdec flags, while the
rmflags variable contains RM flag bits which have a completely
different definition.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-05 00:26:42 +02:00
Martin Storsjö
c13ab42a0a rtpdec_qt: Use a local variable instead of RTP_FLAG_KEY
The only case where RTP_FLAG_KEY actually is needed is
in RDT, where such a flag needs to be passed via the
rtpdec parse function's flags parameter.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-05 00:26:42 +02:00
Martin Storsjö
15621cbbe4 rtpdec_asf: Don't set RTP_FLAG_KEY
Nothing in the framework nor in the rest of the depacketizer actually
uses this flag - the chained demuxer sets the keyframe flag properly on
demuxed packets already.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-05 00:26:24 +02:00
Luca Barbato
e767c9e8f2 flv: Validate and reject unsupported codecs
And provide a more informative message in case of failure.

CC: libav-stable@libav.org
2015-03-04 18:28:40 +01:00
Vittorio Giovara
87e85a133f aac: Relax reserved_bit validation
Although the specification mandates this bit to zero, it may happen
that software tools incorrectly flip it to one, invalidating a possibly
valid stream.

Relax this restriction, by failing only when AV_EF_BITSTREAM is set.
This behaviour is similar to aac decoders in Firefox and Quicktime.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-04 16:36:16 +00:00
Diego Biurrun
25f613f8be dca: Move syncword definitions to a separate header 2015-03-04 13:29:33 +01:00
Martin Storsjö
1dc19729e9 rtpdec_asf: Don't free the payload context in the .close function
This was missed in bb4a310bb. This fixes a double free on close.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-04 13:12:09 +02:00
Martin Storsjö
62139b14e6 fate: Specify the idct to use for the aic-oddsize test
This fixes fate on all architectures that have an optimized
but not bitexact idct available.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-04 13:11:58 +02:00
Martin Storsjö
2a66a58067 rtpdec_mpa_robust: Fix incrementing split_pos
This fixes an oversight in 96084251, in a refactoring done on top
of Gilles' original patch.

Pointed out by Gilles Chanteperdrix.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-04 09:34:14 +02:00
Anton Khirnov
db5cc75f8b wma.h: #include "avcodec.h"
It's required for at least AVCodecContext.

Fixes make checkheaders.
2015-03-03 20:57:56 +01:00
Vittorio Giovara
0af3b65880 asf: do not export XMP metadata by default
Similarly to what has been done for MOV, display XMP metadata only when
users explicitly require it.

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.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-03 15:30:52 +00:00
Vittorio Giovara
994d8f3095 fate: Add AIC test with odd sizes 2015-03-03 15:08:45 +00:00
Vittorio Giovara
e878ec0d47 aic: Fix decoding files with odd dimensions
Normally the aic decoder finds the proper slice combination (multiple of
some number less than 32) but in case of odd width, it resorts to the
default values, which were actually swapped.
The number of slices is modified to account for such odd width cases.

CC: libav-stable@libav.org
2015-03-03 15:08:15 +00:00
Martin Storsjö
33d412eb4a dashenc: Simplify code by using a local variable
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-02 20:34:43 +02:00
Martin Storsjö
91eee2af87 Revert "mov: Change DTS-based seek into CTS-based seek."
This reverts commit 4abfa387b8.

This commit broke playback of fragmented mp4 files with b-frames.
While investigating this, it turned out that the general framework
isn't ready for a PTS-based index yet. Revert this change until
a better thought out solution is in place.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-02 14:15:12 +02:00
Luca Barbato
9a26ba9713 v4l2: Add support for h264 2015-03-02 12:07:59 +01:00
Luca Barbato
619d5e7db8 v4l2: Use the codec descriptor facility
The encoder or decoder might be disabled but the format would be
supported for at least remuxing.
2015-03-02 11:27:57 +01:00
Luca Barbato
dbc1163b20 prores: Extend the padding check to 16bit
Some files produced by the official encoder have up to 16bit of
padding instead of the expected padding to the byte.

Use a self-explanatory macro instead of a simple number.

CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-03-02 11:27:57 +01:00
Martin Storsjö
4f6cd883f0 rtpenc: Don't set max_frames_per_packet based on the packet frame size or frame rate
Instead check the timestamps while muxing, to avoid buffering a
too long timestamp range into one single packet.

This makes the AMR and AAC packetization slightly less efficient,
since we set a possibly unnecessarily high max_frames_per_packet.
(These packetizers end up doing a memmove of the TOC bytes if
sending a packet before max_frames_per_packet is achieved, and
we end up setting max_frames_per_packet to a value that should
be high enough for most uses.)

All packetizers that use max_frames_per_packet now set it either
to a default value, or to a value calculated based on other
parameters, so none of them rely on the previous default setting.

For iLBC, copy one frame at a time, to allow checking the timestamp
range for each of them - basically doing potentially multiple
loops to simplify the code instead of trying to calculate the
number of frames to buffer while honoring s1->max_delay.

This is in preparation for reducing the coupling between libavformat
and libavcodec, by not having the muxers use the encoder field
frame_size (which may not be available during e.g. stream copy).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:31 +02:00
Martin Storsjö
bde2bba45c rtpenc: Restructure if statements in packetizers to simplify adding more conditions
Factorize out the s->num_frames check at the start of the if statements,
simplifying adding more alternative causes for sending the buffered
frames.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:26 +02:00
Martin Storsjö
d4c7fc02f9 rtpenc: Skip redundant initialization
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:22 +02:00
Martin Storsjö
f8c01257f9 rtpenc: Always do the default initialization regardless of codecs
This avoids having to jump to the defaultcase in the switch. Manually
override the stream time base back to 90 kHz for the few audio codecs
that don't use the sample rate as time base (mp2, mp3).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:11 +02:00
Martin Storsjö
11edeaea32 rtpenc_xiph: Don't exclude headers from max_payload_size
This makes things more consistent by using the variable in the same
way as in all other packetizers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:04 +02:00
Martin Storsjö
7c1e2e6466 rtpenc_xiph: Use AV_WB16 instead of manual bitshifts
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:00 +02:00
Martin Storsjö
d16c8d28d4 rtpenc_aac: Use AV_WB16 instead of manual bitshifts
This makes the code slightly more readable and understandable.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:53:57 +02:00