summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* h264: Fix memory leak on ff_h264_decode_init() failureDale Curtis2014-12-03
| | | | CC: libav-devel@libav.org
* Drop the unofficial extension prefix for MPEG and MPEG-TS formatsFlorent Le Coz2014-12-02
| | | | | | | | As per the RFCs: http://tools.ietf.org/html/rfc3555#page-38 http://tools.ietf.org/html/rfc3003 CC: libav-stable@libav.org
* mpegtsenc: recognize .mts as MPEG Transport StreamJean-Baptiste Mardelle2014-12-02
|
* Add support for BDAV/m2ts-mode muxingFredrik Axelsson2014-12-02
| | | | | Signed-off-by: Fredrik Axelsson <fraxbe@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* options_table: fix colorspace minimum option valueJon Morley2014-12-02
| | | | | The min value for colorspace should be zero and not one since the first valid index into the frame colorspace array is AVCOL_SPC_RGB which is 0.
* 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
|
* rtsp: move the CONFIG_ macros to the beginning of the checkVittorio Giovara2014-12-02
| | | | | With --disable-optimizations, the DCE of some compilers does not remove such unused code, causing linking failure.
* aac: Simplify decode_mid_side_stereoLuca Barbato2014-12-02
| | | | | Might spare few cycles if the compiler is naive and makes the function more readable.
* Make the RELEASE file match with the most recent tagReinhard Tartler2014-12-01
|
* Replace lena.pnmReinhard Tartler2014-11-28
| | | | | | The new reference.pnm is a freely licensed replacement. The photo has been taken by Reinhard Tartler on August 28 2014, and is licensed under the expat license as stated at http://www.jclark.com/xml/copying.txt
* Treat all '*.pnm' files as non-text fileReinhard Tartler2014-11-28
| | | | | | | | This convinces the pre-receive hook to not consider all *.pnm files as text files to reduce the patch sizes and avoids triggering whitespace checks, Contains a correction by Janne Grunau <janne-libav@jannau.net>
* rtmpproto: Fix a typo in a commentMartin Storsjö2014-11-28
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* dashenc: Avoid a VLA-like constructMartin Storsjö2014-11-28
| | | | | | | This fixes the build on compilers that interpreted the earlier code as a variable length array (which we intentionally disallow). Signed-off-by: Martin Storsjö <martin@martin.st>
* dashenc: Add options to make segment names configurableBryan Huh2014-11-28
| | | | | | | This allows one to specify templated segment names for init-segments, media-segments, and for the base-url in the case of single-file. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtmpproto: Only prepend @setDataFrame for onMetaData and |RtmpSampleAccessMartin Storsjö2014-11-28
| | | | | | | | | | | | | | | | | | | | | | Currently, when streaming to an RTMP server, any time a packet of type RTMP_PT_NOTIFY is encountered, the packet is prepended with @setDataFrame before it gets sent to the server. This is incorrect; only packets for onMetaData and |RtmpSampleAccess should invoke @setDataFrame on the RTMP server. Specifically, the current bug manifests itself when trying to stream onTextData or onCuePoint invocations. This fix addresses that problem and ensures that the @setDataFrame is only prepended for onMetaData and |RtmpSampleAccess. Since data is fed to the rtmp_write function in smaller pieces (depending on the calling IO buffer size), we can't generally assume that the whole packet (or even the whole command string) is available at once, therefore we can only check the command string once the full packet has been transferred to us for sending. Based on a patch by Jeffrey Wescott. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtmppkt: Make pkt->data reallocableMartin Storsjö2014-11-28
| | | | | | | | We try to avoid mixing av_malloc with av_realloc, since av_malloc may be implemented with functions that can't (formally) be mixed with the functions used in av_realloc. Signed-off-by: Martin Storsjö <martin@martin.st>
* rtmpproto: Simplify code for copying data into the output packetMartin Storsjö2014-11-28
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* rtmpproto: Clarify a commentMartin Storsjö2014-11-28
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* opusdec: make sure all substreams have the same number of coded samplesAnton Khirnov2014-11-27
| | | | | | Fixes invalid writes with invalid multichannel streams. CC:libav-stable@libav.org
* vf_interlace: get rid of useless loadsKieran Kunhya2014-11-27
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavu: fix memory leaks by using a mutex instead of atomicswm42014-11-27
| | | | | | | | | | | | | | | | | | | | | The buffer pool has to atomically add and remove entries from the linked list of available buffers. This was done by removing the entire list with a CAS operation, working on it, and then setting it back again (using a retry-loop in case another thread was doing the same thing). This could effectively cause memory leaks: while a thread was working on the buffer list, other threads would allocate new buffers, increasing the pool's total size. There was no real leak, but since these extra buffers were not needed, but not free'd either (except when the buffer pool was destroyed), this had the same effects as a real leak. For some reason, growth was exponential, and could easily kill the process due to OOM in real-world uses. Fix this by using a mutex to protect the list operations. The fancy way atomics remove the whole list to work on it is not needed anymore, which also avoids the situation which was causing the leak. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavu: add wrappers for the pthreads mutex APIAnton Khirnov2014-11-27
| | | | | | | | | | Also add no-op fallbacks when threading is disabled. This helps keeping the code clean if Libav is compiled for targets without threading. Since we assume that no threads of any kind are used in such configurations, doing nothing is ok by definition. Based on a patch by wm4 <nfxjfg@googlemail.com>.
* Revert "lavf: Don't try to update files atomically with renames on windows"Martin Storsjö2014-11-27
| | | | | | | | | This reverts commit b9d08c77a44390b0848c06f20bc0e9e951ba6a3c. After taking MoveFileEx into use, we can replace files with renames on windows as well. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavf: Use MoveFileEx instead of rename/_wrename on windowsMartin Storsjö2014-11-27
| | | | | | | | | This allows getting the normal unix semantics, where a rename allows replacing an existing file. Based on a suggestion by Reimar Döffinger. Signed-off-by: Martin Storsjö <martin@martin.st>
* Share the utf8 to wchar conversion routine between lavf and lavuMartin Storsjö2014-11-27
| | | | | | | | This doesn't add any dependency on library internals, since this only is a static inline function that gets built into each of the calling functions - this is only to reduce the code duplication. Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Expose the fragment index as an avoptionMartin Storsjö2014-11-26
| | | | | | | | This allows setting the right fragment number if doing random-access writing of fragments, and also allows reading the current sequence number. Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc: Add a flag for indicating a discontinuous fragmentMartin Storsjö2014-11-26
| | | | | | | | | | | | | | | | | | | | | | | This allows creating a later mp4 fragment without sequentially writing the earlier ones before (when called from a segmenter). Normally when writing a fragmented mp4 file sequentially, the first timestamps of a fragment are adjusted to match the end of the previous fragment, to make sure the timestamp is the same, even if it is calculated as the sum of previous fragment durations. (And for the first packet in a file, the offset of the first packet is written using an edit list.) When writing an individual mp4 fragment discontinuously like this (with potentially writing the earlier fragments separately later), there's a risk of getting a gap in the timeline if the duration field of the last packet in the previous fragment doesn't match up with the start time of the next fragment. Using this requires setting -avoid_negative_ts make_non_negative (or -avoid_negative_ts 0). Signed-off-by: Martin Storsjö <martin@martin.st>
* vorbis_parser: Include stdint.h in the header, to make it work standaloneMartin Storsjö2014-11-25
| | | | | | This fixes "make checkheaders". Signed-off-by: Martin Storsjö <martin@martin.st>
* vf_interlace: x86: improve asm performanceMichael Niedermayer2014-11-25
| | | | 4775 decicycles -> 3688 decicycles
* hnm4: change width/height to int to fix hypothetical integer overflowsMichael Niedermayer2014-11-25
| | | | | CC: libav-stable@libav.org Bug-Id: CID 1135770 / CID 1135771
* hnm4: Use av_image_check_sizeLuca Barbato2014-11-25
| | | | | | | As done for all the other codecs not calling it indirectly. CC: libav-stable@libav.org Bug-Id: CID 1135770 / CID 1135771
* vc1: Use the correct shift amountMichael Niedermayer2014-11-25
| | | | | | | | | `is_intra` is a 6bits bitfield. CC: libav-stable@libav.org Bug-Id: CID 1194380 / CID 1194381 Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* vc1: Set the is_intra bitfield to all 1 when neededLuca Barbato2014-11-25
| | | | | | | Keep the code as similar as possible across the codepaths to ease spotting it for factorization. Based on a patch from Michael Niedermayer <michaelni@gmx.at>.
* vc1: Simplify a little setting the intra variablesLuca Barbato2014-11-25
| | | | | | | | The code currently set the information in at least 4 places, spare some pointless loops. Make the code in the loop a little uniform to make easier factorize it out later.
* vorbis_parser: Move vp check to avoid a null pointer dereferenceMichael Niedermayer2014-11-25
| | | | | CC: libav-stable@libav.org Bug-Id: CID 1251347
* lpc: remove unneeded {}Michael Niedermayer2014-11-25
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* vc1pred: remove logically dead codeVittorio Giovara2014-11-25
| | | | | CC: libav-stable@libav.org Bug-Id: CID 1245699 / CID 1245700
* lavf: Use wchar functions for filenames on windows for mkdir/rmdir/rename/unlinkMartin Storsjö2014-11-24
| | | | | | | | | | | | | | | | | | This makes sure that the internal utf8 path names are handled properly - the normal file handling functions assume path names are in the native codepage, which isn't utf8. This assumes that the tools outside of lavf don't use the mkdir definition. (The tools don't do the same reading of command line parameters as wchar either - they probably won't handle all possible unicode file parameters properly, but at least work more predictably if no utf8/wchar conversion is involved.) This is moved further down in os_support.h, since windows.h shouldn't be included before winsock2.h, while io.h needs to be included before the manual defines for lseek functions. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavf: Don't try to update files atomically with renames on windowsMartin Storsjö2014-11-24
| | | | | | | | | On windows, rename(2) will fail if the target file exists. On unix this trick is used to make sure that people reading the file either will get the full previous file, or the full new version of the file, but no intermediate version. Signed-off-by: Martin Storsjö <martin@martin.st>
* flvdec: Document how the duration is retrieved at the end of the fileUwe L. Korn2014-11-24
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* dashenc: Don't segment all video streams when one stream gets a keyframeMartin Storsjö2014-11-24
| | | | | | | | | This makes sure that segments actually start at a keyframe (and makes sure we don't split segments twice in a row, with one segment consisting of only a handful of packets), when one stream uses b-frames while another one doesn't. Signed-off-by: Martin Storsjö <martin@martin.st>
* sidxindex: Write mimeType=audio/mp4 for audio-only representationsMartin Storsjö2014-11-24
| | | | | | | This fixes playback with dash.js, when the input is one separate mp4 file per track. Signed-off-by: Martin Storsjö <martin@martin.st>
* aacsbr: always initialize max_qmf_subbandsVittorio Giovara2014-11-24
| | | | Fixes a wordly warning from clang -Wsometimes-uninitialized.
* roqaudio: Always use the frame buffer on flushMichael Niedermayer2014-11-24
| | | | | | | | Prevent NULL dereference. CC: libav-stable@libav.org Bug-Id: CID 703669 Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* tiffenc: initialize return valueVittorio Giovara2014-11-24
| | | | | | | | | 'ret' can only be used without initialization if s->height <= 0, which can only happen if avctx->height <= 0, which is validated elsewhere. Doesn't hurt to still initialize it though. CC: libav-stable@libav.org Bug-Id: CID 732296
* cook: Make sure there is enough extradataLuca Barbato2014-11-24
| | | | | | | At least 8 bytes are needed (Mono audio). Bug-Id: CID 741418 CC: libav-stable@libav.org
* sol: simplify sol_codec_id()Vittorio Giovara2014-11-24
| | | | Bug-Id: CID 1238993
* aacdec: avoid an out-of-bounds writeVittorio Giovara2014-11-24
| | | | | | | Also move the check in the case it is actually used. CC: libav-stable@libav.org Bug-Id: CID 1087090