comparison libmpdemux/demuxer.c @ 19540:70a5e89ea4cd

Get rid of demux_aid_vid_mismatch mess.
author reimar
date Sat, 26 Aug 2006 19:17:04 +0000
parents 8dd04ec733f5
children b251bca5820c
comparison
equal deleted inserted replaced
19539:64009ae411fb 19540:70a5e89ea4cd
124 &demuxer_desc_xmms, 124 &demuxer_desc_xmms,
125 #endif 125 #endif
126 NULL 126 NULL
127 }; 127 };
128 128
129 // Should be set to 1 by demux module if ids it passes to new_sh_audio and
130 // new_sh_video don't match aids and vids it accepts from the command line
131 int demux_aid_vid_mismatch = 0;
132
133 void free_demuxer_stream(demux_stream_t *ds){ 129 void free_demuxer_stream(demux_stream_t *ds){
134 ds_free_packs(ds); 130 ds_free_packs(ds);
135 free(ds); 131 free(ds);
136 } 132 }
137 133
201 stream_reset(stream); 197 stream_reset(stream);
202 stream_seek(stream,stream->start_pos); 198 stream_seek(stream,stream->start_pos);
203 return d; 199 return d;
204 } 200 }
205 201
206 sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id){ 202 sh_audio_t* new_sh_audio_aid(demuxer_t *demuxer,int id,int aid){
207 if(id > MAX_A_STREAMS-1 || id < 0) 203 if(id > MAX_A_STREAMS-1 || id < 0)
208 { 204 {
209 mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested audio stream id overflow (%d > %d)\n", 205 mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested audio stream id overflow (%d > %d)\n",
210 id, MAX_A_STREAMS); 206 id, MAX_A_STREAMS);
211 return NULL; 207 return NULL;
221 // set some defaults 217 // set some defaults
222 sh->samplesize=2; 218 sh->samplesize=2;
223 sh->sample_format=AF_FORMAT_S16_NE; 219 sh->sample_format=AF_FORMAT_S16_NE;
224 sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/ 220 sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/
225 sh->pts=MP_NOPTS_VALUE; 221 sh->pts=MP_NOPTS_VALUE;
226 if (!demux_aid_vid_mismatch) 222 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", aid);
227 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", id); 223 }
228 } 224 ((sh_audio_t *)demuxer->a_streams[id])->aid = aid;
229 return demuxer->a_streams[id]; 225 return demuxer->a_streams[id];
230 } 226 }
231 227
232 void free_sh_audio(demuxer_t *demuxer, int id) { 228 void free_sh_audio(demuxer_t *demuxer, int id) {
233 sh_audio_t *sh = demuxer->a_streams[id]; 229 sh_audio_t *sh = demuxer->a_streams[id];
235 mp_msg(MSGT_DEMUXER,MSGL_DBG2,"DEMUXER: freeing sh_audio at %p\n",sh); 231 mp_msg(MSGT_DEMUXER,MSGL_DBG2,"DEMUXER: freeing sh_audio at %p\n",sh);
236 if(sh->wf) free(sh->wf); 232 if(sh->wf) free(sh->wf);
237 free(sh); 233 free(sh);
238 } 234 }
239 235
240 sh_video_t* new_sh_video(demuxer_t *demuxer,int id){ 236 sh_video_t* new_sh_video_vid(demuxer_t *demuxer,int id,int vid){
241 if(id > MAX_V_STREAMS-1 || id < 0) 237 if(id > MAX_V_STREAMS-1 || id < 0)
242 { 238 {
243 mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested video stream id overflow (%d > %d)\n", 239 mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested video stream id overflow (%d > %d)\n",
244 id, MAX_V_STREAMS); 240 id, MAX_V_STREAMS);
245 return NULL; 241 return NULL;
248 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_VideoStreamRedefined,id); 244 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_VideoStreamRedefined,id);
249 } else { 245 } else {
250 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundVideoStream,id); 246 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundVideoStream,id);
251 demuxer->v_streams[id]=malloc(sizeof(sh_video_t)); 247 demuxer->v_streams[id]=malloc(sizeof(sh_video_t));
252 memset(demuxer->v_streams[id],0,sizeof(sh_video_t)); 248 memset(demuxer->v_streams[id],0,sizeof(sh_video_t));
253 if (!demux_aid_vid_mismatch) 249 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", vid);
254 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", id); 250 }
255 } 251 ((sh_video_t *)demuxer->v_streams[id])->vid = vid;
256 return demuxer->v_streams[id]; 252 return demuxer->v_streams[id];
257 } 253 }
258 254
259 void free_sh_video(sh_video_t* sh){ 255 void free_sh_video(sh_video_t* sh){
260 mp_msg(MSGT_DEMUXER,MSGL_DBG2,"DEMUXER: freeing sh_video at %p\n",sh); 256 mp_msg(MSGT_DEMUXER,MSGL_DBG2,"DEMUXER: freeing sh_video at %p\n",sh);
812 int afmt =DEMUXER_TYPE_UNKNOWN,sfmt = DEMUXER_TYPE_UNKNOWN ; 808 int afmt =DEMUXER_TYPE_UNKNOWN,sfmt = DEMUXER_TYPE_UNKNOWN ;
813 int audio_demuxer_type = 0, sub_demuxer_type = 0; 809 int audio_demuxer_type = 0, sub_demuxer_type = 0;
814 int demuxer_force = 0, audio_demuxer_force = 0, 810 int demuxer_force = 0, audio_demuxer_force = 0,
815 sub_demuxer_force = 0; 811 sub_demuxer_force = 0;
816 812
817 demux_aid_vid_mismatch = 0;
818
819 if ((demuxer_type = get_demuxer_type_from_name(demuxer_name, &demuxer_force)) < 0) { 813 if ((demuxer_type = get_demuxer_type_from_name(demuxer_name, &demuxer_force)) < 0) {
820 mp_msg(MSGT_DEMUXER,MSGL_ERR,"-demuxer %s does not exist.\n",demuxer_name); 814 mp_msg(MSGT_DEMUXER,MSGL_ERR,"-demuxer %s does not exist.\n",demuxer_name);
821 } 815 }
822 if ((audio_demuxer_type = get_demuxer_type_from_name(audio_demuxer_name, &audio_demuxer_force)) < 0) { 816 if ((audio_demuxer_type = get_demuxer_type_from_name(audio_demuxer_name, &audio_demuxer_force)) < 0) {
823 mp_msg(MSGT_DEMUXER,MSGL_ERR,"-audio-demuxer %s does not exist.\n",audio_demuxer_name); 817 mp_msg(MSGT_DEMUXER,MSGL_ERR,"-audio-demuxer %s does not exist.\n",audio_demuxer_name);