Re: DataCodecCompress and zLib problem (solved)

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

 



DOH!
OK, I was starting at the wrong place in the hex....
I misread the QTFF docs which include two more atoms on the next page:

Four-character code           Atom type
'cmvd'                                    Compressed movie data
Uncompressed size            32-bit integer


The correct output is now:
//-----------------------------------------------------
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:
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?] 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: trak\tkhd??7???7?X??@$edtselstXnmdia mdhd??7???7?XXH?hdlrmhlrsprtappl? Sprite Animation Media Handlerminf gmhdgmin@??????9hdlrdhlralisappl? Apple Alias Data Handler$dinfdref alis?stbl,stsdzlibsttsXstscstszstcoe? code?sean emk
hjkedtligudta
namedrm]udta#?swrMade with LiveStage Proplugmoviename=drm.mov ctypnone play



On Oct 28, 2005, at 2:26 PM, Graham Anderson wrote:

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="000003DE6D6F6F760000006C6D7668640000000 0BF883792BF88379200000258000002580001000001000000000000000000000000010 0000000000000000000000000000001000000000000000000000000000040000000000 000000000025800000000000000000000000000000000000000020000030D7472616B0 000005C746B686400000003BF883792BF8837920000000100000000000002580000000 000000000FFFE000000000000000100000000000000000000000000000001000000000 000000000000000000040000000000200000002000000000024656474730000001C656 C737400000000000000010000025800000000000100000000026E6D646961000000206 D64686400000000BF883792BF8837920000025800000258000000480000003F68646C7 2000000006D686C72737072746170706C00000001000101C11E53707269746520416E6 96D6174696F6E204D656469612048616E646C6572000002076D696E6600000020676D6 86400000018676D696E000000000040FFFFFFFFFFFF000000000000003968646C72000 0000064686C72616C69736170706C10000001000101D2184170706C6520416C6961732 0446174612048616E646C65720000002464696E660000001C647265660000000000000 0010000000C616C697300000001000000907374626C0000002C7374736400000000000 000010000001C000000000000000000000001000000007A6C696200000000000000187 3747473000000000000000100000001000002580000001C73747363000000000000000 1000000010000000100000001000000147374737A000000000000021D0000000100000 0147374636F000000000000000100000426000000F2636F64650000000000000000000 00000000000DE7365616E0000000100000009000000000000001A00000065000000010 000000000000000000000000000000000160000006D000000010000000000000000000 1000000180000006B0000000100000000000000000000000A000000150000006800000 001000000000000000001000000150000006A000000010000000000000000000000001 56B65647400000001000000000000000000000000160000006C0000000100000000000 0000000000000001500000069000000010000000000000000010000001800000067000 0000100000000000000000000000400000017756474610000000B6E616D6564726D000 000000000005D7564746100000023A9737772001700004D6164652077697468204C697 66553746167652050726F00000019706C75676D6F7669656E616D653D64726D2E6D6F7 60000000C637479706E6F6E6500000009706C6179000000000000000008";

$compressed_movieheader_hex="000001D0636D7664000003DE789C9553C16E13311 09D6C9050A1481C0809D582562247C415714010A9871CA854A9170E70706267D7C4F6A E6C3751F2051CF9037AE52BAAFE021FD08FE003DACE384E77B31107AC7DF278C6F3DEE CCC2E40F75A97E50200945E141C77B8FCF1EE8200907C09E8003DF5DA39EC9F3FDD5B9 4BFB71280EE136FD91CEDAF7E1E34BBA8F76BA3B965AB736F6FFE43378900180AEE1DE EA950CED7199137E4264673C9D0C834FFC7BB038C111F0BAE2CC575A1ACABAC6755A50 24BA773F5EAACB2D28B6C64A4665E96263B11489B8D99E14A605AF2504B3323995C079 9418E8E4DCDB761C5F2DE6F6538CA30251DC93CDDC8FC198CF0802A4A32971D33DF108 021DF08A4DC8A59A33B874412ED9FCE4FA8E637CE3BDEB893B63BBA567212CF03E7430 FB7B16DFF52E498EEFAEFF10C63EB38C397B56F5A36662070FF3B2DB9684DF4DA09666 2CE41F41D2104EC4F1FE0390D642742D600316FDD7F84E8218AA6BF139DDFDBE4BD397 E3A6D2789A9BD32285FB649A982BC75F501A27FCE3D7D6D8F0DD3825B1D43DFA2FBF56 FB7B4D00738615C644BE98BECB35C8833CF72919D5AEADF8B4A9DE7BA5C4841141F90E 3AD0E3FEFE1D4AF2A531A6AD441A5D82A30DF0110468E5D00000039";


$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 12:17 PM, Graham Anderson wrote:


will do ...
and report back....

g


On Oct 28, 2005, at 8:20 AM, Steve Israelson wrote:



Write a program.
Take a buffer of test data.
Compress it using the data compressor and the zlib component.
Save that data.
Compare it to the same data compressed using YOUR zlib, or try to decompress it.
That should help clarify things.


On 28-Oct-05, at 8:07 AM, Graham Anderson wrote:




Well, after sleeping on this,
I need the zlib Library on my server to correctly decompress a QT zlib'd movie header


If I have to process a movie with a compressed movie header, I'm screwed :(

So, what's the deal with zlib and QT ?







_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list      (QuickTime-API@xxxxxxxxxxxxxxx)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quicktime-api/grahama% 40siren.cc

This email sent to grahama@xxxxxxxx



_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list      (QuickTime-API@xxxxxxxxxxxxxxx)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quicktime-api/grahama% 40siren.cc

This email sent to grahama@xxxxxxxx


--
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