1. 22 Nov, 2013 1 commit
  2. 21 Nov, 2013 21 commits
  3. 18 Nov, 2013 2 commits
    • Gwenole Beauchesne's avatar
      configure: automatically detect GStreamer API version. · 29270e3a
      Gwenole Beauchesne authored
      Automatically detect GStreamer API version. The --with-gstreamer-api
      configure option now defaults to "autodetect" and configure then tries
      to derive the GStreamer API version from the highest version based on
      what pkg-config --modversion would report.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=711657
      29270e3a
    • Wind Yuan's avatar
      vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0. · b62bd57b
      Wind Yuan authored
      Fix raw YUV data uploaded as in the following pipeline:
      $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
      
      The main reason why it failed was that the videoparse element simply
      allocates GstBuffer with raw data chunk'ed off the sink pad without
      any prior knowledge of the actual frame info. i.e. it basically just
      calls gst_adapter_take_buffer().
      
      We could avoid the extra copy performed in vaapipostproc if the videoparse
      element was aware of the downstream pool and bothers copying line by
      line, for each plane. This means that, for a single frame per buffer,
      the optimizatin will be to allocate the video buffer downstream, map
      it, and copy each line that is coming through until we need to fills
      in the successive planes.
      
      Still, optimized raw YUV uploads already worked with the following:
      $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
      
      https://bugzilla.gnome.org/show_bug.cgi?id=711250
      
      [clean-ups, fixed error cases to unmap and unref outbuf]
      Signed-off-by: default avatarGwenole Beauchesne <gwenole.beauchesne@intel.com>
      b62bd57b
  4. 16 Nov, 2013 1 commit
  5. 15 Nov, 2013 6 commits
  6. 09 Oct, 2013 8 commits
    • Gwenole Beauchesne's avatar
      vaapipostproc: add support for raw YUV video source buffers. · ae5e5be8
      Gwenole Beauchesne authored
      Allow video processing from raw YUV buffers coming from the sink pad,
      while still producing a VA surface for the downstream elements.
      ae5e5be8
    • Gwenole Beauchesne's avatar
      vaapipostproc: add support for "mixed" interlace mode. · f0d50cfb
      Gwenole Beauchesne authored
      Add support for "mixed" interlace-mode, whereby the video frame buffer
      shall be deinterlaced only if its flags mention that's actually an
      interlaced frame buffer.
      f0d50cfb
    • Gwenole Beauchesne's avatar
      vaapipostproc: rework plug-in element. · f6f24bfc
      Gwenole Beauchesne authored
      Rewrite the vaapipostproc plug-in element so that it derives from
      GstBaseTransform, thus simplifying the caps negotiation process.
      f6f24bfc
    • Gwenole Beauchesne's avatar
      plugins: fix and optimize check for buffer pool allocator params. · 399e887c
      Gwenole Beauchesne authored
      Reset the buffer pool allocator only if the config caps changed in a
      sensible way: format or resolution change. i.e. don't bother with
      other caps like colorimetry et al. as this doesn't affect the way to
      allocate VA surfaces or images.
      399e887c
    • Gwenole Beauchesne's avatar
      plugins: enable memory maps for read & write with direct-rendering. · 77b2d884
      Gwenole Beauchesne authored
      Enable read and write mappings only if direct-rendering is supported.
      Otherwise, this means that we may need to download data from the VA
      surface first for correctness, even if the VA surface doesn't need to
      be read at all. i.e. sometimes, READWRITE mappings are meant for
      surfaces that are written to first, and read afterwards for further
      processing.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=704078
      77b2d884
    • Gwenole Beauchesne's avatar
      plugins: fix check for direct-rendering support. · 847e3efb
      Gwenole Beauchesne authored
      Fix check for direct-rendering if the creation of VA surfaces with
      an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
      that we tried to allocate a VA surface based on the corresponding
      chroma type. i.e. in that particular case, we have to make sure that
      the derived image has actually the expected format.
      847e3efb
    • Gwenole Beauchesne's avatar
      plugins: fix buffer pool reset_buffer() to reset memory resources. · f361d4a2
      Gwenole Beauchesne authored
      Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
      memory resources, and more particularly the VA surface proxy. Most
      importantly, the GstVaapiVideoMeta is retained. Cached surface in
      memory are released, thus triggering a new allocation the next time
      we need to map the buffer.
      f361d4a2
    • Gwenole Beauchesne's avatar
      plugins: fix GstVaapiVideoMemory to allocate VA surface proxies. · 4df68163
      Gwenole Beauchesne authored
      Make sure GstVaapiVideoMemory allocates VA surface proxies from a
      pool stored in the parent VA memory allocator.
      
      This fixes the following scenario:
      - VA video buffer 1 is allocated from a buffer pool
      - Another video buffer is created, and inherits info from buffer 1
      - Buffer 1 is released, thus pushing it back to the buffer pool
      - New buffer alloc request comes it, this yields buffer 1 back
      - At this stage, buffers 1 and 2 still share the same underlying VA
        surface, but buffer 2 was already submitted downstream for further
        processing, thus conflicting with additional processing we were
        about to perform on buffer 1.
      
      Maybe the core GstBufferPool implementation should have been fixed
      instead to actually make sure that the returned GstBuffer memory we
      found from the pool is writable?
      4df68163
  7. 04 Oct, 2013 1 commit
    • Gwenole Beauchesne's avatar
      plugins: create a proxy for GstVaapiUploader allocated buffers. · cc9afca3
      Gwenole Beauchesne authored
      Always make sure to allocate a VA surface proxy for GstVaapiUploader
      allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
      a proxy surface.
      
      This fixes cases where we want to retain the underlying surface longer,
      instead of releasing it back to the surface pool right away.
      cc9afca3