Lines Matching refs:impl

84 static MPP_RET add_new_slot(FileReaderImpl* impl, FileBufSlot *slot)  in add_new_slot()  argument
86 mpp_assert(impl); in add_new_slot()
88 slot->index = impl->slot_cnt; in add_new_slot()
89 impl->slots[impl->slot_cnt] = slot; in add_new_slot()
90 impl->slot_cnt++; in add_new_slot()
92 if (impl->slot_cnt >= impl->slot_max) { in add_new_slot()
93 impl->slots = mpp_realloc(impl->slots, FileBufSlot*, impl->slot_max * 2); in add_new_slot()
94 if (!impl->slots) in add_new_slot()
97 impl->slot_max *= 2; in add_new_slot()
100 mpp_assert(impl->slots); in add_new_slot()
101 mpp_assert(impl->slot_cnt < impl->slot_max); in add_new_slot()
108 FileReaderImpl *impl = (FileReaderImpl*)data; in read_ivf_file() local
111 FILE *fp = impl->fp_input; in read_ivf_file()
125 impl->read_total += ivf_data_size; in read_ivf_file()
130 impl->read_total += read_size; in read_ivf_file()
131 impl->read_size = read_size; in read_ivf_file()
136 if (!data_size || read_size != data_size || feof(fp) || impl->read_total >= impl->file_size) in read_ivf_file()
148 FileReaderImpl *impl = (FileReaderImpl*)data; in read_jpeg_file() local
149 FILE *fp = impl->fp_input; in read_jpeg_file()
151 size_t buf_size = impl->file_size; in read_jpeg_file()
155 mpp_buffer_get(impl->group, &hw_buf, impl->file_size); in read_jpeg_file()
164 impl->read_total += read_size; in read_jpeg_file()
165 impl->read_size = read_size; in read_jpeg_file()
176 FileReaderImpl *impl = (FileReaderImpl*)data; in read_normal_file() local
177 FILE *fp = impl->fp_input; in read_normal_file()
179 size_t buf_size = impl->buf_size; in read_normal_file()
180 size_t size = sizeof(FileBufSlot) + buf_size + impl->stuff_size; in read_normal_file()
186 impl->read_total += read_size; in read_normal_file()
187 impl->read_size = read_size; in read_normal_file()
190 if (read_size != buf_size || feof(fp) || impl->read_total >= impl->file_size) in read_normal_file()
202 FileReaderImpl *impl = (FileReaderImpl*)data; in check_file_type() local
205 impl->file_type = FILE_IVF_TYPE; in check_file_type()
206 impl->buf_size = 0; in check_file_type()
207 impl->stuff_size = 0; in check_file_type()
208 impl->seek_base = IVF_HEADER_LENGTH; in check_file_type()
209 impl->read_func = read_ivf_file; in check_file_type()
210 impl->slot_max = 1024; /* preset 1024 file slots */ in check_file_type()
212 fseek(impl->fp_input, impl->seek_base, SEEK_SET); in check_file_type()
213 impl->read_total = impl->seek_base; in check_file_type()
218 impl->file_type = FILE_JPEG_TYPE; in check_file_type()
219 impl->buf_size = impl->file_size; in check_file_type()
220 impl->stuff_size = 0; in check_file_type()
221 impl->seek_base = 0; in check_file_type()
222 impl->read_func = read_jpeg_file; in check_file_type()
223 impl->slot_max = 1; in check_file_type()
224 mpp_buffer_group_get_internal(&impl->group, MPP_BUFFER_TYPE_ION); in check_file_type()
225 mpp_assert(impl->group); in check_file_type()
234 impl->file_type = FILE_NORMAL_TYPE; in check_file_type()
235 impl->buf_size = buf_size; in check_file_type()
236 impl->stuff_size = 256; in check_file_type()
237 impl->seek_base = 0; in check_file_type()
238 impl->read_func = read_normal_file; in check_file_type()
239 impl->slot_max = 1024; /* preset 1024 file slots */ in check_file_type()
245 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_size() local
248 if (impl) in reader_size()
249 size = impl->file_size; in reader_size()
256 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_read() local
259 if (NULL == impl || NULL == impl->slots) { in reader_read()
264 if (impl->slot_rd_idx >= impl->slot_max) { in reader_read()
265 mpp_log_f("invalid read index % max %d\n", impl->slot_rd_idx, impl->slot_max); in reader_read()
270 slot = impl->slots[impl->slot_rd_idx]; in reader_read()
271 if (slot == NULL || (impl->slot_rd_idx > impl->slot_cnt)) in reader_read()
278 impl->slot_rd_idx++; in reader_read()
285 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_index_read() local
288 if (NULL == impl || NULL == impl->slots) { in reader_index_read()
293 if (index >= (RK_S32)impl->slot_max) { in reader_index_read()
294 mpp_log_f("invalid read index % max %d\n", index, impl->slot_max); in reader_index_read()
299 slot = impl->slots[index]; in reader_index_read()
313 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_rewind() local
315 impl->slot_rd_idx = 0; in reader_rewind()
321 FileReaderImpl *impl = NULL; in reader_init() local
329 impl = mpp_calloc(FileReaderImpl, 1); in reader_init()
330 mpp_assert(impl); in reader_init()
332 impl->fp_input = fp_input; in reader_init()
334 impl->file_size = ftell(fp_input); in reader_init()
337 check_file_type(impl, file_in, type); in reader_init()
339 impl->slots = mpp_calloc(FileBufSlot*, impl->slot_max); in reader_init()
341 reader_start(impl); in reader_init()
343 *reader = impl; in reader_init()
348 FileReaderImpl *impl = (FileReaderImpl*)(reader); in reader_deinit() local
351 mpp_assert(impl); in reader_deinit()
352 reader_stop(impl); in reader_deinit()
354 if (impl->fp_input) { in reader_deinit()
355 fclose(impl->fp_input); in reader_deinit()
356 impl->fp_input = NULL; in reader_deinit()
359 for (i = 0; i < impl->slot_cnt; i++) { in reader_deinit()
360 FileBufSlot *slot = impl->slots[i]; in reader_deinit()
368 MPP_FREE(impl->slots[i]); in reader_deinit()
371 if (impl->group) { in reader_deinit()
372 mpp_buffer_group_put(impl->group); in reader_deinit()
373 impl->group = NULL; in reader_deinit()
376 MPP_FREE(impl->slots); in reader_deinit()
377 MPP_FREE(impl); in reader_deinit()
382 FileReaderImpl *impl = (FileReaderImpl*)param; in reader_worker() local
385 while (!impl->thd_stop && !eos) { in reader_worker()
386 FileBufSlot *slot = impl->read_func(impl); in reader_worker()
391 add_new_slot(impl, slot); in reader_worker()
400 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_start() local
402 impl->thd_stop = 0; in reader_start()
403 pthread_create(&impl->thd, NULL, reader_worker, impl); in reader_start()
408 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_sync() local
410 pthread_join(impl->thd, NULL); in reader_sync()
411 impl->thd_stop = 1; in reader_sync()
416 FileReaderImpl *impl = (FileReaderImpl*)reader; in reader_stop() local
418 if (MPP_BOOL_CAS(&impl->thd_stop, 0, 1)) in reader_stop()
419 pthread_join(impl->thd, NULL); in reader_stop()
770 DecBufMgrImpl *impl = NULL; in dec_buf_mgr_init() local
774 impl = mpp_calloc(DecBufMgrImpl, 1); in dec_buf_mgr_init()
775 if (impl) { in dec_buf_mgr_init()
781 *mgr = impl; in dec_buf_mgr_init()
789 DecBufMgrImpl *impl = (DecBufMgrImpl *)mgr; in dec_buf_mgr_deinit() local
791 if (NULL == impl) in dec_buf_mgr_deinit()
795 if (impl->group) { in dec_buf_mgr_deinit()
796 mpp_buffer_group_put(impl->group); in dec_buf_mgr_deinit()
797 impl->group = NULL; in dec_buf_mgr_deinit()
801 if (impl->buf_count && impl->bufs) { in dec_buf_mgr_deinit()
804 for (i = 0; i < impl->buf_count; i++) { in dec_buf_mgr_deinit()
805 if (impl->bufs[i]) { in dec_buf_mgr_deinit()
806 mpp_buffer_put(impl->bufs[i]); in dec_buf_mgr_deinit()
807 impl->bufs[i] = NULL; in dec_buf_mgr_deinit()
811 MPP_FREE(impl->bufs); in dec_buf_mgr_deinit()
814 MPP_FREE(impl); in dec_buf_mgr_deinit()
819 DecBufMgrImpl *impl = (DecBufMgrImpl *)mgr; in dec_buf_mgr_setup() local
822 if (!impl) in dec_buf_mgr_setup()
826 if (impl->group) { in dec_buf_mgr_setup()
827 if (mode != impl->buf_mode) { in dec_buf_mgr_setup()
829 mpp_buffer_group_put(impl->group); in dec_buf_mgr_setup()
830 impl->group = NULL; in dec_buf_mgr_setup()
833 mpp_buffer_group_clear(impl->group); in dec_buf_mgr_setup()
837 if (impl->bufs) { in dec_buf_mgr_setup()
840 for (i = 0; i < impl->buf_count; i++) { in dec_buf_mgr_setup()
841 if (impl->bufs[i]) { in dec_buf_mgr_setup()
842 mpp_buffer_put(impl->bufs[i]); in dec_buf_mgr_setup()
843 impl->bufs[i] = NULL; in dec_buf_mgr_setup()
847 MPP_FREE(impl->bufs); in dec_buf_mgr_setup()
854 if (NULL == impl->group) { in dec_buf_mgr_setup()
855 ret = mpp_buffer_group_get_internal(&impl->group, MPP_BUFFER_TYPE_ION); in dec_buf_mgr_setup()
862 ret = mpp_buffer_group_limit_config(impl->group, size, count); in dec_buf_mgr_setup()
869 mpp_assert(NULL == impl->group); in dec_buf_mgr_setup()
876 impl->bufs = mpp_calloc(MppBuffer, count); in dec_buf_mgr_setup()
877 if (!impl->bufs) { in dec_buf_mgr_setup()
883 if (NULL == impl->group) { in dec_buf_mgr_setup()
884 ret = mpp_buffer_group_get_external(&impl->group, MPP_BUFFER_TYPE_ION); in dec_buf_mgr_setup()
901 ret = mpp_buffer_get(NULL, &impl->bufs[i], size); in dec_buf_mgr_setup()
902 if (ret || NULL == impl->bufs[i]) { in dec_buf_mgr_setup()
908 commit.ptr = mpp_buffer_get_ptr(impl->bufs[i]); in dec_buf_mgr_setup()
909 commit.fd = mpp_buffer_get_fd(impl->bufs[i]); in dec_buf_mgr_setup()
911 ret = mpp_buffer_commit(impl->group, &commit); in dec_buf_mgr_setup()
924 dec_buf_mgr_deinit(impl); in dec_buf_mgr_setup()
925 impl = NULL; in dec_buf_mgr_setup()
927 impl->buf_count = count; in dec_buf_mgr_setup()
928 impl->buf_size = size; in dec_buf_mgr_setup()
929 impl->buf_mode = mode; in dec_buf_mgr_setup()
932 return impl ? impl->group : NULL; in dec_buf_mgr_setup()