c4valli / kodi-fcast-receiver

FCast receiver add-on for Kodi
GNU General Public License v2.0
10 stars 1 forks source link

Fix FCastSession and expand test.py #1

Closed xlash123 closed 11 months ago

xlash123 commented 11 months ago

I was trying out test.py trying to get it to work with Grayjay as the client, and I noticed that the body size was off by one. According to the protocol docs, packet size is 1 + the body size. After changing that, the client was able receive packets correctly.

I then modified the test.py to include callbacks for pause, resume, and seek. Additionally, I added a listener to the MPV player for pause state and timestamp so that it'll sync the state with the client.

I hope this helps, and I look forward to seeing this addon mature!

sguerrini97 commented 11 months ago

Thank you for the PR! The body size problem drove me crazy, I didn't realize a +1 was necessary 🙈

I will test this out as soon as I can. Playing content on Kodi shouldn't be that hard, but I never tried with an MP-DASH stream which is sent by GrayJay (at least for YouTube playback).

xlash123 commented 11 months ago

Glad I could help. I was also really confused why the client wasn't receiving any updates from the receiver. Turns out the packet length includes the opcode.

I made a few more changes to the test script to support the message.url method of playback, since I only tested it with message.content. Both of them now work great.

I also updated the readme to show how to create a dev environment. As I have never created a Kodi addon before, I was confused for a while on where to get the xbmc* modules from for autocomplete, until I found that section in the Kodi docs.

xlash123 commented 11 months ago

I went ahead and tried out implementing receiver support in Kodi. I've got pretty far with supporting message.url. I have not approached message.content.

My apologies for including this on my main branch. I forgot it would attach the new commits to this PR.

sguerrini97 commented 11 months ago

Thank you again! Code seems fine, I will try to check and test everything out today or tomorrow so I can merge this PR.

To handle message.content I think we could use this as a dependency: https://github.com/xbmc/inputstream.adaptive It is used by many add-ons to handle streams from DRM protected services, but I never used it before so I'm not 100% sure