Skip to content

Unibrain Fire-i Board BW freeze fix #37

@ecolner

Description

@ecolner

I was experiencing freezes using the Unibrain Fire-i Board BW FireWire camera. After adding logging and testing start/acquire/stop for 24 hours I determined the filter graph as configured is incompatible with this particular device. Note that the Logitech Webcam C170 USB device that I'm using for testing did not experience any freezes with the original graph or the new graph after my code change.

The filter that seems to have caused the issue is the IMediaFilter with SetSyncSource to NULL.

I've commented this code and my test passed without any freezes.

// EXP - lets try setting the sync source to null - and make it run as fast as possible
{
    IMediaFilter *pMediaFilter = 0;
    hr = VD->pGraph->QueryInterface(IID_IMediaFilter, (void**)&pMediaFilter);
    if (FAILED(hr)){
        if(verbose)printf("ERROR: Could not get IID_IMediaFilter interface\n");
    }else{
        pMediaFilter->SetSyncSource(NULL);
        pMediaFilter->Release();
    }
}

https://msdn.microsoft.com/en-us/library/windows/desktop/dd377588(v=vs.85).aspx

You can also set the filter graph to run with no clock, by calling SetSyncSource with the value NULL. If there is no clock, the graph runs as quickly as possible. With no clock, renderer filters do not wait for a sample's presentation time. Instead, they render each sample as soon as it arrives. Setting the graph to run without a clock is useful if you want to process data quickly, rather than previewing it in real time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions