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 }