BugFix Accept empty string to create Text source

This commit is contained in:
Bruno Herbelin
2024-01-16 18:47:54 +01:00
parent e42afcb434
commit 0eae04ab83
2 changed files with 22 additions and 20 deletions

View File

@@ -444,10 +444,14 @@ Source *Mixer::createSourceText(const std::string &contents, glm::ivec2 res)
s->setContents(contents, res); s->setContents(contents, res);
// propose a new name based on contents // propose a new name based on contents
std::string basestring = BaseToolkit::transliterate(contents); std::string basestring = "Text";
basestring = BaseToolkit::splitted(basestring, '\n').front(); if (contents.size() > 1) {
basestring = BaseToolkit::transliterate(contents);
if (SystemToolkit::file_exists(basestring)) if (SystemToolkit::file_exists(basestring))
basestring = SystemToolkit::base_filename(basestring); basestring = SystemToolkit::base_filename(basestring);
else
basestring = BaseToolkit::splitted(basestring, '\n').front();
}
s->setName( basestring ); s->setName( basestring );
return s; return s;

View File

@@ -220,9 +220,8 @@ void TextContents::open(const std::string &text, glm::ivec2 res)
{ {
std::string gstreamer_pattern std::string gstreamer_pattern
= "videotestsrc pattern=black background-color=0x00000000 ! " = "videotestsrc pattern=black background-color=0x00000000 ! "
"textoverlay text=\"! no text !\" halignment=center valignment=center "; "textoverlay text=\"\" halignment=center valignment=center ";
if (!text.empty() && text_.compare(text) != 0) {
// set text // set text
text_ = text; text_ = text;
// test if text is the filename of a subtitle // test if text is the filename of a subtitle
@@ -237,7 +236,6 @@ void TextContents::open(const std::string &text, glm::ivec2 res)
} }
gstreamer_pattern += "videotestsrc name=bg pattern=black background-color=0x00000000 ! " gstreamer_pattern += "videotestsrc name=bg pattern=black background-color=0x00000000 ! "
"textoverlay name=txt "; "textoverlay name=txt ";
}
// (private) open stream // (private) open stream
Stream::open(gstreamer_pattern, res.x, res.y); Stream::open(gstreamer_pattern, res.x, res.y);