1. 22 Nov, 2013 1 commit
  2. 21 Nov, 2013 1 commit
  3. 23 Sep, 2013 1 commit
    • Gwenole Beauchesne's avatar
      jpeg: add support for multiscan images. · 5444ab44
      Gwenole Beauchesne authored
      Add support for images with multiple scans per frame. The Huffman table
      can be updated before SOS, and thus possibly requiring multiple uploads
      of Huffman tables to the VA driver. So, the latter must be able to cope
      with multiple VA buffers of type 'huffman-table' and with the correct
      sequential order.
  4. 15 Jul, 2013 2 commits
    • Gwenole Beauchesne's avatar
      decoder: dispose GstVideoCodecFrame earlier. · b358651f
      Gwenole Beauchesne authored
      Once the picture was output, it is no longer necessary to keep an extra
      reference to the underlying GstVideoCodecFrame. So, we can release it
      earlier, and maybe subsequently release the associate surface proxy
    • Gwenole Beauchesne's avatar
      decoder: fix memory leak when processing interlaced pictures. · 1fff3a44
      Gwenole Beauchesne authored
      Fix memory leak when processing interlaced pictures and that occurs
      because the first field, represented as a GstVideoCodecFrame, never
      gets released. i.e. when the picture is completed, this is generally
      the case when the second field is successfully decoded, we need to
      propagate the GstVideoCodecFrame of the first field to the original
      GstVideoDecoder so that it could reclaim memory.
      Otherwise, we keep accumulating the first fields into GstVideoDecoder
      private frames list until the end-of-stream is reached. The frames
      are eventually released there, but too late, i.e. too much memory
      may have been consumed.
  5. 08 Jul, 2013 1 commit
  6. 07 May, 2013 1 commit
    • Gwenole Beauchesne's avatar
      libs: use GstVaapiMiniObject for video decoders. · 3cc7b269
      Gwenole Beauchesne authored
      Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
      GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
      helper function to let the user add a callback to a function triggered
      whenever the codec state (e.g. caps) changes.
  7. 16 Apr, 2013 1 commit
    • Gwenole Beauchesne's avatar
      decoder: use new GstVaapiSurfaceProxy utility functions. · 87e5717f
      Gwenole Beauchesne authored
      Use new GstVaapiSurfaceProxy internal helper functions to propagate the
      necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
      Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
      i.e. increase the GstVideoCodecFrame reference count in push_frame rather
      than gst_vaapi_picture_output().
  8. 10 Apr, 2013 1 commit
  9. 03 Apr, 2013 1 commit
    • Gwenole Beauchesne's avatar
      decoder: simplify acquisition/release of spare surface. · e22a8630
      Gwenole Beauchesne authored
      Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
      proxy from the context surface pool. This change also makes sure to retain
      the parent surface pool in the proxy.
      Besides, it was also totally useless to attach/detach parent context to
      VA surface each time we acquire/release it. Since the whole context owns
      all associated VA surfaces, we can mark this as such only once and for all.
  10. 29 Jan, 2013 1 commit
  11. 03 Jan, 2013 2 commits
  12. 18 Dec, 2012 5 commits
  13. 14 Nov, 2012 1 commit
  14. 11 Apr, 2012 1 commit
  15. 30 Mar, 2012 1 commit
    • Gwenole Beauchesne's avatar
      decoder: use POC to maintain the DPB. · 75538bbc
      Gwenole Beauchesne authored
      Introduce a POC field in GstVaapiPicture so that to store simpler sequential
      numbers. A signed 32-bit integer should be enough for 1 year of continuous
      video streaming at 60 Hz.
      Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
      This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
  16. 28 Mar, 2012 5 commits
    • Gwenole Beauchesne's avatar
      decoder: add first-field flag to picture. · b56ac162
      Gwenole Beauchesne authored
      Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
      member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
      as the first field. Any subsequent allocated field will become the second field.
    • Gwenole Beauchesne's avatar
      decoder: allow pictures to be cloned for field decoding. · 195a61fa
      Gwenole Beauchesne authored
      Add gst_vaapi_picture_new_field() function that clones a picture, while
      preserving the parent picture surface. i.e. the surface proxy reference
      count is increased and other fields copied as is. Besides, the picture
      is reset into a "non-output" mode.
    • Gwenole Beauchesne's avatar
      decoder: rework picture field flags. · c27385aa
      Gwenole Beauchesne authored
      Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
      could be propagated to the surface proxy when it is pushed for rendering.
      Besides, top and bottom fields are now expressed with picture structure flags
      from GstVaapiSurfaceRenderFlags.
    • Gwenole Beauchesne's avatar
      decoder: add OUTPUT flag to pictures. · e8756ae4
      Gwenole Beauchesne authored
      Allow pictures to be marked as output gst_vaapi_picture_output().
    • Gwenole Beauchesne's avatar
      decoder: fix semantics of SKIPPED pictures. · a7ec6232
      Gwenole Beauchesne authored
      If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
      will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
      has nothing to do with rendering. This only means that the currently decoded
      picture is just a copy of its reference picture.
  17. 13 Feb, 2012 1 commit
    • Gwenole Beauchesne's avatar
      decoder: fix double buffer free with some VA drivers. · ab94048e
      Gwenole Beauchesne authored
      vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
      push the VA buffer object into a list of free buffers to be re-used. However,
      reference pictures (and data) that was kept would explicitly release the VA
      buffer object later on, thus possibly destroying a valid (re-used) object.
      Besides, some other VA drivers don't support correctly the vaRenderPicture()
      semantics for VA buffers disposal and would leak memory if there is no explicit
      vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
      right after vaRenderPicture(). All VA drivers need to be aligned.
  18. 31 Jan, 2012 2 commits
  19. 30 Jan, 2012 2 commits
  20. 27 Jan, 2012 3 commits