diff options
author | Steinar H. Gunderson <steinar+ffmpeg@gunderson.no> | 2017-01-08 14:07:09 +0300 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2017-01-11 18:02:10 +0300 |
commit | 2a293ec7ac72723b5f07aa804bb981ce1de35b82 (patch) | |
tree | 03280e07e6e6eb483974a55384adafc458c62dff /libavcodec/mpeg12.h | |
parent | eaff1aa09e90e2711207c9463db8bf8e8dec8178 (diff) |
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.
Diffstat (limited to 'libavcodec/mpeg12.h')
-rw-r--r-- | libavcodec/mpeg12.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/mpeg12.h b/libavcodec/mpeg12.h index ad9b00c08b..f551504b8c 100644 --- a/libavcodec/mpeg12.h +++ b/libavcodec/mpeg12.h @@ -29,6 +29,15 @@ extern uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3]; void ff_mpeg12_common_init(MpegEncContext *s); +#define INIT_2D_VLC_RL(rl, static_size, flags)\ +{\ + static RL_VLC_ELEM rl_vlc_table[static_size];\ + rl.rl_vlc[0] = rl_vlc_table;\ + ff_init_2d_vlc_rl(&rl, static_size, flags);\ +} + +void ff_init_2d_vlc_rl(RLTable *rl, unsigned static_size, int flags); + static inline int decode_dc(GetBitContext *gb, int component) { int code, diff; |