[Helix-client-dev] streaming live/on demand content via http

[Helix-client-dev] streaming live/on demand content via http

John Stirling js at reciva.com
Mon Sep 17 01:02:12 PDT 2007


OK thanks, I'll try MEMCACHE.

This is the build I'm attempting:

export BUILD_ROOT=$PWD/build
export PATH=/usr/local/python2.5/bin:$BUILD_ROOT/bin:$PATH
export SYSTEM_ID=linux-2.2-libc6-gcc32-i586

HELIX_DATESTAMP="-D 20070913"
HELIX_BRANCH="helix_restricted"
HELIX_PROFILE="helix-client-audio-all-fixpt"
HELIX_BUILD_COMMAND="build.py"

$HELIX_BUILD_COMMAND -m $HELIX_BRANCH -P $HELIX_PROFILE -trelease 
-tsymbols $HELIX_DATESTAMP filesystem_http


There's normally a few checkout and rebuild iterations before arriving 
at a working version due to missed HELIX_FEATURES, bad combinations of 
HEALIX_FEATURES etc. Do you have a known profile that is known to work 
with that feature ? This would be much appreciated as we're under a bit 
of time pressure to get this working. If you could edit the above build 
info with your recommended one that would be helpful.

eg should I be using branch
hxclient_3_1_0_atlas_restricted

John



Milko Boic wrote:

>
> If using Atlas httpfsys, give HELIX_FEATURE_HTTP_MEMCACHE a try (also 
> configurable via preferences).
> See the description of the feature below:
>
> Also, if you could send us the call-stack of the seg-fault, we could 
> help further with HELIX_FEATURE_HTTPFSYS_MEM_GROWTH_LIMIT feature.
>
> Thanks,
> Milko
>
> Modified by: milko at real.com
> Date: 08:22:07
> Project: Atlas
>
> Synopsis: MemCache support for HTTP
>
> Overview:
> The change supplies mem-cache functionality to
> HTTP file system.
>
> Mem-cache is memory resident MRU driven cache
> that automatically trims during download.
> The cache is useful to maintain an appropriate
> possibly non-contiguous pool of data that is
> in use and provide limited, localized random
> access around most recently used blocks thus
> eliminating need for re-acquisition of the data
> from the server.
>
> HTTP file system already supported MRU driven
> disk based cache (aka ChunkyRes) which stored
> the entire download on the disk. For clients
> utilizing Super-buffer (RecordControl) this
> represented double storage of data. Use
> of disk also introduced performance issues on
> systems displaying video on primary thread due
> to the synchronous disk I/O. For those reason
> use of mem-cache is much preferred.
>
> Already existing HELIX_FEATURE_HTTPFSYS_MEM_GROWTH_LIMIT
> feature was overly simplistic to be a general solution
> as it turnes the ChunkyRes into a linear cache which
> does not work for formats requiring mulitple read
> pointers into the file.
> HELIX_FEATURE_HTTPFSYS_MEM_GROWTH_LIMIT also suffers from
> possibility of having data trapped beyond the range of
> data being read casing the buffer to fill and being unable to
> purge.
>
> HELIX_FEATURE_HTTPFSYS_MEM_GROWTH_LIMIT can still be used
> when new HTTP mem-cache is enabled. Mem-cache fixes the issue
> of trapped data as it is purges data in non-liear fassion
> when buffer is filled.
>
> The new mem-cache feature can be enabled at compile time to
> be used by default via HELIX_FEATURE_HTTP_MEMCACHE.
> It can be also enabled/disabled at run-time (regardless of
> compile-time setting) via HTTPMemCacheSize preference:
> HTTPMemCacheSize = 0
> (mem-cache is disabled, disk cache is used unless
> configured differently)
> HTTPMemCacheSize = <size of cache in bytes>
> <mem-cache is enabled of the indicated size, disk
>
> Mem-cache default size is 4MB and 0.5MB for MIN_HEAP builds.
> Trimming of mem-cache occurs in 25% of total size incerements
> when cache is full and any of the read pointers have less
> than their equal share of 25% of total cache size of contiguous
> data ahead of them.
>
> This changes also changes the deafult ChunkyRes settings:
> MIN_HEAP build:
> Memory resident data 256KB -> 256KB (no change)
> Page size 32kb -> 32kb (no change)
> Regular build:
> Memory resident data 256KB -> 4MB
> Page size 32KB -> 64KB
>
>
> Modified files:
> /common/fileio/chunkres.cpp,
> common/fileio/pub/chunkres.h
> /filesystem/http/httpfsys.cpp
> /filesystem/http/httpfsys.h,
>
> Image Size and Heap Use impact (Client -Only):
> Small increase.
>
> Platforms and Profiles Affected:
> All
>
> Distribution Libraries Affected:
> none
>
> Distribution library impact and planned action:
> n/a
>
> Platforms and Profiles Build Verified:
> system id: macos-gcc4-xcode22,
> target: LitePlayer
> profile: helix-client-playerx
> branch: playerx
> Options: nodll
>
>
> Platforms and Profiles Functionality verified:
> OS-X
>
> Branches:
> HEAD, hxclient_3_1_0_atlas
>
>
> At 08:11 AM 9/14/2007, John Stirling wrote:
>
>> It appears we never had this working. We'd set the helix fetures, but 
>> it was a cayenne build which doesn't appear to have any of those 
>> features in the code.
>>
>> When we checkout and build filesystem_http on atlas and copy that 
>> into a cayenne build it works fine (with MEM_GROWTH not defined). As 
>> soon as we define it, then it either segfaults (on arm-linux - don't 
>> know where yet) or or just sits there 'opening file'.
>>
>> Do you have a known working profile that contains these features ? 
>> Are there any others essential to making it work ?
>>
>> John
>>
>>
>>
>> John Stirling wrote:
>>
>>> We're seeing a problem when we try to play a large mp3 podcast via 
>>> http (file length is known).
>>>
>>> We've already got these features defined (as suggested by greg) 
>>> which fixed playback of fixed length mp3 files via http (smaller 
>>> files than the podcast we're trying to play).
>>>
>>> project.AddDefines('HELIX_FEATURE_HTTPFSYS_MEM_GROWTH_LIMIT')
>>> project.AddDefines("CHUNK_RES_MEM_FLOOR=128000")
>>> project.AddDefines("CHUNK_RES_MEM_CEILING=256000")
>>>
>>> When playing the file a PNX_* file is created in /tmp which grows 
>>> until we run out of memory.
>>>
>>> We'll check what's getting reported by
>>> HXBOOL CHTTPFileObject::IsLiveStream(const char* pMimeType)
>>>
>>> In the meantime do you have any suggestions ?
>>>
>>> John
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Helix-client-dev mailing list
>>> Helix-client-dev at helixcommunity.org
>>> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
>>
>>
>>
>>
>> _______________________________________________
>> Helix-client-dev mailing list
>> Helix-client-dev at helixcommunity.org
>> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
>
>
>




More information about the Helix-client-dev mailing list
 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.