1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-03 05:10:03 +02:00
Commit Graph

21271 Commits

Author SHA1 Message Date
Andrey Semashev
f176d6587b lavf/dashenc: Write media trailers when DASH trailer is written.
This commit ensures that all (potentially, long) filesystem activity is
performed when the user calls av_write_trailer on the DASH libavformat
context, not when freeing the context. Also, this defers media segment
deletion until after the media trailers are written.
2018-12-04 10:34:29 +05:30
Karthick J
4bbb6d1ae9 Revert "lavf/dashenc: Write media trailers when DASH trailer is written."
This reverts commit e444b3b184.
Causing build error due to rebasing. Sorry for about it.
2018-12-03 11:28:18 +05:30
Andrey Semashev
a68a975584 lavf/dashenc: Use avpriv_io_delete to delete files.
This fixes incorrect handling of file pseudo-URIs (i.e. when the filename
starts with "file:").
2018-12-03 10:54:47 +05:30
Andrey Semashev
e444b3b184 lavf/dashenc: Write media trailers when DASH trailer is written.
This commit ensures that all (potentially, long) filesystem activity is
performed when the user calls av_write_trailer on the DASH libavformat
context, not when freeing the context. Also, this defers media segment
deletion until after the media trailers are written.
2018-12-03 10:54:47 +05:30
Karthick J
0a80b39780 avformat/dashenc: Added proper logging when io_open fails for write 2018-12-03 10:54:47 +05:30
kjeyapal@akamai.com
c32aad1961 avformat/dashenc: Added an option to ignore io errors
When dashenc has to run for long duration(say 24x7 live stream), one can enable this option to ignore the io failure of few segment's upload due to an intermittent network issues.
When the network connection recovers dashenc will continue with the upload of the current segments, leading to the recovery of the stream.
2018-12-02 19:14:37 +05:30
kjeyapal@akamai.com
6c1e124201 avformat/dashenc: Handled the error from dashenc_io_open() 2018-12-02 19:14:03 +05:30
Andrey Semashev
84c17449ce lavf/dashenc: Delete HLS manifests on trailer writing if remove_at_exit is set.
This fixes HLS manifests being left behind if remove_at_exit is set.
2018-12-02 19:07:30 +05:30
Andrey Semashev
2a5cf8a241 lavf/dashenc: Don't put non-mp4 streams in HLS manifests.
The only native HLS implementation in the wild (Safari browser) doesn't
support WebM. And at least some MSE-based players (e.g. shaka-player)
cannot handle WebM media segments when playing HLS. So just skip non-mp4
streams from HLS manifests. Note that such streams will still be described
by the DASH manifest and therefore consumed by players supporting DASH.
2018-12-02 19:06:54 +05:30
Paul B Mahol
2a08faba88 avformat/mpegenc: extend muxing PCM-DVD to other depths
Fixes #6783.
2018-12-01 19:42:17 +01:00
Paul B Mahol
f09bbb8f08 avformat/ac3dec: always skip junk bytes before sync bytes
Fixes #7278.
2018-11-30 16:27:20 +01:00
Steven Liu
ba71ebbbfa avformat/dashdec: add subtitle stream support
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-11-30 16:39:19 +08:00
Carl Eugen Hoyos
271a00043e lavf/rawdec: Do not mark streams from raw subtitle demuxers as data streams.
Improves "ffmpeg -i" output for raw dvbsub files.
2018-11-28 22:51:37 +01:00
Carl Eugen Hoyos
8cc5107705 lavf/Makefile: Fix demuxer dependencies: dvbsub, dvbtxt
Allow standalone compilation of the dvbsub and the dvbtxt demuxer.
2018-11-27 18:48:29 +01:00
Andrey Semashev
1035206102 lavf/dashdec: Add webm to the list of allowed extensions.
This is in coherence with dashenc, which can now generate segments with
webm file name extension by default. Dashdec should be able to handle
such streams by default as well.
2018-11-27 11:27:19 +05:30
Mark Harris
01dc152a92 avformat/vivo: Don't log null value
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-11-26 23:47:29 +01:00
Steven Liu
f9ea493147 avformat/hlsenc: remove the cannot reach result
fix CID: 1441166
because the logic have checked the vtt_dirname before

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-11-25 18:35:57 +08:00
Igor Derzhavin
f95c928f80 avformat/pcmdec: endianness for audio/L16 mime type 2018-11-25 00:25:03 +01:00
Igor Derzhavin
b058617fae avformat/pcmdec: audio/L16 should be in network byte order by default (rfc 2586) 2018-11-25 00:24:58 +01:00
Igor Derzhavin
a80530a627 avformat/pcmdec: mime-type should be case insensitive (audio/L16) 2018-11-25 00:24:51 +01:00
Paul B Mahol
24386b1707 avformat/dhav: improve A/V sync
Actual stored timestamps take only 16bits.
2018-11-24 22:14:14 +01:00
Paul B Mahol
b80003fe28 avformat: add DHAV demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-11-24 15:11:27 +01:00
Andrey Semashev
fa08345e88 lavf/dashenc: Fix segment duration overflow on fine time bases.
When stream time bases are very fine grained (e.g. nanoseconds), 32-bit
segment duration may overflow for even for rather small segment duration
(about 4 seconds long). Therefore we use 64-bit values for segment duration.
2018-11-23 14:15:32 +05:30
Paul B Mahol
97d1ee437b avformat/movenc: get number of written bytes from bitstream writer
Update fate test.
2018-11-22 21:32:41 +01:00
Paul B Mahol
027f032bbc avformat/movenc: fix size calculation in mov_write_eac3_tag()
Otherwise it would assert when flushing bits.
2018-11-22 10:18:15 +01:00
kjeyapal@akamai.com
ce0a753634 avformat/http : Added check for valid URL context before calling shutdown 2018-11-22 12:06:27 +05:30
kjeyapal@akamai.com
4903662a1d avformat/dashenc : Handled error from ff_http_do_new_request() cleanly 2018-11-22 12:06:27 +05:30
Andrey Semashev
d290bb0c54 lavf/dashenc: Fix AVDictionary leaks in case of various init errors. 2018-11-21 18:02:43 +05:30
Andrey Semashev
281a21ed50 lavf/dashenc: Add support for format-specific file extensions.
The file name template options now support a new "$ext$" placeholder,
which is replaced with a filename extension specific for the selected
file format. This is useful for the new "auto" format mode, when
different streams may use different file formats, and it is not
possible to specify the correct file name extension exactly.

Resolves warnings in the log about webm segments not having webm extensions.
2018-11-21 18:02:19 +05:30
Andrey Semashev
322e53f8ae lavf/dashenc: Add DASH segment type auto and make it the default
This commit restores the ability to create DASH streams with codecs
that require different containers that was lost after commit
2efdbf7367. It adds a new "auto" value for
the dash_segment_type option and makes it the default. When in this mode,
the segment format will be chosen based on the codec used in the stream:
webm for Vorbis, Opus, VP8 or VP9, mp4 otherwise.
2018-11-21 18:01:53 +05:30
Carl Eugen Hoyos
fc94e9704e lavf/hlsenc: Do not mix declarations and code.
Fixes the following warnings:
libavformat/hlsenc.c: In function 'hls_write_trailer':
libavformat/hlsenc.c:2364:17: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
                 uint8_t *buffer = NULL;
                 ^~~~~~~
libavformat/hlsenc.c:2372:17: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
                 int byterange_mode = (hls->flags & HLS_SINGLE_FILE) || (hls->max_seg_size > 0);
                 ^~~
libavformat/hlsenc.c:2379:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
             int range_length = 0;
             ^~~
2018-11-16 22:03:37 +01:00
Jan Ekström
b31a4be15f lavf/dashenc: set FLAC manifest codec string to "flac"
Internally in ISOBMFF the FLAC-in-ISOBMFF draft uses "fLaC"
as the identifier for FLACSampleEntry, and there seems to be no
MPEG-DASH specification for the in-manifest identifier for FLAC.

After testing the browsers' implementations, it seems like all of
the major browser vendors have decided to utilize the MIME type for
FLAC ("audio/flac") as the identifier. This change set leads to
that string being utilized for FLAC streams instead of the sample
entry identifier ("fLaC"), which is the default behavior.

Verified by auri_ on IRC to play with the major browsers.
2018-11-14 20:45:02 +02:00
Steven Liu
43cc2e39c0 avformat/hlsenc: check dirname and fix vtt problem
fix ticket: 7527
check dirname before use it
refine webvtt code in the hls_delete_old_segments

Reported-by: caspy
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-11-12 17:42:12 +08:00
Carl Eugen Hoyos
5ff080fdfa lavf/apngdec: Return EOF for incomplete files.
Fixes ticket #7536.
2018-11-08 13:38:08 +01:00
Martin Storsjö
d7638d8dfc flvdec: Export unknown metadata packets as opaque data
Signed-off-by: Martin Storsjö <martin@martin.st>
2018-11-05 16:02:51 +02:00
Martin Storsjö
e7ed9d81bf flvdec: Rename FLV_STREAM_TYPE_DATA into FLV_STREAM_TYPE_SUBTITLE
This is always treated as a subtitle at the moment anyway.

Signed-off-by: Martin Storsjö <martin@martin.st>
2018-11-05 15:53:39 +02:00
Marton Balint
8e5a2495a8 avformat/ftp: allow nonstandard 202 reply to OPTS UTF8
Fixes ticket #7481.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-04 22:46:58 +01:00
kjeyapal@akamai.com
d6d407d2d7 avformat/dashenc: Disable writing CODECS tag for HEVC streams
For HEVC streams, only the FourCC tag is written without profile, level etc.,
This is breaking playout support in native Safari.
Native Safari playout expects the full info in CODECS tag or None at all.
2018-11-02 07:27:47 +05:30
James Almer
2d2af23349 avformat/ivfenc: use the av1_metadata bsf to insert Temporal Delimiter OBUs if needed
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-11-01 22:55:22 -03:00
Michael Niedermayer
517573a670 Bump minor version for master after 4.1 branchpoint
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-11-02 00:53:07 +01:00
Michael Niedermayer
780d5e30a0 Bump minor versions for branching 4.1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-11-02 00:15:32 +01:00
Marton Balint
6a034adf75 avformat/ftp: return AVERROR_EOF for EOF
Without this FTP just hangs on eof...

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-01 21:04:57 +01:00
Charles Liu
1ff4bd59df avformat/hlsenc.c: fix the output's duration smaller than input's in sub-range mode.
In fmp4 & sub-range mode, the output's duration always smaller than expected,
because the size of the last #EXT-X-BYTERANGE is too small.

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:11:27 +08:00
Charles Liu
76b8e42c1f avformat/hlsenc.c: the size of init.mp4 is zero.
The size of init.mp4 is zero in fmp4 mode,
when the input duraton smaller than the expected segment time.

fix ticket: 7166

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:10:27 +08:00
Charles Liu
2365f47bf5 avformat/hlsenc.c: remove the useless variable fmp4_init_mode.
Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:09:14 +08:00
Charles Liu
e9dbd62cb5 avformat/hlsenc.c: fix memory leak in fmp4 mode.
Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:08:29 +08:00
Charles Liu
3d1b795493 avformat/hlsenc: fix the duration of m4s segment is unusually smaller than expected.
In fmp4 mode, the duration of the second m4s segment is
unusually smaller than the expected segment time.

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-10-30 11:07:14 +08:00
Cameron Cawley
0e9c01fd87 avformat/rpl: Support files containing 8 bit PCM or VIDC audio
Signed-off-by: Cameron Cawley <ccawley2011@gmail.com>
2018-10-26 13:39:25 +02:00
Cameron Cawley
22238d0b94 avcodec: Implement Archimedes VIDC encoder/decoder
Signed-off-by: Cameron Cawley <ccawley2011@gmail.com>
2018-10-26 13:39:25 +02:00
kjeyapal@akamai.com
de43c227fd avformat/dashenc: Support HTTP persistent for init segments as well 2018-10-26 11:49:47 +05:30