summaryrefslogtreecommitdiff
path: root/libavformat/movenc.c
Commit message (Collapse)AuthorAge
* avformat/movenc: Explicitly address potential division by zero.Lucas Cooper2017-04-29
| | | | | | | | | | | | | | find_fps attempts to infer framerate from AVCodec's timebase. When this results in a frame rate that isn't explicitly marked as supported in av_timecode_check_frame_rate, find_fps returns the AVStream's avg_frame_rate, which, per avformat.h, _may_ be set (or not). mov_get_mpeg2_xdcam_codec_tag, mov_get_h264_codec_tag and find_compressor attempt to call av_q2d on the return value of find_fps, which in the above case, may result in division by zero and therefore, an undefined frame rate when NaN is converted to int. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/movenc: Fix potential leak of sgpd_entries array.Matthew Gregan2017-04-12
| | | | | Signed-off-by: Matthew Gregan <kinetik@flim.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/movenc: Fix mix of declaration and statementMichael Niedermayer2017-04-11
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/movenc: Add experimental muxing support for Opus in ISO BMFF (MP4).Matthew Gregan2017-04-11
| | | | | | | | | Based on the draft spec at http://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html '-strict -2' is required to create files in this format. Signed-off-by: Matthew Gregan <kinetik@flim.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/movenc: auto insert vp9_superframe bsf when neededJames Almer2017-04-10
| | | | | | | Experimental VP9 support was added to the muxer recently. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* Fix all -Wformat warnings raised by DJGPPClément Bœsch2017-03-29
|
* lavf: fix usages of av_get_codec_tag_string()Clément Bœsch2017-03-29
|
* avformat/movenc: allow st3d and sv3d mov atoms to be written in strict ↵James Almer2017-03-27
| | | | | | | unofficial mode They are unofficial extensions to the format for the time being, not an experimental feature.
* avformat/movenc: restrict st3d and sv3d mov atoms to MODE_MP4James Almer2017-03-27
|
* movenc: Add support for writing st3d and sv3d boxes.Aaron Colwell2017-03-27
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat, ffmpeg: deprecate old rotation APIwm42017-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old "API" that signaled rotation as a metadata value has been replaced by DISPLAYMATRIX side data quite a while ago. There is no reason to make muxers/demuxers/API users support both. In addition, the metadata API is dangerous, as user tags could "leak" into it, creating unintended features or bugs. ffmpeg CLI has to be updated to use the new API. In particular, we must not allow to leak the "rotate" tag into the muxer. Some muxers will catch this properly (like mov), but others (like mkv) can add it as generic tag. Note applications, which use libavformat and assume the old rotate API, will interpret such "rotate" user tags as rotate metadata (which it is not), and incorrectly rotate the video. The ffmpeg/ffplay tools drop the use of the old API for muxing and demuxing, as all muxers/demuxers support the new API. This will mean that the tools will not mistakenly interpret per-track "rotate" user tags as rotate metadata. It will _not_ be treated as regression. Unfortunately, hacks have been added, that allow the user to override rotation by setting metadata explicitly, e.g. via -metadata:s:v:0 rotate=0 See references to trac #4560. fate-filter-meta-4560-rotate0 tests this. It's easier to adjust the hack for supporting it than arguing for its removal, so ffmpeg CLI now explicitly catches this case, and essentially replaces the "rotate" value with a display matrix side data. (It would be easier for both user and implementation to create an explicit option for rotation.) When the code under FF_API_OLD_ROTATE_API is disabled, one FATE reference file has to be updated (because "rotate" is not exported anymore). Tested-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit '83548fe894cdb455cc127f754d09905b6d23c173'James Almer2017-03-21
|\ | | | | | | | | | | | | * commit '83548fe894cdb455cc127f754d09905b6d23c173': lavf: fix usage of AVIOContext.seekable Merged-by: James Almer <jamrial@gmail.com>
| * lavf: fix usage of AVIOContext.seekableAnton Khirnov2016-09-30
| | | | | | | | | | | | | | | | It is supposed to be a flag. The only currently defined value is AVIO_SEEKABLE_NORMAL, but other ones may be added in the future. However all the current lavf code treats this field as a bool (mainly for historical reasons). Change all those cases to properly check for AVIO_SEEKABLE_NORMAL.
* | movenc: add support for track names in ISML manifestsJan Ekström2017-02-12
| | | | | | | | | | | | | | | | | | | | | | | | This enables having multiple tracks of the same type which would be treated as different things by the media server (as opposed to different bit rate versions of the same track). According to the smooth streaming specification, just setting the systemLanguage tag is not enough to note that a track with the same attributes differs from another one. Reviewed-by: Martin Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavf/movenc: Remove two unused variables.Carl Eugen Hoyos2017-02-10
| |
* | avformat/movenc: Restrict experimental VP9 support to MODE_MP4.Matthew Gregan2016-11-21
| | | | | | | | | | Signed-off-by: Matthew Gregan <kinetik@flim.org> Signed-off-by: James Almer <jamrial@gmail.com>
* | Add experimental muxing support for FLAC in ISO BMFF (MP4).Matthew Gregan2016-11-21
| | | | | | | | | | | | | | | | | | Based on the draft spec at https://git.xiph.org/?p=flac.git;a=blob;f=doc/isoflac.txt '-strict experimental' is required to create files in this format. Signed-off-by: Matthew Gregan <kinetik@flim.org> Signed-off-by: James Almer <jamrial@gmail.com>
* | avformat/movenc: Check frame rate before use.Michael Niedermayer2016-11-17
| | | | | | | | | | | | | | | | | | Fixes division by 0 This is similar to how avg_frame_rate is checked elsewhere Fixes: 6d24add0455f41b1b45b7ba615cd46f3/asan_generic_dc34c3_5480_0a2ef411cae999b9871ed71a2e481b71.mov Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '4f7723cb3b913c577842a5bb088c804ddacac8df'Hendrik Leppkes2016-11-17
|\| | | | | | | | | | | | | * commit '4f7723cb3b913c577842a5bb088c804ddacac8df': movenc: Add an option for skipping writing the mfra/tfra/mfro trailer Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * movenc: Add an option for skipping writing the mfra/tfra/mfro trailerMartin Storsjö2016-07-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When writing a fragmented file, we by default write an index pointing to all the fragments at the end of the file. This causes constantly increasing memory usage during the muxing. For live streams, the index might not be useful at all. A similar fragment index is written (but at the start of the file) if the global_sidx flag is set. If ism_lookahead is set, we need to keep data about the last ism_lookahead+1 fragments. If no fragment index is to be written, we don't need to store information about all fragments, avoiding increasing the memory consumption linearly with the muxing runtime. This fixes out of memory situations with long live mp4 streams. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '785c25443b56adb6dbbb78d68cccbd9bd4a42e05'Hendrik Leppkes2016-11-13
|\| | | | | | | | | | | | | * commit '785c25443b56adb6dbbb78d68cccbd9bd4a42e05': movenc: Apply offsets on timestamps when peeking into interleaving queues Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * movenc: Apply offsets on timestamps when peeking into interleaving queuesMartin Storsjö2016-06-28
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | lavf/movenc: Do not print an error when muxing gray8 rawvideo.Carl Eugen Hoyos2016-11-05
| | | | | | | | This was fixed in 9a2778082121ea44d06a2f00f822ea99109c7fd8
* | lavf/movenc+dashenc: add automatic bitstream filteringRodger Combs2016-10-24
| | | | | | | | This is disabled by default when the empty_moov flag is enabled
* | lavf/movenc: add deinit functionRodger Combs2016-10-24
| |
* | avformat/movenc: Skip duration check for discontinuous fragmentsMichael Niedermayer2016-10-19
| | | | | | | | | | Found-by: Daemon404 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: Check frame rate in mov_write_uuidprof_tag()Michael Niedermayer2016-10-10
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: Switch mov_write_uuidprof_tag() to avg_frame_rateMichael Niedermayer2016-10-10
| | | | | | | | | | | | | | Using the stream timebase simply overflows Fix integer overflow in psp framerate computation Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavf/movenc: Put correct display aspect ratio in ARES atom.Carl Eugen Hoyos2016-09-29
| |
* | movenc: Add support for writing language codes into ISML manifestsJan Ekström2016-09-29
| | | | | | | | | | | | | | Streaming servers appear to ignore all other language metadata. Signed-off-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Josh de Kock <josh@itanimul.li>
* | movenc: use similar logic to DASH when writing bit rate to ISMLJan Ekström2016-09-28
| | | | | | | | | | | | | | | | | | | | This way, in case of bit rate not being set, max_bitrate will be used instead. This enables, for example, re-using max_bitrate information from the input or doing transcoding with a rate control mode that is not bit rate based. Signed-off-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavf/movenc: Allow to disable writing the timecode track.Carl Eugen Hoyos2016-09-26
| | | | | | | | Fixes ticket #5492.
* | avformat/movenc: write pasp atom even if sar.num == sar.denPaul B Mahol2016-09-22
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | avformat/movenc: Make the packet check more tolerantMichael Niedermayer2016-09-16
| | | | | | | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: Check packet in mov_write_single_packet() tooMichael Niedermayer2016-09-16
| | | | | | | | | | | | | | | | Fixes assertion failure Found-by: durandal117 Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: Factor check_pkt() outMichael Niedermayer2016-09-16
| | | | | | | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: Check first DTS similar to dts differenceMichael Niedermayer2016-09-10
| | | | | | | | | | | | | | | | Fixes assertion failure Fixes: b84b53855a0b74560e64c6f45f505a13/signal_sigabrt_7ffff6ae7c37_3837_ef4e243ea5b4fa8d0becf4afe9166604.avi Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: added ability to use original stream ids as track ids ↵Erkki Seppälä2016-09-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of regenerating them Sometimes it's useful to be able to define the exact track numbers in the generated track, instead of always beginning at track id 1. Using the option use_stream_ids_as_track_ids now copies the use stream ids to track ids. Dynamically generated tracks (ie. tmcd) have their track numbers defined as continuing from the highest numbered stream id. Signed-off-by: Erkki Seppälä <erkki.seppala.ext@nokia.com> Signed-off-by: OZOPlayer <OZOPL@nokia.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavf/movenc: Add a missing assignment if memory allocation fails.Carl Eugen Hoyos2016-08-24
| | | | | | | | | | Fixes a warning: libavformat/movenc.c:5947:17: warning: statement with no effect [-Wunused-value]
* | avformat/movenc: Free extradata after successfull allocation of new instead ↵Michael Niedermayer2016-08-19
| | | | | | | | | | | | | | | | of before This avoids erroring out with extradata lost and extradata size mismatching Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: allow rewriting extradataUmair Khan2016-08-19
| | | | | | | | | | Signed-off-by: Umair Khan <omerjerk@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/dnxhddata: move avpriv_dnxhd_parse_header_prefix to a headerJames Almer2016-07-25
| | | | | | | | | | | | | | | | | | It's a small and simple function that can be inlined. This removes one private symbol and should reduce object dependencies with the next major bump Signed-off-by: James Almer <jamrial@gmail.com>
* | libavformat/movenc: add dnxhr compatibility for apple playersMark Reid2016-07-23
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: add option to use keys/mdta atoms for metadataDavid Murmann2016-06-25
| | | | | | | | | | | | | | | | Add -movflags use_metadata_tags to the mov muxer. This will cause the muxer to write all metadata to the file in the keys and mtda atoms. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | movenc: mark astronomical_body const string as staticClément Bœsch2016-06-25
| |
* | avformat: Fix ff_interleaved_peek()Michael Niedermayer2016-06-25
| | | | | | | | | | | | Fixes assertion failures in movenc Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit 'b84f3a40034d28828c4ca639d012479a7eaace28'Clément Bœsch2016-06-24
|\| | | | | | | | | | | | | * commit 'b84f3a40034d28828c4ca639d012479a7eaace28': movenc: Write 'loci' geotag metadata for 3gp and mp4 Merged-by: Clément Bœsch <clement@stupeflix.com>
| * movenc: Write 'loci' geotag metadata for 3gp and mp4Martin Storsjö2016-05-19
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'f12a705ee570e16ca692c66b62821a2dbdf82566'Clément Bœsch2016-06-24
|\| | | | | | | | | | | | | * commit 'f12a705ee570e16ca692c66b62821a2dbdf82566': movenc: Factorize a function for finding a metadata entry and the associated language Merged-by: Clément Bœsch <clement@stupeflix.com>
| * movenc: Factorize a function for finding a metadata entry and the associated ↵Martin Storsjö2016-05-19
| | | | | | | | | | | | language Signed-off-by: Martin Storsjö <martin@martin.st>