1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-07 11:13:41 +02:00
Commit Graph

2127 Commits

Author SHA1 Message Date
Paras Chadha
5dab7b91ad avcodec: add XPM decoder and demuxer
Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
2017-03-12 18:24:49 +01:00
Kostya Shishkov
a63496cc88 avcodec: add ClearVideo decoder
Only I-frames are decoded for now.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-03-02 11:39:54 +01:00
Paul B Mahol
039011b6b0 avcodec: add ScreenPressor decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-02-22 22:57:59 +01:00
Rostislav Pehlivanov
5f47c85e5c opus: add a native Opus encoder
This marks the first time anyone has written an Opus encoder without
using any libopus code. The aim of the encoder is to prove how far
the format can go by writing the craziest encoder for it.

Right now the encoder's basic, it only supports CBR encoding, however
internally every single feature the CELT layer has is implemented
(except the pitch pre-filter which needs to work well with the rest of
whatever gets implemented). Psychoacoustic and rate control systems are
under development.

The encoder takes in frames of 120 samples and depending on the value of
opus_delay the plan is to use the extra buffered frames as lookahead.
Right now the encoder will pick the nearest largest legal frame size and
won't use the lookahead, but that'll change once there's a
psychoacoustic system.

Even though its a pretty basic encoder its already outperforming
any other native encoder FFmpeg has by a huge amount.

The PVQ search algorithm is faster and more accurate than libopus's
algorithm so the encoder's performance is close to that of libopus
at zero complexity (libopus has more SIMD).
The algorithm might be ported to libopus or other codecs using PVQ in
the future.

The encoder still has a few minor bugs, like desyncs at ultra low
bitrates (below 9kbps with 20ms frames).

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-02-14 06:15:36 +00:00
Rostislav Pehlivanov
e538108c21 opus_celt: move quantization and band decoding to opus_pvq.c
A huge amount can be reused by the encoder, as the only thing
which needs to be done would be to add a 10 line celt_icwrsi,
a wrapper around it (celt_alg_quant) and templating the
ff_celt_decode_band to replace entropy decoding functions
with entropy encoding.

There is no performance loss but in fact a performance gain of
around 6% which is caused by the compiler being able to optimize
the decoding more efficiently.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-02-14 06:15:36 +00:00
Rostislav Pehlivanov
d2119f624d imdct15: rename to mdct15 and add a forward transform
Handles strides (needed for Opus transients), does pre-reindexing and folding
without needing a copy.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-02-14 06:15:36 +00:00
Paul B Mahol
8259f8a720 avcodec: add FM Screen Capture Codec decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-02-12 10:43:45 +01:00
Paul B Mahol
280a40dd27 avcodec: add ATRAC Advanced Lossless decoders
Only lossy part is decoded for now.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-02-11 12:00:38 +01:00
Mark Thompson
d1acab8293 vaapi_encode: Add VP8 support
Fixes ticket #6116.

(cherry picked from commit ca62236a89)
2017-02-08 19:14:05 +00:00
Mark Thompson
3b95c7c17d vaapi_encode: Add MPEG-2 support
(cherry picked from commit ca6ae3b77a)
2017-02-08 19:14:05 +00:00
Jerry Jiang
884506dfe2 Implement optimal huffman encoding for (M)JPEG.
> seems to break
> make fate-vsynth1-mjpeg-444

Fixed.
2017-02-08 13:59:53 +00:00
Paul B Mahol
5d2609929d avcodec: add XMA2 parser
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-01-20 13:58:41 +01:00
Mark Thompson
2a4a8653b6 lavc: Remove old vaapi decode infrastructure
Deprecates struct vaapi_context and the installed header vaapi.h,
to be removed at the next version bump.

(cherry picked from commit 851960f6f8)
2017-01-17 23:06:46 +00:00
Mark Thompson
79307ae563 lavc: Rewrite VAAPI decode infrastructure
Moves much of the setup logic for VAAPI decoding into lavc; the user
now need only provide the hw_frames_ctx.

(cherry picked from commit 123ccd07c5)
(cherry picked from commit 5e879b54a3)
(cherry picked from commit 0aec37e625)
(cherry picked from commit cfa4eb4fba)
2017-01-17 23:06:45 +00:00
Paul B Mahol
40cf943714 avcodec: add SIPR parser
Fixes #2056.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-01-16 10:24:01 +01:00
Daniil Cherednik
c2500d62c6 dcaenc: Implementation of Huffman codes for DCA encoder
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-01-15 18:17:12 +00:00
James Almer
cf9ef83960 huffyuvencdsp: move shared functions to a new lossless_videoencdsp context
Signed-off-by: James Almer <jamrial@gmail.com>
2017-01-12 22:53:04 -03:00
Steinar H. Gunderson
2a293ec7ac avcodec: add Newtek SpeedHQ decoder
This decoder can decode all existing SpeedHQ formats (SHQ0–5, 7, and 9),
including correct decoding of the alpha channel.

1080p is decoded in 142 fps on one core of my i7-4600U (2.1 GHz Haswell),
about evenly split between bitstream reader and IDCT. There is currently
no attempt at slice or frame threading, even though the format trivially
supports both.

NewTek very helpfully provided a full set of SHQ samples, as well as
source code for an SHQ2 encoder (not included) and assistance with
understanding some details of the format.
2017-01-11 16:02:10 +01:00
Paul B Mahol
90ac9f4094 avcodec: add QDMC decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-01-06 22:05:45 +01:00
Carl Eugen Hoyos
e6050d81b0 lavc/Makefile: Clean up the amv encoder dependencies. 2017-01-05 12:17:54 +01:00
Paul B Mahol
73651090ca avcodec: add Apple Pixlet decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-12-22 22:47:06 +01:00
Paul B Mahol
95fb9e0205 avcodec: add pcm_f16le and pcm_f24le decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-12-22 10:30:21 +01:00
Martin Vignali
90af962911 libavcodec : add decoder for Photoshop PSD image files
Decode the Image Data Section (which contains merged pictures).
Support RGB/A and Grayscale/A in 8bits and 16 bits per channel.
Support uncompress and rle decompression in Image Data Section.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-14 03:21:27 +01:00
Thomas Turner
da3c69a5a9 Added test for libavcodec/avpacket.c
Signed-off-by: Thomas Turner <thomastdt@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-06 17:12:38 +01:00
Hendrik Leppkes
444e65299b Merge commit '326d9116936ab61d13ac4142b49c7337daf7c4c0'
* commit '326d9116936ab61d13ac4142b49c7337daf7c4c0':
  build: Drop unnecessary libavcodec <-> libavformat object dependencies

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-14 12:01:17 +01:00
Hendrik Leppkes
a0bc6b51d4 Merge commit 'e72d6fa08a3c1876109149401753a8d2c736d418'
* commit 'e72d6fa08a3c1876109149401753a8d2c736d418':
  build: Move MP2 muxer declaration away from MP3 muxer code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-14 11:20:15 +01:00
Hendrik Leppkes
9b4cc0f35c Merge commit 'fe27792fd779ac4cdd5e57be5f6f488483c307b2'
* commit 'fe27792fd779ac4cdd5e57be5f6f488483c307b2':
  build: Move ff_mpeg12_frame_rate_tab to a separate file

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-14 10:42:36 +01:00
Hendrik Leppkes
575e8d11f1 Merge commit '8c929037ec75fbe9f367e0a31ee34839e92de481'
* commit '8c929037ec75fbe9f367e0a31ee34839e92de481':
  build: Add a new component for H.264 parsing code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-11-14 10:09:44 +01:00
Rostislav Pehlivanov
317be31eaf opus: move the entropy decoding functions to opus_rc.c
The intention is to have both encoding and decoding functions
in opus_rc.c.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-11-08 14:18:59 +00:00
Rostislav Pehlivanov
0660a09dd1 opus: move all tables to a separate file
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2016-11-08 14:18:59 +00:00
Matthieu Bouron
d5082a2ce7 lavc/mediacodec: use more meaningful filenames
Adds the following changes:
  * mediacodecdec.{c,h} -> mediacodecdec_common.{c,h}
  * mediacodecdec_h2645.c -> mediacodecdec.c
2016-10-19 10:50:56 +02:00
Matthieu Bouron
f62c54456d lavc: add mpeg4 mediacodec decoder 2016-10-19 10:50:52 +02:00
Matthieu Bouron
0f7fce87ea lavc: add vp8/vp9 mediacodec decoders 2016-10-19 10:50:12 +02:00
Josh de Kock
dc0f711459 lavc: remove libfaac wrapper
There is really no need for two aac wrappers, we already have
libfdk-aac which is better. Not to mention that faac doesn't
even support HEv1, or HEv2. It's also under a license which is
unusable for distribution, so it would only be useful to people
who will compile their own ffmpeg, only use it themselves (which
at that point should just use fdk-aac).

Signed-off-by: Josh de Kock <josh@itanimul.li>
2016-10-01 19:58:04 +01:00
James Almer
e3842e87f2 avcodec/Makefile: Fix mlpenc dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-09-25 16:12:18 -03:00
Jai Luthra
15b86f480a mlpenc: Working MLP/TrueHD encoder
* Multichannel support for TrueHD is experimental

    There should be downmix substreams present for 2+ channel bitstreams,
    but ffmpeg decoder doesn't need it. Will add support for this soon.

* There might be lossless check failures on LFE channels

* 32-bit sample support has been removed for now, will add it later

    While testing, some samples gave lossless check failures when enforcing
    s32. Probably this will also get solved with the LFE issues.

Signed-off-by: Jai Luthra <me@jailuthra.in>
2016-09-17 13:23:56 +01:00
Matthieu Bouron
140da8e810 lavc: add hevc mediacodec decoder 2016-09-15 21:48:28 +02:00
Rodger Combs
7c5fed15a8
lavc/Makefile: add missing ADPCM_THP_LE objs 2016-09-09 20:07:55 -05:00
Rodger Combs
1177e42121
lavc/Makefile: g729dec: fix missing file 2016-09-09 20:07:55 -05:00
Rafaël Carré
10e3f18c8d libzvbi depends on ass 2016-08-23 15:28:36 +02:00
Umair Khan
dcfd24b10c avcodec/alsdec: Implement floating point sample data decoding
It conforms to the RM22 version of the reference encoder

Signed-off-by: Umair Khan <omerjerk@gmail.com>
2016-08-22 15:28:19 +02:00
Paul B Mahol
fc600eff63 avcodec: add 64-bit signed pcm codec 2016-08-18 15:30:05 +02:00
James Almer
7a9a8afc82 avcodec/ttaenc: split off hybrid filter processing as ttaencdsp
Signed-off-by: James Almer <jamrial@gmail.com>
2016-08-02 15:47:38 -03:00
Clément Bœsch
15b26e88cb Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'
* commit '9df889a5f116c1ee78c2f239e0ba599c492431aa':
  h264: rename h264.[ch] to h264dec.[ch]

Merged-by: Clément Bœsch <u@pkh.me>
2016-07-29 11:01:36 +02:00
Martin Storsjö
c5d326f551 Add an OpenH264 decoder wrapper
This is cherrypicked from libav, from commits
82b7525173 and
d0b1e6049b.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-27 10:19:40 +03:00
James Almer
26cb7232c3 Revert "lavc: always build dnxhddata"
This reverts commit 2adbea4e21.

A better solution will follow in the next commit.
2016-07-25 12:19:31 -03:00
Carl Eugen Hoyos
71167f7f84 lavc/Makefile: Fix standalone compilation of the svq3 decoder.
Regression since 0bf5fd2e
2016-07-24 23:50:33 +02:00
Matthieu Bouron
2adbea4e21 lavc: always build dnxhddata
lavc/movenc rely on avpriv_dnxhd_parse_header_prefix declared by
dnxhddata.h since e47981dab7.

Fixes a missing symbol error in lavc/movenc if the dnxhd encoder is not
enabled.
2016-07-24 22:57:06 +02:00
Rostislav Pehlivanov
0eb0f93109 diracdec: implement a LUT-based Golomb code parser
Still much left to optimize, but it provides a significant performance
improvement - 10% for 300Mbps (1080p30), 25% for 1.5Gbps (4k 60fps) in
comparison with the default implementation.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
2016-07-11 23:40:28 +01:00
Carl Eugen Hoyos
244d22452c lavc/Makefile: Fix standalone compilation of the lame encoder.
Also fix a possible issue with the mpegaudio audiotoolbox decoders.
Fixes ticket #5703.
2016-07-11 23:21:19 +02:00