mirrored from git://anongit.freedesktop.org/gstreamer/gst-rtsp-server
-
Notifications
You must be signed in to change notification settings - Fork 243
/
ChangeLog
14309 lines (10679 loc) · 508 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=== release 1.19.2 ===
2021-09-23 01:35:27 +0100 Tim-Philipp Müller <[email protected]>
* ChangeLog:
* NEWS:
* RELEASE:
* gst-rtsp-server.doap:
* meson.build:
Release 1.19.2
2021-07-05 11:54:18 +0200 Göran Jönsson <[email protected]>
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* gst/rtsp-sink/gstrtspclientsink.c:
Protection against early RTCP packets.
When receiving RTCP packets early the funnel is not ready yet and
GST_FLOW_FLUSHING will be returned when pushing data to it's srcpad.
This causes the thread that handle RTCP packets to go to pause mode.
Since this thread is in pause mode there will be no further callbacks to
handle keep-alive for incoming RTCP packets. This will make the session
time out if the client is not using another keep-alive mechanism.
Change-Id: Idb29db05f59c06423fa693a2aeeacbe3a1883fc5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/211>
2021-06-21 08:34:35 +0000 Corentin Damman <[email protected]>
* COPYING:
* COPYING.LIB:
Update COPYING.LIB, COPYING files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/210>
2021-06-01 15:29:07 +0100 Tim-Philipp Müller <[email protected]>
* docs/gst_plugins_cache.json:
* meson.build:
Back to development
=== release 1.19.1 ===
2021-06-01 00:15:08 +0100 Tim-Philipp Müller <[email protected]>
* ChangeLog:
* NEWS:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-rtsp-server.doap:
* meson.build:
Release 1.19.1
2021-05-24 18:58:00 +0100 Tim-Philipp Müller <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: use new gst_buffer_new_memdup()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/208>
2021-05-04 20:47:18 -0400 Doug Nazar <[email protected]>
* gst/rtsp-server/rtsp-media-factory-uri.c:
rtsp-media: fix leak when adding converter
Free the previous caps before reusing the variable for the converter caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/204>
2021-05-04 20:45:19 -0400 Doug Nazar <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: fix leak adding headers
gst_rtsp_message_add_header() makes a copy of the header, instead
of taking ownership.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/204>
2021-04-21 10:43:41 +0200 François Laignel <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/195>
2021-04-29 03:07:42 -0400 Doug Nazar <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Ensure the bus watch is removed during unprepare
It's possible for the destruction of the source to be delayed.
Instead of relying on the dispose() to remove the bus watch, do
it ourselves.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/202>
2021-04-27 09:22:21 +0200 Marc Leeman <[email protected]>
* docs/README:
docs: minor spelling correction in README
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/200>
2021-04-27 09:05:39 +0200 Marc Leeman <[email protected]>
* examples/test-replay-server.c:
test-replay-server: minor spelling corrections
Bumped on these while investigating the example code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/200>
2021-04-22 23:26:02 -0400 Doug Nazar <[email protected]>
* tests/check/gst/stream.c:
tests: Don't fail tests if IPv6 not available.
On computers with IPv6 disabled it shouldn't result in a test failure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/196>
2021-04-23 07:18:48 +0200 Edward Hervey <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Add one more case to seek avoidance
This is an extension to the previous commit. There can also be cases where the
start position is not specified, in those cases we should also avoid doing
seeking unless it's forced.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/197>
2021-04-16 14:35:02 -0400 Doug Nazar <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Improve skipping trickmode seek.
We can also skip the seek if the end range is already
correct.
Avoids initial seek on play start if playing full stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/194>
2021-03-19 10:36:01 +0200 Sebastian Dröge <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: Don't run signal class handlers during the CLEANUP stage
It's sufficient to run them during the FIRST stage instead of in both.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/193>
2021-02-15 12:07:15 +0000 Tim-Philipp Müller <[email protected]>
* tests/check/gst/rtspclientsink.c:
tests: rtspclientsink: fix some leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/190>
2021-02-15 12:26:30 +0000 Tim-Philipp Müller <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: mark cached caps as maybe-leaked to make leaks tracer happy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/190>
2021-02-15 12:07:45 +0000 Tim-Philipp Müller <[email protected]>
* tests/check/gst/rtspclientsink.c:
rtspclientsink: add unit test for potential shutdown deadlock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/189>
2021-02-15 12:01:34 +0000 Tim-Philipp Müller <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: fix deadlock on shutdown before preroll
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/130
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/189>
2021-02-01 12:16:46 +0100 Branko Subasic <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: avoid deadlock in send_func
Currently the send_func() runs in a thread of its own which is started
the first time we enter handle_new_sample(). It runs in an outer loop
until priv->continue_sending is FALSE, which happens when a TEARDOWN
request is received. We use a local variable, cont, which is initialized
to TRUE, meaning that we will always enter the outer loop, and at the
end of the outer loop we assign it the value of priv->continue_sending.
Within the outer loop there is an inner loop, where we wait to be
signaled when there is more data to send. The inner loop is exited when
priv->send_cookie has changed value, which it does when more data is
available or when a TEARDOWN has been received.
But if we get a TEARDOWN before send_func() is entered we will get stuck
in the inner loop because no one will increase priv->session_cookie
anymore.
By not entering the outer loop in send_func() if priv->continue_sending
is FALSE we make sure that we do not get stuck in send_func()'s inner
loop should we receive a TEARDOWN before the send thread has started.
Change-Id: I7338a0ea60ea435bb685f875965f5165839afa20
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/187>
2021-01-22 08:58:23 +0100 Branko Subasic <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: cleanup transports during TEARDOWN
When tunneling RTP over RTSP the stream transports are stored in a hash
table in the GstRTSPClientPrivate struct. They are used for, among other
things, mapping channel id to stream transports when receiving data from
the client. The stream tranports are created and added to the hash table
in handle_setup_request(), but unfortuately they are not removed in
handle_teardown_request(). This means that if the client sends data on
the RTSP connection after it has sent the TEARDOWN, which is often the
case when audio backchannel is enabled, handle_data() will still be able
to map the channel to a session transport and pass the data along to it.
Which eventually leads to a failing assert in gst_rtsp_stream_recv_rtp()
because the stream is no longer joined to a bin.
We avoid this by removing the stream transports from the hash table when
we handle the TEARDOWN request.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/184>
2020-12-15 11:07:01 +0200 Sebastian Dröge <[email protected]>
* docs/gst_plugins_cache.json:
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: Add "update-sdp" signal that allows updating the SDP before sending it to the server
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/178>
2020-12-23 13:54:54 -0500 John Lindgren <[email protected]>
* tests/check/gst/client.c:
Add test cases for mountpoint of '/'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/168>
2020-11-05 16:02:49 -0500 John Lindgren <[email protected]>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-mount-points.c:
* gst/rtsp-server/rtsp-session-media.c:
Make a mount point of "/" work correctly.
As far as I can tell, this is neither explicitly allowed nor
forbidden by RFC 7826.
Meanwhile, URLs such as rtsp://<IP>:554 or rtsp://<IP>:554/ are in
use in the wild (presumably with non-GStreamer servers).
GStreamer's prior behavior was confusing, in that
gst_rtsp_mount_points_add_factory() would appear to accept a mount
path of "" or "/", but later connection attempts would fail with a
"media not found" error.
This commit makes a mount path of "/" work for either form of URL,
while an empty mount path ("") is rejected and logs a warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/168>
2020-12-15 10:18:16 +0200 Sebastian Dröge <[email protected]>
* docs/gst_plugins_cache.json:
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: Use proper types instead of G_TYPE_POINTER for the RTSP messages in the "handle-request" signal
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/177>
2020-12-17 15:27:27 +0100 Tobias Ronge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Only count senders when counting blocked streams
Only sender streams sends the GstRTSPStreamBlocking message, so only
these should be counted before setting media status to prepared.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/180>
2020-10-21 15:38:43 +0200 Jimmi Holst Christensen <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink add proper support for uri queries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/166>
2020-12-14 14:12:38 +1300 Lawrence Troup <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Only unref client watch context on finalize, to avoid deadlock
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/127
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/176>
2020-11-18 20:36:50 +0100 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: collect a clock_rate when blocking
This lets us provide a clock_rate in a fashion similar to the
other code paths in get_rtpinfo()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/174>
2020-11-16 10:34:41 +0200 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Use guint64 for setting the size-time property on rtpstorage
Otherwise this will cause memory corruption as the property expects a 64
bit integer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/169>
2020-11-03 16:56:28 +0100 David Phung <[email protected]>
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-stream.c:
rtsp-media: Ignore GstRTSPStreamBlocking from incomplete streams
To prevent cases with prerolling when the inactive stream prerolls first
and the server proceeds without waiting for the active stream, we will
ignore GstRTSPStreamBlocking messages from incomplete streams. When
there are no complete streams (during DESCRIBE), we will listen to all
streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/167>
2020-10-28 21:48:06 +0100 Kristofer Björkström <[email protected]>
* tests/check/gst/media.c:
* tests/check/meson.build:
* tests/files/test.avi:
media test: Add test for seeking one active stream with a demuxer
Add another seek_one_active_stream test but with a demuxer. The demuxer
will flush both streams in opposed to the existing test which only
flushes the active stream. This will help exposing problems with the
prerolling process after a flushing seek.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/167>
2018-10-29 09:19:33 -0400 Xavier Claessens <[email protected]>
* gst/rtsp-server/meson.build:
* meson.build:
* pkgconfig/gstreamer-rtsp-server-uninstalled.pc.in:
* pkgconfig/gstreamer-rtsp-server.pc.in:
* pkgconfig/meson.build:
Meson: Use pkg-config generator
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/1>
2020-10-19 11:25:25 +0300 Sebastian Dröge <[email protected]>
* meson.build:
meson: update glib minimum version to 2.56
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/164>
2020-09-04 21:14:35 +0200 Mathieu Duponchelle <[email protected]>
* examples/test-launch.c:
* gst/rtsp-server/rtsp-media-factory.c:
* gst/rtsp-server/rtsp-media-factory.h:
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-server-internal.h:
* gst/rtsp-server/rtsp-stream.c:
* tests/check/gst/client.c:
rtsp-media-factory: expose API to disable RTCP
This is supported by the RFC, and can be useful on systems where
allocating two consecutive ports is problematic, and RTCP is not
necessary.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/159>
2020-10-08 23:45:24 +0200 Mathieu Duponchelle <[email protected]>
* hooks/pre-commit.hook:
* meson.build:
git: use our standard pre commit hook
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/162>
2020-10-08 22:17:16 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: make use of blocked_running_time in query_position
When blocking, the sink element will not have received a buffer
yet and the position query will fail. Instead, we make use of
the running time of the buffer we blocked on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/160>
2020-10-06 00:04:17 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: collect rtp info when blocking
We don't unblock the stream anymore before replying to the
play request (883ddc72bb5bc57c95a9e167814d1ac53fe1b443),
so the sinks don't have a last-sample after potentially flush
seeking. seek_trickmode waits for preroll however, which means
the stream will block and wait for a first buffer. Subsequent
calls to get_rtpinfo() can thus make use of the information.
See https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/115
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/160>
2020-09-27 20:09:22 +0900 Seungha Yang <[email protected]>
* examples/meson.build:
* examples/test-replay-server.c:
* examples/test-replay-server.h:
examples: Add an example for loop playback
This demo example shows a way of file loop playback of a given source.
Note that client seek request is not properly implemented yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/154>
2020-09-28 22:03:47 +0200 David Phung <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Plug memory leak
The get-storage signal of rtpbin increases the ref count of the storage.
So we have to unref it after usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/155>
2020-09-11 15:46:41 +0200 Guiqin Zou <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Get rates only on sender streams
When play a media with both sender and receiver stream, like ONVIF
back channel audio in, gst_rtsp_media_get_rates call
gst_rtsp_stream_get_rates for each stream to set the rates. But
gst_rtsp_stream_get_rates return false for the receiver steam, which
lead a g_assert crash.
Instead to get rates on all streams, now just get rates on sender
streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/150>
2020-09-05 00:30:42 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-server-internal.h:
* gst/rtsp-server/rtsp-stream.c:
rtsp-media: set a 0 storage size for TCP receivers
ulpfec correction is obviously useless when receiving a stream
over TCP, and in TCP modes the rtp storage receives non
timestamped buffers, causing it to queue buffers indefinitely,
until the queue grows so large that sanity checks kick in and
warnings start to get emitted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/149>
2020-08-21 03:02:40 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: preroll on gap events
This allows negotiating a SDP with all streams present, but only
start sending packets at some later point in time
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/146>
2020-08-25 16:10:36 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: do not unblock on unsuspend
rtsp_media_unsuspend() is called from handle_play_request()
before sending the play response. Unblocking the streams here
was causing data to be sent out before the client was ready
to handle it, with obvious side effects such as initial packets
getting discarded, causing decoding errors.
Instead we can simply let the media streams be unblocked when
the state of the media is set to PLAYING, which occurs after
sending the play response.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/147>
2020-09-08 17:30:49 +0100 Tim-Philipp Müller <[email protected]>
* .gitlab-ci.yml:
ci: include template from gst-ci master branch again
2020-09-08 16:58:58 +0100 Tim-Philipp Müller <[email protected]>
* docs/gst_plugins_cache.json:
* meson.build:
Back to development
=== release 1.18.0 ===
2020-09-08 00:08:29 +0100 Tim-Philipp Müller <[email protected]>
* .gitlab-ci.yml:
* ChangeLog:
* NEWS:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-rtsp-server.doap:
* meson.build:
Release 1.18.0
=== release 1.17.90 ===
2020-08-20 16:15:06 +0100 Tim-Philipp Müller <[email protected]>
* ChangeLog:
* NEWS:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-rtsp-server.doap:
* meson.build:
Release 1.17.90
2020-08-03 19:34:30 +0300 Jordan Petridis <[email protected]>
* gst/rtsp-server/rtsp-thread-pool.c:
rtsp-thread-pool.c: fix clang 10 warning
clang 10 is complaining about incompatible types due to the
glib typesystem.
```
../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-thread-pool.c:534:10: error: incompatible pointer types passing 'typeof ((((void *)0))) *' (aka 'void **') to parameter of type 'GThreadPool **' (aka 'struct _GThreadPool **') [-Werror,-Wincompatible-pointer-types]
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/145>
2020-08-03 19:34:30 +0300 Jordan Petridis <[email protected]>
* gst/rtsp-server/rtsp-thread-pool.c:
rtsp-thread-pool.c: fix clang 10 warning
clang 10 is complaining about incompatible types due to the
glib typesystem.
```
../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-thread-pool.c:534:10: error: incompatible pointer types passing 'typeof ((((void *)0))) *' (aka 'void **') to parameter of type 'GThreadPool **' (aka 'struct _GThreadPool **') [-Werror,-Wincompatible-pointer-types]
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/145>
2020-07-15 11:19:40 +0200 Srimanta Panda <[email protected]>
* gst/rtsp-server/rtsp-sdp.c:
rtsp-sdp: Fix resource leak in mikey messsage
Fixed a resource leak for mikey message while adding crypto session
failed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/144>
2020-07-08 17:28:57 +0100 Tim-Philipp Müller <[email protected]>
* meson.build:
* scripts/extract-release-date-from-doap-file.py:
meson: set release date from .doap file for releases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/143>
2020-07-02 23:52:47 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: explicitly set caps on udpsrc elements
This causes them to send caps events before data flow, which is
usually a pretty correct thing to do!
Not doing so manifested in a bug where ssrcdemux wouldn't forward
the caps it had received with an extra ssrc field, as it hadn't
received any caps event.
Fixes #85
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/141>
2020-07-03 02:04:04 +0100 Tim-Philipp Müller <[email protected]>
* docs/gst_plugins_cache.json:
* meson.build:
Back to development
=== release 1.17.2 ===
2020-07-03 00:33:54 +0100 Tim-Philipp Müller <[email protected]>
* ChangeLog:
* NEWS:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-rtsp-server.doap:
* meson.build:
Release 1.17.2
2020-06-19 22:55:54 -0400 Thibault Saunier <[email protected]>
* docs/gst_plugins_cache.json:
doc: Stop documenting properties from parents
2020-06-22 20:04:45 +0300 Sebastian Dröge <[email protected]>
* docs/gst_plugins_cache.json:
docs: Fix version in the plugins cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/138>
2020-06-22 12:33:32 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: Don't call gst_ghost_pad_construct() anymore
It's deprecated, unneeded and doesn't do anything anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/138>
2020-06-20 00:28:28 +0100 Tim-Philipp Müller <[email protected]>
* meson.build:
Back to development
=== release 1.17.1 ===
2020-06-19 19:24:38 +0100 Tim-Philipp Müller <[email protected]>
* ChangeLog:
* NEWS:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-rtsp-server.doap:
* meson.build:
Release 1.17.1
2020-06-15 19:45:38 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Add/configure transports when completing the pipeline
Otherwise the transports are not set up yet during the PLAY request
handling when unsuspending (and thus unblocking) the media.
In case of live pipelines this then causes the first few packets to go
to the sinks before they know what to do with them, and they simply
discard them which is rather suboptimal in case of keyframes.
For non-live pipelines this is not a problem because the sink will still
be PAUSED and as such not send out the data yet but wait until it goes
to PLAYING, which is late enough.
Adding the transports multiple times is not a problem: if the transport
is already added it won't be added another time and TRUE will be
returned.
This fixes a regression introduced by a7732a68e8bc6b4ba15629c652056c240c624ff0
before 1.14.0.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/107
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/135>
2020-06-15 19:45:21 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Fix misleading comment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/135>
2020-06-15 18:29:13 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Make sure to also unblock pads when going to PLAYING while buffering
The pad probes are not needed anymore at this point and later when
reaching buffering 100% only the state is changed, no unblocking
happens.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/135>
2020-06-15 18:17:40 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Remove duplicated media_unblock() function
It does literally the same as media_streams_set_blocked(FALSE).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/135>
2020-06-12 15:38:45 +0200 Lenny Jorissen <[email protected]>
* examples/test-onvif-server.c:
test-onvif-server: cast ntp-offset property value to 64 bit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/134>
2020-06-09 15:21:24 -0400 Thibault Saunier <[email protected]>
* docs/gst_plugins_cache.json:
docs: Update plugins cache
2020-06-10 13:45:04 +0200 Mathieu Duponchelle <[email protected]>
* examples/test-onvif-server.c:
* examples/test-onvif-server.h:
* gst/rtsp-server/rtsp-onvif-media-factory.h:
onvif-media-factory: define autoptr cleanup function
And have the factory in the onvif-server example inherit from
GstRTSPOnvifMediaFactory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/133>
2020-06-08 10:59:34 -0400 Thibault Saunier <[email protected]>
* docs/gst_plugins_cache.json:
docs: Update plugins cache
2020-06-08 09:45:15 +0200 Guillaume Desmottes <[email protected]>
* tests/check/gst/rtspserver.c:
tests: enforce I420 format
Test was not enforcing a video format on videotestsrc. I420 was picked as it
was the first format in GST_VIDEO_FORMATS_ALL which will no longer be
true (gst-plugins-base!689).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/129>
2020-06-06 00:41:51 +0200 Mathieu Duponchelle <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-03 18:36:25 -0400 Thibault Saunier <[email protected]>
* docs/meson.build:
doc: Require hotdoc >= 0.11.0
2020-05-27 17:00:05 +0300 Sebastian Dröge <[email protected]>
* docs/gst_plugins_cache.json:
docs: Update gst_plugins_cache.json
2020-05-30 23:23:51 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-sink/gstrtspclientsink.c:
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-05-27 23:38:06 +0100 Tim-Philipp Müller <[email protected]>
* gst/rtsp-server/meson.build:
meson: gir: remove bogus sources_top_dir kwarg
Doesn't actually exist. Was fixed differently in Meson
so that the user doesn't have to specify it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/127>
2020-05-27 17:43:43 +0100 Tim-Philipp Müller <[email protected]>
* tests/check/meson.build:
tests: put registry into tests/check not the gst/ subdir
Underscorify the test name before setting GST_REGISTRY,
so the registry actually ends up in the current build dir
and not some subdir.
For consistency with the other modules, but should also
avoid problems on windows.
Also fix indentation of environment block.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/126>
2020-05-27 17:33:24 +0100 Tim-Philipp Müller <[email protected]>
* tests/check/meson.build:
tests: fix meson test env setup to make sure we use the right gst-plugin-scanner
If core is built as a subproject (e.g. as in gst-build), make sure to use
the gst-plugin-scanner from the built subproject. Without this, gstreamer
might accidentally use the gst-plugin-scanner from the install prefix if
that exists, which in turn might drag in gst library versions we didn't
mean to drag in. Those gst library versions might then be older than
what our current build needs, and might cause our newly-built plugins
to get blacklisted in the test registry because they rely on a symbol
that the wrongly-pulled in gst lib doesn't have.
This should fix running of unit tests in gst-build when invoking
meson test or ninja test from outside the devenv for the case where
there is an older or different-version gst-plugin-scanner installed
in the install prefix.
In case no gst-plugin-scanner is installed in the install prefix, this
will fix "GStreamer-WARNING: External plugin loader failed. This most
likely means that the plugin loader helper binary was not found or
could not be run. You might need to set the GST_PLUGIN_SCANNER
environment variable if your setup is unusual." warnings when running
the unit tests.
In the case where we find GStreamer core via pkg-config we use
a newly-added pkg-config var "pluginscannerdir" to get the right
directory. This has the benefit of working transparently for both
installed and uninstalled pkg-config files/setups.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/126>
2020-05-27 17:32:02 +0100 Tim-Philipp Müller <[email protected]>
* tests/check/meson.build:
tests: gst-plugins-base and -bad plugins are required for the unit tests
Make hard requirement until we have more fine-grained control
in the unit tests. Of course the presence of the .pc file doesn't
imply that the plugins we need are actually there, but it's at
least a step in the right direction.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/126>
2020-05-27 17:29:18 +0100 Tim-Philipp Müller <[email protected]>
* tests/check/meson.build:
tests: pick up rtsp-server plugins from build directory only
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/126>
2020-05-26 15:31:22 +0200 Ludvig Rappe <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: wait for all GstRTSPStreamBlocking messages
Make sure rtsp-media have received a GstRTSPStreamBlocking message from
each active stream when checking if all streams are blocked.
Without this change there will be a race condition when using two or
more streams and rtsp-media receives a GstRTSPStreamBlocking message
from one of the streams. This is because rtsp-media then checks if all
streams are blocked by calling gst_rtsp_stream_is_blocking() for each
stream. This function call returns TRUE if the stream has sent a
GstRTSPStreamBlocking message, however, rtsp-media may have yet to
receive this message. This would then result in that rtsp-media
erroneously thinks it is blocking all streams which could result in
rtsp-media changing state, from PREPARING to PREPARED. In the case of a
preroll, this could result in that rtsp-media thinks that the pipeline
is prerolled even though that might not be the case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/124>
2020-05-04 13:43:00 +0200 Ludvig Rappe <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: update expected_async_done during suspend
Set expected_async_done to FALSE in default_suspend() if a state change
occurs and the return value from set_target_state() is something other
than GST_STATE_CHANGE_ASYNC.
Without this change there is a risk that expected_async_done will be
TRUE even though no asynchronous state change is taking place. This
could happen if the pipeline is set to PAUSED using
media_set_pipeline_state_locked(), an asynchronous state change starts
and then the media is suspended (which could result in a state change,
aborting the asynchronous state change). If the media is suspended
before the asynchronous state change ends then expected_async_done will
be TRUE but no asynchronous state change is taking place.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/123>
2020-05-25 13:49:45 +0200 Kristofer Björkström <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Fix race condition in rtsp ctrl timeout by WeakRef client
There was a race condition where client was being finalized and
concurrently in some other thread the rtsp ctrl timout was relying on
client data that was being freed.
When rtsp ctrl timeout is setup, a WeakRef on Client is set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/121>
2015-03-03 14:42:07 +0100 Gregor Boirie <[email protected]>
* gst/rtsp-server/rtsp-media-factory.c:
* gst/rtsp-server/rtsp-media-factory.h:
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-media.h:
media-factory: complete DSCP QoS setting support
add dscp_qos setting support at factory and media level to setup IP DSCP
field of bounded UDP sinks.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/120>
2020-05-14 10:08:32 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Fix some race conditions around timeout source removal
We always need to take the lock while accessing it as otherwise another
thread might've removed it in the meantime. Also when destroying and
creating a new one, ensure that the mutex is not shortly unlocked in
between as during that time another one might potentially be created
already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/119>
2020-05-03 16:29:31 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-stream.c:
rtsp-media: Mark out parameters accordingly in gst_rtsp_media_get_rates()
And the same for gst_rtsp_stream_get_rates().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/118>
2020-05-03 10:17:41 +0000 Tim-Philipp Müller <[email protected]>
* examples/test-onvif-server.c:
examples: test-onvif-server: fix compiler warnings on raspbian
Fix printf format for 64-bit variables.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/117>
2020-05-01 10:42:17 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream-transport.h:
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream-transport: Fix accidental API/ABI breakage with message_sent callbacks
The old API is preserved now and new API was added that provides the
additional parameter to the callback.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/104
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/116>
2020-04-28 23:33:49 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Store the timeout source by pointer instead of id
That way we don't have to retrieve it again from the main context when
destroying it but can directly do so.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/115>
2020-04-28 23:16:18 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Clean up watch/watch context and related state consistently
And assert that it was cleaned up properly before the client is
finalized. If something is still around when the client is shut down
then something went very wrong before.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/115>
2020-04-27 23:25:22 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-client.c:
* tests/check/gst/rtspserver.c:
rtsp-client: Combine the pre-session and post-session timeout
They previously used the same state but different mechanisms and
functions, which was difficult to follow, error prone and simply
confusing.
Also adjust the test for the post-session timeout a bit to be less racy
now that the timing has slightly changed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/115>
2020-04-27 19:47:15 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Don't ever close the client connection directly when a session is torn down
There might be other sessions that are running over the same RTSP
connection and we should not simply close the client directly if one of
them is torn down.
By default the connection will be closed once the client closes it or
the OS does. This behaviour can be adjusted with the
post-session-timeout property, which allows to close it automatically
from the server side after all sessions are gone and the given timeout
is reached.
This reverts the previous commit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/115>
2020-04-27 13:49:55 +0300 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: If the TEARDOWN response can be sent directly, directly close the client
Instead of closing it never at all. Previously there was only code that
closed the client asynchronously if sending the response happened
asynchrously at a later time.
Thanks to Christian M for debugging this issue.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/102
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/114>
2020-03-23 14:51:28 +0100 Michael Olbrich <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: use mcast_udpsink[0] last-sample if available for rtpinfo
Otherwise no sink is found for multicast sreams and the less accurate
fallback is used to determine the current sequence number and timestamp.
2020-03-23 16:06:43 +0200 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-auth.c:
rtsp-auth: Fix NULL pointer dereference when handling an invalid basic Authorization header
When using the basic authentication scheme, we wouldn't validate that
the authorization field of the credentials is not NULL and pass it on
to g_hash_table_lookup(). g_str_hash() however is not NULL-safe and will
dereference the NULL pointer and crash.
A specially crafted (read: invalid) RTSP header can cause this to
happen.
As a solution, check for the authorization to be not NULL before
continuing processing it and if it is simply fail authentication.
This fixes CVE-2020-6095 and TALOS-2020-1018.
Discovered by Peter Wang of Cisco ASIG.
2020-03-09 14:17:34 +0100 Göran Jönsson <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Use watch_context before unref
Move the usage of priv->watch_context to beginning of function
gst_rtsp_client_finalize. Instead of use it after
g_main_context_unref (priv->watch_context).
2020-02-14 14:59:43 +0100 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: fix deadlock on transport removal
We cannot take the RTSPStream lock while holding a transport backlog
lock, as remove_transport may be called externally, which will
take first the RTSPStream lock then the transport backlog lock.
2020-02-14 14:59:25 +0100 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-server-internal.h:
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: clear backlog when removing transport
This ensures we don't end up calling any of transports' callbacks
with a potentially unreffed user_data (in practice, a client that
may have been removed)
2020-02-06 22:46:18 +0100 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: marshal calls to send_tcp_message to a single thread
In order to address the race condition pointed out at
https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/merge_requests/108#note_403579
we get rid of the send thread pool, and instead spawn and manage
a single thread to pull samples from app sinks and add them to
the transport's backlogs.
Additionally, we now also always go through the backlogs in order
to simplify the logic.
2020-02-05 20:28:19 +0100 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-server-internal.h:
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: properly protect TCP backlog access
Fixes #97
We cannot hold stream->lock while pushing data, but need
to consistently check the state of the backlog both from
the send_tcp_message function and the on_message_sent function,
which may or may not be called from the same thread.
This commit introduces internal API to allow for potentially
recursive locking of transport streams, addressing a race
condition where the RTSP stream could push items out of order
when popping them from the backlog.
2020-02-22 00:41:32 +0200 Sebastian Dröge <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Sink pipeline in gst_rtsp_media_take_pipeline()
It's taken ownership of by the media, and returned with `transfer none`
from the GstRTSPMedia::create_pipeline() vfunc. If we don't sink it
first then any bindings will wrongly take ownership of the pipeline once
it arrives in bindings code.
2020-02-05 16:51:14 +0100 Bastian Bouchardon <[email protected]>
* examples/test-onvif-client.c:
Add initialization for context and params (gchar *) Insert define (DEFAULT_*) into help to have to modify only the constants
2020-02-03 12:30:14 +0000 Marc Leeman <[email protected]>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: fix default latency
2020-01-15 17:06:41 +0100 Mathieu Duponchelle <[email protected]>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: make closing more thread safe
+ Take the watch lock prior to using priv->watch
+ Flush both the watch and connection before closing / unreffing
gst_rtsp_connection_close() is not threadsafe on its own, this is
a workaround at the client level, where we control both the watch
and the connection
2020-01-23 16:41:26 +0200 Jordan Petridis <[email protected]>
* gst/rtsp-server/rtsp-latency-bin.c:
rtsp-latency-bin: replace G_TYPE_INSTANCE_GET_PRIVATE as it's been deprecated
from glib
```
Deprecated: 2.58: Use %G_ADD_PRIVATE and the generated
`your_type_get_instance_private()` function instead
```
2019-12-17 16:08:19 +0100 Zoltán Imets <[email protected]>
* gst/rtsp-server/rtsp-client.c:
* tests/check/gst/rtspserver.c:
rtsp-client: add property post-session-timeout
This is a TCP connection timeout for client connections, in seconds.
If a positive value is set for this property, the client connection
will be kept alive for this amount of seconds after the last session
timeout. For negative values of this property the connection timeout
handling is delegated to the system (just as it was before).