This avoid retrying to read ASF index in files for every
attempt to seek. This makes a big difference to protocols
with slow seeking (for example http)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
adpcm: split ADPCM encoders and decoders into separate files.
doc/avconv: fix typo.
rv34: check that subsequent slices have the same type as first one.
smacker demuxer: handle possible av_realloc() failure.
lavfi: add split filter from soc.
lavfi: add showinfo filter
libxavs: add private options corresponding to deprecated global options
Conflicts:
Changelog
libavcodec/adpcm.c
libavfilter/avfilter.h
libavfilter/vf_showinfo.c
libavfilter/vf_split.c
libavformat/smacker.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This reduces problems when underlying protocol is not
seekable even if marked as such or if the file has been
cut short.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The code path using for mpegts over rtp doesn't open the demuxer using
mpegts_read_header,
so it never starts listening for PAT/SDT, only uses auto_guess
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This changes so we assume EOF when we can't find the next
streams index entry for non interleaved file.
http://trac.xbmc.org/ticket/5585
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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 fate
diff update.
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: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
Employ FF_ARRAY_ELEMS instead of manually calculating array length.
Fixed invalid access in wavpack decoder on corrupted bitstream.
Fixed invalid writes in wavpack decoder on corrupted bitstreams.
Fixed invalid access in wavpack decoder on corrupted extra bits sub-blocks.
rtpdec_asf: Fix integer underflow that could allow remote code execution
Conflicts:
libavformat/rtpdec_asf.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
If there is only 1 stream in an flv avformat_find_stream_info will continually
read until probesize is reached. This should stop it reading if the metadata
also claims there to be 1 stream.
Fixes MSVR-11-0088.
Credit: Jeong Wook Oh of Microsoft and Microsoft Vulnerability Research (MSVR)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Martin Storsjö <martin@martin.st>
Fixes MSVR-11-0088
Credit: Jeong Wook Oh of Microsoft and Microsoft Vulnerability Research (MSVR)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
lavc: fix type for thread_type option
avconv: move format to options context
avconv: move limit_filesize to options context
avconv: move start_time, recording_time and input_ts_offset to options context
avconv: add a context for options.
cmdutils: allow storing per-stream/chapter/.... options in a generic way
cmdutils: split per-option code out of parse_options().
cmdutils: add support for caller-provided option context.
cmdutils: declare only one pointer type in OptionDef
cmdutils: move grow_array() from avconv to cmdutils.
cmdutils: move exit_program() declaration to cmdutils from avconv
http: Consider the stream as seekable if the reply contains Accept-Ranges: bytes
nutenc: add namespace to the api facing functions
Conflicts:
avconv.c
cmdutils.c
cmdutils.h
ffmpeg.c
ffplay.c
ffprobe.c
ffserver.c
libavformat/http.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The initial request contains "Range: 0-", which servers normally
have responded with "HTTP/1.1 206 Partial Content" reply with
a Content-Range header, which was used as indicator for seekability.
Apache, since 2.2.20, responds with "HTTP/1.1 200 OK" for these
requests, which is more friendly to caches and proxies, but the
seekability still is indicated via the Accept-Ranges: bytes header.
Signed-off-by: Martin Storsjö <martin@martin.st>
* qatar/master:
AVOptions: fix av_set_string3() doxy to match reality.
cmdutils: get rid of dummy contexts for examining AVOptions.
lavf,lavc,sws: add {avcodec,avformat,sws}_get_class() functions.
AVOptions: add AV_OPT_SEARCH_FAKE_OBJ flag for av_opt_find().
cpu detection: avoid a signed overflow
Conflicts:
avconv.c
cmdutils.c
doc/APIchanges
ffmpeg.c
libavcodec/options.c
libavcodec/version.h
libavformat/version.h
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
currently libavformat only allows seeking if a request with "Range:
0-" results in a 206 reply from the HTTP server which includes a
Content-Range header. But according to RFC 2616, the server may also
reply with a normal 200 reply (which is more efficient for a request
for the whole file). In fact Apache HTTPD 2.2.20 has changed the
behaviour in this way and it looks like this change will be kept in
future versions. The fix for libavformat is easy: Also look at the
Accept-Ranges header.
If st is NULL, it means no 'fmt ' tag is found, but 'data' tag (which
needs a previous 'fmt ' tag to be parsed correctly and st initialized)
check will make sure st is never dereferenced in that case.
The Makito encoder sets stream type 0x11 for AAC.
This patch should be reverted if it breaks decoding valid streams (and
the problem can't be fixed in the probe function).
* qatar/master:
Revert "h264: Properly set coded_{width, height} when parsing H.264."
isom: add missing AVC-Intra tags, rearrange list and update comments
avconv: remove stubs of crop* and pad* options
avconv: re-add nb_streams to InputFile.
Conflicts:
avconv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
Use deinterleavers for demangling audio packets in RealMedia.
vf_scale: don't leak SWS context.
doxygen: drop another pointless star from pointer variable name
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fixes trac issue #343.
Carl Eugen Hoyos actually made a patch first, but I missed it because
trac does not send notification emails when an attachment is added.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Also extend the functionality to use the last found program to start the search
after that program.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Unlike other containers RealMedia stores its audio packets in scrambled form,
with interleaver ID preceeding audio codec ID. Currently deinterleaving
decision is tied to the codec while it's possible to have non-default
deinterleaver with audio codec (like Int0 deinterleaver instead of specific
one for Sipro).
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
fifo: add FIFO API test program, and fate test
fifo: add av_fifo_peek2(), and deprecate av_fifo_peek()
postprocess.c: filter name needs to be double 0 terminated
doxygen: fix wrong comment syntax, //< vs. ///<
doxygen: drop pointless star from pointer variable names
Replace deprecated av_find_stream_info() by avformat_find_stream_info().
xmv: eliminate superfluous zeroing of zero data
configure: fix typo in avconv dependency list
Conflicts:
configure
doc/APIchanges
libavutil/Makefile
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The new function provides a more generic interface than av_fifo_peek()
for peeking at a FIFO buffer data.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
vp6: partially propagate huffman tree building errors during coeff model parsing and fix misspelling
mpeg12: propagate chunk decode errors and fix conditional indentation
vc1: fix VC-1 Pulldown handling.
VC1: Fix first/last row checks with slices
mp4: Handle non-trivial ES Descriptors.
vc1: properly zero coded_block[] edges on new slice entry.
Conflicts:
libavcodec/vc1dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
this fixes accuracy with normal ogg files while keeping support for ogg files
starting at times different from 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
avconv: print the codecs names in the stream mapping.
avconv: move the avcodec_find_decoder() call to add_input_streams().
Windows Media Image decoder (WMVP/WVP2)
ac3enc: remove outdated TODO comment for apply_channel_coupling()
Conflicts:
Changelog
libavcodec/avcodec.h
libavcodec/vc1dec.c
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
libx264: only use ABR mode when the user explicitly set bitrate.
libx264: use medium preset by default.
mp2 encoder: make 128k the default bitrate.
movenc: use libx264 by default when possible for mov, mp4 and psp
avienc: saner default audio codec.
matroskaenc: saner default codecs.
avplay: add examples of how to specify size/pixel format through private options
lavc: add A|E|D flags to "ac" and "ar" options
Conflicts:
doc/ffplay.texi
libavcodec/libx264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
WavPack demuxer: do not rely on index when timestamp is not in indexed range.
WavPack demuxer: store position of the first block in index.
WavPack decoder: implement flush function
avconv: Separate initialization from the main transcode loop.
Conflicts:
avconv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This fixes the situation when there are not enough entries in the index
(e.g. on initial seek there's only one index entry in the index) and index
search returns just the last known entry. That causes seeking function just to
seek there instead of trying harder to get at the requested position.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Currently for multichannel audio position for the last block position is
stored in index (and used for seeking), which is obviously not correct.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* qatar/master: (23 commits)
h264: hide reference frame errors unless requested
swscale: split hScale() function pointer into h[cy]Scale().
Move clipd macros to x86util.asm.
avconv: reindent.
avconv: rescue poor abused start_time global.
avconv: rescue poor abused recording_time global.
avconv: merge two loops in output_packet().
avconv: fix broken indentation.
avconv: get rid of the arbitrary MAX_FILES limit.
avconv: get rid of the output_streams_for_file vs. ost_table schizophrenia
avconv: add a wrapper for output AVFormatContexts and merge output_opts into it
avconv: make itsscale syntax consistent with other options.
avconv: factor out adding input streams.
avconv: Factorize combining auto vsync with format.
avconv: Factorize video resampling.
avconv: Don't unnecessarily convert ipts to a double.
ffmpeg: remove unsed variable nopts
RV3/4 parser: remove unused variable 'off'
add XMV demuxer
rmdec: parse FPS in RealMedia properly
...
Conflicts:
avconv.c
libavformat/version.h
libswscale/swscale.c
tests/ref/fate/lmlm4-demux
Merged-by: Michael Niedermayer <michaelni@gmx.at>
First, container stores only DTS and not PTS as it was believed.
Second, multiple frames in a packet store timestamp instead of position
after the frame length.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
Revert "avconv: use stream copy by default when possible."
avconv: print stream copy information.
avconv: use stream copy by default when possible.
matroskaenc: vertical alignment.
matroskaenc: implement query_codec()
lavf: add avformat_query_codec().
lavc: add avcodec_get_type() for mapping codec_id -> type.
flvenc: use int64_t to store offsets
avconv: don't segfault on 0 input files.
Do not write ID3v1 tags by default
mpegts: log into an AVFormatContext rather than MpegTSContext.
Conflicts:
doc/APIchanges
libavcodec/version.h
libavformat/avformat.h
libavformat/mp3enc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Metadata currently is written only at the start of the file in normal
cases, when transcoding from a rtmp source metadata could be
written later and the offset recorded can exceed 32bit.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
ID3v1 are legacy tags with several limitations; furthermore
avconv/ffmpeg writes the tags in UTF-8 which probably has near-0
software support.
Add a -write_id3v1 option to be able to turn it on; disabled by default.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
Fix NASM include directive
dsputil_mmx: Honor HAVE_AMD3DNOW
lavf,lavd: remove all usage of AVFormatParameters from demuxers.
jack: add 'channels' private option.
VC-1: fix reading of custom PAR.
Remove redundant and dubious video codec detection by its extradata
mpeg12: remove repeat-field code disabled since May 2002
patch checklist: suggest fate instead of regression tests
Turn on resampling on sudden size change instead of bailing out during recode.
avtools: reinitialise filter chain when input video stream changes dimensions
Conflicts:
Makefile
avconv.c
doc/developer.texi
ffplay.c
libavcodec/x86/dsputil_mmx.c
libavdevice/libdc1394.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>