1. 23 Mar, 2020 2 commits
  2. 20 Mar, 2020 8 commits
    • Matthew Waters's avatar
      qt: reorganize include defines · 818dde2e
      Matthew Waters authored
      818dde2e
    • Håvard Graff's avatar
      rtptimerqueue: remove ->num from the timer · a710bda1
      Håvard Graff authored
      This concept was only used by the "multi"-lost timer, and since that
      one is not around any longer, the "num" concept is superfluous.
      a710bda1
    • Håvard Graff's avatar
      rtpjitterbuffer: remove the concept of "already-lost" · f1ff80ce
      Håvard Graff authored
      This is a concept that only applies when a buffer arrives in the chain
      function, and it has already been scheduled as part of a "multi"-lost
      timer.
      
      However, "multi"-lost timers are now a thing of the past, making this
      whole concept superflous, and this buffer is now simply counted as "late",
      having already been pushed out (albeit as a lost-event).
      f1ff80ce
    • Håvard Graff's avatar
      rtpjitterbuffer: immediately insert a lost-event on multiple lost packets · 5dacf366
      Håvard Graff authored
      There is a problem with the code today, where a single timer will
      be scheduled for a series of lost packets, and then if the first packet
      in that series arrives, it will cause a rescheduling of that timer, going
      from a "multi"-timer to a single-timer, causing a lot of the packets
      in that timer to be unaccounted for, and creating a situation in where
      the jitterbuffer will never again push out another packet.
      
      This patch solves the problem by instead of scheduling those lost packets
      as another timer, it instead asks to have that lost-event pushed straight
      out.
      
      This very much goes with the intent of the code here: These packets are
      so desperately late that no cure exists, and we might as well get the
      lost-event out of the way and get on with it.
      
      This change has some interesting knock-on effect being presented in
      later commits. It completely removes the concept of "already-lost", so
      that is why that test has been disabled in this commit, to be
      removed later.
      5dacf366
    • Håvard Graff's avatar
      rtpjitterbuffer: rework large-gap tests · d045b40d
      Håvard Graff authored
      Make sure to set the time the buffer is supposed to arrive at, so
      as not to trigger an artificial situation.
      d045b40d
    • Håvard Graff's avatar
      rtpjitterbuffer: refactor lost_timeout code · 2fa7e6a6
      Håvard Graff authored
      Split it up in code related to the timer, (do_lost_timeout) and code
      to insert a lost-item/event and update private jitterbuffer-variables.
      2fa7e6a6
    • Håvard Graff's avatar
    • Dmitriy Purgin's avatar
      gstqmlgl: Link to opengl32.lib on MinGW · 40a82104
      Dmitriy Purgin authored
      40a82104
  3. 19 Mar, 2020 6 commits
    • Seungha Yang's avatar
      qtmux: Fix build warning · 4f443c81
      Seungha Yang authored
      gstqtmux.c(644): warning C4133: '=':
        incompatible types - from 'gboolean (__cdecl *)(GstAggregator *,GstAggregatorPad *,GstEvent *)'
        to 'GstFlowReturn (__cdecl *)(GstAggregator *,GstAggregatorPad *,GstEvent *)'
      4f443c81
    • Jan Schmidt's avatar
      splitmuxsink: Reset cleanly for reuse · c5181c23
      Jan Schmidt authored
      Reset the splitmuxsink completely when changing states so that
      it can be reused.
      
      Fixes gstreamer/gst-plugins-bad#1241
      c5181c23
    • Zebediah Figura's avatar
      mpegaudioparse: Use a constant bit rate to convert between time and bytes if possible. · 71bb53a6
      Zebediah Figura authored
      This should result in no worse accuracy than the base parse element, and may
      result in better accuracy. In particular, the number of bytes processed at any
      given point, as accumulated by baseparse, can be only accurate to
      (1 / # of frames) bytes per second, and if we try to seek immediately after
      pausing the pipeline to a large offset, this small inaccuracy can propagate to
      something noticeable.
      
      The use case that prompted this patch is a 45-minute MPEG-1 layer 3 file, which
      has a constant bit rate but no seek tables. Trying to seek the pipeline
      immediately after pauisng it, without the ACCURATE flag, to a location 41
      minutes in, yields a location that is, even with <gstreamer!374>,
      still audibly incorrect. This patch yields a much closer position, no longer
      audibly incorrect, and likely within a frame of the most correct position.
      71bb53a6
    • Mathieu Duponchelle's avatar
      qtmux: fix renegotiation check · 56e5243f
      Mathieu Duponchelle authored
      By the time sink_event is called, the pad's current caps have
      already been updated. To address this, implement sink_event_pre_queue,
      and check if the pad can be renegotiated there.
      
      Fixes #707
      56e5243f
    • Seungha Yang's avatar
      splitmuxsink: Decouple keyframe request and the decision for fragmentation · 18e09de0
      Seungha Yang authored
      Split the decision for keyframe request and fragmentation in order to
      ensure periodic keyframe request.
      18e09de0
    • Matthew Waters's avatar
      qt: add a qml overlay filter element [part 2] · 7a25fb5b
      Matthew Waters authored
      It takes a qml scene description and renders it using a possible input
      stream.
      
      Currently supported on GLX and WGL.
      
      Follow up to (as that MR had an old version of the commit):
      - gstreamer/gst-plugins-good!475
      - 4778d716: qt: add a qml overlay filter element
      7a25fb5b
  4. 18 Mar, 2020 5 commits
  5. 16 Mar, 2020 19 commits