Skip to content

2.8.1

Latest

Choose a tag to compare

@pedroSG94 pedroSG94 released this 01 Sep 17:00
· 45 commits to master since this release

General

  • Add VP8 and VP9 encoding support
  • Add HE-AAC encoding support
  • Add IPv6 support in all protocols
  • Add BufferAudioSource to stream PCM buffers provided by the user
  • Add onStreamingStats callback with byte accurate send queue monitoring (StreamingStatsReport and Throughput) (by @bratta-dk)
  • Add getQueueBytesOut to stream clients (by @bratta-dk)
  • Add QueueAwareBitrateAdapter, a bitrate adapter driven by the send queue instead of the measured bitrate
  • Add BufferPool to reuse buffers in senders and record controllers
  • Add Camera2 white balance lock and tap to meter (exposure and white balance) methods (by @bratta-dk)
  • Add setCustomRequest and setCustomOnCaptureCompletedCallback to Camera2
  • Add FlvMuxerRecordController as record fallback in Camera1Base for API 17 and lower
  • Move object filters to Kotlin, unify sprites and fix filters rotation. AndroidViewFilterRender renamed to ViewFilterRender, GifObjectFilterRender to GifFilterRender, ImageObjectFilterRender to ImageFilterRender and TextObjectFilterRender to TextFilterRender
  • Refactor SpriteGestureController
  • Refactor all video and audio sources and fix leaks
  • Change source now fallback to the last source if the new one fails
  • Move H264, H265 and AV1 parsers to common and fix SpsH265Parser, Av1Parser, BitBuffer and G711 codec
  • Allow set gl debug with a static value
  • Refactor gradle and allow compile with Kotlin 2.1
  • Fix video timestamp jitter using the frame timestamp instead of the render clock, in the encoder and in FpsLimiter
  • Rebase surface PTS on the shared start instead of the first video frame, fixing audio lagging video (by @x270880x)
  • Announce the rotated resolution, so portrait streams are not pillarboxed (by @x270880x)
  • Prevent a bitrate or stats report failure from stopping the send loop (by @bratta-dk)
  • Fix Camera1 fps range calculation
  • Fix enableAutoFocus to clear the regions set by tapToFocus
  • Properly remove the Camera2 handler on close
  • Fix CameraX stop and file sources loop
  • Fix BitmapSource fps using a frame interval instead of a fixed sleep
  • Fix reloadCodec and prefer color format 19 on low API if possible
  • Avoid crash calling getCapabilities in CodecUtil
  • Fix BitrateManager reset to also reset the timestamp
  • Stop gl after the encoders
  • Fix tryClear crash if the SurfaceTexture is already released
  • Fix UrlParser and fallback auth in getFullPath
  • Add ACCESS_LOCAL_NETWORK permission to the example app, needed to stream to a local network server targeting Android 17+
  • Update AGP to 9.3.1, Kotlin to 2.4.10, ktor to 3.5.2 and media3 to 1.11.0

RTMP

  • Add VP8 and VP9 support
  • Add HE-AAC support
  • Add setCustomMetadata method to send custom values in the metadata
  • Add SharedObject parser and refactor Command message
  • Remove AMF3 related code

RTSP

  • Add VP8 and VP9 support
  • Add HE-AAC support
  • Discover the local UDP ports dynamically instead of using fixed ports
  • Refactor SdpBody and payload types
  • Fix AV1 fragmentation of obus bigger than the packet size and send the sequence header on each keyframe
  • Fix CommandParser crash on malformed ports, CSeq and status code

SRT

  • Add HE-AAC support
  • Refactor MPEG2-TS H264 and H265 packets removing duplicated code
  • Avoid close the connection if a control packet with no body is received (KeepAlive, Shutdown, Ack2, CongestionWarning and DropReq)
  • Reuse packets if sendVideoInfo is received while streaming

UDP

  • Add HE-AAC support
  • Reuse packets if sendVideoInfo is received while streaming

WHIP

  • Add VP8 and VP9 support
  • Support IPv6 candidates and sort remote candidates by the available network family