Lines Matching defs:atom
41 static int read_atom(AVFormatContext *s, Atom *atom)
43 atom->offset = avio_tell(s->pb);
44 atom->size = avio_rb32(s->pb);
45 if (atom->size < 8)
47 atom->tag = avio_rl32(s->pb);
48 av_log(s, AV_LOG_TRACE, "atom %u %.4s offset %#"PRIx64"\n",
49 atom->size, (char*)&atom->tag, atom->offset);
50 return atom->size;
116 static int r3d_read_rdvo(AVFormatContext *s, Atom *atom)
122 r3d->video_offsets_count = (atom->size - 8) / 4;
165 Atom atom;
168 if (read_atom(s, &atom) < 0) {
169 av_log(s, AV_LOG_ERROR, "error reading atom\n");
172 if (atom.tag == MKTAG('R','E','D','1')) {
174 av_log(s, AV_LOG_ERROR, "error parsing 'red1' atom\n");
178 av_log(s, AV_LOG_ERROR, "could not find 'red1' atom\n");
193 if (read_atom(s, &atom) < 0)
194 av_log(s, AV_LOG_ERROR, "error reading end atom\n");
196 if (atom.tag != MKTAG('R','E','O','B') &&
197 atom.tag != MKTAG('R','E','O','F') &&
198 atom.tag != MKTAG('R','E','O','S'))
205 if (read_atom(s, &atom) < 0)
206 av_log(s, AV_LOG_ERROR, "error reading 'rdvo' atom\n");
207 if (atom.tag == MKTAG('R','D','V','O')) {
208 if (r3d_read_rdvo(s, &atom) < 0)
209 av_log(s, AV_LOG_ERROR, "error parsing 'rdvo' atom\n");
218 static int r3d_read_redv(AVFormatContext *s, AVPacket *pkt, Atom *atom)
254 tmp = atom->size - 8 - (avio_tell(s->pb) - pos);
273 static int r3d_read_reda(AVFormatContext *s, AVPacket *pkt, Atom *atom)
318 size = atom->size - 8 - (avio_tell(s->pb) - pos);
341 Atom atom;
345 if (read_atom(s, &atom) < 0) {
349 switch (atom.tag) {
353 if (!(err = r3d_read_redv(s, pkt, &atom)))
361 if (!(err = r3d_read_reda(s, pkt, &atom)))
366 avio_skip(s->pb, atom.size-8);