Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions cpp/moq/MIGRATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ How to update your code for each breaking change, newest first.
`Anchor` gains a `Time` case holding `timestamp_us`, the group containing that presentation time, so exhaustive visits need a case for it.
`TrackConsumer::update` now returns a result, failing with `TimestampMismatch` on a time anchor an untimed track can't serve.

### Rebuild the matching raw bindings

The documentation update changes UniFFI's audio-producer method metadata checksums.
Regenerate the C++ binding headers and sources from the rebuilt native library,
then rebuild the application; older generated guards reject the rebuilt library.
Application calls are unchanged.

### JSON consumers return `JsonValue` (#5677)

`JsonSnapshotConsumer::next()` and `JsonStreamConsumer::next()` return `JsonValue` (`value`, `timestamp_us`) instead of a string; `timestamp_us` is empty when untimed.
Expand Down
7 changes: 7 additions & 0 deletions dart/moq/MIGRATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ How to update your code for each breaking change, newest first.
`Anchor` gains a time variant, so exhaustive switches need a case for it.
`TrackConsumer.update` now throws on a time anchor an untimed track can't serve.

### Rebuild the matching raw bindings

The documentation update changes UniFFI's audio-producer method metadata checksums.
Update `moq_ffi` and its native library together; older generated guards reject the rebuilt library.
For a custom native library, regenerate its matching Dart bindings with `just dart generate`.
Application calls are unchanged.

### JSON consumers return `Value` (#5677)

`SnapshotConsumer.next()` and `StreamConsumer.next()` return `Value` (`value`, `timestampUs`) instead of a string; `timestampUs` is null when untimed.
Expand Down
12 changes: 12 additions & 0 deletions dart/moq_ffi/MIGRATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Migrating the Dart moq\_ffi package

How to update your code for each breaking change, newest first.

## Unreleased

### Regenerate the matching bindings

Documentation on `MoqAudioProducer::write` and `finish` changes their UniFFI metadata checksums.
Keep the generated Dart code and native library together.
For a custom native build, regenerate the matching bindings with `just dart generate`.
The method signatures and behavior are unchanged.
6 changes: 2 additions & 4 deletions dart/moq_ffi/lib/src/moq.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ import "dart:ffi";
import "dart:io" show Platform, File, Directory;
import "dart:isolate";
import "dart:typed_data";

import "package:ffi/ffi.dart";

import "uniffi_runtime.dart";
export "uniffi_runtime.dart";

Expand Down Expand Up @@ -18570,7 +18568,7 @@ void _checkApiChecksums() {
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_demand() != 42822) {
throw UniffiInternalError.panicked("UniFFI API checksum mismatch");
}
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_finish() != 6287) {
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_finish() != 52976) {
throw UniffiInternalError.panicked("UniFFI API checksum mismatch");
}
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_reanchor() != 34412) {
Expand All @@ -18579,7 +18577,7 @@ void _checkApiChecksums() {
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_reservation() != 43848) {
throw UniffiInternalError.panicked("UniFFI API checksum mismatch");
}
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_write() != 22094) {
if (uniffi_moq_ffi_checksum_method_moqaudioproducer_write() != 48796) {
throw UniffiInternalError.panicked("UniFFI API checksum mismatch");
}
if (uniffi_moq_ffi_checksum_method_moqbandwidth_reserve() != 27807) {
Expand Down
11 changes: 11 additions & 0 deletions go/ffi/MIGRATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Migrating the Go moq-ffi module

How to update your code for each breaking change, newest first.

## Unreleased

### Regenerate the matching bindings

Documentation on `MoqAudioProducer::write` and `finish` changes their UniFFI metadata checksums.
Regenerate the Go sources and bundle the matching static libraries, then rebuild callers.
The method signatures and behavior are unchanged.
7 changes: 7 additions & 0 deletions go/wrapper/MIGRATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ A positional `TrackInfo{...}` literal adds a trailing `false`; keyed literals ne
`AnchorTime` names the group containing a presentation time, and type switches over `Anchor` need a case for it.
`TrackConsumer.Update` also fails on a time anchor an untimed track can't serve.

### Rebuild the matching raw bindings

The documentation update changes UniFFI's audio-producer method metadata checksums.
Update generated `moq.dev/moq-ffi` sources and its bundled static libraries together,
then rebuild the application; older generated guards reject the rebuilt library.
Application calls are unchanged.

### JSON consumers return `*json.Timed` (#5677)

`SnapshotConsumer.Next`, `StreamConsumer.Next`, and `All` return `*Timed{Value, Timestamp}` instead of the raw message; `Timestamp` is a `*time.Duration`, nil when untimed.
Expand Down
2 changes: 1 addition & 1 deletion go/wrapper/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ var (
ErrVideo = ffi.ErrMoqErrorVideo
// ErrURL matches a malformed URL passed when connecting or publishing.
ErrURL = ffi.ErrMoqErrorUrl
// ErrTimeOverflow matches a timestamp that overflowed its timescale.
// ErrTimeOverflow matches a timestamp outside the supported range.
ErrTimeOverflow = ffi.ErrMoqErrorTimeOverflow
// ErrLogLevel matches an unparseable log level string passed to LogLevel.
ErrLogLevel = ffi.ErrMoqErrorLogLevel
Expand Down
11 changes: 11 additions & 0 deletions kt/moq-ffi/MIGRATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Migrating the Kotlin moq-ffi package

How to update your code for each breaking change, newest first.

## Unreleased

### Regenerate the matching bindings

Documentation on `MoqAudioProducer::write` and `finish` changes their UniFFI metadata checksums.
Regenerate the Kotlin sources and package matching native libraries, then rebuild callers.
The method signatures and behavior are unchanged.
7 changes: 7 additions & 0 deletions kt/moq/MIGRATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ How to update your code for each breaking change, newest first.
`Anchor` gains `AnchorTime`, so exhaustive `when` expressions need a branch for it.
`TrackConsumer.update` now throws `MoqException` on a time anchor an untimed track can't serve.

### Rebuild the matching raw bindings

The documentation update changes UniFFI's audio-producer method metadata checksums.
Regenerate the Kotlin sources and update the native libraries in `moq-ffi` together,
then rebuild the application; older generated guards reject the rebuilt library.
Application calls are unchanged.

### JSON consumers emit timestamps (#5677)

`values()` emits `json.Value` (`value`, plus `timestamp` as a `Duration?`) instead of a string, and `valuesAs<T>()` emits `Timed<T>(value, timestamp)`.
Expand Down
2 changes: 1 addition & 1 deletion kt/moq/src/jvmAndAndroidMain/kotlin/dev/moq/audio/Audio.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ typealias EncoderInput = uniffi.moq.MoqAudioEncoderInput
typealias EncoderOutput = uniffi.moq.MoqAudioEncoderOutput
/** The PCM layout a [Consumer] delivers, how stale a group may get, and its playout delay. */
typealias DecoderOutput = uniffi.moq.MoqAudioDecoderOutput
/** Interleaved PCM with its presentation timestamp. */
/** PCM samples in the configured layout with their presentation timestamp. */
typealias Frame = uniffi.moq.MoqAudioFrame
/** One encoded payload from an [Encoder]. */
typealias Packet = uniffi.moq.MoqAudioPacket
Expand Down
11 changes: 11 additions & 0 deletions py/moq-ffi/MIGRATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Migrating the Python moq-ffi package

How to update your code for each breaking change, newest first.

## Unreleased

### Regenerate the matching bindings

Documentation on `MoqAudioProducer::write` and `finish` changes their UniFFI metadata checksums.
Rebuild or reinstall the complete wheel so its generated Python code and native library match.
The method signatures and behavior are unchanged.
6 changes: 6 additions & 0 deletions py/moq-rs/MIGRATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ How to update your code for each breaking change, newest first.
`Anchor` gains a `TIME` variant, the group containing a presentation time.
`TrackConsumer.update` now raises on a time anchor an untimed track can't serve.

### Rebuild the matching raw bindings

The documentation update changes UniFFI's audio-producer method metadata checksums.
Rebuild or reinstall the complete `moq-ffi` wheel, keeping its generated Python code
and native library together; application calls are unchanged.

### JSON consumers yield `json.Timed` (#5677)

`json.SnapshotConsumer` and `json.StreamConsumer` yield `Timed(value, timestamp)` instead of the bare value; `timestamp` is a `timedelta`, or `None` when untimed.
Expand Down
1 change: 0 additions & 1 deletion quest/m1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ lands before the cut.
- [Exporters follow a rendition to a new track](/quest/m1/export-rendition-rebind.md) - the fMP4, TS, MKV and FLV exporters rebuild a rendition whose resolved `track` or `broadcast` changes under the same ID
- [lite-06 max sequence](/quest/m1/lite06-max-sequence.md) - group sequence 2^62-1 reaches a lite-06 subscriber or is refused loudly, instead of vanishing
- [Track live signal](/quest/m1/track-live.md) - a reader can wait for its track's feed to be live, so a player skips old cached groups while a fresh upstream subscription starts
- [Binding docs](/quest/m1/docs-bindings.md) - every public moq-ffi and moq-c item has rustdoc, carried into the generated bindings and `moq.h`

- [C++ and OBS package proof](/quest/m1/cpp-package-check.md) - the installed artifacts pass before their first release

Expand Down
22 changes: 0 additions & 22 deletions quest/m1/docs-bindings.md

This file was deleted.

Loading
Loading