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.

Question about McFW link in/out frame format in dvrrdk4.0!!



Hi,

I'm using dm8168evm ,dvrrdk4.00's demo_vdec_vdis.c.From the ahead of the file, we know that the output dataformat of swmasiclink is YUV422I by default. Through the fivd.h  at line 976,i know that for YUV422I datafomat,

Representation of YUV422 Interleaved Buffer:
Field 0 YUV -> addr[0][0], Field 1 YUV -> addr[1][0];

my questions are followed :

(1)From the print information i only got one field(frame->fid =0) of the picture .In the file of displayLink_drv.c i fond that 

pFrame->addr[1][0] =
(UInt8 *) pFrame->addr[0][0] + pitch0;
pFrame->addr[1][1] =
(UInt8 *) pFrame->addr[0][1] + pitch1;

does it mean only one field of picture are sent in McFW?? Field 1 is only the copy of Field 0 with certainly offset??

(2)i use CCS ,and get some frame information from displaylink where the displaylink get the frame from swmasic .

from the picture  above ,the two address just as  Formula pFrame->addr[1][0] =
(UInt8 *) pFrame->addr[0][0] + pitch0 does,where pitch0 =3840;

if addr[1][0] means the Field 1 ,but to a picture of 1920*1080,Field 0's data from  addr[0][0] is already overlap with Field 1 which starts at addr[1][0],which confused me a lot ?  

(3)when i configure the swmasiclink's output dataformate to SYSTEM_DF_YUV420SP_UV,and chose swMsInstId=SYSTEM_SW_MS_SC_INST_VIP0_SC; the swmasiclink's creating is oK,but the program is abssert  during at displaylink creating procedure .does displaylink not support YUV420SP input dataformate??

thanks ahead !!

  • Would anyone help me out ???

              

  • Swms outputs frames not fields.For progressive frames ,field 1 addr is not used by displayDriver.

    For interlaced field content ,they may be field seperated or field interleaved.For field interleaved the odd field is at offset of pitch from even field.What you are seeing in ccs is field interleaved configuration 

    DisplayLink doesnt support YUV420SP display by default.It requires changes to displayController and use of different display configuration to support yuv420sp display

  • hi Badri 

        thanks for your replay.

       where should i configure to diplay the YUV420SP dataformate using off-chip HDMI interface??

       As you said that what I have seen  in ccs is field interleaved configuration ,how can you explain what i asked in the Question (2) ???

     

     

  • Refer  this post for display controller changes to display YUV420SP .CHanges are for on chip HDMI . You have to do similar changes for DVO2. http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/310208/1083527.aspx#1083527

    What is your question (2). I have already explained that

    field1 addr = field 0 addr + pitch in field interleaved configuration.

    pitch = 3840 since output buffer of swms is 1920 width and is in YUV422I format which means pitch is width * 2 = 3840

  • hi Badri ;

     i have change the multich_vdec_vdis.c what you have said .but i got the following problem. 

     [m3vpss ] 11232:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:947::errorCondition:((Avsync_mapDisplayLinkID2Index(cfg->displayLinkID) < AVSYNC_MAX_NUM_DISPLAYS) && (cfg->numCh < AVSYNC_MAX_CHANNELS_PER_DISPLAY) && (cfg->videoSynchLinkID != SYSTEM_LINK_ID_INVALID) && ((cfg->syncMasterChnum < AVSYNC_MAX_CHANNELS_PER_DISPLAY) || (AVSYNC_INVALID_CHNUM == cfg->syncMasterChnum)))

    how???

  • After what change are you seeing this ? Error indicates your app is wrong setting avsync configuration.

  • I did what you said in the link :

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/310208/1083527.aspx#1083527

    to change the swmasic output to YUV420SP, so that the demo_vdec_vdis.c demo can display YUV420SP dataformate .

  • That change cannot cause such an error . It looks like you have modified the swms nextLink from display to something else. I doubt you have done the   changes correctly as the chanegs in the post are for HDMI and not DVO2 . Why are you trying to change display to YUV420SP ?

  • hi Badri

           I want to  change  the muti-channel input video data to a single channel output, just  like the swmasic does ,that muti-ch frame are recontructed based on the swmasic layout . After that i want  to send the  constructed  frame to encodelink to do H264 codec.

            I have tried to  add the following links after swmasiclink ,

    dei->ipcOutVpss->ipcInVideo->enc->ipcBitsOutRTOS->ipcBitsInHLOS. 

    Can I use the links like that  ? any suggestion ?

  • If you want to encode output of swms your data flow should be

    swms -> dup -> display

                             -> nsf -> ipcOutVpss->ipcInVideo->enc->ipcBitsOutRTOS->ipcBitsInHLOS

  • Hi  Badri :

      Sorry for late reply !

       I have built the link according  what you have said ,but now i couldn't get the encode data from A8 side .

    From the print log ,i found that  the enclink only process the certain numbers of buffers that enc-channel have . 

    and what's more , you have said that the dataformate from swmasic link is Field interlaved , but from the enclink struction of  VCODEC_VideoLayout,which says that it only support the VCODEC_FIELD_SEPARATED tyoe .

    i just configure the enclink createargs according Muti_vcap_venc_vdis.c. where i goes wrong ????

     

    thanks a lot !!

      

  • RWTH said:
    From the print log ,i found that  the enclink only process the certain numbers of buffers that enc-channel have

    This means your application is not freeing bitstream buffer back to ipcBitsInLink.

    RWTH said:
    and what's more , you have said that the dataformate from swmasic link is Field interlaved , but from the enclink struction of  VCODEC_VideoLayout,which says that it only support the VCODEC_FIELD_SEPARATED tyoe .

    VideoLayout is don't care when content is progressive. It makes difference only for interlaced content.

  • hi Badri,

     thanks for all your reply ,i made it .