Software Migration Considerations

This section of documentation covers the notable API differences between the current release of SDK, 1.2.1, and previous versions.

API Changes from Alveo U30

This sub-section describes differences between U30 and MA35D

FFmpeg API Changes

Options General

MA35D

U30

-c:v:

Used for codec selection. Aside from naming convention changes, new AV1 codec and VP9 decoder are now available.

-c:v

-c:v

-filter_complex:

Used for frame filtering operation. Aside from naming convention changes, new 2D composition and ML operations are now available.

-filter_complex

-filter_complex

-hwaccel:

Used to select hardware accelerator engine. This option was previously referred to as xlnx_hwdev.

-hwaccel

-xlnx_hwdev

-vf:

Used to select the DMA transfer direction between host and accelerator.

-vf

xvbm_convert

Options Encoder

Version 1.2.1

U30

-level:

Used to specify encoder's level. It now supports AV1's levels.

-level

-level

-profile:

Used to set encoder's profile. It now supports AV1's main.

-profile

-profile

-control_rate:

Used to set rate control mode. Options to this setting have changed.

-control_rate

-control-rate

-tune_metrics:

Used to tune VQ metrics. Options to this setting have changed.

-tune_metrics

-tune-metrics

-cores:

Used to explicitly specify the number of processing cores.

Deprecated

-cores

-periodicity-idr:

Used to determine IDR frame frequency.

Deprecated

-periodicity-idr

-disable-pipeline:

Used to enable/disable pipelining.

Deprecated

-disable-pipeline

-aspect-ratio:

Used to set video's aspect ratio.

Deprecated

-aspect-ratio

-expert-options:

Used to set encoder's expert option.

Deprecated

-expert-options

-avc-lowlat:

Used to enable/disable ULL for AVC.

Deprecated

-avc-lowlat

Options Decoder

Version 1.2.1

U30

-splitbuff_mode:

Used to configure decoder's buffer mode.

Deprecated

-splitbuff_mode

-entropy_buffers_count:

Used to set number of decoder's entropy buffers.

Deprecated

-entropy_buffers_count

Options Scaler

Version 1.2.1

U30

-out_{N}_width:

Used to configure width of an output rung.

Deprecated

-out_{N}_width

-out_{N}_height:

Used to configure height of an output rung.

Deprecated

-out_{N}_height

-out_{N}_rate:

Used to configure frame rate of an output rung.

Deprecated

-out_{N}_rate

Gstreamer API Changes

Options Encoder

Version 1.2.1

U30

tune_metrics:

Used to tune VQ metrics. Options to this setting have changed.

tune-metrics

tune-metrics

ultra-low-latency:

Used to set ULL mode.

Set lookahead-depth to 0.

ultra-low-latency

target-bitrate:

Used to set target bit rate.

bitrate

target-bitrate

control_rate:

Used to set rate control mode. Options to this setting have changed.

rate-control

control-rate

dev-idx:

Used to specify the index of the device on which the encoder should be executed.

device

dev-idx

aspect-ratio:

Used to set video’s aspect ratio.

Deprecated

aspect-ratio

avc-lowlat:

Used to enable/disable ULL for AVC.

Deprecated

avc-lowlat

dependent-slice:

Used to specify slice dependency.

Deprecated

dependent-slice

enable-pipeline:

Used to enable/disable pipelining.

Deprecated

enable-pipeline

ip-delta:

Used to set IP delta.

Deprecated

ip-delta

loop-filter-beta-offset:

Used to set loop filter beta offset.

Deprecated

loop-filter-beta-offset

loop-filter-tc-offset:

Used to set loop filter tc offset..

Deprecated

loop-filter-tc-offset

slice-qp:

Used to set slice QP mode.

Deprecated

slice-qp

scaling-list:

Used to set lscaling list mode.

Deprecated

scaling-list

reservation-id:

Used to set resource pool reservation id.

Deprecated

reservation-id

rc-mode:

Used to enable custom rate control mode.

Deprecated

rc-mode

qp-mode:

Used to set QP control mode used by the encoder.

Deprecated

qp-mode

pb-delta:

Used to set PB delta.

Deprecated

pb-delta

periodicity-idr:

Used to set periodicity of IDR frames.

Deprecated

periodicity-idr

num-cores:

Used to set the number of encoder cores to be used for current stream.

Deprecated

num-cores

num-slices:

Used to set the number of slices produced for each frame.

Deprecated

num-slices

Options Decoder

Version 1.2.1

U30

dev-idx:

Used to specify the index of the device on which the decoder should be executed.

device

dev-idx

avoid-dynamic-alloc:

Used to set a flag to avoid dynamic allocation of output buffers.

Deprecated

avoid-dynamic-alloc

avoid-output-copy:

Used to set a flag to avoid output frames copy.

Deprecated

avoid-output-copy

disable-hdr10-sei:

Used to configure whether to passthrough HDR10/10+ SEI messages or not.

Deprecated

disable-hdr10-sei

interpolate-timestamps:

Used to configure interpolation of output buffers PTS.

Deprecated

interpolate-timestamps

num-entropy-buf:

Used to specifie the number of decoder internal entropy buffers.

Deprecated

num-entropy-buf

reservation-id:

Used to set resource Pool Reservation id.

Deprecated

reservation-id

splitbuff-mode:

Used to configure decoder in split/unsplit input buffer mode.

Deprecated

splitbuff-mode

Options Scaler

Version 1.2.1

U30

dev-idx:

Used to specify the index of the device on which the scaler should be executed.

device

dev-idx

avoid-output-copy:

Used to set a flag to avoid output frames copy on all source pads.

Deprecated

avoid-output-copy

coef-load-type:

Used to configure coefficients loading type for scaling.

Deprecated

coef-load-type

enable-pipeline:

Used to enable buffer pipelining to improve performance in non zero-copy use cases.

Deprecated

enable-pipeline

reservation-id:

Used to configure resource pool reservation id.

Deprecated

reservation-id

CLI Changes from 1.1.2 to 1.2

This sub-section describes differences between 1.1.2 and current version.

PCIe Addressing

Unlike the previous version, where PCIe devices were addressed as DBDF, this release uses BDF scheme. See Card Management.

FFmpeg CLI Changes

Options General

1.2

1.1.2

-c:v:

New still image codecs are now available. See -c:v for details.

-c:v

-c:v

Options Encoder

1.2

1.1.2

-control_rate:

cabr has been removed as a rate control mode, and can now be applied as a modifier to all encoding modes.

-control_rate and -cabr

-control_rate

-crf:

Changes have been made in the call parameters.

-crf <value>

-crf 1 -qp <value>

Options Decoder

1.2

1.1.2

-resize:

Option to perform downscaling through decoders has been added.

-resize

Options 2D Engine

1.2

1.1.2

crop, pad, drawbox, and other 2D operations:

2D operations that were previously sub-commands of 2d_ama are now invoked with a simpler syntax.

2D Engine

-scaler_ama and -2d_ama

Card Management

Options

1.2

1.1.2

maflash has been deprecated and it is now a sub command of mamgmt.

See mamgmt.

mamgmt

Syntax for creation of VF has been updated.

See mamgmt.

mautil

C APIs

See relevant sub-sections in C API Programming Guide.

CLI Changes from 1.2 to 1.2.1

This sub-section describes differences between 1.2 and current version.

FFmpeg CLI Changes

Options Encoder

1.2.1

1.2

-control_rate:

cbr, vbr, and cvbr modes have to have their bit rate values set, explicitly.

const_qp mode have to have its qp value set, explicitly.

-control_rate

-control_rate

-crf:

-crf mode have to have its value set, explicitly.

-crf <value>

-crf <value>

hwupload and hwdownload:

hwupload and hwdownload plugins are deprecated.

hwupload_ama and hwdownload_ama

hwupload and hwdownload

Gstreamer API Changes

Options Encoder

1.2.1

1.2

rate-control:

cbr, vbr, and cvbr modes have to have their bit rate values set, explicitly.

cqp mode have to have its qp value set, explicitly.

rate-control

rate-control

crf:

crf mode have to have its value set, explicitly.

crf <value>

crf <value>

C APIs

See 1.2.1 SDK API.