aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacki <jacki@thejackimonster.de>2024-08-08 20:08:37 +0200
committerJacki <jacki@thejackimonster.de>2024-08-08 20:08:37 +0200
commit18426ed4cd6c98148390d268fa36e8918c9ac94e (patch)
tree28de1861146fc45f3485813cca387eaa2ce5f47a
parent9ecb70e392578f2f4bbb569dd0c16a0304350af2 (diff)
downloadmessenger-gtk-18426ed4cd6c98148390d268fa36e8918c9ac94e.tar.gz
messenger-gtk-18426ed4cd6c98148390d268fa36e8918c9ac94e.zip
Optimize pipelines for video streaming
-rw-r--r--src/discourse.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/discourse.c b/src/discourse.c
index 8f1ef8c..76c4403 100644
--- a/src/discourse.c
+++ b/src/discourse.c
@@ -146,7 +146,7 @@ _setup_video_gst_pipelines_of_subscription(MESSENGER_DiscourseSubscriptionInfo *
146 g_assert(info); 146 g_assert(info);
147 147
148 info->video_stream_pipeline = gst_parse_launch( 148 info->video_stream_pipeline = gst_parse_launch(
149 "appsrc name=source max-bytes=4000000 ! rtph264depay ! avdec_h264 ! videoconvert ! gtksink name=sink", 149 "appsrc name=source ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! videoconvert ! gtksink name=sink",
150 NULL 150 NULL
151 ); 151 );
152 152
@@ -400,6 +400,9 @@ discourse_subscription_stream_message(MESSENGER_DiscourseSubscriptionInfo *info,
400 400
401 g_signal_emit_by_name(appsrc, "push-buffer", buffer, &ret); 401 g_signal_emit_by_name(appsrc, "push-buffer", buffer, &ret);
402 402
403 if ((appsrc) && (!(info->position)))
404 gst_element_set_state(appsrc, GST_STATE_PLAYING);
405
403 info->position += duration; 406 info->position += duration;
404 407
405skip_buffer: 408skip_buffer:
@@ -535,7 +538,7 @@ _setup_video_gst_pipelines(MESSENGER_DiscourseInfo *info)
535 g_assert(info); 538 g_assert(info);
536 539
537 info->video_record_pipeline = gst_parse_launch( 540 info->video_record_pipeline = gst_parse_launch(
538 "videotestsrc ! videoconvert ! video/x-raw,format=I420,rate=30,width=1280,height=720 ! x264enc tune=zerolatency ! rtph264pay ! capsfilter name=filter ! fdsink name=sink", 541 "v4l2src ! videoscale ! video/x-raw,width=1280,height=720 ! videoconvert ! video/x-raw,format=I420,rate=30,width=1280,height=720 ! x264enc bitrate=1500 key-int-max=30 tune=zerolatency byte-stream=true ! video/x-h264,width=1280,height=720,profile=baseline ! rtph264pay aggregate-mode=zero-latency mtu=45000 ! capsfilter name=filter ! fdsink name=sink",
539 NULL 542 NULL
540 ); 543 );
541 544