Video output lost when redrawing the application UI during playback on S60 5th Edition (Known Issue)
S60 5th Edition
SetDisplayWindowL() sets the display window. This is used to provide the video controller with an area of the display to render the current video frame. It can be used to set the size and reset the size before or while playing any video file. Calling DrawDeferred() after SetDisplayWindowL causes undesired effects as the DrawDeferred() function draws the control with low priority.
This issue can be checked with any video playback application that uses CVideoPlayerUtility.
There is a problem when DrawDeferred() or DrawNow() is called after SetDisplayWindowL() during the playback of a video file. When DrawDeferred() is called, the application rectangle is drawn and it redraws the area in which the video is being played. Hence the video will disappear (audio still works). When the framework draws the screen again, the video reappears (for example, when Options is pressed, or when the screen is touched). DrawDeferred() cannot be called before and after SetDisplayWindowL() because it is up to WindowServer to decide when the drawing of the control has to be done, as it is of low priority.
DrawNow() is used for drawing the control with high priority, and if any controls need to be added it can be called before the SetDisplayWindowL() method.