summaryrefslogtreecommitdiff
path: root/tools/qt-faststart.c
Commit message (Collapse)AuthorAge
* tools/qt-faststart: Allow free atoms after moov atom.Carl Eugen Hoyos2018-08-01
|
* qt-faststart - print errors to stderrerankor2018-06-15
| | | | | | instead of stdout Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* qt-faststart - stco offset bug fixerankor2018-06-13
| | | | | | | | | | | | | | when the last offsets in the stco atom are close to 4GB, the addition of the moov atom size can overflow, causing corruption near the end of the mp4 file. this patch upgrades all stco atoms to co64 when such an edge case is detected. in order to accomplish this, the implementation was changed to walk the atom tree, instead of searching for the strings 'stco'/'co64'. this was required since when an stco atom is changed to co64, its size changes, and the sizes of all containing atoms (moov, trak, etc.) have to be updated as well. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* qt-faststart: add validation on ftyp atom sizeerankor2018-06-13
| | | | | | avoid trying to allocate an unreasonably sized buffer on corrupt files Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* qt-faststart - stricter input validationserankor2018-05-30
| | | | | | | | | 1. validate the moov size before checking for cmov atom 2. avoid performing arithmetic operations on unvalidated numbers 3. verify the stco/co64 offset count does not overflow the stco/co64 atom (not only the moov atom) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Merge commit 'e41daa62465036ad36ad0bd14e4936e848d7f07e'James Almer2017-11-11
|\ | | | | | | | | | | | | * commit 'e41daa62465036ad36ad0bd14e4936e848d7f07e': Remove support for building for mingw32ce (Windows CE) Merged-by: James Almer <jamrial@gmail.com>
| * Remove support for building for mingw32ce (Windows CE)Martin Storsjö2017-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The toolchain for this target is unmaintained since many years. While it has been continuously build tested on fate, it hasn't actually been tested at runtime since many, many years (and back then, only a few codecs in libavcodec were tested). So far, keeping support for it has been mostly effortless, but the compiler does seem to have issues with dllimported data symbols, ending up as internal compiler errors in some cases. Instead of jumping through further hoops to work around that, just remove the target. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '233d50b275dd7cf6cc0656851e670e1b2dfba56f'James Almer2017-04-04
|\| | | | | | | | | | | | | * commit '233d50b275dd7cf6cc0656851e670e1b2dfba56f': qt-faststart: Do not try to use fancy 64-bit seeking functions on mingw32ce Merged-by: James Almer <jamrial@gmail.com>
| * qt-faststart: Do not try to use fancy 64-bit seeking functions on mingw32ceMartin Storsjö2016-11-24
| | | | | | | | | | | | These functions are not available on mingw32ce. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '3526ab891c28396ada8b58bf7647309bab30de1d'Michael Niedermayer2014-08-22
|\| | | | | | | | | | | | | * commit '3526ab891c28396ada8b58bf7647309bab30de1d': qt-faststart: Undefine fseeko/ftello before defining them Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Undefine fseeko/ftello before defining themDiego Biurrun2014-08-22
| | | | | | | | This avoids a number of redefinition warnings on MinGW64.
| * qt-faststart: Add a note about the -movflags +faststart featureLou Logan2014-03-01
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'ea7f79f93796d68559a495be824b6bbd94dfe5f6'Michael Niedermayer2014-03-01
|\| | | | | | | | | | | | | | | | | * commit 'ea7f79f93796d68559a495be824b6bbd94dfe5f6': qt-faststart: Avoid unintentionally sign extending BE_32 See: 582f36ca3fb1c69dbe3478f174d36278f5dd3f63 See: 69ce34c796dd2d595f3312848cf6d0c87506e0d0 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Avoid unintentionally sign extending BE_32Martin Storsjö2014-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | Without this cast, the BE_32() expression is sign extended when assigned to an uint64_t, since the uint8_t|uint8_t expression is promoted to an int. Also avoid undefined behaviour when left shifting an uint8_t by 24 by casting it to an uint32_t explicitly before shifting. Based on a patch by Michael Niedermayer. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'bb95334c34d0d9abccea370ae25c4765d7764ab8'Michael Niedermayer2014-03-01
|\| | | | | | | | | | | | | | | | | | | | | * commit 'bb95334c34d0d9abccea370ae25c4765d7764ab8': qt-faststart: Check offset_count before reading from the moov_atom buffer Conflicts: tools/qt-faststart.c See: 0ea4742341726ebe42c301bc0d6426cfa01dd134 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Check offset_count before reading from the moov_atom bufferMichael Niedermayer2014-03-01
| | | | | | | | | | CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '63848854256a024a19435e87d6bc76fffa65e81e'Michael Niedermayer2014-03-01
|\| | | | | | | | | | | | | | | | | | | | | * commit '63848854256a024a19435e87d6bc76fffa65e81e': qt-faststart: Check the ftello() return codes Conflicts: tools/qt-faststart.c See: 4a2297294fa269e05aa2b3fe36b2ea231caa6dca Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Check the ftello() return codesMichael Niedermayer2014-03-01
| | | | | | | | | | | | This silences a warning in the coverity static analyzer. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '03c2a66fcff9707f71ffef7e61ce5e3973220d4b'Michael Niedermayer2014-03-01
|\| | | | | | | | | | | | | | | | | | | | | * commit '03c2a66fcff9707f71ffef7e61ce5e3973220d4b': qt-faststart: Fix the signedness of variables keeping the ftello return values Conflicts: tools/qt-faststart.c See: 1838961357e38402be64c0c82a2f08e4e85a0c01 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Fix the signedness of variables keeping the ftello return valuesMichael Niedermayer2014-03-01
| | | | | | | | | | | | | | | | These variables are assigned the return values of ftello, which returns an off_t, which is a signed type. On errors, ftello returns -1, thus make sure this error return value can be stored properly. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '5612244351b2eb3cb4e6225861a0f55aa5d0c475'Michael Niedermayer2014-03-01
|\| | | | | | | | | | | | | | | | | | | | | * commit '5612244351b2eb3cb4e6225861a0f55aa5d0c475': qt-faststart: Check fseeko() return codes Conflicts: tools/qt-faststart.c See: 0de41ead6f9034e0a834abe51028a02aee094990 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Check fseeko() return codesMichael Niedermayer2014-03-01
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit 'ea15a9a5d8fa6a71af3101b2af18c4dcac07987f'Michael Niedermayer2014-03-01
|\| | | | | | | | | | | | | | | | | | | | | * commit 'ea15a9a5d8fa6a71af3101b2af18c4dcac07987f': qt-faststart: Simplify code by using a MIN() macro Conflicts: tools/qt-faststart.c See: 59003fe7c064e98359cce83b1b727fb1026bdf12 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Simplify code by using a MIN() macroMichael Niedermayer2014-03-01
| | | | | | | | | | | | | | | | qt-faststart doesn't use the normal libav headers at all since it's supposed to be a completely standalone tool, so we implement the macro locally in this file. Signed-off-by: Martin Storsjö <martin@martin.st>
| * qt-faststart: Increase the copy buffer size to 64 KBMartin Storsjö2014-03-01
| | | | | | | | | | | | | | | | | | Copying data in chunks of 1 KB is a little wasteful. 64 KB should still easily fit on the stack, so there's no need to allocate it dynamically. Signed-off-by: Martin Storsjö <martin@martin.st>
* | tools/qt-faststart: add -movflags +faststart noteLou Logan2014-01-07
| |
* | tools/qt-faststart: Fix unintended sign extension of current_offsetMichael Niedermayer2013-06-02
| | | | | | | | | | | | Fixes: CID733809 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | tools/qt-faststart: Fix unintended sign extension of atom_sizeMichael Niedermayer2013-06-02
| | | | | | | | | | | | Fixes CID733810 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: Check offset_countMichael Niedermayer2012-12-13
| | | | | | | | | | Fixes CID733836 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: fix signedness of variable used to hold return codeMichael Niedermayer2012-10-29
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: check return of ftello()Michael Niedermayer2012-10-25
| | | | | | | | | | Fixes CID739863 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: check fseeko() return codesMichael Niedermayer2012-10-22
| | | | | | | | | | | | Fixes CID733725 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: fix printf argument typeMichael Niedermayer2012-10-10
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: simplify code by using FFMINMichael Niedermayer2012-09-30
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: dont allocate a bigger buffer than neededMichael Niedermayer2012-09-30
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | qt-faststart: speedupJan Ehrhardt2012-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qt-faststart is terribly slow when the input file and the output file are on a slow disk like a SD card. By increasing the copy_buffer from 1K to 32M I decreased the processing time on a sample file from 1600 seconds to 4 seconds. The timing difference is during 'copying rest of file'. S:\SD_VIDEO\PRG001>e:\utils\qt-faststart 00005.mp4 5.mp4 ftyp 0 32 free 32 8 mdat 40 13744391 moov 13744431 141848 patching stco atom... patching stco atom... writing ftyp atom... writing moov atom... copying rest of file... Execution time: 1576.259 s S:\SD_VIDEO\PRG001>s:\utils\qt-faststart 00005.mp4 5.mp4 ftyp 0 32 free 32 8 mdat 40 13744391 moov 13744431 141848 patching stco atom... patching stco atom... writing ftyp atom... writing moov atom... copying rest of file... Execution time: 3.846 s Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112'Michael Niedermayer2012-08-29
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112': configure: support Bitrig OS yuv2rgb: handle line widths that are not a multiple of 4. graph2dot: Use the fallback getopt implementation if needed tools: Include io.h for open/read/write/close if unistd.h doesn't exist testprogs: Remove unused includes qt-faststart: Use other seek/tell functions on MSVC than on mingw ismindex: Include direct.h for _mkdir on windows sdp: Use static const char arrays instead of pointers to strings x86: avcodec: Drop silly "_mmx" suffixes from filenames x86: avcodec: Drop silly "_sse" suffixes from filenames sdp: Include profile-level-id for H264 utvideoenc: use ff_huff_gen_len_table huffman: add ff_huff_gen_len_table cllc: simplify/fix swapped data buffer allocation. rtpdec_h264: Don't set the pixel format h264: Check that the codec isn't null before accessing it audio_frame_queue: Define af_queue_log_state before using it Conflicts: libavcodec/audio_frame_queue.c libavcodec/h264.c libavcodec/huffman.h libavcodec/huffyuv.c libavcodec/utvideoenc.c libavcodec/x86/Makefile Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Use other seek/tell functions on MSVC than on mingwMartin Storsjö2012-08-29
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-01-26
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (22 commits) wma: Clip WMA1 and WMA2 frame length to 11 bits. movenc: Don't require frame_size to be set for modes other than mov doc: Update APIchanges with info on muxer flushing movenc: Reindent a block tools: Remove some unnecessary #undefs. rv20: prevent calling ff_h263_decode_mba() with unset height/width tools: K&R reformatting cosmetics Ignore generated aviocat and ismindex tools. build: Automatically include architecture-specific library Makefile snippets. indeo5: prevent null pointer dereference on broken files pktdumper: Use usleep instead of sleep cosmetics: Remove some unnecessary block braces. Drop unnecessary prefix from *sink* variable and struct names. Add a tool for creating smooth streaming manifests movdec: Calculate an average bit rate for fragmented streams, too movenc: Write the sample rate instead of time scale in the stsd atom movenc: Add a separate ismv/isma (smooth streaming) muxer movenc: Allow the caller to decide on fragmentation libavformat: Add a flag for muxers that support write_packet(NULL) for flushing movenc: Add support for writing fragmented mov files ... Conflicts: Changelog cmdutils.c cmdutils.h doc/APIchanges ffmpeg.c ffplay.c libavfilter/Makefile libavformat/Makefile libavformat/avformat.h libavformat/movenc.c libavformat/movenc.h libavformat/version.h tools/graph2dot.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * tools: K&R reformatting cosmeticsDiego Biurrun2012-01-25
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-12-31
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: fate: whitespace cosmetics fate: split off video codec FATE tests into their own file fate: split off audio codec FATE tests into their own file fate: split off Electronic Arts codec FATE tests into their own file fate: split off QuickTime codec FATE tests into their own file fate: split off voice codec FATE tests into their own file fate: split off demuxer FATE tests into their own file cosmetics: Drop unnecessary parentheses around return values. fate: drop pointless _audio and _video suffixes from xan tests qt-faststart: K&R reformatting; fix comment typos FATE: Add test for H.264 MP4->annex.B bitstream filter. Conflicts: ffplay.c tests/fate.mak tests/fate/h264.mak tests/fate/image.mak tests/fate/lossless-audio.mak tests/fate/lossless-video.mak tests/fate/qtrle.mak tests/fate/real.mak tests/fate/screen.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: K&R reformatting; fix comment typosDiego Biurrun2011-12-30
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-12-30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: fate: split off DPCM codec FATE tests into their own file fate: split off PCM codec FATE tests into their own file libvorbis: K&R reformatting cosmetics libmp3lame: K&R formatting cosmetics fate: Add a video test for xxan decoder mpegvideo_enc: K&R cosmetics (line 1000-2000). avconv: K&R cosmetics qt-faststart: Fix up indentation indeo4: remove two unused variables doxygen: cleanup style to support older doxy fate: add more tests for VC-1 decoder applehttpproto: Apply the same reload interval changes as for the demuxer applehttp: Use half the target duration as interval if the playlist didn't update applehttp: Use the last segment duration as reload interval lagarith: add decode support for arith rgb24 mode Conflicts: avconv.c libavcodec/libmp3lame.c libavcodec/mpegvideo_enc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qt-faststart: Fix up indentationMartin Storsjö2011-12-29
| | | | | | | | | | | | This restores indentation after 65b875d8fcc. Signed-off-by: Martin Storsjö <martin@martin.st>
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
|/ | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* fail if input and output are the sameBaptiste Coudurier2010-06-21
| | | | Originally committed as revision 23672 to svn://svn.ffmpeg.org/ffmpeg/trunk
* qt-faststart: Abort scanning of the input file if a badly sized atom is ↵Martin Storsjö2010-05-13
| | | | | | | | | encountered If the atom size is 0, qt-faststart currently hangs forever while scanning the file. Originally committed as revision 23129 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Cosmetics: Initialize pointers with NULL instead of 0, for consistencyMartin Storsjö2010-05-13
| | | | Originally committed as revision 23127 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Cosmetics: reindentMartin Storsjö2010-05-13
| | | | Originally committed as revision 23126 to svn://svn.ffmpeg.org/ffmpeg/trunk
* qt-faststart: Use the error_out cleanup code path for all error returnsMartin Storsjö2010-05-13
| | | | Originally committed as revision 23125 to svn://svn.ffmpeg.org/ffmpeg/trunk