Ut Video decoder.
More...
#include <inttypes.h>
#include <stdlib.h>
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "avcodec.h"
#include "bswapdsp.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "get_bits.h"
#include "lossless_videodsp.h"
#include "thread.h"
#include "utvideo.h"
#include "utvideodsp.h"
Go to the source code of this file.
|
| static int | build_huff (UtvideoContext *c, const uint8_t *src, VLC *vlc, VLC_MULTI *multi, int *fsym, unsigned nb_elems) |
| |
| static int | decode_plane10 (UtvideoContext *c, int plane_no, uint16_t *dst, ptrdiff_t stride, int width, int height, const uint8_t *src, const uint8_t *huff, int use_pred) |
| |
| static int | compute_cmask (int plane_no, int interlaced, enum AVPixelFormat pix_fmt) |
| |
| static int | decode_plane (UtvideoContext *c, int plane_no, uint8_t *dst, ptrdiff_t stride, int width, int height, const uint8_t *src, int use_pred) |
| |
| static void | restore_median_planar (UtvideoContext *c, uint8_t *src, ptrdiff_t stride, int width, int height, int slices, int rmode) |
| |
| static void | restore_median_planar_il (UtvideoContext *c, uint8_t *src, ptrdiff_t stride, int width, int height, int slices, int rmode) |
| |
| static void | restore_gradient_planar (UtvideoContext *c, uint8_t *src, ptrdiff_t stride, int width, int height, int slices, int rmode) |
| |
| static void | restore_gradient_planar_il (UtvideoContext *c, uint8_t *src, ptrdiff_t stride, int width, int height, int slices, int rmode) |
| |
| static int | decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt) |
| |
| static av_cold int | decode_init (AVCodecContext *avctx) |
| |
| static av_cold int | decode_end (AVCodecContext *avctx) |
| |
Ut Video decoder.
Definition in file utvideodec.c.
◆ CACHED_BITSTREAM_READER
◆ UNCHECKED_BITSTREAM_READER
| #define UNCHECKED_BITSTREAM_READER 1 |
◆ VLC_BITS
◆ READ_PLANE
| #define READ_PLANE |
( |
| b, |
|
|
| end ) |
Value:{ \
buf = !use_pred ? dest :
c->buffer; \
if (ret > 0) \
if (ret <= 0) \
} \
if (use_pred) { \
c->llviddsp.add_left_pred_int16((uint16_t *)dest, (
const uint16_t *)buf, 0x3ff,
width, prev); \
else \
c->llviddsp.add_left_pred((uint8_t *)dest, (
const uint8_t *)buf,
width, prev); \
} \
}
#define i(width, name, range_min, range_max)
#define CACHED_BITSTREAM_READER
static av_always_inline int get_vlc2(GetBitContext *s, const VLCElem *table, int bits, int max_depth)
Parse a vlc code.
static int get_bits_left(GetBitContext *gb)
static int get_vlc_multi(GetBitContext *s, uint8_t *dst, av_unused const VLC_MULTI_ELEM *const Jtable, const VLCElem *const table, const int bits, const int max_depth, av_unused const int symbols_size)
Definition at line 117 of file utvideodec.c.
Referenced by decode_plane(), and decode_plane10().
◆ build_huff()
◆ decode_plane10()
| static int decode_plane10 |
( |
UtvideoContext * | c, |
|
|
int | plane_no, |
|
|
uint16_t * | dst, |
|
|
ptrdiff_t | stride, |
|
|
int | width, |
|
|
int | height, |
|
|
const uint8_t * | src, |
|
|
const uint8_t * | huff, |
|
|
int | use_pred ) |
|
static |
◆ compute_cmask()
| static int compute_cmask |
( |
int | plane_no, |
|
|
int | interlaced, |
|
|
enum AVPixelFormat | pix_fmt ) |
|
static |
◆ decode_plane()
| static int decode_plane |
( |
UtvideoContext * | c, |
|
|
int | plane_no, |
|
|
uint8_t * | dst, |
|
|
ptrdiff_t | stride, |
|
|
int | width, |
|
|
int | height, |
|
|
const uint8_t * | src, |
|
|
int | use_pred ) |
|
static |
◆ restore_median_planar()
| static void restore_median_planar |
( |
UtvideoContext * | c, |
|
|
uint8_t * | src, |
|
|
ptrdiff_t | stride, |
|
|
int | width, |
|
|
int | height, |
|
|
int | slices, |
|
|
int | rmode ) |
|
static |
◆ restore_median_planar_il()
| static void restore_median_planar_il |
( |
UtvideoContext * | c, |
|
|
uint8_t * | src, |
|
|
ptrdiff_t | stride, |
|
|
int | width, |
|
|
int | height, |
|
|
int | slices, |
|
|
int | rmode ) |
|
static |
◆ restore_gradient_planar()
| static void restore_gradient_planar |
( |
UtvideoContext * | c, |
|
|
uint8_t * | src, |
|
|
ptrdiff_t | stride, |
|
|
int | width, |
|
|
int | height, |
|
|
int | slices, |
|
|
int | rmode ) |
|
static |
◆ restore_gradient_planar_il()
| static void restore_gradient_planar_il |
( |
UtvideoContext * | c, |
|
|
uint8_t * | src, |
|
|
ptrdiff_t | stride, |
|
|
int | width, |
|
|
int | height, |
|
|
int | slices, |
|
|
int | rmode ) |
|
static |
◆ decode_frame()
◆ decode_init()
◆ decode_end()
◆ ff_utvideo_decoder
Initial value:= {
.p.name = "utvideo",
}
static av_cold void close(AVCodecParserContext *s)
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
static av_cold int decode_init(AVCodecContext *avctx)
static av_cold int decode_end(AVCodecContext *avctx)
static int decode_frame(AVCodecContext *avctx, AVFrame *picture, int *got_frame, AVPacket *avpkt)
Definition at line 1077 of file utvideodec.c.