Skip to content

# -vrtp option stops sending RTP packets intermittently #465

@FinancedCoup

Description

@FinancedCoup

-vrtp option stops sending RTP packets intermittently

Environment

  • OS: macOS 14.0 (Sonoma)
  • UXPlay version: 1.72
  • GStreamer version: 1.26.5
  • Device: iPhone SE 2 (iOS 18.0.1)

Description

The -vrtp option successfully establishes a GStreamer pipeline and initially sends RTP packets, but randomly stops sending packets after a few seconds or minutes. The UXPlay video window continues to display the iPhone screen smoothly, indicating the AirPlay connection is stable, but the RTP output ceases.

Command Used

uxplay -s 960x540 -fps 30 -vsync no -vd vtdec \
    -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=5004"

Expected Behavior

Continuous H.264 RTP packets should be sent to 127.0.0.1:5004 as long as the iPhone is connected via AirPlay.

Actual Behavior

  1. iPhone connects successfully via AirPlay
  2. UXPlay window displays iPhone screen smoothly (no lag or freezing)
  3. RTP packets are sent to port 5004 initially
  4. After ~5-60 seconds, RTP packets stop being sent
  5. UXPlay window continues to work normally
  6. No error messages in UXPlay output

This suggests the issue is specifically with the -vrtp GStreamer pipeline, not with the AirPlay reception or video decoding.

Reproduction Steps

  1. Start UXPlay with -vrtp option:
    uxplay -s 960x540 -fps 30 -vsync no -vd vtdec \
        -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=5004"
  2. Start a UDP listener on port 5004:
    gst-launch-1.0 udpsrc port=5004 ! application/x-rtp,encoding-name=H264,payload=96 \
        ! rtph264depay ! h264parse ! fakesink
  3. Connect iPhone via AirPlay to UXPlay
  4. Observe RTP packets being received initially
  5. Wait 30-60 seconds
  6. Observe that RTP packets stop arriving (GStreamer shows no new data)
  7. Note that UXPlay window continues to show iPhone screen smoothly

Tested Variations (all exhibit same issue)

# Without hardware decode
uxplay -s 960x540 -fps 30 -vsync no \
    -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=5004"

# With explicit rtph264pay
uxplay -s 960x540 -fps 30 -vsync no -vd vtdec \
    -vrtp "rtph264pay config-interval=1 ! udpsink host=127.0.0.1 port=5004"

# With h264parse in pipeline
uxplay -s 960x540 -fps 30 -vsync no -vd vtdec \
    -vrtp "config-interval=1 ! h264parse ! udpsink host=127.0.0.1 port=5004"

# Different resolutions and framerates
uxplay -s 1280x720 -fps 60 -vsync no -vd vtdec \
    -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=5004"

All variations show the same behavior: packets flow initially, then stop.

GStreamer Debug Output

With GST_DEBUG=3, the logs show the pipeline is created successfully:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions