1. 10 Jan, 2014 1 commit
  2. 11 Aug, 2013 1 commit
    • Reimar Döffinger's avatar
      Make new VDPAU easier to use by adding context to callback. · d404fe35
      Reimar Döffinger authored
      Using VDPAU correctly means checking for preemption
      and possibly regenerating the context all the time.
      With the current API there is no context or other
      user-defined pointer and thus this in not possible
      during decoding unless using some hack like global
      variables.
      The need to reinitialize both surfaces and even function
      pointers makes handling preemption even more difficult.
      This patch introduces a new render2 function that gets
      both the AVCodecContext and AVFrame in addition,
      in both the user can store additional opaque data.
      This allows even advanced approaches like keeping a
      "generation counter" for the surfaces so they can be
      regenerated on the fly and efficiently.
      In addition, the function has a return value that will
      be passed through all the way instead of being silently
      ignored as for the current render function.
      Unfortunately the HWAccel API has no way of providing
      API/ABI compatibility, so a currently disallowed
      state (render pointer being NULL) is used to extend it.
      Signed-off-by: 's avatarReimar Döffinger <Reimar.Doeffinger@gmx.de>
      d404fe35
  3. 05 Aug, 2013 1 commit
  4. 08 Mar, 2013 1 commit
  5. 15 Feb, 2013 1 commit
    • Anton Khirnov's avatar
      h264: deMpegEncContextize · 2c541554
      Anton Khirnov authored
      Most of the changes are just trivial are just trivial replacements of
      fields from MpegEncContext with equivalent fields in H264Context.
      Everything in h264* other than h264.c are those trivial changes.
      
      The nontrivial parts are:
      1) extracting a simplified version of the frame management code from
         mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
         its own more complex system already and those were set only to appease
         the mpegvideo parts.
      2) some tables that need to be allocated/freed in appropriate places.
      3) hwaccels -- mostly trivial replacements.
         for dxva, the draw_horiz_band() call is moved from
         ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
         because it's now different for h264 and MpegEncContext-based
         decoders.
      4) svq3 -- it does not use h264 complex reference system, so I just
         added some very simplistic frame management instead and dropped the
         use of ff_h264_frame_start(). Because of this I also had to move some
         initialization code to svq3.
      
      Additional fixes for chroma format and bit depth changes by
      Janne Grunau <janne-libav@jannau.net>
      Signed-off-by: 's avatarAnton Khirnov <anton@khirnov.net>
      2c541554
  6. 13 Jan, 2013 1 commit