1. 23 May, 2020 1 commit
  2. 22 May, 2020 2 commits
  3. 20 May, 2020 3 commits
  4. 19 May, 2020 2 commits
    • Paul B Mahol's avatar
      avfilter/vf_colorkey: fix formula for calculation of difference · 8b0575d7
      Paul B Mahol authored
      Also fixes colorhold filtering.
      8b0575d7
    • Andreas Rheinhardt's avatar
      avformat/matroskaenc: Don't ignore tags of chapters written late · 4ebfc13c
      Andreas Rheinhardt authored
      The Matroska muxer writes the Chapters early when chapters were already
      available when writing the header; in this case any tags pertaining to
      these chapters get written, too.
      
      Yet if no chapters had been supplied before writing the header, Chapters
      can also be written when writing the trailer if any are supplied. Tags
      belonging to these chapters were up until now completely ignored.
      
      This commit changes this: Writing the tags belonging to chapters has
      been moved to mkv_write_chapters(). If mkv_write_tags() has not been
      called yet (i.e. when chapters are written when writing the header),
      the AVIOContext for writing the ordinary Tags element is used, but not
      output, as this is left to mkv_write_tags() in order to only write one
      Tags element. Yet if mkv_write_tags() has already been called,
      mkv_write_chapters() will output a Tags element of its own which only
      contains the tags for chapters.
      
      When chapters are available initially, the corresponding tags will now
      be the first tags in the Tags element; but the ordering of tags in Tags
      is irrelevant anyway.
      
      This commit also makes chapter_id_offset local to mkv_write_chapters()
      as it is used only there and not reused at all.
      
      Potentially writing a second Tags element means that the maximum number
      of SeekHead entries had to be incremented. All the changes to FATE
      result from the ensuing increase in the amount of space reserved for the
      SeekHead (21 bytes more).
      Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
      4ebfc13c
  5. 18 May, 2020 1 commit
  6. 16 May, 2020 1 commit
  7. 15 May, 2020 8 commits
  8. 14 May, 2020 3 commits
  9. 11 May, 2020 2 commits
  10. 10 May, 2020 1 commit
  11. 08 May, 2020 1 commit
  12. 06 May, 2020 3 commits
    • Limin Wang's avatar
      avformat/mux: Set AV_PKT_FLAG_KEY for is_intra_only packet · 96e5e6ab
      Limin Wang authored
      The patch will make audio and subtitle packets be marked as AV_PKT_FLAG_KEY.
      
      For audio, it'll caused the audio sample to be sync sample.
      To verify ref/fate/movenc results:
      1. Get the movenc test data
      [lmwang@vpn ffmpeg]$ libavformat/tests/movenc -w && mkdir -p audio_old && mv *.mp4 audio_old_
      
      After applied the patch:
      [lmwang@vpn ffmpeg]$ make fate-movenc SAMPLES=../fate-suite
      [lmwang@vpn ffmpeg]$ libavformat/tests/movenc -w && mkdir -p audio_key && mv *.mp4 audio_key
      
      2. Get l-smash and build boxdumper
      https://github.com/l-smash/l-smash.git
      
      3. dump the box of crc change mp4 and diff -u
      [lmwang@vpn ffmpeg]$ ../l-smash/cli/boxdumper --box audio_key/non-empty-moov-no-elst.mp4  > audio_key/non-empty-moov-no-elst.log
      [lmwang@vpn ffmpeg]$ ../l-smash/cli/boxdumper --box audio_old/non-empty-moov-no-elst.mp4  > audio_old/non-empty-moov-no-elst.log
      [lmwang@vpn ffmpeg]$ diff -u audio_key/non-empty-moov-no-elst.log audio_old/non-empty-moov-no-elst.log
      -                default_sample_flags = 0x02000000
      -                    independent
      -                    sync sample
      +                default_sample_flags = 0x01010000
      +                    dependent
      +                    non-sync sample
      
      4. have checked the change of crc are caused by default_sample_flags
      non-empty-moov.mp4, non-empty-moov-elst.mp4,
      non-empty-moov-no-elst.mp4, empty-moov.mp4, delay-moov-content.mp4,
      empty-moov-second-frag.mp4, empty-moov-second-frag-discont.mp4,
      delay-moov-second-frag-discont.mp4, delay-moov-elst-second-frag.mp4
      etc
      
      5 For subtitle, it'll effect for tests/ref/fate/binsub-movtextenc and
      tests/ref/fate/sub2video, that's expecting result for the subtitle is
      marked as keyframe. Below is the checking result of binsub-movtextenc:
      
      [lmwang@vpn ffmpeg]$ ./ffmpeg -i ../fate-suite/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -fflags +bitexact -movflags frag_keyframe+empty_moov audio_key/binsub-movtextenc.mp4
      [lmwang@vpn ffmpeg]$ ./ffmpeg -i ../fate-suite/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -fflags +bitexact -movflags frag_keyframe+empty_moov audio_old/binsub-movtextenc.mp4
      [lmwang@vpn ffmpeg]$../l-smash/cli/boxdumper audio_key/binsub-movtextenc.mp4  > audio_key/binsub-movtextenc.log
      [lmwang@vpn ffmpeg]$../l-smash/cli/boxdumper audio_old/binsub-movtextenc.mp4  > audio_old/binsub-movtextenc.log
      [lmwang@vpn ffmpeg]$ diff -u audio_key/binsub-movtextenc.log audio_old/binsub-movtextenc.log
      .... // the key difference is the flag for sync sample
      -                flags = 0x000701
      +                flags = 0x000301
                           data-offset-present
                           sample-duration-present
                           sample-size-present
      -                    sample-flags-present
                       sample_count = 6
      -                data_offset = 188
      +                data_offset = 164
                       sample[0]
                           sample_duration = 1570000
                           sample_size = 21
      -                    sample_flags = 0x02000000
      -                        independent
      -                        sync sample
      -                        degradation_priority = 0
                       sample[1]
                           sample_duration = 510000
                           sample_size = 2
      -                    sample_flags = 0x01010000
      -                        dependent
      -                        non-sync sample
      -                        degradation_priority = 0
                       sample[2]
                           sample_duration = 1690000
                           sample_size = 9
      -                    sample_flags = 0x02000000
      -                        independent
      -                        sync sample
      -                        degradation_priority = 0
      Suggested-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
      Suggested-by: 's avatarNicolas George <george@nsup.org>
      Signed-off-by: 's avatarLimin Wang <lance.lmwang@gmail.com>
      96e5e6ab
    • Steven Liu's avatar
      avformat/url: check url root node when rel include double dot and trim double dot · 648051f0
      Steven Liu authored
      fix ticket: 8625
      and add testcase into url for double dot corner case
      Signed-off-by: 's avatarSteven Liu <lq@chinaffmpeg.org>
      648051f0
    • Steven Liu's avatar
      tests/fate/hlsenc: rename fate macro define from FATE_AFILTER to FATE_HLSENC · 03b1b968
      Steven Liu authored
      and add fate-hlsenc for test all of the testcase
      Signed-off-by: 's avatarSteven Liu <lq@chinaffmpeg.org>
      03b1b968
  13. 05 May, 2020 1 commit
  14. 02 May, 2020 1 commit
  15. 01 May, 2020 1 commit
    • Lynne's avatar
      fate/oggopus-demux: fix fate failure · 4fd0559b
      Lynne authored
      Failure was due to the extra comment printed by libavcodec/utils.c since
      side data is used to signal the skipped samples.
      4fd0559b
  16. 29 Apr, 2020 1 commit
  17. 26 Apr, 2020 2 commits
  18. 24 Apr, 2020 1 commit
    • Martin Storsjö's avatar
      dnn-layer-mathbinary-test: Fix tests for cases with extra intermediate precision · f4d8fad8
      Martin Storsjö authored
      This fixes tests on 32 bit x86 mingw with clang, which uses x87
      fpu by default.
      
      In this setup, while the get_expected function is declared to
      return float, the compiler is (especially given the optimization
      flags set) free to keep the intermediate values (in this case,
      the return value from the inlined function) in higher precision.
      
      This results in the situation where 7.28 (which actually, as
      a float, ends up as 7.2800002098), multiplied by 100, is
      728.000000 when really forced into a 32 bit float, but 728.000021
      when kept with higher intermediate precision.
      
      For the multiplication case, a more suitable epsilon would e.g.
      be 2*FLT_EPSILON*fabs(expected_output), but just increase the
      current hardcoded threshold for now.
      Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
      f4d8fad8
  19. 22 Apr, 2020 3 commits
  20. 21 Apr, 2020 2 commits
    • Andreas Rheinhardt's avatar
      avformat/matroskaenc: Redo handling of FlagDefault · e3c54b54
      Andreas Rheinhardt authored
      Up until now, the Matroska muxer would mark a track as default if it had
      the disposition AV_DISPOSITION_DEFAULT or if there was no track with
      AV_DISPOSITION_DEFAULT set; in the latter case even more than one track
      of a kind (audio, video, subtitles) was marked as default which is not
      sensible.
      
      This commit changes the logic used to mark tracks as default. There are
      now three modes for this:
      a) In the "infer" mode the first track of every type (audio, video,
      subtitles) with default disposition set will be marked as default; if
      there is no such track (for a given type), then the first track of this
      type (if existing) will be marked as default. This behaviour is inspired
      by mkvmerge. It ensures that the default flags will be set in a sensible
      way even if the input comes from containers that lack the concept of
      default flags. This mode is the default mode.
      b) The "infer_no_subs" mode is similar to the "infer" mode; the
      difference is that if no subtitle track with default disposition exists,
      no subtitle track will be marked as default at all.
      c) The "passthrough" mode: Here the track will be marked as default if
      and only the corresponding input stream had disposition default.
      
      This fixes ticket #8173 (the passthrough mode is ideal for this) as
      well as ticket #8416 (the "infer_no_subs" mode leads to the desired
      output).
      Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
      e3c54b54
    • Andreas Rheinhardt's avatar
      avformat/matroskaenc: Don't waste bytes on length fields · 5b6e164b
      Andreas Rheinhardt authored
      Several EBML Master elements for which a good upper bound of the final
      length was available were nevertheless written without giving an
      upper bound of the final length to start_ebml_master(), so that their
      length fields were eight bytes long. This has been changed.
      Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
      5b6e164b