1. 02 Aug, 2019 5 commits
    • Antonio Ospite's avatar
      rtpsource: fix receiver source stats to consider previously queued packets · ae48646d
      Antonio Ospite authored
      When it is not clear yet if a packet relative to a source should be
      pushed, the packet is put into a queue, this happens in two cases:
        - the source is still in probation;
        - there is a large jump in seqnum, and it is not clear what
          the cause is, future packets will help making a guess.
      In either case stats about received packets are not updated at all; and
      even if they were, when init_seq() is called it resets all receiver
      stats, effectively loosing any possible stat about previously received
      Fix this by taking into account the queued packets and update the stats
      when calling init_seq().
    • Antonio Ospite's avatar
      rtpsource: clarify meaning of the octets-sent and octets-received stats · cf0ffd86
      Antonio Ospite authored
      The octets-send and octets-received stats count the payload bytes
      excluding RTP and lower level headers, clarify that in the
    • Antonio Ospite's avatar
      rtpsource: expose field bytes_received in RTPSourceStats · 82199424
      Antonio Ospite authored
      Since commit c971d1a9 (rtpsource: refactor bitrate estimation,
      2010-03-02) bytes_received filed in RTPSourceStats is set but then never
      used again, expose it so that it can be used  by user code to verify how
      many bytes have been received.
    • Antonio Ospite's avatar
      rtpmanager: consider UDP and IP headers in bandwidth calculation · 9d800cad
      Antonio Ospite authored
      According to RFC3550 lower-level headers should be considered for
      bandwidth calculation.
      See https://tools.ietf.org/html/rfc3550#section-6.2 paragraph 4:
        Bandwidth calculations for control and data traffic include
        lower-layer transport and network protocols (e.g., UDP and IP) since
        that is what the resource reservation system would need to know.
      Fix the source data to accommodate that.
      Assume UDPv4 over IP for now, this is a simplification but it's good
      enough for now.
      While at it define a constant and use that instead of a magic number.
      NOTE: this change basically reverts the logic of commit 529f443a
      (rtpsource: use payload size to estimate bitrate, 2010-03-02)
    • Seungha Yang's avatar
      qtdemux: Use empty-array safe way to cleanup GPtrArray · 4146dc90
      Seungha Yang authored
      Fix assertion fail
      GLib-CRITICAL **: g_ptr_array_remove_range: assertion 'index_ < rarray->len' failed
  2. 01 Aug, 2019 1 commit
    • Marc Leeman's avatar
      rtpmp4vpay: config-interval -1 send at idr · d365c4fd
      Marc Leeman authored
      adjust/port from rtph264pay and allow sending the configuration data at
      every IDR
      The payloader was stripping the configuration data when the
      config-interval was set to 0. The code was written in such a way !(a >
      0) that it stripped the config when it was set at -1 (send config_data
      as soon as possible).
      This resulted in some MPEG4 streams where no GOP/VOP-I was detected to
      be sent out without configuration.
  3. 27 Jul, 2019 1 commit
  4. 26 Jul, 2019 3 commits
    • Guillaume Desmottes's avatar
      gtkglsink: fix crash when widget is resized after element destruction · 5c4292b0
      Guillaume Desmottes authored
      Prevent _size_changed_cb() to be called after gtkglsink has been finalized.
      Fix #632
    • Mathieu Duponchelle's avatar
      qtdemux: fix reverse playback EOS conditions · 4830bbe6
      Mathieu Duponchelle authored
      In reverse playback, we don't want to rely on the position of the current
      keyframe to decide a stream is EOS: the last GOP we push will start with
      a keyframe, which position is likely to be outside of the segment.
      Instead, let the normal seek_to_previous_keyframe mechanism do its job,
      it works just fine.
    • Mathieu Duponchelle's avatar
      qtdemux: fix key unit seek corner case · 104f4592
      Mathieu Duponchelle authored
      If a key unit seek is performed with a time position that matches
      the offset of a keyframe, but not its actual PTS, we need to
      adjust the segment nevertheless.
      For example consider the following case:
      * stream starts with a keyframe at 0 nanosecond, lasting 40 milliseconds
      * user does a key unit seek at 20 milliseconds
      * we don't adjust the segment as the time position is "over" a keyframe
      * we push a segment that starts at 20 milliseconds
      * we push a buffer with PTS == 0
      * an element downstream (eg rtponviftimestamp) tries to calculate the
        stream time of the buffer, fails to do so and drops it
  5. 25 Jul, 2019 1 commit
  6. 22 Jul, 2019 1 commit
  7. 18 Jul, 2019 1 commit
  8. 17 Jul, 2019 1 commit
  9. 15 Jul, 2019 3 commits
  10. 09 Jul, 2019 3 commits
  11. 06 Jul, 2019 5 commits
  12. 04 Jul, 2019 1 commit
  13. 03 Jul, 2019 14 commits