From 6bd6ed5e5bb5a765bf7ed707020e36b4f2be05a5 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Wed, 23 Jan 2013 21:00:34 -0800 Subject: [PATCH] Remove support for saving to memory with CSRI since there aren't actually any non-VSFilter renderers --- aegisub/src/subtitles_provider_csri.cpp | 25 ++++++------------------- aegisub/src/subtitles_provider_csri.h | 5 ----- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/aegisub/src/subtitles_provider_csri.cpp b/aegisub/src/subtitles_provider_csri.cpp index 90c557b12..15e8076c7 100644 --- a/aegisub/src/subtitles_provider_csri.cpp +++ b/aegisub/src/subtitles_provider_csri.cpp @@ -59,8 +59,7 @@ static std::mutex csri_mutex; CSRISubtitlesProvider::CSRISubtitlesProvider(std::string type) -: can_open_mem(true) -, instance(nullptr, csri_close) +: instance(nullptr, csri_close) { std::lock_guard lock(csri_mutex); @@ -73,9 +72,6 @@ CSRISubtitlesProvider::CSRISubtitlesProvider(std::string type) if (!renderer) throw agi::InternalError("CSRI renderer vanished between initial list and creation?", 0); - - std::string name(csri_renderer_info(renderer)->name); - can_open_mem = (name.find("vsfilter") == name.npos); } CSRISubtitlesProvider::~CSRISubtitlesProvider() { @@ -83,21 +79,12 @@ CSRISubtitlesProvider::~CSRISubtitlesProvider() { } void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) { - if (can_open_mem) { - std::vector data; - subs->SaveMemory(data); + if (tempfile.empty()) + tempfile = unique_path(StandardPaths::DecodePath("?temp/csri-%%%%-%%%%-%%%%-%%%%.ass")); + subs->Save(tempfile, false, false, "utf-8"); - std::lock_guard lock(csri_mutex); - instance = csri_open_mem(renderer, &data[0], data.size(), nullptr); - } - else { - if (tempfile.empty()) - tempfile = unique_path(StandardPaths::DecodePath("?temp/csri-%%%%-%%%%-%%%%-%%%%.ass")); - subs->Save(tempfile, false, false, "utf-8"); - - std::lock_guard lock(csri_mutex); - instance = csri_open_file(renderer, tempfile.string().c_str(), nullptr); - } + std::lock_guard lock(csri_mutex); + instance = csri_open_file(renderer, tempfile.string().c_str(), nullptr); } void CSRISubtitlesProvider::DrawSubtitles(AegiVideoFrame &dst,double time) { diff --git a/aegisub/src/subtitles_provider_csri.h b/aegisub/src/subtitles_provider_csri.h index 588f6d2cd..ab31e062d 100644 --- a/aegisub/src/subtitles_provider_csri.h +++ b/aegisub/src/subtitles_provider_csri.h @@ -49,11 +49,6 @@ class CSRISubtitlesProvider : public SubtitlesProvider { agi::scoped_holder instance; csri_rend *renderer; - /// VSFilter's implementation of csri_open_mem writes the file to disk then - /// opens it with the standard file reader, and by writing the file ourselves - /// we can skip a few pointless charset conversions - bool can_open_mem; - /// Name of the file passed to renderers with can_open_mem false agi::fs::path tempfile; public: