os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     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 }