Git Product home page Git Product logo

digitalmediaserver's Introduction

Digital Media Server

GitHub top language GitHub contributors Crowdin

Digital Media Server Digital Media Server is a DLNA compatible UPnP AV Media Server. It is capable of sharing digital video, audio and image resources to UPnP AV and DLNA capable devices. It is based on PS3 Media Server by shagrath and Universal Media Server.

Digital Media Server supports Windows, Linux and macOS. It streams or transcodes many different media formats with little or no configuration. It is powered by MEncoder, FFmpeg, tsMuxeR, AviSynth, MediaInfo, VLC, OpenSubtitles.org and more, which combine to offer support for a wide range of media formats.

Terms of use

By using this software, for any purpose and in any shape or form, you grant your implicit agreement to the following statements:

  • You condemn Russia and its military aggression against Ukraine.
  • You recognize that Russia is an occupant that unlawfully invaded a sovereign state.
  • You support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas.
  • You reject false narratives perpetuated by Russian state propaganda.

Glory to Ukraine! πŸ‡ΊπŸ‡¦

Current Project Developers

Links

digitalmediaserver's People

Contributors

alfredoramos avatar atamariya avatar bartsimp avatar deflanko avatar dependabot[bot] avatar douglasanpa avatar duanemoody avatar exsport avatar gzsombor avatar harveyhu2012 avatar ichimonji10 avatar jensaarai avatar k4r0lsz avatar kirvx avatar ler0y avatar mfulgo avatar nadahar avatar prescott66 avatar sami32 avatar sharkhunter avatar skeptical avatar skylion007 avatar squadjot avatar subjunk avatar taconaut avatar tdcosta100 avatar utano avatar valib avatar wolcano avatar wolfganp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

digitalmediaserver's Issues

ArithmeticException in transcoding timer

http://www.universalmediaserver.com/forum/viewtopic.php?f=9&t=12515&start=10

INFO  2018-06-05 19:55:17.782 [ffmpeg64.exe-55-Timer] Exception in thread "ffmpeg64.exe-55-Timer" java.lang.ArithmeticException: / by zero
INFO  2018-06-05 19:55:17.782 [ffmpeg64.exe-55-Timer] 	at net.pms.newgui.StatusTab$RendererItem.actionPerformed(StatusTab.java:99)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.util.BasicPlayer$Minimal.alert(BasicPlayer.java:150)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.util.BasicPlayer$Logical.alert(BasicPlayer.java:351)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.util.BasicPlayer$Minimal.reset(BasicPlayer.java:117)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.util.BasicPlayer$Minimal.<init>(BasicPlayer.java:103)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.util.BasicPlayer$Logical.<init>(BasicPlayer.java:262)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.network.UPNPHelper$Player.<init>(UPNPHelper.java:787)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.configuration.RendererConfiguration.getPlayer(RendererConfiguration.java:1585)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.configuration.RendererConfiguration.setBuffer(RendererConfiguration.java:2737)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at net.pms.io.BufferedOutputFileImpl$1.run(BufferedOutputFileImpl.java:815)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at java.util.TimerThread.mainLoop(Unknown Source)
INFO  2018-06-05 19:55:17.783 [ffmpeg64.exe-55-Timer] 	at java.util.TimerThread.run(Unknown Source)

Wrong DIDL-Lite bitrate and size informations giving issues while transcoding

  • I just discovered the bitrate issue while searching why videos with very high bitrate was not playing fine while the transcoding was OK.

Example:
DEBUG 2017-08-21 01:23:32.660 [HTTPv2 Request Worker 2] Starting transcode/remux of Lossless_FFv1 Test.avi with media info: Container: AVI, Size: 371995296, Video Bitrate: 422721920, Video Tracks: 1, Video Codec: rgb, Duration: 0:00:07.000, Video Resolution: 1024 x 688, Frame Rate: 25.000, DLNAThumbnail: [Format = JPEG, Resolution = 268Γ—180, Size = 33984, DLNA Profile = JPEG_RES_268_180], Mime Type: video/avi

<Result>&lt;DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:sec="http://www.sec.co.kr/" xmlns:pv="http://www.pv.com/pvns/"&gt;&lt;item id="86" parentID="53" restricted="1"&gt;&lt;dc:title&gt;Lossless_FFv1 Test&lt;/dc:title&gt;&lt;res xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" protocolInfo="http-get:*:video/mp4:DLNA.ORG_OP=01" size="1000000" duration="0:00:07.000" resolution="1024x688" bitrate="52840240"&gt;

That part of the code is flawed, IMO.

As some renderers are more sensible to it because they have a bitrate limitation, as 25 Mb/s, it was more obvious to detect it with one of them.
I've fixed it with an ugly trick for a user, having AVI with rawvideo codec (from camera), but i'm sure a proper fix can and should be found. I just can't find one right now, so i'll appreciate any idea to get the real bitrate while transcoding, though i could not afford a big refactory myself if it need it.
I thought about using the below idea and divide that "more real" transcoded size by the total video duration.

  • Concerning the size, that could give issue, such as videos without sound that are not played correctly while transcoded with TranscodedVideoFileSize = 1000000 (and certainly others), i don't know if it will possible, but i thought about checking at the size of the first second transcoded (or the full 2.5 s that it buffer) (in the buffer ?) and multiply that by the total duration of the video. This value should be rounded up.
    Do you think that it could be done ? or do you have a better idea ?

EDIT: getRealVideoBitrate() What a joke ;-)

Don't use MediaInfo "Strings"

Not using /String MediaInfo parameters will enhance the media parsing speed.
And some more optimizations are also possible, that give also some additional ADTS bitrate informations.

From my test, we can get around 5% speed enhancement.

DTS

Note for myself.

Verify if our code still use the bitrate parsing and fix if it that is the case for been able to use the latest MediaInfo version.

3 new Samsung own DLNA strings

SEC.COM_DIDLSIMAGE
SEC.COM_DIDLSAUDIO
SEC.COM_DIDLSVIDEO
TRACE 2017-08-26 05:32:41.316 [cling-82] net.pms.dlna.protocolinfo.ProtocolInfoAttribute$ProtocolInfoAttributeFactory Creating unknown ProtocolInfoAttribute "SEC.COM_DIDLSIMAGE" with value "1"
TRACE 2017-08-26 05:32:41.317 [cling-82] net.pms.dlna.protocolinfo.ProtocolInfoAttribute$ProtocolInfoAttributeFactory Creating unknown ProtocolInfoAttribute "SEC.COM_DIDLSAUDIO" with value "1"
TRACE 2017-08-26 05:32:41.317 [cling-82] net.pms.dlna.protocolinfo.ProtocolInfoAttribute$ProtocolInfoAttributeFactory Creating unknown ProtocolInfoAttribute "SEC.COM_DIDLSVIDEO" with value "1"
TRACE 2017-08-26 05:32:41.318 [cling-82] net.pms.network.UPNPControl Received GetProtocolInfo from "[TV] Samsung":

EIA subtitles support

@Sami32 I remember that you've talked about this, but I can't remember what was the issue. I now have some files with EIA-608 subtitles and would like to get them to work. Can you remind me what you already know about the issue?

macOS sleep failure

WARN  2018-10-15 23:53:05.339 [macOS Sleep Worker] Unable to release idle sleep prevention assertion: IOPMAssertionRelease failed with error code: kIOReturnBadArgument (0xe00002c2)
TRACE 2018-10-15 23:53:05.341 [macOS Sleep Worker] 
net.pms.exception.IOKitException: IOPMAssertionRelease failed with error code: kIOReturnBadArgument (0xe00002c2)
	at net.pms.util.jna.macos.iokit.IOKitUtils.enableGoToSleep(IOKitUtils.java:255)
	at net.pms.service.SleepManager$MacOsSleepWorker.doAllowSleep(SleepManager.java:525)
	at net.pms.service.SleepManager$AbstractSleepWorker.run(SleepManager.java:415)
INFO  2018-10-15 23:53:05.341 [DMS Shutdown] Stopping Digital Media Server 0.0.1-SNAPSHOT

Missing error handling?

TRACE 2018-12-07 22:31:16.279 [Thread-37] net.pms.io.WindowsNamedPipe
java.io.InterruptedIOException: null
at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:276)
at java.io.PipedInputStream.receive(PipedInputStream.java:232)
at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
at java.io.OutputStream.write(OutputStream.java:75)
at net.pms.io.WindowsNamedPipe.run(WindowsNamedPipe.java:276)

Improve PS3 and PS4 Configuration File for Streaming

Describe your environment

  • Windows 10
  • DMS version: 0.0.1
  • UPnP AV or DLNA device(s) or software used: PS3, PS4

Issue Type

  • [X ] Bug report

Description

The PS3 will offer to stream mpeg4sp avi files while wanting to transcode mpeg4asp avi files. The PS4 will want to do the reverse.

Expected behavior

Actually both renderers will stream both types of avi files. I have both devices and have included both mpeg4sp and mpeg4asp in both configuration files, and can confirm that they stream on both devices.

java.io.InvalidClassException: net.pms.image.ImageInfo

TRACE 2018-09-14 21:01:03.125 [HTTPv2 Request Worker 1] Matched format FLAC to "F:_DEVELOPPEMENT_TOOLS!MEDIA_TEST_FILES\AUDIO\FLAC\2L-056_03_stereo-44kHz-16b.flac"
DEBUG 2018-09-14 21:01:03.203 [HTTPv2 Request Worker 1] Cached information about 2L-056_03_stereo-44kHz-16b.flac seems to be from a previous version, reparsing information
TRACE 2018-09-14 21:01:03.218 [HTTPv2 Request Worker 1]
java.io.InvalidClassException: net.pms.image.ImageInfo; local class incompatible: stream classdesc serialVersionUID = 8947090782856389500, local class serialVersionUID = 4247040093720562338
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at org.h2.util.JdbcUtils.deserialize(JdbcUtils.java:420)
at org.h2.jdbc.JdbcConnection.convertToDefaultObject(JdbcConnection.java:2023)
at org.h2.jdbc.JdbcResultSet.getObject(JdbcResultSet.java:534)
at net.pms.dlna.DLNAMediaDatabase.getData(DLNAMediaDatabase.java:363)
at net.pms.dlna.RealFile.resolve(RealFile.java:185)
at net.pms.dlna.DLNAResource.syncResolve(DLNAResource.java:1511)
at net.pms.dlna.DLNAResource.run(DLNAResource.java:1346)
at net.pms.dlna.RealFile.isValid(RealFile.java:70)
at net.pms.dlna.DLNAResource.addChild(DLNAResource.java:644)
at net.pms.dlna.DLNAResource.addChild(DLNAResource.java:608)
at net.pms.dlna.MapFile.manageFile(MapFile.java:311)
at net.pms.dlna.MapFile.analyzeChildren(MapFile.java:364)
at net.pms.dlna.DLNAResource.discoverWithRenderer(DLNAResource.java:1310)
at net.pms.dlna.DLNAResource.getDLNAResources(DLNAResource.java:1225)
at net.pms.network.RequestV2.answer(RequestV2.java:804)
at net.pms.network.RequestHandlerV2.writeResponse(RequestHandlerV2.java:392)
at net.pms.network.RequestHandlerV2.messageReceived(RequestHandlerV2.java:266)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:145)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:485)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

WebInterface favicon bug

On macOS:

DEBUG 2018-10-15 22:38:49.248 [pool-2-thread-2] root req /
ERROR 2018-10-15 22:38:49.248 [pool-2-thread-2] An error occurred while generating a HTTP response: No method or field with name 'favicons' on line 8
TRACE 2018-10-15 22:38:49.249 [pool-2-thread-2] 
com.samskivert.mustache.MustacheException$Context: No method or field with name 'favicons' on line 8
	at com.samskivert.mustache.Template.checkForMissing(Template.java:316)
	at com.samskivert.mustache.Template.getValue(Template.java:224)
	at com.samskivert.mustache.Template.getValueOrDefault(Template.java:269)
	at com.samskivert.mustache.Mustache$VariableSegment.execute(Mustache.java:802)
	at com.samskivert.mustache.Template.executeSegs(Template.java:150)
	at com.samskivert.mustache.Template.execute(Template.java:127)
	at com.samskivert.mustache.Template.execute(Template.java:118)
	at net.pms.remote.RemoteWeb$RemoteStartHandler.handle(RemoteWeb.java:435)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
	at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
	at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
	at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)

Not displayed terms on GUI

The below happens even in English env..

Some terms are not displayed on Transcoding tab.
Scroll bars are not displayed on Transcoding tab.
Explanation and buttons are not displayed on restart confirm dialogue of language of general tab.
Explanation and buttons are not displayed when selecting "Ask" on Close action of general tab and closing the window of DMS.
Explanation and buttons are not displayed on the dialogue of Question, Configuration wizard Question 1 of 2, Configuration wizard Question 2 of 2, Wizard complete! on the wizard.

I do not touch these because I do not know causes.
Only mac?

I fixed "Some terms are not displayed on Transcoding tab".

Web interface overlay message issue

The Web interface overlayed message doesn't appear at the right place.

When staying on the Restart server button then go to the Web interface button, and do it again and again, make all the messages overlay under the Restart server button.

DCRaw failure on ARI files

I don't if it's worst mention it, but DCRaw fail on ARI. Nothing to do except perhaps eventually defer it to FFmpeg, in the case it support it, i dinst tried yet.
https://we.tl/ZFFBG2ewrb

DEBUG 2017-08-13 20:59:58.109 [Library Scanner] Starting "C:\Program Files\Universal Media Server\win32\dcrawMS.exe" -e -c -M -w "F:\!MEDIA_TEST_FILES\UMS Video Testing Suite (20150121)\TESTS\A006C021_150902_R0D0.0044458.ari"
DEBUG 2017-08-13 20:59:58.125 [dcrawMS.exe-4-2] F:\!MEDIA_TEST_FILES\UMS Video Testing Suite (20150121)\TESTS\A006C021_150902_R0D0.0044458.ari has no thumbnail.
INFO  2017-08-13 20:59:58.140 [Library Scanner] Process "C:\Program Files\Universal Media Server\win32\dcrawMS.exe" has a return code of 1! Maybe an error occurred... check the log file
DEBUG 2017-08-13 20:59:58.140 [Library Scanner] Starting ""C:\Program Files\Universal Media Server\win32\dcrawMS.exe"" -h -c -M -w ""F:\!MEDIA_TEST_FILES\UMS Video Testing Suite (20150121)\TESTS\A006C021_150902_R0D0.0044458.ari""

Subtitle Type Priority Checkbox/Option

Issue Type

  • [X ] Feature request

Description

With the new Subtitles build, DMS will scan "Subtitles" and "Subs" subfolders as well as a user defined folder in the Alternative Subtitles folder field.

In my experience, DMS will offer the first subtitle found in the main folder window when browsing into a folder. If all subtitles are in the main folder along with the video files, this will usually lead to .ass files offered over .srt files on Windows as ,ass is listed/encountered before .srt. This is ideal as styled subs are usually preferred over plain text subs.

The situation becomes more complicated with the additional folders. If I have a burned DVD with .srt subs in a "Subtitles" subfolder, and .ass subs in a user defined folder on my HD (entered into the Alternative Subtitle Folder field), DMS will use the .srt subs in the main folder window. I can, however, use the transcode folder to select the .ass subs I want.

However, as styled subs are usually preferred, it would be nice to have the option to prioritize .ass over .srt such that in the above example, DMS will use the ,ass subs in the user defined folder over the .srt subs on the DVD when browsing the main folder window.

Auto sharing folder on wizard

DMS automatically share Desktop and Downloads folders.
I think this is not good on security and the burdens of PC.
Desktop and Downloads folders are privacy itself.
It is a cause for unexpected outflows by beginners.

And I think agreements by users are need, including what folders is shared, when automatically sharing folders,

NPE met under Ubuntu

INFO: <<< UPnP service started successfully
Exception in thread "main" java.lang.NullPointerException
at net.pms.network.PlayerControlHandler.(PlayerControlHandler.java:56)
at net.pms.network.PlayerControlHandler.(PlayerControlHandler.java:43)
at net.pms.network.UPNPHelper.getHttpControlHandler(UPNPHelper.java:125)
at net.pms.network.UPNPHelper.init(UPNPHelper.java:116)
at net.pms.PMS.init(PMS.java:625)
at net.pms.PMS.createInstance(PMS.java:1177)
at net.pms.PMS.main(PMS.java:1500)

Question and problems of GUI

I have found DMS. And I have built it.
Its UI is stylish and cool! Its behavior is light!
I become to like DMS.
Can I PR? though the PRs may include PRed to UMS.

Some problems I found
The belows are not displayed.
the explanation of wizard
confirm after change language
bitrate and channel of general tab of transcoding tab

Crash sometimes at scan start

No error is found into the log.
I don't think that it is related but i've found that in medias.trace.db:

2018-05-13 23:26:48 jdbc[3]: exception
org.h2.jdbc.JdbcSQLException: Table "FILES" not found; SQL statement:
SELECT count(*) FROM FILES [42102-196]
2018-05-13 23:26:48 jdbc[3]: exception
org.h2.jdbc.JdbcSQLException: Table "FILES" not found; SQL statement:
DROP TABLE FILES [42102-196]

More informations will be added when i will able to reproduce it.
Possibly arise when few files are parsed and get fixed when more media folders are added to be parsed?

Navigation/Share libraries flaw when using DMS as a service

Only tested under Linux and VLC for now. It work correctly while using the GUI.

Whatever the user's folders are, it only show one DMS instance showing all the default folders with default settings and one other with "Recently played", also if none of these are enabled in the configuration and display as expected when using the GUI.

Melting pot ;-)

  • I think that "Engines are in descending order..." should be better displayed as a popup while crossing the entry over the engines windows ?

  • Unusual warnings are throwed in the log at starting time concerning the renderers:
    WARN 2017-08-01 00:08:08.265 [AWT-EventQueue-0] Renderer Yamaha RX-V671 found twice, ignoring repeated entry

EDIT:

  • I also saw that, same for UMS, i just verified, Streamium renderer should have been grouped under "Philips" renderer folder and not leaved alone.

Pipe break while using tsMuxeR

DEBUG 2018-11-02 16:25:52.718 [Thread-311] IPC pipe interrupted after writing 0 bytes, shutting down...
TRACE 2018-11-02 16:25:52.718 [Thread-311]
java.io.InterruptedIOException: null
at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:275)
at java.io.PipedInputStream.receive(PipedInputStream.java:231)
at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
at net.pms.io.PipeIPCProcess.run(PipeIPCProcess.java:81)

Interesting documentation related to macOS build

I considered that it deserved it own "issue", and share my documentations compilation here, in case i forget them somewhere πŸ˜‰

https://github.com/andreyvit/create-dmg
https://github.com/LinusU/node-appdmg
https://asmaloney.com/2013/07/howto/packaging-a-mac-os-x-application-using-a-dmg/
https://gist.github.com/jadeatucker/5382343
https://github.com/MagerValp/AutoDMG
http://www.rkuntz.org/pmwiki.php?n=Code.AntDiskImage
http://centerkey.com/mac/java/

http://www.elstensoftware.com/blog/2013/04/17/scripting-dmg-build-osx-linux/

https://dragly.org/2012/01/13/deploy-qt-applications-for-mac-os-x/

http://www.avoiderrors.net/create-dmg-file-macos/

http://www.scala-sbt.org/sbt-native-packager/formats/jdkpackager.html
http://planet.jboss.org/post/packaging_java_applications_for_mac_os_javapackager
http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

And of course the last i found...as said the proverb ;-)

Note to myself for later deeper check: (to see if building under Windows will be possible)
https://github.com/Jorl17/jar2app
https://github.com/libgdx/packr

EDIT: @Optimusprimeums, who maintained and have done macOS builds, and @sebos was the ones that worked on it when Mac OS build has been upgraded to Java 7.
http://www.universalmediaserver.com/forum/viewtopic.php?f=14&t=868&p=5865&hilit=build+Mac+os#p5976
http://www.universalmediaserver.com/forum/viewtopic.php?f=11&t=612

Add a possibility to have more than 1 alternative subtitle folder.

@madoka did suggested, requested that feature because he burn its movies and external subtitles on DVDs, but years later better ASS subtitles come and he put it on its hardrive, so he have to change the subtitles folder every time as he use external subtitles for every movie.

A such specific add should only be added in the DMS.conf to avoid to crowd more the GUI IMO.

EDIT:
If that can help, here is the original PR that have been slightly modified since that era.

Clean up shutdown

Original title: Database exception while saving image thumbnail

TRACE 2017-11-13 16:50:07.125 [Library Scanner] Creating thumbnail for "capture_08132017_140129.jpg"
TRACE 2017-11-13 16:50:07.125 [Library Scanner] Converting input stream image source to SOURCE format and type DLNAThumbnail using the following parameters: ScaleType = MAX, Width = 320, Height = 320, PadToSize = False
DEBUG 2017-11-13 16:50:07.140 [Thread-40] Stopping UPNP Services...
TRACE 2017-11-13 16:50:07.375 [Library Scanner] Image conversion DLNA compliance check for JPEG_RES_320_231: The source image colors are compliant, format is non-compliant and resolution (1024 x 738) is non-compliant.
Failures:
  JPEG_RES_320_231 DLNA compliance failed with wrong resolution 1024 x 738 (limits are 320 x 231)
  JPEG DLNA compliance failed with too low JFIF version "1.01"
  JPEG DLNA compliance failed with non-typical Huffman tables
DEBUG 2017-11-13 16:50:07.406 [DMS Shutdown] Forcing shutdown of all active processes
INFO  2017-11-13 16:50:07.406 [DMS Shutdown] Stopping server on host 192.168.1.29 and port 5001...
TRACE 2017-11-13 16:50:07.671 [Library Scanner] Finished converting 1024Γƒβ€”738 JPEG image. Output image resolution: 320Γƒβ€”231, profile: JPEG_RES_320_231. Flags: Convert colors = False, Re-encode = True
ERROR 2017-11-13 16:50:07.687 [Library Scanner] Error updating cached thumbnail for "Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-196]": {}
TRACE 2017-11-13 16:50:07.687 [Library Scanner] 
org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-196]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
	at org.h2.message.DbException.get(DbException.java:179)
	at org.h2.message.DbException.get(DbException.java:155)
	at org.h2.message.DbException.get(DbException.java:144)
	at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1484)
	at org.h2.jdbc.JdbcConnection.checkClosedForWrite(JdbcConnection.java:1469)

debug.log.prev.txt

Refactor the FFmpeg codecs init

Replace that old and already not correct code part:
https://github.com/DigitalMediaServer/DigitalMediaServer/tree/master/src/main/java/net/pms/util/CodecUtil.java#L49-L68

by ffmpeg -codecs parsing, as the FFmpeg capabilities is already implemented.

Codecs:
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression

SetAVTransportURI failure

See original log here: http://www.universalmediaserver.com/forum/download/file.php?id=4251

It seem that the URI is not correctly formed at some step ?

<upnp:albumArtURI dlna:profileID="PNG_LRG" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">http://192.168.1.4:5001/get/29$Temp/thumbnail0000PNG_LRG_Arrow.S06E09.FASTSUB.VOSTFR.720p.HDTV.x264-ZT.WwW.Zone-Telechargement.Ws.mkv.png</upnp:albumArtURI><dc:date>2017-12-08T21:24:52</dc:date><upnp:class>object.item.videoItem</upnp:class></item>] to PCH-A500 (FF9D6500-8455-4D05-A481-B602C92852D0)[0]
ERROR 2017-12-09 22:30:11.921 [AWT-EventQueue-0] Failed to send action "SetAVTransportURI" to PCH-A500 (FF9D6500-8455-4D05-A481-B602C92852D0): Error: Unsupported format (HTTP response was: 500 Internal)
TRACE 2017-12-09 22:30:11.923 [AWT-EventQueue-0] 
org.fourthline.cling.model.action.ActionException: Unsupported format
	at org.fourthline.cling.transport.impl.SOAPActionProcessorImpl.readFaultElement(SOAPActionProcessorImpl.java:491)
	at org.fourthline.cling.transport.impl.SOAPActionProcessorImpl.readBodyFailure(SOAPActionProcessorImpl.java:212)
	at org.fourthline.cling.transport.impl.SOAPActionProcessorImpl.readBody(SOAPActionProcessorImpl.java:166)
	at org.fourthline.cling.protocol.sync.SendingAction.handleResponseFailure(SendingAction.java:155)
	at org.fourthline.cling.protocol.sync.SendingAction.invokeRemote(SendingAction.java:89)
	at org.fourthline.cling.protocol.sync.SendingAction.executeSync(SendingAction.java:63)
	at org.fourthline.cling.protocol.sync.SendingAction.executeSync(SendingAction.java:51)
	at org.fourthline.cling.protocol.SendingSync.execute(SendingSync.java:54)
	at org.fourthline.cling.protocol.SendingAsync.run(SendingAsync.java:54)
	at org.fourthline.cling.controlpoint.ActionCallback.run(ActionCallback.java:151)
	at net.pms.network.UPNPControl.send(UPNPControl.java:678)
	at net.pms.network.UPNPControl.setAVTransportURI(UPNPControl.java:859)
	at net.pms.network.UPNPHelper$Player.setURI(UPNPHelper.java:805)
	at net.pms.util.BasicPlayer$Logical.pressPlay(BasicPlayer.java:315)
	at net.pms.newgui.PlayerControlPanel$4.actionPerformed(PlayerControlPanel.java:124)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchTh

Renderer Podcast parsing stream issue

It come from UMS 7.0.1 but i suspect that it should be same in DMS.

DEBUG 2018-06-07 09:01:19.709 [HTTPv2 Request Worker 6] Recognized media renderer "[LG] webOS TV UH770V"
TRACE 2018-06-07 09:01:19.710 [HTTPv2 Request Worker 6] Received a browse request from [LG] webOS TV UH770V [LG WebOS TV] (192.168.1.2:44542):

POST /upnp/control/content_directory HTTP/1.1

HEADER:
  SOAPAction: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
  DLNADeviceName.lge.com: %5bLG%5d%20webOS%20TV%20UH770V
  User-Agent: Linux/3.10.19-p.43.dharug.k2l.4 UPnP/1.0 LGE WebOS TV LGE_DLNA_SDK/1.6.0/05.30.03 DLNADOC/1.50
  Host: 192.168.1.7:5001
  Content-Length: 676
  Content-Type: text/xml; charset="utf-8"

CONTENT:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
            <ObjectID>71</ObjectID>
            <BrowseFlag>BrowseDirectChildren</BrowseFlag>
            <Filter>res@resolution,res@nrAudioChannels,res@sampleFrequency,res@bitrate,dc:creator,res@dlna:cleartextSize,dc:date,upnp:genre,res,res@duration,res@size,upnp:albumArtURI,upnp:originalTrackNumber,upnp:album,upnp:artist,upnp:author</Filter>
            <StartingIndex>0</StartingIndex>
            <RequestedCount>30</RequestedCount>
            <SortCriteria/>
        </u:Browse>
    </s:Body>
</s:Envelope>

DEBUG 2018-06-07 09:01:19.712 [DLNAResource resolver thread 11-1] Retrieving http://podcasts.engadget.com/rss.xml
ERROR 2018-06-07 09:01:19.778 [DLNAResource resolver thread 11-1] Error in parsing stream: http://podcasts.engadget.com/rss.xml
java.net.UnknownHostException: podcasts.engadget.com
	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at sun.net.NetworkClient.doConnect(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.<init>(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at net.pms.network.HTTPResource.downloadAndSendBinary(HTTPResource.java:208)
	at net.pms.network.HTTPResource.downloadAndSendBinary(HTTPResource.java:182)
	at net.pms.dlna.Feed.parse(Feed.java:109)
	at net.pms.dlna.Feed.resolveOnce(Feed.java:94)
	at net.pms.dlna.DLNAResource.resolve(DLNAResource.java:1612)
	at net.pms.dlna.DLNAResource.syncResolve(DLNAResource.java:1592)
	at net.pms.dlna.DLNAResource.run(DLNAResource.java:1389)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
TRACE 2018-06-07 09:01:19.779 [HTTPv2 Request Worker 6] End of analysis for Podcasts
TRACE 2018-06-07 09:01:19.781 [HTTPv2 Request Worker 6] Response sent to [LG] webOS TV UH770V [LG WebOS TV]:

HEADER:
  HTTP/1.1 200 OK
  Content-Type: text/xml; charset="utf-8"
  Server: Windows_10-amd64-10.0, UPnP/1.0 DLNADOC/1.50, UMS/7.1.0-SNAPSHOT
  Content-Length: 2604

CONTENT:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>

NPE throwed when transcoding thumbnail

https://github.com/DigitalMediaServer/DigitalMediaServer/blob/master/src/main/java/net/pms/network/RequestV2.java#L339

DEBUG 2018-10-30 20:20:43.218 [HTTPv2 Request Worker 2] Caught exception: null
TRACE 2018-10-30 20:20:43.218 [HTTPv2 Request Worker 2]
java.lang.NullPointerException: null
at net.pms.network.RequestV2.answer(RequestV2.java:339)
at net.pms.network.RequestHandlerV2.writeResponse(RequestHandlerV2.java:392)
at net.pms.network.RequestHandlerV2.messageReceived(RequestHandlerV2.java:266)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:145)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

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.