Skip to content

Instantly share code, notes, and snippets.

@t-moe

t-moe/Makefile Secret

Last active September 21, 2018 12:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t-moe/7a9dc07ab343b50cfa96247d4d083604 to your computer and use it in GitHub Desktop.
Save t-moe/7a9dc07ab343b50cfa96247d4d083604 to your computer and use it in GitHub Desktop.
graph_encode_decode mmal test
#include "bcm_host.h"
#include "mmal.h"
#include "util/mmal_graph.h"
#include "util/mmal_default_components.h"
#include "util/mmal_util_params.h"
#include <stdio.h>
#include "interface/vcos/vcos.h"
#define CHECK_STATUS(status, msg) if (status != MMAL_SUCCESS) { fprintf(stderr, msg"\n"); goto error; }
static uint8_t codec_header_bytes[128];
static unsigned int codec_header_bytes_size = sizeof(codec_header_bytes);
static FILE *source_file;
/* Macros abstracting the I/O, just to make the example code clearer */
#define SOURCE_OPEN(uri) \
source_file = fopen(uri, "rb"); if (!source_file) goto error;
#define SOURCE_READ_CODEC_CONFIG_DATA(bytes, size) \
size = fread(bytes, 1, size, source_file); rewind(source_file)
#define SOURCE_READ_DATA_INTO_BUFFER(a) \
a->length = fread(a->data, 1, a->alloc_size - 128, source_file); \
a->offset = 0; a->pts = a->dts = MMAL_TIME_UNKNOWN
#define SOURCE_CLOSE() \
if (source_file) fclose(source_file)
/** Context for our application */
static struct CONTEXT_T {
VCOS_SEMAPHORE_T semaphore;
MMAL_QUEUE_T *queue;
} context;
/** Callback from the decoder input port.
* Buffer has been consumed and is available to be used again. */
static void input_callback(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer)
{
struct CONTEXT_T *ctx = (struct CONTEXT_T *)port->userdata;
/* The decoder is done with the data, just recycle the buffer header into its pool */
mmal_buffer_header_release(buffer);
/* Kick the processing thread */
vcos_semaphore_post(&ctx->semaphore);
fprintf(stderr,"decoder input callback\n");
}
int main(int argc, char* argv[]) {
MMAL_STATUS_T status;
MMAL_GRAPH_T *graph = 0;
MMAL_COMPONENT_T *decoder = 0, *renderer=0;
MMAL_POOL_T *pool_in = 0;
MMAL_ES_FORMAT_T * format_in=0;
MMAL_PARAMETER_BOOLEAN_T zc;
bcm_host_init();
vcos_semaphore_create(&context.semaphore, "example", 1);
SOURCE_OPEN("test.h264_2")
/* Create the graph */
status = mmal_graph_create(&graph, 0);
CHECK_STATUS(status, "failed to create graph");
status = mmal_graph_new_component(graph, MMAL_COMPONENT_DEFAULT_VIDEO_DECODER, &decoder);
CHECK_STATUS(status, "failed to create decoder");
status = mmal_graph_new_component(graph, MMAL_COMPONENT_DEFAULT_VIDEO_RENDERER, &renderer);
CHECK_STATUS(status, "failed to create renderer");
/* Set the zero-copy parameter on the input port */
zc = {{MMAL_PARAMETER_ZERO_COPY, sizeof(zc)}, MMAL_TRUE};
status = mmal_port_parameter_set(decoder->input[0], &zc.hdr);
fprintf(stderr, "status: %i\n", status);
/* Set the zero-copy parameter on the output port */
status = mmal_port_parameter_set_boolean(decoder->output[0], MMAL_PARAMETER_ZERO_COPY, MMAL_TRUE);
fprintf(stderr, "status: %i\n", status);
/* Set format of video decoder input port */
format_in = decoder->input[0]->format;
format_in->type = MMAL_ES_TYPE_VIDEO;
format_in->encoding = MMAL_ENCODING_H264;
format_in->es->video.width = 1280;
format_in->es->video.height = 720;
format_in->es->video.frame_rate.num = 30;
format_in->es->video.frame_rate.den = 1;
format_in->es->video.par.num = 1;
format_in->es->video.par.den = 1;
/* If the data is known to be framed then the following flag should be set:*/
//format_in->flags |= MMAL_ES_FORMAT_FLAG_FRAMED;
SOURCE_READ_CODEC_CONFIG_DATA(codec_header_bytes, codec_header_bytes_size);
status = mmal_format_extradata_alloc(format_in, codec_header_bytes_size);
CHECK_STATUS(status, "failed to allocate extradata");
format_in->extradata_size = codec_header_bytes_size;
if (format_in->extradata_size)
memcpy(format_in->extradata, codec_header_bytes, format_in->extradata_size);
status = mmal_port_format_commit(decoder->input[0]);
CHECK_STATUS(status, "failed to commit format");
decoder->input[0]->buffer_num = decoder->input[0]->buffer_num_min;
decoder->input[0]->buffer_size = decoder->input[0]->buffer_size_min;
decoder->output[0]->buffer_num = decoder->output[0]->buffer_num_min;
decoder->output[0]->buffer_size = decoder->output[0]->buffer_size_min;
pool_in = mmal_pool_create(decoder->input[0]->buffer_num,decoder->input[0]->buffer_size);
context.queue = mmal_queue_create();
/* Store a reference to our context in each port (will be used during callbacks) */
decoder->input[0]->userdata = (struct MMAL_PORT_USERDATA_T*)(void *)&context;
status = mmal_port_enable(decoder->input[0], input_callback);
CHECK_STATUS(status, "failed to enable input port")
/* connect them up - this propagates port settings from outputs to inputs */
status = mmal_graph_new_connection(graph, decoder->output[0], renderer->input[0], 0, NULL);
CHECK_STATUS(status, "failed to connect decoder to renderer");
/* Start playback */
fprintf(stderr, "start");
status = mmal_graph_enable(graph, NULL, NULL);
CHECK_STATUS(status, "failed to enable graph");
for (int count = 0; count < 2; count++)
{
MMAL_BUFFER_HEADER_T *buffer;
/* Wait for buffer headers to be available on either the decoder input or the encoder output port */
vcos_semaphore_wait(&context.semaphore);
/* Send data to decode to the input port of the video decoder */
if ((buffer = mmal_queue_get(pool_in->queue)) != NULL)
{
SOURCE_READ_DATA_INTO_BUFFER(buffer);
if (!buffer->length)
break;
// fprintf(stderr, "sending %i bytes\n", (int)buffer->length);
status = mmal_port_send_buffer(decoder->input[0], buffer);
CHECK_STATUS(status, "failed to send buffer");
}
}
/* Stop decoding */
fprintf(stderr, "stop decoding\n");
/* Stop everything. Not strictly necessary since mmal_component_destroy()
* will do that anyway */
mmal_port_disable(decoder->input[0]);
/* Stop everything */
fprintf(stderr, "stop");
mmal_graph_disable(graph);
error:
/* Cleanup everything */
if (decoder)
mmal_component_release(decoder);
if (renderer)
mmal_component_release(renderer);
if (graph)
mmal_graph_destroy(graph);
return status == MMAL_SUCCESS ? 0 : -1;
}
all: graph_encode_decode
graph_encode_decode:
g++ -std=c++11 -I/opt/vc/include/ -I/opt/vc/include/interface/mmal graph_encode_decode.cpp -o graph_encode_decode -L/opt/vc/lib/ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvcos -lpthread
clean:
rm -f graph_encode_decode
run: graph_encode_decode
./graph_encode_decode test.h264_2
mmal: mmal_port_alloc: component:vc.ril.video_decode type:1 extra:0
mmal: mmal_port_alloc: vc.ril.video_decode:ctr:0: created at 0x16d8c50
mmal: mmal_vc_component_create: vc.ril.video_decode
mmal: mmal_vc_component_create: vc.ril.video_decode: handle 0x40 status 0 reply status 0
mmal: mmal_port_free: vc.ril.video_decode:ctr:0 at 0x16d8c50
mmal: mmal_port_alloc: component:vc.ril.video_decode type:1 extra:384
mmal: mmal_port_alloc: vc.ril.video_decode:ctr:0: created at 0x16d9020
mmal: mmal_port_alloc: component:vc.ril.video_decode type:2 extra:384
mmal: mmal_port_alloc: vc.ril.video_decode:in:0: created at 0x16d9330
mmal: mmal_port_alloc: component:vc.ril.video_decode type:3 extra:384
mmal: mmal_port_alloc: vc.ril.video_decode:out:0: created at 0x16d9650
mmal: mmal_port_alloc: component:vc.ril.video_decode type:4 extra:384
mmal: mmal_port_alloc: vc.ril.video_decode:clk:0: created at 0x16d9990
mmal: mmal_vc_component_create: handle 64
mmal: mmal_vc_port_info_get: get port info (1:0)
mmal: mmal_vc_port_info_get: get port info (2:0)
mmal: mmal_vc_port_info_get: get port info (3:0)
mmal: mmal_vc_port_info_get: get port info (4:0)
mmal: mmal_pool_create_with_allocator: allocating 48 + 24 + 472 * 4 bytes for pool
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 0/4
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 1/4
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 2/4
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 3/4
mmal: mmal_component_create_core: created 'vc.ril.video_decode' 0 0x16d8a90
mmal: mmal_component_acquire: component vc.ril.video_decode(0), refcount 1
mmal: mmal_graph_new_component: graph: 0x16d87a0, name: vc.ril.video_render, component: 0x7ebf74d8
mmal: mmal_component_create: vc.ril.video_render
mmal: mmal_port_alloc: component:vc.ril.video_render type:1 extra:0
mmal: mmal_port_alloc: vc.ril.video_render:ctr:0: created at 0x16db4a0
mmal: mmal_vc_component_create: vc.ril.video_render
mmal: mmal_vc_component_create: vc.ril.video_render: handle 0x38 status 0 reply status 0
mmal: mmal_port_free: vc.ril.video_render:ctr:0 at 0x16db4a0
mmal: mmal_port_alloc: component:vc.ril.video_render type:1 extra:384
mmal: mmal_port_alloc: vc.ril.video_render:ctr:0: created at 0x16db860
mmal: mmal_port_alloc: component:vc.ril.video_render type:2 extra:384
mmal: mmal_port_alloc: vc.ril.video_render:in:0: created at 0x16dbb80
mmal: mmal_vc_component_create: handle 56
mmal: mmal_vc_port_info_get: get port info (1:0)
mmal: mmal_vc_port_info_get: get port info (2:0)
mmal: mmal_pool_create_with_allocator: allocating 48 + 24 + 472 * 4 bytes for pool
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 0/4
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 1/4
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 2/4
mmal: mmal_pool_initialise_buffer_headers: allocating 740 bytes for payload 3/4
mmal: mmal_component_create_core: created 'vc.ril.video_render' 1 0x16db2e0
mmal: mmal_component_acquire: component vc.ril.video_render(1), refcount 1
mmal: mmal_port_parameter_set: vc.ril.video_decode(2:0) port 0x16d9330, param 0x7ebf74cc (4,12)
mmal: mmal_vc_port_parameter_set: enable zero copy on port 0x16d9330
status: 0
mmal: mmal_port_parameter_set: vc.ril.video_decode(3:0) port 0x16d9650, param 0x7ebf74a4 (4,12)
mmal: mmal_vc_port_parameter_set: enable zero copy on port 0x16d9650
status: 0
mmal: mmal_port_format_commit: vc.ril.video_decode(2:0) port 0x16d9330 format 3:H264
mmal: mmal_vc_port_info_set: set port info (2:0)
mmal: mmal_vc_port_info_get: get port info (2:0)
mmal: mmal_vc_port_info_get: get port info (3:0)
mmal: mmal_pool_create_with_allocator: allocating 48 + 8 + 472 * 1 bytes for pool
mmal: mmal_pool_initialise_buffer_headers: allocating 2048 bytes for payload 0/1
mmal: mmal_port_enable: vc.ril.video_decode:in:0(H264) port 0x16d9330, cb 0x10f38, buffers (1/20/1,2048/81920/2048)
mmal: mmal_graph_new_connection: graph: 0x16d87a0, out: vc.ril.video_decode:out:0(0x16d9650), in: vc.ril.video_render:in:0(0x16dbb80), flags 0, connection: (nil)
mmal: mmal_connection_create: out 0x16d9650, in 0x16dbb80, flags 0, vc.ril.video_decode:out:0/vc.ril.video_render:in:0
mmal: mmal_port_format_commit: vc.ril.video_render(2:0) port 0x16dbb80 format 3:I420
mmal: mmal_vc_port_info_set: set port info (2:0)
mmal: mmal_vc_port_info_get: get port info (2:0)
mmal: mmal_port_pool_create: vc.ril.video_render(2:0) port 0x16dbb80, headers 0, size 0
mmal: mmal_pool_create_with_allocator: allocating 48 + 8 + 472 * 0 bytes for pool
startmmal: mmal_graph_enable: graph: 0x16d87a0
mmal: mmal_port_enable: vc.ril.video_decode:ctr:0 port 0x16d9020, cb 0x76e0db44, buffers (4/0/4,740/0/740)
mmal: mmal_port_enable: vc.ril.video_render:ctr:0 port 0x16db860, cb 0x76e0db44, buffers (4/0/4,740/0/740)
mmal: mmal_connection_enable: 0x16df0d0, vc.ril.video_decode:out:0/vc.ril.video_render:in:0
mmal: mmal_pool_initialise_buffer_headers: allocating 1382400 bytes for payload 0/3
mmal: mmal_port_payload_alloc: vc.ril.video_render(2:0) port 0x16dbb80, size 1382400
mmal: mmal_vc_port_payload_alloc: vc.ril.video_render:in:0(I420): allocating 1382400 bytes, format I420, is_zero_copy 0
mmal: mmal_vc_port_payload_alloc: vc.ril.video_render:in:0(I420): allocated at 0x72eae020
mmal: mmal_port_acquire: port vc.ril.video_render:in:0(I420)(0x16dbb80), refcount 0
mmal: mmal_pool_initialise_buffer_headers: allocating 1382400 bytes for payload 1/3
mmal: mmal_port_payload_alloc: vc.ril.video_render(2:0) port 0x16dbb80, size 1382400
mmal: mmal_vc_port_payload_alloc: vc.ril.video_render:in:0(I420): allocating 1382400 bytes, format I420, is_zero_copy 0
mmal: mmal_vc_port_payload_alloc: vc.ril.video_render:in:0(I420): allocated at 0x72d5c020
mmal: mmal_port_acquire: port vc.ril.video_render:in:0(I420)(0x16dbb80), refcount 1
mmal: mmal_pool_initialise_buffer_headers: allocating 1382400 bytes for payload 2/3
mmal: mmal_port_payload_alloc: vc.ril.video_render(2:0) port 0x16dbb80, size 1382400
mmal: mmal_vc_port_payload_alloc: vc.ril.video_render:in:0(I420): allocating 1382400 bytes, format I420, is_zero_copy 0
mmal: mmal_vc_port_payload_alloc: vc.ril.video_render:in:0(I420): allocated at 0x72c0a020
mmal: mmal_port_acquire: port vc.ril.video_render:in:0(I420)(0x16dbb80), refcount 2
mmal: mmal_port_enable: vc.ril.video_decode:out:0 port 0x16d9650, cb 0x76e0b12c, buffers (3/1/1,1382400/1382400/1382400)
mmal: mmal_port_enable: vc.ril.video_render:in:0(I420) port 0x16dbb80, cb 0x76e0b1d8, buffers (3/3/2,1382400/1382400/1382400)
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16d9ef8, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
decoder input callback
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16da0d0, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
stop decoding
mmal: mmal_port_disable: vc.ril.video_decode(2:0) port 0x16d9330
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16dfdd0,0x72eae020,0
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16da2a8, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16dffa8,0x72d5c020,0
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16da480, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16e0180,0x72c0a020,0
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16d9ef8, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
decoder input callback
mmal: mmal_connection_bh_in_cb: (vc.ril.video_render:in:0(I420))0x16dbb80,0x16dfdd0,0x72eae020,0
mmal: mmal_connection_bh_in_cb: (vc.ril.video_render:in:0(I420))0x16dbb80,0x16dffa8,0x72d5c020,0
mmal: mmal_connection_bh_in_cb: (vc.ril.video_render:in:0(I420))0x16dbb80,0x16e0180,0x72c0a020,0
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16da0d0, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16dfdd0,0x72eae020,0
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16da2a8, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16dffa8,0x72d5c020,0
mmal: mmal: mmal_connection_bh_in_cb: (vc.ril.video_render:in:0(I420))0x16dbb80,0x16dfdd0,0x72eae020,0
mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16da480, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16e0180,0x72c0a020,0
mmal: mmal_port_disable_internal: vc.ril.video_decode:in:0(H264) waiting for 0 buffers left in transit
mmal: mmal_port_disable_internal: vc.ril.video_decode:in:0(H264) has no buffers left in transit
stopmmal: mmal_connection_bh_in_cb: (vc.ril.video_render:in:0(I420))0x16dbb80,0x16dffa8,0x72d5c020,0
mmal: mmal_graph_disable: graph: 0x16d87a0
mmal: mmal_connection_bh_in_cb: (vc.ril.video_render:in:0(I420))0x16dbb80,0x16e0180,0x72c0a020,0
mmal: mmal_port_event_get: vc.ril.video_decode(1:0) port 0x16d9020, event ERRO
mmal: graph_control_cb: port: vc.ril.video_decode:ctr:0(0x16d9020), buffer: 0x16d9ef8, event: ERRO
mmal: graph_control_cb: event lost on port 1,0 (event callback not defined)
mmal: mmal_connection_bh_out_cb: (vc.ril.video_decode:out:0)0x16d9650,0x16dfdd0,0x72eae020,0
mmal: graph_worker_thread: worker thread exit 0x16d87a0
mmal: mmal_connection_disable: 0x16df0d0, vc.ril.video_decode:out:0/vc.ril.video_render:in:0
mmal: mmal_port_disable: vc.ril.video_render(2:0) port 0x16dbb80
mmal: mmal_port_disable_internal: vc.ril.video_render:in:0(I420) waiting for 0 buffers left in transit
mmal: mmal_port_disable_internal: vc.ril.video_render:in:0(I420) has no buffers left in transit
mmal: mmal_port_disable: vc.ril.video_decode(3:0) port 0x16d9650
mmal: mmal_port_disable_internal: vc.ril.video_decode:out:0 waiting for 0 buffers left in transit
mmal: mmal_port_disable_internal: vc.ril.video_decode:out:0 has no buffers left in transit
mmal: mmal_component_release: component vc.ril.video_decode(0), refcount 2
mmal: mmal_component_release: component vc.ril.video_render(1), refcount 2
mmal: mmal_graph_destroy: 0x16d87a0
mmal: mmal_connection_release: connection vc.ril.video_decode:out:0/vc.ril.video_render:in:0(0x16df0d0), refcount 1
mmal: mmal_connection_release: destroying connection vc.ril.video_decode:out:0/vc.ril.video_render:in:0(0x16df0d0)
mmal: mmal_port_payload_free: vc.ril.video_render(2:0) port 0x16dbb80, payload 0x72eae020
mmal: mmal_port_release: port vc.ril.video_render:in:0(I420)(0x16dbb80), refcount 3
mmal: mmal_port_payload_free: vc.ril.video_render(2:0) port 0x16dbb80, payload 0x72d5c020
mmal: mmal_port_release: port vc.ril.video_render:in:0(I420)(0x16dbb80), refcount 2
mmal: mmal_port_payload_free: vc.ril.video_render(2:0) port 0x16dbb80, payload 0x72c0a020
mmal: mmal_port_release: port vc.ril.video_render:in:0(I420)(0x16dbb80), refcount 1
mmal: mmal_component_release: component vc.ril.video_decode(0), refcount 1
mmal: mmal_component_release_internal: vc.ril.video_decode 0 preparing for destruction
mmal: mmal_port_disable: vc.ril.video_decode(1:0) port 0x16d9020
mmal: mmal_port_disable_internal: vc.ril.video_decode:ctr:0 waiting for 0 buffers left in transit
mmal: mmal_port_disable_internal: vc.ril.video_decode:ctr:0 has no buffers left in transit
mmal: mmal_port_disconnect: vc.ril.video_decode:in:0(H264)(0x16d9330)
mmal: mmal_port_disconnect: vc.ril.video_decode:in:0(H264)(0x16d9330) is not connected
mmal: mmal_port_disconnect: vc.ril.video_decode:out:0(0x16d9650)
mmal: mmal_port_disconnect: vc.ril.video_decode:out:0(0x16d9650) is not connected
mmal: mmal_port_disconnect: vc.ril.video_decode:clk:0(0x16d9990)
mmal: mmal_port_disconnect: vc.ril.video_decode:clk:0(0x16d9990) is not connected
mmal: mmal_component_destroy_internal: vc.ril.video_decode 0
mmal: mmal_port_free: vc.ril.video_decode:in:0(H264) at 0x16d9330
mmal: mmal_port_free: vc.ril.video_decode:out:0 at 0x16d9650
mmal: mmal_port_free: vc.ril.video_decode:clk:0 at 0x16d9990
mmal: mmal_port_free: vc.ril.video_decode:ctr:0 at 0x16d9020
mmal: mmal_component_release: component vc.ril.video_render(1), refcount 1
mmal: mmal_component_release_internal: vc.ril.video_render 1 preparing for destruction
mmal: mmal_port_disable: vc.ril.video_render(1:0) port 0x16db860
mmal: mmal_port_disable_internal: vc.ril.video_render:ctr:0 waiting for 0 buffers left in transit
mmal: mmal_port_disable_internal: vc.ril.video_render:ctr:0 has no buffers left in transit
mmal: mmal_port_disconnect: vc.ril.video_render:in:0(I420)(0x16dbb80)
mmal: mmal_port_disconnect: vc.ril.video_render:in:0(I420)(0x16dbb80) is not connected
mmal: mmal_component_destroy_internal: vc.ril.video_render 1
mmal: mmal_port_free: vc.ril.video_render:in:0(I420) at 0x16dbb80
mmal: mmal_port_free: vc.ril.video_render:ctr:0 at 0x16db860
2699689.232: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-2:failed 3
2699689.334: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-1:failed 3
2699689.461: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-2:failed 3
2699689.562: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-2:failed 3
2699689.918: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-1:failed 3
2699690.554: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-2:failed 3
2699690.650: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-2:failed 3
2699690.962: mmalsrv: mmal_server_do_buffer_from_host: ril mem ril.video_decod-2:failed 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment