FFmpeg
|
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "hwaccel.h"
#include "internal.h"
#include "mathops.h"
#include "rectangle.h"
#include "thread.h"
#include "vp8.h"
#include "vp8data.h"
Go to the source code of this file.
Macros | |
#define | VPX(vp7, f) vp8_ ## f |
#define | VP7_MVC_SIZE 17 |
#define | VP8_MVC_SIZE 19 |
#define | MV_EDGE_CHECK(n) |
#define | XCHG(a, b, xchg) |
#define | H_LOOP_FILTER_16Y_INNER(cond) |
#define | MARGIN (16 << 2) |
#define | check_thread_pos(td, otd, mb_x_check, mb_y_check) while(0) |
#define | update_pos(td, mb_y, mb_x) while(0) |
Variables | |
static const uint8_t | subpel_idx [3][8] |
#define VP7_MVC_SIZE 17 |
Definition at line 443 of file vp8.c.
Referenced by vp7_decode_frame_header().
#define VP8_MVC_SIZE 19 |
Definition at line 444 of file vp8.c.
Referenced by vp8_decode_frame_header().
#define MV_EDGE_CHECK | ( | n | ) |
Referenced by vp8_decode_mvs().
Referenced by xchg_mb_border().
#define H_LOOP_FILTER_16Y_INNER | ( | cond | ) |
Referenced by filter_mb().
#define MARGIN (16 << 2) |
Definition at line 2264 of file vp8.c.
Referenced by decode_mb_row_no_filter(), vp78_decode_frame(), vp78_decode_mb_row_sliced(), and vp78_decode_mv_mb_modes().
#define check_thread_pos | ( | td, | |
otd, | |||
mb_x_check, | |||
mb_y_check | |||
) | while(0) |
Definition at line 2344 of file vp8.c.
Referenced by decode_mb_row_no_filter(), and filter_mb_row().
#define update_pos | ( | td, | |
mb_y, | |||
mb_x | |||
) | while(0) |
Definition at line 2345 of file vp8.c.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), and vp78_decode_mb_row_sliced().
|
static |
Definition at line 50 of file vp8.c.
Referenced by update_dimensions(), and vp8_decode_flush_impl().
|
static |
Definition at line 70 of file vp8.c.
Referenced by vp78_decode_frame(), and vp7_fade_frame().
|
static |
Definition at line 95 of file vp8.c.
Referenced by vp78_decode_frame(), vp8_decode_flush_impl(), and vp8_find_free_buffer().
|
static |
Definition at line 128 of file vp8.c.
Referenced by ff_vp8_decode_free(), update_dimensions(), and vp8_decode_flush().
|
static |
|
static |
Definition at line 146 of file vp8.c.
Referenced by vp78_decode_frame(), and vp7_fade_frame().
|
static |
Definition at line 170 of file vp8.c.
Referenced by update_dimensions(), and vp78_decode_frame().
|
static |
Definition at line 187 of file vp8.c.
Referenced by vp7_update_dimensions(), and vp8_update_dimensions().
|
static |
Definition at line 248 of file vp8.c.
Referenced by vp7_decode_frame_header().
|
static |
Definition at line 253 of file vp8.c.
Referenced by vp8_decode_frame_header().
|
static |
Definition at line 259 of file vp8.c.
Referenced by vp8_decode_frame_header().
|
static |
Definition at line 281 of file vp8.c.
Referenced by vp8_decode_frame_header().
|
static |
Definition at line 305 of file vp8.c.
Referenced by vp8_decode_frame_header().
|
static |
Definition at line 337 of file vp8.c.
Referenced by vp7_decode_frame_header().
|
static |
Definition at line 356 of file vp8.c.
Referenced by vp8_decode_frame_header().
|
static |
Determine which buffers golden and altref should be updated with after this frame.
The spec isn't clear here, so I'm going by my understanding of what libvpx does
Intra frames update all 3 references Inter frames update VP56_FRAME_PREVIOUS if the update_last flag is set If the update (golden|altref) flag is set, it's updated with the current frame if update_last is set, and VP56_FRAME_PREVIOUS otherwise. If the flag is not set, the number read means: 0: no update 1: VP56_FRAME_PREVIOUS 2: update golden with altref, or update altref with golden
Definition at line 402 of file vp8.c.
Referenced by update_refs().
|
static |
Definition at line 418 of file vp8.c.
Referenced by vp7_decode_frame_header(), and vp8_decode_frame_header().
|
static |
Definition at line 427 of file vp8.c.
Referenced by vp7_decode_frame_header(), and vp8_decode_frame_header().
|
static |
Definition at line 446 of file vp8.c.
Referenced by vp7_decode_frame_header(), and vp8_decode_frame_header().
|
static |
Definition at line 466 of file vp8.c.
Referenced by vp8_decode_frame_header().
Definition at line 477 of file vp8.c.
Referenced by vp7_fade_frame().
|
static |
Definition at line 488 of file vp8.c.
Referenced by parse_time_sequence(), and vp7_fade_frame().
|
static |
Definition at line 502 of file vp8.c.
Referenced by vp7_decode_frame_header().
|
static |
Definition at line 541 of file vp8.c.
Referenced by vp78_decode_frame().
|
static |
Definition at line 697 of file vp8.c.
Referenced by vp78_decode_frame().
|
static |
Definition at line 838 of file vp8.c.
Referenced by vp8_decode_mvs().
|
static |
Motion vector coding, 17.1.
Definition at line 849 of file vp8.c.
Referenced by decode_splitmvs(), vp7_read_mv_component(), and vp8_read_mv_component().
|
static |
Definition at line 877 of file vp8.c.
Referenced by vp7_decode_mvs().
|
static |
Definition at line 882 of file vp8.c.
Referenced by vp8_decode_mvs().
|
static |
Definition at line 888 of file vp8.c.
Referenced by decode_splitmvs().
|
static |
Split motion vector prediction, 16.4.
Definition at line 905 of file vp8.c.
Referenced by vp7_decode_mvs(), and vp8_decode_mvs().
|
static |
The vp7 reference decoder uses a padding macroblock column (added to right edge of the frame) to guard against illegal macroblock offsets.
The algorithm has bugs that permit offsets to straddle the padding column. This function replicates those bugs.
[out] | edge_x | macroblock x address |
[out] | edge_y | macroblock y address |
Definition at line 987 of file vp8.c.
Referenced by vp7_decode_mvs().
|
static |
Definition at line 1000 of file vp8.c.
Referenced by vp7_decode_mvs().
|
static |
Definition at line 1006 of file vp8.c.
Referenced by decode_mb_mode().
|
static |
Definition at line 1097 of file vp8.c.
Referenced by decode_mb_mode().
|
static |
Definition at line 1197 of file vp8.c.
Referenced by decode_mb_mode().
|
static |
Definition at line 1232 of file vp8.c.
Referenced by decode_mb_row_no_filter(), and vp78_decode_mv_mb_modes().
|
static |
r | arithmetic bitstream reader context |
block | destination for block coefficients |
probs | probabilities to use when reading trees from the bitstream |
i | initial coeff index, 0 unless a separate DC block is coded |
qmul | array holding the dc/ac dequant factor at position 0/1 |
Definition at line 1324 of file vp8.c.
Referenced by vp7_decode_block_coeffs_internal(), and vp8_decode_block_coeffs_internal().
|
static |
Definition at line 1384 of file vp8.c.
Referenced by decode_mb_coeffs().
|
static |
Definition at line 1406 of file vp8.c.
Referenced by decode_block_coeffs().
|
static |
Definition at line 1418 of file vp8.c.
Referenced by decode_block_coeffs().
|
static |
c | arithmetic bitstream reader context |
block | destination for block coefficients |
probs | probabilities to use when reading trees from the bitstream |
i | initial coeff index, 0 unless a separate DC block is coded |
zero_nhood | the initial prediction context for number of surrounding all-zero blocks (only left/top, so 0-2) |
qmul | array holding the dc/ac dequant factor at position 0/1 |
scan | scan pattern (VP7 only) |
Definition at line 1443 of file vp8.c.
Referenced by decode_mb_coeffs().
|
static |
Definition at line 1458 of file vp8.c.
Referenced by decode_mb_row_no_filter().
|
static |
Definition at line 1533 of file vp8.c.
Referenced by decode_mb_row_no_filter(), and filter_mb_row().
|
static |
Definition at line 1545 of file vp8.c.
Referenced by intra_predict().
|
static |
Definition at line 1579 of file vp8.c.
Referenced by check_intra_pred8x8_mode_emuedge().
Definition at line 1588 of file vp8.c.
Referenced by check_intra_pred8x8_mode_emuedge().
|
static |
Definition at line 1597 of file vp8.c.
Referenced by intra_predict().
Definition at line 1613 of file vp8.c.
Referenced by check_intra_pred4x4_mode_emuedge().
|
static |
Definition at line 1623 of file vp8.c.
Referenced by intra_predict().
|
static |
Definition at line 1659 of file vp8.c.
Referenced by decode_mb_row_no_filter().
|
static |
luma MC function
s | VP8 decoding context |
dst | target buffer for block data at block position |
ref | reference picture buffer at origin (0, 0) |
mv | motion vector (relative to block position) to get pixel data from |
x_off | horizontal position of block from origin (0, 0) |
y_off | vertical position of block from origin (0, 0) |
block_w | width of block (16, 8 or 4) |
block_h | height of block (always same as block_w) |
width | width of src/dst plane data |
height | height of src/dst plane data |
linesize | size of a single line of plane data, including padding |
mc_func | motion compensation function pointers (bilinear or sixtap MC) |
Definition at line 1797 of file vp8.c.
Referenced by inter_predict(), and vp8_mc_part().
|
static |
chroma MC function
s | VP8 decoding context |
dst1 | target buffer for block data at block position (U plane) |
dst2 | target buffer for block data at block position (V plane) |
ref | reference picture buffer at origin (0, 0) |
mv | motion vector (relative to block position) to get pixel data from |
x_off | horizontal position of block from origin (0, 0) |
y_off | vertical position of block from origin (0, 0) |
block_w | width of block (16, 8 or 4) |
block_h | height of block (always same as block_w) |
width | width of src/dst plane data |
height | height of src/dst plane data |
linesize | size of a single line of plane data, including padding |
mc_func | motion compensation function pointers (bilinear or sixtap MC) |
Definition at line 1855 of file vp8.c.
Referenced by inter_predict(), and vp8_mc_part().
|
static |
Definition at line 1905 of file vp8.c.
Referenced by inter_predict().
|
static |
Definition at line 1943 of file vp8.c.
Referenced by decode_mb_row_no_filter().
|
static |
Apply motion vectors to prediction buffer, chapter 18.
Definition at line 1966 of file vp8.c.
Referenced by decode_mb_row_no_filter().
|
static |
Definition at line 2050 of file vp8.c.
Referenced by decode_mb_row_no_filter().
|
static |
Definition at line 2112 of file vp8.c.
Referenced by decode_mb_row_no_filter().
|
static |
Definition at line 2145 of file vp8.c.
Referenced by filter_mb_row().
|
static |
Definition at line 2232 of file vp8.c.
Referenced by filter_mb_row().
|
static |
Definition at line 2266 of file vp8.c.
Referenced by vp7_decode_mv_mb_modes(), and vp8_decode_mv_mb_modes().
|
static |
Definition at line 2298 of file vp8.c.
Referenced by vp78_decode_frame().
|
static |
Definition at line 2304 of file vp8.c.
Referenced by vp78_decode_frame().
|
static |
Definition at line 2348 of file vp8.c.
Referenced by vp7_decode_mb_row_no_filter(), and vp8_decode_mb_row_no_filter().
|
static |
Definition at line 2476 of file vp8.c.
Referenced by vp78_decode_init().
|
static |
Definition at line 2482 of file vp8.c.
Referenced by vp78_decode_init().
|
static |
Definition at line 2488 of file vp8.c.
Referenced by vp7_filter_mb_row(), and vp8_filter_mb_row().
|
static |
Definition at line 2547 of file vp8.c.
Referenced by vp78_decode_init().
|
static |
Definition at line 2553 of file vp8.c.
Referenced by vp78_decode_init().
|
static |
Definition at line 2560 of file vp8.c.
Referenced by vp7_decode_mb_row_sliced(), and vp8_decode_mb_row_sliced().
|
static |
Definition at line 2594 of file vp8.c.
Referenced by vp78_decode_frame().
|
static |
Definition at line 2600 of file vp8.c.
Referenced by vp78_decode_frame().
|
static |
Definition at line 2607 of file vp8.c.
Referenced by ff_vp8_decode_frame().
int ff_vp8_decode_frame | ( | AVCodecContext * | avctx, |
void * | data, | ||
int * | got_frame, | ||
AVPacket * | avpkt | ||
) |
Definition at line 2790 of file vp8.c.
Referenced by vp8_lossy_decode_frame().
av_cold int ff_vp8_decode_free | ( | AVCodecContext * | avctx | ) |
Definition at line 2804 of file vp8.c.
Referenced by vp78_decode_init(), and webp_decode_close().
|
static |
Definition at line 2819 of file vp8.c.
Referenced by vp78_decode_init().
|
static |
Definition at line 2831 of file vp8.c.
Referenced by ff_vp8_decode_init().
av_cold int ff_vp8_decode_init | ( | AVCodecContext * | avctx | ) |
Definition at line 2875 of file vp8.c.
Referenced by vp8_lossy_decode_frame().