os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Documentation/ImageConverterAPI.rtf
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