Git Product home page Git Product logo

Comments (4)

francisyyan avatar francisyyan commented on June 14, 2024 1

I don't think & is the issue: Each media server of Puffer is single-threaded running a single process, so the execution is sequential and pretty straightforward to reason about. client_.tcp_info().value() returns a struct TCPInfo containing just five integers, and curr_tcp_info simply holds a reference to this struct. Removing & will cause an extra copy of five integers, no big deal, but shouldn't affect the correctness.

Could you please double check the symptom on your side? That is to output, say, curr_tcp_info.cwnd before and after removing the &, without making any other changes. Regardless of this, we definitely want to hear more about why Fugu doesn't work as expected! Although we can't guarantee Fugu working in simulation (re: our research paper), we still want to eliminate mysterious behaviors of it and understand it better.

from puffer.

meng72 avatar meng72 commented on June 14, 2024 1

Thanks for your advice! Actually, I just pulled the latest Puffer and re-tried it once more. The error is gone now. I agree with what you said that removing & shouldn't make a difference. But I couldn't figure out the reason of the unexpected behavior previously. Anyways, good news that it's not there any more. Thanks again!

from puffer.

NeverlMole avatar NeverlMole commented on June 14, 2024

Hello ---------- Sorry, we didn't quite get your problem. Did you mean that the value curr_tcp_info.delivery_rate/cwnd/... might not equal to client_.tcp_info().value().delivery_rate/cwnd/...?

from puffer.

meng72 avatar meng72 commented on June 14, 2024

Yes.

Actually, in my experiments, I capped the network bandwidth to different values but the video format was always selected as the top one (1920x1080-22), even though there were frequent long rebuffering events happened, especially for the very first chunk. Then I printed out tcp-level information and found curr_tcp_info.delivery_rate/cwnd/... are not the expected tcp-level information (i.e. client_.tcp_info().value().delivery_rate/cwnd/...). That's why I think TTP couldn't predict proper transmission time for next video chunks.

After I remove & from const auto & curr_tcp_info = client_.tcp_info().value();, now it seems that puffer could adapt to different network bandwidth.

Please correct me if I am wrong. Thanks!

from puffer.

Related Issues (17)

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.