Commit Graph

258 Commits

Author SHA1 Message Date
Michael Bradshaw 3ac46a0a62 ffmpeg: Add -time_base option to hint the time base
Signed-off-by: Michael Bradshaw <mjbshaw@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-01-14 20:03:56 +01:00
Zhengxu 1a79b8f8d2 ffmpeg: Add an option "qsv_device" to choose proper node for QSV child device (vaapi or dxva2)
Reason: For some cases, such as 2 or more graphics cards existing, the
default command line may fail because ffmpeg does not open the correct
device node:
    ffmpeg -hwaccel qsv -c:v h264_qsv -i test.264 -c:v h264_qsv out.264
Let user choose the proper one by running like below:
    ffmpeg -hwaccel qsv -qsv_device /dev/dri/renderD128 -c:v h264_qsv \
-i test.264 -c:v h264_qsv out.264

Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com>
Signed-off-by: Huang, Zhengxu <zhengxu.maxwell@gmail.com>
Signed-off-by: Andrew, Zhang <huazh407@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-01-11 20:21:09 +00:00
Michael Niedermayer a5f27a9c3a Avoid using the term "file" and prefer "url" in some docs and comments
This should make it less ambigous that these are URLs

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-05 21:30:12 +01:00
Michael Niedermayer bda6f2937e ffmpeg_opt: Fix starttime with ffm in bitexact mode
This fixes some differences between runs of the ffserver tests
(in my local tree 2 runs gave the same result with this but i had other
 changes too)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-28 17:15:31 +01:00
Paul B Mahol 8f5a2bed5e ffmpeg_filter: fix several logic failures
Move global thread variables to better place.
Use correct variable for simple and complex filtergraphs.

This makes number of threads set per filter work again.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-11-24 16:27:55 +01:00
Hendrik Leppkes 198e8b8e77 Merge commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5'
* commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5':
  avconv: decouple configuring filtergraphs and setting output parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-13 15:33:39 +01:00
DeHackEd 6d50dff816 ffmpeg: parameters for filter thread counts
Enables specifying how many threads are available to each filtergraph.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-06 15:27:25 +01:00
Hendrik Leppkes b6422902d8 Merge commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0'
* commit '722ec3eb35bc152ce91d0a4502eca0df1c0086d0':
  avconv: decouple configuring filtergraphs and setting input parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-03 14:53:58 +01:00
Hendrik Leppkes 3e5e5bdfef Merge commit '398f015f077c6a2406deffd9e37ff34b9c7bb3bc'
* commit '398f015f077c6a2406deffd9e37ff34b9c7bb3bc':
  avconv: buffer the packets written while the muxer is not initialized

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-10-08 11:38:47 +02:00
Rodger Combs 1f7d586052
ffmpeg: don't reconfigure terminal if we're not taking input from stdin 2016-10-06 18:31:06 -05:00
James Almer 4a05d2eda7 ffmpeg: stop using AVStream.codec on stream copy
This commit is based on commit 35c8580 from Anton Khirnov <anton@khirnov.net>
which was skipped in b8945c4.

The avcodec_copy_context() call in the encode path is left in place for now
as AVStream.codec is apparently still required even after porting ffmpeg to
the new bsf API.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-27 10:42:51 -03:00
James Almer 449dc25f56 ffmpeg: fix memleak of bitstream filter context on failure
Increase the nb_bitstream_filters value as soon as the context is allocated, so
if option parsing fails the last context is actually freed.

Reviewed-by: Josh de Kock <josh@itanimul.li>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-25 16:17:59 -03:00
Michael Niedermayer 9083e044f1 ffmpeg: Fix bistream typos
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-09-25 19:06:51 +02:00
Clément Bœsch 5ef1959080 ffmpeg: switch to the new BSF API
This commit is initially largely based on commit 4426540 from Anton
Khirnov <anton@khirnov.net> and two following fixes (80fb19b and
fe7b21c) which were previously skipped respectively in 98e3153, c9ee36e,
and 7fe7cdc.

mpeg4-bsf-unpack-bframes FATE reference is updated because the bsf
filter now actually fixes the extradata (mpeg4_unpack_bframes_init()
changing one byte is now honored on the output extradata).

The FATE references for remove_extra change because the packet flags
were wrong and the keyframes weren't marked, causing the bsf relying on
these proprieties to not actually work as intended.

The following was fixed by James Almer:

The filter option arguments are now also parsed correctly.

A hack to propagate extradata changed by bitstream filters after the
first av_bsf_receive_packet() call is added to maintain the current
behavior. This was previously done by av_bitstream_filter_filter() and
is needed for the aac_adtstoasc bsf.

The exit_on_error was not being checked anymore, and led to an exit
error in the last frame of h264_mp4toannexb test. Restoring this
behaviour prevents erroring out. The test is still changed as a result
due to the badly filtered frame now not being written after the failure.

Signed-off-by: Clément Bœsch <u@pkh.me>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-24 14:25:53 -03:00
Clément Bœsch 955b818cf9 ffmpeg: switch to codecpar
This commit is largely based on commit 15e84ed3 from Anton Khirnov
<anton@khirnov.net> which was previously skipped in bbf5ef9d.

There are still a bunch of things raising codecpar related warnings that
need fixing, such as:
- the use of codec->debug in the interactive debug mode
- read_ffserver_streams(): it's probably broken now but there is no test
- lowres stuff
- codec copy apparently required by bitstream filters

The matroska references are updated because they now properly forward
the field_order (previously unknown, now progressive).

Thanks to James Almer for fixing a bunch of FATE issues in this commit.

Signed-off-by: Clément Bœsch <clement@stupeflix.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-21 15:39:28 +02:00
Carl Eugen Hoyos 3e886e7307 ffmpeg_opt: Suggest to use "file:..." if a protocol was not found.
Fixes Debian bug 785690.
2016-09-07 18:51:37 +02:00
James Almer 61da882cea Merge commit '90944ee3ab79081845ea1bd97eea475031ce0842'
* commit '90944ee3ab79081845ea1bd97eea475031ce0842':
  avconv: refactor selecting an encoder

Conflicts:
	ffmpeg.c
	ffmpeg_opt.c

Merged-by: James Almer <jamrial@gmail.com>
2016-08-06 13:31:12 -03:00
Timothy Gu 26648703db ffmpeg_opt: Remove duplicated initialization of attachment stream
These two fields are already initialized to the same values in
new_attachment_stream().
2016-08-03 21:29:38 -07:00
Timothy Gu 1b04ea1a6c Merge commit '73c6ec6d659bab11ac424a4ba6ce3a56246295ee' into merge
* commit '73c6ec6d659bab11ac424a4ba6ce3a56246295ee':
  avconv: create simple filtergraphs earlier

Merged-by: Timothy Gu <timothygu99@gmail.com>
2016-08-03 20:53:03 -07:00
Jun Zhao a06acfff76 ffmpeg_opt: Delete duplicate “hwaccel_output_format” option.
Delete duplicate “hwaccel_output_format” option.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-20 12:07:38 +02:00
Timo Rothenpieler d865e74e6d ffmpeg: Add cuvid hwaccel support 2016-06-10 16:31:23 +02:00
Derek Buitenhuis 172d3568b3 Merge commit '5d273d3efac340ef8de445c955ff44c7abed4e8f'
* commit '5d273d3efac340ef8de445c955ff44c7abed4e8f':
  avconv: VAAPI hwcontext initialisation and hwaccel helper

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 22:39:39 +01:00
Marton Balint 0418b0253a ffmpeg: remove hardcoded 'now' creation_time support
Every date parsing routine now uses av_parse_time which handles 'now' and
provides greater precision as well. This change also enables the segmenter
muxer to set the proper 'now' creation time at the beginning of each segment.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-03-03 01:37:22 +01:00
Derek Buitenhuis 6b706ce85f Merge commit 'bd49be885e9ad6bae599c54473ba2fa2957eb140'
* commit 'bd49be885e9ad6bae599c54473ba2fa2957eb140':
  avconv_vdpau: use the hwcontext API to simplify code

Tested-by: wm4
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 16:47:05 +00:00
Michael Niedermayer a25c5dbb5e ffmpeg_opt: Fix memleaks in "manually set programs" loop
Fixes CID1351356, CID1351357

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-08 15:57:24 +01:00
Vittorio Gambaletta (VittGam) 74658a8b4d ffmpeg_opt: Allow -metadata option to set metadata on programs.
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-26 17:36:08 +01:00
Vittorio Gambaletta (VittGam) 6e448fb97e ffmpeg_opt: Move the 'process manually set programs' block above 'process manually set metadata' in open_output_file().
Signed-off-by: Vittorio Gambaletta <ffmpeg-dev@vittgam.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-26 17:36:08 +01:00
Rodger Combs a5fd3a1a2b ffmpeg: use lavf API for applying bitstream filters 2015-12-28 08:34:30 -06:00
Michael Niedermayer 30d770ca44 ffmpeg: Allow specifying the program number for created programs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-16 14:03:57 +01:00
Michael Niedermayer 8f948b6244 ffmpeg: Add basic support to mux multiple programs
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-11 22:27:25 +01:00
Ganesh Ajjanagadde 4c96985af1 all: remove some casts of function pointer to void *
These casts are unnecessary, and may safely be removed.
Found by enabling -Wpedantic on clang 3.7.

Tested with FATE.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-10-24 15:14:59 -04:00
Marton Balint ddc6bd8c95 ffmpeg: add abort_on option to allow aborting on empty output
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-10-22 19:03:01 +02:00
Hendrik Leppkes dd8a4b0f8c Merge commit 'fb472e1a11a4e0caed2c3c91da01ea8e35d9e3f8'
* commit 'fb472e1a11a4e0caed2c3c91da01ea8e35d9e3f8':
  avconv: add support for Intel QSV-accelerated transcoding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22 16:18:02 +02:00
Michael Niedermayer dbb03b8e47 ffmpeg_opt: rename loop option to stream_loop
The "loop" option is used in several demuxers (like img2dec) and muxers, using the same name in ffmpeg_opt
breaks them. Feel free to revert this and replace by any other solution or rename both as preferred
This is just as a quick fix to avoid the regression with existing command lines and to have both named
the same (which does not work)

Example:
./ffmpeg -loop 1 -i fate-suite/png1/lena-rgb24.png -t 1 test.avi
will produce 25 frames with the img2dec loop but only 1 frame at 25fps with the ffmpeg loop option

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-14 21:06:28 +02:00
Hendrik Leppkes 9ccd90626f Merge commit '16b0c929621f84983b83b9735ce973acb12723bc'
* commit '16b0c929621f84983b83b9735ce973acb12723bc':
  avconv: Add loop option.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-14 14:28:20 +02:00
Hendrik Leppkes 7255cf003e Merge commit 'b5e4f393b6757629281f58c3f3f6d55ca522ab60'
* commit 'b5e4f393b6757629281f58c3f3f6d55ca522ab60':
  avconv: Make the private options discovery more manifest

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:30:48 +02:00
Hendrik Leppkes e490fee6b9 Merge commit '3973f0f773e0bd212734eccda78aa798f8b20692'
* commit '3973f0f773e0bd212734eccda78aa798f8b20692':
  Revert "avconv_opt: Allow printing private options"

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-29 15:29:46 +02:00
Hendrik Leppkes e34939ca76 Merge commit '7bb1c1bfd22de2200743af04ebd0c7c775f56f7e'
* commit '7bb1c1bfd22de2200743af04ebd0c7c775f56f7e':
  avconv_opt: Allow printing private options

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17 11:46:34 +02:00
Carl Eugen Hoyos a4188c9cd2 ffmpeg: Improve help text for -target.
Fixes ticket #1057.
2015-09-02 14:32:06 +02:00
Ronald S. Bultje 2fb593dcb9 Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Timothy Gu da0e76955a ffmpeg_opt: Add -hwaccels option that lists all supported hwaccels 2015-08-26 18:46:20 -07:00
Timothy Gu b144008c1b ffmpeg_opt: Add missing comma 2015-08-25 16:49:51 -07:00
Michael Niedermayer ae2cb9290a ffmpeg_opt: Prefer audio streams with packets
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 10:43:16 +02:00
Michael Niedermayer 6dbaeed6b7 ffmpeg: switch swscale option handling to AVDictionary similar to what the other subsystems use
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-08 14:44:15 +02:00
Sebastien Zwickert 11d923d414 avcodec: add new Videotoolbox hwaccel. 2015-08-03 10:12:10 +02:00
Michael Niedermayer 0949869e7b ffmpeg_op: Print warning if duration isnt known when -sseof is used
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 18:58:57 +02:00
Michael Niedermayer f4ada6dc3f ffmpeg: Implement support for seeking relative to EOF
Fixes Ticket227

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-29 17:16:51 +02:00
Michael Niedermayer 94d68a41fa Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
  lavc: AV-prefix all codec flags

Conflicts:
	doc/examples/muxing.c
	ffmpeg.c
	ffmpeg_opt.c
	ffplay.c
	libavcodec/aacdec.c
	libavcodec/aacenc.c
	libavcodec/ac3dec.c
	libavcodec/ac3enc_float.c
	libavcodec/atrac1.c
	libavcodec/atrac3.c
	libavcodec/atrac3plusdec.c
	libavcodec/dcadec.c
	libavcodec/ffv1enc.c
	libavcodec/h264.c
	libavcodec/h264_loopfilter.c
	libavcodec/h264_mb.c
	libavcodec/imc.c
	libavcodec/libmp3lame.c
	libavcodec/libtheoraenc.c
	libavcodec/libtwolame.c
	libavcodec/libvpxenc.c
	libavcodec/libxavs.c
	libavcodec/libxvid.c
	libavcodec/mpeg12dec.c
	libavcodec/mpeg12enc.c
	libavcodec/mpegaudiodec_template.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/nellymoserdec.c
	libavcodec/nellymoserenc.c
	libavcodec/nvenc.c
	libavcodec/on2avc.c
	libavcodec/options_table.h
	libavcodec/opus_celt.c
	libavcodec/pngenc.c
	libavcodec/ra288.c
	libavcodec/ratecontrol.c
	libavcodec/twinvq.c
	libavcodec/vc1_block.c
	libavcodec/vc1_loopfilter.c
	libavcodec/vc1_mc.c
	libavcodec/vc1dec.c
	libavcodec/vorbisdec.c
	libavcodec/vp3.c
	libavcodec/wma.c
	libavcodec/wmaprodec.c
	libavcodec/x86/hpeldsp_init.c
	libavcodec/x86/me_cmp_init.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Michael Niedermayer bc3f19641c Merge commit '6d592fbd0d8e89ecade3fc93b36ea200213dc01c'
* commit '6d592fbd0d8e89ecade3fc93b36ea200213dc01c':
  avconv: split creating and (re-)configuring complex filtergraphs

Conflicts:
	ffmpeg_filter.c
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 15:36:54 +02:00
Michael Niedermayer c7dd2365f4 Merge commit 'be101bc1e357c50fcb740bc4870b3bacc93a5727'
* commit 'be101bc1e357c50fcb740bc4870b3bacc93a5727':
  avconv: create the complex filtergraphs earlier

Conflicts:
	ffmpeg_opt.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-19 14:12:11 +02:00