Newer
Older
=== release 1.16.0 ===
2019-04-19 00:34:54 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-rtsp-server.doap:
* meson.build:
Release 1.16.0
2019-04-15 20:33:01 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-sink/gstrtspclientsink.c:
rtspclientsink: Notify the stream transport about each written message
Otherwise it will never try to send us the next one: it tries to keep
exactly one message in-flight all the time.
In gst-rtsp-server this is done asynchronously via the GstRTSPWatch but
in the client sink we always write data out synchronously.
2019-04-02 08:05:03 +0200 Göran Jönsson <goranjn@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp_server: Free thread pool before clean transport cache
If not waiting for free thread pool before clean transport caches, there
can be a crash if a thread is executing in transport list loop in
function send_tcp_message.
Also add a check if priv->send_pool in on_message_sent to avoid that a
new thread is pushed during wait of free thread pool. This is possible
since when waiting for free thread pool mutex have to be unlocked.
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
=== release 1.15.90 ===
2019-04-11 00:35:55 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-rtsp-server.doap:
* meson.build:
Release 1.15.90
2019-04-10 10:32:53 +0200 Ulf Olsson <ulfo@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Add support for GCM (RFC 7714)
Follow-up to !198
2019-03-28 00:27:37 +0100 Erlend Eriksen <erlend_ne@hotmail.com>
* gst/rtsp-server/rtsp-session-pool.c:
session pool: fix missing klass-> in klass->create_session
2019-03-23 19:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
* meson.build:
g-i: pass --quiet to g-ir-scanner
This suppresses the annoying 'g-ir-scanner: link: cc ..' output
that we get even if everything works just fine.
We still get g-ir-scanner warnings and compiler warnings if
we pass this option.
2019-03-23 19:15:48 +0000 Tim-Philipp Müller <tim@centricular.com>
* meson.build:
g-i: silence 'nested extern' compiler warnings when building scanner binary
We need a nested extern in our init section for the scanner binary
so we can call gst_init to make sure GStreamer types are initialised
(they are not all lazy init via get_type functions, but some are in
exported variables). There doesn't seem to be any other mechanism to
achieve this, so just remove that warning, it's not important at all.
2019-03-21 11:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
* meson.build:
meson: pass -Wno-unused to compiler if gstreamer debug system is disabled
2019-03-14 07:37:26 +0100 Göran Jönsson <goranjn@axis.com>
* gst/rtsp-server/rtsp-media.c:
* tests/check/gst/media.c:
rtsp-media: Handle set state when preparing.
Handle the situation when a call to gst_rtsp_media_set_state is done
when media status is preparing.
Also add unit test for this scenario.
The unit test simulate on a media level when two clients share a (live)
media.
Both clients have done SETUP and got responses. Now client 1 is doing
play and client 2 is just closing the connection.
Then without patch there are a problem when
client1 is calling gst_rtsp_media_unsuspend in handle_play_request.
And client2 is doing closing connection we can end up in a call
to gst_rtsp_media_set_state when
priv->status == GST_RTSP_MEDIA_STATUS_PREPARING and all the logic for
shut down media is jumped over .
With this patch and this scenario we wait until
priv->status == GST_RTSP_MEDIA_STATUS_PREPARED and then continue to
execute after that and now we will execute the logic for
shut down media.
2019-03-04 09:13:30 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* configure.ac:
* meson.build:
Back to development
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
=== release 1.15.2 ===
2019-02-26 11:58:53 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-rtsp-server.doap:
* meson.build:
Release 1.15.2
2019-02-19 09:45:08 +0100 Göran Jönsson <goranjn@axis.com>
* gst/rtsp-server/rtsp-media.c:
* tests/check/gst/client.c:
rtsp-media: Fix multicast use case with common media
Use case
client 1: SETUP
client 1: PLAY
client 2: SETUP
client 1: TEARDOWN
client 2: PLAY
client 2: TEARDOWN
2019-01-16 12:59:11 +0100 Göran Jönsson <goranjn@axis.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
rtsp-server: remove recursive behavior
Introduce a threadpool to send rtp and rtcp to avoid recursive behavior.
2019-01-25 14:22:42 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Only allow to set either a send_func or send_messages_func but not both
And route all messages through the send_func if no send_messages_func
was provided.
We otherwise break backwards compatibility.
2018-09-17 22:18:46 +0300 Sebastian Dröge <sebastian@centricular.com>
* docs/libs/gst-rtsp-server-sections.txt:
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-client.h:
* gst/rtsp-server/rtsp-stream.c:
rtsp-client: Add support for sending buffer lists directly
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/29
2018-06-27 12:17:07 +0200 Sebastian Dröge <sebastian@centricular.com>
* docs/libs/gst-rtsp-server-sections.txt:
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream-transport.h:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-sink/gstrtspclientsink.c:
rtsp-server: Add support for buffer lists
This adds new functions for passing buffer lists through the different
layers without breaking API/ABI, and enables the appsink to actually
provide buffer lists.
This should already reduce CPU usage and potentially context switches a
bit by passing a whole buffer list from the appsink instead of
individual buffers. As a next step it would be necessary to
a) Add support for a vector of data for the GstRTSPMessage body
b) Add support for sending multiple messages at once to the
GstRTSPWatch and let it be handled internally
c) Adding API to GOutputStream that works like writev()
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/29
2018-12-04 14:12:04 +0100 Benjamin Berg <bberg@redhat.com>
* gst/rtsp-server/rtsp-client.c:
client: Fix crash in close handler
The close handler could trigger a crash because it invalidated the
watch_context while still leaving a source attached to it which would be
cleaned up at a later point.
2019-01-29 14:42:35 +0100 Edward Hervey <edward@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Use cached address when allocating sockets
If an address/port was previously decided upon (ex: multicast in the
SDP), then use that instead of re-creating another one
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/57
2018-12-27 11:28:17 +0100 Lars Wiréen <larswi@axis.com>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Fix race codition in finish_unprepare
The previous fix for race condition around finish_unprepare where the
function could be called twice assumed that the status wouldn't change
during execution of the function. This assumption is incorrect as the
state may change, for example if an error message arrives from the
pipeline bus.
Instead a flag keeping track on whether the finish_unprepare function
is currently executing is introduced and checked.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/59
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.15.1 ===
2019-01-17 02:26:48 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-rtsp-server.doap:
* meson.build:
Release 1.15.1
2018-12-05 15:07:25 +0100 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-stream.c:
Add source elements to the pipeline before activation
In plug_src we changed the element state before adding it to
the owner container. This prevented the pipeline from intercepting
a GST_STREAM_STATUS_TYPE_CREATE message from the pad in order
to assign a custom task pool.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/issues/53
2018-12-05 17:24:59 -0300 Thibault Saunier <tsaunier@igalia.com>
* common:
Automatic update of common submodule
From ed78bee to 59cb678
2018-11-20 19:12:09 +0100 Ingo Randolf <ingo.randolf@servus.at>
* examples/test-appsrc.c:
examples: test-appsrc: fix coding style error
2018-11-20 11:07:48 +0100 Ingo Randolf <ingo.randolf@servus.at>
* examples/test-appsrc.c:
examples: test-appsrc: fix buffer leak
2018-11-17 19:19:54 +0100 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Update priv->blocked when linked streams are unblocked.
Media is considered to be blocked when all streams that belong to
that media are blocked.
This patch solves the problem of inconsistent updates of
priv->blocked that are not synchronized with the media state.
2018-11-17 18:18:27 +0100 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: Don't block streams before seeking
Before the seek operation is performed on media, it's required that
its pipeline is prepared <=> the pipeline is in the PAUSED state.
At this stage, all transport parts (transport sinks) have been successfully
added to the pipeline and there is no need for blocking the streams.
2018-11-17 16:11:53 +0100 Patricia Muscalu <patricia@axis.com>
* tests/check/gst/rtspserver.c:
tests: rtspserver: Add shared media test case for TCP
2018-11-06 18:21:54 +0100 Linus Svensson <linussn@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Use seqnum-offset for rtpinfo
The sequence number in the rtpinfo is supposed to be the first RTP
sequence number. The "seqnum" property on a payloader is supposed to be
the number from the last processed RTP packet. The sequence number for
payloaders that inherit gstrtpbasepayload will not be correct in case of
buffer lists. In order to fix the seqnum property on the payloaders
gst-rtsp-server must get the sequence number for rtpinfo elsewhere and
"seqnum-offset" from the "stats" property contains the value of the
very first RTP packet in a stream. The server will, however, try to look
at the last simple in the sink element and only use properties on the
payloader in case there no sink elements yet, and by looking at the last
sample of the sink gives the server full control of which RTP packet it
looks at. If the payloader does not have the "stats" property, "seqnum"
is still used since "seqnum-offset" is only present in as part of
"stats" and this is still an issue not solved with this patch.
Needed for gst-plugins-base!17
2018-11-06 18:10:56 +0100 Linus Svensson <linussn@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Plug memory leak
Attaching a GSource to a context will increase the refcount. The idle
source will never be free'd since the initial reference is never
dropped.
2018-11-12 16:06:39 +0200 Jordan Petridis <jordan@centricular.com>
* .gitlab-ci.yml:
Add Gitlab CI configuration
This commit adds a .gitlab-ci.yml file, which uses a feature
to fetch the config from a centralized repository. The intent is
to have all the gstreamer modules use the same configuration.
The configuration is currently hosted at the gst-ci repository
under the gitlab/ci_template.yml path.
Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
2018-11-05 05:56:35 +0000 Matthew Waters <matthew@centricular.com>
* .gitmodules:
* gst-rtsp-server.doap:
Update git locations to gitlab
2018-11-01 14:20:16 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtsp-server/meson.build:
meson: add new onvif types
2018-11-01 12:49:51 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/meson.build:
Add ONVIF subclass headers to the installed headers in meson.build too
2018-11-01 11:29:01 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-server-object.h:
* gst/rtsp-server/rtsp-server.h:
rtsp-server: Declare GstRTSPServer struct before anything else
It's needed by all kinds of other headers, including the ones that are
required for defining the GstRTSPServer struct itself and its API.
2018-11-01 10:23:02 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-onvif-client.h:
* gst/rtsp-server/rtsp-onvif-media-factory.h:
* gst/rtsp-server/rtsp-onvif-media.h:
* gst/rtsp-server/rtsp-onvif-server.h:
Mark all ONVIF-specific subclasses as Since 1.14
2018-11-01 10:18:22 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/Makefile.am:
* gst/rtsp-server/meson.build:
* gst/rtsp-server/rtsp-context.h:
* gst/rtsp-server/rtsp-onvif-server.c:
* gst/rtsp-server/rtsp-onvif-server.h:
* gst/rtsp-server/rtsp-server-object.h:
* gst/rtsp-server/rtsp-server-prelude.h:
* gst/rtsp-server/rtsp-server.c:
* gst/rtsp-server/rtsp-server.h:
* gst/rtsp-server/rtsp-session.h:
Include ONVIF types from single-include rtsp-server.h
... by actually making it a single-include header and moving everything
related to the GstRTSPServer type to rtsp-server-object.h instead.
Otherwise there are too many circular includes.
https://bugzilla.gnome.org/show_bug.cgi?id=797361
2018-10-18 07:25:05 +0200 Göran Jönsson <goranjn@axis.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-latency-bin.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
rtsp-stream: use idle source in on_message_sent
When the underlying layers are running on_message_sent, this sometimes
causes the underlying layer to send more data, which will cause the
underlying layer to run callback on_message_sent again. This can go on
and on.
To break this chain, we introduce an idle source that takes care of
sending data if there are more to send when running callback
https://bugzilla.gnome.org/show_bug.cgi?id=797289
2018-10-20 16:14:53 +0200 Edward Hervey <edward@centricular.com>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Remove timeout GSource on cleanup
Avoids ending up with races where a timeout would still be around
*after* a client was gone. This could happen rather easily in
RTSP-over-HTTP mode on a local connection, where each RTSP message
would be sent as a different HTTP connection with the same tunnelid.
If not properly removed, that timeout would then try to free again
a client (and its contents).
2018-10-04 14:31:59 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst/rtsp-server/Makefile.am:
autotools: fix distcheck
2018-09-12 11:55:15 +0200 Ognyan Tonchev <ognyan@axis.com>
* gst/rtsp-server/Makefile.am:
* gst/rtsp-server/meson.build:
* gst/rtsp-server/rtsp-latency-bin.c:
* gst/rtsp-server/rtsp-latency-bin.h:
* gst/rtsp-server/rtsp-onvif-media.c:
onvif: encapsulate onvif part into a bin
...and thus do not let onvif affect pipelines latency
https://bugzilla.gnome.org/show_bug.cgi?id=797174
2018-09-27 19:57:13 +0200 Patricia Muscalu <patricia@dovakhiin.com>
* tests/check/gst/client.c:
tests: client: Avoid bind() failures in tests
https://bugzilla.gnome.org/show_bug.cgi?id=797059
2018-09-06 16:17:33 +0200 Patricia Muscalu <patricia@axis.com>
* 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:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
* tests/check/gst/mediafactory.c:
New property for socket binding to mcast addresses
By default the multicast sockets are bound to INADDR_ANY,
as it's not allowed to bind sockets to multicast addresses
in Windows. This default behaviour can be changed by setting
bind-mcast-address property on the media-factory object.
https://bugzilla.gnome.org/show_bug.cgi?id=797059
2018-09-24 09:36:21 +0100 Tim-Philipp Müller <tim@centricular.com>
* configure.ac:
* gst/rtsp-server/Makefile.am:
* gst/rtsp-server/meson.build:
* gst/rtsp-server/rtsp-address-pool.c:
* gst/rtsp-server/rtsp-auth.c:
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-context.c:
* gst/rtsp-server/rtsp-media-factory-uri.c:
* gst/rtsp-server/rtsp-media-factory.c:
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-mount-points.c:
* gst/rtsp-server/rtsp-params.c:
* gst/rtsp-server/rtsp-permissions.c:
* gst/rtsp-server/rtsp-sdp.c:
* gst/rtsp-server/rtsp-server-prelude.h:
* gst/rtsp-server/rtsp-server.c:
* gst/rtsp-server/rtsp-session-media.c:
* gst/rtsp-server/rtsp-session-pool.c:
* gst/rtsp-server/rtsp-session.c:
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-thread-pool.c:
* gst/rtsp-server/rtsp-token.c:
* meson.build:
libs: fix API export/import and 'inconsistent linkage' on MSVC
Export rtsp-server library API in headers when we're building the
library itself, otherwise import the API from the headers.
This fixes linker warnings on Windows when building with MSVC.
Fix up some missing config.h includes when building the lib which
is needed to get the export api define from config.h
https://bugzilla.gnome.org/show_bug.cgi?id=797185
2018-09-19 14:31:56 +0200 Edward Hervey <edward@centricular.com>
* gst/rtsp-server/rtsp-media-factory.c:
rtsp-media-factory: Add missing break statements
This resulted in warnings/assertions whenever one accessed the
max-mcast-ttl property.
CID #1439515
CID #1439523
2018-09-19 12:21:30 +0100 Tim-Philipp Müller <tim@centricular.com>
* meson.build:
* meson_options.txt:
meson: add gobject-cast-checks, glib-asserts, glib-checks options
2018-09-19 12:17:57 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst/meson.build:
* meson_options.txt:
* tests/check/meson.build:
meson: add option to disable build of rtspclientsink plugin
2018-09-19 12:10:14 +0100 Tim-Philipp Müller <tim@centricular.com>
* meson_options.txt:
meson: re-arrange options
2018-09-01 11:21:15 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* meson.build:
* meson_options.txt:
* tests/check/meson.build:
* tests/meson.build:
meson: Use feature option for tests option
This was somehow missed the last time around.
2018-08-31 14:42:15 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* gst/rtsp-server/meson.build:
* meson.build:
meson: Maintain macOS ABI through dylib versioning
Requires Meson 0.48, but the feature will be ignored on older versions
so it's safe to add it without bumping the requirement.
Documentation:
https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library
2018-08-31 17:20:47 +1000 Matthew Waters <matthew@centricular.com>
* gst/rtsp-sink/meson.build:
* meson.build:
meson: add pkg-config file for the rtspclientsink plugin
2018-08-17 09:54:27 +0200 David Svensson Fors <davidsf@axis.com>
* gst/rtsp-server/rtsp-client.c:
* tests/check/gst/client.c:
rtsp-client: Avoid reuse of channel numbers for interleaved
If a (strange) client would reuse interleaved channel numbers in
multiple SETUP requests, we should not accept them. The channel
numbers are used for looking up stream transports in the
priv->transports hash table, and transports disappear from the table
if channel numbers are reused.
RFC 7826 (RTSP 2.0), Section 18.54, clarifies that it is OK for the
server to change the channel numbers suggested by the client.
https://bugzilla.gnome.org/show_bug.cgi?id=796988
2018-08-17 09:54:27 +0200 David Svensson Fors <davidsf@axis.com>
* tests/check/gst/client.c:
rtsp-client: Add unit test of SETUP for RTSP/RTP/TCP
Allow regex for matching transport header against expected pattern.
https://bugzilla.gnome.org/show_bug.cgi?id=796988
2018-08-15 18:57:27 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* tests/check/meson.build:
meson: There is no gstreamer-plugins-good-1.0.pc
There is no installed version of that, only an uninstalled version.
2018-08-14 14:31:55 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-client.c:
* tests/check/gst/stream.c:
Fix indentation again
2018-07-26 12:01:16 +0200 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
* tests/check/gst/stream.c:
stream: Added a list of multicast client addresses
When media is shared, the same media stream can be sent
to multiple multicast groups. Currently, there is no API
to retrieve multicast addresses from the stream.
When calling gst_rtsp_stream_get_multicast_address() function,
only the first multicast address is returned.
With this patch, each multicast destination requested in SETUP
will be stored in an internal list (call to
gst_rtsp_stream_add_multicast_client_address()).
The list of multicast groups requested by the clients can be
retrieved by calling gst_rtsp_stream_get_multicast_client_addresses().
There still exist some problems with the current implementation
in the multicast case:
1) The receiving part is currently only configured with
regard to the first multicast client (see
https://bugzilla.gnome.org/show_bug.cgi?id=796917).
2) Secondly, of security reasons, some constraints should be
put on the requested multicast destinations (see
https://bugzilla.gnome.org/show_bug.cgi?id=796916).
Change-Id: I6b060746e472a0734cc2fd828ffe4ea2956733ea
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-07-25 15:33:18 +0200 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
stream: Choose the maximum ttl value provided by multicast clients
The maximum ttl value provided so far by the multicast clients
will be chosen and reported in the response to the current
client request.
Change-Id: I5408646e3b5a0a224d907ae215bdea60c4f1905f
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-02-23 14:34:32 +0100 Patricia Muscalu <patricia@dovakhiin.com>
* gst/rtsp-server/rtsp-stream.c:
* tests/check/gst/client.c:
rtsp-stream: Don't require address pool in the transport specific case
If "transport.client-settings" parameter is set to true, the client is
allowed to specify destination, ports and ttl.
There is no need for pre-configured address pool.
Change-Id: I6ae578fb5164d78e8ec1e2ee82dc4eaacd0912d1
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-07-24 14:02:40 +0200 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-client.c:
* tests/check/gst/client.c:
client: Don't reserve multicast address in the client setting case
When two multicast clients request specific transport
configurations, and "transport.client-settings" parameter is
set to true, it's wrong to actually require that these two
clients request the same multicast group.
Removed test_client_multicast_invalid_transport_specific test
cases as they wrongly require that the requested destination
address is supposed to be present in the address pool, also in
the case when "transport.client-settings" parameter is set to true.
Change-Id: I4580182ef35996caf644686d6139f72ec599c9fa
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-07-24 09:35:46 +0200 Patricia Muscalu <patricia@axis.com>
* 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:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/mediafactory.c:
Add new API for setting/getting maximum multicast ttl value
Change-Id: I5ef4758188c14785e17fb8fbf42a3dc0cb054233
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-07-31 21:17:41 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: avoid duplicating the first multicast client
In dcb4533fedae3ac62bc25a916eb95927b7d69aec , we made it so
clients were dynamically added and removed to the multicast
udp sinks, as such we should no longer add a first client in
set_multicast_socket_for_udpsink
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-08-14 14:25:53 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
Revert "rtsp-stream: avoid duplicating the first multicast client"
This reverts commit 33570944401747f44d8ebfec535350651413fb92.
Commits where accidentially squashed together
2018-08-14 14:25:42 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-client.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-media.h:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
* tests/check/gst/mediafactory.c:
Revert "Add new API for setting/getting maximum multicast ttl value"
This reverts commit 7f0ae77e400fb8a0462a76a5dd2e63e12c4a2e52.
Commits where accidentially squashed together
2018-08-14 14:25:37 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
* tests/check/gst/client.c:
Revert "rtsp-stream: Don't require address pool in the transport specific case"
This reverts commit a9db3e7f092cfeb5475e9aa24b1e91906c141d52.
Commits where accidentially squashed together
2018-08-14 14:25:14 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
* tests/check/gst/stream.c:
Revert "stream: Choose the maximum ttl value provided by multicast clients"
This reverts commit 499e437e501215849d24cdaa157e0edf4de097d0.
Commits where accidentially squashed together
2018-08-14 14:10:56 +0300 Sebastian Dröge <sebastian@centricular.com>
* examples/test-auth-digest.c:
examples: Fix indentation
2018-07-25 15:33:18 +0200 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
* tests/check/gst/stream.c:
stream: Choose the maximum ttl value provided by multicast clients
The maximum ttl value provided so far by the multicast clients
will be chosen and reported in the response to the current
client request.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-02-23 14:34:32 +0100 Patricia Muscalu <patricia@dovakhiin.com>
* gst/rtsp-server/rtsp-stream.c:
* tests/check/gst/client.c:
rtsp-stream: Don't require address pool in the transport specific case
If "transport.client-settings" parameter is set to true, the client is
allowed to specify destination, ports and ttl.
There is no need for pre-configured address pool.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-07-24 09:35:46 +0200 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-client.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-media.h:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-stream.h:
* tests/check/gst/client.c:
* tests/check/gst/mediafactory.c:
Add new API for setting/getting maximum multicast ttl value
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-07-31 21:17:41 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: avoid duplicating the first multicast client
In dcb4533fedae3ac62bc25a916eb95927b7d69aec , we made it so
clients were dynamically added and removed to the multicast
udp sinks, as such we should no longer add a first client in
set_multicast_socket_for_udpsink
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-08-06 15:33:04 -0400 Thibault Saunier <tsaunier@igalia.com>
* gst/rtsp-server/Makefile.am:
rtsp-server: Add gstreamer-base gir dir in autotools
2018-07-25 19:54:55 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream.c:
rtsp-client: always allocate both IPV4 and IPV6 sockets
multiudpsink does not support setting the socket* properties
after it has started, which meant that rtsp-server could no
longer serve on both IPV4 and IPV6 sockets since the patches
from https://bugzilla.gnome.org/show_bug.cgi?id=757488 were
merged.
When first connecting an IPV6 client then an IPV4 client,
multiudpsink fell back to using the IPV6 socket.
When first connecting an IPV4 client, then an IPV6 client,
multiudpsink errored out, released the IPV4 socket, then
crashed when trying to send a message on NULL nevertheless,
that is however a separate issue.
This could probably be fixed by handling the setting of
sockets in multiudpsink after it has started, that will
however be a much more significant effort.
For now, this commit simply partially reverts the behaviour
of rtsp-stream: it will continue to only create the udpsinks
when needed, as was the case since the patches were merged,
it will however when creating them, always allocate both
sockets and set them on the sink before it starts, as was
the case prior to the patches.
Transport configuration will only error out if the allocation
of UDP sockets fails for the actual client's family, this
also downgrades the GST_ERRORs in alloc_ports_one_family
to GST_WARNINGs, as failing to allocate is no longer
necessarily fatal.
https://bugzilla.gnome.org/show_bug.cgi?id=796875
2018-07-25 17:22:20 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* meson.build:
* meson_options.txt:
meson: Convert common options to feature options
These are necessary for gst-build to set options correctly. The
remaining automagic option is cgroup support in examples.
https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-23 18:03:51 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Slightly simplify locking
2018-06-28 11:22:21 +0200 David Svensson Fors <davidsf@axis.com>
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream-transport.h:
* gst/rtsp-server/rtsp-stream.c:
Limit queued TCP data messages to one per stream
Before, the watch backlog size in GstRTSPClient was changed
dynamically between unlimited and a fixed size, trying to avoid both
unlimited memory usage and deadlocks while waiting for place in the
queue. (Some of the deadlocks were described in a long comment in
handle_request().)
In the previous commit, we changed to a fixed backlog size of 100.
This is possible, because we now handle RTP/RTCP data messages differently
from RTSP request/response messages.
The data messages are messages tunneled over TCP. We allow at most one
queued data message per stream in GstRTSPClient at a time, and
successfully sent data messages are acked by sending a "message-sent"
callback from the GstStreamTransport. Until that ack comes, the
GstRTSPStream does not call pull_sample() on its appsink, and
therefore the streaming thread in the pipeline will not be blocked
inside GstRTSPClient, waiting for a place in the queue.
pull_sample() is called when we have both an ack and a "new-sample"
signal from the appsink. Then, we know there is a buffer to write.
RTSP request/response messages are not acked in the same way as data
messages. The rest of the 100 places in the queue are used for
them. If the queue becomes full of request/response messages, we
return an error and close the connection to the client.
Change-Id: I275310bc90a219ceb2473c098261acc78be84c97
2018-06-28 11:22:13 +0200 David Svensson Fors <davidsf@axis.com>
* gst/rtsp-server/rtsp-client.c:
rtsp-client: Use fixed backlog size
Change to using a fixed backlog size WATCH_BACKLOG_SIZE.
Preparation for the next commit, which changes to a different way of
avoiding both deadlocks and unlimited memory usage with the watch
backlog.
2018-07-16 21:57:08 +0200 Carlos Rafael Giani <dv@pseudoterminal.org>
* gst/rtsp-server/rtsp-media.c:
rtsp-media: unref clock (if set) when finalizing
https://bugzilla.gnome.org/show_bug.cgi?id=796814
2018-07-16 21:56:44 +0200 Carlos Rafael Giani <dv@pseudoterminal.org>
* docs/libs/gst-rtsp-server-sections.txt:
rtsp-media: add gst_rtsp_media_*_set_clock to docs
https://bugzilla.gnome.org/show_bug.cgi?id=796814
2018-07-12 19:01:54 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst/rtsp-server/rtsp-media-factory.c:
media-factory: unref old clock when setting new clock
https://bugzilla.gnome.org/show_bug.cgi?id=796724
2018-06-29 15:20:57 -0700 Brendan Shanks <brendan.shanks@teradek.com>
* gst/rtsp-server/rtsp-media-factory.c:
media-factory: unref clock in finalize
https://bugzilla.gnome.org/show_bug.cgi?id=796724
2018-07-12 18:57:21 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst/rtsp-server/rtsp-onvif-media.c:
rtsp-onvif-media: fix g-ir-scanner warnings
2018-07-10 23:56:23 +0100 Tim-Philipp Müller <tim@centricular.com>
* .gitignore:
.gitignore: add another example binary
2018-07-10 23:55:20 +0100 Tim-Philipp Müller <tim@centricular.com>
* examples/meson.build:
meson: add new test-appsrc2 example to meson build
2018-07-10 23:53:41 +0100 Tim-Philipp Müller <tim@centricular.com>
* examples/Makefile.am:
examples: fix build of new test-appsrc2 example
Need to link against libgstapp-1.0.
2018-07-11 01:25:51 +1000 Jan Schmidt <jan@centricular.com>
* examples/.gitignore:
* examples/Makefile.am:
* examples/test-appsrc2.c:
examples: Add test-appsrc2
Add an example of feeding both audio and video into an RTSP
pipeline via appsrc.
2016-01-08 18:12:14 -0500 Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
* gst/rtsp-server/rtsp-client.c:
client: Strip transport parts as whitespaces could be around commas
https://bugzilla.gnome.org/show_bug.cgi?id=758428
2018-06-27 08:30:42 +0200 Göran Jönsson <goranjn@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: avoid pushing data on unlinked udpsrc pad during setup
Fix race when setting up source elements.
Since we set the source element(s) to PLAYING state before hooking
them up to the downstream funnel, it's possible for the source element
to receive packets before we actually get to linking it to the funnel,
in which case buffers would be pushed out on an unlinked pad, causing
it to error out and stop receiving more data.
We fix this by blocking the source's srcpad until we have linked it.
https://bugzilla.gnome.org/show_bug.cgi?id=796160
2018-03-21 10:56:51 +0100 Ognyan Tonchev <ognyan@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Fix mismatch between allowed and configured protocols
https://bugzilla.gnome.org/show_bug.cgi?id=796679
2017-02-01 09:44:50 +0100 Ulf Olsson <ulfo@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Emit a signal when the SRTP decoder is created
https://bugzilla.gnome.org/show_bug.cgi?id=778080
2018-03-13 11:10:35 +0100 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Don't require presence of sinks in _get_*_socket()
Transport specific sink elements are added to the pipeline
in PLAY request and sockets are already created in SETUP so
it's actually wrong to require the presence of sinks in
_get_*_socket() functions.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-02-14 10:41:02 +0100 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Update transport for multicast clients as well
If a multicast client requests different transport settings
than the existing one make sure that this new transport
configuruation is propagated to the multicast udp sink.
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-02-13 11:04:36 +0100 Patricia Muscalu <patricia@axis.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: Set the multicast TTL parameter on multicast udp sinks
And not on unicast udp sinks
https://bugzilla.gnome.org/show_bug.cgi?id=793441
2018-06-24 12:44:26 +0200 Tim-Philipp Müller <tim@centricular.com>
* gst/rtsp-server/rtsp-address-pool.c:
* gst/rtsp-server/rtsp-auth.c:
* gst/rtsp-server/rtsp-client.c:
* gst/rtsp-server/rtsp-media-factory-uri.c:
* gst/rtsp-server/rtsp-media-factory.c:
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-mount-points.c:
* gst/rtsp-server/rtsp-server.c:
* gst/rtsp-server/rtsp-session-media.c:
* gst/rtsp-server/rtsp-session-pool.c:
* gst/rtsp-server/rtsp-session.c:
* gst/rtsp-server/rtsp-stream-transport.c:
* gst/rtsp-server/rtsp-stream.c:
* gst/rtsp-server/rtsp-thread-pool.c:
Update for g_type_class_add_private() deprecation in recent GLib
2018-06-24 12:45:49 +0200 Tim-Philipp Müller <tim@centricular.com>
* gst/rtsp-server/rtsp-auth.c:
* gst/rtsp-server/rtsp-media.c:
* gst/rtsp-server/rtsp-sdp.c:
* gst/rtsp-server/rtsp-stream.c:
Fix indentation
2018-06-22 23:17:08 +1000 Jan Schmidt <jan@centricular.com>
* examples/Makefile.am:
* examples/test-video-disconnect.c:
examples: Add test-video-disconnect example
Simple example which cuts off all clients 10 seconds
after the first one connects.
2018-06-20 04:37:11 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* docs/libs/gst-rtsp-server-sections.txt:
* examples/test-auth-digest.c:
* gst/rtsp-server/rtsp-auth.c:
* gst/rtsp-server/rtsp-auth.h:
rtsp-auth: Add support for parsing .htdigest files
Passwords are usually not stored in clear text, but instead
stored already hashed in a .htdigest file.
Add support for parsing such files, add API to allow setting
a custom realm in RTSPAuth, and update the digest example.
https://bugzilla.gnome.org/show_bug.cgi?id=796637
2018-06-19 14:53:02 +1000 Matthew Waters <matthew@centricular.com>
* gst/rtsp-sink/gstrtspclientsink.c:
* gst/rtsp-sink/gstrtspclientsink.h:
rtspclientsink: fix waiting for multiple streams
We were previously only ever waiting for a single stream to notify it's
blocked status through GstRTSPStreamBlocking. Actually count streams to
wait for.
Fixes rtspclientsink sending SDP's without out some of the input
streams.
https://bugzilla.gnome.org/show_bug.cgi?id=796624
2018-06-20 04:30:04 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* docs/libs/gst-rtsp-server-sections.txt:
docs: add missing auth methods
2018-06-20 00:10:18 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* gst/rtsp-server/rtsp-stream.c:
rtsp-stream: only create funnel if it didn't exist already.
This precented using multiple protocols for the same stream.