Commit Graph

53 Commits

Author SHA1 Message Date
Anton Khirnov
b0f36a0043 avconv: stop using setpts for input framerate forced with -r
The setpts filter does not signal to the rest of the filtergraph that
the stream is CFR. Just generate the timestamps manually instead.
2016-07-22 19:08:12 +02:00
Anton Khirnov
94ebf55658 avconv: restructure sending EOF to filters
Be more careful when an input stream encounters EOF when its filtergraph
has not been configured yet. The current code would immediately mark the
corresponding output streams as finished, while there may still be
buffered frames waiting for frames to appear on other filtergraph
inputs.

This should fix the random FATE failures for complex filtergraph tests
after a3a0230a98
2016-06-28 08:30:20 +02:00
Anton Khirnov
a3a0230a98 avconv: init filtergraphs only after we have a frame on each input
This makes sure the actual stream parameters are used, which is
important mainly for hardware decoding+filtering cases, which would
previously require various weird workarounds to handle the fact that a
fake software graph has to be constructed, but never used.
This should also improve behaviour in rare cases where
avformat_find_stream_info() does not provide accurate information.
2016-06-25 12:04:32 +02:00
Anton Khirnov
3e265ca58f avconv: do packet ts rescaling in write_packet()
This will be useful in the following commit, after which the muxer
timebase is not always available when encoding.
2016-06-25 12:04:32 +02:00
Anton Khirnov
50722b4f0c avconv: decouple configuring filtergraphs and setting output parameters
Currently, a filtergraph will pull in the output constraints from its
corresponding decoder context, which breaks proper layering. Instead,
explicitly send the constaints on the output parameters to the
filtergraph.

This is similar to what is done for filtergraph inputs in
30ab4c51a180610d9f1720c75518d763515c0d9f
2016-06-25 12:04:32 +02:00
Anton Khirnov
722ec3eb35 avconv: decouple configuring filtergraphs and setting input parameters
Currently, calling configure_filtergraph() will pull in the input
parameters from the corresponding decoder context. This has the
following disadvantages:
- the decoded frame is a more proper source for this information
- a filter accessing decoder data breaks proper layering

Add functions for explicitly sending the input stream parameters to a
filtergraph input - currently from a frame and a decoder. The decoder
one will be dropped in future commits after some more restructuring.
2016-06-25 11:20:50 +02:00
Anton Khirnov
398f015f07 avconv: buffer the packets written while the muxer is not initialized 2016-06-25 11:15:54 +02:00
Anton Khirnov
1c169782ca avconv: explicitly postpone writing the header until all streams are initialized
This should have no practical effect for now, but will make a difference
in the following commits.
2016-06-25 11:12:53 +02:00
Anton Khirnov
73c6ec6d65 avconv: create simple filtergraphs earlier
We already have all the necessary information in open_output_file().
This makes the information about the stream/filtergraph mappings
available earlier.
2016-06-21 12:39:02 +02:00
Anton Khirnov
49670e4218 avconv: add a function for determining whether a filtergraph is simple
This makes the code easier to read.
2016-06-21 12:39:02 +02:00
Anton Khirnov
35c8580668 avconv: stop using AVStream.codec
It is now only used by the av_parser_change() call during streamcopy, so
allocate a special AVCodecContext instance for this case. This instance
should go away when the new parser API is finished.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-22 20:22:42 +02:00
Mark Thompson
5d273d3efa avconv: VAAPI hwcontext initialisation and hwaccel helper
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-30 09:04:53 +02:00
Anton Khirnov
4426540f0c avconv: switch to the new BSF API 2016-03-20 08:15:01 +01:00
wm4
0b6e5d6b32 avconv: remove sub-frame warning
It's not practical to keep this with the new decode API.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-05 09:10:10 +01:00
Anton Khirnov
fb472e1a11 avconv: add support for Intel QSV-accelerated transcoding
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-10-16 20:01:37 +02:00
Alexandra Hájková
16b0c92962 avconv: Add loop option.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-10-13 09:41:02 +02:00
Vittorio Giovara
5d3addb937 Add a quality factor packet side data
This is necessary to preserve the quality information currently exported
with coded_frame. Add the new side data to every encoder that needs it,
and use it in avconv.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-20 15:06:47 +01:00
Anton Khirnov
6d592fbd0d avconv: split creating and (re-)configuring complex filtergraphs
The current code is less than straightforward due to the fact that
output streams can be created based on filtergraph definitions. This
change should make the code simpler and more readable. It will also be
useful in the future commits.
2015-07-19 09:38:53 +02:00
Martin Storsjö
16302246b1 avconv: Add an option for automatically rotating video according to display matrix
The option is enabled by default, but can be disabled.

If this is enabled, such side data isn't copied into the output stream
(except when doing stream copy).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-02 22:09:06 +03:00
Anton Khirnov
383136264e avconv: do not use the stream codec context for encoding 2014-06-01 08:33:21 +02:00
Anton Khirnov
41776ba9c0 avconv: do not use the stream codec context for decoding 2014-06-01 08:33:11 +02:00
Anton Khirnov
1839fafa95 avconv: Support VDA hwaccel
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-11 15:00:03 +02:00
Anton Khirnov
9580818c5d avconv: rename OutputStream.opts to OutputStream.encoder_opts
This makes it more clear what is this variable for exactly.
2014-05-03 21:44: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
Hendrik Leppkes
35177ba77f avconv: add support for DXVA2 decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 21:21:54 +02:00
Anton Khirnov
4754345027 avconv: print verbose per-stream transcoding statistics 2014-03-24 06:20:38 +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
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
Anton Khirnov
7671dd7cd7 avconv: add support for VDPAU decoding 2013-11-23 11:55:53 +01:00
Anton Khirnov
07fd0a2219 avconv: add infrastructure for using hwaccels 2013-11-23 11:55:43 +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
Luca Barbato
f825d42bcc avplay: Accept cpuflags option
Quite useful for debugging.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-10-22 10:49:31 +02: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
811bd07846 avconv: make input -ss accurate when transcoding
Insert (a)trim filters on the corresponding inputs, so the extra frames
are decoded and discarded.
2013-08-05 10:53:41 +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
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
Justin Ruggles
5c7db097eb avconv: pass libavresample options to AVFilterGraph 2013-02-23 17:07:54 -05:00
Anton Khirnov
77bd1bc73a avconv: use new options parser. 2012-12-18 20:14:54 +01: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
Anton Khirnov
716d413c13 Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat 2012-10-08 07:13:26 +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
038c0b1e06 avconv: make the -pass option per-stream. 2012-08-30 13:56:24 +02:00
Anton Khirnov
3c0df90584 avconv: make -shortest a per-output file option. 2012-08-18 08:48:30 +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
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