FDH2 / UxPlay

AirPlay Unix mirroring server
GNU General Public License v3.0
1.35k stars 72 forks source link

No audio output from iPod touch (6th gen) client (solved) #131

Closed trombonefix closed 1 year ago

trombonefix commented 1 year ago

I have uxplay running on Manjaro and Lubuntu 18.04.06 LTS. [EDIT: client iOS device is iPod touch 6th gen] Video transmission works without problems. However, the sound is not transferred. In Pulseaudio the input source is not shown either. But in the terminal I get no error message. What can I do?

fduncanh commented 1 year ago

first, run "uxplay -d" which should show each audio packet being decrypted and sent to gstreamer. (This will check that the issue is in gstreamer, which will not produce uxplay error messages)

assuming uxplay is correctly passing audio to gstreamer, check for gstreamer errors.

First run

export GST_DEBUG=2

This exposes GStreamer error and warning messages. (For Gstreamer debug messages use GST_DEBUG=4, but this produces a lot of output.)

then run uxplay (without the -d)

if any errors are shown that will be the clue.

perhaps you need -as pulsesink or -as alsasink or -as pipewiresink depending on your audio setup.

Lubuntu 18.04.06LTS is quite old, maybe EOL. It has an old gstreamer-1.14.x that uxplay is not tested with. Manjaro should be current (GStreamer-1.20.3), is tested and should be working properly, so is better for troubleshooting your issue.

trombonefix commented 1 year ago

Hi, uxplay -d gives me supported audio format 1: AAC-ELD 44100/2 supported audio format 2: ALAC 44100/16/2 GStreamer video pipeline will be: "appsrc name=video_source ! queue ! h264parse ! decodebin ! videoconvert ! autovideosink name=video_sink sync=false" Initialized GStreamer video renderer using system MAC address 90:cd:b6:28:9e:d1 Initialized server socket(s)

trombonefix commented 1 year ago

export GST_DEBUG=2 gives back: using system MAC address 90:cd:b6:28:9e:d1 Initialized server socket(s) 0:00:00.063131859 40129 0x55c1a0b25860 WARN vaapiblend gstvaapiblend.c:184:gst_vaapi_blend_initialize:<vaapiblend0> VPP does not support global alpha blending

fduncanh commented 1 year ago

If that is all you are getting with uxplay -d, then you are not connecting to the client for anything ???? (But you claimed video transmission was working which is not possible with that output ......)

trombonefix commented 1 year ago

Sorry for that! I forgot to connect... uxplay -d gives: `SET_PARAMETER rtsp://192.168.2.163/15792763993784207700 RTSP/1.0 Content-Length: 20 Content-Type: text/parameters CSeq: 12 DACP-ID: 6F311D639B29C989 Active-Remote: 3434293015 User-Agent: AirPlay/387.2

volume: -20.000000

Handling request SET_PARAMETER with URL rtsp://192.168.2.163/15792763993784207700

RTSP/1.0 200 OK CSeq: 12 Server: AirTunes/220.68

httpd receiving on socket 35 conn_request

SET_PARAMETER rtsp://192.168.2.163/15792763993784207700 RTSP/1.0 Content-Length: 19 Content-Type: text/parameters CSeq: 13 DACP-ID: 6F311D639B29C989 Active-Remote: 3434293015 User-Agent: AirPlay/387.2

volume: -5.625000

Handling request SET_PARAMETER with URL rtsp://192.168.2.163/15792763993784207700

RTSP/1.0 200 OK CSeq: 13 Server: AirTunes/220.68

raop_rtp_mirror accepting client raop_rtp_mirror: unidentified extra header data 656.000000, 0.000000 begin video stream wxh = 608x1080; source 608x1080 raop_rtp_mirror width_source = 608.000000 height_source = 1080.000000 width = 608.000000 height = 1080.000000 raop_rtp_mirror: sps/pps header size = 6 raop_rtp_mirror h264 sps/pps header: 01 64 00 20 ff e1

raop_rtp_mirror sps size = 17 raop_rtp_mirror h264 Sequence Parameter Set: 27 64 00 20 ac 13 14 50 26 02 27 e5 9b 81 01 01 01

raop_rtp_mirror pps size = 4 raop_rtp_mirror h264 Picture Parameter Set: 28 ee 3c b0

remainder size = 4 remainder of sps+pps packet: 02 00 00 00

raop_rtp video: now = 1663607146.871929, ntp = 1663607146.886495, latency = -0.014566 nalu_type = 5, nalu_size = 9070, processed bytes 9074, payloadsize = 9074 nalus_count = 1 Begin streaming to GStreamer video pipeline raop_rtp video: now = 1663607146.886186, ntp = 1663607146.903162, latency = -0.016976 raop_rtp video: now = 1663607146.897575, ntp = 1663607146.919828, latency = -0.022253 raop_rtp video: now = 1663607146.909429, ntp = 1663607146.969838, latency = -0.060409 raop_rtp video: now = 1663607146.926732, ntp = 1663607147.003177, latency = -0.076445 raop_rtp video: now = 1663607146.960335, ntp = 1663607147.036512, latency = -0.076177 raop_rtp video: now = 1663607146.994497, ntp = 1663607147.069848, latency = -0.075351 raop_rtp video: now = 1663607147.027501, ntp = 1663607147.103184, latency = -0.075683 raop_rtp video: now = 1663607147.063193, ntp = 1663607147.136521, latency = -0.073328 raop_rtp video: now = 1663607147.310243, ntp = 1663607147.169834, latency = 0.140409 raop_rtp video: now = 1663607147.316516, ntp = 1663607147.203193, latency = 0.113323 raop_rtp video: now = 1663607147.322994, ntp = 1663607147.236503, latency = 0.086491 raop_rtp video: now = 1663607147.323051, ntp = 1663607147.269837, latency = 0.053214 raop_rtp video: now = 1663607147.339814, ntp = 1663607147.303264, latency = 0.036550 raop_rtp video: now = 1663607147.346449, ntp = 1663607147.403282, latency = -0.056833 raop_rtp video: now = 1663607147.365560, ntp = 1663607147.436551, latency = -0.070991 raop_rtp video: now = 1663607147.399088, ntp = 1663607147.469884, latency = -0.070796 raop_rtp video: now = 1663607147.432122, ntp = 1663607147.503293, latency = -0.071171 raop_rtp video: now = 1663607147.463726, ntp = 1663607147.536552, latency = -0.072826 raop_rtp video: now = 1663607147.499160, ntp = 1663607147.569899, latency = -0.070739 raop_rtp video: now = 1663607147.531859, ntp = 1663607147.603301, latency = -0.071442 raop_rtp video: now = 1663607147.565934, ntp = 1663607147.636568, latency = -0.070634 raop_rtp video: now = 1663607147.596811, ntp = 1663607147.669899, latency = -0.073088 raop_rtp video: now = 1663607147.701251, ntp = 1663607147.703267, latency = -0.002016 raop_rtp video: now = 1663607147.703700, ntp = 1663607147.736572, latency = -0.032872 raop_rtp video: now = 1663607147.707562, ntp = 1663607147.769910, latency = -0.062348 raop_rtp video: now = 1663607147.731387, ntp = 1663607147.803260, latency = -0.071873 raop_rtp video: now = 1663607147.832089, ntp = 1663607147.836586, latency = -0.004497 raop_rtp video: now = 1663607147.834022, ntp = 1663607147.869920, latency = -0.035898

Received video streaming performance info packet from client raop_rtp video: now = 1663607147.835409, ntp = 1663607147.903326, latency = -0.067917 httpd receiving on socket 35 conn_request

POST /feedback RTSP/1.0 CSeq: 14 DACP-ID: 6F311D639B29C989 Active-Remote: 3434293015 User-Agent: AirPlay/387.2

Handling request POST with URL /feedback raop_handler_feedback

RTSP/1.0 200 OK CSeq: 14 Server: AirTunes/220.68`

And so on...

trombonefix commented 1 year ago

export GST_DEBUG=2 gives: raop_rtp video: now = 1663607274.537681, ntp = 1663607274.568172, latency = -0.030491 0:00:06.330663927 4095 0x55adf624e000 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.330713581 4095 0x55adf624e000 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.331837881 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.331902783 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.332123763 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.332186075 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.332237948 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.332258639 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.334849781 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.334905566 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.334958133 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.334987138 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.336530201 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.336579825 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.336691257 4095 0x7f1324081640 WARN vaapifilter gstvaapifilter.c:2409:gst_vaapi_filter_set_colorimetry_unlocked:<vaapifilter1> driver does not report the supported input/output colorimetry. vpp may fail or produce unexpected results. 0:00:06.344579188 4095 0x7f1324081640 WARN xvimagepool xvimagepool.c:159:xvimage_buffer_pool_set_config:<xvimagebufferpool0> different size, stride and/or offset, update 0:00:06.347478751 4095 0x7f1324081640 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.347543037 4095 0x7f1324081640 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default raop_rtp video: now = 1663607274.560141, ntp = 1663607274.601512, latency = -0.041371 0:00:06.350321879 4095 0x7f1324081640 WARN xvimagepool xvimagepool.c:159:xvimage_buffer_pool_set_config:<xvimagebufferpool1> different size, stride and/or offset, update 0:00:06.351057305 4095 0x55adf624e000 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.351092790 4095 0x55adf624e000 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.351341515 4095 0x55adf624e000 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.351394630 4095 0x55adf624e000 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.351551259 4095 0x55adf624e000 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.351577154 4095 0x55adf624e000 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.351685248 4095 0x55adf624e000 WARN video-info video-info.c:199:validate_colorimetry: Need to specify a color matrix when using YUV format (NV12) 0:00:06.351707765 4095 0x55adf624e000 WARN video-info video-info.c:515:gst_video_info_from_caps: invalid colorimetry, using default 0:00:06.354062879 4095 0x7f1324081640 WARN xvimagepool xvimagepool.c:159:xvimage_buffer_pool_set_config:<xvimagebufferpool2> different size, stride and/or offset, update

trombonefix commented 1 year ago

Sorry for the representation. I couldn't do it better.

fduncanh commented 1 year ago

There is no audio showing in uxplay -d output.

You either have not shown the relevant debug output, or you are not streaming any audio from the client. Don't bother with GST_DEBUG output until you have verified that audio is being seen by uxplay -d

compare your uxplay -d output to https://github.com/FDH2/UxPlay/wiki/example-of-UxPlay-debug-output

trombonefix commented 1 year ago

Sorry! Next try: uxplay -d.txt export GST_DEBUG=2.txt

fduncanh commented 1 year ago

your problem is not a gstreamer problem. Its earlier than that.

what never happened in your uxplay -d is this (excerpt from a correct debug log, below) look for message "first audio received": On your debug log in contrast, your iOS client (iPhone) never sends any audio! (This is why you dont hear anything! and why two different linux systems (Manjaro and ancient ubuntu) both fail)

POST /audioMode RTSP/1.0
Content-Length: 64
Content-Type: application/x-apple-binary-plist
CSeq: 13
DACP-ID: 22A80D15EE336CD4
Active-Remote: 1313694374
User-Agent: AirPlay/610.19.1

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>audioMode</key>
    <string>default</string>
</dict>
</plist>

Handling request POST with URL /audioMode

RTSP/1.0 200 OK 
CSeq: 13 
Server: AirTunes/220.68 

raop_rtp video: now = 1651552064.054171, ntp = 1651552064.158373, latency = -0.104202
raop_rtp video: now = 1651552064.088245, ntp = 1651552064.191688, latency = -0.103443
raop_rtp video: now = 1651552064.121733, ntp = 1651552064.224989, latency = -0.103256
raop_rtp video: now = 1651552064.154648, ntp = 1651552064.258338, latency = -0.103690
raop_rtp video: now = 1651552064.187698, ntp = 1651552064.291625, latency = -0.103927
raop_rtp video: now = 1651552064.220779, ntp = 1651552064.324931, latency = -0.104152
First audio packet received, have_synced = false, using assumed latency -0.500000
initial  audio: now = 1651552064.252899, npt = 1651552064.752899, latency = -0.500000, rtp_time=404762689 seqnum = 5023 (not from sync)
raop_rtp audio: now = 1651552064.252966, npt = 1651552064.752899, latency = -0.499933, rtp_time=404762689 seqnum = 5023
raop_rtp audio: now = 1651552064.252985, npt = 1651552064.763784, latency = -0.510799, rtp_time=404763169 seqnum = 5024
raop_rtp audio: 
trombonefix commented 1 year ago

Thank you! Then the problem is with the sending device?! This was not an iPhone but an iPod 8th generation. Can it be that an iPod with AirPlay can not send audio?

trombonefix commented 1 year ago

I mean 6th generation. What I could find out is that iPods only support AirPlay with 2nd and 3rd generation AppleTv. Maybe the ipod is not compatible with the latest version of uxplay?

fduncanh commented 1 year ago

It seems to have got through all the difficult bits (the cryptography) OK. Uxplay mimics 2nd and 3rd gen AppleTV. (so called "legacy pairing"). You just need to get the iPod to actually start sending audio..... But there is no record of iPod use with either UxPlay or its parent RPiPlay that I could find. Is there a link somewhere to how to use it with an AppleTV?

fduncanh commented 1 year ago

From your debug log here is the audio setup happening:

SETUP rtsp://192.168.2.163/12697743834572738368 RTSP/1.0
Content-Length: 221
Content-Type: application/x-apple-binary-plist
CSeq: 16
DACP-ID: ACEF52D5705F7E2A
Active-Remote: 1997166648
User-Agent: AirPlay/387.2

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>streams</key>
    <array>
        <dict>
            <key>latencyMax</key>
            <integer>3750</integer>
            <key>redundantAudio</key>
            <integer>2</integer>
            <key>audioMode</key>
            <string>default</string>
            <key>latencyMin</key>
            <integer>3750</integer>
            <key>ct</key>
            <integer>8</integer>
            <key>spf</key>
            <integer>480</integer>
            <key>controlPort</key>
            <integer>61087</integer>
            <key>usingScreen</key>
            <true/>
            <key>audioFormat</key>
            <integer>16777216</integer>
            <key>type</key>
            <integer>96</integer>
        </dict>
    </array>
</dict>
</plist>

Handling request SETUP with URL rtsp://192.168.2.163/12697743834572738368
DACP-ID: ACEF52D5705F7E2A
Active-Remote: 1997166648
Transport: null
type = 96
ct=8 spf=480 usingScreen=1 isMedia=0  audioFormat=0x1000000
start audio connection, format AAC-ELD 44100/2
raop_rtp starting audio
raop_rtp local control port socket 52 port UDP 8889
raop_rtp local data port    socket 53 port UDP 8890
RAOP initialized success
raop_rtp start_time = 1663612265.342381 (raop_rtp audio)

RTSP/1.0 200 OK 
CSeq: 16 
Server: AirTunes/220.68 
Content-Type: application/x-apple-binary-plist 
Content-Length: 104 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>streams</key>
    <array>
        <dict>
            <key>dataPort</key>
            <integer>8890</integer>
            <key>controlPort</key>
            <integer>8889</integer>
            <key>type</key>
            <integer>96</integer>
        </dict>
    </array>
</dict>
</plist>

httpd receiving on socket 35
conn_request

SET_PARAMETER rtsp://192.168.2.163/12697743834572738368 RTSP/1.0
Content-Length: 19
Content-Type: text/parameters
CSeq: 17
DACP-ID: ACEF52D5705F7E2A
Active-Remote: 1997166648
User-Agent: AirPlay/387.2

volume: -5.625000 

Handling request SET_PARAMETER with URL rtsp://192.168.2.163/12697743834572738368

RTSP/1.0 200 OK 
CSeq: 17 
Server: AirTunes/220.68 

httpd receiving on socket 35
conn_request

FLUSH rtsp://192.168.2.163/12697743834572738368 RTSP/1.0
RTP-Info: seq=32766;rtptime=238298420
CSeq: 18
DACP-ID: ACEF52D5705F7E2A
Active-Remote: 1997166648
User-Agent: AirPlay/387.2

Handling request FLUSH with URL rtsp://192.168.2.163/12697743834572738368
Flush with RTP-Info: seq=32766;rtptime=238298420

RTSP/1.0 200 OK 
CSeq: 18 
Server: AirTunes/220.68 

I see it is followed by a "FLUSH" request. I have not seen that with iPads and iPhones, and am not sure if that is fully implemented in uxplay, but uxplay does seen to have responded. It seems that iPods "almost" work with uxplay, right up to the point audio gets sent. Either you need to get audio sending correctly started on the iPod, or some minor tweaks to uxplay would be needed.

fduncanh commented 1 year ago

FLUSH seems to be implemented properly in uxplay.

If you can't figure out what to do to get the iPod touch to stream the audio, and cant find any discussion of this on the net, The steps needed to get iPOD touch working would be (1) observe how it works with a real AppleTV (or find some info about this on internet). (2) find out if it needs any response from server to tell it to start streaming audio.

thiccaxe commented 1 year ago

It looks like iPod touch doesn't support audio. See apple article for iPhone 5S: "AirPlay Mirroring, photos, audio, and video out to Apple TV (2nd generation or later)"

iPod touch 6th generation: "AirPlay Mirroring and video out to Apple TV (2nd and 3rd generation)"

I don't know if it is just apples wording but it could certainly be the issue.

iPod: https://support.apple.com/kb/SP720?locale=en_US

iPhone: https://support.apple.com/kb/SP685?locale=en_US

thiccaxe commented 1 year ago

Perhaps the iPod negotiates a audio stream for legacy support (old Apple TV might require a audio stream to be opened?), but then immediately closes it

fduncanh commented 1 year ago

From @trombonefix 's debug log, it opens the video connection first, then audio, then calls FLUSH. One would need to see a longer debug log to see if any more raop_rtp requests come in on the audio or event ports. Better would be to see what it does with an apple TV 2nd or 3rd gen. I have no real idea what the ipod touch is useful for, expecially for video. It seems to still command big prices on ebay, so there must be some remaining fan base, apple finally discontinued it earlier this year.

Seems to have mutated over the years from an mp3 player into an iphone without the telephone?

fduncanh commented 1 year ago

If @trombonefix wants to play music from ipod touch 6th gen, check out shairport-sync

If it works on shairport-sync (which doesn't do video) , and there was some point in getting uxplay to support ipod (what is the use case?) some logs from shairport-sync would be useful.

trombonefix commented 1 year ago

Thanks for your efforts and sorry for the trouble. Obviously, the iPod can not transfer audio. It was by chance that I tested uxplay with an iPod. I had received it as a gift and wanted to try it out. In normal operation (at school) it should work with iPads. On occasion I will test with an iPad or iPhone. I will then close this thread.

trombonefix commented 1 year ago

Here I am again. The matter did not leave me alone. The error was neither with uxplay nor with the iPod (6th gen), but with me. I only shared two ports in the firewall. However, there must be at least three. Now it works fine on manjaro and at this old one lubuntu 18.04.06 LTS!

fduncanh commented 1 year ago

Thats GREAT to know! I did not implement standard uncompressed PCM (MP3?) audio, just AAC-ELD lossily-compressed audio for AirPlay-Mirror protocol and ALAC loss-free compressed audio for audio-ony mode, mainly because I did not have any examples to setup gstreamer for. I think ipod can stream MP3 among other kinds of music formats.

In general three TCP and 3 UDP ports are used. The music goes through 2 UDP ports ("rtp_data" and "rtp_control"), NTP time signals through a third one ("ntp") ,the video ("rtp_mirror_data") through TCP. a second TCP is used for setup ("RAOP") and "events" (volume changes and metadata), and a third TCP port ("AirPlay") is only used in the Bonjour advertising phase at startup, for receiving initial contacts from clients.

If there is non ALAC music that doesnt play, use option -admp (see man uxplay) to get a sample and post it here. There is place to add support for it in lib/audio_renderer_gstreamer.c If I can see what the initial bytes of such an audio stream look like, it may be possible to add the format, at least if it is uncompressed PCM.

fduncanh commented 1 year ago

@trombonefix

Now you have things working, it would be nice if you could report on (document) what kind of audio you manage to play. For example, can you stream audio in ALAC (Audio only, Apple Lossless) mode as well as in Mirror mode? Depending on what music you have in the ipod, what happens if you try to play a MP3, for example.

EDIT: right now, uxplay is supporting receiving Airplay audio with lossy AAC-ELD format at 44.1kHz (used in Mirror mode) and ALAC (apple lossless) at 44.1KHz, sampling depth 16, 2 channel stereo (in Audio-only streaming mode) These are "compression types" ct = 8 and 2, respectively.

/* GStreamer Caps strings for Airplay-defined audio compression types (ct) */

/* ct = 1; linear PCM (uncompressed): 44100/16/2, S16LE */
static const char lpcm_caps[]="audio/x-raw,rate=(int)44100,channels=(int)2,format=S16LE,layout=interleaved";

/* ct = 2; codec_data is ALAC magic cookie:  44100/16/2 spf = 352 */    
static const char alac_caps[] = "audio/x-alac,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)"
                           "00000024""616c6163""00000000""00000160""0010280a""0e0200ff""00000000""00000000""0000ac44";

/* ct = 4; codec_data from MPEG v4 ISO 14996-3 Section 1.6.2.1:  AAC-LC 44100/2 spf = 1024 */
static const char aac_lc_caps[] ="audio/mpeg,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)1210";

/* ct = 8; codec_data from MPEG v4 ISO 14996-3 Section 1.6.2.1: AAC_ELD 44100/2  spf = 480 */
static const char aac_eld_caps[] ="audio/mpeg,mpegversion=(int)4,channnels=(int)2,rate=(int)44100,stream-format=raw,codec_data=(buffer)f8e85000";
thiccaxe commented 1 year ago

The VLC app on iOS doesn't use the "standard" or "built in" iOS audio/video interfaces. Maybe some success could be seen with this app playing mp3 files, even on iPhone / iPad.

Edit: this doesn't seem to be the case.

trombonefix commented 1 year ago

It all works: Spotify, iTunes, YouTube. Let me know if you need more information.

fduncanh commented 1 year ago

Good to know

Thanks