Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-18Merge commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33'Hendrik Leppkes
* commit '26ac22e5e7394346e9d59f800e7d4e91f4518d33': movenc: Add a new flag for writing global sidx indexes for dash Conflicts: libavformat/movenc.c libavformat/movenc.h Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-12movenc: Add a new flag for writing global sidx indexes for dashMartin Storsjö
The double meaning of the faststart flag (moving a moov atom to the start of files, making them streamable, for non-fragmented files, vs inserting a global sidx index at the start of files for fragmented files) is confusing - see 40ed1cbf1 for explanation of its origins. Since the second meaning of the flag hasn't been part of any libav release yet, just rename it to get rid of the confusion without any extra deprecation (which wouldn't get rid of the potential confusion, of users adding -movflags faststart even for fragmented files, where it isn't needed for making them "streamable"). This gets back the old behaviour, where -movflags faststart doesn't have any effect for fragmented files. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-10Merge commit '83f254e65f938657a4dbec711e4c94252a72daf9'Hendrik Leppkes
* commit '83f254e65f938657a4dbec711e4c94252a72daf9': movenc: Rename reserved_moov_pos to reserved_header_pos Conflicts: libavformat/movenc.c libavformat/movenc.h Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10movenc: Rename reserved_moov_pos to reserved_header_posMartin Storsjö
The same field is also used for writing the sidx index header, for fragmented files, when the faststart flag is used. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-18avformat/movenc: Drop redundant bit exact field from contextMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-03-19Merge commit '67a2912307c3c08f2725ccae162cfe3426b80184'Michael Niedermayer
* commit '67a2912307c3c08f2725ccae162cfe3426b80184': movenc: Don't assume that fragment durations in pts is equal to duration in dts Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19Merge commit '2889c5e16711770437f380f1bead5f72c6a0b17a'Michael Niedermayer
* commit '2889c5e16711770437f380f1bead5f72c6a0b17a': movenc: Heuristically set the duration of the last sample in a fragment if not set Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-19movenc: Don't assume that fragment durations in pts is equal to duration in dtsMartin Storsjö
For strict CFR, they should be pretty much equal, but if the stream is VFR, there can be a sometimes significant difference. Calculate the pts duration separately, used in sidx atoms and for tfrf/tfxd boxes in smooth streaming ismv files. Also make sure to reduce the duration of sidx entries according to edit lists. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-19movenc: Heuristically set the duration of the last sample in a fragment if ↵Martin Storsjö
not set Even if this is a guess, it is way better than writing a zero duration of the last sample in a fragment (because if the duration is zero, the first sample of the next fragment will have the same timestamp as the last sample in the previous one). Since we normally don't require libavformat muxer users to set the duration field in AVPacket, we probably can't strictly require it here either, so don't log this as a strict warning, only as info. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-17Merge commit '2cb9c2fc59c9267ad2631c07c81c188058502259'Michael Niedermayer
* commit '2cb9c2fc59c9267ad2631c07c81c188058502259': movenc: Allow interleaving samples when writing fragmented files Conflicts: libavformat/movenc.c libavformat/movenc.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16movenc: Allow interleaving samples when writing fragmented filesMartin Storsjö
This is incompatible with the omit_tfhd_offset flag (writing position independent fragments with interleaving requires the default_base_moof flag). This makes the moof atoms slightly bigger, but can be better for playback (improving locality of sample data in the mdat). Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-10Merge commit '448c8cfe4c53e9e806effd8505b46d57fa707061'Michael Niedermayer
* commit '448c8cfe4c53e9e806effd8505b46d57fa707061': movenc: Support setting fragment_index before the moov atom is written Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10Merge commit '0c5e380c2c266d2e8a13c000cc527529db837f10'Michael Niedermayer
* commit '0c5e380c2c266d2e8a13c000cc527529db837f10': movenc: Don't rely on the fragment index for vc1 info gathering Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-10movenc: Support setting fragment_index before the moov atom is writtenMartin Storsjö
This way, the caller doesn't need to coordinate setting the option after the moov atom has been written. The downside is that it is no longer possible to use the option for checking whether the moov atom already has been written, but a caller is able to keep track of that by other means anyway. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-10movenc: Don't rely on the fragment index for vc1 info gatheringMartin Storsjö
The previous use of the mov->fragments field, for determining whether written packets were part of the first fragment or not, didn't work as intended when using the empty_moov flag. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-05avformat/movenc: Add support for writing 'gama' atom to QuickTime .mov files.Kevin Wheatley
As this is depricated it should not be on by default, it is only supported for MOV containers, depends on avpriv_get_gamma_from_trc() Enable by: -movflags +write_gama This will use the color_trc to supply a gamma value, if desired an explicit value may be supplied using the -mov_gamma option supplying a suitable floating point value, values <=1e-6 will not be written. Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-26avformat/movenc: Add simplistic 'colr' tag writing support to mov containerKevin Wheatley
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-03Merge commit 'b3b0b35db2f3b61bf2f0f4fa85f5b6267d83c8fe'Michael Niedermayer
* commit 'b3b0b35db2f3b61bf2f0f4fa85f5b6267d83c8fe': movenc: Get rid of a hack for updating the dvc1 atom Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-03Merge commit '847bf5988fec1d3e65c1d8cf0cdb8caf0cfd0c1b'Michael Niedermayer
* commit '847bf5988fec1d3e65c1d8cf0cdb8caf0cfd0c1b': movenc: Add an option for delaying writing the moov with empty_moov Conflicts: libavformat/movenc.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-03movenc: Get rid of a hack for updating the dvc1 atomMartin Storsjö
Use the more generic approach with the delay_moov flag, instead of having a update mechanism specific to this one single atom. Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-03movenc: Add an option for delaying writing the moov with empty_moovMartin Storsjö
This delays writing the moov until the first fragment is written, or can be flushed by the caller explicitly when wanted. If the first sample in all streams is available at this point, we can write a proper editlist at this point, allowing streams to start at something else than dts=0. For AC3 and DNXHD, a packet is needed in order to write the moov header properly. This isn't added to the normal behaviour for empty_moov, since the behaviour that ftyp+moov is written during avformat_write_header would be changed. Callers that split the output stream into header+segments (either by flushing manually, with the custom_frag flag set, or by just differentiating between data written during avformat_write_header and the rest) will need to be adjusted to take this option into use. For handling streams that start at something else than dts=0, an alternative would be to use different kinds of heuristics for guessing the start dts (using AVCodecContext delay or has_b_frames together with the frame rate), but this is not reliable and doesn't necessarily work well with stream copy, and wouldn't work for getting the right initialization data for AC3 or DNXHD either. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-12-19Merge commit '59f0275dd0a42a7f90271a83a78e9ca5e69ff5b0'Michael Niedermayer
* commit '59f0275dd0a42a7f90271a83a78e9ca5e69ff5b0': movenc: Adjust the pts of new fragments similarly to what is done for dts Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-19movenc: Adjust the pts of new fragments similarly to what is done for dtsMartin Storsjö
The pts and the corresponding duration is written in sidx atoms, thus make sure these match up correctly. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-26Merge commit 'ee37620b6ae4783cda637408422044b2d14a688c'Michael Niedermayer
* commit 'ee37620b6ae4783cda637408422044b2d14a688c': movenc: Add a flag for indicating a discontinuous fragment Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-26movenc: Add a flag for indicating a discontinuous fragmentMartin Storsjö
This allows creating a later mp4 fragment without sequentially writing the earlier ones before (when called from a segmenter). Normally when writing a fragmented mp4 file sequentially, the first timestamps of a fragment are adjusted to match the end of the previous fragment, to make sure the timestamp is the same, even if it is calculated as the sum of previous fragment durations. (And for the first packet in a file, the offset of the first packet is written using an edit list.) When writing an individual mp4 fragment discontinuously like this (with potentially writing the earlier fragments separately later), there's a risk of getting a gap in the timeline if the duration field of the last packet in the previous fragment doesn't match up with the start time of the next fragment. Using this requires setting -avoid_negative_ts make_non_negative (or -avoid_negative_ts 0). Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-18Merge commit '40ed1cbf147d09fc0894bee160f0b6b6d9159fc5'Michael Niedermayer
* commit '40ed1cbf147d09fc0894bee160f0b6b6d9159fc5': movenc: Allow writing a DASH sidx atom at the start of files Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17Merge commit '2ded57371abead879bcee56da5131e5fac0d17ef'Michael Niedermayer
* commit '2ded57371abead879bcee56da5131e5fac0d17ef': movenc: Add support for writing sidx atoms for DASH segments Conflicts: Changelog libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17Merge commit '2d9d6afb8d2f284f5e620ecc19f643d5cd3facb8'Michael Niedermayer
* commit '2d9d6afb8d2f284f5e620ecc19f643d5cd3facb8': movenc: Factorize adding fragment info into a separate function Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17movenc: Allow writing a DASH sidx atom at the start of filesMartin Storsjö
This is mapped to the faststart flag (which in this case perhaps should be called "shift and write index at the start of the file"), which for fragmented files will write a sidx index at the start. When segmenting DASH into files, there's usually one sidx at the start of each segment (although it's not clear to me whether that actually is necessary). When storing all of it in one file, the MPD doesn't necessarily need to describe the individual segments, but the offsets of the fragments can be fetched from one large sidx atom at the start of the file. This allows creating files for the DASH ISO BMFF on-demand profile. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17movenc: Add support for writing sidx atoms for DASH segmentsMartin Storsjö
A flag "dash" is added, which enables the necessary flags for creating DASH compatible fragments. When this is enabled, one sidx atom is written for each track before every moof atom. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17movenc: Factorize adding fragment info into a separate functionMartin Storsjö
By calling this after writing the moof the first time (for calculating the moof size), we can avoid intermediate storage of tfrf_offset in MOVTrack. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-08Merge commit '1d8a0c1b43e58332a3a15c67d4adc161713cade8'Michael Niedermayer
* commit '1d8a0c1b43e58332a3a15c67d4adc161713cade8': movenc: Allow to request not to use edit lists Conflicts: libavformat/movenc.c See: 537ef8bebf8a35aab448db6ec876e275a10f0f15 Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-07movenc: Allow to request not to use edit listsMartin Storsjö
In this case, shift tracks to start from zero instead (potentially stretching the first sample in tracks that start later than the first one). Some software does not support edit lists at all, the adobe flash player seems to be one of these. This results in AV sync errors when edit lists are used to adjust AV sync. Some players, such as QuickTime, don't respect the duration for audio packets, so if an audio track starts later than the video track and the first audio sample gets a duration longer than the actual amount of data in it, the result will be out of sync. Based on patches by Michael Niedermayer. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-03Merge commit '2f221b6a9365aa400061e16266f2d1242f7169f8'Michael Niedermayer
* commit '2f221b6a9365aa400061e16266f2d1242f7169f8': movenc: Define the flag bits using shifts instead of as decimal numbers Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-03movenc: Define the flag bits using shifts instead of as decimal numbersMartin Storsjö
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-31Merge commit 'cf589faa5b7aed3bb38e08dcd00bd951e69686d1'Michael Niedermayer
* commit 'cf589faa5b7aed3bb38e08dcd00bd951e69686d1': movenc: Add a flag for using default-base-is-moof in tfhd atoms Conflicts: libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30Merge commit '573b1de2d7f1db71030f91ecdded7d0bc071f6b6'Michael Niedermayer
* commit '573b1de2d7f1db71030f91ecdded7d0bc071f6b6': movenc: Don't use track_id to decide which track is the first in a moof Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-30movenc: Add a flag for using default-base-is-moof in tfhd atomsMartin Storsjö
Similarly to the omit_tfhd_offset flag added in e7bf085b, this avoids writing absolute byte positions to the file, making them more easily streamable. This is a new feature from 14496-12:2012, so application support isn't necessarily too widespread yet (support for it in libav was added in 20f95f21f in July 2014). Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-30movenc: Don't use track_id to decide which track is the first in a moofMartin Storsjö
If one track doesn't have any samples within a moof, no traf/trun is written for it. When the omit_tfhd_offset flag is set, none of the tfhd atoms have any base_data_offset set, and the implicit offset (end of previous track fragment data, or start of the moof for the first trun) is used. Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-10avformat/movenc: add EAC3 muxing support.Benoit Fouet
Support only one independent substream right now, and only syncframes containing 6 blocks. Fixes part of ticket #3074 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07Merge commit 'da9cc22d5bd5f59756c2037b02966376da2cf323'Michael Niedermayer
* commit 'da9cc22d5bd5f59756c2037b02966376da2cf323': movenc: add track title to tracks Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07movenc: add track title to tracksJohn Stebbins
2014-08-05Merge commit '0897d2fdc7755849c3ae58d8b543ef734c200d3c'Michael Niedermayer
* commit '0897d2fdc7755849c3ae58d8b543ef734c200d3c': movenc: Add option to disable nero chapters Conflicts: doc/muxers.texi Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05movenc: Add option to disable nero chaptersJohn Stebbins
And add flag to muxer documentation. Nero chapters break some taggers (mp3tag and iTunes). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-07-14avformat/movenc: dont mark multichannel as mono tracks as containing the ↵Michael Niedermayer
center channel Fixes Ticket3727 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11Merge commit 'f90729699db9ede2bef2b28000f1795dab1b8996'Michael Niedermayer
* commit 'f90729699db9ede2bef2b28000f1795dab1b8996': mov: Do not group tracks if more than one is enabled per type Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-11mov: Do not group tracks if more than one is enabled per typeLuca Barbato
The specification requires at most 1 track enabled per alternate group.
2014-05-19Merge commit '0ba5299a805e9ccaef1a757381fc2ada4d54b8a1'Michael Niedermayer
* commit '0ba5299a805e9ccaef1a757381fc2ada4d54b8a1': movenc: use the "encoder" metadata tag to write stsd Compressorname Conflicts: libavformat/movenc.c libavformat/movenc.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-18movenc: use the "encoder" metadata tag to write stsd CompressornameAnton Khirnov
This mirrors the demuxer behaviour and avoids accessing AVCodecContext.codec, which should not be done in muxers.
2014-03-23Merge commit '1e9db41e2a2166be5671b088ef4ad06a40af459f'Michael Niedermayer
* commit '1e9db41e2a2166be5671b088ef4ad06a40af459f': movenc: Allow override of major brand in ftyp atom Conflicts: libavformat/movenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>