|
FFmpeg
|
H.264 / AVC / MPEG-4 part10 codec. More...
#include "config_components.h"#include "libavutil/avassert.h"#include "libavutil/mem.h"#include "libavutil/pixdesc.h"#include "libavutil/timecode.h"#include "decode.h"#include "cabac.h"#include "cabac_functions.h"#include "error_resilience.h"#include "avcodec.h"#include "h264.h"#include "h264dec.h"#include "h264data.h"#include "h264chroma.h"#include "h264_ps.h"#include "golomb.h"#include "mathops.h"#include "mpegutils.h"#include "rectangle.h"#include "libavutil/refstruct.h"#include "thread.h"#include "threadframe.h"Go to the source code of this file.
Macros | |
| #define | IN_RANGE(a, b, size) |
| #define | REBASE_PICTURE(pic, new_ctx, old_ctx) |
| #define | TRANSPOSE(x) |
| #define | TRANSPOSE(x) |
| #define | HWACCEL_MAX |
Functions | |
| static void | release_unused_pictures (H264Context *h, int remove_current) |
| static int | alloc_scratch_buffers (H264SliceContext *sl, int linesize) |
| static int | init_table_pools (H264Context *h) |
| static int | alloc_picture (H264Context *h, H264Picture *pic) |
| static int | find_unused_picture (const H264Context *h) |
| static void | copy_picture_range (H264Picture **to, H264Picture *const *from, int count, H264Context *new_base, const H264Context *old_base) |
| static void | color_frame (AVFrame *frame, const int c[4]) |
| static int | h264_slice_header_init (H264Context *h) |
| int | ff_h264_update_thread_context (AVCodecContext *dst, const AVCodecContext *src) |
| int | ff_h264_update_thread_context_for_user (AVCodecContext *dst, const AVCodecContext *src) |
| static int | h264_frame_start (H264Context *h) |
| static av_always_inline void | backup_mb_border (const H264Context *h, H264SliceContext *sl, const uint8_t *src_y, const uint8_t *src_cb, const uint8_t *src_cr, int linesize, int uvlinesize, int simple) |
| static void | implicit_weight_table (const H264Context *h, H264SliceContext *sl, int field) |
| Initialize implicit_weight table. | |
| static void | init_scan_tables (H264Context *h) |
| initialize scan tables | |
| static enum AVPixelFormat | get_pixel_format (H264Context *h, int force_callback, int data_partitioning) |
| static void | init_dimensions (H264Context *h) |
| static enum AVPixelFormat | non_j_pixfmt (enum AVPixelFormat a) |
| static int | h264_init_ps (H264Context *h, const H264SliceContext *sl, int first_slice) |
| static int | h264_export_frame_props (H264Context *h) |
| static int | h264_select_output_frame (H264Context *h) |
| static int | h264_field_start (H264Context *h, const H264SliceContext *sl, const H2645NAL *nal, int first_slice) |
| static int | h264_slice_header_parse (const H264Context *h, H264SliceContext *sl, const H2645NAL *nal) |
| static int | h264_slice_init (H264Context *h, H264SliceContext *sl, const H2645NAL *nal) |
| static int | h264_parse_slice_id (const H264Context *h, H264SliceContext *sl) |
| int | ff_h264_attach_slice_partition (const H264Context *h, H264SliceContext *sl, const H2645NAL *nal) |
| Attach a slice data partition B or C to the slice started by partition A. | |
| int | ff_h264_queue_decode_slice (H264Context *h, const H2645NAL *nal, H264SliceContext **queued) |
| Submit a slice for decoding. | |
| int | ff_h264_get_slice_type (const H264SliceContext *sl) |
| Reconstruct bitstream slice_type. | |
| static av_always_inline void | fill_filter_caches_inter (const H264Context *h, H264SliceContext *sl, int mb_type, int top_xy, const int left_xy[LEFT_MBS], int top_type, const int left_type[LEFT_MBS], int mb_xy, int list) |
| static int | fill_filter_caches (const H264Context *h, H264SliceContext *sl, int mb_type) |
| static void | loop_filter (const H264Context *h, H264SliceContext *sl, int start_x, int end_x) |
| static void | predict_field_decoding_flag (const H264Context *h, H264SliceContext *sl) |
| static void | decode_finish_row (const H264Context *h, H264SliceContext *sl) |
| Draw edges and report progress for the last MB row. | |
| static void | er_add_slice (H264SliceContext *sl, int startx, int starty, int endx, int endy, int status) |
| static int | decode_slice (struct AVCodecContext *avctx, void *arg) |
| int | ff_h264_execute_decode_slices (H264Context *h) |
| Call decode_slice() for each context. | |
Variables | |
| static const uint8_t | field_scan [16+1] |
| static const uint8_t | field_scan8x8 [64+1] |
| static const uint8_t | field_scan8x8_cavlc [64+1] |
| static const uint8_t | zigzag_scan8x8_cavlc [64+1] |
H.264 / AVC / MPEG-4 part10 codec.
Definition in file h264_slice.c.
| #define REBASE_PICTURE | ( | pic, | |
| new_ctx, | |||
| old_ctx ) |
Definition at line 289 of file h264_slice.c.
Referenced by copy_picture_range(), and ff_h264_update_thread_context().
| #define TRANSPOSE | ( | x | ) |
Referenced by init_scan_tables().
| #define TRANSPOSE | ( | x | ) |
| #define HWACCEL_MAX |
|
static |
Definition at line 117 of file h264_slice.c.
Referenced by h264_field_start(), and h264_frame_start().
|
static |
Definition at line 130 of file h264_slice.c.
Referenced by decode_slice().
|
static |
Definition at line 162 of file h264_slice.c.
Referenced by alloc_picture().
|
static |
Definition at line 188 of file h264_slice.c.
Referenced by h264_frame_start().
|
static |
Definition at line 275 of file h264_slice.c.
Referenced by h264_frame_start().
|
static |
Definition at line 294 of file h264_slice.c.
Referenced by ff_h264_update_thread_context().
|
static |
Definition at line 307 of file h264_slice.c.
Referenced by h264_field_start().
|
static |
Definition at line 981 of file h264_slice.c.
Referenced by ff_h264_update_thread_context(), and h264_init_ps().
| int ff_h264_update_thread_context | ( | AVCodecContext * | dst, |
| const AVCodecContext * | src ) |
Definition at line 339 of file h264_slice.c.
| int ff_h264_update_thread_context_for_user | ( | AVCodecContext * | dst, |
| const AVCodecContext * | src ) |
Definition at line 472 of file h264_slice.c.
|
static |
Definition at line 484 of file h264_slice.c.
Referenced by h264_field_start().
|
static |
Definition at line 589 of file h264_slice.c.
Referenced by loop_filter().
|
static |
Initialize implicit_weight table.
| field | 0/1 initialize the weight for interlaced MBAFF -1 initializes the rest |
Definition at line 691 of file h264_slice.c.
Referenced by h264_slice_init().
|
static |
initialize scan tables
Definition at line 755 of file h264_slice.c.
Referenced by h264_slice_header_init().
|
static |
Definition at line 789 of file h264_slice.c.
Referenced by h264_init_ps().
|
static |
Definition at line 941 of file h264_slice.c.
Referenced by h264_init_ps().
|
static |
Definition at line 1063 of file h264_slice.c.
Referenced by h264_init_ps().
|
static |
Definition at line 1074 of file h264_slice.c.
Referenced by h264_field_start().
|
static |
Definition at line 1189 of file h264_slice.c.
Referenced by h264_field_start().
|
static |
Definition at line 1313 of file h264_slice.c.
Referenced by h264_field_start().
|
static |
Definition at line 1415 of file h264_slice.c.
Referenced by ff_h264_queue_decode_slice().
|
static |
Definition at line 1718 of file h264_slice.c.
Referenced by ff_h264_queue_decode_slice().
|
static |
Definition at line 1937 of file h264_slice.c.
Referenced by ff_h264_queue_decode_slice().
|
static |
Definition at line 2092 of file h264_slice.c.
Referenced by ff_h264_queue_decode_slice().
| int ff_h264_attach_slice_partition | ( | const H264Context * | h, |
| H264SliceContext * | sl, | ||
| const H2645NAL * | nal ) |
Attach a slice data partition B or C to the slice started by partition A.
Definition at line 2117 of file h264_slice.c.
Referenced by h264_attach_partitions().
| int ff_h264_queue_decode_slice | ( | H264Context * | h, |
| const H2645NAL * | nal, | ||
| H264SliceContext ** | queued ) |
Submit a slice for decoding.
Parse the slice header, starting a new field/frame if necessary. If any slices are queued for the previous field, they are decoded.
| queued | set to the queued context, or NULL if the slice was discarded |
Definition at line 2158 of file h264_slice.c.
Referenced by decode_nal_units().
| int ff_h264_get_slice_type | ( | const H264SliceContext * | sl | ) |
Reconstruct bitstream slice_type.
Definition at line 2296 of file h264_slice.c.
Referenced by fill_slice_long(), and vaapi_h264_decode_slice().
|
static |
Definition at line 2314 of file h264_slice.c.
Referenced by fill_filter_caches().
|
static |
Definition at line 2398 of file h264_slice.c.
Referenced by loop_filter().
|
static |
Definition at line 2540 of file h264_slice.c.
Referenced by decode_slice(), ff_h264_execute_decode_slices(), init_pic_params(), vp3_check_loop_filter(), and xmv_read_extradata().
|
static |
Definition at line 2610 of file h264_slice.c.
Referenced by decode_slice().
|
static |
Draw edges and report progress for the last MB row.
Definition at line 2623 of file h264_slice.c.
Referenced by decode_slice().
|
static |
Definition at line 2654 of file h264_slice.c.
Referenced by decode_slice().
|
static |
Definition at line 2666 of file h264_slice.c.
Referenced by ff_h264_execute_decode_slices().
| int ff_h264_execute_decode_slices | ( | H264Context * | h | ) |
Call decode_slice() for each context.
| h | h264 master context |
Definition at line 2878 of file h264_slice.c.
Referenced by decode_nal_units(), and ff_h264_queue_decode_slice().
|
static |
Definition at line 52 of file h264_slice.c.
Referenced by init_scan_tables().
|
static |
Definition at line 59 of file h264_slice.c.
Referenced by init_scan_tables().
|
static |
Definition at line 78 of file h264_slice.c.
Referenced by init_scan_tables().
|
static |
Definition at line 98 of file h264_slice.c.
Referenced by init_scan_tables().