summaryrefslogtreecommitdiff
path: root/libavformat/mov.c
Commit message (Collapse)AuthorAge
...
* 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>.
* mov: parse @PRM and @PRQ metadata tagsVittorio Giovara2014-12-08
| | | | | | | | | These tags describe the product and quicktime library version respectively. They originate from Adobe Premiere, but also some other programs use them. Contrary to other tags, they contain 'raw' data which is not to be interpreted as iso639 or mac strings. Based on a patch by Peter Ross <pross@xvid.org>.
* mov: cosmetics: reorder the list of tagsVittorio Giovara2014-12-08
| | | | | Alphabetically order the list by the tag to facilitate the insertion of new ones.
* mov: skip version and flags attributes in mov_read_chan()Matthieu Bouron2014-12-05
| | | | | | | | | Fixes decting channel layout for files with uncommon audio, such as FL and FR in two separate streams. Introduced in 3bab7cd. CC: libav-devel@libav.org Sample-Id: ticket1474.mov Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* mov: allocate the tag value dynamicallyThilo Borgmann2014-12-02
| | | | | | | | This allows to load metadata entries longer than 1024 bytes. Displaying them is still limited to 1024 characters, but applications can load them fully now. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* mov: Add an option for exporting all metadataVittorio Giovara2014-12-02
|
* mov: do not truncate the language-prefixed tagVittorio Giovara2014-12-02
|
* mov: check ff_get_wav_header() return valueVittorio Giovara2014-11-18
| | | | | CC: libav-stable@libav.org Bug-Id: CID 717497
* Use gmtime_r instead of gmtime and localtime_r instead of localtimeMartin Storsjö2014-10-26
| | | | | | | | | | | gmtime isn't thread safe in general. In msvcrt (which lacks gmtime_r), the buffer used by gmtime is thread specific though. One call to localtime is left in avconv_opt.c, where thread safety shouldn't matter (instead of making avconv depend on the libavutil internal header). Signed-off-by: Martin Storsjö <martin@martin.st>
* lavf: Check the return value of strftimeMartin Storsjö2014-10-26
| | | | | | | | If the buffer provided to strftime is too small, the buffer contents are indeterminate - it does not guarantee actually null terminating the buffer. Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: fix assigment checkVittorio Giovara2014-10-24
| | | | | CC: libav-stable@libav.org Bug-Id: CID 1197050
* mov: Correctly check the color transfer characteristics rangeVittorio Giovara2014-10-15
| | | | Reported-by: Ruoyu <liangry@ucweb.com>
* mov: Handle tfdt atomsMartin Storsjö2014-10-14
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: support the Color Parameter Atoms 'colr'Vittorio Giovara2014-10-08
|
* mov: Drop unused parameter from ff_mov_read_esds()Diego Biurrun2014-08-19
| | | | This is cleaner and avoids an uninitialized variable warning with MSVC.
* mov: update AVFormatContext.event_flags with METADATA_UPDATED whenever ↵Andrew Stone2014-08-13
| | | | | | metadata changes. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* mov: free the dv demux context with avformat_free_context()Anton Khirnov2014-07-09
|
* mov: Remove a variable that is set but never usedMartin Storsjö2014-07-08
| | | | | | This silences a warning with gcc. Signed-off-by: Martin Storsjö <martin@martin.st>
* 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>
* mov: Export geotag metadata fieldsMartin Storsjö2014-06-06
| | | | | | | | | | | | The '?xyz' form is used by android devices (and according to apple mailing list archives, also by older iOS devices). The 'loci' field (defined in 3GPP 26.244) is used by recent iOS devices. Even though the loci field can contain an altitude, it was plain 0 in my sample. Just export longitude and latitude, in a string format matching the one used by the '?xyz' metadata field. Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: store display matrix in a stream side dataVittorio Giovara2014-05-19
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* mov: export stsd Compressorname in metadataAnton Khirnov2014-05-01
| | | | | Stop using the undocumented to-be-deprecated AVCodecContext.codec_name field.
* mov: read hydrogenaudio replaygain informationAnton Khirnov2014-04-10
|
* lavf: add supported extension to avi and mov demuxersMarc-Antoine Arnaud2014-04-02
|
* More correct printf format specifiersDiego Biurrun2014-04-02
| | | | This avoids compiler warnings about argument and specifier type mismatch.
* mov: call mov_rewrite_dvd_sub_extradata() after parsing dimensions from tkhdMichael Niedermayer2014-03-31
| | | | | | This also moves mov_rewrite_dvd_sub_extradata() to mov.c. Sample-Id: NeroRecodeSample.mp4
* mov: fill in subtitle dimensions after parsing tkhdMichael Niedermayer2014-03-31
| | | | Sample-Id: NeroRecodeSample.mp4
* lavf: more correct printf format specifiersDiego Biurrun2014-03-11
|
* movdec: handle 0x7fff langcode as macintosh per the specsBaptiste Coudurier2014-03-09
| | | | | | The correct point that seperates ISO and MAC language codes is 0x400 according to the current QT spec. Old QT specs did not list where this seperation is but apparently only defined the meaning of the first 137.
* mov: do not set avg_frame_rate in the demuxerJustin Ruggles2014-01-20
| | | | | | | | | | | The track duration is often not reliable or is not the duration represented by the number of frames. In those cases, avg_frame_rate was reported incorrectly. Removing this code falls back to the default calculation in avformat_find_stream_info(). This is a partial revert of commit c3aeaa540. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* mov: Free an earlier allocated array if allocating a new oneMartin Storsjö2014-01-15
| | | | | | | | | | | It could probably also be considered an error if the pointer isn't null at this point, but then we might risk rejecting some slightly broken files that we might have handled so far. Sample-Id: 00000496-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Free intermediate arrays in the normal cleanup functionMartin Storsjö2014-01-15
| | | | | | | | | | | | | These arrays are normally freed at the end of mov_read_trak, but make sure they're freed in case mov_read_trak returned early (due to errors) or in case the atoms that allocate arrays are encountered at some other point than within a trak (which we don't have checks against). Sample-Id: 00000496-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* Add missing #includes for *INT64_MAX and *INT64_CDiego Biurrun2013-11-23
|
* 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>
* mov: Support HEVC demuxingYusuke Nakamura2013-10-31
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* mov: Don't allocate arrays with av_malloc that will be reallocedMartin Storsjö2013-10-05
| | | | | CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Make sure the read sample count is nonnegativeMartin Storsjö2013-09-29
| | | | | | | | | This avoids setting a negative number of frames, ending up with a negative average frame rate. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* lavf: Reset the entry count and allocation size variables on av_reallocp ↵Martin Storsjö2013-09-26
| | | | | | | | | | | | | | failures When av_reallocp fails, the associated variables that keep track of the number of elements in the array (and in some cases, the separate number of allocated elements) need to be reset. Not all of these might technically be needed, but it's better to reset them if in doubt, to make sure variables don't end up conflicting. Signed-off-by: Martin Storsjö <martin@martin.st>
* avformat: Use av_reallocp() where suitableAlexandra Khirnova2013-09-18
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* mov: Don't use a negative duration for setting other fieldsMartin Storsjö2013-09-17
| | | | | | | | | | Some files have the duration set to -1 in the mdhd atom, more or less legitimately. (We produce such files ourselves, for the initial duration in fragmented mp4 files.) Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* avformat: Use av_reallocp_array() where suitableAlexandra Khirnova2013-09-10
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* mov: Parse tmcd extradataLuca Barbato2013-08-25
|
* mov: Refactor multiple stsd skipping in mov_mov_skip_multiple_stsdLuca Barbato2013-08-24
|
* mov: Refactor codec specific final steps in mov_finalize_stsd_codecLuca Barbato2013-08-24
|
* mov: Refactor subtitle specific parsing in mov_parse_stsd_subtitleLuca Barbato2013-08-24
|
* mov: Refactor audio specific parsing in mov_parse_stsd_audioLuca Barbato2013-08-24
|
* mov: Refactor video specific parsing in mov_parse_stsd_videoLuca Barbato2013-08-24
|
* mov: Refactor codec id selection in mov_codec_idLuca Barbato2013-08-24
|
* mov: use tkhd enabled flag to set the default trackJohn Stebbins2013-08-23
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* mov: Do not allow updating the time scale after it has been setMartin Storsjö2013-07-15
| | | | | | | | | | | | The time scale is set in mdhd, and later validated in the enclosing trak atom once all of its children have been parsed. A loose mdhd atom outside of a trak atom could update the time scale of the last stream without any validation. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Cc: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>