GithubHelp home page GithubHelp logo

djvergad / dash Goto Github PK

View Code? Open in Web Editor NEW
44.0 44.0 20.0 220 KB

An MPEG/DASH client-server module for simulating rate adaptation mechanisms over HTTP/TCP.

License: GNU General Public License v2.0

Python 1.85% C++ 97.06% CMake 1.09%

dash's People

Contributors

brunottonurb avatar dilunga1 avatar djvergad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dash's Issues

Server could not send frame

Hi~
I follow the Installation instructions and successfully get the output
However, I check the log in dash/model/dash-server.cc
To open the log, I use the command export NS_LOG=DashServer=level_all

Following is my command to run the simulator
./waf --run 'src/dash/examples/dash-example --users=1 --protocol="ns3::FdashClient" --linkRate=5000Kbps'

Then I get the log like this

DATA WAS JUST SENT!!!
DashServer:DataSend(0x16e3e30)
VidId: 1 rxAv= 0 queue= 39 res= 1547000
Could not send frame
DATA WAS JUST SENT!!!
DashServer:DataSend(0x16e3e30)
VidId: 1 rxAv= 0 queue= 39 res= 1547000
Could not send frame
DATA WAS JUST SENT!!!
DashServer:DataSend(0x16e3e30)
VidId: 1 rxAv= 0 queue= 38 res= 1547000
Could not send frame
DATA WAS JUST SENT!!!
DashServer:DataSend(0x16e3e30)
VidId: 1 rxAv= 0 queue= 38 res= 1547000
Could not send frame
DATA WAS JUST SENT!!!
....

The log "Could not send frame" is from dash-server.cc line 237

It means that sometimes server could not send packets to client
I wonder why this situation happen?
Could this problem be fixed?

DASH Extension for multiple streams

If we have multiple streams at the server-side can we add multiple players (each player requesting a single stream over the same channel from the server) at the client-side? Will that is equivalent to a separate dash client for each of the stream requesting the segments over a channel for different streams same as in the multi-client scenario. Thanks

installation error

Hey,i get a error about installation.
after installing ns3 and configuring,I run the instruction
./waf --run 'src/dash/examples/dash-example --users=3 --protocol="ns::FdashClient" --LinkRate=1000Kbps'
and get a error:
Waf: Entering directory `/home/albert/repos/ns-3-allinone/ns-3-dev/build'
[1786/2466] Compiling src/dash/model/algorithms/osmp-client.cc
[1791/2466] Compiling src/dash/model/dash-server.cc
../src/dash/model/dash-server.cc: In static member function ‘static ns3::TypeId ns3::DashServer::GetTypeId()’:
../src/dash/model/dash-server.cc:58:60: error: ‘ns3::TypeId ns3::TypeId::AddTraceSource(std::__cxx11::string, std::__cxx11::string, ns3::Ptr)’ is deprecated [-Werror=deprecated-declarations]
MakeTraceSourceAccessor(&DashServer::m_rxTrace));
^
In file included from ./ns3/object-base.h:23:0,
from ./ns3/object.h:29,
from ./ns3/node.h:26,
from ../src/dash/model/dash-server.cc:26:
./ns3/type-id.h:439:10: note: declared here
TypeId AddTraceSource (std::string name,
^
cc1plus: all warnings being treated as errors

Waf: Leaving directory `/home/albert/repos/ns-3-allinone/ns-3-dev/build'
Build failed
-> task in 'ns3-dash' failed with exit status 1 (run with -v to display more information)
how can i solve this problem?(using ubuntu16.04 ns3.29

Make the HTTP interface more accurate

The current implementation consists of a packet header with only two message types: request, response. This is not an accurate representation of the HTTP protocol. It should be improved.

Dash server SendSegment

Hi,
I would be thankful if you could clarify 2 questions regarding the dash-server ('dash/model/dash-server.cc'):

  1. Why is the avg_packetsize (line 276) divided by (50*8)? I assume that 'resolution' is in your case m_birate, so "/ 8" relates to bytes conversion, but the "/50"?
  2. why are you using an UniformRandomVarible within DashServer::SendSegment (line 281) to generate the packet size?
    Thanks a lot in advance.

Make the MPEG model more realistic

Currently the MPEG packet size follows a Uniform distribution, and can be set at any (integer) rate.

There should be an option to generate packets from a MPEG trace file, at predefined rates.

The code to switch down bitrate in raahs gets me confused.

Is it right?

  else if (mi < gamma_d) // Switch down
    {
      i = rateInd - 1;
      for (i = 0; i < rateInd - 1; i--)
        {
          if (rates[i] < mi * currRate)
            {
              nextRate = rates[i];
            }
          else
            {
              break;
            }
        }
    }

May be:

  else if (mi < gamma_d) // Switch down
    {
      for (i =rates_size-1; i>=0; i--)
        {
          if (rates[i] < mi * currRate)
            {
              nextRate = rates[i];
              break;
            }
        }
    }

MPEG_MAX_MESSAGE

What does represent MPEG_MAX_MESSAGE in the mpeg-header.h ?
The default value is set to 100000 [what?]

Thkns

Total buffer capacity

hey,issues again :D
how to set the total buffer capacity? buffer is infinite?can i set an upper limit to buffer?
i didn't see the restrict of buffer in mpeg-play.
another:
how can i run the dash in variable bandwidth condition?

Issue with ns3.34

When executing the example dash-example.cc with ns version 3.34 the execution works fine (output is as expected), however after this execution I can no longer use the waf commands to execute any simulations in ns3 due to this error:

Traceback (most recent call last):
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Scripting.py", line 119, in waf_entry_point
run_commands()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Scripting.py", line 182, in run_commands
ctx=run_command(cmd_name)
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Scripting.py", line 173, in run_command
ctx.execute()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Scripting.py", line 375, in execute
return execute_method(self)
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Build.py", line 93, in execute
self.execute_build()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Build.py", line 100, in execute_build
self.compile()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Build.py", line 167, in compile
self.producer.start()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Runner.py", line 275, in start
self.refill_task_list()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Runner.py", line 152, in refill_task_list
tasks=next(self.biter)
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Build.py", line 416, in get_build_iterator
self.post_group()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Build.py", line 399, in post_group
tgpost(tg)
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/Build.py", line 359, in tgpost
f()
File "/home/alejandro/Desktop/bake/source/ns-3.34/.waf3-2.0.21-c6c9a875365426e5928462b9b74d40b5/waflib/TaskGen.py", line 123, in post
v()
File "/home/alejandro/Desktop/bake/source/ns-3.34/src/wscript", line 717, in apply_ns3moduleheader
for source in sorted(ns3headers.headers):
AttributeError: 'task_gen' object has no attribute 'headers'

Is this caused because there is no ns-3.34 compatibility ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.