summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-02-29 17:25:43 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-02-29 17:25:43 +0000
commit2c8e65329f3cabd86428d26dd0ed2fec49f38b41 (patch)
tree40d88edf3e9bad1ae2ce95f9101c92556e8edd6d /libmpdemux/demuxer.c
parent579e353b0f05fe90d6c9ba2353aeae3c2acfb2bf (diff)
downloadmpv-2c8e65329f3cabd86428d26dd0ed2fec49f38b41.tar.bz2
mpv-2c8e65329f3cabd86428d26dd0ed2fec49f38b41.tar.xz
Demuxer-independent functions for selecting tracks based on language.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26118 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 28388bb192..e842164d3a 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -1405,3 +1405,35 @@ int demuxer_set_angle(demuxer_t *demuxer, int angle) {
return angle;
}
+
+int demuxer_audio_track_by_lang(demuxer_t* d, char* lang)
+{
+ int i, len;
+ lang += strspn(lang, ",");
+ while((len = strcspn(lang, ",")) > 0) {
+ for (i=0; i < MAX_A_STREAMS; ++i) {
+ sh_audio_t* sh = d->a_streams[i];
+ if (sh && sh->lang && strncmp(sh->lang, lang, len) == 0)
+ return sh->aid;
+ }
+ lang += len;
+ lang += strspn(lang, ",");
+ }
+ return -1;
+}
+
+int demuxer_sub_track_by_lang(demuxer_t* d, char* lang)
+{
+ int i, len;
+ lang += strspn(lang, ",");
+ while((len = strcspn(lang, ",")) > 0) {
+ for (i=0; i < MAX_S_STREAMS; ++i) {
+ sh_sub_t* sh = d->s_streams[i];
+ if (sh && sh->lang && strncmp(sh->lang, lang, len) == 0)
+ return sh->sid;
+ }
+ lang += len;
+ lang += strspn(lang, ",");
+ }
+ return -1;
+}