newStreams
The source's MediaSource.streams as they stand from this packet on, present only on the first packet a read hands out after FFmpeg added a stream or an entry was read again at its stream's first packet, and null on every other packet (#151). It is the whole list, so a stream is new when its index is past the end of the list before, and corrected when its entry differs. A change that a decode flow read, or that the reader before this one read and never handed a packet out after, rides this reader's first packet.
The packets FFmpeg handed out, before this one, of a stream that is new in this list are held: add the stream with PacketReader.reselect before the next PacketReader.read, and that read hands them out first, so the stream arrives from its first packet. They come after this packet, although FFmpeg read them before it, which a player that queues each stream apart does not notice. Read on or seek without the stream and they are dropped, and the stream is skipped as any stream the reader does not select is. At most 16 MB of them are held, the oldest going first, which matters only when the selected streams fall silent for long enough that no packet announces the new one. A copy carries it too.
The source's MediaSource.streams as they stand from this packet on, present only on the first packet a read hands out after FFmpeg added a stream or an entry was read again at its stream's first packet, and null on every other packet (#151). It is the whole list, so a stream is new when its index is past the end of the list before, and corrected when its entry differs. A change that a decode flow read, or that the reader before this one read and never handed a packet out after, rides this reader's first packet.
The packets FFmpeg handed out, before this one, of a stream that is new in this list are held: add the stream with PacketReader.reselect before the next PacketReader.read, and that read hands them out first, so the stream arrives from its first packet. They come after this packet, although FFmpeg read them before it, which a player that queues each stream apart does not notice. Read on or seek without the stream and they are dropped, and the stream is skipped as any stream the reader does not select is. At most 16 MB of them are held, the oldest going first, which matters only when the selected streams fall silent for long enough that no packet announces the new one. A copy carries it too.
The source's MediaSource.streams as they stand from this packet on, present only on the first packet a read hands out after FFmpeg added a stream or an entry was read again at its stream's first packet, and null on every other packet (#151). It is the whole list, so a stream is new when its index is past the end of the list before, and corrected when its entry differs. A change that a decode flow read, or that the reader before this one read and never handed a packet out after, rides this reader's first packet.
The packets FFmpeg handed out, before this one, of a stream that is new in this list are held: add the stream with PacketReader.reselect before the next PacketReader.read, and that read hands them out first, so the stream arrives from its first packet. They come after this packet, although FFmpeg read them before it, which a player that queues each stream apart does not notice. Read on or seek without the stream and they are dropped, and the stream is skipped as any stream the reader does not select is. At most 16 MB of them are held, the oldest going first, which matters only when the selected streams fall silent for long enough that no packet announces the new one. A copy carries it too.
The source's MediaSource.streams as they stand from this packet on, present only on the first packet a read hands out after FFmpeg added a stream or an entry was read again at its stream's first packet, and null on every other packet (#151). It is the whole list, so a stream is new when its index is past the end of the list before, and corrected when its entry differs. A change that a decode flow read, or that the reader before this one read and never handed a packet out after, rides this reader's first packet.
The packets FFmpeg handed out, before this one, of a stream that is new in this list are held: add the stream with PacketReader.reselect before the next PacketReader.read, and that read hands them out first, so the stream arrives from its first packet. They come after this packet, although FFmpeg read them before it, which a player that queues each stream apart does not notice. Read on or seek without the stream and they are dropped, and the stream is skipped as any stream the reader does not select is. At most 16 MB of them are held, the oldest going first, which matters only when the selected streams fall silent for long enough that no packet announces the new one. A copy carries it too.
The source's MediaSource.streams as they stand from this packet on, present only on the first packet a read hands out after FFmpeg added a stream or an entry was read again at its stream's first packet, and null on every other packet (#151). It is the whole list, so a stream is new when its index is past the end of the list before, and corrected when its entry differs. A change that a decode flow read, or that the reader before this one read and never handed a packet out after, rides this reader's first packet.
The packets FFmpeg handed out, before this one, of a stream that is new in this list are held: add the stream with PacketReader.reselect before the next PacketReader.read, and that read hands them out first, so the stream arrives from its first packet. They come after this packet, although FFmpeg read them before it, which a player that queues each stream apart does not notice. Read on or seek without the stream and they are dropped, and the stream is skipped as any stream the reader does not select is. At most 16 MB of them are held, the oldest going first, which matters only when the selected streams fall silent for long enough that no packet announces the new one. A copy carries it too.