From baf8b940e2d3c108b12bf4a34edb4a175309109d Mon Sep 17 00:00:00 2001 From: Samuel Date: Fri, 22 Sep 2017 21:46:11 +0200 Subject: [PATCH] Implementation of EIA-608 captions in FFmpeg engine --- .../renderers/DefaultRenderer.conf | 6 +++- .../java/net/pms/encoders/FFMpegVideo.java | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/external-resources/renderers/DefaultRenderer.conf b/src/main/external-resources/renderers/DefaultRenderer.conf index ae88d5b7db8..6f3ba5162a9 100644 --- a/src/main/external-resources/renderers/DefaultRenderer.conf +++ b/src/main/external-resources/renderers/DefaultRenderer.conf @@ -690,10 +690,11 @@ CharMap = # ------------------------------------ # ASS .ass or .ssa # MICRODVD .sub +# PGS .sup # SAMI .smi # SUBRIP .srt # TEXT .txt -# WEBVTT .wtt +# WEBVTT .vtt # # Example: SupportedExternalSubtitlesFormats = SUBRIP,ASS,MICRODVD # Default: "" @@ -716,7 +717,10 @@ VideoFormatsSupportingStreamedExternalSubtitles = # ------------------------------------ # ASS .ass/.ssa # BMP +# EIA608 +# EIA708 # DIVX (XSUB) +# DVBSUB # MICRODVD .sub # PGS .sup # SAMI .smi diff --git a/src/main/java/net/pms/encoders/FFMpegVideo.java b/src/main/java/net/pms/encoders/FFMpegVideo.java index cc0fee9616c..0e331fb0049 100644 --- a/src/main/java/net/pms/encoders/FFMpegVideo.java +++ b/src/main/java/net/pms/encoders/FFMpegVideo.java @@ -406,10 +406,38 @@ public synchronized List getVideoTranscodeOptions(DLNAResource dlna, DLN transcodeOptions.add("-f"); if (dtsRemux) { transcodeOptions.add("mpeg2video"); + if ( + params.sid.isEmbedded() && + ( + params.sid.getType() == SubtitleType.EIA608 +// || params.sid.getType() == SubtitleType.EIA708 + ) + ) { + transcodeOptions.add("-a53cc"); + } } else if (renderer.isTranscodeToMPEGTS()) { transcodeOptions.add("mpegts"); + if ( + !renderer.isTranscodeToH264() && + params.sid.isEmbedded() && + ( + params.sid.getType() == SubtitleType.EIA608 +// || params.sid.getType() == SubtitleType.EIA708 + ) + ) { + transcodeOptions.add("-a53cc"); + } } else { transcodeOptions.add("vob"); + if ( + params.sid.isEmbedded() && + ( + params.sid.getType() == SubtitleType.EIA608 +// || params.sid.getType() == SubtitleType.EIA708 + ) + ) { + transcodeOptions.add("-a53cc"); + } } } }