• jfroy's avatar
    [cast] Add optional VideoEncoder method to flush frames. · 2c176764
    jfroy authored
    This patch adds EmitFrames() to VideoEncoder. The method is documented
    as indicating that the encoder should produce all the frames that it may
    be buffering for analysis.
    
    This patch modifies VideoSender::InsertRawVideoFrame() to call
    EmitFrames() when a frames is dropped because the in-flight frames
    duration exceeds the target playout delay.
    
    This patch provides an implementation of EmitFrames() for the
    VideoToolbox H.264 encoder, which buffers frames for analysis as
    described in the bug. It also uses the existing
    max_number_of_video_buffers_used field in VideoConfig to set the
    upper bound on the encoder's frame window.
    
    BUG=450798
    R=hclam, miu, DaleCurtis, Robert Sesek
    
    Review URL: https://codereview.chromium.org/863083002
    
    Cr-Commit-Position: refs/heads/master@{#313643}
    2c176764
h264_vt_encoder.cc 20.4 KB