As a result of Bug #20772 the implicit direction and state of new StreamedMedia streams has been clarified in a possibly incompatible way: CMs need to emit extra signals whenever a stream is added with state != Disconnected, direction != Receive or pending-send != Pending_Local_Send.
In Gabble's case, I believe this means that StreamDirectionChanged must be emitted once per stream that is added by the local user, signalling the true direction.
Actually, Gabble already does this:
chan, id, priv->session->peer, mtype);
/* Initial stream direction was changed before we had time to hook up
* signal handler, so we call the handler manually to pick it up. */
stream_direction_changed_cb (stream, NULL, chan);
I'm going to clarify that comment.
Clarified in 'bug-20841'.
Thanks, merged. This will be in 0.7.29.