ffmpeg.git
18 months agolavf/hlsproto: use ff_get_chomp_line
Jun Zhao [Mon, 9 Apr 2018 15:13:03 +0000 (23:13 +0800)]
lavf/hlsproto: use ff_get_chomp_line

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
18 months agolavf/hlsenc: use ff_get_chomp_line
Jun Zhao [Mon, 9 Apr 2018 15:12:16 +0000 (23:12 +0800)]
lavf/hlsenc: use ff_get_chomp_line

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
18 months agolavf/hls: use ff_get_chomp_line
Jun Zhao [Mon, 9 Apr 2018 15:11:02 +0000 (23:11 +0800)]
lavf/hls: use ff_get_chomp_line

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
18 months agolavf/aviobuf: add ff_get_chomp_line
Jun Zhao [Mon, 9 Apr 2018 15:05:42 +0000 (23:05 +0800)]
lavf/aviobuf: add ff_get_chomp_line

Same as ff_get_line but strip the white-space characters in the
string tail.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
18 months agodoc: update loglevel option documentation
Tobias Rapp [Tue, 3 Apr 2018 07:24:21 +0000 (09:24 +0200)]
doc: update loglevel option documentation

Updates documentation after the changes to loglevel flag prefix parsing
in 4b736bc921ed96ad6d312ce0cbe0de29b9e3fe81.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
18 months agolibavformat/aac: Parse all ID3 tags present between ADTS frames
Mattias Amnefelt [Mon, 2 Apr 2018 09:30:40 +0000 (11:30 +0200)]
libavformat/aac: Parse all ID3 tags present between ADTS frames

Some ADTS streams can have multiple ID3 tags between frames. This
change parses all of them, rather than just the first one.

Signed-off-by: Mattias Amnefelt <mattiasa@avm.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/dpx: Support for RGB 12-bit packed decoding
Jérôme Martinez [Tue, 10 Apr 2018 16:20:23 +0000 (18:20 +0200)]
avcodec/dpx: Support for RGB 12-bit packed decoding

Limited to widths multiple of 8 (RGB) due to lack of test files for such corner case

This partially fixes ticket #5639

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoconfigure: Disable direct stripping for AIX.
Carl Eugen Hoyos [Thu, 12 Apr 2018 00:30:21 +0000 (02:30 +0200)]
configure: Disable direct stripping for AIX.

AIX strip doesn't know the option -o.

18 months agoavcodec/mpegpicture: fix "stride changed" failures in gray mode
Aman Gupta [Tue, 10 Apr 2018 17:17:52 +0000 (10:17 -0700)]
avcodec/mpegpicture: fix "stride changed" failures in gray mode

Before adding uvlinesize check, I was seeing failures decoding
some video with ffmpeg compiled with --enable-gray and using AV_CODEC_FLAG_GRAY.

[mpeg2video @ 0x7fa193818c00] get_buffer() failed (stride changed: linesize=1280/1280 uvlinesize=0/640)
[mpeg2video @ 0x7fa193818c00] get_buffer() failed (stride changed: linesize=1280/1280 uvlinesize=0/640)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/nvenc: update required driver versions for nvenc
Timo Rothenpieler [Wed, 11 Apr 2018 12:28:36 +0000 (14:28 +0200)]
avcodec/nvenc: update required driver versions for nvenc

18 months agoavcodec/nvenc: add support for B frames as ref
Timo Rothenpieler [Wed, 11 Apr 2018 12:22:20 +0000 (14:22 +0200)]
avcodec/nvenc: add support for B frames as ref

18 months agospdifenc: support ac3 core+eac3 dependent streams
Hendrik Leppkes [Tue, 3 Apr 2018 10:35:27 +0000 (12:35 +0200)]
spdifenc: support ac3 core+eac3 dependent streams

Such streams are found on Blu-ray, and identified as EAC3 type in
avformat, while the bitstream of the core stream is actually a pure AC3
frame.

Adjust the parsing accordingly, since AC3 frames always hold 6 blocks
and the numblkscod syntax element is not present.

18 months agoavformat/hlsenc: fix handling of delete_segments when %v is present
Bela Bodecs [Wed, 11 Apr 2018 03:15:54 +0000 (11:15 +0800)]
avformat/hlsenc: fix handling of delete_segments when %v is present

When var_stream_map option is used, %v must appear either in segment
name template or in the directory path. This latter case currently is
not handled and delete_segments flag of hls_flags is broken now. This
patch fix this. The root cause of the bug was that HLSSegment struct
only stores the final filename part, but not the final directory path.
Most of the cases, final path info is unneded, It only necessary when
you want to delete old segments (e.g in case of live streaming).
Without variant streams it was unnecessary to store the final directory
path, because all segment were stored into the same directory. But
introducing %v in directory names either require to store the final
directory path into HLSSegment or associate segments with their variant
streams to be able deleting them later. I have choosen the second
solution and introduced a variant index data member into the segment
struct.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Steven Liu <lq@onvideo.cn>
18 months agoavformat/movenc: use correct iTunes copyright atom
Timo Teräs [Tue, 3 Apr 2018 06:05:18 +0000 (09:05 +0300)]
avformat/movenc: use correct iTunes copyright atom

Support for writing copyright metadata was added in commit bed4fc54c9
for 3GP, MOV and iTunes metadata. 3GP and MOV cases are formally
specified. However, iTunes format does not have specification, and
it seems to have been assumed that it would use the same atom as
MOV (both being Apple formats).

However, Apple uses 'cprt' atom for iTunes metadata (do note that
the iTunes 'cprt' encoding is generic iTunes ItemList atom, not
the 3GP 'cprt' encoding. These are also inside different parent
atoms).

Most references trying to document iTunes atoms mention only
the 'cprt' tag. See:
 - http://atomicparsley.sourceforge.net/mpeg-4files.html
 - http://mutagen.readthedocs.io/en/latest/api/mp4.html

Same applies to other software supporting this tag. Most of them
encode and decode only the 'cprt' atom.

ffmpeg mov demuxer supports both atoms in this context. There are
few pieces of other software that support similarly both 'cprt' and
the incorrect '\251cpy' atom in this context. I believe they do it in
order to read the ffmpeg encoded incorrect copyright atom.

In light of the above this changes the copyright atom to 'cprt' as
it seems to be supported univerally and is the correct atom to use.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agolavc/libopusdec: Allow avcodec_open2 to call .close
Matt Wolenetz [Tue, 10 Apr 2018 20:59:25 +0000 (13:59 -0700)]
lavc/libopusdec: Allow avcodec_open2 to call .close

If there is a decoder initialization failure detected in avcodec_open2
after .init is called, allow graceful decoder .close to prevent leaking
libopus decoder allocations.

BUG=828526

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoconfigure: check for INIT_ONCE before enabling w32threads
James Almer [Sun, 8 Apr 2018 17:00:47 +0000 (14:00 -0300)]
configure: check for INIT_ONCE before enabling w32threads

Should fix compilation wiht some old mingw-w64 builds that
don't seem to define it.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoconfigure: check that the required header for Linux Perf is available
James Almer [Sun, 8 Apr 2018 16:30:19 +0000 (13:30 -0300)]
configure: check that the required header for Linux Perf is available

Should fix compilation on targets like some old Android NDK versions.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agolavc/amfenc: Retain a reference to D3D frames used as input during the encoding process
Alexander Kravchenko [Mon, 9 Apr 2018 16:48:33 +0000 (19:48 +0300)]
lavc/amfenc: Retain a reference to D3D frames used as input during the encoding process

Fixes ticket #6990.

Tested-by: James Almer <jamrial@gmail.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
18 months agolavc/videotoolbox: fix failure to decode PAFF
Rodger Combs [Thu, 29 Mar 2018 04:19:28 +0000 (23:19 -0500)]
lavc/videotoolbox: fix failure to decode PAFF

Signed-off-by: Aman Gupta <aman@tmm1.net>
18 months agoSega FILM: set dts and duration when demuxing
Misty De Meo [Mon, 9 Apr 2018 01:27:25 +0000 (18:27 -0700)]
Sega FILM: set dts and duration when demuxing

Reviewed-by: Kyle Swanson <k@ylo.ph>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoMAINTAINERS: add myself to the general developers list
Jun Zhao [Mon, 2 Apr 2018 23:14:46 +0000 (07:14 +0800)]
MAINTAINERS: add myself to the general developers list

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agodoc/filters: correct range for length in astats filter
Gyan Doshi [Mon, 9 Apr 2018 08:58:06 +0000 (14:28 +0530)]
doc/filters: correct range for length in astats filter

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agolavf/segafilmenc: Do not mix variable declaration and code.
Carl Eugen Hoyos [Mon, 9 Apr 2018 22:50:01 +0000 (00:50 +0200)]
lavf/segafilmenc: Do not mix variable declaration and code.

Fixes two warnings: ISO C90 forbids mixed declarations and code

18 months agoavcodec/arm/hevcdsp_sao : add NEON optimization for sao
Meng Wang [Tue, 27 Mar 2018 12:43:06 +0000 (20:43 +0800)]
avcodec/arm/hevcdsp_sao : add NEON optimization for sao

Signed-off-by: Meng Wang <wangmeng.kids@bytedance.com>
Reviewed-by: Shengbin Meng <shengbinmeng@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/movtextdec: Check style_start/end
Michael Niedermayer [Sun, 8 Apr 2018 01:29:44 +0000 (03:29 +0200)]
avcodec/movtextdec: Check style_start/end

Limits based on 3GPP TS 26.245 V14.0.0
Fixes: Timeout
Fixes: 6377/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MOVTEXT_fuzzer-5175929115508736

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/aacsbr_fixed: Fix integer overflow in sbr_hf_assemble()
Michael Niedermayer [Sat, 7 Apr 2018 19:55:06 +0000 (21:55 +0200)]
avcodec/aacsbr_fixed: Fix integer overflow in sbr_hf_assemble()

Fixes: runtime error: signed integer overflow: 2052929346 + 204817098 cannot be represented in type 'int'

This was missed in b1bef755f617af9685b592d866b3eb7f3c4b02b1
Fixes: 5275/clusterfuzz-testcase-minimized-5367635958038528

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agolavc/clearvideo: Allow decoding without extradata.
Carl Eugen Hoyos [Sat, 7 Apr 2018 19:30:45 +0000 (21:30 +0200)]
lavc/clearvideo: Allow decoding without extradata.

18 months agolibavcodec/rv34: error out earlier on missing references
Michael Niedermayer [Mon, 2 Apr 2018 18:01:07 +0000 (20:01 +0200)]
libavcodec/rv34: error out earlier on missing references

Fixes visual corruption on seeking

Fixes: downloadTest_clip_24M.rmvb

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/get_bits: Document skip_bits_long()
Michael Niedermayer [Fri, 23 Mar 2018 17:58:33 +0000 (18:58 +0100)]
avcodec/get_bits: Document skip_bits_long()

Found-by: Kieran
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavformat/matroskadec: reference the existing data buffer when creating packets
James Almer [Wed, 4 Apr 2018 21:12:53 +0000 (18:12 -0300)]
avformat/matroskadec: reference the existing data buffer when creating packets

Newly allocated data buffers (wavpack, prores, compressed buffers)
are padded to meet the requirements of AVPacket.

About 10x speed up in matroska_parse_frame().

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/matroskadec: factor the prores packet parsing code out
James Almer [Wed, 4 Apr 2018 19:07:36 +0000 (16:07 -0300)]
avformat/matroskadec: factor the prores packet parsing code out

Simplifies code in matroska_parse_frame(). This is in preparation for
the following patch.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/matroskadec: use refcounted buffers in EbmlBin
James Almer [Wed, 4 Apr 2018 17:12:54 +0000 (14:12 -0300)]
avformat/matroskadec: use refcounted buffers in EbmlBin

Data in EbmlBin objects is never changed after being read from the
input file (save for two specific cases with encoded CodePrivate), so
using AVBufferRef we can prevent unnecessary copy of data by instead
creating new references to said constant data.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoswresample/swresample: Fix for seg fault in swr_convert_internal() -> sum2_float...
Hendrik Schreiber [Thu, 5 Apr 2018 11:58:37 +0000 (13:58 +0200)]
swresample/swresample: Fix for seg fault in swr_convert_internal() -> sum2_float during dithering.

Removed +len1 in call to s->mix_2_1_f() as I found no logical explanation for it. After removal, problem was gone.

Signed-off-by: Hendrik Schreiber <hs@tagtraum.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agodoc/developer: remove merge request method of contributing
Lou Logan [Thu, 5 Apr 2018 18:10:37 +0000 (10:10 -0800)]
doc/developer: remove merge request method of contributing

This seems to confuse Github users into thinking that we may accept pull
requests. We do not accept pull requests.

Sending patches to the ffmpeg-devel mailing list is our preferred method
for users to contribute code.

Signed-off-by: Lou Logan <lou@lrcd.com>
18 months agodoc/filters: some more details and modified example to zmq/azmq
Bela Bodecs [Tue, 3 Apr 2018 14:18:02 +0000 (16:18 +0200)]
doc/filters: some more details and modified example to zmq/azmq

Info about default value of bind_address option and its abbreviated
version (b). Example modified to have named instanced filter and to show
its use.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Lou Logan <lou@lrcd.com>
18 months agolavf/amr: Stricter heuristic for auto-detection.
Carl Eugen Hoyos [Wed, 4 Apr 2018 22:41:55 +0000 (00:41 +0200)]
lavf/amr: Stricter heuristic for auto-detection.

Fixes ticket #7125.

18 months agolavfi,lavd: add gitignore for generated static component lists
Josh de Kock [Thu, 5 Apr 2018 21:08:50 +0000 (22:08 +0100)]
lavfi,lavd: add gitignore for generated static component lists

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agoAdd Sega FILM muxer
Misty De Meo [Mon, 2 Apr 2018 17:53:30 +0000 (10:53 -0700)]
Add Sega FILM muxer

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agoavcodec/prores_ks : do not call estimate_alpha at each quantification step
Martin Vignali [Thu, 5 Apr 2018 20:04:35 +0000 (22:04 +0200)]
avcodec/prores_ks : do not call estimate_alpha at each quantification step

also remove unused arg in estimate_alpha_plane

Improve quality of Prores 4444 encoding

18 months agocheckasm/vf_blend : add test for 16 bit version of
Martin Vignali [Sat, 17 Mar 2018 18:37:46 +0000 (19:37 +0100)]
checkasm/vf_blend : add test for 16 bit version of

grainextract
grainmerge
average
extremity
negation

18 months agoavfilter/x86/vf_blend : add SIMD for 16 bit version of
Martin Vignali [Sat, 17 Mar 2018 18:37:06 +0000 (19:37 +0100)]
avfilter/x86/vf_blend : add SIMD for 16 bit version of

grainextract
grainmerge
average
extremity
negation

18 months agoavfilter/x86/vf_blend : reorganize DIFFERENCE macro to reduce line duplication betwee...
Martin Vignali [Sat, 17 Mar 2018 18:24:49 +0000 (19:24 +0100)]
avfilter/x86/vf_blend : reorganize DIFFERENCE macro to reduce line duplication between 8bit and 16 bit version

18 months agoavcodec/openh264enc.c: generate IDR frame in response to I frame pict_type
Valery Kot [Fri, 16 Mar 2018 13:50:34 +0000 (14:50 +0100)]
avcodec/openh264enc.c: generate IDR frame in response to I frame pict_type

Signed-off-by: Valery Kot <valery.kot@gmail.com>
18 months agoavformat/mov: Fix parsing of tfdt when using sample descriptors.
Jacob Trimble [Wed, 4 Apr 2018 19:30:56 +0000 (12:30 -0700)]
avformat/mov: Fix parsing of tfdt when using sample descriptors.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agodoc/developer: update link to "sign-off" info
Lou Logan [Thu, 5 Apr 2018 18:00:42 +0000 (10:00 -0800)]
doc/developer: update link to "sign-off" info

Found by Hendrik Schreiber.

Signed-off-by: Lou Logan <lou@lrcd.com>
18 months agoavcodec/decode: fix warning when decoding pseudo paletted formats
wm4 [Wed, 4 Apr 2018 16:07:03 +0000 (18:07 +0200)]
avcodec/decode: fix warning when decoding pseudo paletted formats

The pseudo palette allocation is optional now. But if it's still
allocated (like the internal get_buffer2 implementation does, for
compatibility), it shouldn't print a warning.

18 months agoavformat/movenc: add rtp_hinting_needed() helper function
Timo Teräs [Mon, 2 Apr 2018 08:36:57 +0000 (11:36 +0300)]
avformat/movenc: add rtp_hinting_needed() helper function

This is shared test and this simplifies code a bit. Follow up
commit will have additional tests for this function.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoffmpeg: allow setting attached_pic disposition
Timo Teräs [Mon, 2 Apr 2018 08:36:56 +0000 (11:36 +0300)]
ffmpeg: allow setting attached_pic disposition

This is used to signal that image should be stored in metadata
as cover image.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavformat/matroskadec: address some more missing AVPacket frees
James Almer [Wed, 4 Apr 2018 16:53:12 +0000 (13:53 -0300)]
avformat/matroskadec: address some more missing AVPacket frees

Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/mpeg4videodec: unbreak multithreading decoding
James Almer [Wed, 4 Apr 2018 14:06:55 +0000 (11:06 -0300)]
avcodec/mpeg4videodec: unbreak multithreading decoding

Should fix double free related crashes.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/matroskadec: address a missing AVPacket free
James Almer [Wed, 4 Apr 2018 13:54:14 +0000 (10:54 -0300)]
avformat/matroskadec: address a missing AVPacket free

Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/libaomdec: fix broken pix_fmt changes from the previous commit
James Almer [Wed, 4 Apr 2018 04:47:12 +0000 (01:47 -0300)]
avcodec/libaomdec: fix broken pix_fmt changes from the previous commit

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/mpeg4videodec: free studio profile VLCs when closing the decoder
James Almer [Wed, 4 Apr 2018 03:43:40 +0000 (00:43 -0300)]
avcodec/mpeg4videodec: free studio profile VLCs when closing the decoder

Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/clearvideo: fix mixed code and declarations
James Almer [Wed, 4 Apr 2018 03:43:01 +0000 (00:43 -0300)]
avcodec/clearvideo: fix mixed code and declarations

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/mp3enc: use AVPacketList helper functions to queue packets
James Almer [Mon, 26 Mar 2018 18:02:39 +0000 (15:02 -0300)]
avformat/mp3enc: use AVPacketList helper functions to queue packets

Simplifies code.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/ttaenc: use AVPacketList helper functions to queue packets
James Almer [Mon, 26 Mar 2018 18:02:38 +0000 (15:02 -0300)]
avformat/ttaenc: use AVPacketList helper functions to queue packets

Simplifies code.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/matroskadec: use AVPacketList to queue packets
James Almer [Mon, 26 Mar 2018 18:02:37 +0000 (15:02 -0300)]
avformat/matroskadec: use AVPacketList to queue packets

It's more robust and efficient.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/utils: optimize ff_packet_list_free()
James Almer [Mon, 26 Mar 2018 18:02:36 +0000 (15:02 -0300)]
avformat/utils: optimize ff_packet_list_free()

Don't constantly overwrite the list's head pointer.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/utils: make AVPacketList helper functions shared
James Almer [Tue, 27 Mar 2018 22:48:18 +0000 (19:48 -0300)]
avformat/utils: make AVPacketList helper functions shared

Based on a patch by Luca Barbato.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agolavf/hls: Remove the dead code in parse_playlist()
Jun Zhao [Wed, 4 Apr 2018 03:04:56 +0000 (11:04 +0800)]
lavf/hls: Remove the dead code in  parse_playlist()

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Reviewed-by: Steven Liu <lq@onvideo.cn>
18 months agoavcodec/sheervideo: add missing wrappers to sheervideodata.h
James Almer [Wed, 4 Apr 2018 02:32:03 +0000 (23:32 -0300)]
avcodec/sheervideo: add missing wrappers to sheervideodata.h

Fixes make fate-source

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/clearvideo: add missing wrappers to clearvideodata.h
James Almer [Wed, 4 Apr 2018 02:31:36 +0000 (23:31 -0300)]
avcodec/clearvideo: add missing wrappers to clearvideodata.h

Fixes make fate-source

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/libaomdec: add support for monochrome files
James Almer [Tue, 3 Apr 2018 18:33:48 +0000 (15:33 -0300)]
avcodec/libaomdec: add support for monochrome files

All such files are signaled as I42016, as there's no monochrome value
in aom_img_fmt_t.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/libaomdec: remove duplicate code
James Almer [Tue, 3 Apr 2018 18:27:18 +0000 (15:27 -0300)]
avcodec/libaomdec: remove duplicate code

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agolavc/cfhd: fix distortion of lowest 8 lines when height is not multiple of 16
Gagandeep Singh [Tue, 27 Mar 2018 07:23:45 +0000 (12:53 +0530)]
lavc/cfhd: fix distortion of lowest 8 lines when height is not multiple of 16

Also update fate reference. Fixes ticket #6675.

18 months agoavutil/pixdesc: deprecate AV_PIX_FMT_FLAG_PSEUDOPAL
wm4 [Thu, 29 Mar 2018 13:18:28 +0000 (15:18 +0200)]
avutil/pixdesc: deprecate AV_PIX_FMT_FLAG_PSEUDOPAL

PSEUDOPAL pixel formats are not paletted, but carried a palette with the
intention of allowing code to treat unpaletted formats as paletted. The
palette simply mapped the byte values to the resulting RGB values,
making it some sort of LUT for RGB conversion.

It was used for 1 byte formats only: RGB4_BYTE, BGR4_BYTE, RGB8, BGR8,
GRAY8. The first 4 are awfully obscure, used only by some ancient bitmap
formats. The last one, GRAY8, is more common, but its treatment is
grossly incorrect. It considers full range GRAY8 only, so GRAY8 coming
from typical Y video planes was not mapped to the correct RGB values.
This cannot be fixed, because AVFrame.color_range can be freely changed
at runtime, and there is nothing to ensure the pseudo palette is
updated.

Also, nothing actually used the PSEUDOPAL palette data, except xwdenc
(trivially changed in the previous commit). All other code had to treat
it as a special case, just to ignore or to propagate palette data.

In conclusion, this was just a very strange old mechnaism that has no
real justification to exist anymore (although it may have been nice and
useful in the past). Now it's an artifact that makes the API harder to
use: API users who allocate their own pixel data have to be aware that
they need to allocate the palette, or FFmpeg will crash on them in
_some_ situations. On top of this, there was no API to allocate the
pseuo palette outside of av_frame_get_buffer().

This patch not only deprecates AV_PIX_FMT_FLAG_PSEUDOPAL, but also makes
the pseudo palette optional. Nothing accesses it anymore, though if it's
set, it's propagated. It's still allocated and initialized for
compatibility with API users that rely on this feature. But new API
users do not need to allocate it. This was an explicit goal of this
patch.

Most changes replace AV_PIX_FMT_FLAG_PSEUDOPAL with FF_PSEUDOPAL. I
first tried #ifdefing all code, but it was a mess. The FF_PSEUDOPAL
macro reduces the mess, and still allows defining FF_API_PSEUDOPAL to 0.

Passes FATE with FF_API_PSEUDOPAL enabled and disabled. In addition,
FATE passes with FF_API_PSEUDOPAL set to 1, but with allocation
functions manually changed to not allocating a palette.

18 months agoavcodec/xwdenc: do not rely on AV_PIX_FMT_FLAG_PSEUDOPAL palettes
wm4 [Thu, 29 Mar 2018 13:10:15 +0000 (15:10 +0200)]
avcodec/xwdenc: do not rely on AV_PIX_FMT_FLAG_PSEUDOPAL palettes

This is the only code I found within FFmpeg that still inherently
requires AV_PIX_FMT_FLAG_PSEUDOPAL. It's easily changed not to require
it.

Preparation for the next patch.

18 months agoavcodec/sheervideo: move tables to own header
Paul B Mahol [Tue, 3 Apr 2018 15:23:36 +0000 (17:23 +0200)]
avcodec/sheervideo: move tables to own header

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavcodec/clearvideo: add inter-frame decoding
Paul B Mahol [Sat, 31 Mar 2018 09:48:30 +0000 (11:48 +0200)]
avcodec/clearvideo: add inter-frame decoding

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavcodec/imgconvert: fix possible null pointer dereference
Simon Thelen [Tue, 3 Apr 2018 12:41:33 +0000 (14:41 +0200)]
avcodec/imgconvert: fix possible null pointer dereference

regression since 354b26a3945eadd4ed8fcd801dfefad2566241de

18 months agofftools/cmdutils: add support for level flag in loglevel option parser
Tobias Rapp [Tue, 3 Apr 2018 06:54:10 +0000 (08:54 +0200)]
fftools/cmdutils: add support for level flag in loglevel option parser

Allows to manage the AV_LOG_PRINT_LEVEL flag as a prefix to the loglevel
option value, similar to the existing AV_LOG_SKIP_REPEATE flag. Adds
support for setting flags relative to the existing value by using a +/-
prefix.

Previous version reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
18 months agoavcodec/aacdec_fixed: Fix integer overflow in apply_independent_coupling_fixed()
Michael Niedermayer [Sat, 31 Mar 2018 19:19:19 +0000 (21:19 +0200)]
avcodec/aacdec_fixed: Fix integer overflow in apply_independent_coupling_fixed()

I was not able to reproduce this, this fix is based on just the fuzzer log.
Fixes: 4959/clusterfuzz-testcase-minimized-6035350934781952

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/cscd: Error out when LZ* decompression fails
Michael Niedermayer [Sun, 11 Mar 2018 23:05:04 +0000 (00:05 +0100)]
avcodec/cscd: Error out when LZ* decompression fails

Fixes: Timeout
Fixes: 6304/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CSCD_fuzzer-5754772461191168

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavformat/options_table: Change the seek2any location in opt table.
Jun Zhao [Sun, 1 Apr 2018 07:53:11 +0000 (15:53 +0800)]
avformat/options_table: Change the seek2any location in opt table.

Change the seek2any location in avformat_options to make code more
readable.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/libaomdec: remove references to gbrp pixfmt
James Almer [Mon, 2 Apr 2018 19:44:18 +0000 (16:44 -0300)]
avcodec/libaomdec: remove references to gbrp pixfmt

Support for this needs testing, so remove for now.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/libaomenc: remove references to gbrp pixfmt
James Almer [Mon, 2 Apr 2018 19:44:05 +0000 (16:44 -0300)]
avcodec/libaomenc: remove references to gbrp pixfmt

Support for this needs testing, so remove for now.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/rmdec: make use of avio_get_str()
Paul B Mahol [Mon, 2 Apr 2018 20:09:59 +0000 (22:09 +0200)]
avformat/rmdec: make use of avio_get_str()

Also do not set empty metadata.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavformat/concatdec: only set output stream index before returning packet
Marton Balint [Sun, 25 Mar 2018 20:19:28 +0000 (22:19 +0200)]
avformat/concatdec: only set output stream index before returning packet

Fixes ticket #6434.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavcodec/aic: fix decoding of videos which height is not multiple of 16
Paul B Mahol [Fri, 30 Mar 2018 19:08:47 +0000 (21:08 +0200)]
avcodec/aic: fix decoding of videos which height is not multiple of 16

Fate output changes and under close inspection looks more correct.
Fixes #6187.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavcodec/scpr: fix decoding of prev+top-topleft prediction in keyframes
Paul B Mahol [Mon, 2 Apr 2018 14:03:03 +0000 (16:03 +0200)]
avcodec/scpr: fix decoding of prev+top-topleft prediction in keyframes

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agompeg4video: Add support for MPEG-4 Simple Studio Profile.
Kieran Kunhya [Fri, 29 Dec 2017 15:42:14 +0000 (15:42 +0000)]
mpeg4video: Add support for MPEG-4 Simple Studio Profile.

This is a profile supporting > 8-bit video and has a higher quality DCT

18 months agosimple_idct: Template functions to support an input bitdepth parameter
Kieran Kunhya [Wed, 27 Dec 2017 01:08:39 +0000 (01:08 +0000)]
simple_idct: Template functions to support an input bitdepth parameter

18 months agoavcodec/scpr: check for possible out of array access
Paul B Mahol [Mon, 2 Apr 2018 06:59:20 +0000 (08:59 +0200)]
avcodec/scpr: check for possible out of array access

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavformat/utils: use av_packet_make_refcounted to ensure packets are ref counted
James Almer [Sun, 25 Mar 2018 01:33:32 +0000 (22:33 -0300)]
avformat/utils: use av_packet_make_refcounted to ensure packets are ref counted

Simplifies code, while also fixing a potential leak of side data in pkt.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/bsf: use av_packet_make_refcounted to ensure packets are ref counted
James Almer [Sun, 25 Mar 2018 03:23:58 +0000 (00:23 -0300)]
avcodec/bsf: use av_packet_make_refcounted to ensure packets are ref counted

Simplifies code.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavdevice/decklink_dec: use av_packet_make_refcounted to ensure packets are ref counted
James Almer [Sun, 25 Mar 2018 01:28:42 +0000 (22:28 -0300)]
avdevice/decklink_dec: use av_packet_make_refcounted to ensure packets are ref counted

Partially reverts commit e91f0c4f8b, simplifying code.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/encode: use av_packet_make_refcounted to ensure packets are ref counted
James Almer [Sun, 25 Mar 2018 00:58:56 +0000 (21:58 -0300)]
avcodec/encode: use av_packet_make_refcounted to ensure packets are ref counted

Simplifies code.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/frame_thread_encoder: remove usage of av_dup_packet()
James Almer [Sun, 25 Mar 2018 01:27:05 +0000 (22:27 -0300)]
avcodec/frame_thread_encoder: remove usage of av_dup_packet()

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/avpacket: add av_packet_make_refcounted()
James Almer [Sat, 24 Mar 2018 22:18:59 +0000 (19:18 -0300)]
avcodec/avpacket: add av_packet_make_refcounted()

It works as a drop in replacement for the deprecated av_dup_packet(),
to ensure a packet is reference counted.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
18 months agolavf/img2dec: use new iteration API
Josh de Kock [Sun, 18 Mar 2018 15:31:20 +0000 (15:31 +0000)]
lavf/img2dec: use new iteration API

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agolav*,tests: remove several register_all calls
Josh de Kock [Sun, 18 Feb 2018 17:54:23 +0000 (17:54 +0000)]
lav*,tests: remove several register_all calls

avdevice_register_all() is still required to register devices into
lavf (this is required due to lavd being somewhat of a hack).

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agolavf/format: use const AVInputFormat for iteration
Josh de Kock [Sun, 1 Apr 2018 02:17:07 +0000 (03:17 +0100)]
lavf/format: use const AVInputFormat for iteration

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agoRevert "avformat/format: temporarily use old next api"
Josh de Kock [Sat, 31 Mar 2018 23:19:49 +0000 (00:19 +0100)]
Revert "avformat/format: temporarily use old next api"

This reverts commit 909e00ae816df9b6a05b1c4d0cafb794d4d0ca28.

There is no need to use the old API anymore as the new API now
behaves in the same way (treating devices as formats when loaded).

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agoavfilter: bump version for the latest API change
James Almer [Mon, 2 Apr 2018 02:19:02 +0000 (23:19 -0300)]
avfilter: bump version for the latest API change

And fix the entry in doc/APIchanges

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agocmdutils: fix new API break the "ffmpeg -muxers/demuxers"
Jun Zhao [Sun, 1 Apr 2018 14:29:46 +0000 (22:29 +0800)]
cmdutils: fix new API break the "ffmpeg -muxers/demuxers"

fix commit 2238190 break the "ffmpeg -muxers/demuxers".

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agolavf/allformats: remove left-over index decrement
Josh de Kock [Sun, 1 Apr 2018 02:07:11 +0000 (03:07 +0100)]
lavf/allformats: remove left-over index decrement

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agolavf: move avpriv function definition to internal.h
Josh de Kock [Sat, 31 Mar 2018 23:20:59 +0000 (00:20 +0100)]
lavf: move avpriv function definition to internal.h

Signed-off-by: Josh de Kock <josh@itanimul.li>
18 months agoavformat/mpeg: add missing check
Paul B Mahol [Sun, 1 Apr 2018 19:08:16 +0000 (21:08 +0200)]
avformat/mpeg: add missing check

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavformat/mpeg: fix logic failure
Paul B Mahol [Sun, 1 Apr 2018 18:58:48 +0000 (20:58 +0200)]
avformat/mpeg: fix logic failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
18 months agoavformat/mpeg: fix detection and demuxing of raw AC3 in mpegps
Paul B Mahol [Fri, 30 Mar 2018 16:44:34 +0000 (18:44 +0200)]
avformat/mpeg: fix detection and demuxing of raw AC3 in mpegps

Fixes #4889.

Signed-off-by: Paul B Mahol <onemda@gmail.com>