imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf
changeset 0 40261b775718
equal deleted inserted replaced
-1:000000000000 0:40261b775718
       
     1 {\rtf1\ansi \deff4\deflang1033{\fonttbl{\f1\froman\fcharset2\fprq2 Symbol;}{\f4\froman\fcharset0\fprq2 Times New Roman;}{\f5\fswiss\fcharset0\fprq2 Arial;}{\f11\fmodern\fcharset0\fprq1 Courier New;}}
       
     2 {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
       
     3 \red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\sa120\widctlpar \f4\fs20\lang2057 \snext0 Normal;}{\s1\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl1
       
     4 \pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxta .}}\b\f4\fs28\lang2057\kerning28 \sbasedon0\snext0 heading 1;}{\s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }\b\f4\lang2057\kerning28 \sbasedon1\snext0 heading 2;}{
       
     5 \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon1\snext0 heading 3;}{\s4\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl4\pndec\pnqr\pnprev1\pnstart1\pnsp144 
       
     6 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon3\snext0 heading 4;}{\s5\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl5\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon3\snext0 heading 5;}{
       
     7 \s6\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl6\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon3\snext0 heading 6;}{\s7\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl7\pndec\pnqr\pnprev1\pnstart1\pnsp144 
       
     8 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon3\snext0 heading 7;}{\s8\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl8\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon3\snext0 heading 8;}{
       
     9 \s9\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl9\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 \sbasedon3\snext0 heading 9;}{\*\cs10 \additive Default Paragraph Font;}{\s15\sa120\widctlpar\brdrt\brdrs\brdrw15\brsp20 
       
    10 \tqr\tx9000 \scaps\f4\fs16\lang2057 \sbasedon0\snext15 footer;}{\s16\widctlpar\tqc\tx4153\tqr\tx9000 \scaps\f4\fs16\lang2057 \sbasedon0\snext16 header;}{\s17\sb120\sa120\widctlpar\tqr\tldot\tx9027 \b\caps\f4\fs20\lang2057 \sbasedon0\snext0 toc 1;}{
       
    11 \s18\li220\widctlpar\tqr\tldot\tx9027 \scaps\f4\fs20\lang2057 \sbasedon0\snext0 toc 2;}{\s19\li605\widctlpar\tqr\tldot\tx9027 \f4\fs20\lang2057 \sbasedon0\snext0 toc 3;}{\s20\widctlpar \f4\fs20\lang2057 \sbasedon0\snext20 Table;}{
       
    12 \s21\sb3600\sa120\widctlpar \b\f4\fs36\cf6\lang2057\kerning28 \sbasedon0\snext21 DocumentTitle;}{\*\cs22 \additive\fs16 \sbasedon10 annotation reference;}{\s23\sa120\widctlpar \f4\fs20\lang2057 \sbasedon0\snext23 annotation text;}{\s24\sa120\widctlpar 
       
    13 \f4\fs22\lang2057\kerning28 \sbasedon0\snext24 DocumentSubTitle;}{\s25\li660\widctlpar\tqr\tldot\tx9027 \f4\fs18\lang2057 \sbasedon0\snext0 toc 4;}{\s26\li880\widctlpar\tqr\tldot\tx9027 \f4\fs18\lang2057 \sbasedon0\snext0 toc 5;}{
       
    14 \s27\li1100\widctlpar\tqr\tldot\tx9027 \f4\fs18\lang2057 \sbasedon0\snext0 toc 6;}{\s28\li1320\widctlpar\tqr\tldot\tx9027 \f4\fs18\lang2057 \sbasedon0\snext0 toc 7;}{\s29\li1540\widctlpar\tqr\tldot\tx9027 \f4\fs18\lang2057 \sbasedon0\snext0 toc 8;}{
       
    15 \s30\li1760\widctlpar\tqr\tldot\tx9027 \f4\fs18\lang2057 \sbasedon0\snext0 toc 9;}{\s31\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 \sbasedon0\snext0 HeadingAppendix 1;}{\s32\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 \snext32 Contents;}{\*\cs33 \additive
       
    16 \sbasedon10 page number;}{\s34\widctlpar \b\f4\fs21\cf8\lang2057 \sbasedon0\snext34 Tabletitle;}{\s35\sb240\sa240\widctlpar \b\f4\lang2057 \sbasedon31\snext0 HeadingAppendix 2;}{\s36\sb120\sa120\widctlpar \b\f4\fs22\lang2057 \sbasedon31\snext0 
       
    17 HeadingAppendix 3;}{\s37\li1298\sa220\nowidctlpar \f5\fs22\lang3081 \sbasedon0\snext37 11 BodyText;}}{\info{\title Functional Specification Template}{\author Lane Roberts}{\operator Andrew Baldwin}{\creatim\yr1999\mo7\dy14\hr18\min33}
       
    18 {\revtim\yr1999\mo10\dy14\hr19\min21}{\printim\yr1999\mo7\dy15\hr16\min37}{\version3}{\edmins4}{\nofpages8}{\nofwords1106}{\nofchars6309}{\*\company Symbian LTD}{\vern57431}}\paperw11909\paperh16834\margl1440\margr1440\margt1872 
       
    19 \widowctrl\ftnbj\aenddoc\makebackup\hyphcaps0\formshade \fet0\sectd \psz9\linex0\headery709\footery709\colsx709\endnhere\titlepg {\footer \pard\plain \s15\sa120\widctlpar\tqr\tx9000 \scaps\f4\fs16\lang2057 
       
    20 \par }{\headerf \pard\plain \s16\widctlpar\tqc\tx4153\tqr\tx9000 \scaps\f4\fs16\lang2057 \tab \tab 
       
    21 \par 
       
    22 \par }{\footerf \pard\plain \s15\sa120\widctlpar\tqr\tx9000 \scaps\f4\fs16\lang2057 {\cf6 {\*\bkmkstart bkm_Copyright}\'a9 Copyright Symbian LTD 1999}{\*\bkmkend bkm_Copyright}
       
    23 . This document may not be reproduced in any form, in whole or in part, by any means whatsoever, without the written permission of the copyright holder.
       
    24 \par 
       
    25 \par \pard \s15\sa120\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9000 \tab {\field{\*\fldinst  PAGE }{\fldrslt {\lang1024 1}}} of {\field{\*\fldinst  NUMPAGES }{\fldrslt {\lang1024 1}}}
       
    26 \par }{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5
       
    27 \pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
       
    28 {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\trowd \trgaph108\trleft-108 \cellx8910 \pard\plain \s21\sb3600\sa120\widctlpar\intbl \b\f4\fs36\cf6\lang2057\kerning28 {\b0 {\*\bkmkstart bkm_StandardTitle}
       
    29 Media Server Image Converter API}{\b0\cf2 {\*\bkmkend bkm_StandardTitle}
       
    30 \par }\pard\plain \s24\sa120\widctlpar\intbl \f4\fs22\lang2057\kerning28 \cell \pard\plain \widctlpar\intbl \f4\fs20\lang2057 \row \trowd \trgaph108\trleft-108\trbrdrb\brdrs\brdrw15 \cellx2127\cellx8910 \pard\plain \s24\sb720\widctlpar\intbl 
       
    31 \f4\fs22\lang2057\kerning28 Author:\cell {\cf6 {\*\bkmkstart bkm_DocAuthor}Lane Roberts}{\*\bkmkend bkm_DocAuthor}\cell \pard\plain \widctlpar\intbl \f4\fs20\lang2057 {\b \row }\trowd \trgaph108\trleft-108\trbrdrb\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 
       
    32 \cellx2127\clbrdrb\brdrs\brdrw15 \cellx8910 \pard\plain \s24\widctlpar\intbl \f4\fs22\lang2057\kerning28 Last revised:\cell {\cf6 {\*\bkmkstart bkm_DocDate}13}{\cf6\super th}{\cf6  October 1999}{\*\bkmkend bkm_DocDate}\cell \pard\plain \widctlpar\intbl 
       
    33 \f4\fs20\lang2057 {\b \row }\pard\plain \s24\sa120\widctlpar \f4\fs22\lang2057\kerning28 {\*\bkmkstart _Toc420152784}
       
    34 \par \pard\plain \s32\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 \sect \sectd \pgwsxn11907\margtsxn1871\linex0\headery709\footery709\colsx709\endnhere {\header \pard\plain \s16\widctlpar\tqr\tx9000 \scaps\f4\fs16\lang2057 \tab {\field{\*\fldinst {\b 
       
    35  REF bkm_StandardTitle \\* MERGEFORMAT }}{\fldrslt {\b Media Server Image} Converter API}}
       
    36 \par \pard \s16\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4153\tqr\tx9000 {\field{\*\fldinst  REF bkm_DocDate \\* MERGEFORMAT }{\fldrslt 13th October 1999}}\tab \tab 
       
    37 \par }{\footer \pard\plain \s15\sa120\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9000 \scaps\f4\fs16\lang2057 {\field{\*\fldinst  REF bkm_Copyright \\* MERGEFORMAT }{\fldrslt \'a9 Copyright Symbian LTD 1999}}\tab {\field{\*\fldinst  PAGE }{\fldrslt {
       
    38 \lang1024 4}}} of {\field{\*\fldinst  NUMPAGES }{\fldrslt {\lang1024 1}}}
       
    39 \par }\pard\plain \s32\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 Contents{\*\bkmkend _Toc420152784}
       
    40 \par \pard\plain \s17\sb120\sa120\widctlpar\tqr\tldot\tx9027 \b\caps\f4\fs20\lang2057 {\field\fldedit{\*\fldinst  TOC \\o "1-3" }{\fldrslt {\lang1024 1. Introduction\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560096  }{\field{\*\fldinst {\lang1024 
       
    41  PAGEREF _Toc464560096 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    42 \par }\pard\plain \s18\li220\widctlpar\tqr\tldot\tx9027 \scaps\f4\fs20\lang2057 {\lang1024 1. 1 Purpose and scope\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560097  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560097 }}{\fldrslt {\lang1024 1}}}}}{
       
    43 \lang1024 
       
    44 \par 1. 2 Document History\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560098  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560098 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    45 \par }\pard\plain \s17\sb120\sa120\widctlpar\tqr\tldot\tx9027 \b\caps\f4\fs20\lang2057 {\lang1024 2. Overview\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560099  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560099 }}{\fldrslt {\lang1024 1}}}}}{
       
    46 \lang1024 
       
    47 \par 3. Functional specification\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560100  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560100 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    48 \par }\pard\plain \s18\li220\widctlpar\tqr\tldot\tx9027 \scaps\f4\fs20\lang2057 {\lang1024 3. 1 Rotation\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560101  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560101 }}{\fldrslt {\lang1024 1}}}}}{
       
    49 \lang1024 
       
    50 \par 3. 2 Scaling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560102  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560102 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    51 \par 3. 3 Conversions\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560103  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560103 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    52 \par }\pard\plain \s19\li605\widctlpar\tqr\tldot\tx9027 \f4\fs20\lang2057 {\lang1024 3. 3 .1 File to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560104  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560104 }}{\fldrslt {\lang1024 1}}}}}{
       
    53 \lang1024 
       
    54 \par 3. 3 .2 Descriptor to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560105  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560105 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    55 \par 3. 3 .3 Bitmap to file\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560106  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560106 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    56 \par 3. 3 .4 Bitmap to descriptor\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560107  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560107 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    57 \par 3. 3 .5 Bitmap to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560108  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560108 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    58 \par 3. 3 .6 Asynchronous operation signalling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560109  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560109 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
       
    59 \par }\pard\plain \s18\li220\widctlpar\tqr\tldot\tx9027 \scaps\f4\fs20\lang2057 {\lang1024 3. 4 Image frame information\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560110  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560110 }}{\fldrslt {\lang1024 1
       
    60 }}}}}{\lang1024 
       
    61 \par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 }}\pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
    62 \par {\*\bkmkstart _Toc420154978}{\*\bkmkstart _Toc420156456}{\*\bkmkstart _Toc420075413}{\*\bkmkstart _Toc420152786}{\*\bkmkstart _Toc420153072}{\pntext\pard\plain\b\fs28\lang2057\kerning28  1.\tab}\pard\plain 
       
    63 \s1\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl1\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxta .}}\b\f4\fs28\lang2057\kerning28 \page {\*\bkmkstart _Toc464560096}Introduction{\*\bkmkend _Toc420154978}{\*\bkmkend _Toc420156456}
       
    64 {\*\bkmkend _Toc464560096}
       
    65 \par {\*\bkmkstart _Toc420154979}{\*\bkmkstart _Toc420156457}{\*\bkmkstart _Toc464560097}{\pntext\pard\plain\b\lang2057\kerning28  1. 1\tab}\pard\plain \s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }
       
    66 \b\f4\lang2057\kerning28 Purpose and scope{\*\bkmkend _Toc420075413}{\*\bkmkend _Toc420152786}{\*\bkmkend _Toc420153072}{\*\bkmkend _Toc420154979}{\*\bkmkend _Toc420156457}{\*\bkmkend _Toc464560097}
       
    67 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 This document describes Image Converter API.  This interface is intended to be used to perform common conversion operations on images.
       
    68 \par {\*\bkmkstart _Toc419889486}{\*\bkmkstart _Toc464560098}{\pntext\pard\plain\b\lang2057\kerning28  1. 2\tab}\pard\plain \s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }\b\f4\lang2057\kerning28 Document History
       
    69 {\*\bkmkend _Toc419889486}{\*\bkmkend _Toc464560098}
       
    70 \par \trowd \trgaph108\trhdr\trbrdrt\brdrs\brdrw15\brdrcf1 \trbrdrl\brdrs\brdrw15\brdrcf1 \trbrdrb\brdrs\brdrw15\brdrcf1 \trbrdrr\brdrs\brdrw15\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
       
    71 \brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \clshdng6000 \cellx1276\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \clshdng6000 \cellx2340
       
    72 \clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \clshdng6000 \cellx3300\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
       
    73 \brdrs\brdrw15\brdrcf1 \clshdng6000 \cellx8932 \pard\plain \s34\widctlpar\intbl \b\f4\fs21\cf8\lang2057 Date\cell Revision\cell Status\cell Description\cell \pard\plain \widctlpar\intbl \f4\fs20\lang2057 \row \trowd \trgaph108\trbrdrt
       
    74 \brdrs\brdrw15\brdrcf1 \trbrdrl\brdrs\brdrw15\brdrcf1 \trbrdrb\brdrs\brdrw15\brdrcf1 \trbrdrr\brdrs\brdrw15\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
       
    75 \brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cellx1276\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cellx2340\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
       
    76 \brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cellx3300\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cellx8932 \pard 
       
    77 \sa120\widctlpar\intbl 13-10-1999\cell \pard \qc\sa120\widctlpar\intbl 1\cell \pard \sa120\widctlpar\intbl Draft\cell First draft taken from the Image API Requirements Spec document\cell \pard \widctlpar\intbl \row \pard \sa120\widctlpar 
       
    78 \par {\*\bkmkstart _Toc464560099}{\pntext\pard\plain\b\fs28\lang2057\kerning28  2.\tab}\pard\plain \s1\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl1\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxta .}}\b\f4\fs28\lang2057\kerning28 Overview
       
    79 {\*\bkmkend _Toc464560099}
       
    80 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
    81 The Media Server Image Utility API provides a number of classes, each one dedicated to a specific image operation.  These operations are a subset of all possible ordered pairings of the following set of source/destination types:
       
    82 \par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}\pard \fi-283\li283\sa120\widctlpar{\*\pn \pnlvlblt\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}Image file
       
    83 \par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}In-memory bitmap (CFbsBitmap/CWsBitmap)
       
    84 \par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}Memory descriptor (complete image data)
       
    85 \par \pard \sa120\widctlpar 
       
    86 \par Media Server operations are essentially asynchronous so notification of completion is passed back to the calling code.
       
    87 \par {\pntext\pard\plain\b\fs28\lang2057\kerning28  3.\tab}\pard\plain \s1\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl1\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxta .}}\b\f4\fs28\lang2057\kerning28 \page {\*\bkmkstart _Toc464560100}
       
    88 Functional specification{\*\bkmkend _Toc464560100}
       
    89 \par {\*\bkmkstart _Toc464560101}{\pntext\pard\plain\b\lang2057\kerning28  3. 1\tab}\pard\plain \s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }\b\f4\lang2057\kerning28 Rotation{\*\bkmkend _Toc464560101}
       
    90 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for rotation.
       
    91 \par 
       
    92 \par {\f11 class CMdaBitmapRotator : public CBase
       
    93 \par \tab \{
       
    94 \par public:
       
    95 \par }\pard \fi720\sa120\widctlpar {\f11 enum ERotationAngle
       
    96 \par }\pard \fi720\li720\sa120\widctlpar {\f11 \{
       
    97 \par ERotation90DegreesClockwise,
       
    98 \par ERotation180DegreesClockwise,
       
    99 \par ERotation270DegreesClockwise
       
   100 \par \};
       
   101 \par }\pard \sa120\widctlpar {\f11 public:
       
   102 \par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
       
   103 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TRotationAngle aAngle);
       
   104 \par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,\tab TRotationAngle aAngle);
       
   105 \par }\pard \fi720\sa120\widctlpar {\f11 void CancelRotation();
       
   106 \par }\pard \sa120\widctlpar {\f11 \tab \};
       
   107 \par {\*\bkmkstart _Toc464560102}{\pntext\pard\plain\b\lang2057\kerning28  3. 2\tab}}\pard\plain \s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }\b\f4\lang2057\kerning28 Scaling{\*\bkmkend _Toc464560102}
       
   108 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for scaling.
       
   109 \par 
       
   110 \par \pard\plain \s37\widctlpar \f5\fs22\lang3081 {\f11\fs20 class CMdaBitmapScaler : public CBase
       
   111 \par \tab \{
       
   112 \par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 {\f11 public:
       
   113 \par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
       
   114 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TBool aMaintainAspectRatio = ETrue);
       
   115 \par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,
       
   116 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TSize aDestSize,TBool aMaintainAspectRatio = ETrue);
       
   117 \par }\pard \fi720\sa120\widctlpar {\f11 void CancelScaling();
       
   118 \par \};
       
   119 \par }\pard \sa120\widctlpar 
       
   120 \par {\*\bkmkstart _Toc464560103}{\pntext\pard\plain\b\lang2057\kerning28  3. 3\tab}\pard\plain \s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }\b\f4\lang2057\kerning28 Conversions{\*\bkmkend _Toc464560103}
       
   121 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following class declarations specify the functionality required for conversions.  The common conversion and information
       
   122  functions are defined in an abstract base class.  This allows the user to write polymorphic code for handling image conversion classes.
       
   123 \par {\f11 
       
   124 \par class CMdaImageUtility : public CBase
       
   125 \par \tab \{
       
   126 \par public:
       
   127 \par // Image conversion
       
   128 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0) = 0;
       
   129 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
       
   130 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0) = 0;
       
   131 \par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL() = 0;
       
   132 \par // Image information
       
   133 \par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
       
   134 \par \tab virtual TInt FrameCount() const;
       
   135 \par \tab \};
       
   136 \par }
       
   137 \par {\*\bkmkstart _Toc464560104}{\pntext\pard\plain\b\fs22\lang2057\kerning28  3. 3 .1\tab}\pard\plain \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 File to bitmap
       
   138 {\*\bkmkend _Toc464560104}
       
   139 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
   140 \par {\f11 class CMdaImageFileToBitmapUtility : public CMdaImageUtility
       
   141 \par \tab \{
       
   142 \par public:
       
   143 \par // Object management
       
   144 \par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
       
   145 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
       
   146 \par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC& aFileName,TMdaClipFormat* aFormat = NULL,
       
   147 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
       
   148 \par }\pard \sa120\widctlpar {\f11 \tab void Close();
       
   149 \par // Image conversion
       
   150 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
       
   151 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
       
   152 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
       
   153 \par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
       
   154 \par // Image information
       
   155 \par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
       
   156 \par \tab virtual TInt FrameCount() const;
       
   157 \par \tab \};
       
   158 \par }
       
   159 \par {\*\bkmkstart _Toc464560105}{\pntext\pard\plain\b\fs22\lang2057\kerning28  3. 3 .2\tab}\pard\plain \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 Descriptor to bitmap
       
   160 {\*\bkmkend _Toc464560105}
       
   161 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
   162 \par {\f11 class CMdaImageDescToBitmapUtility : public CMdaImageUtility
       
   163 \par \tab \{
       
   164 \par public:
       
   165 \par // Object management
       
   166 \par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
       
   167 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
       
   168 \par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC8& aDescriptor,TMdaClipFormat* aFormat = NULL,
       
   169 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
       
   170 \par }\pard \sa120\widctlpar {\f11 \tab void Close();
       
   171 \par // Image conversion
       
   172 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
       
   173 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
       
   174 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
       
   175 \par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
       
   176 \par // Image information
       
   177 \par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
       
   178 \par \tab virtual TInt FrameCount() const;
       
   179 \par \tab \};
       
   180 \par }
       
   181 \par {\*\bkmkstart _Toc464560106}{\pntext\pard\plain\b\fs22\lang2057\kerning28  3. 3 .3\tab}\pard\plain \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 Bitmap to file
       
   182 {\*\bkmkend _Toc464560106}
       
   183 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
   184 \par {\f11 class CMdaImageBitmapToFileUtility : public CMdaImageUtility
       
   185 \par \tab \{
       
   186 \par public:
       
   187 \par // Object management
       
   188 \par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
       
   189 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
       
   190 \par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(const TDesC& aFileName,TMdaClipFormat* aFormat,
       
   191 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
       
   192 \par }\pard \sa120\widctlpar {\f11 \tab void Close();
       
   193 \par // Image conversion
       
   194 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
       
   195 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
       
   196 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
       
   197 \par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
       
   198 \par // Image information
       
   199 \par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
       
   200 \par \tab virtual TInt FrameCount() const;
       
   201 \par \tab \};
       
   202 \par }
       
   203 \par {\*\bkmkstart _Toc464560107}{\pntext\pard\plain\b\fs22\lang2057\kerning28  3. 3 .4\tab}\pard\plain \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 Bitmap to descriptor
       
   204 {\*\bkmkend _Toc464560107}
       
   205 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
   206 \par {\f11 class CMdaImageBitmapToDescUtility : public CMdaImageUtility
       
   207 \par \tab \{
       
   208 \par public:
       
   209 \par // Object management
       
   210 \par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
       
   211 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
       
   212 \par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(HBufC8& aDescriptor,TMdaClipFormat* aFormat,
       
   213 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
       
   214 \par }\pard \sa120\widctlpar {\f11 \tab void Close();
       
   215 \par // Image conversion
       
   216 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
       
   217 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
       
   218 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
       
   219 \par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
       
   220 \par // Image information
       
   221 \par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
       
   222 \par \tab virtual TInt FrameCount() const;
       
   223 \par \tab \};
       
   224 \par }
       
   225 \par {\*\bkmkstart _Toc464560108}{\pntext\pard\plain\b\fs22\lang2057\kerning28  3. 3 .5\tab}\pard\plain \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 Bitmap to bitmap
       
   226 {\*\bkmkend _Toc464560108}
       
   227 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
   228 \par {\f11 class CMdaImageBitmapToBitmapUtility : public CMdaImageUtility
       
   229 \par \tab \{
       
   230 \par public:
       
   231 \par // Object management
       
   232 \par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
       
   233 \par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
       
   234 \par }\pard \fi720\sa120\widctlpar {\f11 void OpenL(CFbsBitmap& aBitmap);
       
   235 \par }\pard \sa120\widctlpar {\f11 \tab void Close();
       
   236 \par // Image conversion
       
   237 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
       
   238 \par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
       
   239 \par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
       
   240 \par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
       
   241 \par // Image information
       
   242 \par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
       
   243 \par \tab virtual TInt FrameCount() const;
       
   244 \par \tab \};
       
   245 \par }
       
   246 \par {\*\bkmkstart _Toc464560109}{\pntext\pard\plain\b\fs22\lang2057\kerning28  3. 3 .6\tab}\pard\plain \s3\fi-1151\sb120\sa120\keepn\widctlpar{\*\pn \pnlvl3\pndec\pnqr\pnprev1\pnstart1\pnsp144 {\pntxtb .}}\b\f4\fs22\lang2057\kerning28 
       
   247 Asynchronous operation signalling{\*\bkmkend _Toc464560109}
       
   248 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
       
   249 All functions complete immediately but the operations initiated by some are asynchronous.  Completion of the operation is signalled by the object calling the appropriate observer function on an instantiation of a class derived from {\f11 
       
   250 MMdaImageUtilObserver}:
       
   251 \par 
       
   252 \par {\f11 class MMdaImageUtilObserver
       
   253 \par \tab \{
       
   254 \par public:
       
   255 \par \tab virtual void MiuoCreateComplete(TInt aError) = 0;
       
   256 \par \tab virtual void MiuoOpenComplete(TInt aError) = 0;
       
   257 \par \tab virtual void MiuoConvertComplete(TInt aError) = 0;
       
   258 \par \tab \};}
       
   259 \par {\*\bkmkstart _Toc464560110}{\pntext\pard\plain\b\lang2057\kerning28  3. 4\tab}\pard\plain \s2\fi-1151\sb240\sa240\keepn\widctlpar{\*\pn \pnlvl2\pndec\pnqr\pnprev1\pnstart1\pnsp144 }\b\f4\lang2057\kerning28 Image frame information
       
   260 {\*\bkmkend _Toc464560110}
       
   261 \par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 Image frame information is supplied in a TFrameInfo object:
       
   262 \par 
       
   263 \par {\f11 class TFrameInfo
       
   264 \par \tab \{
       
   265 \par public:
       
   266 \par \tab TSize iSizeInPixels;
       
   267 \par \tab TSize iSizeInTwips;
       
   268 \par \tab TInt iBitsPerPixel;
       
   269 \par \tab TBool iColor;
       
   270 \par \tab TPoint iOffsetInPixels;
       
   271 \par \tab TTimeMicroSeconds iDelay;
       
   272 \par \tab \};
       
   273 \par }
       
   274 \par Image information is available once the {\f11 OpenL()}or {\f11 CreateL()} function has completed successfully.
       
   275 \par }