How to decode raw h264 frames using appsrc?

I changed caps to video/x-h264,stream-format=byte-stream,alignment=nal

Also removed h264parse from pipeline and changed emit-signals property on appsink to true.

And finally changed FrameReceived event handler to

rtspClient.FrameReceived += async (sender, frame) =>
{
    if (frame.Type != FrameType.Video) return;

    var bufferSize = frame.FrameSegment.Count;
    var iFrame = frame as RawH264IFrame;
    if (iFrame is not null)
    {
        bufferSize += iFrame.SpsPpsSegment.Count;
    }

    var buf = new byte[bufferSize];
    if (iFrame is not null)
    {
        iFrame.SpsPpsSegment.CopyTo(buf);
        iFrame.FrameSegment.CopyTo(buf, iFrame.SpsPpsSegment.Count);
    }
    else
    {
        frame.FrameSegment.CopyTo(buf);
    }
    
    using var gstBuffer = new Gst.Buffer(buf);
    using var caps = Caps.FromString("video/x-h264,stream-format=byte-stream,alignment=nal");
    var segment = new Segment();
    using var structure = new Structure("frame");
    structure.SetValue("width", new GLib.Value(1280));
    structure.SetValue("height", new GLib.Value(720));
    using var gstSample = new Sample(gstBuffer, caps, segment, structure);
    source.Emit("push-sample", gstSample);
};

Now it works and I receive jpeg images. Thanks!