summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-02-29 17:25:37 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-02-29 17:25:37 +0000
commit18fea2aa498664c20a603d9b4fb07ffbae2056c5 (patch)
treec280d8e8435abfb4e46e649d94b6550d2665c254 /libmpdemux
parent85a8aa6f8e5e8853035db61d92d84b486c124157 (diff)
downloadmpv-18fea2aa498664c20a603d9b4fb07ffbae2056c5.tar.bz2
mpv-18fea2aa498664c20a603d9b4fb07ffbae2056c5.tar.xz
Fill sh_audio_t.lang in lavf and mkv demuxers. Use it for printing audio track
language when available. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26115 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_lavf.c2
-rw-r--r--libmpdemux/demux_mkv.c23
-rw-r--r--libmpdemux/matroska.h2
3 files changed, 4 insertions, 23 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index bd3e0cb8cd..c7eeae7fbb 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -335,6 +335,8 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) {
sh_audio->format = 0x7;
break;
}
+ if (st->language)
+ sh_audio->lang = strdup(st->language);
if(mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf, MSGL_V);
if((audio_lang && st->language[0] && !strncmp(audio_lang, st->language, 3))
|| (demuxer->audio->id == i || demuxer->audio->id == -1)) {
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 70c8b89f4d..c0ac842eca 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -1873,6 +1873,8 @@ demux_mkv_open_audio (demuxer_t *demuxer, mkv_track_t *track, int aid)
if(!sh_a) return 1;
mkv_d->audio_tracks[mkv_d->last_aid] = track->tnum;
+ if (track->language && (strcmp(track->language, "und") != 0))
+ sh_a->lang = strdup(track->language);
sh_a->ds = demuxer->audio;
sh_a->wf = malloc (sizeof (WAVEFORMATEX));
if (track->ms_compat && (track->private_size >= sizeof(WAVEFORMATEX)))
@@ -3502,27 +3504,6 @@ demux_mkv_get_sub_lang(demuxer_t *demuxer, int track_num, char *lang,
av_strlcpy(lang, track->language, maxlen);
}
-/** \brief Get the language code for an audio track.
-
- Retrieves the language code for an audio track if it is known.
- If the language code is "und" then do not copy it ("und" = "undefined").
-
- \param demuxer The demuxer to work on
- \param track_num The n'th audio track to get the language from
- \param lang Store the language here
- \param maxlen The maximum number of characters to copy into lang
-*/
-void
-demux_mkv_get_audio_lang(demuxer_t *demuxer, int track_num, char *lang,
- int maxlen)
-{
- mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv;
- mkv_track_t *track = demux_mkv_find_track_by_num (mkv_d, track_num, MATROSKA_TRACK_AUDIO);
- if (track && track->language && strcmp(track->language, "und"))
- av_strlcpy(lang, track->language, maxlen);
-}
-
-
const demuxer_desc_t demuxer_desc_matroska = {
"Matroska demuxer",
"mkv",
diff --git a/libmpdemux/matroska.h b/libmpdemux/matroska.h
index d4238ff90c..bbdc9d8424 100644
--- a/libmpdemux/matroska.h
+++ b/libmpdemux/matroska.h
@@ -62,8 +62,6 @@
#define MKV_S_ASS "S_ASS" // Deprecated
int demux_mkv_change_subs(demuxer_t *demuxer, int new_num);
-void demux_mkv_get_audio_lang(demuxer_t *demuxer, int track_num, char *lang,
- int maxlen);
void demux_mkv_get_sub_lang(demuxer_t *demuxer, int track_num, char *lang,
int maxlen);