Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-02-29hls: Add and use a memebr of AVIOInternal rather than abuse opaqueDerek Buitenhuis
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-29Merge commit '225e84e74544062706c0159ec0737b0e1d40915f'Derek Buitenhuis
* commit '225e84e74544062706c0159ec0737b0e1d40915f': hls: disallow opening nested files in child demuxers Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-23lavf: replace AVStream.codec with AVStream.codecparAnton Khirnov
Currently, AVStream contains an embedded AVCodecContext instance, which is used by demuxers to export stream parameters to the caller and by muxers to receive stream parameters from the caller. It is also used internally as the codec context that is passed to parsers. In addition, it is also widely used by the callers as the decoding (when demuxer) or encoding (when muxing) context, though this has been officially discouraged since Libav 11. There are multiple important problems with this approach: - the fields in AVCodecContext are in general one of * stream parameters * codec options * codec state However, it's not clear which ones are which. It is consequently unclear which fields are a demuxer allowed to set or a muxer allowed to read. This leads to erratic behaviour depending on whether decoding or encoding is being performed or not (and whether it uses the AVStream embedded codec context). - various synchronization issues arising from the fact that the same context is used by several different APIs (muxers/demuxers, parsers, bitstream filters and encoders/decoders) simultaneously, with there being no clear rules for who can modify what and the different processes being typically delayed with respect to each other. - avformat_find_stream_info() making it necessary to support opening and closing a single codec context multiple times, thus complicating the semantics of freeing various allocated objects in the codec context. Those problems are resolved by replacing the AVStream embedded codec context with a newly added AVCodecParameters instance, which stores only the stream parameters exported by the demuxers or read by the muxers.
2016-02-22hls: disallow opening nested files in child demuxersAnton Khirnov
2016-02-16avformat/hls: fix potential integer overflowMichael Niedermayer
This is not a regression Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-16Merge commit '81306fd4bdeb5c17d4db771e4fec684773b5790f'Derek Buitenhuis
* commit '81306fd4bdeb5c17d4db771e4fec684773b5790f': hls: eliminate ffurl_* usage Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-10Merge commit '9f61abc8111c7c43f49ca012e957a108b9cc7610'Derek Buitenhuis
This also deprecates our old duplicated callbacks. * commit '9f61abc8111c7c43f49ca012e957a108b9cc7610': lavf: allow custom IO for all files Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-02Update demuxers and protocols for protocol whitelist supportMichael Niedermayer
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-01Revert "avformat/hls: Require the file extension to be m3u / m3u8 for ↵Michael Niedermayer
probing to succeed" This can cause problems with urls that have arguments after the filename This reverts commit b0c57206d583517a5ea35dd7f365f8260d9106f2. Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-25avformat/hls: Check that filename is not "" in probe before checking its ↵Michael Niedermayer
extension Possibly the check as a whole causes more problems than it helps, if so dont hesitate to remove it Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-24hls: eliminate ffurl_* usageAnton Khirnov
Now all IO should go through the IO callbacks and be interceptable by the caller.
2016-01-24lavf: allow custom IO for all filesAnton Khirnov
Some (de)muxers open additional files beyond the main IO context. Currently, they call avio_open() directly, which prevents the caller from using custom IO for such streams. This commit adds callbacks to AVFormatContext that default to avio_open2()/avio_close(), but can be overridden by the caller. All muxers and demuxers using AVIO are switched to using those callbacks instead of calling avio_open()/avio_close() directly. (de)muxers that use the URLProtocol layer directly instead of AVIO remain unconverted for now. This should be fixed in later commits.
2016-01-19avformat/hls: Require the file extension to be m3u / m3u8 for probing to succeedMichael Niedermayer
If the filename isnt set by the user application then the code behaves like before Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15avformat/hls: Even stricter URL checksMichael Niedermayer
This fixes a null pointer dereference at least Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-15avformat/hls: More strict url checksMichael Niedermayer
No case is known where these are needed Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-14avformat/hls: forbid all protocols except http(s) & fileMaxim Andreev
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27avformat/hls: Added http_proxy supportJoel Holdsworth
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-27avformat/hls: Remember to free HLSContext::headersJoel Holdsworth
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12avformat: Add av_program_add_stream_index()Michael Niedermayer
This will be used by the subsequent commit(s) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-27Merge commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457'Hendrik Leppkes
* commit 'ce70f28a1732c74a9cd7fec2d56178750bd6e457': avpacket: Replace av_free_packet with av_packet_unref Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-26avpacket: Replace av_free_packet with av_packet_unrefLuca Barbato
`av_packet_unref` matches the AVFrame ref-counted API and can be used as a drop in replacement. Deprecate `av_free_packet`.
2015-10-15avformat/hls: add support for EXT-X-MAPAnssi Hannula
Without EXT-X-MAP support we miss the first bytes of some streams. These streams worked by luck before byte-ranged segment support was added in da7759b3579de3e98deb1ac58e642b861280ba54 Fixes ticket #4797.
2015-10-15avformat/hls: fix segment selection regression on track changes of live streamsAnssi Hannula
Commit ad701326b43078b90 ("avformat/hls: open playlists immediately when AVDISCARD_ALL is dropped") inadvertently caused first_packet to never be cleared, causing select_cur_seq_no() to not use the specific code for live streams. In practice this means that when the user selects a different audio track during live stream (i.e. non-VOD) playback, there may be some additional delay as the code might select an incorrect segment at first, and we have to wait for video to catch audio (if too late segment was selected) or to download more following audio segments (if too early segment was selected). Fix that by restoring the zeroing of first_packet.
2015-10-09lavf/hls: don't convert NULL options to empty strings; fixes HTTP CRLF warningsRodger Combs
2015-10-03lavf/hls: allow subtitles to be read despite incomplete handlingRodger Combs
This will give incorrect results in some cases due to not parsing segments separately, so it currently requires -strict experimental. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-01hls: Check av_opt_set_dict return value as wellLuca Barbato
Bug-Id: CID 1320426
2015-09-26avformat/hls: remove unused functionGanesh Ajjanagadde
Fixes -Wunused-function from http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1 Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-09-25avformat/hls: Update Cookies response with SetcookieLucas de Andrade
Context cookies must be updated when a playlist response return Setcookie header. Signed-off-by: wm4 <nfxjfg@googlemail.com>
2015-09-22hls: only seek if there is an offsetAndreas Cadhalpun
If there is no #EXT-X-BYTERANGE specified, there is no need to seek. Seeking fails anyway for rtmp, because this protocol does not support url_seek. This fixes CNN.m3u from trac ticket 4797 (i.e. Debian bug #798189). Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-09-22avformat/hls: fix some cases of HLS streams which require cookieswm4
Broken by commit ba12ba859aabfa7153ba397d869db13acdaba340. This only happens with HLS streams which use encryption and require preserving cookies sent by the server. Fixes trac issue #4846.
2015-09-05avformat/hls: Check for av_opt_set_dict() failureMichael Niedermayer
Fixes: CID1320426 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21avformat/hls: correct comment for ensure_playlist()Ganesh Ajjanagadde
Comment was previously slightly incorrect. Also, it was placed in the wrong location. Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-18FF_OPT_TYPE_* -> AV_OPT_TYPE_*.Ronald S. Bultje
2015-07-30Merge commit '0c73a5a53cc97f4291bbe9e1e68226edf6161744'Michael Niedermayer
* commit '0c73a5a53cc97f4291bbe9e1e68226edf6161744': hls: Save and forward avio options Conflicts: libavformat/hls.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-30hls: Save and forward avio optionsLuca Barbato
Make possible to send the custom headers and override the user agent. Reported-by: BenWonder
2015-07-28Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'Michael Niedermayer
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba': lavc: Consistently prefix input buffer defines Conflicts: doc/examples/decoding_encoding.c libavcodec/4xm.c libavcodec/aac_adtstoasc_bsf.c libavcodec/aacdec.c libavcodec/aacenc.c libavcodec/ac3dec.h libavcodec/asvenc.c libavcodec/avcodec.h libavcodec/avpacket.c libavcodec/dvdec.c libavcodec/ffv1enc.c libavcodec/g2meet.c libavcodec/gif.c libavcodec/h264.c libavcodec/h264_mp4toannexb_bsf.c libavcodec/huffyuvdec.c libavcodec/huffyuvenc.c libavcodec/jpeglsenc.c libavcodec/libxvid.c libavcodec/mdec.c libavcodec/motionpixels.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/noise_bsf.c libavcodec/nuv.c libavcodec/nvenc.c libavcodec/options.c libavcodec/parser.c libavcodec/pngenc.c libavcodec/proresenc_kostya.c libavcodec/qsvdec.c libavcodec/svq1enc.c libavcodec/tiffenc.c libavcodec/truemotion2.c libavcodec/utils.c libavcodec/utvideoenc.c libavcodec/vc1dec.c libavcodec/wmalosslessdec.c libavformat/adxdec.c libavformat/aiffdec.c libavformat/apc.c libavformat/apetag.c libavformat/avidec.c libavformat/bink.c libavformat/cafdec.c libavformat/flvdec.c libavformat/id3v2.c libavformat/isom.c libavformat/matroskadec.c libavformat/mov.c libavformat/mpc.c libavformat/mpc8.c libavformat/mpegts.c libavformat/mvi.c libavformat/mxfdec.c libavformat/mxg.c libavformat/nutdec.c libavformat/oggdec.c libavformat/oggparsecelt.c libavformat/oggparseflac.c libavformat/oggparseopus.c libavformat/oggparsespeex.c libavformat/omadec.c libavformat/rawdec.c libavformat/riffdec.c libavformat/rl2.c libavformat/rmdec.c libavformat/rtpdec_latm.c libavformat/rtpdec_mpeg4.c libavformat/rtpdec_qdm2.c libavformat/rtpdec_svq3.c libavformat/sierravmd.c libavformat/smacker.c libavformat/smush.c libavformat/spdifenc.c libavformat/takdec.c libavformat/tta.c libavformat/utils.c libavformat/vqf.c libavformat/westwood_vqa.c libavformat/xmv.c libavformat/xwma.c libavformat/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-06-26avformat/hls: do not iterate to next sequence number if interruption is ↵schenk michael
requested Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-12avformat/hls: Handle read_buffer allocation failureMichael Niedermayer
Fixes CID1297576 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-17hls: skip to next segment if the current is unavailablewm4
Apparently, some live streams can delete segments too early, maybe because the client is too far behind. In this case, it's better to skip the segment, instead of returning EOF. (Yes, the HLS demuxer actually returns AVERROR_EOF if opening the segment returns a 404 HTTP error.) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29libavformat/hls: add an option to start from a given segment in a live streamRodger Combs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16avformat/hls: refactor repeated HLS option updatesMicah Galizia
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16avformat/hls: store cookies returned in HLS key responseMicah Galizia
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06hls: detect SAMPLE-AES encryptionselsta
SAMPLE-AES encryption is not commonly used yet, but without this patch ffmpeg is thinking that the hls segments are not encrypted which produces broken files. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-16hls: fix a null pointer dereferencewm4
Not allocating the pls->ctx will crash in libavformat/hls.c:1410, where it tries to dereference the field. Sample: http://ec24.rtp.pt/liverepeater/rtpn.smil/playlist.m3u8 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24avformat: Add and use ff_copy_whitelists()Michael Niedermayer
Fixes potential security issue in case of running out of memory Found-by: ubitux Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24Merge commit '6df9d9b55d3f56ee7782639a7678eeeaf77f14ea'Michael Niedermayer
* commit '6df9d9b55d3f56ee7782639a7678eeeaf77f14ea': lavf: Use av_gettime_relative Conflicts: libavformat/hls.c See: f78bc96b7c1c74caf99a7139cf81ce1110404965 Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24lavf: Use av_gettime_relativeMartin Storsjö
The ones left using av_gettime are NTP timestamps (for RTCP, which is specified to send the actual current realtime clock in RTCP SR packets), and the NUT muxer timestamper, which is documented as using wallclock time. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-23avformat/hls: forward whitelists to mpegts demuxerMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07avformat/hls: use av_freep(), do not leave stale pointers in memoryMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16Use new av_dict_set_int helper function.Reimar Döffinger
Get rid of the many, slightly differing, implementations of basically the same thing. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>