jellyfin / jellyfin-plugin-dlna

GNU General Public License v3.0
19 stars 13 forks source link

DLNA plugin error #85

Closed rainer-geiger closed 1 hour ago

rainer-geiger commented 4 hours ago

This issue respects the following points:

Description of the bug

After upgrading to Jellyfin 10.10.0 the DLNA-plugin is not working. The "Play to" menu shows only the local device and my other DLNA-receivers are not listed anymore.

Reproduction steps

  1. Update from 10.9.11 to 10.10.0
  2. Open the "play to" menu
  3. Only the local device is listed

What is the current bug behavior?

No dlna device is listed anymore

What is the expected correct behavior?

Avaible DLNA devices (9 available with version 10.9.x, 0 avaiable with 10.10) should show up

Jellyfin Server version

10.9.11+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

10.10.0

Specify the build version

10.10.0

Environment

- OS: Debian Linux 12
- Linux Kernel: shipped
- Virtualization: yes, docker container on Xen VM
- Clients: all
- Browser: all
- FFmpeg Version: standard
- Playback Method: any
- Hardware Acceleration: NVIDIA
- GPU Model:
- Plugins: DLNA 3.0.0.0
- Reverse Proxy:
- Base URL:
- Networking:
- Storage:

Jellyfin logs

[2024-10-26 21:27:38.462 +00:00] [ERR] [16] Jellyfin.Plugin.Dlna.Main.DlnaHost: Error creating PlayTo device.
System.MissingMethodException: Method not found: 'MediaBrowser.Controller.Session.ISessionController[] MediaBrowser.Controller.Session.SessionInfo.get_SessionControllers()'.
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.OnDeviceDiscoveryDeviceDiscovered(Object sender, GenericEventArgs`1 e)
[2024-10-26 21:27:38.752 +00:00] [ERR] [16] Jellyfin.Plugin.Dlna.Main.DlnaHost: Error creating PlayTo device.
System.MissingMethodException: Method not found: 'MediaBrowser.Controller.Session.ISessionController[] MediaBrowser.Controller.Session.SessionInfo.get_SessionControllers()'.
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.OnDeviceDiscoveryDeviceDiscovered(Object sender, GenericEventArgs`1 e)
[2024-10-26 21:27:39.026 +00:00] [ERR] [16] Jellyfin.Plugin.Dlna.Main.DlnaHost: Error creating PlayTo device.
System.MissingMethodException: Method not found: 'MediaBrowser.Controller.Session.ISessionController[] MediaBrowser.Controller.Session.SessionInfo.get_SessionControllers()'.
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.OnDeviceDiscoveryDeviceDiscovered(Object sender, GenericEventArgs`1 e)
[2024-10-26 21:27:39.127 +00:00] [ERR] [16] Jellyfin.Plugin.Dlna.Main.DlnaHost: Error creating PlayTo device.
System.MissingMethodException: Method not found: 'MediaBrowser.Controller.Session.ISessionController[] MediaBrowser.Controller.Session.SessionInfo.get_SessionControllers()'.
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at Jellyfin.Plugin.Dlna.PlayTo.PlayToManager.OnDeviceDiscoveryDeviceDiscovered(Object sender, GenericEventArgs`1 e)

...
...
...

FFmpeg logs

No response

Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

crobibero commented 3 hours ago

Sorry, I thought I had published v4 of the plugin. Please update to that and try again. Should be available in 15-20 minutes.

rainer-geiger commented 2 hours ago

Tested again and the new version isn't available until now. I'll just wait a little longer, but I wanted to let you know in case there are other reasons.

Plugin Repo JSON:

{
  "guid": "33eba9cd-7da1-4720-967f-dd7dae7b74a1",
  "name": "DLNA",
  "description": "Adds DLNA capability to Jellyfin\n",
  "overview": "DLNA Service",
  "owner": "jellyfin",
  "category": "General",
  "imageUrl": "",
  "versions": [
        {
            "version": "3.0.0.0",
            "changelog": "- restore video transcoding (#68) @flashka07\n- Update dependency Microsoft.AspNetCore.Authorization to v8.0.8 (#54) @renovate\n- Set publisher uri to http (#62) @disgustipated\n- Remove . from friendlyname for identifying LG TVs (#60) @disgustipated",
            "targetAbi": "10.9.10.0",
            "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_3.0.0.0.zip",
            "checksum": "10e6c4dab3c5b0bb42d434dfef974ebc",
            "timestamp": "2024-10-26T22:25:45Z"
        },
        {
            "version": "2.0.0.0",
            "changelog": "- Fixed ListenToSocketInternal so it works after Jellyfin 10.9.2 (#51) @ms-afk\n\n### Dependency updates ###\n- Update dependency Microsoft.AspNetCore.Authorization to v8.0.5 (#47) @renovate\n- Update dependency Microsoft.AspNetCore.Authorization to v8.0.4 (#37) @renovate",
            "targetAbi": "10.9.2.0",
            "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_2.0.0.0.zip",
            "checksum": "2d5352445ed378318fee7aec39e12d15",
            "timestamp": "2024-05-26T20:40:15Z"
        },
        {
            "version": "1.0.0.0",
            "changelog": "",
            "targetAbi": "10.9.0.0",
            "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_1.0.0.0.zip",
            "checksum": "0c8214c6350767f03de192602916313f",
            "timestamp": "2024-05-11T20:08:01Z"
        }
    ]
}
Nullcaller commented 2 hours ago

If you need it right now, you can also download the latest build artifact. Just extract the archive into plugins/DLNA_3.0.0.0, replacing all files.

rainer-geiger commented 2 hours ago

If you need it right now, you can also download the latest build artifact.

Thank you very much! I was already thinking about downgrading Jellyfin - or looking for a HDMI cable for my projector.

Nullcaller commented 1 hour ago

No worries. Report back if you have any problems.

Nullcaller commented 1 hour ago

Ah. I know what the issue is. The version somehow didn't get changed to 4.0.0.0. If you look at the release, there's an archive with the plugin, but it's called "dlna_3.0.0.0.zip". And in fact, if you download version 3.0.0.0 from the repo, you'll discover that it's the same zip. So, in theory, if you just delete the plugin from Jellyfin and then reinstall it (remember to back up your setttings and profiles though), you'll install 4.0.0.0, it's just gonna look like 3.0.0.0.

rainer-geiger commented 1 hour ago

I had already reinstalled the plugin without success before I created the issue. I also noticed that the build artifact is still on version 3, I copied the files manually for now and it works just fine :)

[2024-10-26 23:53:31.346 +00:00] [INF] [25] Jellyfin.Plugin.Dlna.Main.DlnaHost: DLNA Session created for "Projector-Cinema" - "QCast"

Nullcaller commented 1 hour ago

Nice! Glad you were able to fix it :)

Weird reinstalling didn't work, though. Maybe the release used the old zip...

rainer-geiger commented 1 hour ago

I probably should have restarted Jellyfin after uninstalling it because nothing had changed in the files after the reinstallation. But I learned something new about Jellyfin today and thanks again for the kind support!