• George Kiagiadakis's avatar
    vpxenc: discard frames that have been dropped by libvpx · 36fc2a74
    George Kiagiadakis authored
    This fixes a memory leak. When dropframe-threshold has been set,
    libvpx may output less frames than the input ones, which causes
    some GstVideoCodecFrames to queue up in GstVideoEncoder's internal
    frame queue with no chance of ever being all released. And because
    the frames keep references to the input buffers, the input buffer
    pool keeps allocating new buffers and memory usage grows very fast.
    For example the following pipeline's memory usage grows at a rate
    of about 1GB per minute!
    videotestsrc ! capsfilter caps=video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 ! \
      vp8enc target-bitrate=1000000 end-usage=cbr dropframe-threshold=95 ! fakesink
gstvpxenc.c 67.4 KB