summaryrefslogtreecommitdiff
path: root/tests/ref/lavf-fate
Commit message (Collapse)AuthorAge
* avformat/matroskaenc: Don't waste bytes on Video element length fieldsAndreas Rheinhardt2022-01-19
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/matroskaenc: Pass dispositions through unchanged by defaultAndreas Rheinhardt2021-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, the Matroska muxer did not use the dispositions it is given as-is; instead it by default overrode the disposition of the first track of a kind (audio, video, subtitles) if no track of this kind has the default disposition set. And up until recently, it also enforced by default that no more than one track of each kind be marked as default. The rationale for the former is that there are lots of containers which lack the concept of default streams, so that it is not uncommon for no stream to be marked as default at all; the rationale for the latter was that up until recently, it was dubious whether the Matroska specification allowed more than one default stream for track type (e.g. mkvmerge disallowed it). It was this point which led to the implementation of the above mentioned behaviour inspired by mkvmerge. Yet the Matroska specifications have changed and now explicitly allow to set more than one track of each type as default, so that the main reason of not using the dispositions as-is was rendered moot. Therefore this commit changes the default to pass the disposition through. The matroska-mpegts-remux FATE-test has been updated to still use the old "infer" mode so that it is still covered by FATE; the matroska-zero-length-block test has also been updated to cover the infer_no_subs mode. The references for lots of other FATE tests needed to be updated because of a newly added FlagDefault element with value zero (whereas a FlagDefault with value 1 needn't be coded at all, as it coincided with the default value of said element). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavf/mux: rewrite guessing the packet durationAnton Khirnov2020-12-10
| | | | | | Factor out the code into a separate muxing-specific function. Stop accessing the deprecated AVStream-embedded codec context, use the average framerate (if specified) instead.
* avformat/movenc: implement writing of the btrt boxJan Ekström2020-09-22
| | | | | | | | | | | This is utilized by various media ingests to figure out the bit rate of the content you are pushing towards it, so write it for video, audio and subtitle tracks in case at least one nonzero value is available. It is only mentioned for timed metadata sample descriptions in QTFF, so limit it only to ISOBMFF (MODE_MP4) mode. Updates the FATE tests which have their results changed due to the 20 extra bytes being written per track.
* avcodec: add AV1 hardware accelerated decoderFei Wang2020-09-12
| | | | | | | | | This AV1 decoder is currently only used for hardware accelerated decoding. It can be extended into a native decoder in the future, so set its name to "av1" and temporarily give it the lowest priority in the codec list. Signed-off-by: Fei Wang <fei.w.wang@intel.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/movenc: Write 'av01' as a compatible brand when muxing AV1Derek Buitenhuis2020-06-17
| | | | | | | | | This is a requirement of the AV1-ISOBMFF spec. Section 2.1. General Requirements & Brands states: * It SHALL have the av01 brand among the compatible brands array of the FileTypeBox Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avformat/matroskaenc: Don't ignore tags of chapters written lateAndreas Rheinhardt2020-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskaenc: Don't waste bytes on length fieldsAndreas Rheinhardt2020-04-21
| | | | | | | | | 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: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskaenc: Make output more deterministicAndreas Rheinhardt2020-04-13
| | | | | | | | | | | | | | | | | | | | | Using random values for TrackUID and FileUID (as happens when the AVFMT_FLAG_BITEXACT flag is not set) has the obvious downside of making the output indeterministic. This commit mitigates this by writing the potentially random values with a fixed size of eight byte, even if their actual values would fit into less than eight bytes. This ensures that even in non-bitexact mode, the differences between two files generated with the same settings are restricted to a few bytes in the header. (Namely the SegmentUID, the TrackUIDs (in Tracks as well as when referencing them via TagTrackUID), the FileUIDs (in Attachments as well as in TagAttachmentUID) as well as the CRC-32 checksums of the Info, Tracks, Attachments and Tags level-1-elements.) Without this patch, there might be an offset/a size difference between two such files. The FATE-tests had to be updated because the fixed-sized UIDs are also used in bitexact mode. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/matroskaenc: Avoid allocations for SeekHeadAndreas Rheinhardt2020-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until e7ddafd5, the Matroska muxer wrote two SeekHeads: One at the beginning referencing the main level 1 elements (i.e. not the Clusters) and one at the end, referencing the Clusters. This second SeekHead was useless and has therefore been removed. Yet the SeekHead-related functions and structures are still geared towards this usecase: They are built around an allocated array of variable size that gets reallocated every time an element is added to it although the maximum number of Seek entries is a small compile-time constant, so that one should rather include the array in the SeekHead structure itself; and said structure should be contained in the MatroskaMuxContext instead of being allocated separately. The earlier code reserved space for a SeekHead with 10 entries, although we currently write at most 6. Reducing said number implied that every Matroska/Webm file will be 84 bytes smaller and required to adapt several FATE tests; furthermore, the reserved amount overestimated the amount needed for for the SeekHead's length field and how many bytes need to be reserved to write a EBML Void element, bringing the total reduction to 89 bytes. This also fixes a potential segfault: If !mkv->is_live and if the AVIOContext is initially unseekable when writing the header, the SeekHead is already written when writing the header and this used to free the SeekHead-related structures that have been allocated. But if the AVIOContext happens to be seekable when writing the trailer, it will be attempted to write the SeekHead again which will lead to segfaults because the corresponding structures have already been freed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* fate/lavf-container: add an AV1 in Matroska muxing testJames Almer2020-01-26
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/movenc: ensure we don't write the major brand as a compatible brand ↵James Almer2019-12-21
| | | | | | more than once Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/movenc: write the major brand also as the first compatible brandJames Almer2019-12-21
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fate/lavf-container: add an H264 mp4 remux testJames Almer2019-11-29
| | | | | | | This uses a raw h264 bitstream as source, in order to test the avcC generation code. Signed-off-by: James Almer <jamrial@gmail.com>
* fate/lavf-container: add an AV1 mp4 remux testJames Almer2019-11-29
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* tests: Convert lavf container tests with samples to non-legacy test scriptsJames Almer2019-03-14
|
* avformat/mov: only set handler_name from mdia->hdlrGyan Doshi2018-07-16
| | | | | | 6 FATE references updated. Fixes #7104
* avformat/movenc: read track title from correct keyGyan Doshi2018-06-19
| | | | | | | | | | da9cc22d5bd allowed the MOV muxer to relay a custom stream handler name, whether populated from the input stream or user-set. However, the entry key didn't match the key set by the MOV demuxer, so it wasn't effective. Fixed. Due to the change, four FATE refs have to be updated. Verified that the target payload of the tests hasn't changed in terms of CRC.
* avformat/qtpalette: parse color table according to the QuickTime file format ↵Marton Balint2018-04-30
| | | | | | | | | | | specs The specs says that the the first color component in the color array is not alpha, but simply 0. Fixes 0 alpha of fate-suite/cvid/catfight-cvid-pal8-partial.mov Signed-off-by: Marton Balint <cus@passwd.hu>
* lavf/mov: Add support for edit list parsing.Sasi Inguva2016-09-19
| | | | | Signed-off-by: Sasi Inguva <isasi@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/oggenc: add vp8 muxing supportJames Almer2016-07-20
| | | | | | Addresses ticket #5687 Signed-off-by: James Almer <jamrial@gmail.com>
* lavf/avienc: Add xxpc entries to indexMats Peterson2016-03-13
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf/riffenc: Improve spec compliance; Fix WMP playback of AVI with xxpc chunksMats Peterson2016-03-13
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate: Add pal8 copy test for aviMichael Niedermayer2016-03-05
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate: add qtrle/mace6 stream copy testMichael Niedermayer2016-03-04
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit 'ef363ebd596da18f889a7d4845023a23dfac84c9'Michael Niedermayer2014-10-24
| | | | | | | | | | * commit 'ef363ebd596da18f889a7d4845023a23dfac84c9': mp3enc: write full LAME frame Conflicts: libavformat/mp3enc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit 'b263f8ffe7599d9cd27ec477a12700da8eb2790d'Michael Niedermayer2014-08-25
| | | | | | | | | | | | | | | | * commit 'b263f8ffe7599d9cd27ec477a12700da8eb2790d': lavf: add AVFormatContext.max_ts_probe Conflicts: doc/APIchanges libavformat/avformat.h libavformat/utils.c libavformat/version.h lavf-fate/mp3 changes as the estimated input bitrate changes and that is copied to the output Merged-by: Michael Niedermayer <michaelni@gmx.at>
* avformat/oggenc: fix EOS flagMichael Niedermayer2014-05-28
| | | | | | | This corrects the bug that caused the checksums to change in 9767d7c092c890ecc5953452e8a951fd902dd67b Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit '9767d7c092c890ecc5953452e8a951fd902dd67b'Michael Niedermayer2014-05-28
| | | | | | | | | | * commit '9767d7c092c890ecc5953452e8a951fd902dd67b': oggenc: Flush after writing headers Conflicts: tests/ref/lavf/ogg Merged-by: Michael Niedermayer <michaelni@gmx.at>
* lavf/mux: Don't write "encoder" metadata tag when bitexact is requestedJames Almer2013-12-06
| | | | | | | | Since we don't write lavf's string when bitexact is requested, this will prevent the tag from being copied from the source stream. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lavf/id3v2enc: fix cover art display on some softwareMatthieu Bouron2013-05-30
| | | | | | | | | | | | | | Adding an arbitrary amount of padding bytes at the end of the ID3 metadata fixes cover art display for some software (iTunes, Traktor, Serato, Torq). For reference (ID3 metadata): [ Apic frames ] -> cover doesn't show up [ Apic frames, Padding ] -> ok [ Apic frames, ID3 frames ] -> ok [ ID3 frames, Apic frames ] -> cover doesn't show up [ ID3 frames, Apic frames, Padding ] -> ok
* mp3dec: Fix VBR bit rate parsingAlexander Kojevnikov2013-03-05
| | | | | | | | | | | When parsing the Xing/Info tag, don't set the bit rate if it's an Info tag. When parsing the stream, don't override the bit rate if it's already set, otherwise calculate the mean bit rate from parsed frames. This way, the bit rate will be set correctly both for CBR and VBR streams. Signed-off-by: Alexander Kojevnikov <alexander@kojevnikov.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* mp3enc: add lame tag with start padding infoMichael Niedermayer2012-07-14
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* latmenc: copy pce config from proper location.Reimar Döffinger2012-04-12
| | | | | | | | | For the FATE test sample used, this only avoids a warning message. However for other samples like al05_44.mp4 the converted file can be played only after this fix. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* latmenc: fix muxing of byte-aligned DSE.Reimar Döffinger2012-04-12
| | | | | | | | This will only work for DSEs that are first in a packet, but that is enough to fix handling of the reference files in fate-suite/aac (though most of them still have other issues). Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* Do not decode the mp3 data in lavf test since that is not bit-exact.Reimar Döffinger2012-04-07
| | | | Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* Test mp3 container muxing (and thus ID3 writing).Reimar Döffinger2012-04-07
| | | | Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* lavf-fate-ogg_vp3: Try -idct auto instead of -idct simple.Reimar Döffinger2012-02-18
| | | | | | | -idct simple for some reason results in different results on different systems. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* oggenc: fix condition when not to flush due to keyframe granule.Reimar Döffinger2012-02-18
| | | | | | | | | | | | | The previous condition of 0 page size was wrong, that would disable the mechanism for all frames at a start of a page, thus some keyframes still would not get their own granule. The real problem is that header packets must not be flushed, but they have (and must have) 0 granule and thus would be detected as keyframes. Add a separate parameter to mark header packets. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* Add muxer test based on stream-copy from FATE sample.Reimar Döffinger2012-02-18
This should test muxing Theora into Ogg. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>