Lines Matching refs:impl
92 static MPP_RET add_new_slot(FileReaderImpl* impl, FileBufSlot *slot) in add_new_slot() argument
94 mpp_assert(impl); in add_new_slot()
96 slot->index = impl->slot_cnt; in add_new_slot()
97 impl->slots[impl->slot_cnt] = slot; in add_new_slot()
98 impl->slot_cnt++; in add_new_slot()
100 if (impl->slot_cnt >= impl->slot_max) { in add_new_slot()
101 impl->slots = mpp_realloc(impl->slots, FileBufSlot*, impl->slot_max * 2); in add_new_slot()
102 if (!impl->slots) in add_new_slot()
105 impl->slot_max *= 2; in add_new_slot()
108 mpp_assert(impl->slots); in add_new_slot()
109 mpp_assert(impl->slot_cnt < impl->slot_max); in add_new_slot()
116 FileReaderImpl *impl = (FileReaderImpl*)data; in read_ivf_file() local
119 FILE *fp = impl->fp_input; in read_ivf_file()
133 impl->read_total += ivf_data_size; in read_ivf_file()
138 impl->read_total += read_size; in read_ivf_file()
139 impl->read_size = read_size; in read_ivf_file()
144 if (!data_size || read_size != data_size || feof(fp) || impl->read_total >= impl->file_size) in read_ivf_file()
156 FileReaderImpl *impl = (FileReaderImpl*)data; in read_jpeg_file() local
157 FILE *fp = impl->fp_input; in read_jpeg_file()
159 size_t buf_size = impl->file_size; in read_jpeg_file()
163 mpp_buffer_get(impl->group, &hw_buf, impl->file_size); in read_jpeg_file()
172 impl->read_total += read_size; in read_jpeg_file()
173 impl->read_size = read_size; in read_jpeg_file()
184 FileReaderImpl *impl = (FileReaderImpl*)data; in read_normal_file() local
185 FILE *fp = impl->fp_input; in read_normal_file()
187 size_t buf_size = impl->buf_size; in read_normal_file()
188 size_t size = sizeof(FileBufSlot) + buf_size + impl->stuff_size; in read_normal_file()
194 impl->read_total += read_size; in read_normal_file()
195 impl->read_size = read_size; in read_normal_file()
198 if (read_size != buf_size || feof(fp) || impl->read_total >= impl->file_size) in read_normal_file()
210 FileReaderImpl *impl = (FileReaderImpl*)data; in check_file_type() local
213 impl->file_type = FILE_IVF_TYPE; in check_file_type()
214 impl->buf_size = 0; in check_file_type()
215 impl->stuff_size = 0; in check_file_type()
216 impl->seek_base = IVF_HEADER_LENGTH; in check_file_type()
217 impl->read_func = read_ivf_file; in check_file_type()
218 impl->slot_max = 1024; /* preset 1024 file slots */ in check_file_type()
220 fseek(impl->fp_input, impl->seek_base, SEEK_SET); in check_file_type()
221 impl->read_total = impl->seek_base; in check_file_type()
226 impl->file_type = FILE_JPEG_TYPE; in check_file_type()
227 impl->buf_size = impl->file_size; in check_file_type()
228 impl->stuff_size = 0; in check_file_type()
229 impl->seek_base = 0; in check_file_type()
230 impl->read_func = read_jpeg_file; in check_file_type()
231 impl->slot_max = 1; in check_file_type()
232 mpp_buffer_group_get_internal(&impl->group, MPP_BUFFER_TYPE_ION); in check_file_type()
233 mpp_assert(impl->group); in check_file_type()
242 impl->file_type = FILE_NORMAL_TYPE; in check_file_type()
243 impl->buf_size = buf_size; in check_file_type()
244 impl->stuff_size = 256; in check_file_type()
245 impl->seek_base = 0; in check_file_type()
246 impl->read_func = read_normal_file; in check_file_type()
247 impl->slot_max = 1024; /* preset 1024 file slots */ in check_file_type()
253 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_size() local
256 if (impl) in reader_size()
257 size = impl->file_size; in reader_size()
264 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_read() local
267 if (NULL == impl || NULL == impl->slots) { in reader_read()
272 if (impl->slot_rd_idx >= impl->slot_max) { in reader_read()
273 mpp_log_f("invalid read index % max %d\n", impl->slot_rd_idx, impl->slot_max); in reader_read()
278 slot = impl->slots[impl->slot_rd_idx]; in reader_read()
279 if (slot == NULL || (impl->slot_rd_idx > impl->slot_cnt)) in reader_read()
286 impl->slot_rd_idx++; in reader_read()
293 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_index_read() local
296 if (NULL == impl || NULL == impl->slots) { in reader_index_read()
301 if (index >= (RK_S32)impl->slot_max) { in reader_index_read()
302 mpp_log_f("invalid read index % max %d\n", index, impl->slot_max); in reader_index_read()
307 slot = impl->slots[index]; in reader_index_read()
321 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_rewind() local
323 impl->slot_rd_idx = 0; in reader_rewind()
329 FileReaderImpl *impl = NULL; in reader_init() local
337 impl = mpp_calloc(FileReaderImpl, 1); in reader_init()
338 mpp_assert(impl); in reader_init()
340 impl->fp_input = fp_input; in reader_init()
342 impl->file_size = ftell(fp_input); in reader_init()
345 check_file_type(impl, file_in, type); in reader_init()
347 impl->slots = mpp_calloc(FileBufSlot*, impl->slot_max); in reader_init()
349 reader_start(impl); in reader_init()
351 *reader = impl; in reader_init()
356 FileReaderImpl *impl = (FileReaderImpl*)(reader); in reader_deinit() local
359 mpp_assert(impl); in reader_deinit()
360 reader_stop(impl); in reader_deinit()
362 if (impl->fp_input) { in reader_deinit()
363 fclose(impl->fp_input); in reader_deinit()
364 impl->fp_input = NULL; in reader_deinit()
367 for (i = 0; i < impl->slot_cnt; i++) { in reader_deinit()
368 FileBufSlot *slot = impl->slots[i]; in reader_deinit()
376 MPP_FREE(impl->slots[i]); in reader_deinit()
379 if (impl->group) { in reader_deinit()
380 mpp_buffer_group_put(impl->group); in reader_deinit()
381 impl->group = NULL; in reader_deinit()
384 MPP_FREE(impl->slots); in reader_deinit()
385 MPP_FREE(impl); in reader_deinit()
390 FileReaderImpl *impl = (FileReaderImpl*)param; in reader_worker() local
393 while (!impl->thd_stop && !eos) { in reader_worker()
394 FileBufSlot *slot = impl->read_func(impl); in reader_worker()
399 add_new_slot(impl, slot); in reader_worker()
408 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_start() local
410 impl->thd_stop = 0; in reader_start()
411 pthread_create(&impl->thd, NULL, reader_worker, impl); in reader_start()
416 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_sync() local
418 pthread_join(impl->thd, NULL); in reader_sync()
419 impl->thd_stop = 1; in reader_sync()
424 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_stop() local
426 if (MPP_BOOL_CAS(&impl->thd_stop, 0, 1)) in reader_stop()
427 pthread_join(impl->thd, NULL); in reader_stop()