Page 1 of 2

SAT>IP not (yet) on tvos?

Posted: 19 May 2019 19:46
by tuffi64
I discovered SAT>IP runs great with VLC on Mac. My next try was Apple TV, but here I did not find the SAT>ip Server. Is the support for SAT>IP not yet on tvos?

Re: SAT>IP not (yet) on tvos?

Posted: 24 May 2019 12:32
by fkuehne
Yes, discovery of SAT>IP server is not available to tvOS at this point. We support playback of those streams just fine if you know the URL, but not the discovery.

Re: SAT>IP not (yet) on tvos?

Posted: 29 May 2019 19:57
by axel_22
I want to watch the stream using a VPN-tunnel. My Technisat ISIO S (upnp Sat>IP-server) gives me a file “DeviceDescription.xml”. I can enter its url e. g. in oplayer. But where can I do this in VLC?

Re: SAT>IP not (yet) on tvos?

Posted: 20 Nov 2021 13:56
by behr
I wonder if the support for SAT>IP has made progress since the last post here?

I have a recent Panasonic TV with SAT>IP server built in. It works great with VLC on MacOS, as long as the (default) Astra 19.2 channel list is selected in the preferences. I can stream all the satellite channels I tried so far to my Mac.

On the iPhone with iOS 15.1 (VLC 3.3.0 (409)), server is detected in Network tab, but opening it starts loading the "http://www.satip.info/Playlists/auto.m3u" playlist (mentioned elsewhere in these forums as obsolete and inaccessible) and fails without showing the channel list.

On tvOS 15.1 (VLC 3.1.0 (409)), the server is not detected. Is tvOS version even looking for SAT>IP servers? It's of course this tvOS version that I care about the most, to send a program to another TV in the house.

It seems to be possible to play individual streams pasted as URLs, but the links are super cryptic and one has to paste them one by one.

Thanks for any info,

M

Re: SAT>IP not (yet) on tvos?

Posted: 22 Nov 2021 08:31
by fkuehne
There is a UPnP discovery problem on some devices that I'll try to fix for the next beta. This affects any kind of UPnP devices though including SAT>IP.

That we load the auto.m3u is wrong and it does not seem what should be happening based on the code. It should download http://www.satip.info/Playlists/MasterList.m3u instead.

Regrettably, I don't have any SAT>IP testing devices anymore so I cannot try for myself.

Re: SAT>IP not (yet) on tvos?

Posted: 22 Nov 2021 13:59
by behr
Thanks for the quick reply. I'm curious about the UPnP fix, because now it's not only device-dependent, but also time-dependent :-( E.g., VLC on an iPad which did not detect the server few days ago, now sees both instances of the TV (media server and SAT>IP server). One AppleTV sees nothing, and another AppleTV only the media server but not the SAT>IP server. There could be some interaction with the FritzBox router here.

I will try to figure out where the obsolete auto.m3u URL comes from. It might be provided by the TV itself... But if so, it would be great to be able to replace the channel list URL on iOS/tvOS, just like on the desktop.

Re: SAT>IP not (yet) on tvos?

Posted: 22 Nov 2021 21:15
by behr
When I change desktop setting for UPnP playlist to "Server List" or "Auto", I get the channel list from the TV which can be found at http://<server>:55000/satipsrv/satip.m3u URL. This list is unfortunately not compatible with VLC (maybe it only works with other Panasonic TVs). The individual channel URLs are missing the "pids=..." part of the stream specification, and VLC (desktop) fails quietly. Maybe this is what is happening on AppleTV when the "auto.m3u" message appears on the screen briefly?

In that case, one could only get iOS/tvOS version of VLC to work with Panasonic TV by allowing a custom channel list, like on the desktop.

Re: SAT>IP not (yet) on tvos?

Posted: 24 Nov 2021 15:04
by bubu?
Progress has been made for this.

You can track it here: https://code.videolan.org/videolan/vlc- ... quests/487

Re: SAT>IP not (yet) on tvos?

Posted: 24 Nov 2021 18:40
by behr
That looks amazing. I wonder if you (the developers) found out why auto.m3u channel list appears to be loading on AppleTV by default? It does not seem to be provided by the TV...

Re: SAT>IP not (yet) on tvos?

Posted: 26 Nov 2021 15:46
by behr
Outstanding, the beta is already out, and I can enter the alternative channel list URL in iOS preferences. As soon as I get home and in range of some DLNA servers I will report.

Re: SAT>IP not (yet) on tvos?

Posted: 26 Nov 2021 15:50
by fkuehne
Note that you need to restart the app after entering the URL. On iOS, the setting is not visible from within the app (yet) but just through the VLC section of the System Settings.

Re: SAT>IP not (yet) on tvos?

Posted: 26 Nov 2021 19:45
by behr
Thank you for the update. On the plus side, the UPnP detection seems to be more reliable now. The TV which previously did not show up at all on some devices, now is showing up consistently. But: On 2 AppleTVs, only the media server, and not the SAT>IP server, is showing up, just like with earlier VLC versions:
https://www.dropbox.com/s/z1id8u5kyxy44 ... k-tvOS.png
So I cannot load the channel list, default or custom.
On an iPad or iPhone, both media server and SAT>IP server are listed:
https://www.dropbox.com/s/ogamg147mwro9 ... k-iOS.jpeg
but in spite of setting the channel list URL to known good Astra list and multiple restarts, the old incorrect "auto.m3u" is being loaded and fails:
https://www.dropbox.com/s/q3ciz4aw2orfw ... t-iOS.jpeg
This is all with build 410. If I can provide some other info, please let me know.

Re: SAT>IP not (yet) on tvos?

Posted: 29 Nov 2021 09:40
by behr
I managed somehow to build the current version and step through the code on my iPad. One potential problem that I see is that in SharedSources...VLCLocalNetworkServiceBrowserMediaDiscoverer.m, defaults end up as a null pointer:
NSUserDefaults *defaults;
When I replace it with:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
the channel list options (CustomList, URL of Astra list) seem to be correctly passed to the _internalLibraryInstance.
Nevertheless, the iPad still tries to load "auto.m3u" instead :-( The code that decides seems to be in VLC itself, upnp.cpp. I guess this is provided via cocoapods? Is it possible to step through pod code in Xcode? I have not worked with cocoapods before... Will experiment some more soon...

Re: SAT>IP not (yet) on tvos?

Posted: 29 Nov 2021 18:35
by fkuehne
Ouch, this is an embarrassing typo. I can debug this further on Thursday. You could add a symbolic breakpoint in the upnp.cpp of libvlc (see vlc.git on code.videolan.org) but this is not nice to debug. Add a printf there and recompiling VLCKit is what I would do but this is a long undertaking (compilation time around 90 min on an Intel-based mac). If you try to do that, please make sure to compile the 3.0 branch of VLCKit.

Re: SAT>IP not (yet) on tvos?

Posted: 02 Dec 2021 13:44
by behr
Try as I might, I could not manage to link the MobileVLCKit framework that I built to the vlc-ios project. I tried both replacing the original pod framework, and adding the framework directly in Xcode. One difference I see is that pod framework is for arm64_armv7_armv7s, while VLCKit is for arm64_armv7.

Re: SAT>IP not (yet) on tvos?

Posted: 02 Dec 2021 16:37
by bubu?
A solution could be to create a symbolic link so that it finds the correct directory even if you didn't build all architectures.

Re: SAT>IP not (yet) on tvos?

Posted: 02 Dec 2021 19:02
by fkuehne
@behr: can you post the exact error?

Re: SAT>IP not (yet) on tvos?

Posted: 02 Dec 2021 20:35
by behr
First the good part:

git clone https://code.videolan.org/videolan/vlc-ios
pod install
(pods are installed including MobileVLCKit (3.3.18b6))
open VLC.xcworkspace
(voodoo with signing including removing StoreKit and iCloud integration)
(I can build VLC, run it on the iPad, edit the sources, etc.)

Then I try to include VLCKit, checked out from branch 3.0, hash 52eb4c81 as specified in the script, built with compileAndBuildVLCKit -f -n

cd Pods/MobileVLCKit
mv MobileVLCKit.xcframework ~Desktop
ln -s (path to VLCKit)/build/MobileVLCKit.xcframework .

Clean, build, get error:
building file list ... rsync: link_stat "/Users/behr/Source/VLC/vlc-ios/Pods/MobileVLCKit/MobileVLCKit.xcframework/ios-arm64_armv7_armv7s//*" failed: No such file or directory (2)

Indeed, original vlc-ios MobileVLCKit pod included ios-arm64_armv7_armv7s directory. The new VLCKit I built has only ios-arm64_armv7 directory. If I understand it, the compileAndBuildVLCKit does not offer to build armv7s option.

Re: SAT>IP not (yet) on tvos?

Posted: 03 Dec 2021 10:33
by bubu?
On the 3.0 branch the buildscript should be buildMobileVLCKit.sh and not compileAndBuildVLCKit.sh

Re: SAT>IP not (yet) on tvos?

Posted: 03 Dec 2021 11:27
by behr
That’s probably it, maybe I did not switch branches properly. I’ll give it another try.

Re: SAT>IP not (yet) on tvos?

Posted: 03 Dec 2021 17:04
by bubu?
Great, keep us updated on the progress !

Re: SAT>IP not (yet) on tvos?

Posted: 04 Dec 2021 10:03
by behr
Selecting the 3.0 branch more carefully did work. I got a working iPad build with my own MobileVLCKit this time, thanks for the hint.

The symbolically linked framework in the MobileVLCKit pod does not show any debug information, in spite of being built with -d flag. Other pods seem to show sources and allow breakpoints. Do I need to edit Podfile somehow with path to the sources?

In the meantime, I guess I will start putting in printf statements in UPnP module as @fkuehne suggested!

Re: SAT>IP not (yet) on tvos?

Posted: 04 Dec 2021 22:40
by behr
This is a very slow process, but I guess I know more now. In upnp.cpp: vlc_module_begin, the channel list is set to "auto":

Code: Select all

add_string( "satip-channelist", "auto", SATIP_CHANNEL_LIST, SATIP_CHANNEL_LIST, false )
and the URL is initialized to NULL. For some reason, this persists and is not replaced by the "CustomList" and valid URL which were passed as options to libvlc instance by the new customization code of @fkuehne.

Anyway, this "auto" seems to be a problem. It just gets translated to auto.m3u list which does not exist. Later logic seems to look for "Auto" instead, in which case server list is loaded. This indeed happens if I just change this one letter. Sadly, as I said earlier, Panasonic server list is missing some parameters of the streams and is not usable for VLC.

I don't yet know why setting "CustomList" preference does not work. I did force it in the statement above (also hardcoding the URL), but still run into a problem: I get the Astra list displayed, but the individual streams have the hostname part removed (up to the ?src=1,... parameter section). So they are still not usable.

What is really confusing is that the same code on the desktop VLC works better.

Re: SAT>IP not (yet) on tvos?

Posted: 05 Dec 2021 15:38
by behr
Ok, a bit further (all in addition to the fact that the custom channel list is not used in upnp.cpp). With hardcoded good Astra channel list, the connection fails in satip.c:

sys->tcp_sock = net_ConnectTCP(access, psz_host, url.i_port);
if (sys->tcp_sock < 0) {
msg_Err(access, "Failed to connect to RTSP server %s:%d",
psz_host, url.i_port);
printf("Failed to connect to RTSP server '%s':'%d'\n", psz_host, url.i_port);
goto error;
}

First of all, I don't get the error message from msg_Err anywhere. I had to add my own print statement to see it. Is there some setting for seeing the error messages in Xcode console?

The message is:

Failed to connect to RTSP server 'sat.ip':'554'

So somehow lookup of sat.ip does not work on the iPad, even though it seems to work on the desktop? The URL of the stream seems to be correctly read from the channel list.

This is not much of a consolation, but if I replace the host name with the specific IP address, the stream from Panasonic plays great on the iPad :-)

Re: SAT>IP not (yet) on tvos?

Posted: 06 Dec 2021 21:16
by behr
Concerning the missing IP of the host, here is the unexpected behavior:

In modules/services_discovery/upnp.cpp, MediaServerList::addServer(), correct host IP is saved:

if (asprintf( &psz_playlist_option, "satip-host=%s", desc->satIpHost.c_str() ) >= 0 ) ... in the m_sd structure.

I checked, and desc->satIpHost.c_str() is "192.168.178.53".

But when opening a stream, in modules/access/satip.c, satip_open(), this value is lost:

char *psz_host = var_InheritString(access, "satip-host");

Now, psz_host is NULL. This happens whether I use the new custom channel list URL (internal libvlc instance) or not. Why?

Since var_InheritString involves traversing some object hierarchy which I don't understand, I think I am stuck here.