defApplication('test:app:vlc', 'vlc') do |app| app.path = "/root/vlc-2.1.0-git/bin/vlc-static" app.version(2, 1, 0) app.shortDescription = "VLC" app.description = "VLC multimedia player and streamer" app.defProperty("input", "Stream input (e.g. file or network address)", nil, {:type => :string, :dynamic => false}) app.defProperty("sout", "Stream output", "--sout", {:type => :string, :dynamic => false}) app.defProperty("intf", "Main interface module", "--intf", {:type => :string, :dynamic => false}) app.defProperty("extraintf", "Extra interface module(s). Use --extraintf omlstats to enable OML", "--extraintf", {:type => :string, :dynamic => false}) app.defProperty("mtu", "Specifies the MTU of the network interface", "--mtu", {:type => :string, :dynamic => false}) app.defProperty("quiet", " Deactivates all console messages", "--quiet", {:type => :boolean, :dynamic => false}) # app.defProperty("play-and-exit", "Exit VLC after playing all the items in the input stream list", "--play-and-exit", # {:type => :boolean, :dynamic => false}) # app.defMeasurement('audio') do |mp| # mp.defMetric('i_decoded_audio_blocks',:int) # mp.defMetric('i_played_audio_buffers',:int) # mp.defMetric('i_lost_audio_buffers',:int) # end # app.defMeasurement('video') do |mp| # mp.defMetric('i_decoded_video_blocks',:int) # mp.defMetric('i_played_video_frames',:int) # mp.defMetric('i_lost_video_frames',:int) # end # app.defMeasurement('input') do |mp| # mp.defMetric('i_read_packets',:int) # mp.defMetric('i_read_bytes',:int) # mp.defMetric('f_input_bitrate',:float) # mp.defMetric('i_demux_read_bytes',:int) # mp.defMetric('f_demux_bitrate',:float) # mp.defMetric('i_demux_corrupted',:int) # mp.defMetric('i_demux_discontinuity',:int) # end # app.defMeasurement('output') do |mp| # mp.defMetric('i_sent_packets',:int) # mp.defMetric('i_sent_bytes',:int) # mp.defMetric('f_send_bitrate',:float) # end app.defMeasurement('vlc_dashRateAdaptation') do |mp| mp.defMetric('chosenRate_bps',:int) mp.defMetric('empiricalRate_bps',:int) mp.defMetric('decisionRate_bps',:int) mp.defMetric('buffer_percent',:int) end app.defMeasurement('vlc_dashDlSession') do |mp| mp.defMetric('chunkCount',:int) mp.defMetric('readSession_B',:int) mp.defMetric('readChunk_B',:int) mp.defMetric('timeSession_s',:float) mp.defMetric('timeChunk_s',:float) end end defProperty('theOne','ubuntu','ID of sender node') #defProperty('packetsize', 128, "Packet size (byte) from the sender node") #defProperty('bitrate', 2048, "Bitrate (bit/s) from the sender node") #defProperty('runtime', 40, "Time in second for the experiment is to run") defProperty('graph', true, "Display graph or not") defProperty('duration', 10, "Duration of experiment") defGroup('Sender',property.theOne) do |node| node.addApplication("test:app:vlc") do |app| app.setProperty('quiet', true) # app.setProperty('play-and-exit', false) app.setProperty('intf', 'dummy') app.setProperty('extraintf', 'omlstats') app.setProperty('input', 'http://emmy9.casa.umass.edu/DASH_BuckBunny/www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/bunny_2s_480p_only/bunny_Desktop.mpd') # app.setProperty('mtu', '1200') # app.measure('audio', :samples =>1) # app.measure('video', :samples =>1) # app.measure('input', :samples =>1) # app.measure('output', :samples =>1) app.measure('vlc_dashRateAdaptation', :samples =>1) app.measure('vlc_dashDlSession', :samples =>1) end end onEvent(:ALL_UP_AND_INSTALLED) do |event| info "starting" wait 3 # allGroups.exec("ln -s /usr/local/bin/vlc /usr/bin/vlc") allGroups.startApplications info "All applications started..." wait property.duration wait 3 allGroups.stopApplications info "All applications stopped." Experiment.done end #defGraph 'Throughput' do |g| # g.ms('dashRateAdaptation').select {[oml_ts_client.as(:ts), :chosenRate_bps ]} # g.caption "Packet length measurement." # g.type 'line_chart3' # g.mapping :x_axis => :ts, :y_axis => :chosenRate_bps # g.xaxis :legend => 'time [s]' # g.yaxis :legend => 'Chosen Rate [bps] ', :ticks => {:format => 's'} #end