aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Aubertin2012-08-03 10:50:00 -0500
committerGuillaume Aubertin2012-08-06 10:02:43 -0500
commitc1548cef92b3abd311227248fc6451a09dc0b1d5 (patch)
tree0c922d174207fea59a5c02189da39ed188b8b97a
parent702c135832c645dc986d817641145ff7438d1a06 (diff)
downloaddce-c1548cef92b3abd311227248fc6451a09dc0b1d5.tar.gz
dce-c1548cef92b3abd311227248fc6451a09dc0b1d5.tar.xz
dce-c1548cef92b3abd311227248fc6451a09dc0b1d5.zip
Using new XDAIS with XDM_MOVEBUFS support
XDAIS 7.23.00.06 includes XDM_MOVEBUFS. headers are updated.
-rw-r--r--README2
-rw-r--r--ducati/ti/dce/dce.c3
-rw-r--r--packages/xdais/ti/xdais/dm/ividdec3.h38
-rw-r--r--packages/xdais/ti/xdais/dm/ividenc2.h8
-rw-r--r--packages/xdais/ti/xdais/dm/ivideo.h5
-rw-r--r--packages/xdais/ti/xdais/dm/xdm.h77
-rw-r--r--packages/xdais/ti/xdais/ialg.h11
-rw-r--r--packages/xdais/ti/xdais/xdas.h5
8 files changed, 108 insertions, 41 deletions
diff --git a/README b/README
index 587528a..9817417 100644
--- a/README
+++ b/README
@@ -26,7 +26,7 @@ The following gives an example of how to build. I don't claim that it is the be
26* BIOS (the RTOS) - 6.32.01.38 26* BIOS (the RTOS) - 6.32.01.38
27* Codec Engine (CE) - 3.20.00.16 27* Codec Engine (CE) - 3.20.00.16
28* Framework Component (FC) - 3.20.00.22 28* Framework Component (FC) - 3.20.00.22
29* XDAIS - 7.20.00.07 29* XDAIS - 7.23.00.06
30* HDVICP2 API and HDVICP2_CODECS - 1.00.000 30* HDVICP2 API and HDVICP2_CODECS - 1.00.000
31* sysbios-rpmsg - commit-id [https://github.com/ohadbc/sysbios-rpmsg/commit/885db2a4f8ae20f89ef6574e29632433e7e7de4c 885db2a4f8ae20f89ef6574e29632433e7e7de4c] 31* sysbios-rpmsg - commit-id [https://github.com/ohadbc/sysbios-rpmsg/commit/885db2a4f8ae20f89ef6574e29632433e7e7de4c 885db2a4f8ae20f89ef6574e29632433e7e7de4c]
32* libdce 32* libdce
diff --git a/ducati/ti/dce/dce.c b/ducati/ti/dce/dce.c
index c445ffe..8384693 100644
--- a/ducati/ti/dce/dce.c
+++ b/ducati/ti/dce/dce.c
@@ -214,6 +214,7 @@ static int videnc2_reloc(VIDENC2_Handle handle, uint8_t *ptr, uint32_t len)
214 return -1; // TODO 214 return -1; // TODO
215} 215}
216 216
217/* needs to be updated when it is enabled in omapdce */
217static int viddec3_reloc(VIDDEC3_Handle handle, uint8_t *ptr, uint32_t len) 218static int viddec3_reloc(VIDDEC3_Handle handle, uint8_t *ptr, uint32_t len)
218{ 219{
219 static VIDDEC3_DynamicParams params = { 220 static VIDDEC3_DynamicParams params = {
@@ -227,7 +228,7 @@ static int viddec3_reloc(VIDDEC3_Handle handle, uint8_t *ptr, uint32_t len)
227 }, 228 },
228 }; 229 };
229INFO("status.size=%d", status.size); 230INFO("status.size=%d", status.size);
230 return VIDDEC3_control(handle, XDM_UPDATEBUFS, &params, &status); 231 return VIDDEC3_control(handle, XDM_MOVEBUFS, &params, &status);
231} 232}
232 233
233 234
diff --git a/packages/xdais/ti/xdais/dm/ividdec3.h b/packages/xdais/ti/xdais/dm/ividdec3.h
index c101fb2..35f34af 100644
--- a/packages/xdais/ti/xdais/dm/ividdec3.h
+++ b/packages/xdais/ti/xdais/dm/ividdec3.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated 2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
@@ -39,9 +39,9 @@
39 * algorithms. 39 * algorithms.
40 */ 40 */
41/** 41/**
42 * @defgroup ti_xdais_dm_IVIDDEC3 IVIDDEC3 - XDM Video Decoder Interface (Beta) 42 * @defgroup ti_xdais_dm_IVIDDEC3 IVIDDEC3 - XDM Video Decoder Interface
43 * 43 *
44 * This is the XDM IVIDDEC3 Video Decoder Interface (Beta). 44 * This is the XDM IVIDDEC3 Video Decoder Interface.
45 */ 45 */
46 46
47#ifndef ti_xdais_dm_IVIDDEC3_ 47#ifndef ti_xdais_dm_IVIDDEC3_
@@ -56,7 +56,6 @@
56extern "C" { 56extern "C" {
57#endif 57#endif
58 58
59
60/** @ingroup ti_xdais_dm_IVIDDEC3 */ 59/** @ingroup ti_xdais_dm_IVIDDEC3 */
61/*@{*/ 60/*@{*/
62 61
@@ -66,7 +65,7 @@ extern "C" {
66 65
67/** 66/**
68 * @brief This must be the first field of all IVIDDEC3 67 * @brief This must be the first field of all IVIDDEC3
69 * instance objects. 68 * instance objects
70 */ 69 */
71typedef struct IVIDDEC3_Obj { 70typedef struct IVIDDEC3_Obj {
72 struct IVIDDEC3_Fxns *fxns; 71 struct IVIDDEC3_Fxns *fxns;
@@ -74,13 +73,13 @@ typedef struct IVIDDEC3_Obj {
74 73
75 74
76/** 75/**
77 * @brief Opaque handle to an IVIDDEC3 objects. 76 * @brief Opaque handle to an IVIDDEC3 objects
78 */ 77 */
79typedef struct IVIDDEC3_Obj *IVIDDEC3_Handle; 78typedef struct IVIDDEC3_Obj *IVIDDEC3_Handle;
80 79
81 80
82/** 81/**
83 * @brief Video decoder output frame order. 82 * @brief Video decoder output frame order
84 * 83 *
85 * @enumWarning 84 * @enumWarning
86 * 85 *
@@ -111,7 +110,7 @@ typedef enum {
111 110
112/** 111/**
113 * @brief Defines the creation time parameters for 112 * @brief Defines the creation time parameters for
114 * all IVIDDEC3 instance objects. 113 * all IVIDDEC3 instance objects
115 * 114 *
116 * @extensibleStruct 115 * @extensibleStruct
117 */ 116 */
@@ -226,7 +225,7 @@ typedef struct IVIDDEC3_Params {
226 225
227/** 226/**
228 * @brief This structure defines the algorithm parameters that can be 227 * @brief This structure defines the algorithm parameters that can be
229 * modified after creation via IVIDDEC3_Fxns.control() calls. 228 * modified after creation via IVIDDEC3_Fxns.control() calls
230 * 229 *
231 * @remarks It is not necessary that a given implementation support all 230 * @remarks It is not necessary that a given implementation support all
232 * dynamic parameters to be configurable at run time. If a 231 * dynamic parameters to be configurable at run time. If a
@@ -405,7 +404,7 @@ typedef struct IVIDDEC3_DynamicParams {
405 404
406/** 405/**
407 * @brief Defines the input arguments for all IVIDDEC3 instance 406 * @brief Defines the input arguments for all IVIDDEC3 instance
408 * process function. 407 * process function
409 * 408 *
410 * @extensibleStruct 409 * @extensibleStruct
411 * 410 *
@@ -439,7 +438,7 @@ typedef struct IVIDDEC3_InArgs {
439 438
440 439
441/** 440/**
442 * @brief Defines instance status parameters. 441 * @brief Defines instance status parameters
443 * 442 *
444 * @extensibleStruct 443 * @extensibleStruct
445 * 444 *
@@ -590,7 +589,7 @@ typedef struct IVIDDEC3_Status {
590 589
591/** 590/**
592 * @brief Mode in which display buffers will be returned in 591 * @brief Mode in which display buffers will be returned in
593 * IVIDDEC3_OutArgs. 592 * IVIDDEC3_OutArgs
594 * 593 *
595 * @remarks Note that we start this enum at '1' to help catch inadvertently 594 * @remarks Note that we start this enum at '1' to help catch inadvertently
596 * uninitialized fields. 595 * uninitialized fields.
@@ -635,7 +634,7 @@ typedef enum {
635 634
636/** 635/**
637 * @brief Defines the run time output arguments for 636 * @brief Defines the run time output arguments for
638 * all IVIDDEC3 instance objects. 637 * all IVIDDEC3 instance objects
639 * 638 *
640 * @extensibleStruct 639 * @extensibleStruct
641 * 640 *
@@ -844,7 +843,7 @@ typedef struct IVIDDEC3_OutArgs {
844 843
845 844
846/** 845/**
847 * @brief Defines the control commands for the IVIDDEC3 module. 846 * @brief Defines the control commands for the IVIDDEC3 module
848 * 847 *
849 * @remarks This ID can be extended in IMOD interface for 848 * @remarks This ID can be extended in IMOD interface for
850 * additional controls. 849 * additional controls.
@@ -857,7 +856,7 @@ typedef IALG_Cmd IVIDDEC3_Cmd;
857 856
858 857
859/** 858/**
860 * @brief Defines all of the operations on IVIDDEC3 objects. 859 * @brief Defines all of the operations on IVIDDEC3 objects
861 */ 860 */
862typedef struct IVIDDEC3_Fxns { 861typedef struct IVIDDEC3_Fxns {
863 IALG_Fxns ialg; /**< XDAIS algorithm interface. 862 IALG_Fxns ialg; /**< XDAIS algorithm interface.
@@ -866,7 +865,7 @@ typedef struct IVIDDEC3_Fxns {
866 */ 865 */
867 866
868/** 867/**
869 * @brief Basic video decoding call. 868 * @brief Basic video decoding call
870 * 869 *
871 * @param[in] handle Handle to an algorithm instance. 870 * @param[in] handle Handle to an algorithm instance.
872 * @param[in,out] inBufs Input buffer descriptors. 871 * @param[in,out] inBufs Input buffer descriptors.
@@ -963,7 +962,7 @@ typedef struct IVIDDEC3_Fxns {
963 962
964 963
965/** 964/**
966 * @brief Control behavior of an algorithm. 965 * @brief Control behavior of an algorithm
967 * 966 *
968 * @param[in] handle Handle to an algorithm instance. 967 * @param[in] handle Handle to an algorithm instance.
969 * @param[in] id Command id. See #XDM_CmdId. 968 * @param[in] id Command id. See #XDM_CmdId.
@@ -1011,6 +1010,7 @@ typedef struct IVIDDEC3_Fxns {
1011 1010
1012#endif 1011#endif
1013/* 1012/*
1014 * @(#) ti.xdais.dm; 1, 0, 7,14; 5-24-2010 11:19:26; /db/wtree/library/trees/dais/dais.git/src/ 1013 * @(#) ti.xdais.dm; 1, 0, 7,1; 6-19-2012 17:57:46; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary
1014
1015 */ 1015 */
1016 1016
diff --git a/packages/xdais/ti/xdais/dm/ividenc2.h b/packages/xdais/ti/xdais/dm/ividenc2.h
index 1e1f85c..e39e7e7 100644
--- a/packages/xdais/ti/xdais/dm/ividenc2.h
+++ b/packages/xdais/ti/xdais/dm/ividenc2.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated 2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
@@ -56,7 +56,6 @@
56extern "C" { 56extern "C" {
57#endif 57#endif
58 58
59
60/** @ingroup ti_xdais_dm_IVIDENC2 */ 59/** @ingroup ti_xdais_dm_IVIDENC2 */
61/*@{*/ 60/*@{*/
62 61
@@ -110,7 +109,7 @@ typedef struct IVIDENC2_Obj {
110/** 109/**
111 * @brief Opaque handle to an IVIDENC2 objects. 110 * @brief Opaque handle to an IVIDENC2 objects.
112 */ 111 */
113typedef struct IVIDENC2_Obj *IVIDENC2_Handle; 112typedef struct IVIDENC2_Obj *IVIDENC2_Handle;
114 113
115/** 114/**
116 * @brief Default codec profile 115 * @brief Default codec profile
@@ -937,6 +936,7 @@ typedef struct IVIDENC2_Fxns {
937 936
938#endif 937#endif
939/* 938/*
940 * @(#) ti.xdais.dm; 1, 0, 7,23; 10-21-2010 16:35:44; /db/wtree/library/trees/dais/dais.git/src/ dais-s07 939 * @(#) ti.xdais.dm; 1, 0, 7,1; 6-19-2012 17:57:46; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary
940
941 */ 941 */
942 942
diff --git a/packages/xdais/ti/xdais/dm/ivideo.h b/packages/xdais/ti/xdais/dm/ivideo.h
index 9f10e5a..4d36917 100644
--- a/packages/xdais/ti/xdais/dm/ivideo.h
+++ b/packages/xdais/ti/xdais/dm/ivideo.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated 2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
@@ -828,6 +828,7 @@ typedef struct IVIDEO2_BufDesc {
828 828
829#endif 829#endif
830/* 830/*
831 * @(#) ti.xdais.dm; 1, 0, 7,14; 5-24-2010 11:19:26; /db/wtree/library/trees/dais/dais.git/src/ 831 * @(#) ti.xdais.dm; 1, 0, 7,1; 6-19-2012 17:57:46; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary
832
832 */ 833 */
833 834
diff --git a/packages/xdais/ti/xdais/dm/xdm.h b/packages/xdais/ti/xdais/dm/xdm.h
index b1f6c94..2ffbea3 100644
--- a/packages/xdais/ti/xdais/dm/xdm.h
+++ b/packages/xdais/ti/xdais/dm/xdm.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated 2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
@@ -218,7 +218,7 @@ typedef struct XDM1_SingleBufDesc {
218 * indicate buffer size using a simple integer, but rather 218 * indicate buffer size using a simple integer, but rather
219 * must indicate memory size using a width and height. 219 * must indicate memory size using a width and height.
220 */ 220 */
221typedef union { 221typedef union {
222 struct { 222 struct {
223 XDAS_Int32 width; /**< Width of @c buf in 8-bit bytes. */ 223 XDAS_Int32 width; /**< Width of @c buf in 8-bit bytes. */
224 XDAS_Int32 height; /**< Height of @c buf in 8-bit bytes. */ 224 XDAS_Int32 height; /**< Height of @c buf in 8-bit bytes. */
@@ -648,9 +648,56 @@ typedef enum {
648 * late acquire IRES feature may 648 * late acquire IRES feature may
649 * implement this command. 649 * implement this command.
650 */ 650 */
651 XDM_UPDATEBUFS = 10, /**< Update codec's locked buffer addresses. This 651 XDM_MOVEBUFS = 10 /**< Move (replace) data buffers an algorithm is
652 * allows for I/O buffers to be relocated in 652 * currently referencing.
653 * memory between process calls. 653 *
654 * @remarks Handling this command is optional.
655 *
656 * @remarks An application can use this command
657 * to move data buffers that an
658 * algorithm is currently referencing.
659 *
660 * @remarks Only algorithms tracking buffers
661 * with id's (e.g. IVIDDEC3) can
662 * implement this command.
663 *
664 * @remarks Only algorithms who's @c _Status
665 * struct includes a @c data field
666 * (e.g. IVIDDEC3) can implement this
667 * command. This @c data field is a
668 * buffer descriptor. When using the
669 * XDM_MOVEBUFS command, this @c data
670 * buffer is an IN buffer (read-only
671 * to the algorithm) which
672 * contains an array of one or
673 * more XDM2_MoveBufDesc elements.
674 * Each element indicates (via the id
675 * field), a buffer which the
676 * algorithm is referencing that
677 * needs to be "moved".
678 *
679 * @remarks The application is responsible for
680 * indicating the number of
681 * XDM2_MoveBufDesc elements by
682 * appropriately setting the
683 * @c _Status.data.bufSize field.
684 *
685 * @remarks As with all control() processing,
686 * the algorithm is responsible for
687 * appropriately setting the
688 * @c _Status.data.accessMask field
689 * indicating if/how the algorithm
690 * accessed the data buffer.
691 * Typically for this cmd, the
692 * algorithm reads from the @c data
693 * buffer, so it should set the
694 * #XDM_ACCESSMODE_READ bit in the
695 * @c _Status.data.accessMask field.
696 * Frameworks/apps can use this
697 * to appropriately handle cache for
698 * that @c data buffer.
699 *
700 * @sa XDM2_MoveBufDesc
654 */ 701 */
655} XDM_CmdId; 702} XDM_CmdId;
656 703
@@ -855,6 +902,15 @@ typedef enum {
855 902
856 903
857/** 904/**
905 * @brief Descriptor for a buffer to move.
906 */
907typedef struct XDM2_MoveBufDesc {
908 XDAS_Int32 id; /**< Id of the buffer to move */
909 XDM2_BufDesc bufDesc; /**< New buffer descriptor */
910} XDM2_MoveBufDesc;
911
912
913/**
858 * @brief Date and time 914 * @brief Date and time
859 */ 915 */
860typedef struct XDM_Date { 916typedef struct XDM_Date {
@@ -1268,7 +1324,13 @@ typedef XDAS_Int32 (*XDM_DataSyncGetFxn)(XDM_DataSyncHandle dataSyncHandle,
1268 * allocator <i>does</i> initialize the buffer, it must ensure the 1324 * allocator <i>does</i> initialize the buffer, it must ensure the
1269 * cache coherency via writeback-invalidate. 1325 * cache coherency via writeback-invalidate.
1270 * 1326 *
1271 * @todo Needs review 1327 * @retval XDM_EOK Allocator is able to provide the buffer or
1328 * is not able to provide the buffer but
1329 * indicates that it can provide the buffers
1330 * in future such calls.
1331 * @retval XDM_EFAIL Allocator is unable to provide the buffer
1332 * and it will not be able to provide the
1333 * buffer in the future.
1272 * 1334 *
1273 * @sa IVIDENC2_DynamicParams::putDataFxn() 1335 * @sa IVIDENC2_DynamicParams::putDataFxn()
1274 * @sa IVIDENC2_Fxns::process() 1336 * @sa IVIDENC2_Fxns::process()
@@ -1304,6 +1366,7 @@ typedef XDAS_Int32 (*XDM_DataSyncPutBufferFxn)(XDM_DataSyncHandle dataSyncHandle
1304 1366
1305#endif /* ti_xdais_dm_XDM_ */ 1367#endif /* ti_xdais_dm_XDM_ */
1306/* 1368/*
1307 * @(#) ti.xdais.dm; 1, 0, 7,14; 5-24-2010 11:19:27; /db/wtree/library/trees/dais/dais.git/src/ 1369 * @(#) ti.xdais.dm; 1, 0, 7,1; 6-19-2012 17:57:47; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary
1370
1308 */ 1371 */
1309 1372
diff --git a/packages/xdais/ti/xdais/ialg.h b/packages/xdais/ti/xdais/ialg.h
index 4b04a0c..d569f56 100644
--- a/packages/xdais/ti/xdais/ialg.h
+++ b/packages/xdais/ti/xdais/ialg.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated 2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
@@ -62,13 +62,13 @@ extern "C" {
62#define IALG_SYSCMD 256 /**< Minimum "system" IALG_Cmd value. */ 62#define IALG_SYSCMD 256 /**< Minimum "system" IALG_Cmd value. */
63 63
64#define IALG_EOK 0 /**< Successful return status code. */ 64#define IALG_EOK 0 /**< Successful return status code. */
65#define IALG_EFAIL -1 /**< Unspecified error return status code. */ 65#define IALG_EFAIL (-1) /**< Unspecified error return status code. */
66 66
67#define IALG_CUSTOMFAILBASE -2048/**< Algorithm-specific failure code end. 67#define IALG_CUSTOMFAILBASE (-2048)/**< Algorithm-specific failure code end.
68 * 68 *
69 * @remarks This is 0xfffff800. 69 * @remarks This is 0xfffff800.
70 */ 70 */
71#define IALG_CUSTOMFAILEND -256 /**< Algorithm-specific failure code base. 71#define IALG_CUSTOMFAILEND (-256) /**< Algorithm-specific failure code base.
72 * 72 *
73 * @remarks This is 0xffffff00. 73 * @remarks This is 0xffffff00.
74 */ 74 */
@@ -761,6 +761,7 @@ typedef struct IALG_Fxns {
761 761
762#endif /* ti_xdais_IALG_ */ 762#endif /* ti_xdais_IALG_ */
763/* 763/*
764 * @(#) ti.xdais; 1, 2.0, 1,14; 5-24-2010 11:19:25; /db/wtree/library/trees/dais/dais.git/src/ 764 * @(#) ti.xdais; 1, 2.0, 1,1; 6-19-2012 17:57:45; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary
765
765 */ 766 */
766 767
diff --git a/packages/xdais/ti/xdais/xdas.h b/packages/xdais/ti/xdais/xdas.h
index d87d891..a65f27f 100644
--- a/packages/xdais/ti/xdais/xdas.h
+++ b/packages/xdais/ti/xdais/xdas.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010, Texas Instruments Incorporated 2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
@@ -78,6 +78,7 @@ typedef Uint32 XDAS_UInt32; /**< Actual size of type is 32 bits. */
78 78
79#endif /* ti_xdais_XDAS_ */ 79#endif /* ti_xdais_XDAS_ */
80/* 80/*
81 * @(#) ti.xdais; 1, 2.0, 1,14; 5-24-2010 11:19:26; /db/wtree/library/trees/dais/dais.git/src/ 81 * @(#) ti.xdais; 1, 2.0, 1,1; 6-19-2012 17:57:46; /db/wtree/library/trees/dais/dais-w06/src/ xlibrary
82
82 */ 83 */
83 84