# HG changeset patch # User alex # Date 1013896139 0 # Node ID f51bd827ed1cda2e522dde1d8e434bf7f12d9da5 # Parent dab19bd91cde60fc3f8e870dfd49a1a9836f9da7 fixed MP3 ICY detection, return detected file format for open_stream diff -r dab19bd91cde -r f51bd827ed1c libmpdemux/network.c --- a/libmpdemux/network.c Sat Feb 16 19:58:39 2002 +0000 +++ b/libmpdemux/network.c Sat Feb 16 21:48:59 2002 +0000 @@ -34,7 +34,7 @@ int demuxer_type; } mime_type_table[] = { // MP3 streaming, some MP3 streaming server answer with audio/mpeg - { "audio/mpeg", DEMUXER_TYPE_MPEG_PS }, + { "audio/mpeg", DEMUXER_TYPE_AUDIO }, // MPEG streaming { "video/mpeg", DEMUXER_TYPE_MPEG_PS }, // AVI ??? => video/x-msvideo @@ -68,6 +68,8 @@ { "viv", DEMUXER_TYPE_VIVO }, { "rm", DEMUXER_TYPE_REAL }, { "y4m", DEMUXER_TYPE_Y4M }, + { "mp3", DEMUXER_TYPE_AUDIO }, + { "wav", DEMUXER_TYPE_AUDIO }, }; streaming_ctrl_t * @@ -400,7 +402,7 @@ // Check if the response is an ICY status_code reason_phrase if( !strcasecmp(http_hdr->protocol, "ICY") ) { // Ok, we have detected an mp3 streaming - *file_format = DEMUXER_TYPE_MPEG_PS; + *file_format = DEMUXER_TYPE_AUDIO; return 0; } @@ -658,7 +660,7 @@ } int -streaming_start(stream_t *stream, int demuxer_type, URL_t *url) { +streaming_start(stream_t *stream, int *demuxer_type, URL_t *url) { int ret; if( stream==NULL ) return -1; @@ -667,7 +669,7 @@ return -1; } stream->streaming_ctrl->url = check4proxies( url ); - ret = autodetectProtocol( stream->streaming_ctrl, &stream->fd, &demuxer_type ); + ret = autodetectProtocol( stream->streaming_ctrl, &stream->fd, demuxer_type ); if( ret<0 ) { return -1; } @@ -683,7 +685,7 @@ ret = rtp_streaming_start( stream ); } else // For connection-oriented streams, we can usually determine the streaming type. - switch( demuxer_type ) { + switch( *demuxer_type ) { case DEMUXER_TYPE_ASF: // Send the appropriate HTTP request // Need to filter the network stream. @@ -693,10 +695,17 @@ printf("asf_streaming_start failed\n"); } break; + case DEMUXER_TYPE_MPEG_ES: + case DEMUXER_TYPE_MPEG_PS: case DEMUXER_TYPE_AVI: case DEMUXER_TYPE_MOV: - case DEMUXER_TYPE_MPEG_ES: - case DEMUXER_TYPE_MPEG_PS: + case DEMUXER_TYPE_VIVO: + case DEMUXER_TYPE_FLI: + case DEMUXER_TYPE_REAL: + case DEMUXER_TYPE_Y4M: + case DEMUXER_TYPE_FILM: + case DEMUXER_TYPE_ROQ: + case DEMUXER_TYPE_AUDIO: case DEMUXER_TYPE_UNKNOWN: // Generic start, doesn't need to filter // the network stream, it's a raw stream diff -r dab19bd91cde -r f51bd827ed1c libmpdemux/network.h --- a/libmpdemux/network.h Sat Feb 16 19:58:39 2002 +0000 +++ b/libmpdemux/network.h Sat Feb 16 21:48:59 2002 +0000 @@ -38,7 +38,7 @@ void *data; } streaming_ctrl_t; -//int streaming_start( stream_t *stream, int demuxer_type, URL_t *url ); +//int streaming_start( stream_t *stream, int *demuxer_type, URL_t *url ); int streaming_bufferize( streaming_ctrl_t *streaming_ctrl, char *buffer, int size); diff -r dab19bd91cde -r f51bd827ed1c libmpdemux/open.c --- a/libmpdemux/open.c Sat Feb 16 19:58:39 2002 +0000 +++ b/libmpdemux/open.c Sat Feb 16 21:48:59 2002 +0000 @@ -410,7 +410,7 @@ url = url_new(filename); if(url) { stream=new_stream(f,STREAMTYPE_STREAM); - if( streaming_start( stream, *file_format, url )<0){ + if( streaming_start( stream, file_format, url )<0){ mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_UnableOpenURL, filename); url_free(url); return NULL;