-
-
Save t-moe/7a9dc07ab343b50cfa96247d4d083604 to your computer and use it in GitHub Desktop.
graph_encode_decode mmal test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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