1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-24 13:56:33 +02:00

2208 Commits

Author SHA1 Message Date
Clément Bœsch
2b32031827 lavc: drop VDA
Deprecated (aka removed) in OSX 10.11, and we have a replacement for it
(VideoToolbox).
2017-10-23 11:56:15 +02:00
James Almer
43befa6826 avcodec: Drop deprecated audio convert API
Deprecated in 10/2013.
2017-10-21 23:16:13 -03:00
James Almer
8f483108b5 avcodec: Drop deprecated audio resample API
Deprecated in 03/2013.
2017-10-21 23:15:19 -03:00
Mark Thompson
00179664bc vaapi_h265: Convert to use coded bitstream infrastructure
Also improves the metadata and generally makes the configuration
a bit cleaner.

(cherry picked from commit ac12486714b48f9bd5d9167f90b77c936751d6ef)
2017-10-17 20:56:30 +01:00
Mark Thompson
2e29ca2a9f vaapi_h264: Convert to use coded bitstream infrastructure
(cherry picked from commit 7a4fac5e91789b73e07bd4ad20493cfde028df76)
2017-10-17 20:56:30 +01:00
Mark Thompson
569721ac8d lavc: Add mpeg2_metadata bitstream filter
(cherry picked from commit b78c30d7ec26af67c00ce2002709a189f6a87a7e)
2017-10-17 20:56:30 +01:00
Mark Thompson
278c308cea mpeg12: Add a common function to find the best frame rate
This will be used later in both the mpeg2_metadata filter and the
VAAPI MPEG-2 encoder.  Also adds a unit test.

(cherry picked from commit b5859e0b04bdbe12c97cb12ac10a45d51d2d73c9)
2017-10-17 20:56:30 +01:00
Mark Thompson
03f982bbca lavc: Add hevc_metadata bitstream filter
This is able to modify some header metadata found in the VPS/SPS/VUI,
and can also add/remove AUDs.

(cherry picked from commit b31a9eae0233325c4b382c657f4b687d5d8b0812)
2017-10-17 20:56:30 +01:00
Mark Thompson
8b26306294 lavc: Add h264_redundant_pps bitstream filter
This applies a specific fixup to some Blu-ray streams which contain
redundant PPSs modifying irrelevant parameters of the stream which
confuse other transformations which require correct extradata.

A new single global PPS is created, and all of the redundant PPSs
within the stream are removed.

(cherry picked from commit e6874bc3af2f09af39b5d91b9c5f9ded67459696)
2017-10-17 20:56:30 +01:00
Mark Thompson
a308872b04 lavc: Add h264_metadata bitstream filter
This is able to modify some header metadata found in the SPS/VUI,
and can also add/remove AUDs and insert user data in SEI NAL units.

(cherry picked from commit 9e93001b6135a23fe4e200196c08fb4fbffed6fc)
(cherry picked from commit c42b62d1f9641f10ffc23cad9abbe47d8a4a165b)
2017-10-17 20:56:29 +01:00
Mark Thompson
9c7d70b49b lavc: Add trace_headers bitstream filter
Supports all streams that the coded bitstream infrastructure does
(currently H.264, H.265 and MPEG-2).

(cherry picked from commit f11d8a5e8b185340cc50fcbc8a1437b0fbe7e931)
2017-10-17 20:56:29 +01:00
Mark Thompson
686e388bbb lavc: Add coded bitstream read/write support for MPEG-2
(cherry picked from commit 2bc9ba8d3c41f3a8e56484bd67b05040c7909a01)
(cherry picked from commit a41b69b5eb950c10d8ede472bcc4e88ce4246db9)
2017-10-17 20:56:29 +01:00
Mark Thompson
9b0c7aa0e4 lavc: Add coded bitstream read/write support for H.265
(cherry picked from commit 867381b8b51fa21fa2b8f071f508f3d39cc9c1f0)
(cherry picked from commit f763489364416bb6866adc4f4a96012dd2ca1bd0)
(cherry picked from commit 067a9ddeb8feff1f724856f0054930c55219f76b)
2017-10-17 20:56:29 +01:00
Mark Thompson
b4c915f4b3 lavc: Add coded bitstream read/write support for H.264
(cherry picked from commit acf06f45441be24c5cbae0920579cd69427326a1)
(cherry picked from commit 768eb9182e94a94bc2ef46f565a0dac7afef3b57)
(cherry picked from commit e7f64191b27bcf37cbf7006606f0f439c6cdc24f)
2017-10-17 20:56:29 +01:00
Mark Thompson
6734eef6b8 lavc: Add coded bitstream read/write API
(cherry picked from commit 18f1706f331bf5dd565774eae680508c8d3a97ad)
(cherry picked from commit 44cde38c8acbef7d5250e6d1b52b1020871e093b)
2017-10-17 20:56:29 +01:00
Lionel CHAZALLON
f3aefb3e1c lavc: Add support for RockChip Media Process Platform
This adds hardware decoding for H.264 / HEVC / VP8 / VP9 using the MPP
Rockchip API.  It returns frames holding an AVDRMFrameDescriptor struct
in buf[0] that allows drm / dmabuf usage.  Tested on RK3288 (TinkerBoard)
and RK3328.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-09-27 22:43:58 +01:00
James Almer
ff7f859c25 avcodec/Makefile: skip v4l2_m2m headers if needed
Fixes checkheaders on systems where v4l2_m2m is unavailable.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-23 18:08:07 -03:00
Rostislav Pehlivanov
2ad1768c7b opusenc: implement a psychoacoustic system
This commit implements a psychoacoustic system for the native Opus
encoder. Its unlike any other psychoacoustic system known since its
capable of using a lookahead to make better choices on how to treat the
current frame and how many bits to allocate for it (and future frames).

Also, whilst the main bulk of the analysis function has to run in a
single thread, the per-frame anaylsis functions does not modify the main
psychoacoustic context, so in the future it will be fairly trivial to
run those as slice threads.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-09-23 08:27:44 +01:00
Jorge Ramirez-Ortiz
1ef7752d64 libavcodec: v4l2: add support for v4l2 mem2mem codecs
This patchset enhances Alexis Ballier's original patch and validates
    it using Qualcomm's Venus hardware (driver recently landed upstream
    [1]).

    This has been tested on Qualcomm's DragonBoard 410c and 820c
    Configure/make scripts have been validated on Ubuntu 10.04 and
    16.04.

    Tested decoders:
           - h264
           - h263
           - mpeg4
           - vp8
           - vp9
           - hevc

    Tested encoders:
           - h264
           - h263
           - mpeg4

    Tested transcoding (concurrent encoding/decoding)

    Some of the changes introduced:
        - v4l2: code cleanup and abstractions added
        - v4l2: follow the new encode/decode api.
        - v4l2: fix display size for NV12 output pool.
        - v4l2: handle EOS (EPIPE and draining)
        - v4l2: vp8 and mpeg4 decoding and encoding.
        - v4l2: hevc and vp9 support.
        - v4l2: generate EOF on dequeue errors.
        - v4l2: h264_mp4toannexb filtering.
        - v4l2: fixed make install and fate issues.
        - v4l2: codecs enabled/disabled depending on pixfmt defined
        - v4l2: pass timebase/framerate to the context
        - v4l2: runtime decoder reconfiguration.
        - v4l2: add more frame information
        - v4l2: free hardware resources on last reference being released
        - v4l2: encoding: disable b-frames for upstreaming (patch required)

    [1] https://lwn.net/Articles/697956/

    System Level view:
        v42l_m2m_enc/dec --> v4l2_m2m --> v4l2_context --> v4l2_buffers

    Reviewed-by: Jorge Ramirez <jorge.ramirez-ortiz@linaro.org>
    Reviewed-by: Alexis Ballier <aballier@gentoo.org>
    Tested-by: Jorge Ramirez <jorge.ramirez-ortiz@linaro.org>

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2017-09-23 08:47:52 +02:00
Martin Vignali
9b8c1224d7 libavcodec/exr : add X86 SIMD for reorder_pixels
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-17 17:53:57 -03:00
Mark Thompson
c8dea81921 lavc: Add wrapped_avframe decoder
Intended for use with hardware frames for which rawvideo is not
sufficient.  Requires the trusted packet flag to be set - decoding
fails if not to avoid security issues (the wrapped AVFrame can
contain pointers to arbitrary data).
2017-09-13 22:25:29 +01:00
Paras Chadha
6e02f66f1b Add FITS Encoder
Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
2017-08-30 12:13:01 +02:00
Paras Chadha
61e4db4bb7 Add FITS Decoder
Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
2017-08-30 12:13:01 +02:00
Carl Eugen Hoyos
898ea658c8 lavc/g726: Add a little-endian G.726 encoder.
Fixes ticket #6596.
2017-08-21 16:19:58 +02:00
Clément Bœsch
55949e3e51 lavc/tests: add htmlsubtitles 2017-08-01 15:50:00 +02:00
Matt Oliver
b0c61209cd lavc/makefile: Add missing file dependencies.
ac3dsp.c uses tables from ac3.c
ac3.c uses tables from ac3tab.c
hevc_ps uses tables from hevc_data.c
intrax8.c uses tables from msmpeg4data.c

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
2017-07-30 14:31:12 +10:00
foo86
930fe4b1f7 avcodec: add Dolby E decoder 2017-07-19 12:27:32 +02:00
Muhammad Faiz
0780ad9c68 avcodec/rdft: remove sintable
It is redundant with costable. The first half of sintable is
identical with the second half of costable. The second half
of sintable is negative value of the first half of sintable.

The computation is changed to handle sign of sin values, in
C code and ARM assembly code.

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2017-07-11 13:22:02 +07:00
Paul B Mahol
4ed7c2bbc3 avcodec/utvideodec: add SIMD for restore_rgb_planes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-06-27 09:54:10 +02:00
Mark Thompson
bde0460406 vaapi_encode: Add VP9 support
(cherry picked from commit 0fd91e4bfc00a6609b59d1ce3a9f152184e62601)
2017-06-24 17:41:55 +01:00
Mark Thompson
49419925d3 vp9: Add bsf to fix reordering in raw streams
Takes a raw input stream containing frames with correct timestamps but
possibly out of order and inserts additional show-existing-frame
packets to correct the ordering.

(cherry picked from commit 34e051d16850701694410a0e72e0e4ff3a5ec293)
(cherry picked from commit b43b95f4789b6e60f9684918fd3c0a5f3f18aef6)

Also converted from bitstream to get_bits.
2017-06-24 17:41:30 +01:00
Paul B Mahol
d1c08027d8 avcodec: add Gremlin Digital Video decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-06-11 10:00:39 +02:00
Paul B Mahol
29bdcf588f avcodec: add Gremlin DPCM decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-06-11 10:00:16 +02:00
Aman Gupta
a32a6b4201 lavc: add mpeg2 mediacodec decoder
Android TV and FireOS hardware supports mpeg2 hardware decoding via
MediaCodec.

Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-06-08 19:16:09 +02:00
Rostislav Pehlivanov
220b24c7c9 lavc: remove libschroedinger encoding and decoding wrappers
The library has stopped being developed and Debian has removed it
from its repositories citing security issues.
The native Dirac decoder supports everything the library has and basic
encoding support is still provided via the native vc2 (Dirac Pro, intra
only version of Dirac) encoder. Hence, there's no reason to still support
linking to the library and potentially leading users into security issues.
2017-05-29 20:15:58 +01:00
Rostislav Pehlivanov
5fd4cffe32 lavc: add a librsvg rasterization library wrapper
Enables rendering of SVG images. This is possible since SVG images
still contain and specify the dimensions in pixels to which they've
been drawn to and thus enable browsers to display them without any
external data. Users can still override and generate images with
arbitrary resolutions.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-05-16 11:40:44 +01:00
James Almer
e0ecc7db48 avcodec/Makefile: fix dnxhd parser dependencies
Fixes ticket #6391
2017-05-15 13:33:29 -03:00
Daniil Cherednik
b8c2b9c392 avcodec/dcaenc: Initial implementation of ADPCM encoding for DCA encoder 2017-05-08 05:56:14 +01:00
James Almer
6a72578cc2 avcodec/hevc_parse: decode SEI message NALUs in extradata
They may be available in hvcc style extradata.

Based on a patch by Hendrik Leppkes.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-05-05 17:30:38 -03:00
James Almer
1c088632e9 avcodec/hevc_parser: remove HEVCContext usage
This gets rid of the duplicate, limited parser.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-05-05 17:30:37 -03:00
James Almer
6fdd35a312 Merge commit '92db5083077a8b0f8e1050507671b456fd155125'
* commit '92db5083077a8b0f8e1050507671b456fd155125':
  build: Generate pkg-config files from Make and not from configure
  build: Store library version numbers in .version files

Includes cherry-picked commits 8a34f3659371680ca523aecfd9098c28f0f809eb and
ee164727dd64c199b87118917e674b17c25e0da3 to fix issues.

Changes were also made to retain support for raise_major and build_suffix.

Reviewed-by: ubitux
Merged-by: James Almer <jamrial@gmail.com>
2017-05-04 19:59:30 -03:00
Clément Bœsch
3f17751eeb Merge commit '11a9320de54759340531177c9f2b1e31e6112cc2'
* commit '11a9320de54759340531177c9f2b1e31e6112cc2':
  build: Move build-system-related helper files to a separate subdirectory

"ffbuild" directory name is used instead of "avbuild".

Merged-by: Clément Bœsch <u@pkh.me>
2017-05-03 16:49:12 +02:00
James Almer
fdeab95a82 Merge commit '03a80925effc2698d21dc0b00290eecf42dd9e68'
* commit '03a80925effc2698d21dc0b00290eecf42dd9e68':
  lavc: add a bitstream filter for splitting VP9 superframes

Merged-by: James Almer <jamrial@gmail.com>
2017-04-22 23:27:05 -03:00
Paul B Mahol
61088051bd avcodec: add Screen Recorder Gold Codec decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-18 15:04:12 +02:00
Paul B Mahol
a96db6be06 avcodec: add Mandsoft Screen Capture Codec decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-18 15:03:12 +02:00
Clément Bœsch
e22d495538 Merge commit '47e547b321338c73c21fa623789f1efbd80a297a'
* commit '47e547b321338c73c21fa623789f1efbd80a297a':
  lavc: add a null bitstream filter

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-17 14:01:57 +02:00
James Almer
7d3bb052c8 Merge commit '624aa8ab221cf34693f9a8c5ab67219cf560f2bb'
* commit '624aa8ab221cf34693f9a8c5ab67219cf560f2bb':
  build: Add missing Makefile entries and ifdefs for QSV hwaccels

Merged-by: James Almer <jamrial@gmail.com>
2017-04-13 17:27:43 -03:00
James Almer
498e9e8e2a avcodec/hevc_parse: split build dependencies
Reviewed-by: nevcairiel
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-09 13:55:17 -03:00
James Almer
521197ebec Merge commit 'e1dc5358af0dadef548114ec9cabba766b7c6260'
* commit 'e1dc5358af0dadef548114ec9cabba766b7c6260':
  build: Create a component for MPEG audio header decoding

Merged-by: James Almer <jamrial@gmail.com>
2017-04-09 12:29:58 -03:00
Clément Bœsch
63bb3db9aa Merge commit '0fdc9f81a00f0f32eb93c324bad65d8014deb4dd'
* commit '0fdc9f81a00f0f32eb93c324bad65d8014deb4dd':
  build: Add missing hevc_ps dependency for QSV HEVC encoder

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-09 15:10:30 +02:00