1. 06 Oct, 2019 1 commit
    • Matthew Waters's avatar
      ass: avoid infinite unref loop with bad data · 84718775
      Matthew Waters authored
      A classic case of not updating the next item to iterate after deleting
      it from the singly linked list.
      Only ever hit with a text buffer with GST_CLOCK_TIME_NONE for either the
      timestamp or duration.
  2. 04 Oct, 2019 2 commits
  3. 03 Oct, 2019 2 commits
  4. 01 Oct, 2019 1 commit
    • Seungha Yang's avatar
      hlssink,hlssink2: Ensure writing ENDLIST tag at the end · d763aeee
      Seungha Yang authored
      hlssink* elements could be finalized without EOS event, and in that case
      the final playlist might not include the EXT-X-ENDLIST tag.
      Since missing ENDLIST tag means it's live stream, but we did't intend it,
      hlssink* elements should put the tag at the end.
  5. 30 Sep, 2019 5 commits
    • Haihao Xiang's avatar
      msdkdec: set lockable flag · 71ff8236
      Haihao Xiang authored
      When postpone_free_surface is TRUE, the output buffer is not writable,
      however the base decoder needs a writable buffer as output buffer,
      otherwise it will make a copy of the output buffer. As the underlying
      memory is always lockable, so we may set the LOCKABLE flag for this buffer
      to avoid buffer copy in the base class.
      The refcount of the output buffer is 1 when postpone_free_surface is
      FALSE, so needn't set the LOCKABLE flag for this case.
    • Haihao Xiang's avatar
      msdkh265enc: add support for Y410 in sink pad · 83100b35
      Haihao Xiang authored
      Sample pipeline:
      gst-launch-1.0 videotestsrc ! video/x-raw,format=Y410 !
      msdkh265enc low-power=1 ! filesink location=output.h265
    • Haihao Xiang's avatar
      msdkh265enc: add support for VUYA in sink pad · 05075476
      Haihao Xiang authored
      sample pipelie:
      gst-launch-1.0 videotestsrc ! video/x-raw,format=VUYA !
      msdkh265enc low-power=1 ! filesink location=output.h265
    • Haihao Xiang's avatar
      msdkenc: clean up code by using switch · 85914997
      Haihao Xiang authored
      It is convenient for us to add support for new formats in future, there
      is no change in functionality.
    • Haihao Xiang's avatar
      msdk: remove some dead code · 0c1c2ce4
      Haihao Xiang authored
  6. 27 Sep, 2019 2 commits
  7. 26 Sep, 2019 2 commits
    • Seungha Yang's avatar
      d3d11videosink: Use pixel aspect ratio to setup window draw area · 22d8d77b
      Seungha Yang authored
      ... instead of calculated display ratio from given PAR and DAR.
      d3d11window calculates output display ratio
      to decide padding area per window resize event. In the formula,
      actual PAR is required to handle both 1:1 PAR and non-1:1 PAR.
    • Fabian Greffrath's avatar
      fluidsynth: add sf3 to soundfont search path · 296e17e3
      Fabian Greffrath authored
      In Debian, soundfonts in SF3 format (i.e. the same as SF2 format but
      with Ogg/Vorbis-compressed samples) are installed into
      /usr/share/sounds/sf3. Soundfonts in SF3 format are supported since
      FluidSynth 1.1.7 (released in Feb 2018).
  8. 25 Sep, 2019 5 commits
  9. 24 Sep, 2019 2 commits
    • Vivia Nikolaidou's avatar
      errorignore: Added convert-error signal · f7626c1f
      Vivia Nikolaidou authored
      The convert-error signal is emitted whenever we get a GstFlowReturn
      other than GST_FLOW_OK. The handler can then decide what to convert that
      into - for instance, return the same GstFlowReturn to not convert it.
      The default handler will act according to the ignore-error,
      ignore-notlinked, ignore-notnegotiated and convert-to properties. If a
      handler is connected, these properties are ignored.
    • Matthew Waters's avatar
      build: fix werror build with newer gcc · 67e46849
      Matthew Waters authored
      In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstbin.h:27,
                       from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:35,
                       from ../gst/rtp/gstrtpsink.h:23,
                       from ../gst/rtp/gstrtpsink.c:49:
      In function ‘gst_rtp_sink_start’,
          inlined from ‘gst_rtp_sink_change_state’ at ../gst/rtp/gstrtpsink.c:509:11:
      ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstelement.h:422:18: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
        422 |   gchar *__txt = _gst_element_error_printf text;                        \
      ../gst/rtp/gstrtpsink.c:476:3: note: in expansion of macro ‘GST_ELEMENT_ERROR’
            |   ^~~~~~~~~~~~~~~~~
      ../gst/rtp/gstrtpsink.c: In function ‘gst_rtp_sink_change_state’:
      ../gst/rtp/gstrtpsink.c:477:37: note: format string is defined here
        477 |       ("Could not resolve hostname '%s'", remote_addr),
            |                                     ^~
      In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstbin.h:27,
                       from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:35,
                       from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/rtp/gstrtpdefs.h:27,
                       from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/rtp/rtp.h:25,
                       from ../gst/rist/gstristsink.c:72:
      In function ‘gst_rist_sink_setup_rtcp_socket’,
          inlined from ‘gst_rist_sink_start’ at ../gst/rist/gstristsink.c:658:10,
          inlined from ‘gst_rist_sink_change_state’ at ../gst/rist/gstristsink.c:801:13:
      ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstelement.h:422:18: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
        422 |   gchar *__txt = _gst_element_error_printf text;                        \
      ../gst/rist/gstristsink.c:595:3: note: in expansion of macro ‘GST_ELEMENT_ERROR’
            |   ^~~~~~~~~~~~~~~~~
      ../gst/rist/gstristsink.c: In function ‘gst_rist_sink_change_state’:
      ../gst/rist/gstristsink.c:596:37: note: format string is defined here
        596 |       ("Could not resolve hostname '%s'", remote_addr),
            |                                     ^~
  10. 23 Sep, 2019 1 commit
    • Haihao Xiang's avatar
      msdk: fix for mfx frame alloc response · ce4f9ae5
      Haihao Xiang authored
      Both MSDK and this plugin use mfxFrameAllocResponse for video and DMABuf
      memory, it is possible that some GST buffers are still in use when calling
      gst_msdk_frame_free, so add a reference count in the wrapper of
      mfxFrameAllocResponse (GstMsdkAllocResponse) to make sure the underlying
      mfx resources are still available if the corresponding buffer pool is in
      In addtion, currently all allocators for input or output share the same
      mfxFrameAllocResponse pointer in an element, so it is possible that
      the content of mfxFrameAllocResponse is updated for a new caps then all
      GST buffers allocated from an old allocator will use this new content of
      mfxFrameAllocResponse, which will result in unexpected behavior. In this
      fix, we save the the content of mfxFrameAllocResponse in the corresponding
      tructure to avoid such issue
      Sample pipeline:
      gst-launch-1.0 filesrc location=vp9_multi_resolutions.ivf ! ivfparse ! msdkvp9dec !
      msdkvpp ! video/x-raw\(memory:DMABuf\),format=NV12 ! glimagesink
  11. 21 Sep, 2019 4 commits
    • Haihao Xiang's avatar
      msdk: don't cache mfxFrameAllocResponse pointer · e50011c0
      Haihao Xiang authored
      Otherwise it is possible that different wrappers share the same
      mfxFrameAllocResponse pointer, so instead of caching the pointer, we may
      cache the content of mfxFrameAllocResponse
    • Haihao Xiang's avatar
      msdkdec: postpone surface free for VC1 · f840e304
      Haihao Xiang authored
      For a skipped frame in VC1, MSDK returns the mfx surface of the reference
      frame, so we have to make sure the corresponding surface for the
      reference frame is not freed. In this fix, we postpone surface free because
      we don't know whether a surface is referenced
      Before this fix, the error is like as below:
      New clock: GstSystemClock
      0:00:00.181793130 23098 0x55f8a9d622d0 ERROR                msdkdec
      gstmsdkdec.c:622:gst_msdkdec_finish_task:<msdkvc1dec0> Couldn't find the
      cached MSDK surface
      Sample pipeline:
      gst-launch-1.0 filesrc location=input_has_skipped_frame.wmv ! asfdemux !
      vc1parse ! msdkvc1dec ! glimagesink
    • Haihao Xiang's avatar
      msdkdec: release the surface if this surface is not in use · c689c944
      Haihao Xiang authored
      If the surface is not in use, we may release it even if GST_FLOW_OK is going
      to be returned, which may avoid the issue of failing to get surface
      This fixes the regression caused by commit c05acf40
    • Haihao Xiang's avatar
      msdk: adjust the stride align · 8daac1c0
      Haihao Xiang authored
      GstAllocationParams::align is set to 31 in msdkdec/msdken/msdkvpp, hence
      the stride align should be greater than or equal to 31, otherwise it
      will result in issue
      (msdk: "GStreamer-CRITICAL: gst_buffer_resize_range failed" SPAM),
      In addition, the stride should match the pitch alignment in the media driver,
      otherwise it will result in some issues when a buffer is shared between
      different elements, e.g. the NV12 issue mentioned in commit 3f2314a1, which
      can be reproduced by `gst-launch-1.0 vidoetestsrc ! msdkvpp !
      video/x-raw\(memory:DMABuf\),format=NV12 ! glimagesink`
      Fixed gstreamer/gst-plugins-bad#861
  12. 20 Sep, 2019 1 commit
  13. 19 Sep, 2019 1 commit
  14. 18 Sep, 2019 2 commits
  15. 17 Sep, 2019 5 commits
  16. 16 Sep, 2019 4 commits