From 71857ca3fc4839234a3fcc637810dd6485099d7c Mon Sep 17 00:00:00 2001 From: valib Date: Wed, 17 Jul 2013 22:29:02 +0200 Subject: [PATCH] Restore external ass support (Thanks skeptical for input) --- .../java/net/pms/encoders/FFMpegVideo.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/net/pms/encoders/FFMpegVideo.java b/src/main/java/net/pms/encoders/FFMpegVideo.java index 9c86c3b0414..1d37130a2cd 100644 --- a/src/main/java/net/pms/encoders/FFMpegVideo.java +++ b/src/main/java/net/pms/encoders/FFMpegVideo.java @@ -155,7 +155,7 @@ public List getVideoFilterOptions(DLNAResource dlna, DLNAMediaInfo media String subsFile = s.toString(); subsFile = subsFile.replace(",", "\\,"); - if (params.sid.isEmbedded()) { + if (params.sid.isEmbedded() || (params.sid.isExternal() && params.sid.getType() == SubtitleType.ASS)) { subsOption = "ass=" + subsFile; } else if (params.sid.isExternal() && params.sid.getType() == SubtitleType.SUBRIP) { subsOption = "subtitles=" + subsFile; @@ -1049,7 +1049,7 @@ public File getSubtitles(DLNAResource dlna, DLNAMediaInfo media, OutputParams pa tempSubs = null; } } - } else if (params.sid.isExternal() && params.sid.getType() == SubtitleType.SUBRIP) { + } else if (params.sid.isExternal() && (params.sid.getType() == SubtitleType.SUBRIP || params.sid.getType() == SubtitleType.ASS)) { tempSubs = params.sid.getExternalFile(); } @@ -1089,19 +1089,21 @@ else if (params.sid.isExternal()) { // Convert external subs to ASS format } */ - if (tempSubs != null && params.sid.isEmbedded() && params.timeseek > 0) { - try { - tempSubs = SubtitleUtils.applyTimeSeekingToASS(tempSubs, params); - } catch (IOException e) { - LOGGER.debug("Applying timeseeking caused an error: " + e); - tempSubs = null; - } - } else if (params.sid.isExternal() && params.sid.getType() == SubtitleType.SUBRIP) { - try { - tempSubs = SubtitleUtils.applyTimeSeekingToSrt(tempSubs, params); - } catch (IOException e) { - LOGGER.debug("Applying timeseeking caused an error: " + e); - tempSubs = null; + if (tempSubs != null && params.timeseek > 0) { + if (params.sid.isEmbedded() || params.sid.getType() == SubtitleType.ASS) { + try { + tempSubs = SubtitleUtils.applyTimeSeekingToASS(tempSubs, params); + } catch (IOException e) { + LOGGER.debug("Applying timeseeking caused an error: " + e); + tempSubs = null; + } + } else if (params.sid.isExternal() && params.sid.getType() == SubtitleType.SUBRIP) { + try { + tempSubs = SubtitleUtils.applyTimeSeekingToSrt(tempSubs, params); + } catch (IOException e) { + LOGGER.debug("Applying timeseeking caused an error: " + e); + tempSubs = null; + } } }