Lines Matching refs:decoder_model

407 static void release_buffer(DECODER_MODEL *const decoder_model, int idx) {  in release_buffer()  argument
409 FRAME_BUFFER *const this_buffer = &decoder_model->frame_buffer_pool[idx]; in release_buffer()
416 static void initialize_buffer_pool(DECODER_MODEL *const decoder_model) { in initialize_buffer_pool() argument
418 release_buffer(decoder_model, i); in initialize_buffer_pool()
421 decoder_model->vbi[i] = -1; in initialize_buffer_pool()
425 static int get_free_buffer(DECODER_MODEL *const decoder_model) { in get_free_buffer() argument
428 &decoder_model->frame_buffer_pool[i]; in get_free_buffer()
436 static void update_ref_buffers(DECODER_MODEL *const decoder_model, int idx, in update_ref_buffers() argument
438 FRAME_BUFFER *const this_buffer = &decoder_model->frame_buffer_pool[idx]; in update_ref_buffers()
441 const int pre_idx = decoder_model->vbi[i]; in update_ref_buffers()
443 --decoder_model->frame_buffer_pool[pre_idx].decoder_ref_count; in update_ref_buffers()
445 decoder_model->vbi[i] = idx; in update_ref_buffers()
477 static void release_processed_frames(DECODER_MODEL *const decoder_model, in release_processed_frames() argument
480 FRAME_BUFFER *const this_buffer = &decoder_model->frame_buffer_pool[i]; in release_processed_frames()
486 release_buffer(decoder_model, i); in release_processed_frames()
493 static int frames_in_buffer_pool(const DECODER_MODEL *const decoder_model) { in frames_in_buffer_pool() argument
497 &decoder_model->frame_buffer_pool[i]; in frames_in_buffer_pool()
506 static double get_presentation_time(const DECODER_MODEL *const decoder_model, in get_presentation_time() argument
508 if (decoder_model->mode == SCHEDULE_MODE) { in get_presentation_time()
513 decoder_model->initial_presentation_delay; in get_presentation_time()
519 display_index * decoder_model->num_ticks_per_picture * in get_presentation_time()
520 decoder_model->display_clock_tick; in get_presentation_time()
565 void av1_decoder_model_print_status(const DECODER_MODEL *const decoder_model) {
570 decoder_model->status, decoder_model->num_frame,
571 decoder_model->num_decoded_frame, decoder_model->num_shown_frame,
572 decoder_model->current_time, frames_in_buffer_pool(decoder_model),
573 decoder_model->initial_presentation_delay,
574 decoder_model->dfg_interval_queue.total_interval);
577 &decoder_model->frame_buffer_pool[i];
588 DECODER_MODEL *const decoder_model) { in decoder_model_init() argument
589 decoder_model->status = DECODER_MODEL_OK; in decoder_model_init()
590 decoder_model->level = level; in decoder_model_init()
594 decoder_model->bit_rate = get_max_bitrate( in decoder_model_init()
598 decoder_model->mode = RESOURCE_MODE; in decoder_model_init()
599 decoder_model->encoder_buffer_delay = 20000; in decoder_model_init()
600 decoder_model->decoder_buffer_delay = 70000; in decoder_model_init()
601 decoder_model->is_low_delay_mode = false; in decoder_model_init()
603 decoder_model->first_bit_arrival_time = 0.0; in decoder_model_init()
604 decoder_model->last_bit_arrival_time = 0.0; in decoder_model_init()
605 decoder_model->coded_bits = 0; in decoder_model_init()
607 decoder_model->removal_time = INVALID_TIME; in decoder_model_init()
608 decoder_model->presentation_time = INVALID_TIME; in decoder_model_init()
609 decoder_model->decode_samples = 0; in decoder_model_init()
610 decoder_model->display_samples = 0; in decoder_model_init()
611 decoder_model->max_decode_rate = 0.0; in decoder_model_init()
612 decoder_model->max_display_rate = 0.0; in decoder_model_init()
614 decoder_model->num_frame = -1; in decoder_model_init()
615 decoder_model->num_decoded_frame = -1; in decoder_model_init()
616 decoder_model->num_shown_frame = -1; in decoder_model_init()
617 decoder_model->current_time = 0.0; in decoder_model_init()
619 initialize_buffer_pool(decoder_model); in decoder_model_init()
622 &decoder_model->dfg_interval_queue; in decoder_model_init()
628 decoder_model->num_ticks_per_picture = in decoder_model_init()
630 decoder_model->display_clock_tick = in decoder_model_init()
634 decoder_model->num_ticks_per_picture = 1; in decoder_model_init()
635 decoder_model->display_clock_tick = 1.0 / cpi->framerate; in decoder_model_init()
638 decoder_model->initial_display_delay = in decoder_model_init()
640 decoder_model->initial_presentation_delay = INVALID_TIME; in decoder_model_init()
641 decoder_model->decode_rate = av1_level_defs[level].max_decode_rate; in decoder_model_init()
646 const DECODER_MODEL *const decoder_model) { in av1_decoder_model_try_smooth_buf() argument
649 if (!decoder_model || decoder_model->status != DECODER_MODEL_OK) { in av1_decoder_model_try_smooth_buf()
656 size_t cur_coded_bits = decoder_model->coded_bits + coded_bits; in av1_decoder_model_try_smooth_buf()
657 int num_decoded_frame = decoder_model->num_decoded_frame; in av1_decoder_model_try_smooth_buf()
664 decoder_model->mode, num_decoded_frame, in av1_decoder_model_try_smooth_buf()
665 decoder_model->decoder_buffer_delay, decoder_model->frame_buffer_pool, in av1_decoder_model_try_smooth_buf()
666 decoder_model->current_time); in av1_decoder_model_try_smooth_buf()
674 const double buffer_delay = (decoder_model->encoder_buffer_delay + in av1_decoder_model_try_smooth_buf()
675 decoder_model->decoder_buffer_delay) / in av1_decoder_model_try_smooth_buf()
679 AOMMAX(decoder_model->last_bit_arrival_time, latest_arrival_time); in av1_decoder_model_try_smooth_buf()
682 (double)cur_coded_bits / decoder_model->bit_rate; in av1_decoder_model_try_smooth_buf()
686 !decoder_model->is_low_delay_mode) { in av1_decoder_model_try_smooth_buf()
692 const DFG_INTERVAL_QUEUE *const queue = &decoder_model->dfg_interval_queue; in av1_decoder_model_try_smooth_buf()
728 DECODER_MODEL *const decoder_model) { in decoder_model_process_frame() argument
729 if (!decoder_model || decoder_model->status != DECODER_MODEL_OK) return; in decoder_model_process_frame()
735 ++decoder_model->num_frame; in decoder_model_process_frame()
736 if (!show_existing_frame) ++decoder_model->num_decoded_frame; in decoder_model_process_frame()
737 if (show_frame) ++decoder_model->num_shown_frame; in decoder_model_process_frame()
738 decoder_model->coded_bits += coded_bits; in decoder_model_process_frame()
742 display_idx = decoder_model->vbi[cpi->existing_fb_idx_to_show]; in decoder_model_process_frame()
744 decoder_model->status = DECODE_EXISTING_FRAME_BUF_EMPTY; in decoder_model_process_frame()
747 if (decoder_model->frame_buffer_pool[display_idx].frame_type == KEY_FRAME) { in decoder_model_process_frame()
748 update_ref_buffers(decoder_model, display_idx, 0xFF); in decoder_model_process_frame()
752 decoder_model->mode, decoder_model->num_decoded_frame, in decoder_model_process_frame()
753 decoder_model->decoder_buffer_delay, decoder_model->frame_buffer_pool, in decoder_model_process_frame()
754 decoder_model->current_time); in decoder_model_process_frame()
756 decoder_model->status = DECODE_FRAME_BUF_UNAVAILABLE; in decoder_model_process_frame()
760 const int previous_decode_samples = decoder_model->decode_samples; in decoder_model_process_frame()
761 const double previous_removal_time = decoder_model->removal_time; in decoder_model_process_frame()
763 decoder_model->removal_time = removal_time; in decoder_model_process_frame()
764 decoder_model->decode_samples = luma_pic_size; in decoder_model_process_frame()
767 decoder_model->max_decode_rate = in decoder_model_process_frame()
768 AOMMAX(decoder_model->max_decode_rate, this_decode_rate); in decoder_model_process_frame()
772 const double buffer_delay = (decoder_model->encoder_buffer_delay + in decoder_model_process_frame()
773 decoder_model->decoder_buffer_delay) / in decoder_model_process_frame()
776 decoder_model->first_bit_arrival_time = in decoder_model_process_frame()
777 AOMMAX(decoder_model->last_bit_arrival_time, latest_arrival_time); in decoder_model_process_frame()
778 decoder_model->last_bit_arrival_time = in decoder_model_process_frame()
779 decoder_model->first_bit_arrival_time + in decoder_model_process_frame()
780 (double)decoder_model->coded_bits / decoder_model->bit_rate; in decoder_model_process_frame()
783 if (decoder_model->last_bit_arrival_time > removal_time && in decoder_model_process_frame()
784 !decoder_model->is_low_delay_mode) { in decoder_model_process_frame()
785 decoder_model->status = SMOOTHING_BUFFER_UNDERFLOW; in decoder_model_process_frame()
789 decoder_model->coded_bits = 0; in decoder_model_process_frame()
792 DFG_INTERVAL_QUEUE *const queue = &decoder_model->dfg_interval_queue; in decoder_model_process_frame()
796 const double first_bit_arrival_time = decoder_model->first_bit_arrival_time; in decoder_model_process_frame()
797 const double last_bit_arrival_time = decoder_model->last_bit_arrival_time; in decoder_model_process_frame()
804 decoder_model->status = SMOOTHING_BUFFER_OVERFLOW; in decoder_model_process_frame()
822 decoder_model->status = SMOOTHING_BUFFER_OVERFLOW; in decoder_model_process_frame()
826 release_processed_frames(decoder_model, removal_time); in decoder_model_process_frame()
827 decoder_model->current_time = in decoder_model_process_frame()
828 removal_time + time_to_decode_frame(cm, decoder_model->decode_rate); in decoder_model_process_frame()
830 const int cfbi = get_free_buffer(decoder_model); in decoder_model_process_frame()
832 decoder_model->status = DECODE_FRAME_BUF_UNAVAILABLE; in decoder_model_process_frame()
836 decoder_model->frame_buffer_pool[cfbi].frame_type = in decoder_model_process_frame()
839 update_ref_buffers(decoder_model, cfbi, current_frame->refresh_frame_flags); in decoder_model_process_frame()
841 if (decoder_model->initial_presentation_delay < 0.0) { in decoder_model_process_frame()
843 if (frames_in_buffer_pool(decoder_model) >= in decoder_model_process_frame()
844 decoder_model->initial_display_delay - 1) { in decoder_model_process_frame()
845 decoder_model->initial_presentation_delay = decoder_model->current_time; in decoder_model_process_frame()
849 &decoder_model->frame_buffer_pool[i]; in decoder_model_process_frame()
853 get_presentation_time(decoder_model, this_buffer->display_index); in decoder_model_process_frame()
863 &decoder_model->frame_buffer_pool[display_idx]; in decoder_model_process_frame()
865 this_buffer->display_index = decoder_model->num_shown_frame; in decoder_model_process_frame()
867 get_presentation_time(decoder_model, this_buffer->display_index); in decoder_model_process_frame()
870 decoder_model->current_time > presentation_time) { in decoder_model_process_frame()
871 decoder_model->status = DISPLAY_FRAME_LATE; in decoder_model_process_frame()
875 const int previous_display_samples = decoder_model->display_samples; in decoder_model_process_frame()
876 const double previous_presentation_time = decoder_model->presentation_time; in decoder_model_process_frame()
877 decoder_model->display_samples = luma_pic_size; in decoder_model_process_frame()
878 decoder_model->presentation_time = presentation_time; in decoder_model_process_frame()
884 decoder_model->max_display_rate = in decoder_model_process_frame()
885 AOMMAX(decoder_model->max_display_rate, this_display_rate); in decoder_model_process_frame()
974 const DECODER_MODEL *const decoder_model = &level_info->decoder_models[level]; in check_level_constraints() local
975 const DECODER_MODEL_STATUS decoder_model_status = decoder_model->status; in check_level_constraints()
1016 if (decoder_model->max_display_rate > in check_level_constraints()