Hi!

Attached patch is supposed to fix HandBrake issue 1964, FFmpeg
currently fails to identify WebVTT in Matroska (only webm is supported
as container). I don't have the original sample to test though.

Please comment, Carl Eugen
From d4cdbc94e4adf8ee4b1f576b60c0e743f9f8928f Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos <ceffm...@gmail.com>
Date: Tue, 12 Mar 2019 00:32:59 +0100
Subject: [PATCH] lavf/matroska: Also support WebVTT in Matroska.

Fixes HandBrake issue #1964.
---
 libavformat/matroska.c    |    1 +
 libavformat/matroskadec.c |    3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index 4d18d14..adcd67c 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -68,6 +68,7 @@ const CodecTags ff_mkv_codec_tags[]={
     {"S_TEXT/UTF8"      , AV_CODEC_ID_SUBRIP},
     {"S_TEXT/UTF8"      , AV_CODEC_ID_TEXT},
     {"S_TEXT/ASCII"     , AV_CODEC_ID_TEXT},
+    {"S_TEXT/WEBVTT"    , AV_CODEC_ID_WEBVTT},
     {"S_TEXT/ASS"       , AV_CODEC_ID_ASS},
     {"S_TEXT/SSA"       , AV_CODEC_ID_ASS},
     {"S_ASS"            , AV_CODEC_ID_ASS},
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 0e3a689..0d7b0bd 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3428,7 +3428,8 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, AVBufferRef *buf
             if (res)
                 goto end;
 
-        } else if (st->codecpar->codec_id == AV_CODEC_ID_WEBVTT) {
+        } else if (   st->codecpar->codec_id == AV_CODEC_ID_WEBVTT
+                   && strcmp(track->codec_id, "S_TEXT/WEBVTT")) {
             res = matroska_parse_webvtt(matroska, track, st,
                                         data, lace_size[n],
                                         timecode, lace_duration,
-- 
1.7.10.4

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to