XDAIS  dais-x04
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Fields
IVIDENC2_DynamicParams Struct Reference

This structure defines the algorithm parameters that can be modified after creation via control() calls. More...

#include <ividenc2.h>

Collaboration diagram for IVIDENC2_DynamicParams:
Collaboration graph

Data Fields

XDAS_Int32 size
XDAS_Int32 inputHeight
XDAS_Int32 inputWidth
XDAS_Int32 refFrameRate
XDAS_Int32 targetFrameRate
XDAS_Int32 targetBitRate
XDAS_Int32 intraFrameInterval
XDAS_Int32 generateHeader
 Encode entire access unit or only header.
XDAS_Int32 captureWidth
XDAS_Int32 forceFrame
XDAS_Int32 interFrameInterval
XDAS_Int32 mvAccuracy
XDAS_Int32 sampleAspectRatioHeight
XDAS_Int32 sampleAspectRatioWidth
XDAS_Int32 ignoreOutbufSizeFlag
XDM_DataSyncPutFxn putDataFxn
XDM_DataSyncHandle putDataHandle
XDM_DataSyncGetFxn getDataFxn
XDM_DataSyncHandle getDataHandle
XDM_DataSyncGetBufferFxn getBufferFxn
XDM_DataSyncHandle getBufferHandle
XDAS_Int32 lateAcquireArg

Detailed Description

This structure defines the algorithm parameters that can be modified after creation via control() calls.

Remarks:
It is not necessary that a given implementation support all dynamic parameters to be configurable at run time. If a particular algorithm does not support run-time updates to a parameter that the application is attempting to change at runtime, it may indicate this as an error.
This structure may be extended by individual codec implementations allowing customization with vendor specific parameters. The presence of vendor specific extensions will be detected by the value of the size parameter.
The size field must be correctly set by the caller. See https://processors.wiki.ti.com/index.php/Extending_data_structures_in_XDM for more details.
See also:
IVIDENC2_Fxns::control()

Field Documentation

XDAS_Int32 IVIDENC2_DynamicParams::size

Size of this structure in bytes. Because this structure can be extended, this field must be correctly set by the caller.

XDAS_Int32 IVIDENC2_DynamicParams::inputHeight

Input frame height.

XDAS_Int32 IVIDENC2_DynamicParams::inputWidth

Input frame width.

XDAS_Int32 IVIDENC2_DynamicParams::refFrameRate

Reference, or input, frame rate in fps * 1000.

Remarks:
For example, if ref frame rate is 30 frames per second, this field will be 30000.
XDAS_Int32 IVIDENC2_DynamicParams::targetFrameRate

Target frame rate in fps * 1000.

Remarks:
For example, if target frame rate is 30 frames per second, this field will be 30000.
XDAS_Int32 IVIDENC2_DynamicParams::targetBitRate

Target bit rate in bits per second.

XDAS_Int32 IVIDENC2_DynamicParams::intraFrameInterval

The number of frames between two I frames. For example, 30.

Remarks:
For example, this field will be:
  • 0 - Only first frame to be intra coded. e.g. IPPPPPP...
  • 1 - No inter frames (all intra frames).
  • 2 - Consecutive IPIPIP... sequence (if no B frames).
  • 3 - IPPIPP... or IPBIPBI... and so on.
XDAS_Int32 IVIDENC2_DynamicParams::generateHeader

Encode entire access unit or only header.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.
This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.
See also:
XDM_CUSTOMENUMBASE

See also:
XDM_EncMode
XDAS_Int32 IVIDENC2_DynamicParams::captureWidth

DEFAULT(0): use imagewidth as pitch else use given capture width for pitch provided it is greater than image width.

XDAS_Int32 IVIDENC2_DynamicParams::forceFrame

Force the current (immediate) frame to be encoded as a specific frame type.

Remarks:
For example, this field will be:
  • IVIDEO_NA_FRAME - No forcing of any specific frame type for the frame.
  • IVIDEO_I_FRAME - Force the frame to be encoded as I frame.
  • IVIDEO_IDR_FRAME - Force the frame to be encoded as an IDR frame (specific to H.264 codecs).
  • IVIDEO_P_FRAME - Force the frame to be encoded as a P frame.
  • IVIDEO_B_FRAME - Force the frame to be encoded as a B frame.
See also:
IVIDEO_FrameType.
XDAS_Int32 IVIDENC2_DynamicParams::interFrameInterval

Number of B frames between two reference frames; that is, the number of B frames between two P frames or I/P frames. DEFAULT(0).

Remarks:
For example, this field will be:
  • 0 - to use maxInterFrameInterval.
  • 1 - 0 B frames between two reference frames.
  • 2 - 1 B frame between two reference frames.
  • 3 - 2 B frames between two reference frames.
  • and so on...
See also:
IVIDENC2_Params.maxInterFrameInterval.
XDAS_Int32 IVIDENC2_DynamicParams::mvAccuracy

Pixel Accuracy of the motion vector

Remarks:
This parameter allows the user to tune performance by controlling the complexity of motion estimation and compensation within the video encoder.
See also:
IVIDENC2_MotionVectorAccuracy
XDAS_Int32 IVIDENC2_DynamicParams::sampleAspectRatioHeight

Sample aspect ratio: Height

Remarks:
This parameter is used to describe the desired aspect ratio in the bitstream.
XDAS_Int32 IVIDENC2_DynamicParams::sampleAspectRatioWidth

Sample aspect ratio: Width

Remarks:
This parameter is used to describe the desired aspect ratio in the bitstream.
XDAS_Int32 IVIDENC2_DynamicParams::ignoreOutbufSizeFlag

Flag to indicate that the application has ignored the output buffer size requirement.

Remarks:
Typically video encoders ask for large output buffers (compressed bit-streams) assuming theoretical worst case. But on memory constrained systems, the application may want to allocate less than this worst-case size, depending upon the use case. If the application provides a buffer that is smaller than the worst-case size, the encoder will return an error. To prevent the encoder from returning an error, the application can set this ignoreOutbufSizeFlag field to XDAS_TRUE. When this flag is set to XDAS_TRUE, the encoder shouldn't return an error even if the output buffer size is less than requested by the codec.
Valid values are XDAS_TRUE and XDAS_FALSE.
XDM_DataSyncPutFxn IVIDENC2_DynamicParams::putDataFxn

Optional datasync "put data" function.

Remarks:
Apps/frameworks that don't support datasync should set this to NULL.
This function is provided by the app/framework to the video encoder. The encoder calls this function when data has been put into an output buffer.
XDM_DataSyncHandle IVIDENC2_DynamicParams::putDataHandle

Datasync "put data" handle

Remarks:
This is a handle which the codec must provide when calling the app-registered IVIDENC2_DynamicParams.putDataFxn().
Apps/frameworks that don't support datasync should set this to NULL.
For an algorithm, this handle is read-only; it must not be modified when calling the app-registered IVIDENC2_DynamicParams.putDataFxn().
The app/framework can use this handle to differentiate callbacks from different algorithms.
XDM_DataSyncGetFxn IVIDENC2_DynamicParams::getDataFxn

Datasync "get data" function.

Remarks:
This function is provided by the app/framework to the video encoder. The encoder calls this function to get partial video buffer(s) from the app/framework.
Apps/frameworks that don't support datasync should set this to NULL.
XDM_DataSyncHandle IVIDENC2_DynamicParams::getDataHandle

Datasync "get data" handle

Remarks:
This is a handle which the codec must provide when calling getDataFxn.
Apps/frameworks that don't support datasync should set this to NULL.
For an algorithm, this handle is read-only; it must not be modified when calling the app-registered IVIDENC2_DynamicParams.getDataFxn().
The app/framework can use this handle to differentiate callbacks from different algorithms.
XDM_DataSyncGetBufferFxn IVIDENC2_DynamicParams::getBufferFxn

Datasync "get buffer" function.

Remarks:
This function is provided by the app/framework to the video encoder. The encoder calls this function to obtain partial compressed bit-stream data buffers from the app/framework.
Apps/frameworks that don't support datasync should set this to NULL.
XDM_DataSyncHandle IVIDENC2_DynamicParams::getBufferHandle

Datasync "get buffer" handle

Remarks:
This is a handle which the codec must provide when calling the app-registered IVIDENC2_DynamicParam.getBufferFxn().
Apps/frameworks that don't support datasync should set this to NULL.
For an algorithm, this handle is read-only; it must not be modified when calling the app-registered IVIDENC2_DynamicParams.getBufferFxn().
The app/framework can use this handle to differentiate callbacks from different algorithms.
XDAS_Int32 IVIDENC2_DynamicParams::lateAcquireArg

Argument used during late acquire.

Remarks:
For all control() commands other than XDM_SETLATEACQUIREARG, this field is ignored and can therefore be set by the caller to any value.
This field is used to provide the 'late acquire' arg required by XDM_SETLATEACQUIREARG.
Late acquire support is an optional feature for video encoders. If the codec supports late acquisition of resources, and the application has supplied a lateAcquireArg value (via XDM_SETLATEACQUIREARG), then the codec must also provide this lateAcquireArg value when requesting resources (i.e. during their call to acquire() when requesting the resource).

The documentation for this struct was generated from the following file:
Copyright 2013, Texas Instruments Incorporated