This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: App_srv_camera output

Part Number: TDA4VM


Dear

static vx_status app_run_graph(AppObj *obj)
{
    vx_status status = VX_SUCCESS;
    uint32_t num_refs, buf_id;
    int graph_parameter_num = 0;
    uint32_t iteration = 0;

    if(NULL == obj->sensor_name)
    {
        printf("sensor name is NULL \n");
        status = VX_FAILURE;
    }
    if(status == VX_SUCCESS)
    {
        status = appStartImageSensor(obj->sensor_name, 0xF);
        APP_PRINTF("Sensor start status = %d\n", status);
    }

    /* Enqueue buf for pipe up but don't trigger graph execution */
    for(buf_id=0; buf_id<NUM_BUFS; buf_id++)
    {
        graph_parameter_num = 0;
        if(status == VX_SUCCESS)
        {
            status = vxGraphParameterEnqueueReadyRef(obj->graph, graph_parameter_num,
                       (vx_reference*)&obj->capt_frames[buf_id], 1);
        }
        graph_parameter_num++;
    }
    if(obj->test_mode == 1)
    {
        for(buf_id=0; buf_id<NUM_BUFS; buf_id++)
        {
            if(status == VX_SUCCESS)
            {
                status = vxGraphParameterEnqueueReadyRef(obj->graph, obj->displayNodeGraphParamNum,
                                (vx_reference*)&obj->output_image[buf_id], 1);
            }
        }
    }

    /* wait for graph instances to complete, compare output and
     * recycle data buffers, schedule again */
    vx_uint32 actual_checksum = 0;
    while(status == VX_SUCCESS)
    {
        vx_object_array out_capture_frames;
        vx_image test_image;
        graph_parameter_num = 0;

        appPerfPointBegin(&obj->total_perf);

        /* Get output reference, waits until a frame is available */
        if(status == VX_SUCCESS)
        {
            status = vxGraphParameterDequeueDoneRef(obj->graph, graph_parameter_num,
                            (vx_reference*)&out_capture_frames, 1, &num_refs);
        }
        graph_parameter_num++;

        if(obj->test_mode == 1)
        {
            /* Get output reference, waits until a frame is available */
            if(status == VX_SUCCESS)
            {
                status = vxGraphParameterDequeueDoneRef(obj->graph, obj->displayNodeGraphParamNum,
                                                        (vx_reference*)&test_image, 1, &num_refs);
            }
            printf("test iteration: %d of %d\n", iteration, TEST_BUFFER+1);
            if( (status == VX_SUCCESS) && (iteration > TEST_BUFFER) )
            {
                if(app_test_check_image(test_image, checksums_expected[0][0], &actual_checksum) == vx_false_e)
                {
                    test_result = vx_false_e;
                }
                populate_gatherer(0, 0, actual_checksum);
                obj->stop_task = 1;
            }
            /* Get output reference, waits until a frame is available */
            if(status == VX_SUCCESS)
            {
                status = vxGraphParameterEnqueueReadyRef(obj->graph, obj->displayNodeGraphParamNum,
                                (vx_reference*)&test_image, 1);
            }
        }

        graph_parameter_num = 0;
        if(status == VX_SUCCESS)
        {
            status = vxGraphParameterEnqueueReadyRef(obj->graph, graph_parameter_num, (vx_reference*)&out_capture_frames, 1);
        }
        graph_parameter_num++;

        appPerfPointEnd(&obj->total_perf);

        if(iteration==100)
        {
            /* after first 'n' iteration reset performance stats */
            appPerfStatsResetAll();
        }

        iteration++;

        if((obj->stop_task) || (status != VX_SUCCESS))
        {
            break;
        }
    }
    /* ensure all graph processing is complete */
    vxWaitGraph(obj->graph);

    /* Dequeue buf for pipe down */
    num_refs = 0xFF;
    graph_parameter_num = 0;
    while((num_refs > 0) && (status == VX_SUCCESS))
    {
        vx_object_array out_capture_frames;
        if(status == VX_SUCCESS)
        {
            status = vxGraphParameterCheckDoneRef(obj->graph, graph_parameter_num, &num_refs);
        }
        if(num_refs > 0)
        {
            APP_PRINTF("Dequeue capture\n");
            if(status == VX_SUCCESS)
            {
                status = vxGraphParameterDequeueDoneRef(
                                            obj->graph,
                                            graph_parameter_num,
                                            (vx_reference*)&out_capture_frames,
                                            1,
                                            &num_refs);
            }
        }
    }
    num_refs = 0xFF;
    while((num_refs > 0) && (obj->test_mode == 1) && (status == VX_SUCCESS))
    {
        vx_image out_image;
        if(status == VX_SUCCESS)
        {
            status = vxGraphParameterCheckDoneRef(obj->graph, obj->displayNodeGraphParamNum, &num_refs);
        }
        if(num_refs > 0)
        {
            APP_PRINTF("Dequeue display \n");
            if(status == VX_SUCCESS)
            {
                status = vxGraphParameterDequeueDoneRef(
                                            obj->graph,
                                            obj->displayNodeGraphParamNum,
                                            (vx_reference*)&out_image,
                                            1,
                                            &num_refs);
            }
        }
    }
    return status;
}
,

How can I find the output stream in "app_srv_camera" in this code and convert it (RGB) to H264 output?