Dev Center
Table of contents

C++ API Reference - CBarcodeReader Video Methods


StartFrameDecoding

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

int 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.

Remark

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

Code Snippet

CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
delete reader;

StartFrameDecodingEx

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

int 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.

Remark

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

Code Snippet

CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
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, "");
}
delete reader;

AppendFrame

Append a frame image buffer to the inner frame queue.

int 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

CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
int frameId = reader->AppendFrame(pBufferBytes);
delete reader;

StopFrameDecoding

Stop the frame decoding thread created by StartFrameDecoding or StartFrameDecodingEx.

int 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

CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");
int errorCode = reader->StopFrameDecoding();
delete reader;

InitFrameDecodingParameters

Initialize frame decoding parameters with default values.

int 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

CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
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, "");
}
delete reader;

SetErrorCallback

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

int 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
}
CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
reader->SetErrorCallback(ErrorFunction, NULL);
reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");

SetTextResultCallback

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

int 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
}
CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
reader->SetTextResultCallback(TextResultFunction, NULL);
reader->StartFrameDecoding(2, 10, 1024, 720, 720, IPF_BINARY, "");

SetIntermediateResultCallback

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

int 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
}
CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
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, "");

GetLengthOfFrameQueue

Get length of current inner frame queue.

int CBarcodeReader::GetLengthOfFrameQueue ()	

Return value

Returns length of current inner frame queue.

Code Snippet

CBarcodeReader* reader = new CBarcodeReader();
reader->InitLicense("t0260NwAAAHV***************");
int frameLength = reader->GetLengthOfFrameQueue();
delete reader;

This page is compatible for:

Is this page helpful?

YesYes NoNo

In this article:

version 7.6.0

  • Latest version
  • Version 10.x
    • Version 10.4.10
    • Version 10.2.10
    • Version 10.2.0
    • Version 10.0.20
    • Version 10.0.10
    • Version 10.0.0
  • Version 9.x
    • Version 9.6.40
    • 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
  • Documentation Homepage
Change +