diff mbox series

[FFmpeg-devel] Add matroska codec id S_TEXT/WEBVTT for WebVTT streams.

Message ID 20210207024954.380875-1-wwong5545@gmail.com
State Superseded
Headers show
Series [FFmpeg-devel] Add matroska codec id S_TEXT/WEBVTT for WebVTT streams. | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Walter Feb. 7, 2021, 2:49 a.m. UTC
Added the codec id S_TEXT/WEBVTT in order to bring ffmpeg generated files
closer to the matroska spec. The list of matroska codec ids was also
rearranged to push the old codec id (D_WEBVTT/SUBTITLES) to the bottom of
the list so that S_TEXT/WEBVTT is the default codec id for new mkv files
with webvtt subtitles.
---
 libavformat/matroska.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Carl Eugen Hoyos Feb. 7, 2021, 3:02 a.m. UTC | #1
Am So., 7. Feb. 2021 um 03:50 Uhr schrieb Walter Wong <wwong5545@gmail.com>:
>
> Added the codec id S_TEXT/WEBVTT in order to bring ffmpeg generated files
> closer to the matroska spec. The list of matroska codec ids was also
> rearranged to push the old codec id (D_WEBVTT/SUBTITLES) to the bottom of
> the list so that S_TEXT/WEBVTT is the default codec id for new mkv files
> with webvtt subtitles.

Please mention ticket #5641 if the patch fixes decoding the file
attached there.

Carl Eugen
Walter Feb. 7, 2021, 3:47 a.m. UTC | #2
Alright, I've updated the patch with the ticket number.

Should I apply this fix to the WebM muxer as well?
The WebM spec is not clear on what to do in this case.



On Sat, 6 Feb 2021 at 22:02, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote:
>
> Am So., 7. Feb. 2021 um 03:50 Uhr schrieb Walter Wong <wwong5545@gmail.com>:
> >
> > Added the codec id S_TEXT/WEBVTT in order to bring ffmpeg generated files
> > closer to the matroska spec. The list of matroska codec ids was also
> > rearranged to push the old codec id (D_WEBVTT/SUBTITLES) to the bottom of
> > the list so that S_TEXT/WEBVTT is the default codec id for new mkv files
> > with webvtt subtitles.
>
> Please mention ticket #5641 if the patch fixes decoding the file
> attached there.
>
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Walter Feb. 7, 2021, 3:55 a.m. UTC | #3
Apologies, Gmail messed with the patch, actual patch should be attached to this message.
diff mbox series

Patch

diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index 7c56aba403..1128c96451 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -60,16 +60,12 @@  const CodecTags ff_mkv_codec_tags[]={
     {"A_VORBIS"         , AV_CODEC_ID_VORBIS},
     {"A_WAVPACK4"       , AV_CODEC_ID_WAVPACK},
 
-    {"D_WEBVTT/SUBTITLES"   , AV_CODEC_ID_WEBVTT},
-    {"D_WEBVTT/CAPTIONS"    , AV_CODEC_ID_WEBVTT},
-    {"D_WEBVTT/DESCRIPTIONS", AV_CODEC_ID_WEBVTT},
-    {"D_WEBVTT/METADATA"    , AV_CODEC_ID_WEBVTT},
-
     {"S_TEXT/UTF8"      , AV_CODEC_ID_SUBRIP},
     {"S_TEXT/UTF8"      , AV_CODEC_ID_TEXT},
     {"S_TEXT/ASCII"     , AV_CODEC_ID_TEXT},
     {"S_TEXT/ASS"       , AV_CODEC_ID_ASS},
     {"S_TEXT/SSA"       , AV_CODEC_ID_ASS},
+    {"S_TEXT/WEBVTT"    , AV_CODEC_ID_WEBVTT},
     {"S_ASS"            , AV_CODEC_ID_ASS},
     {"S_SSA"            , AV_CODEC_ID_ASS},
     {"S_VOBSUB"         , AV_CODEC_ID_DVD_SUBTITLE},
@@ -100,6 +96,14 @@  const CodecTags ff_mkv_codec_tags[]={
     {"V_VP8"            , AV_CODEC_ID_VP8},
     {"V_VP9"            , AV_CODEC_ID_VP9},
 
+    /* These codec strings for webvtt seem to be depreciated from the Matroska
+       spec, but it might be useful to keep them for compatibility for older
+       files. These are at the bottom so they get matched after S_TEXT/WEBVTT. */
+    {"D_WEBVTT/SUBTITLES"   , AV_CODEC_ID_WEBVTT},
+    {"D_WEBVTT/CAPTIONS"    , AV_CODEC_ID_WEBVTT},
+    {"D_WEBVTT/DESCRIPTIONS", AV_CODEC_ID_WEBVTT},
+    {"D_WEBVTT/METADATA"    , AV_CODEC_ID_WEBVTT},
+
     {""                 , AV_CODEC_ID_NONE}
 };