Commit Graph

62234 Commits

Author SHA1 Message Date
Michael Niedermayer
072278c777 Merge commit '5ce7ca68b86856ee8e9d6530dffdadc4eca4f8d1'
* commit '5ce7ca68b86856ee8e9d6530dffdadc4eca4f8d1':
  libxvid: add working lumimasking and variance AQ

Conflicts:
	libavcodec/libxvid.c
	libavcodec/version.h

See: ccb212b6c3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 03:08:25 +02:00
Michael Niedermayer
190106e884 Merge commit 'd3789eeeed3423bd1ca9dc40030a2f7a21ea5332'
* commit 'd3789eeeed3423bd1ca9dc40030a2f7a21ea5332':
  aarch64: implement videodsp.prefetch

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 02:51:05 +02:00
Michael Niedermayer
4c57c6a765 Merge commit '8675bcb0addb1c7fb0b04682d1f3f95d5b8dae14'
* commit '8675bcb0addb1c7fb0b04682d1f3f95d5b8dae14':
  aarch64: add armv8 CPU flag

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 02:15:18 +02:00
Stephan Hilb
541bebd414 lavc/cpia: use avpriv_report_missing_feature()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 01:33:53 +02:00
Stephan Hilb
5dae3cf357 lavc/cpia: fix typo in log message
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-07 01:33:10 +02:00
Michael Niedermayer
01a5d71789 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Set Matroska private data when muxing Prores.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:57:42 +02:00
Michael Niedermayer
9e7f1474dd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  fate: add tests for SANM and VIMA

Conflicts:
	tests/fate/video.mak
	tests/ref/fate/sanm

See: 4cdff58206
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:43:02 +02:00
Carl Eugen Hoyos
3d5c859fa6 Set Matroska private data when muxing Prores.
The specification requires the mov code point to be written as "fourcc".
2014-04-06 23:35:17 +02:00
Michael Niedermayer
5297003aa7 Merge commit 'eeadcdfd1a6f3089b6bf6e194d6ece8d3f113123'
* commit 'eeadcdfd1a6f3089b6bf6e194d6ece8d3f113123':
  LucasArts SMUSH demuxer

Conflicts:
	Changelog
	doc/general.texi
	libavformat/smush.c
	libavformat/version.h

See: bef8fd7099
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:29:47 +02:00
Timothy Gu
5ce7ca68b8 libxvid: add working lumimasking and variance AQ
The old implementation is unusable due to changes in the Xvid API.
Further fixes by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 23:23:13 +02:00
Michael Niedermayer
787be6d074 Merge commit '6f273093e54cba130f3ffde3d6433e74baa4ad89'
* commit '6f273093e54cba130f3ffde3d6433e74baa4ad89':
  LucasArts SMUSH VIMA audio decoder

Conflicts:
	Changelog
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/version.h
	libavcodec/vima.c

This commit adds a AV_CODEC_ID_ADPCM_VIMA alias in addition to the previously
used AV_CODEC_ID_VIMA, as well as a AVCodec with name "adpcm_vima" in addition
to the previously used name "vima"
These changes are needed for compatibility with the renamed codec in libav

See: b18357326c and others

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:14:23 +02:00
Michael Niedermayer
881f4e8d34 Merge commit 'a420ccd4f2a011887451a7d5e1bebba4fd7c40e2'
* commit 'a420ccd4f2a011887451a7d5e1bebba4fd7c40e2':
  LucasArts SMUSH SANM video decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/sanm.c
	libavcodec/version.h

See: 69254f4628 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 22:19:16 +02:00
Reimar Döffinger
a0568ed254 rtspdec: check for strchr returning NULL.
Fixes CID 732244.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-06 22:04:03 +02:00
Janne Grunau
d3789eeeed aarch64: implement videodsp.prefetch
8% faster h264 decoding on Apple A7.
2014-04-06 21:18:49 +02:00
Janne Grunau
8675bcb0ad aarch64: add armv8 CPU flag 2014-04-06 21:18:49 +02:00
Reimar Döffinger
57d10a28f4 pulseaudio: move NULL check up before dereference.
Fixes CID 1197068.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-06 19:38:51 +02:00
Hendrik Leppkes
fc7e02f0ff dcadsp: fix SSE code to not use SSE2 instructions.
movq from SSE register to memory is an SSE2 instruction.
Instead, use SSE movlps, which does the same thing.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:31:22 +02:00
Michael Niedermayer
4ccd7cb45b avformat/oggdec/ogg_read_packet(): factorize failure code path
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:10:47 +02:00
Michael Niedermayer
c1b24ca762 avformat/oggdec: check for av_packet_new_side_data() failure
Fixes CID1197062
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:10:47 +02:00
Michael Niedermayer
28f8114bd2 avcodec/vp8: fix checking vp7_feature_value_size
Fixes CID1197061

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 18:10:47 +02:00
Vladlen Y. Koshelev
cdbd9e218d avformat/hls: support for seeking on event playlists
This allows clients to seek between first played segment
and the last one in the live stream playlist with #EXT-X-PLAYLIST-TYPE:EVENT attribute.
2014-04-06 17:55:04 +03:00
Anssi Hannula
f29cb45bf2 avformat/hls: flush the subdemuxer when seeking
Since we are basically seeking the AVIOContext under the subdemuxer, we
need to flush the subdemuxer to avoid old packets from being read from
the packet queue after the seek.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:04 +03:00
Anssi Hannula
9aa0606e87 avformat/hls: properly take stream_index into account when seeking
Properly take stream_index into account so that a keyframe will be
looked for in the specified stream_index only.

Similarly, only check timestamp validity against the specified
stream_index.

Also remove code for stream_index == -1 case which does not actually
happen as it is handled by generic code.

This is based on an initial patch by James Deng.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:04 +03:00
Anssi Hannula
ad701326b4 avformat/hls: open playlists immediately when AVDISCARD_ALL is dropped
Do not try to delay opening newly required playlists until a segment
switch. Applications expect that newly selected undiscarded streams are
available immediately, especially with alternative rendition streams
(selectable audio/subtitle tracks).

One might think that delaying variant stream switch until a segment
switch would allow a "seamless" switch without us having to download a
specific segment from two different variant playlists. However, that is
not the case, since the application would have to keep the previous
stream available (undiscarded) until the first packet of the newly
selected stream arrives, but by that time the demuxer would have already
downloaded the next segment of both variants.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:04 +03:00
Anssi Hannula
05ce529a59 avformat/hls: factor identical playlist allocations out of parse_playlist
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
6b4b73e75d avformat/hls: do not use sequence numbers for packet ordering
As per spec 3.4.3 ("A client MUST NOT assume that segments with the same
sequence number in different Media Playlists contain matching content.")
we cannot use sequence numbers for packet ordering.

This can be seen e.g. in the subtitle streams of
bipbop_16x9_variant.m3u8 that have considerably longer segments and
therefore different numbering.

Since the code now exclusively syncs using timestamps that may wrap, add
some additional checking for that.

According to the HLS spec all the timestamps should be in 33-bit MPEG
format and synced together.

v2: cleaner wrap detection
v3: further wrap detection improvements

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
8fd6875c83 avformat/hls: do not care about stream start timestamps
While selecting a packet to return to caller in read_packet(), the code
corrects the timestamps for starting timestamps.

However, this is wrong, since for live streams the initial timestamps
might differ just because of the time delay between the retrieval of the
various Media Playlists.

Fortunately, spec 6.2.4 mandates that all variant streams must have
matching timestamps, so we do not need to correct for initial
timestamps.

Drop the correction code.

Note that ID3 timestamps were previously ignored, so this code was
previously actually needed.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
d549b0910c avformat/hls: avoid unnecessary segment retrievals
Check if the playlist is still needed just before requesting the next
segment instead of after exhausting the previous segment.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
4e85202bcc avformat/hls: improve segment selection when restarting list reception
Improve selection of the segment sequence number when restarting the
reception of a playlist after it was suspended due to being unneeded
(due to discard flags).

The current code assumes that each playlist contains matching data with
the same sequence number, while spec 3.4.3 specifically says that that
is not the case. Often subtitle playlists also have longer target
durations as well, causing the selection to be completely wrong.

Instead prefer using the playlist segment duration information for
non-live playlists, and other means if that is not possible.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
61e1a70278 avformat/hls: track seeking on a per-playlist basis
Seeking needs to be tracked on a per-playlist basis, since the resyncing
code in hls_read_packet() has to sync each playlist to the seek
timestamp instead of stopping after the first playlist has reached it.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
01b184e68d avformat/hls: parse ID3 timestamps for elementary audio streams
HLS provides MPEG TS timestamps via ID3 tags in the beginning of each
segment of elementary audio streams.

v2: fix issues with streams that have multiple ID3 tags

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
1cb8d986b8 avformat/hls: split read_from_url() out of read_data()
Useful for ID3 parsing.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:03 +03:00
Anssi Hannula
f7c7fc1369 avformat/hls: add some logging messages
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Anssi Hannula
da7759b357 avformat/hls: add support for byte-ranged segments
Add support for EXT-X-BYTERANGE added in HLS protocol v4.

v2: Better comment explaining ffurl_seek call and fix cur_seg_offset not
being updated.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Anssi Hannula
cc1162d775 avformat/hls: always return EOF for unneeded playlist streams
Even if we returned AVERROR_EOF previously due to playlist no longer
being needed, we may still be called again, and we do not want to
trigger a segment download in that case.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Anssi Hannula
edf4406c4d avformat/hls: add support for alternative renditions
HLS protocol version 4 added alternative renditions to the
specification (e.g. alternative audio tracks).

The EXT-X-MEDIA tags can also contain metadata for "renditions" (i.e.
tracks) of the main Media Playlist.

Add support for those.

Note that the same rendition (AVStream) may be associated with multiple
variants (AVPrograms).

Alternative subtitle tracks will require additional work and are
therefore not enabled yet.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2014-04-06 17:55:02 +03:00
Paul B Mahol
a027d2a873 fate: add tests for SANM and VIMA
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:42:15 +02:00
Paul B Mahol
eeadcdfd1a LucasArts SMUSH demuxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:41:41 +02:00
Paul B Mahol
6f273093e5 LucasArts SMUSH VIMA audio decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:41:39 +02:00
Paul B Mahol
a420ccd4f2 LucasArts SMUSH SANM video decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:40:27 +02:00
Thilo Borgmann
33462542cf configure: Add workaround for qtkit detection using ICC compiler.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 15:52:31 +02:00
Michael Niedermayer
754f84663e avcodec/msrle: check return code for success before use
The check is possibly redundant, but better to check for errors
that dont occur than to skip the check and crash

Fixes CID1197060

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 04:01:24 +02:00
Michael Niedermayer
f87b3d5523 avcodec/pthread_frame: fix missing unlock on error
Fixes CID1197057
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 03:51:46 +02:00
Carl Eugen Hoyos
59c1023ef5 Consider aspect ratio when writing tiff dpi.
TIFFTAG_YRESOLUTION gets now adjusted to sample_aspect_ratio.
2014-04-06 02:42:31 +02:00
Michael Niedermayer
b978391ed5 avformat/oggparsevorbis: remove non functional null check
Fixes CID1197055

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 01:34:48 +02:00
Michael Niedermayer
419800acc4 examples/avio_reading: fix null dereference on error
Fixed CID1197052
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 00:39:58 +02:00
Michael Niedermayer
1fec720afa avformat/cinedec: ask for sample when biBitCount isnt supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 00:34:09 +02:00
Michael Niedermayer
47b03415f3 avformat/cinedec: remove redundant zero termination
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 23:00:23 +02:00
Michael Niedermayer
af2e5061bb avformat/mov: Fix width/height typo
Fixes CID1197050
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 22:49:17 +02:00
Michael Niedermayer
49579c9637 avformat/cinedec: fix sizeof()
Fixes CID1197047
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-05 22:37:10 +02:00