Commit Graph

13774 Commits

Author SHA1 Message Date
Michael Niedermayer
4634871b51 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  oggparsevorbis: return meaningful errors

Conflicts:
	libavformat/oggparsevorbis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-06 12:24:13 +02:00
Michael Niedermayer
6853e40106 avformat/matroskadec: only set r_frame_rate if the value is within reasonable limits
Fixes Ticket2451

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-06 00:22:08 +02:00
Vittorio Giovara
90e15e340d oggparsevorbis: return meaningful errors
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-10-05 23:16:48 +02:00
Michael Niedermayer
a7630e3755 Merge commit 'b698542ad83284fbb8c22404e3cafeb2dd739d38'
* commit 'b698542ad83284fbb8c22404e3cafeb2dd739d38':
  mov: Don't allocate arrays with av_malloc that will be realloced

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-05 10:50:47 +02:00
Michael Niedermayer
e1f8184a1a avformat/gifdec: make GIF_APP_EXT_LABEL parsing more robust
Fixes Ticket3021

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 23:26:40 +02:00
Martin Storsjö
b698542ad8 mov: Don't allocate arrays with av_malloc that will be realloced
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-05 00:00:43 +03:00
Michael Niedermayer
e41ea866fc avformat/mov: force parsing of headers if stts is absent
Fixes Ticket2991

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 17:47:26 +02:00
Michael Niedermayer
74b2b0ed9f Merge commit 'cd818b3a5709b9b08bd5901cb8863a8b61be265e'
* commit 'cd818b3a5709b9b08bd5901cb8863a8b61be265e':
  rtmpproto: Validate the embedded flv packet size before copying

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 14:30:05 +02:00
Michael Niedermayer
5bb3ef3b36 Merge commit '8921e32f730c191543b84e61338bc9d549aa05a3'
* commit '8921e32f730c191543b84e61338bc9d549aa05a3':
  rtmpproto: Readjust the end of the flv buffer if handle_metadata exited early

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 14:25:03 +02:00
Michael Niedermayer
b8e44118b1 Merge commit '24fee95321c1463360ba7042d026dae021854360'
* commit '24fee95321c1463360ba7042d026dae021854360':
  rtmpproto: Move the flv header/trailer addition to append_flv_data

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 14:18:32 +02:00
Michael Niedermayer
205b602135 Merge commit '72540e514ceaaed8ecb97ed63637b2a2a4447ab8'
* commit '72540e514ceaaed8ecb97ed63637b2a2a4447ab8':
  rtmpproto: Clear the flv allocation size on reallocp failures

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 14:17:53 +02:00
Michael Niedermayer
d32eec3359 Merge commit '4d6d70292e91a7ef027824d731b6b6570ceabf2f'
* commit '4d6d70292e91a7ef027824d731b6b6570ceabf2f':
  rtmpproto: Pass the 'live' parameter in the right unit

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 13:53:17 +02:00
Michael Niedermayer
373d15525d Merge commit 'a6b361325f2bfc8d9d4e5f761d6c1a07b209c4fb'
* commit 'a6b361325f2bfc8d9d4e5f761d6c1a07b209c4fb':
  rtmpproto: Print the error code string if there's no description

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 13:47:06 +02:00
Michael Niedermayer
f3968ab47c Merge commit '49fe9c05f97bc2cfafd8fdcfea2f313d7c8e2c48'
* commit '49fe9c05f97bc2cfafd8fdcfea2f313d7c8e2c48':
  oggparsevorbis: K&R formatting cosmetics

Conflicts:
	libavformat/oggparsevorbis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 12:01:17 +02:00
Clément Bœsch
d4dc673455 avformat/vobsub: raise packet even if apparently incomplete.
This restore the latest packet which was dropped from the FATE test in
dbfe61100.
2013-10-04 09:25:11 +00:00
Martin Storsjö
cd818b3a57 rtmpproto: Validate the embedded flv packet size before copying
This wasn't an issue prior to 58404738, when the whole RTMP packet
was copied at once and the length of the individual embedded flv
packets only were validated by the flv demuxer.

Prior to this patch, this could lead to reads and writes out of bound.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-04 09:25:10 +03:00
Martin Storsjö
8921e32f73 rtmpproto: Readjust the end of the flv buffer if handle_metadata exited early
If the embedded flv packets were incomplete and we aborted the
copying loop early, make sure the flv buffer is trimmed to
only contain full packets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-04 09:25:08 +03:00
Martin Storsjö
24fee95321 rtmpproto: Move the flv header/trailer addition to append_flv_data
update_offset is also called from handle_metadata, where the
packet header sizes is already included in the size.

Previously this lead to flv_data/flv_size including 15 uninitialized
bytes at the end after each call to handle_metadata, making the
flv demuxer lose sync with the stream.

Also remove leftover copying in handle_metadata. This is a leftover
from the refactoring in 5840473. (Previously this final mempcy was
the one that copied all the packets at once, while this is done
within the loop right now.) After making sure flv_size is set to
the right size, this write was out of bounds.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-04 09:25:07 +03:00
Martin Storsjö
72540e514c rtmpproto: Clear the flv allocation size on reallocp failures
This was overlooked in d872fb0f7 since I assumed all the realloc
issues in the rtmp code was fixed already.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-04 09:25:06 +03:00
Martin Storsjö
4d6d70292e rtmpproto: Pass the 'live' parameter in the right unit
The current magic numbers passed are values in seconds, while the
parameter itself should be passed over the wire in milliseconds.

This makes (some/all?) live streams from Red5 work correctly, that
previously returned StreamNotFound even with "-rtmp_live live". After
this commit, the default 'any' also works on these streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-04 09:25:05 +03:00
Martin Storsjö
a6b361325f rtmpproto: Print the error code string if there's no description
On (certain streams/setups at least on) Red5, the description string
actually is present, but empty. Therefore, first try loading the
description, but if not found or empty, load the code string instead.
The code string is quite understandable in most cases anyway (like
"NetStream.Play.StreamNotFound").

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-10-04 09:25:04 +03:00
Clément Bœsch
dbfe61100b avformat/vobsub: fix several issues.
Here is an extract of fate-samples/sub/vobsub.idx, with an additional
text at the end of each line to better identify each bitmap:

    timestamp: 00:04:55:445, filepos: 00001b000 Ace!
    timestamp: 00:05:00:049, filepos: 00001b800 Wake up, honey!
    timestamp: 00:05:02:018, filepos: 00001c800 I gotta go to work.
    timestamp: 00:05:02:035, filepos: 00001d000 <???>
    timestamp: 00:05:04:203, filepos: 00001d800 Look after Clayton, okay?
    timestamp: 00:05:05:947, filepos: 00001e800 I'll be back tonight.
    timestamp: 00:05:07:957, filepos: 00001f800 Bye! Love you.
    timestamp: 00:05:21:295, filepos: 000020800 Hey, Ace! What's up?
    timestamp: 00:05:23:356, filepos: 000021800 Hey, how's it going?
    timestamp: 00:05:24:640, filepos: 000022800 Remember what today is? The 3rd!
    timestamp: 00:05:27:193, filepos: 000023800 Look over there!
    timestamp: 00:05:28:369, filepos: 000024800 Where are they going?
    timestamp: 00:05:28:361, filepos: 000025000 <???>
    timestamp: 00:05:29:946, filepos: 000025800 Let's go see.
    timestamp: 00:05:31:230, filepos: 000026000 I can't, man. I got Clayton.

Note the two "<???>": they are basically split subtitles (with the
previous one), which the dvdsub decoder is now supposed to reconstruct
with a previous commit. But also note that while the first chunk has
increasing timestamps,

    timestamp: 00:05:02:018, filepos: 00001c800
    timestamp: 00:05:02:035, filepos: 00001d000

...it's not the case of the second one (and this is not an exception in the
original file):

    timestamp: 00:05:28:369, filepos: 000024800
    timestamp: 00:05:28:361, filepos: 000025000

For the dvdsub decoder, they need to be "filepos'ed" ordered, but the
FFDemuxSubtitlesQueue is timestamps ordered, which is the reason of the
introduction of a sub sort method in the context, to allow giving
priority to the position, and then the timestamps. With that change, the
dvdsub decoder get fed with ordered packets.

Now the packet size estimation was also broken: the filepos differences
in the vobsub index defines the full data read between two subtitles
chunks, and it is necessary to take into account what is read by the
mpegps_read_pes_header() function since the length returned by that
function doesn't count the size of the data it reads. This is fixed with
the introduction of total_read, and {old,new}_pos. By doing this change,
we can drop the unreliable len16 heuristic and simplify the whole loop.
Note that mpegps_read_pes_header() often read more than one PES packet
(typically in one call it can read 0x1ba and 0x1be chunk along with the
relevant 0x1bd packet), which triggers the "total_read + pkt_size >
psize" check. This is an expected behaviour, which could be avoided by
having a more chunked version of mpegps_read_pes_header().

The latest change is the extraction of each stream into its own
subtitles queue. If we don't do this, the maximum size for a subtitle
chunk is broken, and the previous changes can not work. Having each
stream in a different queue requires some little adjustments in the
seek code of the demuxer.

This commit is only meaningful as a whole change and can not be easily
split. The FATE test changes because it uses the vobsub demuxer.
2013-10-04 07:59:49 +02:00
Vittorio Giovara
49fe9c05f9 oggparsevorbis: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-10-03 23:26:09 +02:00
Diego Biurrun
47b6cfc2a0 avformat/output-example: Declare link dependency on libswscale in the Makefile 2013-10-03 23:23:04 +02:00
Michael Niedermayer
5082fcc0e2 avformat: add support to force specific AVCodecs
previously only codec_ids could be forced, which did not allow
forcing a specific implementation like libopenjpeg vs jpeg2000.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-02 22:56:03 +02:00
Michael Niedermayer
f4aec34805 avformat/utils: pass AVFormatContext to find_decoder()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-02 22:56:03 +02:00
Michael Niedermayer
ebb8dd437b mov: fix trun / pseudo_stream_id handling
This fixes simple concatenated h264

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-02 19:59:10 +02:00
Michael Niedermayer
5e253fdfc1 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rtmp: alias rtmp_listen to listen

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-02 14:59:42 +02:00
Michael Niedermayer
c28bca2bde Merge commit 'ad0560fe7491a85c3e71d5a3d6a0443f10b33ab1'
* commit 'ad0560fe7491a85c3e71d5a3d6a0443f10b33ab1':
  mxf: Remove a typo

Conflicts:
	libavformat/mxfdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-02 14:55:18 +02:00
Michael Niedermayer
8aa6ffd8fa Merge commit 'cc41167aede4c101ad17eeffa8f39bb6c23d3dad'
* commit 'cc41167aede4c101ad17eeffa8f39bb6c23d3dad':
  asfdec: Check the return value of asf_read_stream_properties

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-02 14:53:00 +02:00
Luca Barbato
628a17d78a rtmp: alias rtmp_listen to listen
Make it uniform with the other protocols.
2013-10-01 15:42:06 +02:00
Luca Barbato
ad0560fe74 mxf: Remove a typo
Introduced in 93370d1216
2013-10-01 13:43:48 +02:00
Martin Storsjö
cc41167aed asfdec: Check the return value of asf_read_stream_properties
This makes sure errors in setting stream parameters are passed
on to the caller. This avoids successfully opening files while
some parameters aren't filled in properly.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-30 10:48:58 +03:00
Carl Eugen Hoyos
e34ba4723e Avoid img_segment_size == 0 in mtv demuxer.
Fixes ticket #3011.
2013-09-30 07:55:23 +02:00
Michael Niedermayer
5c7d86cbde Merge remote-tracking branch 'qatar/master'
* qatar/master:
  omadec: fix bitrate for ATRAC3+ streams

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 02:21:41 +02:00
Michael Niedermayer
7a28a9f68e Merge commit '23d0fdcf6f30843fc3f14084d80581f1ca10f1f3'
* commit '23d0fdcf6f30843fc3f14084d80581f1ca10f1f3':
  Add support for multichannel ATRAC3+ streams.

Conflicts:
	libavformat/oma.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 02:15:36 +02:00
Michael Niedermayer
c7fae9081d Merge commit '93370d12164236d59645314871a1d6808b2a8ddb'
* commit '93370d12164236d59645314871a1d6808b2a8ddb':
  mxfdec: set audio timebase to 1/samplerate

Conflicts:
	libavformat/mxfdec.c
	tests/ref/fate/mxf-demux
	tests/ref/seek/lavf-mxf
	tests/ref/seek/lavf-mxf_d10

See: 83cab07a4c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 02:12:42 +02:00
Michael Niedermayer
143a19f5c7 Merge commit 'c231987662194d009dd91bfc57c678e0e70ca161'
* commit 'c231987662194d009dd91bfc57c678e0e70ca161':
  mov: Make sure the read sample count is nonnegative

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 00:32:01 +02:00
Michael Niedermayer
ccb6b056df Merge commit '640a2427aafa774b83316b7a8c5c2bdc28bfd269'
* commit '640a2427aafa774b83316b7a8c5c2bdc28bfd269':
  bfi: Add some very basic sanity checks for input packet sizes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 00:13:36 +02:00
Michael Niedermayer
a6b79bb2b1 Merge commit '9fc7184d1a9af8d97b3fc5c2ef9d0a647d6617ea'
* commit '9fc7184d1a9af8d97b3fc5c2ef9d0a647d6617ea':
  bfi: Avoid divisions by zero

See: 99a8552dae
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 00:12:33 +02:00
Michael Niedermayer
7057cc861d Merge commit 'a9221e39600a31ee13e736e9e47743cde23f0280'
* commit 'a9221e39600a31ee13e736e9e47743cde23f0280':
  electronicarts: Add more sanity checking for the number of channels

Note: This check is probably unnecessary
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 23:52:07 +02:00
Michael Niedermayer
5badcfe220 Merge commit 'd07aa3f02b73ab1371c13ac7898338380ca0932b'
* commit 'd07aa3f02b73ab1371c13ac7898338380ca0932b':
  riffdec: Add sanity checks for the sample rate

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 23:41:16 +02:00
Michael Niedermayer
2f8418b584 Merge commit '28ff439efd2362fb21e1a78610737f2e26a72d8f'
* commit '28ff439efd2362fb21e1a78610737f2e26a72d8f':
  mvi: Add sanity checking for the audio frame size

Conflicts:
	libavformat/mvi.c

See: ea1d8465e6
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 23:24:27 +02:00
Michael Niedermayer
17049bff64 Merge commit 'adc09136a4a63b152630abeacb22c56541eacf60'
* commit 'adc09136a4a63b152630abeacb22c56541eacf60':
  xwma: Avoid division by zero

Conflicts:
	libavformat/xwma.c

See: a3cb7f992f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 22:59:49 +02:00
Michael Niedermayer
3a3ebc7c7d Merge commit '8d07258bb6063d0780ce2d39443d6dc6d8eedc5a'
* commit '8d07258bb6063d0780ce2d39443d6dc6d8eedc5a':
  avidec: Make sure a packet is large enough before reading its data

Conflicts:
	libavformat/avidec.c

See: 028cc42a16
Note: data!=NULL implies that the allocated array is at least FF_INPUT_BUFFER_PADDING_SIZE large
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 22:56:15 +02:00
Michael Niedermayer
b24f7cf950 Merge commit '68ff9981283a56c731f00c2ee7901103665092fc'
* commit '68ff9981283a56c731f00c2ee7901103665092fc':
  vqf: Make sure the bitrate is in the valid range

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 22:42:31 +02:00
Michael Niedermayer
554c22c710 Merge commit '9277050e2918e0a0df9689721a188a604d886616'
* commit '9277050e2918e0a0df9689721a188a604d886616':
  vqf: Make sure sample_rate is set to a valid value

See: e481ba2ed7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-29 22:35:06 +02:00
Maxim Poliakovski
487b54104a omadec: fix bitrate for ATRAC3+ streams
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-09-29 21:54:51 +02:00
Maxim Poliakovski
23d0fdcf6f Add support for multichannel ATRAC3+ streams.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-09-29 21:52:57 +02:00
Anton Khirnov
93370d1216 mxfdec: set audio timebase to 1/samplerate
Fixes sync in some samples (e.g. bugs 7581 and 8374 in VLC).
Based on a commit by Matthieu Bouron <matthieu.bouron@gmail.com>

Reported-by: Jean-Baptiste Kempf <jb@videolan.org>
CC: libav-stable@libav.org
2013-09-29 21:50:30 +02:00