v9 Update: - Addressed all review comments (thanks Andreas!) - Move ass utility functions to avutil as public API - Handle subtitle decoding via new decode API (removed av_decode_subtitle3) - Change 'subtitle_header' to use refcounted buffers - Allow mapping subtitle streams to filter graph and direct outputs simultaneously - Added explanation and justification for test changes to commit message v8 Update:
- Added new subtitle filters: graphicsub2text, censor, show_speaker (see below) - Added parameters to load words from file for textmod and censor - Copied copyright owners from vf_overlay to vf_overlay_graphicsubs - Remove "convenience" pointers (data) from AVSubtitleArea (not needed, will avoid migration errors) - Minor fixes -------------------------------------------------------------- This patchset introduces filtering support for subtitles. Besides the ground work, this patchset includes a range of new filters for subtitle processing: - graphicsubs2text (S -> S) Convert graphic subtitles to text subtitles via OCR - censor {S -> S) Allows censoring word in subtitles by a configurable word list - show_speaker {S -> S) Prepend the speaker names to text lines (those are often available in ass subs) - split_cc (V -> VS) Splits out Closed-Caption data as a subtitle stream for filtering and encoding - overlay_graphicsubs (VS -> V) Overlay graphic subtitles onto a video stream - graphicsub2video {S -> V) Converts graphic subtitles to (transparent) video frames - overlay_textsubs {VS -> V) Overlay text subtitles onto a video stream. - textsubs2video {S -> V) Converts text subtitles to video frames - textmod {S -> S) Modify subtitle text in a number of ways - stripstyles {S -> S) Remove all inline styles from subtitle events Regards, softworkz softworkz (13): global: Prepare AVFrame for subtitle handling global: Move ass helper functions to avutil and extend ass dialog parsing fftools/play,probe: Adjust for subtitle changes avfilter/subtitles: Add subtitles.c for subtitle frame allocation avfilter/avfilter: Handle subtitle frames avfilter/sbuffer: Add sbuffersrc and sbuffersink filters avfilter/overlay_graphicsubs: Add overlay_graphicsubs and graphicsub2video filters fftools/ffmpeg: Replace sub2video with subtitle frame filtering avfilter/overlay_textsubs: Add overlay_textsubs and textsubs2video filters avfilter/textmod: Add textmod, censor and show_speaker filters avfilter/stripstyles: Add stripstyles filter avfilter/split_cc: Add split_cc filter for closed caption handling avfilter/graphicsub2text: Add new graphicsub2text filter (OCR) configure | 6 +- doc/filters.texi | 502 +++++++++++++++ fftools/ffmpeg.c | 472 +++++++------- fftools/ffmpeg.h | 14 +- fftools/ffmpeg_filter.c | 207 +++++-- fftools/ffmpeg_hw.c | 2 +- fftools/ffmpeg_opt.c | 3 +- fftools/ffplay.c | 102 ++- fftools/ffprobe.c | 48 +- libavcodec/Makefile | 56 +- libavcodec/ass_internal.h | 68 ++ libavcodec/assdec.c | 2 +- libavcodec/assenc.c | 2 +- libavcodec/avcodec.c | 19 - libavcodec/avcodec.h | 75 +-- libavcodec/ccaption_dec.c | 15 +- libavcodec/decode.c | 51 +- libavcodec/jacosubdec.c | 2 +- libavcodec/microdvddec.c | 7 +- libavcodec/movtextdec.c | 3 +- libavcodec/movtextenc.c | 4 +- libavcodec/mpl2dec.c | 2 +- libavcodec/pgssubdec.c | 1 + libavcodec/realtextdec.c | 2 +- libavcodec/samidec.c | 2 +- libavcodec/srtdec.c | 2 +- libavcodec/srtenc.c | 4 +- libavcodec/subviewerdec.c | 2 +- libavcodec/textdec.c | 2 +- libavcodec/ttmlenc.c | 3 +- libavcodec/utils.c | 11 + libavcodec/webvttdec.c | 2 +- libavcodec/webvttenc.c | 4 +- libavfilter/Makefile | 13 + libavfilter/allfilters.c | 12 + libavfilter/avfilter.c | 30 +- libavfilter/avfiltergraph.c | 5 + libavfilter/buffersink.c | 63 ++ libavfilter/buffersink.h | 15 + libavfilter/buffersrc.c | 72 +++ libavfilter/buffersrc.h | 1 + libavfilter/formats.c | 14 + libavfilter/formats.h | 3 + libavfilter/internal.h | 1 + libavfilter/sf_graphicsub2text.c | 322 ++++++++++ libavfilter/sf_split_cc.c | 298 +++++++++ libavfilter/sf_stripstyles.c | 211 +++++++ libavfilter/sf_textmod.c | 719 +++++++++++++++++++++ libavfilter/subtitles.c | 63 ++ libavfilter/subtitles.h | 44 ++ libavfilter/version.h | 2 +- libavfilter/vf_overlay_graphicsubs.c | 724 ++++++++++++++++++++++ libavfilter/vf_overlay_textsubs.c | 609 ++++++++++++++++++ libavfilter/vf_subtitles.c | 50 +- libavformat/utils.c | 1 + libavutil/Makefile | 6 + {libavcodec => libavutil}/ass.c | 63 +- {libavcodec => libavutil}/ass.h | 64 +- {libavcodec => libavutil}/ass_split.c | 12 +- {libavcodec => libavutil}/ass_split.h | 8 +- libavutil/frame.c | 191 +++++- libavutil/frame.h | 93 ++- libavutil/subfmt.c | 240 +++++++ libavutil/subfmt.h | 185 ++++++ tests/ref/fate/filter-overlay-dvdsub-2397 | 181 +++--- tests/ref/fate/sub-dvb | 162 ++--- tests/ref/fate/sub2video | 1 - tests/ref/fate/sub2video_basic | 93 ++- tests/ref/fate/sub2video_time_limited | 4 +- 69 files changed, 5390 insertions(+), 882 deletions(-) create mode 100644 libavcodec/ass_internal.h create mode 100644 libavfilter/sf_graphicsub2text.c create mode 100644 libavfilter/sf_split_cc.c create mode 100644 libavfilter/sf_stripstyles.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_overlay_graphicsubs.c create mode 100644 libavfilter/vf_overlay_textsubs.c rename {libavcodec => libavutil}/ass.c (77%) rename {libavcodec => libavutil}/ass.h (71%) rename {libavcodec => libavutil}/ass_split.c (97%) rename {libavcodec => libavutil}/ass_split.h (96%) create mode 100644 libavutil/subfmt.c create mode 100644 libavutil/subfmt.h -- 2.30.2.windows.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".