Re: Decompressing a string with zlib problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Well, maybe QT has a very wacked out version of zLib ?
This is what I sent to the Quicktime API list:

//---------------------------------------------------------------------- ----------

Ok, here we go :)

Isn't looking through  reams of hex data a blast ?
Kind of like a hot poker in the eye ;)

curl  -l -i "http://www.siren.cc/siren/reel/Library/php/zlib.php";

Here are two versions of the SAME  test movie exported from Livestage:
One version has compressed movie headers
The other version has uncompressed movie headers

With zLib, I am using gzcompress at compression level 6, and gzuncompress. All the string data below was converted from hex with the pack() function.
The actual php script I wrote for this test is way way below.

The upshot:
1)Using zlib to compress and decompress a movie header seems to work fine :)

2)Attempting to 'gzuncompress' a movie header that was compressed in Livestage gives an error. I doubt this is fault of Livestage which I assume is simply calling DataCodecCompress or an equivalent function, no ?

3) The Livestage'd compressed movie header output IS NOT THE SAME as a the zLib'd compressed movie header output

Maybe I am not starting at the correct point in the compressed movie header string?
hopefully, this is enough to start a dialog.


here is the output:

//-----------------------------------------------------
The uncompressed movie header string is:
trak\tkhd??7???7?X??@$edtselstXnmdia mdhd??7???7?XXH?hdlrmhlrsprtappl? Sprite Animation Media Handlerminf gmhdgmin@??????9hdlrdhlralisappl? Apple Alias Data Handler$dinfdref alis?stbl,stsdzlibsttsXstscstszstco&? code?sean emk
hjkedtligudta
namedrm]udta#?swrMade with LiveStage Proplugmoviename=drm.mov ctypnone play

//-----------------------------------------------------
Compressed in Livestage: the compressed movie header string is:
?cmvd?x??S?n1?l?P?H ՂV"G?q@???T?ppbg????l7Q??z?+??Џ???8Nw??}? x?????.@?Z???^w?????| ?=??9???[?????o??~4???k??e?soo?C7?
??P???7?&Fs???4?ǻ?
?,?u????gU?K?s?ꬲҋld?f^?&;H????J`Z?PK3#?\?A?? Mͷa???oe8?0%?<??????*J2?3??!?܊Y?;?D??O??7?;޸??;?Vr??C??m?R????? ӂ[Cߢ??o???8a\dK??\?3?r??Z?ߋJ??\HA?????ԯ*Sj?A??*0?F?] 9 c?8×?oZ6f p?;-?hM?? fb?A?!?O?9


//-----------------------------------------------------
The zlib version of the uncompressed movie header using gzcompress at level 6 is: x??SMN?@~v?ZZ*uQH@??T?U?m?EU??`?HHٰ??!3??̌??I9K?-8E?8??H?s?qb?EG? 4o???=??:?:ϧ??4?ß?/????D??k??>.-?o????[6F?̏K?N?Y?յ??Ѝ???P??????? 撡?h?̻#?g\Y??LYWXϊB?,Qt?~XX?Erd?f^??M???J`Y?BKsA2?.ez):=????Z?p?aJ:? y??y??U?d.??????@?[q?2?-" ??????'?_??7':S?<?{Η3?b????1Z?/?c?p??? o????;ʹh??̄????h?>?]?Z??b????Fd??(87ɷ???4?$?ZmP?l?Ri#uѝpO_?kô?V? Я??p?.-t???R?,?)?b?Y*?K??-?$??T
????u??n??UarC??,??t_????

//-----------------------------------------------------
the uncompressed zlib movie header string  using gzuncompress is:
trak\tkhd??7???7?X??@$edtselstXnmdia mdhd??7???7?XXH?hdlrmhlrsprtappl? Sprite Animation Media Handlerminf gmhdgmin@??????9hdlrdhlralisappl? Apple Alias Data Handler$dinfdref alis?stbl,stsdzlibsttsXstscstszstco&? code?sean emk
hjkedtligudta
namedrm]udta#?swrMade with LiveStage Proplugmoviename=drm.mov ctypnone play

//-----------------------------------------------------
Here is the attempt to use gzuncompress with the movieheader compressed in Livestage:
<br />
<b>Warning</b>: gzuncompress(): data error in <b>/home/www/siren/ siren/reel/Library/php/zlib.php</b> on line <b>34</b><br />



Here is the PHP script:
<?php
$uncompressed_movieheader_hex="000003DE6D6F6F760000006C6D76686400000000B F883792BF883792000002580000025800010000010000000000000000000000000100000 000000000000000000000000001000000000000000000000000000040000000000000000 000025800000000000000000000000000000000000000020000030D7472616B0000005C7 46B686400000003BF883792BF8837920000000100000000000002580000000000000000F FFE000000000000000100000000000000000000000000000001000000000000000000000 000000040000000000200000002000000000024656474730000001C656C7374000000000 00000010000025800000000000100000000026E6D646961000000206D64686400000000B F883792BF8837920000025800000258000000480000003F68646C72000000006D686C727 37072746170706C00000001000101C11E53707269746520416E696D6174696F6E204D656 469612048616E646C6572000002076D696E6600000020676D686400000018676D696E000 000000040FFFFFFFFFFFF000000000000003968646C720000000064686C72616C6973617 0706C10000001000101D2184170706C6520416C69617320446174612048616E646C65720 000002464696E660000001C6472656600000000000000010000000C616C6973000000010 00000907374626C0000002C7374736400000000000000010000001C00000000000000000 0000001000000007A6C69620000000000000018737474730000000000000001000000010 00002580000001C737473630000000000000001000000010000000100000001000000147 374737A000000000000021D00000001000000147374636F0000000000000001000004260 00000F2636F6465000000000000000000000000000000DE7365616E00000001000000090 00000000000001A000000650000000100000000000000000000000000000000001600000 06D0000000100000000000000000001000000180000006B0000000100000000000000000 000000A000000150000006800000001000000000000000001000000150000006A0000000 1000000000000000000000000156B6564740000000100000000000000000000000016000 0006C0000000100000000000000000000000000150000006900000001000000000000000 001000000180000006700000001000000000000000000000004000000177564746100000 00B6E616D6564726D000000000000005D7564746100000023A9737772001700004D61646 52077697468204C69766553746167652050726F00000019706C75676D6F7669656E616D6 53D64726D2E6D6F760000000C637479706E6F6E6500000009706C6179000000000000000 008";

$compressed_movieheader_hex="000001D0636D7664000003DE789C9553C16E1331109 D6C9050A1481C0809D582562247C415714010A9871CA854A9170E70706267D7C4F6AE6C3 751F2051CF9037AE52BAAFE021FD08FE003DACE384E77B31107AC7DF278C6F3DEECCC2E4 0F75A97E50200945E141C77B8FCF1EE8200907C09E8003DF5DA39EC9F3FDD5B94BFB7128 0EE136FD91CEDAF7E1E34BBA8F76BA3B965AB736F6FFE43378900180AEE1DEEA950CED71 99137E4264673C9D0C834FFC7BB038C111F0BAE2CC575A1ACABAC6755A5024BA773F5EAA CB2D28B6C64A4665E96263B11489B8D99E14A605AF2504B3323995C0799418E8E4DCDB76 1C5F2DE6F6538CA30251DC93CDDC8FC198CF0802A4A32971D33DF108021DF08A4DC8A59A 33B874412ED9FCE4FA8E637CE3BDEB893B63BBA567212CF03E7430FB7B16DFF52E498EEF AEFF10C63EB38C397B56F5A36662070FF3B2DB9684DF4DA096662CE41F41D2104EC4F1FE 0390D642742D600316FDD7F84E8218AA6BF139DDFDBE4BD397E3A6D2789A9BD32285FB64 9A982BC75F501A27FCE3D7D6D8F0DD3825B1D43DFA2FBF56FB7B4D00738615C644BE98BE CB35C8833CF72919D5AEADF8B4A9DE7BA5C4841141F90E3AD0E3FEFE1D4AF2A531A6AD44 1A5D82A30DF0110468E5D00000039";


$uncompressed_movieheader_string = pack("H*", $uncompressed_movieheader_hex);

echo '//-----------------------------------------------------'."\n\r";
echo "The uncompressed movie header string is:". "\r\n";
echo $uncompressed_movieheader_string."\r\n\r\n";


$compressed_hexstring = pack("H*", $compressed_movieheader_hex);
echo '//-----------------------------------------------------'."\n\r";
echo "Compressed in Livestage: the compressed movie header string is:"."\r\n";
echo $compressed_hexstring."\r\n\r\n";


$compressed_zlib_movieheader_string = gzcompress ($uncompressed_movieheader_string, 6);
echo '//-----------------------------------------------------'."\n\r";
echo "The zlib version of the uncompressed movie header using gzcompress at level 6 is: "."\r\n";
echo $compressed_zlib_movieheader_string."\r\n\r\n";


$decompressed_zlib_movieheader_string= gzuncompress ($compressed_zlib_movieheader_string);
echo '//-----------------------------------------------------'."\n\r";
echo "the uncompressed zlib movie header string using gzuncompress is: "."\r\n";
echo $decompressed_zlib_movieheader_string."\r\n\r\n";


echo '//-----------------------------------------------------'."\n\r";
echo "Here is the attempt to use gzuncompress with the movieheader compressed in Livestage: "."\r\n";
$decompressLSCompressedMovieHeader= gzuncompress($compressed_hexstring);
echo $decompressLSCompressedMovieHeader."\r\n\r\n";


?>




On Oct 28, 2005, at 8:15 AM, Robin Vickery wrote:

On 10/28/05, Graham Anderson <grahama@xxxxxxxx> wrote:

I am having problems decompressing a zlib'd string located in a file.

In the file headers, the compression says that it is  zlib.
But, when I  'gzinflate' the string, I get the error: gzinflate():
data error in <b
Is the below NOT a zlib or some strange variant ?

<?php
$hex="C0636D7664000003DE789C95533B4E [...]


Is this thread any help?

http://lists.apple.com/archives/QuickTime-java/2003/Sep/msg00038.html

Looking at your binary data in a hex editor, you've got what looks
like a cmvd header at the start.  If the next four bytes are the
length of the compressed data, then you've got probably got 990 bytes
following that that you should be decompressing.

-robin


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux