1. 18 Jun, 2018 1 commit
  2. 04 May, 2018 2 commits
  3. 20 Mar, 2018 1 commit
  4. 12 Mar, 2018 1 commit
  5. 08 Mar, 2018 2 commits
    • Aman Gupta's avatar
    • Aman Gupta's avatar
      avcodec/mediacodecdec: add delay_flush option · 2a0eb868
      Aman Gupta authored
      The default behavior of the mediacodec decoder before this commit
      was to delay flushes until all pending hardware frames were
      returned to the decoder. This was useful for certain types of
      applications, but was unexpected behavior for others.
      
      The new default behavior with this commit is now to execute
      flushes immediately to invalidate all pending frames. The old
      behavior can be enabled by setting delay_flush=1.
      
      With the new behavior, video players implementing seek can simply
      call flush on the decoder without having to worry about whether
      they have one or more mediacodec frames still buffered in their
      rendering pipeline. Previously, all these frames had to be
      explictly freed (or rendered) before the seek/flush would execute.
      
      The new behavior matches the behavior of all other lavc decoders,
      reducing the amount of special casing required when using the
      mediacodec decoder.
      Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
      Signed-off-by: 's avatarMatthieu Bouron <matthieu.bouron@gmail.com>
      2a0eb868
  6. 03 Mar, 2018 1 commit
  7. 19 Feb, 2018 1 commit
    • Aman Gupta's avatar
      avcodec/mediacodecdec: refactor to take advantage of new decoding api · f611fef3
      Aman Gupta authored
      This refactor splits up the main mediacodec decode loop into two
      send/receive helpers, which are then used to rewrite the receive_frame
      callback and take full advantage of the new decoding api. Since we
      can now request packets on demand with ff_decode_get_packet(), the
      fifo buffer is no longer necessary and has been removed.
      
      This change was motivated by behavior observed on certain Android TV
      devices, featuring hardware mpeg2/h264 decoders which also deinterlace
      content (to produce multiple frames per field). Previously, this code
      caused buffering issues because queueInputBuffer() was always invoked
      before each dequeueOutputBuffer(), even though twice as many output
      buffers were being generated.
      
      With this patch, the decoder will always attempt to drain new frames
      first before sending more data into the underlying codec.
      Signed-off-by: 's avatarMatthieu Bouron <matthieu.bouron@gmail.com>
      f611fef3
  8. 23 Mar, 2017 1 commit
  9. 19 Oct, 2016 1 commit
  10. 12 Oct, 2016 2 commits
  11. 08 Jul, 2016 1 commit
  12. 23 Jun, 2016 1 commit
  13. 15 Mar, 2016 1 commit
  14. 07 Mar, 2016 1 commit