Mercurial > mplayer.hg
comparison demux_avi.c @ 1973:5216f108cb4f
all error/warn/info messages moved to help_mp-en.h for translation
author | arpi |
---|---|
date | Wed, 26 Sep 2001 21:35:14 +0000 |
parents | 00505a8fa2b4 |
children | d3378988a98e |
comparison
equal
deleted
inserted
replaced
1972:78924572fddf | 1973:5216f108cb4f |
---|---|
4 #include <stdlib.h> | 4 #include <stdlib.h> |
5 #include <unistd.h> | 5 #include <unistd.h> |
6 | 6 |
7 #include "config.h" | 7 #include "config.h" |
8 #include "mp_msg.h" | 8 #include "mp_msg.h" |
9 #include "help_mp.h" | |
9 | 10 |
10 #include "stream.h" | 11 #include "stream.h" |
11 #include "demuxer.h" | 12 #include "demuxer.h" |
12 | 13 |
13 #include "wine/mmreg.h" | 14 #include "wine/mmreg.h" |
219 } | 220 } |
220 ret=demux_avi_read_packet(demux,id,len,priv->idx_pos-1,flags); | 221 ret=demux_avi_read_packet(demux,id,len,priv->idx_pos-1,flags); |
221 if(!ret && priv->skip_video_frames<=0) | 222 if(!ret && priv->skip_video_frames<=0) |
222 if(--max_packs==0){ | 223 if(--max_packs==0){ |
223 demux->stream->eof=1; | 224 demux->stream->eof=1; |
224 mp_msg(MSGT_DEMUX,MSGL_ERR,"demux: file doesn't contain the selected audio or video stream\n"); | 225 mp_msg(MSGT_DEMUX,MSGL_ERR,MSGTR_DoesntContainSelectedStream); |
225 return 0; | 226 return 0; |
226 } | 227 } |
227 } while(ret!=1); | 228 } while(ret!=1); |
228 return 1; | 229 return 1; |
229 } | 230 } |
296 } else return 0; | 297 } else return 0; |
297 ret=demux_avi_read_packet(demux,id,len,idx_pos,flags); | 298 ret=demux_avi_read_packet(demux,id,len,idx_pos,flags); |
298 if(!ret && priv->skip_video_frames<=0) | 299 if(!ret && priv->skip_video_frames<=0) |
299 if(--max_packs==0){ | 300 if(--max_packs==0){ |
300 demux->stream->eof=1; | 301 demux->stream->eof=1; |
301 mp_msg(MSGT_DEMUX,MSGL_ERR,"demux: file doesn't contain the selected audio or video stream\n"); | 302 mp_msg(MSGT_DEMUX,MSGL_ERR,MSGTR_DoesntContainSelectedStream); |
302 return 0; | 303 return 0; |
303 } | 304 } |
304 } while(ret!=1); | 305 } while(ret!=1); |
305 return 1; | 306 return 1; |
306 } | 307 } |
407 v_pos=pos; | 408 v_pos=pos; |
408 if(a_pos!=-1) break; | 409 if(a_pos!=-1) break; |
409 } | 410 } |
410 } | 411 } |
411 if(v_pos==-1){ | 412 if(v_pos==-1){ |
412 mp_msg(MSGT_DEMUX,MSGL_ERR,"AVI_NI: missing video stream!? contact the author, it may be a bug :(\n"); | 413 mp_msg(MSGT_DEMUX,MSGL_ERR,"AVI_NI: " MSGTR_MissingVideoStream); |
413 return NULL; | 414 return NULL; |
414 // GUI_MSG( mplErrorAVINI ) | 415 // GUI_MSG( mplErrorAVINI ) |
415 } | 416 } |
416 if(a_pos==-1){ | 417 if(a_pos==-1){ |
417 mp_msg(MSGT_DEMUX,MSGL_INFO,"AVI_NI: No audio stream found -> nosound\n"); | 418 mp_msg(MSGT_DEMUX,MSGL_INFO,"AVI_NI: " MSGTR_MissingAudioStream); |
418 sh_audio=NULL; | 419 sh_audio=NULL; |
419 } else { | 420 } else { |
420 if(force_ni || abs(a_pos-v_pos)>0x100000){ // distance > 1MB | 421 if(force_ni || abs(a_pos-v_pos)>0x100000){ // distance > 1MB |
421 mp_msg(MSGT_DEMUX,MSGL_INFO,"%s NON-INTERLEAVED AVI file-format!\n",force_ni?"Forced":"Detected"); | 422 mp_msg(MSGT_DEMUX,MSGL_INFO,MSGTR_NI_Message,force_ni?MSGTR_NI_Forced:MSGTR_NI_Detected); |
422 demuxer->type=DEMUXER_TYPE_AVI_NI; // HACK!!!! | 423 demuxer->type=DEMUXER_TYPE_AVI_NI; // HACK!!!! |
423 pts_from_bps=1; // force BPS sync! | 424 pts_from_bps=1; // force BPS sync! |
424 } | 425 } |
425 } | 426 } |
426 } else { | 427 } else { |
427 // no index | 428 // no index |
428 if(force_ni){ | 429 if(force_ni){ |
429 mp_msg(MSGT_DEMUX,MSGL_INFO,"Using NON-INTERLEAVED Broken AVI file-format!\n"); | 430 mp_msg(MSGT_DEMUX,MSGL_INFO,MSGTR_UsingNINI); |
430 demuxer->type=DEMUXER_TYPE_AVI_NINI; // HACK!!!! | 431 demuxer->type=DEMUXER_TYPE_AVI_NINI; // HACK!!!! |
431 priv->idx_pos_a= | 432 priv->idx_pos_a= |
432 priv->idx_pos_v=demuxer->movi_start; | 433 priv->idx_pos_v=demuxer->movi_start; |
433 pts_from_bps=1; // force BPS sync! | 434 pts_from_bps=1; // force BPS sync! |
434 } | 435 } |
435 demuxer->seekable=0; | 436 demuxer->seekable=0; |
436 } | 437 } |
437 if(!ds_fill_buffer(d_video)){ | 438 if(!ds_fill_buffer(d_video)){ |
438 mp_msg(MSGT_DEMUX,MSGL_ERR,"AVI: missing video stream!? contact the author, it may be a bug :(\n"); | 439 mp_msg(MSGT_DEMUX,MSGL_ERR,"AVI: " MSGTR_MissingVideoStreamBug); |
439 return NULL; | 440 return NULL; |
440 // GUI_MSG( mplAVIErrorMissingVideoStream ) | 441 // GUI_MSG( mplAVIErrorMissingVideoStream ) |
441 } | 442 } |
442 sh_video=d_video->sh;sh_video->ds=d_video; | 443 sh_video=d_video->sh;sh_video->ds=d_video; |
443 if(d_audio->id!=-2){ | 444 if(d_audio->id!=-2){ |
444 mp_msg(MSGT_DEMUX,MSGL_V,"AVI: Searching for audio stream (id:%d)\n",d_audio->id); | 445 mp_msg(MSGT_DEMUX,MSGL_V,"AVI: Searching for audio stream (id:%d)\n",d_audio->id); |
445 if(!ds_fill_buffer(d_audio)){ | 446 if(!ds_fill_buffer(d_audio)){ |
446 mp_msg(MSGT_DEMUX,MSGL_INFO,"AVI: No Audio stream found... ->nosound\n"); | 447 mp_msg(MSGT_DEMUX,MSGL_INFO,"AVI: " MSGTR_MissingAudioStream); |
447 sh_audio=NULL; | 448 sh_audio=NULL; |
448 } else { | 449 } else { |
449 sh_audio=d_audio->sh;sh_audio->ds=d_audio; | 450 sh_audio=d_audio->sh;sh_audio->ds=d_audio; |
450 sh_audio->format=sh_audio->wf->wFormatTag; | 451 sh_audio->format=sh_audio->wf->wFormatTag; |
451 } | 452 } |
497 int total=sh_video->video.dwLength; | 498 int total=sh_video->video.dwLength; |
498 if(total<=1){ | 499 if(total<=1){ |
499 // bad video header, try to get it from audio | 500 // bad video header, try to get it from audio |
500 if(sh_audio) total=sh_video->fps*sh_audio->audio.dwLength/sh_audio->wf->nAvgBytesPerSec; | 501 if(sh_audio) total=sh_video->fps*sh_audio->audio.dwLength/sh_audio->wf->nAvgBytesPerSec; |
501 if(total<=1){ | 502 if(total<=1){ |
502 mp_msg(MSGT_SEEK,MSGL_WARN,"Couldn't determine number of frames (for absoulte seek) \n"); | 503 mp_msg(MSGT_SEEK,MSGL_WARN,MSGTR_CouldntDetFNo); |
503 total=0; | 504 total=0; |
504 } | 505 } |
505 } | 506 } |
506 rel_seek_frames=rel_seek_secs*total; | 507 rel_seek_frames=rel_seek_secs*total; |
507 } | 508 } |