Mercurial > mplayer.hg
comparison libmpdemux/demuxer.c @ 26086:c9a877daca42
Demuxer-independent functions for selecting tracks based on language.
author | eugeni |
---|---|
date | Fri, 29 Feb 2008 17:25:43 +0000 |
parents | 681f6ae38b68 |
children | 12904c37c798 |
comparison
equal
deleted
inserted
replaced
26085:681f6ae38b68 | 26086:c9a877daca42 |
---|---|
1403 resync_audio_stream(sh_audio); | 1403 resync_audio_stream(sh_audio); |
1404 } | 1404 } |
1405 | 1405 |
1406 return angle; | 1406 return angle; |
1407 } | 1407 } |
1408 | |
1409 int demuxer_audio_track_by_lang(demuxer_t* d, char* lang) | |
1410 { | |
1411 int i, len; | |
1412 lang += strspn(lang, ","); | |
1413 while((len = strcspn(lang, ",")) > 0) { | |
1414 for (i=0; i < MAX_A_STREAMS; ++i) { | |
1415 sh_audio_t* sh = d->a_streams[i]; | |
1416 if (sh && sh->lang && strncmp(sh->lang, lang, len) == 0) | |
1417 return sh->aid; | |
1418 } | |
1419 lang += len; | |
1420 lang += strspn(lang, ","); | |
1421 } | |
1422 return -1; | |
1423 } | |
1424 | |
1425 int demuxer_sub_track_by_lang(demuxer_t* d, char* lang) | |
1426 { | |
1427 int i, len; | |
1428 lang += strspn(lang, ","); | |
1429 while((len = strcspn(lang, ",")) > 0) { | |
1430 for (i=0; i < MAX_S_STREAMS; ++i) { | |
1431 sh_sub_t* sh = d->s_streams[i]; | |
1432 if (sh && sh->lang && strncmp(sh->lang, lang, len) == 0) | |
1433 return sh->sid; | |
1434 } | |
1435 lang += len; | |
1436 lang += strspn(lang, ","); | |
1437 } | |
1438 return -1; | |
1439 } |