Mercurial > mplayer.hg
comparison libmpdemux/network.c @ 12175:da8e39bfe121
nsv (Nullsoft streaming video) demuxer
Patch by Reza Jelveh <reza (dot) jelveh (at) tu-harburg (dot) de>
author | rtognimp |
---|---|
date | Mon, 12 Apr 2004 14:19:12 +0000 |
parents | 2c2fb4457982 |
children | d572c605f665 |
comparison
equal
deleted
inserted
replaced
12174:84a3e29c9ec5 | 12175:da8e39bfe121 |
---|---|
90 { "audio/x-mpegurl", DEMUXER_TYPE_PLAYLIST }, | 90 { "audio/x-mpegurl", DEMUXER_TYPE_PLAYLIST }, |
91 { "audio/x-pls", DEMUXER_TYPE_PLAYLIST }, | 91 { "audio/x-pls", DEMUXER_TYPE_PLAYLIST }, |
92 // Real Media | 92 // Real Media |
93 { "audio/x-pn-realaudio", DEMUXER_TYPE_REAL }, | 93 { "audio/x-pn-realaudio", DEMUXER_TYPE_REAL }, |
94 // OGG Streaming | 94 // OGG Streaming |
95 { "application/x-ogg", DEMUXER_TYPE_OGG } | 95 { "application/x-ogg", DEMUXER_TYPE_OGG }, |
96 // NullSoft Streaming Video | |
97 { "video/nsv", DEMUXER_TYPE_NSV} | |
96 | 98 |
97 }; | 99 }; |
98 | 100 |
99 /* | 101 /* |
100 * An autodetection based on the extension is not a good idea. | 102 * An autodetection based on the extension is not a good idea. |
776 // XXX: does this really mean public server? ::atmos | 778 // XXX: does this really mean public server? ::atmos |
777 if( (field_data = http_get_field(http_hdr, "icy-pub")) != NULL ) | 779 if( (field_data = http_get_field(http_hdr, "icy-pub")) != NULL ) |
778 mp_msg(MSGT_NETWORK,MSGL_INFO,"Public : %s\n", atoi(field_data)?"yes":"no"); field_data = NULL; | 780 mp_msg(MSGT_NETWORK,MSGL_INFO,"Public : %s\n", atoi(field_data)?"yes":"no"); field_data = NULL; |
779 if( (field_data = http_get_field(http_hdr, "icy-br")) != NULL ) | 781 if( (field_data = http_get_field(http_hdr, "icy-br")) != NULL ) |
780 mp_msg(MSGT_NETWORK,MSGL_INFO,"Bitrate: %skbit/s\n", field_data); field_data = NULL; | 782 mp_msg(MSGT_NETWORK,MSGL_INFO,"Bitrate: %skbit/s\n", field_data); field_data = NULL; |
781 // Ok, we have detected an mp3 stream | 783 |
782 *file_format = DEMUXER_TYPE_AUDIO; | 784 // If content-type == video/nsv we most likely have a winamp video stream |
785 // otherwise it should be mp3. if there are more types consider adding mime type | |
786 // handling like later | |
787 if( !strcmp((field_data = http_get_field(http_hdr, "content-type")),"video/nsv")) | |
788 *file_format = DEMUXER_TYPE_NSV; | |
789 else | |
790 *file_format = DEMUXER_TYPE_AUDIO; | |
783 return 0; | 791 return 0; |
784 } | 792 } |
785 case 400: // Server Full | 793 case 400: // Server Full |
786 mp_msg(MSGT_NETWORK,MSGL_ERR,"Error: ICY-Server is full, skipping!\n"); | 794 mp_msg(MSGT_NETWORK,MSGL_ERR,"Error: ICY-Server is full, skipping!\n"); |
787 return -1; | 795 return -1; |
1246 case DEMUXER_TYPE_ROQ: | 1254 case DEMUXER_TYPE_ROQ: |
1247 case DEMUXER_TYPE_AUDIO: | 1255 case DEMUXER_TYPE_AUDIO: |
1248 case DEMUXER_TYPE_OGG: | 1256 case DEMUXER_TYPE_OGG: |
1249 case DEMUXER_TYPE_PLAYLIST: | 1257 case DEMUXER_TYPE_PLAYLIST: |
1250 case DEMUXER_TYPE_UNKNOWN: | 1258 case DEMUXER_TYPE_UNKNOWN: |
1259 case DEMUXER_TYPE_NSV: | |
1251 // Generic start, doesn't need to filter | 1260 // Generic start, doesn't need to filter |
1252 // the network stream, it's a raw stream | 1261 // the network stream, it's a raw stream |
1253 ret = nop_streaming_start( stream ); | 1262 ret = nop_streaming_start( stream ); |
1254 if( ret<0 ) { | 1263 if( ret<0 ) { |
1255 mp_msg(MSGT_NETWORK,MSGL_ERR,"nop_streaming_start failed\n"); | 1264 mp_msg(MSGT_NETWORK,MSGL_ERR,"nop_streaming_start failed\n"); |