Lines Matching refs:cdxl
104 CDXLDemuxContext *cdxl = s->priv_data; in cdxl_read_header() local
106 cdxl->read_chunk = 0; in cdxl_read_header()
107 cdxl->video_stream_index = -1; in cdxl_read_header()
108 cdxl->audio_stream_index = -1; in cdxl_read_header()
110 cdxl->filesize = avio_size(s->pb); in cdxl_read_header()
119 CDXLDemuxContext *cdxl = s->priv_data; in cdxl_read_packet() local
128 if (!cdxl->read_chunk) { in cdxl_read_packet()
129 cdxl->pos = avio_tell(pb); in cdxl_read_packet()
130 if (avio_read(pb, cdxl->header, CDXL_HEADER_SIZE) != CDXL_HEADER_SIZE) in cdxl_read_packet()
133 if (cdxl->header[0] > 1) { in cdxl_read_packet()
138 type = cdxl->header[0]; in cdxl_read_packet()
139 channels = 1 + !!(cdxl->header[1] & 0x10); in cdxl_read_packet()
140 format = cdxl->header[1] & 0xE0; in cdxl_read_packet()
141 current_size = AV_RB32(&cdxl->header[2]); in cdxl_read_packet()
142 width = AV_RB16(&cdxl->header[14]); in cdxl_read_packet()
143 height = AV_RB16(&cdxl->header[16]); in cdxl_read_packet()
144 palette_size = AV_RB16(&cdxl->header[20]); in cdxl_read_packet()
145 audio_size = AV_RB16(&cdxl->header[22]) * channels; in cdxl_read_packet()
146 cdxl->srate = AV_RB16(&cdxl->header[24]); in cdxl_read_packet()
147 if (!cdxl->srate && audio_size) in cdxl_read_packet()
148 cdxl->srate = cdxl->sample_rate; in cdxl_read_packet()
149 cdxl->frate.num = cdxl->header[26]; in cdxl_read_packet()
150 cdxl->frate.den = 1; in cdxl_read_packet()
151 if (cdxl->header[19] == 0 || in cdxl_read_packet()
152 FFALIGN(width, 16) * (uint64_t)height * cdxl->header[19] > INT_MAX) in cdxl_read_packet()
155 image_size = width * height * cdxl->header[19] / 8; in cdxl_read_packet()
157 image_size = FFALIGN(width, 16) * height * cdxl->header[19] / 8; in cdxl_read_packet()
166 if (!cdxl->frate.num && audio_size && cdxl->srate > 0) { in cdxl_read_packet()
167 cdxl->frate = (AVRational){ cdxl->srate, audio_size }; in cdxl_read_packet()
168 } else if (!cdxl->frate.num) { in cdxl_read_packet()
169 cdxl->frate = cdxl->frame_rate; in cdxl_read_packet()
172 if (cdxl->read_chunk && audio_size) { in cdxl_read_packet()
173 if (cdxl->audio_stream_index == -1) { in cdxl_read_packet()
183 st->codecpar->sample_rate= cdxl->srate; in cdxl_read_packet()
185 cdxl->audio_stream_index = st->index; in cdxl_read_packet()
186 avpriv_set_pts_info(st, 64, 1, cdxl->srate); in cdxl_read_packet()
187 if (current_size && cdxl->filesize > 0 && audio_size > 0) in cdxl_read_packet()
188 st->duration = (cdxl->filesize / current_size) * audio_size / channels; in cdxl_read_packet()
194 pkt->stream_index = cdxl->audio_stream_index; in cdxl_read_packet()
195 pkt->pos = cdxl->pos; in cdxl_read_packet()
197 cdxl->read_chunk = 0; in cdxl_read_packet()
199 if (cdxl->video_stream_index == -1) { in cdxl_read_packet()
210 if (current_size && cdxl->filesize > 0) in cdxl_read_packet()
211 st->nb_frames = cdxl->filesize / current_size; in cdxl_read_packet()
213 cdxl->video_stream_index = st->index; in cdxl_read_packet()
214 avpriv_set_pts_info(st, 64, cdxl->frate.den, cdxl->frate.num); in cdxl_read_packet()
219 memcpy(pkt->data, cdxl->header, CDXL_HEADER_SIZE); in cdxl_read_packet()
225 pkt->stream_index = cdxl->video_stream_index; in cdxl_read_packet()
227 pkt->pos = cdxl->pos; in cdxl_read_packet()
229 cdxl->read_chunk = audio_size; in cdxl_read_packet()
232 if (!cdxl->read_chunk) in cdxl_read_packet()
240 CDXLDemuxContext *cdxl = s->priv_data; in read_seek() local
242 cdxl->read_chunk = 0; in read_seek()