Lines Matching refs:impl

38 #define slot_assert(impl, cond) do {                                    \  argument
40 dump_slots(impl); \
282 static void prepare_info_set_legacy(MppBufSlotsImpl *impl, MppFrame frame, in prepare_info_set_legacy() argument
294 RK_U32 coded_width = (impl->hal_width_align) ? in prepare_info_set_legacy()
295 (impl->hal_width_align(width)) : width; in prepare_info_set_legacy()
298 (impl->hal_hor_align(codec_hor_stride)) : in prepare_info_set_legacy()
299 (impl->hal_hor_align(coded_width * depth >> 3)); in prepare_info_set_legacy()
301 (impl->hal_ver_align(codec_ver_stride)) : in prepare_info_set_legacy()
302 (impl->hal_ver_align(height)); in prepare_info_set_legacy()
368 size *= impl->numerator; in prepare_info_set_legacy()
369 size /= impl->denominator; in prepare_info_set_legacy()
370 … size = impl->hal_len_align ? (RK_S32)impl->hal_len_align(hal_hor_stride * hal_ver_stride) : size; in prepare_info_set_legacy()
379 static void prepare_info_set_by_sys_cfg(MppBufSlotsImpl *impl, MppFrame frame, in prepare_info_set_by_sys_cfg() argument
389 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:enable", 1); in prepare_info_set_by_sys_cfg()
390 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:type", impl->coding_type); in prepare_info_set_by_sys_cfg()
391 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:fmt_codec", fmt & MPP_FRAME_FMT_MASK); in prepare_info_set_by_sys_cfg()
392 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:fmt_fbc", fmt & MPP_FRAME_FBC_MASK); in prepare_info_set_by_sys_cfg()
393 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:fmt_hdr", fmt & MPP_FRAME_HDR_MASK); in prepare_info_set_by_sys_cfg()
394 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:width", width); in prepare_info_set_by_sys_cfg()
395 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:height", height); in prepare_info_set_by_sys_cfg()
396 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:h_stride_by_byte", codec_hor_stride); in prepare_info_set_by_sys_cfg()
397 mpp_sys_cfg_set_u32(impl->sys_cfg, "dec_buf_chk:v_stride", codec_ver_stride); in prepare_info_set_by_sys_cfg()
400 mpp_sys_cfg_ioctl(impl->sys_cfg); in prepare_info_set_by_sys_cfg()
402 mpp_sys_cfg_get_u32(impl->sys_cfg, "dec_buf_chk:h_stride_by_byte", &info_set->h_stride_by_byte); in prepare_info_set_by_sys_cfg()
403 … mpp_sys_cfg_get_u32(impl->sys_cfg, "dec_buf_chk:h_stride_by_pixel", &info_set->h_stride_by_pixel); in prepare_info_set_by_sys_cfg()
404 mpp_sys_cfg_get_u32(impl->sys_cfg, "dec_buf_chk:v_stride", &info_set->v_stride); in prepare_info_set_by_sys_cfg()
405 mpp_sys_cfg_get_u32(impl->sys_cfg, "dec_buf_chk:size_total", &info_set->size_total); in prepare_info_set_by_sys_cfg()
410 static void generate_info_set(MppBufSlotsImpl *impl, MppFrame frame, RK_U32 force_def_align) in generate_info_set() argument
421 prepare_info_set_legacy(impl, frame, &legacy_info_set, force_def_align); in generate_info_set()
422 prepare_info_set_by_sys_cfg(impl, frame, &sys_cfg_info_set); in generate_info_set()
424 mpp_frame_set_width(impl->info_set, width); in generate_info_set()
425 mpp_frame_set_height(impl->info_set, height); in generate_info_set()
426 mpp_frame_set_fmt(impl->info_set, fmt); in generate_info_set()
428 mpp_frame_set_hor_stride(impl->info_set, info_set_ptr->h_stride_by_byte); in generate_info_set()
429 mpp_frame_set_ver_stride(impl->info_set, info_set_ptr->v_stride); in generate_info_set()
430 mpp_frame_set_hor_stride_pixel(impl->info_set, info_set_ptr->h_stride_by_pixel); in generate_info_set()
431 mpp_frame_set_buf_size(impl->info_set, info_set_ptr->size_total); in generate_info_set()
436 impl->buf_size = info_set_ptr->size_total; in generate_info_set()
469 impl->buf_size += downscale_buf_size; in generate_info_set()
470 mpp_frame_set_buf_size(impl->info_set, impl->buf_size); in generate_info_set()
471 mpp_frame_set_buf_size(frame, impl->buf_size); in generate_info_set()
473 info_set_impl = (MppFrameImpl *)impl->info_set; in generate_info_set()
481 if (impl->align_chk_log_en) { in generate_info_set()
482 impl->align_chk_log_en = 0; in generate_info_set()
577 static void _dump_slots(const char *caller, MppBufSlotsImpl *impl) in _dump_slots() argument
579 MppBufSlotEntry *slot = impl->slots; in _dump_slots()
582 mpp_log("\ncaller %s is dumping slots\n", caller, impl->slots_idx); in _dump_slots()
583 mpp_log("slots %d %p buffer count %d buffer size %d\n", impl->slots_idx, in _dump_slots()
584 impl, impl->buf_count, impl->buf_size); in _dump_slots()
585 mpp_log("decode count %d\n", impl->decode_count); in _dump_slots()
586 mpp_log("display count %d\n", impl->display_count); in _dump_slots()
588 for (i = 0; i < impl->buf_count; i++, slot++) { in _dump_slots()
596 if (impl->logs) in _dump_slots()
597 buf_slot_logs_dump(impl->logs); in _dump_slots()
604 static void slot_ops_with_log(MppBufSlotsImpl *impl, MppBufSlotEntry *slot, MppBufSlotOps op, void … in slot_ops_with_log() argument
708 impl->slots_idx, index, op_string[op], arg, before.val, status.val); in slot_ops_with_log()
709 if (impl->logs) in slot_ops_with_log()
710 buf_slot_logs_write(impl->logs, index, op, before, status); in slot_ops_with_log()
712 dump_slots(impl); in slot_ops_with_log()
715 static void init_slot_entry(MppBufSlotsImpl *impl, RK_S32 pos, RK_S32 count) in init_slot_entry() argument
717 MppBufSlotEntry *slot = impl->slots; in init_slot_entry()
721 slot->slots = impl; in init_slot_entry()
725 slot_ops_with_log(impl, slot, SLOT_INIT, NULL); in init_slot_entry()
735 static RK_S32 check_entry_unused(MppBufSlotsImpl *impl, MppBufSlotEntry *entry) in check_entry_unused() argument
746 slot_ops_with_log(impl, entry, SLOT_CLR_FRAME, entry->frame); in check_entry_unused()
751 slot_ops_with_log(impl, entry, SLOT_CLR_BUFFER, entry->buffer); in check_entry_unused()
755 slot_ops_with_log(impl, entry, SLOT_CLR_ON_USE, NULL); in check_entry_unused()
756 impl->used_count--; in check_entry_unused()
763 static void clear_slots_impl(MppBufSlotsImpl *impl) in clear_slots_impl() argument
765 MppBufSlotEntry *slot = (MppBufSlotEntry *)impl->slots; in clear_slots_impl()
768 if (impl->sys_cfg) in clear_slots_impl()
769 mpp_sys_cfg_put(impl->sys_cfg); in clear_slots_impl()
771 for (i = 0; i < (RK_S32)MPP_ARRAY_ELEMS(impl->queue); i++) { in clear_slots_impl()
772 if (!list_empty(&impl->queue[i])) in clear_slots_impl()
773 dump_slots(impl); in clear_slots_impl()
775 mpp_assert(list_empty(&impl->queue[i])); in clear_slots_impl()
778 for (i = 0; i < impl->buf_count; i++, slot++) { in clear_slots_impl()
781 dump_slots(impl); in clear_slots_impl()
782 mpp_buf_slot_reset(impl, i); in clear_slots_impl()
786 impl->used_count = 0; in clear_slots_impl()
788 if (impl->info) in clear_slots_impl()
789 mpp_frame_deinit(&impl->info); in clear_slots_impl()
791 if (impl->info_set) in clear_slots_impl()
792 mpp_frame_deinit(&impl->info_set); in clear_slots_impl()
794 if (impl->logs) { in clear_slots_impl()
795 buf_slot_logs_deinit(impl->logs); in clear_slots_impl()
796 impl->logs = NULL; in clear_slots_impl()
799 mpp_mutex_destroy(&impl->lock); in clear_slots_impl()
801 mpp_free(impl->slots); in clear_slots_impl()
802 mpp_free(impl); in clear_slots_impl()
807 MppBufSlotsImpl *impl; in mpp_buf_slot_init() local
815 impl = mpp_calloc(MppBufSlotsImpl, 1); in mpp_buf_slot_init()
816 if (!impl) { in mpp_buf_slot_init()
826 if (mpp_sys_cfg_get(&impl->sys_cfg)) { in mpp_buf_slot_init()
831 mpp_mutex_init(&impl->lock); in mpp_buf_slot_init()
833 for (i = 0; i < MPP_ARRAY_ELEMS(impl->queue); i++) { in mpp_buf_slot_init()
834 INIT_LIST_HEAD(&impl->queue[i]); in mpp_buf_slot_init()
838 impl->logs = buf_slot_logs_init(SLOT_OPS_MAX_COUNT); in mpp_buf_slot_init()
839 if (!impl->logs) in mpp_buf_slot_init()
843 if (mpp_frame_init(&impl->info)) in mpp_buf_slot_init()
846 if (mpp_frame_init(&impl->info_set)) in mpp_buf_slot_init()
850 impl->hal_hor_align = default_align_16; in mpp_buf_slot_init()
851 impl->hal_ver_align = default_align_16; in mpp_buf_slot_init()
852 impl->hal_len_align = NULL; in mpp_buf_slot_init()
853 impl->numerator = 9; in mpp_buf_slot_init()
854 impl->denominator = 5; in mpp_buf_slot_init()
855 impl->slots_idx = buf_slot_idx++; in mpp_buf_slot_init()
856 impl->info_change_slot_idx = -1; in mpp_buf_slot_init()
857 impl->align_chk_log_env = (buf_slot_debug & BUF_SLOT_DBG_INFO_SET) ? 1 : 0; in mpp_buf_slot_init()
858 impl->align_chk_log_en = impl->align_chk_log_env; in mpp_buf_slot_init()
860 *slots = impl; in mpp_buf_slot_init()
864 clear_slots_impl(impl); in mpp_buf_slot_init()
883 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_setup() local
885 if (!impl) { in mpp_buf_slot_setup()
890 buf_slot_dbg(BUF_SLOT_DBG_SETUP, "slot %p setup: count %d\n", impl, count); in mpp_buf_slot_setup()
892 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_setup()
894 if (!impl->slots) { in mpp_buf_slot_setup()
896 impl->buf_count = impl->new_count = count; in mpp_buf_slot_setup()
897 impl->slots = mpp_calloc(MppBufSlotEntry, count); in mpp_buf_slot_setup()
898 init_slot_entry(impl, 0, count); in mpp_buf_slot_setup()
899 impl->used_count = 0; in mpp_buf_slot_setup()
902 if (count > impl->buf_count) { in mpp_buf_slot_setup()
903 impl->slots = mpp_realloc(impl->slots, MppBufSlotEntry, count); in mpp_buf_slot_setup()
904 mpp_assert(impl->slots); in mpp_buf_slot_setup()
905 init_slot_entry(impl, impl->buf_count, (count - impl->buf_count)); in mpp_buf_slot_setup()
907 impl->new_count = count; in mpp_buf_slot_setup()
910 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_setup()
917 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_is_changed() local
920 if (!impl) { in mpp_buf_slot_is_changed()
925 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_is_changed()
926 info_changed = impl->info_changed; in mpp_buf_slot_is_changed()
927 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_is_changed()
934 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_ready() local
936 if (!impl) { in mpp_buf_slot_ready()
941 buf_slot_dbg(BUF_SLOT_DBG_SETUP, "slot %p is ready now\n", impl); in mpp_buf_slot_ready()
943 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_ready()
945 slot_assert(impl, impl->slots); in mpp_buf_slot_ready()
946 if (!impl->info_changed) in mpp_buf_slot_ready()
950 if (impl->buf_count != impl->new_count) { in mpp_buf_slot_ready()
951 impl->slots = mpp_realloc(impl->slots, MppBufSlotEntry, impl->new_count); in mpp_buf_slot_ready()
952 mpp_assert(impl->slots); in mpp_buf_slot_ready()
953 init_slot_entry(impl, 0, impl->new_count); in mpp_buf_slot_ready()
955 impl->buf_count = impl->new_count; in mpp_buf_slot_ready()
957 mpp_frame_copy(impl->info, impl->info_set); in mpp_buf_slot_ready()
959 if (impl->logs) in mpp_buf_slot_ready()
960 buf_slot_logs_reset(impl->logs); in mpp_buf_slot_ready()
962 impl->info_changed = 0; in mpp_buf_slot_ready()
963 impl->info_change_slot_idx = -1; in mpp_buf_slot_ready()
965 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_ready()
972 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_get_size() local
975 if (!impl) { in mpp_buf_slot_get_size()
980 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_get_size()
981 size = impl->buf_size; in mpp_buf_slot_get_size()
982 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_get_size()
989 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_get_count() local
992 if (!impl) { in mpp_buf_slot_get_count()
997 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_get_count()
998 count = impl->buf_count; in mpp_buf_slot_get_count()
999 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_get_count()
1006 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_set_callback() local
1008 if (!impl) { in mpp_buf_slot_set_callback()
1013 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_set_callback()
1014 impl->callback = *cb_ctx; in mpp_buf_slot_set_callback()
1015 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_set_callback()
1022 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_get_unused() local
1026 if (!impl || !index) { in mpp_buf_slot_get_unused()
1031 slot = impl->slots; in mpp_buf_slot_get_unused()
1033 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_get_unused()
1035 for (i = 0; i < impl->buf_count; i++, slot++) { in mpp_buf_slot_get_unused()
1038 slot_ops_with_log(impl, slot, SLOT_SET_ON_USE, NULL); in mpp_buf_slot_get_unused()
1039 slot_ops_with_log(impl, slot, SLOT_SET_NOT_READY, NULL); in mpp_buf_slot_get_unused()
1040 impl->used_count++; in mpp_buf_slot_get_unused()
1041 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_get_unused()
1048 dump_slots(impl); in mpp_buf_slot_get_unused()
1049 slot_assert(impl, 0); in mpp_buf_slot_get_unused()
1051 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_get_unused()
1058 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_set_flag() local
1060 if (!impl) { in mpp_buf_slot_set_flag()
1065 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_set_flag()
1067 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_set_flag()
1068 slot_ops_with_log(impl, &impl->slots[index], set_flag_op[type], NULL); in mpp_buf_slot_set_flag()
1070 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_set_flag()
1077 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_clr_flag() local
1081 if (!impl) { in mpp_buf_slot_clr_flag()
1086 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_clr_flag()
1088 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_clr_flag()
1089 slot = &impl->slots[index]; in mpp_buf_slot_clr_flag()
1090 slot_ops_with_log(impl, slot, clr_flag_op[type], NULL); in mpp_buf_slot_clr_flag()
1093 impl->decode_count++; in mpp_buf_slot_clr_flag()
1095 unused = check_entry_unused(impl, slot); in mpp_buf_slot_clr_flag()
1097 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_clr_flag()
1100 mpp_callback(&impl->callback, impl); in mpp_buf_slot_clr_flag()
1106 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_enqueue() local
1109 if (!impl) { in mpp_buf_slot_enqueue()
1114 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_enqueue()
1116 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_enqueue()
1117 slot = &impl->slots[index]; in mpp_buf_slot_enqueue()
1118 slot_ops_with_log(impl, slot, (MppBufSlotOps)(SLOT_ENQUEUE + type), NULL); in mpp_buf_slot_enqueue()
1122 list_add_tail(&slot->list, &impl->queue[type]); in mpp_buf_slot_enqueue()
1124 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_enqueue()
1131 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_dequeue() local
1134 if (!impl || !index) { in mpp_buf_slot_dequeue()
1139 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_dequeue()
1141 if (list_empty(&impl->queue[type])) { in mpp_buf_slot_dequeue()
1142 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_dequeue()
1146 slot = list_entry(impl->queue[type].next, MppBufSlotEntry, list); in mpp_buf_slot_dequeue()
1148 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_dequeue()
1154 slot_assert(impl, slot->index < impl->buf_count); in mpp_buf_slot_dequeue()
1155 slot_ops_with_log(impl, slot, (MppBufSlotOps)(SLOT_DEQUEUE + type), NULL); in mpp_buf_slot_dequeue()
1156 impl->display_count++; in mpp_buf_slot_dequeue()
1159 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_dequeue()
1166 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_set_prop() local
1169 if (!impl || !val || type >= SLOT_PROP_BUTT) { in mpp_buf_slot_set_prop()
1174 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_set_prop()
1176 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_set_prop()
1177 slot = &impl->slots[index]; in mpp_buf_slot_set_prop()
1178 slot_ops_with_log(impl, slot, set_val_op[type], val); in mpp_buf_slot_set_prop()
1193 slot_assert(impl, slot->status.not_ready); in mpp_buf_slot_set_prop()
1203 generate_info_set(impl, frame, 0); in mpp_buf_slot_set_prop()
1221 if (mpp_frame_info_cmp(impl->info, impl->info_set)) { in mpp_buf_slot_set_prop()
1222 MppFrameImpl *old = (MppFrameImpl *)impl->info; in mpp_buf_slot_set_prop()
1224 impl->info_changed = 1; in mpp_buf_slot_set_prop()
1225 impl->info_change_slot_idx = index; in mpp_buf_slot_set_prop()
1227 if (impl->coding_type != MPP_VIDEO_CodingMJPEG) in mpp_buf_slot_set_prop()
1228 impl->align_chk_log_en = impl->align_chk_log_env; in mpp_buf_slot_set_prop()
1247 slot_assert(impl, !slot->frame); in mpp_buf_slot_set_prop()
1260 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_set_prop()
1267 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_get_prop() local
1270 if (!impl || !val || type >= SLOT_PROP_BUTT) { in mpp_buf_slot_get_prop()
1275 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_get_prop()
1277 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_get_prop()
1278 slot = &impl->slots[index]; in mpp_buf_slot_get_prop()
1312 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_get_prop()
1319 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_reset() local
1322 if (!impl || index < 0) { in mpp_buf_slot_reset()
1329 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_reset()
1331 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_reset()
1332 slot = &impl->slots[index]; in mpp_buf_slot_reset()
1336 slot_ops_with_log(impl, slot, SLOT_CLR_QUEUE_USE, NULL); in mpp_buf_slot_reset()
1337 slot_ops_with_log(impl, slot, SLOT_DEQUEUE, NULL); in mpp_buf_slot_reset()
1338 slot_ops_with_log(impl, slot, SLOT_CLR_ON_USE, NULL); in mpp_buf_slot_reset()
1340 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_reset()
1352 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_buf_slot_default_info() local
1353 mpp_mutex_lock(&impl->lock); in mpp_buf_slot_default_info()
1354 slot_assert(impl, (index >= 0) && (index < impl->buf_count)); in mpp_buf_slot_default_info()
1355 MppBufSlotEntry *slot = &impl->slots[index]; in mpp_buf_slot_default_info()
1357 slot_assert(impl, slot->status.not_ready); in mpp_buf_slot_default_info()
1358 slot_assert(impl, !slot->frame); in mpp_buf_slot_default_info()
1359 slot_assert(impl, impl->info_set); in mpp_buf_slot_default_info()
1363 mpp_frame_copy(slot->frame, impl->info_set); in mpp_buf_slot_default_info()
1369 slot_ops_with_log(impl, slot, SLOT_CLR_NOT_READY, NULL); in mpp_buf_slot_default_info()
1370 slot_ops_with_log(impl, slot, SLOT_SET_FRAME, slot->frame); in mpp_buf_slot_default_info()
1371 mpp_mutex_unlock(&impl->lock); in mpp_buf_slot_default_info()
1384 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_slots_is_empty() local
1385 mpp_mutex_lock(&impl->lock); in mpp_slots_is_empty()
1386 is_empty = list_empty(&impl->queue[type]) ? 1 : 0; in mpp_slots_is_empty()
1387 mpp_mutex_unlock(&impl->lock); in mpp_slots_is_empty()
1399 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_slots_get_used_count() local
1400 mpp_mutex_lock(&impl->lock); in mpp_slots_get_used_count()
1401 used_count = impl->used_count; in mpp_slots_get_used_count()
1402 mpp_mutex_unlock(&impl->lock); in mpp_slots_get_used_count()
1415 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_slots_get_unused_count() local
1416 mpp_mutex_lock(&impl->lock); in mpp_slots_get_unused_count()
1417 slot_assert(impl, (impl->used_count >= 0) && (impl->used_count <= impl->buf_count)); in mpp_slots_get_unused_count()
1418 unused_count = impl->buf_count - impl->used_count; in mpp_slots_get_unused_count()
1419 mpp_mutex_unlock(&impl->lock); in mpp_slots_get_unused_count()
1431 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_slots_set_prop() local
1432 mpp_mutex_lock(&impl->lock); in mpp_slots_set_prop()
1436 impl->eos = value; in mpp_slots_set_prop()
1439 impl->numerator = value; in mpp_slots_set_prop()
1442 impl->denominator = value; in mpp_slots_set_prop()
1445 impl->hal_hor_align = (AlignFunc)val; in mpp_slots_set_prop()
1448 impl->hal_ver_align = (AlignFunc)val; in mpp_slots_set_prop()
1451 impl->hal_len_align = (AlignFunc)val; in mpp_slots_set_prop()
1454 impl->buf_count = value; in mpp_slots_set_prop()
1457 impl->buf_size = value; in mpp_slots_set_prop()
1461 generate_info_set(impl, (MppFrame)val, 1); in mpp_slots_set_prop()
1462 mpp_frame_copy(impl->info, impl->info_set); in mpp_slots_set_prop()
1464 MppFrameImpl *p = (MppFrameImpl *)impl->info; in mpp_slots_set_prop()
1467 mpp_frame_copy((MppFrame)val, impl->info_set); in mpp_slots_set_prop()
1468 if (impl->info_change_slot_idx >= 0) { in mpp_slots_set_prop()
1469 MppBufSlotEntry *slot = &impl->slots[impl->info_change_slot_idx]; in mpp_slots_set_prop()
1481 if (MPP_FRAME_FMT_IS_FBC(dst->fmt) && impl->hal_fbc_adj_cfg.func) in mpp_slots_set_prop()
1482 impl->hal_fbc_adj_cfg.func(impl, dst, impl->hal_fbc_adj_cfg.expand); in mpp_slots_set_prop()
1485 impl->info_change_slot_idx = -1; in mpp_slots_set_prop()
1489 impl->hal_fbc_adj_cfg = *((SlotHalFbcAdjCfg *)val); in mpp_slots_set_prop()
1492 impl->coding_type = *((MppCodingType *)val); in mpp_slots_set_prop()
1495 impl->hal_width_align = (AlignFunc)val; in mpp_slots_set_prop()
1500 mpp_mutex_unlock(&impl->lock); in mpp_slots_set_prop()
1512 MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; in mpp_slots_get_prop() local
1513 mpp_mutex_lock(&impl->lock); in mpp_slots_get_prop()
1518 *((RK_U32 *)val) = impl->eos; in mpp_slots_get_prop()
1521 *((RK_U32 *)val) = impl->buf_count; in mpp_slots_get_prop()
1524 *((RK_U32 *)val) = (RK_U32)impl->buf_size; in mpp_slots_get_prop()
1528 MppFrame info = impl->info; in mpp_slots_get_prop()
1536 mpp_mutex_unlock(&impl->lock); in mpp_slots_get_prop()