Tags give the ability to mark specific points in history as being important
-
pr-ffstaging-51/softworkz/submit_hls_reload-v1
cc92f869 · ·avformat/hls: Revert "reduce default max reload to 3" From: softworkz <softworkz@hotmail.com> This change has caused regressions for many users and consumers. Playlist reloads only happen when a playlist doesn't indicate that it has ended (via #EXT-X-ENDLIST), which means that the addition of future segments is still expected. It is well possible that an HLS server is temporarily unable to serve further segments but resumes after some time, either indicating a discontinuity or even by fully catching up. With a segment length of 3s, a max_reload value of 1000 corresponds to a duration of 50 minutes which appears to be a reasonable default. Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.51.ffstaging.FFmpeg.1737276758576.ffmpegagent@gmail.com
-
pr-ffstaging-50/tmm1/cbs-misc-a53-v3-v1
8aa6c32d · ·Bitstream filter support for A/53 Closed Captions cc: Aman Karmani aman@tmm1.net cc: Eric Lindvall eric@5stops.com cc: Mark Thompson sw@jkqxz.net cc: David Engel david@istwok.net cc: Scott Theisen scott.the.elm@gmail.com cc: Miguel Borges de Freitas 92enen@gmail.com /cc https://github.com/MythTV/mythtv/issues/364 /cc https://github.com/xbmc/xbmc/pull/22605 /cc https://github.com/xbmc/xbmc/pull/22603 /cc https://github.com/xbmc/xbmc/pull/22333 Aman Karmani (3): avcodec/mpeg2_metadata_bsf: add support for a/53 closed captions avcodec/h264_metadata_bsf: add support for a/53 closed captions avcodec/h265_metadata_bsf: add support for a/53 closed captions Eric Lindvall (1): cbs_sei: add ff_cbs_sei_delete_message helper Mark Thompson (1): cbs: Add some common code for read/write of miscellaneous user data doc/bitstream_filters.texi | 33 ++++ libavcodec/Makefile | 6 +- libavcodec/cbs_misc.c | 217 ++++++++++++++++++++++++++ libavcodec/cbs_misc.h | 109 +++++++++++++ libavcodec/cbs_misc_syntax_template.c | 150 ++++++++++++++++++ libavcodec/cbs_sei.c | 25 +++ libavcodec/cbs_sei.h | 7 + libavcodec/h264_metadata_bsf.c | 144 +++++++++++++++++ libavcodec/h265_metadata_bsf.c | 144 +++++++++++++++++ libavcodec/mpeg2_metadata_bsf.c | 80 ++++++++++ 10 files changed, 912 insertions(+), 3 deletions(-) create mode 100644 libavcodec/cbs_misc.c create mode 100644 libavcodec/cbs_misc.h create mode 100644 libavcodec/cbs_misc_syntax_template.c base-commit: 9a820ec8b1e2323b70a1cebd204bf459bf7daa1a Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.50.ffstaging.FFmpeg.1675471315.ffmpegagent@gmail.com
-
pr-ffstaging-49/tmm1/sysctl-chk-v1
6a0ae129 · ·configure: check for sysctl.h explicitly From: Aman Karmani <aman@tmm1.net> HAVE_SYSCTL is used to guard #include <sys/sysctl.h>, so make sure we only define it when that header is present. In recent glibc, the header was removed: https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.49.ffstaging.FFmpeg.1673910968885.ffmpegagent@gmail.com
-
pr-ffstaging-48/enen92/ass_mkv_fixed_subs-v1
21e0647e · ·libavformat/matroskadec: set fixed duration for subtitles The matroska specification states the start time and duration of subtitle entries are encoded in the block TimeStamp and BlockDuration. Furthermore, for all subtitle formats except S_HDMV/PGS the BlockDuration must always be defined and have an absolute value even if it is simply 0. ffmpeg assumes that a duration of 0 means the duration is still unknown and tries to adjust based on the next packet pts. This is wrong for all formats except S_HDMV/PGS. Since changing the semantics of duration 0 is not an option (touches too many parts of the code) this change introduces AV_PKT_FLAG_FIXED_DURATION flag which decoders might use to flag the duration of a given packet should not be changed. Signed-off-by: Miguel Borges de Freitas enen92@kodi.tv ---------------------------------------------------------------------------- This is my attempt at fixing https://trac.ffmpeg.org/ticket/10135 Initially reported to Kodi in https://github.com/xbmc/xbmc/issues/21625 Miguel Borges de Freitas (2): libavformat/matroskadec: set fixed duration for subtitles fate: update test reference data to include AV_PKT_FLAG_FIXED_DURATION libavcodec/packet.h | 5 ++ libavformat/demux.c | 3 +- libavformat/matroskadec.c | 4 + tests/ref/fate/matroska-dvbsub-remux | 84 ++++++++++---------- tests/ref/fate/matroska-zero-length-block | 4 +- tests/ref/fate/matroska-zlib-decompression | 2 +- tests/ref/fate/shortest-sub | 92 +++++++++++----------- 7 files changed, 102 insertions(+), 92 deletions(-) base-commit: 94aa70d757af6b0e0919250f9def2a819aa00358 Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.48.ffstaging.FFmpeg.1673365328.ffmpegagent@gmail.com
-
pr-ffstaging-47/tmm1/v4l2-dbg-v1
47ab5993 · ·avcodec/v4l2_m2m: log both v4l2 and av pixel formats during negotiation From: Aman Karmani <aman@tmm1.net> Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.47.ffstaging.FFmpeg.1673296206887.ffmpegagent@gmail.com
-
pr-ffstaging-46/tmm1/vaapi-a53cc-v4
367db524 · ·avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI From: Aman Karmani <aman@tmm1.net> Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.46.v4.ffstaging.FFmpeg.1673289624724.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.46.ffstaging.FFmpeg.1672687960493.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.46.v2.ffstaging.FFmpeg.1673025300846.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.46.v3.ffstaging.FFmpeg.1673026884566.ffmpegagent@gmail.com
-
pr-ffstaging-46/tmm1/vaapi-a53cc-v3
149fa8e6 · ·avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI From: Aman Karmani <aman@tmm1.net> Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.46.v3.ffstaging.FFmpeg.1673026884566.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.46.ffstaging.FFmpeg.1672687960493.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.46.v2.ffstaging.FFmpeg.1673025300846.ffmpegagent@gmail.com
-
pr-ffstaging-46/tmm1/vaapi-a53cc-v2
9a2fee07 · ·avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI From: Aman Karmani <aman@tmm1.net> Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.46.v2.ffstaging.FFmpeg.1673025300846.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.46.ffstaging.FFmpeg.1672687960493.ffmpegagent@gmail.com
-
pr-ffstaging-46/tmm1/vaapi-a53cc-v1
a8eb71f0 · ·avcodec/vaapi_encode_h26x: passthrough A53 CC data as H264/HEVC SEI From: Aman Karmani <aman@tmm1.net> Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.46.ffstaging.FFmpeg.1672687960493.ffmpegagent@gmail.com
-
pr-ffstaging-45/tmm1/mpeg2-a53-flush-v1
bbf552a3 · ·avcodec/mpeg12dec: flush a53 data From: Aman Karmani <aman@tmm1.net> Signed-off-by: Aman Karmani <aman@tmm1.net> Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.45.ffstaging.FFmpeg.1672687116474.ffmpegagent@gmail.com
-
pr-ffstaging-44/softworkz/submit_copy_sidedata-v2
0e71469a · ·QSV Overlay Filter: Copy side data from input to output frame This is split out from my earlier patchset "SEI parsing for QSV decoders" (https://github.com/ffstaging/FFmpeg/pull/31) as it is only logically related but not technically. The first patch had been reviewed and partially authored by Anton (I have indicated this with a signed-off line, please advise in case this wouldn't be right) The second patch performs the copying of side data from input to output frames. softworkz v2: * Fix commit message (avcodec > avfilter) * Bump version in version.h * Resolve rebase conflicts softworkz (2): avutil/frame: Add av_frame_copy_side_data() and av_frame_remove_all_side_data() avfilter/vpp_qsv: Copy side-data from input to output frame doc/APIchanges | 4 +++ libavfilter/qsvvpp.c | 6 ++++ libavfilter/vf_overlay_qsv.c | 19 +++++++--- libavutil/frame.c | 67 ++++++++++++++++++++++-------------- libavutil/frame.h | 32 +++++++++++++++++ libavutil/version.h | 2 +- 6 files changed, 99 insertions(+), 31 deletions(-) base-commit: 5661c8715ce4f752e676bda75b332efc669694ed Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.44.v2.ffstaging.FFmpeg.1667475701.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.44.ffstaging.FFmpeg.1666652664.ffmpegagent@gmail.com -
pr-ffstaging-42/softworkz/submit_vaapi_overlay-v2
b3ea03e0 · ·Fixes and Enhancements for VAAPI Overlay This patchset resolves a number of issues in the current code: * Bogus doubles framesync initialization * Executing build_parameters on each input frame * Segfault when there's no secondary input (yet) and adds a number of enhancements to bring this on-par with the other overlay filters: * Enable pixel alpha blending * Expose framesync parameters * Add support for expressions in overlay parameters (x, y, w, h) v2 Changes: * Changed var names to all-caps * Added note about defaults for w/h to filters.texi softworkz (11): avfilter/overlay_vaapi: use FILTER_SINGLE_PIXFMT avfilter/overlay_vaapi: build filter params just once avfilter/overlay_vaapi: remove double framesync init avfilter/overlay_vaapi: handle secondary null input avfilter/overlay_vaapi: reformat options avfilter/overlay_vaapi: remove redundant .get_buffer assignments avfilter/overlay_vaapi: add framesync options avfilter/overlay_vaapi: precalculate blend_state, enable pixel alpha avfilter/overlay_vaapi: enable expressions for overlay parameters doc/filters.texi: remove incorrect statement doc/filters.texi: update overlay_vaapi documentation doc/filters.texi | 52 ++++-- libavfilter/vf_overlay_vaapi.c | 328 ++++++++++++++++++++++----------- 2 files changed, 259 insertions(+), 121 deletions(-) base-commit: f3b5277057ad84071721f01419fe4badeceaff08 Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.42.v2.ffstaging.FFmpeg.1667197207.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.42.ffstaging.FFmpeg.1665399281.ffmpegagent@gmail.com
-
pr-ffstaging-18/softworkz/submit_subfiltering-v9
bb117989 · ·Subtitle Filtering 2022 Subtitle Filtering 2022 ======================= This is a substantial update to the earlier subtitle filtering patch series. A primary goal has been to address others' concerns as much as possible on one side and to provide more clarity and control over the way things are working. Clarity is is specifically important to allow for a better understanding of the need for a subtitle start pts value that can be different from the frame's pts value. This is done by refactoring the subtitle timing fields in AVFrame, adding a frame field to indicate repeated subtitle frames, and finally the full removal of the heartbeat functionality, replaced by a new 'subfeed' filter that provides different modes for arbitrating subtitle frames in a filter graph. Finally, each subtitle filter's documentation has been amended by a section describing the filter's timeline behavior (in v3 update). Subtitle Filtering Demos ======================== I published a demonstration of subtitle filtering capabilities with OCR, text and bitmap subtitle manipulation involved: Demo 1: Text-Manipulation with Bitmap Subtitles [https://github.com/softworkz/SubtitleFilteringDemos/tree/master/Demo1] v9 == * Cleared the cc recipient list * Resending after e-mail error v8 == * Rebased and adapted to upstream changes v7 == * Revert loglevel change * snull: propagate format * fftools/ffmpeg: ensure monotonic (frame-)pts values for subtitles v6 - Fix assertion errors ========================= * text2graphicsub: fix null point on uninit after error * strim: propagate width and height * avfilter: add default propagation time_base from inlink to outlink v5 - Conversion to Graphic Subtitles, and other enhancements ============================================================ * I'm glad to announce that Traian (@tcoza) has joined the project and contributed a new 'text2graphicsub' filter to convert text subtitles to graphic subtitles, which can in turn be encoded as dvd, dvb or x-subs (and any other encoder for graphic subs that might be added in the future). This filter closes the last open "gap" in subtitle processing. * stripstyles filter: now allows very fine-grained control over which ASS style codes should be preserved or stripped * stripstyles: do not drop dialog margin values * subfeed filter: eliminates duplicate frames with duplicate start times when 'fix_overlap' is specified * textmod: do not drop effect values * graphicsub2text: reduce font size jitter * ass_split: add function to selectively preserve elements when splitting * add strim, snull and ssink and further unify subtitle frame handling with audio and video * ffmpeg_filter: get simple filter notation working for subtitles v4 - Quality Improvements ========================= * finally an updated version * includes many improvements from internal testing * all FATE tests passed * all example commands from the docs verified to work * can't list all the detail changes.. * I have left out the extra commits which can be handled separately, just in case somebody wonders why these are missing: * avcodec/webvttenc: Don't encode drawing codes and empty lines * avcodec/webvttenc: convert hard-space tags to * avutil/ass_split: Add parsing of hard-space tags (\h) * avutil/ass_split: Treat all content in curly braces as hidden * avutil/ass_split: Fix ass parsing of style codes with comments v3 - Rebase =========== due to merge conflicts - apologies. Changes in v2 ============= * added .gitattributes file to enforce binary diffs for the test refs that cannot be applied when being sent via e-mail * perform filter graph re-init due to subtitle "frame size" change only when the size was unknown before and not set via -canvas_size * overlaytextsubs: Make sure to request frames on the subtitle input * avfilter/splitcc: Start parsing cc data on key frames only * avcodec/webvttenc: Don't encode ass drawing codes and empty lines * stripstyles: fix mem leak * gs2t: improve color detection * gs2t: empty frames must not be skipped * subfeed: fix name * textmod: preserve margins * added .gitattributes file to enforce binary diffs for the test refs that cannot be applied when being sent via e-mail * perform filter graph re-init due to subtitle "frame size" change only when the size was unknown before and not set via -canvas_size * avcodec/dvbsubdec: Fix conditions for fallback to default resolution * Made changes suggested by Andreas * Fixed failing command line reported by Michael Changes from previous version v24: AVFrame ======= * Removed sub_start_time The start time is now added to the subtitle start_pts during decoding The sub_end_time field is adjusted accordingly * Renamed sub_end_time to duration which it is effectively after removing the start_time * Added a sub-struct 'subtitle_timing' to av frame Contains subtitle_pts renamed to 'subtitle_timing.start_pts' and 'subtitle_timing.duration' * Change both fields to (fixed) time_base AV_TIMEBASE * add repeat_sub field provides a clear indication whether a subtitle frame is an actual subtitle event or a repeated subtitle frame in a filter graph Heartbeat Removal ================= * completely removed the earlier heartbeat implementation * filtering arbitration is now implemented in a new filter: 'subfeed' * subfeed will be auto-inserted for compatiblity with sub2video command lines * the new behavior is not exactly identical to the earlier behavior, but it basically allows to achieve the same results * there's a small remainder, now named subtitle kickoff which serves to get things (in the filter graph) going right from the start New 'subfeed' Filter ==================== * a versatile filter for solving all kinds of problems with subtile frame flow in filter graphs * Can be inserted at any position in a graph * Auto-inserted for sub2video command lines (in repeat-mode) * Allows duration fixup delay input frames with unknown duration and infer duration from start of subsequent frame * Provides multiple modes of operation: * repeat mode (default) Queues input frames Outputs frames at a fixed (configurable) rate Either sends a matching input frame (repeatedly) or empty frames otherwise * scatter mode similar to repeat mode, but splits input frames by duration into small segments with same content * forward mode No fixed output rate Useful in combination with duration fixup or overlap fixup ffmpeg Tool Changes =================== * delay subtitle output stream initialization (like for audio and video) This is needed for example when a format header depends on having received an initial frame to derive certain header values from * decoding: set subtitle frame size from decoding context * re-init graph when subtitle size changes * always insert subscale filter for sub2video command lines (to ensure correct scaling) Subtitle Encoding ================= * ignore repeated frames for encoding based on repeat_sub field in AVFrame * support multi-area encoding for text subtitles Subtitle OCR can create multiple areas at different positions. Previously, the texts were always squashed into a single area ('subtitle rect'), which was not ideal. Multiple text areas are now generally supported: * ASS Encoder Changed to use the 'receive_packet' encoding API A single frame with multiple text areas will create multiple packets now * All other text subtitle encoders A newline is inserted between the text from multiple areas graphicsub2text (OCR) ===================== * enhanced preprocessing * using elbg algorithm for color quantization * detection and removal of text outlines * map-based identification of colors per word (text, outline, background) * add option for duration fixup * add option to dump preprocessing bitmaps * Recognize formatting and apply as ASS inline styles * per word(!) * paragraph alignment * positioning * font names * font size * font style (italic, underline, bold) * text color, outline color Other Filter Changes ==================== * all: Make sure to forward all link properties (time base, frame rate, w, h) where appropriate * overlaytextsubs: request frames on the subtitle input * overlaytextsubs: disable read-order checking * overlaytextsubs: improve implementation of render_latest_only * overlaytextsubs: ensure equal in/out video formats * splitcc: derive framerate from realtime_latency * graphicsub2video: implement caching of converted frames * graphicsub2video: use 1x1 output frame size as long as subtitle size is unknown (0x0) Plus a dozen of things I forgot.. softworkz (25): avcodec,avutil: Move enum AVSubtitleType to avutil, add new and deprecate old values avutil/frame: Prepare AVFrame for subtitle handling avcodec/subtitles: Introduce new frame-based subtitle decoding API avcodec/libzvbi: set subtitle type avfilter/subtitles: Update vf_subtitles to use new decoding api avcodec,avutil: Move ass helper functions to avutil as avpriv_ and extend ass dialog parsing avcodec/subtitles: Replace deprecated enum values fftools/play,probe: Adjust for subtitle changes avfilter/subtitles: Add subtitles.c for subtitle frame allocation avfilter/avfilter: Handle subtitle frames avfilter/avfilter: Fix hardcoded input index avfilter/sbuffer: Add sbuffersrc and sbuffersink filters avfilter/overlaygraphicsubs: Add overlaygraphicsubs and graphicsub2video filters avfilter/overlaytextsubs: Add overlaytextsubs and textsubs2video filters avfilter/textmod: Add textmod, censor and show_speaker filters avfilter/stripstyles: Add stripstyles filter avfilter/splitcc: Add splitcc filter for closed caption handling avfilter/graphicsub2text: Add new graphicsub2text filter (OCR) avfilter/subscale: Add filter for scaling and/or re-arranging graphical subtitles avfilter/subfeed: add subtitle feed filter avfilter/text2graphicsub: Added text2graphicsub subtitle filter avfilter/snull,strim: Add snull and strim filters avcodec/subtitles: Migrate subtitle encoders to frame-based API fftools/ffmpeg: Introduce subtitle filtering and new frame-based subtitle encoding avcodec/dvbsubdec: Fix conditions for fallback to default resolution configure | 10 +- doc/filters.texi | 807 ++++++++++++++ fftools/ffmpeg.c | 604 +++++----- fftools/ffmpeg.h | 17 +- fftools/ffmpeg_filter.c | 268 ++++- fftools/ffmpeg_hw.c | 2 +- fftools/ffmpeg_mux_init.c | 28 +- fftools/ffmpeg_opt.c | 1 + fftools/ffplay.c | 102 +- fftools/ffprobe.c | 47 +- libavcodec/Makefile | 56 +- libavcodec/ass.h | 151 +-- libavcodec/ass_split.h | 191 ---- libavcodec/assdec.c | 4 +- libavcodec/assenc.c | 191 +++- libavcodec/avcodec.c | 8 + libavcodec/avcodec.h | 34 +- libavcodec/ccaption_dec.c | 20 +- libavcodec/codec_internal.h | 12 - libavcodec/decode.c | 60 +- libavcodec/dvbsubdec.c | 53 +- libavcodec/dvbsubenc.c | 96 +- libavcodec/dvdsubdec.c | 2 +- libavcodec/dvdsubenc.c | 103 +- libavcodec/encode.c | 61 +- libavcodec/internal.h | 18 + libavcodec/jacosubdec.c | 2 +- libavcodec/libaribb24.c | 2 +- libavcodec/libzvbi-teletextdec.c | 17 +- libavcodec/microdvddec.c | 7 +- libavcodec/movtextdec.c | 3 +- libavcodec/movtextenc.c | 126 ++- libavcodec/mpl2dec.c | 2 +- libavcodec/pgssubdec.c | 2 +- libavcodec/realtextdec.c | 2 +- libavcodec/samidec.c | 2 +- libavcodec/srtdec.c | 2 +- libavcodec/srtenc.c | 116 +- libavcodec/subviewerdec.c | 2 +- libavcodec/tests/avcodec.c | 5 +- libavcodec/textdec.c | 4 +- libavcodec/ttmlenc.c | 114 +- libavcodec/utils.c | 185 ++- libavcodec/webvttdec.c | 2 +- libavcodec/webvttenc.c | 94 +- libavcodec/xsubdec.c | 2 +- libavcodec/xsubenc.c | 88 +- libavfilter/Makefile | 18 + libavfilter/allfilters.c | 19 + libavfilter/avfilter.c | 42 +- libavfilter/avfilter.h | 11 + libavfilter/avfiltergraph.c | 5 + libavfilter/buffersink.c | 54 + libavfilter/buffersink.h | 7 + libavfilter/buffersrc.c | 72 ++ libavfilter/buffersrc.h | 1 + libavfilter/formats.c | 16 + libavfilter/formats.h | 3 + libavfilter/internal.h | 19 +- libavfilter/sf_graphicsub2text.c | 1137 +++++++++++++++++++ libavfilter/sf_snull.c | 61 + libavfilter/sf_splitcc.c | 395 +++++++ libavfilter/sf_stripstyles.c | 237 ++++ libavfilter/sf_subfeed.c | 412 +++++++ libavfilter/sf_subscale.c | 884 +++++++++++++++ libavfilter/sf_text2graphicsub.c | 634 +++++++++++ libavfilter/sf_textmod.c | 710 ++++++++++++ libavfilter/subtitles.c | 63 ++ libavfilter/subtitles.h | 44 + libavfilter/trim.c | 60 +- libavfilter/vf_overlaygraphicsubs.c | 765 +++++++++++++ libavfilter/vf_overlaytextsubs.c | 680 +++++++++++ libavfilter/vf_subtitles.c | 67 +- libavutil/Makefile | 4 + {libavcodec => libavutil}/ass.c | 115 +- libavutil/ass_internal.h | 135 +++ {libavcodec => libavutil}/ass_split.c | 179 ++- libavutil/ass_split_internal.h | 254 +++++ libavutil/frame.c | 206 +++- libavutil/frame.h | 85 +- libavutil/subfmt.c | 45 + libavutil/subfmt.h | 115 ++ libavutil/version.h | 5 +- tests/ref/fate/filter-overlay-dvdsub-2397 | 181 ++- tests/ref/fate/sub-dvb | 162 +-- tests/ref/fate/sub-scc | 1 - tests/ref/fate/sub2video | 1092 +++++++++++++++++- tests/ref/fate/sub2video_basic | 1238 +++++++++++++++++++-- tests/ref/fate/sub2video_time_limited | 78 +- 89 files changed, 12454 insertions(+), 1582 deletions(-) delete mode 100644 libavcodec/ass_split.h create mode 100644 libavfilter/sf_graphicsub2text.c create mode 100644 libavfilter/sf_snull.c create mode 100644 libavfilter/sf_splitcc.c create mode 100644 libavfilter/sf_stripstyles.c create mode 100644 libavfilter/sf_subfeed.c create mode 100644 libavfilter/sf_subscale.c create mode 100644 libavfilter/sf_text2graphicsub.c create mode 100644 libavfilter/sf_textmod.c create mode 100644 libavfilter/subtitles.c create mode 100644 libavfilter/subtitles.h create mode 100644 libavfilter/vf_overlaygraphicsubs.c create mode 100644 libavfilter/vf_overlaytextsubs.c rename {libavcodec => libavutil}/ass.c (59%) create mode 100644 libavutil/ass_internal.h rename {libavcodec => libavutil}/ass_split.c (71%) create mode 100644 libavutil/ass_split_internal.h create mode 100644 libavutil/subfmt.c create mode 100644 libavutil/subfmt.h base-commit: 882a17068fd8e62c7d38c14e6fb160d7c9fc446a Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.18.v9.ffstaging.FFmpeg.1666689226.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.ffstaging.FFmpeg.1642122813.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v2.ffstaging.FFmpeg.1642646916.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v3.ffstaging.FFmpeg.1642649134.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v4.ffstaging.FFmpeg.1653744323.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v5.ffstaging.FFmpeg.1656151077.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v6.ffstaging.FFmpeg.1656261322.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v7.ffstaging.FFmpeg.1664735360.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v8.ffstaging.FFmpeg.1666591816.ffmpegagent@gmail.com -
pr-ffstaging-31/softworkz/submit_qsv_sei-v6
61626ebb · ·Implement SEI parsing for QSV decoders Missing SEI information has always been a major drawback when using the QSV decoders. It turned out that there's a hardly known api method that provides access to all SEI (h264/hevc) or user data (mpeg2video). This allows to get things like closed captions, frame packing, display orientation, HDR data (mastering display, content light level, etc.) without having to rely on those data being provided by the MSDK as extended buffers. The commit "Implement SEI parsing for QSV decoders" includes some hard-coded workarounds for MSDK bugs which I reported: https://github.com/Intel-Media-SDK/MediaSDK/issues/2597#issuecomment-1072795311 If someone is interested in the details please contact me directly. v5 * Split out the first two commits as a separate patchset https://github.com/ffstaging/FFmpeg/pull/44 * For mpeg12, parse A53 data in qsvdec directly * For h264 and hevc, factor out ff_hxxx_set_sei_to_frame functions to avoid being dependent on the full decoder contexts * Ensure sufficient padding for get_bits API * Addresses all points (1, 2, 3, 4) made by Andreas https://patchwork.ffmpeg.org/project/ffmpeg/cover/pull.31.v5.ffstaging.FFmpeg.1656708534.ffmpegagent@gmail.com/ v4 * add new dependencies in makefile Now, build still works when someone uses configure --disable-decoder=h264 --disable-decoder=hevc --disable-decoder=mpegvideo --disable-decoder=mpeg1video --disable-decoder=mpeg2video --enable-libmfx v3 * frame.h: clarify doc text for av_frame_copy_side_data() v2 * qsvdec: make error handling consistent and clear * qsvdec: remove AV_CODEC_ID_MPEG1VIDEO constants * hevcdec: rename function to ff_hevc_set_side_data(), add doc text v3 * qsvdec: fix c/p error softworkz (3): avcodec/hevcdec: factor out ff_hevc_set_set_to_frame avcodec/h264dec: make h264_export_frame_props() accessible avcodec/qsvdec: Implement SEI parsing for QSV decoders libavcodec/Makefile | 2 +- libavcodec/h264_sei.c | 197 ++++++++++++++++++++++++ libavcodec/h264_sei.h | 2 + libavcodec/h264_slice.c | 190 +----------------------- libavcodec/hevc_sei.c | 252 +++++++++++++++++++++++++++++++ libavcodec/hevc_sei.h | 3 + libavcodec/hevcdec.c | 249 +------------------------------ libavcodec/qsvdec.c | 321 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 782 insertions(+), 434 deletions(-) base-commit: 882a17068fd8e62c7d38c14e6fb160d7c9fc446a Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.31.v6.ffstaging.FFmpeg.1666670616.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.31.ffstaging.FFmpeg.1653552529.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.31.v2.ffstaging.FFmpeg.1654074366.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.31.v3.ffstaging.FFmpeg.1654106506.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.31.v4.ffstaging.FFmpeg.1656286888.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.31.v5.ffstaging.FFmpeg.1656708534.ffmpegagent@gmail.com
-
pr-ffstaging-44/softworkz/submit_copy_sidedata-v1
43eb3257 · ·QSV Overlay Filter: Copy side data from input to output frame This is split out from my earlier patchset "SEI parsing for QSV decoders" (https://github.com/ffstaging/FFmpeg/pull/31) as it is only logically related but not technically. The first patch had been reviewed and partially authored by Anton (I have indicated this with a signed-off line, please advise in case this wouldn't be right) The second patch performs the copying of side data from input to output frames. softworkz softworkz (2): avutil/frame: Add av_frame_copy_side_data() and av_frame_remove_all_side_data() avcodec/vpp_qsv: Copy side data from input to output frame doc/APIchanges | 4 +++ libavfilter/qsvvpp.c | 6 ++++ libavfilter/vf_overlay_qsv.c | 19 +++++++--- libavutil/frame.c | 67 ++++++++++++++++++++++-------------- libavutil/frame.h | 32 +++++++++++++++++ libavutil/version.h | 4 +-- 6 files changed, 100 insertions(+), 32 deletions(-) base-commit: 882a17068fd8e62c7d38c14e6fb160d7c9fc446a Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.44.ffstaging.FFmpeg.1666652664.ffmpegagent@gmail.com -
pr-ffstaging-18/softworkz/submit_subfiltering-v8
c5487d7e · ·Subtitle Filtering 2022 Subtitle Filtering 2022 ======================= This is a substantial update to the earlier subtitle filtering patch series. A primary goal has been to address others' concerns as much as possible on one side and to provide more clarity and control over the way things are working. Clarity is is specifically important to allow for a better understanding of the need for a subtitle start pts value that can be different from the frame's pts value. This is done by refactoring the subtitle timing fields in AVFrame, adding a frame field to indicate repeated subtitle frames, and finally the full removal of the heartbeat functionality, replaced by a new 'subfeed' filter that provides different modes for arbitrating subtitle frames in a filter graph. Finally, each subtitle filter's documentation has been amended by a section describing the filter's timeline behavior (in v3 update). Subtitle Filtering Demos ======================== I published a demonstration of subtitle filtering capabilities with OCR, text and bitmap subtitle manipulation involved: Demo 1: Text-Manipulation with Bitmap Subtitles [https://github.com/softworkz/SubtitleFilteringDemos/tree/master/Demo1] v8 == * Rebased and adapted to upstream changes v7 == * Revert loglevel change * snull: propagate format * fftools/ffmpeg: ensure monotonic (frame-)pts values for subtitles v6 - Fix assertion errors ========================= * text2graphicsub: fix null point on uninit after error * strim: propagate width and height * avfilter: add default propagation time_base from inlink to outlink v5 - Conversion to Graphic Subtitles, and other enhancements ============================================================ * I'm glad to announce that Traian (@tcoza) has joined the project and contributed a new 'text2graphicsub' filter to convert text subtitles to graphic subtitles, which can in turn be encoded as dvd, dvb or x-subs (and any other encoder for graphic subs that might be added in the future). This filter closes the last open "gap" in subtitle processing. * stripstyles filter: now allows very fine-grained control over which ASS style codes should be preserved or stripped * stripstyles: do not drop dialog margin values * subfeed filter: eliminates duplicate frames with duplicate start times when 'fix_overlap' is specified * textmod: do not drop effect values * graphicsub2text: reduce font size jitter * ass_split: add function to selectively preserve elements when splitting * add strim, snull and ssink and further unify subtitle frame handling with audio and video * ffmpeg_filter: get simple filter notation working for subtitles v4 - Quality Improvements ========================= * finally an updated version * includes many improvements from internal testing * all FATE tests passed * all example commands from the docs verified to work * can't list all the detail changes.. * I have left out the extra commits which can be handled separately, just in case somebody wonders why these are missing: * avcodec/webvttenc: Don't encode drawing codes and empty lines * avcodec/webvttenc: convert hard-space tags to * avutil/ass_split: Add parsing of hard-space tags (\h) * avutil/ass_split: Treat all content in curly braces as hidden * avutil/ass_split: Fix ass parsing of style codes with comments v3 - Rebase =========== due to merge conflicts - apologies. Changes in v2 ============= * added .gitattributes file to enforce binary diffs for the test refs that cannot be applied when being sent via e-mail * perform filter graph re-init due to subtitle "frame size" change only when the size was unknown before and not set via -canvas_size * overlaytextsubs: Make sure to request frames on the subtitle input * avfilter/splitcc: Start parsing cc data on key frames only * avcodec/webvttenc: Don't encode ass drawing codes and empty lines * stripstyles: fix mem leak * gs2t: improve color detection * gs2t: empty frames must not be skipped * subfeed: fix name * textmod: preserve margins * added .gitattributes file to enforce binary diffs for the test refs that cannot be applied when being sent via e-mail * perform filter graph re-init due to subtitle "frame size" change only when the size was unknown before and not set via -canvas_size * avcodec/dvbsubdec: Fix conditions for fallback to default resolution * Made changes suggested by Andreas * Fixed failing command line reported by Michael Changes from previous version v24: AVFrame ======= * Removed sub_start_time The start time is now added to the subtitle start_pts during decoding The sub_end_time field is adjusted accordingly * Renamed sub_end_time to duration which it is effectively after removing the start_time * Added a sub-struct 'subtitle_timing' to av frame Contains subtitle_pts renamed to 'subtitle_timing.start_pts' and 'subtitle_timing.duration' * Change both fields to (fixed) time_base AV_TIMEBASE * add repeat_sub field provides a clear indication whether a subtitle frame is an actual subtitle event or a repeated subtitle frame in a filter graph Heartbeat Removal ================= * completely removed the earlier heartbeat implementation * filtering arbitration is now implemented in a new filter: 'subfeed' * subfeed will be auto-inserted for compatiblity with sub2video command lines * the new behavior is not exactly identical to the earlier behavior, but it basically allows to achieve the same results * there's a small remainder, now named subtitle kickoff which serves to get things (in the filter graph) going right from the start New 'subfeed' Filter ==================== * a versatile filter for solving all kinds of problems with subtile frame flow in filter graphs * Can be inserted at any position in a graph * Auto-inserted for sub2video command lines (in repeat-mode) * Allows duration fixup delay input frames with unknown duration and infer duration from start of subsequent frame * Provides multiple modes of operation: * repeat mode (default) Queues input frames Outputs frames at a fixed (configurable) rate Either sends a matching input frame (repeatedly) or empty frames otherwise * scatter mode similar to repeat mode, but splits input frames by duration into small segments with same content * forward mode No fixed output rate Useful in combination with duration fixup or overlap fixup ffmpeg Tool Changes =================== * delay subtitle output stream initialization (like for audio and video) This is needed for example when a format header depends on having received an initial frame to derive certain header values from * decoding: set subtitle frame size from decoding context * re-init graph when subtitle size changes * always insert subscale filter for sub2video command lines (to ensure correct scaling) Subtitle Encoding ================= * ignore repeated frames for encoding based on repeat_sub field in AVFrame * support multi-area encoding for text subtitles Subtitle OCR can create multiple areas at different positions. Previously, the texts were always squashed into a single area ('subtitle rect'), which was not ideal. Multiple text areas are now generally supported: * ASS Encoder Changed to use the 'receive_packet' encoding API A single frame with multiple text areas will create multiple packets now * All other text subtitle encoders A newline is inserted between the text from multiple areas graphicsub2text (OCR) ===================== * enhanced preprocessing * using elbg algorithm for color quantization * detection and removal of text outlines * map-based identification of colors per word (text, outline, background) * add option for duration fixup * add option to dump preprocessing bitmaps * Recognize formatting and apply as ASS inline styles * per word(!) * paragraph alignment * positioning * font names * font size * font style (italic, underline, bold) * text color, outline color Other Filter Changes ==================== * all: Make sure to forward all link properties (time base, frame rate, w, h) where appropriate * overlaytextsubs: request frames on the subtitle input * overlaytextsubs: disable read-order checking * overlaytextsubs: improve implementation of render_latest_only * overlaytextsubs: ensure equal in/out video formats * splitcc: derive framerate from realtime_latency * graphicsub2video: implement caching of converted frames * graphicsub2video: use 1x1 output frame size as long as subtitle size is unknown (0x0) Plus a dozen of things I forgot.. softworkz (25): avcodec,avutil: Move enum AVSubtitleType to avutil, add new and deprecate old values avutil/frame: Prepare AVFrame for subtitle handling avcodec/subtitles: Introduce new frame-based subtitle decoding API avcodec/libzvbi: set subtitle type avfilter/subtitles: Update vf_subtitles to use new decoding api avcodec,avutil: Move ass helper functions to avutil as avpriv_ and extend ass dialog parsing avcodec/subtitles: Replace deprecated enum values fftools/play,probe: Adjust for subtitle changes avfilter/subtitles: Add subtitles.c for subtitle frame allocation avfilter/avfilter: Handle subtitle frames avfilter/avfilter: Fix hardcoded input index avfilter/sbuffer: Add sbuffersrc and sbuffersink filters avfilter/overlaygraphicsubs: Add overlaygraphicsubs and graphicsub2video filters avfilter/overlaytextsubs: Add overlaytextsubs and textsubs2video filters avfilter/textmod: Add textmod, censor and show_speaker filters avfilter/stripstyles: Add stripstyles filter avfilter/splitcc: Add splitcc filter for closed caption handling avfilter/graphicsub2text: Add new graphicsub2text filter (OCR) avfilter/subscale: Add filter for scaling and/or re-arranging graphical subtitles avfilter/subfeed: add subtitle feed filter avfilter/text2graphicsub: Added text2graphicsub subtitle filter avfilter/snull,strim: Add snull and strim filters avcodec/subtitles: Migrate subtitle encoders to frame-based API fftools/ffmpeg: Introduce subtitle filtering and new frame-based subtitle encoding avcodec/dvbsubdec: Fix conditions for fallback to default resolution configure | 10 +- doc/filters.texi | 807 ++++++++++++++ fftools/ffmpeg.c | 604 +++++----- fftools/ffmpeg.h | 17 +- fftools/ffmpeg_filter.c | 268 ++++- fftools/ffmpeg_hw.c | 2 +- fftools/ffmpeg_mux_init.c | 28 +- fftools/ffmpeg_opt.c | 1 + fftools/ffplay.c | 102 +- fftools/ffprobe.c | 47 +- libavcodec/Makefile | 56 +- libavcodec/ass.h | 151 +-- libavcodec/ass_split.h | 191 ---- libavcodec/assdec.c | 4 +- libavcodec/assenc.c | 191 +++- libavcodec/avcodec.c | 8 + libavcodec/avcodec.h | 34 +- libavcodec/ccaption_dec.c | 20 +- libavcodec/codec_internal.h | 12 - libavcodec/decode.c | 60 +- libavcodec/dvbsubdec.c | 53 +- libavcodec/dvbsubenc.c | 96 +- libavcodec/dvdsubdec.c | 2 +- libavcodec/dvdsubenc.c | 103 +- libavcodec/encode.c | 61 +- libavcodec/internal.h | 18 + libavcodec/jacosubdec.c | 2 +- libavcodec/libaribb24.c | 2 +- libavcodec/libzvbi-teletextdec.c | 17 +- libavcodec/microdvddec.c | 7 +- libavcodec/movtextdec.c | 3 +- libavcodec/movtextenc.c | 126 ++- libavcodec/mpl2dec.c | 2 +- libavcodec/pgssubdec.c | 2 +- libavcodec/realtextdec.c | 2 +- libavcodec/samidec.c | 2 +- libavcodec/srtdec.c | 2 +- libavcodec/srtenc.c | 116 +- libavcodec/subviewerdec.c | 2 +- libavcodec/tests/avcodec.c | 5 +- libavcodec/textdec.c | 4 +- libavcodec/ttmlenc.c | 114 +- libavcodec/utils.c | 185 ++- libavcodec/webvttdec.c | 2 +- libavcodec/webvttenc.c | 94 +- libavcodec/xsubdec.c | 2 +- libavcodec/xsubenc.c | 88 +- libavfilter/Makefile | 18 + libavfilter/allfilters.c | 19 + libavfilter/avfilter.c | 42 +- libavfilter/avfilter.h | 11 + libavfilter/avfiltergraph.c | 5 + libavfilter/buffersink.c | 54 + libavfilter/buffersink.h | 7 + libavfilter/buffersrc.c | 72 ++ libavfilter/buffersrc.h | 1 + libavfilter/formats.c | 16 + libavfilter/formats.h | 3 + libavfilter/internal.h | 19 +- libavfilter/sf_graphicsub2text.c | 1137 +++++++++++++++++++ libavfilter/sf_snull.c | 61 + libavfilter/sf_splitcc.c | 395 +++++++ libavfilter/sf_stripstyles.c | 237 ++++ libavfilter/sf_subfeed.c | 412 +++++++ libavfilter/sf_subscale.c | 884 +++++++++++++++ libavfilter/sf_text2graphicsub.c | 634 +++++++++++ libavfilter/sf_textmod.c | 710 ++++++++++++ libavfilter/subtitles.c | 63 ++ libavfilter/subtitles.h | 44 + libavfilter/trim.c | 60 +- libavfilter/vf_overlaygraphicsubs.c | 765 +++++++++++++ libavfilter/vf_overlaytextsubs.c | 680 +++++++++++ libavfilter/vf_subtitles.c | 67 +- libavutil/Makefile | 4 + {libavcodec => libavutil}/ass.c | 115 +- libavutil/ass_internal.h | 135 +++ {libavcodec => libavutil}/ass_split.c | 179 ++- libavutil/ass_split_internal.h | 254 +++++ libavutil/frame.c | 206 +++- libavutil/frame.h | 85 +- libavutil/subfmt.c | 45 + libavutil/subfmt.h | 115 ++ libavutil/version.h | 5 +- tests/ref/fate/filter-overlay-dvdsub-2397 | 181 ++- tests/ref/fate/sub-dvb | 162 +-- tests/ref/fate/sub-scc | 1 - tests/ref/fate/sub2video | 1092 +++++++++++++++++- tests/ref/fate/sub2video_basic | 1238 +++++++++++++++++++-- tests/ref/fate/sub2video_time_limited | 78 +- 89 files changed, 12454 insertions(+), 1582 deletions(-) delete mode 100644 libavcodec/ass_split.h create mode 100644 libavfilter/sf_graphicsub2text.c create mode 100644 libavfilter/sf_snull.c create mode 100644 libavfilter/sf_splitcc.c create mode 100644 libavfilter/sf_stripstyles.c create mode 100644 libavfilter/sf_subfeed.c create mode 100644 libavfilter/sf_subscale.c create mode 100644 libavfilter/sf_text2graphicsub.c create mode 100644 libavfilter/sf_textmod.c create mode 100644 libavfilter/subtitles.c create mode 100644 libavfilter/subtitles.h create mode 100644 libavfilter/vf_overlaygraphicsubs.c create mode 100644 libavfilter/vf_overlaytextsubs.c rename {libavcodec => libavutil}/ass.c (59%) create mode 100644 libavutil/ass_internal.h rename {libavcodec => libavutil}/ass_split.c (71%) create mode 100644 libavutil/ass_split_internal.h create mode 100644 libavutil/subfmt.c create mode 100644 libavutil/subfmt.h base-commit: 882a17068fd8e62c7d38c14e6fb160d7c9fc446a Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.18.v8.ffstaging.FFmpeg.1666591816.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.ffstaging.FFmpeg.1642122813.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v2.ffstaging.FFmpeg.1642646916.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v3.ffstaging.FFmpeg.1642649134.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v4.ffstaging.FFmpeg.1653744323.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v5.ffstaging.FFmpeg.1656151077.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v6.ffstaging.FFmpeg.1656261322.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.18.v7.ffstaging.FFmpeg.1664735360.ffmpegagent@gmail.com -
pr-ffstaging-43/softworkz/submit_print_formats-v2
29389422 · ·Print filter input/output formats in help output Example output for command: ffmpeg -h filters=overlay Filter overlay Overlay a video source on top of the input. slice threading supported Inputs: #0: main (video), Formats: Dynamic, Default: [yuv420p, yuvj420p, yuva420p, nv12, nv21] #1: overlay (video), Formats: Dynamic, Default: [yuva420p] Outputs: #0: default (video), Formats: Dynamic, Default: [yuv420p, yuvj420p, yuva420p, nv12, nv21] overlay AVOptions: [...] Examples for what it prints in various cases ============================================ For pass-through filter links "All (passthrough)" For filters using query_formats "Dynamic" For filters using query_formats where a call to query_formats succeeds "Dynamic, Default: [yuv420p, yuvj420p, yuva420p, nv12, nv21]" For all other cases "[s16p, s32p, fltp, dblp]" Except when all formats are supported (number of formats equals number of available formats) "All" ---------------------------------------------------------------------------- v2: rebase and fix compiler warnings softworkz (2): avfilter/avfilter: add avfilter_print_config_formats() ftools/opt_common: Print filter input/output formats in help output doc/APIchanges | 3 ++ fftools/opt_common.c | 37 +++++++++---- libavfilter/avfilter.c | 102 +++++++++++++++++++++++++++++++++++- libavfilter/avfilter.h | 12 +++++ libavfilter/avfiltergraph.c | 15 ++++-- libavfilter/internal.h | 9 ++++ libavfilter/version.h | 4 +- 7 files changed, 163 insertions(+), 19 deletions(-) base-commit: 479747645f795b6f4f376578ea1556409f943c31 Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.43.v2.ffstaging.FFmpeg.1665524301.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.43.ffstaging.FFmpeg.1665494271.ffmpegagent@gmail.com -
pr-ffstaging-43/softworkz/submit_print_formats-v1
c99d2788 · ·Print filter input/output formats in help output Example out put for command: ffmpeg -h filters=overlay Filter overlay Overlay a video source on top of the input. slice threading supported Inputs: #0: main (video), Formats: Dynamic, Default: [yuv420p, yuvj420p, yuva420p, nv12, nv21] #1: overlay (video), Formats: Dynamic, Default: [yuva420p] Outputs: #0: default (video), Formats: Dynamic, Default: [yuv420p, yuvj420p, yuva420p, nv12, nv21] overlay AVOptions: [...] Examples for what it prints in various cases ============================================ For pass-through filter links ============================= "All (passthrough)" For filters using query_formats =============================== "Dynamic" For filters using query_formats where a call to query_formats succeeds ====================================================================== "Dynamic, Default: [yuv420p, yuvj420p, yuva420p, nv12, nv21]" For all other cases =================== "[s16p, s32p, fltp, dblp]" Except in case when all formats are supported ============================================= (when the number of formats equals the number of available formats) "All" softworkz (2): avfilter/avfilter: add avfilter_print_config_formats() ftools/opt_common: Print filter input/output formats in help output doc/APIchanges | 3 ++ fftools/opt_common.c | 39 +++++++++----- libavfilter/avfilter.c | 102 +++++++++++++++++++++++++++++++++++- libavfilter/avfilter.h | 12 +++++ libavfilter/avfiltergraph.c | 14 +++-- libavfilter/internal.h | 9 ++++ libavfilter/version.h | 4 +- 7 files changed, 163 insertions(+), 20 deletions(-) base-commit: e10e27a2ead8848648b29a1b397cc240206e9c3d Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.43.ffstaging.FFmpeg.1665494271.ffmpegagent@gmail.com -
pr-ffstaging-42/softworkz/submit_vaapi_overlay-v1
675b5279 · ·Fixes and Enhancements for VAAPI Overlay This patchset resolves a number of issues in the current code: * Bogus doubles framesync initialization * Executing build_parameters on each input frame * Segfault when there's no secondary input (yet) and adds a number of enhancements to bring this on-par with the other overlay filters: * Enable pixel alpha blending * Expose framesync parameters * Add support for expressions in overlay parameters (x, y, w, h) softworkz (11): avfilter/overlay_vaapi: use FILTER_SINGLE_PIXFMT avfilter/overlay_vaapi: build filter params just once avfilter/overlay_vaapi: remove double framesync init avfilter/overlay_vaapi: handle secondary null input avfilter/overlay_vaapi: reformat options avfilter/overlay_vaapi: remove redundant .get_buffer assignments avfilter/overlay_vaapi: add framesync options avfilter/overlay_vaapi: precalculate blend_state, enable pixel alpha avfilter/overlay_vaapi: enable expressions for overlay parameters doc/filters.texi: remove incorrect statement doc/filters.texi: update overlay_vaapi documentation doc/filters.texi | 50 +++-- libavfilter/vf_overlay_vaapi.c | 328 ++++++++++++++++++++++----------- 2 files changed, 257 insertions(+), 121 deletions(-) base-commit: f3b5277057ad84071721f01419fe4badeceaff08 Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.42.ffstaging.FFmpeg.1665399281.ffmpegagent@gmail.com
-
pr-ffstaging-41/brycechesternewman/add_poster_time_location_mov-v2
c8f54a5d · ·libavformat/mov: Add support for exporting poster time. Export the poster_time_location if available. The poster_time_location is calculated using the poster_time / time_scale = X seconds. The value of poster_time_location indicates where in the video the poster frame is. Addresses feedback from https://www.mail-archive.com/ffmpeg-devel@ffmpeg.org/msg138122.html. Signed-off-by: Bryce Chester Newman bryce.newman@gettyimages.com Bryce Chester Newman (2): libavformat/mov: Add support for exporting poster time. ibavformat/mov: Add support for exporting poster time. doc/demuxers.texi | 6 ++++++ libavformat/isom.h | 1 + libavformat/mov.c | 13 +++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) base-commit: 5f02a261a2ddca7c79198869b45d35019baac819 Submitted-As: https://master.gitmailbox.com/ffmpegdev/pull.41.v2.ffstaging.FFmpeg.1664979908.ffmpegagent@gmail.com In-Reply-To: https://master.gitmailbox.com/ffmpegdev/pull.41.ffstaging.FFmpeg.1664813294282.ffmpegagent@gmail.com