summaryrefslogtreecommitdiff
path: root/fftools
Commit message (Collapse)AuthorAge
* fftools/ffmpeg_demux, sync_queue: Constify a bitAndreas Rheinhardt2024-03-02
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffmpeg: remove options deprecated before 6.0Anton Khirnov2024-03-01
|
* fftools/ffplay: Fix output color_spaces of filterZhao Zhili2024-03-01
| | | | | | The sdl_supported_color_spaces only meant for SDL builtin renderer. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* fftools/ffmpeg_mux: Fix use of uninitialized variableAndreas Rheinhardt2024-02-25
| | | | | | | Broken in a2fc86378a18b2c2966ce3438df8f27f646438e5. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffprobe: Use int64_t instead of long long intAndreas Rheinhardt2024-02-25
| | | | | | This makes ffprobe match the rest of the codebase. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffprobe: Simplify printing xml valuesAndreas Rheinhardt2024-02-25
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffprobe: Constify printing section headerAndreas Rheinhardt2024-02-25
| | | | | | Allows to avoid casting const away. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffprobe: Don't cast const away needlesslyAndreas Rheinhardt2024-02-25
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffmpeg_sched: remove a triggerable assert in send_to_enc_sq()Anton Khirnov2024-02-24
| | | | | | | It can be triggered when send_to_enc_thread() returns AVERROR(ENOMEM). Propagate the error to the caller instead. Reported-by: Andreas Rheinhardt
* fftools/ffmpeg_sched: simplify failure path in sch_dec_send()Anton Khirnov2024-02-24
|
* fftools/ffmpeg: declare loop indices inside loopsAnton Khirnov2024-02-24
|
* fftools/cmdutils: remove harmful variable shadowingAnton Khirnov2024-02-24
| | | | It causes write_option() to return 0 when calling func_arg() fails.
* fftools/ffmpeg: cosmetics, vertically align structsAnton Khirnov2024-02-21
|
* fftools/ffmpeg: move subtitle helpers to ffmpeg_dec, their only userAnton Khirnov2024-02-21
|
* fftools/ffmpeg_filter: pass framerate through InputFilterOptionsAnton Khirnov2024-02-21
| | | | | | | Rather than read it directly from InputStream. This is a step towards avoiding the assumption that filtergraph inputs are always fed by demuxers.
* fftools/ffmpeg_filter: pass autorotate/reinit flags through InputFilterOptionsAnton Khirnov2024-02-21
| | | | | | | Rather than read them directly from InputStream. This is a step towards avoiding the assumption that filtergraph inputs are always fed by demuxers.
* fftools/ffmpeg_filter: pass sub2video canvas size through InputFilterOptionsAnton Khirnov2024-02-21
| | | | | | | Rather than read them directly from InputStream. This is a step towards avoiding the assumption that filtergraph inputs are always fed by demuxers.
* fftools/ffmpeg_filter: accept a name from its upstream inputAnton Khirnov2024-02-21
| | | | | | | Do not construct the name manually from input file/stream indices. This is a step towards avoiding the assumption that filtergraph inputs are always fed by demuxers.
* fftools/ffmpeg_filter: compute input trim start/end in demuxerAnton Khirnov2024-02-21
| | | | | | The computation is based on demuxer properties, so that is the more appropriate place for it. Filter code just receives the desired start time/duration.
* fftools/ffmpeg_filter: stop taking display matrix from global side dataAnton Khirnov2024-02-21
| | | | | It should never be necessary now that decoders propagate global side data to frames.
* fftools/ffmpeg_mux_init: Fix attachment_filename use-after-freeAndreas Rheinhardt2024-02-18
| | | | | | | | | | | | | | The filename is freed with the OptionsContext and therefore there will be a use-after-free when reporting the filename in print_stream_maps(). So create a copy of the string. This is a regression since 8aed3911fc454e79697e183660bf30d31334a64b. fate-lavf-mkv_attachment exhibits it (and reports a random nonsense filename here), but this does not make the test fail (not even with valgrind; only with ASAN, as it aborts on use-after-free). Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* all: use designated initializers for AVOption.unitAnton Khirnov2024-02-14
| | | | | | | | | | | | | | | | | | | | | | | | Makes it robust against adding fields before it, which will be useful in following commits. Majority of the patch generated by the following Coccinelle script: @@ typedef AVOption; identifier arr_name; initializer list il; initializer list[8] il1; expression tail; @@ AVOption arr_name[] = { il, { il1, - tail + .unit = tail }, ... }; with some manual changes, as the script: * has trouble with options defined inside macros * sometimes does not handle options under an #else branch * sometimes swallows whitespace
* fftools/ffplay: constrain supported YUV color spacesNiklas Haas2024-02-09
| | | | | | | | | | | | SDL supports only these three matrices. Actually, it only supports these three combinations: BT.601+JPEG, BT.601+MPEG, BT.709+MPEG, but we have no way to restrict the specific *combination* of YUV range and YUV colorspace with the current filter design. See-Also: https://trac.ffmpeg.org/ticket/10839 Instead of an incorrect conversion result, trying to play a YCgCo file with ffplay will simply error out with a "No conversion possible" error.
* fftools/ffmpeg_demux: set stream index right before sending packet to schedulerAnton Khirnov2024-02-09
| | | | | This avoids assuming that it survives unchanged through bitstream filters, if present.
* fftools/cmdutils: Don't cast const awayAndreas Rheinhardt2024-02-09
| | | | | Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffmpeg_mux: fix terminating muxer on streamcopy with -tAnton Khirnov2024-02-05
| | | | Reported-by: Andreas Rheinhardt
* avcodec: add ambient viewing environment packet side data.Damiano Galassi2024-02-04
|
* fftools/ffmpeg: use correct unit prefix symbol for binary scaled byte values王昊然2024-02-03
| | | | | | Fix bug #10501 Signed-off-by: WHR <msl0000023508@gmail.com>
* fftools/ffmpeg_filter: simplify buffersrc arg printingNiklas Haas2024-02-02
| | | | There's no need to go through full string expansion here.
* fftools/ffplay: add missing YUV metadata to buffersrcNiklas Haas2024-02-02
| | | | | | | | | This commit lets ffplay properly propagate YUV metadata into the filter graph, avoiding such issues as e.g. accidentally passing YCgCo into a filter that can't support it. Also fixes an error related to this missing metadata from buffersrc (since commit 2d555dc82d) See-Also: https://trac.ffmpeg.org/ticket/10839
* fftools/ffmpeg: cosmetics, vertically align Input{File,Stream}Anton Khirnov2024-01-30
|
* fftools/ffmpeg: make InputStream.decoder_opts private to demuxerAnton Khirnov2024-01-30
| | | | It is no longer used outside of ffmpeg_demux.
* fftools/ffmpeg: make InputStream.decoding_needed private to demuxerAnton Khirnov2024-01-30
| | | | It is no longer used outside of ffmpeg_demux.
* fftools/ffmpeg_dec: eliminate all remaining InputStream usesAnton Khirnov2024-01-30
| | | | | | | | | | | Previously, the demuxer would register decoder with the scheduler, using InputStream as opaque, and pass the scheduling index to the decoder. Now the registration is done by the decoder itself, using DecoderPriv as opaque, and the scheduling index is returned to demuxer from dec_open(). decoder_thread() then no longer needs to be accessed from outside of ffmpeg_dec and can be made static.
* fftools/ffmpeg_dec: stop passing InputStream to dec_open()Anton Khirnov2024-01-30
|
* fftools/ffmpeg_dec: remove unnecessary InputStream argumentsAnton Khirnov2024-01-30
|
* fftools/ffmpeg_dec: pass AVCodecParameters through DecoderOptsAnton Khirnov2024-01-30
| | | | | | Do not retrieve it from InputStream directly. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: pass AVCodec through DecoderOptsAnton Khirnov2024-01-30
| | | | | | Do not retrieve it from InputStream directly. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: eliminate InputStream use in hw_device_setup_for_decode()Anton Khirnov2024-01-30
| | | | | | The same information can also be obtained from the decoder itself. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: pass decoder name through DecoderOptsAnton Khirnov2024-01-30
| | | | | | Do not build it from InputStream values. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: pass top_field_first through DecoderOptsAnton Khirnov2024-01-30
| | | | | | Do not read it from InputStream directly. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: pass input timebase through DecoderOptsAnton Khirnov2024-01-30
| | | | | | Do not read it from AVStream directly. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: move setting compute_edt to demuxerAnton Khirnov2024-01-30
| | | | | | | It is done based on demuxer information, so that is the more appropriate place for this code. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: pass forced/estimated framerate though DecoderOptsAnton Khirnov2024-01-30
| | | | | | Stop reading them from InputStream. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg_dec: move flags to DecoderOptsAnton Khirnov2024-01-30
| | | | Will be useful in the following commit.
* fftools/ffmpeg_dec: pass hwaccel options to the decoder in a separate structAnton Khirnov2024-01-30
| | | | | | Stop reading them from InputStream. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg: move hwaccel_retrieve_data() from ffmpeg_hw to ffmpeg_decAnton Khirnov2024-01-30
| | | | | This function is decoding-only and has no interaction with the rest of ffmpeg_hw. It thus belongs more properly in ffmpeg_dec.
* fftools/ffmpeg_dec: replace InputFile.format_nots with a decoder flagAnton Khirnov2024-01-30
| | | | | | Reduces the need to access InputFile from decoding. This is a step towards decoupling Decoder and InputStream.
* fftools/ffmpeg: refactor disabling decoder threading for attached picturesAnton Khirnov2024-01-30
| | | | | | | * as this decision is based on demuxing information, move it from the decoder to the demuxer * as the issue being addressed is latency added by frame threading, we only need to disable frame threading, not all threading
* fftools/ffmpeg_dec: stop accesing InputStream.fix_sub_durationAnton Khirnov2024-01-30
| | | | | | Pass this information to dec_open() instead. This is a step towards decoupling Decoder and InputStream.