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.
sl@0
     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;}}
sl@0
     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;
sl@0
     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
sl@0
     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;}{
sl@0
     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 
sl@0
     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;}{
sl@0
     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 
sl@0
     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;}{
sl@0
     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 
sl@0
    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;}{
sl@0
    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;}{
sl@0
    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 
sl@0
    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;}{
sl@0
    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;}{
sl@0
    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
sl@0
    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 
sl@0
    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}
sl@0
    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 
sl@0
    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 
sl@0
    20
\par }{\headerf \pard\plain \s16\widctlpar\tqc\tx4153\tqr\tx9000 \scaps\f4\fs16\lang2057 \tab \tab 
sl@0
    21
\par 
sl@0
    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}
sl@0
    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.
sl@0
    24
\par 
sl@0
    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}}}
sl@0
    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
sl@0
    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
sl@0
    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}
sl@0
    29
Media Server Image Converter API}{\b0\cf2 {\*\bkmkend bkm_StandardTitle}
sl@0
    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 
sl@0
    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 
sl@0
    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 
sl@0
    33
\f4\fs20\lang2057 {\b \row }\pard\plain \s24\sa120\widctlpar \f4\fs22\lang2057\kerning28 {\*\bkmkstart _Toc420152784}
sl@0
    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 
sl@0
    35
 REF bkm_StandardTitle \\* MERGEFORMAT }}{\fldrslt {\b Media Server Image} Converter API}}
sl@0
    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 
sl@0
    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 {
sl@0
    38
\lang1024 4}}} of {\field{\*\fldinst  NUMPAGES }{\fldrslt {\lang1024 1}}}
sl@0
    39
\par }\pard\plain \s32\sa240\pagebb\widctlpar \b\f4\fs28\lang2057 Contents{\*\bkmkend _Toc420152784}
sl@0
    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 
sl@0
    41
 PAGEREF _Toc464560096 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    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}}}}}{
sl@0
    43
\lang1024 
sl@0
    44
\par 1. 2 Document History\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560098  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560098 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    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}}}}}{
sl@0
    46
\lang1024 
sl@0
    47
\par 3. Functional specification\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560100  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560100 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    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}}}}}{
sl@0
    49
\lang1024 
sl@0
    50
\par 3. 2 Scaling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560102  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560102 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    51
\par 3. 3 Conversions\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560103  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560103 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    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}}}}}{
sl@0
    53
\lang1024 
sl@0
    54
\par 3. 3 .2 Descriptor to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560105  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560105 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    55
\par 3. 3 .3 Bitmap to file\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560106  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560106 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    56
\par 3. 3 .4 Bitmap to descriptor\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560107  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560107 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    57
\par 3. 3 .5 Bitmap to bitmap\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560108  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560108 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    58
\par 3. 3 .6 Asynchronous operation signalling\tab }{\field{\*\fldinst {\lang1024  GOTOBUTTON _Toc464560109  }{\field{\*\fldinst {\lang1024  PAGEREF _Toc464560109 }}{\fldrslt {\lang1024 1}}}}}{\lang1024 
sl@0
    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
sl@0
    60
}}}}}{\lang1024 
sl@0
    61
\par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 }}\pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
    62
\par {\*\bkmkstart _Toc420154978}{\*\bkmkstart _Toc420156456}{\*\bkmkstart _Toc420075413}{\*\bkmkstart _Toc420152786}{\*\bkmkstart _Toc420153072}{\pntext\pard\plain\b\fs28\lang2057\kerning28  1.\tab}\pard\plain 
sl@0
    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}
sl@0
    64
{\*\bkmkend _Toc464560096}
sl@0
    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 }
sl@0
    66
\b\f4\lang2057\kerning28 Purpose and scope{\*\bkmkend _Toc420075413}{\*\bkmkend _Toc420152786}{\*\bkmkend _Toc420153072}{\*\bkmkend _Toc420154979}{\*\bkmkend _Toc420156457}{\*\bkmkend _Toc464560097}
sl@0
    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.
sl@0
    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
sl@0
    69
{\*\bkmkend _Toc419889486}{\*\bkmkend _Toc464560098}
sl@0
    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
sl@0
    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
sl@0
    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
sl@0
    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
sl@0
    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
sl@0
    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
sl@0
    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 
sl@0
    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 
sl@0
    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
sl@0
    79
{\*\bkmkend _Toc464560099}
sl@0
    80
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
    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:
sl@0
    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
sl@0
    83
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}In-memory bitmap (CFbsBitmap/CWsBitmap)
sl@0
    84
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}Memory descriptor (complete image data)
sl@0
    85
\par \pard \sa120\widctlpar 
sl@0
    86
\par Media Server operations are essentially asynchronous so notification of completion is passed back to the calling code.
sl@0
    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}
sl@0
    88
Functional specification{\*\bkmkend _Toc464560100}
sl@0
    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}
sl@0
    90
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for rotation.
sl@0
    91
\par 
sl@0
    92
\par {\f11 class CMdaBitmapRotator : public CBase
sl@0
    93
\par \tab \{
sl@0
    94
\par public:
sl@0
    95
\par }\pard \fi720\sa120\widctlpar {\f11 enum ERotationAngle
sl@0
    96
\par }\pard \fi720\li720\sa120\widctlpar {\f11 \{
sl@0
    97
\par ERotation90DegreesClockwise,
sl@0
    98
\par ERotation180DegreesClockwise,
sl@0
    99
\par ERotation270DegreesClockwise
sl@0
   100
\par \};
sl@0
   101
\par }\pard \sa120\widctlpar {\f11 public:
sl@0
   102
\par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
sl@0
   103
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TRotationAngle aAngle);
sl@0
   104
\par }\pard \li720\sa120\widctlpar {\f11 void RotateL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,\tab TRotationAngle aAngle);
sl@0
   105
\par }\pard \fi720\sa120\widctlpar {\f11 void CancelRotation();
sl@0
   106
\par }\pard \sa120\widctlpar {\f11 \tab \};
sl@0
   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}
sl@0
   108
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following specifies the functionality required for scaling.
sl@0
   109
\par 
sl@0
   110
\par \pard\plain \s37\widctlpar \f5\fs22\lang3081 {\f11\fs20 class CMdaBitmapScaler : public CBase
sl@0
   111
\par \tab \{
sl@0
   112
\par }\pard\plain \sa120\widctlpar \f4\fs20\lang2057 {\f11 public:
sl@0
   113
\par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aSrcBitmap,
sl@0
   114
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CFbsBitmap& aTgtBitmap,TBool aMaintainAspectRatio = ETrue);
sl@0
   115
\par }\pard \li720\sa120\widctlpar {\f11 void ScaleL(MMdaImageUtilObserver& aObserver,CFbsBitmap& aBitmap,
sl@0
   116
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TSize aDestSize,TBool aMaintainAspectRatio = ETrue);
sl@0
   117
\par }\pard \fi720\sa120\widctlpar {\f11 void CancelScaling();
sl@0
   118
\par \};
sl@0
   119
\par }\pard \sa120\widctlpar 
sl@0
   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}
sl@0
   121
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 The following class declarations specify the functionality required for conversions.  The common conversion and information
sl@0
   122
 functions are defined in an abstract base class.  This allows the user to write polymorphic code for handling image conversion classes.
sl@0
   123
\par {\f11 
sl@0
   124
\par class CMdaImageUtility : public CBase
sl@0
   125
\par \tab \{
sl@0
   126
\par public:
sl@0
   127
\par // Image conversion
sl@0
   128
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0) = 0;
sl@0
   129
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
sl@0
   130
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0) = 0;
sl@0
   131
\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL() = 0;
sl@0
   132
\par // Image information
sl@0
   133
\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
sl@0
   134
\par \tab virtual TInt FrameCount() const;
sl@0
   135
\par \tab \};
sl@0
   136
\par }
sl@0
   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
sl@0
   138
{\*\bkmkend _Toc464560104}
sl@0
   139
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
   140
\par {\f11 class CMdaImageFileToBitmapUtility : public CMdaImageUtility
sl@0
   141
\par \tab \{
sl@0
   142
\par public:
sl@0
   143
\par // Object management
sl@0
   144
\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
sl@0
   145
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
sl@0
   146
\par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC& aFileName,TMdaClipFormat* aFormat = NULL,
sl@0
   147
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
sl@0
   148
\par }\pard \sa120\widctlpar {\f11 \tab void Close();
sl@0
   149
\par // Image conversion
sl@0
   150
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
sl@0
   151
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
sl@0
   152
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
sl@0
   153
\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
sl@0
   154
\par // Image information
sl@0
   155
\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
sl@0
   156
\par \tab virtual TInt FrameCount() const;
sl@0
   157
\par \tab \};
sl@0
   158
\par }
sl@0
   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
sl@0
   160
{\*\bkmkend _Toc464560105}
sl@0
   161
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
   162
\par {\f11 class CMdaImageDescToBitmapUtility : public CMdaImageUtility
sl@0
   163
\par \tab \{
sl@0
   164
\par public:
sl@0
   165
\par // Object management
sl@0
   166
\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
sl@0
   167
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
sl@0
   168
\par }\pard \li720\sa120\widctlpar {\f11 void OpenL(const TDesC8& aDescriptor,TMdaClipFormat* aFormat = NULL,
sl@0
   169
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec = NULL,TMdaPackage* aExtra = NULL);
sl@0
   170
\par }\pard \sa120\widctlpar {\f11 \tab void Close();
sl@0
   171
\par // Image conversion
sl@0
   172
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
sl@0
   173
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
sl@0
   174
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
sl@0
   175
\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
sl@0
   176
\par // Image information
sl@0
   177
\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
sl@0
   178
\par \tab virtual TInt FrameCount() const;
sl@0
   179
\par \tab \};
sl@0
   180
\par }
sl@0
   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
sl@0
   182
{\*\bkmkend _Toc464560106}
sl@0
   183
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
   184
\par {\f11 class CMdaImageBitmapToFileUtility : public CMdaImageUtility
sl@0
   185
\par \tab \{
sl@0
   186
\par public:
sl@0
   187
\par // Object management
sl@0
   188
\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
sl@0
   189
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
sl@0
   190
\par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(const TDesC& aFileName,TMdaClipFormat* aFormat,
sl@0
   191
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
sl@0
   192
\par }\pard \sa120\widctlpar {\f11 \tab void Close();
sl@0
   193
\par // Image conversion
sl@0
   194
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
sl@0
   195
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
sl@0
   196
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
sl@0
   197
\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
sl@0
   198
\par // Image information
sl@0
   199
\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
sl@0
   200
\par \tab virtual TInt FrameCount() const;
sl@0
   201
\par \tab \};
sl@0
   202
\par }
sl@0
   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
sl@0
   204
{\*\bkmkend _Toc464560107}
sl@0
   205
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
   206
\par {\f11 class CMdaImageBitmapToDescUtility : public CMdaImageUtility
sl@0
   207
\par \tab \{
sl@0
   208
\par public:
sl@0
   209
\par // Object management
sl@0
   210
\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
sl@0
   211
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
sl@0
   212
\par }\pard \fi720\sa120\widctlpar {\f11 void CreateL(HBufC8& aDescriptor,TMdaClipFormat* aFormat,
sl@0
   213
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TMdaPackage* aCodec,TMdaPackage* aExtra);
sl@0
   214
\par }\pard \sa120\widctlpar {\f11 \tab void Close();
sl@0
   215
\par // Image conversion
sl@0
   216
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
sl@0
   217
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
sl@0
   218
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
sl@0
   219
\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
sl@0
   220
\par // Image information
sl@0
   221
\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
sl@0
   222
\par \tab virtual TInt FrameCount() const;
sl@0
   223
\par \tab \};
sl@0
   224
\par }
sl@0
   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
sl@0
   226
{\*\bkmkend _Toc464560108}
sl@0
   227
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
   228
\par {\f11 class CMdaImageBitmapToBitmapUtility : public CMdaImageUtility
sl@0
   229
\par \tab \{
sl@0
   230
\par public:
sl@0
   231
\par // Object management
sl@0
   232
\par \tab CFileToBitmap* NewL(MMdaImageUtilObserver& aObserver,
sl@0
   233
\par }\pard \fi720\li720\sa120\widctlpar {\f11 CMdaServer* aServer = NULL);
sl@0
   234
\par }\pard \fi720\sa120\widctlpar {\f11 void OpenL(CFbsBitmap& aBitmap);
sl@0
   235
\par }\pard \sa120\widctlpar {\f11 \tab void Close();
sl@0
   236
\par // Image conversion
sl@0
   237
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,TInt aFrameNumber = 0);
sl@0
   238
\par \tab virtual void ConvertL(CFbsBitmap& aBitmap,const TRect& aSourceRect,
sl@0
   239
\par }\pard \fi720\li720\sa120\widctlpar {\f11 TInt aFrameNumber = 0);
sl@0
   240
\par }\pard \sa120\widctlpar {\f11 \tab virtual void CancelConvertL();
sl@0
   241
\par // Image information
sl@0
   242
\par \tab virtual const TFrameInfo& FrameInfo(TInt aFrame) const;
sl@0
   243
\par \tab virtual TInt FrameCount() const;
sl@0
   244
\par \tab \};
sl@0
   245
\par }
sl@0
   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 
sl@0
   247
Asynchronous operation signalling{\*\bkmkend _Toc464560109}
sl@0
   248
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 
sl@0
   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 
sl@0
   250
MMdaImageUtilObserver}:
sl@0
   251
\par 
sl@0
   252
\par {\f11 class MMdaImageUtilObserver
sl@0
   253
\par \tab \{
sl@0
   254
\par public:
sl@0
   255
\par \tab virtual void MiuoCreateComplete(TInt aError) = 0;
sl@0
   256
\par \tab virtual void MiuoOpenComplete(TInt aError) = 0;
sl@0
   257
\par \tab virtual void MiuoConvertComplete(TInt aError) = 0;
sl@0
   258
\par \tab \};}
sl@0
   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
sl@0
   260
{\*\bkmkend _Toc464560110}
sl@0
   261
\par \pard\plain \sa120\widctlpar \f4\fs20\lang2057 Image frame information is supplied in a TFrameInfo object:
sl@0
   262
\par 
sl@0
   263
\par {\f11 class TFrameInfo
sl@0
   264
\par \tab \{
sl@0
   265
\par public:
sl@0
   266
\par \tab TSize iSizeInPixels;
sl@0
   267
\par \tab TSize iSizeInTwips;
sl@0
   268
\par \tab TInt iBitsPerPixel;
sl@0
   269
\par \tab TBool iColor;
sl@0
   270
\par \tab TPoint iOffsetInPixels;
sl@0
   271
\par \tab TTimeMicroSeconds iDelay;
sl@0
   272
\par \tab \};
sl@0
   273
\par }
sl@0
   274
\par Image information is available once the {\f11 OpenL()}or {\f11 CreateL()} function has completed successfully.
sl@0
   275
\par }