Lines Matching refs:pb
85 static int resync(AVIOContext *pb)
89 int b = avio_r8(pb);
92 if (avio_feof(pb))
98 static int gif_skip_subblocks(AVIOContext *pb)
102 while (0x00 != (sb_size = avio_r8(pb))) {
103 if ((ret = avio_skip(pb, sb_size)) < 0)
113 AVIOContext *pb = s->pb;
118 if ((ret = resync(pb)) < 0)
122 width = avio_rl16(pb);
123 height = avio_rl16(pb);
124 flags = avio_r8(pb);
125 avio_skip(pb, 1);
126 n = avio_r8(pb);
136 avio_skip(pb, 3 * (1 << ((flags & 0x07) + 1)));
138 while ((type = avio_r8(pb)) != GIF_TRAILER) {
139 if (avio_feof(pb))
142 int subtype = avio_r8(pb);
148 while ((block_size = avio_r8(pb)) != 0) {
149 avio_read_to_bprint(pb, &bp, block_size);
154 int block_size = avio_r8(pb);
159 avio_skip(pb, 1);
160 delay = avio_rl16(pb);
165 avio_skip(pb, 1);
167 avio_skip(pb, block_size);
169 gif_skip_subblocks(pb);
171 gif_skip_subblocks(pb);
174 avio_skip(pb, 8);
175 flags = avio_r8(pb);
177 avio_skip(pb, 3 * (1 << ((flags & 0x07) + 1)));
178 avio_skip(pb, 1);
179 gif_skip_subblocks(pb);
202 if (avio_seek(pb, 0, SEEK_SET) != 0)
211 AVIOContext *pb = s->pb;
212 int sb_size, ext_label = avio_r8(pb);
216 if ((sb_size = avio_r8(pb)) < 4) {
222 if ((ret = avio_skip(pb, 1)) < 0)
225 gdc->delay = avio_rl16(pb);
232 if ((ret = avio_skip(pb, sb_size - 3)) < 0 )
237 sb_size = avio_r8(pb);
238 ret = avio_read(pb, data, sb_size);
243 sb_size = avio_r8(pb);
244 ret = avio_read(pb, data, sb_size);
258 if ((ret = gif_skip_subblocks(pb)) < 0)
267 AVIOContext *pb = s->pb;
270 int64_t frame_start = avio_tell(pb), frame_end;
273 if ((ret = avio_read(pb, buf, 6)) == 6) {
285 if ((ret = avio_skip(pb, 4)) < 0)
288 packed_fields = avio_r8(pb);
291 if ((ret = avio_skip(pb, 2)) < 0)
298 if ((ret = avio_skip(pb, ct_size)) < 0)
302 avio_seek(pb, -ret, SEEK_CUR);
306 while (GIF_TRAILER != (block_label = avio_r8(pb)) && !avio_feof(pb)) {
312 if ((ret = avio_skip(pb, 8)) < 0)
315 packed_fields = avio_r8(pb);
321 if ((ret = avio_skip(pb, ct_size)) < 0)
326 if (avio_r8(pb) < 1) {
331 if ((ret = gif_skip_subblocks(pb)) < 0)
334 frame_end = avio_tell(pb);
336 if (avio_seek(pb, frame_start, SEEK_SET) != frame_start)
339 ret = av_get_packet(pb, pkt, frame_end - frame_start);
362 avio_seek(pb, frame_start, SEEK_SET);
363 if ((ret = resync(pb)) < 0)
365 frame_start = avio_tell(pb) - 6;
377 if (!gdc->ignore_loop && (block_label == GIF_TRAILER || avio_feof(pb))
379 return avio_seek(pb, 0, SEEK_SET);