Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98"><title> Writing a Source/Sink Plugin </title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Multimedia Framework (MMF) data source and data sink plugins are software abstractions for a source and sink of multimedia data. Data source and data sink plugins are <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECom</xref> plugins that are intended to be used in conjunction with an MMF controller plugin. Examples of MMF source plugins include: audio input plugins for a microphone, a camera, an RTP stream, a file and a descriptor. Examples of MMF sink plugins include: audio output for a speaker, a display, an RTP stream, a file and a descriptor. The MMF provides standard source plugins for an audio input, a file and a descriptor. It is possible to develop source plugins for other sources of multimedia data provided they conform to the <xref href="GUID-2230F976-A798-30EB-ABA6-09C86716A4B5.dita"><apiname>MDataSource</apiname></xref> API. The MMF also provides standard sink plugins for an audio output, a file and a descriptor. It is possible to develop sink plugins for other sinks of multimedia data provided they conform to the <xref href="GUID-708A7583-5C55-3FE1-8238-974C8821588D.dita"><apiname>MDataSink</apiname></xref> API. </p> <p>Sources and sinks are owned by the controller framework and are added to the controller, but not owned by the controller. See <xref href="GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8.dita#GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8/GUID-215B50CF-605A-58BA-8E87-CAB942F11741">writing a controller plugin</xref> for more information. </p> <p>To write a MMF Source/Sink Plugin, the following needs to be done: </p> <ul><li id="GUID-204DAAE6-11E1-5628-A577-F1DE21FD9190"><p>Write the appropriate source <codeph>.cpp</codeph> and <codeph>.h</codeph> files that make up the implementation of the source/sink plugin. See <xref href="GUID-B998B8FC-3DC3-57B5-A4E6-C4D903B4ACF9.dita">Creating a Source Plugin</xref> and <xref href="GUID-21E26B07-7E4D-50E0-97BE-C05CCD88B89F.dita">Creating a Sink Plugin</xref>. </p> </li> <li id="GUID-1A27B783-5AF9-544B-9D04-82F7292A2609"><p>Write a <xref href="GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98.dita#GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98/GUID-943F1B90-792A-5288-AE2E-B5F5EE76973D">resource file</xref> defining the formats available in the plugin DLL. </p> </li> <li id="GUID-47CC8C97-38A7-59C5-B8A1-B2DB5C98906C"><p>Write the appropriate <xref href="GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98.dita#GUID-2062A92D-2A3C-5D38-B25E-6D4CF3E4BC98/GUID-13D02B99-4BD2-554D-83D3-DD81628E7AAF">build files</xref>. </p> </li> </ul> </conbody></concept>