Commit Graph

147 Commits

Author SHA1 Message Date
Michael Niedermayer e2404096b0 avformat/segment: Clear contexts after deallocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-07 22:29:16 +01:00
Michael Niedermayer 2a741baeff Merge commit 'b3f04657368a32a9903406395f865e230b1de348'
* commit 'b3f04657368a32a9903406395f865e230b1de348':
  segment: Fix the failure paths

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-07 22:15:45 +01:00
Luca Barbato b3f0465736 segment: Fix the failure paths
A failure in segment_end() or segment_start() would lead to freeing
a dangling pointer and in general further calls to seg_write_packet()
or to seg_write_trailer() would have the same faulty behaviour.

CC: libav-stable@libav.org
Reported-By: luodalongde@gmail.com
2015-01-07 12:36:28 +01:00
Pedro E. M. Brito 202947a066 libavformat/segment.c: Add strftime expansion for segment filename templates
Allows expansion of the filename template with strftime() with the option
-strftime 1 (disabled by default). This allows segments to be named by time of
creation, adding some flexibility.

Fixes Ticket 4104 (add strftime to segment muxer)

Signed-off-by: Pedro E. M. Brito <pedroembrito@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-28 21:48:44 +01:00
Michael Niedermayer 68fa549230 avformat/segment: Use av_freep() avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-25 12:51:48 +01:00
Michael Niedermayer ce80f9fee9 avformat/segment: export inner muxer timebase
Fixes "Non-monotonous DTS in output stream 0:0"
Fixes Ticket4020

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-16 03:02:29 +01:00
Michael Niedermayer 32a2876b12 avformat/segment: use time_internal.h, simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-02 20:07:34 +01:00
Mika Raento 75c8d7c2b4 hlsenc.c, segment.c: propagate defaults to mpegts
This fixes the abnormally high ts overhead in the files produced by the
HLS and segments muxers. See https://trac.ffmpeg.org/ticket/2857 . For
example makes it much more likely that it can produces streams that fit
under the 64kb App store limit.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 21:31:25 +02:00
Michael Niedermayer 3726d07a2a Merge commit '28816050e47b6dba430a52e429d21a864cffda8e'
* commit '28816050e47b6dba430a52e429d21a864cffda8e':
  lavf: Set the stream time base hint properly for chained muxers

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 02:51:08 +02:00
Martin Storsjö 28816050e4 lavf: Set the stream time base hint properly for chained muxers
This avoids warnings about using the codec time base as time
base hint.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-06 23:30:52 +03:00
Stefano Sabatini f51de9cac2 lavf/segment: abort in case of invalid segment format options 2014-09-08 15:22:55 +02:00
Stefano Sabatini 4f5493fe23 lavf/segment: add segment_format_options option 2014-09-07 13:17:46 +02:00
Mika Raento 502fc3b3d4 segment: fix copying stream metadata
To get mpegts metadata copied when segmenting.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 12:31:04 +02:00
Mika Raento 413fa76f61 segment: use mpegts_flags instead of the deprecated resend_headers option
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 12:31:04 +02:00
Michael Niedermayer 0ffe32cf8f avformat/segment: Use avformat_alloc_output_context2()
This avoids having to assign oformat, allows returning the
correct error code and allocates priv_data

Based on patch by: Mika Raento <mika.raento@elisa.fi>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 12:31:04 +02:00
Mika Raento 58e0402e02 segment: don't access outside seg->frames array
Fixes wrong number of segments output and undefined memory access.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-02 11:38:36 +02:00
Gabriel Dume 4b1f5e5090 cosmetics: Write NULL pointer inequality checks more compactly
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 05:34:13 -07:00
Michael Niedermayer 66ae994c54 avformat/segment: re-interleave packets if needed
Fixes part of Ticket 3797

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 23:22:33 +02:00
Michael Niedermayer 351b22caae avformat/mux: support re-interleaving packets in ff_write_chained()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-24 22:39:22 +02:00
Stefano Sabatini 44071b0d25 lavf/segment: sanitize segment end time in case last packet do not have a defined duration
In particular, avoids to set segments with duration set to 0
(e.g. segment with a single reference frame for which duration is
undefined).
2014-07-22 13:53:31 +02:00
Stefano Sabatini 713157484a lavf/segment: do not allow to create segments with no key-frames
Fix trac ticket #3749.
2014-07-22 13:43:06 +02:00
Stefano Sabatini 526bd7bdfa lavf/segment: set segment end time when the first packet arrives
Avoid negative durations in case there is a single packet in the current
segment, since in that case the end time is still set to the previous
segment end time.
2014-07-17 16:51:51 +02:00
Stefano Sabatini 3d38c99041 lavf/segment: fix weird indent 2014-07-17 16:51:51 +02:00
Stefano Sabatini b6a8c5245f lavf/segment: show incoming packet duration in debug message 2014-07-17 16:51:51 +02:00
Stefano Sabatini 5acad50056 lavf/segment: only use reference frames for computing the segment end time
This avoids a systematic overestimate of the segments duration when there
are several streams.

Fix trac ticket #3724.
2014-07-17 16:51:50 +02:00
Simon Thelen fa6716c66d libavformat/segment: change segment_list_size behavior to match hls_list_size behavior.
Make the segment muxer keep segment_list_size segments instead of
segment_list_size + 1 segments. This patch also changes the
documentation for segment_list_size to reduce possible confusion over
how many segments are kept.

this allows the segment list to
be limited to containing only one segment which used to be impossible
because a segment_list_size of 0 kept all the segments and a
segment_list_size of 1 kept 2 segments.

Signed-off-by: Simon Thelen <ffmpeg-dev@c-14.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-17 02:35:56 +02:00
Michael Niedermayer 7125b6ca90 avformat/segment: remove gettimeofday() use, remove sys/time.h
It causes portability issues, and would need ifdef hell if its kept

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 22:52:39 +02:00
Michael Niedermayer b8d017adba avformat/segment: simplify localtime* use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 22:57:36 +02:00
Deti fliegl 8cda23f341 avformat/segment: Support cutting at clocktime
Signed-off-by: Deti fliegl <fliegl@baycom.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 22:56:55 +02:00
Michael Niedermayer 1394e0a9e0 avformat/segment: Use av_malloc_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 23:11:04 +02:00
Michael Niedermayer 67979b5936 Merge commit '87a3ea3192bf5e4aafa08bca8686a2b577eae818'
* commit '87a3ea3192bf5e4aafa08bca8686a2b577eae818':
  segment: Report the current media sequence

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-30 20:14:50 +02:00
Luca Barbato 87a3ea3192 segment: Report the current media sequence
Useful for debugging mostly.
2014-04-30 17:52:03 +02:00
Michael Niedermayer fd601ba6b1 Merge commit '5c08ae4f37281441188447cd04dcaf7cd7ce031f'
* commit '5c08ae4f37281441188447cd04dcaf7cd7ce031f':
  segment: Add an option to prepend a string to the list entries

Conflicts:
	doc/muxers.texi
	libavformat/segment.c

See: 5e278c19c7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-29 15:57:43 +02:00
Enrique Arizón Benito 5c08ae4f37 segment: Add an option to prepend a string to the list entries
Useful to generate lists with absolute urls.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-29 12:14:00 +02:00
Willy Aubry 65c95de213 avformat/HLS: modified EXT-X-MEDIA-SEQUENCE header in order to follow the HLS standard
When using the wrap option the EXT-X-MEDIA-SEQUENCE header of the playlist file was reset instead of being incremented.
It is now incremented by one for every media URI removed from the playlist file as the standard states.

Signed-off-by: Willy Aubry <waubry@viotech.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-03 16:46:22 +01:00
Stefano Sabatini f57baf743f lavf/segment: drop pointless variable oc from seg_write_packet() 2014-01-21 20:08:36 +01:00
Stefano Sabatini 169065fbfb lavf/segment: remove duplicated and inconsistent cleanup code in seg_write_packet()
In particular, avoid to leave around the seg->avf pointer to freed
structure, and fix crash with:
ffmpeg -f lavfi -i testsrc -c:v h264 -map 0 -f segment foo-%d.ts
2014-01-21 20:08:36 +01:00
Stefano Sabatini 8937af7b6f lavf/segment: increase logging level for message with segment start information
Help debugging.
2013-12-18 15:14:58 +01:00
Stefano Sabatini c0f2e07135 lavf/segment: add a few log messages when avio_open2() fails 2013-11-25 19:20:11 +01:00
Stefano Sabatini 5e278c19c7 lavf/segment: add segment_list_entry_prefix option
This option allows to add a prefix to the segment list entry filenames.

Also set by default the list entry filenames to the corresponding
segment basename, consistent with the HLS muxer.

Based on an idea by Steven Liu <lingjiujianke@gmail.com>.
2013-11-25 19:12:16 +01:00
Stefano Sabatini 1120fd7852 lavf/segment: simplify logic and fix !=0 check on segment_end return value
A successfull return value can be > 0.
2013-10-15 15:17:22 +02:00
Billy Shambrook 67e507e10e lavf/segment: log segments as they end to AV_LOG_VERBOSE
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-10-15 14:57:49 +02:00
Stefano Sabatini 3b9f8e7cd9 lavf/segment: simplify segment_count update
Now segment_count mark the segment_count of the current segment.
2013-10-15 14:55:48 +02:00
Thilo Borgmann d814a839ac Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
Stefano Sabatini 71a2e5245c lavf/segment: use AV_OPT_TIME_DURATION for time_delta
Simplify.
2013-07-11 00:36:53 +02:00
Stefano Sabatini 459dc81a64 lavf/segment: reindent after last commit 2013-07-11 00:36:41 +02:00
Stefano Sabatini 19ea08a11a lavf/segment: add initial_offset option
Should address trac ticket #2224.
2013-07-11 00:36:24 +02:00
Anton Khirnov cf679b9476 hls, segment: fix splitting for audio-only streams.
CC:libav-stable@libav.org
2013-04-27 10:19:04 +02:00
Michael Niedermayer 0e02a5193f segment: copy metadata
Fixes Ticket2230

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-18 23:57:44 +01:00
Stefano Sabatini d95143ec82 lavf/segment: add support to ffconcat segment list 2013-03-07 01:44:59 +01:00