Commit Graph
100 Commits
Author SHA1 Message Date
Clément BœschandClément Bœsch 1f68be4764 timecode: show frame rate when invalid. 2012-08-01 17:36:37 +02:00
Clément BœschandClé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œschandClé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œschandClément Bœsch 0d96ec19eb mov: parse tref atom. 2012-06-11 07:35:14 +02:00
Clément BœschandClément Bœsch 9fb2e234d0 movenc: add timecode track support. 2012-06-11 07:35:14 +02:00
Clément BœschandClément Bœsch 9846a9c701 riff: add ISMP/timecode tag. 2012-06-11 07:28:26 +02:00
Clément BœschandClément Bœsch c790ae0265 ffmpeg: add missing return carriage in error message. 2012-06-04 09:10:07 +02:00
Clément BœschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClément Bœsch e29f66d64a ffmpeg: fix a few typo. 2012-04-04 11:50:16 +02:00
Clément BœschandClément Bœsch 29679f4a37 aac: reference supported sample rates in encoders. 2012-03-26 22:46:40 +02:00
Clément BœschandClé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œschandClément Bœsch a67d9cfa58 lavfi: add avfilter_fill_frame_from_{audio_,}buffer_ref(). 2012-03-26 22:46:40 +02:00
Clément BœschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClé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œschandClément Bœsch cf31060127 ffmpeg: move filtered_frame to video stream processing scope. 2012-02-10 20:12:52 +01:00
Clément BœschandClément Bœsch aede21f1b6 ffmpeg: reindent after video frame polling simplification. 2012-02-10 19:59:38 +01:00
Clément BœschandClé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œschandClément Bœsch 4ab4b3db5a ffmpeg: use exit_program() if configure_video_filters() fails. 2012-02-10 19:59:38 +01:00
Clément BœschandClé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œschandClé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œschandClément Bœsch b90d79ec1f timecode: drop lavc timecode on next bump. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch 6f55156234 dvenc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch bf6e83a8e8 mxfenc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch e2407556f1 gxfenc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch d8804905eb mpeg12enc: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch f65600d519 drawtext: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch 11e5d3b9cf dv: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch 77971609de mov: honor tmcd flags while extracting timecode meta. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch bd10f01aa8 mov: use new public timecode API. 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch ed67dac093 mpeg12: use av_mpegtc_to_timecode_string(). 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch dc386a5e3c ffprobe: use av_mpegtc_to_timecode_string(). 2012-02-02 14:31:17 +01:00
Clément BœschandClément Bœsch 0eaa123b34 lavu: add public timecode API. 2012-02-02 14:30:28 +01:00
Clément BœschandClément Bœsch b18ebcbe83 timecode: add write regressions tests. 2012-02-02 14:16:34 +01:00
Clément BœschandClé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œschandClément Bœsch 5dfc7f7342 doc: add Timecode documentation. 2012-01-24 16:20:21 +01:00
Clément BœschandClément Bœsch 9bd44b42a8 pan: drop unecessary includes. 2012-01-24 10:43:42 +01:00
Clément BœschandClément Bœsch 66b1b7e5fa pan: move query_formats() to avoid forward declarations. 2012-01-24 10:43:42 +01:00
Clément BœschandClément Bœsch 94dc4a5046 pan: reindent after remap commit. 2012-01-24 10:43:41 +01:00
Clément BœschandClément Bœsch 6728dd37ac pan: add channel mapping capability. 2012-01-24 10:43:41 +01:00
Clément BœschandClé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œschandClément Bœsch 5fc51c3155 lavu: add 2.1 channel layout. 2012-01-16 17:38:23 +01:00
Clément BœschandClément Bœsch ca1bae3983 timecode: support >24h timecode. 2012-01-11 18:14:13 +01:00
Clément BœschandClé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œschandClé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œschandClé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œschandClément Bœsch 35da85562d mov: support timecode extraction. 2012-01-05 20:59:52 +01:00
Clément BœschandClément Bœsch adc278788b mov: annotate read values in tmcd track. 2012-01-05 20:59:52 +01:00
Clément BœschandClément Bœsch 2aa7375a98 timecode: add avpriv_check_timecode_rate(). 2012-01-05 20:59:52 +01:00
Clément BœschandClément Bœsch dc7ad85c40 doc: use @command{} for commands. 2012-01-04 13:21:08 +01:00
Clément BœschandClément Bœsch 837126568c doc: use @code{} for --{enable,disable}-options. 2012-01-04 13:21:08 +01:00
Clément BœschandClé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œschandClément Bœsch 940d3cc0b0 drawtext: fix hard dependency to lavc (timecode). 2012-01-02 15:33:56 +01:00
Clément BœschandClément Bœsch 15a2a29ba3 lavfi: add thumbnail video filter. 2011-12-27 11:05:08 +01:00
Clément BœschandClé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œschandClé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œschandClé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œschandClément Bœsch fa4e30af7e drawtext: allow burning the timecode. 2011-12-12 17:49:34 +01:00
Clément BœschandClément Bœsch ad5ade6615 timecode: add avpriv_timecode_to_string(). 2011-12-12 17:49:34 +01:00
Clément BœschandClément Bœsch 98aca4bbef timecode: better input checks in init function. 2011-12-12 17:49:34 +01:00
Clément BœschandClé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œschandClément Bœsch 81a65b82fb swr: handle correctly muted channel with u8 sample fmt. 2011-11-29 17:14:25 +01:00
Clément BœschandClément Bœsch fbe6e29646 ffprobe: print codec timecode if available. 2011-11-28 14:06:02 +01:00
Clément BœschandClément Bœsch b1ca5634fd mpeg12: raise timecode to codec context. 2011-11-28 14:06:02 +01:00
Clément BœschandClément Bœsch 16b809ce8e lavfi: fix misc typo in avfilter.h header. 2011-11-16 09:53:58 +01:00
Clément BœschandClément Bœsch efb1ce28b2 mpeg12: use drop_frame_flag to fix timecode debug format. 2011-10-17 09:14:36 +02:00
Clément BœschandClément Bœsch cdd30e5642 doc: small ascii diagram on I/O files and streams in ffmpeg.c 2011-10-12 15:43:52 +02:00
Clément BœschandClément Bœsch ade3ec8457 swresample: fix another broken indent chunk.
Also use a consistent style inside that block.
2011-10-10 15:55:28 +02:00
Clément BœschandClément Bœsch 9719f25e7b swresample: fix broken indent. 2011-10-10 09:57:41 +02:00
Clément BœschandClément Bœsch 677a831ec6 ffmpeg: remove unused data_codec_name. 2011-09-12 12:09:09 +02:00
Clément BœschandClément Bœsch 525d4852b9 ffmpeg: set {audio,video,subtitle}_codec_name const.
This fixes "assignment discards ‘const’ qualifier from pointer target
type." warnings.
2011-09-12 12:09:08 +02:00
Clément BœschandClément Bœsch 4b961ddfea ffmpeg: a bit more consistent prototypes. 2011-09-12 11:52:55 +02:00
Clément BœschandClément Bœsch c975cfaef2 build: fix install rule with --progs-suffix. 2011-09-11 01:48:29 +02:00
Clément BœschandClément Bœsch f738388bba Makefile: remove unused PROGS_G. 2011-09-01 20:23:40 +02:00
Clément BœschandClément Bœsch 33d9077001 build: introduce --progs-suffix option. 2011-09-01 20:23:40 +02:00
Clément BœschandClément Bœsch 75af0e6a16 dv: honor timecode in DV muxer.
This is based on the original work by Baptiste Coudurier.
2011-08-13 19:13:03 +02:00
Clément BœschandClément Bœsch b49fe589ea mxf: honor timecode drop flag in mxf muxer if set. 2011-08-13 19:13:02 +02:00
Clément BœschandClément Bœsch b33ca05b46 mxf: add cli option in mxfenc to replace GOP timecode parsing.
This is based on the original work by Baptiste Coudurier.
2011-08-13 19:13:02 +02:00
Clément BœschandClément Bœsch 4c3c6e60f9 mxf: move framenum to timecode convert to timecode helpers.
This is based on the original work by Baptiste Coudurier.
2011-08-13 19:13:02 +02:00
Clément BœschandClément Bœsch 51fb933dd0 timecode: move dropframe code and doxycomment it.
This is based on the original work by Baptiste Coudurier.
2011-08-10 16:00:32 +02:00
Clément BœschandClément Bœsch 5231454560 timecode: introduce timecode and honor it in MPEG-1/2.
This is based on the original work by Baptiste Coudurier.
2011-08-10 16:00:32 +02:00
Clément BœschandClément Bœsch 78da04384a options: handle options with the same name in codecs and formats.
This will allow the incoming -timecode option to be handled in both
encoders (mpeg12enc in that case) and demuxers (dv, mxf, etc.).
2011-08-10 16:00:32 +02:00
Clément BœschandClément Bœsch 76f105967b mxfenc: fix ignored drop flag in binary timecode representation. 2011-07-05 17:22:51 +02:00
Clément BœschandClément Bœsch 50f8c26579 dv: fix comment spelling. 2011-07-05 17:22:29 +02:00
Clément BœschandRonald S. Bultje 4d5e7ab5c4 mxfenc: fix ignored drop flag in binary timecode representation.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-07-05 08:04:44 -07:00
Clément BœschandDiego Biurrun 65614321db dv: fix comment spelling
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-07-05 16:48:04 +02:00
Clément BœschandDiego Biurrun 19b6127365 mxfenc: small typo fix
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-07-04 12:54:26 +02:00