Changeset 6e49c3474539a6c60ade3911897032696b324db7

Show
Ignore:
Timestamp:
02/21/10 23:59:26 (2 years ago)
Author:
Robin Gareus <rgareus@…>
Parents:
66e0a72e52b6c9076ab19cebe52ae0ada6898d4a
Children:
26852f5d3ef287c9672aba17dc5f0bfa3f9a2396
git-committer:
Robin Gareus <rgareus@priroda.local> / 2010-02-22T00:59:26Z+0100
Message:

better RGB -> YUV convertion

Location:
oggzcap
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • oggzcap/OggZCap.xcodeproj/rgareus.mode1v3

    r66e0a72 r6e49c34  
    217217                                                <integer>0</integer> 
    218218                                                <key>bookmark</key> 
    219                                                 <string>B5BEBD7C1131F67C00D88264</string> 
     219                                                <string>B5BEBDA61132001900D88264</string> 
    220220                                                <key>history</key> 
    221221                                                <array> 
    222                                                         <string>B5BEBD701131F51A00D88264</string> 
     222                                                        <string>B5BEBD7C1131F67C00D88264</string> 
    223223                                                </array> 
    224224                                        </dict> 
     
    236236                                <false/> 
    237237                                <key>RubberWindowFrame</key> 
    238                                 <string>278 75 918 717 0 0 1440 878 </string> 
     238                                <string>268 72 918 717 0 0 1440 878 </string> 
    239239                        </dict> 
    240240                </dict> 
     
    271271                        <array> 
    272272                                <dict> 
    273                                         <key>BecomeActive</key> 
    274                                         <true/> 
    275273                                        <key>ContentConfiguration</key> 
    276274                                        <dict> 
     
    310308                                                                <string>080E96DDFE201D6D7F000001</string> 
    311309                                                                <string>454398730D6F33A500761241</string> 
    312                                                                 <string>29B97317FDCFA39411CA2CEA</string> 
    313310                                                                <string>1C37FBAC04509CD000000102</string> 
    314311                                                                <string>1C37FAAC04509CD000000102</string> 
     
    318315                                                        <array> 
    319316                                                                <array> 
    320                                                                         <integer>11</integer> 
    321                                                                         <integer>3</integer> 
    322                                                                         <integer>2</integer> 
     317                                                                        <integer>19</integer> 
    323318                                                                        <integer>0</integer> 
    324319                                                                </array> 
    325320                                                        </array> 
    326321                                                        <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> 
    327                                                         <string>{{0, 0}, {253, 464}}</string> 
     322                                                        <string>{{0, 33}, {253, 464}}</string> 
    328323                                                </dict> 
    329324                                                <key>PBXTopSmartGroupGIDs</key> 
     
    344339                                                </array> 
    345340                                                <key>RubberWindowFrame</key> 
    346                                                 <string>296 296 1050 523 0 0 1440 878 </string> 
     341                                                <string>357 301 1050 523 0 0 1440 878 </string> 
    347342                                        </dict> 
    348343                                        <key>Module</key> 
     
    355350                                        <array> 
    356351                                                <dict> 
     352                                                        <key>BecomeActive</key> 
     353                                                        <true/> 
    357354                                                        <key>ContentConfiguration</key> 
    358355                                                        <dict> 
     
    360357                                                                <string>1CE0B20306471E060097A5F4</string> 
    361358                                                                <key>PBXProjectModuleLabel</key> 
    362                                                                 <string>MyController.h</string> 
     359                                                                <string>MyController.mm</string> 
    363360                                                                <key>PBXSplitModuleInNavigatorKey</key> 
    364361                                                                <dict> 
     
    368365                                                                                <string>1CE0B20406471E060097A5F4</string> 
    369366                                                                                <key>PBXProjectModuleLabel</key> 
    370                                                                                 <string>MyController.h</string> 
     367                                                                                <string>MyController.mm</string> 
    371368                                                                                <key>_historyCapacity</key> 
    372369                                                                                <integer>0</integer> 
    373370                                                                                <key>bookmark</key> 
    374                                                                                 <string>B5BEBD7B1131F67C00D88264</string> 
     371                                                                                <string>B5BEBDA51132001900D88264</string> 
    375372                                                                                <key>history</key> 
    376373                                                                                <array> 
    377374                                                                                        <string>B5D7340810A395840039782E</string> 
    378                                                                                         <string>B5A7E9DA10FC05610031B325</string> 
    379375                                                                                        <string>B5A7E9DB10FC05610031B325</string> 
    380376                                                                                        <string>B5BEBC08112E8B4600D88264</string> 
    381                                                                                         <string>B5BEBC741131DB2700D88264</string> 
    382377                                                                                        <string>B5BEBD4D1131F01400D88264</string> 
    383                                                                                         <string>B5BEBD4E1131F01400D88264</string> 
     378                                                                                        <string>B5BEBD9B1131FEBC00D88264</string> 
     379                                                                                        <string>B5BEBD9C1131FEBC00D88264</string> 
     380                                                                                        <string>B5BEBD9D1131FEBC00D88264</string> 
     381                                                                                        <string>B5A7E9DA10FC05610031B325</string> 
    384382                                                                                </array> 
    385383                                                                        </dict> 
     
    393391                                                        <dict> 
    394392                                                                <key>Frame</key> 
    395                                                                 <string>{{0, 0}, {775, 327}}</string> 
     393                                                                <string>{{0, 0}, {775, 320}}</string> 
    396394                                                                <key>RubberWindowFrame</key> 
    397                                                                 <string>296 296 1050 523 0 0 1440 878 </string> 
     395                                                                <string>357 301 1050 523 0 0 1440 878 </string> 
    398396                                                        </dict> 
    399397                                                        <key>Module</key> 
    400398                                                        <string>PBXNavigatorGroup</string> 
    401399                                                        <key>Proportion</key> 
    402                                                         <string>327pt</string> 
     400                                                        <string>320pt</string> 
    403401                                                </dict> 
    404402                                                <dict> 
     
    413411                                                        <dict> 
    414412                                                                <key>Frame</key> 
    415                                                                 <string>{{0, 332}, {775, 150}}</string> 
     413                                                                <string>{{0, 325}, {775, 157}}</string> 
    416414                                                                <key>RubberWindowFrame</key> 
    417                                                                 <string>296 296 1050 523 0 0 1440 878 </string> 
     415                                                                <string>357 301 1050 523 0 0 1440 878 </string> 
    418416                                                        </dict> 
    419417                                                        <key>Module</key> 
    420418                                                        <string>XCDetailModule</string> 
    421419                                                        <key>Proportion</key> 
    422                                                         <string>150pt</string> 
     420                                                        <string>157pt</string> 
    423421                                                </dict> 
    424422                                        </array> 
     
    439437                        <key>TableOfContents</key> 
    440438                        <array> 
    441                                 <string>B5BEBC281131D1A600D88264</string> 
     439                                <string>B5BEBD9F1131FEBC00D88264</string> 
    442440                                <string>1CE0B1FE06471DED0097A5F4</string> 
    443                                 <string>B5BEBC291131D1A600D88264</string> 
     441                                <string>B5BEBDA01131FEBC00D88264</string> 
    444442                                <string>1CE0B20306471E060097A5F4</string> 
    445443                                <string>1CE0B20506471E060097A5F4</string> 
     
    577575        <key>WindowOrderList</key> 
    578576        <array> 
    579                 <string>1C530D57069F1CE1000CFCEE</string> 
    580                 <string>B5BEBC801131DB2700D88264</string> 
    581                 <string>B5BEBC811131DB2700D88264</string> 
     577                <string>B5BEBDA31131FEBC00D88264</string> 
     578                <string>B5BEBDA41131FEBC00D88264</string> 
     579                <string>1C78EAAD065D492600B07095</string> 
    582580                <string>1CD10A99069EF8BA00B06720</string> 
    583581                <string>B5D733AD10A3869C0039782E</string> 
    584                 <string>1C78EAAD065D492600B07095</string> 
    585582                <string>B5BEBD541131F01400D88264</string> 
    586583                <string>/Users/rgareus/data/inout/oggzcap/OggZCap.xcodeproj</string> 
    587584        </array> 
    588585        <key>WindowString</key> 
    589         <string>296 296 1050 523 0 0 1440 878 </string> 
     586        <string>357 301 1050 523 0 0 1440 878 </string> 
    590587        <key>WindowToolsV3</key> 
    591588        <array> 
     
    608605                                                                <string>1CD0528F0623707200166675</string> 
    609606                                                                <key>PBXProjectModuleLabel</key> 
    610                                                                 <string>MyController.h</string> 
     607                                                                <string>encoder_example.c</string> 
    611608                                                                <key>StatusBarVisibility</key> 
    612609                                                                <true/> 
     
    617614                                                                <string>{{0, 0}, {500, 218}}</string> 
    618615                                                                <key>RubberWindowFrame</key> 
    619                                                                 <string>414 378 500 500 0 0 1440 878 </string> 
     616                                                                <string>0 171 500 500 0 0 1440 878 </string> 
    620617                                                        </dict> 
    621618                                                        <key>Module</key> 
     
    643640                                                                <string>{{0, 223}, {500, 236}}</string> 
    644641                                                                <key>RubberWindowFrame</key> 
    645                                                                 <string>414 378 500 500 0 0 1440 878 </string> 
     642                                                                <string>0 171 500 500 0 0 1440 878 </string> 
    646643                                                        </dict> 
    647644                                                        <key>Module</key> 
     
    666663                        <array> 
    667664                                <string>B5D733AD10A3869C0039782E</string> 
    668                                 <string>B5BEBC2B1131D1A600D88264</string> 
     665                                <string>B5BEBD911131FE6200D88264</string> 
    669666                                <string>1CD0528F0623707200166675</string> 
    670667                                <string>XCMainBuildResultsModuleGUID</string> 
     
    673670                        <string>xcode.toolbar.config.buildV3</string> 
    674671                        <key>WindowString</key> 
    675                         <string>414 378 500 500 0 0 1440 878 </string> 
     672                        <string>0 171 500 500 0 0 1440 878 </string> 
    676673                        <key>WindowToolGUID</key> 
    677674                        <string>B5D733AD10A3869C0039782E</string> 
     
    786783                        <array> 
    787784                                <string>1CD10A99069EF8BA00B06720</string> 
    788                                 <string>B5BEBC411131D5F800D88264</string> 
     785                                <string>B5BEBD921131FE6200D88264</string> 
    789786                                <string>1C162984064C10D400B95A72</string> 
    790                                 <string>B5BEBC421131D5F800D88264</string> 
    791                                 <string>B5BEBC431131D5F800D88264</string> 
    792                                 <string>B5BEBC441131D5F800D88264</string> 
    793                                 <string>B5BEBC451131D5F800D88264</string> 
    794                                 <string>B5BEBC461131D5F800D88264</string> 
     787                                <string>B5BEBD931131FE6200D88264</string> 
     788                                <string>B5BEBD941131FE6200D88264</string> 
     789                                <string>B5BEBD951131FE6200D88264</string> 
     790                                <string>B5BEBD961131FE6200D88264</string> 
     791                                <string>B5BEBD971131FE6200D88264</string> 
    795792                        </array> 
    796793                        <key>ToolbarConfiguration</key> 
     
    911908                                        <array> 
    912909                                                <dict> 
    913                                                         <key>BecomeActive</key> 
    914                                                         <true/> 
    915910                                                        <key>ContentConfiguration</key> 
    916911                                                        <dict> 
     
    948943                        <array> 
    949944                                <string>1C78EAAD065D492600B07095</string> 
    950                                 <string>B5BEBC4B1131D5F800D88264</string> 
     945                                <string>B5BEBD981131FE6200D88264</string> 
    951946                                <string>1C78EAAC065D492600B07095</string> 
    952947                        </array> 
     
    958953                        <string>1C78EAAD065D492600B07095</string> 
    959954                        <key>WindowToolIsVisible</key> 
    960                         <true/> 
     955                        <false/> 
    961956                </dict> 
    962957                <dict> 
  • oggzcap/OggZCap.xcodeproj/rgareus.pbxuser

    r66e0a72 r6e49c34  
    130130                }; 
    131131                perUserProjectItems = { 
    132                         B5A7E9DA10FC05610031B325 = B5A7E9DA10FC05610031B325 /* PBXTextBookmark */; 
    133                         B5A7E9DB10FC05610031B325 = B5A7E9DB10FC05610031B325 /* PBXTextBookmark */; 
    134                         B5BEBC08112E8B4600D88264 = B5BEBC08112E8B4600D88264 /* PBXTextBookmark */; 
    135                         B5BEBC741131DB2700D88264 = B5BEBC741131DB2700D88264 /* PBXTextBookmark */; 
    136                         B5BEBD4D1131F01400D88264 = B5BEBD4D1131F01400D88264 /* PBXTextBookmark */; 
    137                         B5BEBD4E1131F01400D88264 = B5BEBD4E1131F01400D88264 /* PBXTextBookmark */; 
    138                         B5BEBD701131F51A00D88264 = B5BEBD701131F51A00D88264 /* PBXTextBookmark */; 
    139                         B5BEBD7B1131F67C00D88264 = B5BEBD7B1131F67C00D88264 /* PBXTextBookmark */; 
    140                         B5BEBD7C1131F67C00D88264 = B5BEBD7C1131F67C00D88264 /* PBXTextBookmark */; 
    141                         B5D7340810A395840039782E = B5D7340810A395840039782E /* PBXTextBookmark */; 
     132                        B5A7E9DA10FC05610031B325 /* PBXTextBookmark */ = B5A7E9DA10FC05610031B325 /* PBXTextBookmark */; 
     133                        B5A7E9DB10FC05610031B325 /* PBXTextBookmark */ = B5A7E9DB10FC05610031B325 /* PBXTextBookmark */; 
     134                        B5BEBC08112E8B4600D88264 /* PBXTextBookmark */ = B5BEBC08112E8B4600D88264 /* PBXTextBookmark */; 
     135                        B5BEBD4D1131F01400D88264 /* PBXTextBookmark */ = B5BEBD4D1131F01400D88264 /* PBXTextBookmark */; 
     136                        B5BEBD7C1131F67C00D88264 /* PBXTextBookmark */ = B5BEBD7C1131F67C00D88264 /* PBXTextBookmark */; 
     137                        B5BEBD9B1131FEBC00D88264 /* PBXTextBookmark */ = B5BEBD9B1131FEBC00D88264 /* PBXTextBookmark */; 
     138                        B5BEBD9C1131FEBC00D88264 /* PBXTextBookmark */ = B5BEBD9C1131FEBC00D88264 /* PBXTextBookmark */; 
     139                        B5BEBD9D1131FEBC00D88264 /* PBXTextBookmark */ = B5BEBD9D1131FEBC00D88264 /* PBXTextBookmark */; 
     140                        B5BEBDA51132001900D88264 /* PBXTextBookmark */ = B5BEBDA51132001900D88264 /* PBXTextBookmark */; 
     141                        B5BEBDA61132001900D88264 /* PBXTextBookmark */ = B5BEBDA61132001900D88264 /* PBXTextBookmark */; 
     142                        B5D7340810A395840039782E /* PBXTextBookmark */ = B5D7340810A395840039782E /* PBXTextBookmark */; 
    142143                }; 
    143144                sourceControlManager = B5D733A710A384FF0039782E /* Source Control */; 
     
    154155        454398740D6F33A500761241 /* encoder_example.c */ = { 
    155156                uiCtxt = { 
    156                         sepNavIntBoundsRect = "{{0, 0}, {720, 7748}}"; 
    157                         sepNavSelRange = "{9335, 0}"; 
    158                         sepNavVisRange = "{831, 297}"; 
    159                         sepNavWindowFrame = "{{278, 19}, {918, 773}}"; 
     157                        sepNavIntBoundsRect = "{{0, 0}, {1566, 8242}}"; 
     158                        sepNavSelRange = "{3009, 0}"; 
     159                        sepNavVisRange = "{12170, 1697}"; 
     160                        sepNavWindowFrame = "{{268, 16}, {918, 773}}"; 
    160161                }; 
    161162        }; 
     
    194195        4543987D0D6F33A500761241 /* QueueController.m */ = { 
    195196                uiCtxt = { 
    196                         sepNavIntBoundsRect = "{{0, 0}, {999, 1235}}"; 
     197                        sepNavIntBoundsRect = "{{0, 0}, {999, 1196}}"; 
    197198                        sepNavSelRange = "{0, 0}"; 
    198                         sepNavVisRange = "{1, 1314}"; 
     199                        sepNavVisRange = "{1, 622}"; 
    199200                        sepNavWindowFrame = "{{61, 58}, {918, 773}}"; 
    200201                }; 
     
    202203        454398890D6F33A500761241 /* MyController.mm */ = { 
    203204                uiCtxt = { 
    204                         sepNavIntBoundsRect = "{{0, 0}, {1160, 9009}}"; 
    205                         sepNavSelRange = "{15820, 0}"; 
    206                         sepNavVisRange = "{0, 1587}"; 
     205                        sepNavIntBoundsRect = "{{0, 0}, {1160, 8853}}"; 
     206                        sepNavSelRange = "{15018, 0}"; 
     207                        sepNavVisRange = "{16770, 869}"; 
    207208                        sepNavWindowFrame = "{{524, 92}, {778, 736}}"; 
    208209                }; 
     
    227228                name = "MyController.mm: 702"; 
    228229                rLen = 0; 
    229                 rLoc = 21732; 
     230                rLoc = 21746; 
    230231                rType = 0; 
    231232                vrLen = 1056; 
     
    252253                vrLoc = 0; 
    253254        }; 
    254         B5BEBC741131DB2700D88264 /* PBXTextBookmark */ = { 
    255                 isa = PBXTextBookmark; 
    256                 fRef = 454398740D6F33A500761241 /* encoder_example.c */; 
    257                 name = "encoder_example.c: 247"; 
    258                 rLen = 0; 
    259                 rLoc = 9332; 
    260                 rType = 0; 
    261                 vrLen = 192; 
    262                 vrLoc = 831; 
    263         }; 
    264255        B5BEBD4D1131F01400D88264 /* PBXTextBookmark */ = { 
    265256                isa = PBXTextBookmark; 
     
    272263                vrLoc = 8251; 
    273264        }; 
    274         B5BEBD4E1131F01400D88264 /* PBXTextBookmark */ = { 
    275                 isa = PBXTextBookmark; 
    276                 comments = "SGVideo.h: No such file or directory"; 
    277                 fRef = 4543988A0D6F33A500761241 /* MyController.h */; 
    278                 rLen = 1; 
    279                 rLoc = 8; 
    280                 rType = 1; 
    281         }; 
    282         B5BEBD701131F51A00D88264 /* PBXTextBookmark */ = { 
     265        B5BEBD7C1131F67C00D88264 /* PBXTextBookmark */ = { 
    283266                isa = PBXTextBookmark; 
    284267                fRef = 454398740D6F33A500761241 /* encoder_example.c */; 
    285                 name = "encoder_example.c: 187"; 
    286                 rLen = 0; 
    287                 rLoc = 7135; 
    288                 rType = 0; 
    289                 vrLen = 1015; 
    290                 vrLoc = 2651; 
    291         }; 
    292         B5BEBD7B1131F67C00D88264 /* PBXTextBookmark */ = { 
     268                name = "encoder_example.c: 113"; 
     269                rLen = 0; 
     270                rLoc = 4129; 
     271                rType = 0; 
     272                vrLen = 1452; 
     273                vrLoc = 2551; 
     274        }; 
     275        B5BEBD9B1131FEBC00D88264 /* PBXTextBookmark */ = { 
    293276                isa = PBXTextBookmark; 
    294277                fRef = 4543988A0D6F33A500761241 /* MyController.h */; 
     
    297280                rLoc = 159; 
    298281                rType = 0; 
    299                 vrLen = 877; 
     282                vrLen = 816; 
    300283                vrLoc = 569; 
    301284        }; 
    302         B5BEBD7C1131F67C00D88264 /* PBXTextBookmark */ = { 
     285        B5BEBD9C1131FEBC00D88264 /* PBXTextBookmark */ = { 
     286                isa = PBXTextBookmark; 
     287                fRef = 4543987D0D6F33A500761241 /* QueueController.m */; 
     288                name = "QueueController.m: 1"; 
     289                rLen = 0; 
     290                rLoc = 0; 
     291                rType = 0; 
     292                vrLen = 622; 
     293                vrLoc = 1; 
     294        }; 
     295        B5BEBD9D1131FEBC00D88264 /* PBXTextBookmark */ = { 
    303296                isa = PBXTextBookmark; 
    304297                fRef = 454398740D6F33A500761241 /* encoder_example.c */; 
    305                 name = "encoder_example.c: 113"; 
    306                 rLen = 0; 
    307                 rLoc = 3687; 
    308                 rType = 0; 
    309                 vrLen = 1452; 
    310                 vrLoc = 2551; 
     298                name = "encoder_example.c: 102"; 
     299                rLen = 0; 
     300                rLoc = 3722; 
     301                rType = 0; 
     302                vrLen = 723; 
     303                vrLoc = 3017; 
     304        }; 
     305        B5BEBDA51132001900D88264 /* PBXTextBookmark */ = { 
     306                isa = PBXTextBookmark; 
     307                fRef = 454398890D6F33A500761241 /* MyController.mm */; 
     308                name = "MyController.mm: 474"; 
     309                rLen = 0; 
     310                rLoc = 15018; 
     311                rType = 0; 
     312                vrLen = 869; 
     313                vrLoc = 16770; 
     314        }; 
     315        B5BEBDA61132001900D88264 /* PBXTextBookmark */ = { 
     316                isa = PBXTextBookmark; 
     317                fRef = 454398740D6F33A500761241 /* encoder_example.c */; 
     318                name = "encoder_example.c: 94"; 
     319                rLen = 0; 
     320                rLoc = 3009; 
     321                rType = 0; 
     322                vrLen = 1697; 
     323                vrLoc = 12170; 
    311324        }; 
    312325        B5D7339610A384CF0039782E /* OggZCap */ = { 
  • oggzcap/buildmac.sh

    rd24a3d0 r6e49c34  
    11#!/bin/sh 
    2 VERSION=0.2.2 
     2VERSION=0.3.0 
    33DMGFILE=/tmp/oggzcap_v$VERSION.dmg 
    44echo $DMGFILE 
  • oggzcap/src/videoout/encoder_example.c

    r66e0a72 r6e49c34  
    8686        cr_base += dst->uv_stride; 
    8787    } 
    88 #else // RGBA -> 420 
     88#else // RGBA -> 420  
     89        // TODO: offset ! & strides 
    8990         
    9091#define _CR ((bptr[(4*i)+2])&0xff) 
     
    9293#define _CB ((bptr[(4*i)+0])&0xff) 
    9394         
     95#define _CRX ( ( ((bptr[(4*i)+2])&0xff) + ((bptr[(4*(i+1))+2])&0xff) + ((bptr[(4*(i+1+width))+2])&0xff) + ((bptr[(4*(i+1+width))+2])&0xff) )>>2) 
     96#define _CGX ( ( ((bptr[(4*i)+1])&0xff) + ((bptr[(4*(i+1))+1])&0xff) + ((bptr[(4*(i+1+width))+1])&0xff) + ((bptr[(4*(i+1+width))+1])&0xff) )>>2) 
     97#define _CBX ( ( ((bptr[(4*i)+0])&0xff) + ((bptr[(4*(i+1))+0])&0xff) + ((bptr[(4*(i+1+width))+0])&0xff) + ((bptr[(4*(i+1+width))+0])&0xff) )>>2) 
     98         
    9499        uint8_t *bptr = (uint8_t*) b_2vuy; 
    95100        int i; int c=0; 
    96101        for (i=0;i<width*height;i++) { 
    97                 double Y  = (0.257 * _CR) + (0.504 * _CG) + (0.098 * _CB) + 16; 
     102                double Y  = (0.299 * _CR) + (0.587 * _CG) + (0.114 * _CB); 
    98103                if (Y<0) dst->y[i]=0; 
    99104                else if (Y>255) dst->y[i]=255; 
    100105                else dst->y[i]=(uint8_t) floor(Y+.5); 
    101106#if 1 
    102                 if (i%2==0 && ((i/width)%2)==0) { // TODO average 4 pixels 
    103             double V =  (0.439 * _CR) - (0.368 * _CG) - (0.071 * _CB) + 128; 
    104             double U = -(0.148 * _CR) - (0.291 * _CG) + (0.439 * _CB) + 128; 
     107                if (i%2==0 && ((i/width)%2)==0) {  
     108            double V =  (0.500 * _CRX) - (0.419 * _CGX) - (0.081 * _CBX) + 128; 
     109            double U = -(0.169 * _CRX) - (0.331 * _CGX) + (0.500 * _CBX) + 128; 
    105110                         
    106111            if (U<0) dst->u[c]=0;