summaryrefslogtreecommitdiffstats
path: root/contrib/ffmpeg/A01-matroskaenc-pgs-duration.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ffmpeg/A01-matroskaenc-pgs-duration.patch')
-rw-r--r--contrib/ffmpeg/A01-matroskaenc-pgs-duration.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/ffmpeg/A01-matroskaenc-pgs-duration.patch b/contrib/ffmpeg/A01-matroskaenc-pgs-duration.patch
new file mode 100644
index 000000000..550ebae15
--- /dev/null
+++ b/contrib/ffmpeg/A01-matroskaenc-pgs-duration.patch
@@ -0,0 +1,32 @@
+From dab79ea5cd01187567b1761aaf1c329926483786 Mon Sep 17 00:00:00 2001
+From: John Stebbins <[email protected]>
+Date: Wed, 29 Oct 2014 10:54:44 -0700
+Subject: [PATCH] matroskaenc: Fix writing zero duration subtitles
+
+The matroska spec says blockduration == 0 means the frame is not a
+keyframe. Since all subtitles are "keyframes", 0 blockduration should
+not be written.
+
+Fixes mkvalidator error messages for PGS subtitles.
+---
+ libavformat/matroskaenc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
+index dad6d6c..61ce0f7 100644
+--- a/libavformat/matroskaenc.c
++++ b/libavformat/matroskaenc.c
+@@ -2396,7 +2396,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
+ #endif
+ /* All subtitle blocks are considered to be keyframes. */
+ mkv_write_block(s, pb, MATROSKA_ID_BLOCK, pkt, 1);
+- put_ebml_uint(pb, MATROSKA_ID_BLOCKDURATION, duration);
++ if (duration > 0)
++ put_ebml_uint(pb, MATROSKA_ID_BLOCKDURATION, duration);
+ end_ebml_master(pb, blockgroup);
+ }
+
+
+--
+1.9.3
+