summaryrefslogtreecommitdiff
path: root/libavformat/isom.h
Commit message (Collapse)AuthorAge
* avformat/mov: add support for reading Content Light Level BoxJames Almer2017-05-27
| | | | | | | | As defined in "VP Codec ISO Media File Format Binding v1.0" https://github.com/webmproject/vp9-dash/blob/master/VPCodecISOMediaFileFormatBinding.md Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: add support for reading Mastering Display Metadata BoxJames Almer2017-05-27
| | | | | | | | As defined in "VP Codec ISO Media File Format Binding v1.0" https://github.com/webmproject/vp9-dash/blob/master/VPCodecISOMediaFileFormatBinding.md Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* lavf/mov.c: Add -advanced_editlist option for mov format.Sasi Inguva2017-03-31
| | | | | | | Adding an MOV format option to turn on/off the editlist supporting code, introduced in https://github.com/FFmpeg/FFmpeg/commit/ca6cae73db207f17a0d5507609de12842d8f0ca3 Signed-off-by: Sasi Inguva <isasi@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* mov: fix decryption with edit listerankor2017-02-01
| | | | | | | | | | Retain the ranges of frame indexes when applying edit list in mov_fix_index. The index ranges are then used to keep track of the frame index of the current sample. In case of a discontinuity in frame indexes due to edit, update the auxiliary info position accordingly. Reviewed-by: Sasi Inguva <isasi@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Add missing #includes for standalone spherical-information-related headersDiego Biurrun2016-12-14
| | | | | (cherry picked from commit f912fd767e55bbb5a1554bd99bacab007659609c) Signed-off-by: James Almer <jamrial@gmail.com>
* mov: Export spherical informationVittorio Giovara2016-12-07
| | | | | | | This implements Spherical Video V1 and V2, as described in the spatial-media collection by Google. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* mov: Evaluate the movie display matrixVittorio Giovara2016-11-30
| | | | | | | | | This matrix needs to be applied after all others have (currently only display matrix from trak), but cannot be handled in movie box, since streams are not allocated yet. So store it in main context, and apply it when appropriate, that is after parsing the tkhd one. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* lavf/mov.c: Use the first sidx for tracks without sidx.Sasi Inguva2016-11-03
| | | | | | | | According to spec ISO_IEC_15444_12 "For any media stream for which no segment index is present, referred to as non‐indexed stream, the media stream associated with the first Segment Index box in the segment serves as a reference stream in a sense that it also describes the subsegments for any non‐indexed media stream." 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/mov: improve `tref/chap` chapter handlingRodger Combs2016-10-24
| | | | | | | | | 3 parts: - Supports multiple chapter streams - Exports regular text chapter streams as opaque data. This prevents consumers from showing chapters as if they were regular subtitle streams. - Exports video chapter streams as thumbnails, and provides the first one as an attached_pic.
* mov: Remove ancient heuristic hackDerek Buitenhuis2016-08-25
| | | | | | | | This breaks files with legitimate single-entry edit lists, and the hack, introduced in f03a081df09f9c4798a17d7e24446ed47924b11b, has no link to any known sample in its commit message. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* Merge commit '76729970049fe95659346503f7401a5d869f9959'Matthieu Bouron2016-07-13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '76729970049fe95659346503f7401a5d869f9959': mov: Implement support for multiple sample description tables Notes: * The sc->stsc_data[index].id checks have been moved from the mov_read_stsc to mov_read_packet before the value is used in mov_change_extradata to not break playback of samples with broken stsc entries (see sample of ticket #1918). * sc->stsc_index is now checked against sc->stsc_count - 1 before it is incremented so it remains lesser than sc->stsc_count. Fixes a crash with: ./ffmpeg -i matrixbench_mpeg2.mpg -t 1 -frag_duration 200k test.mov ./ffprobe -show_packets test.mov Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
| * mov: Implement support for multiple sample description tablesVittorio Giovara2016-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Store data from each stsd in a separate extradata buffer, keep track of the stsc index for read and seek operations, switch buffers when the index differs. Decoder is notified with an AV_PKT_DATA_NEW_EXTRADATA packet side data. Since H264 supports this notification, and can be reset midstream, enable this feature only for multiple avcC's. All other stsd types (such as hvc1 and hev1) need decoder-side changes, so they are left disabled for now. This is implemented only in non-fragmented MOVs. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * mov: Add an option to toggle dref openingDerek Buitenhuis2016-01-21
| | | | | | | | | | | | | | | | | | This feature is mostly only used by NLE software, and is both of dubious value being enabled by default, and a possible security risk. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * mov: Add option to keep exact packet sequence after seekingDerek Buitenhuis2015-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current behavior may produce a different sequence of packets after seeking, compared to demuxing linearly from the beginning. This is because the MOV demuxer seeks in each stream individually, based on timestamp, which may set each stream at a slightly different position than if the file would have been read sequentially. This makes implementing certain operations, such as segmenting, quite hard, and slower than need be. Therefore, add an option which retains the same packet sequence after seeking, as when a file is demuxed linearly.
* | mov - support seek in encrypted mp4erankor2016-03-06
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | mov: Add an option to toggle dref openingDerek Buitenhuis2016-01-20
| | | | | | | | | | | | | | | | | | This feature is mostly only used by NLE software, and is both of dubious value being enabled by default, and a possible security risk. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/mov: support cenc (common encryption)erankor2015-12-31
| | | | | | | | | | | | | | | | | | | | support reading encrypted mp4 using aes-ctr, conforming to ISO/IEC 23001-7. a new parameter was added: - decryption_key - 128 bit decryption key (hex) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/mov: Enable parser for mp3s by old HandBrakeMichael Niedermayer2015-12-13
| | | | | | | | | | | | Fixes Ticket5047 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavformat/mov.c: allow QuickTime metadata to come after traksNeil Birkbeck2015-12-05
| | | | | | | | | | | | | | QuickTime metadata can come after trak data. Add indicator for which trak is being parsed (-1 if none) so that global metadata after the trak can be parsed. Signed-off-by: Neil Birkbeck <neil.birkbeck@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avformat/mov: Add option to ignore chapters during parsingBryan Huh2015-11-10
| | | | | | | | | | | | | | | | | | | | Chapter-indexing can be expensive since chapters may be interspersed throughout the entire file and may require many seeks - especially costly when consuming a video over a remote protocol like http. Furthermore it is often unnecessary, especially when only trying to get video info (e.g. via ffprobe). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | mov: Add support parsing QuickTime Metadata Keys.Tinglin Liu2015-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Apple dev specification: https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/Metadata/Metadata.html Basically the structure is like: |--meta |----hdlr |----keys |----ilst 1) The handler type in the metadata handler atom is ‘mdta’. 2) The key and value are stored separately for each key-value pair. The 'keys' atom stores the key table, while 'ilst' atom stores the values corresponding to the indices in the key table. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | lavf/mov: add support for sidx fragment indexesRodger Combs2015-10-09
| | | | | | | | Fixes trac #3842
* | Add support for Audible AAX (and AAX+) filesVesselin Bontchev2015-07-19
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | mov: Add option to keep exact packet sequence after seekingDerek Buitenhuis2015-03-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current behavior may produce a different sequence of packets after seeking, compared to demuxing linearly from the beginning. This is because the MOV demuxer seeks in each stream individually, based on timestamp, which may set each stream at a slightly different position than if the file would have been read sequentially. This makes implementing certain operations, such as segmenting, quite hard, and slower than need be. Therefore, add an option which retains the same packet sequence after seeking, as when a file is demuxed linearly.
* | avformat/mov: move edit list heuristics into mov_build_index()Clément Bœsch2015-01-02
| | | | | | | | | | mov_read_elst() is now only responsible from storing the table in a data structure; this is consistent with other table readers functions.
* | avformat/mov: check atom nesting depthMichael Niedermayer2014-12-16
| | | | | | | | | | | | | | Fixes call stack overflow Fixes: case1_call_stack_overflow.mp4 Found-by: Michal Zalewski <lcamtuf@coredump.cx> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'b704b648f9ecb830874627db958a37e004107d1b'Michael Niedermayer2014-12-08
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'b704b648f9ecb830874627db958a37e004107d1b': mov: parse XMP metadata on demand Conflicts: libavformat/isom.h libavformat/version.h See: 054c506e3da35471ea92dbedcaaf720d0754f04e The default is left unchanged at enabled We can change the default if people prefer but i do not want to do that in a merge. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mov: parse XMP metadata on demandVittorio Giovara2014-12-08
| | | | | | | | | | | | | | | | | | The Extensible Metadata Platform tag can contain various kind of data which are not strictly related to the video file, such as history of edits and saves from the project file. So display XMP metadata only when the user explicitly requires it. Based on a patch by Marek Fort <marek.fort@chyronhego.com>.
* | Support muxing 4k AVC Intra in mov.Carl Eugen Hoyos2014-12-02
| | | | | | | | Reported and tested by Rens Dijkshoorn, rens onlinemedia nl
* | Merge commit 'e352b293712ff7cbde67eba3ce3f8510b037de09'Michael Niedermayer2014-12-02
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'e352b293712ff7cbde67eba3ce3f8510b037de09': mov: Add an option for exporting all metadata Conflicts: libavformat/isom.h libavformat/mov.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mov: Add an option for exporting all metadataVittorio Giovara2014-12-02
| |
* | avformat/mov: auodetect "use_mfra_for"Michael Niedermayer2014-10-15
| | | | | | | | | | Reviewed-by: Mika Raento <mikie@iki.fi> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | mov.c: allow reading fragment start dts/pts from fragmented mp4Mika Raento2014-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces a new option to the mov demuxer: -use_mfra_for (pts|dts). When it's given and moofs and a MFRA are present, the MFRA's TFRAs are read for fragment start times. Unfortunately some programs that produce fragmented mp4s use the TFRA time field for dts and some for pts. There is no realistic way to detect which is the case, hence the responsibility is punted onto the user. This also means that no behavioural change is enabled by default - you must pass either dts or pts for anything to happen. Without this change, timestamps for some discontinuous fragmented mp4 are wrong, and cause audio/video desync and are not usable for generating HLS. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '86dfcfd0e30d6645eea2c63c1c60a0550e7c97ea'Michael Niedermayer2014-08-19
|\| | | | | | | | | | | | | * commit '86dfcfd0e30d6645eea2c63c1c60a0550e7c97ea': mov: Drop unused parameter from ff_mov_read_esds() Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mov: Drop unused parameter from ff_mov_read_esds()Diego Biurrun2014-08-19
| | | | | | | | This is cleaner and avoids an uninitialized variable warning with MSVC.
* | Merge commit '20f95f21f9b9595608ba668a6eca78f2d508be67'Michael Niedermayer2014-07-01
|\| | | | | | | | | | | | | * commit '20f95f21f9b9595608ba668a6eca78f2d508be67': mov: Support default-base-is-moof. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mov: Support default-base-is-moof.Yusuke Nakamura2014-07-01
| | | | | | | | | | | | | | | | | | default-base-is-moof shall be set to track fragments compatible with DASH Media Segments. So, this is a fundamental support for ISOBMFF ver. DASH. This is meaningful only when base-data-offset-present is absent and two or more track fragments are present in a movie fragment. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Read mov files where the moov atom is hidden within a free atom.Carl Eugen Hoyos2014-05-31
| | | | | | | | Fixes ticket #1551 / issue 2226.
* | Merge commit '853cc025d63ee2539fc0460dab62c5b9a3fd2043'Michael Niedermayer2014-05-19
|\| | | | | | | | | | | | | | | | | | | | | * commit '853cc025d63ee2539fc0460dab62c5b9a3fd2043': mov: store display matrix in a stream side data Conflicts: libavformat/isom.h libavformat/mov.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mov: store display matrix in a stream side dataVittorio Giovara2014-05-19
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avformat/mov: redesign the fps calculationMichael Niedermayer2014-01-22
| | | | | | | | | | | | | | This uses STTS and TRUN information to calculate the fps It seems to work with more files than the previous code Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'ecf442a58b09bdb1dc1d2c3904b82ac5f79b2878'Michael Niedermayer2013-11-14
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit 'ecf442a58b09bdb1dc1d2c3904b82ac5f79b2878': lavf: improve support for AVC-Intra files. Conflicts: libavformat/internal.h libavformat/isom.c libavformat/mxfdec.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavf: improve support for AVC-Intra files.Reimar Döffinger2013-11-14
| | | | | | | | | | | | | | | | Generate extradata with SPS/PPS based on container dimensions. Authors of this commit are: Reimar and Thomas Mundt Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '1f70a5ad284b33e8b3e2b40a5cb33055419781b7'Michael Niedermayer2013-08-23
|\| | | | | | | | | | | | | * commit '1f70a5ad284b33e8b3e2b40a5cb33055419781b7': mov: use tkhd enabled flag to set the default track Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mov: use tkhd enabled flag to set the default trackJohn Stebbins2013-08-23
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avformat/mov: read stream bitrates from isml manifestAlexandre Sicard2013-07-08
| | | | | | | | | | | | | | | | This allows to read a live isml movie and segment it using the smoothstreaming muxer, which requires the bitrates to be known for each stream. Signed-off-by: Alexandre Sicard <alexandre.sicard@smartjog.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avformat/mov: Rename alt_sample_size so its name matches what it isMichael Niedermayer2013-05-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | mov: prevent double free if the caller replaces the io context.Michael Niedermayer2013-01-22
| | | | | | | | | | | | Fixes Ticket2148 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | lavf/mov: simplify timecode track ref.Clément Bœsch2013-01-01
| | | | | | | | | | There can be only one track reference. The multiple tref handling is handled at a different level.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-10-06
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: yuv4mpeg: return proper error codes. Give all anonymously typedeffed structs in headers a name fate: Add parseutils test parseutils-test: Drop random colors from parsing test vf_pad/scale: use double precision for aspect ratios. build: error on variable-length arrays ppc: swscale: rework yuv2planeX_altivec() ppc: fmtconvert: kill VLA in float_to_int16_interleave_altivec() x86: dsputil: kill VLA in gmc_mmx() libspeexenc: Updated commentary to reflect recent changes libspeexenc: Add an option for enabling DTX doc/APIchanges: fill in missing dates and hashes. lavr: bump major to 1 and declare it stable. lavr: change the type of the data buffers to uint8_t**. lavc: deprecate the audio resampling API. Conflicts: cmdutils.h configure doc/APIchanges ffplay.c libavcodec/dwt.h libavcodec/libspeexenc.c libavfilter/vf_pad.c libavfilter/vf_scale.c libavformat/asf.h tests/fate/libavutil.mak tests/ref/fate/parseutils Merged-by: Michael Niedermayer <michaelni@gmx.at>