Hi,
We are using DVRRDK3 on a 8148EVM.
Is it possible to have the encoder run a h264 compression on a 2592x1944 resolution video stream? It complains about being larger than 1080P.
Thanks,
Tim
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Encoding of 5MP streams is supported.Attached is patch to support greater than 1920x1080 resolution encoding .Pls migrate to RDK 3.5 (will be available end of Dec 2012) where high MP encode support is tested when possible.
diff --git a/mcfw/src_bios6/links_m3video/codec_utils/src/utils_encdec.c b/mcfw/src_bios6/links_m3video/codec_utils/src/utils_encdec.c
old mode 100644
new mode 100755
index 0b991f1..b00b3a8
--- a/mcfw/src_bios6/links_m3video/codec_utils/src/utils_encdec.c
+++ b/mcfw/src_bios6/links_m3video/codec_utils/src/utils_encdec.c
@@ -157,38 +157,54 @@ EncDec_ResolutionClass Utils_encdecGetResolutionClass(UInt32 width,
UTILS_assert((width <= UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH)
&& (height <= UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT));
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT))
- {
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_16MP;
- }
- else
- {
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_720P_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_16MP;
+ }
+ else
+ {
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_9MP;
}
else
{
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_D1_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_D1_HEIGHT))
- {
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_720P;
- }
- else
- {
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_4MP;
+ }
+ else
+ {
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_720P_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_D1;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
}
else
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_CIF;
- }
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_D1_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_D1_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_720P;
+ }
+ else
+ {
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_D1;
+ }
+ else
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_CIF;
+ }
+ }
+ }
}
- }
+ }
}
return resClass;
}
@@ -215,6 +231,8 @@ Int Utils_encdecGetCodecLevel(UInt32 codingFormat,
switch (Utils_encdecGetResolutionClass(maxWidth, maxHeight))
{
case UTILS_ENCDEC_RESOLUTION_CLASS_16MP:
+ case UTILS_ENCDEC_RESOLUTION_CLASS_9MP:
+ case UTILS_ENCDEC_RESOLUTION_CLASS_4MP:
if (isEnc)
*pLevel = IH264_LEVEL_51;
else
diff --git a/mcfw/src_bios6/links_m3video/codec_utils/utils_encdec.h b/mcfw/src_bios6/links_m3video/codec_utils/utils_encdec.h
index 232d710..697a21c 100755
--- a/mcfw/src_bios6/links_m3video/codec_utils/utils_encdec.h
+++ b/mcfw/src_bios6/links_m3video/codec_utils/utils_encdec.h
@@ -50,6 +50,8 @@
typedef enum EncDec_ResolutionClass {
UTILS_ENCDEC_RESOLUTION_CLASS_FIRST = 0,
UTILS_ENCDEC_RESOLUTION_CLASS_16MP = UTILS_ENCDEC_RESOLUTION_CLASS_FIRST,
+ UTILS_ENCDEC_RESOLUTION_CLASS_9MP,
+ UTILS_ENCDEC_RESOLUTION_CLASS_4MP,
UTILS_ENCDEC_RESOLUTION_CLASS_1080P,
UTILS_ENCDEC_RESOLUTION_CLASS_720P,
UTILS_ENCDEC_RESOLUTION_CLASS_D1,
@@ -81,6 +83,12 @@ typedef struct EncDec_AlgorithmActivityLog {
#define UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH (4*1024)
#define UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT (4*1024)
+#define UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH (3*1024)
+#define UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT (3*1024)
+
+#define UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH (2*1024)
+#define UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT (2*1024)
+
#define UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH (1920)
#define UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT (1080)
diff --git a/mcfw/src_bios6/links_m3video/iva_dec/decLink_common.c b/mcfw/src_bios6/links_m3video/iva_dec/decLink_common.c
index e2ff82e..8ca61c3 100755
--- a/mcfw/src_bios6/links_m3video/iva_dec/decLink_common.c
+++ b/mcfw/src_bios6/links_m3video/iva_dec/decLink_common.c
@@ -359,6 +359,26 @@ static Int32 DecLink_codecPopulateOutFrmFormat(DecLink_Obj *pObj, UInt32 chId)
pFormat->pitch[0] =
VpsUtils_align(pFormat->width, VPS_BUFFER_ALIGNMENT);
break;
+ case UTILS_ENCDEC_RESOLUTION_CLASS_4MP: // 4MP
+ pFormat->width =
+ UTILS_ENCDEC_GET_PADDED_WIDTH
+ (UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH);
+ pFormat->height =
+ UTILS_ENCDEC_GET_PADDED_HEIGHT
+ (UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT);
+ pFormat->pitch[0] =
+ VpsUtils_align(pFormat->width, VPS_BUFFER_ALIGNMENT);
+ break;
+ case UTILS_ENCDEC_RESOLUTION_CLASS_9MP: // 9MP
+ pFormat->width =
+ UTILS_ENCDEC_GET_PADDED_WIDTH
+ (UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH);
+ pFormat->height =
+ UTILS_ENCDEC_GET_PADDED_HEIGHT
+ (UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT);
+ pFormat->pitch[0] =
+ VpsUtils_align(pFormat->width, VPS_BUFFER_ALIGNMENT);
+ break;
case UTILS_ENCDEC_RESOLUTION_CLASS_16MP: // 16MP
pFormat->width =
UTILS_ENCDEC_GET_PADDED_WIDTH
@@ -1308,6 +1328,24 @@ static Int32 DecLink_codecMapCh2ResolutionPool(DecLink_Obj * pObj, UInt32 chId)
}
if ((status != DEC_LINK_S_SUCCESS) &&
(pObj->createArgs.chCreateParams[chId].targetMaxWidth <=
+ UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH) &&
+ (pObj->createArgs.chCreateParams[chId].targetMaxHeight <=
+ UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT))
+ {
+ pOutObj->outChObj[chId].reslutionClass = UTILS_ENCDEC_RESOLUTION_CLASS_4MP;
+ status = DEC_LINK_S_SUCCESS;
+ }
+ if ((status != DEC_LINK_S_SUCCESS) &&
+ (pObj->createArgs.chCreateParams[chId].targetMaxWidth <=
+ UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH) &&
+ (pObj->createArgs.chCreateParams[chId].targetMaxHeight <=
+ UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT))
+ {
+ pOutObj->outChObj[chId].reslutionClass = UTILS_ENCDEC_RESOLUTION_CLASS_9MP;
+ status = DEC_LINK_S_SUCCESS;
+ }
+ if ((status != DEC_LINK_S_SUCCESS) &&
+ (pObj->createArgs.chCreateParams[chId].targetMaxWidth <=
UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH) &&
(pObj->createArgs.chCreateParams[chId].targetMaxHeight <=
UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT))
@@ -2348,6 +2386,8 @@ static Int32 DecLink_PrepareBatch (DecLink_Obj *pObj, UInt32 tskId,
switch (pObj->outObj.outChObj[channelId].reslutionClass)
{
case UTILS_ENCDEC_RESOLUTION_CLASS_16MP:
+ case UTILS_ENCDEC_RESOLUTION_CLASS_9MP:
+ case UTILS_ENCDEC_RESOLUTION_CLASS_4MP:
case UTILS_ENCDEC_RESOLUTION_CLASS_1080P:
/*If the element has resolution between 1080p and 720p,
only 1 channels possible per Batch*/
@@ -2438,6 +2478,10 @@ static Int32 DecLink_PrepareBatch (DecLink_Obj *pObj, UInt32 tskId,
if ((UTILS_ENCDEC_RESOLUTION_CLASS_16MP ==
pObj->outObj.outChObj[newObjChannelId].reslutionClass) ||
+ (UTILS_ENCDEC_RESOLUTION_CLASS_9MP ==
+ pObj->outObj.outChObj[newObjChannelId].reslutionClass) ||
+ (UTILS_ENCDEC_RESOLUTION_CLASS_4MP ==
+ pObj->outObj.outChObj[newObjChannelId].reslutionClass) ||
(UTILS_ENCDEC_RESOLUTION_CLASS_1080P ==
pObj->outObj.outChObj[newObjChannelId].reslutionClass))
{
diff --git a/mcfw/src_linux/links/ipcBitsOut/ipcBitsOutLink_tsk.c b/mcfw/src_linux/links/ipcBitsOut/ipcBitsOutLink_tsk.c
index 51124bb..51f1915 100755
--- a/mcfw/src_linux/links/ipcBitsOut/ipcBitsOutLink_tsk.c
+++ b/mcfw/src_linux/links/ipcBitsOut/ipcBitsOutLink_tsk.c
@@ -19,6 +19,8 @@
typedef enum EncDec_ResolutionClass {
UTILS_ENCDEC_RESOLUTION_CLASS_FIRST = 0,
UTILS_ENCDEC_RESOLUTION_CLASS_16MP = UTILS_ENCDEC_RESOLUTION_CLASS_FIRST,
+ UTILS_ENCDEC_RESOLUTION_CLASS_9MP,
+ UTILS_ENCDEC_RESOLUTION_CLASS_4MP,
UTILS_ENCDEC_RESOLUTION_CLASS_1080P,
UTILS_ENCDEC_RESOLUTION_CLASS_720P,
UTILS_ENCDEC_RESOLUTION_CLASS_D1,
@@ -31,6 +33,12 @@ typedef enum EncDec_ResolutionClass {
#define UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH (4*1024)
#define UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT (4*1024)
+#define UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH (3*1024)
+#define UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT (3*1024)
+
+#define UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH (2*1024)
+#define UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT (2*1024)
+
#define UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH (1920)
#define UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT (1080)
@@ -101,35 +109,51 @@ EncDec_ResolutionClass ipcbitsoutlink_get_resolution_class(UInt32 width,
UTILS_assert((width <= UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH)
&& (height <= UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT));
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT))
{
resClass = UTILS_ENCDEC_RESOLUTION_CLASS_16MP;
}
else
{
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_720P_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_9MP;
}
else
{
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_D1_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_D1_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_720P;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_4MP;
}
else
{
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_720P_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_D1;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
}
else
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_CIF;
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_D1_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_D1_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_720P;
+ }
+ else
+ {
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_D1;
+ }
+ else
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_CIF;
+ }
+ }
}
}
}
@@ -149,6 +173,14 @@ Int ipcbitsoutlink_get_resolution_class_info(EncDec_ResolutionClass resClass,
*pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH;
*pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT;
break;
+ case UTILS_ENCDEC_RESOLUTION_CLASS_9MP:
+ *pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH;
+ *pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT;
+ break;
+ case UTILS_ENCDEC_RESOLUTION_CLASS_4MP:
+ *pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH;
+ *pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT;
+ break;
case UTILS_ENCDEC_RESOLUTION_CLASS_1080P:
*pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH;
*pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT;
Hi,
I successfully applied the patch, but the patch doesn't include any changes to the file encLink_common.c, and I am still getting an assertion,
[m3video] 9928161: Assertion @ Line: 139 in links_m3video/iva_enc/encLink_common.c: (width <= UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH) && (height <= UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT) : failed !!!
Is there another patch that goes with it that straights things out?
Thanks,
Tim
Sorry it was missed.Attached is patch for encLink
diff --git a/mcfw/src_bios6/links_m3video/iva_enc/encLink_common.c b/mcfw/src_bios6/links_m3video/iva_enc/encLink_common.c
index ca8d17b..cc00781 100755
--- a/mcfw/src_bios6/links_m3video/iva_enc/encLink_common.c
+++ b/mcfw/src_bios6/links_m3video/iva_enc/encLink_common.c
@@ -131,32 +131,57 @@ static Int32 EncLink_codecDeleteReqObjDummy(EncLink_Obj * pObj);
static
EncDec_ResolutionClass enclink_get_resolution_class(UInt32 width, UInt32 height)
{
- EncDec_ResolutionClass resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
+ EncDec_ResolutionClass resClass = UTILS_ENCDEC_RESOLUTION_CLASS_16MP;
- UTILS_assert((width <= UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH)
- && (height <= UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT));
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_720P_HEIGHT))
+ UTILS_assert((width <= UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH)
+ && (height <= UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT));
+
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_16MP;
}
else
{
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_D1_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_D1_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_720P;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_9MP;
}
else
{
- if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_WIDTH) ||
- (height > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_HEIGHT))
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT))
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_D1;
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_4MP;
}
else
{
- resClass = UTILS_ENCDEC_RESOLUTION_CLASS_CIF;
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_720P_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_1080P;
+ }
+ else
+ {
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_D1_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_D1_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_720P;
+ }
+ else
+ {
+ if ((width > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_WIDTH) ||
+ (height > UTILS_ENCDEC_RESOLUTION_CLASS_CIF_HEIGHT))
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_D1;
+ }
+ else
+ {
+ resClass = UTILS_ENCDEC_RESOLUTION_CLASS_CIF;
+ }
+ }
+ }
}
}
}
@@ -171,6 +196,18 @@ Int enclink_get_resolution_class_info(EncDec_ResolutionClass resClass,
switch (resClass)
{
+ case UTILS_ENCDEC_RESOLUTION_CLASS_16MP:
+ *pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH;
+ *pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_16MP_HEIGHT;
+ break;
+ case UTILS_ENCDEC_RESOLUTION_CLASS_9MP:
+ *pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_9MP_WIDTH;
+ *pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_9MP_HEIGHT;
+ break;
+ case UTILS_ENCDEC_RESOLUTION_CLASS_4MP:
+ *pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_4MP_WIDTH;
+ *pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_4MP_HEIGHT;
+ break;
case UTILS_ENCDEC_RESOLUTION_CLASS_1080P:
*pWidth = UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH;
*pHeight = UTILS_ENCDEC_RESOLUTION_CLASS_1080P_HEIGHT;
@@ -2416,7 +2453,7 @@ static Int32 EncLink_PrepareBatch (EncLink_Obj *pObj, UInt32 tskId,
(0x1 << channelId);
- if ((UTILS_ENCDEC_RESOLUTION_CLASS_1080P_WIDTH >= inputFrameWidth) &&
+ if ((UTILS_ENCDEC_RESOLUTION_CLASS_16MP_WIDTH >= inputFrameWidth) &&
(UTILS_ENCDEC_RESOLUTION_CLASS_720P_WIDTH < inputFrameWidth))
{
/*If the element has width greateer than 1920,
Also if you are going to open encoder channels with greater than 7 resolution classes you need the below patch additionally:
--------------------- mcfw/src_bios6/utils/utils_bit_buf.h --------------------
diff --git a/mcfw/src_bios6/utils/utils_bit_buf.h b/mcfw/src_bios6/utils/utils_bit_buf.h
index f82d417..62b82ae 100755
--- a/mcfw/src_bios6/utils/utils_bit_buf.h
+++ b/mcfw/src_bios6/utils/utils_bit_buf.h
@@ -49,7 +49,7 @@
#include <mcfw/src_bios6/utils/utils_buf.h>
#include <mcfw/interfaces/link_api/vidbitstream.h>
-#define UTILS_BITBUF_MAX_ALLOC_POOLS (7)
+#define UTILS_BITBUF_MAX_ALLOC_POOLS (10)