-
-
Notifications
You must be signed in to change notification settings - Fork 335
Fix Device Profile Builder #296
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The device builder doesn't necessarily work for the native player implemented as an experimental feature here: #320 Fixing to accommodate the native player isn't necessary for implementation, but something to think about. |
I guess I should preface some of this discussion by saying I am unfamiliar with VLCKit, and I'm having trouble finding supported codecs for it. It appears there is a distinction being made between the Apple TV 4k 1st gen and 2nd gen (A10X vs. A12), but the tech specs list the same codec support as does Apple's HLS guide: https://developer.apple.com/documentation/http_live_streaming/http_live_streaming_hls_authoring_specification_for_apple_devices/hls_authoring_specification_for_apple_devices_appendixes Specifically, line 88 of /Shared/Objects/DeviceProfileBuilder.swift adds "truehd,dts,dca" I'm not an expert, but I didn't think Apple TV supported these formats - I know it supports Atmos, but my understanding was that it is not truehd and rather eac3 with added channel info. (https://developer.apple.com/documentation/http_live_streaming/http_live_streaming_hls_authoring_specification_for_apple_devices) (Also: line 89 has h264 and hevc listed twice) According to the HLS authoring specs Apple seems to prefer fMP4. I don't know much about it, but I did see a toggle on the web user profile to prefer it - should it be used instead of .ts in these profiles? Again, I'm not sure what support is like for VLCKit, but it seems like that is preferable for (experimental) native player, and might be more future-proof in any implementation. Also, I just saw this post on the Jellyfin subreddit, and I thought it might be interesting to investigate: https://www.reddit.com/r/jellyfin/comments/w6hp7u/transcode_lossless_bluray_audio_to_flacalacwav_to/ As an aside, it might be nice to have the codecs listed in a uniform order throughout. |
Please forgive the dumb question as I am truly out of my depth - does the profile builder need to be static? In other words, would a strategy of having it query the device itself (maybe on first run and after OS or certain app updates) using calls like AVURLAsset.audiovisualTypes() or AVURLAsset.audiovisualMIMETypes() and then extracting the appropriate strings to feed into profiles work? This would maybe obviate the need for keeping mappings of devices to processors to capabilities. Would VLCKit have a similar method to find supported media types? |
I honestly don't know. I didn't initially create this file and I haven't ever had time to look at this stuff really. We could probably use the I'm all for a dynamic resolution for supported types per device. Moving away from static would be absolutely amazing but of course would need some testing to verify that it's working for a few types of devices. |
I'll consider closed by #519 |
Need to somehow automate the device profile builder when it comes device/cpu pairing. Making this hardcoded on our end means we have to be on top of all of it, causing problems for people if devices are missed.
The package below has all of the current device identifiers and updates regularly, but doesn't provide CPU data. I'll keep looking for something that can provide that information.
https://github.com/SeparateRecords/apple_device_identifiers
Device codec support also needs to be fixed so that streams that can be direct playing aren't transcoded.
The text was updated successfully, but these errors were encountered: