summaryrefslogtreecommitdiff
path: root/fftools
Commit message (Collapse)AuthorAge
* fftools/ffmpeg: make debug_ts print raw filter outputTimo Rothenpieler2022-07-18
|
* ffmpeg: add option -isyncGyan Doshi2022-07-14
| | | | | | | | | | | | This is a per-file input option that adjusts an input's timestamps with reference to another input, so that emitted packet timestamps account for the difference between the start times of the two inputs. Typical use case is to sync two or more live inputs such as from capture devices. Both the target and reference input source timestamps should be based on the same clock source. If either input lacks starting timestamps, then no sync adjustment is made.
* fftools/ffprobe: Improve description of AFD side dataAndreas Rheinhardt2022-07-09
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffprobe: Add const to AVPacket data pointersAndreas Rheinhardt2022-07-09
| | | | | | | These packets need not be writable (and are not modified by us), so it is best to access them via const uint8_t*. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools: Fix preset search pathesNicolas Gaullier2022-07-08
| | | | | | | | | regression since 13350e81fd Fix looking for .ffmpeg subfolder in FFMPEG_DATADIR and inversely not in HOME. Fix search order (documentation). Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* fftools/ffmpeg: change frame counters to 64 bitMarton Balint2022-06-27
| | | | | | | | | | | Frame counters can overflow relatively easily (INT_MAX number of frames is slightly more than 1 year for 60 fps content), so make sure we are always using 64 bit values for them. A live stream can easily run for more than a year and the framedup logic breaks on an overflow. Signed-off-by: Marton Balint <cus@passwd.hu>
* fftools/ffplay: fix YUV conversion modeNiklas Haas2022-06-27
| | | | | | | | | | | | | | GL and Metal cache the state at time of texture creation. GLES2 and Direct3D 11 use the state at time of the render copy call. So the only way we can get the correct behavior consistently is by making sure the state is set for both the upload *and* the draw call. This probably isn't our bug to fix (upstream should make itself behave consistently and also document its functions), but as it stands, `ffplay` is misrendering BT.709 as BT.601 on my stock Linux system, and that leaves a bad taste in my mouth. Signed-off-by: Niklas Haas <git@haasn.dev>
* fftools: Remove MAX_PATH limit and switch to UTF-8 versions of fopen() and ↵Nil Admirari2022-06-21
| | | | | | getenv() Signed-off-by: Martin Storsjö <martin@martin.st>
* fftools/ffprobe: report avio errorsMarton Balint2022-06-20
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* fftools/fopen_utf8: support long paths on Windows for fftoolssoftworkz2022-06-19
| | | | | Signed-off-by: softworkz <softworkz@hotmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* ffprobe: add -o optionStefano Sabatini2022-06-13
| | | | | | | | | | This enables printing to a resource specified with -o OUTPUT. In case the output is not specified, prints to stdout as usual. Address issue: http://trac.ffmpeg.org/ticket/8024 Signed-off-by: Marton Balint <cus@passwd.hu>
* ffmpeg: add option fps_modeGyan Doshi2022-06-11
| | | | | | | fps_mode sets video sync per output stream. Overrides vsync for matching streams. vsync is deprecated.
* ffmpeg: drop undocumented -d optionStefano Sabatini2022-06-09
| | | | | | | | | | | | Option was added in commit 39aafa5ee90e10382e but was never documented. Also does not seem there are current use cases for it, tests for which it was introduced are still working therefore we drop it altogether. Indirectly fix trac issue: http://trac.ffmpeg.org/ticket/1698 Signed-off-by: Marton Balint <cus@passwd.hu>
* ffprobe: update entry index after printing packet/media typeStefano Sabatini2022-06-09
| | | | | | | | Fix JSON output in case a frame or packet section contains a nested section. Fix trac issue http://trac.ffmpeg.org/ticket/8680. Signed-off-by: Marton Balint <cus@passwd.hu>
* fftools/ffmpeg: move processing AV_PKT_DATA_QUALITY_STATS to do_video_stats()Anton Khirnov2022-05-24
| | | | | | | | | | This is a more appropriate place for this code, since the values we read from AV_PKT_DATA_QUALITY_STATS side data are primarily written into video stats. This ensures that the values written into stats actually apply to the right packet. Rename the function to update_video_stats() to better reflect its new purpose.
* fftools/ffmpeg: merge variable declaration and initializationAnton Khirnov2022-05-24
|
* fftools/ffmpeg: stop using av_stream_get_end_pts() in do_video_stats()Anton Khirnov2022-05-24
| | | | | | It retrieves libavformat's internal dts value (contrary to the function's name), which is not only incorrect in general, but also unnecessary because we can access the packet directly.
* fftools/ffmpeg: stop using AVStream.nb_frames in do_video_stats()Anton Khirnov2022-05-24
| | | | | | | | | | Its use for muxing is not documented, in practice it is incremented per each packet successfully passed to the muxer's write_packet(). Since there is a lot of indirection between ffmpeg receiving a packet from the encoder and it actually being written (e.g. bitstream filters, the interleaving queue), using nb_frames here is incorrect. Add a new counter for packets received from encoder instead.
* fftools/ffmpeg: move do_video_stats() to avoid a forward declarationAnton Khirnov2022-05-24
|
* fftools/ffmpeg: drop a useless check and reduce indentationAnton Khirnov2022-05-24
| | | | do_video_stats() is only ever called for video.
* fftools/ffmpeg: reindent after previous commitAnton Khirnov2022-05-24
|
* fftools/ffmpeg: reuse the encoding code for flushing encodersAnton Khirnov2022-05-24
|
* fftools/ffmpeg: share the code encoding a single frame between video and audioAnton Khirnov2022-05-24
| | | | | Call do_video_stats() for every video packet produced by the encoder, rather than for every frame sent to the encoder.
* fftools/ffmpeg: fix 2pass log file namesAnton Khirnov2022-05-24
| | | | | | | Use the global stream index rather than an unrelated variable in the filename. Broken in 6d5d9246042.
* libavutil: Deprecate av_fopen_utf8, provide an avpriv versionMartin Storsjö2022-05-23
| | | | | | | | | | | | | | | | | | | | | | Since every DLL can use an individual CRT on Windows, having an exported function that opens a FILE* won't work if that FILE* is going to be used from a different DLL (or from user application code). Internally within the libraries, the issue can be worked around by duplicating the function in all libraries (this already happened implicitly because the function resided in file_open.c) and renaming the function to ff_fopen_utf8 (so that it doesn't end up exported from the DLLs) and duplicating it in all libraries that use it. This makes the avpriv_fopen_utf8 / ff_fopen_utf8 function work in the exact same way as the existing avpriv_open / ff_open, with the same setup as introduced in e743e7ae6ee7e535c4394bec6fe6650d2b0dbf65. That mechanism doesn't work for external users, thus deprecate the existing function. Signed-off-by: Martin Storsjö <martin@martin.st>
* fftools: Stop using av_fopen_utf8Martin Storsjö2022-05-23
| | | | | | | | | | Provide a header based inline reimplementation of it. Using av_fopen_utf8 doesn't work outside of the libraries when built with MSVC as shared libraries (in the default configuration, where each DLL gets a separate statically linked CRT). Signed-off-by: Martin Storsjö <martin@martin.st>
* opt_common: note D and T type streams for completeness.Gyan Doshi2022-05-20
| | | | Addresses #9784
* fftools/opt_common: add includes of avf headers for claritysoftworkz2022-05-18
| | | | | Signed-off-by: softworkz <softworkz@hotmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* doc/ffprobe: clarify that the input file is not optionalStefano Sabatini2022-04-21
| | | | Fix trac issue http://trac.ffmpeg.org/ticket/9562
* fftools/ffmpeg: store output format separately from the muxer contextAnton Khirnov2022-04-13
| | | | | | Allows accessing it without going through the muxer context. This will be useful in the following commits, where the muxer context will be hidden.
* fftools/ffmpeg: move freeing the output file to ffmpeg_mux.cAnton Khirnov2022-04-13
|
* fftools/ffmpeg: move writing the trailer to ffmpeg_mux.cAnton Khirnov2022-04-13
|
* fftools/ffmpeg: move some muxing-related code into a separate fileAnton Khirnov2022-04-13
| | | | | This is a first step towards making muxers more independent from the rest of the code.
* fftools/ffmpeg: store the output file index in OutputFileAnton Khirnov2022-04-13
| | | | | Use it to simplify check_init_output_file(). Will allow further simplifications in the following commits.
* fftools/ffmpeg: pass the muxer context explicitly to some functionsAnton Khirnov2022-04-13
| | | | | Stop accessing OutputFile.ctx. This will be useful in the following commits, where it will become hidden.
* fftools/ffmpeg: stop using OutputStream.frame_number for streamcopyAnton Khirnov2022-04-13
| | | | | | | | | | | | | | This field is currently used by checks - skipping packets before the first keyframe - skipping packets before start time to test whether any packets have been output already. But since frame_number is incremented after the bitstream filters are applied (which may involve delay), this use is incorrect. The keyframe check works around this by adding an extra flag, the start-time check does not. Simplify both checks by replacing the seen_kf flag with a flag tracking whether any packets have been output by do_streamcopy().
* fftools/ffmpeg: move a comment to a more appropriate placeAnton Khirnov2022-04-13
|
* fftools/ffmpeg: drop an obsolete hackAnton Khirnov2022-04-13
| | | | | Introduced in 05741d70c7a. All encoders should set the timestamps properly now, so it should never be necessary.
* fftools/opt_cmdutils: fix printing known channel layoutsJames Almer2022-03-25
| | | | | | | Look for the generic "USR" labels instead of "?" to skip channels with no known names, and actually print the decomposition of standard channel layouts. Signed-off-by: James Almer <jamrial@gmail.com>
* ffmpeg: add packet duration to AVPacket loggingJaakko Perttilä2022-03-23
| | | | | | | | | Especially useful when debugging subtitle output, but also shows if values are set or not for demux and encoding. Co-authored-by: Jan Ekström <jan.ekstrom@24i.com> Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
* fftools/cmdutils: drop redundant codeAnton Khirnov2022-03-22
| | | | | | | It allocates a dummy sws/swr context and tries setting options on it, apparently to check if they are valid. This is redundant, since the options will be checked if/when they are later applied on a context that is actually used for conversion.
* fftools: drop the fake "default" option from ffplay/ffprobeAnton Khirnov2022-03-22
| | | | | | It tries to process any unhandled options as AVOptions. Handle this directly in cmdutils.c, without resorting to a confusing fake option definition (which is currently visible to the users in -help output).
* fftools/ffprobe: drop -show_format_entryAnton Khirnov2022-03-22
| | | | Deprecated since 2012.
* fftools/ffplay: drop options deprecated since 2011Anton Khirnov2022-03-22
|
* fftools/ffmpeg: drop mistakenly added empty lineAnton Khirnov2022-03-22
|
* fftools: move opt_timelimit from cmdutils to ffmpegAnton Khirnov2022-03-22
| | | | This option is only supported by ffmpeg.
* fftools/cmdutils: split common option handlers into their own fileAnton Khirnov2022-03-22
|
* fftools: drop useless indirectionAnton Khirnov2022-03-22
|
* fftools/cmdutils: drop extern declarations for nonexistent variablesAnton Khirnov2022-03-22
|
* fftools/cmdutils: drop prototypes for nonexistent functionsAnton Khirnov2022-03-22
|