Commit Graph

23 Commits

Author SHA1 Message Date
Alessandro Ros
49d0d56367 fix compatibility with Mercury cameras (#271) (#275) 2023-05-08 13:14:45 +02:00
Alessandro Ros
a54a5946c7 add 32-bit tests; return errors in case of string-to-int overflows (#276) 2023-05-08 13:10:31 +02:00
Alessandro Ros
a955288571 replace Format.Marshal() with RTPMap() and FMTP() (#253) 2023-04-15 13:46:19 +02:00
Alessandro Ros
9ca5e130fe rewrite unmarshaling interface and tests of formats (#238) 2023-04-10 15:07:59 +02:00
Alessandro Ros
c0c2dd68d3 add MP4A-LATM format (#237) 2023-04-10 13:07:09 +02:00
Alessandro Ros
1694d9086d use normalized trackID in place of mediaUUID (#226)
This is needed to support clients like the Grandstream GXV3500.

Fixes #190
2023-04-07 12:38:10 +02:00
Alessandro Ros
af3ed2bd83 merge format and formatdecenc into formats (#222) 2023-04-01 13:23:16 +02:00
Alessandro Ros
03b96abf84 rename Read() methods into Marshal() (#221) 2023-03-31 13:09:49 +02:00
Alessandro Ros
04f5a4041c change owner (#217) 2023-03-31 12:34:07 +02:00
Alessandro Ros
862b1061f4 fix parsing and generation of control attributes that contain RTSPS URLs (#216) 2023-03-24 21:07:45 +01:00
Alessandro Ros
1ad059a80b server: use absolute RTSP URL as control attribute (#210)
this is necessary in order to make GStreamer's rtspsrc to send query parameters correctly in SETUP requests.
2023-03-24 10:54:14 +01:00
Alessandro Ros
bc248c8e1d simplify FMTP decoding and encoding (#205) 2023-03-13 22:44:31 +01:00
Alessandro Ros
13fab2962e make Opus SDP always return 48khz and 2 channels (#204)
RFC7587 mandates 48khz as sample rate and 2 channels inside the SDP.
These values can be dynamically adjusted by the stream, but they must
not be touched inside the SDP.
2023-03-13 22:03:49 +01:00
Alessandro Ros
253be9913e update docs (#203) 2023-03-13 18:53:36 +01:00
Alessandro Ros
b55886f6df media: preserve recvonly, sendonly and sendrecv attributes (#171) 2023-01-22 11:23:59 +01:00
Alessandro Ros
341d0a6a0e media: remove redundant pointer (#172) 2023-01-21 20:15:00 +01:00
aler9
645f9462e2 server: support publishing/reading to/from path '/' or '' 2023-01-11 00:39:58 +01:00
aler9
5d8e0d9564 add Media.FindFormat() 2022-12-27 17:42:35 +01:00
Alessandro Ros
ae9dac0ad3 use random UUIDs as media IDs (#163)
* remove Medias.Clone(), Media.Clone(), Format.Clone()

* server: use random UUIDs as media IDs

* client: use random UUIDs as media IDs
2022-12-22 20:32:28 +01:00
aler9
38b24b8e26 rename 'track' references into 'format' 2022-12-13 18:06:41 +01:00
aler9
442cfcf2df media: remove pointer from Medias.FindFormat() 2022-12-12 01:00:25 +01:00
aler9
a50247956f rename medias.Format into medias.FindFormat 2022-12-12 00:16:25 +01:00
Alessandro Ros
a1396206b5 convert Tracks into Medias and Formats (#155)
* split tracks from medias

* move tracks into dedicated package

* move media into dedicated package

* edit Medias.Marshal() in order to return SDP

* add medias.Find() and simplify examples

* improve coverage

* fix rebase errors

* replace TrackIDs with MediaIDs

* implement media-specific and track-specific callbacks for reading RTCP and RTP packets

* rename publish into record, read into play

* add v2 tag

* rename tracks into formats
2022-12-11 22:03:22 +01:00