Commit message (Collapse)AuthorAgeFilesLines
* [LIBDCE]: Fix in dce_enc_test when buffer type is tilerSubash Lakkimsetti2016-04-061-15/+14
| | | | | | | | In NUMROW case while reading input from file to buffer Y & UV input read offsets are not configured correctly Change-Id: Ice9f5e85201ba967aa485f6dc11723b3794eeb9c Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
* H.264 low latency with IVIDEO_NUMROWSBuddy Liong2016-03-014-345/+950
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 update is only valid on video codec on IVA-HD. This changes depend on the changes done on IPUMM DCE server. No low latency update is performed on video codec on DSP. This commit has dependencies on: IPC or latest IPUMM commit ids: commit e37750cc921a9442c48e7212824b28850ac3aaa7 - H.264 low latency - IVIDEO_NUMROWS commit 266749c0b6a2584d563625f881f998c3d78ca873 - Handling when MPU crashes, eg. CTRL-C on MPU side. commit 030572aaa1964bb50a903852fab0ecc0149b6b7e - H.264 Low Latency - sync put_DataFxn to MPU side Change-Id: I308bc74a879099f38705df6e6dda4a86b6645986 Signed-off-by: Buddy Liong <buddy.liong@ti.com>
* [DCE_TEST] Revert 5c45f781Buddy Liong2015-10-271-5/+9
| | | | | | | | | | | | | Commit id: 5c45f781d307f799af9dceb5ff636d5477694e16 [DCE_TEST] Fixing the decoded output resolution Only fixing H.264 1920x1080 for non-tiler. The patch brokes MPEG2 decoding and H.264 1920x1080 with TILER. Reverting the changes. Change-Id: Ibf91c40e330c5eb56e804628db3a0e4ece469e8a Signed-off-by: Buddy Liong <buddy.liong@ti.com>
* [DCE_TEST] Fixing the decoded output resolution3.00.09.01Buddy Liong2015-10-011-9/+5
| | | | | | | | | | | | | | | | | | | | | | | Previously, when decoding for example H.264 1080p (1920x1080), the output yuv comes out to be 1920x1088 because codec requires the maxWidth and maxHeight on the VIDDEC3_Params to be aligned by 16 bytes. Problem is in dce_test.c, the aligned is done early to the global variable width and height which altered the value to be aligned by 16 bytes. On the example above the height becomes 1088 (aligned by 16 bytes). When the output buffer is allocated for TILER, the outBufs->descs[0].tileMem.width = width that is aligned to 16 bytes. outBufs->descs[0].tileMem.height = height that is aligned to 16 bytes. or when the output buffer is allocated for Non-TILER, the outBufs->descs[0].bytes = width * height that is aligned to 16 bytes. With this fix, the output is now corrected to have the same resolution as the input. Eg. H.264 1080p (1920x1080) will be decoded to YUV NV12 of 1920x1080. No longer YUV NV12 of 1920x1088. Change-Id: Icdce8dfb99ffd2568ad318ff30305f83901a8243 Signed-off-by: Buddy Liong <a0270631@ti.com>
* VC1: setting the error concealmentSubash Lakkimsetti2015-08-061-0/+1
| | | | | | | IVC1VDEC_Params.errorConcealmentON to TURE. Change-Id: Ia6abfd11adff48558509692d5bcf751e9ec5a97a Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
* [DCE_ENC_TEST] Handling other errors from VIDENC2_processBuddy Liong2015-04-241-12/+26
| | | | | | | | | | | | Currently dce_enc_test is only handling XDM_ERROR only. If VIDENC2_process return with other than XDM_ERROR for example, MmRpc_call is failing because IPU2 has crashed. Currently dce_enc_test is not exiting because it is not handling the error. Change-Id: I7fc4b7306f36961e4582dd5504b0acc4eb2a09a4 Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [DCE_TEST] Handling other errors from VIDDEC3_processBuddy Liong2015-04-241-2/+7
| | | | | | | | | | | | Currently dce_test is only handling XDM_ERROR only. If VIDDEC3_process return with other than XDM_ERROR for example, MmRpc_call is failing because IPU2 has crashed. Currently dce_test is not exiting because it is not handling the error. Change-Id: Ie901a2ab4bd48b9e1665be118e7aeffe780b2f58 Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [QNX] Remove dependency on QNX TILER for memory allocationBuddy Liong2015-04-212-13/+14
| | | | | | | | | | | | | | | | | | | | | | | Previously dce_alloc() call will always reserve the memory from QNX TILER 1D. The same case happens when it calls memplugin_alloc since the definition of DEFAULT_REGION is set to MEM_TILER_1D for QNX. Since there is a known issue of DMA lockup due to MPU side performing memory copy into the TILER memory, this patch limits the use of QNX TILER. With this patch, dce_test and dce_enc_test can be executed without QNX TILER allocation. DCE test apps are also updated to allocate the memory through shmemallocator instead of QNX TILER. The capability to: allocate TILER output buffer for decoder and allocate TILER input buffer and output buffer for encoder are still existed as part of the dce_test or dce_enc_test input parameter 'tiler' vs 'nontiler' Change-Id: I33e2a9dd83c791cc2621e548628715abaeae871d Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [TEST_QNX] Cleanup debug print.Buddy Liong2015-02-261-4/+1
| | | | | | | | | | Instead of ERROR, it should be DEBUG as we don't want it to be printed every encoded instance. Removed OMAP5 defined flag as it is not used. Change-Id: Ied3bb95d067b55e601cbd47817d2578d21b5b920 Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [DCE TEST] [DCE ENC TEST] Logs added for dce test automation3.00.06.01Subash Lakkimsetti2014-10-092-19/+21
| | | | | | | | For test automation, dce logs are parsed and results are updated. Added logs for error cases. Change-Id: I354648c02206e8a65efe49ffb0352308e4fe727f Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
* Fixing Klocwork findingBuddy Liong2014-09-022-28/+65
| | | | | | | | Running Klocwork stand-alone, it reports 19-20 issues. This task submitted to resolve the found issues. Change-Id: I98150d4262ee5b1ab85cb1a7c0e697dcadb4a665 Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [TEST_QNX] Fixing compiler warningsBuddy Liong2014-08-202-11/+0
| | | | | | | | | | | | | Using QNX SDP 6.6, compiler issues warnings: /libdce/test_qnx/dce_enc_test/dce_enc_test.c: In function 'main': /libdce/test_qnx/dce_enc_test/dce_enc_test.c:363:21: warning: variable 'ivahd_encode_type' set but not used [-Wunused-but-set-variable] /libdce/test_qnx/dce_enc_test/dce_enc_test.c:357:21: warning: variable 'oned' set but not used [-Wunused-but-set-variable] /libdce/test_qnx/dce_test/dce_test.c:588:22: warning: variable 'vc1_flush' set but not used [-Wunused-but-set-variable] Change-Id: I53798b7a10128baea6f87ee0cc1eca483243846c Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [DCE_TEST] When outBufsInUse is set, use previous inputID3.00.05.00buddy.liong2014-05-271-1/+1
| | | | | | | | | | | | When handling interlace clip, the codec can hold the output buffer after processing the top field frame. The codec will set the outBufsInUse flag. When the application receives an indication that outBufsInUse flag is set, the application should use the previous inputID as the inputID and not sending a new output buffer (set to NULL on the output buffer) on the next VIDDEC3_process call. Change-Id: Id5e05984330e686ec5ea449be5d0aff8f8802d70 Signed-off-by: buddy.liong <buddy.budiono@ti.com>
* [DCE_TEST] Dump output frames per user specified request for NON-TILERSubash Lakkimsetti2014-03-061-1/+1
| | | | | | | | For NON-TILER case, dce_test is currently dumping a maximum of 300 frames. The change is to dump output frames per user specified request on frames to write as done in TILER case Change-Id: I224c9254140c6bc0804aa10b8c9560306fa78534 Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
* [DCE_TEST] Clean up of OMAP5 flag for MPEG4 decoder.buddy.liong2014-01-291-7/+2
| | | | | | | | | | MPEG4 decoder is defined by IPUMM with "ivahd_mpeg4dec" name. Previously the name can be either "ivahd_mpeg4dec" or "ivahd_mpeg4vdec". This patch to clean up so that it will only used "ivahd_mpeg4dec" for OMAP5 or J6 which utilizes IPUMM image. Change-Id: Iff92620f1d09a9700f8d460b7126f6e4b95ac248 Signed-off-by: buddy.liong <buddy.budiono@ti.com>
* [LIBDCE] Add non-TILER input buffer for dce_enc_testbuddy.liong2013-12-041-44/+88
| | | | | | | | | | | | | | | | | Adding capability for the QNX dce_enc_test to use buffer allocated through shmallocator instead of TILER memory on the input buffer. Fixing the submission on http://review.omapzoom.org/34254 as originally it was pressumed that TI encoder codec required the input to be 2D TILER buffer. With this patch when executing dce_enc_test with "nontiler" argument, the input and output buffers will be using the non TILER (through shmallocator). Change-Id: I14aff91a4f5491dd0efcab316d584585263fb666 Signed-off-by: buddy.liong <buddy.budiono@ti.com>
* [LIBDCE] Get codec version on dce_test and dce_enc_testbuddy.liong2013-11-152-48/+123
| | | | | | | | | | | Internal reference: DVT OMAPS00302159. To add the capability for the QNX dce_test and dce_enc_test to get the codec version through XDM_GETVERSION command of codec_control. Change-Id: Ia39aeb5b55d3b8aba9365ad6d4a4a63e4e44b8aa Signed-off-by: buddy.liong <buddy.budiono@ti.com>
* [LIBDCE] Add non-TILER output buffer for dce_enc_testbuddy.liong2013-11-151-124/+108
| | | | | | | | | | | | | Internal reference: DVT OMAPS00302160 To add capability for the QNX dce_enc_test to use buffer allocated through shmallocator instead of TILER memory on the output buffer. For input buffer, based on the TI encoder codec user guide document, it must be configured as 2D TILER buffer. Change-Id: I0cdda0ff1ddc607f9df41172bc45b6cf3010b95f Signed-off-by: buddy.liong <buddy.budiono@ti.com>
* [LIBDCE] Remove memcpy in read_input for dce_enc_testBuddy Liong2013-11-061-77/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Remove memcpy in read_input() for dce_enc_test since it is not needed. In the current implementation, read_input() creates a temporary buffer "pTmpBuffer" to store the input frame after reading for the input file. Then it performs memcpy from "PTmpBuffer" into input Buffer in TILER 2D which is passed down to IVA-HD video encoder. The "pTmpBuffer" is allocated using calloc() which allocates space from the heap which may/may not be contiguous. During robustness test, it causes hang during memcpy which indicates that QNX calloc doesn't allocate contiguous memory. The solution is to read the input frame directly from the input file and store directly into input Buffer in TILER 2D. Additional clean up in removing unused TMPDUMPDATA and DUMPINPUTDATA0. Internal reference: this solution fix the issue reported in DRT OMAPS00300892. Change-Id: If5f4941f4d2adc4a82ec4e60652d4792a72866d7 Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* [FIX][DCE_ENC_TEST] Allocate buffer for Motion vector and SADSubash Lakkimsetti2013-11-041-2/+26
| | | | | | | | | | | | enableAnalyticinfo is enabled by default for MPEG4/H263 encode and the required MVInfo buffer is not allocated. This leads to memory corruption in MPEG4/H263 codec for encode with certain resolutions on QNX platform. Buffer handling is added for MVInfo buffer when enableAnalyticinfo is enabled. enableAnalyticinfo is disabled by default for MPEG4/H263 encode case. For Internal reference, it fixes the DRT OMAPS00300892 - 720P video encode is not functional with MPEG4/H263 Change-Id: I13d5d61faf8352d884070c3e1f17bb7005157334 Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
* [LIBDCE] Update packages with XDAIS, FC HeadersSaurabh Bipin Chandra2013-09-052-0/+2
| | | | | | | | | This patch adds XDAIS, FC headers included by the codec header files and makes necessary build changes to include them. Change-Id: I6de3988291e6f4fa229b47a119431d83be1025c2 Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* [QNX-MAKE] QNX Build system changesSaurabh Bipin Chandra2013-09-054-44/+16
| | | | | | | | | | | | | | | | | | | | The changes include: 1. Redirecting Include Path to packages/ folder for the CE, XDAIS, XDCTOOLS and IVAHD_CODECS. 2. Since xdc_target_types__ is defined as gnu/targets/std.h in libdce.h, the definition has been removed rom the common.mk files. This helps as the client application need not define xdc_target_types__ as a compiler option. 3. Since xdc/std.h is included in libdce.h, it is being removed from the test applications. 4. Adding trace variables to libdce make. Change-Id: I1e2675901340daefefe865a03757459e41f1d837 Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* [LIBDCE] Adding dce_enc_testBuddy Liong2013-08-3013-99/+1801
| | | | | | | | Adding dce_enc_test for H.264 baseline and High Profile. Adding MPEG4/H263 simple Profile. Change-Id: I29b5043210d3a79e5ab859c5781bb89584714dfa Signed-off-by: Buddy Liong <a0270631@ti.com>
* [Dce_Test] Enable MPEG2 Decoder in dce_test app3.00.01.01Saurabh Bipin Chandra2013-05-231-16/+16
| | | | | | | | | This patch enables MPEG2 decoder as the MPEG2 codec library renames the enum which was common with MJPEG decoder. Change-Id: Ifbdabee6358652af633474ca7ac2aebad57f4591 Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* Enable build of dce_test app with IPC 3.17Saurabh Bipin Chandra2013-05-231-1/+1
| | | | | | | | | Build of IPC 3.17 generates ipc_client.so instead of syslink_client.so. Hence updating dce_test mk file to include the right IPC library. Change-Id: Icc1c0451ffc10a04bfeb102f5a4b61b4cda0f759 Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* [DCE_TEST] Add Input argument to take in number of frames to write.Saurabh Bipin Chandra2013-05-102-27/+33
| | | | | | | | | | | | This patch lets dce_test app users mention the number of frames of the output raw data to be written to the output file as an extra input command line argument. To invoke dce_test app: dce_test width height frames_to_write framesize inpattern outpattern codec tiler/nontiler Change-Id: I311b5afbe56aedc93263777bc1891d71cdd73c9a Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
* [libDCE] Add IPC 3.x Adapted code to Repository3.00.01.00Saurabh Bipin Chandra2013-04-266-0/+1536
This patch adds libdce code to the repository. LibDCE has been adapted to use the MmRpc layer of IPC 3.x. This version of LibDCE is expected to work on QNX. Patchset 2 adds/modifies: 1. Removes Tiler 2D allocation/free for now. 2. Corrects memplugin_free() for Tiler 1D. 3. Modifies dce_test app to dump output till 30 frames. 4. Renamed dce.h to libdce.h. 5. Corrected header files across all files. 6. Build configuration for QNX 7. Removes build warnings. 8. Add README for Build instructions 9. Takes care of comments of Buddy and Pradeep. Patchset 3 adds/modifies: 1. Reduced Stack usage of each function. 2. Add ptr check in memplugin and remove from libdce. 3. Add DCE_Assert macros. 4. Add DCE_error_status enum. 5. Comments Cleanup 6. Make some functions static. 7. process() cleanup including removing reply_buf. 8. Add else if (for codec_type == Encoder type) 9. Converted Macros to Inline functions. 10.Converted init and deinit to dce_init and dce_deinit functions. 11. Removed dce_init() and dce_deinit() declarations Patchset 4 adds/modifies: 1. Assert Input function arguments. 2. Correct copyright year. 3. Correct memplugin_free for Shared memory. 4. Create dce_priv.h and move trace and assert macros to the header. 5. Redeclare mem_type enum and add mem_error_status enum in memplugin.h and make corresponding changes. 6. Add asserts in memplugin. Intention of some of the changes above is to move towards delinking Libdce and Memplugin. Patchset 5: 1. Missed to add dce_priv.h file. Patchset 6: 1. Take care Pradeep's comment. Change-Id: I6e5e37b7088362e7bad66200fc3454bb828e0eff Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>