struggling with rtsp-sever

James jam at tigger.ws
Thu Oct 7 07:14:54 UTC 2021


It seems to me that I need to limit pulsesrc producing data to the (it works) rate that audiotestsrc does.
Can anyone help me here.

To make it double-frustrating I had it working for 1/2 hour, but while trying to solve *sharing* I trashed my setup and cannot re-create it. All based on gst-rtsp-streamer/examples/test-appsrc2.c
 
Thanks 
James

0:00:29.783584309 53501 0x7f5db4003360 WARN            audiobasesrc gstaudiobasesrc.c:841:gst_audio_base_src_create:<pulsesrc0> warning: Can't record audio fast enough
0:00:29.783589018 53501 0x7f5db4003360 WARN            audiobasesrc gstaudiobasesrc.c:841:gst_audio_base_src_create:<pulsesrc0> warning: Dropped 6160 samples. This is most likely because downstream can't keep up and is consuming samples too slowly.
0:00:30.561856685 53501 0x7f5db4003360 WARN            audiobasesrc gstaudiobasesrc.c:838:gst_audio_base_src_create:<pulsesrc0> create DISCONT of 6160 samples at sample 38320

The upstream side:

 ctx->generator_pipe = gst_parse_launch
    ("v4l2src device=/dev/video2 ! "
      "video/x-h264,width=1920,height=1080,framerate=30/1 ! "
      "h264parse ! appsink name=vid max-buffers=16 drop=true "
      // works      "audiotestsrc is-live=true ! appsink name=aud max-buffers=32 drop=true",
      // stutters   "pulsesrc device=2 ! appsink name=aud max-buffers=32 drop=true",
      "pulsesrc device=2 ! appsink name=aud max-buffers=32 drop=true",
      NULL);

The downstream side

  gst_rtsp_media_factory_set_launch (factory,
      "( appsrc name=videosrc ! h264parse ! rtph264pay name=pay0 pt=96 "
      "  appsrc name=audiosrc ! audioconvert ! rtpL24pay name=pay1 pt=97 )");


With these caps

  caps = gst_caps_new_simple ("audio/x-raw", "format", G_TYPE_STRING, "S24BE",
      "layout", G_TYPE_STRING, "interleaved", "rate", G_TYPE_INT, 8000,
                                                                                                            ^^^^^ I've tried 8000 to 48000
      "channels", G_TYPE_INT, 2, NULL);
  ctx->aud_appsrc = appsrc =
      gst_bin_get_by_name_recurse_up (GST_BIN (element), "audiosrc");
  ctx->aud_appsink = appsink =
      gst_bin_get_by_name (GST_BIN (ctx->generator_pipe), "aud");
  gst_util_set_object_arg (G_OBJECT (appsrc), "format", "time");
  g_object_set (G_OBJECT (appsrc), "caps", caps, NULL);
  g_object_set (G_OBJECT (appsink), "caps", caps, NULL);
  g_signal_connect (appsrc, "need-data", (GCallback) need_data, ctx);
  gst_caps_unref (caps);



More information about the gstreamer-devel mailing list