diff -r 4816d766a08a -r f345bda72bc4 Symbian3/PDK/Source/GUID-CCFFFE06-1FB8-56C8-874C-C4C1B936FAA4.dita --- a/Symbian3/PDK/Source/GUID-CCFFFE06-1FB8-56C8-874C-C4C1B936FAA4.dita Tue Mar 30 11:42:04 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-CCFFFE06-1FB8-56C8-874C-C4C1B936FAA4.dita Tue Mar 30 11:56:28 2010 +0100 @@ -1,145 +1,145 @@ - - - - - -How to Set and Get the AMR Stream Property

A user has to first create an instance of the AMR payload formatter. Then, the user can set and get the AMR stream property.

The following table contains the configurable AMR stream properties and their default values.

AMR stream properties Default values

Bit rate

0

Frame Quality

AMR quality is good (1)

Header Type

IF2 (2)

No of Frames

1

Mode

Octet Aligned Mode (1)

Band

Wide Band (1)

Change Mode Request

0

The following code shows the valid set of all AMR stream properties so that a user can accordingly get or set the values.

// AMRPROPERTY.H - -enum TAmrNBBitRate - { - EAmr_4_75_Kbps = 0, - EAmr_5_15_Kbps = 1, - EAmr_5_90_Kbps = 2, - EAmr_6_70_Kbps = 3, - EAmr_7_40_Kbps = 4, - EAmr_7_95_Kbps = 5, - EAmr_10_2_Kbps = 6, - EAmr_12_2_Kbps = 7, - EAmr_SID_Nb_Kbps = 8, - // Future rates will be added here - EAmr_No_Data_Nb = 15 - }; - -enum TAmrWBBitRate - { - EAmr_6_60_Kbps = 0, - EAmr_8_85_Kbps = 1, - EAmr_12_65_Kbps = 2, - EAmr_14_25_Kbps = 3, - EAmr_15_85_Kbps = 4, - EAmr_18_25_Kbps = 5, - EAmr_19_85_Kbps = 6, - EAmr_23_05_Kbps = 7, - EAmr_23_85_Kbps = 8, - EAmr_SID_Wb_Kbps= 9, - // future rates will be added here - EAmr_No_Data_Wb =15 - }; - -enum TAmrFrameQuality - { - EBadQuality = 0, - EGoodQuality = 1 - }; - -enum TAmrHeaderType - { - ERawMode = 0, - EIF1Mode = 1, - EIF2Mode = 2 - }; - -enum TAmrMode - { - EOctetAlignedMode = 1, - EBandWidthOptimizedMode = 2 - }; - -enum TAmrBand - { - EWideBand = 1, - ENarrowBand = 2 - }; - -//The Change Mode Request value depends on whether the AMR is narrow or wide band. -enum TAmrChangeModeRequest - { - EAmrChangeModeRequest_0 = 0, - EAmrChangeModeRequest_1 = 1, - EAmrChangeModeRequest_2 = 2, - EAmrChangeModeRequest_3 = 3, - EAmrChangeModeRequest_4 = 4, - EAmrChangeModeRequest_5 = 5, - EAmrChangeModeRequest_6 = 6, - EAmrChangeModeRequest_7 = 7, - EAmrChangeModeRequest_8 = 8, - EAmrChangeModeRequest_9 = 9, - // future modes will be added here - EAmrChangeModeRequest_15 = 15 - };
How to set the AMR stream property

If a user wants to set the AMR stream properties then the user has to individually set the specific AMR stream properties and then call the CStreamFormatter::SetStreamProperty() API. This is done by using the respective functions for each property.

The following code shows how to set the AMR stream properties.

// Create an instance of AMR Payload Formatter by passing KAmrFormatterUid -CStreamFormatter * aStreamFormatter = CStreamFormatter::NewL(TUid::Uid(KAmrFormatterUid)); - -// First set the individual AMR stream properties if the user wants to, otherwise default values are used -CStreamProperty* aStreamProperty = aStreamFormatter->ConfigFactory(); // - -//Get the CAmrStreamProperty property reference from CStreamProperty base class -CAmrStreamProperty* aAmrStreamProperty = (CAmrStreamProperty*)aStreamProperty; - -// Set the bit rate to BitMode -TInt8 ret1 = aAmrStreamProperty->SetAmrBitRate(BitMode); // Default bit rate is 0 - -// Set the AMR frame quality to the value passed as input -aAmrStreamProperty->SetAmrFrameQuality(TAmrFrameQuality); // Default AMR quality is good (1) - -// Set the no of frames to be packed in a single RTP packet -TInt8 ret2 = aAmrStreamProperty->SetAmrNoofFrames(NoofFrames); // Default value is 1 - -// Set the header type to the value passed as input -aAmrStreamProperty->SetAmrHeaderType(TAmrHeaderType); // Default header type is IF2 (2) - -// Set the AMR mode to the value passed -aAmrStreamProperty->SetAmrMode(TAmrMode); // Default mode is Octet Aligned Mode (1) - -// Set the AMR band to the value passed as input -aAmrStreamProperty->SetAmrBand(TAmrBand); // Default Band is Wide Band (1) - -// Set the Change Mode Request to the value passed as input -aAmrStreamProperty->SetAmrChangeModeRequest(TAmrChangeModeRequest); //Default mode request is set to 0 -

After the user sets the AMR properties the CStreamFormatter::SetStreamProperty API is called.

// Call the SetStreamProperty() function of the interface -aStreamFormatter->SetStreamProperty(aStreamProperty); -
How to get the AMR stream property

If a user wants to get the AMR stream properties then the application has to call CStreamFormatter::GetStreamProperty() API and then individually get the specific AMR stream properties. This is done by using the respective functions for each property.

The following code shows how to get the AMR stream properties.

// Create an instance of AMR Payload Formatter by passing KAmrFormatterUid -CStreamFormatter * aStreamFormatter = CStreamFormatter::NewL(TUid::Uid(KAmrFormatterUid)); - -// Get the AMR stream properties -CStreamProperty* aGetStreamProperty = aStreamFormatter->GetStreamProperty(); - -//Get the CAmrStreamProperty property reference from CStreamProperty base class -CAmrStreamProperty* aAmrGetStreamProperty = (CAmrStreamProperty*)aGetStreamProperty; - -// Get the AMR bit rate -TInt BitMode = aAmrGetStreamProperty->AmrBitRate(); - -// Get the AMR header type -TAmrHeaderType amrHeaderType = aAmrGetStreamProperty->AmrHeaderType(); - -// Get the no of frames packed in the current AMR session -TInt NoofFrames = aAmrGetStreamProperty->AmrNoofFrames(); - -// Get the current AMR mode -TAmrMode amrMode = aAmrGetStreamProperty->AmrMode(); - -// Get the current AMR band -TAmrBand amrBand = aAmrGetStreamProperty->AmrBand(); - -// Get the quality of AMR frame -TAmrFrameQuality amrFrameQuality = aAmrGetStreamProperty->AmrFrameQuality(); - -// Get the Change Mode Request -TAmrChangeModeRequest amrChangeModeRequest = aAmrGetStreamProperty->AmrChangeModeRequest(); + + + + + +How to Set and Get the AMR Stream Property

A user has to first create an instance of the AMR payload formatter. Then, the user can set and get the AMR stream property.

The following table contains the configurable AMR stream properties and their default values.

AMR stream properties Default values

Bit rate

0

Frame Quality

AMR quality is good (1)

Header Type

IF2 (2)

No of Frames

1

Mode

Octet Aligned Mode (1)

Band

Wide Band (1)

Change Mode Request

0

The following code shows the valid set of all AMR stream properties so that a user can accordingly get or set the values.

// AMRPROPERTY.H + +enum TAmrNBBitRate + { + EAmr_4_75_Kbps = 0, + EAmr_5_15_Kbps = 1, + EAmr_5_90_Kbps = 2, + EAmr_6_70_Kbps = 3, + EAmr_7_40_Kbps = 4, + EAmr_7_95_Kbps = 5, + EAmr_10_2_Kbps = 6, + EAmr_12_2_Kbps = 7, + EAmr_SID_Nb_Kbps = 8, + // Future rates will be added here + EAmr_No_Data_Nb = 15 + }; + +enum TAmrWBBitRate + { + EAmr_6_60_Kbps = 0, + EAmr_8_85_Kbps = 1, + EAmr_12_65_Kbps = 2, + EAmr_14_25_Kbps = 3, + EAmr_15_85_Kbps = 4, + EAmr_18_25_Kbps = 5, + EAmr_19_85_Kbps = 6, + EAmr_23_05_Kbps = 7, + EAmr_23_85_Kbps = 8, + EAmr_SID_Wb_Kbps= 9, + // future rates will be added here + EAmr_No_Data_Wb =15 + }; + +enum TAmrFrameQuality + { + EBadQuality = 0, + EGoodQuality = 1 + }; + +enum TAmrHeaderType + { + ERawMode = 0, + EIF1Mode = 1, + EIF2Mode = 2 + }; + +enum TAmrMode + { + EOctetAlignedMode = 1, + EBandWidthOptimizedMode = 2 + }; + +enum TAmrBand + { + EWideBand = 1, + ENarrowBand = 2 + }; + +//The Change Mode Request value depends on whether the AMR is narrow or wide band. +enum TAmrChangeModeRequest + { + EAmrChangeModeRequest_0 = 0, + EAmrChangeModeRequest_1 = 1, + EAmrChangeModeRequest_2 = 2, + EAmrChangeModeRequest_3 = 3, + EAmrChangeModeRequest_4 = 4, + EAmrChangeModeRequest_5 = 5, + EAmrChangeModeRequest_6 = 6, + EAmrChangeModeRequest_7 = 7, + EAmrChangeModeRequest_8 = 8, + EAmrChangeModeRequest_9 = 9, + // future modes will be added here + EAmrChangeModeRequest_15 = 15 + };
How to set the AMR stream property

If a user wants to set the AMR stream properties then the user has to individually set the specific AMR stream properties and then call the CStreamFormatter::SetStreamProperty() API. This is done by using the respective functions for each property.

The following code shows how to set the AMR stream properties.

// Create an instance of AMR Payload Formatter by passing KAmrFormatterUid +CStreamFormatter * aStreamFormatter = CStreamFormatter::NewL(TUid::Uid(KAmrFormatterUid)); + +// First set the individual AMR stream properties if the user wants to, otherwise default values are used +CStreamProperty* aStreamProperty = aStreamFormatter->ConfigFactory(); // + +//Get the CAmrStreamProperty property reference from CStreamProperty base class +CAmrStreamProperty* aAmrStreamProperty = (CAmrStreamProperty*)aStreamProperty; + +// Set the bit rate to BitMode +TInt8 ret1 = aAmrStreamProperty->SetAmrBitRate(BitMode); // Default bit rate is 0 + +// Set the AMR frame quality to the value passed as input +aAmrStreamProperty->SetAmrFrameQuality(TAmrFrameQuality); // Default AMR quality is good (1) + +// Set the no of frames to be packed in a single RTP packet +TInt8 ret2 = aAmrStreamProperty->SetAmrNoofFrames(NoofFrames); // Default value is 1 + +// Set the header type to the value passed as input +aAmrStreamProperty->SetAmrHeaderType(TAmrHeaderType); // Default header type is IF2 (2) + +// Set the AMR mode to the value passed +aAmrStreamProperty->SetAmrMode(TAmrMode); // Default mode is Octet Aligned Mode (1) + +// Set the AMR band to the value passed as input +aAmrStreamProperty->SetAmrBand(TAmrBand); // Default Band is Wide Band (1) + +// Set the Change Mode Request to the value passed as input +aAmrStreamProperty->SetAmrChangeModeRequest(TAmrChangeModeRequest); //Default mode request is set to 0 +

After the user sets the AMR properties the CStreamFormatter::SetStreamProperty API is called.

// Call the SetStreamProperty() function of the interface +aStreamFormatter->SetStreamProperty(aStreamProperty); +
How to get the AMR stream property

If a user wants to get the AMR stream properties then the application has to call CStreamFormatter::GetStreamProperty() API and then individually get the specific AMR stream properties. This is done by using the respective functions for each property.

The following code shows how to get the AMR stream properties.

// Create an instance of AMR Payload Formatter by passing KAmrFormatterUid +CStreamFormatter * aStreamFormatter = CStreamFormatter::NewL(TUid::Uid(KAmrFormatterUid)); + +// Get the AMR stream properties +CStreamProperty* aGetStreamProperty = aStreamFormatter->GetStreamProperty(); + +//Get the CAmrStreamProperty property reference from CStreamProperty base class +CAmrStreamProperty* aAmrGetStreamProperty = (CAmrStreamProperty*)aGetStreamProperty; + +// Get the AMR bit rate +TInt BitMode = aAmrGetStreamProperty->AmrBitRate(); + +// Get the AMR header type +TAmrHeaderType amrHeaderType = aAmrGetStreamProperty->AmrHeaderType(); + +// Get the no of frames packed in the current AMR session +TInt NoofFrames = aAmrGetStreamProperty->AmrNoofFrames(); + +// Get the current AMR mode +TAmrMode amrMode = aAmrGetStreamProperty->AmrMode(); + +// Get the current AMR band +TAmrBand amrBand = aAmrGetStreamProperty->AmrBand(); + +// Get the quality of AMR frame +TAmrFrameQuality amrFrameQuality = aAmrGetStreamProperty->AmrFrameQuality(); + +// Get the Change Mode Request +TAmrChangeModeRequest amrChangeModeRequest = aAmrGetStreamProperty->AmrChangeModeRequest();
\ No newline at end of file