1. 24 Nov, 2018 1 commit
  2. 23 Nov, 2018 1 commit
  3. 21 Nov, 2018 2 commits
    • Nicolas Dufresne's avatar
      v4l2: Properly fix Android build · 3b22a604
      Nicolas Dufresne authored
      The previous patch did not even compile on any possible platform or C
      standard. That commit also didn't have a proper commit message.
      Android ships Linux with a different signature for ioctl. They first
      released an ioctl with int as request type, and later "fixed" it by
      adding an override with unsign, which is still not matching Linux and
      BSD implementation which uses unsigned long int.
    • Xavier Claessens's avatar
      Fix ioctl() signature on Android · 0e2d0ada
      Xavier Claessens authored
  4. 19 Nov, 2018 2 commits
    • Xavier Claessens's avatar
    • Arun Raghavan's avatar
      pulse: Expose the correct max rate that we support · a24ef929
      Arun Raghavan authored and Arun Raghavan's avatar Arun Raghavan committed
      PulseAudio defines PA_RATE_MAX as the maximum sampling rate that it
      supports. We were previously exposing a maximum rate of INT_MAX, which
      is incorrect, but worked because nothing was really using a rate greater
      than 384000 kHz.
      While playing DSD data, we hit a case where there might be very high
      sample rates (>1MHz), and pulsesink fails during stream creation with
      such streams because it erroneously advertises that it supports such
      Since PA_RATE_MAX is #define'd to (8*48000U), we can't just use it in
      the caps string. Instead, we fix up the rate to what we actually support
      whenever we use our macro caps.
  5. 15 Nov, 2018 1 commit
  6. 13 Nov, 2018 2 commits
  7. 12 Nov, 2018 2 commits
  8. 08 Nov, 2018 1 commit
    • Nicolas Dufresne's avatar
      v4l2object: Read driver selected interlace mode · dbaca549
      Nicolas Dufresne authored
      If there was no interlace-mode field in the caps. Read back the value
      selected by the driver. This way, if the driver does not support
      progressive, then it will automatically negotiate the returned mode
      unless this mode is not supported by GStreamer.
      This method was already used for colorimetry. Just like colorimetry, the
      interlace mode is not longer probed by v4l2src dues to performance
      Fixes #511
  9. 07 Nov, 2018 3 commits
  10. 05 Nov, 2018 4 commits
  11. 01 Nov, 2018 1 commit
  12. 28 Oct, 2018 6 commits
  13. 27 Oct, 2018 3 commits
    • Alicia Boya García's avatar
      qtmux: round to nearest when computing mehd and tkhd duration · 5fcb7f71
      Alicia Boya García authored and Sebastian Dröge's avatar Sebastian Dröge committed
      This fixes a bug where in some files mehd.fragment_duration is one unit
      less than the actual duration of the fragmented movie, as explained below:
      mehd.fragment_duration is computed by scaling the end timestamp of
      the last frame of the movie in (in nanoseconds) by the movie timescale.
      In some situations, the end timestamp is innacurate due to lossy conversion to
      fixed point required by GstBuffer upstream.
      Take for instance a movie with 3 frames at exactly 3 fps.
      $ gst-launch-1.0 -v videotestsrc num-buffers=3 \
        ! video/x-raw, framerate="(fraction)3/1" \
        ! x264enc \
        ! fakesink silent=false
      dts: 999:59:59.333333334,  pts: 1000:00:00.000000000, duration: 0:00:00.333333333
      dts: 999:59:59.666666667,  pts: 1000:00:00.666666666, duration: 0:00:00.333333334
      dts: 1000:00:00.000000000, pts: 1000:00:00.333333333, duration: 0:00:00.333333333
      The end timestamp is calculated by qtmux in this way:
      end timestamp = last frame DTS + last frame DUR - first frame DTS =
        = 1000:00:00.000000000 + 0:00:00.333333333 - 999:59:59.333333334 =
        = 0:00:00.999999999
      qtmux needs to round this timestamp to the declared movie timescale, which can
      ameliorate this distortion, but it's important that round-neareast is used;
      otherwise it would backfire badly.
      Take for example a movie with a timescale of 30 units/s.
      0.999999999 s * 30 units/s = 29.999999970 units
      A round-floor (as it was done before this patch) would set fragment_duration to
      29 units, amplifying the original distorsion from 1 nanosecond up to 33
      milliseconds less than the correct value. The greatest distortion would occur
      in the case where timescale = framerate, where an entire frame duration would
      be subtracted.
      Also, rounding is added to tkhd duration computation too, which
      potentially has the same problem.
    • Marc Leeman's avatar
      udpsrc: print information about bind_error socket error · 827d70da
      Marc Leeman authored and Sebastian Dröge's avatar Sebastian Dröge committed
      In some cases, a bind error occurs during operation. Printing
      the information about the problem is critical for finding the
    • Johan Bjäreholt's avatar
  14. 24 Oct, 2018 5 commits
  15. 22 Oct, 2018 2 commits
  16. 21 Oct, 2018 1 commit
  17. 20 Oct, 2018 2 commits
  18. 19 Oct, 2018 1 commit
    • Seungha Yang's avatar
      qtdemux: Don't switch active streams and old streams ... · 05bd25ea
      Seungha Yang authored and Edward Hervey's avatar Edward Hervey committed
      ... before the old streams is not exposed yet for MSS stream.
      In case of DASH, newly configured streams will be exposed
      whenever demux got moov without delay.
      Meanwhile, since there is no moov box in MSS stream,
      the caps will act like moov. Then, there is delay for exposing new pads
      until demux got the first moof.
      So, following scenario is possible only for MSS but not for DASH,
      STREAM-START -> CAPS -> (configure stream but NOT EXPOSED YET)
      -> STREAM-START-> CAPS (configure stream again).
      In above scenario, we can reuse old stream without any stream reconfigure.