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.

8148隔行压缩的文件解压缩问题

专家您好,我在8148开发板上264压缩文件解码并编码。在运行中我发现对于原来是逐行压缩的264文件,程序运行正确,但对于原来是隔行压缩的264文件,程序不停出现错误信息。对于逐行或隔行我只是修改了ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =  SYSTEM_SF_INTERLACED或是SYSTEM_SF_PROGRESSIVE,其它都没变。而且,这两个264文件在雷霄骅的PC端解码程序ffplaymfc中解压播放都是正确的。请问对于隔行压缩的264文件还要做什么特殊处理吗?谢谢!

以下为我程序运行错误时的信息:

root@dm814x:/media/mmcblk0p1# ./dec_enc.out video.h264 720 288

Width=720, height=288

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

 1: SYSTEM: IPC init in progress !!!

 15: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!

 15: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!

 15: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!

 15: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!

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

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

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

 22: SYSTEM: Opening MsgQ [DSP_MSGQ] ...

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

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

 24: SYSTEM: Notify register to [DSP] line 0, event 15 ...

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

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

 26: SYSTEM: IPC init DONE !!!

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

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

 31: SYSTEM: ListElem Shared Addr = 0x40782680

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

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

 36: SYSTEM: ListElem Shared Addr = 0x407b9480

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

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

 42: SYSTEM: ListElem Shared Addr = 0x407f0280

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

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

 46: SYSTEM: ListElem Shared Addr = 0x40833580

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

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

 51: SYSTEM: ListElem Shared Addr = 0x40876880

 74: SYSTEM: System Common Init Done !!!

fp=0x1bbb28

 75: MCFW  : CPU Revision [ES2.1] !!!

[HOST]

ThreadName:IpcBitsOutLink_tskMain_30000018,ThreadID:618

 

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

 

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

 [host]

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

 

 [host] IPCBITSOUTLINK:Translated Addr Virt:0x40c88080 To Phy:0x88000080

 [host]

###Bit buff of size from the SR # 1 : 1036800 / bufsize 207360, maxQueueDepth 50

 

 [host] ###Bit buff BasePtr: 40C88080 / PhyAddr 88000080

 

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

[HOST]

ThreadName:IpcBitsOutLink_periodicTaskFxn_30000018,ThreadID:627

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

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

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

 [m3video] linkId is : 0x30000018

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

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

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

 [m3video] linkId is : 0x1000001a

 [m3video] DECLINK_H264:HEAPID:0        USED:4264

 [m3video] DECLINK_H264:HEAPID:3        USED:3289088

 [m3video]  6877: DECODE: Creating CH0 of 720 x 288 [INTERLACED ] [NON-TILED  ],target bitrate = 2000 Kbps ...

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

 [m3video] DECLINK:HEAPID:0     USED:4304

 [m3video] DECLINK:HEAPID:3     USED:17739776

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

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

 [m3video] linkId is : 0x10000022

 [m3video] ENCODE: pObj->inQueInfo.numCh = 1

 [m3video]  6894: ENCODE: Creating CH0 of 720 x 288, pitch = (896, 896) [INTERLACED ] [NON-TILED  ], bitrate = 2000 Kbps, I-P Interval 1...

 [m3video] dataFormat: 7

 [m3video] EncLinkH264_algCreate 0

 [m3video] EncLinkH264_algCreate 1

 [m3video] EncLinkH264_algCreate 2

 [m3video] EncLinkH264_algCreate 3

 

 [host] IpcBitsInLink_tskMain:Entered[HOST]

ThreadName:IpcBitsInLink_tskMain_3000001a,ThreadID:616

 

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

 

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

 

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

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

 

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

 

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

 

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

[HOST]

ThreadName:IpcBitsInLink_periodicTaskFxn_3000001a,ThreadID:628

Open the file:video.h264

 [m3video] ENCLINK_H264:HEAPID:0        USED:11912

 [m3video] ENCLINK_H264:HEAPID:3        USED:1941504

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

[HOST]

ThreadName:SystemLink_tskMain_3000003f,ThreadID:625

 [m3video] ENCLINK:HEAPID:0     USED:11952

 [m3video] ENCLINK:HEAPID:2     USED:829440

 [m3video] ENCLINK:HEAPID:3     USED:1941504

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

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

 [m3video] linkId is : 0x10000021

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

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

 [m3video] ALGPROCESS FAILED:STATUS

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

 [m3video] Sequence called number 1

 [m3video]  6937: DECODE: CH0: Decoder flush needed (2129921)!!!

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

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

 [m3video] ALGPROCESS FAILED:STATUS

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

 [m3video] Sequence called number 2

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

 [m3video] ALGPROCESS FAILED:STATUS

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

 [m3video] Sequence called number 3

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

 [m3video] ALGPROCESS FAILED:STATUS

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

......

  • 你好,

    请问你使用的是DVR RDK 4.01么?如果是,请参考DM81xx_DVR_RDK_Interlace_UseCaseGuide.pdf的信息:
    • With link API – set processCallLevel = VDEC_FIELDLEVELPROCESSCALL
    • With MCFW API, – set fieldPicture = TRUE
  • 谢谢您的回答,目前隔行压缩文件解码后直接进行显示已正确,但解码后再编码形成的压缩文件解码后显示,左边和上边各有一条区域不对,其余部分显示正确。我的dec link后面直接是enc link,不知道这样对不对,中间要不要加一个其它什么link中转一下。请您不吝赐教,谢谢!
  • 你好,

    请看一下IVAHD h264dec user guide里面的A.3 Interlaced Picture Format,应该和输出buffer的picLumaBufferAddr,picChromaBufferAddr,imageRegion和activeRegion有关。
  • 您好,我看了您提到的文章了,也大体明白了dec后buffer的结构,这和我最后得到的图像左边和上面有一条是吻合的,但我是用link实现的,dec link后面直接跟enc link,上面提到buffer的结构对我来说完全是透明的,我就是明白了buffer的结构,也不知道在哪儿怎么改呀?请专家再提供一些建议,非常感谢!
  • 您好,我在dec link后面加ipc out link(video)和ipc in link(vpss)到vpss,在vpss上做swms link,然后加ipc out link(vpss)和ipc in link(video)再回到video,然后再做enc link结果就对了,我想问是不是非得这样转一圈,dec link后面直接跟enc link怎么就不行呢?谢谢!