1. 20 Aug, 2017 1 commit
  2. 17 Aug, 2017 1 commit
  3. 16 Aug, 2017 2 commits
  4. 14 Aug, 2017 3 commits
  5. 11 Aug, 2017 2 commits
    • 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
      
      https://bugzilla.gnome.org/show_bug.cgi?id=783086
      36fc2a74
    • Mathieu Duponchelle's avatar
      rtpstats: fix unsigned integer comparisons. · 5e48e85f
      Mathieu Duponchelle authored
      Callers of the API (rtpsource, rtpjitterbuffer) pass clock_rate
      as a signed integer, and the comparison "<= 0" is used against
      it, leading me to think the intention was to have the field
      be typed as gint32, not guint32.
      
      This led to situations where we could call scale_int with
      a MAX_UINT32 (-1) guint32 as the denom, thus raising an
      assertion.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=785991
      5e48e85f
  6. 10 Aug, 2017 5 commits
  7. 08 Aug, 2017 1 commit
  8. 06 Aug, 2017 1 commit
  9. 02 Aug, 2017 5 commits
  10. 01 Aug, 2017 3 commits
  11. 31 Jul, 2017 1 commit
  12. 27 Jul, 2017 6 commits
  13. 25 Jul, 2017 1 commit
  14. 24 Jul, 2017 5 commits
  15. 22 Jul, 2017 1 commit
    • Nicolas Dufresne's avatar
      v4l2object: Fix colorimetry validation · 4bcec1b1
      Nicolas Dufresne authored
      While not documented, gst_video_colorimetry_matches() only accepts well
      known names. Looking at the code and unit test, this seems to be on
      purpose, so fixing by parsing the string and compating the colorimetry
      structures.
      4bcec1b1
  16. 21 Jul, 2017 2 commits
    • Nicolas Dufresne's avatar
      v4l2encoder: Fix negotiation error handling · ef633e28
      Nicolas Dufresne authored
      The subclass negotiated function will call set_format, if that fails the
      pool will not be created. We ended up with an assertion.
      
      GStreamer-CRITICAL **: gst_buffer_pool_set_active: assertion 'GST_IS_BUFFER_POOL (pool)' failed
      ef633e28
    • Nicolas Dufresne's avatar
      v4l2src: Speedup camera startup by skipping try_fmt · b3e089d4
      Nicolas Dufresne authored
      In this commit, we enabled skip_try_fmt_probes quirk in order to speed
      up the start which is known to be disastrously slow with certain USB
      cameras.
      
      This has the side effect that we needed to rewrite the entire
      negotiation process in a way that we iterate over the possible caps
      until we find one that works.
      
      The new negotiation method consist of extracting a preferred structure
      from the peer caps and using this to fixate and sort the caps. To
      reflect the old behaviour, we sort all resolution strictly bigger
      to the preferred one with the closes one first. The rest is appended,
      keeping the same order. We then normalize the caps in case there was
      some list of interlace-mode or colorimetry left. We finally iterate
      over all fixed caps and try it. 99% of the time, the first or the
      second one should work, whit the result of a single S_FMT being issues.
      
      From there, it will be relatively easy to introduce new negotiation
      algorithm. The current algorithm is made for optimal image quality
      with a scaling sink that sets it's window resolution as preference.
      This the case if for:
      
        v4l2src ! videoconvert ! videoscale ! ximagesink
      
      Other strategy would be needed to optimize for non-scaling sink like
      ximagesink or kmssink when the driver does not scale.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=785156
      b3e089d4