Anton Khirnov
650a5206a9
avconv: rename 'icodec' to 'dec_ctx'
...
This more clearly describes what is the variable used for.
2014-05-03 21:43:24 +02:00
Anton Khirnov
f3a6ad22c9
avconv: rename InputStream.opts to InputStream.decoder_opts
...
This makes it more clear what is this variable for exactly.
2014-05-03 21:43:05 +02:00
Anton Khirnov
73ed8558a6
avconv: simplify exit_program() by using more local vars
2014-05-03 21:42:02 +02:00
Anton Khirnov
1ae8198bca
avconv: always reset packet pts after decoding an audio frame
...
Currently, if a decoder sets AVFrame.pts, we'd send the same timestamp
to it twice, which is wrong.
2014-04-22 07:45:49 +02:00
Vittorio Giovara
aa499568af
avconv: More descriptive message about framedrop
2014-03-25 12:26:24 +01:00
Anton Khirnov
d1780e01b8
avconv: don't warn on multiple frames per packet for codecs that expect it
2014-03-24 06:21:13 +01:00
Anton Khirnov
4754345027
avconv: print verbose per-stream transcoding statistics
2014-03-24 06:20:38 +01:00
Anton Khirnov
a220b07b0f
avconv: split printing the final statistics into a separate function
2014-03-24 06:17:19 +01:00
Anton Khirnov
baeb59d89b
avconv: rewrite output data size tracking
...
Store a variable per OutputStream instead of globals for
audio/video/extradata. This makes the code simpler and cleaner and fixes
2pass with multiple output streams.
2014-03-24 06:17:04 +01:00
Anton Khirnov
f759f66e36
avconv: explicitly report when the muxing overhead is unknown
2014-03-24 06:16:58 +01:00
Anton Khirnov
781d97fd54
avconv: remove unused nb_frames_dup
...
Frame duplication now happens in vf_fps.
2014-03-24 06:16:31 +01:00
Anton Khirnov
59444c76e6
avconv: add stream-global side data to the first demuxed packet
2014-03-24 06:07:51 +01:00
Anton Khirnov
67f2a68814
avconv: remove a write-only variable
2014-02-24 17:30:48 +01:00
Luca Barbato
5c79d2e12d
avconv: Do not divide by zero
2014-02-20 18:58:38 +01:00
Anton Khirnov
2ce8bca51f
avconv: print a warning when falling back to default 25fps
2014-01-17 10:30:45 +01:00
Anton Khirnov
674fa49110
avconv: do not call avcodec_get_frame_defaults()
...
Strictly speaking it is not correct to call it on refcounted frames, in
any case it is unnecessary, since filtered_frame is always unreferenced
after poll_filter() returns.
2013-12-11 20:39:54 +01:00
Anton Khirnov
eb891b3114
Replace all uses of avcodec_free_frame with av_frame_free().
2013-12-11 20:39:54 +01:00
Diego Biurrun
8f8bc92365
Add missing #includes for *INT64_MAX and *INT64_C
2013-11-23 21:55:52 +01:00
Anton Khirnov
07fd0a2219
avconv: add infrastructure for using hwaccels
2013-11-23 11:55:43 +01:00
Anton Khirnov
5b9c3b4505
Replace all instances of avcodec_alloc_frame() with av_frame_alloc().
2013-11-16 12:44:20 +01:00
Anton Khirnov
ccc7129845
lavc: deprecate FF_DEBUG_MV and remove all traces of its use
...
It has not been actually used since
37045e4229
, when the broken vismv code was
removed.
2013-10-31 20:21:13 +01:00
Anton Khirnov
c872d310cd
avconv: stop accessing AVStream.parser
...
It is private and must not be touched from outside of lavf.
2013-10-29 14:19:10 +01:00
Anton Khirnov
ddc589ce98
avconv: drop a now useless variable
2013-10-27 21:32:37 +01:00
Anton Khirnov
488a0fa689
avconv: support -t as an input option.
...
It limits the duration of the data read from a given input.
2013-08-05 10:54:19 +02:00
Anton Khirnov
56ee3f9de7
avconv: distinguish between -ss 0 and -ss not being used
...
Using -ss 0 to drop frames with negative timestamps is a perfectly valid
use case.
2013-08-05 10:53:12 +02:00
Luca Barbato
636ced8e1d
cmdutils: wrap exit explicitly
...
Some C runtime implementations deadlock when calling threading functions
on the atexit() handler.
Use a simpler wrapper similar to av_log to call the cleanup function
before exit.
Bug-Id: 523
2013-07-07 21:43:23 +02:00
Derek Buitenhuis
7798a59dc1
avconv: Don't include colorspace.h
...
The header is private, and avconv.c doesn't use it
for anything.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-06-29 14:24:02 -04:00
Luca Barbato
42cc6cefd3
avconv: report the error for codec open failure
...
External codec may have corner case reason to fail at init, better
report them instead having the user wonder.
2013-06-22 20:54:59 +02:00
Luca Barbato
1e340af8d6
avconv: drop additional strerror fallback
...
strerror_r is called by av_strerror already.
2013-06-22 20:54:59 +02:00
Anton Khirnov
274e134e49
avconv: check that the output format context exists before accessing it
...
Fixes a segfault in exit_program() if opening an output file fails.
2013-06-04 17:20:04 +02:00
Anton Khirnov
538bf76737
avconv: make -aspect work with streamcopy
2013-05-27 21:26:06 +02:00
Anton Khirnov
481575d255
avconv: remove -deinterlace
...
It is incompatible with refcounted frames and since it's been deprecated
for a long time now, fixing it is not worth the effort.
2013-05-07 12:31:55 +02:00
Anton Khirnov
76d23f4031
avconv: do not send non-monotonous DTS to the muxers.
...
Hack partially based on a commit by Michael Niedermayer <michaelni@gmx.at>
Should fix (or work around) bug 458.
2013-05-03 09:59:48 +02:00
Anton Khirnov
b4a5a29227
avconv: improve -re implementation
...
Integrate the code in the packet reading function, instead of inserting
sleeps in many places.
This is simpler to follow and should work better.
2013-05-03 09:57:13 +02:00
Anton Khirnov
8cd472d3f9
avconv: make output -ss insert trim/atrim filters.
...
This makes output -ss sample-accurate for audio and will allow further
simplication in the future.
2013-04-30 12:00:55 +02:00
Anton Khirnov
a83c0da539
avconv: make -t insert trim/atrim filters.
...
This makes -t sample-accurate for audio and will allow further
simplication in the future.
Most of the FATE changes are due to audio now being sample accurate. In
some cases a video frame was incorrectly passed with the old code, while
its was over the limit.
2013-04-30 11:53:12 +02:00
Anton Khirnov
fa2a34cd40
lavfi: change the filter registering system to match the other libraries
...
Removes an arbitrary hardcoded limit on the number of filters.
2013-04-11 20:44:03 +02:00
Anton Khirnov
38f0c0781a
lavfi: merge avfiltergraph.h into avfilter.h
...
We do not support using filters without AVFilterGraph in practice
anyway, so there is no point in pretending we do.
2013-04-11 20:33:33 +02:00
Anton Khirnov
a4208b9b7d
avconv: add options for reading filtergraphs from a file.
2013-03-28 07:55:48 +01:00
Anton Khirnov
9b2dc29534
avconv: convert to new refcounted AVFrame API
2013-03-08 07:40:50 +01:00
Ronald S. Bultje
54b298fe56
lavc: Deprecate the deinterlace functions in libavcodec
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:35:24 +02:00
Martin Storsjö
df0229a7ca
avconv: Apply codec options to streams that are copied as well
...
This allows setting/overriding e.g. the bitrate parameter, which
is required for the smoothstreaming muxer. Normally, the bitrate
is set by the demuxer in these cases, but not all demuxers can
provide it. This allows stream copy of data to the smoothstreaming
muxer from such inputs.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-28 18:30:42 +02:00
Justin Ruggles
5c7db097eb
avconv: pass libavresample options to AVFilterGraph
2013-02-23 17:07:54 -05:00
Martin Storsjö
a23abaf302
avconv: Increase the SDP buffer size to fit xiph SDPs
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-01-20 18:20:47 +02:00
Anton Khirnov
77bd1bc73a
avconv: use new options parser.
2012-12-18 20:14:54 +01:00
Justin Ruggles
9a71d362a6
avconv: deprecate the -vol option
...
Remove the code for volume scaling in avconv.c and instead auto-insert a
volume filter into the beginning of the filter chain.
2012-12-05 11:23:37 -05:00
Justin Ruggles
a903f8f087
Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
...
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Justin Ruggles
3ba416408a
avconv: rescale packet duration to muxer time base when flushing encoders
...
Fixes Bug 385
2012-11-08 13:57:34 -05:00
Anton Khirnov
c8977f6d26
avconv: do not free muxed packet on streamcopy.
...
The packet belongs to lavf, the caller must not free it or access it in
any other way.
No change in practice, since destruct is set to NULL anyway.
2012-11-02 18:28:56 +01:00
Diego Biurrun
70478746a9
avconv: Drop unused function argument from do_video_stats()
2012-10-29 19:07:58 +01:00
Janne Grunau
1b891d17c5
avconv: fix bitrate report when writing to /dev/null
...
avio_size() reports the filesize which returns 0 for /dev/null.
avio_tell() reports the current position.
Also handle errors from avio_tell().
2012-10-25 15:00:15 +02:00
Anton Khirnov
8e84f2055c
avconv: remove now unneeded calls to avcodec_get_frame_defaults().
2012-10-24 08:46:45 +02:00
Mans Rullgard
3f65eff408
Include sys/time.h before sys/resource.h
...
Some systems require sys/time.h being explicitly included before
sys/resource.h. The configure check already does this.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Nathan Caldwell
c854102da7
avcodec: handle AVERROR_EXPERIMENTAL
...
Error out on init if a codec with CODEC_CAP_EXPERIMENTAL is requested
and strict_std_compliance is not FF_COMPLIANCE_EXPERIMENTAL.
Move the check from avconv to avcodec_open2() and return
AVERROR_EXPERIMENTAL accordingly.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-21 23:03:26 +02:00
Diego Biurrun
c1ef30a6ba
De-doxygenize some top-level files
2012-10-12 20:56:54 +02:00
Anton Khirnov
fb722a900f
avconv: remove -same_quant
...
It has not worked for anything other than fringe codecs (asv1/2, mdec,
mjpeg[b]) since about 2003 and nobody ever noticed or complained. This
sufficiently proves that there are no users of this option who have a
clue of what they are doing, so it is completely useless.
2012-10-09 20:32:34 +02:00
Diego Biurrun
8be5b0d6d5
avconv/avprobe: Add missing 'void' to exit_program() definition
2012-10-03 18:07:49 +02:00
Diego Elio Pettenò
5e3f9979fa
Use atexit() instead of defining a custom exit_program() interface.
2012-10-01 17:17:42 -04:00
Justin Ruggles
fd41cb4370
avconv: improve sample format negotiation for decoder request
...
This takes into account planar vs. packed when comparing to find the closest
sample format match.
2012-10-01 13:42:43 -04:00
Anton Khirnov
11d1ca4b2c
Use avcodec_free_frame() to free AVFrames.
2012-09-24 12:31:25 +02:00
Janne Grunau
2f34021d57
avconv: flush filtered frames before reconfiguring filters
...
This prevents lost frames after a resolution change.
2012-09-17 10:49:27 +02:00
Anton Khirnov
11d957fbd8
avtools: remove the distinction between func_arg and func2_arg.
...
func2_arg is the same as func_arg, except it has one additional
parameter. Change all func_arg callbacks to take that parameter (and
ignore it).
2012-08-30 13:56:25 +02:00
Anton Khirnov
bbcedade00
avconv: make the -passlogfile option per-stream.
2012-08-30 13:56:25 +02:00
Anton Khirnov
44b0b85fe9
avconv: prefer user-forced input framerate when choosing output framerate
2012-08-26 07:50:06 +02:00
Anton Khirnov
3c0df90584
avconv: make -shortest a per-output file option.
2012-08-18 08:48:30 +02:00
Mans Rullgard
d752509b74
Use log2(x) instead of log(x) / log(2)
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 17:59:21 +01:00
Anton Khirnov
ab29609701
avconv: allow no input files.
...
It is now possible to use lavfi sources.
2012-08-08 21:56:26 +02:00
Anton Khirnov
a5fd7c607f
avconv: prevent invalid reads in transcode_init()
2012-08-08 21:55:54 +02:00
Anton Khirnov
57d2422559
avconv: rename OutputStream.is_past_recording_time to finished.
...
The new name is shorter and more accurate, since this variable is no
longer used only for checking recording time constraint.
2012-08-08 21:55:45 +02:00
Anton Khirnov
0c00fd80ee
avconv: split the code for processing input packets out of transcode()
2012-08-08 21:55:15 +02:00
Anton Khirnov
f154ef1ae5
avconv: send EOF to lavfi even if flushing the decoder fails
2012-08-08 20:16:29 +02:00
Anton Khirnov
cc2133b66a
avconv: get rid of pointless temporary variable.
2012-08-08 20:16:13 +02:00
Anton Khirnov
8391602913
avconv: simplify transcode().
...
Operate with a pointer to InputFile instead of its index in input_files.
2012-08-08 20:15:36 +02:00
Anton Khirnov
c0fbf9713c
avconv: cosmetics
...
Replace for (;foo == 0;) with while (!foo)
This is prettier.
2012-08-08 20:15:13 +02:00
Anton Khirnov
0b26ef4228
avconv: replace no_packet array in transcode() with a var in InputStream
...
This simplifies splitting code for reading from input out of
transcode().
2012-08-08 20:12:47 +02:00
Anton Khirnov
d64901f99d
avconv: remove commented out cruft.
2012-08-08 20:12:11 +02:00
Anton Khirnov
a4f5011065
avconv: maintain sync on lavfi outputs.
...
Before this commit, poll_filters() reads all frames available on each
lavfi output. This does not work for lavfi sources that produce
an unlimited number of frames, e.g. color and similar.
With this commit, poll_filters() reads from output with the lowest
timestamp and returns to wait for more input if no frames are available
on it.
2012-08-08 20:04:27 +02:00
Anton Khirnov
fe2147e936
avconv: split configuring filter configuration to a separate file.
2012-08-08 11:11:52 +02:00
Anton Khirnov
f5e668273a
avconv: split option parsing into a separate file.
2012-08-08 11:10:06 +02:00
Anton Khirnov
36ef5369ee
Replace all CODEC_ID_* with AV_CODEC_ID_*
2012-08-07 16:00:24 +02:00
Mans Rullgard
82494835c4
rational: add av_inv_q() returning the inverse of an AVRational
...
This allows simplifying a few expressions.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-05 17:46:41 +01:00
Anton Khirnov
aba232cfa9
lavf: deprecate r_frame_rate.
...
According to its description, it is supposed to be the LCM of all the
frame durations. The usability of such a thing is vanishingly small,
especially since we cannot determine it with any amount of reliability.
Therefore get rid of it after the next bump.
Replace it with the average framerate where it makes sense.
FATE results for the wtv and xmv demux tests change. In the wtv case
this is caused by the file being corrupted (or possibly badly cut) and
containing invalid timestamps. This results in lavf estimating the
framerate wrong and making up wrong frame durations.
In the xmv case the file contains pts jumps, so again the estimated
framerate is far from anything sane and lavf again makes up different
frame durations.
In some other tests lavf starts making up frame durations from different
frame.
2012-07-29 08:06:30 +02:00
Ronald S. Bultje
dcb7ef5483
avprobe/avconv: fix tentative declaration compile errors on MSVS.
2012-07-28 11:48:18 -07:00
Anton Khirnov
5417efbbf3
avconv: print an error message when demuxing fails.
...
Also exit in such a case if -xerror is used.
Fixes bug 329.
2012-07-17 09:50:26 +02:00
Anton Khirnov
8a645bfc31
avconv: propagate fatal errors from lavfi.
2012-07-09 08:32:49 +02:00
Anton Khirnov
53ddd43f0c
avconv: use only meaningful timestamps in start time check.
2012-07-06 12:59:11 +02:00
Anton Khirnov
b98c8f4f2b
avconv: fix the check for -ss as an output option.
...
start time is already substracted from the frame timestamp, so it needs
to be checked against 0, not start time.
2012-07-06 12:54:52 +02:00
Reimar Döffinger
4c679750cb
avconv: fix parsing of -force_key_frames option.
...
Currently it always exits with an error when more than
one position is specified.
CC: libav-stable@libav.org
2012-07-05 13:15:36 +02:00
Martin Storsjö
715129cdc4
avconv: Set audio filter time base to the sample rate
...
If the output frame size is smaller than the input sample rate,
and the input stream time base corresponds exactly to the input
frame size (getting input packet timestamps like 0, 1, 2, 3, 4 etc),
the output timestamps from the filter will be like
0, 1, 2, 3, 4, 4, 5 ..., leadning to non-monotone timestamps later.
A concrete example is input mp3 data having frame sizes of 1152
samples, transcoded to aac with 1024 sample frames.
By setting the audio filter time base to the sample rate, we will
get sensible timestamps for all output packets, regardless of
the ratio between the input and output frame sizes.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-05 09:57:04 +03:00
Martin Storsjö
d3ed1c9571
cmdutils: Pass the actual chosen encoder to filter_codec_opts
...
This allows passing the right options to encoders when there's more
than one encoder for a certain codec id.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-30 15:44:10 +03:00
Anton Khirnov
c29c1a1b6b
avconv: add an assert to silence an uninitialized variable warning.
...
The warning silenced was:
avconv.c: In function ‘opt_output_file’:
avconv.c:3380:21: warning: ‘meta_out’ may be used uninitialized in this function [-Wuninitialized]
avconv.c:3315:20: note: ‘meta_out’ was declared here
2012-06-26 19:32:41 +02:00
Anton Khirnov
74853ed3f8
avconv: shut up an uninitialized variable warning.
...
The warning silenced was:
avconv.c: In function ‘configure_filtergraph’:
avconv.c:603:8: warning: ‘ist’ may be used uninitialized in this function [-Wuninitialized]
avconv.c:549:18: note: ‘ist’ was declared here
2012-06-26 19:31:51 +02:00
Anton Khirnov
b8c632a720
avconv: don't include vsrc_buffer.h, which doesn't exist anymore
2012-06-26 14:33:01 +02:00
Anton Khirnov
19ad567311
avconv: fix -force_key_frames
...
parse_forced_keyframes() relies in encoder timebase being set, so call
it from transcode_init() after it is known.
2012-06-26 13:10:33 +02:00
Anton Khirnov
fd269d6253
avconv: remove a forgotten debugging printf.
2012-06-24 07:15:32 +02:00
Anton Khirnov
df98bf22cb
avconv: use more descriptive names for hardcoded filters.
...
Also ensure that all such filters get a non-NULL name. Should fix FATE
failures on some architectures after
58b049f2fa
.
2012-06-24 07:15:32 +02:00
Anton Khirnov
6fc7d9a078
avconv: remove redundant handling of async.
...
Because of a mistake during merging the code for simple and complex
filtergraphs, -async inserts an asyncts filter both on input and output.
Remove the output hunk.
2012-06-24 07:15:31 +02:00
Mans Rullgard
896bb0d742
Replace usleep() calls with av_usleep()
...
This reduces the dependency on unistd.h which is not available
on all systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-22 17:15:36 +01:00
Mans Rullgard
6501dcfb5e
Remove unnecessary inclusions of [sys/]time.h
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-06-20 11:46:46 +01:00
Anton Khirnov
9034b0ed66
avconv: don't try to free threads that were not initialized.
2012-06-14 10:33:10 +02:00