Commit Graph

735 Commits

Author SHA1 Message Date
Timo Rothenpieler
1dd854e10f vaapi: Add hevc hwaccel support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-08-27 17:05:44 +02: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
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
Sebastien Zwickert
11d923d414 avcodec: add new Videotoolbox hwaccel. 2015-08-03 10:12:10 +02:00
Michael Niedermayer
508b79e6c1 Merge commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986'
* commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986':
  lavc: add Intel libmfx-based HEVC decoder.

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/qsvdec.c
	libavcodec/qsvdec_h2645.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 01:20:46 +02:00
Michael Niedermayer
bb619f41be Merge commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e'
* commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e':
  lavc: add Intel libmfx-based MPEG2 decoder.

Conflicts:
	configure
	libavcodec/qsvdec_mpeg2.c

Some cosmetics merged, rest is related to the removed parser code and
thus not merged

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:59:57 +02:00
Michael Niedermayer
15bcbc9d3b Merge commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741'
* commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741':
  lavc: add a HEVC mp4->annex B bitstream filter

Conflicts:
	Changelog

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-26 00:34:27 +02:00
Ivan Uskov
fb57bc6c34 avcodec: Add QSV VC-1 video decoder.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 19:32:22 +02:00
Anton Khirnov
41d47ea85f lavc: add Intel libmfx-based HEVC decoder. 2015-07-25 17:37:01 +02:00
Anton Khirnov
bf52f77391 lavc: add Intel libmfx-based MPEG2 decoder. 2015-07-25 17:36:59 +02:00
Ivan Uskov
6d0123f40e avcodec: Add QSV MPEG-2 video decoder.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25 17:31:18 +02:00
Anton Khirnov
f89f78c1c5 lavc: add a HEVC mp4->annex B bitstream filter 2015-07-25 17:26:53 +02:00
Michael Niedermayer
e56f14659f Merge commit 'e1319aa1c1be9b64117c19170344fb78841dd67c'
* commit 'e1319aa1c1be9b64117c19170344fb78841dd67c':
  libx264: Add support for the MPEG2 encoder

Conflicts:
	configure
	libavcodec/Makefile
	libavcodec/libx264.c

Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-17 21:21:03 +02:00
Luca Barbato
e1319aa1c1 libx264: Add support for the MPEG2 encoder 2015-07-17 10:47:48 +02:00
Arttu Ylä-Outinen
b90b6af710 avcodec: add libkvazaar HECV encoder
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-14 18:00:36 +02:00
Jovan Zelincevic
f21b4472ef libavcodec: Implementation of AAC_fixed_decoder (LC-module) [4/4]
Build system modified

There are several warnings occurring during build after this patch is
applied. The cause of most of these warnings is in that some definitions
needed here are logical part of sbr module and are added in later patches.
When this patches are applied these warnings stop occurring.

The only warning that is added here and is not fixed with later patches
is warning that warns that type mismatch for table ff_aac_eld_window_480.

The reason for this warning is in that ER AAC ELD 480 is not integrated in
to the fixed point implementation at this moment and there is no fixed point
version of this table.

Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 14:41:41 +02:00
Michael Niedermayer
7871eb4361 Merge commit '66acb76bb0492b263215ca9b4d927a7be39ace02'
* commit '66acb76bb0492b263215ca9b4d927a7be39ace02':
  lavc: add Intel libmfx-based HEVC encoder

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/qsv.c
	libavcodec/qsvenc.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:53:14 +02:00
Michael Niedermayer
96ee6b9962 Merge commit '3a85397e8bb477eb34678d9edc52893f57003226'
* commit '3a85397e8bb477eb34678d9edc52893f57003226':
  lavc: add Intel libmfx-based MPEG2 encoder

Conflicts:
	Changelog
	configure
	libavcodec/allcodecs.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09 11:17:12 +02:00
Anton Khirnov
66acb76bb0 lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
Anton Khirnov
3a85397e8b lavc: add Intel libmfx-based MPEG2 encoder 2015-07-08 23:39:28 +02:00
Philip Langdale
6e5e139fe3 avcodec/vdpau: Support for VDPAU accelerated HEVC decoding
This change introduces basic support for HEVC decoding through vdpau.
Right now, there are problems with the nvidia driver/library implementation
that mean that frames are incorrectly laid out in memory when they are
returned from the decoder, and it is normally impossible to recover the
complete decoded frame due to loss of data from alignment inconsistencies.

I obviously hope that nvidia will be fixing it in due course - I've verified
the problems exist with their example application.

As such, this support is not useful for any real world application, but I
believe that it is correct (with the caveat that the mangled frames may hide
problems) and will work properly once the nvidia problem is fixed.

Right now it appears that any file encoded by x265 or nvenc is decoded
correctly, but that's because these files don't use a bunch of HEVC
features.

Quick summary:

Features that seem to work:

1) Short Term References
2) Scaling Lists
3) Tiling

Features with known problems:

1) Long Term References

It's hard to tell what's going on here. After I read the nvidia example
app that does not set the IsLongTerm flag on LTRs, and changed my code,
a bunch of frames using LTR started to display correctly, but there
are still samples with glitches that are related to LTRs.

In terms of real world files, both x265 and nvenc only use short term
refs from this list. The divx encoder seems similar.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-25 20:06:47 -07:00
Paul B Mahol
5a79bf0284 PCM signed 16-bit big-endian planar decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-06-24 14:45:00 +01:00
Michael Niedermayer
ff68b83968 Merge commit '5c018ee18895f88e9e1d2174059dcdd48bf872d2'
* commit '5c018ee18895f88e9e1d2174059dcdd48bf872d2':
  DirectDraw Surface image decoder

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/Makefile
	libavcodec/version.h
	tests/fate/image.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 23:34:56 +02:00
Michael Niedermayer
55219a78c7 Merge commit '7ca3e5203f133eb41a0b5c3a1d753a7427ba72e7'
* commit '7ca3e5203f133eb41a0b5c3a1d753a7427ba72e7':
  Hap decoder and encoder

Conflicts:
	Changelog
	configure
	doc/general.texi
	libavcodec/allcodecs.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 22:47:32 +02:00
Vittorio Giovara
5c018ee188 DirectDraw Surface image decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Vittorio Giovara
7ca3e5203f Hap decoder and encoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-06-22 15:23:08 +01:00
Rodger Combs
7e7256c3a4 lavc: add little-endian ADPCM_THP decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-20 16:33:39 +02:00
Philip Langdale
cc904353fa avcodec/allcodecs: Re-order nvenc encoders below x264/5.
We shouldn't pick nvenc by default.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 20:29:17 -07:00
Philip Langdale
7e4661174a avcodec/nvenc: Add 'nvenc_h264' as an alternative name for 'nvenc'
This allows us to offer the same codec name that libav uses. We don't have
a special way to do aliases, so it's all a bit more verbose than you'd want
but such is life.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:14 -07:00
Philip Langdale
e79c40fe72 avcodec/nvenc: Rename nvenc_h265 to nvenc_hevc
For the sake of compatibility, and because pretty much everything else in the
codebase calls it HEVC.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:11 -07:00
Philip Langdale
d47de79372 Revert "Merge commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e'"
This reverts commit d8bbb99c51, reversing
changes made to d0d0913702.

Signed-off-by: Philip Langdale <philipl@overt.org>
2015-06-06 13:14:02 -07:00
Michael Niedermayer
d8bbb99c51 Merge commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e'
* commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e':
  nvenc: H264 and HEVC encoders

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/version.h

This implementation is merged under the name nvenc_b*

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 03:13:55 +02:00
Luca Barbato
b08caa87c3 nvenc: H264 and HEVC encoders
Partially based on the work of Timo Rothenpieler <timo@rothenpieler.org>

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-31 15:17:22 +02:00
Michael Niedermayer
947b74ee7d Merge commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772'
* commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772':
  D3D11va: add a Direct3D11 video decoder similar to DXVA2

Conflicts:
	Changelog
	configure
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/dxva2_vc1.c
	libavcodec/version.h
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25 22:24:34 +02:00
Steve Lhomme
d8039ef8d2 D3D11va: add a Direct3D11 video decoder similar to DXVA2
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-05-25 11:47:08 +02:00
Urvang Joshi
02cf59f3a6 WebP encoder: use WebPAnimEncoder API when available.
WebPAnimEncoder API is a combination of encoder (WebPEncoder) and muxer
(WebPMux). It performs several optimizations to make it more efficient
than the combination of WebPEncode() and native ffmpeg muxer.

When WebPAnimEncoder API is used:
- In the encoder layer: we use WebPAnimEncoderAdd() instead of
  WebPEncode().
- The muxer layer: works like a raw muxer.

On the other hand, when WebPAnimEncoder API isn't available, the old code is
used as it is:
- In the codec layer: WebPEncode is used to encode each frame
- In the muxer layer:  ffmpeg muxer is used

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-23 03:31:28 +02:00
Michael Niedermayer
5a284d076f Merge commit '22526c1f557a72b3285d295bd8b30c40eb65d437'
* commit '22526c1f557a72b3285d295bd8b30c40eb65d437':
  Canopus HQ/HQA decoder

Conflicts:
	Changelog
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 05:28:13 +02:00
Vittorio Giovara
22526c1f55 Canopus HQ/HQA decoder
Based on work by Kostya Shishkov <kostya.shishkov@gmail.com>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-04-19 22:37:23 +01:00
Andreas Cadhalpun
0224b35c89 avcodec: add unpack packed B-frames bitstream filter
Fixes Ticket #2913

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 02:24:56 +02:00
Donny Yang
d759844863 apng: Add a basic APNG encoder
Signed-off-by: Donny Yang <work@kota.moe>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-02 04:02:43 +02:00
Michael Niedermayer
268ff17cb7 Merge commit 'c48456166e95648719a8be8f8613f9dee98205c1'
* commit 'c48456166e95648719a8be8f8613f9dee98205c1':
  lavc: add MMAL hardware decoder wrapper

Conflicts:
	Changelog
	configure
	doc/APIchanges
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/version.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-29 11:32:24 +02:00
Hendrik Leppkes
72025ac36c lavc: add libdcadec decoder
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-29 10:15:09 +02:00
wm4
c48456166e lavc: add MMAL hardware decoder wrapper
Based on a patch by Rodger Combs.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-03-29 09:55:20 +02:00
Michael Niedermayer
0a731e4596 Merge commit '72b7441a10f578a1d0be7083d8f5adf6a01921c2'
* commit '72b7441a10f578a1d0be7083d8f5adf6a01921c2':
  lavc: add Intel libmfx-based H.264 encoder

Conflicts:
	Changelog
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-28 01:33:27 +01:00
Anton Khirnov
72b7441a10 lavc: add Intel libmfx-based H.264 encoder 2015-03-27 22:02:10 +01:00
Philip Langdale
21175d8586 avcodec/nvenc: Add support for H.265 encoding
Sufficiently new nvenc hardware (GM20x or later) has support for H.265
encoding. This works the same as the H.264 encoder except the
codec parameters are different.

Due to the fact that common codec parameters are not shareable, there's
quite a bit of conditional logic you'd wish we could do without, but
such is life.

Signed-off-by: Philip Langdale <philipl@overt.org>
Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-03-24 21:42:07 -07:00
Michael Niedermayer
2850131f2c Merge commit 'b21af32aed7e343f962753943e9f16baedfb1750'
* commit 'b21af32aed7e343f962753943e9f16baedfb1750':
  lavc: Prefer x264 over openh264 if both libraries are available

See: ddae03f69b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-24 02:23:29 +01:00
Michael Niedermayer
b21af32aed lavc: Prefer x264 over openh264 if both libraries are available 2015-03-23 20:53:29 +00:00
Hendrik Leppkes
519868de7d avcodec: add libdcadec decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-20 00:25:50 +01:00
Michael Niedermayer
e1f37c48e5 Merge commit '247e370e2a913db52ca079b347a174c8d393b171'
* commit '247e370e2a913db52ca079b347a174c8d393b171':
  TDSC decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/version.h
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 23:23:01 +01:00