libdce: Increase the concurrent engine handle count
Increase the MAX_INSTANCES count for the concurrent engine handles
to match the DCE server definitions.
Change-Id: If29de276b9a173e114ad6df9b1358b4842e86b49
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Increase the MAX_INSTANCES count for the concurrent engine handles
to match the DCE server definitions.
Change-Id: If29de276b9a173e114ad6df9b1358b4842e86b49
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
libdce: Updated JpegEncoder interface file
Updated MJPEGE header file due to MJPEGE codec update to
01.00.17.01 version.
Change-Id: Id820f9cf3c66e1659564ba297cc469a30dc55732
Signed-off-by: Veeranna Hanchinal <veeranna.hanchinal@ti.com>
Updated MJPEGE header file due to MJPEGE codec update to
01.00.17.01 version.
Change-Id: Id820f9cf3c66e1659564ba297cc469a30dc55732
Signed-off-by: Veeranna Hanchinal <veeranna.hanchinal@ti.com>
memplugin android: Add SCANOUT flag to allocations
Add OMAP_BO_SCANOUT flags to `omap_bo` buffer allocations to
explicitly request from contiguous region.
Change-Id: Ifb6f8780608183cf9f5b636f885d408b01146d31
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Add OMAP_BO_SCANOUT flags to `omap_bo` buffer allocations to
explicitly request from contiguous region.
Change-Id: Ifb6f8780608183cf9f5b636f885d408b01146d31
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
libdce[Android]: Add dce_ipc_recover API
In case of remote core recovery due to remote core crash, the rpmsg-dce
handle needs to be closed and re-opened since any handles that were
open when the crash happened are marked as stale in the driver.
This patch adds a new API that the user can call to close the rpmsg-dce
handle so that recovery can happen.
In case the user receives notification of a remote core crash, it can
call the dce_ipc_recover() API to make sure that the rpmsg-dce handle
that is opened during dce_buf_lock is closed so that a new one can
be opened the next time.
Change-Id: I8ebc19e308ffe7431b57c31cfecd469e171777f6
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
In case of remote core recovery due to remote core crash, the rpmsg-dce
handle needs to be closed and re-opened since any handles that were
open when the crash happened are marked as stale in the driver.
This patch adds a new API that the user can call to close the rpmsg-dce
handle so that recovery can happen.
In case the user receives notification of a remote core crash, it can
call the dce_ipc_recover() API to make sure that the rpmsg-dce handle
that is opened during dce_buf_lock is closed so that a new one can
be opened the next time.
Change-Id: I8ebc19e308ffe7431b57c31cfecd469e171777f6
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
libdce: add JPEG encoder
Change-Id: I0136abd43fe8c1af3fedc5013dae578c8f6c7537
Signed-off-by: Hongmei Gou <h-gou@ti.com>
Change-Id: I0136abd43fe8c1af3fedc5013dae578c8f6c7537
Signed-off-by: Hongmei Gou <h-gou@ti.com>
memplugin android: Fix h->ptr offset in memplugin_alloc
In memplugin_alloc(), the buffer pointer is meant to start at the end of
the MemHeader structure. h->ptr which holds this offset is calculated
incorrectly, but this has not caused any errors as the h->ptr is not
referenced directly. This offset is acquired through `H2P` macroin the
code. Nevertheless fixing the pointer arithmetic.
Change-Id: I075455860fbeb54001a9f2fde1de544c39fe3ed0
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
In memplugin_alloc(), the buffer pointer is meant to start at the end of
the MemHeader structure. h->ptr which holds this offset is calculated
incorrectly, but this has not caused any errors as the h->ptr is not
referenced directly. This offset is acquired through `H2P` macroin the
code. Nevertheless fixing the pointer arithmetic.
Change-Id: I075455860fbeb54001a9f2fde1de544c39fe3ed0
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
libdce [Android]: avoid crash in memplugin_close
Add more checks to prevent crash scenarios in memplugin_close.
Change-Id: Ieafc2bbd7a6876059926f37619b017d9cbb5a21d
Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
Add more checks to prevent crash scenarios in memplugin_close.
Change-Id: Ieafc2bbd7a6876059926f37619b017d9cbb5a21d
Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
libdce[Android]: Defer rpmsg_dce device open till buffer lock phase
In the current architecture, rpmsg_dce device is opened
during memplugin_open(), which can be called from any process
context. With Android system configured in SE Linux Enforcement
mode, it is not allowed to open rpmsg_dce in any process other than
mediaserver. Hence the device open logic is deferred till
dce buffer lock API where the actual device ioctls are needed.
Change-Id: Iedacfd3327e0ee975a8a492b057aac576d7f7c10
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
In the current architecture, rpmsg_dce device is opened
during memplugin_open(), which can be called from any process
context. With Android system configured in SE Linux Enforcement
mode, it is not allowed to open rpmsg_dce in any process other than
mediaserver. Hence the device open logic is deferred till
dce buffer lock API where the actual device ioctls are needed.
Change-Id: Iedacfd3327e0ee975a8a492b057aac576d7f7c10
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Valid id checking for callbackmsg[id]).row_mode in process()
In VIDDEC3_process or VIDENC2_process, if low latency is used, then
id will have a valid value of >= 0.
When full frame is used, after process call, there is a condition
check of callbackmsg[id]).row_mode. Problem is that id might not be valid
for full frame. With id value < 0, the value in callbackmsg[id]).row_mode
can be guarantee to be correct. Issue is found when id = -1 and the value
of callbackmsg[-1]).row_mode points to less than 0, which causes the
condition to pass.
This commit is fixing the issue by adding additional check to make sure
id is >= 0 when calling callbackmsg[id]).row_mode so that the
condition check will be valid to determine low latency mode or full
frame mode after process().
Change-Id: I93209e4da42305e807824565bf676c8bdd33d72a
Signed-off-by: Buddy Liong <buddy.liong@ti.com>
In VIDDEC3_process or VIDENC2_process, if low latency is used, then
id will have a valid value of >= 0.
When full frame is used, after process call, there is a condition
check of callbackmsg[id]).row_mode. Problem is that id might not be valid
for full frame. With id value < 0, the value in callbackmsg[id]).row_mode
can be guarantee to be correct. Issue is found when id = -1 and the value
of callbackmsg[-1]).row_mode points to less than 0, which causes the
condition to pass.
This commit is fixing the issue by adding additional check to make sure
id is >= 0 when calling callbackmsg[id]).row_mode so that the
condition check will be valid to determine low latency mode or full
frame mode after process().
Change-Id: I93209e4da42305e807824565bf676c8bdd33d72a
Signed-off-by: Buddy Liong <buddy.liong@ti.com>
get_rproc_info: Introduce new API to query remoteproc
This is the initial implementation of an extensible API
that allows the user to query various remote core
parameters. Currently, there are three query parameters
that are supported:
1. CPU Load
2. Total configured heap size
3. Available heap size
The intent of this API is to programmatically call the
API and feed it in various other tools that can be
developed on top of this (for example: soc performance
visualization etc.)
NOTE: This will require the implementation on ipumm-fw
and/or dspdce-fw.
Change-Id: I94c309221dbce24162a4f31166890d3acdb2d049
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
Signed-off-by: Buddy Liong <buddy.liong@ti.com>
This is the initial implementation of an extensible API
that allows the user to query various remote core
parameters. Currently, there are three query parameters
that are supported:
1. CPU Load
2. Total configured heap size
3. Available heap size
The intent of this API is to programmatically call the
API and feed it in various other tools that can be
developed on top of this (for example: soc performance
visualization etc.)
NOTE: This will require the implementation on ipumm-fw
and/or dspdce-fw.
Change-Id: I94c309221dbce24162a4f31166890d3acdb2d049
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
Signed-off-by: Buddy Liong <buddy.liong@ti.com>
[LIBDCE]: Fix in dce_enc_test when buffer type is tiler
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>
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>
Dos2unix on common.mk
Update common.mk into unix format by running dos2unix.
Change-Id: I06467d79566deaaf781084df29c3f06947645016
Signed-off-by: Buddy Liong <buddy.liong@ti.com>
Update common.mk into unix format by running dos2unix.
Change-Id: I06467d79566deaaf781084df29c3f06947645016
Signed-off-by: Buddy Liong <buddy.liong@ti.com>
H.264 low latency with 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 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 3.42.00.02 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>
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 3.42.00.02 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 5c45f781
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>
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 resolution
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>
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>
Updated README on FC version for MMIP 3.00.08.02
For MMIP 3.00.08.02, the firmware requires FC to be updated
to version 3.40.01.04 which solves the issue with
FC_suspend() crashes if alg contains > 10 resources.
Change-Id: If30a183f29746cd43204a1a4f0cbea5481004467
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
For MMIP 3.00.08.02, the firmware requires FC to be updated
to version 3.40.01.04 which solves the issue with
FC_suspend() crashes if alg contains > 10 resources.
Change-Id: If30a183f29746cd43204a1a4f0cbea5481004467
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
VC1: setting the error concealment
IVC1VDEC_Params.errorConcealmentON to TURE.
Change-Id: Ia6abfd11adff48558509692d5bcf751e9ec5a97a
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
IVC1VDEC_Params.errorConcealmentON to TURE.
Change-Id: Ia6abfd11adff48558509692d5bcf751e9ec5a97a
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
README update for MMIP 3.00.08.01
Update README to correspond the IVAHD codecs version.
Change-Id: I351ae4cb24668caac7f35a7574da8d0e33f2053a
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
Update README to correspond the IVAHD codecs version.
Change-Id: I351ae4cb24668caac7f35a7574da8d0e33f2053a
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
README update for MMIP 3.00.08.00
Update README to correspond the correct build tools and
IVAHD codecs version.
Change-Id: I051f314ab42694dbf0c7991f717b0bb99bfb1e1e
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
Update README to correspond the correct build tools and
IVAHD codecs version.
Change-Id: I051f314ab42694dbf0c7991f717b0bb99bfb1e1e
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
libdce[LINUX] : Mutex protection support and other bug fixes
* The dce_init/dce_deinit APIs can be called multiple times by applications.
This is called from multiple thread contexts in the viddec3test and is also
invoked several times by the GStreamer framework.
* But certain init functions and deinit operations need to be done only on the
first and last calls of the respective APIs.
* Additionally, according the pthread documentation we need to use **either**
the PTHREAD_MUTEX_INITIALIZER or the pthread_mutex_init APIs with the attribs
* The protection for the dce_init with the ref count mechanism is additionally
needed for the mutex initialization because if this is not done conditionally
(for the first dce_init) sequence, the subsequent call to this API would
actually reinit the mutex value and cause the new thread sequence to acquire
the same.
Change-Id: I2d129a2b030a25c4e8c5f621abf05d68562db6b8
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
* The dce_init/dce_deinit APIs can be called multiple times by applications.
This is called from multiple thread contexts in the viddec3test and is also
invoked several times by the GStreamer framework.
* But certain init functions and deinit operations need to be done only on the
first and last calls of the respective APIs.
* Additionally, according the pthread documentation we need to use **either**
the PTHREAD_MUTEX_INITIALIZER or the pthread_mutex_init APIs with the attribs
* The protection for the dce_init with the ref count mechanism is additionally
needed for the mutex initialization because if this is not done conditionally
(for the first dce_init) sequence, the subsequent call to this API would
actually reinit the mutex value and cause the new thread sequence to acquire
the same.
Change-Id: I2d129a2b030a25c4e8c5f621abf05d68562db6b8
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
libdce[Linux]: Add mutex protection for dce_buf_lock/dce_buf_unlock
The dce_buf_lock and dce_buf_unlock are meant for any video
buffer locking and unlocking with the GEM allocator.
Currently, these methods are being called from libdce apis
with ipc mutex held. In order to enable other media components
to make use of these buffer lock/unlock apis, explicit ipc mutex
protection is added.
Change-Id: Ibb4976120e5dfe6f88b42359655a460cafc223ac
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
The dce_buf_lock and dce_buf_unlock are meant for any video
buffer locking and unlocking with the GEM allocator.
Currently, these methods are being called from libdce apis
with ipc mutex held. In order to enable other media components
to make use of these buffer lock/unlock apis, explicit ipc mutex
protection is added.
Change-Id: Ibb4976120e5dfe6f88b42359655a460cafc223ac
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[DCE_ENC_TEST] Handling other errors from VIDENC2_process
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>
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_process
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>
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 allocation
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>
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>
[TRACE] Add tag to Android logs
By default Android tag is empty, define one for libdce
Change-Id: Ide10001092cc529c935f1387774f3b9afc4f1d1f
Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
By default Android tag is empty, define one for libdce
Change-Id: Ide10001092cc529c935f1387774f3b9afc4f1d1f
Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
[TEST_QNX] Cleanup debug print.
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>
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>
libdce[ANDROID]: Fix bug in omap buffer object free logic
For the omap_bo_del function call, we need to pass
the bo object rather than the mmaped pointer.
Change-Id: I3b011594b0210ec6f95f3f4644835594a80ace28
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
For the omap_bo_del function call, we need to pass
the bo object rather than the mmaped pointer.
Change-Id: I3b011594b0210ec6f95f3f4644835594a80ace28
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
9 years agoUpdate common.mk to exclude Android libdce_android object files 3.00.07.01 3.00.07.02 3.00.07.04
Update common.mk to exclude Android libdce_android object files
Updating common.mk so that it will not include in the link/archive step
for libdce_android.c Android files when compiling on QNX HLOS.
Change-Id: I4621b29dfa6c30fbdd3f632afcb9f10d4d8946a6
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
Updating common.mk so that it will not include in the link/archive step
for libdce_android.c Android files when compiling on QNX HLOS.
Change-Id: I4621b29dfa6c30fbdd3f632afcb9f10d4d8946a6
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
libdce: Add mutex protection for dce_buf_lock/dce_buf_unlock
The dce_buf_lock and dce_buf_unlock are meant for any video
buffer locking and unlocking with the GEM allocator.
Currently, these methods are being called from libdce apis
with ipc mutex held. In order to enable other media components
to make use of these buffer lock/unlock apis, explicit ipc mutex
protection is added.
Change-Id: I6d63a4cdcffec62a346341ff515a7ebb03dea8c0
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
The dce_buf_lock and dce_buf_unlock are meant for any video
buffer locking and unlocking with the GEM allocator.
Currently, these methods are being called from libdce apis
with ipc mutex held. In order to enable other media components
to make use of these buffer lock/unlock apis, explicit ipc mutex
protection is added.
Change-Id: I6d63a4cdcffec62a346341ff515a7ebb03dea8c0
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
libdce[Android] - Use drm render node instead of card0
Render nodes allow a limited set of ioctls without restrictions.
libdce only needs to access drm to get buffers and render
node should be sufficient.
Note that this is new feature in the kernel.
Also, need a better way to open render node than to use hard coded
path name.
Change-Id: I8178414185dcaf6c70edc756eefb0a00b7e3c332
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Render nodes allow a limited set of ioctls without restrictions.
libdce only needs to access drm to get buffers and render
node should be sufficient.
Note that this is new feature in the kernel.
Also, need a better way to open render node than to use hard coded
path name.
Change-Id: I8178414185dcaf6c70edc756eefb0a00b7e3c332
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Revert "libdce[ANDROID] - add drmsetmaster/dropmaster calls"
Not needed as dce will use drm render node.
This reverts commit 4715ea56d8a266e66bc6cef982410c602a19be43.
Change-Id: I1dc14249ffe2dbbfdfd970cea3bf4a378274db6d
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Not needed as dce will use drm render node.
This reverts commit 4715ea56d8a266e66bc6cef982410c602a19be43.
Change-Id: I1dc14249ffe2dbbfdfd970cea3bf4a378274db6d
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
[Fix] Support Multiplanar encoder input buffers
An earlier patch to enable Single planar buffers for encoder
broke the multiplanar support.
This patch fixes this issue.
Change-Id: Ide169a43b3df915a969a401e623fdad7f8792faf
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
An earlier patch to enable Single planar buffers for encoder
broke the multiplanar support.
This patch fixes this issue.
Change-Id: Ide169a43b3df915a969a401e623fdad7f8792faf
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
libdce[ANDROID] - add drmsetmaster/dropmaster calls
Added setdrmmaster and dropdrmmaster calls for
every drm ioctl.
Change-Id: I9319e5927374e677480a18f937d2bbd12e561462
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Added setdrmmaster and dropdrmmaster calls for
every drm ioctl.
Change-Id: I9319e5927374e677480a18f937d2bbd12e561462
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Integration based on IPC 3.30.01.12
Integration with IPC 3.30.01.12 requires build tool update on
XDC tool version to 3_30_xx_xx. Using the latest XDC Tools of
3_30_05_60_core
Copying the header files used from 3_30_05_60 version.
Change-Id: I648bfa945bcc0d8a43b4653d8f303cd9c18ee03f
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
Integration with IPC 3.30.01.12 requires build tool update on
XDC tool version to 3_30_xx_xx. Using the latest XDC Tools of
3_30_05_60_core
Copying the header files used from 3_30_05_60 version.
Change-Id: I648bfa945bcc0d8a43b4653d8f303cd9c18ee03f
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
libdce[Android]: Added support for DRM based Android memplugin
This patch adds memplugin implementation for GEM allocator
and dce buffer locking via MmRPC for Android builds.
Android memplugin implement memplugin interface for buffers
with and without memheaders. This implementation is for
DRM/GEM buffer allocations. And libdce_android implements
GEM buffer registration and unregistration with MmRPC.
Change-Id: Ie72c988a37f987446f7d7c1d97225295de73d305
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
This patch adds memplugin implementation for GEM allocator
and dce buffer locking via MmRPC for Android builds.
Android memplugin implement memplugin interface for buffers
with and without memheaders. This implementation is for
DRM/GEM buffer allocations. And libdce_android implements
GEM buffer registration and unregistration with MmRPC.
Change-Id: Ie72c988a37f987446f7d7c1d97225295de73d305
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
libdce: Changes to make dce_ipc_init/deinit external
dce_ipc_init and dce_ipc_deinit are required by
android memplugin even before DCE engine open happens.
This is required to use MmRpc interface for DRM/GEM
buffer locking.
Change-Id: Ia11af04658c367242c33ab8acffaa4b522aa0716
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
dce_ipc_init and dce_ipc_deinit are required by
android memplugin even before DCE engine open happens.
This is required to use MmRpc interface for DRM/GEM
buffer locking.
Change-Id: Ia11af04658c367242c33ab8acffaa4b522aa0716
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[DCE TEST] [DCE ENC TEST] Logs added for dce test automation
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>
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>
Fix multi threaded logic for client indexing
Client count was being used for indexing into an empty slot in table
holding clients' engine handles.
In the case of multi-threaded scenario, there is a possibility of
out of order creation and deletions of clients in which case the client
indexing should search for an empty slot in the table rather than assuming
that the index defined by number of clients points to an empty slot in the
table.
This patch fixes this issue by decoupling client count from table indexing.
Now the table indexing is done by finding the empty slot identified by a '0'
in the entry. This also forces filling '0' during client deletion which is also
taken care of in the patch.
Change-Id: I3d4c8d744c3912a6fae5809f445039d39b762f91
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Client count was being used for indexing into an empty slot in table
holding clients' engine handles.
In the case of multi-threaded scenario, there is a possibility of
out of order creation and deletions of clients in which case the client
indexing should search for an empty slot in the table rather than assuming
that the index defined by number of clients points to an empty slot in the
table.
This patch fixes this issue by decoupling client count from table indexing.
Now the table indexing is done by finding the empty slot identified by a '0'
in the entry. This also forces filling '0' during client deletion which is also
taken care of in the patch.
Change-Id: I3d4c8d744c3912a6fae5809f445039d39b762f91
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Fixing Klocwork finding
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>
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>
README update
Integration with IPC 3.23.00.01 requires build tool update on
XDC tool version to 3_25_06_96
Copying the header files used from 3_25_06_90 version.
Change-Id: Ie1e6e167a9cfb42fde706fa06ba4dd5900db7483
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
Integration with IPC 3.23.00.01 requires build tool update on
XDC tool version to 3_25_06_96
Copying the header files used from 3_25_06_90 version.
Change-Id: Ie1e6e167a9cfb42fde706fa06ba4dd5900db7483
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
[TEST_QNX] Fixing compiler warnings
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>
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>
[QNX] Fixing compiler warning.
When compiling with QNX SDP 6.6, compiler issues warning of:
/libdce/memplugin_qnx.c: In function 'memplugin_alloc':
/libdce/memplugin_qnx.c:46:25: warning: variable 'eError' set but not used [-Wunused-but-set-variable]
/libdce/memplugin_qnx.c: In function 'memplugin_free':
/libdce/memplugin_qnx.c:109:25: warning: variable 'eError' set but not used [-Wunused-but-set-variable]
Change-Id: Iebb4e68fd036e5bb750198f5b60d38f44c5cd856
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
When compiling with QNX SDP 6.6, compiler issues warning of:
/libdce/memplugin_qnx.c: In function 'memplugin_alloc':
/libdce/memplugin_qnx.c:46:25: warning: variable 'eError' set but not used [-Wunused-but-set-variable]
/libdce/memplugin_qnx.c: In function 'memplugin_free':
/libdce/memplugin_qnx.c:109:25: warning: variable 'eError' set but not used [-Wunused-but-set-variable]
Change-Id: Iebb4e68fd036e5bb750198f5b60d38f44c5cd856
Signed-off-by: Buddy Liong <buddy.budiono@ti.com>
[VIDENC2] Single planar support for encoder input
This patch adds support for single planar buffers (Y and UV) in a single buffer
sharing the same dma buf fd.
In the case of single planar buffers the offset of uv data need to passed to
rpc. This logic has been added in this patch. The patch s specific to LINUX and
will not have any effect on QNX and Android builds.
Change-Id: Ib4be4b8f1df36a1dc8d53eb0299189802ce040ca
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
This patch adds support for single planar buffers (Y and UV) in a single buffer
sharing the same dma buf fd.
In the case of single planar buffers the offset of uv data need to passed to
rpc. This logic has been added in this patch. The patch s specific to LINUX and
will not have any effect on QNX and Android builds.
Change-Id: Ib4be4b8f1df36a1dc8d53eb0299189802ce040ca
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
README update
Updating README note on the codec version used for
MMIP 3.00.05.01
VC1 decoder codec version 01.00.00.13
MPEG2 decoder codec version 01.00.14.01
H.264 encoder codec version 02.00.08.01
Change-Id: Iccaf4895398d514d0710794d4e9d9773468669b8
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Updating README note on the codec version used for
MMIP 3.00.05.01
VC1 decoder codec version 01.00.00.13
MPEG2 decoder codec version 01.00.14.01
H.264 encoder codec version 02.00.08.01
Change-Id: Iccaf4895398d514d0710794d4e9d9773468669b8
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
[Linux] Add automatic search path for IPC headers
Adds the automatic search header mechanism using pkg-config
for libmmrpc.
Change-Id: If4aa61cb598567455a1342be358338e4adfcc3e0
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Adds the automatic search header mechanism using pkg-config
for libmmrpc.
Change-Id: If4aa61cb598567455a1342be358338e4adfcc3e0
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[DCE_TEST] When outBufsInUse is set, use previous inputID
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>
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>
README update
Updating README note on the VC1 codec version update from
01.00.00.11 to 01.00.00.12 on the IPUMM side.
Change-Id: Ib02274fd0ac1c86f6e7978e4e82ac618603159b1
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Updating README note on the VC1 codec version update from
01.00.00.11 to 01.00.00.12 on the IPUMM side.
Change-Id: Ib02274fd0ac1c86f6e7978e4e82ac618603159b1
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Updating README
The command to build libdce on QNX requires additional information.
Instead of "make clean" and "make install", due to the renaming of
Makefile to Makefile.qnx, the command becomes "make -f Makefile.qnx clean"
and "make -f Makefile.qnx install".
Updates the "Supported API Information" to point to the header files
instead of listed it again here.
Change-Id: Ied47d812eb8b0a6c9a9bb0cace3f6241f91d7325
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
The command to build libdce on QNX requires additional information.
Instead of "make clean" and "make install", due to the renaming of
Makefile to Makefile.qnx, the command becomes "make -f Makefile.qnx clean"
and "make -f Makefile.qnx install".
Updates the "Supported API Information" to point to the header files
instead of listed it again here.
Change-Id: Ied47d812eb8b0a6c9a9bb0cace3f6241f91d7325
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Merge "updating gitignore"
Merge "[LINUX] Manage Tiler Pinning for dce DRM buffers"
updating gitignore
Added Makefile and *.out
Change-Id: I6c81aa1ea0b7d1ab8a1772895310f479e8521ad7
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Added Makefile and *.out
Change-Id: I6c81aa1ea0b7d1ab8a1772895310f479e8521ad7
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[LINUX] Manage Tiler Pinning for dce DRM buffers
Applications using dce_alloc/dce_free calls to manage memory,
leaked memory because on non-closure of the created dmabuf fds.
Additionally, all memory allocated from Tiler/DMM via DRM need to be
explictly pinned to tiler using dce_buf_lock/dce_buf_unlock calls.
Hence in the earlier implementation, every call to dce_alloc/free
had to be followed by a lock/unlock call to pin/unpin it to tiler.
In order, to insulate the applications from the internal details of
DRM memory management and for ease of use of alloc and free calls,
dce_alloc now takes care of creating the dmabuf and pinning it to tiler
while dce_free takes care of tiler unpinning and closure of dmabuf fd.
Applications can continue to use dce_alloc and dce_free calls as before
thus maintiaining backward compatibility.
On the other hand, since the same interfaces are used for multiple remote
core targets, like IPU and DSP, MemHeader struture is upgraded to hold the
core for which the block of memory belongs to, to keep track of the core.
Hence all applications/Remote cores using this version of libdce should
recompile with the new MemHeader for proper functioning.
Dependent IPUMM patch: https://gerrit.ext.ti.com/gerrit/omap/#/c/12994/
Change-Id: If09a1039b5b16f3cc5ff0e9c6c598932d8a2ce3e
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
Applications using dce_alloc/dce_free calls to manage memory,
leaked memory because on non-closure of the created dmabuf fds.
Additionally, all memory allocated from Tiler/DMM via DRM need to be
explictly pinned to tiler using dce_buf_lock/dce_buf_unlock calls.
Hence in the earlier implementation, every call to dce_alloc/free
had to be followed by a lock/unlock call to pin/unpin it to tiler.
In order, to insulate the applications from the internal details of
DRM memory management and for ease of use of alloc and free calls,
dce_alloc now takes care of creating the dmabuf and pinning it to tiler
while dce_free takes care of tiler unpinning and closure of dmabuf fd.
Applications can continue to use dce_alloc and dce_free calls as before
thus maintiaining backward compatibility.
On the other hand, since the same interfaces are used for multiple remote
core targets, like IPU and DSP, MemHeader struture is upgraded to hold the
core for which the block of memory belongs to, to keep track of the core.
Hence all applications/Remote cores using this version of libdce should
recompile with the new MemHeader for proper functioning.
Dependent IPUMM patch: https://gerrit.ext.ti.com/gerrit/omap/#/c/12994/
Change-Id: If09a1039b5b16f3cc5ff0e9c6c598932d8a2ce3e
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
[LIBDCE] Updating README
XDCTOOLS version is updated from 3.25.04.88 to 3.25.05.94.
Change-Id: I94842de37a268d38cd6e32d09339a57ebbd9f7a4
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
XDCTOOLS version is updated from 3.25.04.88 to 3.25.05.94.
Change-Id: I94842de37a268d38cd6e32d09339a57ebbd9f7a4
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
[DCE_TEST] Dump output frames per user specified request for NON-TILER
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>
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>
[LIBDCE] Rename Makefile to Makefile.qnx
LIBDCE is common component for Linux, Android and QNX.
Linux is using automake tools which create a file by name
of Makefile which overwrite the Makefile intended for QNX.
Prior to this patch, the command to build LIBDCE for QNX:
Command to clean:
make clean
Command to build:
make
Command to build and install the output to install folder:
make install
After this patch, the command to build LIBDCE for QNX:
Command to clean:
make -f Makefile.qnx clean
Command to build:
make -f Makefile.qnx
Command to build and install the output to install folder:
make -f Makefile.qnx install
Change-Id: Iaa76d4d6c51a510dc6ccd19fdd45865c4cb46c18
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
LIBDCE is common component for Linux, Android and QNX.
Linux is using automake tools which create a file by name
of Makefile which overwrite the Makefile intended for QNX.
Prior to this patch, the command to build LIBDCE for QNX:
Command to clean:
make clean
Command to build:
make
Command to build and install the output to install folder:
make install
After this patch, the command to build LIBDCE for QNX:
Command to clean:
make -f Makefile.qnx clean
Command to build:
make -f Makefile.qnx
Command to build and install the output to install folder:
make -f Makefile.qnx install
Change-Id: Iaa76d4d6c51a510dc6ccd19fdd45865c4cb46c18
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
[DCE_TEST] Clean up of OMAP5 flag for MPEG4 decoder.
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>
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>
[Fix] Hold mutex during Mmrpc_call
There is a single IPC channel to communicate to IPU2
using Mmrpc calls. Any communication to remote proc
ipu2 gets routed through same channel. If mutiple
instances use IVAHD/DCE, all the packets get routed
through same channel. There is a possibility of corruption
if the ipc calls are not serialised.
Hence this patch protects the Mmrpc_call function calls
with a mutex.
Change-Id: I3673ba76e52f03707277893cec07cff06abe8f1f
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
There is a single IPC channel to communicate to IPU2
using Mmrpc calls. Any communication to remote proc
ipu2 gets routed through same channel. If mutiple
instances use IVAHD/DCE, all the packets get routed
through same channel. There is a possibility of corruption
if the ipc calls are not serialised.
Hence this patch protects the Mmrpc_call function calls
with a mutex.
Change-Id: I3673ba76e52f03707277893cec07cff06abe8f1f
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[Bug] Fix possible client count overflow
The number of existing clients already running was being incremented
and then checked for maximum clients allowed.
However in the error scenario i.e. when maximum allowed clients are already
running and the new incoming client connection request was rejected the
client count was incremented unconditionally and not rolled back to
previous value thus resulting in possible overflow error.
This patch fixes this erroneous case.
Change-Id: I3e2b2bebfd025ba6a99b7ef838537d9716154ca4
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
The number of existing clients already running was being incremented
and then checked for maximum clients allowed.
However in the error scenario i.e. when maximum allowed clients are already
running and the new incoming client connection request was rejected the
client count was incremented unconditionally and not rolled back to
previous value thus resulting in possible overflow error.
This patch fixes this erroneous case.
Change-Id: I3e2b2bebfd025ba6a99b7ef838537d9716154ca4
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[LIBDCE] Clean up README and unsupported header files.
Updating README on the version information of headers included in
the packages folder.
Removal of h264svcenc, h264svcvdec, and vc1enc header files since it is
not supported in the current IPUMM.
Change-Id: I2bb140604a7c7d6e4ba7482a11ac43bc5076d9f6
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Updating README on the version information of headers included in
the packages folder.
Removal of h264svcenc, h264svcvdec, and vc1enc header files since it is
not supported in the current IPUMM.
Change-Id: I2bb140604a7c7d6e4ba7482a11ac43bc5076d9f6
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
[LIBDCE]: Changes to make Encoder and Decoder co-exist on Android
In the current design omx video decoder is sending ptr for
inbufs and dma_buf_fd for the outbufs to the dce client.
In order to co-exist with encoder the inbufs/outbufs interpretation
is unified between encoder and decoder. this is achieved by
passing the memheader for both inbufs and outbufs for
both encoder and decoders.
This patch modified the process function to handle memheader
for all Android scenarios (inbufs/outbufs for encoder/decoder)
With this unified buf interpretation, the process function
simplified for Android.
Note# This patch has should be merged along with the omx patch:
http://review.omapzoom.org/#/c/34414/
Change-Id: Ia89ef9785ddf702bca986ce6b4a91983fb8bcc11
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
In the current design omx video decoder is sending ptr for
inbufs and dma_buf_fd for the outbufs to the dce client.
In order to co-exist with encoder the inbufs/outbufs interpretation
is unified between encoder and decoder. this is achieved by
passing the memheader for both inbufs and outbufs for
both encoder and decoders.
This patch modified the process function to handle memheader
for all Android scenarios (inbufs/outbufs for encoder/decoder)
With this unified buf interpretation, the process function
simplified for Android.
Note# This patch has should be merged along with the omx patch:
http://review.omapzoom.org/#/c/34414/
Change-Id: Ia89ef9785ddf702bca986ce6b4a91983fb8bcc11
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Merge "[DSP]Added duplicate functions for buffer lock and unlock."
[DSP]Added duplicate functions for buffer lock and unlock.
This is required temporarily as there is no other way to
get the core index.dce_buf_lock and unlock functions expects
MmRpcHandle and now as there are separate handles for DSP
and IPU, to avoid modifying these APIs, duplicate functions
have been created coreIndex is hardcoded.
Added prototypes of dsp specific lock and unlock functions
in libdce.h
Change-Id: I360632acd061f9e134c38bea009b1ad257e32bb8
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
This is required temporarily as there is no other way to
get the core index.dce_buf_lock and unlock functions expects
MmRpcHandle and now as there are separate handles for DSP
and IPU, to avoid modifying these APIs, duplicate functions
have been created coreIndex is hardcoded.
Added prototypes of dsp specific lock and unlock functions
in libdce.h
Change-Id: I360632acd061f9e134c38bea009b1ad257e32bb8
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[LIBDCE] Add non-TILER input buffer for dce_enc_test
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>
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] Spacing and alignment clean up
Clean the spacing and alignment of tab to 4 spaces.
Change-Id: I62d75f0aef1a06858868458eedaf017f90f04ec4
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Clean the spacing and alignment of tab to 4 spaces.
Change-Id: I62d75f0aef1a06858868458eedaf017f90f04ec4
Signed-off-by: buddy.liong <buddy.budiono@ti.com>
Added VIDDEC2 interfaces for DSP codecs
This patch adds VIDDEC2 interfaces and libdce now supports
both VIDDEC2 and VIDDEC3 interfaces. It initializes ipc based
on the server name(IVA or DSP).
Provisions are made to handle multiple instances of IPU and DSP codecs.
Change-Id: Ie1869e626423a6250983711114dc9d0854022309
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
This patch adds VIDDEC2 interfaces and libdce now supports
both VIDDEC2 and VIDDEC3 interfaces. It initializes ipc based
on the server name(IVA or DSP).
Provisions are made to handle multiple instances of IPU and DSP codecs.
Change-Id: Ie1869e626423a6250983711114dc9d0854022309
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[LIBDCE] Get codec version on dce_test and dce_enc_test
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>
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_test
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>
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>
[ANDROID] update make file for ipc 3.20.00.04_eng
In IPC 3.20.00.04_eng release, the MPU side ipc library
is split into mmrpc.lib and ti_ipc.lib to better maintain
mm and generic ipc stacks. Hence the dce make file needs to be
updated to link to mmrpc.lib
Change-Id: If5598fed13a864d62fdb0e0a4e06c16b862d7147
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
In IPC 3.20.00.04_eng release, the MPU side ipc library
is split into mmrpc.lib and ti_ipc.lib to better maintain
mm and generic ipc stacks. Hence the dce make file needs to be
updated to link to mmrpc.lib
Change-Id: If5598fed13a864d62fdb0e0a4e06c16b862d7147
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Remove memcpy in read_input for dce_enc_test
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>
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 SAD
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>
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>
[Linux] Makefile updated to export xdais/fc header
Makefile changes to export the framework component
and xdais header files.
Change-Id: I789c53d96ff43ed91bb70e0f774af5078a041365
Signed-off-by: Chandramohan <chandramohan.c@ti.com>
Makefile changes to export the framework component
and xdais header files.
Change-Id: I789c53d96ff43ed91bb70e0f774af5078a041365
Signed-off-by: Chandramohan <chandramohan.c@ti.com>
Add check for ownership for file descriptor
Currently, the dce_deinit function deletes the file descriptor(fd) that
it uses for allocation of the buffers even if it has not created it.
This adds a check where it only deletes the fd only when the ownership
of fd is with libdce else it only deletes th device which it uses.
Also, add a check where the dce_set_fd sets the fd only if the drm
device fd is not already set to avoid memory leak.
Change-Id: Ie5e23f06a5d171f2c06f4bebb64b040915e71153
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Currently, the dce_deinit function deletes the file descriptor(fd) that
it uses for allocation of the buffers even if it has not created it.
This adds a check where it only deletes the fd only when the ownership
of fd is with libdce else it only deletes th device which it uses.
Also, add a check where the dce_set_fd sets the fd only if the drm
device fd is not already set to avoid memory leak.
Change-Id: Ie5e23f06a5d171f2c06f4bebb64b040915e71153
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
configure.ac: Add test for cross-compiling.
Since AC_CHECK_FILES macro doesn't work while cross-compiling.
Change-Id: I1913543e99d4e2423a4cf1cd15d5cc372d689318
Signed-off-by: Mrinmayee Hingolikar <mrinmayee@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Since AC_CHECK_FILES macro doesn't work while cross-compiling.
Change-Id: I1913543e99d4e2423a4cf1cd15d5cc372d689318
Signed-off-by: Mrinmayee Hingolikar <mrinmayee@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
[Linux] fixed an unreachable statement
Applications can optionally communicate the drm FD to libdce using
dce_set_fd before calling dce_init. In such cases dce_init will not
open a new DRM file descriptor. But for applications not using this
option, libdce will create a new fd for its use in dce_alloc.
The drmOpen call was unreachable in such cases and hence there was
an invalid handle. This patch fixes this issue of an unreachable
statement in dce_init
Change-Id: I4758416a7d34fff873c280f7583c05c1640c312b
Signed-off-by: Chandramohan <chandramohan.c@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Applications can optionally communicate the drm FD to libdce using
dce_set_fd before calling dce_init. In such cases dce_init will not
open a new DRM file descriptor. But for applications not using this
option, libdce will create a new fd for its use in dce_alloc.
The drmOpen call was unreachable in such cases and hence there was
an invalid handle. This patch fixes this issue of an unreachable
statement in dce_init
Change-Id: I4758416a7d34fff873c280f7583c05c1640c312b
Signed-off-by: Chandramohan <chandramohan.c@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
[LIBDCE] Replace Semaphore with Mutex
This patch reverts the below commit:
"abd5152ca071e552954571862635666297221177
[LIBDCE] Mutual exclusion of Engine_open and Engine_close"
Description:
-----------
(1) The current semaphore logic doesn't protect the engine open/close
calls across processes. It is confirmed on QNX that two instances of
dce test app is creating two different instances of semaphore.
Hence, other than the delay the current semaphore doesn't add
any protection for the mutli process <-> multi instance scenarios.
(2) For the single process <-> multi instance scenario, it does protect
the engine open/close calls, but it fails due to lack of reference counting
And also, it is not sure why we need to protect the entire engine_open/close.
Hence the current semaphore is replaced with mutex to protect the ipc handle
create/close.
Change-Id: Ibdad089bdd39cd5afc813373e84bf91fa8920860
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
This patch reverts the below commit:
"abd5152ca071e552954571862635666297221177
[LIBDCE] Mutual exclusion of Engine_open and Engine_close"
Description:
-----------
(1) The current semaphore logic doesn't protect the engine open/close
calls across processes. It is confirmed on QNX that two instances of
dce test app is creating two different instances of semaphore.
Hence, other than the delay the current semaphore doesn't add
any protection for the mutli process <-> multi instance scenarios.
(2) For the single process <-> multi instance scenario, it does protect
the engine open/close calls, but it fails due to lack of reference counting
And also, it is not sure why we need to protect the entire engine_open/close.
Hence the current semaphore is replaced with mutex to protect the ipc handle
create/close.
Change-Id: Ibdad089bdd39cd5afc813373e84bf91fa8920860
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Fix memory leak on dce_ipc_init failure
On dce_ipc_init failure, we need to close the semaphore
that was already created successfully.
Change-Id: Id04ed4cae7e3dab6193e460b005580fac0c2edd4
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
On dce_ipc_init failure, we need to close the semaphore
that was already created successfully.
Change-Id: Id04ed4cae7e3dab6193e460b005580fac0c2edd4
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE][ANDROID] unify 1D output buffer support for Android/Linux
Android omx components are modified to support dma buf fd
for the output buffers, in all scenarios.
Hence Android specific changes are removed from libdce, and
enabled linux code for android as well.
Change-Id: I8bf86803b40702d28ba0c45fd829b35fb47445fd
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Android omx components are modified to support dma buf fd
for the output buffers, in all scenarios.
Hence Android specific changes are removed from libdce, and
enabled linux code for android as well.
Change-Id: I8bf86803b40702d28ba0c45fd829b35fb47445fd
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Add single planar output buffer support for Android
Android Thumbnail scenario allocates both input and out buffers
from ION carveout. A single buffer is allocated for both Y and UV,
with an offset for UV.
This patch adds support for single planar buffers with memheaders
required for the Android thumbnail scenario.
Change-Id: I18306d2b07fe89f667d3f04bf5769ef1f2585c9d
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Android Thumbnail scenario allocates both input and out buffers
from ION carveout. A single buffer is allocated for both Y and UV,
with an offset for UV.
This patch adds support for single planar buffers with memheaders
required for the Android thumbnail scenario.
Change-Id: I18306d2b07fe89f667d3f04bf5769ef1f2585c9d
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Android.mk: Android make file update for new project path
make file is updated for the ipc and omx project paths.
Change-Id: I7b4f8583782d72181c40c248a28f165154e3423e
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
make file is updated for the ipc and omx project paths.
Change-Id: I7b4f8583782d72181c40c248a28f165154e3423e
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Add TI License Header for the codec headers
Change-Id: I906358240c9e72529f80a1d13822cb0205d66caf
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Change-Id: I906358240c9e72529f80a1d13822cb0205d66caf
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Trace and Comments cleanup
This patch:
1. replaces printf with trace MACROS.
2. Remove unwanted comments.
Change-Id: Id137603cbe947ca371550f594fc249d2f1b1410b
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch:
1. replaces printf with trace MACROS.
2. Remove unwanted comments.
Change-Id: Id137603cbe947ca371550f594fc249d2f1b1410b
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[LINUX] Fix for memory allocation/free in buf_lock/unlock
This patch makes the following changes within dce_buf_lock/unlock:
1. Changes API of memory allocation from memplugin_alloc
to malloc as Tiler/Shared memory is not needed
2. Frees the allocated memory at EXIT from function.
Change-Id: Id728abad86d4582f0e904f4c8680e99d47cb3a0a
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch makes the following changes within dce_buf_lock/unlock:
1. Changes API of memory allocation from memplugin_alloc
to malloc as Tiler/Shared memory is not needed
2. Frees the allocated memory at EXIT from function.
Change-Id: Id728abad86d4582f0e904f4c8680e99d47cb3a0a
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[LIBDCE] Add Android specific changes
This patch adds changes specific to Android OS:
(1) Semaphore handling
(2) Input buffer offset handling
Change-Id: Id6232e0b90e638fd1268ccbfafb51c6ca916fad2
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
This patch adds changes specific to Android OS:
(1) Semaphore handling
(2) Input buffer offset handling
Change-Id: Id6232e0b90e638fd1268ccbfafb51c6ca916fad2
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Move semaphore handling into dce_sem_* methods
Inorder to unify semaphore handling across multiple OSes
semphore calls are moved into dce_sem_* methods.
Change-Id: I32e8fc2ffdbf9ee91365923a28dded7f1d8784ce
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Inorder to unify semaphore handling across multiple OSes
semphore calls are moved into dce_sem_* methods.
Change-Id: I32e8fc2ffdbf9ee91365923a28dded7f1d8784ce
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Add support for offset within the xlation buffers
The input buffers for the video decoders need offset support
because of HLOS Multimedia framework requirement.
Inorder to support such input buffers, we should provide the
buffer base address and offseted address to ipc.
Change-Id: I2214dbced0a40911b17c5951593322b0fa3bfd16
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
The input buffers for the video decoders need offset support
because of HLOS Multimedia framework requirement.
Inorder to support such input buffers, we should provide the
buffer base address and offseted address to ipc.
Change-Id: I2214dbced0a40911b17c5951593322b0fa3bfd16
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] update memplugin headers and apis
memheader and memplugin apis are extended to meet the
requirements for mem allocations/free/share for all OSes.
Change-Id: Ide911d1654ccd0807ace37de9576299cbb860d07
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
memheader and memplugin apis are extended to meet the
requirements for mem allocations/free/share for all OSes.
Change-Id: Ide911d1654ccd0807ace37de9576299cbb860d07
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[DOC] Update ReadMe
ReadMe now contains:
1. Build Information for QNX
2. Build Information for Linux
3. API Information
4. API call flow
5. Version Info of headers in
packages folder.
Change-Id: If76f6bae18bfac0cb9c6d918d365f5263c539d0d
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
ReadMe now contains:
1. Build Information for QNX
2. Build Information for Linux
3. API Information
4. API call flow
5. Version Info of headers in
packages folder.
Change-Id: If76f6bae18bfac0cb9c6d918d365f5263c539d0d
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[DOC] Renamed README.txt as README
Change-Id: Ie4209ef72aa8e10d246e7b523678dd42350535d8
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Change-Id: Ie4209ef72aa8e10d246e7b523678dd42350535d8
Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
[LIBDCE] Update .gitignore
Update .gitignore to ignore:
nto
dce_test arm folder
dce_enc_test arm folder
Change-Id: I146219e389c84567cf47d116d4fe6b9cc258607d
Signed-off-by: Buddy Liong <a0270631@ti.com>
Update .gitignore to ignore:
nto
dce_test arm folder
dce_enc_test arm folder
Change-Id: I146219e389c84567cf47d116d4fe6b9cc258607d
Signed-off-by: Buddy Liong <a0270631@ti.com>
[GIT] Add gitignore file
Patch adds .gitignore file.
Change-Id: Iee9731e461dccf95beeeb61a2e2869cc1007eda9
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
Patch adds .gitignore file.
Change-Id: Iee9731e461dccf95beeeb61a2e2869cc1007eda9
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[LIBDCE] Update packages with XDAIS, FC Headers
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>
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 changes
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>
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>
[TRACE] Debug Log levels enabled
This patch adds debug log levels to libdce.
To enable traces, set the DCE_DEBUG_ENABLE.
The trace level can be changed by setting
DCE_DEBUG_LEVEL= [1/2/3] during compile time.
Change-Id: I4bed53cc6e3af938c02221376662318e3a1b8ec4
Signed-off-by: Sathishkumar <x0203598@ti.com>
This patch adds debug log levels to libdce.
To enable traces, set the DCE_DEBUG_ENABLE.
The trace level can be changed by setting
DCE_DEBUG_LEVEL= [1/2/3] during compile time.
Change-Id: I4bed53cc6e3af938c02221376662318e3a1b8ec4
Signed-off-by: Sathishkumar <x0203598@ti.com>
[LINUX] Fix for make install
This patch fixes make install. All the required headers are
copied to $(includedir)/dce on make install.
Unused variables(X11 and WAYLAND) are removed in Makefile.am and
pkg-config on libmmrpc is removed as no libmmrpc.pc is available.
xdc_target_types__=gnu/targets/std.h is added to libdce.h, so
that applications need not do it when using libdce.h.
Change-Id: I8cc70aa2102becdbdc4c6b1e38e2aaa91739c4cc
Signed-off-by: Sathishkumar <x0203598@ti.com>
This patch fixes make install. All the required headers are
copied to $(includedir)/dce on make install.
Unused variables(X11 and WAYLAND) are removed in Makefile.am and
pkg-config on libmmrpc is removed as no libmmrpc.pc is available.
xdc_target_types__=gnu/targets/std.h is added to libdce.h, so
that applications need not do it when using libdce.h.
Change-Id: I8cc70aa2102becdbdc4c6b1e38e2aaa91739c4cc
Signed-off-by: Sathishkumar <x0203598@ti.com>
[LIBDCE] Add function descriptor in libdce header file
This patch adds function descriptors in the libdce.h.
The xdc/std.h inclusion is shifted from libdce.c to
libdce.h to remove the need of client application
including xdc/std.h.
Change-Id: I4b9e6f12643b130a2cf1d317c4fed595008c7812
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch adds function descriptors in the libdce.h.
The xdc/std.h inclusion is shifted from libdce.c to
libdce.h to remove the need of client application
including xdc/std.h.
Change-Id: I4b9e6f12643b130a2cf1d317c4fed595008c7812
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[QNX-MAKE] Include XDC, CE, XDAIS, IVAHD Headers from packages
This patch adds std.h from GNU and it directs
the build system to include Codec Engine,
XDCTools, XDAIS and IVAHD Codec Header files
from the packages/ folder. This removes the
need for libdce users to install these tools.
Change-Id: I368a5aaff4c1edeaf6eae794bea9971787e036e3
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch adds std.h from GNU and it directs
the build system to include Codec Engine,
XDCTools, XDAIS and IVAHD Codec Header files
from the packages/ folder. This removes the
need for libdce users to install these tools.
Change-Id: I368a5aaff4c1edeaf6eae794bea9971787e036e3
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[LIBDCE] Added codec, xdais and xdctools headers
This patch adds codec,xdais and xdctools headers for libdce
compilation at HLOS level. Since HLOS code doesn't refer to the
tools directly, this patch provides copy for all the required headers.
Note# These headers need to be updated for every release if the tools
versions are changed.
Version Info of the added Headers:
Tools:
XDC version : xdctools_3_25_02_70
CE version : codec_engine_3_24_00_08
XDAIS version : xdais_7_24_00_04
IVAHD_Codecs:
H.264 Dec : 02.00.13.00
MJPEG Dec : 01.00.11.01
MPEG-4 Dec : 01.00.13.00
VC-1 Dec : 01.00.00.11
MPEG-2 Dec : 01.00.12.00
SVC Dec : 00.06.00.00
H.264 Enc : 02.00.06.01
MJPEG Enc : 01.00.02.01
SVC Enc : 00.02.00.05
Change-Id: Id2307e2376d3ba0c13464c1b21cdba53d8f997f2
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
This patch adds codec,xdais and xdctools headers for libdce
compilation at HLOS level. Since HLOS code doesn't refer to the
tools directly, this patch provides copy for all the required headers.
Note# These headers need to be updated for every release if the tools
versions are changed.
Version Info of the added Headers:
Tools:
XDC version : xdctools_3_25_02_70
CE version : codec_engine_3_24_00_08
XDAIS version : xdais_7_24_00_04
IVAHD_Codecs:
H.264 Dec : 02.00.13.00
MJPEG Dec : 01.00.11.01
MPEG-4 Dec : 01.00.13.00
VC-1 Dec : 01.00.00.11
MPEG-2 Dec : 01.00.12.00
SVC Dec : 00.06.00.00
H.264 Enc : 02.00.06.01
MJPEG Enc : 01.00.02.01
SVC Enc : 00.02.00.05
Change-Id: Id2307e2376d3ba0c13464c1b21cdba53d8f997f2
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
[LIBDCE] Mutual exclusion of Engine_open and Engine_close
This patch uses semaphores to mutually exclude:
1. dce_init() and Engine_open() IPU call.
This solves a hang on IPU side during multiple
instances.
pthread mutex used within dce_init is replaced with
semaphores as mutex is valid only across
threads and not processes.
2. dce_deinit() and Engine_close().
This solves a hang on IPU side during multiple
instances.
Change-Id: Ia4d31582ebf0536142dee389e9601eae0169fb22
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch uses semaphores to mutually exclude:
1. dce_init() and Engine_open() IPU call.
This solves a hang on IPU side during multiple
instances.
pthread mutex used within dce_init is replaced with
semaphores as mutex is valid only across
threads and not processes.
2. dce_deinit() and Engine_close().
This solves a hang on IPU side during multiple
instances.
Change-Id: Ia4d31582ebf0536142dee389e9601eae0169fb22
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[QNX-MAKE] Exclude linux/android specific files
This patch directs QNX build system to exclude
libdce_linux.c and memplugin_android.c during build.
Change-Id: I96ad60d1c0397eb46acd4927e6b7e9912cf01718
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch directs QNX build system to exclude
libdce_linux.c and memplugin_android.c during build.
Change-Id: I96ad60d1c0397eb46acd4927e6b7e9912cf01718
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
[LINUX] Moving Linux specific functions to new c file
This patch moves Linux specific functions to
libdce_linux.c.
It also takes in the DRM Initialization cleanup
changes in dce_init from:
https://gerrit.ext.ti.com/gerrit/omap/#/c/12888
Change-Id: I570341c8dfbe1d120bc89071a86020b6ba5d4cac
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>
This patch moves Linux specific functions to
libdce_linux.c.
It also takes in the DRM Initialization cleanup
changes in dce_init from:
https://gerrit.ext.ti.com/gerrit/omap/#/c/12888
Change-Id: I570341c8dfbe1d120bc89071a86020b6ba5d4cac
Signed-off-by: Saurabh Bipin Chandra <a0131926@ti.com>