--- fftools/ffmpeg.c | 39 ++----------------------- libavcodec/text_to_bitmap.c | 58 +++++++++++++++++++++++++++++++++++-- libavfilter/vf_subtitles.c | 18 ------------ 3 files changed, 58 insertions(+), 57 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 31acf08a6a..0ff9da7bf4 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -2329,43 +2329,6 @@ fail: return err < 0 ? err : ret; } -static void print_subtitle(AVSubtitle sub) -{ - printf("sub.format: %u\n", sub.format); - printf("sub.start_display_time: %u\n", sub.start_display_time); - printf("sub.end_display_time: %u\n", sub.end_display_time); - printf("sub.num_rects: %u\n", sub.num_rects); - printf("sub.pts: %ld\n", sub.pts); - for (int i = 0; i < sub.num_rects; i++) - { - printf("sub.rects[%d]->type: %d\n", i, sub.rects[i]->type); - printf("sub.rects[%d]->nb_colors: %d\n", i, sub.rects[i]->nb_colors); - printf("sub.rects[%d]->(x,y,w,h): (%d,%d,%d,%d)\n", i, sub.rects[i]->x, sub.rects[i]->y, sub.rects[i]->w, sub.rects[i]->h); - printf("sub.rects[%d]->linesize: [%d,%d,%d,%d]\n", i, sub.rects[i]->linesize[0], sub.rects[i]->linesize[1], sub.rects[i]->linesize[1], sub.rects[i]->linesize[1]); - switch (sub.rects[i]->type) - { - case SUBTITLE_TEXT: - printf("sub.rects[%d]->text: %s\n", i, sub.rects[i]->text); - break; - case SUBTITLE_ASS: - printf("sub.rects[%d]->ass: %s\n", i, sub.rects[i]->ass); - break; - case SUBTITLE_BITMAP: - for (int c = 0; c < sub.rects[i]->nb_colors; c++) - printf("color %d: [%u,%u,%u,%u]\n", c, - sub.rects[i]->data[1][c * 4 + 0], - sub.rects[i]->data[1][c * 4 + 1], - sub.rects[i]->data[1][c * 4 + 2], - sub.rects[i]->data[1][c * 4 + 3]); - for (int y = 0; y < sub.rects[i]->h; y++, printf("\n")) - for (int x = 0; x < sub.rects[i]->w; x++) - printf("%d", sub.rects[i]->data[0][y * sub.rects[i]->w + x]); - break; - } - } - printf("\n"); -} - static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, int *decode_failed) { @@ -2433,6 +2396,7 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, || ost->enc->type != AVMEDIA_TYPE_SUBTITLE) continue; +#if CONFIG_LIBASS // Support text to bitmap if (avcodec_descriptor_get(ost->enc_ctx->codec_id)->props & AV_CODEC_PROP_BITMAP_SUB) if (avcodec_descriptor_get(ist->dec_ctx->codec_id)->props & AV_CODEC_PROP_TEXT_SUB) @@ -2442,6 +2406,7 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, subtitle.rects[r]->type = SUBTITLE_BITMAP; rendered = 1; } +#endif do_subtitle_out(output_files[ost->file_index], ost, &subtitle); } diff --git a/libavcodec/text_to_bitmap.c b/libavcodec/text_to_bitmap.c index 87c46985d9..50c72afc55 100644 --- a/libavcodec/text_to_bitmap.c +++ b/libavcodec/text_to_bitmap.c @@ -94,7 +94,6 @@ void free_ass_context(ASS_Context *context) { void render_avsub_ass(ASS_Context *context, AVSubtitle *sub) { - printf("render_avsub_ass\n"); for (int r = 0; r < sub->num_rects; r++) { AVSubtitleRect *rect = sub->rects[r]; @@ -167,4 +166,59 @@ void render_avsub_ass(ASS_Context *context, AVSubtitle *sub) } } } -} \ No newline at end of file +} + +static void print_ass_image(const ASS_Image *image) +{ + int index = 0; + for (; image != NULL; image = image->next, index++) + { + printf("index: %d\n", index); + printf("image->(dst_x,dst_y): (%d,%d)\n", image->dst_x, image->dst_y); + printf("image->(w,h): (%d,%d)\n", image->w, image->h); + printf("image->stride: %d\n", image->stride); + printf("image->type: %d\n", image->type); + printf("image->color: [%u,%u,%u,%u]\n", AR(image->color), AG(image->color), AB(image->color), AA(image->color)); + for (int y = 0; y < image->h; y++, printf("\n")) + for (int x = 0; x < image->w; x++) + printf("%02X", image->bitmap[y * image->stride + x]); + printf("\n"); + } +} + +static void print_subtitle(AVSubtitle sub) +{ + printf("sub.format: %u\n", sub.format); + printf("sub.start_display_time: %u\n", sub.start_display_time); + printf("sub.end_display_time: %u\n", sub.end_display_time); + printf("sub.num_rects: %u\n", sub.num_rects); + printf("sub.pts: %ld\n", sub.pts); + for (int i = 0; i < sub.num_rects; i++) + { + printf("sub.rects[%d]->type: %d\n", i, sub.rects[i]->type); + printf("sub.rects[%d]->nb_colors: %d\n", i, sub.rects[i]->nb_colors); + printf("sub.rects[%d]->(x,y,w,h): (%d,%d,%d,%d)\n", i, sub.rects[i]->x, sub.rects[i]->y, sub.rects[i]->w, sub.rects[i]->h); + printf("sub.rects[%d]->linesize: [%d,%d,%d,%d]\n", i, sub.rects[i]->linesize[0], sub.rects[i]->linesize[1], sub.rects[i]->linesize[1], sub.rects[i]->linesize[1]); + switch (sub.rects[i]->type) + { + case SUBTITLE_TEXT: + printf("sub.rects[%d]->text: %s\n", i, sub.rects[i]->text); + break; + case SUBTITLE_ASS: + printf("sub.rects[%d]->ass: %s\n", i, sub.rects[i]->ass); + break; + case SUBTITLE_BITMAP: + for (int c = 0; c < sub.rects[i]->nb_colors; c++) + printf("color %d: [%u,%u,%u,%u]\n", c, + sub.rects[i]->data[1][c * 4 + 0], + sub.rects[i]->data[1][c * 4 + 1], + sub.rects[i]->data[1][c * 4 + 2], + sub.rects[i]->data[1][c * 4 + 3]); + for (int y = 0; y < sub.rects[i]->h; y++, printf("\n")) + for (int x = 0; x < sub.rects[i]->w; x++) + printf("%d", sub.rects[i]->data[0][y * sub.rects[i]->w + x]); + break; + } + } + printf("\n"); +} diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c index 703dbec37d..82e140e986 100644 --- a/libavfilter/vf_subtitles.c +++ b/libavfilter/vf_subtitles.c @@ -181,24 +181,6 @@ static void overlay_ass_image(AssContext *ass, AVFrame *picref, } } -static void print_ass_image(const ASS_Image *image) -{ - int index = 0; - for (; image != NULL; image = image->next, index++) - { - printf("index: %d\n", index); - printf("image->(dst_x,dst_y): (%d,%d)\n", image->dst_x, image->dst_y); - printf("image->(w,h): (%d,%d)\n", image->w, image->h); - printf("image->stride: %d\n", image->stride); - printf("image->type: %d\n", image->type); - printf("image->color: [%u,%u,%u,%u]\n", AR(image->color), AG(image->color), AB(image->color), AA(image->color)); - for (int y = 0; y < image->h; y++, printf("\n")) - for (int x = 0; x < image->w; x++) - printf("%02X", image->bitmap[y * image->stride + x]); - printf("\n"); - } -} - static int filter_frame(AVFilterLink *inlink, AVFrame *picref) { AVFilterContext *ctx = inlink->dst; -- 2.34.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".