02-01-2021 09:10 PM
I have a query regarding the behavior of Frame Buffer Write when a broken stream is presented to it.
For instance, a video stream of resolution 800x600 will consist of 600 End of line (tlast) signals between of Start of Frame (tuser) signals. Suppose a data loss occurs before the entire frame is sent. So instead of receiving 600 End of Line (tlast) signals the Frame Buffer write received only 500 signals after which the new frame (Start of Frame) was received.
The Frame Buffer product guide, mentions that an interrupt is generated once the complete frame is received. Whether the interrupt wont be generated for the incomplete frame and then the buffer will restart the logic and generate the interrupt for the new frame which is completely received.
Note: I am not clear as to what factor is used for checking if a complete frame is received. In this query I have tried to mention it with the help of the number of End of Line signals received and have not taken into consideration the Pixel Valid (tvalid) signals to depict the scenario where an entire line of data is always received.
I hope I was able to mention my query clearly.
Reason for the query:
My application store the video frames into the DDR with the help of Frame Buffer, which are then read and given out as HDMI interface. The input video interface is independent of the video out path i.e. it can be reset at anytime there by resulting in incomplete video transmission. I re-configure the frame buffer whenever the input video interface goes through a reset cycle. I wanted to avoid the re-configuration process in my application and hence tried to check the video output behavior. I observed that the first frame after the reset will have some black portion and after that the new frame used to display properly without any shifting or glitches.
I am not sure whether is a definite behavior or may vary from time to time.
Would be really helpful if anyone could be able to explain the behavior of the Frame Buffer IP in such a scenario.
Thanks and Regards,
02-18-2021 03:36 AM
The behaviour is not documented so you should consider that this is an undefined behaviour.
The recommendation should be to reset the video frame buffer if there is a partial frame or a resolution changes