gstreamer playback, fix possible segfault #2

This commit is contained in:
TangoCash
2017-11-03 22:30:24 +01:00
parent 161feb4cf4
commit cccd010efb
2 changed files with 13 additions and 2 deletions

View File

@@ -941,7 +941,15 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu
{ {
if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang))
{ {
language[i] = std::string(gst_tag_get_language_name(g_lang)).c_str(); std::string slang;
if (gst_tag_get_language_name(g_lang) != NULL)
slang = gst_tag_get_language_name(g_lang);
else
slang = g_lang;
if (slang.empty())
language[i] = "unk";
else
language[i] = slang.c_str();
lt_info("%s: language:%s\n", __FUNCTION__, language[i].c_str()); lt_info("%s: language:%s\n", __FUNCTION__, language[i].c_str());
g_free(g_lang); g_free(g_lang);
} }

View File

@@ -949,7 +949,10 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu
if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang))
{ {
std::string slang; std::string slang;
if (gst_tag_get_language_name(g_lang) != NULL)
slang = gst_tag_get_language_name(g_lang); slang = gst_tag_get_language_name(g_lang);
else
slang = g_lang;
if (slang.empty()) if (slang.empty())
language[i] = "unk"; language[i] = "unk";
else else