]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ivimm/ipumm.git/log
5 years agoHandling when MPU crashes, eg. CTRL-C on MPU side.
Buddy Liong [Thu, 7 Jan 2016 21:28:41 +0000 (15:28 -0600)]
Handling when MPU crashes, eg. CTRL-C on MPU side.

During low latency encode and decode, when MPU is crashing
DCE server is not handling the clean up properly which can cause
the system to hang afterward.

Based on the information from the codec support, since process call
is in blocked state, the client needs to send proper numBlocks for
codec to return the process call properly.

In H.264 low latency encoder, codec will call function callback
H264E_GetDataFxn to get the numBlocks, when MPU has crashed, DCE
server needs to propagate the numBlocks to codec so that codec can
proceed and return the process call.
There are 2 alternatives, one is to return proper numBlocks based
on resolution, the other is to return bogus numBlocks which is big
enough for codec to detect an error and return the process call.
This task implements the returning bogus '100' numBlocks to codec
because the implementation for proper numBlocks requires some
calculation to be implemented and the input buffer will not have
proper data anyway.

In H.264 low latency decoder, codec will call function callback
H264D_PutDataFxn to post the numBlocks to client, when MPU has
crashed, DCE server should ignore this information and return
immediately. There could be multiple callback from codec until codec
reach the proper numBlocks and DCE server should ignore and return

Change-Id: I56c0f3b5792504e18d2fb2a57a3c34d26f0b55e5
Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoH.264 low latency - IVIDEO_NUMROWS
Buddy Liong [Tue, 24 Nov 2015 19:46:22 +0000 (13:46 -0600)]
H.264 low latency - IVIDEO_NUMROWS

H.264 codec user guide describes the functionality of low latency.
This functionality allows user to encode/decode a sub-frame level data
communications. Without low latency, user can only encode/decode a
complete/full frame only.

More information about H264 low latency can be found in codec release
* H.264 Encoder 2.0 on HDVICP2 and Media Controller Based Platform
  User's Guide (SPRUHG3), Appendix G - Low Latency / Sub Frame Level
* H.264 Decoder 2.0 on HDVICP2 and Media Controller Based Platform
  User's Guide (SPRUHF9), Appendix I - Low Latency / Sub Frame Level

This commit is only implemented low latency with IVIDEO_NUMROWS.
H.264 encoder handles inputDataMode = IVIDEO_NUMROWS with getDataFxn
as callback to get the numRows being filled into the inputBuffer pointer
passed at process call.

From H.264 encoder user guide Appendix G, more details can be found in
sec. G2 H.264 Encoder Input with sub frame level synchronization

H.264 decoder handles outputDataMode = IVIDEO_NUMROWS with putDataFxn as
callback to notify client on the numRows/numBlocks being filled by codec
into the outputBuffer pointer passed at process call.

From H.264 decoder user guide Appendix I, more details can be found in
sec. I.2 Details of using Sub Frame Level data sync at output side.

The changes depend on the changes done on LIBDCE DCE client:
H.264 low latency with IVIDEO_NUMROWS

Change-Id: I59c309dba8bd8d3cd1dc519340d494931f0efe3e
Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoHandling error in ivahd_init
Buddy Liong [Sun, 28 Feb 2016 00:40:06 +0000 (18:40 -0600)]
Handling error in ivahd_init

In ivahd_init, when RMAN_init() or RMAN_register() fails, there is
no proper cleanup.
Adding proper cleanup when those functions are failing.

Change-Id: I2a644578cc9721e17129cb243baabc67923ee575
Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoMove DEBUG outside Hwi
Buddy Liong [Sun, 28 Feb 2016 00:32:20 +0000 (18:32 -0600)]
Move DEBUG outside Hwi

In ivahd_acquire and ivahd_release, Hwi_disable and Hwi_restore
are called. There is DEBUG being called when Hwi is disable.
This could be a problem as we don't want to disable Hwi for too long.

The patch is to perform register update when Hwi is disable.

Change-Id: I9bfaee561e57ce0edc66fcabbdf0d32bd8d9bc24
Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoBefore IPU2 crashed, performs crash_reset to reset IVA-HD
Buddy Liong [Mon, 22 Feb 2016 15:08:29 +0000 (09:08 -0600)]
Before IPU2 crashed, performs crash_reset to reset IVA-HD

When BIOS detected a crash, adding a callback into System.abortFxn
to call crash_reset.
In crash_reset, it will perform clean up and release the IVA
subsystem resets by asserting reset for RST_LOGIC (IVA Logic and SL2),
RST_SEQ2 (IVA Sequencer CPU2) and RST_SEQ1 (IVA Sequencer CPU1).

When IPU comes back up, ivahd_init() will perform the iva_boot().
The RM_IVA_RSTCTRL will be the same as when it is power on boot.

Change-Id: Ice1b0a318fd00a3a88cbd5ce0cf1c54130823c4c
Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[MPEG2D] Codec Update
Veeranna Hanchinal [Wed, 24 Feb 2016 10:08:00 +0000 (15:38 +0530)]
[MPEG2D] Codec Update

Codec Name: MPEG2 Decoder
Codec Version:

The updated codec information:
 * MPEG2D version fix OMAPS00331190
   Codec sets error in case of 1-referece B-frame
   in closedGop.

Signed-off-by: Veeranna Hanchinal <veeranna.hanchinal@ti.com>
5 years ago[H264D] Codec Update
Buddy Liong [Tue, 9 Feb 2016 19:51:13 +0000 (13:51 -0600)]
[H264D] Codec Update

Codec Name: H264 Decoder
Codec Version:

The updated codec information:
* H264D version fix OMAPS00330524
In multichannel case H.264 decoder hangs if run with multiple codes
with H.264 decoder as more than 2 channels after FLUSH call.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[MJPEGD] Codec Update
Buddy Liong [Tue, 9 Feb 2016 19:04:43 +0000 (13:04 -0600)]
[MJPEGD] Codec Update

Codec Name: MJPEG Decoder
Codec Version:

The updated codec information:
* MJPEGD version fix OMAPS00326670
In nonstandard format image, wrong updating of VLD table, resulting
decoder hang.

* SDOCM00120649
In case of any Header Error, outputID is assigned.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[H264D] Codec Update
Buddy Liong [Tue, 9 Feb 2016 17:23:10 +0000 (11:23 -0600)]
[H264D] Codec Update

Codec Name: H264 Decoder
Codec Version:

The updated codec information:
* H264D version fix OMAPS00328313
When player is paused for more than 10 seconds, screen freezes.

* SDOCM00121006
Decoder sets correct handle when it calls putDataFxn callback.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[MPEG2D] Codec Update
Buddy Liong [Tue, 19 Jan 2016 19:00:00 +0000 (13:00 -0600)]
[MPEG2D] Codec Update

Codec Name: MPEG2 Decoder
Codec Version:

The updated codec information:
* MPEG2D version fix OMAPS00330418
  Decoder releases the output buffer twice when
  Flush is applied before a B frame.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[VC1D] Codec Update
Buddy Liong [Tue, 19 Jan 2016 18:42:45 +0000 (12:42 -0600)]
[VC1D] Codec Update

Codec Name: VC1 Decoder
Codec Version:

The updated codec information:
* VC1D version fix OMAPS00328894
  During FF/REW, screen becomes GRAY.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[H264D] Codec Update
Buddy Liong [Tue, 19 Jan 2016 18:09:12 +0000 (12:09 -0600)]
[H264D] Codec Update

Codec Name: H.264 Decoder
Codec Version:

The updated codec information:
* H.264D version fix SDOCM00119802
  Display Frames are out of order with display-delay 2

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years ago[Config] Removal of CE and FC requires line in package.xdc
Buddy Liong [Tue, 17 Nov 2015 19:46:25 +0000 (13:46 -0600)]
[Config] Removal of CE and FC requires line in package.xdc

In yocto build, DSPDCE and IPUMM are built in parallel.
Issue happens when both are built at the same time since both
has requires line in package.xdc

requires ti.sdo.ce;
requires ti.sdo.ce.video2;
requires ti.sdo.ce.universal;
requires ti.sdo.fc.utils;

This patch removes the requires lines and add into dce_ipu.cfg to
load the XDC package for FC utils.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoUpdate Makefile to use IPC
Buddy Liong [Fri, 2 Oct 2015 19:58:07 +0000 (14:58 -0500)]
Update Makefile to use IPC

Modify the IPC version to use IPC
This commit will be tag with as well

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoUpdate the version on QNX custom resource table
Buddy Liong [Wed, 9 Sep 2015 14:56:25 +0000 (09:56 -0500)]
Update the version on QNX custom resource table

When adding qnx_custom_rsc_table_vayu_ipu.h, the resource table version
was set to 2 which is not correct as the definition for the version is used
to differentiate the changes in the format of the resource table, not based
on its contents. Update the version of QNX custom resource table to 1.

Signed-off-by: Buddy Liong <a0270631@ti.com>
5 years agoFirst ipumm component to public git.ti.com
Buddy Liong [Mon, 21 Sep 2015 15:29:17 +0000 (10:29 -0500)]
First ipumm component to public git.ti.com

ipumm component is part of TI Multimedia component to utilize
Hardware Video Accelerated Video codecs in IVA-HD. It contains the server
side of Distributed Codec Engine to utilize the HW codecs.
The client side of ipumm is libdce and it is currently held publically at

ipumm component was previously maintained privately; only customers with
NDA were able to get the source code.

This is the first release of ipumm to public at git.ti.com
The license and software manifest for this ipumm component is included
at the top level of directory:
software license: SRAS 2087-308454-v1-IPUMM_TSPA_License.pdf
software manifest: Texas_Instruments_ipumm_Manifest.pdf

For internal reference:
Original repo is maintained in gerrit.ext.ti.com/gerrit/omap
Project name: ipumm
The last TAG version before moving to git.ti.com is

This first ipumm component will be tag the same as

Signed-off-by: Buddy Liong <buddy.liong@ti.com>