os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,275 @@
     1.4 +{\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;}}
     1.5 +{\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;
     1.6 +\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
     1.7 +\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;}{
     1.8 +\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 
     1.9 +{\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;}{
    1.10 +\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 
    1.11 +{\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;}{
    1.12 +\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 
    1.13 +\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;}{
    1.14 +\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;}{
    1.15 +\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 
    1.16 +\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;}{
    1.17 +\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;}{
    1.18 +\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
    1.19 +\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 
    1.20 +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}
    1.21 +{\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 
    1.22 +\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 
    1.23 +\par }{\headerf \pard\plain \s16\widctlpar\tqc\tx4153\tqr\tx9000 \scaps\f4\fs16\lang2057 \tab \tab 
    1.24 +\par 
    1.25 +\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}
    1.26 +. 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.
    1.27 +\par 
    1.28 +\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}}}
    1.29 +\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
    1.30 +\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
    1.31 +{\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}
    1.32 +Media Server Image Converter API}{\b0\cf2 {\*\bkmkend bkm_StandardTitle}
    1.33 +\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 
    1.34 +\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 
    1.35 +\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 
    1.36 +\f4\fs20\lang2057 {\b \row }\pard\plain \s24\sa120\widctlpar \f4\fs22\lang2057\kerning28 {\*\bkmkstart _Toc420152784}
    1.37 +\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 
    1.38 + REF bkm_StandardTitle \\* MERGEFORMAT }}{\fldrslt {\b Media Server Image} Converter API}}
    1.39 +\par \pard \s16\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4153\tqr\tx9000 {\field{\*\fldinst  REF bkm_DocDate \\* MERGEFORMAT }{\fldrslt 13th October 1999}}\tab \tab 
    1.40 +\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 {
    1.41 +\lang1024 4}}} of {\field{\*\fldinst  NUMPAGES }{\fldrslt {\lang1024 1}}}
    1.42 +\par }\pard\plain \s32\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 Contents{\*\bkmkend _Toc420152784}
    1.43 +\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 
    1.44 + PAGEREF _Toc464560096 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.45 +\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}}}}}{
    1.46 +\lang1024 
    1.47 +\par 1. 2 Document History\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560098  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560098 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.48 +\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}}}}}{
    1.49 +\lang1024 
    1.50 +\par 3. Functional specification\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560100  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560100 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.51 +\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}}}}}{
    1.52 +\lang1024 
    1.53 +\par 3. 2 Scaling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560102  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560102 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.54 +\par 3. 3 Conversions\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560103  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560103 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.55 +\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}}}}}{
    1.56 +\lang1024 
    1.57 +\par 3. 3 .2 Descriptor to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560105  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560105 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.58 +\par 3. 3 .3 Bitmap to file\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560106  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560106 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.59 +\par 3. 3 .4 Bitmap to descriptor\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560107  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560107 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.60 +\par 3. 3 .5 Bitmap to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560108  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560108 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.61 +\par 3. 3 .6 Asynchronous operation signalling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560109  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560109 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
    1.62 +\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
    1.63 +}}}}}{\lang1024 
    1.64 +\par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 }}\pard\plain \sa120\widctlpar \f4\fs20\lang2057 
    1.65 +\par {\*\bkmkstart _Toc420154978}{\*\bkmkstart _Toc420156456}{\*\bkmkstart _Toc420075413}{\*\bkmkstart _Toc420152786}{\*\bkmkstart _Toc420153072}{\pntext\pard\plain\b\fs28\lang2057\kerning28  1.\tab}\pard\plain 
    1.66 +\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}
    1.67 +{\*\bkmkend _Toc464560096}
    1.68 +\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 }
    1.69 +\b\f4\lang2057\kerning28 Purpose and scope{\*\bkmkend _Toc420075413}{\*\bkmkend _Toc420152786}{\*\bkmkend _Toc420153072}{\*\bkmkend _Toc420154979}{\*\bkmkend _Toc420156457}{\*\bkmkend _Toc464560097}
    1.70 +\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.
    1.71 +\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
    1.72 +{\*\bkmkend _Toc419889486}{\*\bkmkend _Toc464560098}
    1.73 +\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
    1.74 +\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
    1.75 +\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
    1.76 +\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
    1.77 +\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
    1.78 +\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
    1.79 +\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 
    1.80 +\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 
    1.81 +\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
    1.82 +{\*\bkmkend _Toc464560099}
    1.83 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
    1.84 +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:
    1.85 +\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
    1.86 +\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}In-memory bitmap (CFbsBitmap/CWsBitmap)
    1.87 +\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}Memory descriptor (complete image data)
    1.88 +\par \pard \sa120\widctlpar 
    1.89 +\par Media Server operations are essentially asynchronous so notification of completion is passed back to the calling code.
    1.90 +\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}
    1.91 +Functional specification{\*\bkmkend _Toc464560100}
    1.92 +\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}
    1.93 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for rotation.
    1.94 +\par 
    1.95 +\par {\f11 class CMdaBitmapRotator : public CBase
    1.96 +\par \tab \{
    1.97 +\par public:
    1.98 +\par }\pard \fi720\sa120\widctlpar {\f11 enum ERotationAngle
    1.99 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 \{
   1.100 +\par ERotation90DegreesClockwise,
   1.101 +\par ERotation180DegreesClockwise,
   1.102 +\par ERotation270DegreesClockwise
   1.103 +\par \};
   1.104 +\par }\pard \sa120\widctlpar {\f11 public:
   1.105 +\par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
   1.106 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TRotationAngle aAngle);
   1.107 +\par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,\tab TRotationAngle aAngle);
   1.108 +\par }\pard \fi720\sa120\widctlpar {\f11 void CancelRotation();
   1.109 +\par }\pard \sa120\widctlpar {\f11 \tab \};
   1.110 +\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}
   1.111 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for scaling.
   1.112 +\par 
   1.113 +\par \pard\plain \s37\widctlpar \f5\fs22\lang3081 {\f11\fs20 class CMdaBitmapScaler : public CBase
   1.114 +\par \tab \{
   1.115 +\par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 {\f11 public:
   1.116 +\par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
   1.117 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TBool aMaintainAspectRatio = ETrue);
   1.118 +\par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,
   1.119 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TSize aDestSize,TBool aMaintainAspectRatio = ETrue);
   1.120 +\par }\pard \fi720\sa120\widctlpar {\f11 void CancelScaling();
   1.121 +\par \};
   1.122 +\par }\pard \sa120\widctlpar 
   1.123 +\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}
   1.124 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following class declarations specify the functionality required for conversions.  The common conversion and information
   1.125 + functions are defined in an abstract base class.  This allows the user to write polymorphic code for handling image conversion classes.
   1.126 +\par {\f11 
   1.127 +\par class CMdaImageUtility : public CBase
   1.128 +\par \tab \{
   1.129 +\par public:
   1.130 +\par // Image conversion
   1.131 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0) = 0;
   1.132 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
   1.133 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0) = 0;
   1.134 +\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL() = 0;
   1.135 +\par // Image information
   1.136 +\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
   1.137 +\par \tab virtual TInt FrameCount() const;
   1.138 +\par \tab \};
   1.139 +\par }
   1.140 +\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
   1.141 +{\*\bkmkend _Toc464560104}
   1.142 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
   1.143 +\par {\f11 class CMdaImageFileToBitmapUtility : public CMdaImageUtility
   1.144 +\par \tab \{
   1.145 +\par public:
   1.146 +\par // Object management
   1.147 +\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
   1.148 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
   1.149 +\par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC& aFileName,TMdaClipFormat* aFormat = NULL,
   1.150 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
   1.151 +\par }\pard \sa120\widctlpar {\f11 \tab void Close();
   1.152 +\par // Image conversion
   1.153 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
   1.154 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
   1.155 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
   1.156 +\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
   1.157 +\par // Image information
   1.158 +\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
   1.159 +\par \tab virtual TInt FrameCount() const;
   1.160 +\par \tab \};
   1.161 +\par }
   1.162 +\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
   1.163 +{\*\bkmkend _Toc464560105}
   1.164 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
   1.165 +\par {\f11 class CMdaImageDescToBitmapUtility : public CMdaImageUtility
   1.166 +\par \tab \{
   1.167 +\par public:
   1.168 +\par // Object management
   1.169 +\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
   1.170 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
   1.171 +\par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC8& aDescriptor,TMdaClipFormat* aFormat = NULL,
   1.172 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
   1.173 +\par }\pard \sa120\widctlpar {\f11 \tab void Close();
   1.174 +\par // Image conversion
   1.175 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
   1.176 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
   1.177 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
   1.178 +\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
   1.179 +\par // Image information
   1.180 +\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
   1.181 +\par \tab virtual TInt FrameCount() const;
   1.182 +\par \tab \};
   1.183 +\par }
   1.184 +\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
   1.185 +{\*\bkmkend _Toc464560106}
   1.186 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
   1.187 +\par {\f11 class CMdaImageBitmapToFileUtility : public CMdaImageUtility
   1.188 +\par \tab \{
   1.189 +\par public:
   1.190 +\par // Object management
   1.191 +\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
   1.192 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
   1.193 +\par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(const TDesC& aFileName,TMdaClipFormat* aFormat,
   1.194 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
   1.195 +\par }\pard \sa120\widctlpar {\f11 \tab void Close();
   1.196 +\par // Image conversion
   1.197 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
   1.198 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
   1.199 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
   1.200 +\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
   1.201 +\par // Image information
   1.202 +\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
   1.203 +\par \tab virtual TInt FrameCount() const;
   1.204 +\par \tab \};
   1.205 +\par }
   1.206 +\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
   1.207 +{\*\bkmkend _Toc464560107}
   1.208 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
   1.209 +\par {\f11 class CMdaImageBitmapToDescUtility : public CMdaImageUtility
   1.210 +\par \tab \{
   1.211 +\par public:
   1.212 +\par // Object management
   1.213 +\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
   1.214 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
   1.215 +\par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(HBufC8& aDescriptor,TMdaClipFormat* aFormat,
   1.216 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
   1.217 +\par }\pard \sa120\widctlpar {\f11 \tab void Close();
   1.218 +\par // Image conversion
   1.219 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
   1.220 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
   1.221 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
   1.222 +\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
   1.223 +\par // Image information
   1.224 +\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
   1.225 +\par \tab virtual TInt FrameCount() const;
   1.226 +\par \tab \};
   1.227 +\par }
   1.228 +\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
   1.229 +{\*\bkmkend _Toc464560108}
   1.230 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
   1.231 +\par {\f11 class CMdaImageBitmapToBitmapUtility : public CMdaImageUtility
   1.232 +\par \tab \{
   1.233 +\par public:
   1.234 +\par // Object management
   1.235 +\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
   1.236 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
   1.237 +\par }\pard \fi720\sa120\widctlpar {\f11 void OpenL(CFbsBitmap& aBitmap);
   1.238 +\par }\pard \sa120\widctlpar {\f11 \tab void Close();
   1.239 +\par // Image conversion
   1.240 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
   1.241 +\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
   1.242 +\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
   1.243 +\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
   1.244 +\par // Image information
   1.245 +\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
   1.246 +\par \tab virtual TInt FrameCount() const;
   1.247 +\par \tab \};
   1.248 +\par }
   1.249 +\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 
   1.250 +Asynchronous operation signalling{\*\bkmkend _Toc464560109}
   1.251 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
   1.252 +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 
   1.253 +MMdaImageUtilObserver}:
   1.254 +\par 
   1.255 +\par {\f11 class MMdaImageUtilObserver
   1.256 +\par \tab \{
   1.257 +\par public:
   1.258 +\par \tab virtual void MiuoCreateComplete(TInt aError) = 0;
   1.259 +\par \tab virtual void MiuoOpenComplete(TInt aError) = 0;
   1.260 +\par \tab virtual void MiuoConvertComplete(TInt aError) = 0;
   1.261 +\par \tab \};}
   1.262 +\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
   1.263 +{\*\bkmkend _Toc464560110}
   1.264 +\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 Image frame information is supplied in a TFrameInfo object:
   1.265 +\par 
   1.266 +\par {\f11 class TFrameInfo
   1.267 +\par \tab \{
   1.268 +\par public:
   1.269 +\par \tab TSize iSizeInPixels;
   1.270 +\par \tab TSize iSizeInTwips;
   1.271 +\par \tab TInt iBitsPerPixel;
   1.272 +\par \tab TBool iColor;
   1.273 +\par \tab TPoint iOffsetInPixels;
   1.274 +\par \tab TTimeMicroSeconds iDelay;
   1.275 +\par \tab \};
   1.276 +\par }
   1.277 +\par Image information is available once the {\f11 OpenL()}or {\f11 CreateL()} function has completed successfully.
   1.278 +\par }
   1.279 \ No newline at end of file