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.

DVR RDK4.0 Interlaced encoding fieldPicture = 1 decoder report error

Other Parts Discussed in Thread: TVP5158

Hi,

 

We are trying to implement interlaced encoding and decoding feature based on DVR RDK 4.0.

We use a YUV file as the input. The link is as below:

IpcFramesOutHost

|

IpcFramesInVideo

|

Enc

|

IpcBitsOutVideo

|

IpcBitsInHost        --->> Save encoded bits file to Host here

 

|

IpcBitsOutHost

|

IpcBitsInVideo

|

Dec

|

IpcOutVideo

|

IpcInVpss

|

SwMs

|

Display

 

When I use progressive encoding and decoding, both the encoded file and display on HDMI are good. I use a 704*576 YUV file.

Please see encoded picture below:

Please see display picture below:

  • Can you confirm if the encoded frame quality is not good or the display frame quality is not good. RDK 4.0 does not support deinterlacing in SwMs so SwMs will display only top field and quality will not be good. Encode quality should be good. Support for SwMs to Deinterlace and display will be supported in next RDK release

  • but when I read the same YUV file in interlalced mode and set encoding, decoding to interlaced mode. If I set fieldPicture = 0, the encoding, decoding, display is good. Please see good log below:

     

    0: SYSTEM: System Common Init in progress !!!

     0: SYSTEM: IPC init in progress !!!

     11: SYSTEM: CPU [DSP] is NOT available on this platform !!!

     11: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [0] !!!

     11: SYSTEM: CPU [VPSS-M3] syslink proc ID is [1] !!!

     11: SYSTEM: CPU [HOST] syslink proc ID is [2] !!!

     11: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...

     13: SYSTEM: Creating MsgQ [HOST_MSGQ] ...

     15: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...

     16: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...

     17: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...

     17: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ...

     18: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ...

     19: SYSTEM: IPC init DONE !!!

     20: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...

     22: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...

     23: SYSTEM: ListElem Shared Addr = 0x40e44300

     24: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...

     26: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...

     27: SYSTEM: ListElem Shared Addr = 0x40e79500

     29: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...

     31: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...

     32: SYSTEM: ListElem Shared Addr = 0x40eae700

     33: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...

     35: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...

     37: SYSTEM: ListElem Shared Addr = 0x40ef1a00

     38: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...

     40: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...

     41: SYSTEM: ListElem Shared Addr = 0x40f34d00

     60: SYSTEM: System Common Init Done !!!

     [host] HDMI Ctrl :Initializing

     [host] HDMI Ctrl :Initialized

     [host] HDMI Ctrl :Sink Connected

     [FBDEV]

     [FBDEV] FB: Starting !!!

     [FBDEV] FB: Opened device [/dev/fb0] (fd=23) !!!

     [FBDEV]

     [FBDEV] Fix Screen Info

     [FBDEV] ---------------

     [FBDEV] Line Length - 1600

     [FBDEV] Physical Address = 87a00000

     [FBDEV] Buffer Length = 2097152

     [FBDEV]

     [FBDEV]

     [FBDEV] Var Screen Info

     [FBDEV] ---------------

     [FBDEV] Xres - 800

     [FBDEV] Yres - 600

     [FBDEV] Xres Virtual - 800

     [FBDEV] Yres Virtual - 600

     [FBDEV] Bits Per Pixel - 16

     [FBDEV] Pixel Clk - 6734

     [FBDEV] Rotation - 0

     [FBDEV]

     [FBDEV]

     [FBDEV] Reg Params Info

     [FBDEV] ---------------

     [FBDEV] region 0, postion 0 x 0, prioirty 1

     [FBDEV] first 1, last 1

     [FBDEV] sc en 0, sten en 0

     [FBDEV] tran en 0, type 0, key 0

     [FBDEV] blend 0, alpha 0

     [FBDEV] bb en 0, alpha 0

     [FBDEV]

     [FBDEV]

     [FBDEV] ### BUF SIZE = 960000 Bytes !!!

     [FBDEV]

     [FBDEV] FB: Opened device [/dev/fb2] (fd2=24) !!!

     [FBDEV]

     [FBDEV] Fix Screen Info

     [FBDEV] ---------------

     [FBDEV] Line Length - 1440

     [FBDEV] Physical Address = 87c00000

     [FBDEV] Buffer Length = 1048576

     [FBDEV]

     [FBDEV]

     [FBDEV] Var Screen Info

     [FBDEV] ---------------

     [FBDEV] Xres - 720

     [FBDEV] Yres - 480

     [FBDEV] Xres Virtual - 720

     [FBDEV] Yres Virtual - 480

     [FBDEV] Bits Per Pixel - 16

     [FBDEV] Pixel Clk - 18518

     [FBDEV] Rotation - 0

     [FBDEV]

     [FBDEV]

     [FBDEV] Reg Params Info

     [FBDEV] ---------------

     [FBDEV] region 0, postion 0 x 0, prioirty 1

     [FBDEV] first 1, last 1

     [FBDEV] sc en 0, sten en 0

     [FBDEV] tran en 0, type 0, key 0

     [FBDEV] blend 0, alpha 0

     [FBDEV] bb en 0, alpha 0

     [FBDEV]

     [FBDEV]

     [FBDEV] ### BUF SIZE = 691200 Bytes !!!

     [FBDEV]

     [FBDEV]

     [FBDEV] Fix Screen Info

     [FBDEV] ---------------

     [FBDEV] Line Length - 1600

     [FBDEV] Physical Address = 87a00000

     [FBDEV] Buffer Length = 2097152

     [FBDEV]

     [FBDEV]

     [FBDEV] Var Screen Info

     [FBDEV] ---------------

     [FBDEV] Xres - 800

     [FBDEV] Yres - 600

     [FBDEV] Xres Virtual - 800

     [FBDEV] Yres Virtual - 600

     [FBDEV] Bits Per Pixel - 16

     [FBDEV] Pixel Clk - 6734

     [FBDEV] Rotation - 0

     [FBDEV]

     [FBDEV]

     [FBDEV] Reg Params Info

     [FBDEV] ---------------

     [FBDEV] region 0, postion 0 x 0, prioirty 1

     [FBDEV] first 1, last 1

     [FBDEV] sc en 0, sten en 0

     [FBDEV] tran en 0, type 0, key 0

     [FBDEV] blend 0, alpha 0

     [FBDEV] bb en 0, alpha 0

     [FBDEV]

     [FBDEV]

     [FBDEV] ### BUF SIZE = 960000 Bytes !!!

     [FBDEV]

     [FBDEV]

     [FBDEV] Fix Screen Info

     [FBDEV] ---------------

     [FBDEV] Line Length - 1440

     [FBDEV] Physical Address = 87c00000

     [FBDEV] Buffer Length = 1048576

     [FBDEV]

     [FBDEV]

     [FBDEV] Var Screen Info

     [FBDEV] ---------------

     [FBDEV] Xres - 720

     [FBDEV] Yres - 480

     [FBDEV] Xres Virtual - 720

     [FBDEV] Yres Virtual - 480

     [FBDEV] Bits Per Pixel - 16

     [FBDEV] Pixel Clk - 18518

     [FBDEV] Rotation - 0

     [FBDEV]

     [FBDEV]

     [FBDEV] Reg Params Info

     [FBDEV] ---------------

     [FBDEV] region 0, postion 0 x 0, prioirty 1

     [FBDEV] first 1, last 1

     [FBDEV] sc en 0, sten en 0

     [FBDEV] tran en 0, type 0, key 0

     [FBDEV] blend 0, alpha 0

     [FBDEV] bb en 0, alpha 0

     [FBDEV]

     [FBDEV]

     [FBDEV] ### BUF SIZE = 691200 Bytes !!!

     [FBDEV]

     [FBDEV] grpx_fb_draw ...

     [FBDEV] grpx_fb_draw ... Done !!!

     [FBDEV] grpx_fb_draw ...

     [FBDEV] grpx_fb_draw ... Done !!!

     [FBDEV] FB: Start DONE !!!

     [FBDEV]

     

     Enable file write (YES - y / NO - n) : n

     

     File write DISABLED !!!

     

     1853: MCFW  : CPU Revision [ES1.0] !!!

    GVenc i 0 inputFrameRate: 2000000

    GVenc numSecondaryChn: 0

    GVenc left: 1

     

     [host] encPrm: 0 100000 0 30 0 0 0 -1 0 0

     

     [host]  1855: IPC_FRAMES_OUT   : Create in progress !!!

     

     [host]  1858: IPC_FRAMES_OUT   : Create Done !!!

     [m3video]  9941: IPC_FRAMES_IN   : Create in progress !!!

     [m3video]  9941: SYSTEM: Opening ListMP [HOST_IPC_OUT_19] ...

     [m3video]  9942: SYSTEM: Opening ListMP [HOST_IPC_IN_19] ...

     [m3video]  9943: SYSTEM: Opening MsgQ [HOST_MSGQ] ...

     [m3video] IPC_FRAMES_IN:HEAPID:0   USED:304

     [m3video]  9946: IPC_FRAMES_IN   : Create Done !!!

     [m3video]  9946: ENCODE: Create in progress ... !!!

     [m3video]  9951: ENCODE: Creating CH0 of 704 x 288, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2000 Kbps ...

     [m3video] ENCLINK_H264: Codec Height:288,Width:704

     [m3video] enclink cmd 6

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 3

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 1

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 0

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 5

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] ENCLINK_H264:HEAPID:0      USED:13808

     [m3video] ENCLINK_H264:HEAPID:3      USED:1941504

     [m3video]  9970: ENCODE: All CH Create ... DONE !!!

     [m3video] ENCLINK:HEAPID:0   USED:13848

     [m3video] ENCLINK:HEAPID:2   USED:207360

     [m3video] ENCLINK:HEAPID:3   USED:1941504

     [m3video]  9971: ENCODE: Create ... DONE !!!

     

     [host] IpcBitsInLink_tskMain:Entered

     [host]  3891: IPC_BITS_IN   : Create in progress !!!

     

     [host]  3891: IPC_BITS_IN   : ListMPOpen start !!!

     

     [host]  3891: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...

     3893: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...

     

     [host]  3895: IPC_BITS_IN   : ListMPOpen done !!!

     

     [host]  3896: IPC_BITS_IN   : System_linkGetInfo done !!!

     

     [host]  3896: IPC_BITS_IN   : Create Done !!!

     [m3video]  11972: IPC_BITS_OUT   : Create in progress !!!

     

     [host]  3897: IPC_BITS_OUT   : Create in progress !!!

     

     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:0,Size:0x1EF000

     [host]

    ******* RingBuf 0 created ********

     

     [host] IPCBITSOUTLINK:Translated Addr Virt:0x413c8a80 To Phy:0x88032a80

     [host]

    ###Bit buff of size from the SR # 1 : 2027520 / bufsize 405504, maxQueueDepth 50

     

     [host] ###Bit buff BasePtr: 413C8A80 / PhyAddr 88032A80

     

     [host]  3898: IPC_BITS_OUT   : Create Done !!!

     [m3video]  11974: IPC_BITS_OUT   : Create Done !!!

     [m3video]  11982: IPC_BITS_IN   : Create in progress !!!

     [m3video]  11982: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...

     [m3video]  11982: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...

     [m3video]  11985: IPC_BITS_IN   : Create Done !!!

     [m3video]  11985: DECODE: Create in progress ... !!!

     [m3video] DECLINK_H264:HEAPID:0       USED:2368

     [m3vpss ]  12037: IPC_IN_M3   : Create in progress !!!

     [m3video] DECLINK_H264:HEAPID:3       USED:4497408

     [m3vpss ]  12037: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...

     [m3video]  12031: DECODE: Creating CH0 of 704 x 576 [INTERLACED ] [NON-TILED  ],target bitrate = 2000 Kbps ...

     [m3vpss ]  12038: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...

     [m3video]  12033: DECODE: All CH Create ... DONE !!!

     [m3vpss ]  12038: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...

     [m3vpss ]  12040: IPC_IN_M3   : Create Done !!!

     [m3vpss ]  12041: SWMS: Create in progress !!!

     [m3video] DECLINK:HEAPID:0   USED:2408

     [m3video] DECLINK:HEAPID:3   USED:8110080

     [m3video]  12035: DECODE: Create ... DONE !!!

     [m3video]  12036: IPC_OUT_M3   : Create in progress !!!

     [m3video]  12037: IPC_OUT_M3   : Create Done !!!

     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)

     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)

     [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 17

     [m3vpss ]  12205: SWMS    : VipScReq is FALSE!!!

     [m3vpss ]  12209: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  12209: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  12209: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ]  12210: SWMS    : ******* Configuring clock 30 secs...

     [m3vpss ]  12210: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  12210: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  12210: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ] 

     [m3vpss ]  *** [SWMS0] Mosaic Parameters ***

     [m3vpss ] 

     [m3vpss ]  Output FPS: 30

     [m3vpss ] 

     [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

     [m3vpss ]    0 |   0 |    0,    0 |   704 x    576 |   896 /   896 | NON-TILED   |    0,    0 |  1920 x   1080 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |

     [m3vpss ] 

     [m3vpss ] SWMS:HEAPID:0         USED:224

     [m3vpss ] SWMS:HEAPID:1         USED:17056

     [m3vpss ] SWMS:HEAPID:4         USED:29030400

     [m3vpss ]  12211: SWMS: Create Done !!!

     [m3vpss ]  12212: DISPLAY 0: Create in progress !!!

     [m3vpss ]  12213: DISPLAY: Create Done !!!

     [m3vpss ]  12214: SWMS    : ******* Configuring clock 30 secs...

     [m3vpss ]  12214: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  12215: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  12215: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ] 

     [m3vpss ]  *** [SWMS0] Mosaic Parameters ***

     [m3vpss ] 

     [m3vpss ]  Output FPS: 30

     [m3vpss ] 

     [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

     [m3vpss ]    0 |   0 |    0,    0 |   704 x    576 |   896 /   896 | NON-TILED   |    0,    0 |  1920 x   1080 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |

     [m3vpss ] 

     [m3vpss ]  12216: DISPLAY: Start in progress !!!

     [m3vpss ]  12268: DISPLAY: Start Done !!!

     [m3vpss ]  12268: DISPLAY: HDDAC(BP0) : 38 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 8947 / 0 ) !!!

     [m3vpss ]  12268: SWMS: Start in Progress !!!

     [m3vpss ]  12268: SWMS: Start Done !!!

     [m3vpss ]  12268: DISPLAY DRV: HDDAC(BP0) : Q:[2] Display:[2], Repeat:[1], DQ:[0]

     [m3vpss ]  12268: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 1, HDDAC(BP0) 0, DVO2(BP1) 0, SDDAC(SEC1) 1

     [m3vpss ]  12268: SYSTEM  : FREE SPACE : System Heap      = 245248 B, Mbx = 10239 msgs)

     [m3vpss ]  12269: SYSTEM  : FREE SPACE : SR0 Heap         = 1551232 B (1 MB)

     [m3vpss ]  12269: SYSTEM  : FREE SPACE : Frame Buffer     = 109765504 B (104 MB)

     [m3vpss ]  12269: SYSTEM  : FREE SPACE : Bitstream Buffer = 92136832 B (87 MB)

     [m3vpss ]  12269: SYSTEM  : FREE SPACE : Tiler Buffer     = 100 B (0 MB)  - TILER OFF

     

     

     =============

     Run-Time Menu

     =============

     

     

     1: Capture Settings

     2: Encode  Settings

     3: Decode  Settings

     4: Display Settings

     5: Audio Capture <TVP5158> & Encode <AAC-LC, G711> demo

     6: Change Playback Channel <valid only if capture/playback is active>

     7: Audio encode demo <File In/Out>

     8: Audio decode demo <File In/Out>

     

     

     c: Change 8CH modes (8CH usecase ONLY!!!!)

     d: Change 16CH modes (16CH usecase ONLY!!!!)

     

     

     i: Print detailed system information

     s: Core Status: Active/In-active

     

     

     e: Stop Demo

     

     

     Enter Choice:

     [host] Get empty video frames fail 0 0

     

     [host] Get empty video frames fail 0 0

     [m3video] enclink cmd 2

     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS successConfig:DisplayID[0],ChID[0],FirstPTS[0]

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS faileddue to invalid cfg

     [m3vpss ] Config:DisplayID[0],ChID[-1]

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3video] enclink cmd 1

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ] AVSYNC:Media Time Base:0,FirstVidPTS:0,FirstAudPTS:-1

     [m3vpss ]  SWMS: *** UPDATING RT Params ***

     [m3vpss ]  13418: SWMS    : ******* Configuring clock 30 secs...

     [m3vpss ]  13418: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  13418: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  13418: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ] 

     [m3vpss ]  *** [SWMS0] Mosaic Parameters ***

     [m3vpss ] 

     [m3vpss ]  Output FPS: 30

     [m3vpss ] 

     [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

     [m3vpss ]    0 |   0 |    0,    0 |   704 x    288 |   896 /   896 | NON-TILED   |    0,    0 |  1920 x   1080 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |

     [m3vpss ] 

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     

     

  • If I set fieldPicture = 1, the decoder will stop working. Please see log below. According to the usercase guide, we need to set fieldPicture to 1 if we want to use interlaced decoding. Why it is opposite to me?

     

     [host] encPrm: 0 100000 0 30 0 0 0 -1 0 0

     

     [host]  1996: IPC_FRAMES_OUT   : Create in progress !!!

     

     [host]  1999: IPC_FRAMES_OUT   : Create Done !!!

     [m3video]  9644: IPC_FRAMES_IN   : Create in progress !!!

     [m3video]  9644: SYSTEM: Opening ListMP [HOST_IPC_OUT_19] ...

     [m3video]  9645: SYSTEM: Opening ListMP [HOST_IPC_IN_19] ...

     [m3video]  9646: SYSTEM: Opening MsgQ [HOST_MSGQ] ...

     [m3video] IPC_FRAMES_IN:HEAPID:0   USED:304

     [m3video]  9649: IPC_FRAMES_IN   : Create Done !!!

     [m3video]  9649: ENCODE: Create in progress ... !!!

     [m3video]  9654: ENCODE: Creating CH0 of 704 x 288, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2000 Kbps ...

     [m3video] ENCLINK_H264: Codec Height:288,Width:704

     [m3video] enclink cmd 6

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 3

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 1

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 0

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 5

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] ENCLINK_H264:HEAPID:0      USED:13808

     [m3video] ENCLINK_H264:HEAPID:3      USED:1941504

     [m3video]  9673: ENCODE: All CH Create ... DONE !!!

     [m3video] ENCLINK:HEAPID:0   USED:13848

     [m3video] ENCLINK:HEAPID:2   USED:207360

     [m3video] ENCLINK:HEAPID:3   USED:1941504

     [m3video]  9674: ENCODE: Create ... DONE !!!

     

     [host] IpcBitsInLink_tskMain:Entered

     [host]  4032: IPC_BITS_IN   : Create in progress !!!

     

     [host]  4032: IPC_BITS_IN   : ListMPOpen start !!!

     

     [host]  4032: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...

     [m3video]  11675: IPC_BITS_OUT   : Create in progress !!!

     4034: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...

     

     [host]  4035: IPC_BITS_IN   : ListMPOpen done !!!

     

     [host]  4037: IPC_BITS_IN   : System_linkGetInfo done !!!

     

     [host]  4037: IPC_BITS_IN   : Create Done !!!

     

     [host] MULTICH_VDEC_VDIS:INFO ChId[0] configured for field picture

     

     [host]  4037: IPC_BITS_OUT   : Create in progress !!!

     

     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:0,Size:0x1EF000

     [host]

    ******* RingBuf 0 created ********

     

     [host] IPCBITSOUTLINK:Translated Addr Virt:0x411d4a80 To Phy:0x88032a80

     [host]

    ###Bit buff of size from the SR # 1 : 2027520 / bufsize 405504, maxQueueDepth 50

     

     [host] ###Bit buff BasePtr: 411D4A80 / PhyAddr 88032A80

     

     [host]  4039: IPC_BITS_OUT   : Create Done !!!

     [m3video]  11677: IPC_BITS_OUT   : Create Done !!!

     [m3video]  11685: IPC_BITS_IN   : Create in progress !!!

     [m3video]  11685: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...

     [m3video]  11685: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...

     [m3video]  11688: IPC_BITS_IN   : Create Done !!!

     [m3video]  11688: DECODE: Create in progress ... !!!

     [m3video] DECLINK_H264:HEAPID:0       USED:2368

     [m3video] DECLINK_H264:HEAPID:3       USED:4497408

     [m3video]  11734: DECODE: Creating CH0 of 704 x 576 [INTERLACED ] [NON-TILED  ],target bitrate = 2000 Kbps ...

     [m3video]  11736: DECODE: All CH Create ... DONE !!!

     [m3vpss ]  11740: IPC_IN_M3   : Create in progress !!!

     [m3video] DECLINK:HEAPID:0   USED:2408

     [m3vpss ]  11740: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...

     [m3video] DECLINK:HEAPID:3   USED:8110080

     [m3vpss ]  11741: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...

     [m3video]  11738: DECODE: Create ... DONE !!!

     [m3vpss ]  11741: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...

     [m3video]  11739: IPC_OUT_M3   : Create in progress !!!

     [m3vpss ]  11743: IPC_IN_M3   : Create Done !!!

     [m3video]  11740: IPC_OUT_M3   : Create Done !!!

     [m3vpss ]  11744: SWMS: Create in progress !!!

     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)

     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)

     [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 17

     [m3vpss ]  11907: SWMS    : VipScReq is FALSE!!!

     [m3vpss ]  11911: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  11911: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  11912: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ]  11912: SWMS    : ******* Configuring clock 30 secs...

     [m3vpss ]  11912: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  11912: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  11913: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ] 

     [m3vpss ]  *** [SWMS0] Mosaic Parameters ***

     [m3vpss ] 

     [m3vpss ]  Output FPS: 30

     [m3vpss ] 

     [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

     [m3vpss ]    0 |   0 |    0,    0 |   704 x    576 |   896 /   896 | NON-TILED   |    0,    0 |  1920 x   1080 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |

     [m3vpss ]  

     [m3vpss ] SWMS:HEAPID:0         USED:224

     [m3vpss ] SWMS:HEAPID:1         USED:17056

     [m3vpss ] SWMS:HEAPID:4         USED:29030400

     [m3vpss ]  11914: SWMS: Create Done !!!

     [m3vpss ]  11914: DISPLAY 0: Create in progress !!!

     [m3vpss ]  11916: DISPLAY: Create Done !!!

     [m3vpss ]  11917: SWMS    : ******* Configuring clock 30 secs...

     [m3vpss ]  11917: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  11917: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  11917: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ] 

     [m3vpss ]  *** [SWMS0] Mosaic Parameters ***

     [m3vpss ] 

     [m3vpss ]  Output FPS: 30

     [m3vpss ] 

     [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

     [m3vpss ]    0 |   0 |    0,    0 |   704 x    576 |   896 /   896 | NON-TILED   |    0,    0 |  1920 x   1080 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |

     [m3vpss ] 

     [m3vpss ]  11919: DISPLAY: Start in progress !!!

     [m3vpss ]  11965: DISPLAY: Start Done !!!

     [m3vpss ]  11965: DISPLAY: HDDAC(BP0) : 43 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 8947 / 0 ) !!!

     [m3vpss ]  11965: SWMS: Start in Progress !!!

     [m3vpss ]  11965: SWMS: Start Done !!!

     [m3vpss ]  11966: DISPLAY DRV: HDDAC(BP0) : Q:[2] Display:[2], Repeat:[1], DQ:[0]

     [m3vpss ]  11966: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 1, HDDAC(BP0) 1, DVO2(BP1) 0, SDDAC(SEC1) 0

     [m3vpss ]  11966: SYSTEM  : FREE SPACE : System Heap      = 245248 B, Mbx = 10239 msgs)

     [m3vpss ]  11966: SYSTEM  : FREE SPACE : SR0 Heap         = 1551232 B (1 MB)

     [m3vpss ]  11966: SYSTEM  : FREE SPACE : Frame Buffer     = 109765504 B (104 MB)

     [m3vpss ]  11966: SYSTEM  : FREE SPACE : Bitstream Buffer = 92136832 B (87 MB)

     [m3vpss ]  11966: SYSTEM  : FREE SPACE : Tiler Buffer     = 100 B (0 MB)  - TILER OFF

     

     

     =============

     Run-Time Menu

     =============

     

     

     1: Capture Settings

     2: Encode  Settings

     3: Decode  Settings

     4: Display Settings

     5: Audio Capture <TVP5158> & Encode <AAC-LC, G711> demo

     6: Change Playback Channel <valid only if capture/playback is active>

     7: Audio encode demo <File In/Out>

     8: Audio decode demo <File In/Out>

     

     

     c: Change 8CH modes (8CH usecase ONLY!!!!)

     d: Change 16CH modes (16CH usecase ONLY!!!!)

     

     

     i: Print detailed system information

     s: Core Status: Active/In-active

     

     

     e: Stop Demo

     

     

     Enter Choice:

     [host] Get empty video frames fail 0 0

     

     [host] Get empty video frames fail 0 0

     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS successConfig:DisplayID[0],ChID[0],FirstPTS[0]

     [m3video] enclink cmd 2

     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS faileddue to invalid cfg

     [m3vpss ] Config:DisplayID[0],ChID[-1]

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3video] enclink cmd 1

     [m3video] videnc2DynamicParams -> inputHeight             : 288

     [m3video] videnc2DynamicParams -> inputWidth              : 704

     [m3video] videnc2DynamicParams -> refFrameRate            : 30000

     [m3video] videnc2DynamicParams -> targetFrameRate         : 30000

     [m3video] videnc2DynamicParams -> targetBitRate           : 2000000

     [m3video] videnc2DynamicParams -> intraFrameInterval      : 30

     [m3video] videnc2DynamicParams -> generateHeader          : 0

     [m3video] videnc2DynamicParams -> captureWidth            : 704

     [m3video] videnc2DynamicParams -> forceFrame              : -1

     [m3video] videnc2DynamicParams -> interFrameInterval      : 1

     [m3video] videnc2DynamicParams -> mvAccuracy              : 2

     [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1

     [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1

     [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1

     [m3video] videnc2DynamicParams -> lateAcquireArg          : -1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3vpss ] AVSYNC:Media Time Base:0,FirstVidPTS:0,FirstAudPTS:-1

     [m3video]  13162: DECODE: CH0: Decoder flush needed (-2147483648)!!!

     [m3video]  13162: DECODE: CH0: Decoder Flushing !!!

     [m3video]  13162: DECODE: CH0: Decoder Flushing !!!

     [m3video] DEC Link: Forced flush due to all dec ouputbuffers are locked-up inside the codec lib

     [m3vpss ]  SWMS: *** UPDATING RT Params ***

     [m3vpss ]  13182: SWMS    : ******* Configuring clock 30 secs...

     [m3vpss ]  13182: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...

     [m3vpss ]  13182: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...

     [m3vpss ]  13182: SWMS    : Co-effs Loading ... DONE !!!

     [m3vpss ] 

     [m3vpss ]  *** [SWMS0] Mosaic Parameters ***

     [m3vpss ] 

     [m3vpss ]  Output FPS: 30

     [m3vpss ] 

     [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |

     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |

     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

     [m3vpss ]    0 |   0 |    0,    0 |   704 x    288 |   896 /   896 | NON-TILED   |    0,    0 |  1920 x   1080 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |

     [m3vpss ] 

    [DECODER ERROR] 5616: DECODE CH <0> ERROR: IH264VDEC_ERR_NOSLICE : 0, 

    [DECODER ERROR] 5616: DECODE CH <0> ERROR: XDM_APPLIEDCONCEALMENT : 9,

     [m3video] 13261:DECLINK::links_m3video/iva_dec/decLink_h264.c:[379]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS

     [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x201

     [m3video] Sequence called number 6

     [m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

     [m3vpss ]  SWMS: bypass 0 0 1

     [m3video]  13482: DECODE: CH0: Decoder flush needed (-2147483648)!!!

     [m3video]  13482: DECODE: CH0: Decoder Flushing !!!

     [m3video]  13482: DECODE: CH0: Decoder Flushing !!!

     [m3video] DEC Link: Forced flush due to all dec ouputbuffers are locked-up inside the codec lib

     [m3video] 13549:DECLINK::links_m3video/iva_dec/decLink_h264.c:[379]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS

     [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x201

     [m3video] Sequence called number 10

     [m3video]  13610: DECODE: CH0: Decoder flush needed (0)!!!

     [m3video]  13610: DECODE: CH0: Decoder Flushing !!!

     [m3video]  13610: DECODE: CH0: Decoder Flushing !!!

     [m3video] DEC Link: Forced flush due to all dec ouputbuffers are locked-up inside the codec lib

     [m3video] 13709:DECLINK::links_m3video/iva_dec/decLink_h264.c:[379]::INTERNAL ERROR:-1

     [m3video] ALGPROCESS FAILED:STATUS

     [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x201

     [m3video] Sequence called number 12

     [m3video]  13709: DECODE: CH0: Decoder flush needed (513)!!!

     [m3video]  13709: DECODE: CH0: Decoder Flushing !!!

     [m3video] DEC Link: Forced flush due to all dec ouputbuffers are locked-up inside the codec lib

    I2C No Ack

     

     

    HDMI failed to read E-EDID

     [host] HDMI Ctrl : Warning :Could not get SINKS EDID

     [host] HDMI Ctrl : Warning :Could not get parsed EDID

     DEMO: HDMI TV/Monitor connected !!!

    ^C

    /opt/dvr_rdk/ti810x #  [m3vpss ]  SWMS0   : Output  FPS: 29.1 fps , Total Window FPS: 25.7 fps ... in 10.0 secs

     [m3vpss ]  SWMS0   : Output  FPS: 30.0 fps , Total Window FPS: 30.0 fps ... in 10.0 secs

     

  • Hi Badri,

    Thank you for the quick response.

    Sorry that I post a little slow. I fixed the display frame quality issue by input correct YUV data to Framebuf. That problem was solved.

    In my log, I can see below print:

    m3vpss ]  SWMS: winId (0) numWin (1), fid (0)

    When means the fid to SsMs is always 0.

    if I set fieldPicture to 0, I can see good picture now. But the decoder report error when fieldPicture is 1.

  • Are you mentioning abou tthis decode error

                      [m3video] DEC Link: Forced flush due to all dec ouputbuffers are locked-up inside the codec lib

                       [m3video] 13549:DECLINK::links_m3video/iva_dec/decLink_h264.c:[379]::INTERNAL ERROR:-1

                        [m3video] ALGPROCESS FAILED:STATUS

                       [m3video] outArgs->viddec3OutArgs.extendedError for channel 0 Error: 0x201

    Can you increase the numBufPerCh of decoder?

  • Also attach your usecase file where you are connecting and creating links. I think there is some problem with the decoder link configuration. 

  • Hi

    After I set the numBufPerCh to 8, the problem is solved. Thank you very much.

    Could you please help to explain why do I need to increase the numBufPerCh of decoder?

    What is the difference between fieldPicture = 1 and fieldPicture = 0 to us?

     

    Thanks again,

     

  • 1. [m3video] DEC Link: Forced flush due to all dec ouputbuffers are locked-up inside the codec lib

    ==> This error indicates that codec is still using few of the output buffers for refernce and cannot be re-used. We need to provide enough decoder buffers based on the GOP sequence.

    2. fieldPicture = 1 signals the decoder to do interlace decoding.

    Please note that in this release, decoder is not giving out interlaced output as 2 different output buffers. This means, you will get only 30 output frames even when your input is actually 60. A complete version of interlace decoding is available only in next release.

  • Hi Sivagamy,

     

    1. OK. I get it.

    2. When I set fieldPicture = 0 and set fieldMergeEncodeEnable = TRUE, I can get good interlaced encoding and decoding also. In this case, I do not need to increase the numBufPerCh.  What is the difference between "fieldPicture = 0 + fieldMergeEncodeEnable = TRUE" and "fieldPicture = 1 and set fieldMergeEncodeEnable = FALSE"? Is the "fieldPicture = 0 + fieldMergeEncodeEnable = TRUE" a kind of interlaced decoding also? Because I set scanFormat = SYSTEM_SF_INTERLACED in both case.

    3. When will be the next release ready?  My output will be DVO2. I will need the output to be same timing as input. If it is too late, can I use Dec -> DEI -> Display to output interlaced format like 1080i, 576i?

     

    Thank you very much,

    zzs

  • For interlaced encode decode always use the following configuration. Any other combination is invalid:

    fieldMergeEncodeEnable = FALSE -- encoder setting. This will ensure each field is encoded as a separate bitstream buffer.This is required for correct decoding by most decoders.

     

    fieldPicture = TRUE -- decode setting.This ensures decoder does interlaced decoding.

    If it does not work with this configuration there is some issue and needs to be debugged further.

    It is not clear what configuration you are setting that is why I asked you to attach your source code.

    The next release is expected end July - mid Aug 2013.

    Decoder does not output both the fields so adding DEI will also not help.

    Do you want to display progressive content of do you want to display 60 fields on the display ?

     

     

     

  • Hi Badri,

    Thanks for the answer. But mid Aug is too late.

    I want to display interlaced 60 fields on the dispaly. Do you have any suggestion for me?

     

    Please see my source code below:

    {

     

    IpcFramesOutLinkHLOS_CreateParams ipcFramesOutHostPrm;

    IpcFramesInLinkRTOS_CreateParams ipcFramesInVideoPrm;

     

    EncLink_CreateParams encPrm;

     

    IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;

    IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm;

     

        IpcBitsOutLinkHLOS_CreateParams   ipcBitsOutHostPrm;

        IpcBitsInLinkRTOS_CreateParams    ipcBitsInVideoPrm;

        DecLink_CreateParams        decPrm;

        IpcLink_CreateParams        ipcOutVideoPrm;

        IpcLink_CreateParams        ipcInVpssPrm;

        static SwMsLink_CreateParams       swMsPrm[VDIS_DEV_MAX];

        DisplayLink_CreateParams    displayPrm[VDIS_DEV_MAX];

        UInt32 enableGrpx;

        Bool tilerEnable;

     

                    Int i, j;

     

                    UInt32 ipcFramesInVideoId, ipcFramesOutHostId;

                    UInt32 ipcBitsOutVideoId, ipcBitsInHostId;

                   

                    Int32 FrameWidth, FrameHeight, FrameRate;

     

                    Venc_get_resolution(&FrameWidth,&FrameHeight,&FrameRate);

                    if( (FrameWidth > 1920) || (FrameHeight > 1080) || (0 == FrameWidth) || (0 == FrameHeight) )

                    {

                        OSA_printf("ERROR: initVIDFrameBufs: invalid width/height: %d %d\n",FrameWidth,FrameHeight);

                                    return;

                    }

     

    MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams,ipcFramesOutHostPrm);

    MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams,ipcFramesInVideoPrm);

     

    MULTICH_INIT_STRUCT(EncLink_CreateParams, encPrm);

     

    MULTICH_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams,ipcBitsOutVideoPrm);

    MULTICH_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams,ipcBitsInHostPrm);

     

        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVpssPrm);

        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVideoPrm);

        MULTICH_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,ipcBitsOutHostPrm);

        MULTICH_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,ipcBitsInVideoPrm);

        MULTICH_INIT_STRUCT(DecLink_CreateParams, decPrm);

        for (i = 0; i < VDIS_DEV_MAX;i++)

        {

            MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm[i]);

            MULTICH_INIT_STRUCT(SwMsLink_CreateParams ,swMsPrm[i]);

        }

     

    ipcFramesOutHostId = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;

    ipcFramesInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_IN_0;

     

    ipcBitsOutVideoId = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;

    ipcBitsInHostId = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;

     

        MultiCh_detectBoard();

     

        System_linkControl(

            SYSTEM_LINK_ID_M3VPSS,

            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,

            NULL,

            0,

            TRUE

            );

     

        System_linkControl(

            SYSTEM_LINK_ID_M3VIDEO,

            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,

            &systemVid_encDecIvaChMapTbl,

            sizeof(SystemVideo_Ivahd2ChMap_Tbl),

            TRUE

        );

     

    gVencModuleContext.encId            = SYSTEM_LINK_ID_VENC_0;

    gVencModuleContext.ipcBitsInHLOSId   = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;

    gVencModuleContext.ipcBitsOutRTOSId = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;

    gVencModuleContext.ipcM3OutId = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;

    gVencModuleContext.ipcM3InId = SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_IN_0;

     

    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)

        enableGrpx   = FALSE;

    #else

        enableGrpx   = TRUE;

    #endif

     

        tilerEnable  = FALSE;

     

        if (tilerEnable == FALSE)

        {

            /* Disable tiler allocator for this usecase

             * for that tiler memory can be reused for

             * non-tiled allocation

             */

            SystemTiler_disableAllocator();

        }

     

     

    /**

    * IPC Frames OUT (A8)

    * */

    ipcFramesOutHostPrm.baseCreateParams.outQueParams[0].nextLink = ipcFramesInVideoId;

    ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = TRUE;

    ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = TRUE;

    ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = FALSE;

    ipcFramesOutHostPrm.baseCreateParams.numOutQue = 1;

    ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;

    ipcFramesOutHostPrm.inQueInfo.numCh = gVencModuleContext.vencConfig.numPrimaryChn;

     

     

    for (i=0; i<gVencModuleContext.vencConfig.numPrimaryChn; i++)

    {

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].width = FrameWidth; //CH_WIDTH;

    #ifdef INTERLACED_ENCODING

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].height = FrameHeight/2;

    #else

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].height = FrameHeight;

    #endif

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].bufType = 0; // NOT USED

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].codingformat = 0; // NOT USED

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].dataFormat = SYSTEM_DF_YUV420SP_UV; //0x07; //FVID2_DF_YUV420SP_UV

    #ifdef INTERLACED_ENCODING

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].scanFormat = SYSTEM_SF_INTERLACED;

    #else

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].scanFormat = SYSTEM_SF_PROGRESSIVE; //progressive

    #endif

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].memType = 0; // zzs change from 1 to NON_TILED MEM

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].startX = 0; // NOT USED

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].startY = 0; // NOT USED

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].pitch[0] = FrameWidth;//16384; //CH_WIDTH;

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].pitch[1] = FrameWidth;//32768; //CH_WIDTH;

    ipcFramesOutHostPrm.inQueInfo.chInfo[i].pitch[2] = 0; // NOT USED

    }

     

    /**

    * IPC Frames OUT (A8) to IPC Frames IN (Video)

    * */

    ipcFramesInVideoPrm.baseCreateParams.noNotifyMode = FALSE;

    ipcFramesInVideoPrm.baseCreateParams.notifyNextLink = TRUE;

    ipcFramesInVideoPrm.baseCreateParams.notifyPrevLink = TRUE;

    ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkId = ipcFramesOutHostId;

    ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;

    ipcFramesInVideoPrm.baseCreateParams.outQueParams[0].nextLink = gVencModuleContext.encId;

     

    /**

    * IPC Frames IN (Video) to Encoder

    * */

    {

            EncLink_ChCreateParams *pLinkChPrm;

            EncLink_ChDynamicParams *pLinkDynPrm;

            VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;

            VENC_CHN_PARAMS_S *pChPrm;

     

            EncLink_CreateParams_Init(&encPrm);

                                   

                                    encPrm.numBufPerCh[0] = NUM_BUF_PER_CH;

            encPrm.numBufPerCh[1] = NUM_BUF_PER_CH;

     

                                    pLinkDynPrm = NULL;

            /* Primary Stream Params - 1080p */

            for (i=0; i<gVencModuleContext.vencConfig.numPrimaryChn; i++)

            {

                pLinkChPrm  = &encPrm.chCreateParams[i];

                pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;

     

                pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];

                pDynPrm     = &pChPrm->dynamicParam;

     

                pLinkChPrm->format                  = IVIDEO_H264HP;

                pLinkChPrm->profile                 = gVencModuleContext.vencConfig.h264Profile[i];

                pLinkChPrm->dataLayout              = IVIDEO_FIELD_SEPARATED;

    #ifdef INTERLACED_ENCODING

                                                    pLinkChPrm->fieldMergeEncodeEnable  = FALSE; //zzs change from FALSE for interlaced encoding test;

    #else                                    

                pLinkChPrm->fieldMergeEncodeEnable  = FALSE;

    #endif

                pLinkChPrm->enableAnalyticinfo      = pChPrm->enableAnalyticinfo;

                pLinkChPrm->enableWaterMarking      = pChPrm->enableWaterMarking;

                pLinkChPrm->maxBitRate              = pChPrm->maxBitRate;

                pLinkChPrm->encodingPreset          = pChPrm->encodingPreset;

                pLinkChPrm->rateControlPreset       = pChPrm->rcType;

                pLinkChPrm->enableSVCExtensionFlag  = pChPrm->enableSVCExtensionFlag;

                pLinkChPrm->numTemporalLayer        = pChPrm->numTemporalLayer;

     

                pLinkDynPrm->intraFrameInterval     = pDynPrm->intraFrameInterval;

                pLinkDynPrm->targetBitRate          = pDynPrm->targetBitRate;

                pLinkDynPrm->interFrameInterval     = 1;

                pLinkDynPrm->mvAccuracy             = IVIDENC2_MOTIONVECTOR_QUARTERPEL;

                pLinkDynPrm->inputFrameRate         = pDynPrm->inputFrameRate;

                pLinkDynPrm->rcAlg                  = pDynPrm->rcAlg;

                pLinkDynPrm->qpMin                  = pDynPrm->qpMin;

                pLinkDynPrm->qpMax                  = pDynPrm->qpMax;

                pLinkDynPrm->qpInit                 = pDynPrm->qpInit;

                pLinkDynPrm->vbrDuration            = pDynPrm->vbrDuration;

                pLinkDynPrm->vbrSensitivity         = pDynPrm->vbrSensitivity;

     

                                                    printf("GVenc i %d inputFrameRate: %d\n",i, pLinkDynPrm->targetBitRate);

            }

    #if 1

                                    printf("GVenc numSecondaryChn: %d\n", gVencModuleContext.vencConfig.numSecondaryChn);

            /* Secondary Out <CIF> Params */

            for (i=gVencModuleContext.vencConfig.numPrimaryChn, j=VENC_PRIMARY_CHANNELS;

                  i<(gVencModuleContext.vencConfig.numPrimaryChn

                           + gVencModuleContext.vencConfig.numSecondaryChn);

                    i++, j++)

            {

                pLinkChPrm  = &encPrm.chCreateParams[i];

                pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;

     

                pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[j];

                pDynPrm     = &pChPrm->dynamicParam;

     

                pLinkChPrm->format                  = IVIDEO_H264HP;

                pLinkChPrm->profile                 = gVencModuleContext.vencConfig.h264Profile[i];

                pLinkChPrm->dataLayout              = IVIDEO_FIELD_SEPARATED;

                pLinkChPrm->fieldMergeEncodeEnable  = FALSE;

                pLinkChPrm->enableAnalyticinfo      = pChPrm->enableAnalyticinfo;

                pLinkChPrm->enableWaterMarking      = pChPrm->enableWaterMarking;

                pLinkChPrm->maxBitRate              = pChPrm->maxBitRate;

                pLinkChPrm->encodingPreset          = pChPrm->encodingPreset;

                pLinkChPrm->rateControlPreset       = pChPrm->rcType;

                pLinkChPrm->enableSVCExtensionFlag  = pChPrm->enableSVCExtensionFlag;

                pLinkChPrm->numTemporalLayer        = pChPrm->numTemporalLayer;

     

                pLinkDynPrm->intraFrameInterval     = pDynPrm->intraFrameInterval;

                pLinkDynPrm->targetBitRate          = pDynPrm->targetBitRate;

                pLinkDynPrm->interFrameInterval     = 1;

                pLinkDynPrm->mvAccuracy             = IVIDENC2_MOTIONVECTOR_QUARTERPEL;

                pLinkDynPrm->inputFrameRate         = pDynPrm->inputFrameRate;

                pLinkDynPrm->qpMin                  = pDynPrm->qpMin;

                pLinkDynPrm->qpMax                  = pDynPrm->qpMax;

                pLinkDynPrm->qpInit                 = pDynPrm->qpInit;

                pLinkDynPrm->vbrDuration            = pDynPrm->vbrDuration;

                pLinkDynPrm->vbrSensitivity         = pDynPrm->vbrSensitivity;

                                                    printf("GVencsec i %d,j %d inputFrameRate: %d\n",i,j, pLinkDynPrm->targetBitRate);

            }

     

                                    printf("GVenc left: %d\n", gVencModuleContext.vencConfig.numPrimaryChn + gVencModuleContext.vencConfig.numSecondaryChn);

            /* MJPEG  Params */

            for (i=gVencModuleContext.vencConfig.numPrimaryChn + gVencModuleContext.vencConfig.numSecondaryChn;

                      i<(VENC_CHN_MAX); i++)

            {

                 pLinkChPrm  = &encPrm.chCreateParams[i];

                 pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;

     

                 pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];

                 pDynPrm     = &pChPrm->dynamicParam;

     

                 pLinkChPrm->format                 = IVIDEO_MJPEG;

                 pLinkChPrm->profile                = 0;

                 pLinkChPrm->dataLayout             = IVIDEO_FIELD_SEPARATED;

                 pLinkChPrm->fieldMergeEncodeEnable = FALSE;

                 pLinkChPrm->enableAnalyticinfo     = 0;

                 pLinkChPrm->enableWaterMarking     = 0;

                 pLinkChPrm->maxBitRate             = 0;

                 pLinkChPrm->encodingPreset         = 0;

                 pLinkChPrm->rateControlPreset      = 0;

                 pLinkChPrm->enableSVCExtensionFlag = 0;

                 pLinkChPrm->numTemporalLayer       = 0;

     

                 pLinkDynPrm->intraFrameInterval    = 0;

                 pLinkDynPrm->targetBitRate         = 100*1000;

                 pLinkDynPrm->interFrameInterval    = 0;

                 pLinkDynPrm->mvAccuracy            = 0;

                 pLinkDynPrm->inputFrameRate        = pDynPrm->inputFrameRate;

                 pLinkDynPrm->qpMin                 = 0;

                 pLinkDynPrm->qpMax                 = 0;

                 pLinkDynPrm->qpInit                = -1;

                 pLinkDynPrm->vbrDuration           = 0;

                 pLinkDynPrm->vbrSensitivity        = 0;

            }

    #endif

                                   

     

    encPrm.inQueParams.prevLinkId = ipcFramesInVideoId;

    encPrm.inQueParams.prevLinkQueId= 0;

    encPrm.outQueParams.nextLink = ipcBitsOutVideoId;

     

    OSA_printf("encPrm: %d %d %d %d %d %d %d %d %d %d\n",

                                    pLinkDynPrm->intraFrameInterval,

                                    pLinkDynPrm->targetBitRate,

                                    pLinkDynPrm->mvAccuracy,

                                    pLinkDynPrm->inputFrameRate,

                                    pLinkDynPrm->rcAlg,

                                    pLinkDynPrm->qpMin,

                                    pLinkDynPrm->qpMax,

                                    pLinkDynPrm->qpInit,

                                    pLinkDynPrm->vbrDuration,

                                    pLinkDynPrm->vbrSensitivity);

    }

     

     

    /**

    * Encoder to ipcBitsOutVideo

    **/

    ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId = gVencModuleContext.encId;

    ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;

    ipcBitsOutVideoPrm.baseCreateParams.numOutQue = 1;

    ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode = TRUE;

    ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = TRUE;

    ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = FALSE;

    ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink = ipcBitsInHostId;

    /**

    * ipcBitsOutVideo to

    **/

    {

    VENC_CALLBACK_S *callback;

    Ptr cbCtx;                           

    ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = ipcBitsOutVideoId;

    ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;

    ipcBitsInHostPrm.baseCreateParams.notifyNextLink = FALSE;

    ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = FALSE;

    ipcBitsInHostPrm.baseCreateParams.noNotifyMode = TRUE;

    //ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;

    Venc_getCallbackInfo(&callback, &cbCtx);

                   

    ipcBitsInHostPrm.cbFxn = callback->newDataAvailableCb;

    ipcBitsInHostPrm.cbCtx = cbCtx;

    }

     

    System_linkCreate(ipcFramesOutHostId,&ipcFramesOutHostPrm,sizeof(ipcFramesOutHostPrm));

    System_linkCreate(ipcFramesInVideoId,&ipcFramesInVideoPrm,sizeof(ipcFramesInVideoPrm));

    System_linkCreate(gVencModuleContext.encId, &encPrm, sizeof(encPrm));

    sleep(2);

    System_linkCreate(ipcBitsOutVideoId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm));

    System_linkCreate(ipcBitsInHostId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm));

     

     

     

     

     

     

     

     

     

        gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;

        gVdecModuleContext.ipcBitsInRTOSId  = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;

        gVdecModuleContext.decId            = SYSTEM_LINK_ID_VDEC_0;

     

        gMultiCh_VdecVdisObj.ipcOutVideoId  = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;

        gMultiCh_VdecVdisObj.ipcInVpssId    = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;

     

                    gVdisModuleContext.swMsId[0]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;

        gVdisModuleContext.displayId[0]     = SYSTEM_LINK_ID_DISPLAY_0; // ON AND OFF CHIP HDMI

     

     

        ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink= gVdecModuleContext.ipcBitsInRTOSId;

        ipcBitsOutHostPrm.baseCreateParams.notifyNextLink       = FALSE;

        ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink       = FALSE;

        ipcBitsOutHostPrm.baseCreateParams.noNotifyMode         = TRUE;

        ipcBitsOutHostPrm.baseCreateParams.numOutQue            = 1;

        ipcBitsOutHostPrm.inQueInfo.numCh                       = gVdecModuleContext.vdecConfig.numChn;

     

        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)

        {

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].width =

                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth;

     

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].height =

                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight;

     

    #ifdef INTERLACED_ENCODING

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =

                SYSTEM_SF_INTERLACED;

    #else

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =

                SYSTEM_SF_PROGRESSIVE;

    #endif                  

     

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].bufType        = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].codingformat   = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].dataFormat     = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].memType        = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startX         = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startY         = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[0]       = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[1]       = 0; // NOT USED

            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[2]       = 0; // NOT USED

     

            ipcBitsOutHostPrm.maxQueueDepth[i] = MAX_BUFFERING_QUEUE_LEN_PER_CH;

            ipcBitsOutHostPrm.chMaxReqBufSize[i] =

                    (ipcBitsOutHostPrm.inQueInfo.chInfo[i].width * ipcBitsOutHostPrm.inQueInfo.chInfo[i].height);

            ipcBitsOutHostPrm.totalBitStreamBufferSize [i] =

                    (ipcBitsOutHostPrm.chMaxReqBufSize[i] * BIT_BUF_LENGTH_LIMIT_FACTOR_HD);

     

        }

     

        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gVdecModuleContext.ipcBitsOutHLOSId;

        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;

        ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gVdecModuleContext.decId;

        ipcBitsInVideoPrm.baseCreateParams.noNotifyMode              = TRUE;

        ipcBitsInVideoPrm.baseCreateParams.notifyNextLink            = TRUE;

        ipcBitsInVideoPrm.baseCreateParams.notifyPrevLink            = FALSE;

        ipcBitsInVideoPrm.baseCreateParams.numOutQue                 = 1;

     

        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)

        {

            if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_H264)

                decPrm.chCreateParams[i].format                 = IVIDEO_H264HP;

            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG4)

                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG4ASP;

            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MJPEG)

                decPrm.chCreateParams[i].format                 = IVIDEO_MJPEG;

     

            decPrm.chCreateParams[i].numBufPerCh

                             = gVdecModuleContext.vdecConfig.decChannelParams[i].numBufPerCh;

            decPrm.chCreateParams[i].profile                = IH264VDEC_PROFILE_ANY;

            decPrm.chCreateParams[i].displayDelay

                             = gVdecModuleContext.vdecConfig.decChannelParams[i].displayDelay;

            decPrm.chCreateParams[i].dpbBufSizeInFrames = IH264VDEC_DPB_NUMFRAMES_AUTO;

            if (gVdecModuleContext.vdecConfig.decChannelParams[i].fieldPicture)

            {

                OSA_printf("MULTICH_VDEC_VDIS:INFO ChId[%d] configured for field picture\n",i);

                decPrm.chCreateParams[i].processCallLevel   = VDEC_FIELDLEVELPROCESSCALL;

            }

            else

            {

                decPrm.chCreateParams[i].processCallLevel   = VDEC_FRAMELEVELPROCESSCALL;

            }

            decPrm.chCreateParams[i].targetMaxWidth  =

                ipcBitsOutHostPrm.inQueInfo.chInfo[i].width;

     

            decPrm.chCreateParams[i].targetMaxHeight =

                ipcBitsOutHostPrm.inQueInfo.chInfo[i].height;

     

            decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate =

                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.frameRate;

     

            decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =

                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.targetBitRate;

            if (FALSE == tilerEnable)

            {

                    decPrm.chCreateParams[i].tilerEnable = FALSE;

            }

            else

            {

                    decPrm.chCreateParams[i].tilerEnable = gVdecModuleContext.vdecConfig.decChannelParams[i].tilerEnable;

            }

        }

     

        decPrm.inQueParams.prevLinkId       = gVdecModuleContext.ipcBitsInRTOSId;

        decPrm.inQueParams.prevLinkQueId    = 0;

        decPrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.ipcOutVideoId;

     

        ipcOutVideoPrm.inQueParams.prevLinkId    = gVdecModuleContext.decId;

        ipcOutVideoPrm.inQueParams.prevLinkQueId = 0;

        ipcOutVideoPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.ipcInVpssId;

        ipcOutVideoPrm.notifyNextLink            = TRUE;

        ipcOutVideoPrm.notifyPrevLink            = TRUE;

        ipcOutVideoPrm.numOutQue                 = 1;

     

        ipcInVpssPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcOutVideoId;

        ipcInVpssPrm.inQueParams.prevLinkQueId = 0;

        ipcInVpssPrm.notifyNextLink            = TRUE;

        ipcInVpssPrm.notifyPrevLink            = TRUE;

        ipcInVpssPrm.numOutQue                 = 1;

     

     

        ipcInVpssPrm.outQueParams[0].nextLink   = gVdisModuleContext.swMsId[0];

     

     

        swMsPrm[0].numSwMsInst = 1;

        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;

     

        swMsPrm[0].swMsInstStartWin[0]  = 0;

        swMsPrm[0].swMsInstStartWin[1]  = 10;

     

        swMsPrm[1].numSwMsInst = 1;

        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;

     

        swMsPrm[1].swMsInstStartWin[0]  = 0;

        swMsPrm[1].swMsInstStartWin[1]  = 10;

     

        swMsPrm[0].enableProcessTieWithDisplay = TRUE;

        swMsPrm[1].enableProcessTieWithDisplay = FALSE;

     

        /* We do not require dual output, this free up SC3 scalar */

        swMsPrm[0].includeVipScInDrvPath = FALSE;

        swMsPrm[1].includeVipScInDrvPath = FALSE;

     

     

        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)

        {

    #ifdef OUTPUT_HDMI

            VDIS_DEV vdDevId = VDIS_DEV_HDMI;

    #else

            VDIS_DEV vdDevId = VDIS_DEV_DVO2;        //zzs

    #endif

            swMsPrm[i].inQueParams.prevLinkId     = gMultiCh_VdecVdisObj.ipcInVpssId;

            swMsPrm[i].inQueParams.prevLinkQueId  = 0;

            swMsPrm[i].outQueParams.nextLink      = gVdisModuleContext.displayId[i];

            swMsPrm[i].numOutBuf                 = MULTICH_NUM_SWMS_MAX_BUFFERS;

     

            /* Disable inQue drop at SwMs as input may arrive very fast in VDEC->VDIS use case */

            swMsPrm[i].maxInputQueLen             = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;

            if (i == 0)

            {

    #ifdef OUTPUT_HDMI

                vdDevId = VDIS_DEV_HDMI;

    #else

                                                    vdDevId = VDIS_DEV_DVO2;      //zzs

    #endif

                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;

                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;

            }

            else if (i == 1)

            {

                vdDevId = VDIS_DEV_SD;

                swMsPrm[i].maxOutRes              = VSYS_STD_PAL;

                swMsPrm[i].outQueParams.nextLink  = SYSTEM_LINK_ID_DISPLAY_2;

                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;

     

            }

            /* low cost line skip mode of scaling can be used, when tiler is off */

            if(tilerEnable)

                swMsPrm[i].lineSkipMode           = FALSE;

            else

                swMsPrm[i].lineSkipMode           = TRUE;

     

            swMsPrm[i].enableLayoutGridDraw = gVdisModuleContext.vdisConfig.enableLayoutGridDraw;

     

            MultiCh_swMsGetDefaultLayoutPrm(vdDevId, &swMsPrm[i], FALSE);    /* both from 0-16 chnl */

     

            displayPrm[i].inQueParams[0].prevLinkId    = gVdisModuleContext.swMsId[i];

            displayPrm[i].inQueParams[0].prevLinkQueId = 0;

            displayPrm[i].displayRes                = swMsPrm[i].initOutRes;

            if (i == 1)

    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)

                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;

    #else

                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;

    #endif

            mulich_vdec_vdis_set_avsync_prm(&gMultiCh_VdecVdisObj.avsyncCfg[i],i,vdDevId);

        }

     

        System_linkCreate(gVdecModuleContext.ipcBitsOutHLOSId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));

        System_linkCreate(gVdecModuleContext.ipcBitsInRTOSId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));

        System_linkCreate(gVdecModuleContext.decId, &decPrm, sizeof(decPrm));

     

        System_linkCreate(gMultiCh_VdecVdisObj.ipcOutVideoId, &ipcOutVideoPrm, sizeof(ipcOutVideoPrm));

        System_linkCreate(gMultiCh_VdecVdisObj.ipcInVpssId  , &ipcInVpssPrm, sizeof(ipcInVpssPrm));

     

     

        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)

            System_linkCreate(gVdisModuleContext.swMsId[i]  , &swMsPrm[i], sizeof(swMsPrm[i]));

     

        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)

            System_linkCreate(gVdisModuleContext.displayId[i], &displayPrm[i], sizeof(displayPrm[i]));

     

     

        MultiCh_memPrintHeapStatus();

        {

    #ifdef OUTPUT_HDMI

            MultiCh_setDec2DispMap(VDIS_DEV_HDMI,gVdecModuleContext.vdecConfig.numChn,0,0);

    #else

            MultiCh_setDec2DispMap(VDIS_DEV_DVO2,gVdecModuleContext.vdecConfig.numChn,0,0);           //zzs

    #endif

            #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)

            MultiCh_setDec2DispMap(VDIS_DEV_SD,gVdecModuleContext.vdecConfig.numChn,0,0);

            #else

            MultiCh_setDec2DispMap(VDIS_DEV_HDCOMP,gVdecModuleContext.vdecConfig.numChn,0,0);

            #endif

       }

     

     

    }

     

     

     

  • Hi,

    Attaching a patch (based on 4.0.3 release) which includes proper interlace support in decoder, swms.

    Please note that this is work in progress and tested thoroughly. The use case file to refer is multich_hd_sdi_dvr.c. Let us know if you face any issue in patching.

    Thanks & Regards,
    Sivagamy7776.interlace_support_in_swms_decoder_post_4.0.3.patch

  • Hi Sivagamy,

     

    Thank you for the help.

    I tried to merge the patch into my DVR referference design version GA-04.00.00.03 and compiled it. There is no problem in the compiling but there is a error in the link. Please see compiling info below:

    # Configuro done!
    # Making ti810x-evm:m3vpss:release:hdvpss_drivers...
    # Making ti810x-evm:m3vpss:release:hdvpss_platform...
    # Making ti810x-evm:m3vpss:release:hdvpss_i2c...
    # Making ti810x-evm:m3vpss:release:hdvpss_devices...
    # Making ti810x-evm:m3vpss:release:hdvpss_proxyServer...
    # Making ti810x-evm:m3vpss:release:dvr_rdk_bios6...
    # Compiling ti810x-evm:m3vpss:release:dvr_rdk: src/main_m3vpss.c
    # Compiling ti810x-evm:m3vpss:release:dvr_rdk: src/xdc2c_cfg_m3vpss.c
    # Compiling generated MAIN_APP_m3vpss_pem3.oem3
    # Linking into 
    /home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_rdk_m3vpss_release_512M_128M.xem3...
    #
    <Linking>
    "/home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/mcfw/src_bios6/cfg/ti810x/link_hdvpss.cmd", 
    line 121: error:
        run placement fails for object ".text_utils", size 0xa7e (page 0).
        Available ranges:
        OCMC0_VPSS_M3_RAM_MAPPED   size: 0x3c000      unused: 0x4d9        
    max hole:
        0x3
    error: errors encountered during linking;
    "/home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_
        rdk_m3vpss_release_512M_128M.xem3" not built
     
     >> Compilation failure
    make[2]: *** 
    [/home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_rdk_m3vpss_release_512M_128M.xem3] 
    Error 1
    make[1]: *** [apps] Error 2
    make: *** [dvr_rdk_bios6] Error 2
     
    Maybe there is some other files need to be changed also. Could you please advise?
     
    Best regards,
    zzs
  • Are you building for 816x or 8107 ? This is not yet tested on 8107. If building for 8107 comment out internal memory placement by modifying

    /dvr_rdk/makerules/rules_m3.mk

     ifeq ($(SOC),ti8107)
      MISC_LNKCMD_INCLUDE = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti810x/link_hdvpss.cmd
     endif

    to

     ifeq ($(SOC),ti8107)
      MISC_LNKCMD_INCLUDE =

     endif

     

  • Regarding your usecase the code you have shared above is correct (fieldMergeEncodeEnable = FALSE, DecPrm.processCallLevel = FIELD_LEVEL).

    If you want to display 60 fields you should not have DEI after decode. You should directly connect decode to display but display doesn't support 420 input by default. So you need a scalar link for 420SP to 422I conversion.

    Display will lock both fields and release buffers only when both fields are displayed so you need to double to number of input buffers to display link if doing field display.

  • Hi Badri,

    I am using 8107.

    I tried to change the rules_m3.mk. and make -s dvr_rdk_bios6_all . But it still fails. Please see my  rules_m3.mk here attached.8308.rules_m3.mk.tar.gz

    The error compiling log is:

    # Making ti810x-evm:m3vpss:release:hdvpss_proxyServer...
    # Making ti810x-evm:m3vpss:release:dvr_rdk_bios6...
    # Compiling ti810x-evm:m3vpss:release:dvr_rdk: src/main_m3vpss.c
    # Compiling ti810x-evm:m3vpss:release:dvr_rdk: src/xdc2c_cfg_m3vpss.c
    # Compiling generated MAIN_APP_m3vpss_pem3.oem3
    # Linking into /home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_rdk_m3vpss_release_512M_128M.xem3...
    #
    <Linking>
    "/home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti810x-evm/m3vpss/release/dvr_rdk_configuro/linker_mod.cmd", line 215: error:
       run placement fails for object "GROUP_1", size 0xd2d954 (page 0).  Available
       ranges:
       DDR3_M3      size: 0x300000     unused: 0x1c45c4     max hole: 0x1c45b4  
    error: errors encountered during linking;
       "/home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_
       rdk_m3vpss_release_512M_128M.xem3" not built

    >> Compilation failure
    make[2]: *** [/home/user/work/dvr/d4/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_rdk_m3vpss_release_512M_128M.xem3] Error 1
    make[1]: *** [apps] Error 2
    make: *** [dvr_rdk_bios6] Error 2

    Thanks,

    zzs

  • Badri Narayanan said:

    Regarding your usecase the code you have shared above is correct (fieldMergeEncodeEnable = FALSE, DecPrm.processCallLevel = FIELD_LEVEL).

    If you want to display 60 fields you should not have DEI after decode. You should directly connect decode to display but display doesn't support 420 input by default. So you need a scalar link for 420SP to 422I conversion.

    Display will lock both fields and release buffers only when both fields are displayed so you need to double to number of input buffers to display link if doing field display.

    Hi Bardi,

    Yes, you are right. I will try it after I make the 2 fields output from decode work.

    Thank you very much,

    zzs

  • Attach the map file ../dvr_rdk/build/dvr_rdk/bin/ti810x-evm/dvr_rdk_m3vpss_release_512M_128M.xem3.map

  • Hi Badri,

     

    I did not find the attachment. Could you please help to add it?

    Do you mean you need my map file. Please see it in next post.

     

    Best regards,

    zzs

  • Hi Badri,

     

    Please find my map file here 2438.dvr_rdk_m3vpss_release_512M_128M.xem3.map.zip

     

  • The bss segment placement is failing.

    So UNDO the previous change in rules_m3.mk and then change

    dvr_rdk\mcfw\src_bios6\cfg\ti810x\link_hdvpss.cmd

    Change

    #ifndef _POWERSAVE_MODE_

     

    to

    #if 0

     

    After this change rebuild dvr rdk

  • Hi Badri,

     

    I can finish compiling now. Thank you very much.

    I will continue to test the interlaced decoder output and display.

     

    Best regards,

    zzs

  • Hi Badri,

    I have the same error when I run "make dvr_rdk_bios6".

    I have modified the script link_hdvpss.cmd to set #if 0.

    Now i don't have problems, but can you explain why it is necessary to change this define in the file ?

    The variable 810X_SAVE_POWER_MODE is set to no in the file Rules.make, thus _POWERSAVE_MODE_ is really not defined !

    Is the file link_hdvpss.cmd that is wrong ?

    Thanks