@@ -541,3 +541,65 @@ func TestClientReplyToServerRequest(t *testing.T) {
541
541
})
542
542
}
543
543
}
544
+
545
+ func TestClientRelativeContentBase (t * testing.T ) {
546
+ l , err := net .Listen ("tcp" , "localhost:8554" )
547
+ require .NoError (t , err )
548
+ defer l .Close ()
549
+
550
+ serverDone := make (chan struct {})
551
+ defer func () { <- serverDone }()
552
+ go func () {
553
+ defer close (serverDone )
554
+
555
+ nconn , err2 := l .Accept ()
556
+ require .NoError (t , err2 )
557
+ defer nconn .Close ()
558
+ conn := conn .NewConn (nconn )
559
+
560
+ req , err2 := conn .ReadRequest ()
561
+ require .NoError (t , err2 )
562
+ require .Equal (t , base .Options , req .Method )
563
+
564
+ err2 = conn .WriteResponse (& base.Response {
565
+ StatusCode : base .StatusOK ,
566
+ Header : base.Header {
567
+ "Public" : base.HeaderValue {strings .Join ([]string {
568
+ string (base .Describe ),
569
+ }, ", " )},
570
+ },
571
+ })
572
+ require .NoError (t , err2 )
573
+
574
+ req , err2 = conn .ReadRequest ()
575
+ require .NoError (t , err2 )
576
+ require .Equal (t , base .Describe , req .Method )
577
+ require .Equal (t , mustParseURL ("rtsp://localhost:8554/teststream" ), req .URL )
578
+
579
+ medias := []* description.Media {testH264Media }
580
+
581
+ err2 = conn .WriteResponse (& base.Response {
582
+ StatusCode : base .StatusOK ,
583
+ Header : base.Header {
584
+ "Content-Type" : base.HeaderValue {"application/sdp; charset=utf-8" },
585
+ "Content-Base" : base.HeaderValue {"/relative-content-base" },
586
+ },
587
+ Body : mediasToSDP (medias ),
588
+ })
589
+ require .NoError (t , err2 )
590
+ }()
591
+
592
+ u , err := base .ParseURL ("rtsp://localhost:8554/teststream" )
593
+ require .NoError (t , err )
594
+
595
+ c := Client {}
596
+
597
+ err = c .Start (u .Scheme , u .Host )
598
+ require .NoError (t , err )
599
+ defer c .Close ()
600
+
601
+ desc , _ , err := c .Describe (u )
602
+ require .NoError (t , err )
603
+
604
+ require .Equal (t , "rtsp://localhost:8554/relative-content-base" , desc .BaseURL .String ())
605
+ }
0 commit comments