Commit Graph

47 Commits

Author SHA1 Message Date
Andrey Tkachenko
8e9c950389 Fix h265 aggregation packet issue 2023-04-26 12:55:31 +04:00
d2c1fa003f Add codec specific params 2023-03-28 15:19:38 +04:00
6df7684384 Add H265 Codec 2022-11-14 18:49:42 +04:00
Scott Lamb
b54ea3f4fd v0.4.3: upgrade h264-reader crate
* match a couple h264-reader semantic changes. E.g., decode_nal now
  expects the full NALU including header byte.

* adjust test data in depacketize_parameter_change. The SDP parameters
  I used were invalid in a way caught only by the new h264-reader crate.
  That's not the intended scenario, so use different parameters. But
  mention the accidental scenario in CHANGELOG.md.

* initialize logging in h264 tests to ease debugging problems like the
  bullet above.

* in AAC code, match h264-reader's switch from bitreader to
  bitstream-io. This keeps dependencies down, in addition to the reasons
  for h264-reader's switch, described here:
  7a02a3b7bd
2022-09-28 22:12:17 -07:00
Scott Lamb
bc03c61ae3 ignore unparseable SDP media
https://github.com/scottlamb/moonfire-nvr/issues/238
2022-09-28 09:12:28 -07:00
Scott Lamb
d6c0e84db8 prep v0.4.1 2022-08-09 07:40:46 -07:00
Scott Lamb
bb3baf0329 unbreak client example 2022-07-15 16:30:54 -07:00
Scott Lamb
692bfaa04e WebRTC proxy example (#60)
This is a very basic version, as a starting point.
2022-07-15 16:12:26 -07:00
Scott Lamb
fa372865e6 upgrade mylog dep to version without parking_lot 2022-07-13 11:48:30 -07:00
Scott Lamb
d75d5585f5 move the client example to its own crate
We're likely to add more examples with more dependencies (e.g. ffmpeg,
gstreamer, webrtc). Nice to not have their deps in the main crate's
dev-dependencies, and likewise to have each example show its true
dependencies.

As mentioned here:
https://github.com/scottlamb/retina/issues/19#issuecomment-902302720
2022-07-13 10:51:03 -07:00
Scott Lamb
33bd057ade update some deps 2022-07-11 11:59:40 -07:00
Scott Lamb
2b700fd32b prepare v0.4.0 2022-05-17 16:48:34 -07:00
Scott Lamb
d664f6b1af bump version 2022-04-28 16:14:09 -07:00
Scott Lamb
2e34bf927e revamp Packet type
As described in #47 and #58: revamp this type to keep the full raw
packet, and provide accessors rather than raw fields. It's also
smaller now, which is nice.
2022-04-28 16:13:05 -07:00
Scott Lamb
decab965a3 prepare v0.3.9 2022-04-12 14:19:24 -07:00
Scott Lamb
3b4a6ba985 update deps 2022-04-01 16:07:48 -07:00
Scott Lamb
9b4f50231c prepare v0.3.8 2022-03-08 10:37:49 -08:00
Scott Lamb
5b1bb7c7e4 fix #52 with upgrade to sdp-types 0.1.4 2022-03-08 10:05:41 -08:00
Scott Lamb
e4be827a63 prep v0.3.7 2022-01-28 09:17:22 -08:00
Scott Lamb
e551337c91 prep v0.3.6 2021-12-29 22:06:21 -08:00
Scott Lamb
9c85a2dd80 prepare v0.3.5 2021-11-30 12:38:34 -08:00
Scott Lamb
e1f09771e1 cargo update 2021-11-30 11:41:39 -08:00
Scott Lamb
330ee843b5 Cargo.lock: http-auth 0.1.3 -> 0.1.4 2021-11-21 21:04:23 -08:00
Scott Lamb
35575b7551 prep v0.3.4 2021-10-26 21:32:54 -07:00
Scott Lamb
990293faf1 cargo update
This doesn't matter for users of the library, just CI and folks
building retina and its examples.
2021-10-26 21:31:29 -07:00
Scott Lamb
80a342e50a use rtsp-types 0.0.3 2021-10-26 21:30:25 -07:00
Scott Lamb
969afbf96c v0.3.3, fix #25: better HTTP auth support 2021-10-20 14:43:36 -07:00
Scott Lamb
3a3f01118e prepare v0.3.2 2021-09-29 05:48:36 -07:00
Scott Lamb
379bf840c1 prepare v0.3.1 2021-09-09 22:01:58 -07:00
Scott Lamb
abf10eac16 use sdp-types 0.1.3 with more permissive parsing
Fixes #26
Fixes #33
2021-09-09 06:58:15 -07:00
Scott Lamb
96023c5a98 cargo update 2021-09-07 19:27:26 -07:00
Scott Lamb
6f88161943 mp4 example: more verbose errors 2021-09-07 19:25:40 -07:00
Scott Lamb
9e9366f115 experimental UDP support (fixes #30)
* support setting transport to UDP
* breaking change: use new PacketContext rather than RtspMessageContext
  in places where an RTP/RTCP packet is expected, as it can now be over
  UDP instead of via RTSP interleaved data
* send teardown, which is important with UDP sessions. (It also will
  help somewhat with Reolink TCP.) Along the way, make Session Unpin
  so that teardown can consume it without tripping over tokio::pin!().
* refactor to shrink the amount of data used by Session and how much
  gets memmoved around on the stack, instead of further growing it.

Because of missing RTCP RR and reorder buffer support, this is only
appropriate for using on a LAN. That's enough for me right now.
2021-08-30 21:40:51 -07:00
Scott Lamb
d8aa4c6565 workaround for Reolink spurious data
Fixes #17

I'm accumulating unit testing debt, but I think I'd rather get this
quickly out in the field to test against scenarios I haven't anticipated
than get my unit tests in order for scenarios I have anticiapted.
2021-08-19 13:00:06 -07:00
Scott Lamb
41765007a6 remove rtcp dependency, prep v0.1.0
rtcp recently had an accidental semver break, so this fixes #8.
I also don't like that newer versions depend on several unnecessary
crates including tokio. retina also depends on tokio, but in the future
I want it to be IO library-agnostic.

I'm moving to v0.1.0 so I *can* release versions that claim semver
compatibility. There are still plenty of API changes to make but also
likely upcoming camera compatibility changes that won't break anything.
2021-08-13 11:37:53 -07:00
Scott Lamb
00359bf540 prepare v0.0.5 2021-07-08 15:20:55 -07:00
Scott Lamb
e9a5e4e34a overhaul error type
*   stop using deprecated failure crate and its deps

*   more uniformly detailed error messages

*   an enum of the type of error, currently internal-only. I'm not
    confident enough I understand what cases a caller might want to
    distinguish, so I added a comment inviting input instead of
    exposing it now.

*   while I'm at it, separate connection context and message contexts.
    This shrinks some of the data memmoved around in PacketItem and
    CodecItem.
2021-07-08 11:28:07 -07:00
Scott Lamb
7f32639608 don't break after keepalive response!
prepare v0.0.4 immediately; v0.0.3 is effectively unusable.

I want to test this properly, but I haven't yet figured out how to set
up good mocks of tokio::Sleep and such. For now just fix the bug.
2021-06-28 15:30:28 -07:00
Scott Lamb
037c501dfb prepare v0.0.3 release 2021-06-28 14:16:13 -07:00
Scott Lamb
4a8b8f2f77 add a more end-to-end benchmark 2021-06-28 10:04:38 -07:00
Scott Lamb
6503398d3f prepare v0.0.2 2021-06-25 16:48:41 -07:00
Scott Lamb
ca691d1887 quick benchmark 2021-06-09 23:44:43 -07:00
Scott Lamb
f56b63225d prepare v0.0.1 release 2021-06-09 13:50:30 -07:00
Scott Lamb
e9125500b5 bump deps 2021-06-07 21:32:04 -07:00
Scott Lamb
954c181569 use my pr-sps-overflow branch of h264-reader
This makes fuzz testing get a bit farther at least.
2021-06-07 21:30:18 -07:00
Scott Lamb
1bcc864344 trim dependencies 2021-06-04 21:20:56 -07:00
Scott Lamb
5cc69e751c initial commit 2021-06-03 16:49:53 -07:00