imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,275 @@
+{\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;}}
+{\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;
+\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
+\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;}{
+\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 
+{\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;}{
+\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 
+{\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;}{
+\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 
+\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;}{
+\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;}{
+\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 
+\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;}{
+\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;}{
+\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
+\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 
+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}
+{\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 
+\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 
+\par }{\headerf \pard\plain \s16\widctlpar\tqc\tx4153\tqr\tx9000 \scaps\f4\fs16\lang2057 \tab \tab 
+\par 
+\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}
+. 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.
+\par 
+\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}}}
+\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
+\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
+{\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}
+Media Server Image Converter API}{\b0\cf2 {\*\bkmkend bkm_StandardTitle}
+\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 
+\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 
+\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 
+\f4\fs20\lang2057 {\b \row }\pard\plain \s24\sa120\widctlpar \f4\fs22\lang2057\kerning28 {\*\bkmkstart _Toc420152784}
+\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 
+ REF bkm_StandardTitle \\* MERGEFORMAT }}{\fldrslt {\b Media Server Image} Converter API}}
+\par \pard \s16\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4153\tqr\tx9000 {\field{\*\fldinst  REF bkm_DocDate \\* MERGEFORMAT }{\fldrslt 13th October 1999}}\tab \tab 
+\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 {
+\lang1024 4}}} of {\field{\*\fldinst  NUMPAGES }{\fldrslt {\lang1024 1}}}
+\par }\pard\plain \s32\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 Contents{\*\bkmkend _Toc420152784}
+\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 
+ PAGEREF _Toc464560096 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\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}}}}}{
+\lang1024 
+\par 1. 2 Document History\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560098  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560098 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\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}}}}}{
+\lang1024 
+\par 3. Functional specification\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560100  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560100 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\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}}}}}{
+\lang1024 
+\par 3. 2 Scaling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560102  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560102 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\par 3. 3 Conversions\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560103  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560103 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\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}}}}}{
+\lang1024 
+\par 3. 3 .2 Descriptor to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560105  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560105 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\par 3. 3 .3 Bitmap to file\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560106  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560106 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\par 3. 3 .4 Bitmap to descriptor\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560107  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560107 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\par 3. 3 .5 Bitmap to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560108  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560108 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\par 3. 3 .6 Asynchronous operation signalling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560109  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560109 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
+\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
+}}}}}{\lang1024 
+\par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 }}\pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+\par {\*\bkmkstart _Toc420154978}{\*\bkmkstart _Toc420156456}{\*\bkmkstart _Toc420075413}{\*\bkmkstart _Toc420152786}{\*\bkmkstart _Toc420153072}{\pntext\pard\plain\b\fs28\lang2057\kerning28  1.\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 _Toc464560096}Introduction{\*\bkmkend _Toc420154978}{\*\bkmkend _Toc420156456}
+{\*\bkmkend _Toc464560096}
+\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 }
+\b\f4\lang2057\kerning28 Purpose and scope{\*\bkmkend _Toc420075413}{\*\bkmkend _Toc420152786}{\*\bkmkend _Toc420153072}{\*\bkmkend _Toc420154979}{\*\bkmkend _Toc420156457}{\*\bkmkend _Toc464560097}
+\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.
+\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
+{\*\bkmkend _Toc419889486}{\*\bkmkend _Toc464560098}
+\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
+\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
+\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
+\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
+\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
+\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
+\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 
+\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 
+\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
+{\*\bkmkend _Toc464560099}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+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:
+\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
+\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}In-memory bitmap (CFbsBitmap/CWsBitmap)
+\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}Memory descriptor (complete image data)
+\par \pard \sa120\widctlpar 
+\par Media Server operations are essentially asynchronous so notification of completion is passed back to the calling code.
+\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}
+Functional specification{\*\bkmkend _Toc464560100}
+\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}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for rotation.
+\par 
+\par {\f11 class CMdaBitmapRotator : public CBase
+\par \tab \{
+\par public:
+\par }\pard \fi720\sa120\widctlpar {\f11 enum ERotationAngle
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 \{
+\par ERotation90DegreesClockwise,
+\par ERotation180DegreesClockwise,
+\par ERotation270DegreesClockwise
+\par \};
+\par }\pard \sa120\widctlpar {\f11 public:
+\par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TRotationAngle aAngle);
+\par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,\tab TRotationAngle aAngle);
+\par }\pard \fi720\sa120\widctlpar {\f11 void CancelRotation();
+\par }\pard \sa120\widctlpar {\f11 \tab \};
+\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}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for scaling.
+\par 
+\par \pard\plain \s37\widctlpar \f5\fs22\lang3081 {\f11\fs20 class CMdaBitmapScaler : public CBase
+\par \tab \{
+\par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 {\f11 public:
+\par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TBool aMaintainAspectRatio = ETrue);
+\par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TSize aDestSize,TBool aMaintainAspectRatio = ETrue);
+\par }\pard \fi720\sa120\widctlpar {\f11 void CancelScaling();
+\par \};
+\par }\pard \sa120\widctlpar 
+\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}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following class declarations specify the functionality required for conversions.  The common conversion and information
+ functions are defined in an abstract base class.  This allows the user to write polymorphic code for handling image conversion classes.
+\par {\f11 
+\par class CMdaImageUtility : public CBase
+\par \tab \{
+\par public:
+\par // Image conversion
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0) = 0;
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0) = 0;
+\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL() = 0;
+\par // Image information
+\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
+\par \tab virtual TInt FrameCount() const;
+\par \tab \};
+\par }
+\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
+{\*\bkmkend _Toc464560104}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+\par {\f11 class CMdaImageFileToBitmapUtility : public CMdaImageUtility
+\par \tab \{
+\par public:
+\par // Object management
+\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
+\par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC& aFileName,TMdaClipFormat* aFormat = NULL,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
+\par }\pard \sa120\widctlpar {\f11 \tab void Close();
+\par // Image conversion
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
+\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
+\par // Image information
+\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
+\par \tab virtual TInt FrameCount() const;
+\par \tab \};
+\par }
+\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
+{\*\bkmkend _Toc464560105}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+\par {\f11 class CMdaImageDescToBitmapUtility : public CMdaImageUtility
+\par \tab \{
+\par public:
+\par // Object management
+\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
+\par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC8& aDescriptor,TMdaClipFormat* aFormat = NULL,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
+\par }\pard \sa120\widctlpar {\f11 \tab void Close();
+\par // Image conversion
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
+\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
+\par // Image information
+\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
+\par \tab virtual TInt FrameCount() const;
+\par \tab \};
+\par }
+\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
+{\*\bkmkend _Toc464560106}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+\par {\f11 class CMdaImageBitmapToFileUtility : public CMdaImageUtility
+\par \tab \{
+\par public:
+\par // Object management
+\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
+\par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(const TDesC& aFileName,TMdaClipFormat* aFormat,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
+\par }\pard \sa120\widctlpar {\f11 \tab void Close();
+\par // Image conversion
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
+\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
+\par // Image information
+\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
+\par \tab virtual TInt FrameCount() const;
+\par \tab \};
+\par }
+\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
+{\*\bkmkend _Toc464560107}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+\par {\f11 class CMdaImageBitmapToDescUtility : public CMdaImageUtility
+\par \tab \{
+\par public:
+\par // Object management
+\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
+\par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(HBufC8& aDescriptor,TMdaClipFormat* aFormat,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
+\par }\pard \sa120\widctlpar {\f11 \tab void Close();
+\par // Image conversion
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
+\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
+\par // Image information
+\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
+\par \tab virtual TInt FrameCount() const;
+\par \tab \};
+\par }
+\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
+{\*\bkmkend _Toc464560108}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+\par {\f11 class CMdaImageBitmapToBitmapUtility : public CMdaImageUtility
+\par \tab \{
+\par public:
+\par // Object management
+\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
+\par }\pard \fi720\sa120\widctlpar {\f11 void OpenL(CFbsBitmap& aBitmap);
+\par }\pard \sa120\widctlpar {\f11 \tab void Close();
+\par // Image conversion
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
+\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
+\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
+\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
+\par // Image information
+\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
+\par \tab virtual TInt FrameCount() const;
+\par \tab \};
+\par }
+\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 
+Asynchronous operation signalling{\*\bkmkend _Toc464560109}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
+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 
+MMdaImageUtilObserver}:
+\par 
+\par {\f11 class MMdaImageUtilObserver
+\par \tab \{
+\par public:
+\par \tab virtual void MiuoCreateComplete(TInt aError) = 0;
+\par \tab virtual void MiuoOpenComplete(TInt aError) = 0;
+\par \tab virtual void MiuoConvertComplete(TInt aError) = 0;
+\par \tab \};}
+\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
+{\*\bkmkend _Toc464560110}
+\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 Image frame information is supplied in a TFrameInfo object:
+\par 
+\par {\f11 class TFrameInfo
+\par \tab \{
+\par public:
+\par \tab TSize iSizeInPixels;
+\par \tab TSize iSizeInTwips;
+\par \tab TInt iBitsPerPixel;
+\par \tab TBool iColor;
+\par \tab TPoint iOffsetInPixels;
+\par \tab TTimeMicroSeconds iDelay;
+\par \tab \};
+\par }
+\par Image information is available once the {\f11 OpenL()}or {\f11 CreateL()} function has completed successfully.
+\par }
\ No newline at end of file