+#ifdef HAVE_ZLIB_H
+static ssize_t ReadCompressed( access_t *p_access, uint8_t *p_buffer,
+ size_t i_len )
+{
+ access_sys_t *p_sys = p_access->p_sys;
+
+ if( p_sys->b_compressed )
+ {
+ int i_ret;
+
+ if( !p_sys->inflate.p_buffer )
+ p_sys->inflate.p_buffer = malloc( 256 * 1024 );
+
+ if( p_sys->inflate.stream.avail_in == 0 )
+ {
+ ssize_t i_read = Read( p_access, p_sys->inflate.p_buffer + p_sys->inflate.stream.avail_in, 256 * 1024 );
+ if( i_read <= 0 ) return i_read;
+ p_sys->inflate.stream.next_in = p_sys->inflate.p_buffer;
+ p_sys->inflate.stream.avail_in = i_read;
+ }
+
+ p_sys->inflate.stream.avail_out = i_len;
+ p_sys->inflate.stream.next_out = p_buffer;
+
+ i_ret = inflate( &p_sys->inflate.stream, Z_SYNC_FLUSH );
+ msg_Warn( p_access, "inflate return value: %d, %s", i_ret, p_sys->inflate.stream.msg );
+
+ return i_len - p_sys->inflate.stream.avail_out;
+ }
+ else
+ {
+ return Read( p_access, p_buffer, i_len );
+ }
+}
+#endif
+