1. 29 May, 2019 1 commit
  2. 13 Dec, 2018 2 commits
    • Paul B Mahol's avatar
      avformat/gif: extend description · 280b4324
      Paul B Mahol authored
      280b4324
    • Paul B Mahol's avatar
      avcodec: rewrite gif muxing and encoding · faca28c2
      Paul B Mahol authored
      Now "-c copy" works.
      Update FATE files.
      
      Demuxer only split file into packets, no data is trimmed.
      Encoder & muxer currently expect completely another format
      where muxer writes stuff like disposal method which should
      be really encoder job.
      With this patch muxer only modifies delay between two packets.
      Codec copy need to have same behavior between demuxer and
      muxer to work correctly.
      
      Fixes #6640.
      faca28c2
  3. 10 Dec, 2018 1 commit
  4. 26 Sep, 2017 1 commit
  5. 23 Sep, 2017 1 commit
  6. 23 Feb, 2016 1 commit
    • Anton Khirnov's avatar
      lavf: replace AVStream.codec with AVStream.codecpar · 9200514a
      Anton Khirnov authored
      Currently, AVStream contains an embedded AVCodecContext instance, which
      is used by demuxers to export stream parameters to the caller and by
      muxers to receive stream parameters from the caller. It is also used
      internally as the codec context that is passed to parsers.
      
      In addition, it is also widely used by the callers as the decoding (when
      demuxer) or encoding (when muxing) context, though this has been
      officially discouraged since Libav 11.
      
      There are multiple important problems with this approach:
          - the fields in AVCodecContext are in general one of
              * stream parameters
              * codec options
              * codec state
            However, it's not clear which ones are which. It is consequently
            unclear which fields are a demuxer allowed to set or a muxer allowed to
            read. This leads to erratic behaviour depending on whether decoding or
            encoding is being performed or not (and whether it uses the AVStream
            embedded codec context).
          - various synchronization issues arising from the fact that the same
            context is used by several different APIs (muxers/demuxers,
            parsers, bitstream filters and encoders/decoders) simultaneously, with
            there being no clear rules for who can modify what and the different
            processes being typically delayed with respect to each other.
          - avformat_find_stream_info() making it necessary to support opening
            and closing a single codec context multiple times, thus
            complicating the semantics of freeing various allocated objects in the
            codec context.
      
      Those problems are resolved by replacing the AVStream embedded codec
      context with a newly added AVCodecParameters instance, which stores only
      the stream parameters exported by the demuxers or read by the muxers.
      9200514a
  7. 27 Oct, 2015 1 commit
  8. 14 Feb, 2015 3 commits
  9. 04 Apr, 2014 1 commit
  10. 02 Apr, 2014 1 commit
  11. 07 Nov, 2013 1 commit
  12. 16 Sep, 2013 1 commit
  13. 09 Jul, 2013 1 commit
  14. 24 May, 2013 1 commit
  15. 19 Apr, 2013 5 commits
    • Clément Bœsch's avatar
      lavf/gif: add final_delay option. · 67cc31d6
      Clément Bœsch authored
      67cc31d6
    • Clément Bœsch's avatar
      lavf/gif: avoid forward declaration. · 6189ff36
      Clément Bœsch authored
      6189ff36
    • Clément Bœsch's avatar
      lavf/gif: correct the delay after the first frame. · a7c5b7a6
      Clément Bœsch authored
      To define accurately the delay between two frames, it is necessary to
      have both available. Before this commit, the first frame had a delay of
      0; while in practice the problem is not visible in most situation, it is
      problematic with low frame rate and large scene change.
      
      This commit notably fixes output generated with commands such as:
      
        ffmpeg -i big_buck_bunny_1080p_h264.mov
           -vf "select='gt(scene,0.4)',scale=320:-1,setpts=N/TB"
           -frames:v 5 -y out.gif
      
      Also, to avoid odd loop delays, the N-1 delay is duplicated for the last
      frame.
      a7c5b7a6
    • Clément Bœsch's avatar
      lavf/gif: fix timing. · 7e57adb4
      Clément Bœsch authored
      pkt->duration can not be used since the values are only based on frame
      rate.
      7e57adb4
    • Clément Bœsch's avatar
      gif: use only one graphic control extension block per image. · 13478b27
      Clément Bœsch authored
      The encoder now doesn't produce any extra graphic control extension
      block anymore. Only the image is encoded, and the muxer writing
      its own GCE containing notably the timing information now includes the
      optional palette transmitted through packet side data.
      
      This commit avoid setting clashes between the two GCE, and reduce the
      size of the generated file with pal8 output.
      13478b27
  16. 18 Apr, 2013 5 commits
  17. 17 Apr, 2013 5 commits
  18. 14 Apr, 2013 1 commit
  19. 11 Apr, 2013 1 commit
  20. 08 Oct, 2012 1 commit
  21. 15 Sep, 2012 1 commit
  22. 04 Sep, 2012 1 commit
  23. 07 Aug, 2012 1 commit
  24. 21 Feb, 2012 1 commit
  25. 27 Jan, 2012 1 commit