Mercurial > mplayer.hg
comparison stream/stream_dvdnav.c @ 21613:8547ae79e74b
simplified aid management in dvdnav_lang_from_aid(); patch by Joakim Patte
author | nicodvb |
---|---|
date | Fri, 15 Dec 2006 23:12:50 +0000 |
parents | 4bfdaf8bcae5 |
children | a6486d2975d2 |
comparison
equal
deleted
inserted
replaced
21612:853c5dbaa91e | 21613:8547ae79e74b |
---|---|
525 int dvdnav_lang_from_aid(stream_t *stream, int aid, unsigned char *buf) { | 525 int dvdnav_lang_from_aid(stream_t *stream, int aid, unsigned char *buf) { |
526 uint8_t lg; | 526 uint8_t lg; |
527 uint16_t lang; | 527 uint16_t lang; |
528 dvdnav_priv_t * priv=(dvdnav_priv_t*)stream->priv; | 528 dvdnav_priv_t * priv=(dvdnav_priv_t*)stream->priv; |
529 | 529 |
530 if(aid >= 0x80 && aid < 0x88) | |
531 aid -= 0x80; | |
532 else if(aid >= 0x88 && aid <= 0x8F) | |
533 aid -= 0x88; | |
534 else if(aid >= 0xA0 && aid <= 0xAF) | |
535 aid -= 0xA0; | |
536 if(aid < 0) | 530 if(aid < 0) |
537 return 0; | 531 return 0; |
538 lg = dvdnav_get_audio_logical_stream(priv->dvdnav, aid); | 532 lg = dvdnav_get_audio_logical_stream(priv->dvdnav, aid & 0x7); |
539 if(lg == 0xff) return 0; | 533 if(lg == 0xff) return 0; |
540 lang = dvdnav_audio_stream_to_lang(priv->dvdnav, lg); | 534 lang = dvdnav_audio_stream_to_lang(priv->dvdnav, lg); |
541 if(lang == 0xffff) return 0; | 535 if(lang == 0xffff) return 0; |
542 buf[0] = lang >> 8; | 536 buf[0] = lang >> 8; |
543 buf[1] = lang & 0xFF; | 537 buf[1] = lang & 0xFF; |