Clément Bœsch and Martin Storsjö
e01fba5562
movenc: Add an F4V muxer
...
F4V is Adobe's mp4/iso media variant, with the most significant
addition/change being supporting other flash codecs than just
aac/h264.
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-10-23 11:17:03 +03:00
Clément Bœsch and Clément Bœsch
19c41c6d8e
opt: re-enable memleak fix for duplicated options.
...
The memleak fix in a1bcc76e was causing problems when the original
string wasn't NULL or av_malloc'ed, thus was disabled. It seems the only
OPT_STRING occurence where it needed to be fixed is in ffserver. This
commit fixes that specific problem and so re-enable the original code.
2013-03-13 07:25:16 +01:00
Clément Bœsch and Clément Bœsch
2dd0da787c
lavf/mp3enc: make sure the header is valid before writing audio pkt.
...
An invalid header can lead avpriv_mpegaudio_decode_header() to overread
and/or div by zero.
2012-11-16 14:11:08 +01:00
Clément Bœsch and Clément Bœsch
0e482a8e49
ffserver: fix streams and priv_data memleaks when closing a connection.
2012-11-15 11:52:44 +01:00
Clément Bœsch and Clément Bœsch
26afdbcfc0
ffserver: fix NULL dereference with quoted Stream name.
2012-11-14 10:09:57 +01:00
Clément Bœsch and Clément Bœsch
a9ba9268d7
ffserver: prefer av_asprintf over malloc+snprintf for Launch setting.
2012-11-14 10:09:51 +01:00
Clément Bœsch and Clément Bœsch
f6f52936be
fate/avfilter: honor GPL dependency.
2012-11-13 09:16:26 +01:00
Clément Bœsch and Clément Bœsch
c01d1d4ddf
http: add -content_type user option.
2012-10-24 22:15:31 +02:00
Clément Bœsch and Clément Bœsch
b08273c9ca
lavf/mkv: avoid negative ts by default.
...
This fixes playback in some circumstances (like webm in firefox).
Regression after 2c34367b .
It is also matching the Matroska specifications:
http://matroska.org/technical/specs/notes.html , "The quick eye will
notice that if a Cluster's Timecode is set to zero, it is possible to
have Blocks with a negative Raw Timecode. Blocks with a negative Raw
Timecode are not valid."
2012-10-15 09:19:21 +02:00
Clément Bœsch and Clément Bœsch
208a5d1322
fate/ffprobe: add some stream metadata.
2012-10-08 11:03:27 +02:00
Clément Bœsch and Clément Bœsch
f7c46d251c
ffserver: fix seeking with ?date=...
...
Regression since 5f847bf61d .
After this commit, timestamps pushed by FFmpeg won't be relative
anymore, but absolute (based on the date/time at the beginning of the
push). This will allow seeking to work properly. Before this patch, the
seek was done, but ffm timestamps were way smallers than the absolute
requested timestamp (based on a date), so the seek was done, but to the
end of the stream (which was similar to no effect at all).
2012-10-08 09:03:19 +02:00
Clément Bœsch and Clément Bœsch
1e2e2c8095
lavc/h264: move ff_init_cabac_states() from decode_slice() to ff_h264_decode_init().
...
This fixes one of the potential races spotted by Helgrind.
2012-10-03 15:38:22 +02:00
Clément Bœsch and Clément Bœsch
00e1afd83f
fate: add faststart regression test.
...
Also factorize the common options for the different mov-based tests.
Since the header is now on top in the last generated file, the data
offset in the seek test needed some updates as well.
2012-09-27 08:59:37 +02:00
Clément Bœsch and Clément Bœsch
a714150827
lavf/movenc: add faststart option.
2012-09-27 08:59:36 +02:00
Clément Bœsch and Clément Bœsch
f379a108a4
lavf/movenc: make mov_write_stco_tag() not use the offset pos for mode64 heuristic.
...
At the moment, the moov header is written at the end of the file, so we
can use the current offset (which focus on the end of the mdat already
written) to guess if 64-bits offset will be required or not.
Though, the next commits will make possible the writing of this table at
the beginning, so this heuristic can't work. As a consequence, we check
all the values within the potential offset table for any value >
32-bits.
2012-09-27 08:59:36 +02:00
Clément Bœsch and Clément Bœsch
e17a2aba25
lavf/movenc: add get_moov_size and use it in fragment code.
...
This function will be re-used in the following commits.
2012-09-27 08:59:36 +02:00
Clément Bœsch and Clément Bœsch
405ee405c9
ffmpeg: complete mov/mp4 based timebase hack with "f4v" format.
2012-09-21 17:27:57 +02:00
Clément Bœsch and Clément Bœsch
7bc70930dd
lavf/movenc: add F4V flavor.
2012-09-21 15:14:11 +02:00
Clément Bœsch and Clément Bœsch
aca0f78114
lavf/movenc: add frame rate heuristic for timecode frame rate.
...
Fixes ticket 1576.
2012-08-08 09:11:26 +02:00
Clément Bœsch and Clément Bœsch
4b365b0868
lavu/timecode: add av_timecode_check_frame_rate().
2012-08-08 09:11:26 +02:00
Clément Bœsch and Clément Bœsch
6b3484dcbc
lavf/mxfenc: better error handling with invalid frame rate.
2012-08-08 09:11:25 +02:00
Clément Bœsch and Clément Bœsch
aad737c669
lavf/mxfenc: simplify frame rate checks.
2012-08-08 09:11:25 +02:00
Clément Bœsch and Clément Bœsch
e39f6a3a5c
Fix misc swapped dot and carriage returns in av_log calls.
2012-08-03 14:58:14 +02:00
Clément Bœsch and Clément Bœsch
bc42682749
lavf/movenc: fix invalid free with timecode meta and tmcd data copy.
...
Fixes ticket 1577.
2012-08-03 14:15:39 +02:00
Clément Bœsch and Clément Bœsch
1f68be4764
timecode: show frame rate when invalid.
2012-08-01 17:36:37 +02:00
Clément Bœsch and Clément Bœsch
20e46aafbd
mov: export orphan tmcd track metadata to global format metadata.
2012-06-11 07:40:58 +02:00
Clément Bœsch and Clément Bœsch
1ec23d9c02
mov: copy timecode metadata from tmcd track to the related video stream.
...
Apple softwares seem not to add a tref for the timecode (the next commit
fixes this issue), but at least FFmpeg does.
This can be used to generate a sample that demonstrates the feature:
./ffmpeg -f lavfi -i testsrc \
-f lavfi -i mptestsrc \
-f lavfi -i rgbtestsrc \
-map 0 -map 1 -map 2 \
-metadata:s:0 timecode=00:00:00:12 \
-metadata:s:2 timecode=01:02:12:20 \
-t 10 -y out.mov
./ffprobe out.mov
The timecode metadata being transmitted to the video streams, it can be
kept while transmuxed/transcoded.
2012-06-11 07:40:26 +02:00
Clément Bœsch and Clément Bœsch
0d96ec19eb
mov: parse tref atom.
2012-06-11 07:35:14 +02:00
Clément Bœsch and Clément Bœsch
9fb2e234d0
movenc: add timecode track support.
2012-06-11 07:35:14 +02:00
Clément Bœsch and Clément Bœsch
9846a9c701
riff: add ISMP/timecode tag.
2012-06-11 07:28:26 +02:00
Clément Bœsch and Clément Bœsch
c790ae0265
ffmpeg: add missing return carriage in error message.
2012-06-04 09:10:07 +02:00
Clément Bœsch and Clément Bœsch
e00b2d284e
options: stop after option is found.
...
This reverts 78da04384a6c22820518706d84631006d31a85ea; it is not
required anymore since the previous commit (these extended checks were
for the -timecode option in both muxers and encoders), and reduces the
diff with the fork.
2012-06-04 07:41:22 +02:00
Clément Bœsch and Clément Bœsch
6b35f1a2a6
timecode: move timecode muxer options to metadata.
...
Some demuxers set a timecode in the format or streams metadata. The
muxers now make use of this metadata instead of a duplicated private
option.
This makes possible transparent copy of the timecode when transmuxing
and transcoding.
-timecode option for MPEG1/2 codec is also renamed to -gop_timecode. The
global ffmpeg -timecode option will set it anyway so no option change
visible for the user.
2012-06-04 07:41:22 +02:00
Clément Bœsch and Clément Bœsch
735fb8ce59
ffmpeg: remove unused MetadataMap.
...
This struct was forgotten after
e5df74dc56 .
2012-04-06 14:25:35 +02:00
Clément Bœsch and Clément Bœsch
e5df74dc56
ffmpeg: remove unused meta_data_maps.
...
This is unused since a7b5e841ff .
2012-04-06 14:09:48 +02:00
Clément Bœsch and Clément Bœsch
614716f583
mov: do not print string len in handler_name.
...
The handler name is stored as a pascal string in the QT specs (first
byte is the length of the string), thus leading to an invalid metadata
string export.
Also add a second length check based on the first character to avoid
overwriting an already specified handler_name (it happens with Youtube
videos for instance, the handler_name get masked), or specifying an
empty string metadata.
2012-04-05 17:32:54 +02:00
Clément Bœsch and Clément Bœsch
e29f66d64a
ffmpeg: fix a few typo.
2012-04-04 11:50:16 +02:00
Clément Bœsch and Clément Bœsch
29679f4a37
aac: reference supported sample rates in encoders.
2012-03-26 22:46:40 +02:00
Clément Bœsch and Clément Bœsch
21d650cb69
ffmpeg: more expressive sample rate automatic selection.
...
Output now lists the available sample rates with commands like
ffmpeg -f lavfi -i aevalsrc=0 -ar 20000 -y /tmp/out.mp3
2012-03-26 22:46:40 +02:00
Clément Bœsch and Clément Bœsch
a67d9cfa58
lavfi: add avfilter_fill_frame_from_{audio_,}buffer_ref().
2012-03-26 22:46:40 +02:00
Clément Bœsch and Clément Bœsch
9dd649c004
flv: clarify use of video info/cmd frame.
...
Also add generated key frame in the enum, and doxycomment the existing
ones. Descriptions are directly taken from the public specifications.
2012-03-20 07:53:40 +01:00
Clément Bœsch and Clément Bœsch
4fe5448790
lavfi/drawtext: add 24 hours wrapping option for timecode.
...
Fixes ticket #1044 .
2012-03-12 18:17:02 +01:00
Clément Bœsch and Clément Bœsch
aecf0cf5ed
doc/examples: add audio decoding/filtering example.
...
Mostly based on doc/examples/filtering.c. lavfi API is still limited to
"buffer feeding" instead of "frame feeding" at the moment, so this
example code sticks with it.
2012-02-21 16:45:37 +01:00
Clément Bœsch and Clément Bœsch
241f8465d0
lavfi/abuffer: init the data planes with NULL pointers.
...
Samples buffer ref is allocated and loaded with the uninitialized data
pointers:
av_asrc_buffer_add_buffer()
-> av_asrc_buffer_add_samples()
-> avfilter_get_audio_buffer_ref_from_arrays(data, ...)
...which leads to a crash with at least lavfi/ashowinfo in case of !NULL
(see the for loop while samplesref->data[plane]).
2012-02-21 16:45:34 +01:00
Clément Bœsch and Clément Bœsch
6e6bdeb137
doc: fix channel layout value in abuffer example.
...
The channel layout must start with 0x, otherwise it is parsed as a
number of channels.
2012-02-20 09:23:44 +01:00
Clément Bœsch and Clément Bœsch
cba4e2cbbc
pan: fix uninitialized channel_id variable.
...
Fix broken parsing with pan=2:FL=FR:FR=FL and similar.
2012-02-15 10:26:30 +01:00
Clément Bœsch and Clément Bœsch
95317821ea
audioconvert: consistent use of FF_ARRAY_ELEMS for channel_layout_map.
2012-02-15 10:26:25 +01:00
Clément Bœsch and Clément Bœsch
158bd596a6
ffmpeg: move quality parameter to do_video_out() scope.
...
This make do_video_out() and do_audio_out() consistent. Also simplifies
callers.
2012-02-10 20:13:36 +01:00
Clément Bœsch and Clément Bœsch
63b5e99fab
ffmpeg: make use of ret error out in transcode_video().
2012-02-10 20:13:36 +01:00
Clément Bœsch and Clément Bœsch
086fc4d765
ffmpeg: move filtered_frame to the CONFIG_AVFILTER scope.
...
This simplifies a bit the #ifdefery.
2012-02-10 20:13:36 +01:00
Clément Bœsch and Clément Bœsch
9303b794b8
ffmpeg: move do_video_stats() above do_video_out().
...
This avoid a forward declaration.
2012-02-10 20:12:52 +01:00
Clément Bœsch and Clément Bœsch
a78dd826ee
ffmpeg: move video stats code to do_video_out().
...
This will allow some simplifications in transcode_video().
2012-02-10 20:12:52 +01:00
Clément Bœsch and Clément Bœsch
cf31060127
ffmpeg: move filtered_frame to video stream processing scope.
2012-02-10 20:12:52 +01:00
Clément Bœsch and Clément Bœsch
aede21f1b6
ffmpeg: reindent after video frame polling simplification.
2012-02-10 19:59:38 +01:00
Clément Bœsch and Clément Bœsch
e22c7b4e25
ffmpeg: simplify video frame polling.
...
input_video_filter and output_video_filter can't be NULL at this point.
If they are, the current code would likely crash anyway (since
filtered_frame would be NULL and sent to do_video_out().
2012-02-10 19:59:38 +01:00
Clément Bœsch and Clément Bœsch
4ab4b3db5a
ffmpeg: use exit_program() if configure_video_filters() fails.
2012-02-10 19:59:38 +01:00
Clément Bœsch and Clément Bœsch
d50a4c4a5b
lavfi/amerge: copy ref props after filtering samples.
...
This fixes various issues with ffmpeg -ss and -t.
2012-02-02 14:31:18 +01:00
Clément Bœsch and Clément Bœsch
d055c3286c
doc: document amerge filter as an alternative for the -map_channel limitation.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
b90d79ec1f
timecode: drop lavc timecode on next bump.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
6f55156234
dvenc: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
bf6e83a8e8
mxfenc: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
e2407556f1
gxfenc: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
d8804905eb
mpeg12enc: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
f65600d519
drawtext: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
11e5d3b9cf
dv: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
77971609de
mov: honor tmcd flags while extracting timecode meta.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
bd10f01aa8
mov: use new public timecode API.
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
ed67dac093
mpeg12: use av_mpegtc_to_timecode_string().
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
dc386a5e3c
ffprobe: use av_mpegtc_to_timecode_string().
2012-02-02 14:31:17 +01:00
Clément Bœsch and Clément Bœsch
0eaa123b34
lavu: add public timecode API.
2012-02-02 14:30:28 +01:00
Clément Bœsch and Clément Bœsch
b18ebcbe83
timecode: add write regressions tests.
2012-02-02 14:16:34 +01:00
Clément Bœsch and Clément Bœsch
c673671333
ffmpeg: fix -map_channel being ignored when resampling is not needed.
2012-01-31 17:44:46 +01:00
Clément Bœsch and Clément Bœsch
5dfc7f7342
doc: add Timecode documentation.
2012-01-24 16:20:21 +01:00
Clément Bœsch and Clément Bœsch
9bd44b42a8
pan: drop unecessary includes.
2012-01-24 10:43:42 +01:00
Clément Bœsch and Clément Bœsch
66b1b7e5fa
pan: move query_formats() to avoid forward declarations.
2012-01-24 10:43:42 +01:00
Clément Bœsch and Clément Bœsch
94dc4a5046
pan: reindent after remap commit.
2012-01-24 10:43:41 +01:00
Clément Bœsch and Clément Bœsch
6728dd37ac
pan: add channel mapping capability.
2012-01-24 10:43:41 +01:00
Clément Bœsch and Clément Bœsch
66fdbcbbc9
pan: raise correct error when there is no param specified.
2012-01-24 10:43:41 +01:00
Clément Bœsch and Clément Bœsch
5fc51c3155
lavu: add 2.1 channel layout.
2012-01-16 17:38:23 +01:00
Clément Bœsch and Clément Bœsch
ca1bae3983
timecode: support >24h timecode.
2012-01-11 18:14:13 +01:00
Clément Bœsch and Clément Bœsch
f1db99166b
timecode: string representation can be negative.
...
Timecode can be specified with a negative value in MOV...
2012-01-11 18:14:09 +01:00
Clément Bœsch and Clément Bœsch
98aafc5bbf
timecode: set a fixed buffer size of 16B for tc string.
2012-01-11 18:14:03 +01:00
Clément Bœsch and Clément Bœsch
ed14b7242a
timecode: more tolerant frame rate check for drop flag.
...
This fixes some timecode probing in MOV.
2012-01-06 12:16:06 +01:00
Clément Bœsch and Clément Bœsch
35da85562d
mov: support timecode extraction.
2012-01-05 20:59:52 +01:00
Clément Bœsch and Clément Bœsch
adc278788b
mov: annotate read values in tmcd track.
2012-01-05 20:59:52 +01:00
Clément Bœsch and Clément Bœsch
2aa7375a98
timecode: add avpriv_check_timecode_rate().
2012-01-05 20:59:52 +01:00
Clément Bœsch and Clément Bœsch
dc7ad85c40
doc: use @command{} for commands.
2012-01-04 13:21:08 +01:00
Clément Bœsch and Clément Bœsch
837126568c
doc: use @code{} for --{enable,disable}-options.
2012-01-04 13:21:08 +01:00
Clément Bœsch and Clément Bœsch
e1a8164d62
mp3enc: fix playback with mp3 encoded files on some devices.
...
This partially reverts 1fea432b; header variable needs to keep its value
in case it triggers "if (needed <= c.frame_size)".
2012-01-02 15:34:03 +01:00
Clément Bœsch and Clément Bœsch
940d3cc0b0
drawtext: fix hard dependency to lavc (timecode).
2012-01-02 15:33:56 +01:00
Clément Bœsch and Clément Bœsch
15a2a29ba3
lavfi: add thumbnail video filter.
2011-12-27 11:05:08 +01:00
Clément Bœsch and Clément Bœsch
0b4e5451ba
lavfi: use the new audio API in amovie source filter.
2011-12-13 20:25:12 +01:00
Clément Bœsch and Clément Bœsch
220481e1d6
lavfi: skip the frame in case of error.
...
This fixes playback with some audio files through filters.
2011-12-13 20:19:49 +01:00
Clément Bœsch and Clément Bœsch
80914cde6f
timecode: rename internal ff_* symbols to avpriv_*.
...
Those functions are shared between libs.
Also fix a typo in function names: smtpe → smpte.
2011-12-12 17:49:34 +01:00
Clément Bœsch and Clément Bœsch
fa4e30af7e
drawtext: allow burning the timecode.
2011-12-12 17:49:34 +01:00
Clément Bœsch and Clément Bœsch
ad5ade6615
timecode: add avpriv_timecode_to_string().
2011-12-12 17:49:34 +01:00
Clément Bœsch and Clément Bœsch
98aca4bbef
timecode: better input checks in init function.
2011-12-12 17:49:34 +01:00
Clément Bœsch and Clément Bœsch
b6ffe441cd
ffmpeg: do not use a negative total_size (AVERROR) in bitrate estimation.
2011-11-29 23:07:13 +01:00
Clément Bœsch and Clément Bœsch
81a65b82fb
swr: handle correctly muted channel with u8 sample fmt.
2011-11-29 17:14:25 +01:00
Clément Bœsch and Clément Bœsch
fbe6e29646
ffprobe: print codec timecode if available.
2011-11-28 14:06:02 +01:00