Lines Matching full:stream
6 /// \brief Handling of .xz Indexes and some other Stream information
31 /// Uncompressed start offset of this Stream (relative to the
33 /// of the Stream)
36 /// Compressed start offset of this Stream or Block
75 /// Number of Blocks in this Stream before this group.
85 /// to the beginning of the Stream. This makes it possible to
91 /// Block. The total encoded size of the Blocks in the Stream
93 /// the Stream.
111 /// Number of this Stream (first one is 1)
114 /// Total number of Blocks before this Stream
117 /// Record groups of this Stream are stored in a tree.
124 /// Number of Records in this Stream
127 /// Size of the List of Records field in this Stream. This is used
129 /// field and thus the total size of the Stream.
132 /// Stream Flags of this Stream. This is meaningful only if
133 /// the Stream Flags have been told us with lzma_index_stream_flags().
135 /// that the Stream Flags are unknown.
138 /// Amount of Stream Padding after this Stream. This defaults to
146 /// AVL-tree containing the Stream(s). Often there is just one
147 /// Stream, but using a tree keeps lookups fast even when there
151 /// Uncompressed size of all the Blocks in the Stream(s)
154 /// Total size of all the Blocks in the Stream(s)
161 /// lzma_index were packed into a single Stream (makes it simpler to
162 /// take many .xz files and combine them into a single Stream).
165 /// Backward Size that is stored into Stream Footer.
174 /// as set by lzma_index_stream_flags(). The bit of the last Stream
338 /// Allocate and initialize a new Stream using the given base offsets.
368 /// Free the memory allocated for a Stream and its Record groups.
453 // Amount of memory needed for each Stream base structures. in lzma_index_memusage()
454 // We assume that every Stream has at least one Block and in lzma_index_memusage()
528 // Stream Header + Blocks + Index + Stream Footer in lzma_index_stream_size()
540 // Earlier Streams and Stream Paddings + Stream Header in index_file_size()
541 // + Blocks + Index + Stream Footer + Stream Padding in index_file_size()
583 // Get the type of the Check of the last Stream too. in lzma_index_checks()
606 // Validate the Stream Flags. in lzma_index_stream_flags()
706 // Add the new group to the Stream. in lzma_index_append()
742 /// used to fix the Stream numbering.
745 /// Destination index' Stream tree
751 /// Add the Stream nodes from the source index to dest using recursion.
851 // dest->checks includes the check types of all except the last Stream in lzma_index_cat()
852 // in dest. Set the bit for the check type of the last Stream now so in lzma_index_cat()
853 // that it won't get lost when Stream(s) from src are appended to dest. in lzma_index_cat()
857 // of each Stream from src. in lzma_index_cat()
889 // Allocate and initialize a new Stream. in index_dup_stream()
936 // Add the group to the new Stream. in index_dup_stream()
946 // Allocate the base structure (no initial Stream). in lzma_index_dup()
999 const index_stream *stream = iter->internal[ITER_STREAM].p; in iter_set_info() local
1008 assert(stream->groups.root == NULL); in iter_set_info()
1011 } else if (i->streams.rightmost != &stream->node in iter_set_info()
1012 || stream->groups.rightmost != &group->node) { in iter_set_info()
1016 } else if (stream->groups.leftmost != &group->node) { in iter_set_info()
1017 // The group isn't the only group in the Stream, thus we in iter_set_info()
1020 assert(stream->groups.root != &group->node); in iter_set_info()
1026 // The Stream has only one group. in iter_set_info()
1027 assert(stream->groups.root == &group->node); in iter_set_info()
1033 // NOTE: lzma_index_iter.stream.number is lzma_vli but we use uint32_t in iter_set_info()
1035 iter->stream.number = stream->number; in iter_set_info()
1036 iter->stream.block_count = stream->record_count; in iter_set_info()
1037 iter->stream.compressed_offset = stream->node.compressed_base; in iter_set_info()
1038 iter->stream.uncompressed_offset = stream->node.uncompressed_base; in iter_set_info()
1040 // iter->stream.flags will be NULL if the Stream Flags haven't been in iter_set_info()
1042 iter->stream.flags = stream->stream_flags.version == UINT32_MAX in iter_set_info()
1043 ? NULL : &stream->stream_flags; in iter_set_info()
1044 iter->stream.padding = stream->stream_padding; in iter_set_info()
1046 if (stream->groups.rightmost == NULL) { in iter_set_info()
1047 // Stream has no Blocks. in iter_set_info()
1048 iter->stream.compressed_size = index_size(0, 0) in iter_set_info()
1050 iter->stream.uncompressed_size = 0; in iter_set_info()
1053 stream->groups.rightmost); in iter_set_info()
1055 // Stream Header + Stream Footer + Index + Blocks in iter_set_info()
1056 iter->stream.compressed_size = 2 * LZMA_STREAM_HEADER_SIZE in iter_set_info()
1057 + index_size(stream->record_count, in iter_set_info()
1058 stream->index_list_size) in iter_set_info()
1060 iter->stream.uncompressed_size in iter_set_info()
1067 + stream->block_number_base; in iter_set_info()
1090 + iter->stream.compressed_offset; in iter_set_info()
1093 + iter->stream.uncompressed_offset; in iter_set_info()
1128 const index_stream *stream = iter->internal[ITER_STREAM].p; in lzma_index_iter_next() local
1132 // If we are being asked for the next Stream, leave group to NULL in lzma_index_iter_next()
1133 // so that the rest of the this function thinks that this Stream in lzma_index_iter_next()
1134 // has no groups and will thus go to the next Stream. in lzma_index_iter_next()
1149 stream->groups.leftmost); in lzma_index_iter_next()
1155 if (stream == NULL) { in lzma_index_iter_next()
1157 // Locate the first Stream. in lzma_index_iter_next()
1158 stream = (const index_stream *)(i->streams.leftmost); in lzma_index_iter_next()
1163 while (stream->groups.leftmost == NULL) { in lzma_index_iter_next()
1164 stream = index_tree_next(&stream->node); in lzma_index_iter_next()
1165 if (stream == NULL) in lzma_index_iter_next()
1170 // Start from the first Record in the Stream. in lzma_index_iter_next()
1171 group = (const index_group *)(stream->groups.leftmost); in lzma_index_iter_next()
1179 // This group has no more Records or this Stream has in lzma_index_iter_next()
1183 // If group is not NULL, this Stream has at least one Block in lzma_index_iter_next()
1189 // This Stream has no more Records. Find the next in lzma_index_iter_next()
1190 // Stream. If we are being asked to return information in lzma_index_iter_next()
1193 stream = index_tree_next(&stream->node); in lzma_index_iter_next()
1194 if (stream == NULL) in lzma_index_iter_next()
1197 && stream->groups.leftmost == NULL); in lzma_index_iter_next()
1200 stream->groups.leftmost); in lzma_index_iter_next()
1217 iter->internal[ITER_STREAM].p = stream; in lzma_index_iter_next()
1236 // Locate the Stream containing the target offset. in lzma_index_iter_locate()
1237 const index_stream *stream = index_tree_locate(&i->streams, target); in lzma_index_iter_locate() local
1238 assert(stream != NULL); in lzma_index_iter_locate()
1239 target -= stream->node.uncompressed_base; in lzma_index_iter_locate()
1242 const index_group *group = index_tree_locate(&stream->groups, target); in lzma_index_iter_locate()
1261 iter->internal[ITER_STREAM].p = stream; in lzma_index_iter_locate()