1. 09 Sep, 2021 4 commits
    • Daniel Almeida's avatar
      codecs: gstvp9statefulparser: feature_data should be 0 if feature_enable is 0 · b8c826af
      Daniel Almeida authored
      The spec says in 6.2.11 that feature_data[i][j] should be zero if
      feature_enabled[i][j] is zero. Instead we retained the old value in the parser.
      Fix it.
      
      Part-of: <!2449>
      b8c826af
    • Marek Vasut's avatar
      gsth264parser: Fix handling of NALs with emulation byte set · 8239ff34
      Marek Vasut authored
      In case a set of NALs with emulation_prevention_three_byte is decoded using
      hardware decoder like Hantro G1, wrong struct v4l2_ctrl_h264_decode_params
      .dec_ref_pic_marking_bit_size is passed into the kernel, which results in
      decoding artifacts. Subtract the number of emulation three bytes from the
      .dec_ref_pic_m->bit_size to get the correct bit size and avoid having these
      artifacts. Apply the exact same fix to slice->pic_order_cnt_bit_size as well.
      
      The following NALs (7, 8, 6, 5) decode with artifacts,
      .dec_ref_pic_marking_bit_size is set to 10 without this patch.
      00000000  00 00 00 01 27 4d 00 20  89 8b 60 3c 04 bf 2e 02  |....'M. ..`<....|
      00000010  d4 18 04 18 c0 c0 01 77  00 00 5d c1 7b df 05 00  |.......w..].{...|
      00000020  00 00 01 28 ee 1f 20 00  00 01 06 05 10 b9 ed b9  |...(.. .........|
      00000030  30 5d 21 4b 71 83 71 2c  10 a3 14 bb 29 80 00 00  |0]!Kq.q,....)...|
      00000040  01 25 b8 00 05 00 00 03  03 7f fa 78 1e e7 fd fe  |.%.........x....|
                               ^^^^^^^^^^^^--- emulation 3 byte
      00000050  b4 62 7a 31 ff 7d 81 fd  26 d8 62 b6 d6 25 46 ae  |.bz1.}..&.b..%F.|
      
      The following NALs (7, 8, 6, 5) decode fine,
      .dec_ref_pic_marking_bit_size is set to 2 without this patch.
      00000000  00 00 00 01 27 4d 00 20  89 8b 60 3c 04 bf 2e 02  |....'M. ..`<....|
      00000010  d4 18 04 18 c0 c0 01 77  00 00 5d c1 7b df 05 00  |.......w..].{...|
      00000020  00 00 01 28 ee 1f 20 00  00 01 06 05 10 b9 ed b9  |...(.. .........|
      00000030  30 5d 21 4b 71 83 71 2c  10 a3 14 bb 29 80 00 00  |0]!Kq.q,....)...|
      00000040  01 25 b8 00 04 c0 00 03  7f fa 78 1e e7 fd fe b4  |.%........x.....|
      00000050  62 7a 31 ff 7d 81 fd 26  d8 62 b6 d6 25 46 ae ce  |bz1.}..&.b..%F..|
      
      Fixes: d0d65fa8 ("codecparsers: h264: record dec_ref_pic_marking() size")
      Fixes: 0cc7d6f0
      
       ("codecparsers: h264: record pic_order_cnt elements size")
      Signed-off-by: Marek Vasut's avatarMarek Vasut <marex@denx.de>
      Part-of: <!2517>
      8239ff34
    • Aaron Boxer's avatar
      gsth264parser: reject memory management control op greater than 6 · 15d724e6
      Aaron Boxer authored
      This prevents assertion from being thrown in
      gst_h264_dpb_perform_memory_management_control_operation
      if corrupt NAL has a control op greater than 6
      
      Part-of: <!2508>
      15d724e6
    • Ung, Teng En's avatar
  2. 08 Sep, 2021 1 commit
  3. 06 Sep, 2021 1 commit
    • Jan Schmidt's avatar
      mpeg2enc: Only allow 1 pending frame for encoding · 640aad2b
      Jan Schmidt authored
      Having an unlimited input queue is very bad if the
      encoder can't run at real-time. Eventually it will
      consume all RAM. I don't really see any reason to
      have more than 1 outstanding encoded frame, so
      remove the queue and limit things to 1 pending frame.
      
      Part-of: <!2499>
      640aad2b
  4. 03 Sep, 2021 3 commits
  5. 02 Sep, 2021 1 commit
  6. 31 Aug, 2021 3 commits
  7. 30 Aug, 2021 1 commit
  8. 27 Aug, 2021 5 commits
  9. 26 Aug, 2021 2 commits
  10. 25 Aug, 2021 3 commits
    • Johan Sternerup's avatar
      webrtcbin: Return typed "sctp-transport" · 1a919a1e
      Johan Sternerup authored
      With GstWebRTCSCTPTransport type exposed we can now define
      "sctp-transport" property as being of this type.
      
      Part-of: <!2214>
      1a919a1e
    • Johan Sternerup's avatar
      webrtc: Split sctptransport into lib and implementation parts · 607ef6db
      Johan Sternerup authored
      GstWebRTCSCTPTransport is now made into into an abstract base class
      that only contains property specifications matching the
      RTCSctpTransport interface of the W3C WebRTC specification, see
      https://w3c.github.io/webrtc-pc/#rtcsctptransport-interface. This
      class is put into the WebRTC library to expose it for applications and
      to allow for generation of bindings for non-dynamic languages using
      GObject introspection.
      
      The actual implementation is moved to the subclass WebRTCSCTPTransport
      located in the WebRTC plugin.
      
      Part-of: <!2214>
      607ef6db
    • Johan Sternerup's avatar
      webrtcbin: Expose SCTP Transport · 7f9bb150
      Johan Sternerup authored
      Being able to access the SCTP Transport object from the application
      means the application can access the associated DTLS Transport object
      and its ICE Transport object. This means we can observe the ICE state
      also for a data-channel-only session. The collated
      ice-connection-state on webrtcbin only includes the ICE Transport
      objects that resides on the RTP transceivers (which is exactly how it
      is specified in
      https://w3c.github.io/webrtc-pc/#rtciceconnectionstate-enum).
      
      For the consent freshness functionality (RFC 7675) to work the ICE
      state must be accessible and consequently the SCTP transport must be
      accessible for enabling consent freshness checking for a
      data-channel-only session.
      
      Part-of: <!2214>
      7f9bb150
  11. 24 Aug, 2021 3 commits
    • Tim-Philipp Müller's avatar
      openh264enc: fix broken header AU emission by base class · 67a49be6
      Tim-Philipp Müller authored
      This encoder advertises alignment=au as output format, which means
      each output frame should contain a full decodable access unit.
      
      The video encoder base class is not aware of our output alignment
      and will output spurious buffers with just the SPS/PPS inside when
      we call gst_video_encoder_set_headers(), which is broken because
      each buffer is supposed to contain a full decodable access unit
      in our case.
      
      Just don't tell the base class about our headers, they will be
      sent at the beginning of each IDR frame anyway.
      
      Part-of: <!2178>
      67a49be6
    • Tim-Philipp Müller's avatar
      openh264enc: fix caps and header buffer leak · 90c17328
      Tim-Philipp Müller authored
      Part-of: <!2178>
      90c17328
    • Tim-Philipp Müller's avatar
      openh264enc: fix broken sps/pps header generation · 42a7edd4
      Tim-Philipp Müller authored
      This was putting a truncated SPS into the initial header instead
      of the PPS because it was always reading from the beginning of the
      bitstream buffer (pBsBuf) and not from the offset where the current
      NAL is at in the bitstream buffer (psBsBuf + nal_offset).
      
      This was broken in commit 17113695.
      
      Fixes #1576
      
      Part-of: <!2178>
      42a7edd4
  12. 21 Aug, 2021 3 commits
    • Seungha Yang's avatar
      d3d11bufferpool: Hide buffer_size field from header · fe4ec03a
      Seungha Yang authored
      User can get the required buffer size by using buffer pool config.
      Since d3d11 implementation is a candidate for public library in the future,
      we need to hide everything from header as much as possible.
      
      Note that the total size of allocated d3d11 texture memory by GPU is not
      controllable factor. It depends on hardware specific alignment/padding
      requirement. So, GstD3D11 implementation updates actual buffer size
      by allocating D3D11 texture, since there's no way to get CPU accessible
      memory size without allocating real D3D11 texture.
      
      Part-of: <!2482>
      fe4ec03a
    • Seungha Yang's avatar
      nvcodec: Fix various typos · 1874206a
      Seungha Yang authored
      Part-of: <!2481>
      1874206a
    • Seungha Yang's avatar
      nvcodec: Get rid of G_GNUC_INTERNAL · 4ed4a7ed
      Seungha Yang authored
      Our default symbol visibility is hidden, so G_GNUC_INTERNAL
      is pointless
      
      Part-of: <!2481>
      4ed4a7ed
  13. 20 Aug, 2021 4 commits
  14. 19 Aug, 2021 1 commit
  15. 18 Aug, 2021 5 commits