Hi!
When transcoding an input file with subtitles to mkv, ffmpeg by default tries
to encode the subtitles even if the input contains bitmap subtitles.
Attached patch should fix this issue reported in ticket #3819 (and before
iirc).
This patch currently does not work correctly for teletext input streams
because no properties are defined for teletext, I suspect it should be
(AV_CODEC_PROP_TEXT_SUB | AV_CODEC_PROP_BITMAP_SUB). In any case, this
corner-case should not affect this patch imo.
Please review, Carl Eugen
diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index 2adefc5..6e12ab2 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -1869,8 +1869,16 @@ static int open_output_file(OptionsContext *o, const
char *filename)
if (!o->subtitle_disable &&
(avcodec_find_encoder(oc->oformat->subtitle_codec) || subtitle_codec_name)) {
for (i = 0; i < nb_input_streams; i++)
if (input_streams[i]->st->codec->codec_type ==
AVMEDIA_TYPE_SUBTITLE) {
- new_subtitle_stream(o, oc, i);
- break;
+ if (subtitle_codec_name ||
+ avcodec_find_encoder(oc->oformat->subtitle_codec) &&
+
avcodec_descriptor_get(avcodec_find_encoder(oc->oformat->subtitle_codec)->id) &&
+
avcodec_descriptor_get(input_streams[i]->st->codec->codec_id) &&
+
avcodec_descriptor_get(avcodec_find_encoder(oc->oformat->subtitle_codec)->id)->props
&
+
avcodec_descriptor_get(input_streams[i]->st->codec->codec_id)->props &
+ (AV_CODEC_PROP_TEXT_SUB | AV_CODEC_PROP_BITMAP_SUB)) {
+ new_subtitle_stream(o, oc, i);
+ break;
+ }
}
}
/* do something with data? */
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel