send
Offers packet, or null to start the decoder drain.
A packet belonging to a different stream is REFUSED rather than decoded. Feeding one used to reach FFmpeg, which answered INVALIDDATA, which every backend swallowed as consumed, so the input vanished and nothing said why. The check is by stream index, which catches the ordinary mistake of routing a packet to the wrong decoder; it cannot catch a packet from a DIFFERENT source that happens to share the index, which needs source-scoped packet handles and is a later change.
Return
true when consumed; false when output must be drained before retrying the same packet
Throws
when packet is closed or belongs to another stream
Offers packet, or null to start the decoder drain.
A packet belonging to a different stream is REFUSED rather than decoded. Feeding one used to reach FFmpeg, which answered INVALIDDATA, which every backend swallowed as consumed, so the input vanished and nothing said why. The check is by stream index, which catches the ordinary mistake of routing a packet to the wrong decoder; it cannot catch a packet from a DIFFERENT source that happens to share the index, which needs source-scoped packet handles and is a later change.
Return
true when consumed; false when output must be drained before retrying the same packet
Throws
when packet is closed or belongs to another stream
Offers a packet, or null to begin the end-of-stream drain.
A closed packet is rejected. Its payload is gone, so sending it would hand the decoder a dangling pointer, and a queue that closed a packet it still owed the decoder is a bug worth hearing about at the call that made it rather than as corrupt output later.
Return
true when the packet was consumed. False means the decoder's output queue is full: call receive until it returns null, then offer this same packet again.
Offers packet, or null to start the decoder drain.
A packet belonging to a different stream is REFUSED rather than decoded. Feeding one used to reach FFmpeg, which answered INVALIDDATA, which every backend swallowed as consumed, so the input vanished and nothing said why. The check is by stream index, which catches the ordinary mistake of routing a packet to the wrong decoder; it cannot catch a packet from a DIFFERENT source that happens to share the index, which needs source-scoped packet handles and is a later change.
Return
true when consumed; false when output must be drained before retrying the same packet
Throws
when packet is closed or belongs to another stream
Offers packet, or null to start the decoder drain.
A packet belonging to a different stream is REFUSED rather than decoded. Feeding one used to reach FFmpeg, which answered INVALIDDATA, which every backend swallowed as consumed, so the input vanished and nothing said why. The check is by stream index, which catches the ordinary mistake of routing a packet to the wrong decoder; it cannot catch a packet from a DIFFERENT source that happens to share the index, which needs source-scoped packet handles and is a later change.
Return
true when consumed; false when output must be drained before retrying the same packet
Throws
when packet is closed or belongs to another stream