Ticket #2103 (closed enhancement: fixed)

Opened 9 months ago

Last modified 4 months ago

Green screen in the beginning of video call

Reported by: nanang Owned by: nanang
Priority: normal Milestone: release-2.8
Component: pjmedia-audiodev Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description

In YUV format, if the buffer is all zero, it will be displayed as green (as compared to RGBA format, where it will be black). Unfortunately currently buffer is initialized with zero. As most video codecs uses I420 format, perhaps it is better to have special initialization for I420 so the screen will be black.

The allocation and initialization of frame buffer is done in pjmedia/src/pjmedia/vid_port.c, in function pjmedia_vid_port_create().

Change History

comment:1 Changed 4 months ago by nanang

  • Status changed from new to closed
  • Resolution set to fixed

In 5862:

Close #2103: Initiate video port frame buffer with black for I420 & YV12 formats.

comment:2 Changed 4 months ago by ming

In 5866:

Re #2103: Move the black screen initialization of the renderer to pjmedia_vid_port_start() instead

comment:3 Changed 4 months ago by ming

In 5867:

Re #2103: Darwin's capture device is passive, thus the video port's clock will fetch the frames much earlier than when the device is ready, getting zero frames and resulting in green screen on the remote side.

comment:4 Changed 4 months ago by ming

In 5868:

Re #2103:
A couple of improvements:

  • Now initialize both video port's renderer AND capture buffer
  • Support RGB format as well.

Known limitation: YUV currently only supports I420 and YV12

Note: See TracTickets for help on using tickets.