On Thu, Nov 25, 2021 at 12:48:11AM +0000, Soft Works wrote: > Root commit for adding subtitle filtering capabilities. > In detail: > > - Add type (AVMediaType) field to AVFrame > Replaces previous way of distinction which was based on checking > width and height to determine whether a frame is audio or video > - Add subtitle fields to AVFrame > - Add new struct AVSubtitleArea, similar to AVSubtitleRect, but different > allocation logic. Cannot and must not be used interchangeably, hence > the new struct > - Move enum AVSubtitleType, AVSubtitle and AVSubtitleRect to avutil > - Add public-named members to enum AVSubtitleType (AV_SUBTITLE_FMT_) > - Add avcodec_decode_subtitle3 which takes subtitle frames, > serving as compatibility shim to legacy subtitle decoding > - Add additional methods for conversion between old and new API > > Signed-off-by: softworkz <softwo...@hotmail.com> > --- > libavcodec/avcodec.c | 19 --- > libavcodec/avcodec.h | 75 ++---------- > libavcodec/decode.c | 53 ++++++-- > libavcodec/pgssubdec.c | 1 + > libavcodec/utils.c | 11 ++ > libavfilter/vf_subtitles.c | 50 ++++++-- > libavformat/utils.c | 1 + > libavutil/Makefile | 2 + > libavutil/frame.c | 194 ++++++++++++++++++++++++++--- > libavutil/frame.h | 93 +++++++++++++- > libavutil/subfmt.c | 243 +++++++++++++++++++++++++++++++++++++ > libavutil/subfmt.h | 185 ++++++++++++++++++++++++++++ > 12 files changed, 802 insertions(+), 125 deletions(-) > create mode 100644 libavutil/subfmt.c > create mode 100644 libavutil/subfmt.h > > diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c > index c00a9b2af8..13e3711b9c 100644 > --- a/libavcodec/avcodec.c > +++ b/libavcodec/avcodec.c > @@ -422,25 +422,6 @@ void avcodec_flush_buffers(AVCodecContext *avctx) > av_bsf_flush(avci->bsf); > } > > -void avsubtitle_free(AVSubtitle *sub) > -{ > - int i; > - > - for (i = 0; i < sub->num_rects; i++) { > - av_freep(&sub->rects[i]->data[0]); > - av_freep(&sub->rects[i]->data[1]); > - av_freep(&sub->rects[i]->data[2]); > - av_freep(&sub->rects[i]->data[3]); > - av_freep(&sub->rects[i]->text); > - av_freep(&sub->rects[i]->ass); > - av_freep(&sub->rects[i]); > - } > - > - av_freep(&sub->rects); > - > - memset(sub, 0, sizeof(*sub)); > -} > - > av_cold int avcodec_close(AVCodecContext *avctx) > { > int i; > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > index 7ee8bc2b7c..0c5819b116 100644 > --- a/libavcodec/avcodec.h > +++ b/libavcodec/avcodec.h > @@ -35,6 +35,7 @@ > #include "libavutil/frame.h" > #include "libavutil/log.h" > #include "libavutil/pixfmt.h" > +#include "libavutil/subfmt.h" > #include "libavutil/rational.h" > > #include "codec.h" > @@ -1674,7 +1675,7 @@ typedef struct AVCodecContext { > > /** > * Header containing style information for text subtitles. > - * For SUBTITLE_ASS subtitle type, it should contain the whole ASS > + * For AV_SUBTITLE_FMT_ASS subtitle type, it should contain the whole ASS > * [Script Info] and [V4+ Styles] section, plus the [Events] line and > * the Format line following. It shouldn't include any Dialogue line. > * - encoding: Set/allocated/freed by user (before avcodec_open2()) > @@ -2238,63 +2239,8 @@ typedef struct AVHWAccel { > * @} > */ > > -enum AVSubtitleType { > - SUBTITLE_NONE, > - > - SUBTITLE_BITMAP, ///< A bitmap, pict will be set > - > - /** > - * Plain text, the text field must be set by the decoder and is > - * authoritative. ass and pict fields may contain approximations. > - */ > - SUBTITLE_TEXT, > - > - /** > - * Formatted text, the ass field must be set by the decoder and is > - * authoritative. pict and text fields may contain approximations. > - */ > - SUBTITLE_ASS, > -};
doesnt build so i cannot bisect breakages reliably CC libavcodec/libzvbi-teletextdec.o libavcodec/libzvbi-teletextdec.c: In function ‘gen_sub_text’: libavcodec/libzvbi-teletextdec.c:227:26: error: ‘SUBTITLE_NONE’ undeclared (first use in this function); did you mean ‘SUBTITLE_ASS’? sub_rect->type = SUBTITLE_NONE; ^~~~~~~~~~~~~ SUBTITLE_ASS libavcodec/libzvbi-teletextdec.c:227:26: note: each undeclared identifier is reported only once for each function it appears in libavcodec/libzvbi-teletextdec.c: In function ‘gen_sub_ass’: libavcodec/libzvbi-teletextdec.c:405:26: error: ‘SUBTITLE_NONE’ undeclared (first use in this function); did you mean ‘SUBTITLE_ASS’? sub_rect->type = SUBTITLE_NONE; ^~~~~~~~~~~~~ SUBTITLE_ASS libavcodec/libzvbi-teletextdec.c: In function ‘gen_sub_bitmap’: libavcodec/libzvbi-teletextdec.c:465:26: error: ‘SUBTITLE_NONE’ undeclared (first use in this function); did you mean ‘SUBTITLE_ASS’? sub_rect->type = SUBTITLE_NONE; ^~~~~~~~~~~~~ SUBTITLE_ASS libavcodec/libzvbi-teletextdec.c: In function ‘teletext_decode_frame’: libavcodec/libzvbi-teletextdec.c:698:43: error: ‘SUBTITLE_NONE’ undeclared (first use in this function); did you mean ‘SUBTITLE_ASS’? if (ctx->pages->sub_rect->type != SUBTITLE_NONE) { ^~~~~~~~~~~~~ SUBTITLE_ASS ffbuild/common.mak:70: recipe for target 'libavcodec/libzvbi-teletextdec.o' failed make: *** [libavcodec/libzvbi-teletextdec.o] Error 1 [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB There will always be a question for which you do not know the correct answer.
signature.asc
Description: PGP signature
_______________________________________________ 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".