Skip to content

2.8.0

Choose a tag to compare

@pedroSG94 pedroSG94 released this 16 Jul 21:47
· 196 commits to master since this release

General

  • Add PitchShiftEffect audio filter
  • Add lock exposure support to Camera2 (lockExposure/unlockExposure)
  • Add PCM resample method and allow G711 with any audio config
  • Fix readUntil entering an infinite busy-loop when the stream reaches EOF
  • Fix partial reads on readUInt16/24/32
  • Fix isKeyframe comparing flags with == instead of a bitmask
  • Fix getStartCodeSize IndexOutOfBounds on buffers shorter than 4 bytes
  • Fix setDelay crash with values under 5ms
  • Fix BaseSender resizeCache guard and getCacheSize
  • Refactor BitBuffer class, fix readUVLC and bit-remaining off-by-one
  • Fix UrlParser to support passwords containing ':'
  • Fix sockets: isConnected after close, recreate ktor selector on reconnect, UDP receive buffer size
  • Fix audio PTS frozen in TimestampMode.BUFFER
  • Fix BaseDecoder busy-wait while paused
  • Fix AudioDecoder muted buffer size, output size and PCMUtil stereo conversion
  • Refactor MicrophoneManager and fix races and shared buffer
  • Fix BaseEncoder start order and processInput offset
  • Fix Camera2ApiManager getSupportedFps formula
  • Fix G711 decode output size
  • Fix TextStreamObject crash with empty text
  • Fix ViewSurfaceFilterRender always crashing
  • Move AndroidViewFilterRender to Kotlin, fix CPU spin and add targetFps
  • Fix CropFilterRender divide by zero when cropping a full axis
  • Fix EGL lifecycle on stop (OpenGlView / GlStreamInterface)
  • Fix GlUtil createTextures offset and disableResources bound
  • Fix Sprite/AndroidViewSprite center translation with non-uniform scale
  • Fix SpriteGestureController mutating the internal scale point
  • Fix CameraRender placeholder leak and TextureLoader recycling the user bitmap
  • Fix GifStreamObject guards for empty/invalid frames
  • Fix Media3 audio/video sources not surviving stop/start
  • Fix keyframe detection in record controllers

RTMP

  • Refactor ASC to share in RTMP and RTSP
  • Refactor RtmpConfig to avoid share between RtmpClients
  • Fix Acknowledgement sequence value
  • Fix write extended timestamp
  • Fix parse chunk stream id and read message chunk
  • Fix RtmpHeader TYPE_1/TYPE_2 timestamp delta
  • Avoid send auth command when no user or password
  • Fix AuthUtil description value parsing
  • Fix CommandSessionHistory leak
  • Stop connection if AMF packet is unknown and disable AMF3 instead of crashing
  • Fix crash on read Aggregate or SharedObject
  • Avoid crash on malformed command
  • Fix AmfEcmaArray length, AmfObject read, UserControl length and Command length
  • Fix AmfString equals/hashCode to avoid duplicated AMF keys
  • Fix AAC/Opus FLV dropping the first audio frame
  • Fix opus and aac audio configs
  • Fix VideoSpecificConfigAV1 sRGB condition and chroma_sample_position
  • Fix first PONG rtt

RTSP

  • Refactor RtpTracks to avoid share between RtspClients
  • Fix AAC, G711 and Opus fragmented packets case
  • Fix AV1 packetizer on long size obus
  • Fix digest auth
  • Fix NTP timestamp to be unique per session
  • Fix parse method command
  • Fix loadServerPorts to use the expected track instead of guessing from the response
  • Consume the response body when Content-Length is present

SRT

  • Fix overflow message number
  • Fix PCR/PTS overflow after ~4 days of device uptime
  • Fix resend lost packets and discard packets in queue
  • Fix packetHandlingQueue growing without bound when ACKs stop (TLPKTDROP by latency)
  • Fix send ACK2 only on full ACK packet and support light/small ACKs
  • Fix audio-only AAC never emitting PCR
  • Fix Nak crash on a truncated/malformed NAK
  • Fix ControlPacket control type to 15 bits
  • Fix AdaptationField, Pes flags and pes small stuffing
  • Fix Psi continuity counter by pid and Psi version to 5 bits
  • Fix initial PSI order to [PAT, PMT, SDT]
  • Fix Opus packetizer
  • Fix read ipaddress on handshake and support handshake with no path
  • Fix streamid carrying the query
  • Refactor Pid to avoid share between SrtClient instances
  • Move latency to millis in CommandsManager as the single source

UDP

  • Fix UdpClient leaving isStreaming true when the port is missing
  • Fix initial PSI order to [PAT, PMT, SDT]

WHIP

  • Add protocol support (beta)