Symbian3/SDK/Source/GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 0 89d6a7a84779
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and Bug 1522.

<?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-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86"><title>Configuring the Video Recorder</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial describes how to configure the video recorder. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to show you how to make configuration adjustments to video recording parameters. </p> <p><b>Required Background</b> </p> <p>The <xref href="GUID-2DC80BA9-7AA2-5CD3-9105-1DE28CE196C1.dita">Video Client Overview</xref> introduces the video client utilities. </p> <p><b>Introduction</b> </p> <p>The video recorder utility is used to record video clips to files, descriptors or URLs and manipulate embedded meta data. This functionality is implemented by the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita"><apiname>CVideoRecorderUtility</apiname></xref> class. </p> </section> <section><title>Using Video Recording Parameters</title> <p>The following tasks will be covered in this tutorial: </p> <ul><li id="GUID-209368FC-79E9-57D6-A353-3B6A5FEE151A"><p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita#GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86/GUID-AD571928-46D4-5163-BBCF-2AACBD50C8BD">Configure the Priority</xref>  </p> </li> <li id="GUID-76FE0E0D-3FEC-51AA-9F97-9B96DDF49488"><p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita#GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86/GUID-9A36A69B-4FE4-525E-9667-73ABE7BA232B">Enable Audio Playback</xref>  </p> </li> <li id="GUID-35887162-7744-5569-BB3F-08442753CFB9"><p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita#GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86/GUID-8FFFA630-257E-5423-8EF6-87011D8F89DD">Configure Video Frame Size </xref>  </p> </li> <li id="GUID-40B02DC8-3E90-5905-9026-BDA06F2D0735"><p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita#GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86/GUID-5317B8A4-0BAE-565A-9CE1-0EE83D6DA5D6">Configure MIME Type and Codecs</xref>  </p> </li> <li id="GUID-A30F3077-FC16-5B6D-A0F9-A895A61C66ED"><p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita#GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86/GUID-6177D261-E61B-512C-987B-8E6FDDEF6405">Configure Bit and Frame Rates</xref>  </p> </li> <li id="GUID-ACDC28B3-683C-59F9-905F-D8BB05A95796"><p><xref href="GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86.dita#GUID-3B250C0E-5D53-53ED-A02C-16FE8EAEDF86/GUID-B7616FBC-7F5A-5A01-9126-8D8E2382D05D">Configure Gain</xref>  </p> </li> </ul> <p id="GUID-AD571928-46D4-5163-BBCF-2AACBD50C8BD"><b>Configuring the Priority</b> </p> <p>The high level steps to configure the priority are shown here: </p> <ul><li id="GUID-3981F9B6-F252-5D8A-A750-0313B1EA7B38"><p>To set the priority of the video/audio device, which is used to arbitrate between multiple objects trying to access a controller, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-1B8C11FD-08DD-3E69-8D1E-232EADA2874A"><apiname>CVideoRecorderUtility::SetPriorityL()</apiname></xref> function. </p> <codeblock id="GUID-58C0B5E9-654C-5641-AA8B-C5CCD811A91F" xml:space="preserve">void CRecordVideo::SetPriorityL(TInt aPriority, TMdaPriorityPreference aPref)
    {
    iVideoRecordUtility-&gt;SetPriorityL(aPriority, aPref);
    }</codeblock> </li> <li id="GUID-0BB0DBB4-BAD2-5062-979E-E7BDB6ABC87E"><p>To retrieve the priority setting of the video/audio device, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-4407A583-D78E-310F-A152-5495531B5B37"><apiname>CVideoRecorderUtility::GetPriorityL()</apiname></xref> function. </p> <codeblock id="GUID-82982B5B-20F4-5897-A153-9827E4CFA01E" xml:space="preserve">void CRecordVideo::GetPriorityL(TInt &amp;aPriority, TMdaPriorityPreference &amp;aPref)
    {
    iVideoRecordUtility-&gt;GetPriorityL(aPriority, aPref);
    }</codeblock> </li> </ul> <p id="GUID-9A36A69B-4FE4-525E-9667-73ABE7BA232B"><b>Enabling Audio Playback</b> </p> <p>The high level steps to enable audio playback are shown here: </p> <ul><li id="GUID-5025C56F-05AC-5C72-B856-78203C964BE4"><p>To determine whether an audio track is associated with a video clip, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-ECF76E36-67ED-3919-9D85-53FD04837096"><apiname>CVideoRecorderUtility::AudioEnabledL()</apiname></xref>. This function returns the status of audio support for the video clip currently being recorded. </p> <codeblock id="GUID-C63549DB-A21D-50EF-89DC-4593CDBDAB7D" xml:space="preserve"> TBool CRecordVideo::AudioEnabledL()
    {
    return iVideoRecordUtility-&gt;AudioEnabledL();
    }
    </codeblock> </li> <li id="GUID-5F1B28B9-EFEF-5419-B8A0-39350D618802"><p>To set whether the current video clip has an audio track associated with it, use clip<xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-01C99875-7FD6-3CC9-8042-EE60F2FEBB9E"><apiname>CVideoRecorderUtility::SetAudioEnabledL()</apiname></xref> function. </p> <codeblock id="GUID-7D922A90-4ADD-5D03-BBFE-2E15E2CF1AC3" xml:space="preserve"> void CRecordVideo::SetAudioEnabledL(TBool aEnabled)
    {
    iVideoRecordUtility-&gt;SetAudioEnabledL(aEnabled);
    }</codeblock> <p> <b>Note</b>: The above listed APIs are relevant only if the video clip is associated with an audio stream. </p> </li> </ul> <p id="GUID-8FFFA630-257E-5423-8EF6-87011D8F89DD"><b> Configuring Video Frame Size</b> </p> <p>The high level steps to configure video frame size are shown here: </p> <ul><li id="GUID-3CE688B5-7A7D-53B8-A3FA-5049E5500A74"><p>To retrieve the current frame size of the video clip, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-AE3BAF2B-5203-3911-8276-2545B4394226"><apiname>CVideoRecorderUtility::GetVideoFrameSizeL()</apiname></xref>. This function returns the video frame size in pixels. </p> <codeblock id="GUID-4E7C092A-BF85-54E4-88AB-4A5863291EF1" xml:space="preserve">
 void CRecordVideo::GetVideoFrameSizeL(TSize &amp;aSize)
    {
    iVideoRecordUtility-&gt;GetVideoFrameSizeL(aSize);
    }</codeblock> </li> <li id="GUID-C4E93047-8025-5433-8556-429842A49404"><p>To set the video frame to the desired size, use <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-5E957BEB-7EBF-34AA-8EA0-9974BB6CA0DD"><apiname>CVideoRecorderUtility::SetVideoFrameSizeL()</apiname></xref> function. This functions sets the video frame size in pixels. </p> <codeblock id="GUID-A393BBAC-F92E-5AC9-9105-5E6E1D845272" xml:space="preserve"> void CRecordVideo::SetVideoFrameSizeL(const TSize &amp;aSize)
    {
    iVideoRecordUtility-&gt;SetVideoFrameSizeL(aSize);
    }</codeblock> </li> <li id="GUID-059B5B92-4928-5BC9-AEF9-F6B882603C19"><p>To set the video frame size to 176x144, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-5E957BEB-7EBF-34AA-8EA0-9974BB6CA0DD"><apiname>CVideoRecorderUtility::SetVideoFrameSizeL()</apiname></xref> function. </p> <codeblock id="GUID-7105FCBC-8961-51EA-A713-ED29D7CC8891" xml:space="preserve"> TSize frameSize;
    frameSize.iWidth = 176;
    frameSize.iHeight = 144;
    TRAP(err, iVideoRecorderUtility-&gt;SetVideoFrameSizeL(frameSize));</codeblock> </li> </ul> <p id="GUID-5317B8A4-0BAE-565A-9CE1-0EE83D6DA5D6"><b>Configuring MIME Type and Codecs</b> </p> <p>The high level steps to configure MIME type and codecs are shown here: </p> <ul><li id="GUID-740F1F04-F1C0-5BBE-B4E6-8EE214CE6F4E"><p>To retrieve a list of video codecs supported by the currently open video clip, use <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-9360BC10-D38F-380D-82DE-A45373B6F3D7"><apiname>CVideoRecorderUtility::GetSupportedVideoTypesL()</apiname></xref> function. This function returns an array of Four Character Codes representing the video types supported. </p> </li> <li id="GUID-F3695C34-D93A-546C-AAB3-C84416ED2985"><p>To retrieve a list of audio codecs supported by the current video clip, use <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-6447E7C6-393D-3288-9066-56EF564B2802"><apiname>CVideoRecorderUtility::GetSupportedAudioTypesL()</apiname></xref> function. This function returns an array of Four Character Codes representing the audio types supported. </p> </li> <li id="GUID-632E35AB-6998-58E8-8A66-604DF879B109"><p>To retrieve an audio codec currently in use by the video clip, use the and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-6C93B62E-B91F-35AD-A167-C7DEF54B2EB1"><apiname>CVideoRecorderUtility::AudioTypeL()</apiname></xref> function. This function returns the audio type of the clip. </p> <codeblock id="GUID-1C3D01B8-B9BF-51BB-9EE0-23C71287414C" xml:space="preserve">TFourCC CRecordVideo::AudioTypeL()
    {
    return iVideoRecordUtility-&gt;AudioTypeL();
    }</codeblock> </li> <li id="GUID-9B8AFDE3-F0A8-5C66-8269-35A3E5CD5B0B"><p>To set new video and audio codecs to use when recording data to the video clip, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-5EBF0D7C-CDD8-37BA-A47F-86C85C0B9D9B"><apiname>CVideoRecorderUtility::SetVideoTypeL()</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-55AC49E6-3A93-3278-A29F-B40B0F07C5A3"><apiname>CVideoRecorderUtility::SetAudioTypeL()</apiname></xref> functions. </p> <codeblock id="GUID-5FCF5A51-C0F4-547A-8A84-061062DF7A81" xml:space="preserve">void CRecordVideo::SetVideoTypeL(const TDesC8 &amp;aType)
    {
    iVideoRecordUtility-&gt;SetVideoTypeL(aType);
    }</codeblock> <codeblock id="GUID-96A33BF0-F829-5CBB-8453-0B955289F80C" xml:space="preserve"> void CRecordVideo::SetAudioTypeL(TFourCC aType)
    {
    iVideoRecordUtility-&gt;SetAudioTypeL(aType);
    }</codeblock> </li> </ul> <p id="GUID-6177D261-E61B-512C-987B-8E6FDDEF6405"><b>Configuring Bit and Frame Rates</b> </p> <p>The high level steps to configure bit and frame rates are shown here: </p> <ul><li id="GUID-646A3CBE-D508-52B7-9920-534CEFFE2305"><p>To retrieve or set the video bit rates, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-A38122DF-9511-3D64-979F-9DBF4826E877"><apiname>CVideoRecorderUtility::VideoBitRateL()</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-E937D7A9-AD59-33D4-83E6-3CF24A565A84"><apiname>CVideoRecorderUtility::SetVideoBitRateL()</apiname></xref> functions. </p> <codeblock id="GUID-181AF492-D0F5-5B42-886F-3982ABE68FDA" xml:space="preserve">TInt CRecordVideo::VideoBitRateL()
    {
    return iVideoRecordUtility-&gt;VideoBitRateL();
    }</codeblock> <codeblock id="GUID-B3C1AD94-DB00-527F-BC07-F15F5382238E" xml:space="preserve"> void CRecordVideo::SetVideoBitRateL(TInt aBitRate)
    {
    iVideoRecordUtility-&gt;SetVideoBitRateL(aBitRate);
    }
</codeblock> </li> <li id="GUID-E4BBC7C5-03A9-5F79-B083-E7C1995B4E81"><p>To retrieve or set the audio bit rates, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-E7A48B75-46E1-32D5-B5B6-BD7D28ADDF69"><apiname>CVideoRecorderUtility::AudioBitRateL()</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-182E3DBB-5C6C-3AB6-85BC-2F11FF941DB8"><apiname>CVideoRecorderUtility::SetAudioBitRateL()</apiname></xref> functions. </p> <codeblock id="GUID-AD51F9A2-D0AD-572A-B80B-88EF13EE2E22" xml:space="preserve">TInt CRecordVideo::AudioBitRateL()
    {
    return iVideoRecordUtility-&gt;AudioBitRateL();
    }</codeblock> <codeblock id="GUID-2DA67EB1-EE1B-5750-9A0A-1AF458293501" xml:space="preserve"> void CRecordVideo::SetAudioBitRateL(TInt aBitRate)
    {
    iVideoRecordUtility-&gt;SetAudioBitRateL(aBitRate);
    }
</codeblock> </li> <li id="GUID-A4ADA88C-FF95-555E-B6BD-DB0EDEBAB2A7"><p>To retrieve or set the current frame rate of the video, use the <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-15EAA9BB-2D5A-327E-9321-52EDD53D73E5"><apiname>CVideoRecorderUtility::VideoFrameRateL()</apiname></xref> and <xref href="GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D.dita#GUID-8A183C79-0EA4-3A4A-B95F-E2F1BF74238D/GUID-D9C23FED-218E-36AA-8799-D9D6E42EC665"><apiname>CVideoRecorderUtility::SetVideoFrameRateL()</apiname></xref> functions. </p> <codeblock id="GUID-CDE342CF-AF23-5E0A-A085-6783B6FC174B" xml:space="preserve"> TReal32 CRecordVideo::VideoFrameRateL()
    {
    return iVideoRecordUtility-&gt;VideoFrameRateL();
    }</codeblock> <codeblock id="GUID-6F48741F-DF3E-5D8A-9E69-168D31407917" xml:space="preserve">void CRecordVideo::SetVideoFrameRateL(TReal32 aFrameRate)
    {
    iVideoRecordUtility-&gt;SetVideoFrameRateL(aFrameRate);
    }</codeblock> </li> </ul> <p id="GUID-B7616FBC-7F5A-5A01-9126-8D8E2382D05D"><b>Configuring Gain</b> </p> <p>The high level steps to configure recording gain are shown here: </p> <ul><li id="GUID-7D7228CE-2460-59AC-AFEF-9CB1EFB7E2B1"><p>To return the current recording gain use <xref href="GUID-D6967FA6-1AFE-3AC4-8731-98A655E0A79C.dita"><apiname>GainL()</apiname></xref>. </p> <codeblock id="GUID-51DA45D1-5FE6-58C4-B22C-898E0956796E" xml:space="preserve"> TInt CRecordVideo::GainL() 
    {
    return iVideoRecordUtility-&gt;GainL();
    }</codeblock> </li> <li id="GUID-572D297D-58DC-571F-9212-F8ABD695B99B"><p>To set the audio recording gain use <xref href="GUID-EBF9BAF6-6713-3851-9948-9ED57D6D3715.dita"><apiname>SetGainL()</apiname></xref>. </p> <codeblock id="GUID-2293C0C3-A761-5C1D-8DC0-09CFE24906C0" xml:space="preserve">void CRecordVideo::SetGainL(TInt aGain)
    {
    iVideoRecordUtility-&gt;SetGainL(aGain);
    }</codeblock> </li> <li id="GUID-E468BB7B-61EC-54A2-BCA0-73DC9F7AF4E8"><p>To return the maximum possible setting for the recording gain use <xref href="GUID-8AC6A9FD-1859-37E8-9088-E7D2F42A0652.dita"><apiname>MaxGain()</apiname></xref>. </p> <codeblock id="GUID-468CA726-86BD-5E99-A462-57E2491E284A" xml:space="preserve">TInt CRecordVideo::MaxGainL() 
    {
    return iVideoRecordUtility-&gt;MaxGainL();
    }</codeblock> </li> </ul> </section> <section><title>See Also</title> <p><xref href="GUID-688C515E-3D1B-51BB-A776-A246FA232061.dita">Creating and Preparing a Video Recorder</xref>  </p> <p><xref href="GUID-ED700A4A-3BBF-5048-92CB-E3677A0FD09F.dita">Enabling/Disabling Video Recording</xref>  </p> <p><xref href="GUID-C08BBBAD-3605-53E3-A94F-ECCFFB80E1DD.dita">Controlling Video Recording Quality</xref>  </p> <p><xref href="GUID-18D7228F-A1E5-594A-B654-EF5D74CE17D2.dita">Recording Video Data</xref>  </p> <p><xref href="GUID-2D20B6DF-BE02-50CF-8E9F-14E3402EF952.dita">Setting Video Metadata</xref>  </p> <p><xref href="GUID-44EDB476-33E2-5D91-8CC2-A04369AACCA4.dita">Controlling the Video Plugin</xref>  </p> </section> </conbody></concept>