Ticket #4643: 4643-v1.patch
File 4643-v1.patch, 2.2 KB (added by , 16 years ago) |
---|
-
libs/libmythtv/avformatdecoder.cpp
117 117 string_lock.unlock(); 118 118 } 119 119 120 static int get_canonical_lang(const char *lang_cstr) 121 { 122 if (lang_cstr[0] == '\0' || lang_cstr[1] == '\0') 123 { 124 return iso639_str3_to_key("und"); 125 } 126 else if (lang_cstr[2] == '\0') 127 { 128 QString tmp2 = lang_cstr; 129 QString tmp3 = iso639_str2_to_str3(tmp2); 130 int lang = iso639_str3_to_key(tmp3.ascii()); 131 return iso639_key_to_canonical_key(lang); 132 } 133 else 134 { 135 int lang = iso639_str3_to_key(lang_cstr); 136 return iso639_key_to_canonical_key(lang); 137 } 138 } 120 139 121 140 typedef MythDeque<AVFrame*> avframe_q; 122 141 … … 1706 1725 1707 1726 if (enc->codec_type == CODEC_TYPE_SUBTITLE) 1708 1727 { 1709 int lang = -1, lang_indx = 0; 1710 if (ic->streams[i]->language) 1711 { 1712 lang = iso639_str3_to_key(ic->streams[i]->language); 1713 lang = iso639_key_to_canonical_key(lang); 1714 lang_indx = lang_sub_cnt[lang]; 1715 lang_sub_cnt[lang]++; 1716 } 1728 int lang = get_canonical_lang(ic->streams[i]->language); 1729 int lang_indx = lang_aud_cnt[lang]; 1730 lang_indx = lang_sub_cnt[lang]; 1731 lang_sub_cnt[lang]++; 1732 1717 1733 tracks[kTrackTypeSubtitle].push_back( 1718 1734 StreamInfo(i, lang, lang_indx, ic->streams[i]->id)); 1719 1735 … … 1726 1742 1727 1743 if (enc->codec_type == CODEC_TYPE_AUDIO) 1728 1744 { 1729 int lang = -1, lang_indx = 0; 1730 if (ic->streams[i]->language) 1731 { 1732 lang = iso639_str3_to_key(ic->streams[i]->language); 1733 lang = iso639_key_to_canonical_key(lang); 1734 lang_indx = lang_aud_cnt[lang]; 1735 lang_aud_cnt[lang]++; 1736 } 1745 int lang = get_canonical_lang(ic->streams[i]->language); 1746 int lang_indx = lang_aud_cnt[lang]; 1747 lang_aud_cnt[lang]++; 1737 1748 1738 1749 if (ic->streams[i]->codec->avcodec_dual_language) 1739 1750 {