1. 17 Feb, 2020 3 commits
  2. 11 Feb, 2020 10 commits
  3. 10 Feb, 2020 1 commit
    • Haihao Xiang's avatar
      msdkvp9enc: output raw vp9 stream instead of IVF stream · 50ae5061
      Haihao Xiang authored
      video/x-vp9 is required in the src pad, however the output includes a
      IVF header, which makes the pipeline below doesn't work
      
        gst-launch-1.0 videotestsrc ! msdkvp9enc ! msdkvp9dec ! fakesink
      
      Since mfx 1.26, the VP9 encoder supports bitstream without IVF header,
      so in this patch, the mfx version is checked and msdkvp9enc is enabled
      only if mfx 1.26+ is available
      50ae5061
  4. 08 Feb, 2020 4 commits
  5. 07 Feb, 2020 3 commits
    • Ederson de Souza's avatar
      avtp: Build with clang · 91696660
      Ederson de Souza authored
      Minor non-conformity on AVTP code made it not compile with clang.
      91696660
    • Ederson de Souza's avatar
      avtp: Plug several leaks · f1976e0d
      Ederson de Souza authored
      After finally running tests with valgrind enabled, some leaks were found
      - both on code and on tests themselves. This patch plugs them all!
      f1976e0d
    • Ludvig Rappe's avatar
      gstcurlhttpsink: Update HTTP header for curl 7.66 · 2d585f2b
      Ludvig Rappe authored
      Change how content-length is set for HTTP POST headers, letting curl set
      the header (given the content-length) instead of manually writing it.
      This enables curl to know the content-length of the data.
      In curl 7.66, if curl does not know the content-length (e.g. when
      manually writing the header) curl will use Transfer-Encoding: chunked,
      which might not be desired.
      2d585f2b
  6. 06 Feb, 2020 3 commits
  7. 05 Feb, 2020 16 commits
    • Andre Guedes's avatar
      avtpsink: Implement synchronization mechanism · 352bf28a
      Andre Guedes authored
      The avtpsink element is expected to transmit AVTPDUs at specific times,
      according to GstBuffer timestamps. Currently, the transmission time is
      controlled in software via the rendering synchronization mechanism
      provided by GstBaseSink class. However, that mechanism may not cope with
      some AVB use-cases such as Class A streams, where AVTPDUs are expected
      to be transmitted at every 125 us. Thus, this patch introduces avtpsink
      own mechanism which leverages the socket transmission scheduling
      infrastructure introduced in Linux kernel 4.19.  When supported by the
      NIC, the transmission scheduling is offloaded to the hardware, improving
      transmission time accuracy considerably.
      
      To illustrate that, a before-after experiment was carried out. The
      experimental setup consisted in 2 PCs with Intel i210 card connected
      back-to-back running an up-to-date Archlinux with kernel 5.3.1. In one
      host gst-launch-1.0 was used to generate a 2-minute Class A stream while
      the other host captured the packets. The metric under evaluation is the
      transmission interval and it is measured by checking the 'time_delta'
      information from ethernet frames captured at the receiving side.
      
      The table below shows the outcome for a 48 kHz, 16-bit sample, stereo
      audio stream. The unit is nanoseconds.
      
             |   Mean |   Stdev |     Min |     Max |   Range |
      -------+--------+---------+---------+---------+---------+
      Before | 125000 │    2401 │  110056 │  288432 │  178376 |
      After  | 125000 │      18 │  124943 │  125055 │     112 |
      
      Before this patch, the transmission interval mean is equal to the
      optimal value (Class A stream -> 125 us interval), and it is kept the
      same after the patch.  The dispersion measurements, however, had
      improved considerably, meaning the system is now consistently
      transmitting AVTPDUs at the correct time.
      
      Finally, the socket transmission scheduling infrastructure requires the
      system clock to be synchronized with PTP clock so this patches modifies
      the AVTP plugin documentation to cover how to achieve that.
      352bf28a
    • Andre Guedes's avatar
      avtpsink: Prepare code to new synchronization mechanism · 4f0dc8cf
      Andre Guedes authored
      This patch refactors gst_avtp_sink_start() by moving all socket
      initialization code to its own function. This change prepares the code
      to the next patch which will introduce avtpsink's own rendering
      synchronization mechanism.
      4f0dc8cf
    • Andre Guedes's avatar
      avtpsink: Remove SOCK_NONBLOCK from avtpsink · cd03c48f
      Andre Guedes authored
      Current avtpsink code opens the AF_PACKET socket with SOCK_NONBLOCK
      option. However, we actually want sendto() to block in case there isn't
      available space in socket buffer.
      cd03c48f
    • Andre Guedes's avatar
      avtp: Refactor if_index code · e74c8076
      Andre Guedes authored
      This patch refactors both avtpsink and avtpsrc code so we use the
      if_nametoindex() helper instead of building a request and issuing an
      ioctl to get the if_index.
      e74c8076
    • Seungha Yang's avatar
      d3d11window: Clear cached buffer per new caps · 478fb299
      Seungha Yang authored
      d3d11window holds one buffer to redraw client area per resize event.
      
      When the input format is being changed, this buffer should be cleared
      to avoid mismatch beween newly configured shader/videoprocessor and
      the format of previously cached buffer.
      478fb299
    • Sebastian Dröge's avatar
    • Seungha Yang's avatar
      d3d11decoder: Use consistent resolution between output caps and video meta · 371b1812
      Seungha Yang authored
      h264/h265 decoded buffer might have crop area then we need to
      adjust video meta based on the padding space
      371b1812
    • Seungha Yang's avatar
      2f32f30b
    • Seungha Yang's avatar
      d3d11decoder: Add support for zero-copy playback · f852ce01
      Seungha Yang authored
      When downstream support d3d11 memory with forward playback case,
      expose decoder output view memory objects without copying.
      f852ce01
    • Seungha Yang's avatar
      d3d11decoder: Create decoder output view whenever it's required · 69f7f958
      Seungha Yang authored
      Whatever the reason, buffer in pool might be freed then we need to
      configure decoder output views again.
      69f7f958
    • Seungha Yang's avatar
      d3d11decoder: Need to zero initilized for g_once · 567575e3
      Seungha Yang authored
      A vairable to be used for g_once, it should be zero initialized
      567575e3
    • Seungha Yang's avatar
      d3d11allocator: Work as if buffer pool when running on texture array mode · 8ff667e4
      Seungha Yang authored
      Because the size of texture array cannot be updated dynamically,
      allocator should block the allocation request. This cannot be
      done at buffer pool side if this d3d11 memory is shared among
      multiple buffer objects. Note that setting NO_SHARE flag to
      d3d11 memory is very inefficient. It would cause most likey
      copy of the d3d11 texture.
      8ff667e4
    • Seungha Yang's avatar
      d3d11videosink: Fix fallback buffer copy · 4d02858f
      Seungha Yang authored
      Since we don't use dynamic texture now, cpu access to the fallback
      texture should not happen.
      4d02858f
    • Seungha Yang's avatar
      d3d11window: Don't create swapchain again per caps change · 2aa9f0bd
      Seungha Yang authored
      Creating swapchain is relatively heavy operation. If output dxgi format
      is not being chagned, we don't need to destroy and create swachain again.
      2aa9f0bd
    • Seungha Yang's avatar
      d3d11window: Invoke initial resize method from baseclass · c1d2d917
      Seungha Yang authored
      ... instead of calling from subclass in order for baseclass to handle
      more things between swapchain creation and resource creation.
      c1d2d917
    • Seungha Yang's avatar
      d3d11videosink: Use ID3D11VideoProcessor interface · 7aad9187
      Seungha Yang authored
      ...for color space conversion if available
      
      ID3D11VideoProcessor is equivalent to DXVA-HD video processor
      which might use specialized blocks for video processing
      instead of general GPU resource. In addition to that feature,
      we need to use this API for color space conversion of DXVA2 decoder
      output memory, because any d3d11 texture arrays that were
      created with D3D11_BIND_DECODER cannot be used for shader resource.
      
      This is prework for d3d11decoder zero-copy rendering and also
      for conditional HDR tone-map support.
      Note that some Intel platform is known to support tone-mapping
      at the driver level using this API on Windows 10.
      7aad9187