Texas Instruments DM6467 User Manual
Texas Instruments DM6467 User Manual

Texas Instruments DM6467 User Manual

H.264 1080p@30 bp encoder
Table of Contents

Advertisement

Quick Links

H.264 1080p@30 BP Encoder on
DM6467
User's Guide
Literature Number: SPRUGN8
October 2009

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the DM6467 and is the answer not in the manual?

Questions and answers

Summary of Contents for Texas Instruments DM6467

  • Page 1 H.264 1080p@30 BP Encoder on DM6467 User’s Guide Literature Number: SPRUGN8 October 2009...
  • Page 2 TI as compliant with ISO/TS 16949 requirements. Buyers acknowledge and agree that, if they use any non-designated products in automotive applications, TI will not be responsible for any failure to meet such requirements. Following are URLs where you can obtain information on other Texas Instruments products and application solutions: Products...
  • Page 3: Read This First

    Preface Read This First About This Manual This document describes how to install and work with Texas Instruments’ (TI) H.264 1080p@30 Baseline Profile implementation on the DM6467 platform. It also provides a detailed Application Programming Interface (API) reference and information on the sample application that accompanies this component.
  • Page 4: Related Documentation From Texas Instruments

    TMS320C64x+ DSP Megamodule Reference Guide (literature number SPRU871) describes the C64x+ megamodule peripherals. TMS320C64x to TMS320C64x+ CPU Migration Guide (literature number SPRAA84) describes migration from the Texas Instruments TMS320C64x™ digital signal processor (DSP) to the TMS320C64x+™ DSP. TMS320C6000 Optimizing Compiler v 6.0 Beta User's Guide...
  • Page 5: Related Documentation

    Read This First DaVinci Technology for Digital Video White Paper (literature number SPRY067) The Future of Digital Video White Paper (literature number SPRY066) Related Documentation You can use the following documents to supplement this user guide: ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC - Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification Abbreviations...
  • Page 6: Product Support

    Product Support When contacting TI for support on this codec, quote the product name (H.264 1080p@30 Baseline Profile Encoder on DM6467) and version number. The version number of the codec is included in the Title of the Release Notes that accompanies this codec.
  • Page 7: Table Of Contents

    Contents Read This First ....................... iii About This Manual ....................iii Intended Audience ....................iii How to Use This Manual ...................iii Related Documentation From Texas Instruments.............iv Related Documentation..................... v Abbreviations ......................v Text Conventions ......................vi Product Support ......................vi Trademarks .......................vi Contents......................... vii Figures ..........................
  • Page 8 4.2.2 H.264 Encoder Data Structures ..............4-22 4.3 Interface Functions..................4-30 4.3.1 Creation APIs ....................4-30 4.3.2 Initialization API.................... 4-32 4.3.3 Control API ....................4-34 4.3.4 Data Processing API ..................4-36 4.3.5 Termination API ................... 4-39 Frequently Asked Questions ..................5-1 viii...
  • Page 9: Figures

    Figures Figure 1-1. Working of H.264 Video Encoder ............1-4 Figure 2-1. Component Directory Structure .............. 2-3 Figure 3-1. Test Application Sample Implementation..........3-2 Figure 3-2. Process Call with Host Release............... 3-5 Figure 3-3. Interaction between Application and Codec.......... 3-7...
  • Page 10 This page is intentionally left blank...
  • Page 11: Tables

    Table 1-1. List of Abbreviations..................v Table 2-1. Component Directories................2-3 Table 3-1. Process ( ) Implementation................ 3-9 Table 4-1. List of Enumerated Data Types..............4-2 Table 4-2. H264 Encoder Specific Enumerations............4-7 Table 5-3. FAQs for H264 Encoder on DM6467............5-1...
  • Page 12 This page is intentionally left blank...
  • Page 13: Introduction

    Introduction This chapter provides a brief introduction to XDAIS and XDM. It also provides an overview of TI’s implementation of the H.264 1080p@30 Baseline Profile on the DM6467 platform and its supported features. Topic Page 1.1 Overview of XDAIS and XDM 1.2 Overview of H.264 Base Profile Encoder...
  • Page 14: Overview Of Xdais And Xdm

    Introduction 1.1 Overview of XDAIS and XDM TI’s multimedia codec implementations are based on the eXpressDSP Digital Media (XDM) standard. XDM is an extension of the eXpressDSP Algorithm Interface Standard (XDAIS). 1.1.1 XDAIS Overview An eXpressDSP-compliant algorithm is a module that implements the abstract interface IALG.
  • Page 15: Overview Of H.264 1080P@30 Baseline Profile Encoder

    Introduction (for example audio, video, image, and speech). The XDM standard defines the following two APIs: control() process() API provides a standard way to control an algorithm control() instance and receive status information from the algorithm in real-time. The API replaces the API defined as part of the control() algControl()
  • Page 16: Figure 1-1. Working Of H.264 Video Encoder

    Introduction Figure 1-1 depicts the working of the H.264 Encoder algorithm. Figure 1-1. Working of H.264 Video Encoder In H.264 Encoder, the operations are performed on a set of specific N macro blocks. The value of N at the most can be 2. The operations such as Motion Compensation, Transform and Quantization, Run Length Encoding and Inverse Quantization, and Inverse Transform Blocks are called once, for all the inter macro blocks in the set of N.
  • Page 17: Supported Services And Features

    Introduction 1.3 Supported Services and Features This user guide accompanies TI’s implementation of H.264 Encoder on the DM6467 platform. This version of the codec has the following supported features of the standard: eXpressDSP Digital Media (XDM 1.0 IVIDENC1) compliant Supports YUV420 interleaved color sub-sampling (Y as a single plane and U &...
  • Page 18 Introduction This page is intentionally left blank...
  • Page 19: Installation Overview

    Chapter 2 Installation Overview This chapter provides a brief description on the system requirements and instructions for installing the codec component. It also provides information on building and running the sample test application. Topic Page 2.1 System Requirements 2.2 Installing the Component 2.3 Before Building the Sample Test Application 2.4 Building and Running the Sample Test Application 2.5 Configuration Files...
  • Page 20: System Requirements

    This section describes the hardware and software requirements for the normal functioning of the codec component. 2.1.1 Hardware This codec is built and tested on the DM6467 EVM only. 2.1.2 Software The following are the software requirements for the normal functioning of...
  • Page 21: Figure 2-1. Component Directory Structure

    Installation Overview Figure 2-1. Component Directory Structure Note: If you are installing an evaluation version of this codec, the directory name will be 200E_V_H264AVC_E_1_10. Table 2-1 provides a description of the sub-directories created in the DM6467_BP_001 directory. Table 2-1. Component Directories Sub-Directory Description...
  • Page 22 Installation Overview Sub-Directory Description Csp\Bios Contains BIOS specific files Csp\Csl Contains CSL files Csp\c6x Contains CSL files Csp\Dman3 Contains DMAN3 related files \H264Encoder\AlgSrc\enc\Build Contains the algorithm application project (.pjt) file \H264Encoder\AlgSrc\enc\Build\asm Contains the assembly files generated by the compiler during compilation \H264Encoder\AlgSrc\enc\inc Contains algorithm header files \H264Encoder\AlgSrc\enc\lib...
  • Page 23: Before Building The Sample Test Application

    5.31 . Codec Engine (CE) version 2.10.01 and HDVICP API version 1.01.017 The 1080p encoder uses both the HDVICP resources of the DM6467 to reduce the DDR bandwidth for achieving performance. Hence, simultaneous encode/decode is not possible with this encoder.
  • Page 24: Installing Hdvicp Api

    Composer Studio is installed. For example: <install directory>\CCStudio_v3.3. 2) Set a system environment variable named HDVICP_API pointing to <install directory>\CCStudio_v3.3\<hdvicp>\200_V_HDVICP_X_1_01\DM6467 _X_001\hdvicp_api 2.4 Building and Running the Sample Test Application The sample test application that accompanies this codec component will run in TI’s Code Composer Studio development environment. To build and...
  • Page 25: Configuration Files

    Installation Overview 8) Select Debug > Run to execute the sample test application. The sample test application takes the input files stored in the \Client\Test\TestVecs\Input sub- directory, runs the codec, and uses the reference files stored in the \Client\Test\TestVecs\Reference sub-directory to verify that the codec is functioning as expected.
  • Page 26: Uninstalling The Component

    Installation Overview (Max: 51) RateCtrlQpMin = 10 # Qp range min for Rate Control (Min: 0) NumRowsInSlice # Number of rows in a Slice (0..Max no. of rows in the frame) sliceMode # 0 = No slice 2 = Slice based on packet size sliceUnitSize = 1500 # Maximum size of the slice to be...
  • Page 27: Sample Usage

    Chapter 3 Sample Usage This chapter provides a detailed description of the sample test application that accompanies this codec component. Topic Page 3.1 Overview of the Test Application 3.2 Handshaking Between Application and Algorithm 3.3 Sample Test Application...
  • Page 28: Overview Of The Test Application

    Sample Usage 3.1 Overview of the Test Application The test application exercises the extended class IH264FHDVENC_Params of the H264 Encoder library. The main test application files are TestEncoderApp.c and TestEncoderApp.h. These files are available in the \Client\Test\Src and \Client\Test\Inc sub-directories respectively. Figure 3-1 depicts the sequence of APIs exercised in the sample test application.
  • Page 29: Parameter Setup

    Sample Usage The test application is divided into four logical blocks: Parameter setup Algorithm instance creation and initialization Process call Algorithm instance deletion 3.1.1 Parameter Setup Each codec component requires various codec configuration parameters to be set at initialization. For example, a video codec requires parameters such as video height, video width, etc.
  • Page 30: Process Call

    Sample Usage To initialize the RMAN module. 1) RMAN_init() – To register the HDVICP protocol/resource 2) RMAN_register() – manager with the generic resource manager. To register resources to the algorithm as 3) RMAN_assignResources() – requested HDVICP protocol/resource manager with the generic resource manager.
  • Page 31: Figure 3-2. Process Call With Host Release

    Sample Usage Interrupt between HDVICP and Host Process call frame n Process call frame n+1 Transfer of Host tasks at Host System application Host Video Task HDVICP Host system Tasks tasks MB level tasks for MB level tasks for frame n+1 frame n HDVICP Busy Figure 3-2.
  • Page 32: Algorithm Instance Deletion

    Sample Usage calls for cache operations as well. The test application does a cache invalidate for the valid input buffers before and a cache process() write back invalidate for output buffers after process() In the sample test application, after calling , the output algDeactivate() data is dumped to a file.
  • Page 33: Handshaking Between Application And Algorithm

    Sample Usage 3.2 Handshaking Between Application and Algorithm Application provides the algorithm with its implementation of functions for the video task to move to SEM-pend state, when the execution happens in the co-processor. The algorithm calls these application functions to move the video task to SEM-pend state.
  • Page 34 Sample Usage the codec OS/System related calls ( ) are also SEM_pend, SEM_post performed outside the codec Codec implementation is OS i ndependent he functions to be implemented by applications are: HDVICP_initHandle(void *hdvicpHandle) This is the top-level f unction, which initializes hdvicp handle that will be use ful when functions are called by algorithm.
  • Page 35: Sample Test Application

    Sample Usage 3.3 Sample Test Application The test application exercises the extended class IH264FHDVENC_Params of the H.264 Encoder. Table 3-1. Process ( ) Implementation. /* Main Function acting as a client for Video Encode Call*/ H264VENC_setinitparams (&params); H264VENC_setrunparams (&dynamicparams); HDVICP_initHandle(&hdvicpObj); /*---------------- Encoder creation -----------------*/ handle = (IALG_Handle) h264VENC_create();...
  • Page 36 Sample Usage This page is intentionally left blank 3-10...
  • Page 37: Api Reference

    Chapter 4 API Reference This chapter provides a detailed description of the data structures and interfaces functions used in the codec component. Topic Page 4.1 Symbolic Constants and Enumerated Data Types 4.2 Data Structures 4.3 Interface Functions 4-30...
  • Page 38: Symbolic Constants And Enumerated Data Types

    API Reference Symbolic Constants and Enumerated Data Types This section summarizes all the symbolic constants specified as either #define macros and/or enumerated C data types. For each symbolic constant, the semantics or interpretation of the same is also provided Table 4-1. List of Enumerated Data Types Group or Enumeration Class Symbolic Constant Name Description or Evaluation...
  • Page 39 API Reference Group or Enumeration Class Symbolic Constant Name Description or Evaluation IVIDEO_BP_FRAME Interlaced frame, first field is a B frame, second field is a P frame. Not supported in this version of H264 Encoder. IVIDEO_BB_FRAME Interlaced frame, both fields are B frames.
  • Page 40 API Reference Group or Enumeration Class Symbolic Constant Name Description or Evaluation IVIDEO_LOW_DELAY Constant Bit Rate (CBR) control for video conferencing. PLR3 rate control algorithm is used in CBR. This is the default value. IVIDEO_STORAGE Variable Bit Rate (VBR) control for local storage (DVD) recording.
  • Page 41 API Reference Group or Enumeration Class Symbolic Constant Name Description or Evaluation XDM_BE_64 64-bit big endian stream. Not supported in this version of H264 Encoder. XDM_CHROMA_NA Chroma format is not applicable XDM_ChromaFormat XDM_YUV_420P YUV 4:2:0 planar XDM_YUV_422P YUV 4:2:2 planar. XDM_YUV_422IBE YUV 4:2:2 interleaved (big endian).
  • Page 42 API Reference Group or Enumeration Class Symbolic Constant Name Description or Evaluation XDM_FLUSH Handle end of stream conditions. This command forces algorithm instance to output data without additional input. Not supported in this version of H264 Encoder. XDM_GETBUFINFO Query algorithm instance regarding the properties of input and output buffers XDM_GETVERSION...
  • Page 43: Table 4-2. H264 Encoder Specific Enumerations

    API Reference Group or Enumeration Class Symbolic Constant Name Description or Evaluation XDM_UNSUPPORTEDINPUT Bit 13 1 - Unsupported feature/parameter in input 0 - Ignore XDM_UNSUPPORTEDPARAM Bit 14 1 - Unsupported input parameter or configuration 0 - Ignore XDM_FATALERROR Bit 15 1 - Fatal error (stop encoding) 0 - Recoverable error Note:...
  • Page 44 API Reference Group or Enumeration Class Symbolic Constant Name Description or Evaluation IH264_SLICECODING_EXIS 2: Keep the slice coding params as TING existing. Reserved for future use IH264_SLICECODING_MAX 3: Reserved for future use IH264FHDVENC_SliceMode IH264_SLICEMODE_NONE 0: No multiple slices Default setting IH264_SLICEMODE_MBUNIT 1: Slices are controlled based on the number of macro blocks.
  • Page 45: Data Structures

    API Reference 4.2 Data Structures This section describes the XDM defined data structures that are common across codec classes. These XDM data structures can be extended to define any implementation specific parameters for a codec component. 4.2.1 Common XDM Data Structures This section includes the following common XDM data structures: XDM_BufDesc XDM1_BufDesc...
  • Page 46 API Reference 4.2.1.1 XDM_BufDesc ║ Description This structure defines the buffer descriptor for input and output buffers. ║ Fields Field Datatype Input/ Description Output **bufs XDAS_Int8 Input Pointer to the vector containing buffer addresses numBufs XDAS_Int32 Input Number of buffers *bufSizes XDAS_Int32 Input...
  • Page 47 API Reference 4.2.1.4 XDM1_SingleBufDesc ║ Description This structure defines the buffer descriptor for single input and output buffers. ║ Fields Field Datatype Input/ Description Output *bufs XDAS_Int8 Input Pointer to the buffer bufSize XDAS_Int32 Input Size of the buffer in bytes accessMask XDAS_Int32 Output...
  • Page 48 API Reference There is no restriction on output buffer size except that it should contain atleast one frame of encoded data.The output buffer size can be set using the dynamic parameter at the run-time. These are the maximum buffer sizes but you can reconfigure depending on the input format.
  • Page 49 API Reference Field Datatype Input/ Description Output frameType XDAS_Int32 Input IVIDEO_FrameType enumeration topFieldFirstFlag XDAS_Int32 Input Flag to indicate when the application should display the top field first. Not supported in this version of H264 Encoder. repeatFirstFieldFlag XDAS_Int32 Input Flag to indicate when the first field should be repeated.
  • Page 50 API Reference 4.2.1.9 IVIDENC1_Fxns ║ Description This structure contains pointers to all the XDAIS and XDM interface functions. ║ Fields Field Datatype Input/ Description Output ialg IALG_Fxns Input Structure containing pointers to all the XDAIS interface functions. For more details, see TMS320 DSP Algorithm Standard API Reference (literature number SPRU360).
  • Page 51 API Reference Field Datatype Input/ Description Output maxHeight XDAS_Int32 Input Maximum video height to be supported in pixels. Default : 1088 Minimum: 288 Note: Only resolutions that are multiples of 2 are supported. maxWidth XDAS_Int32 Input Maximum video width to be supported in pixels.
  • Page 52 API Reference Note: For the supported values, see Table A.1 – Level limits maxBitRate in ISO/IEC 14496-10. The following fields of data structure are level IVIDENC1_Params dependent: maxHeight maxWidth maxFrameRate maxBitRate To check the values supported for use the maxHeight maxWidth following expression: >= (...
  • Page 53 API Reference 4.2.1.11 IVIDENC1_DynamicParams ║ Description This structure defines the run-time parameters for an algorithm instance object. ║ Fields Field Datatype Input/ Description Output size XDAS_Int32 Input Size of the basic or extended (if being used) data structure in bytes. inputHeight XDAS_Int32 Input...
  • Page 54 API Reference Field Datatype Input/ Description Output forceFrame XDAS_Int32 Input Force the current (immediate) frame to be encoded as a specific frame type. Supports only IVIDEO_NA_FRAME IVIDEO_I_FRAME IVIDEO_IDR_FRAME frame types. IVIDEO_FrameType enumeration for details Default: IVIDEO_NA_FRAME interFrameInterval XDAS_Int32 Input Number of B frames between two reference frames;...
  • Page 55 API Reference the padding. For example, the input width and height is 720x480. The application should allocate the buffer for 736x480 resolution. Then the encoder rounds off the width to 736 and sets the cropping flags in the bitstream to crop 16 pixels along the right side of the image. For resolutions whose is not a multiple of 16, the inputHeight...
  • Page 56 API Reference Field Datatype Input/ Description Output extendedError XDAS_Int32 Output Extended error code. enumeration for XDM_ErrorBit details. data XDM1_SingleBuf Output Buffer descriptor for passing the data Desc bufInfo XDM_AlgBufInfo Output Input and output buffer information. See data structure for XDM_AlgBufInfo details.
  • Page 57 API Reference 4.2.1.15 IVIDENC1_MbData ║ Description This structure defines the structure that contains macro block related encoding parameter estimates. This structure is not supported in this version of H264 Encoder. ║ Fields Field Datatype Input/ Description Output mbMode XDAS_Int32 Input MB encoding mode 0x00 for skip macro block 0x01 for I Frame macro block...
  • Page 58: Encoder Data Structures

    API Reference 4.2.2 H.264 Encoder Data Structures This section includes the following H.264 Encoder specific extended data structures: IH264FHDVENC_Params IH264FHDVENC_DynamicParams IH264FHDVENC_InArgs IH264FHDVENC_Status IH264FHDVENC_SliceCodingParams IH264FHDVENC_OutArgs 4.2.2.1 IH264FHDVENC_Params ║ Description This structure defines the creation parameters and any other implementation specific parameters for a H.264 Encoder instance object. The creation parameters are defined in the XDM data structure, IVIDENC1_Params ║...
  • Page 59 API Reference 4.2.2.2 IH264FHDVENC_DynamicParams ║ Description This structure defines the run-time parameters and any other implementation specific parameters for a H.264 Encoder instance object. The run-time parameters are defined in the XDM data structure, .If this data structure is , the encoder IVIDENC1_DynamicParams NULL control call would return an error.
  • Page 60 API Reference Field Datatype Input/ Description Output numRowsInSlice XDAS_UInt8 Input The number of slices that has to be created in a single frame. Each slice is a multiple of MB rows. The valid range is [0, Number of MB Rows in the input frame.] Not supported in this version of H264 Encoder This should always be set to 0.
  • Page 61 API Reference Field Datatype Input/ Description Output adaptiveMBs Input Reserved for future use XDAS_UInt16 This should always be set to 0. Not supported in this version of H264 Encoder SEIParametersFlag Input Reserved for future use XDAS_UInt8 This should always be set to 0. Not supported in this version of H264 Encoder VUIParametersFlag...
  • Page 62 API Reference Field Datatype Input/ Description Output MVDataFlag Input Reserved for future use XDAS_UInt8 This should always be set to 0. Not supported in this version of H264 Encoder transform8x8DisableF Input 0: Enable 8x8 transform in XDAS_UInt8 high profile 1: Disable 8x8 transform in high profile Default: 0 Not supported in this version of...
  • Page 63 API Reference Note: When basic structure mode is configured, only default values are used for extended parameters irrespective of the value specified by the user. When is configured to rateControlPreset IVIDEO_LOW_DELAY (CBR) or (VBR), the value is used as IVIDEO_STORAGE QPISlice the initial QP.
  • Page 64 API Reference 4.2.2.5 IH264FHDVENC_SliceCodingParams ║ Description This structure defines parameters that describe the parameters for slice coding in the H264 Encoder. ║ Fields Input/ Field Datatype Description Output sliceCodingPre IH264FHDVENC_ Input This preset controls the user defined versus default SliceCodingPr mode.
  • Page 65 API Reference 4.2.2.6 IH264FHDVENC_MetaDataParams ║ Description This structure defines the output meta data information of slice coding for the H.264 Encoder instance object. ║ Fields Field Datatype Input/ Description Output metaDataID IH264ENC_MetaDa Output ID for meta data taId = 0: Meta data METADATA_NALU_INFO Containing the information about slice size.
  • Page 66: Interface Functions

    API Reference 4.3 Interface Functions This section describes the Application Programming Interfaces (APIs) used in the H.264 Encoder. The APIs are logically grouped into the following categories: Creation – algNumAlloc() algAlloc() Initialization – algInit() Control – control() Data processing – algActivate() process() algDeactivate()
  • Page 67 API Reference ║ Name – determine the number of buffers that an algorithm algNumAlloc() requires ║ Synopsis XDAS_Int32 algNumAlloc(Void); ║ Arguments Void ║ Return Value XDAS_Int32; /* number of buffers required */ ║ Description returns the number of buffers that the algNumAlloc() algAlloc() method requires.
  • Page 68: Initialization Api

    API Reference ║ Name – determine the attributes of all buffers that an algorithm algAlloc() requires ║ Synopsis XDAS_Int32 algAlloc(const IALG_Params *params, IALG_Fxns **parentFxns, IALG_MemRec memTab[]); ║ Arguments IALG_Params *params; /* algorithm specific attributes */ IALG_Fxns **parentFxns;/* output parent algorithm functions */ IALG_MemRec memTab[];...
  • Page 69 API Reference ║ Name – initialize an algorithm instance algInit() ║ Synopsis XDAS_Int32 algInit(IALG_Handle handle, IALG_MemRec memTab[], IALG_Handle parent, IALG_Params *params); ║ Arguments IALG_Handle handle; /* algorithm instance handle*/ IALG_memRec memTab[]; /* array of allocated buffers */ IALG_Handle parent; /* handle to the parent instance */ IALG_Params *params;...
  • Page 70: Control Api

    API Reference 4.3.3 Control API Control API is used for controlling the functioning of the algorithm instance during run-time. This is done by changing the status of the controllable parameters of the algorithm during run-time. These controllable parameters are defined in the data structure (see Data IVIDENC1_DynamicParams Structures section for details).
  • Page 71 API Reference ║ Preconditions The following conditions must be true prior to calling this function; otherwise, its operation is undefined. can only be called after a successful return from control() algInit() algActivate(). If algorithm uses DMA resources, can only be called after control() a successful return from DMAN3_init().
  • Page 72: Data Processing Api

    API Reference 4.3.4 Data Processing API Data processing API is used for processing the input data. ║ Name – initialize scratch memory buffers prior to processing. algActivate() ║ Synopsis Void algActivate(IALG_Handle handle); ║ Arguments IALG_Handle handle; /* algorithm instance handle */ ║...
  • Page 73 API Reference ║ Name – basic encoding/decoding call process() ║ Synopsis XDAS_Int32 (*process)(IVIDENC1_Handle handle, IVIDEO1_BufDescIn *inBufs, XDM_BufDesc *outBufs, IVIDENC1_InArgs *inargs, IVIDENC1_OutArgs *outargs); ║ Arguments IVIDENC1_Handle handle; /* algorithm instance handle */ IVIDEO1_BufDescIn *inBufs; /* algorithm input buffer descriptor */ XDM_BufDesc *outBufs; /* algorithm output buffer descriptor */ IVIDENC1_InArgs *inargs /* algorithm runtime input arguments */...
  • Page 74 API Reference ║ Preconditions The following conditions must be true prior to calling this function; otherwise, its operation is undefined. can only be called after a successful return from process() algInit() algActivate(). If algorithm uses DMA resources, can only be called after process() a successful return from DMAN3_init().
  • Page 75: Termination Api

    API Reference ║ Name – save all persistent data to non-scratch memory algDeactivate() ║ Synopsis Void algDeactivate(IALG_Handle handle); ║ Arguments IALG_Handle handle; /* algorithm instance handle */ ║ Return Value Void ║ Description saves any persistent information to non-scratch buffers algDeactivate() using the persistent memory that is part of the algorithm instance object.
  • Page 76 API Reference ║ Name – determine the addresses of all memory buffers used by the algFree() algorithm ║ Synopsis XDAS_Int32 algFree(IALG_Handle handle, IALG_MemRec memTab[]); ║ Arguments IALG_Handle handle; /* handle to the algorithm instance */ IALG_MemRec memTab[]; /* output array of memory records */ ║...
  • Page 77: Frequently Asked Questions

    Chapter 5 Frequently Asked Questions This chapter provides answers to few frequently asked questions relating to using this encoder. Table 5-3. FAQs for H264 Encoder on DM6467. Question Answer What are the parameters that The following parameters need to be set in the config file to encode...
  • Page 78 Frequently Asked Questions Question Answer What resolutions does the The encoder supports resolutions that are multiples of 2. The minimum encoder support? resolution supported is 352 x 288. In case the width is not a multiple of 32, the encoder rounds the width to the next multiple of 32 and sets the cropping flags appropriately to not display the padded pixels.

Table of Contents