Coder Social home page Coder Social logo

Comments (9)

masmu avatar masmu commented on July 1, 2024

This is planned, but this there are currently other things to do.
I will have to rewrite a lot of memory management code to make that happen.
Besides that, the major change to systemd makes that even harder. So, I don't want to support upstart anymore.

I am sorry but this will take a while.

from pulseaudio-dlna.

coder-hugo avatar coder-hugo commented on July 1, 2024

I'm not familiar with upstart but a played already a lot with the systemd as this is the default init system of Archlinux for a long time. And I think using the systemd makes it even simpler to create a daemon. In the end your application has to do nothing special to run with the systemd. If the application writes it log output to stdout the systemd will automatically redirect this to a "log file" (in the end it's more than a log file, but for this explanation log file should be ok). The application should implement a "shutdown" for the SIGINT signal so it exits clean on a systemctl stop <deamon>.service.
Also for the SysVinit an application that should run as a daemon has to act like a normal application. Therefore I assume it's something similar with upstart.
In the end there is no reason why the application should decide which init system should be used to daemonize it. This is part of the distribution (and the distributor of the package). So the upstart or systemd configuration should be part of the debian packaging stuff mentioned in #37.

from pulseaudio-dlna.

masmu avatar masmu commented on July 1, 2024

So, in that case for Ubuntu i am the distributor, right?

from pulseaudio-dlna.

coder-hugo avatar coder-hugo commented on July 1, 2024

Right.
Btw. I read some documentations about UPnP and recognized that all clients send a periodic advertisement message and also a byebye message if they shutdown. So it's not necessary to poll periodically for all available UPnP cleints instead a UDP server should be implemented that listens for these messages. I had already a look to your code and have some ideas how to implement this. If I find some time I'll add this functionality and provide it as pull-request to you.

from pulseaudio-dlna.

masmu avatar masmu commented on July 1, 2024

I really appreciate your efforts.

I recommend you to take a look at the refactor/streaming-server branch. It turned to be my actual development branch, and i changed the whole structure of the application.
Note, that there is Chromecast support in that and i am thinking about more protocols to support.
So every change has to be thought of all protocols (DLNA, Castv2, maybe others) and not just DLNA.

But see what you can manage, patches welcome! 😄

from pulseaudio-dlna.

martininsulander avatar martininsulander commented on July 1, 2024

Just a small idea (thou I'm not that experienced in this area).

What about using Avahi? As I understand it this is made just that task.
See http://www.avahi.org/wiki/PythonBrowseExample

from pulseaudio-dlna.

masmu avatar masmu commented on July 1, 2024

@martininsulander
Avahi would just be a replacement for the discovery module. But the module itself is fine.
The problem is how all the different modules are wired together.
As it is now, even if you would keep going detecting more devices they would not be used.
Rewiring the modules is the real task.

from pulseaudio-dlna.

masmu avatar masmu commented on July 1, 2024

@coder-hugo
I just pushed some code which makes pulseaudio-dlna runnable as root.
So, if this looks okay, it should be very simple to make it run as a system service.

Since you are pretty familiar with the code, I would really appreciate if you take a look at this.

from pulseaudio-dlna.

masmu avatar masmu commented on July 1, 2024
  • 0.4.0 - (2015-07-27)
    • Added the --fake-http10-content-length option
    • The application can now run as root
    • Catch pulseaudio exceptions for streams, sinks and modules when those are gone
    • Fixed a bug where a missing ssdp header field made the application crash
    • New devices are added now during runtime (thanks to coder-hugo)
    • Rewrite of the streaming server
    • Upnp devices can now request their audio format based on their capabilities
    • Added AAC encoder
    • If a device stops playing, the streams currently playing on
      the corresponding sink are switched back to the default sink
    • If a device failes to start playing, streams currently playing on
      the corresponding sink are switched back to the default sink
    • Added Chromecast support (new dependency: python-protobuf)
    • Fixed a bug where the application crashed when there was no suitable encoder found
    • Added the --bit-rate option
    • Added additional headers for DLNA devices
    • Added switch back mode also for sinks, not just for streams (new dependency: python-notify2)
    • Added better logging
    • Validate encoders for installed dependencies

from pulseaudio-dlna.

Related Issues (20)

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.