Mercurial > mplayer.hg
comparison libmpdemux/demux_lavf.c @ 26084:ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
track language.
author | eugeni |
---|---|
date | Fri, 29 Feb 2008 17:25:39 +0000 |
parents | 19fa7a56ed04 |
children | 12904c37c798 |
comparison
equal
deleted
inserted
replaced
26083:19fa7a56ed04 | 26084:ec5749eb6f5f |
---|---|
429 if (codec->extradata_size) { | 429 if (codec->extradata_size) { |
430 sh_sub->extradata = malloc(codec->extradata_size); | 430 sh_sub->extradata = malloc(codec->extradata_size); |
431 memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); | 431 memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); |
432 sh_sub->extradata_len = codec->extradata_size; | 432 sh_sub->extradata_len = codec->extradata_size; |
433 } | 433 } |
434 if (st->language) | |
435 sh_sub->lang = strdup(st->language); | |
434 if (demuxer->sub->id == -1 | 436 if (demuxer->sub->id == -1 |
435 || (demuxer->sub->id == -2 && (dvdsub_lang && st->language[0] && !strncmp(dvdsub_lang, st->language, 3))) | 437 || (demuxer->sub->id == -2 && (dvdsub_lang && st->language[0] && !strncmp(dvdsub_lang, st->language, 3))) |
436 || demuxer->sub->id == priv->sub_streams) { | 438 || demuxer->sub->id == priv->sub_streams) { |
437 dvdsub_id = priv->sub_streams; | 439 dvdsub_id = priv->sub_streams; |
438 demuxer->sub->id = priv->sub_streams; | 440 demuxer->sub->id = priv->sub_streams; |
789 default: | 791 default: |
790 return DEMUXER_CTRL_NOTIMPL; | 792 return DEMUXER_CTRL_NOTIMPL; |
791 } | 793 } |
792 } | 794 } |
793 | 795 |
794 /** \brief Get the language code for a subtitle track. | |
795 | |
796 Retrieves the language code for a subtitle track. | |
797 | |
798 \param demuxer The demuxer to work on | |
799 \param track_num The subtitle track number to get the language from | |
800 */ | |
801 char *demux_lavf_sub_lang(demuxer_t *demuxer, int track_num) | |
802 { | |
803 lavf_priv_t *priv = demuxer->priv; | |
804 return priv->avfc->streams[priv->sstreams[track_num]]->language; | |
805 } | |
806 | |
807 static void demux_close_lavf(demuxer_t *demuxer) | 796 static void demux_close_lavf(demuxer_t *demuxer) |
808 { | 797 { |
809 lavf_priv_t* priv = demuxer->priv; | 798 lavf_priv_t* priv = demuxer->priv; |
810 if (priv){ | 799 if (priv){ |
811 if(priv->avfc) | 800 if(priv->avfc) |