Codec Engine Application Programming Interface (API)  ce-w08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros 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.

@remarks 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 @c size parameter.
Remarks:
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.
@sa         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.

@remarks 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

                                 @sa 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.

                                 @sa 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.

                                @remarks   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().

                                @remarks   Apps/frameworks that don't
                                           support datasync should set
                                           this to NULL.

                                @remarks   For an algorithm, this handle
                                           is read-only; it must not be
                                           modified when calling
                                           the app-registered
                                           IVIDENC2_DynamicParams.putDataFxn().

                                @remarks   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.

                                @remarks   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 @c getDataFxn.

                                @remarks   Apps/frameworks that don't
                                           support datasync should set
                                           this to NULL.

                                @remarks   For an algorithm, this handle
                                           is read-only; it must not be
                                           modified when calling
                                           the app-registered
                                           IVIDENC2_DynamicParams.getDataFxn().

                                @remarks   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.

                                @remarks   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().

                                @remarks   Apps/frameworks that don't
                                           support datasync should set
                                           this to NULL.

                                @remarks   For an algorithm, this handle
                                           is read-only; it must not be
                                           modified when calling
                                           the app-registered
                                           IVIDENC2_DynamicParams.getBufferFxn().

                                @remarks   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.

                                @remarks   This field is used to
                                           provide the
                                           'late acquire' arg required by
                                           #XDM_SETLATEACQUIREARG.

                                @remarks   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
                                           @c 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