summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avcodec/zerocodec: implement flushingPaul B Mahol2020-04-10
|
* avcodec: add MV30 decoderPaul B Mahol2020-04-10
|
* avformat/hlsenc: return media_url directly if failed to get seperatorLimin Wang2020-04-10
| | | | | Fix ticket: 8606 Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/matroskaenc: Remove unnecessary headersAndreas Rheinhardt2020-04-10
| | | | | | | | | | | | subtitles.h has been included in order to use ff_subtitles_next_line() to help parsing srt subtitles which at that time had their timing as part of the payload and not as part of the AVPacket fields. When this changed (in 55180b32) it has been forgotten to remove this header. libavcodec/internal.h meanwhile has been added in bb47aa5850c and has never been used at all. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/jpeg2000dec: Fix mixed declaration and codeAndreas Rheinhardt2020-04-09
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/mpeg: Don't use unintialized valueAndreas Rheinhardt2020-04-09
| | | | | | | | vobsub_read_packet() didn't check whether an array of AVPackets was valid and therefore used uninitialized values. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avfilter/ebur128: prefer to use variable instead of type for sizeofLimin Wang2020-04-09
| | | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* libavcodec/jpeg2000dec.c: Add support for PPT markerGautam Ramakrishnan2020-04-09
| | | | | | | This patch adds functional changes to support the PPT marker. This patch fixes bug ticket #4610. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/v4l2_context: Use av_freep()Andriy Gelman2020-04-08
| | | | | Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
* avfilter/vf_drawtext: only test available exceptionsRosen Penev2020-04-09
| | | | | | | | soft float systems do not define these macros under musl. Fixes: Ticket7102 Signed-off-by: Rosen Penev <rosenp@gmail.com>
* avformat/segment: always use interleaved writes for formats with custom ↵Marton Balint2020-04-08
| | | | | | interleaving Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/hlsenc: use av_asprintf()Limin Wang2020-04-08
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/hlsenc: Factor out deleting files from deleting segmentsAndreas Rheinhardt2020-04-08
| | | | | | Removes code duplication. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat: add subtitle support in master playlist m3u8Limin Wang2020-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | Test with the following command for the webvtt subtitle: $ ./ffmpeg -y -i input_with_subtitle.mkv \ -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \ -b:a:0 256k \ -c:s webvtt -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0 -map 0:s:0 \ -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle" \ -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \ 10 -master_pl_publish_rate 10 -hls_flags \ delete_segments+discont_start+split_by_time ./tmp/video.m3u8 Check the master m3u8: $ cat tmp/master.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitle",NAME="subtitle_0",DEFAULT=YES,URI="video_vtt.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=6056600,RESOLUTION=1280x720,CODECS="avc1.4d4829,mp4a.40.33",SUBTITLES="subtitle" video.m3u8 Check the result by convert to mkv: $ ./ffmpeg -strict experimental -i ./tmp/master.m3u8 -c:v copy -c:a mp2 -c:s srt ./test.mkv Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/hlsplaylist: simplify code for checking whether the string is emptyLimin Wang2020-04-08
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/hlsenc: remove the first slash of the relative path line in the ↵Limin Wang2020-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master m3u8 file Please testing with the following command: ./ffmpeg -y -i input.mkv \ -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \ -b:a:0 256k \ -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0\ -f hls -var_stream_map "v:0,a:0" \ -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \ 10 -master_pl_publish_rate 10 -hls_flags \ delete_segments+discont_start+split_by_time ./tmp/video.m3u8 then cat ./tmp/master.m3u8 before: #EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:BANDWIDTH=6056600,RESOLUTION=1280x720,CODECS="avc1.4d4829,mp4a.40.33" /video.m3u8 $ ./ffmpeg -i ./tmp/master.m3u8 -c:v copy -c:a mp2 ./test.mkv [hls @ 0x7f82f9000000] Skip ('#EXT-X-VERSION:3') [hls @ 0x7f82f9000000] Opening '/video.m3u8' for reading [hls @ 0x7f82f9000000] parse_playlist error No such file or directory [/video.m3u8] ./tmp/master.m3u8: No such file or directory after: #EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:BANDWIDTH=6056600,RESOLUTION=1280x720,CODECS="avc1.4d4829,mp4a.40.33" video.m3u8 Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/hlsenc: Use AVBPrint to avoid allocations of stringsAndreas Rheinhardt2020-04-08
| | | | | | when deleting old segments. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/hlsenc: Fix memleak when deleting old segmentsAndreas Rheinhardt2020-04-08
| | | | | | | | | | | if the directory name of the segments contains "%v". This memleak is caused by masking the pointer that will eventually be freed by a variable of the same name in a smaller scope. Therefore the pointer that gets freed is always NULL when it is freed and the allocated data leaks. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/smacker: CosmeticsAndreas Rheinhardt2020-04-08
| | | | | | | | | | This is mainly about improving legibility of the code and getting rid of overlong lines by using variables for st->codecpar instead of accessing the codecparameters via st->codecpar->. Also, some code has been moved to better fitting places. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/smacker: Remove unused structureAndreas Rheinhardt2020-04-08
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/smacker: Only store what is needed laterAndreas Rheinhardt2020-04-08
| | | | | | | | This commit removes data that is only used during smacker_read_header() from the demuxer's context and replaces the data that is used by local variables. The other data is completely dropped. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/smacker: Create audio streams immediatelyAndreas Rheinhardt2020-04-08
| | | | | | | | | | | | | | | | | | | The Smacker demuxer currently parses several fields that indicate how many audio streams a file contains. This data is parsed and stored into arrays in the demuxer's context and although the data is used only to initialize the audio streams, it is kept for the whole lifetime of the demuxer. This has been changed: The data is used directly to create the audio streams and no longer kept at all. This also simplifies error handling in case adding a new stream fails: Several arrays which until now have been allocated between parsing the data determining how many audio streams to create and actually creating them would need to be freed in this case. Now the streams are created first, so freeing is no longer an issue. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/smacker: Read extradata directly into extradataAndreas Rheinhardt2020-04-08
| | | | | | | | | | | | | | | | | | | | | The Smacker demuxer reads four consecutive 32bit values from the file header into its demux context (as four uint32_t), converting it to native endianness in the process and then writing these four values later (after extradata has been allocated) to extradata as four 32bit values (converting to little endian in the process). This commit changes this: The stream and the extradata are allocated earlier, so that the data destined for extradata can be read directly into extradata. Furthermore, given that these values are not needed for demuxing itself they are now no longer kept as part of the demuxing context. Finally, a check regarding the number of frames has been moved up, too, in order to exit early before unnecessarily allocating the stream and the extradata. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/flacdsp_template: Fix invalid shifts in decorrelateMichael Niedermayer2020-04-07
| | | | | | | | Fixes: left shift of negative value -2 Fixes: 20303/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FLAC_fuzzer-5096829297623040 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* tools/target_dec_fuzzer: Adjust threshold for screenpressoMichael Niedermayer2020-04-07
| | | | | | | | Fixes: Timeout (332 -> 21 sec) Fixes: 20280/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCREENPRESSO_fuzzer-6238663432470528 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/xvididct: Fix integer overflow in MULT()Michael Niedermayer2020-04-07
| | | | | | | | Fixes: signed integer overflow: 23170 * 95058 cannot be represented in type 'int' Fixes: 20295/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-5800212870463488 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffwavesynth: Correct undefined overflow of PINK_UNITMichael Niedermayer2020-04-07
| | | | | | | | Fixes: signed integer overflow: 9223372036854775775 + 128 cannot be represented in type 'long' Fixes: 20054/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FFWAVESYNTH_fuzzer-5686385113825280 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/ilbc: Add missing #if for muxerMichael Niedermayer2020-04-07
| | | | | | | | Fixes: building without muxers Fixes: 21594 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/webmdashenc: Use AVCodecDescriptors for codec namesAndreas Rheinhardt2020-04-07
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/webmdashenc: Check codec typesAndreas Rheinhardt2020-04-07
| | | | | | | | | | | | | The WebM DASH Manifest muxer only supports VP8, VP9, Vorbis and Opus, but there was no check for this. The codec type is used to get a pointer to a string containing the codec name or NULL if it is not one of those four codecs. Said pointer has then been used without further checks as string for the %s conversion specifier in an avio_printf()) call which is undefined behaviour. This commit adds a check for the supported codec types. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* mov: Support fake moov boxes disguised as hoovVittorio Giovara2020-04-07
| | | | | | | | | | | | | | Some broken apps generate files that have a fake box named 'hoov' instead of a proper 'moov' one. This is speculation but it seems like this box contains data to be modified later (eg as file grows in size, data gets re-written) and its name is supposed to be changed to 'moov' once it can be used as a 'moov', but for some reason this step is skipped. Since this is not the first time this happens ('moov' boxes can be found in 'free' ones) extend the existing hacks to search for the moov in such boxes and skip the moov_retry since it needs to be found right away. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* hwcontext_vulkan: only use one semaphore per imageLynne2020-04-07
| | | | | | The idea was to allow separate planes to be filtered independently, however, in hindsight, literaly nothing uses separate per-plane semaphores and it would only work when each plane is backed by separate device memory.
* avfilter/vf_xfade: add slice transitionsPaul B Mahol2020-04-07
|
* avcodec/vp3: propagate error codesPeter Ross2020-04-07
| | | | | | | throughout vp3_decode_frame the error code was being captured (ret) but never returned. Signed-off-by: Peter Ross <pross@xvid.org> Reviewed-by: Anton Khirnov <anton@khirnov.net>
* avfilter/vf_derain.c: put all the calculation in model file.Guo, Yejun2020-04-07
| | | | | | | | | | | currently, the model outputs the rain, and so need a subtraction in filter c code to get the final derain result. I've sent a PR to update the model file and accepted, see at https://github.com/XueweiMeng/derain_filter/pull/3 Signed-off-by: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* dnn-layer-mathbinary-test: add unit test for subtractionGuo, Yejun2020-04-07
| | | | Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* dnn_backend_native_layer_mathbinary: add sub supportGuo, Yejun2020-04-07
| | | | | | more math binary operations will be added here Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* avfilter/vf_dnn_processing.c: fix typo for the linesize of dnn dataGuo, Yejun2020-04-07
| | | | Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
* scale_vulkan: correctly copy the colormatrixLynne2020-04-06
|
* avutil/hwcontext_cuda: Only handle CUDA hardware framesTimo Rothenpieler2020-04-06
|
* avcodec/cbs_h264_syntax_template: fix off by 1 error with ↵Michael Niedermayer2020-04-05
| | | | | | | | | | slice_group_change_cycle Fixes: assertion failure Fixes: 20390/clusterfuzz-testcase-minimized-ffmpeg_BSF_H264_REDUNDANT_PPS_fuzzer-5683400772157440 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf/chromaprint: Silence compilation warningsCarl Eugen Hoyos2020-04-05
| | | | | | | Fixes the following warnings: libavformat/chromaprint.c:117:42: warning: passing argument 2 of ‘chromaprint_feed’ from incompatible pointer type libavformat/chromaprint.c:132:52: warning: passing argument 2 of ‘chromaprint_get_raw_fingerprint’ from incompatible pointer type libavformat/chromaprint.c:143:71: warning: passing argument 4 of ‘chromaprint_encode_fingerprint’ from incompatible pointer type
* avformat/avidec: Fix memleak with embedded GAB2 subtitlesAndreas Rheinhardt2020-04-05
| | | | | | | | | | | | | The code for GAB2 subtitles predates refcounting AVPackets. So in order to transfer the ownership of a packet's data pkt->data was simply stored and the packet zeroed; in the end (i.e. in the read_close-function) this data was then simply freed with av_freep(). This of course leads to a leak of an AVBufferRef and an AVBuffer. It has been fixed by keeping and eventually unreferencing the packet's buf instead. Additionally, the packet is now reset via av_packet_unref(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/avidec: Fix memleak when allocating DVDemuxContext failsAndreas Rheinhardt2020-04-05
| | | | | | | | | An AVIStream (intended to be used as private data for an AVStream) would leak in this scenario. Also return a more fitting error code instead of AVERROR_INVALIDDATA. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/avidec: Fix memleak when DV demuxer is disabledAndreas Rheinhardt2020-04-05
| | | | | | | | | | | | | | If one uses a build without dv demuxer, an AVIStream struct that is destined to be used as private data for an AVStream by the avi demuxer would leak, because it has been moved from the AVStream (that is going to be freed) and only stored in a local variable (in order to be used for another AVStream), but if the dv demuxer is disabled, the earlier code returned immediately instead. Also return a better error code in this scenario (instead of AVERROR_INVALIDDATA). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avformat/avidec: Don't reimplement ff_free_stream()Andreas Rheinhardt2020-04-05
| | | | | | | | | | Using ff_free_stream() makes the code more readable, more future-proof (the old code freed AVCodecContexts and AVCodecParameters and its substructures manually, so that there is a chance that there would be a memleak for some time if new substructures were added) and reduces code size. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavc/amrwbdec: Use av_samples_set_silence().Carl Eugen Hoyos2020-04-05
| | | | Suggested-by: James Almer
* Revert "avformat/rtp: Pass sources and block filter addresses via sdp file ↵Carl Eugen Hoyos2020-04-05
| | | | | | | | | | for rtp" This reverts commit b71685865fe761925feedda3cd0b288224d9a509. The commit lead to the use of an uninitialized variable. Other issues were listed by Andreas Rheinhardt: https://ffmpeg.org/pipermail/ffmpeg-devel/2020-March/259150.html
* doc/general: update avisynth docs with a way to install just the headers ↵Stephen Hutchinson2020-04-05
| | | | | | using CMake Signed-off-by: Marton Balint <cus@passwd.hu>
* lavc/amrwbdec: Do not ignore NO_DATA frames.Carl Eugen Hoyos2020-04-05
| | | | Fixes the actual output duration of the sample in ticket #7113.