×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Additional settings needed to run DevVideoRecord on N96 (Known Issue)

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot update)
hamishwillee (Talk | contribs)

Revision as of 09:32, 15 June 2012

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

To record a video on the Nokia N96, additional settings are needed as the N96 hardware is different from other Symbian devices.

Article Metadata
Tested with
Devices(s): Nokia N96
Compatibility
Platform(s): S60 3rd Edition FP2
S60 3rd Edition FP2
Article
Created: User:Kbwiki (29 Oct 2009)
Last edited: hamishwillee (15 Jun 2012)

Description

The N96 uses hardware codecs which require additional settings compared to other S60 devices. When the Archived:MDFDevVideo Record Symbian API is run on the Nokia N96, the application fails with the KErrNotReady (-18) error while calling CMMFDevVideoRecord::WritePictureL(), or with KErrNotSupported (-5) if the camera has been set as the video source with CMMFDevVideoRecord::SetSourceCameraL().

How to reproduce

The Archived:MDFDevVideo Record Symbian API can be used to reproduce the problem on the Nokia N96.

Solution

To ensure that MDF DevVideo encoders work on the Nokia N96, call the CMMFDevVideoRecord::SetRateControlOptions() function in MMMFDevVideoRecordObserver::MdvroInitializeComplete before calling CMMFDevVideoRecord::Start().

 void CDevvideoExAppUi::MdvroInitializeComplete( TInt aError )
{
if ( aError != KErrNone )
{
// TODO: Handle errors
return;
}
 
// Set rate control options
TRateControlOptions rateCtrl;
rateCtrl.iControl = EBrControlNone;
rateCtrl.iPictureQuality = 0;
rateCtrl.iBitrate = iBitRate;
rateCtrl.iPictureRate = iFrameRate;
rateCtrl.iQualityTemporalTradeoff = 0;
rateCtrl.iLatencyQualityTradeoff = 0;
iDvr->SetRateControlOptions( 0, rateCtrl );
 
// Start encoding
iDvr->Start();
 
// Write first input picture
iPicNum = 0;
WritePic();
}
147 page views in the last 30 days.
×