geuma / pdlna Goto Github PK
View Code? Open in Web Editor NEWperl DLNA MediaServer
Home Page: https://www.pdlna.org
License: GNU General Public License v3.0
perl DLNA MediaServer
Home Page: https://www.pdlna.org
License: GNU General Public License v3.0
pDLNA (c) 2010-2018 Stefan Heumader-Rainer email: [email protected] webpage: https://www.pdlna.org Licensed under GPLv3 (see LICENSE file) INTRODUCTION ------------ pDLNA is an UPnP and DLNA service which serves multimedia content to compatible clients on the network and is written in Perl. See http://www.perl.org for more details on Perl and http://www.upnp.org/ for more details on UPnP and http://www.dlna.org/ for mode details on DLNA. INSTALLATION ------------------------- For the installation see the INSTALL file or the 'pDLNA Installation, Configuration and Debugging Guide' available under https://www.pdlna.org/cgi-bin/index.pl?menu=download&type=icdguide&version=latest BUGS & FEATURES --------------- Email me or contact me on GitHub if you find bugs or if you have some ideas for improvements. <[email protected]> Stefan Heumader-Rainer
You should have a look at XML::Compile* stuff for handling SOAP requests and XML namespaces. (HTTPServer line 332+)
further investigation needed
On FreeBSD, there seems to be a problem shutting down pDLNA. The following error message will occur:
[root@mediaserver ~]# /etc/rc.d/rc.pDLNA start
Starting pDLNA ...
[root@mediaserver ~]# /etc/rc.d/rc.pDLNA stop
[root@mediaserver ~]# /etc/rc.d/rc.pDLNA start
Starting pDLNA ...
[root@mediaserver ~]# Cannot bind to Multicast socket: Address already in use
Going to terminate pDLNA/v0.63.0b on freebsd/9.0-release with FriendlyName 'pDLNA v0.63.0b on mediaserver' ...
At the moment there is a workaround for this problem. Just geht es listing of the processes, kill the pDLNA process, remove the PID file (if any) and use the initscript afterwards again to start pDLNA:
[root@mediaserver ~]# ps
PID TT STAT TIME COMMAND
1354 v0 Is 0:00.04 login pam
1355 v1 Is+ 0:00.00 /usr/libexec/getty Pc ttyv1
1356 v2 Is+ 0:00.00 /usr/libexec/getty Pc ttyv2
1357 v3 Is+ 0:00.00 /usr/libexec/getty Pc ttyv3
1358 v4 Is+ 0:00.00 /usr/libexec/getty Pc ttyv4
1359 v5 Is+ 0:00.00 /usr/libexec/getty Pc ttyv5
1360 v6 Is+ 0:00.00 /usr/libexec/getty Pc ttyv6
1361 v7 Is+ 0:00.00 /usr/libexec/getty Pc ttyv7
1411 0 Ss 0:00.14 -bash (bash)
2246 0 S 0:01.60 /usr/bin/perl ./pDLNA.pl -f /etc/pdlna.conf (perl5.12.4)
2264 0 R+ 0:00.01 ps
[root@mediaserver ~]# kill -9 2246
[root@mediaserver ~]# rm /var/run/pdlna.pid
[root@mediaserver ~]# /etc/rc.d/rc.pDLNA start
Starting pDLNA ...
even if the module has been removed from the dependencies and no further code is existing
migrate DeviceList object to DB
If the media file name contains a regex special character, I get the following log entry:
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::SQLite::db handle dbname=/media/TREK_2/Audio/pdlna.db at ./pDLNA.pl line 63.
Thread 1 terminated abnormally: Unmatched ) in regex; marked by <-- HERE in m/^18-This Live I) <-- HERE 'm Living.mp3$/ at PDLNA/ContentLibrary.pm line 152.
Possible solution: use \Q...\E
ContentLibrary.pm: LIne 135 and 152
/^\Q$element_basename\E$/,
Support for transcoding audio files to mostly everything ....
Hi PDLNA/Config.pm is using a deprecated Net::Interface function around line 240 which is no longer supported in the latest version of the module, You need to use IO::Interface instead. I have made the changes in a fork I made from your repo. You may pull the changes from [email protected]:shantanubhadoria/pDLNA.git
Hope that helps
Cheers!
-Shantanu Bhadoria
the default value for LogFileMaxSize is wrongly set to 1 MB instead of 10 MB
Thanks to vince for reporting this issue
WorkAround: define the value in the configuration file
Use of uninitialized value $request_line in string ne at /PDLNA/HTTPServer.pm line 92.
in unknown cases this warning message occurs
Via the WebUI everybody should be able To check if a New Version of pDLNA is available
bugfix release
At least the debian 7.0 binary tells us to:
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
When a PostgreSQL database is used as a backend for pDLNA, various NOTICE messages will appear. This messages are only informing about some tables or primary keys, which have been created by pDLNA.
it might look like:
root@mediaserver:~# /etc/init.d/pdlna start
Starting pDLNA ...
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "metadata_pkey" for table "metadata"
NOTICE: CREATE TABLE will create implicit sequence "items_id_seq" for serial column "items.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "items_pkey" for table "items"
NOTICE: CREATE TABLE will create implicit sequence "device_ip_id_seq" for serial column "device_ip.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "device_ip_pkey" for table "device_ip"
NOTICE: CREATE TABLE will create implicit sequence "device_bm_id_seq" for serial column "device_bm.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "device_bm_pkey" for table "device_bm"
NOTICE: CREATE TABLE will create implicit sequence "device_udn_id_seq" for serial column "device_udn.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "device_udn_pkey" for table "device_udn"
NOTICE: CREATE TABLE will create implicit sequence "device_nts_id_seq" for serial column "device_nts.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "device_nts_pkey" for table "device_nts"
NOTICE: CREATE TABLE will create implicit sequence "device_service_id_seq" for serial column "device_service.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "device_service_pkey" for table "device_service"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "stat_mem_pkey" for table "stat_mem"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "stat_items_pkey" for table "stat_items"
Hello!
I'm currently looking at your code. There is a bug:
$$SIG{'INT'} = sub{};
That does not work. Use '$' instead of '$$'.
I'm looking at your code because I wonder if I could add DLNA support to my VDR streamer PoC at https://github.com/jjYBdx4IL/VDR-Streamer/blob/master/mojo_vdr_streamer.pl
BTW: you probably can go without threading by using an event-driven model based on, for example, the EV perl module.
Fix the following error:
Use of uninitialized value $nt_type in concatenation (.) or string at /PDLNA/SSDP.pm line 299
root@mediaserver:~# /etc/init.d/rc.pDLNA restart
Stopping pDLNA ...
Starting pDLNA ...
DBD::SQLite::db do failed: table METADATA already exists at PDLNA/Database.pm line 87.
DBD::SQLite::st execute failed: constraint failed
column KEY is not unique at PDLNA/Database.pm line 222.
constraint failed
column KEY is not unique at PDLNA/Database.pm line 222.
for instance
is
$$info{GENRE} = $tag->{'GENRE'} if defined($tag->{'GENRE'}) && length($tag->{'GENRE'}) > 0;
a better idea than
$$info{GENRE} = $tag->{'GENRE'} if length($tag->{'GENRE'}) > 0;
the following error occurs: Usage: Socket::inet_ntoa(ip_address_sv) at PDLNA/Config.pm line 219.
Workaround: define AllowedClients in configuration file
Currently DirectoryListings are not working, when mandatory (are those mandatory?) data fields are not defined in XML Tag in request from DLNA media renderer
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.