1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

225 Commits

Author SHA1 Message Date
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 .
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 .
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
Stefano Sabatini
b3d2c6f8b9 lavf/segment: fix DTS inconsistencies with -reset_timestamps
The DTS needs to be resynched against the segment start PTS, or the
resulting DTS may result < PTS.

Reported-by: Owen Jones <riots6@gmail.com>

See thread:
Subject: [FFmpeg-user] pts/dts error using reset_timestamps while splitting a DVD
Date: Sat, 19 Jan 2013 08:58:27 +0000
2013-02-06 22:55:18 +01:00
Stefano Sabatini
a12787960e lavf/segment: extend PTS debugging log with -reset_timestamps 2013-02-06 00:40:09 +01:00
Carl Eugen Hoyos
90020d7f4b lavf/segment: use correct spelling and value for EXT-X-ALLOW-CACHE tag
Replace wrong "EXT-X-ALLOWCACHE" with "EXT-X-ALLOW-CACHE", and value 1/0
with YES/NO, as per spec.

Fix trac ticket .

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-02-03 11:17:35 +01:00
Stefano Sabatini
e319725717 lavf/segment: exit immediately in case of invalid stream specifier
Avoid duplicated confusing error message, and propagate error code from
the failing avformat_match_stream_specifier() call.
2013-01-23 18:54:53 +01:00
Stefano Sabatini
bb539eb13a lavf/segment: avoid failure in case -flags +live and -segment_times/frames are specified
The conflict does not apply any longer, since the M3U8 segment target
duration is re-computed every time a new segment is added to the list.
2013-01-23 18:54:33 +01:00
Stefano Sabatini
f4e4e5b841 lavf/segment: drop now pointless segment_list_close() function 2013-01-23 18:32:01 +01:00
Stefano Sabatini
ca68acd7ac lavf/segment: mark #EXT-X-ENDLIST in M3U8 only at the end of stream
Should fix immediate playback termination.

In particular, should fix trac ticket .
2013-01-23 18:32:01 +01:00
Stefano Sabatini
30a40d4a55 lavf/segment: provide link to HTML M3U8 draft, also fix mentioned version in docs 2013-01-22 20:25:45 +01:00
Stefano Sabatini
d00df260ca lavf/segment: do not auto-select a video stream with attached_pic disposition
In particular, fix trac ticket .
2013-01-19 00:32:08 +01:00
Stefano Sabatini
bbce913edf lavf/segment: move reference stream selection code to a dedicated function 2013-01-19 00:32:01 +01:00
Stefano Sabatini
1de369a632 lavf/segment: remove now unused field list_max_segment_time 2013-01-19 00:23:36 +01:00
Stefano Sabatini
d4890c1068 lavf/segment: add support to segment list file entries sliding window listing
In particular, should fix trac ticket .
2013-01-19 00:22:58 +01:00
Stefano Sabatini
6b7d9d5153 lavf/segment: add SegmentListEntry and use it
This patch is propedeutic to the incoming patch which adds
support to sliding window segment listing.
2013-01-19 00:14:03 +01:00
Stefano Sabatini
0156dd6530 lavf/segment: add segment_frames option
This is meant to address trac ticket .
2012-12-28 11:17:22 +01:00
Stefano Sabatini
7a8face9fb lavf/segment: add reference_stream option 2012-12-28 10:57:02 +01:00
Stefano Sabatini
ecebf6fc82 lavf/segment: provide more debug feedback when a new segment starts 2012-12-14 18:19:47 +01:00
Stefano Sabatini
df5f9496e6 lavf/segment: add missing flags to segmenter option constants 2012-12-14 18:19:47 +01:00
Stefano Sabatini
ddf6131a0a lavf/segment: add segment_start_number option
Consistent with the image2 muxer.
2012-12-13 21:38:43 +01:00
Stefano Sabatini
d93d03a492 lavf/segment: add function set_segment_filename()
Factorize.
2012-12-13 21:05:07 +01:00
Stefano Sabatini
8e9056559e lavf/segment: add reset_timestamps option
The new options reset the timestamps at each new segment, so that the
generated segments will have timestamps starting close to 0.

It is meant to address trac ticket .
2012-12-11 00:18:23 +01:00
Stefano Sabatini
ad47ac20ae lavf/segment: remove silly assert(), improve feedback
The code should not assert in case of invalid user input. Fails
gracefully instead.
2012-12-09 20:42:35 +01:00
Stefano Sabatini
8b6aeb1fcd lavf/segment: fix value for the M3U8 EXT-X-MEDIA
From the M3U8 specification:
|The EXT-X-MEDIA-SEQUENCE tag indicates the sequence number of the first
|URI that appears in a Playlist file.

Previously it was using the list index number. Also remove now unused
list_count field.
2012-11-20 22:48:28 +01:00
Stefano Sabatini
5a1ac463e0 lavf/segment: do not pre-increment segment_idx value
Increment the value just when a new segment with the given index is
started. Simplify logic, improve readability.
2012-11-20 22:48:28 +01:00
Stefano Sabatini
2b31aa8895 lavf/segment: unbreak behavior for segment muxer
The segment muxer presumes the use of AVFMT_GLOBALHEADER, ssegment should
be use in case of formats which requires no global headers.

Regression introduced when merging
0826d8513d.
2012-11-20 22:48:28 +01:00
Stefano Sabatini
b6c05879ea lavf/segment: consistently use "seg" in segment_start() 2012-11-20 22:48:28 +01:00
ChanMin Kim
4293464705 lavf/segment: do not copy codec_tag when not available
Some muxers do not allow stream if codec_tag is incompatible.

Sometimes the passed input codec's codec_tag is not compatible with the
output muxer.

Because the codec_tag field of the segment muxer cannot be set, ffmpeg.c
doesn't know how to handle these cases.

Signed-off-by: ChanMin Kim <kcm1700@gmail.com>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-20 19:19:31 +01:00
Xi Wang
e8769b37fe segment: fix NULL pointer dereference in seg_write_header()
Since the pointer `oc' is NULL, oc->oformat->name will cause a null
pointer dereference.  This patch changes it to seg->oformat->name.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-14 12:33:27 +02:00
Michael Niedermayer
30d27685b1 segment: fix null ptr deref
Fixes CID732220
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-05 20:26:10 +01:00
Michael Niedermayer
b6c3487e7f Merge commit '88058d9a994f42e4e9ed4e67baf696bbfe53128c'
* commit '88058d9a994f42e4e9ed4e67baf696bbfe53128c':
  vc1dec: Set chroma reference field from REFFIELD for 1REF field pictures
  segment: support applehttp style list

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-11 14:28:18 +02:00
Luca Barbato
26db9100b2 segment: support applehttp style list 2012-10-10 18:56:55 +02:00
Michael Niedermayer
52dc18d414 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: vc1: call ff_vc1dsp_init_x86() under if (ARCH_X86)
  x86: cavs: call ff_cavsdsp_init_x86() under if (ARCH_X86)
  x86: call most of the x86 dsp init functions under if (ARCH_X86)
  doc: support the new website layout
  doc: remove a warning from filters.texi
  doc: initial nut documentation
  segment: drop global headers setting
  lavu: fix typo in Makefile

Conflicts:
	doc/Makefile
	doc/filters.texi
	doc/t2h.init
	libavcodec/fmtconvert.c
	libavcodec/proresdsp.c
	libavcodec/x86/Makefile
	libavcodec/x86/vc1dsp_mmx.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-08 21:46:34 +02:00
Luca Barbato
0826d8513d segment: drop global headers setting
avconv provides an option to set it externally and there isn't a way for
the outer demuxer to report the inner demuxer flag.

Solves a bad interaction between mpegts and x264, but requires
additional setting for the user.
2012-10-08 11:22:42 +02:00
Michael Niedermayer
9d19d7c335 segment: reverse pass avoid_negative_ts from the muxer
This fixes failures with formats not supporting negative TS

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06 12:07:26 +02:00
Michael Niedermayer
2a77d4f70b Merge commit '65d12900432ac880d764edbbd36818431484a76e'
* commit '65d12900432ac880d764edbbd36818431484a76e':
  configure: add --enable-lto option
  x86: cpu: Break out test for cpuid capabilities into separate function
  x86: ff_get_cpu_flags_x86(): Avoid a pointless variable indirection
  build: Factor out mpegaudio dependencies to CONFIG_MPEGAUDIO
  segment: Add comments about calls that only are relevant for some muxers
  segment: Add an option for omitting the first header and final trailer

Conflicts:
	configure
	libavcodec/Makefile
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:52:13 +02:00
Michael Niedermayer
f74f8bc864 Merge commit 'a854362b40f0e458db5a1fb0d2612a5702ee0ace'
* commit 'a854362b40f0e458db5a1fb0d2612a5702ee0ace':
  segment: Flush buffered data before finishing a segment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:41:50 +02:00
Michael Niedermayer
b26cbf75bc Merge commit 'f7b240434c015056bc6319ddbdb8483757cc13e2'
* commit 'f7b240434c015056bc6319ddbdb8483757cc13e2':
  segment: Set the resend_headers flag for each segment

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:30:34 +02:00
Michael Niedermayer
50c555e396 Merge commit '378a6315b7c48195ffd94e6aa9aa6d663d42b35e'
* commit '378a6315b7c48195ffd94e6aa9aa6d663d42b35e':
  segment: Add an option for disabling writing of a header/trailer to each segment

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 16:21:16 +02:00
Michael Niedermayer
008d36ba1d Merge commit 'eb447d515956b3ce182d9750083131735f00324c'
* commit 'eb447d515956b3ce182d9750083131735f00324c':
  segment: Free and reinit the muxer before calling avformat_write_header

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 15:48:23 +02:00
Michael Niedermayer
1bd22229d7 Merge commit '73871dc96ff78053b9dcd0eb259b7f5a5308ec87'
* commit '73871dc96ff78053b9dcd0eb259b7f5a5308ec87':
  segment: Use the public av_write_header/av_write_trailer functions

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 15:12:54 +02:00
Michael Niedermayer
d19728da6f Merge commit '0edae4e6286096023cdd6adea74722fa06029867'
* commit '0edae4e6286096023cdd6adea74722fa06029867':
  segment: Properly create new AVStreams for the chained muxer
  segment: Add a missing space

Conflicts:
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-05 15:03:02 +02:00
Martin Storsjö
91c1567beb segment: Add comments about calls that only are relevant for some muxers
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 18:22:47 +03:00
Martin Storsjö
a854362b40 segment: Flush buffered data before finishing a segment
This makes sure any buffered data is written to the segment, for
muxers that buffer up data internally (e.g. fragmented mp4).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
f7b240434c segment: Set the resend_headers flag for each segment
This makes sure new inline headers are emitted when the next
packet is written. This allows segmenting mpegts without calling
write_header/write_trailer (nor freeing/reiniting the muxer)
for each segment.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
378a6315b7 segment: Add an option for disabling writing of a header/trailer to each segment
Some segmented formats (such as fragmented mp4) are "bare", as in,
the segment files do not have the same headers/trailers as full normal
files of that format have.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
eb447d5159 segment: Free and reinit the muxer before calling avformat_write_header
This makes sure the muxers are set up in the way they expect
with no data left around from the previous run (which could
cause various issues including memory leaks, depending on the chaine
muxer).

This fixes memory leaks with the mpegts and flv muxers. It also
makes the usage of chained muxers correct.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
73871dc96f segment: Use the public av_write_header/av_write_trailer functions
With this change, the segmenter muxer doesn't rely on anything
not available/supported to libavformat external users, making
the segmenter muxer do things just like a normal segmenter
application using libavformat would do.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
0edae4e628 segment: Properly create new AVStreams for the chained muxer
Before, the chained muxer reused the AVStreams array from
the outer muxer, which made it impossible to use the proper
public functions (such as av_write_frame) when calling the
chained muxer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
c864c3968a segment: Add an option for omitting the first header and final trailer
This allows writing totally bare segments, without any header/trailer
included anywhere.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:09 +03:00
Martin Storsjö
aa9f128b7c segment: Add a missing space
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-04 13:52:08 +03:00
Michael Niedermayer
7e5496fc41 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ARM: use numeric ID for Tag_ABI_align_preserved
  segment: Pass the interrupt callback on to the chained AVFormatContext, too
  ARM: bswap: drop armcc version of av_bswap16()
  ARM: set Tag_ABI_align_preserved in all asm files

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-03 13:35:02 +02:00
Martin Storsjö
4edb34f6cc segment: Pass the interrupt callback on to the chained AVFormatContext, too
This might not be needed at the moment, but it's good practice to
pass it to all chained AVFormatContexts, if it would happen to be
used there at a later point.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-02 22:14:07 +02:00
Alexander Strasser
49f3b331c7 lavf/segment: Use distinct IDs for list type ext & csv
Remove a bogus warning when using segment_list_type csv.

The LIST_TYPE_EXT constant is only used internally, so it can
be removed when the feature (segment_list_type ext) gets removed.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-15 22:58:12 +02:00
Alexander Strasser
3245be95ac lavf/segment: Rename variable in print_csv_escaped_str()
Rename a local variable to make the code more self-explanatory.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-15 22:58:11 +02:00
Alexander Strasser
bac1b31bf6 lavf/segment: Simplify CSV field quoting code
Should also be faster (though I doubt that hardly ever matters
for the usage here).

Also remove the pointer copy. Since we do not need to reset the
pointer to the start of the string, it is not needed anymore.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2012-09-15 22:55:21 +02:00
Stefano Sabatini
00d516454c lavf/segment: add segment_list_flags option
Allow to specify options affecting the segment list generation.

In particular: add +live and +cache flags.

For a full discussion read trac ticket :
http://ffmpeg.org/trac/ffmpeg/ticket/1642

Also add live M3U8 generation example.
2012-09-11 01:24:54 +02:00
Michael Niedermayer
d46c1c72e4 Merge commit 'e6153f173a49e5bfa70b0c04d2f82930533597b9'
* commit 'e6153f173a49e5bfa70b0c04d2f82930533597b9':
  avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/libx264.c
	libavcodec/mpeg12enc.c
	libavcodec/options_table.h
	libavcodec/snowenc.c
	libavcodec/tiffenc.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/af_amix.c
	libavfilter/af_asyncts.c
	libavfilter/af_join.c
	libavfilter/buffersrc.c
	libavfilter/src_movie.c
	libavfilter/vf_delogo.c
	libavfilter/vf_drawtext.c
	libavformat/http.c
	libavformat/img2dec.c
	libavformat/img2enc.c
	libavformat/movenc.c
	libavformat/mpegenc.c
	libavformat/mpegtsenc.c
	libavformat/options_table.h
	libavformat/segment.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 14:33:32 +02:00
Michael Niedermayer
d5f65e9d40 Merge commit '124134e42455763b28cc346fed1d07017a76e84e'
* commit '124134e42455763b28cc346fed1d07017a76e84e':
  avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member

Conflicts:
	libavcodec/aacenc.c
	libavcodec/libopenjpegenc.c
	libavcodec/options_table.h
	libavdevice/bktr.c
	libavdevice/v4l2.c
	libavdevice/x11grab.c
	libavfilter/af_amix.c
	libavfilter/vf_drawtext.c
	libavformat/movenc.c
	libavformat/options_table.h
	libavutil/opt.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-09-05 13:58:11 +02:00
Martin Storsjö
e6153f173a avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:44 +03:00
Stefano Sabatini
838b1d60a1 lavf/segment: add EXT-X-MEDIA-SEQUENCE tag in M3U8 header 2012-09-04 11:28:16 +02:00
Stefano Sabatini
ebd703f0a0 lavf/segment: deprecate "ext" format in favor of "csv"
The new option name is more descriptive.
2012-09-04 11:27:55 +02:00
Stefano Sabatini
d815763548 lavf/segment: add escaping for filename field of the CSV list file
CSV escaping code is borrowed from ffprobe.c.
2012-09-04 11:25:14 +02:00
Stefano Sabatini
f7eec8956d lavf/segment: set EXT-X-VERSION to 3 rather than to 4
There is nothing we use of the latest version, downgrade version number
to increase decoding support.

Based on this comment by vel2000:
http://ffmpeg.org/trac/ffmpeg/ticket/1642#comment:17
2012-09-02 10:42:25 +02:00
Stefano Sabatini
e35c0ee05c lavf/segment: fix computation of M3U8 segment target duration
Use ceil on the max duration, rather than approximating it to the nearest
integer.
2012-08-18 22:46:12 +02:00
Stefano Sabatini
2d31ae2921 lavf/segment: change default value for segment_list_size option, from 5 to 0
This is technically a major compatibility break, but seems the most
natural default and what users would expect without reading the docs.
2012-08-18 12:32:23 +02:00
Stefano Sabatini
1c522e3868 lavf/segment: guess list type from list filename suffix 2012-08-18 12:31:49 +02:00
Stefano Sabatini
e5ae2f9126 lavf/segment: add M3U8 list support
Address trac ticket .
2012-08-18 11:21:47 +02:00
Stefano Sabatini
4a12d1e8e7 lavf/segment: compute max list segment duration
This is useful for the M3U8 format incoming patch.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
769500c2a3 lavf/segment: create segment_list_open and close functions
Allow factorization for the incoming patches, and avoid code/logic
duplication.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
d3a2a614bf lavf/segment: fix bogus segment index rewrapping logic
Decouple segment index wrapping and segment count logic. The counter
should not be reset since it detects the segment increasing timeframe.
2012-08-18 11:21:47 +02:00
Stefano Sabatini
b89e00bd1c lavf/segment: move file description to @file doxy 2012-08-18 11:21:47 +02:00
Michael Niedermayer
d1dad7c824 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpc8: return more meaningful error codes.
  mpc: return more meaningful error codes.
  wv,mpc8: don't return apetag data in packets.
  rtmp: do not warn about receiving metadata packets
  x86: h264dsp: Adjust YASM #ifdefs
  x86: yadif: Mark mmxext optimizations as such
  h264: convert loop filter strength dsp function to yasm.
  Improve descriptiveness of a number of codec and container long names

Conflicts:
	libavcodec/flvdec.c
	libavcodec/libopenjpegdec.c
	libavformat/apetag.c
	libavformat/mp3dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-31 22:41:00 +02:00
Diego Biurrun
0177b7d23a Improve descriptiveness of a number of codec and container long names 2012-07-30 20:46:55 +02:00
Stefano Sabatini
aef9e94f73 lavf/segment: add -segment_time_delta option 2012-07-10 00:53:01 +02:00
Stefano Sabatini
2058b52cf8 lavf/segment: add -segment_times option
Address trac ticket .
2012-07-10 00:49:43 +02:00
Stefano Sabatini
3f345290dc lavf/segment: sort options 2012-07-08 17:38:24 +02:00
Stefano Sabatini
8dc31f8da8 lavf/segment: make use of av_parse_time() when parsing the -segment_time value
Increase flexibility/consistency.

Also rename recording_time field to time, for enhanced
consistency/readability.
2012-07-08 17:38:04 +02:00
Stefano Sabatini
7f08bfae6e lavf/segment: add segment_list_type option, extend format for the segment list file
Add list extended format which specifies in the list file the start and
ending time for each segment. This is required to make it available this
information to external tools, avoiding the need to perform file analysis
in the output segments.
2012-07-08 17:08:56 +02:00
Stefano Sabatini
af392efe51 lavf/segment: rename SegmentContext.pb to list_pb
The new name is more auto-explicative, as the pb is used for the segment
list file.
2012-07-04 00:02:56 +02:00
Stefano Sabatini
d8013f38ab lavf/segment: add error log in case of invalid filename template
Better rather than silently exit.
2012-07-03 23:26:07 +02:00
Stefano Sabatini
a1e092ccd3 lavf/segment: fix logic for segmenting audio-only inputs
Also add a comment for clarifying the logic.

Fix trac ticket .
2012-07-03 23:23:36 +02:00
Stefano Sabatini
4e2899dd31 lavf/segment: add more information in log message in seg_write_packet() 2012-07-03 23:23:29 +02:00
Stefano Sabatini
fd0e6ef99a lavf/segment: remove unused offset variable 2012-07-03 21:48:50 +02:00
Stefano Sabatini
77dcae5d74 lavf/segment: apply misc fixes to the private options internal documentation
Option help message tell what the option *does*, not what the set field
represents.
2012-07-03 21:48:50 +02:00
Stefano Sabatini
a5af29336a lavf/segment: slightly simplify fail logic in seg_write_packet() 2012-07-03 21:48:50 +02:00
Stefano Sabatini
4ad17bc76b lavf/segment: move list filename printing logic from segment_end() to segment_start()
Allow to deal with the list file printing only in a single point, thus
simplifying logic, and allow a bit of factorization (no special case
needed when printing the first file name of the list).
2012-07-03 21:48:50 +02:00
Stefano Sabatini
aa1cceb5eb lavf/segment: rename variable "size" to "list_size"
The new name is more meaningful/less confusing.
2012-07-01 18:35:15 +02:00
Stefano Sabatini
3bee286ad2 lavf/segment: pass the top level chained muxer format context to segment_end()
Consistent with segment_start() and less confusing.
2012-07-01 18:35:06 +02:00
Stefano Sabatini
c1abfbc47c lavf/segment: rename segment private context from "c" to "seg" in segment_start()
Consistent with the rest of the file, less confusing.
2012-06-29 17:04:19 +02:00
Stefano Sabatini
a9a7e215e5 lavf/segment: add stream_segment variant of the segment muxer
This simplifies usage for segment streaming formats with no global
headers, tipically MPEG 2 transport stream "ts" files.

The seg class duplication is required in order to avoid an infinite loop
in libavformat/utils.c:format_child_next_class().
2012-06-29 17:03:25 +02:00
Stefano Sabatini
0692d4c890 lavf/segment: add some debugging logs 2012-06-29 14:50:27 +02:00
Michael Niedermayer
90d8506fbf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  af_resample: fix format modifier in debug string for FF_API_SAMPLERATE64
  segment: remove unnecessary <strings.h> include
  fate: add snow hpel tests

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-15 20:56:06 +02:00
Janne Grunau
1cdcf043ca segment: remove unnecessary <strings.h> include 2012-06-15 19:10:58 +02:00
Michael Niedermayer
9d7c1b4cf3 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: new assembly version of get_cabac for x86_64 with PIC
  h264: use one table instead of several for cabac functions
  h264: (trivial) remove unneeded macro argument in x86/cabac.h
  libschroedingerdec: check malloc
  segment: reorder seg_write_header allocation
  avio: make avio_close(NULL) a no-op
  mov: Parse EC3SpecificBox (dec3 atom).

Conflicts:
	libavcodec/cabac.c
	libavcodec/x86/cabac.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-28 20:45:06 +02: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
Paul B Mahol
4246032216 segment: fix null pointer dereference
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-22 13:43:26 +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
02e8f03296 segment: introduce segmented chain muxer
It behaves similarly to image2 muxer
2011-12-19 18:31:28 +01:00