Comments (9)
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.
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.
So, in that case for Ubuntu i am the distributor, right?
from pulseaudio-dlna.
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.
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.
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.
@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.
@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.
- 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
- Added the
from pulseaudio-dlna.
Related Issues (20)
- Chrome OS Support
- non-critical (?) error during setup of pulseaudio-dlna with Python 3.8
- The device "Living Room speaker (Chromecast)" failed to play! (500) - Unknown exception
- Outdated? 2020... HOT 3
- Any way to make this never the default ?
- ValueError: invalid literal for int() with base 10: '119,192.168.0.9' HOT 4
- Error after Kodi Update: pyupnpv2 - Connection timeout
- Don't work with pipewire-pulseaudio HOT 11
- "An exception happened" HOT 2
- Kubuntu 21.04 w/ backports HOT 1
- Is this project dead? HOT 1
- [not an issue] Addition to the Tested Device List: Allo Boss2 Player ruinning Moode UPNP (DLNA) - tested
- pulseaudio-dlna connects - but no sound! HOT 2
- Request 24 bit 96000 audio ouput
- Another request for FLAC 24/96 streaming
- Add support for OpenHome HOT 1
- Cannot add PPA: ''This PPA does not support focal''. HOT 1
- pulseaudio_dlna.streamserver provides wrong sample specs HOT 2
- Add more maintainers
- Propose another choice to stream audio to DLNA devices
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pulseaudio-dlna.