Dev Center
Table of contents

Thanks for downloading Dynamsoft Barcode Reader Package!

Your download will start shortly. If your download does not begin, click here to retry.

Video Methods

Method Description
StartFrameDecoding Decode barcodes from inner frame queue.
StartFrameDecodingEx Decode barcodes from inner frame queue.
AppendFrame Append a frame image buffer to the inner frame queue.
StopFrameDecoding Stop thread used for frame decoding.
InitFrameDecodingParameters Initialize frame decoding parameter.
SetErrorCallback Set callback function to process errors which is triggered when the library finishes decoding a frame.
SetTextResultCallback Set callback function to process text results which is triggered when the library finishes decoding a frame.
SetUniqueBarcodeCallback Set callback function to process text results which is triggered when the library finishes decoding a frame and finds unique barcodes.
SetIntermediateResultCallback Set callback function to process intermediate results which is triggered when the library finishes decoding a frame.
GetLengthOfFrameQueue Get length of current inner frame queue.

StartFrameDecoding

Start a new thread to decode barcodes from the inner frame queue with specific frame decoding setting passed in.

int dynamsoft::dbr::CBarcodeReader::StartFrameDecoding (const int maxQueueLength, const int maxResultQueueLength, const int width, const int height, const int stride, const ImagePixelFormat format, const char* pTemplateName = "") 

Parameters
[in] maxQueueLength The max number of frames waiting for decoding.
[in] maxResultQueueLength The max number of frames whose results (text result/localization result) will be kept.
[in] width The width of the frame image in pixels.
[in] height The height of the frame image in pixels.
[in] stride The stride (or scan width) of the frame image.
[in] format The image pixel format used in the image byte array.
[in] pTemplateNameOptional The template name.

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_FRAME_DECODING_THREAD_EXISTS; DBRERR_PARAMETER_VALUE_INVALID.
You can call GetErrorString to get detailed error message.

Code Snippet

char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
    // add further process
    reader->Recycle();
}

Remarks
If no template name is specified, current runtime settings will be used.

StartFrameDecodingEx

Start a new thread to decode barcodes from the inner frame queue with specific frame decoding setting defined in FrameDecodingParameters struct.

int dynamsoft::dbr::CBarcodeReader::StartFrameDecodingEx (FrameDecodingParameters parameters, const char* pTemplateName = "")	

Parameters
[in] parameters The frame decoding parameters.
[in] pTemplateNameOptional The template name.

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_FRAME_DECODING_THREAD_EXISTS; DBRERR_PARAMETER_VALUE_INVALID.
You can call GetErrorString to get detailed error message.

Code Snippet

char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    FrameDecodingParameters parameters;
    int errorCode = reader->InitFrameDecodingParameters(&parameters);
    if(errorCode == DBR_OK)
    {
        parameters.maxQueueLength = 3;
        parameters.maxResultQueueLength = 10;
        parameters.width = 20;
        parameters.height = 30;
        parameters.stride = 10;
        parameters.imagePixelFormat = IPF_GRAYSCALED;
        parameters.region.regionMeasuredByPercentage = 1;
        parameters.region.regionTop = 0;
        parameters.region.regionBottom = 100;
        parameters.region.regionLeft = 0;
        parameters.region.regionRight = 100;
        parameters.threshold = 0.1;
        parameters.fps = 0;
        reader->StartFrameDecodingEx(parameters, "");
    }
    // add further process
    reader->Recycle();
}

Remarks
If no template name is specified, current runtime settings will be used.

AppendFrame

Append a frame image buffer to the inner frame queue.

int dynamsoft::dbr::CBarcodeReader::AppendFrame (unsigned char* pBufferBytes) 

Parameters
[in] pBufferBytes The array of bytes which contain the image data.

Return Value
Returns the ID of the appended frame.

Code Snippet

char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    int frameId = reader->AppendFrame(pBufferBytes);
    // add further process
    reader->Recycle();
}

StopFrameDecoding

Stop the frame decoding thread created by StartFrameDecoding or StartFrameDecodingEx.

int dynamsoft::dbr::CBarcodeReader::StopFrameDecoding() 

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_STOP_DECODING_THREAD_FAILED.
You can call GetErrorString to get detailed error message.

Code Snippet

char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
    int errorCode = reader->StopFrameDecoding();
    // add further process
    reader->Recycle();
}

InitFrameDecodingParameters

Initialize frame decoding parameters with default values.

int dynamsoft::dbr::CBarcodeReader::InitFrameDecodingParameters (FrameDecodingParameters* pParameters)

Parameters
[in,out] pParameters The frame decoding parameters.

Return Value
Returns error code. Possible return(s): DBR_OK.
You can call GetErrorString to get detailed error message.

Code Snippet

char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    FrameDecodingParameters parameters;
    int errorCode = reader->InitFrameDecodingParameters(&parameters);
    if(errorCode == DBR_OK)
    {
        parameters.maxQueueLength = 3;
        parameters.maxResultQueueLength = 10;
        parameters.width = 20;
        parameters.height = 30;
        parameters.stride = 10;
        parameters.imagePixelFormat = IPF_GRAYSCALED;
        parameters.region.regionMeasuredByPercentage = 1;
        parameters.region.regionTop = 0;
        parameters.region.regionBottom = 100;
        parameters.region.regionLeft = 0;
        parameters.region.regionRight = 100;
        parameters.threshold = 0.1;
        parameters.fps = 0;
        reader->StartFrameDecodingEx(parameters, "");
    }
    // add further process
    reader->Recycle();
}

SetErrorCallback

Set callback function to process errors which is triggered when the library finishes decoding a frame.

int dynamsoft::dbr::CBarcodeReader::SetErrorCallback (CB_Error cbFunction, void* pUser)	

Parameters
[in] cbFunction Callback function.
[in] pUser Customized arguments passed to your function.

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_FRAME_DECODING_THREAD_EXISTS.
You can call GetErrorString to get detailed error message.

Code Snippet

void ErrorFunction(int frameId, int errorCode, void * pUser)
{
    //TODO add your code for using error code
}
char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    reader->SetErrorCallback(ErrorFunction, NULL);
    reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
    // add further process
    reader->Recycle();
}

SetTextResultCallback

Set callback function to process text results which is triggered when the library finishes decoding a frame.

int dynamsoft::dbr::CBarcodeReader::SetTextResultCallback (CB_TextResult cbFunction, void* pUser)	

Parameters
[in] cbFunction Callback function.
[in] pUser Customized arguments passed to your function.

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_FRAME_DECODING_THREAD_EXISTS.
You can call GetErrorString to get detailed error message.

Code Snippet

void TextResultFunction(int frameId, TextResultArray *pResults, void * pUser)
{
    //TODO add your code for using text results
}
char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    reader->SetTextResultCallback(TextResultFunction, NULL);
    reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
    // add further process
    reader->Recycle();
}

SetUniqueBarcodeCallback

Set callback function to process text results which is triggered when the library finishes decoding a frame and finds unique barcodes.

int dynamsoft::dbr::CBarcodeReader::SetUniqueBarcodeCallback(CB_TextResult cbFunction, void* pUser)

Parameters
[in] cbFunction Callback function.
[in] pUserCustomized arguments passed to your function.

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_FRAME_DECODING_THREAD_EXISTS.
You can call GetErrorString to get detailed error message.

Code Snippet

void TextResultFunction(int frameId, TextResultArray *pResults, void * pUser)
{
    //TODO add your code for using text results
}
char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    reader->SetUniqueBarcodeCallback(TextResultFunction, NULL);
    reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
    // add further process
    reader->Recycle();
}

SetIntermediateResultCallback

Set callback function to process intermediate results which is triggered when the library finishes decoding a frame.

int dynamsoft::dbr::CBarcodeReader::SetIntermediateResultCallback (CB_IntermediateResult cbFunction, void* pUser)		

Parameters
[in] cbFunction Callback function.
[in] pUser Customized arguments passed to your function.

Return Value
Returns error code. Possible return(s): DBR_OK; DBRERR_FRAME_DECODING_THREAD_EXISTS.
You can call GetErrorString to get detailed error message.

Code Snippet

void IntermediateResultFunction(int frameId, IntermediateResultArray *pResults, void * pUser)
{
    //TODO add your code for using intermediate results
}
char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
    reader->GetRuntimeSettings(pSettings);
    pSettings->intermediateResultTypes = IRT_ORIGINAL_IMAGE | IRT_COLOUR_CLUSTERED_IMAGE | IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE;
    char errorMessage[256];
    reader->UpdateRuntimeSettings(pSettings, errorMessage, 256);
    reader->SetIntermediateResultCallback(IntermediateResultFunction, NULL);
    reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
    // add further process
    reader->Recycle();
}

GetLengthOfFrameQueue

Get length of current inner frame queue.

int dynamsoft::dbr::CBarcodeReader::GetLengthOfFrameQueue ()	

Return Value
Returns length of current inner frame queue.

Code Snippet

char errorBuf[512];
dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
CBarcodeReader* reader = CBarcodeReader::GetInstance();
if(reader != NULL)
{
    int frameLength = reader->GetLengthOfFrameQueue();
    // add further process
    reader->Recycle();
}

This page is compatible for:

Version 7.5.0

Is this page helpful?

YesYes NoNo

In this article:

latest version

  • Latest version
  • Version 10.x
    • Version 10.0.20
    • Version 10.0.10
    • Version 10.0.0
  • Version 9.x
    • Version 9.6.30
    • Version 9.6.20
    • Version 9.6.10
    • Version 9.6.0
    • Version 9.4.0
    • Version 9.2.0
    • Version 9.0.0
  • Version 8.x
    • Version 8.8.0
    • Version 8.6.0
    • Version 8.4.0
    • Version 8.2.0
    • Version 8.1.2
    • Version 8.1.0
    • Version 8.0.0
  • Version 7.x
    • Version 7.6.0
    • Version 7.5.0
Change +