Commit Graph

33923 Commits

Author SHA1 Message Date
Vittorio Giovara
f00f6d538d lavc: Sanitize header inclusion guards
Fix typos, add missing comments, and remove stray lines.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-12 13:39:37 +02:00
Vittorio Giovara
6064f697a3 lavc: Enable side data only packets by default
Deprecate the now unused option, but temporarily retain the capability
to disable the now default behaviour.

Mention this change in the AVPacket documentation.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-12 13:38:31 +02:00
wm4
9940459720 mmaldec: fix pkt_dts determination
This also drops setting the frame->pts field. This is usually not set by
decoders, so this would be an inconsistency that's at worst a danger to
the API user.

It appears the buffer->dts field is normally not set by the MMAL
decoder, so don't use it. If it's ever going to be set by MMAL, we
don't know whether the value will be what we want.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:27:34 +02:00
wm4
87a051f976 lavc: allow asynchronous decoders to return correct pkt_dts values
The generic code in utils.c sets the AVFrame.pkt_dts field from the
packet it was supposedly decoded. This does not have to be true for a
fully asynchronous decoder like mmaldec. It could be overwritten with an
incorrect value. Even if the decoder doesn't determine the DTS (but sets
it to AV_NOPTS_VALUE), it's impossible to determine a correct value in
utils.c.

Decoders can now be marked with FF_CODEC_CAP_SETS_PKT_DTS, in which case
utils.c won't overwrite the field. The decoders are expected to set this
field (even if they only set it to AV_NOPTS_VALUE).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:27:19 +02:00
wm4
b7ab6e18ee mmaldec: disable timestamp interpolation
This MMAL feature fills in missing timestamps from the framerate set on
the input port. This is generally unwanted, since libavcodec decoders
merely pass through timestamps without ever "fixing" them. The framerate
is also unknown, and even the timebase doesn't have to be set.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:25:49 +02:00
wm4
6b652c0273 mmaldec: fix problems with flush logic
Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.

Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:25:39 +02:00
wm4
b84675d63a mmaldec: hack against buffering problems on broken input
I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).

The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-12 12:25:23 +02:00
Clément Bœsch
7434b9f66f avcodec/roqvideoenc: use AV_OPT_TYPE_BOOL for quake3_compat option 2015-09-12 18:24:49 +02:00
Clément Bœsch
8e22becbc7 avcodec/pgssubdec: use AV_OPT_TYPE_BOOL for forced_subs_only option 2015-09-12 18:24:49 +02:00
Clément Bœsch
7a256133ff avcodec/textdec: use AV_OPT_TYPE_BOOL for keep_ass_markup option 2015-09-12 17:50:24 +02:00
Clément Bœsch
51cec6c306 avcodec/libx264: use AV_OPT_TYPE_BOOL for fastfirstpass option 2015-09-12 17:50:23 +02:00
Clément Bœsch
411c32386a avcodec/h264: use AV_OPT_TYPE_BOOL for is_avc option 2015-09-12 17:50:23 +02:00
Clément Bœsch
4f926a1088 avcodec: use AV_OPT_TYPE_BOOL for refcounted_frames, side_data_only_packets and skip_alpha options 2015-09-12 17:50:18 +02:00
Hendrik Leppkes
95f92b2513 Merge commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b'
* commit 'f00f6d538dcbaa122eb5e2784f41f4a299296b7b':
  lavc: Sanitize header inclusion guards

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 15:16:57 +02:00
Hendrik Leppkes
580c4fc98a Merge commit '6064f697a321174232a3fad351afb21150c3e9e5'
* commit '6064f697a321174232a3fad351afb21150c3e9e5':
  lavc: Enable side data only packets by default

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 15:12:05 +02:00
Rostislav Pehlivanov
3381d92671 aacenc_tns: readjust values for new TNS decision making
Since TNS was fixed with the recent commits retweak the values
so it's more frequently used.
Still not enabled by default yet, though it's possible that it
will be made enabled by default in the near future.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:15:02 +01:00
Rostislav Pehlivanov
7b7866387b aacenc_tns: encode coefficients directly and reenable compression
This commit was made possible with the earlier commits since the
new quantization method basically means we're working always with
unsigned values. The specifications mention to use compression when
the first 2 bits are identical but they didn't mention if this should
happen before or after the conversion to signed values. Actually
they said nothing about conversion to signed values.

With this commit, coefficient compression usually always happens
which saves a lot of space, especially at extremely low bitrates
and doesn't change the quality at all.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:10:28 +01:00
Rostislav Pehlivanov
a83a8d7068 aacenc_tns: redo coefficient quantization and decision making
This finally (and again) gets rid of basically everything the
specifications say about how TNS should be done. The main
problem used to be that a single filter was used for all
coefficients which despite being explicitly recommended by
the specifications usually sounds wrong, therefore it's
a corner case in the current TNS implementation.

This commit also changes the coefficient bit size, as apparently
it's better to use lower precision in case the windows are eight
short. This is apparently what fdk_aac uses, looking at the bit
stream and makes sense. Also the order when 8 SHORT windows happen
is important as 7 was too much and according to PSNR was worse
while 5 is just about correct.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-12 13:04:27 +01:00
Hendrik Leppkes
e75b2e9c4b Merge commit '99404597201911de90cff2ef85f2d44176d39147'
* commit '99404597201911de90cff2ef85f2d44176d39147':
  mmaldec: fix pkt_dts determination

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:30:41 +02:00
Hendrik Leppkes
264ff3dd2e Merge commit '87a051f97633010f71dfc1d23d806856499bf231'
* commit '87a051f97633010f71dfc1d23d806856499bf231':
  lavc: allow asynchronous decoders to return correct pkt_dts values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:30:33 +02:00
Hendrik Leppkes
30fb54c23f Merge commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb'
* commit 'b7ab6e18eecad43593ad2a0e9fc9eba7f24751cb':
  mmaldec: disable timestamp interpolation

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:29:29 +02:00
Hendrik Leppkes
84d04a0dfa Merge commit '5788623d29c3e806a7879210986110aced758dc2'
* commit '5788623d29c3e806a7879210986110aced758dc2':
  jpeg2000: Split codeblock decoding from the main tile decoding

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:25:38 +02:00
Hendrik Leppkes
6e611a1839 Merge commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776'
* commit 'db53a2306f62f05faa67e6f3c60ee55a9b8e4776':
  jpeg2000: Do not warn about known and skippable markers

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-12 13:16:13 +02:00
Ronald S. Bultje
a30a8beeb3 vp9: Fix emu[] edge overflow conditions for >8bpp/non-420. 2015-09-12 07:01:48 -04:00
Ronald S. Bultje
2563a33856 vp9: re-initialize internal buffers on bpp change also. 2015-09-12 07:01:47 -04:00
James Almer
d5f8a642f6 x86: port PSIGNW to cpuflags
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-11 23:27:03 -03:00
Ronald S. Bultje
4b66274a86 vp9: save one (PSIGNW) instruction in iadst16_1d sse2/ssse3. 2015-09-11 20:36:51 -04:00
Ronald S. Bultje
02064d6b7b libvpxdec: apply RGB to 444P16 instead of 422P16. 2015-09-11 19:35:22 -04:00
Rostislav Pehlivanov
8180b113e1 aaccoder: respect cutoff when marking bands as PNS
Makes more sense as users usually set the -cutoff option
to low pass filter the signal. The encoder will still over
shoot slightly when encoding normal coefficients however
that's normal.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-11 18:59:15 +01:00
Luca Barbato
5788623d29 jpeg2000: Split codeblock decoding from the main tile decoding
That loop is completely stand-alone.
2015-09-11 18:19:39 +02:00
Luca Barbato
db53a2306f jpeg2000: Do not warn about known and skippable markers
Matches the openjpeg behaviour.
2015-09-11 18:19:01 +02:00
Luca Barbato
9b5a4a9cce mmvideo: Make sure the rle does not write over the frame boundaries
Bug-Id: 887
CC: libav-stable@libav.org
2015-09-11 18:19:00 +02:00
Michael Niedermayer
8b72f6d50b avcodec/ljpegenc: Fix encoding RGBA LJPEG
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 13:45:29 +02:00
Michael Niedermayer
055e56e9f7 avcodec/mjpegdec: Fix decoding RGBA RCT LJPEG
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-11 13:42:05 +02:00
Carl Eugen Hoyos
85a7ff8c27 lavc: Fix standalone compilation of the subrip decoder. 2015-09-11 12:39:29 +02:00
Agatha Hu
81071eea7d avcodec/nvenc: change flag of cuCtxCreate to avoid CPU spins
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-09-11 10:11:29 +02:00
Kevin Wheatley
a1fa5392e6 avcodec/exr: Mark up the decoded buffer as the appropriate transfer characteristic when applying one 2015-09-10 23:53:05 +02:00
Kevin Wheatley
7eb3233352 avcodec/exr: Add support for applying a transfer characteristic curve to OpenEXR inputs.
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
2015-09-10 23:53:05 +02:00
Michael Niedermayer
3ffa77d301 avcodec/options_table: Fix TRC / PRI typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:51:19 +02:00
Kevin Wheatley
7061a30c37 avcodec/options_table: Add SMPTE ST428-1 colour primaries (CIE 1931 XYZ) to command line options
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:33:56 +02:00
Kevin Wheatley
47570a265e avcodec/options_table: Add CLI options for SMPTE ST 2084 and ST 428-1 transfer characteristics
Signed-off-by: Kevin Wheatley <kevin.j.wheatley@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:33:39 +02:00
Michael Niedermayer
151312890c avcodec/truemotion1: Simplify code using AV_PIX_FMT_0RGB32
Suggested-by: carl
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 22:17:27 +02:00
Michael Niedermayer
a4d17c9a70 avcodec/truemotion1: use BGR0/0RGB
The alpha channel in the fate sample contains random trash, not alpha

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 16:36:47 +02:00
Michael Niedermayer
67fe1a2b61 avcodec/cscd: Use BGR0 instead of BGRA
the available BGRA samples contain random trash in the alpha channel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 16:36:47 +02:00
Michael Niedermayer
aec340c533 avcodec/bmp: Analyze BGRA files alpha channel to choose pixel format
BGRA BMPs commonly do contain an all transparent alpha channel

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 16:36:47 +02:00
Michael Niedermayer
dfd3fd67bb avcodec/libopenh264enc: use AV_LOG_TRACE instead of DEBUG+1
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 15:00:19 +02:00
Ronald S. Bultje
fd8b90f5f6 vp9: fix overflow in 8x8 topleft 32x32 idct ssse3 version.
Also disable the mmx/iwht optimization when the bitexact flag is set.
With synthetically coded coefficients (i.e. these that lead to a
residual well outside the [-255,255] range), our optimizations will
overflow. It doesn't make sense to fix the overflows, since they can
only occur on synthetic input, not on real fwht-generated input. Thus,
add a bitexact flag that disables this optimization.
2015-09-10 07:51:16 -04:00
Ronald S. Bultje
4bb9dbe4d7 vp9: permanently delete segmentation refmap on any size change. 2015-09-10 07:51:16 -04:00
Michael Niedermayer
35b7bd2558 avcodec/libopenh264enc: Remove some unneeded intermediate variables
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 13:13:06 +02:00
Michael Niedermayer
fb000b0f0f avcodec/libopenh264enc: Fix formating to match FFmpegs style
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 13:02:40 +02:00
Michael Niedermayer
ec5b13fbe4 avcodec/libopenh264enc: remove useless cast
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 12:59:44 +02:00
Gregory J. Wolfe
e8c45b96f4 avcodec/libopenh264enc: Use av_log() to log messages
File libopenh264enc.c has been modified so that the encoder uses av_log()
to log messages (error, warning, info, etc.) instead of logging them
directly to stderr.  At the time the encoder is created, the current
ffmpeg log level is mapped to an equivalent libopenh264 log level.  This
log level, and a message logging function that invokes av_log() to
actually log messages, are then set on the encoder.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-10 12:56:09 +02:00
Hendrik Schreiber
9d742d23d2 lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video. 2015-09-09 14:49:52 +02:00
Paul B Mahol
8bf2d3e468 avcodec/wavpackenc: use AV_OPT_TYPE_BOOL for all options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Paul B Mahol
6603368ab4 avcodec/huffyuvenc: use AV_OPT_TYPE_BOOL for non_deterministic option
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Paul B Mahol
33a68759c1 avcodec/libmp3lame: use AV_OPT_TYPE_BOOL for all options
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-09 10:01:10 +00:00
Rostislav Pehlivanov
da64bd6a99 aaccoder: tweak PNS implementation further
This commit changes a few things about the noise substitution
logic:
 - Brings back the quantization factor (reduced to 3) during
   scalefactor index calculations.
 - Rejects any zeroed bands. They should be inaudiable and it's
   a waste transmitting the scalefactor indices for these.
 - Uses swb_offsets instead of incrementing a 'start' with every
   window group size.
 - Rejects all PNS during short windows.
Overall improves quality. There was a plan to use the lfg system
to create the random numbers instead of using whatever the decoder
uses but for now this works fine. Entropy is far from important here.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-09 10:44:33 +01:00
Hendrik Leppkes
b421455ee0 Merge commit '3b8e895237592fdaffe87cdcd204104200b9ccf9'
* commit '3b8e895237592fdaffe87cdcd204104200b9ccf9':
  codec_desc: Add missing DXV entry

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-09 09:55:14 +02:00
Vittorio Giovara
3b8e895237 codec_desc: Add missing DXV entry 2015-09-09 03:11:09 +02:00
Michael Niedermayer
2c1ec57596 avformat/mpegvideo_enc: Move sponsorship notice to its own comment block
Suggested-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 02:50:20 +02:00
Andrew Stone
a450ec2672 avcodec/libvorbisdec: Fix memory leak
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-09 01:56:14 +02:00
Michael Niedermayer
91ca8105dd avcodec/h264_sei: Remove "Subtitles with data type 0x%02x" sample request
Suggested-by: Carl and Hendrik
2015-09-09 00:17:59 +02:00
Clément Bœsch
a6da2fec7c avcodec/aacenc: use AV_OPT_TYPE_BOOL 2015-09-08 22:39:20 +02:00
Stefano Sabatini
309fb6ba22 lavc/options: extend/fix text for threads and slices options 2015-09-08 17:54:33 +02:00
Stefano Sabatini
ae72b57502 lavc/libopenh264enc: apply minor consistency fixes to options text 2015-09-08 17:54:26 +02:00
Hendrik Leppkes
5d8e836d0e Replace all remaining occurances of step/depth_minus1 and offset_plus1 2015-09-08 17:10:48 +02:00
Hendrik Leppkes
151aa2ebff Merge commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba'
* commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba':
  lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 16:35:28 +02:00
Hendrik Leppkes
72773203a6 Merge commit 'd0f7e4a57fbffa0efb204d4274c3dd56fbfff946'
* commit 'd0f7e4a57fbffa0efb204d4274c3dd56fbfff946':
  dxtory: Unify and rework the decoding routines

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:34:09 +02:00
Hendrik Leppkes
8537e24927 Merge commit '3cdda78deb19b39dbbf8961ae0aec44dbb19bf6d'
* commit '3cdda78deb19b39dbbf8961ae0aec44dbb19bf6d':
  checkasm: add unit tests for v210enc

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:30:00 +02:00
Hendrik Leppkes
aa15e233c4 Merge commit 'a7e6fbd90e62d3320b1e26d8209fc0f55ee5b0be'
* commit 'a7e6fbd90e62d3320b1e26d8209fc0f55ee5b0be':
  dxtory: Factorize the buffer loading

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:27:05 +02:00
Hendrik Leppkes
696634c5fa Merge commit '6a6bc43f5f79587b8936334cc0b3a6616f4807ac'
* commit '6a6bc43f5f79587b8936334cc0b3a6616f4807ac':
  dxtory: Factorize slice size checks

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-08 14:23:53 +02:00
Carl Eugen Hoyos
9b2802f0d3 lavc/dxv: Support more real-world old version samples. 2015-09-08 10:18:16 +02:00
Carl Eugen Hoyos
84c9bf62b4 lavc/dxv: Silence "Multiple ff_thread_finish_setup() calls" warnings. 2015-09-08 10:16:34 +02:00
周晓勇
a78656a187 avcodec: loongson delete invalid simple idct put and add optimization
Change-Id: I23a36c65915f01a1cf20e317c14b8eaaa62958b4
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>

Fixes Decoding of http://loongnix.org/ftp/multimedia/testing/nanocore_720p_24fps_mpeg4_ac3_short.avi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-08 01:04:36 +02:00
Michael Niedermayer
124b7cd485 Add NOA credits 2015-09-08 01:04:19 +02:00
周晓勇
f7e9b9d260 avcodec: loongson optimize h264dsp idct and loop filter with mmi
Change-Id: Ic87fb8f5cd22a502ff9dbbc5a5a8ea97cfc8a1dd
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 22:49:52 +02:00
Ivan Uskov
3f8e2e9953 libavcodec/qsvdec.c: correct flush() handler has been implemented
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 22:04:02 +02:00
Ivan Uskov
cc167f7e55 libavcodec/qsvdec.c: correct handling of dynamic frame size changing has been implemented
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-07 22:04:02 +02:00
James Almer
ef359e724d avcodec: remove VIMA Makefile entry
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 16:24:31 -03:00
James Almer
f9fd879877 avcodec: remove missing bits from deprecated VIMA decoder
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 16:06:25 -03:00
James Almer
83c6a880a6 avcodec: remove fourcc values from AVCodecIDs
Based on a patch by wm4.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 12:47:00 -03:00
James Almer
2bef340cb2 avcodec: remove duplicate AVCodecIDs
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-07 12:46:56 -03:00
Hendrik Leppkes
1789e46d34 Merge commit '5a1a9da8a7ae120f2543b8f2fa13dc8baac39f17'
* commit '5a1a9da8a7ae120f2543b8f2fa13dc8baac39f17':
  mpegvideo: Drop a stray error message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 16:08:42 +02:00
Hendrik Leppkes
d02d208211 Merge commit 'c45fcf30cfab687004ed1cdc06ebaa21f4262a0b'
* commit 'c45fcf30cfab687004ed1cdc06ebaa21f4262a0b':
  DXV decoder

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 16:07:07 +02:00
Gwenole Beauchesne
aea611dc3e vaapi: fix local header include.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-09-07 15:32:08 +02:00
Vittorio Giovara
2268db2cd0 lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields
The new fields can be accessed directly and are more intelligible.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-07 12:37:47 +02:00
Luca Barbato
d0f7e4a57f dxtory: Unify and rework the decoding routines
Do not make many assumption on the dimension of the slices and just
try to decode additional lines if there is enough data left.

Decodes all the samples kindly provided by ultramage.
2015-09-06 14:16:38 +02:00
Rostislav Pehlivanov
b6cc8ec7ec aaccoder: add frequency scaling and quantization correction for PNS
This commit once again improves the PNS implementation by scaling the
thresholds with frequency. The thresholds get looser as the frequency
increases since higher frequencies are basically noise to human ears.

Also, this introduces quantization error correction for PNS. Should
the error be too much, no PNS will be used. The energy_ratio is used
to regulate the actual encoded PNS energy: if the generated PNS
energy is higher than the energy from the psy system, energy_ratio
is used to correct it so that hopefully once requantized and
transmitted the value in the decoder will be closer to what the
encoder has.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-07 12:44:09 +01:00
Hendrik Leppkes
1964aeae42 Merge commit '0c7707610f46a28b65eff935500c78c9781f8f4f'
* commit '0c7707610f46a28b65eff935500c78c9781f8f4f':
  lavc: Add a lzf decompressor

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:53:00 +02:00
Hendrik Leppkes
d4f63be92b Merge commit '4dc9f00365853b1239936d771856cf1881b5c5ce'
* commit '4dc9f00365853b1239936d771856cf1881b5c5ce':
  build: Skip libvpx.h if libvpx is not enabled

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-07 12:31:14 +02:00
Ronald S. Bultje
f12093fffd vp9: fix integer overflows in sse2 version of iadst4. 2015-09-06 15:07:19 -04:00
Rostislav Pehlivanov
1956cfbaed aacenc_is: take absolute coefficient value upon energy calculations
This was an oversight when the IS system was being first implemented.
The ener01 part was largely a result of trial and error and the fact
that the sum of coef0 and coef1 could result in a zero was
overlooked. Once ener01 turns to zero it's used to divide the left
channel energy which doesn't turn out so well as it fills IS[]
with -nan's and inf's which in turn confused the quantize_band_cost.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 18:36:42 +01:00
Rostislav Pehlivanov
033e58941e aaccoder: rewrite PNS implementation
This commit rewrites the PNS implementation and significantly
improves sonic quality.

The previous implementation marked an incredibly big amount
of SFBs to predict when there was no need for this and this
resulted in quite a large amount of artifacts. Also the
quantization was incorrect (av_clip(4+log2f(...))) which
led to 3x the intensity for PNS values leading to even more
artifacts.

This commit rewrites the PNS search function and introduces
a major change: the PNS values are synthesized and are compared
to the current coefficients in addition to passing through
the revised checks to see whether PNS can be used.

This decreases distortions and makes the current PNS implementation
mainly focused on replacing any low-power non-zero bands as well
as adding any zeroed bands back.

The current encoder's performance is enough (especially with
IS) so PNS isn't really required except to fill in the occasional
few bands as well as extend any zeroed high frequency, so this
combination which is already enabled by default works
to get as much quality as it can within the bits allowed.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
8848c8440e aacenc_pred: disable PNS SFBs and disable right predictors with IS
Since PNS generates coefficients it doesn't make sense to send
the predicted ones as well. Also the specifications explicitly
state to disable right channel IS predictors.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
a71f7de95b aacenc_is: ignore PNS band types
It's better to trust that the coefficients generated will be
closer than the coefficients derived, and the new PNS implementation
makes sure that this happens.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
b9b1fd1183 aaccoder: use roundf() instead of ceilf()
The specifications explicitly state to use roundf() which
also rounds half-integer values away from zero.
This does fix a few IS artifacts.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:26 +01:00
Rostislav Pehlivanov
92aa3e7fb2 aacenc: copy PRNG from the decoder
Needed for the following PNS commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-06 15:30:25 +01:00
Hendrik Leppkes
34e85cb340 avcodec/vorbis: remove avpriv vorbis parser cruft
It was replaced by a public API
2015-09-06 16:25:58 +02:00
Hendrik Leppkes
2cad7eebc1 avcodec/flac: remove avpriv parsing API cruft 2015-09-06 16:25:56 +02:00
Hendrik Leppkes
eb011f73ca avcodec/alac: remove dead code cruft
The output is always planar since two major bumps, remove all code
related to packed output.
2015-09-06 16:25:55 +02:00
Rodger Combs
d2d020bb32 avcodec/htmlsubtitles: handle leading whitespace before tag names
This fixes cases like `</ font>`.

Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 15:48:34 +02:00
Clément Bœsch
db18b3d6e6 avcodec/samidec: small indent fix 2015-09-06 14:06:44 +02:00
Clément Bœsch
26786f43d7 avcodec/htmlsubtitles: drop avcodec dependency 2015-09-06 13:39:04 +02:00
Yayoi
87f90be4f2 avcodec/samidec: use ff_htmlmarkup_to_ass()
Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:29:28 +02:00
Yayoi
50332f8a6b avcodec/srtdec: factor out HTML parsing code
This code will be used in SAMI decoder in a later commit.

Signed-off-by: Clément Bœsch <u@pkh.me>
2015-09-06 13:07:44 +02:00
Henrik Gramner
3cdda78deb checkasm: add unit tests for v210enc
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-09-06 10:36:24 +02:00
Michael Niedermayer
8d860f9a77 avcodec/x86/w64xmmtest: Fix another build failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 22:15:53 +02:00
Hendrik Leppkes
8042d6c492 avcodec: remove old_codec_ids.h from SKIPHEADERS as well 2015-09-05 21:55:59 +02:00
Hendrik Leppkes
393b472362 avcodec: fix make install after old_codec_ids.h removal 2015-09-05 21:54:53 +02:00
Ronald S. Bultje
086c9b78d4 vp9: fix rounding error in idct_8x8_ssse3. 2015-09-05 15:50:02 -04:00
Ronald S. Bultje
ae9344cb9f vp9: check return value of ff_thread_ref_frame().
Fixes CID 1322309.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
ef8740d8e5 vp9: fix type of iadst4_1d intermediates.
Fixes integer overflows for extreme coefficient values in 10/12bpp content.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
342bca7f02 vp9: fix integer overflow in 10/12bpp DC-only calculation. 2015-09-05 15:50:01 -04:00
Ronald S. Bultje
1f7871ec42 vp9: fix edge copy for 10/12bpp frames. 2015-09-05 15:50:01 -04:00
Ronald S. Bultje
9cdeb105a6 vp9: do unscaled MC in scaled path if size of this reference matches.
This can happen if we do bidirectional MC, where one reference has the
same size as the current frame, but the other one doesn't.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
873dbc6758 vp9: sync segmentation.absolute_vals between threads. 2015-09-05 15:50:00 -04:00
Ronald S. Bultje
3d7173b509 vp9: always sync segmentation.feat between threads. 2015-09-05 15:50:00 -04:00
wm4
89b0a9f3fa avcodec/vdpau: remove incompatible-libav-abi hack from vdpau_render_state struct 2015-09-05 16:45:26 -03:00
Hendrik Leppkes
160e92c8bf Merge commit 'e88103a7f92cf27a2868b50acc8a9912f6088249'
* commit 'e88103a7f92cf27a2868b50acc8a9912f6088249':
  Bump major versions of all libraries

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 21:35:46 +02:00
Hendrik Leppkes
590ea32e54 Postpone removal of API changes from within the last two years 2015-09-05 21:21:20 +02:00
Hendrik Leppkes
24e3bac52a avcodec: remove deprecated codec id aliases 2015-09-05 21:15:58 +02:00
Hendrik Leppkes
76cac7ed45 avcodec: remove deprecated old video encode API 2015-09-05 21:15:57 +02:00
Hendrik Leppkes
64c33f9624 avcodec: remove deprecated old audio encode API 2015-09-05 21:15:55 +02:00
Hendrik Leppkes
2c8ee2547e avcodec: remove deprecated old audio decode API 2015-09-05 21:15:54 +02:00
James Almer
251fb7dcd4 avcodec: remove FF_API_DV_FRAME_PROFILE cruft
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 14:16:16 -03:00
Michael Niedermayer
998fa4fa30 avcodec/libutvideodec: remove AVFrame->reference usage, otherwise the code does not build
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 18:25:24 +02:00
James Almer
4a447e3e69 avcodec/ac3: sync AC3HeaderInfo struct with the fork
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-09-05 13:24:52 -03:00
Hendrik Leppkes
2df52088ef Merge commit '4e649debcf7f71d35c6b38cdb7ee715eba95d64a'
* commit '4e649debcf7f71d35c6b38cdb7ee715eba95d64a':
  Postpone API-incompatible changes until the next bump

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:52:10 +02:00
Hendrik Leppkes
b9fd813351 Merge commit '8f12ef9860d0e164e4647fd5d5cebdb3cfb34a79'
* commit '8f12ef9860d0e164e4647fd5d5cebdb3cfb34a79':
  lavu: Drop deprecated duplicated AVFrame/AVCodecContext parameters

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:31:45 +02:00
Hendrik Leppkes
41194f065c Merge commit 'cad40a3833ad81a352e7657ec6f7d637cea3b798'
* commit 'cad40a3833ad81a352e7657ec6f7d637cea3b798':
  lavc: Drop deprecated deinterlace module

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:06:14 +02:00
Hendrik Leppkes
7f6b794da0 Merge commit '069713aa4b137781e270768d803b1f7456daa724'
* commit '069713aa4b137781e270768d803b1f7456daa724':
  lavc: Drop deprecated thread opaque and codec pkt

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 17:03:44 +02:00
Hendrik Leppkes
4eb86b83a4 Merge commit '9f90b24877016e7140b9b14e4b1acee663bb6d8a'
* commit '9f90b24877016e7140b9b14e4b1acee663bb6d8a':
  lavc: Drop deprecated get_buffer related functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:59:23 +02:00
Hendrik Leppkes
83a5df54ea Remove left-over FF_API_DESTRUCT_PACKET cruft 2015-09-05 16:51:53 +02:00
Hendrik Leppkes
87c8812270 Merge commit '01bcc2d5c23fa757d163530abb396fd02f1be7c8'
* commit '01bcc2d5c23fa757d163530abb396fd02f1be7c8':
  lavc: Drop deprecated destruct_packet related functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:50:09 +02:00
Hendrik Leppkes
b27ddffbfb Merge commit 'dc70c19476e76f1118df73b5d97cc76f0e5f6f6c'
* commit 'dc70c19476e76f1118df73b5d97cc76f0e5f6f6c':
  lavc: Drop deprecated request_channels related functions

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:42:44 +02:00
Michael Niedermayer
c41a59330f avcodec/rawenc: Use AVFrame parameters instead of AVCodecContext
This allows encoding raw frames with changing dimensions

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 11:56:23 +02:00
Rostislav Pehlivanov
e3faad811e aacenc_tns: adjust coefficient calculation, add double filter support
This commit improves the TNS implementation to the point where it's
actually usable and very rarely results in nastyness (in all bitrates
except extremely low bitrates it's increasing the quality and prevents
some distortions from the coder being audiable).

Also adds a double filter support which is only used if the energy
difference between the top and bottom of the SFBs is above the
thresholds defined in the header file. Looking at the bitstream
that fdk_aac generates it sometimes used a double filter despite
the specs stating that a single filter should be enough for almost
all cases and purposes.

Unlike FAAC or fdk_aac we sometimes use a reverse filter in case
the energy difference isn't enought to use a double filter. This
actually works better.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 09:08:30 +01:00
Rostislav Pehlivanov
7591f8319b lpc: increase error array size of ff_lpc_calc_ref_coefs_f by one
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 08:51:19 +01:00
Rostislav Pehlivanov
4565611b04 aacenc_is: add a flag to use pure coefficients instead
This commit adds a flag to use the pure coefficients instead
of the processed ones (sce->coeffs). This is needed because
IS will apply the changes to the coefficients immediately
before the adjust_common_prediction function and it doesn't
make sense to measure stereo channel coefficient difference
when one of the channels coefficients are all zero.

Therefore add a flag to use pure coefficients in that case.
TNS is the only thing touching the coefficients before IS
so common window prediction will not take that into account
but the effect of the TNS filter per coefficient can be small
(a few percent) so to some approximation it's fine to just
ignore that.

Also fixed a small error which doesn't alter the results
that much. pow(sqrt(number), 3.0/4.0) == pow(number, 3.0/8.0) !=
pow(number, 3.0/4.0).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-05 08:32:09 +01:00
Michael Niedermayer
a87ada53c3 avcodec/jpeg2000dec: Initialize ret to avoid warning and make the code more robust
"Fixes" CID1322361

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 00:38:21 +02:00
Michael Niedermayer
9e70475551 avcodec/jpeg2000dec: Assert that step_x/y are valid
Fixes CID1322304, CID1322305

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 00:37:53 +02:00
Michael Niedermayer
205c31b301 avcodec/hapdec: Check section_size for non negativity in parse_section_header()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 00:37:53 +02:00
Carl Eugen Hoyos
f253c34175 lavc/j2kenc: Remove experimental flag.
The encoder produces valid and - if requested - lossless files.
2015-09-04 23:48:32 +02:00
Ronald S. Bultje
9ee2ddd773 vp9_parse: fix parsing of pskip and profile 2/3.
The fate results change because we now correctly timestamp the pskip
frames, which means the results are now identical to -vsync 0.
2015-09-04 09:59:17 -04:00
Ronald S. Bultje
10142f994a libvpxdec: explicitly signal RGB. 2015-09-04 09:33:46 -04:00
Ronald S. Bultje
4ecb8b4191 vp9: don't erase values for {lf,ref,skip,q}_enabled if segmentation=0.
Instead, use segmentation.enabled before accessing each of these values.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
8b45e87f64 vp9: fix segmentation map retention across keyframe boundaries. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
7cc7d13fe3 vp9: fix RGB chroma subsampling. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
ecd9f57edc vp9: read reserved bit in RGB header. 2015-09-04 09:33:45 -04:00
Ronald S. Bultje
48f641a18b vp9: clip intermediates in dequant calculations.
This makes values consistent with libvpx.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
eaff36c973 vp9: fix segmentation map retention if segmentation is turned off. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
8d25a11dc7 vp9: use resetctx in the same way as libvpx. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
cc9d3a3e36 vp9: fix indentation. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
caf6512ac4 vp9: deal with the case where update_map=0 but we're key/intraonly. 2015-09-04 09:33:44 -04:00
Ronald S. Bultje
339550e7c8 vp9: reset segmentation information on context reset. 2015-09-04 09:33:43 -04:00
Michael Niedermayer
fb04666995 avcodec/g2meet: Also clear tile dimensions on header_fail
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:14:14 +02:00
Michael Niedermayer
71ec8e1ed6 avcodec/g2meet: Fix potential overflow in tile dimensions check
Fixes CID1322351

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:14:13 +02:00
Michael Niedermayer
c447ab0e74 avcodec/eatgq: Check init_get_bits8() for failure
Fixes CID1322315

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:03:44 +02:00
Michael Niedermayer
66a7bc0010 avcodec/adpcm: Check init_get_bits8() for failure
Fixes CID1322317

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 12:03:37 +02:00
Michael Niedermayer
325ee610ba avcodec/libfdk-aacdec: Remove unused variable
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 11:26:14 +02:00
Michael Niedermayer
bd6610c3b3 avcodec/hevc_parser: Check init_get_bits8() for failure
Fixes: CID1322322

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 03:09:03 +02:00
Michael Niedermayer
194dd15558 avcodec/ira288: Check init_get_bits8() for failure
Fixes: CID1322321

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:19:06 +02:00
Michael Niedermayer
21d8c6612f avcodec/smacker: Check init_get_bits8() for failure
Fixes: CID1322314

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:15:50 +02:00
Michael Niedermayer
6ae1a32d8a avcodec/sonic: Check init_get_bits8() for failure
Fixes: CID1322310

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 02:14:10 +02:00
Luca Barbato
a7e6fbd90e dxtory: Factorize the buffer loading
And the checks nearby it.
2015-09-04 01:42:55 +02:00
Luca Barbato
6a6bc43f5f dxtory: Factorize slice size checks
They are always the same.
2015-09-04 01:42:55 +02:00
Michael Niedermayer
a51d4246d8 avcodec/svq1dec: Check init_get_bits8() for failure
Fixes: CID1322313

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:28:26 +02:00
Michael Niedermayer
f1593e4ca5 avcodec/tta: Check init_get_bits8() for failure
Fixes: CID1322319

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:28:25 +02:00
Michael Niedermayer
cbd3cd8eb2 avcodec/vp3: Check init_get_bits8() for failure
Fixes CID1322316

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-04 01:13:05 +02:00
Michael Niedermayer
e5aa6f7021 avcodec/gsmdec_template: avoid undefined negative left shifts
Fixes: unknown_unknown_338_824_cov_1045285351_sample-gsm-8000.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 22:17:24 +02:00
Claudio Freire
5131ba5657 AAC: MIPS: Add missing codebooks in quantize funcs
Add entries on the quantize function tables for the missing
codebooks (which all behave like ZERO)
2015-09-03 11:27:52 -03:00
Michael Niedermayer
db9fd1e9af fraps: increase vlc nb_bits
Sample-Id: fraps_bug_huff.avi
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-03 13:55:38 +02:00
Michael Niedermayer
741d353ab9 huffman: allow specifying nb_bits to ff_huff_build_tree()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-03 13:55:38 +02:00
Michael Niedermayer
26960aa1cd huffman: increase bits constant
Bug-ID: ffmpeg ticket 2593

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-03 13:55:38 +02:00
Michael Niedermayer
5a19bce2ff huffman: use a named identifer for the bits constant
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-09-03 13:55:38 +02:00
Luca Barbato
5a1a9da8a7 mpegvideo: Drop a stray error message
The condition is not a failure.
2015-09-03 13:39:34 +02:00
Paul B Mahol
9136e65c40 avcodec/fraps: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:47:44 +00:00
Paul B Mahol
81f7a2579b avcodec/vorbisdec: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-09-03 09:12:14 +00:00
Vittorio Giovara
c45fcf30cf DXV decoder
Support all DXDI and DXD3 normal quality videos.
2015-09-02 22:22:02 +02:00
Luca Barbato
0c7707610f lavc: Add a lzf decompressor
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-09-02 21:56:22 +02:00
Michael Niedermayer
863522431f avcodec/mpeg12dec: Fix integer overflow
Fixes: signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 21:11:07 +02:00
Michael Niedermayer
d9b56895b5 avcodec/mpegvideo: change bit_rate to 64bit
32bit is not sufficient for all cases

Fixes: signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 21:10:36 +02:00
Michael Niedermayer
5b6a50e150 avcodec/mpegvideo_parser: Fix integer overflow
Fixes: signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 20:55:09 +02:00
Michael Niedermayer
cf818be4f2 avcodec/truemotion1: Fix undefined behavior (left shift of negative value)
Fixes: asan_heap-oob_26f6853_862_cov_585961513_sonic3dblast_intro-partial.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 20:45:07 +02:00
周晓勇
95010d49a2 avcodec: loongson optimize mpeg2 dct unquantize intra and denoise dct
Change-Id: I2f391ae912a079fb32f0703841dca86358aac72a
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 16:53:32 +02:00
Michael Niedermayer
933309a6ca avcodec/mips/aaccoder_mips: disable optimizatios which break fate-aac-pns-encode
These should be re enabled once the issue is fixed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 13:04:57 +02:00
Rostislav Pehlivanov
20dc527139 aacenc: reorder coding tools
This commit reorders the coding tools such that they're doing what
the decoder does in reverse order. The very first thing the decoder
does is to decode M/S stereo if that's signalled, then prediction,
IS, and finally TNS and PNS in another function.
adjust_frame_information()'s application of IS and M/S was taken
out into two separate functions since prediction doesn't expect
to get the raw coefficients but rathe the coefficients at that
part of the encoding process.

The results show a much better PSNR when any combination of
Intensity Stereo, Mid/Side stereo and Prediction is used, which
is a sign of an increased encoder efficiency as well as the fact
that the decoder gets what it expects.

Otherwise, with only IS, PNS or prediction there are neither
regressions nor improvements except in the case of IS, which
now by itself (or with PNS) is less prone to artifacts. Enabling
M/S (using stereo_mode) as well will also reduce stereo artifacts
induced by IS, so in the very near future M/S may be enabled
by default.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-02 06:26:45 +01:00
Rainer Hochecker
62bd8deef9 avcodec/hevc_parser: fix split function of parser
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:48:43 +02:00
Michael Niedermayer
b7baebb754 avcodec/ffv1dec: Print CRCs at picture debug level
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:11:43 +02:00
Michael Niedermayer
eac161451d avcodec/ffv1dec: Check that there is enough space for the CRC in the global header
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 02:10:31 +02:00
Michael Niedermayer
1376084dcb avcodec/h264_slice: replace assert by normal error check
Fixes assertion failure
Fixes: c6075771557e4f3b7b74e63d2d24fb01/signal_sigabrt_7ffff6ac8cc9_133_cov_2853689970_CREDITS.FST

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-02 01:22:45 +02:00
Michael Niedermayer
642d2f9d55 avcodec/version: Minor version bump due to 5d12d7de2c
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 23:02:15 +02:00
Petri Hintukainen
5d12d7de2c mpegts: demux BluRay text subtitles
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 14:35:32 +02:00
Rostislav Pehlivanov
8ffe1cb4d7 aacenc: disable bandtype modifying extensions when coder != twoloop
If the selected coder isn't twoloop, this commit temporarily
disables IS and PNS.
The problem is in the encode_window_bands_info() being confused
and setting invalid band_types for non-marked (normal) bands.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 12:07:00 +01:00
Rostislav Pehlivanov
bc9927b854 aacenc: Enable Intensity Stereo by default
Since the changes made a few week ago (which were done more than a
month ago) the quality and stability of intensity stereo has been
notably good. There were some requests and wishes to have in on by
default and therefore it has been enabled. Should any regressions
arise changes will be made to preferably keep it operating rather
than just disabling it by default again.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:15:23 +01:00
Rostislav Pehlivanov
b7eb7cb3a1 aacenc: Enable Perceptual Noise Substitution by default
It has been in the current encoder in its current implementation
for quite some time now, so enable it by default. Will increase
quality at all bitrates, especially at low ones.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:13:33 +01:00
Rostislav Pehlivanov
a0079aae00 aacenc: reorder resetting of cpe->common_window
Purely a cosmetic change, most of the zeroing of encoder resources
should happen at the top of the main loop.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 07:00:10 +01:00
Rostislav Pehlivanov
f3f6c6b928 aacenc_tns: rework coefficient quantization and filter application
This commit reworks the TNS implementation to a hybrid between what
the specifications say, what the decoder does and what's the best
thing to do.

The filter application function was copied from the decoder and
modified such that it applies the inverse AR filter to the
coefficients. The LPC coefficients themselves are fed into the
same quantization expression that the specifications say should
be used however further processing is not done, instead they're
converted to the form that the decoder expects them to be in
and are sent off to the compute_lpc_coeffs function exactly the
way the decoder does. This function does all conversions and will
return the exact coefficients that the decoder will generate, which
are then applied to the coefficients.
Having the exact same coefficients on both the encoder and decoder
is a must since otherwise the entire sfb's over which the filter
is applied will be attenuated.

Despite this major rework, TNS might not work fine on some audio
types at very low bitrates (e.g. sub 90kbps) as it can attenuate
some coefficients too much. Users are advised to experiment with
TNS at higher bitrates if they wish to use this tool or simply
wait for the implementation to be improved.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:44:07 +01:00
Rostislav Pehlivanov
d09f9c45c7 aacenc: allocate a larger buffer for the TNS LPC context
Turns out autocorrelating more than 750 coefficients at once
will cause a segfault, despite there being enough space to
hold an entire frame of samples into the buffer.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:40:12 +01:00
Rostislav Pehlivanov
0fc3a51353 lpc: add ff_lpc_calc_ref_coefs_f() function
This commit adds a function to get the reflection coefficients on
floating point samples. It's functionally identical to
ff_lpc_calc_ref_coefs() except it works on float samples and will
return the global prediction gain. The Welch window implementation
which is more optimized works only on int32_t samples so a slower
generic expression was used.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:34:50 +01:00
Rostislav Pehlivanov
a70ee2bdcd lpc: remove unused ff_lpc_calc_levinson() function
Not needed anymore, it was only used by the AAC TNS
encoder and was replaced with a more suitable function
in the following commit.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:32:35 +01:00
Rostislav Pehlivanov
139c2f93fd aacenctab: add tns_min_sfb[] to the encoder tables header
Needed for following commits. Contains the starting sfb for
every samplerate and window type.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:30:08 +01:00
Rostislav Pehlivanov
5ed5ca706f aacenc: populate tns_max_bands
Needed for the following commits.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-09-01 06:20:24 +01:00
Michael Niedermayer
63fb5a6aef avcodec/truemotion1: Check for even width
Fixes out of array access
Fixes: 87196d8bbc633629fc9dd851fce73e70/asan_heap-oob_26f6853_862_cov_585961513_sonic3dblast_intro-partial.avi

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 05:15:04 +02:00
Michael Niedermayer
b54e03c9dc avcodec/mpeg12dec: Set dimensions in mpeg1_decode_sequence() only in absence of errors
Fixes assertion failure
Fixes: 56dcafde14a8397161bb61a16c511179/signal_sigabrt_7ffff6ac8cc9_686_cov_1897408623_microsoft_new_way_to_shove_mpeg2_in_asf.dvr_ms

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-01 02:47:11 +02:00
Michael Niedermayer
a047ccbb9f avcodec/movtextdec: Free ftab_temp
Fixes memleak
Fixes: efe937780e95574250dabe07151bdc23/unknown_unknown_351_849_cov_3187578556_shellymanne.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 23:44:39 +02:00
Michael Niedermayer
a1a32fdb0e avcodec/movtextdec: Make tx3g_ptr unsigned
Fixes integer overflow
Fixes: efe937780e95574250dabe07151bdc23/unknown_unknown_351_849_cov_3187578556_shellymanne.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-31 23:44:39 +02:00
Luca Barbato
4dc9f00365 build: Skip libvpx.h if libvpx is not enabled 2015-08-31 21:37:18 +02:00
Michael Niedermayer
87a11db220 dnxhddata: Double frame_size for cid 1260
Despite '417792' being reported in the binary decoder, the buffer at
encoding time needs to be bigger to avoid running out of space due to
interlace handling.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-31 17:14:08 +02:00
Vittorio Giovara
b0d94324d2 libfdk-aacdec: Remove unused variable 2015-08-31 15:24:30 +02:00
Donny Yang
51d4bca5a4 avcodec/pngdec: fully support the tRNS chunk
Signed-off-by: Donny Yang <work@kota.moe>
2015-08-31 09:52:46 +00:00
Sven Dueking
67e87f8050 avcodec/qsv : Added look ahead rate control mode
Reviewed-by: Ivan Uskov <ivan.uskov@nablet.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 16:00:05 +02:00
Michael Niedermayer
845fb3d4a5 avcodec/options: Make dummy_v?_encoder static
It does not need to be non static

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 12:02:07 +02:00
Michael Niedermayer
4bd99f715d avcodec/snowenc: Support setting the iterative dia size separately
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 04:23:30 +02:00
Rostislav Pehlivanov
21bfeec27f aacenc_tns: do not limit the filter size
This was copied from the decoder, but is unneeded for the encoder.
tns_max_bands is unused and set to zero which zeroed out start, end
and size and thus no filter was actually applied.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 21:59:38 +01:00
Rostislav Pehlivanov
141d80ded7 lpc: rename ff_lpc_calc_levinsion to ff_lpc_calc_levinson
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:29:18 +01:00
Rostislav Pehlivanov
e924967fd5 aacenc_tns: fix out-of-bounds array access
Since the coefficients are stepped up to order + 1 it was possible
that it went over TNS_MAX_ORDER. Also just return in case the only
coefficient is less than the threshold.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:21:35 +01:00
Rostislav Pehlivanov
902ac9ca74 aacenc_tns: actually apply TNS filter to the coefficients
The encoder-side filter isn't that important. The PSNR
shouldn't change so the FATE test should still be fine.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:18:18 +01:00
Rostislav Pehlivanov
49854c56c2 aacenc: initialize LPC context with MAX_LPC_ORDER
The order should never go above TNS_MAX_ORDER (and thus cause
the context to be reinitialized) but this is just in case.

Also fix a comparison, since the coefficients are zero-indexed.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:15:52 +01:00
Rostislav Pehlivanov
0818705bf3 aacenc_tns: fix triggering an assertion with assert-level=2
It also made no sense to actually make the filter span the entire
window including the first band of the next window.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 19:01:59 +01:00
Rostislav Pehlivanov
f04d86c16a aacenc: remove TNS from the todo list
Pulses are already on the way so expect to see the list
gone in the close future.

TNS is already of sufficiently high quality to be enabled
by default (but isn't yet, so you too can help by testing!).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:57:08 +01:00
Rostislav Pehlivanov
f20b67173c aacenc_tns: rework the way coefficients are calculated
This commit abandons the way the specifications state to
quantize the coefficients, makes use of the new LPC float
functions and is much better.

The original way of converting non-normalized float samples
to int32_t which out LPC system expects was wrong and it was
wrong to assume the coefficients that are generated are also
valid. It was essentially a full garbage-in, garbage-out
system and it definitely shows when looking at spectrals
and listening. The high frequencies were very overattenuated.
The new LPC function performs the analysis directly.

The specifications state to quantize the coefficients into
four bit index values using an asin() function which of course
had to have ugly ternary operators because the function turns
negative if the coefficients are negative which when encoding
causes invalid bitstream to get generated.

This deviates from this by using the direct TNS tables, which
are fairly small since you only have 4 bits at most for index
values. The LPC values are directly quantized against the tables
and are then used to perform filtering after the requantization,
which simply fetches the array values.

The end result is that TNS works much better now and doesn't
attenuate anything but the actual signal, e.g. TNS removes
quantization errors and does it's job correctly now.

It might be enabled by default soon since it doesn't hurt and
helps reduce nastyness at low bitrates.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:47:31 +01:00
Rostislav Pehlivanov
1cd5daee20 aac: remove now-unused redundant array
This commit removes the array which was made redundant with
the last commit. The current prediction system gets the
quantization error directly (and without the single-frame delay)
in the search_for_pred function.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:44:20 +01:00
Rostislav Pehlivanov
44ddee945a aacenc_pred: rework the way prediction is done
This commit completely alters the algorithm of prediction.
The original commit which introduced prediction was completely
incorrect to even remotely care about what the actual coefficients
contain or whether any options were enabled. Not my actual fault.

This commit treats prediction the way the decoder does and expects
to do: like lossy encryption. Everything related to prediction now
happens at the very end but just before quantization and encoding
of coefficients. On the decoder side, prediction happens before
anything has had a chance to even access the coefficients.

Also the original implementation had problems because it actually
touched the band_type of special bands which already had their
scalefactor indices marked and it's a wonder the asserion wasn't
triggered when transmitting those.

Overall, this now drastically increases audio quality and you should
think about enabling it if you don't plan on playing anything encoded
on really old low power ultra-embedded devices since they might not
support decoding of prediction or AAC-Main. Though the specifications
were written ages ago and as times change so do the FLOPS.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:34:08 +01:00
Rostislav Pehlivanov
949a4892fa aacenc: change FF_PROFILE_UNKNOWN to AAC-Main if prediction is enabled
This was missed when the original commits were done. FF_PROFILE_UNKNOWN
is what's in avctx->profile when no audio profile is specified.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:28:21 +01:00
Rostislav Pehlivanov
20962b567b lpc: create a simplified Levinson-Durbin LPC handling float samples
This commit simply duplicates the functionality of ff_lpc_calc_coefs()
for the case of a Levinson-Durbin LPC with the only difference being
that floating point samples are accepted and the resulting coefficients
are raw and unquantized.
The motivation behind doing this is the fact that the AAC encoder
requires LPC in TNS and LTP and converting non-normalized floating
point coefficients to int32_t using SWR and again back for the LPC
coefficients was very impractical.
The current LPC interfaces were designed for int32_t in mind possibly
because FLAC and ALAC use this type for most internal operations.
The mathematics in case of floats remains of course identical.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:14:13 +01:00
Rostislav Pehlivanov
f55cc57911 aac: move the TNS tables from aacdectab to the shared aactab
This commit simply moves the TNS tables to a more appropriate
aactab.h since then they can be accessed by both the decoder
and encoder.

The encoder _shouldn't_ normally need the tables since the
specs describe a specific quantization process, but the exact
reason for this can be seen in the TNS commit following.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29 06:07:12 +01:00
Philip Langdale
91f1115a0e avcodec/vc1dec: Re-order init to avoid initting hwaccel too early
At least for vdpau, the hwaccel init code tries to check the video
profile and ensure that there is a matching vdpau profile available.

If it can't find a match, it will fail to initialise.

In the case of wmv3/vc1, I observed initialisation to fail all the
time. It turns out that this is due to the hwaccel being initialised
very early in the codec init, before the profile has been extracted
and set.

Conceptually, it's a simple fix to reorder the init code, but it gets
messy really fast because ff_get_format(), which is what implicitly
trigger hwaccel init, is called multiple times through various shared
init calls from h263, etc. It's incredibly hard to prove to my own
satisfaction that it's safe to move the vc1 specific init code
ahead of this generic code, but all the vc1 fate tests pass, and I've
visually inspected a couple of samples and things seem correct.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-08-28 19:11:55 -07:00
Ronald S. Bultje
2fb593dcb9 Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Vittorio Giovara
e88103a7f9 Bump major versions of all libraries
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-28 16:04:28 +02:00
Vittorio Giovara
4e649debcf Postpone API-incompatible changes until the next bump 2015-08-28 16:04:28 +02:00
Vittorio Giovara
8f12ef9860 lavu: Drop deprecated duplicated AVFrame/AVCodecContext parameters
Deprecated in 10/2012.
2015-08-28 16:04:27 +02:00
Vittorio Giovara
cad40a3833 lavc: Drop deprecated deinterlace module
Deprecated in 03/2013.
2015-08-28 16:04:19 +02:00
Vittorio Giovara
069713aa4b lavc: Drop deprecated thread opaque and codec pkt
These fields were never part of the public API.
2015-08-28 16:01:17 +02:00
Vittorio Giovara
9f90b24877 lavc: Drop deprecated get_buffer related functions
Deprecated in 11/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
01bcc2d5c2 lavc: Drop deprecated destruct_packet related functions
Deprecated in 10/2012.
2015-08-28 16:01:16 +02:00
Vittorio Giovara
dc70c19476 lavc: Drop deprecated request_channels related functions
Deprecated in 04/2011.
2015-08-28 16:01:16 +02:00
Donny Yang
51ca703222 apng: Support inter-frame compression
The current algorithm is just "try all the combinations, and pick the best".
It's not very fast either, probably due to a lot of copying, but will do for
an initial implementation.

Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 04:25:15 +02:00
Michael Niedermayer
3322f0d415 avcodec/dnxhddata: Fix inconsistent table entry
Fixes segfault
Fixes Ticket4809

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-28 04:07:42 +02:00
lummax
0c800b2761 avcodec: Assert on codec->encode2 in encode_audio2
Assert on `avctx->codec->encode2` to avoid a SEGFAULT on the subsequent
function call.

avcodec_encode_video2() uses a similar assertion.
Calling the wrong function on a stream is a serious inconsistency
which could at other places be potentially dangerous and exploitable,
it is thus safer to stop execution and not continue with such
inconsistency after returning an error.

Commit-message-extended-by commiter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-27 17:26:24 +02:00
Timo Rothenpieler
1dd854e10f vaapi: Add hevc hwaccel support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-08-27 17:05:44 +02:00
Carl Eugen Hoyos
0382c546cc lavc: Describe eia_608 as text subtitles. 2015-08-27 16:42:39 +02:00
Michael Niedermayer
6701c92fa4 avcodec/libopusenc: Fix infinite loop on flushing after 0 input
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-27 12:44:31 +02:00
Hendrik Leppkes
427598a2f4 Merge commit 'd68705c9756e6558c8e28d90b4c364f25ba72083'
* commit 'd68705c9756e6558c8e28d90b4c364f25ba72083':
  dnxhddata: Add tables for missing DNx100 profiles

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:40:06 +02:00
Hendrik Leppkes
f30132f9c4 Merge commit 'a4615572b576d3ef7ee2f11529d935e61bf4ebb8'
* commit 'a4615572b576d3ef7ee2f11529d935e61bf4ebb8':
  dnxhddata: Merge a few duplicated RUN tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:31:52 +02:00
Hendrik Leppkes
f19a283867 Merge commit 'efbfb1ad1112cea79bef51fd9f30c0c94735abfc'
* commit 'efbfb1ad1112cea79bef51fd9f30c0c94735abfc':
  dnxhddata: Group together RUN-related tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:29:54 +02:00
Hendrik Leppkes
305f461754 Merge commit '403ea4ac7289ac39229452b6b5e2f8ebcc00f2a1'
* commit '403ea4ac7289ac39229452b6b5e2f8ebcc00f2a1':
  dnxhddata: Merge a few duplicated DC tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:27:02 +02:00
Hendrik Leppkes
3b0af76c1b Merge commit '5e129ed655bff5b6d90355c0b713d7aaba3898ec'
* commit '5e129ed655bff5b6d90355c0b713d7aaba3898ec':
  dnxhddata: Group together DC-related tables

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:26:14 +02:00
Hendrik Leppkes
3f491224fe Merge commit 'd3ae4c65942d67a294fd56eabbbdcce6756fab5f'
* commit 'd3ae4c65942d67a294fd56eabbbdcce6756fab5f':
  dnxhddata: List the reused tables in a comment

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:19:41 +02:00
Hendrik Leppkes
bd074bde02 Merge commit 'fdd021884d5c06fb9ad65cb0040bb5717a7b084b'
* commit 'fdd021884d5c06fb9ad65cb0040bb5717a7b084b':
  dnxhddata: Keep a single CID in the table names

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-27 09:17:37 +02:00
Carl Eugen Hoyos
7f9656f10d lavc/dnxhdenc: Fix ibias default.
Fixes a regression since a8ab64d2 reported by Rens Dijkshoorn, rens offlinemedia nl.
2015-08-27 02:59:43 +02:00
James Almer
4c39892b67 avcodec/vdpau: fix compilation of mpeg1/mpeg4/vc1 decoders when h264 is disabled
Tested-by: wm4 <nfxjfg@googlemail.com>
Tested-by: Philip Langdale <philipl@overt.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-25 23:58:54 -03:00
Luca Barbato
413d4e54a9 nvenc: Properly free the fifos
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-25 19:47:43 +02:00
Michael Niedermayer
fa9af304f0 avcodec/mjpegdec: Remove message asking for a non mod 16 AMV sample
Ticket4770 contains such a sample and it decodes fine

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-24 19:50:01 +02:00
Vittorio Giovara
d68705c975 dnxhddata: Add tables for missing DNx100 profiles
1440x1080@8 progressive (1259) and interlaced (1260).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-08-24 13:20:10 +02:00
Vittorio Giovara
a4615572b5 dnxhddata: Merge a few duplicated RUN tables 2015-08-24 13:20:04 +02:00
Vittorio Giovara
efbfb1ad11 dnxhddata: Group together RUN-related tables
This helps in finding duplicates.
2015-08-24 13:19:58 +02:00
Vittorio Giovara
403ea4ac72 dnxhddata: Merge a few duplicated DC tables 2015-08-24 13:19:43 +02:00
Vittorio Giovara
5e129ed655 dnxhddata: Group together DC-related tables
This helps in finding duplicates.
2015-08-24 13:19:36 +02:00
Vittorio Giovara
d3ae4c6594 dnxhddata: List the reused tables in a comment 2015-08-24 13:19:28 +02:00
Vittorio Giovara
fdd021884d dnxhddata: Keep a single CID in the table names
Use a comment to list the reused tables, since it's more flexible than a
table name to keep information like this. The list will expand in later
commits.
2015-08-24 13:19:06 +02:00
Hendrik Leppkes
87ee98c898 Merge commit '167ea1fbf15ecefa30729f9b8d091ed431bf43bd'
* commit '167ea1fbf15ecefa30729f9b8d091ed431bf43bd':
  xavs: Do not try to set the bitrate tolerance without a bitrate

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:37:50 +02:00
Hendrik Leppkes
a4c13f95fb Merge commit 'f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068'
* commit 'f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068':
  h264: Discard currently unsupported registered sei

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:36:07 +02:00
Hendrik Leppkes
001ea567ff Merge commit 'a1926a29fb4325afa46842883f197c74d4535c36'
* commit 'a1926a29fb4325afa46842883f197c74d4535c36':
  hevc: avoid invalid shifts of negative values

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-24 10:29:26 +02:00
Andreas Cadhalpun
01594ebb07 options_table: fix compatibility with MSVC
Including libavutil/internal.h breaks compilation of doc/print_options.c
with MSVC due to linking avpriv_strtod/avpriv_snprintf.

This reverts part of commit 095347f.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-23 23:35:14 +02:00
Andreas Cadhalpun
03e71cccba avcodec: remove FF_API_LOWRES around max_lowres
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-23 23:34:02 +02:00
Luca Barbato
167ea1fbf1 xavs: Do not try to set the bitrate tolerance without a bitrate
Avoid a division by zero.

Bug-Id: CID 1257655
2015-08-23 21:44:38 +02:00
Luca Barbato
d5eab59a53 aac: Make sure to set err on the failure path
Bug-Id: CID 1308153
2015-08-23 21:44:38 +02:00
Ganesh Ajjanagadde
6638e4a950 avcodec/x86/mpegaudiodsp: correct asm guards
Fixes -Wunused-function warnings when compiling with --disable-yasm on x86.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-23 02:39:21 +02:00
Rostislav Pehlivanov
f2ba60d4e9 aacenc_tns: temporarily disable
Due to segfaults on some platforms, fix will take a bit longer.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 23:49:59 +01:00
Andreas Cadhalpun
095347ffe4 disable deprecation warnings in deprecated code
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-22 19:16:14 +02:00
Timothy Gu
5f1c37aefb avcodec: Fix make checkheaders 2015-08-22 10:14:17 -07:00
Timothy Gu
f0af25ae11 ffv1: Add missing ff_ prefixes 2015-08-22 08:36:20 -07:00
Timothy Gu
ee4cc80653 vp9dsp: Add missing ff_ prefixes 2015-08-22 08:36:20 -07:00
Timothy Gu
e10ef3289d aacsbr_fixed: Make fixed_{exp,log}_table static const 2015-08-22 08:36:20 -07:00
Timothy Gu
1597dba86a aacdec_fixed: Make exp2tab static const 2015-08-22 08:36:20 -07:00
Timothy Gu
8d9fe002b3 fmtconvert: Remove float_interleave*
They were not public or used anywhere.
2015-08-22 08:29:10 -07:00
Rostislav Pehlivanov
7adb6d5aab aacenc_quantization: replace copysign() with a ternary operator
This commit removes the last thing a Windows environment can
complain about the AAC encoder code. Leftover from an old revision.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 08:50:41 +01:00
Rostislav Pehlivanov
2c94e45fad aacenc_is: rename struct to follow guidelines
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 06:47:14 +01:00
Timothy Gu
e8279880dc acenctab: Fix merge conflict
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-22 06:16:31 +01:00
Timothy Gu
21dd5279c3 aacenc: Add missing ff_ prefixes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 06:11:23 +01:00
Timothy Gu
d4401a9e0d aacenc: Harmonize multiple inclusion guards
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 04:56:36 +01:00
Timothy Gu
15ebc7787c aacenctab: Add missing ff_ prefixes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 04:30:15 +01:00
Timothy Gu
5cbcf2b24d aacenctab: Use FF_ARRAY_ELEMS
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
2015-08-22 04:07:09 +01:00
Luca Barbato
61d8fa2a1a h264: Fix faulty call to avpriv_request_sample
Broken in f9ab4fe1f7
2015-08-22 01:42:19 +02:00
Rostislav Pehlivanov
670dfda143 aacenc_tns: remove unused header
Thanks to @nevcairiel for pointing this one out.
Another thing which stopped msvc from compiling.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 23:36:09 +01:00
Clément Bœsch
cafba99b51 avcodec/version: fix 2 recently introduced typo 2015-08-21 19:33:28 -03:00
Rostislav Pehlivanov
5df166e430 aacenc_tns: re-enable coefficient compression
This time in a platform/compiler-generic way.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 21:36:06 +01:00
Rostislav Pehlivanov
88a5f93f62 aacenc: treat unknown profile as AAC-LC
When the encoder is ran without specifying -profile:a
the default avctx->profile value is -99 (FF_PROFILE_UKNOWN),
which used to be treated as AAC-LC.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 21:28:20 +01:00
Rostislav Pehlivanov
fb0c295cc3 aacenc_tns: temporarily disable coefficient compression
Hotfix to deal with msvc. Sane compilers lack POSIX ffs().
It only saves a single bit or so and isn't worth it that much.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 20:55:46 +01:00
Rostislav Pehlivanov
76b81b10d9 aacenc: implement the complete AAC-Main profile
This commit finalizes AAC-Main profile encoding support
by implementing all mandatory and optional tools available
in the specifications and current decoders.

The AAC-Main profile reqires that prediction support be
present (although decoders don't require it to be enabled)
for an encoder to be deemed capable of AAC-Main encoding,
as well as TNS, PNS and IS, all of which were implemented
with previous commits or earlier of this year.

Users are encouraged to test the new functionality using either
-profile:a aac_main or -aac_pred 1, the former of which will enable
the prediction option by default and the latter will change the
profile to AAC-Main. No other options shall be changed by enabling
either, it's currently up to the users to decide what's best.

The current implementation works best using M/S and/or IS,
so users are also welcome to enable both options and any
other options (TNS, PNS) for maximum quality.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:38:05 +01:00
Rostislav Pehlivanov
a1c487e921 aacenc_tns: implement temporal noise shaping
This commit implements temporal noise shaping support in the
encoder, along with an -aac_tns option to toggle it on or off
(off by default for now). TNS will increase audio quality
and reduce quantization noise by applying a multitap FIR filter
across allowed coefficients and transmit side information to the
decoder so it could create an inverse filter.

Users are encouraged to test the new functionality by enabling
-aac_tns 1 during encoding.

No major bugs are observable at this time so after a while if no
new problems appear and if the current implementation is deemed
of high enough quality and stability it will be enabled by default,
possibly at the same time the encoder has its experimental flag
removed and becomes the standard aac encoder in ffmpeg.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:27:38 +01:00
Rostislav Pehlivanov
eab12d072e aacenc: do not reject AAC-Main profile
This commit permits for the use of the Main profile
in encoding. The functionality of that profile will
be added in the commits following. By itself, this
commit does not alter anything.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:20:22 +01:00
Rostislav Pehlivanov
d1ca7142ac aaccoder: move the Intensity Stereo implementation out
This commit moves the intensity stereo implementation
out from aaccoder and into a separate file. This was
possible using the previous commits.

This commit also drastically improves the IS implementation
by making it phase invariant e.g. it will always choose the
best possible phase regardless of whether M/S coding is on
or most of the coefficients have identical phases.
This also increases the quality and reduces any distortions
introduced by enablind intensity stereo.

Users are encouraged to test it out using the -aac_is 1
parameter as it has always been.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:13:26 +01:00
Rostislav Pehlivanov
860dbe0275 aaccoder_mips: update function definitions
This commit updates the function definitions in the aaccoder_mips.c
file. This was broken around a month or so ago with the addition
of the rounding argument.
The previous commit in this series also introduced a separate array
to put the quantization error in, this also needed to be updated,
albeit non-functional, in the MIPS optimized aaccoder file.

Credits for the rounding goes to Claudio Freire.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 19:00:15 +01:00
Rostislav Pehlivanov
43b378a0d3 aaccoder: move the quantization functions to a separate file
This commit moves the quantizer to a separate header file.
This allows the quantizer to be used from a separate files outside
of aaccoder without having to put another function pointer and will
result in a slight speedup as the compiler can do more optimizations.

This is required for commits following.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:53:14 +01:00
Rostislav Pehlivanov
b47a1e5c5f aacenc: create and initialize an LTP context
This commit only creates and initializes an LTP
context which is needed for upcoming commits (TNS).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:43:09 +01:00
Rostislav Pehlivanov
23e786be61 aacenc: populate the sce->ics.swb_offset table pointer
This commit simply populates the table pointer which is needed
for upcoming commits (TNS, prediction, etc.). Copied from
the decoder.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:40:44 +01:00
Rostislav Pehlivanov
e6c9f3a166 aacenc: reset special bands in the main frame encoding function
This commit moves the resetting of special bands (above RESERVED_BT)
to the main frame encoding function rather than the way it was done
previously in their corresponding search_for_... functions.

The reason why special bands need to be reset is that while normal
bands get chosen for every frame by the coder (twoloop by default)
the coders do not touch any special sfbs and will therefore
make them persist throughout the file.

If we zero them out any bands left unmarked will be chosen by
the second part of the coder (the trellis function in aaccoder.c).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:36:09 +01:00
Rostislav Pehlivanov
32be264cea aacenc: coding style changes
This commit only changes the coding style to a saner way
of accessing coefficients (makes more sense to get the
memory address of a coefficients and start from there
rather than adding arbitrary numbers to offset a pointer).
Some compilers might detect an out of bounds access easier.

Also the way M/S and IS coefficients are calculated has been
changed, but should still have the same result (with the exception
that IS now applies from the normal coefficients rather than the
pristine ones, this is needed for upcoming commits).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21 18:30:51 +01:00
Ganesh Ajjanagadde
907373ea9d avcodec/x86/v210-init: fix unused variable warning
Fixes a -Wunused-variable while compiling with --disable-yasm on x86

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 17:06:27 +02:00
Ganesh Ajjanagadde
36f7a37895 avcodec/jpeg2000: comment out unused variable
Fixes -Wunused-const-variable from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 13:01:44 +02:00
John Högberg
f9ab4fe1f7 h264: Discard currently unsupported registered sei
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-21 12:03:36 +02:00
Luca Barbato
47b447aaff imgutils: Fix a typo in avcodec_get_pix_fmt_loss
If the candidate does not have alpha and the source does have alpha
report the loss of alpha.

CC: libav-stable@libav.org
2015-08-21 12:03:36 +02:00
Anton Khirnov
d8ebb6157d hevcdsp: fix a function name
put_weighted_pred_avg should be put_unweighted_pred_avg, there is no
weighting there.
2015-08-21 08:46:05 +02:00
Anton Khirnov
a1926a29fb hevc: avoid invalid shifts of negative values 2015-08-21 08:45:37 +02:00
James Almer
7a806c68a6 avcodec/hevcdsp: rename sao_band_filter c functions
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-21 02:24:30 -03:00
Michael Niedermayer
2bb54b82b5 avcodec/h264_mp4toannexb_bsf: Reorder operations in nal_size check
Fixes Ticket4778

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-21 03:37:32 +02:00
Ganesh Ajjanagadde
e8319f602e avcodec/metasound_data: comment out unused variable
Fixes -Wunused-const-variable from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 23:39:04 +02:00
Ganesh Ajjanagadde
c3052c9e8a avcodec/aacsbr_fixed: remove unused variable
Fixes -Wunused-const-variable from
http://fate.ffmpeg.org/report.cgi?time=20150820031140&slot=arm64-darwin-clang-apple-5.1

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-20 21:23:51 +02:00
Michael Niedermayer
0b7829901b */version.h: Add note/recommandition about bumping major
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 21:37:32 +02:00
Ivan Uskov
fffae8e605 libavcodec/qsvdec.c: the ff_get_format() missed at refactoring has been restored
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 14:20:24 +02:00
Gwenole Beauchesne
9d1d7b367e vaapi: drop unused include.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:15:43 +02:00
Gwenole Beauchesne
8813d55fa5 vaapi: fix usage of invalid buffer ids.
Invalid buffer ids are defined by VA_INVALID_ID. Use that through out
vaapi_*.c support files now that we have private data initialized and
managed by libavcodec. Previously, the only requirement for the public
vaapi_context struct was to be zero-initialized.

This fixes support for 3rdparty VA drivers that strictly conform to
the API whereby an invalid buffer id is VA_INVALID_ID and the first
valid buffer id can actually be zero.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:05:32 +02:00
Gwenole Beauchesne
babd340f58 vaapi: streamline public context structure.
Move libavcodec managed objects from the public struct vaapi_context
to a new privately owned FFVAContext. This is done so that to clean up
and streamline the public structure, but also to prepare for new codec
support, thus requiring new internal data to be added in there.

The AVCodecContext.hwaccel_context, that holds the public vaapi_context,
shall no longer be accessed from within vaapi_*.c codec support files.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:03:24 +02:00
Gwenole Beauchesne
9f8e57efe4 vaapi: define a unique pixel format for VA-API (AV_PIX_FMT_VAAPI).
Deprecate older VA pixel formats (MOCO, IDCT) as it is now very unlikely
to ever be useful in the future. Only keep plain AV_PIX_FMT_VAAPI format
that is aliased to the older VLD variant.

This is an API change.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2015-08-19 14:03:24 +02:00
Sven Dueking
6eecb91fbc avcodec/qsvenc: Added PicTiming SEI
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-19 13:49:37 +02:00
Derek Buitenhuis
c981b1145a libx264: Add option to force IDR frames
Currently, when forcing an I frame, via API, or via the ffmpeg cli,
using -force_key_frames, we still let x264 decide what sort of
keyframe to user. In some cases, it is useful to be able to force
an IDR frame, e.g. for cutting streams.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-08-18 17:40:36 -03:00
wm4
a383f226f0 lavc: move vdpau decoders under FF_API_VDPAU.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2015-08-18 15:57:20 -04:00
Ronald S. Bultje
030b5a4f77 lavc: put remaining bits of vdpau-in-decoder under FF_API_CAP_VDPAU. 2015-08-18 15:57:19 -04:00
Ronald S. Bultje
7a629186ba Prepare for removal of obsolete FF_IDCT_* members. 2015-08-18 15:41:06 -04:00
Ronald S. Bultje
9468207e1c mpeg4video: use ff_dlog instead of av_log under debug&FF_DEBUG_PTS.
This fixes compilation with FF_API_UNUSED_MEMBERS=0.
2015-08-18 15:39:41 -04:00
Ronald S. Bultje
e3b7298aed lavc: fix compilation with FF_API_XVMC. 2015-08-18 12:05:57 -04:00
Ronald S. Bultje
b07d2a2509 libvpxenc: make flags i64 instead of dbl. 2015-08-18 12:04:57 -04:00
Ronald S. Bultje
6471040f56 FF_OPT_TYPE_* -> AV_OPT_TYPE_*. 2015-08-18 11:48:49 -04:00
Ronald S. Bultje
229843aa35 Replace av_dlog with ff_dlog.
ff_dlog checks compilability, and is non-public. av_dlog is deprecated
and no longer exists if FF_API_DLOG=0.
2015-08-18 10:24:01 -04:00
Ronald S. Bultje
70a19c482a Move ff_dlog from lavc to lavu. 2015-08-18 09:46:49 -04:00
Hendrik Leppkes
983fa5a1a9 Merge commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b'
* commit '7bf9647264308d2df74b2b50669f2d02a7ecc90b':
  vp7: bound checking in vp7_decode_frame_header

Only partially merged, see 46f72ea507

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:14:08 +02:00
Hendrik Leppkes
e721cb8d8b Merge commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1'
* commit 'f34b152eb7b7e8d2aee57c710a072cf74173fbe1':
  libfdk-aacdec: Clean up properly if the init fails

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:09:55 +02:00
Hendrik Leppkes
4cf4831ae7 Merge commit '1b90433f79de857550d4d8c35c89fbe954920594'
* commit '1b90433f79de857550d4d8c35c89fbe954920594':
  libfdk-aacdec: Always decode into an intermediate buffer

Conflicts:
	libavcodec/libfdk-aacdec.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:05:54 +02:00
Hendrik Leppkes
9dc30d0811 Merge commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855'
* commit '87de6ddb7b7674e329d5c96677bd8685bc7f7855':
  libfdk-aacdec: Bump the max number of channels to 8

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-18 09:02:15 +02:00
Carl Eugen Hoyos
84170d4be0 lavc/mjpegdec: Detect more CMYK images.
Fixes ticket #4772.
2015-08-17 15:53:41 +02:00
Michael Niedermayer
7f769ae41e avcodec/rv30: fix switching back to the original resolution
Fixes part of Ticket1388

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-17 02:07:34 +02:00
Philip Langdale
d3eb317b86 ffmpeg_vdpau: Ignore decoder's max supported level
The h264 decoder reports 4.1 as its maximum level, but it will decode
5.1 4K video just fine. In practice, the published level limits in
vdpau do not communicate anything that's actually useful.
2015-08-16 15:02:33 -07:00
Federico Tomassetti
7bf9647264 vp7: bound checking in vp7_decode_frame_header
CC: libav-stable@libav.org
2015-08-16 19:02:16 +02:00
Martin Storsjö
f34b152eb7 libfdk-aacdec: Clean up properly if the init fails
Previously most of the error paths leaked.

Also add FF_CODEC_CAP_INIT_THREADSAFE while adding caps_internal;
this decoder wrapper doesn't have any static data that is initialized.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:18:00 +03:00
Martin Storsjö
1b90433f79 libfdk-aacdec: Always decode into an intermediate buffer
For ADTS streams, the output format (number of channels, frame size)
can change at any point (with the latest version of fdk-aac, the decoder
seems to change format after a handful of frames, not outputting the
right format immediately, for cases that worked fine with the earlier
version of the lib).

Previously, the decoder decoded straight into the output frame once the
number of channels and frame size was known. This obviously does not
work if the number of channels or frame size changes.

The alternative would be to allocate the AVFrame with the maximum number
of channels and frame size, and change them afterward decoding into it,
but that may cause confusion to users e.g. of the get_buffer callback.
This solution should be more robust.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:17:49 +03:00
Martin Storsjö
87de6ddb7b libfdk-aacdec: Bump the max number of channels to 8
In the latest version of fdk-aac, the decoder can output up to 8
channels; take this into account when preallocating buffers that
need to fit the output from any packet.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-08-16 00:17:46 +03:00
Michael Niedermayer
b1f59bb660 avcodec/flashsvenc: Correct max dimension in error message
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 15:21:04 +02:00
Michael Niedermayer
88fe45e0fe avcodec/svq1enc: Check dimensions
Fixes assertion failure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-15 15:06:01 +02:00
Niklesh
a604289b85 movtextdec: Add support for automatic text wrapping
The value of wrap_flag in the Text Wrap Box specifies if the text is to
be wrapped or not. Uses 'end of line wrap' amongst the wrap styles
supported by ASS if the text is to be wrapped, i.e; fill as much text
in a line as possible, then break to next line.

The 3GPP spec has no provision for smart wrapping.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-14 19:35:26 -07:00
Sven Dueking
f3fbe790d9 avcodec/qsvenc: Set MaxKpbs to rc_max_rate for CBR and VBR (bitrate is equal to rc_max_rate for CBR)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 14:51:47 +02:00
Michael Niedermayer
012784052a avcodec/faxcompr: negate uncompressed runs
Fixes remaining part of Ticket700

Found-by: ami_stuff
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 13:54:05 +02:00
Michael Niedermayer
b2e95e012c avcodec/faxcompr: Factor decode_uncompressed() out
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-14 13:47:18 +02:00
Michael Niedermayer
7727f76230 avcodec/tiff: Support uncompressed G3 CCITT fax
Fixes part of Ticket700

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 17:02:05 +02:00
Michael Niedermayer
a4f9bb228b avcodec/faxcompr: Support uncompressed escapes in decode_group3_1d_line()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 17:01:11 +02:00
Michael Niedermayer
dd1b4ed6d9 avcodec/tiff: Support uncompressed G4 CCITT fax
Fixes part of ticket700

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 16:33:36 +02:00
Michael Niedermayer
38025e6898 avcodec/faxcompr: Support cmode == 9 && xxx == 7
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 16:11:00 +02:00
Michael Niedermayer
bd2d4cc4a9 avcodec/faxcompr: Print the unsupported mode number
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 14:39:15 +02:00
Michael Niedermayer
d21ab8e411 avcodec/dvbsubdec: Print field lens in case they are too lerge
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-13 01:50:08 +02:00
Niklesh
1bf8f54274 movtextdec: Use default style information from movtext header
As suggested, posting the combined patch with the fate changes.
The patch sets the default style in ASS from the default style
information present in the movtext header.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-12 14:43:19 -07:00
Michael Niedermayer
1f86079376 avcodec/mpeg12dec: Check chroma_format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 22:51:40 +02:00
Alexis Ballier
4f74efa76d libavcodec/tableprint_vlc.h: include lavu/reverse.c for ff_reverse.
Fixes the build with --enable-hardcoded-tables since ff_reverse has moved to lavu.
2015-08-12 11:37:24 +02:00
Michael Niedermayer
542562e5ab avcodec/gsm_parser: Replace codec_id check by assert
A parser should never be called with a mismatching codec

Found-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-12 01:00:20 +02:00
Andreas Cadhalpun
107e54c5bf avutil: add ff_reverse as av_reverse replacement
The table is used in libavutil/eval.c.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:14 +02:00
Michael Niedermayer
8992029fc0 avcodec/g729_parser: Replace codec_id check by assert
A parser should never be called with a mismatching codec

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 23:16:35 +02:00
Ganesh Ajjanagadde
0581ab2cac avcodec/g729: add g729_parser
Add trivial g729 parser; fixes Ticket4753

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 23:16:35 +02:00
Carl Eugen Hoyos
daf2c35f52 lavc: Remove newline from avpriv_request_sample() calls. 2015-08-11 22:50:45 +02:00
Ivan Uskov
44857e7a36 libavcodec/qsvdec.c: Extended error messages for MFXVideoDECODE_Init() result
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-11 14:18:43 +02:00
wm4
67db57ea12 mmaldec: fix problems with flush logic
Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.

Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.
2015-08-11 12:14:15 +02:00
wm4
7f116973d5 mmaldec: do not mutate user's AVCodecContext extradata field 2015-08-11 12:14:15 +02:00
wm4
750f72d775 mmaldec: hack against buffering problems on broken input
I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).

The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.
2015-08-11 12:14:15 +02:00
Henrik Gramner
ab43beefab x86inc: Drop SECTION_TEXT macro
The .text section is already 16-byte aligned by default on all supported
platforms so `SECTION_TEXT` isn't any different from `SECTION .text`.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:12:01 +02:00
Henrik Gramner
9f1245eb96 x86inc: Support arbitrary stack alignments
Change ALLOC_STACK to always align the stack before allocating stack space for
consistency. Previously alignment would occur either before or after allocating
stack space depending on whether manual alignment was required or not.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 11:04:11 +02:00
Henrik Gramner
4a53c758d2 x86: dcadsp: Avoid SSE2 instructions in SSE functions
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-08-11 09:22:46 +02:00
Rostislav Pehlivanov
ef8e5a61c8 aacenc: Move small misc. functions to a separate file
As well as tables littered everywhere, functions were spread
out all across the encoder's files. This moves them to a single
place where they can be used by either the encoder's main files
or additional encoder files. Additionally, it changes the type
of some to 'inline' to enable us to simply put them in a header
file and possibly gain some speed due to compiler optimizations.

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2015-08-11 00:22:05 -03:00
Michael Niedermayer
b26497f824 avcodec/mjpegenc_common: do not ignore the color_range field
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-10 17:48:43 +02:00
Hendrik Leppkes
e1def4ffec Merge commit '1542ec96389f32e5081c6c607e4b6f5e257ccdf2'
* commit '1542ec96389f32e5081c6c607e4b6f5e257ccdf2':
  cosmetics: Drop spurious spaces from if clauses

Conflicts:
	libavcodec/vc1_block.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:16:27 +02:00
Hendrik Leppkes
b1d547fe02 Merge commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4'
* commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4':
  h264: Do not print an error when the buffer has to be refilled

Conflicts:
	libavcodec/h264.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-10 11:11:42 +02:00
Michael Niedermayer
0eb896b38d Revert "movtextdec: Use default style information from movtext header"
The commit broke  sub-movtext and sub-subripenc
fate output differs between mips ad x86 so updating fate ref is not
possible

This reverts commit d670848d4c.
2015-08-10 02:09:14 +02:00
Niklesh
d670848d4c movtextdec: Use default style information from movtext header
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-09 15:12:15 -07:00
周晓勇
7fbafd0b1b avcodec: loongson optimize h264qpel with mmi v1
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 20:43:54 +02:00
Michael Niedermayer
16df02fd2e avcodec/snowenc: Avoid use of deprecated me_method
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-09 14:33:31 +02:00
Andreas Cadhalpun
2e9c8be834 avcodec: add missing FF_API_CODEC_ID guard
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:58:31 +02:00
Carl Eugen Hoyos
7e9cd99627 lavc: The h263 encoder (also) depends on h263data.o 2015-08-08 12:11:33 +02:00
Niklesh
ecc806a224 movtextdec: Fix memory leaks by freeing mem allocs correctly
Initialize m->count_f to 0 at the correct place to free memory allocs properly.

Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-07 16:33:31 -07:00
Paolo Bizzarri
1542ec9638 cosmetics: Drop spurious spaces from if clauses
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-08 01:26:38 +02:00
Michael Niedermayer
005d006938 avcodec/libopenh264enc: Avoid usage of deprecated ff_alloc_packet()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-07 22:46:27 +02:00
Hendrik Leppkes
8015150f43 Merge commit '9469370fb32679352e66826daf77bdd2e6f067b5'
* commit '9469370fb32679352e66826daf77bdd2e6f067b5':
  h264: Use AVERROR return codes instead of -1

Only partially merged, as the first hunk is not correct and would result
in endless log spam.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-07 09:54:12 +02:00
Rostislav Pehlivanov
c47c781e83 aacenc: Move local encoder specific tables to a separate file
This commit moves any tables specific to the encoder from aacenc
and aaccoder to a separate file called 'aacenctab.c/.h'.
This was done as a clean up attempt as the encoder was filled with
tables pasted in between functions which made it confusing to follow
and track where each table and definition had been used.
This commit solves this by simply exporting the smaller tables out to
the aacenctab.h while the larger ones are compiled using aacenctab.c
and are referenced from the header file.

Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
2015-08-07 03:58:07 -03:00
James Almer
9c0407e856 x86/sbrdsp: remove an unnecessary mova in sbr_autocorrelate
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-06 23:42:19 -03:00
Michael Niedermayer
ae413a48e6 avcodec/movtextdec: check that ftab has been allocated before dereferencing it
Fixes potential null pointer dereference on deallocation

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 23:38:55 +02:00
Niklesh
2e7a684e72 movtextdec.c: Add support for font names
Signed-off-by: Niklesh <niklesh.lalwani@iitb.ac.in>
2015-08-06 08:42:09 -07:00
wm4
8024002d40 vc1dec: propagate error codes and return meaningful error codes 2015-08-06 15:27:19 +02:00
Michael Niedermayer
cb5190bc9d avcodec/diracdec: Move reference to DiracFrame, avoid use of the deprecated field from AVFrame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 12:44:37 +02:00
Michael Niedermayer
a368920eef avcodec/options: Silence deprecated warning about coded_frame
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-06 12:39:37 +02:00
Luca Barbato
0f562f5b83 h264: Do not print an error when the buffer has to be refilled
Partially amends 9469370fb3
2015-08-06 11:55:48 +02:00
wm4
94c0df79c7 lavc: propagate hwaccel errors
At least the new videotoolbox decoder does not actually set a frame if
end_frame fails. This causes the API to return success and signals that
a picture was decoded, even though AVFrame->data[0] is NULL.

Fix this by propagating end_frame errors.
2015-08-06 11:05:02 +02:00
周晓勇
71575d98f5 avcodec: loongson optimized h264pred with mmi v2
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 22:52:52 +02:00
Michael Niedermayer
e740659a5d avcodec/avcodec: Define CODEC_CAP_* based on AV_CODEC_CAP_*
Avoid duplicating the literal numeric values

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 15:45:50 +02:00
Michael Niedermayer
4ab1f33daf avcodec/avcodec: Replace AV_CODEC_FLAG* values by 1 << C style for consistency
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 15:45:50 +02:00
Michael Niedermayer
500bfbe27a avcodec/hapenc: Remove use of deprecated ff_alloc_packet()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 15:45:50 +02:00
Hendrik Leppkes
00b5c19661 Merge commit '4fee11ab05fc8569ef35c0ce86a60375c903eefb'
* commit '4fee11ab05fc8569ef35c0ce86a60375c903eefb':
  png: Be more informative regarding signature errors

Conflicts:
	libavcodec/pngdec.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-05 12:10:08 +02:00
Jake Sebastian-Jones
9469370fb3 h264: Use AVERROR return codes instead of -1
And report why it fails.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-08-05 11:40:30 +02:00
Michael Niedermayer
e5774f28d1 avcodec/dvbsubdec: Do not stop decoding at a invalid depth
This corrects parsing the later elements

Fixes Ticket4754

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-05 00:16:43 +02:00
Timo Rothenpieler
2ae45816b2 avcodec/nvenc: Add support for 2pass rc in vbr mode
Thanks to WereCatf for pointing out this now exists.

Github: Closes #143
2015-08-04 21:38:10 +02:00
Timo Rothenpieler
3a20e5bc3b avcodec/nvenc: Only set h264 parameter when encoding h264 2015-08-04 21:38:10 +02:00
Timo Rothenpieler
bef740688d avcodec/nvenc: Fix indentation 2015-08-04 21:38:10 +02:00
Hendrik Leppkes
bec062e57c wmv2enc: remove duplicate priv_class in codec definition 2015-08-04 21:35:54 +02:00
Henrik Gramner
f0b7882ceb x86inc: Drop SECTION_TEXT macro
The .text section is already 16-byte aligned by default on all supported
platforms so `SECTION_TEXT` isn't any different from `SECTION .text`.
2015-08-04 20:13:09 +02:00