Added mono/stereo/surround/Xch track selectors for audio tracks
This commit is contained in:
parent
b0c8bdfa21
commit
ffcc2b3473
1 changed files with 8 additions and 12 deletions
|
@ -828,11 +828,10 @@ std::set<size_t> Util::findTracks(const DTSC::Meta &M, const JSON::Value &capa,
|
||||||
//audio channel matching
|
//audio channel matching
|
||||||
if (!trackType.size() || trackType == "audio"){
|
if (!trackType.size() || trackType == "audio"){
|
||||||
if (trackLow == "surround"){
|
if (trackLow == "surround"){
|
||||||
std::set<size_t> validTracks = getSupportedTracks(M, capa);
|
std::set<size_t> validTracks = capa?getSupportedTracks(M, capa):M.getValidTracks();
|
||||||
for (std::set<size_t>::iterator it = validTracks.begin(); it != validTracks.end(); it++){
|
for (std::set<size_t>::iterator it = validTracks.begin(); it != validTracks.end(); it++){
|
||||||
const DTSC::Track &Trk = M.tracks.at(*it);
|
if (!trackType.size() || M.getType(*it) == trackType || M.getCodec(*it) == trackType){
|
||||||
if (!trackType.size() || Trk.type == trackType || Trk.codec == trackType){
|
if (M.getChannels(*it) > 2){result.insert(*it);}
|
||||||
if (Trk.channels > 2){result.insert(*it);}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -842,15 +841,12 @@ std::set<size_t> Util::findTracks(const DTSC::Meta &M, const JSON::Value &capa,
|
||||||
if (trackLow == "mono"){targetChannel = 1;}
|
if (trackLow == "mono"){targetChannel = 1;}
|
||||||
if (trackLow == "stereo"){targetChannel = 2;}
|
if (trackLow == "stereo"){targetChannel = 2;}
|
||||||
if (trackLow == "stereo"){targetChannel = 2;}
|
if (trackLow == "stereo"){targetChannel = 2;}
|
||||||
if (trackLow.find("ch") != std::string::npos && sscanf(trackLow.c_str(), "%uch", &channelVal) == 1){
|
if (trackLow.find("ch") != std::string::npos && sscanf(trackLow.c_str(), "%uch", &channelVal) == 1){targetChannel = channelVal;}
|
||||||
targetChannel = channelVal;
|
|
||||||
}
|
|
||||||
if (targetChannel){
|
if (targetChannel){
|
||||||
std::set<size_t> validTracks = getSupportedTracks(M, capa);
|
std::set<size_t> validTracks = capa?getSupportedTracks(M, capa):M.getValidTracks();
|
||||||
for (std::set<size_t>::iterator it = validTracks.begin(); it != validTracks.end(); it++){
|
for (std::set<size_t>::iterator it = validTracks.begin(); it != validTracks.end(); it++){
|
||||||
const DTSC::Track &Trk = M.tracks.at(*it);
|
if (!trackType.size() || M.getType(*it) == trackType || M.getCodec(*it) == trackType){
|
||||||
if (!trackType.size() || Trk.type == trackType || Trk.codec == trackType){
|
if (M.getChannels(*it) == targetChannel){result.insert(*it);}
|
||||||
if (Trk.channels == targetChannel){result.insert(*it);}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Add table
Reference in a new issue