1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

8521 Commits

Author SHA1 Message Date
Justin Ruggles
8916f1fbcb avformat: only fill-in interpolated timestamps if duration is non-zero
This avoids returning duplicate timestamps for multiple packets when the
demuxer does not provide all timestamps and packet duration is not known.
2012-05-03 16:28:08 -04:00
Justin Ruggles
ff499157a1 avformat: remove a workaround for broken timestamps
This modifies pts in situations other than what was intended, leading to
invalid timestamps.

Reverts commit 90bb394dcc
2012-05-03 16:28:08 -04:00
Joakim Plate
68b9ed8391 mpegts: Some additional HDMV types and reg descriptors for mpegts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-05-03 12:13:28 -04:00
Luca Barbato
0ca4642ec5 mkv: mark corrupted packets and return them
Do return error if memory allocation or I/O fails.
2012-04-29 20:22:09 -07:00
Luca Barbato
721af294d9 mkv: forward EMBL block data error
Do not return 0 on error.
2012-04-29 20:22:09 -07:00
Luca Barbato
3b52e9da10 segment: reorder seg_write_header allocation
As pointed by Paul B Mahol <onemda@gmail.com> the previous code could
lead to null pointer dereference.
2012-04-27 14:03:43 -07:00
Luca Barbato
e1e146a2d1 avio: make avio_close(NULL) a no-op
Its behaviour in line with ffurl_close(NULL).
2012-04-27 14:03:43 -07:00
Yusuke Nakamura
546adc1fee mov: Parse EC3SpecificBox (dec3 atom).
Skip to parse fields for additional independent substreams and its
associated dependent substreams since libavcodec's E-AC-3 decoder does not
support them yet.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-27 16:11:46 -04:00
Martin Storsjö
df8aa4598c mpegts: Make sure we don't return uninitialized packets
This fixes crashes, where the demuxer could return 0 even
if the returned AVPacket isn't initialized at all. This
could happen if running into EOF or running out of probesize
with non-seekable sources.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-27 20:05:37 +03:00
Hendrik Leppkes
949d942eef mov: support eac3 audio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-25 15:24:14 -04:00
Luca Barbato
8b97ae6484 avf: fix faulty check in has_duration
An invalid duration is AV_NOPTS_VALUE not 0.
2012-04-25 11:40:22 -07:00
Yusuke Nakamura
462a5b7839 isom: Support more DTS codec identifiers.
DTS LBR identifier ('dtse') is not included since libavcodec doesn't support it yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-23 14:47:17 -04:00
Dale Curtis
7521c4bab2 matroska: Clear prev_pkt between seeks.
The new incremental parser doesn't always clear prev_pkt,
however the packet queue is cleared when seeking. Which leads
to a use-after-free.

Verified using Valgrind.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-04-23 14:21:42 -04:00
Michael Niedermayer
0ca4414d0f audemux: Add a sanity check for the number of channels
Fixes a division by 0.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-23 10:47:38 +03:00
Dale Curtis
8336eb6f85 matroska: Add incremental parsing of clusters.
Reduces the amount of upfront data required for cluster parsing
thus decreasing latency on seek and startup.

The change in the seek-lavf_mkv FATE test is due to incremental
parsing no longer reading as much data as the old parser and
thus not having that additional data to generate index entries
based on keyframes.  Index entries are added correctly as the
file is parsed.

All FATE tests pass and Chrome has been using this patch for ~6
months without issue.

Currently incremental parsing is not supported for files with
SSA tracks since they require merging packets between clusters.
In this case the code falls back to non-incremental parsing.

Signed-off-by: Aaron Colwell <acolwell@chromium.org>
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-22 17:23:50 -07:00
Martin Storsjö
269cb6751b mpegts: Try seeking back even for nonseekable protocols
The mpegts demuxer reads 5 KB at startup just for discovering
the packet size. Since the default avio buffer size is 32 KB,
the seek back to the start will in most cases be within the
avio buffer, and will in most cases succeed even if the actual
protocol isn't seekable.

This makes the demuxer startup faster/with less data when
reading data from a non-seekable input, by not skipping
the first few KB.

If it fails, don't warn if the protocol isn't seekable, making
it behave as before in the failure case.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-23 00:02:49 +03:00
Yusuke Nakamura
94c9bf8887 mov: Treat keyframe indexes as 1-origin if starting at non-zero.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-21 14:04:33 -04:00
Yusuke Nakamura
ba9869311f mov: Take stps entries into consideration also about key_off.
Splitted files don't start always from a sync sample.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-04-21 14:04:33 -04:00
Alex Converse
dc878b96a7 movenc: Support high sample rates in isomedia formats by setting the sample rate field in stsd to 0.
Libisomediafile appears to always set this field to zero.
2012-04-20 13:45:35 -07:00
Justin Ruggles
b0e9edc44f avcodec: add a cook parser to get subpacket duration
Fixes jittery video playback of rm files with cook audio.
2012-04-20 12:11:20 -04:00
Mans Rullgard
6208313aeb avio: make AVIOContext.av_class pointer to const
Fix this warning:
libavformat/aviobuf.c:663:20: warning: assignment discards qualifiers from pointer target type

Although this is a public header, it should remain source and
binary compatible.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 23:54:20 +01:00
Mans Rullgard
9d72c0527c nutdec: add malloc check and fix const to non-const conversion warnings
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 23:54:20 +01:00
Mans Rullgard
3c58300269 matroska: do not set invalid default duration if frame rate is zero
If a video track specifies a zero frame rate (invalid but occurs),
this results in a division by zero and subsequent undefined conversion
to integer.  Setting the default duration from the frame rate only
if the latter is greater than zero avoids such problems.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-04-18 13:48:20 +01:00
Luca Barbato
ac97d47d9b mkv: use av_reduce instead of av_d2q for framerate estimation
It avoids some rounding errors.
2012-04-17 16:37:42 -07:00
Luca Barbato
204bcdf56c mkv: report average framerate as minimal as well
This is in line with other demuxers and overall seems more correct
than assuming codec time base.
2012-04-17 15:47:22 -07:00
Justin Ruggles
8099fc763b riff: use bps instead of bits_per_coded_sample in the WAVEFORMATEXTENSIBLE header
This matches the value for the plain WAVEFORMATEX header.
Also fixes stream copy to WAVE for non-16-bit raw pcm.
2012-04-17 00:09:19 -04:00
Samuel Pitoiset
b3b1751201 rtmp: Support 'rtmp_playpath', an option which overrides the stream identifier
This option is the stream identifier to play or to publish.
Sometimes the URL parser cannot determine the correct
playpath automatically, so it must be given explicitly
using this option (ie. -rtmp_playpath).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-16 23:11:58 +03:00
Samuel Pitoiset
6465562e13 rtmp: Support 'rtmp_app', an option which overrides the name of application
This option is the name of application to connect on the RTMP server.
Sometimes the URL parser cannot determine the app name automatically,
so it must be given explicitly using this option (ie. -rtmp_app).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-16 23:11:53 +03:00
Dale Curtis
c788782c7d mov: free memory on header parsing failure
Call mov_read_close when mov_read_header fails.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-14 19:41:52 -07:00
Dale Curtis
4ebd422c04 mov: fix leaking memory with multiple drefs.
Instead of allocating over the original, free first. MOVStreamContext
is zero initialized so no double free will occur. Same style as other
fixes for the same problem in this file.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-14 19:41:52 -07:00
Yusuke Nakamura
accea4d9d8 mov: Fix detecting there is no sync sample.
Stss atom without entries doesn't mean every sample is a sync sample.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-13 23:08:34 +03:00
Luca Barbato
cbf767a87c avf: has_duration does not check the global one
Some container formats report a global duration, but not a per stream
one.
2012-04-13 12:03:16 -07:00
Dale Curtis
3116858853 matroska: Fix leaking memory allocated for laces.
During error conditions matroska_parse_block may exit without
freeing the memory allocated for laces.

Found via valgrind: http://pastebin.com/E54k8QFU

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-04-12 21:32:01 -07:00
Alex Converse
73b7437f1d movenc: Remove a dead initialization 2012-04-12 18:34:45 -07:00
Diego Biurrun
2ef15b46e4 avpacket, bfi, bgmc, rawenc: K&R prettyprinting cosmetics 2012-04-12 09:00:49 +02:00
Luca Barbato
ebbede2265 movenc: small refactor mov_write_packet
Share the formerly internal write_packet with the hinter and move the
fragment flush logic to the user facing one since it is not concerned
about movtrack-only streams.

Fixes bug #263

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-11 14:38:37 +03:00
Luca Barbato
18b59956e0 movenc: remove redundant check
The proper check is already in mov_write_header.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-11 14:38:36 +03:00
Diego Biurrun
679481b3b6 Drop some pointless #ifdefs.
The files are only compiled if the #ifdef conditions are met.
2012-04-10 19:27:38 +02:00
Asen Lekov
a559d65c07 nutdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-04-10 14:57:47 +02:00
Martin Storsjö
9294f538e9 rtsp: Don't use av_malloc(0) if there are no streams
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 15:51:33 +03:00
Martin Storsjö
62c3c8ca78 rtsp: Don't use uninitialized data if there are no streams
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 15:51:32 +03:00
Martin Storsjö
2ce7f4d4e6 cosmetics: Fix indentation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 12:04:29 +03:00
Martin Storsjö
456001486e rtsp: Don't expose the MS-RTSP RTX data stream to the caller
This avoids exposing a dummy AVStream which won't get any data
and which will make avformat_find_stream_info wait for info about
this stream.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-08 12:04:22 +03:00
Martin Storsjö
d293e3464d rtpdec_asf: Set the no_resync_search option for the chained asf demuxer
Searching for packet markers doesn't make sense for this use case,
where packets are fed one at a time to the demuxer.

This fixes playing back streams that have packets not starting
with the 0x82, 0x00, 0x00 marker.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-07 01:01:08 +03:00
Martin Storsjö
75b7feaeb4 asfdec: Add an option for not searching for the packet markers
Some streams don't contain these.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-07 01:01:03 +03:00
Joakim Plate
ba24f12982 libavformat: Only require first packet to be known for audio/video streams
It can take a long time before subtitles or data streams show up,
so we shouldn't wait for those before assuming we have all info
for streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 20:51:18 +03:00
Martin Storsjö
20234a4bd7 cosmetics: Align muxer/demuxer declarations
Also add missing trailing commas, break long codec_tag lines and
add spaces in codec_tag declarations.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-04-06 19:19:59 +03:00
Raffaele Sena
34d908c083 rtmp: implement bandwidth notification
Improve compatibility with some servers.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-03 12:37:31 -07:00
Samuel Pitoiset
faba4a9b88 rtmp: update supported audio codecs value
The audio codecs property is composed by all values except
SUPPORT_SND_INTEL (0x0008) and SUPPORT_SND_UNUSED (0x0010) which are
unused.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-04-03 12:24:33 -07:00
Anton Khirnov
ddb4431208 id3v2: fix skipping extended header in id3v2.4
In v2.4, the length includes the length field itself.
2012-04-01 09:02:24 +02:00
Reimar Döffinger
10b1c060f9 oggenc: fix condition when not to flush due to keyframe granule.
The previous condition of 0 page size was wrong,
that would disable the mechanism for all frames at
a start of a page, thus some keyframes still would not
get their own granule.
The real problem is that header packets must not be flushed,
but they have (and must have) 0 granule and thus would
be detected as keyframes.
Add a separate parameter to mark header packets.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-30 16:32:16 -04:00
Andres Gonzalez
ed3e1b485a oggenc: add pagesize option to set preferred page size
When set, if an Ogg stream buffer has enough data, a page is made
instead of filling maximum-size pages. Using smaller pages results
smaller seek intervals at the expense of higher container overhead.

Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-30 16:32:03 -04:00
Diego Biurrun
afd8a3957b output-example: K&R formatting cosmetics, comment spelling fixes 2012-03-30 13:43:29 +02:00
Luca Barbato
93f6d0475f avf: make the example output the proper message
av_dump_format needs the codecs opened in order to print
them.
2012-03-29 17:07:19 -07:00
Luca Barbato
28db30aa29 avf: fix audio writing in the output-example
av_init_packet does not reset data and size fields in AVPacket,
avcodec_encode_audio2 can use preallocated AVPacket.
2012-03-29 17:07:19 -07:00
Ronald S. Bultje
4f7c7624c0 mov: don't overwrite existing indexes.
Prevents all kind of badness if files contain multiple
indexes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Kostya Shishkov
f704eb612b id3v2: add another mimetype for JPEG image 2012-03-29 15:49:06 +02:00
Ronald S. Bultje
44257ef426 asf: only set index_read if the index contained entries.
This allows falling back to a binary search if the file contains no
index, thus fixing seeking in such files (e.g. luckynight.wma).
2012-03-28 10:22:25 -07:00
Diego Biurrun
a92be9b856 Replace memset(0) by zero initializations.
Also remove one pointless zero initialization in rangecoder.c.
2012-03-28 09:38:33 +02:00
Justin Ruggles
eed691f7d1 oggdec: calculate correct timestamps in Ogg/FLAC
We need to parse the individual packet durations when there is more than one
packet in a page.
2012-03-27 16:11:06 -04:00
Paul B Mahol
55abaa58e5 westwood_vqa: fix SND0 chunk handling
Version from vqa header does not dictate which sound chunks may
appear in file.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-27 11:58:15 -04:00
Paul B Mahol
f0a343f399 westwood_vqa: set video stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-27 08:54:07 -07:00
Jindrich Makovicka
904100e5fc make av_interleaved_write_frame() flush packets when pkt is NULL
This patch allows the user to force flushing of all queued packets
by calling av_interleaved_write_frame() with pkt set to NULL.

Signed-off-by: Jindrich Makovicka <jindrich.makovicka@nangu.tv>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-27 11:12:55 +03:00
Alex Converse
c9024a9fd7 mpegts: Fix dead error checks 2012-03-26 17:53:51 -07:00
Diego Biurrun
ad0e31f134 build: prettyprinting cosmetics 2012-03-26 13:00:10 +02:00
Anton Khirnov
967923abd1 lavf doxy: expand AVStream.codec doxy. 2012-03-26 10:59:43 +02:00
Anton Khirnov
e44ada129c lavf doxy: improve AVStream.time_base doxy.
Remove confusing sentence that implied the user should set the timebase.
Elaborate on how the timebase is set for muxing.
2012-03-26 10:59:43 +02:00
Anton Khirnov
f58b8cc3e3 lavf doxy: add some basic documentation about reading from the demuxer. 2012-03-26 10:59:43 +02:00
Anton Khirnov
10fa4ff7bc lavf doxy: document passing options to demuxers. 2012-03-26 10:59:43 +02:00
Anton Khirnov
dca9c81d82 lavf doxy: clarify that an AVPacket contains encoded data. 2012-03-26 10:59:42 +02:00
Jindrich Makovicka
3fadb29baf mpegtsenc: allow user triggered PES packet flushing
Signed-off-by: Jindrich Makovicka <jindrich.makovicka@nangu.tv>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-26 11:41:18 +03:00
Martin Storsjö
68893afe1d movenc: Merge if statements
This isn't exactly equivalent with the earlier code for codecs
other than H264 and VC1, but those are two only codecs supported
by this codepath anyway, and it simplifies it a bit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-25 01:06:49 +02:00
Martin Storsjö
d5ed5e7d0c avc: Add a function for converting mp4 style extradata to annex b
Make movenc use this function instead of the current custom
conversion function.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-24 22:53:18 +02:00
Martin Storsjö
e20ad71ebb libavformat: Document who sets the AVStream.id field
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-24 22:17:37 +02:00
Alex Converse
5023b89bba xwma: Validate channels and bits_per_coded_sample.
This prevents a SIGFPE later on.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 13:57:12 -07:00
Alex Converse
86f2ae06b9 mov: Do not read past the end of the ctts_data table.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 13:57:12 -07:00
Alex Converse
3e6e89b3d6 mov: Add missing terminator to mov_ch_layout_map_1ch.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: Libav-stable@libav.org
2012-03-22 13:56:44 -07:00
Ronald S. Bultje
e73c6aaabf asf: reset side data elements on packet copy.
Prevents crash (double free) when free()ing the original packet.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Michael Niedermayer
f0b4a505d8 oggparseogm: fix order of arguments of avpriv_set_pts_info().
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-03-22 19:51:43 +01:00
Justin Ruggles
f036342b4b aiffdec: set block_duration to 1 for PCM codecs that are supported in AIFF-C 2012-03-22 11:45:46 -04:00
Justin Ruggles
b38b7cc392 aiffdec: factor out handling of integer PCM for AIFF-C and plain AIFF 2012-03-22 11:45:46 -04:00
Justin Ruggles
2c07c18048 aiffdec: use av_get_audio_frame_duration() to set block_duration for AIFF-C 2012-03-22 11:45:46 -04:00
Justin Ruggles
02f88eec1d aiffdec: do not set bit rate if block duration is unknown
CC: libav-stable@libav.org
2012-03-22 11:45:36 -04:00
Anton Khirnov
a6733202cc lavf: make av_interleave_packet_per_dts() private.
There is no reason for it to be public, it's only meant to be used
internally.
2012-03-20 20:12:16 +01:00
Anton Khirnov
3c90cc2ef2 lavf: deprecate av_read_packet().
The caller can achieve the same effect (i.e. getting raw unparsed/mangled
packets) with av_read_frame() and AVFMT_FLAG_NOPARSE |
AVFMT_FLAG_NOFILLIN
2012-03-20 20:12:16 +01:00
Justin Ruggles
f63412fc74 oggdec: output correct timestamps for Vorbis
Takes encoder delay into account by comparing first the coded page
duration with the calculated page duration. Handles last packet duration
if needed, also by comparing coded duration with calculated duration.
Also does better handling of timestamp generation for packets in the
first page for streamed ogg files where the start time is not
necessarily zero.
2012-03-20 14:39:57 -04:00
Justin Ruggles
777365fe86 xa: set correct bit rate
Also fixes stream duration calculation.
2012-03-20 14:12:54 -04:00
Justin Ruggles
a54bc52265 xa: do not set bit_rate, block_align, or bits_per_coded_sample
The values in the header refer to decoded data, not compressed data.
2012-03-20 14:12:53 -04:00
Justin Ruggles
64de57f645 xa: fix end-of-file handling
Do not output an extra packet when out_size is reached.
Also return AVERROR_EOF instead of AVERROR(EIO).
2012-03-20 14:12:53 -04:00
Justin Ruggles
cd2ffb67ad xa: fix timestamp calculation
The packet duration is always 28 samples.
2012-03-20 14:12:53 -04:00
Martin Storsjö
39f5a5462c movenc: Add a min_frag_duration option
The other fragmentation options (frag_duration, frag_size and
frag_keyframe) are combined with OR, cutting fragments at the
first of the conditions being fulfilled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 11:18:05 +02:00
Martin Storsjö
ccfa8aa26f rtsp: Set the default delay to 0.1 s for the RTSP/SDP/RTP demuxers
This enables reordering of UDP packets by default, unless the caller
explicitly sets -max_delay 0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 10:53:49 +02:00
Martin Storsjö
4fa57d524f libavformat: Set the default for the max_delay option to -1
Make the muxers/demuxers that use the field handle the default
-1 in the same way as 0.

This allows distinguishing an intentionally set 0 from the default
value where the user hasn't set it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-20 10:53:47 +02:00
Anton Khirnov
5626697104 Move AVFormatContext/AVCodecContext option tables to separate files.
This will allow us to automatically generate manpages for them.
2012-03-20 07:09:18 +01:00
Anton Khirnov
40b41be3fa lavf: use AVStream.discard to disable queueing attached pictures. 2012-03-20 06:53:44 +01:00
Anton Khirnov
01fcc42b90 lavf: requeue attached pictures after seeking.
This allows the caller to get them without special code even after
seeking before receiving any data.
2012-03-20 06:52:33 +01:00
Anton Khirnov
713f3062a7 id3v2: set the keyframe flag on attached pictures. 2012-03-20 06:52:07 +01:00
Derek Buitenhuis
0e714f889e ZeroCodec Decoder
An obscure Japanese lossless video codec, originally intended
for use with a remote desktop application.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-03-19 19:02:23 +01:00
Kostya Shishkov
b8560637d9 RealAudio Lossless decoder 2012-03-19 18:46:34 +01:00
Martin Storsjö
316e724f18 rtpenc: Use AVFormatContext.packet_size instead of a private option
The private option has not been part of any release yet (and
it is only of use in quite rare cases), so just remove it instead
of keeping it with deprecation warnings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 18:37:38 +02:00
Nicolas George
01b0ade665 url: Document the expected behaviour of url_read
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 16:25:51 +02:00
Martin Storsjö
57151f8674 libavformat: Use AVFormatContext.probesize in init_input
This was forgotten in the transition from av_open_input_file to
avformat_open_input, see 603b8bc2a1.

This doesn't change anything for the default case where the
option isn't set, since PROBE_BUF_MAX is 1048576 (which was
used as max probe size earlier) while the default value for
the probesize option is 5000000, which for the probe function
is clipped to PROBE_BUF_MAX anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 16:08:08 +02:00
Martin Storsjö
17934c1824 cosmetics: Align some AVInput/OutputFormat declarations
Also add missing trailing commas.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-19 14:27:43 +02:00
Michael Niedermayer
72ec043af4 oma: Fix out of array read.
Input: 01-Untitled-partial.oma
ZZUF params: zzuf[s=7157,r=0.001]

Fixes Bugzilla #106

Bug-found-by: darkshikari
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-18 15:01:58 -07:00
Anton Khirnov
8bc5d90a7e lavf: remove some disabled code. 2012-03-17 22:37:55 +01:00
Anton Khirnov
f35f8eeb0d lavf: only set average frame rate for video. 2012-03-17 22:36:56 +01:00
Anton Khirnov
9ade26ee91 lavf: remove a pointless check.
Timebase is already checked in avpriv_set_pts_info().
2012-03-17 22:36:48 +01:00
Paul B Mahol
0afd8f12e9 avcodec: add XBM encoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-17 15:45:04 -04:00
Anton Khirnov
cd9a3c3512 lavf: don't select an attached picture as default stream for seeking. 2012-03-15 14:01:05 +01:00
Paul B Mahol
d3d1b25e69 jv demux: set video stream duration
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-03-14 15:34:50 +01:00
Martin Storsjö
499ad54d98 http: Clear the auth state on redirects
Currently we only try continuing with the same auth mechanism
as the initial request.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 11:19:29 +02:00
Martin Storsjö
e75bbcf493 http: Retry auth if it failed due to being stale
Allow up to 4 retries for normal requests, where both the
proxy and the target server might need to authenticate.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 11:19:29 +02:00
Martin Storsjö
cdf9108b6a rtsp: Resend new keepalive commands if they used stale auth
These commands are sent asynchronously, not waiting for the reply.
This reply is parsed later by ff_rtsp_tcp_read_packet or
udp_read_packet. If the reply indicates that we used stale
authentication and need to use a new nonce, resend a new keepalive
command immediately.

This is the only request sent asynchronously, so currently there's
no other command that needs to be resent in the same way.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 11:19:29 +02:00
Martin Storsjö
2f96cc1fc4 rtsp: Retry authentication if failed due to being stale
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 10:36:18 +02:00
Martin Storsjö
8a3360d18a httpauth: Parse the stale field in digest auth
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-13 10:36:17 +02:00
Paul B Mahol
947e103a8f iff: make .long_name more descriptive
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-12 17:02:02 +02:00
Martin Storsjö
705eeb5eca rtsp: Fix a typo
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-12 16:27:00 +02:00
Diego Biurrun
ffae713a5b Fix a bunch of common typos. 2012-03-09 22:02:49 +01:00
Alex Converse
100c3fb2d1 mpegts: Always honor a registration descriptor if present and there is no other codec information. 2012-03-09 09:48:14 -08:00
Martin Storsjö
6294d708b8 rtsp: Only set the ttl parameter if the server actually gave a value
Passing ttl=0 to the rtp/udp url contexts makes packets never
leave the host machine.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:04:32 +02:00
Martin Storsjö
2bfd92b330 udp: Set ttl for read-write streams, too, not only for write-only ones
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:04:05 +02:00
Martin Storsjö
c700fdb00f udp: Only bind to the multicast address if in read-only mode
This fixes sending back RTCP RR packets if receiving RTP over
multicast.

If the multicast stream is sent on demand (set up and signalled
via RTSP), the sender might depend on getting RTCP RR packets
knowing that there are listeners, otherwise the stream can be
closed after a certain timeout.

This fixes receiving RTSP streams over multicast on unix, from
certain Axis cameras.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:46 +02:00
Martin Storsjö
1b89bcdd7f udp: Clarify the comment about binding the multicast address
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:11 +02:00
Martin Storsjö
113d3e106d udp: Reorder comments
When this code was added in 36b532815c, the new code was added
between the existing comment and the existing line of code, making
the old comment seem to refer to the new code. This makes it read
correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-09 15:03:10 +02:00
Dale Curtis
ef0d779706 Fix uninitialized reads on malformed ogg files.
The ogg decoder wasn't padding the input buffer with the appropriate
FF_INPUT_BUFFER_PADDING_SIZE bytes. Which led to uninitialized reads in
various pieces of parsing code when they thought they had more data than
they actually did.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-03-08 11:52:15 -08:00
Martin Storsjö
94f1b11a6f rtpenc: Fix the AVRational used for av_rescale_q_rnd
The current one has a zero denominator - this is what was
intended in 14aecc50fa.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-08 01:15:28 +02:00
Martin Storsjö
a887c87c23 udp: Print an error message if bind fails
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-07 21:52:19 +02:00
Ronald S. Bultje
a93b572ae4 smacker: error out if palette copy-with-offset overruns palette size.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:35:03 -08:00
Carl Eugen Hoyos
a294a7a1b3 mov: Allow last chunk to have an arbitrary number of samples.
Fixes ticket #673.
(cherry picked from commit 8dcd2a41ec)

Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-06 15:25:34 -08:00
Reimar Döffinger
632eb1bbae cdxl demux: do not create packets with uninitialized data at EOF.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-03-05 16:27:31 -05:00
Justin Ruggles
94cf64b81f cosmetics: reindent 2012-03-05 13:08:19 -05:00
Justin Ruggles
8c1d6ac66a avformat: do not require a pixel/sample format if there is no decoder
Also, do not keep trying to find and open a decoder in try_decode_frame() if
we already tried and failed once.

Fixes always searching until max_analyze_duration in
avformat_find_stream_info() when demuxing codecs without a decoder.
2012-03-05 13:08:18 -05:00
Justin Ruggles
a7fa75684d avformat: do not fill-in audio packet duration in compute_pkt_fields()
Use the estimated duration only to calculate missing timestamps if needed.
2012-03-05 13:08:18 -05:00
Justin Ruggles
6c65cf58fd lavf: Use av_get_audio_frame_duration() in get_audio_frame_size()
Also, do not give AVCodecContext.frame_size priority for muxing.

Updated 2 FATE references:
dxa-feeble - adds 1 audio frame that is still within 2 seconds as specified
             by -t 2 in the FATE test
wmv8-drm-nodec - durations are not needed. previously they were estimated
                 using the packet size and average bit rate.
2012-03-05 13:08:18 -05:00
Justin Ruggles
f1e73100d9 siff: do not set AVCodecContext.frame_size
also, properly set AVCodecContext.bits_per_coded_sample, AVStreasm.start_time,
and AVPacket.duration.
2012-03-05 13:08:17 -05:00
Justin Ruggles
ec2e767bf3 amr demuxer: do not set AVCodecContext.frame_size.
it is not necessary.
2012-03-05 13:08:17 -05:00
Justin Ruggles
8d1a20aa7c aiffdec: do not set AVCodecContext.frame_size
It is unnecessary. Also, for some codecs we're reading more than 1 frame per
packet. Instead we use a private context variable to calculate the bit rate,
stream duration, and packet durations.

Updated FATE seek test, which has slightly different timestamps due to a
more accurate bit rate calculation.
2012-03-05 13:08:17 -05:00
Justin Ruggles
237a855caf mov: do not set AVCodecContext.frame_size
It is not necessary.
2012-03-05 13:08:17 -05:00
Justin Ruggles
9727264220 ape: do not set AVCodecContext.frame_size.
prevents lavf from setting incorrect packet durations.
2012-03-05 13:08:17 -05:00
Justin Ruggles
2dd18d4435 rdt: remove workaround for infinite loop with aac
avformat_find_stream_info() no longer hangs while waiting for AAC frame_size
2012-03-05 13:08:16 -05:00
Justin Ruggles
9c365fe8ae avformat: do not require frame_size in avformat_find_stream_info() for CELT
In Ogg/CELT, frame_size is found in the same place as the sample_rate and
channels, so we do not need to force the frame_size to be parsed.
2012-03-05 13:08:16 -05:00
Justin Ruggles
fbc8c59679 avformat: do not require frame_size in avformat_find_stream_info() for MP1/2/3
It was only needed to avoid a bad time base (and thus non-monotone timestamps)
for stream copy to avi.
2012-03-05 13:08:16 -05:00
Justin Ruggles
84b6ae0808 avformat: do not require frame_size in avformat_find_stream_info() for AAC
We already will get the needed info because of CODEC_CAP_CHANNEL_CONF
2012-03-05 13:08:16 -05:00
Justin Ruggles
620b88a302 swfenc: use av_get_audio_frame_duration() instead of AVCodecContext.frame_size
This way we can do stream copy without having the demuxer wait until
frame_size has been set.
2012-03-05 13:08:16 -05:00
Justin Ruggles
14aecc50fa rtpenc: use av_get_audio_frame_duration() for max_frames_per_packet
It is more reliable than AVCodecContext.frame_size for codecs with constant
packet duration.
2012-03-05 13:08:16 -05:00
Justin Ruggles
c019070fda riffenc: use av_get_audio_frame_duration()
For encoding, frame_size is not a reliable indicator of packet duration.
Also, we don't want to have to force the demuxer to find frame_size for
stream copy to work.
2012-03-05 13:08:15 -05:00
Anton Khirnov
27c7ca9c12 lavf: deobfuscate read_frame_internal().
Split off packet parsing into a separate function. Parse full packets at
once and store them in a queue, eliminating the need for tracking
parsing state in AVStream.

The horrible unreadable loop in read_frame_internal() now isn't weirdly
ordered and doesn't contain evil gotos, so it should be much easier to
understand.

compute_pkt_fields() now invents slightly different timestamps for two
raw vc1 tests, due to has_b_frames being set a bit later. They shouldn't
be more wrong (or right) than previous ones.
2012-03-05 18:47:05 +01:00
Anton Khirnov
dcee811505 lavf: make read_from_packet_buffer() more flexible.
Make packet buffer a parameter, don't hardcode it to be
AVFormatContext.packet_buffer.

Also move the function higher in the file, since it will be called from
read_frame_internal().
2012-03-05 18:44:45 +01:00
Anton Khirnov
52b0943f10 lavf: factorize freeing a packet buffer. 2012-03-05 18:44:30 +01:00
Diego Biurrun
0a41f47dc1 dv: Do not redundantly initialize struct members to zero. 2012-03-05 17:02:59 +01:00
Justin Ruggles
b7beabab4b tiertexseq: set correct block_align for audio 2012-03-03 17:03:27 -05:00
Justin Ruggles
f9cf91d822 tiertexseq: set audio stream start time to 0
Update FATE test to reflect delayed video due to the file having audio-only
frames prior to the first frame with video.
2012-03-03 17:03:27 -05:00
Justin Ruggles
0883109b27 voc/avs: Do not change the sample rate mid-stream.
Also, set the time base based on the sample rate.
lavf-voc seek test updated to reflect slightly different seek points.
2012-03-03 17:03:27 -05:00
Justin Ruggles
4da374f8a9 segafilm: use the sample rate as the time base for audio streams 2012-03-03 17:03:27 -05:00
Justin Ruggles
ea289186f0 ea: fix audio pts
The time base is 1 / sample_rate, not 90000.
Several more codecs encode the sample count in the first 4 bytes of the
chunk, so we set the durations accordingly. Also, we can set start_time and
packet duration instead of keeping track of the sample count in the demuxer.
2012-03-03 17:03:27 -05:00
Justin Ruggles
01be6fa926 psx-str: fix audio pts
Each packet has 18 sectors with 224/channels samples in each sector.
2012-03-03 17:03:27 -05:00
Justin Ruggles
d0ab585074 vqf: set packet duration
Fixes timestamp calculation.
The FATE reference is updated because timestamp calculations are now more
accurate. Previous timestamps were based on average bit rate.
2012-03-03 17:03:26 -05:00
Justin Ruggles
101c369b7c tta demuxer: set packet duration 2012-03-03 17:03:26 -05:00
Justin Ruggles
5a9b952201 thp: set audio packet durations 2012-03-03 16:58:45 -05:00
Justin Ruggles
5602a464c9 avcodec: add a Vorbis parser to get packet duration
This also allows for removing some of the Vorbis-related hacks.
2012-03-03 16:43:11 -05:00
Alex Converse
1aa708988a mpegts: Pad the packet buffer in handle_packet().
This allows it to be used with get_bits without the thread of overreads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 15:44:42 -08:00
Alex Converse
4df369692e mpegts: Do not call read_sl_header() when no bytes remain in the buffer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 15:44:42 -08:00
Ronald S. Bultje
9c239f6026 matroska: check buffer size for RM-style byte reordering.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-02 10:32:22 -08:00
Alex Converse
1697c29d75 rmdec: Honor .RMF tag size rather than assuming 18. 2012-03-02 09:31:32 -08:00
Anton Khirnov
56bf24ad78 r3d: don't set codec timebase.
It's not supposed to be set by demuxers.

Set avg_frame_rate and r_frame_rate instead.
2012-03-02 17:21:45 +01:00
Anton Khirnov
efec3bc65a electronicarts: set timebase for tgv video.
The container has no timestamps and the framerate isn't stored in the
data either.
The decoder sets codec timebase to experimentally found value 1/15. Do
the same for the demuxer too, it should at least be better than the
default 1/90000.
2012-03-02 11:11:38 +01:00
Anton Khirnov
e39400c3a8 electronicarts: parse the framerate for cmv video. 2012-03-02 11:11:38 +01:00
Anton Khirnov
1bb3990b56 ogg: don't set codec timebase
Demuxers are not supposed to set it.
2012-03-02 11:11:38 +01:00
Anton Khirnov
1d3144c318 electronicarts: don't set codec timebase
Demuxers are not supposed to set it.
Set stream timebase and framerates instead (this is a cfr container with
no timestamps).
2012-03-02 11:11:38 +01:00
Anton Khirnov
10a6e0c346 avs: don't set codec timebase
Demuxers are not supposed to set it.
Set r_frame_rate and avg_frame_rate instead.
2012-03-02 11:11:38 +01:00
Ingo Brückl
c05e2be9a2 mp3dec: Fix reading file size and frames in VBRI headers
The fields "Number of Bytes" and "Number of Frames" are mixed up. "Bytes"
come first, "Frames" behind.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2012-03-01 15:32:28 -08:00
Diego Biurrun
75c553eb26 rmdec: adjust printf format string specifier to fix warning
libavformat/rmdec.c:383: warning: format ‘%d’ expects type ‘int’, but argument 7 has type ‘int64_t’
2012-03-01 23:11:14 +01:00
Martin Storsjö
984b914c55 rtpenc: Use MB info side data for splitting H263 packets for RFC 2190
This makes the packetization spec compliant for cases where one single
GOB doesn't fit into an RTP packet.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-03-01 16:08:32 +02:00
Justin Ruggles
929dd8c108 dxa: set audio stream time base using the sample rate 2012-02-29 15:45:50 -05:00
Justin Ruggles
aa831c4093 psx-str: do not allow seeking by bytes 2012-02-29 15:45:50 -05:00
Justin Ruggles
bdbf1fa405 asfdec: Do not set AVCodecContext.frame_size 2012-02-29 15:45:50 -05:00
Justin Ruggles
4bf6775e9d vqf: set packet parameters after av_new_packet()
Otherwise the values are overwritten.
2012-02-29 15:45:50 -05:00
Martin Storsjö
07ec1f2140 rtpenc: Fix setting the max packet size
This fixes cases where the user had specified one desired MTU
via an option, and the protocol indicates another one.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-29 16:48:01 +02:00
Anton Khirnov
322537478b Add a minor bump, changelog/APIchanges entry and some documentation for APIC support. 2012-02-29 14:44:22 +01:00
Anton Khirnov
2dfea12058 mp3enc: write attached pictures (APIC). 2012-02-29 14:37:00 +01:00
Anton Khirnov
c68148b1ea mp3enc: move mp3_write_xing() further up in the file.
It will be need by new functions called from mp3_write_trailer().
2012-02-29 14:36:45 +01:00
Anton Khirnov
ba445f5557 id3v2enc: add a function for writing attached pictures.
Unused so far.
2012-02-29 14:31:17 +01:00
Anton Khirnov
24fe1a3b16 id3v2enc: fix writing frame sizes for ID3v2.3
Frame sizes in ID3v2.3 are not synchsafe, they are simply 32be numbers.

In practice this bug is not noticeable unless the frame size takes more
than 7 bits (which is almost never for text frames).
2012-02-29 14:30:14 +01:00
Anton Khirnov
411225aabc id3v2enc: split ff_id3v2_write().
This will allow writing the tag in several steps, needed for writing
attached pictures.
2012-02-29 14:26:14 +01:00
Anton Khirnov
c199817748 id3v2enc: make id3v2_put_size take only an AVIOContext.
It has no need of full AVFormatContext.
2012-02-29 14:25:33 +01:00
Anton Khirnov
393fd0d89e id3v2: remove unused ff_id3v2_read().
Rename ff_id3v2_read_all to ff_id3v2_read().
2012-02-29 14:19:42 +01:00
Anton Khirnov
079ea6ca5f lavf: export id3v2 attached pictures as streams. 2012-02-29 14:16:32 +01:00
Anton Khirnov
dd2a4bcfd7 lavf: generic code for exporting attached pictures. 2012-02-29 14:16:25 +01:00
Anton Khirnov
a93b09cb45 id3v2: read attached pictures and export them in ID3v2ExtraMeta. 2012-02-29 14:14:48 +01:00
Anton Khirnov
b73ad74660 lavf: move CodecMime from matroska.h to internal.h
it will be useful for attached pictures in ID3v2
2012-02-29 13:57:59 +01:00
Anton Khirnov
eaea76d72c swfdec: do not set codec timebase.
It is not supposed to be set outside of lavc.

Fixes a divide by zero when the stored framerate is 0.
2012-02-29 13:52:55 +01:00
Anton Khirnov
4f07f8196c lavc: deprecate AVCodecContext.color_table_id.
It's currently only used as temporary storage by the mov demuxer. Make
it use a local variable instead.
2012-02-29 07:25:00 +01:00
Anton Khirnov
63efd83ae1 mpegvideo_enc: add chroma/luma_elim_threshold private options.
Deprecate corresponding AVCodecContext fields.
2012-02-29 07:23:31 +01:00
Ronald S. Bultje
bb6d5411e1 asf: don't seek back on EOF.
Seeking back on EOF will reset the EOF flag, causing us to re-enter
the loop to find the next marker in the ASF file, thus potentially
causing an infinite loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 16:25:05 -08:00
Ronald S. Bultje
6e57a02b9f asf: error out on ridiculously large minpktsize values.
They cause various issues further down in demuxing.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 14:32:34 -08:00
Ronald S. Bultje
934cd18a43 oma: don't read beyond end of leaf_table.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-28 11:58:13 -08:00
Diego Biurrun
cfac648e6a doxygen: Remove documentation for non-existing parameters; misc small fixes. 2012-02-28 20:48:43 +01:00
Luca Barbato
0c1759ac4b segment: implement wrap around
Provide a way to wrap around the segment index so pseudostreaming
live through a web server and html5 browser is simpler.

Also ensure that 0 (disable) is a valid value across the options
providing wrap around.
2012-02-28 15:01:20 +01:00
Luca Barbato
ee42df8a35 avf: reorder AVStream and AVFormatContext 2012-02-28 15:01:20 +01:00
Michael Niedermayer
e60bdb7e5c flvdec: Remove the now redundant check for known broken metadata creator
The index validation identifies these indexes as broken.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-27 12:07:24 +02:00