Lines Matching refs:anm
63 static int find_record(const AnmDemuxContext *anm, int record) in find_record() argument
67 if (record >= anm->nb_records) in find_record()
71 const Page *p = &anm->pt[i]; in find_record()
81 AnmDemuxContext *anm = s->priv_data; in read_header() local
92 anm->nb_pages = avio_rl16(pb); in read_header()
93 anm->nb_records = avio_rl32(pb); in read_header()
95 anm->page_table_offset = avio_rl16(pb); in read_header()
114 anm->nb_records = FFMAX(anm->nb_records - 1, 0); in read_header()
140 ret = avio_seek(pb, anm->page_table_offset, SEEK_SET); in read_header()
145 Page *p = &anm->pt[i]; in read_header()
152 anm->page = find_record(anm, 0); in read_header()
153 if (anm->page < 0) { in read_header()
154 return anm->page; in read_header()
157 anm->record = -1; in read_header()
168 AnmDemuxContext *anm = s->priv_data; in read_packet() local
176 if (anm->page < 0) in read_packet()
177 return anm->page; in read_packet()
180 p = &anm->pt[anm->page]; in read_packet()
183 if (anm->record < 0) { in read_packet()
184 avio_seek(pb, anm->page_table_offset + MAX_PAGES*6 + (anm->page<<16), SEEK_SET); in read_packet()
186 anm->record = 0; in read_packet()
191 if (anm->record >= p->nb_records) { in read_packet()
192 anm->page = find_record(anm, p->base_record + p->nb_records); in read_packet()
193 if (anm->page < 0) in read_packet()
194 return anm->page; in read_packet()
195 anm->record = -1; in read_packet()
201 avio_seek(pb, anm->page_table_offset + MAX_PAGES*6 + (anm->page<<16) + in read_packet()
202 8 + anm->record * 2, SEEK_SET); in read_packet()
210 if (p->base_record + anm->record == 0) in read_packet()
213 anm->record++; in read_packet()