Lines Matching defs:decoder

75     MMAL_COMPONENT_T *decoder;
82 // contains almost all surfaces - then the decoder input queue can quickly
100 // Assume decoder is guaranteed to produce output after at least this many
154 MMAL_COMPONENT_T *decoder = ctx->decoder;
157 mmal_port_disable(decoder->input[0]);
158 mmal_port_disable(decoder->output[0]);
159 mmal_port_disable(decoder->control);
161 mmal_port_flush(decoder->input[0]);
162 mmal_port_flush(decoder->output[0]);
163 mmal_port_flush(decoder->control);
190 if (ctx->decoder)
193 mmal_component_destroy(ctx->decoder);
194 ctx->decoder = NULL;
243 // Feed free output buffers to the decoder.
254 if ((status = mmal_port_send_buffer(ctx->decoder->output[0], buffer))) {
282 MMAL_COMPONENT_T *decoder = ctx->decoder;
283 MMAL_ES_FORMAT_T *format_out = decoder->output[0]->format;
296 if ((status = mmal_port_parameter_set_uint32(decoder->output[0], MMAL_PARAMETER_EXTRA_BUFFERS, ctx->extra_buffers)))
299 if ((status = mmal_port_parameter_set_boolean(decoder->output[0], MMAL_PARAMETER_VIDEO_INTERPOLATE_TIMESTAMPS, 0)))
308 if ((status = mmal_port_format_commit(decoder->output[0])))
313 status = mmal_port_parameter_get(decoder->output[0], &interlace_type.hdr);
336 decoder->output[0]->buffer_size =
337 FFMAX(decoder->output[0]->buffer_size_min, decoder->output[0]->buffer_size_recommended);
338 decoder->output[0]->buffer_num =
339 FFMAX(decoder->output[0]->buffer_num_min, decoder->output[0]->buffer_num_recommended) + ctx->extra_buffers;
340 ctx->pool_out->pool = mmal_pool_create(decoder->output[0]->buffer_num,
341 decoder->output[0]->buffer_size);
358 MMAL_COMPONENT_T *decoder;
375 if ((status = mmal_component_create(MMAL_COMPONENT_DEFAULT_VIDEO_DECODER, &ctx->decoder)))
378 decoder = ctx->decoder;
380 format_in = decoder->input[0]->format;
411 if (mmal_port_parameter_set_uint32(decoder->input[0], MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS,
417 if ((status = mmal_port_format_commit(decoder->input[0])))
420 decoder->input[0]->buffer_num =
421 FFMAX(decoder->input[0]->buffer_num_min, 20);
422 decoder->input[0]->buffer_size =
423 FFMAX(decoder->input[0]->buffer_size_min, 512 * 1024);
424 ctx->pool_in = mmal_pool_create(decoder->input[0]->buffer_num, 0);
437 decoder->input[0]->userdata = (void*)avctx;
438 decoder->output[0]->userdata = (void*)avctx;
439 decoder->control->userdata = (void*)avctx;
441 if ((status = mmal_port_enable(decoder->control, control_port_cb)))
443 if ((status = mmal_port_enable(decoder->input[0], input_callback)))
445 if ((status = mmal_port_enable(decoder->output[0], output_callback)))
448 if ((status = mmal_component_enable(decoder)))
461 MMAL_COMPONENT_T *decoder = ctx->decoder;
466 if ((status = mmal_port_enable(decoder->control, control_port_cb)))
468 if ((status = mmal_port_enable(decoder->input[0], input_callback)))
470 if ((status = mmal_port_enable(decoder->output[0], output_callback)))
480 // immediately, because it can happen that the decoder is temporarily blocked
525 buffer->length = FFMIN(size, ctx->decoder->input[0]->buffer_size);
571 // Move prepared/split packets from waiting_buffers to the MMAL decoder.
595 mbuffer->alloc_size = ctx->decoder->input[0]->buffer_size;
602 if ((status = mmal_port_send_buffer(ctx->decoder->input[0], mbuffer))) {
680 // Except during start we don't know after how many input packets the decoder
681 // is going to return the first buffer, and we can't distinguish decoder
682 // being busy from decoder waiting for input. So just poll at the start and
684 // We are pretty sure the decoder will produce output if we sent more input
685 // frames than what a H.264 decoder could logically delay. This avoids too
712 MMAL_COMPONENT_T *decoder = ctx->decoder;
718 if ((status = mmal_port_disable(decoder->output[0])))
724 mmal_format_copy(decoder->output[0]->format, ev->format);
729 if ((status = mmal_port_enable(decoder->output[0], output_callback)))
798 // ffmmal_read_frame() can block for a while. Since the decoder is