1. 19 Sep, 2019 4 commits
  2. 18 Sep, 2019 3 commits
    • He Junyan's avatar
      libs: video-format: Make all YUV format available · f5e19460
      He Junyan authored
      The YUV formats have no ambiguity for drivers, so we can add them all.
      Some old driver(i965) does not implement full get/put image functions
      but can use derive image funtions for the YUV format. It does not
      report that kind of formats correctly in image query, but will derive
      that YUV format image from surface. The dynamic mapping of YUV format
      will block that manner.
      Adding more YUV format mapping has no side effect. So considering the
      legacy driver conformance, we add all YUV formats mapping statically
      and dynamic mapping RBG formats
      
      Fix: #189
      Fix: #190
      f5e19460
    • Matthew Waters's avatar
      egl: Fix racyness in display thread creation · 499e248d
      Matthew Waters authored
      Multiple different scenarios could break the display thread creation and
      end up blocking waiting for thread o be created.  Fix them all by
      correctly waiting for a new boolean to become valid.
      499e248d
    • Matthew Waters's avatar
      egl: don't advertise a wrapped EGLContext as actually wrapped · 2e8cdac0
      Matthew Waters authored
      It's not actually wrapped as we create a new EGLContext from the passed
      in EGLContext.  As a result, the created EGLContext was never destroyed.
      2e8cdac0
  3. 17 Sep, 2019 1 commit
    • He Junyan's avatar
      libs: h264decoder: do not return error for unhandled NAL unit. · 6693be47
      He Junyan authored
      Some streams have error data introducing unknown NAL type. There are
      also kinds of NAL types we do not want to handle. The old manner will
      set a decoder error when encounter this, which cause a latent crash bug.
      The decoder may successfully decode the picture and insert it into DPB.
      But there are error NAL units after the AU which cause the post unit error
      and make that frame dropped. The later output of the picture still want
      to ref that frame and crash.
      No need to set decoder error when can not recognize or handle the NAL
      unit, just skip it and continue.
      
      Fix: #191
      6693be47
  4. 11 Sep, 2019 1 commit
  5. 10 Sep, 2019 2 commits
    • He Junyan's avatar
      b5dd1694
    • He Junyan's avatar
      libs: surface: add pointer check for surface_new_from_formats. · 5168611f
      He Junyan authored
      The command line:
        gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
        vaapijpegdec !  videoconvert ! video/x-raw,format=I420 ! vaapisink
      will crash on i965 driver because of no pointer check.
      
      We now generate the video format map between GST format and VA format
      dynamically based on the image format returned by vaQueryImageFormats.
      i965 driver does to report image format of 444P and Y800 forcc, while
      the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
      not recognize these format and pass a NULL pointer to
      gst_vaapi_surface_new_from_formats.
      We need to add a pointer check here and let the fallback logic handle
      this case correctly.
      Other drivers work well.
      5168611f
  6. 07 Sep, 2019 1 commit
  7. 06 Sep, 2019 2 commits
    • He Junyan's avatar
      libs: video-format: Refine the video format mapping. · 32bf6f1e
      He Junyan authored
      Improve the mapping between va format and gst format. The new map
      will be generated dynamically, based on the query result of image
      format in VA driver. Also consider the ambiguity of RGB color
      format in LSB mode.
      32bf6f1e
    • Philippe Normand's avatar
      pluginutil: Remove Mesa from drivers white list · a90daabb
      Philippe Normand authored
      The Mesa Gallium driver is poorly tested currently, leading to bad user
      experience for AMD users. The driver can be added back to the white list at
      runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
      a90daabb
  8. 05 Sep, 2019 3 commits
    • U. Artie Eoff's avatar
      vaapipostproc: allow cropping via properties · 2f0f5e1e
      U. Artie Eoff authored
      Add crop-left, crop-right, crop-top and crop-bottom
      properties to vaapipostproc.
      2f0f5e1e
    • U. Artie Eoff's avatar
      vaapipostproc: rotate outbuf and crop meta if forwarding · 55654f29
      U. Artie Eoff authored
      When forwarding crop meta to downstream, the output
      buffer and crop meta need to be rotated, too.
      
      Test:
       for i in 90r 180 90l vert horiz ul-lr ur-ll
       do
        gst-launch-1.0 -vf videotestsrc num-buffers=500 \
         ! videocrop top=100 bottom=30 left=40 right=20 \
         ! vaapipostproc video-direction=$i \
         ! vaapisink & \
        gst-launch-1.0 -vf videotestsrc num-buffers=500 \
         ! videocrop top=100 bottom=30 left=40 right=20 \
         ! vaapipostproc video-direction=$i \
         ! identity drop-allocation=true \
         ! vaapisink
       done
      55654f29
    • U. Artie Eoff's avatar
      vaapipostproc: fix output buffer WxH for crop meta forwarding · c6ee20fa
      U. Artie Eoff authored
      Adding crop meta x,y to w,h only compensates for left,top
      cropping.  But we also need to compensate for right,bottom
      cropping.
      
      The video meta contains the appropriate w,h (uncropped)
      values, so use it instead.
      
      Test:
      
       gst-launch-1.0 -vf videotestsrc num-buffers=500 \
        ! videocrop top=50 bottom=30 left=40 right=20 \
        ! vaapipostproc ! vaapisink & \
       gst-launch-1.0 -vf videotestsrc num-buffers=500 \
        ! videocrop top=50 bottom=30 left=40 right=20 \
        ! vaapipostproc ! identity drop-allocation=1 \
        ! vaapisink
      c6ee20fa
  9. 04 Sep, 2019 1 commit
    • U. Artie Eoff's avatar
      vaapipostproc: handle size and direction together in src events · 9fd020a1
      U. Artie Eoff authored
      Mapping a pointer event needs to consider both size and
      video-direction operations together, not just one or the other.
      
      This fixes an issue where x,y were not being mapped correctly
      for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
      the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set.  Thus,
      the first condition in the pointer event handling was entered and
      x,y scale factor were incorrectly computed due to srcpad WxH
      swap.
      
      This also fixes all cases where both video-direction and scaling
      are enabled at the same time.
      
      Test that all pointer events map appropriately:
      
      for i in `seq 0 7`
      do
       GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
        ! vaapipostproc video-direction=${i} width=300 \
        ! vaapisink
       GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
        ! vaapipostproc video-direction=${i} width=300 height=200 \
        ! vaapisink
       GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
        ! vaapipostproc video-direction=${i} height=200 \
        ! vaapisink
       GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
        ! vaapipostproc video-direction=${i} \
        ! vaapisink
      done
      9fd020a1
  10. 30 Aug, 2019 22 commits