1. 07 Oct, 2016 1 commit
  2. 01 Oct, 2016 2 commits
    • wm4's avatar
      ffmpeg: use new decode API · 8f6f2322
      wm4 authored
      This is a bit messy, mainly due to timestamp handling.
      
      decode_video() relied on the fact that it could set dts on a flush/drain
      packet. This is not possible with the old API, and won't be. (I think
      doing this was very questionable with the old API. Flush packets should
      not contain any information; they just cause a FIFO to be emptied.) This
      is replaced with checking the best_effort_timestamp for AV_NOPTS_VALUE,
      and using the suggested DTS in the drain case.
      
      The modified tests (fate-cavs and others) still fails due to dropping
      the last frame. This happens because the timestamp of the last frame
      goes backwards (ffprobe -show_frames shows the same thing). I suspect
      that this "worked" due to the best effort timestamp logic picking the
      DTS over the decreasing PTS. Since this logic is in libavcodec (where
      it probably shouldn't be), this can't be easily fixed. The timestamps
      of the cavs samples are weird anyway, so I chose not to fix it.
      
      Another strange thing is the timestamp handling in the video path of
      process_input_packet (after the decode_video() call). It looks like
      the code to increase next_dts and next_pts should be run every time
      a frame is decoded - but it's needed even if output is skipped.
      8f6f2322
    • wm4's avatar
      ffmpeg: move subframe warning to libavcodec · b2fea2fd
      wm4 authored
      With the new decode API, doing this in ffmpeg.c is impractical. There
      was resistance against removing the warning, so put it into libavcodec.
      
      Not bothering with reducing the warning to verbose log level for
      subsequent wanrings. The warning should be rare, and only happen when
      developing new codecs for the old API.
      
      Includes a change suggested by Michael Niedermayer.
      b2fea2fd
  3. 27 Sep, 2016 1 commit
  4. 24 Sep, 2016 1 commit
    • Clément Bœsch's avatar
      ffmpeg: switch to the new BSF API · 5ef19590
      Clément Bœsch authored
      This commit is initially largely based on commit 4426540f from Anton
      Khirnov <anton@khirnov.net> and two following fixes (80fb19bc and
      fe7b21c8) which were previously skipped respectively in 98e3153f, c9ee36e6,
      and 7fe7cdca.
      
      mpeg4-bsf-unpack-bframes FATE reference is updated because the bsf
      filter now actually fixes the extradata (mpeg4_unpack_bframes_init()
      changing one byte is now honored on the output extradata).
      
      The FATE references for remove_extra change because the packet flags
      were wrong and the keyframes weren't marked, causing the bsf relying on
      these proprieties to not actually work as intended.
      
      The following was fixed by James Almer:
      
      The filter option arguments are now also parsed correctly.
      
      A hack to propagate extradata changed by bitstream filters after the
      first av_bsf_receive_packet() call is added to maintain the current
      behavior. This was previously done by av_bitstream_filter_filter() and
      is needed for the aac_adtstoasc bsf.
      
      The exit_on_error was not being checked anymore, and led to an exit
      error in the last frame of h264_mp4toannexb test. Restoring this
      behaviour prevents erroring out. The test is still changed as a result
      due to the badly filtered frame now not being written after the failure.
      Signed-off-by: 's avatarClément Bœsch <u@pkh.me>
      Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
      5ef19590
  5. 21 Sep, 2016 1 commit
    • Clément Bœsch's avatar
      ffmpeg: switch to codecpar · 955b818c
      Clément Bœsch authored
      This commit is largely based on commit 15e84ed3 from Anton Khirnov
      <anton@khirnov.net> which was previously skipped in bbf5ef9d.
      
      There are still a bunch of things raising codecpar related warnings that
      need fixing, such as:
      - the use of codec->debug in the interactive debug mode
      - read_ffserver_streams(): it's probably broken now but there is no test
      - lowres stuff
      - codec copy apparently required by bitstream filters
      
      The matroska references are updated because they now properly forward
      the field_order (previously unknown, now progressive).
      
      Thanks to James Almer for fixing a bunch of FATE issues in this commit.
      Signed-off-by: 's avatarClément Bœsch <clement@stupeflix.com>
      Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
      955b818c
  6. 10 Jun, 2016 1 commit
  7. 28 Dec, 2015 1 commit
  8. 11 Dec, 2015 1 commit
  9. 16 Nov, 2015 1 commit
  10. 11 Nov, 2015 1 commit
  11. 22 Oct, 2015 2 commits
  12. 08 Aug, 2015 1 commit
  13. 03 Aug, 2015 1 commit
  14. 29 Jul, 2015 1 commit
  15. 28 Jul, 2015 2 commits
  16. 17 May, 2015 1 commit
  17. 20 Apr, 2015 1 commit
  18. 03 Apr, 2015 1 commit
  19. 26 Feb, 2015 1 commit
  20. 04 Feb, 2015 1 commit
  21. 25 Jan, 2015 1 commit
  22. 28 Dec, 2014 1 commit
  23. 30 Nov, 2014 1 commit
    • Christophe Gisquet's avatar
      ffmpeg: take bsf arguments from the command line · 4c592c39
      Christophe Gisquet authored
      The format is now:
      -bsf:X filter1[=opt1=str1/opt2=str2],filter2
      ie the parameters are appended after the filter name using '='. As ','
      has been reserved already for the list of filters, '/' is just an
      example of token separation for now, but that could become part of the
      API to avoid each bsf using its own tokenization.
      
      The proper solution would be using AVOption, but this is overkill for now.
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      4c592c39
  24. 24 Nov, 2014 1 commit
  25. 19 Nov, 2014 1 commit
  26. 06 Oct, 2014 1 commit
  27. 01 Sep, 2014 1 commit
  28. 15 Aug, 2014 1 commit
  29. 09 Aug, 2014 1 commit
  30. 04 Aug, 2014 1 commit
  31. 07 Jun, 2014 1 commit
  32. 01 Jun, 2014 1 commit
  33. 26 May, 2014 1 commit
  34. 21 May, 2014 1 commit
  35. 19 May, 2014 1 commit
  36. 20 Feb, 2014 1 commit
    • Nicolas George's avatar
      ffmpeg: make reading packets from thread blocking. · 299a5687
      Nicolas George authored
      If a packet is not ready on the input selected by ffmpeg,
      it will read from another input instead. If that happens
      repeatedly, frames will accumulate somewhere later in the
      processing to ensure streams synchronization. It can happen
      in particular when reading from a slow medium or an
      expensive lavfi filter graph.
      
      Make reading from normal demuxers on non-streamed data and
      from the lavfi pseudo-device blocking to avoid that.
      
      Should fix trac ticket #3079.
      299a5687
  37. 18 Feb, 2014 1 commit