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
immediately.
Change-Id: I56c0f3b5792504e18d2fb2a57a3c34d26f0b55e5
Signed-off-by: Buddy Liong <a0270631@ti.com>
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
immediately.
Change-Id: I56c0f3b5792504e18d2fb2a57a3c34d26f0b55e5
Signed-off-by: Buddy Liong <a0270631@ti.com>
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
package:
* H.264 Encoder 2.0 on HDVICP2 and Media Controller Based Platform
User's Guide (SPRUHG3), Appendix G - Low Latency / Sub Frame Level
Synchronization
* H.264 Decoder 2.0 on HDVICP2 and Media Controller Based Platform
User's Guide (SPRUHF9), Appendix I - Low Latency / Sub Frame Level
Synchronization
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>
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
package:
* H.264 Encoder 2.0 on HDVICP2 and Media Controller Based Platform
User's Guide (SPRUHG3), Appendix G - Low Latency / Sub Frame Level
Synchronization
* H.264 Decoder 2.0 on HDVICP2 and Media Controller Based Platform
User's Guide (SPRUHF9), Appendix I - Low Latency / Sub Frame Level
Synchronization
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>
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>
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>
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>
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>
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>
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>
[MPEG2D] Codec Update 01.00.16.01
Codec Name: MPEG2 Decoder
Codec Version: 01.00.16.01
The updated codec information:
* MPEG2D 01.00.16.01 version fix OMAPS00331190
Codec sets error in case of 1-referece B-frame
in closedGop.
Signed-off-by: Veeranna Hanchinal <veeranna.hanchinal@ti.com>
Codec Name: MPEG2 Decoder
Codec Version: 01.00.16.01
The updated codec information:
* MPEG2D 01.00.16.01 version fix OMAPS00331190
Codec sets error in case of 1-referece B-frame
in closedGop.
Signed-off-by: Veeranna Hanchinal <veeranna.hanchinal@ti.com>
[H264D] Codec Update 02.00.20.01
Codec Name: H264 Decoder
Codec Version: 02.00.20.01
The updated codec information:
* H264D 02.00.20.01 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>
Codec Name: H264 Decoder
Codec Version: 02.00.20.01
The updated codec information:
* H264D 02.00.20.01 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>
[MJPEGD] Codec Update 01.00.14.01
Codec Name: MJPEG Decoder
Codec Version: 01.00.14.01
The updated codec information:
* MJPEGD 01.00.14.01 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>
Codec Name: MJPEG Decoder
Codec Version: 01.00.14.01
The updated codec information:
* MJPEGD 01.00.14.01 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>
[H264D] Codec Update 02.00.19.01
Codec Name: H264 Decoder
Codec Version: 02.00.19.01
The updated codec information:
* H264D 02.00.19.01 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>
Codec Name: H264 Decoder
Codec Version: 02.00.19.01
The updated codec information:
* H264D 02.00.19.01 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>
[MPEG2D] Codec Update 01.00.15.01
Codec Name: MPEG2 Decoder
Codec Version: 01.00.15.01
The updated codec information:
* MPEG2D 01.00.15.01 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>
Codec Name: MPEG2 Decoder
Codec Version: 01.00.15.01
The updated codec information:
* MPEG2D 01.00.15.01 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>
[VC1D] Codec Update 01.00.02.04
Codec Name: VC1 Decoder
Codec Version: 01.00.02.04
The updated codec information:
* VC1D 01.00.02.04 version fix OMAPS00328894
During FF/REW, screen becomes GRAY.
Signed-off-by: Buddy Liong <a0270631@ti.com>
Codec Name: VC1 Decoder
Codec Version: 01.00.02.04
The updated codec information:
* VC1D 01.00.02.04 version fix OMAPS00328894
During FF/REW, screen becomes GRAY.
Signed-off-by: Buddy Liong <a0270631@ti.com>
[H264D] Codec Update 02.00.18.01
Codec Name: H.264 Decoder
Codec Version: 02.00.18.01
The updated codec information:
* H.264D 02.00.18.01 version fix SDOCM00119802
Display Frames are out of order with display-delay 2
Signed-off-by: Buddy Liong <a0270631@ti.com>
Codec Name: H.264 Decoder
Codec Version: 02.00.18.01
The updated codec information:
* H.264D 02.00.18.01 version fix SDOCM00119802
Display Frames are out of order with display-delay 2
Signed-off-by: Buddy Liong <a0270631@ti.com>
[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>
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>
Update Makefile to use IPC 3.40.01.08
Modify the IPC version to use IPC 3.40.01.08.
This commit will be tag with 3.00.09.01 as well
Signed-off-by: Buddy Liong <a0270631@ti.com>
Modify the IPC version to use IPC 3.40.01.08.
This commit will be tag with 3.00.09.01 as well
Signed-off-by: Buddy Liong <a0270631@ti.com>
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>
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>
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
http://git.omapzoom.org/?p=repo/libdce.git;a=summary
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 3.00.09.00
This first ipumm component will be tag the same as 3.00.09.00.
Signed-off-by: Buddy Liong <buddy.liong@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
http://git.omapzoom.org/?p=repo/libdce.git;a=summary
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 3.00.09.00
This first ipumm component will be tag the same as 3.00.09.00.
Signed-off-by: Buddy Liong <buddy.liong@ti.com>