[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-filesystem-dev
Subject:    Re: [Filesystem-dev] CR-Client: Misc. Shoutcast Fixes
From:       Bob Clark <bobclark () real ! com>
Date:       2005-01-24 23:44:57
Message-ID: F442AF6A-6E61-11D9-AACE-000A27899172 () real ! com
[Download RAW message or body]

The httpfsys changes look good to me.

On Monday, January 24, 2005, at 02:57 PM, milko wrote:

>
> Synopsis: Misc. Shoutcast Fixes
>
> Overview:
>   This change improves the detection and hadling of shoutcast/icecast
> streams. It is not a perfect solution but rather an incremental
> improvement from prior state.
>   The issue with shoutcast or icecast streams in current implementation
> was that HTTP file system associated such streams with MP3 datatype.
> Unfortunately this is no longer the case as Ogg and AAC are possible
> datatypes that are delivered via live HTTP streaming (ice cast).
> The exiting implementation in HTTP file system lumped all headers from
> non standard HTTP response into the content body and automatically
> routed it to MP3 file format for parsing.  A patch was present to
> exclude Ogg streams from such treatment through simple scan for Ogg
> content-type in the first packet received.  As the first packet
> received did not necessarily contain all the response headers, this was
> unreliable and did not cover other non-MP3 datatypes.
> The existing logic also had robustness issues when response headers
> spanned multiple packets by re-running the shoutcast/icecast detection
> logic over header fragments.
>
> The change accomplishes the following improvements:
> - HTTP file system runs shoutcast/icecast detection logic only on  
> start of
>   response data
> - HTTP file system determines shoutcast/icecast type only after  
> substantial
>   response data has been received (1024bytes)
> - mp3 file format does not fail when file system cannot provide file
>   size information (as is case for HTTP live streams)
> - AAC file format does not fail when file system cannot provide file
>   size information (as is case for HTTP live streams)
>
> The heuristic for differentiating among standard HTTP, MP3 live and
> non-MP3 live HTTP streams:
> 1 - if response starts with HTTP and does not contain "icy-metaint" in
>     the first received response packet, normal HTTP is assumed
> 2 - if not 1 and
>     icecast detected by "ICY" in response and
>     content-type is present in starting 1K of response data and
>     mp3 mime type is absent from starting 1K of response data
>     a non MP3 icecast stream is assumed
> 3 - if not 1 and
>     not 2
>     mp3 live stream over HTTP is assumed
>
> Files Modified:
>
> /filesystem/http/httpfsys.cpp,v
> /filesystem/http/httpfsys.h,v
>
> /datatype/aac/fileformat/aacff.cpp,v
>
> /datatype/mp3/fileformat/mp3ff.cpp,v
>
> Image Size and Heap Use impact:
> Negligible
>
> Platforms and Profiles Affected:
> all platforms, all  
> profiles<mp3ff_diffs.txt><httpfsys_diffs.txt><aacff_diffs.txt>_________ 
> ______________________________________
> Filesystem-dev mailing list
> Filesystem-dev@helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/filesystem-dev



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic