Coder Social home page Coder Social logo

RFE: IGMP support about tomcast HOT 12 OPEN

lars18th avatar lars18th commented on August 15, 2024
RFE: IGMP support

from tomcast.

Comments (12)

lars18th avatar lars18th commented on August 15, 2024 2

Hi,

I hope someone will continue developing this: nerosketch@b30b45c

Regards.

from tomcast.

gfto avatar gfto commented on August 15, 2024 1

Sure, just submit a MR and I'll check it out.

from tomcast.

joolzg avatar joolzg commented on August 15, 2024

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi @joolzg ,

Great idea. Question is there a mechanism that allows the
notification of someone joining a new group

Fortunately exists one opensource project with this function implemented: the VDR plugin streamdev.

See the help here:
http://github.com/varaslt/vdr-plugin-streamdev/blob/master/README#L297

The code related to IGMP management is here:
http://github.com/varaslt/vdr-plugin-streamdev/blob/9c12dba267d0ad21258a0e847ba99c6cebc75ae2/server/componentIGMP.c
http://github.com/varaslt/vdr-plugin-streamdev/blob/9c12dba267d0ad21258a0e847ba99c6cebc75ae2/server/connectionIGMP.c

And the main code only instantiates the "componentIGMP class":
http://github.com/varaslt/vdr-plugin-streamdev/blob/9c12dba267d0ad21258a0e847ba99c6cebc75ae2/server/server.c#L44

I don't say that you need to incorporate this code, but you can use it as example.
All the useful functions are here. However, if you like a more simple protocol description, then we can work together for describe it.

What you think?

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi @joolzg ,

I found another interesting source that you can use: the good old "imgpproxy" project.
Here one uptodate fork: http://github.com/ViToni/igmpproxy

I feel you can use this project to incorporating some code. Let me to explain it:

You will like to implement some initial support?

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi @gfto ,

You agree to implement this function?

At time, I can't found any opensource project (except the VDR plugin streamdev) with this funcionality. I feel will be very useful to have one "on-demand" multicast server based on IGMP.

I hope this sounds good to you! ;)
Regards.

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi,

I'm considering an alternative implementation for supporting IGMP:

  • The idea is run one imgp-proxy daemon or pim-router daemon inside the same server where is running the tomcast process and catch the kernel routing table. So, when a new multicast route appears, then enable the channel inside the tomcast instance.

For implementing in this way, some changes are needed in tomcast. One of them is the avility for starting/stopping channels on-the-fly. So I suggest an approach similar to dvblast.sock and the dvblastctl tool:

  • Tomcast will include a control file like "/tmp/tomcast.sock", and using some calls to this file, you can execute internal commands, like:
echo "start 239.80.80.80:5000" > /tmp/tomcast.sock
echo "stop 239.80.80.80:5000" > /tmp/tomcast.sock
echo "start chan3" > /tmp/tomcast.sock
echo "stop chan3" > /tmp/tomcast.sock

I prefer the option for using the multicast output address as the id of the channel, instead of the name used in the channels.conf file. However, I feel it's easy to support both, and several users should prefer to use the name.

What you think?

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi @gfto ,

You feel that you can add some support for "starting"/"stoping" the channels using an external tool?
If yes, then I can program an external tool for sending such messages (start-stop) to your tool based on IGMP requests.

You agree?

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi,

I discovered that someone is working on it: nerosketch@b30b45c

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi,

No one interested in merge this? nerosketch@b30b45c

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi @gfto ,

It's now time to merge nerosketch@b30b45c ?
And nerosketch@a717fd9 too?

Please, comment.
Regards.

from tomcast.

lars18th avatar lars18th commented on August 15, 2024

Hi,

Some news: Initial (external) support is added in #12 .

from tomcast.

Related Issues (11)

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.