When attempting to join a multicast group using SSM by providing ffmpeg with an sdp file as input, a tshark trace seems to show that the IGMPv3 requests issued do not in fact include the SSM addresses provided within the SDP, and hence the stream is not joined.

Yes, I have tried it on the latest from git:
FFmpeg version git-b319052
With the same results.

Testing / replicating is tricky, not only because the streams tend to be quite large, but more because the ability to work with multicast is so much a feature of the switches on the network as well as the video stream itself.

I imagine this is a massive oversimplification, but presumably the problem is either in the parsing of the sdp file, and detecting that SSM is required, or detecting SSM is required, but not issuing the correct IGMPv3 messages.

To check for the first problem, is there an alternate syntax I can use to join the ssm multicast stream?
Something along the lines of:

I'm really not qualified to attempt to fix this, but as far as I can tell, "libavformat/rtsp.c" deals with parsing an input sdp file, and as far as I can tell seems to have regex to parse most of the standard sdp lines, and the various lines of the sdp are parsed by a case/switch, but in the section for line type 'a' nothing to extract the:

a=source-filter: incl IN IP4 <multicast_ip> <unicast_ip>

i.e the line that specifies the SSM address.

I guess something similar to:

else if (av_strstart(p, "source-filter:", &p)
<code to parse the line here>

Is required?

Calling ffmpeg with the stream parameters passed in thus:

ffmpeg -i udp://<multicast_ip>:<multicast_port>?sources=<ssm_address>

Seems to work, sending out the appropriate IGMPv3 message, so it seems under the bonnet ffmpeg is working fine, and it is just a problem parsing the SDP

Further to this, the additional errors mentioned in the original support thread you created are resolved by this; these are due to the stream being rtp rather than just plain udp. with this patch applied an alternate url to access the stream without an SDP file would be ffmpeg -i rtp://<multicast_ip>:<multicast_port>?ssm=<ssm_address>.