AudioVideoConfigDefault Version 1.1;

# RealOne MMF Audio/Video MMFController

# Mask for debug print
Debug:Integer = 0x3024000B;
#Debug:Integer = 0x1;
	#    0x1     Errors
	#    0x2     Developer diagnostics
	#    0x4     Blit Performance
	#    0x0004 0000 RTSP Chat
	#    0x1000 0000 MMF_CTRL
	#    0x2000 0000 MMF_STATE
	#    0x0040 0000 MMF_OTHER
	#    0x0400 0000 IMAGING
	#    0x0020 0000 Memory trace       
	#    0x0080 0000 FILE
	#    0x8000 0000 AUDIO
	#    0x0100 0000 DECODER

# Sinks for Debug and time series data

#LogSink:String = "none";
LogSink:String = "Console"; # case important!
#LogSink:String = "172.22.22.20:5555/7650.log";
#LogSink:String = "e:\Documents\log.txt";
#TSFile:String = "e:\Documents\ts.txt";
#TSInterval:Integer = 500;
#BlitReportInterval:Integer = 2000;

# these should not matter (auto-calculated based on run-time window layout)
WindowSize:String = "176x144";
WindowOffset:String = "+0+44";

#Imager:String = "null";
#AudioDev:String = "xxxx";     # Non-existance audio device: turns off audio
MaxImageSize:String = "350x286";
#valid values are 0=Left, 1=Center, 2=Right
HorizontalAlignment:Integer = 0; 
#valid values are 0=Top, 1=Middle, 2=Bottom
VerticalAlignment:Integer = 0; 
AutoScale:Integer = 1;

               # Default color control
Brightness:Integer = 50;
Contrast:Integer   = 50;
Saturation:Integer = 50;
Hue:Integer        = 50;

LongpressSeek:Integer = 1;

MmcMediaFolder:String = "e:\";
LocalMediaFolder:String = "c:";

# Bearer configuration.

# List of supported bearers.

SupportedBearers:String = {"GPRS", "EGPRS", "CDMA2000", "WCDMA", "WLAN", "null" };
DefaultBearer:String = "GPRS";

RTSPReferer:String = "";

# Bearer Bandwidth parameters.:
# For each bearer 
#    <bearer>MaximumBandwidth:Integer = <value>;   Maximum theoretical
#    <bearer>SustainBandwidth:Integer = <value>;   Average sustainable
#    <bearer>MinimumBandwidth:Integer = <value>;   Minimum request
#    <bearer>MaximumBWPresets:Integer = <list>;    Maximum BW Presets
#    <bearer>SustainBWPresets:Integer = <list>;    Sustainable BW Presets

           # GPRS Defaults
GPRSMaximumBandwidth:Integer =  40200;
GPRSSustainBandwidth:Integer =  28140;
GPRSMinimumBandwidth:Integer =   5000;

           # GPRS Presets
GPRSMaximumBWPresets:Integer = { 9050, 13400, 18100, 27150, 40200 };
GPRSSustainBWPresets:Integer = { 6335,  9380, 12670, 19005, 28140 };

           # EGPRS Defaults
EGPRSMaximumBandwidth:Integer = 108800;
EGPRSSustainBandwidth:Integer = 65280;
EGPRSMinimumBandwidth:Integer =  5000;

           # EGPRS Presets
EGPRSMaximumBWPresets:Integer = { 44800, 59200, 89600, 108800, 120600 };
EGPRSSustainBWPresets:Integer = { 26880, 35520, 53760,  65280, 84420 };

           # CDMA2000 Defaults
CDMA2000MaximumBandwidth:Integer = 144000;
CDMA2000SustainBandwidth:Integer = 86400;
CDMA2000MinimumBandwidth:Integer =  5000;

           # CDMA2000 Presets
CDMA2000MaximumBWPresets:Integer = { 42336, 60480, 86400, 144000 };
CDMA2000SustainBWPresets:Integer = { 29635, 42336, 60480,  86400 };

           # WCDMA Defaults
WCDMAMaximumBandwidth:Integer = 384000;
WCDMASustainBandwidth:Integer = 268800;
WCDMAMinimumBandwidth:Integer =  5000;

           # WCDMA Presets
WCDMAMaximumBWPresets:Integer = { 64000, 128000 ,192000, 256000, 320000, 384000};
WCDMASustainBWPresets:Integer = { 44800,  89600, 134400, 179200, 224000, 268800};

           # WLAN Defaults
WLANMaximumBandwidth:Integer = 1432572;
WLANSustainBandwidth:Integer = 1002800;
WLANMinimumBandwidth:Integer =  5000;

           # WLAN Presets
WLANMaximumBWPresets:Integer = { 64000, 128000 ,192000, 256000, 320000, 384000, 768000, 1048572, 1432572};
WLANSustainBWPresets:Integer = { 44800,  89600, 134400, 179200, 240000, 268800, 537600, 734000, 1002800};

# Bandwidth values for network playerback (bps)

ManualBandwidth:Integer = 0; # When true, set bandwith from config values
                             # When false, use Active bandwidth control
MinDelBandwidth:Integer = 5000;    # Min bandwidth request
MaxDelBandwidth:Integer = 40200;   # Default Max bandwidth request
DemandBWFactor:Integer =  111;     # Demand Bandwidth delivery factor
LiveBWFactor:Integer =  93;        # Live Bandwidth delivery factor
BWReqInterval:Integer =  5000;     # msec between bandwidth requests

# Factors to determine ROP behavior upon receiving QOS events
QosAcceptBWFactor:Integer	= 100;  # Qos result Bandwidth accept factor in %age
QosPromptBWFactor:Integer	= 80;	# Qos result Bandwidth prompt factor in %age
QosRejectBWFactor:Integer	= 70;	# Qos result Bandwidth reject factor in %age
QosFlag:Integer                 =  0;   # 0=>OFF 1=>ON
QosLowBWThreshold:Integer	=  2;   # Number of times ROP will ignore a low BW 
					# QOS event before taking action
					
# Values for determining sustainable bandwidth

StaticSustainBWFactor:Integer = 70;    # Static sustainable Bandwidth delivery factor
ActiveSustainBWFactor:Integer =  70;    # Active sustainable Bandwidth delivery factor
BWStrategy:String = "Network"; # Type of delivery bandwidth selection:
                              #    Select  Select Active or Static
                              #            at playback time.
                              #    Static  Use StaticSustainBWFactor.
                              #    Active  Use ActiveSustainBWFactor.
                              #    Network Use Network aware bandwidth

BWSrcControl:String = "TFRCControl";    # TFRC Bandwidth src congestion control
#BWSrcControl:String = "";    # No bandwidth source congestion control

AccessPoint:Integer = -1;    # Have no AccessPoint

                              # Transports:
                              #    use first entry for rdt/rtp
                              #    use second entry to force rtp

TransportMap:String = {
    "default =                             rtp/avp",
    "audio/x-pn-realaudio =                x-real-rdt/udp,rtp/avp",
    "audio/x-pn-multirate-realaudio-live = x-real-rdt/udp,rtp/avp",
    "video/x-pn-realvideo =                x-real-rdt/udp,rtp/avp" };

# Timeouts

ConnTimeout:Integer = 60000;  # msec to wait for connect
Timeout:Integer =     40000;  # msec to wait for server response, data
SendTimeout:Integer =  5000;  # msec to wait for send data completion

ServerPort:Integer = 554;     # Default server port
UseProxy:Integer=0;           # Use defined proxy server
Proxy:String="";              # Default proxy server
ProxyPort:Integer = 1091;     # Default proxy port
                              # UDP Port range
MinUDPPort:Integer = 6970;
MaxUDPPort:Integer = 32000;
#MaxUDPPort:Integer = 7170;

# StartupURL:String = "rtsp://";         # Startup url

# Blitter Config.  Probably don't want to change these

BlitBehind:Integer =    32;
BlitAhead:Integer =     32;
#BlitBufferDepth:Integer =   4;
BlitBufferDepth:Integer =    3;
BlitMinSleep:Integer =  16;

IncompletePlayback:Integer = 1;
EnablePartialPlayback:Integer = 0;  #dev flag to turn on Partial Playback debuging

# Config values that are made visible to the controller client.

UserEntries:String = { "ConnTimeout", "Timeout", "AccessPoint",
                       "UseProxy", "Proxy", "ProxyPort",
                       "MinUDPPort", "MaxUDPPort",
                       "DemandBWFactor",
                       "GPRSMaximumBandwidth",  "GPRSSustainBandwidth",
                       "GPRSMaximumBWPresets",  "GPRSSustainBWPresets",
                       "EGPRSMaximumBandwidth", "EGPRSSustainBandwidth",
                       "EGPRSMaximumBWPresets", "EGPRSSustainBWPresets",
                       "WCDMAMaximumBandwidth", "WCDMASustainBandwidth",
                       "WCDMAMaximumBWPresets", "WCDMASustainBWPresets",
                       "WLANMaximumBandwidth",  "WLANSustainBandwidth",
                       "WLANMaximumBWPresets",  "WLANSustainBWPresets",
                       "MaxDelBandwidth",
                       "AutoScale",
                       "HorizontalAlignment", "VerticalAlignment",
                       "Contrast", "RTSPReferer" };

# Resource Monitors

#ResourceMonitors:String = { "Audio", "Memory", "null" };
ResourceMonitors:String = { "Audio", "Memory", "Thread", "null" };

# Rate Adaption
# Supported Policies: order counts.

RateAdaptPolicies:String =
 { "Rel6RateAdapt" ,"Rel5AnnexG", "ClientRateCtrl", "ClientBufferCtrl", "null" };

TargetBufTime:Integer = 10000;      # Minimum target buffer depth: msec
MinPreroll:Integer    =  4000;      # Minimum preroll: msec

Rel6MaxBufSize:Integer = 500000;    # Max buffer size for rel6 RA in bytes
Rel6ProtectScale:Integer = 2;       # Target Protect Scale for rel6 RA

# Codec Support
AACSupport:Integer = 1;             # AAC codec supported; 0=No, 1=Yes
EAACPSupport:Integer = 0;           # eAAC+ codec supported; 0=No, 1=Yes

# Memory use reports

#MemReportInterval:Integer = 2000;
#MemReportSink:String = "e:/Documents/memlog.txt";

# UserAgent and ClientId format
# Here is how it works:
# 1. There are four key words, RNControllerPlatform, RNControllerVersion,
#    RNControllerBuildDate, RNControllerProject.  These strings will 
#    be replace by the value of Platfrom, Version, Build Date and
#    Project repectively.
# 2. All the strings in the list then will be appended together
#    to form a name which use as UserAgent or ClientId or AboutVersion.

#UserAgentFormat:String = { "RealMedia Player (","RNControllerPlatform", 
#                          ")/", "RNControllerVersion" };

#ClientIDFormat:String = { "RealOnePlayer_","RNControllerVersion", 
#                           "_", "RNControllerBuildDate",
#                           "_", "RNControllerPlatform" };

#UAStringCustomText:String = { "" };

