GStreamer. Зонд после rtph265pay ни разу не звонил - PullRequest
1 голос
/ 22 марта 2020

У меня есть сервер RTSP, и я хочу расширить заголовок буфера RTP. Для этого я добавил щуп в sr c rtph265pay, но он никогда не вызывался. Мой конвейер:

( appsrc name=vsrc ! nvvidconv ! video/x-raw(memory:NVMM),format=NV12 !
omxh265enc MeasureEncoderLatency=true bitrate=20000000 control-rate=2 !
rtph265pay name=pay0 pt=96 ) 

Код, к которому я присоединяю зонд:

static GstPadProbeReturn test_probe (GstPad *pad, GstPadProbeInfo *info,
gpointer user_data)
{
    cout << "i'm here";
}



 void mediaConfigure (GstRTSPMediaFactory* factory, GstRTSPMedia* media,
gpointer user_data)
{
        GstElement *element, *rtph265pay; GstPad *pad;
        element = gst_rtsp_media_get_element (media);
        rtph265pay = gst_bin_get_by_name_recurse_up (GST_BIN (element), "pay0");
        pad = gst_element_get_static_pad (rtph265pay, "src");
        gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER,
        (GstPadProbeCallback) test_probe, NULL, NULL);
        gst_object_unref (pad);
}

Если я установил «раковину» вместо «sr c», зонд работает, но мне нужно «sr c "чтобы изменить заголовок буфера rtp ... Что здесь не так?

1 Ответ

1 голос
/ 26 марта 2020

Может быть потому, что пэд rtph265pay sr c не связан ни с каким другим пэдом - значит, rtph265pay является концом конвейера - элемент не передает буфера на свой пэд sr c? Попробуйте подключить подделку после оплаты rtph265.

...