comparison libmpdemux/demux_lavf.c @ 18775:bdcbf1070680

support for -alang
author nicodvb
date Wed, 21 Jun 2006 19:24:17 +0000
parents 369074e0eb7b
children df3924884fd0
comparison
equal deleted inserted replaced
18774:332e5ad0ed53 18775:bdcbf1070680
34 #include "avformat.h" 34 #include "avformat.h"
35 #include "avi.h" 35 #include "avi.h"
36 #endif 36 #endif
37 37
38 #define PROBE_BUF_SIZE 2048 38 #define PROBE_BUF_SIZE 2048
39
40 extern char *audio_lang;
39 41
40 typedef struct lavf_priv_t{ 42 typedef struct lavf_priv_t{
41 AVInputFormat *avif; 43 AVInputFormat *avif;
42 AVFormatContext *avfc; 44 AVFormatContext *avfc;
43 ByteIOContext pb; 45 ByteIOContext pb;
242 case CODEC_ID_PCM_MULAW: 244 case CODEC_ID_PCM_MULAW:
243 sh_audio->format = 0x7; 245 sh_audio->format = 0x7;
244 break; 246 break;
245 } 247 }
246 if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf, MSGL_V); 248 if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf, MSGL_V);
247 if(demuxer->audio->id != i && demuxer->audio->id != -1) 249 if((audio_lang && st->language[0] && !strncmp(audio_lang, st->language, 3))
250 || (demuxer->audio->id == i || demuxer->audio->id == -1)
251 ) {
252 demuxer->audio->id = i;
253 demuxer->audio->sh= demuxer->a_streams[i];
254 }
255 else
248 st->discard= AVDISCARD_ALL; 256 st->discard= AVDISCARD_ALL;
249 else{
250 demuxer->audio->id = i;
251 demuxer->audio->sh= demuxer->a_streams[i];
252 }
253 break;} 257 break;}
254 case CODEC_TYPE_VIDEO:{ 258 case CODEC_TYPE_VIDEO:{
255 BITMAPINFOHEADER *bih=calloc(sizeof(BITMAPINFOHEADER) + codec->extradata_size,1); 259 BITMAPINFOHEADER *bih=calloc(sizeof(BITMAPINFOHEADER) + codec->extradata_size,1);
256 sh_video_t* sh_video=new_sh_video(demuxer, i); 260 sh_video_t* sh_video=new_sh_video(demuxer, i);
257 261