summaryrefslogtreecommitdiff
path: root/libavformat/movenc.c
Commit message (Collapse)AuthorAge
...
| * mov: Convert to the new bitstream readerAlexandra Hájková2017-01-13
| |
| * Use correct printf conversion specifiers for POSIX integer typesDiego Biurrun2016-12-23
| |
* | movenc: take packet dts shifting into mention in check_pktJan Ekström2017-10-04
| | | | | | | | | | | | | | | | | | | | | | This FFmpeg-specific "fuzzer fix" was never perfect, but now it stopped encoding of actual content with a big enough DTS shift. This returns the function to its original state of results before negative CTS offsets were added. I remember dealing with this function before, but somehow had forgotten about it during VDD. The test cases not tripping this over also didn't help.
* | movenc: Add an option for enabling negative CTS offsetsMartin Storsjö2017-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | This reduces the need for an edit list; streams that start with e.g. dts=-1, pts=0 can be encoded as dts=0, pts=0 (which is valid in mov/mp4) by shifting the dts values of all packets forward. This avoids the need for edit lists for such streams (while they still are needed for audio streams with encoder delay). This eases conformance with the DASH-IF interoperability guidelines. Signed-off-by: Martin Storsjö <martin@martin.st> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat: replace all uses of av_copy_packet()James Almer2017-09-25
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | avformat/movenc: reindent after the previous commitJames Almer2017-08-09
| |
* | lavf/movenc.c: Set sgpd and sbgp atoms to represent decoder delay for AAC.Sasi Inguva2017-08-10
| | | | | | | | | | | | | | | | According to https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFAppenG/QTFFAppenG.html and ISO-IEC-14496-12 Section 10.1.1.1 and 10.1.1.3 Signed-off-by: Sasi Inguva <isasi@google.com> Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavf/movenc: support GPMF track (gpmd) remuxingClément Bœsch2017-07-24
| | | | | | | | | | See https://github.com/gopro/gpmf-parser for more information on the data stream itself.
* | movenc: Add 'keywords' metadataKieran O'Leary2017-07-13
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | movenc: allow alternative hvc1 h.265 codec tagJohn Stebbins2017-07-05
| | | | | | | | | | | | | | | | If AVCodecParameters.codec_tag is 'hvc1' use it instead of 'hev1' for h.265 streams. QuickTime (and other Apple software) requires 'hvc1'. (cherry picked from commit 84ab1cc437fa47a00532f305b9fe15b5b66c8c5e) Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | movenc: write correct format hvcc when tag is hvc1John Stebbins2017-07-05
| | | | | | | | | | (cherry picked from commit 1ea9b7fdf99b60c0db95a2ce97b2108469bbb245) Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | movenc: move tags definitions to where they are usedJohn Stebbins2017-07-05
| | | | | | | | | | (cherry picked from commit 1c64bae648eeb39c8d8a8d81ee142b9eec9fae7b) Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | movenc: simplify codec_tag lookupJohn Stebbins2017-07-05
| | | | | | | | | | | | | | | | | | | | | | mux.c init_muxer() already sets codec_tag correctly in the cases simplified here. This also adds the capability to support alternative tags for the same codec_id. (cherry picked from commit f6f86f432fe51526a7aad2bdb025d6a45d239883) Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | movenc: use correct tag list for AVOutputFormat.codec_tagJohn Stebbins2017-07-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ff_mp4_obj_type contains the wrong type of tags for AVOutputFormat.codec_tag. AVOutputFormat.codec_tag is used to validate AVCodecParameters.codec_tag so needs to be the same type of tag. Creates new tag lists for mp4 and ismv. New tag lists support same list of codecs found in ff_mp4_obj_type. psp uses the same tag list as mp4 since these both use mp4_get_codec_tag to look up tags. (cherry picked from commit 713efb2c0d013a42be4051adb7cd90a7c2cbbb4f) Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | movenc: encryption with time code track fixerankor2017-05-28
| | | | | | | | | | | | | | | | | | instead of deciding whether to encrypt based on the encryption scheme, decide according to whether cenc was initialized or not. mov_create_timecode_track calls ff_mov_write_packet with a track that doesn't have cenc initialized. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/movenc: always check for new extradata on a packetJames Almer2017-05-24
| | | | | | | | | | | | | | | | Don't just look at zero sized packets, and also check for AAC extradata updates, in preparation for the following patches. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* | avformat/movenc: remove experimental check for VP9 streamsJames Almer2017-05-17
| | | | | | | | The muxer has been updated and is now complaint with the v1.0 of the spec.
* | movenc/isom: update vpcC box to version 1.0 of the specificationHendrik Leppkes2017-05-16
| | | | | | | | | | | | | | | | | | This brings our generation of the vpcC box up to date to version 1.0 of the VP Codec ISO Media File Format Binding. Specifically, color/transfer properties are now written with values based on ISO/IEC 23001-8, which is the same reference specification the AVColor* enumerations are based on.
* | 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.