mirror of
https://github.com/mpv-player/mpv
synced 2024-10-22 08:51:57 +02:00
Streaming function return the file_format and should be tested.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1003 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
599832fdff
commit
5783fc9c0c
35
mplayer.c
35
mplayer.c
@ -644,14 +644,13 @@ if(vcd_track){
|
||||
stream->end_pos=len;
|
||||
#ifdef STREAMING
|
||||
} else {
|
||||
int streaming_protocol;
|
||||
streaming_protocol=autodetectProtocol( url, &f );
|
||||
if( streaming_protocol==STREAMING_TYPE_UNKNOWN ) {
|
||||
file_format=autodetectProtocol( url, &f );
|
||||
if( file_format==DEMUXER_TYPE_UNKNOWN ) {
|
||||
printf("Unable to open URL: %s\n", filename);
|
||||
url_free(url);
|
||||
return 1;
|
||||
} else {
|
||||
f=streaming_start( &url, f, streaming_protocol );
|
||||
f=streaming_start( &url, f, file_format );
|
||||
if(f<0){ printf("Unable to open URL: %s\n", url->url); return 1; }
|
||||
printf("Connected to server: %s\n", url->hostname );
|
||||
}
|
||||
@ -684,6 +683,25 @@ if(vcd_track){
|
||||
if(!has_audio) audio_id=-2; // do NOT read audio packets...
|
||||
|
||||
//=============== Try to open as AVI file: =================
|
||||
#ifdef STREAMING
|
||||
if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_AVI){
|
||||
stream_reset(stream);
|
||||
demuxer=new_demuxer(stream,DEMUXER_TYPE_AVI,audio_id,video_id,dvdsub_id);
|
||||
stream_seek(demuxer->stream,seek_to_byte);
|
||||
//printf("stream3=0x%X vs. 0x%X\n",demuxer->stream,stream);
|
||||
{ //---- RIFF header:
|
||||
int id=stream_read_dword_le(demuxer->stream); // "RIFF"
|
||||
if(id==mmioFOURCC('R','I','F','F')){
|
||||
stream_read_dword_le(demuxer->stream); //filesize
|
||||
id=stream_read_dword_le(demuxer->stream); // "AVI "
|
||||
if(id==formtypeAVI){
|
||||
printf("Detected AVI file format!\n");
|
||||
file_format=DEMUXER_TYPE_AVI;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
stream_reset(stream);
|
||||
demuxer=new_demuxer(stream,DEMUXER_TYPE_AVI,audio_id,video_id,dvdsub_id);
|
||||
stream_seek(demuxer->stream,seek_to_byte);
|
||||
@ -699,8 +717,13 @@ stream_seek(demuxer->stream,seek_to_byte);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
//=============== Try to open as ASF file: =================
|
||||
#ifdef STREAMING
|
||||
if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_ASF){
|
||||
#else
|
||||
if(file_format==DEMUXER_TYPE_UNKNOWN){
|
||||
#endif
|
||||
stream_reset(stream);
|
||||
demuxer=new_demuxer(stream,DEMUXER_TYPE_ASF,audio_id,video_id,dvdsub_id);
|
||||
stream_seek(demuxer->stream,seek_to_byte);
|
||||
@ -710,7 +733,11 @@ if(file_format==DEMUXER_TYPE_UNKNOWN){
|
||||
}
|
||||
}
|
||||
//=============== Try to open as MPEG-PS file: =================
|
||||
#ifdef STREAMING
|
||||
if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MPEG_PS){
|
||||
#else
|
||||
if(file_format==DEMUXER_TYPE_UNKNOWN){
|
||||
#endif
|
||||
stream_reset(stream);
|
||||
demuxer=new_demuxer(stream,DEMUXER_TYPE_MPEG_PS,audio_id,video_id,dvdsub_id);
|
||||
stream_seek(demuxer->stream,seek_to_byte);
|
||||
|
Loading…
Reference in New Issue
Block a user