28 #define UNCHECKED_BITSTREAM_READER 1
68 int mb_x,
int mb_y,
int mb_intra,
int mb_skipped)
126 offset[2] = (y >> vshift) * src->
linesize[1];
195 big_mb_num *
sizeof(uint16_t),
fail)
215 big_mb_num *
sizeof(uint32_t),
fail);
217 big_mb_num *
sizeof(uint32_t),
fail);
221 const int b_xy = 4 * x + 4 * y * h->
b_stride;
244 int yc_size = y_size + 2 * c_size;
255 memset(er, 0,
sizeof(*er));
257 if (CONFIG_ERROR_RESILIENCE) {
289 yc_size *
sizeof(int16_t),
fail);
293 for (i = 0; i < yc_size; i++)
442 "Error resilience with slice threads is enabled. It is unsafe and unsupported and may crash. "
443 "Use it at your own risk\n");
458 memset(h, 0,
sizeof(*h));
483 int i, pics, out_of_order, out_idx;
659 for (i = 0; 1; i++) {
671 out_of_order =
FFMAX(out_of_order, 1);
837 first_slice != nal->
type)
840 first_slice = nal->
type;
878 unsigned context_count = 0;
894 if (buf_size > 8 &&
AV_RB32(buf) == 1 &&
AV_RB32(buf+5) > (
unsigned)buf_size) {
896 }
else if(buf_size > 3 &&
AV_RB32(buf) > 1 &&
AV_RB32(buf) <= (
unsigned)buf_size)
904 "Error splitting the input into NAL units.\n");
930 if ((nal->
data[1] & 0xFC) == 0x98) {
938 "Invalid mix of idr and non-idr slices\n");
944 av_log(h,
AV_LOG_ERROR,
"invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n");
954 if ( nals_needed >= i
1000 #if FF_API_CAP_VDPAU
1001 if (CONFIG_H264_VDPAU_DECODER &&
1014 #if FF_API_CAP_VDPAU
1015 }
else if (CONFIG_H264_VDPAU_DECODER &&
1019 sizeof(start_code));
1051 "SPS decoding failure, trying again with the complete NAL\n");
1090 if (context_count > 0) {
1101 if (context_count) {
1110 #if CONFIG_ERROR_RESILIENCE
1159 return (ret < 0) ? ret : buf_size;
1169 if (pos + 10 > buf_size)
1204 dst->
data[i] += off;
1211 int cnt= buf[5]&0x1f;
1215 if(nalsize > buf_size - (p-buf) || (p[2] & 0x9F) != 7)
1224 if(nalsize > buf_size - (p-buf) || (p[2] & 0x9F) != 8)
1235 int buf_size = avpkt->
size;
1262 if (buf_size == 0) {
1302 if(h->
is_avc && buf_size >= 9 && buf[0]==1 && buf[2]==0 && (buf[4]&0xFC)==0xFC && (buf[5]&0x1F) && buf[8]==0x67){
1320 buf_size >= 4 && !memcmp(
"Q264", buf, 4))
1355 for (p = 0; p<4; p++) {
1369 if (CONFIG_MPEGVIDEO) {
1387 #define OFFSET(x) offsetof(H264Context, x)
1388 #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM
1392 {
"enable_er",
"Enable error resilience on damaged frames (unsafe)",
OFFSET(enable_er),
AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1,
VD },
1423 #if CONFIG_H264_VDPAU_DECODER && FF_API_VDPAU
1424 static const AVClass h264_vdpau_class = {
1431 AVCodec ff_h264_vdpau_decoder = {
1432 .
name =
"h264_vdpau",
1433 .long_name =
NULL_IF_CONFIG_SMALL(
"H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)"),
1445 .priv_class = &h264_vdpau_class,
struct H264Context * h264
void ff_h264_unref_picture(H264Context *h, H264Picture *pic)
const struct AVCodec * codec
void ff_h264_flush_change(H264Context *h)
int(* start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size)
Called at the beginning of each frame or field picture.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int sei_recovery_frame_cnt
#define AV_NUM_DATA_POINTERS
#define SLICE_FLAG_ALLOW_FIELD
allow draw_horiz_band() with field slices (MPEG-2 field pics)
enum AVPixelFormat backup_pix_fmt
int ff_h264_execute_decode_slices(H264Context *h, unsigned context_count)
Call decode_slice() for each context.
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
MPEG-2/4 4:2:0, H.264 default for 4:2:0.
This structure describes decoded (raw) audio or video data.
#define FF_ALLOCZ_ARRAY_OR_GOTO(ctx, p, nelem, elsize, label)
static int get_last_needed_nal(H264Context *h)
int recovery_frame_cnt
recovery_frame_cnt
int16_t mv_cache[2][5 *8][2]
Motion vector cache.
static const AVClass h264_class
ptrdiff_t const GLvoid * data
static void flush(AVCodecContext *avctx)
int edge_emu_buffer_allocated
#define H264_MAX_PICTURE_COUNT
#define AV_LOG_WARNING
Something somehow does not look correct.
static int init_thread_copy(AVCodecContext *avctx)
#define LIBAVUTIL_VERSION_INT
AVBufferRef * sps_list[MAX_SPS_COUNT]
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame.
static av_cold int init(AVCodecContext *avctx)
av_cold int ff_h264_decode_init(AVCodecContext *avctx)
int frame_packing_arrangement_cancel_flag
is previous arrangement canceled, -1 if never received
void ff_er_frame_end(ERContext *s)
int bitstream_restriction_flag
int repeat_pict
When decoding, this signals how much the picture must be delayed.
int bipred_scratchpad_allocated
#define DELAYED_PIC_REF
Value of Picture.reference when Picture is not a reference picture, but is held for delayed output...
AVBufferPool * mb_type_pool
int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length, void *logctx, int is_nalff, int nal_length_size, enum AVCodecID codec_id)
Split an input packet into NAL units.
void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl, int y, int height)
int16_t(*[2] motion_val)[2]
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
H264Picture * delayed_pic[MAX_DELAYED_PIC_COUNT+2]
int is_avc
Used to parse AVC variant of H.264.
3: top field, bottom field, in that order
AVBufferPool * ref_index_pool
void ff_h264_free_tables(H264Context *h)
void ff_h264_sei_uninit(H264SEIContext *h)
Reset SEI values at the beginning of the frame.
H264SEIDisplayOrientation display_orientation
void ff_h264_decode_init_vlc(void)
#define AV_CODEC_FLAG2_CHUNKS
Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries...
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_RB16
#define FRAME_RECOVERED_IDR
We have seen an IDR, so all the following frames in coded order are correctly decodable.
Views are next to each other.
static void debug_green_metadata(const H264SEIGreenMetaData *gm, void *logctx)
uint8_t log2_chroma_w
Amount to shift the luma width right to find the chroma width.
unsigned current_sps_id
id of the current SPS
unsigned int ref_count[2]
num_ref_idx_l0/1_active_minus1 + 1
int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx)
int size_bits
Size, in bits, of just the data, excluding the stop bit and any trailing padding. ...
H264SEIGreenMetaData green_metadata
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
uint8_t * chroma_pred_mode_table
enum AVDiscard skip_frame
Skip decoding for selected frames.
const char * ff_h264_sei_stereo_mode(const H264SEIFramePacking *h)
Get stereo_mode string from the h264 frame_packing_arrangement.
BYTE int const BYTE * srcp
struct AVHWAccel * hwaccel
Hardware accelerator in use.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define av_assert0(cond)
assert() equivalent, that is always enabled.
void void avpriv_request_sample(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
#define FF_CODEC_CAP_INIT_THREADSAFE
The codec does not modify any global variables in the init function, allowing to call the init functi...
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values.
Stereo 3D type: this structure describes how two videos are packed within a single video surface...
static int h264_init_context(AVCodecContext *avctx, H264Context *h)
static av_cold int end(AVCodecContext *avctx)
Multithreading support functions.
int av_frame_ref(AVFrame *dst, const AVFrame *src)
Set up a new reference to the data described by the source frame.
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_RB32
uint8_t(*[2] top_borders)[(16 *3)*2]
void ff_h2645_packet_uninit(H2645Packet *pkt)
Free all the allocated memory in the packet.
int frame_recovered
Initial frame has been completely recovered.
Structure to hold side data for an AVFrame.
int ff_h264_decode_extradata(const uint8_t *data, int size, H264ParamSets *ps, int *is_avc, int *nal_length_size, int err_recognition, void *logctx)
#define PICT_BOTTOM_FIELD
#define AV_CODEC_CAP_HWACCEL_VDPAU
Codec can export data for HW decoding (VDPAU).
#define AV_LOG_VERBOSE
Detailed information.
AVDictionary * metadata
metadata.
int interlaced_frame
The content of the picture is interlaced.
#define MAX_DELAYED_PIC_COUNT
static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size)
static void fill_rectangle(SDL_Surface *screen, int x, int y, int w, int h, int color, int update)
void ff_thread_finish_setup(AVCodecContext *avctx)
If the codec defines update_thread_context(), call this when they are ready for the next thread to st...
high precision timer, useful to profile code
Views are alternated temporally.
int recovered
picture at IDR or recovery point + recovery count
Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVAc...
enum AVChromaLocation chroma_sample_location
This defines the location of chroma samples.
int last_pocs[MAX_DELAYED_PIC_COUNT]
SEI_FpaType frame_packing_arrangement_type
H.264 / AVC / MPEG-4 part10 codec.
void ff_h264_hl_decode_mb(const H264Context *h, H264SliceContext *sl)
H264Picture DPB[H264_MAX_PICTURE_COUNT]
int width
width and height of the video frame
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int has_b_frames
Size of the frame reordering buffer in the decoder.
int flags
Additional information about the frame packing.
uint8_t log2_chroma_h
Amount to shift the luma height right to find the chroma height.
static int get_consumed_bytes(int pos, int buf_size)
Return the number of bytes consumed for building the current frame.
int is_copy
Whether the parent AVCodecContext is a copy of the context which had init() called on it...
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
int active_thread_type
Which multithreading methods are in use by the codec.
int backup_width
Backup frame properties: needed, because they can be different between returned frame and last decode...
static void flush_dpb(AVCodecContext *avctx)
int capabilities
Codec capabilities.
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
ATSC A53 Part 4 Closed Captions.
static const AVOption h264_options[]
void(* decode_mb)(void *opaque, int ref, int mv_dir, int mv_type, int(*mv)[2][4][2], int mb_x, int mb_y, int mb_intra, int mb_skipped)
uint8_t(*[2] mvd_table)[2]
int prev_interlaced_frame
Complement sei_pic_struct SEI_PIC_STRUCT_TOP_BOTTOM and SEI_PIC_STRUCT_BOTTOM_TOP indicate interlaced...
int flags
AV_CODEC_FLAG_*.
simple assert() macros that are a bit more flexible than ISO C assert().
const char * name
Name of the codec implementation.
H264SEIUnregistered unregistered
static AVOnce h264_vlc_init
static av_always_inline uint32_t pack16to32(unsigned a, unsigned b)
int valid_recovery_point
Are the SEI recovery points looking valid.
static const uint8_t offset[127][2]
uint8_t * list_counts
Array of list_count per MB specifying the slice type.
uint8_t active_format_description
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4], const uint8_t *src_data[4], const int src_linesizes[4], enum AVPixelFormat pix_fmt, int width, int height)
Copy image in src_data to dst_data.
#define FIELD_OR_MBAFF_PICTURE(h)
int slice_type_nos
S free slice type (SI/SP are remapped to I/P)
int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
Decode a slice header.
static const uint8_t scan8[16 *3+3]
#define ONLY_IF_THREADS_ENABLED(x)
Define a function with only the non-default version specified.
uint8_t * error_status_table
int nal_length_size
Number of bytes used for nal length (1, 2 or 4)
useful rectangle filling function
int prev_poc_msb
poc_msb of the last reference pic for POC type 0
void ff_vdpau_h264_picture_start(H264Context *h)
uint8_t nb_components
The number of components each pixel has, (1-4)
static void h264_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type, int(*mv)[2][4][2], int mb_x, int mb_y, int mb_intra, int mb_skipped)
Views are packed per line, as if interlaced.
void(* draw_horiz_band)(struct AVCodecContext *s, const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], int y, int type, int height)
If non NULL, 'draw_horiz_band' is called by the libavcodec decoder to draw a horizontal band...
enum AVPictureType pict_type
Picture type of the frame.
int flags
Frame flags, a combination of AV_FRAME_FLAGS.
int err_recognition
Error recognition; may misdetect some more or less valid parts as errors.
#define av_assert1(cond)
assert() equivalent, that does not lie in speed critical code.
#define FF_THREAD_FRAME
Decode more than one frame at once.
int ct_type
Bit set of clock types for fields/frames in picture timing SEI message.
uint16_t * slice_table
slice_table_base + 2*mb_stride + 1
int width
picture width / height.
#define AV_FRAME_FLAG_CORRUPT
The frame data may be corrupted, e.g.
void ff_thread_report_progress(ThreadFrame *f, int n, int field)
Notify later decoding threads when part of their reference picture is ready.
#define FF_THREAD_SLICE
Decode more than one part of a single frame at once.
Context Adaptive Binary Arithmetic Coder inline functions.
H264SliceContext * slice_ctx
#define AV_EF_EXPLODE
abort decoding on minor error detection
static int h264_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
int ticks_per_frame
For some codecs, the time base is closer to the field rate than the frame rate.
int top_borders_allocated[2]
int ref_idc
H.264 only, nal_ref_idc.
static int output_frame(H264Context *h, AVFrame *dst, H264Picture *srcp)
int quincunx_sampling_flag
#define AV_STEREO3D_FLAG_INVERT
Inverted views, Right/Bottom represents the left view.
void av_display_rotation_set(int32_t matrix[9], double angle)
Initialize a transformation matrix describing a pure counterclockwise rotation by the specified angle...
#define PART_NOT_AVAILABLE
int thread_count
thread count is used to decide how many independent tasks should be passed to execute() ...
uint8_t * edge_emu_buffer
Views are packed per column.
static unsigned get_ue_golomb_long(GetBitContext *gb)
Read an unsigned Exp-Golomb code in the range 0 to UINT32_MAX-1.
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
static const int8_t mv[256][2]
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames...
enum AVStereo3DType type
How views are packed within the video.
int ff_h264_slice_context_init(H264Context *h, H264SliceContext *sl)
Init context Allocate buffers which are not shared amongst multiple threads.
#define AV_LOG_INFO
Standard information.
Libavcodec external API header.
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
void ff_h264_remove_all_refs(H264Context *h)
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
static int init_get_bits8(GetBitContext *s, const uint8_t *buffer, int byte_size)
Initialize GetBitContext.
Views are next to each other, but when upscaling apply a checkerboard pattern.
int field_poc[2]
top/bottom POC
SEI_PicStructType pic_struct
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
int max_contexts
Max number of threads / contexts.
int recovery_frame
recovery_frame is the frame_num at which the next frame should be fully constructed.
main external API structure.
void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip)
Flip the input matrix horizontally and/or vertically.
uint8_t * data
The data buffer.
static void decode_postinit(H264Context *h, int setup_finished)
Run setup operations that must be run after slice header decoding.
int ff_h264_alloc_tables(H264Context *h)
Allocate tables.
H264SEIA53Caption a53_caption
void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_table, uint32_t *mbtype_table, int8_t *qscale_table, int16_t(*motion_val[2])[2], int *low_delay, int mb_width, int mb_height, int mb_stride, int quarter_sample)
Print debugging info for the given picture.
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstre...
int ff_h264_update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
int slice_flags
slice flags
Describe the class of an AVClass context structure.
int prev_frame_num
frame_num of the last pic for POC type 1/2
#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS
AVFrameSideData * av_frame_new_side_data(AVFrame *frame, enum AVFrameSideDataType type, int size)
Add a new side data to a frame.
uint8_t non_zero_count_cache[15 *8]
non zero coeff count cache.
5: top field, bottom field, top field repeated, in that order
static int h264_decode_end(AVCodecContext *avctx)
void av_buffer_pool_uninit(AVBufferPool **ppool)
Mark the pool as being available for freeing.
int pixel_shift
0 for 8-bit H.264, 1 for high-bit-depth H.264
int mmco_reset
MMCO_RESET set this 1.
int content_interpretation_type
H264Picture * cur_pic_ptr
int mb_mbaff
mb_aff_frame && mb_field_decoding_flag
#define FF_DEBUG_GREEN_MD
#define FF_COMPLIANCE_STRICT
Strictly conform to all the things in the spec no matter what consequences.
attribute_deprecated int dtg_active_format
DTG active format information (additional aspect ratio information only used in DVB MPEG-2 transport ...
H264SEIPictureTiming picture_timing
int allocate_progress
Whether to allocate progress for frame threading.
H264SEIRecoveryPoint recovery_point
static int is_extra(const uint8_t *buf, int buf_size)
static enum AVPixelFormat pix_fmts[]
static const uint8_t start_code[]
int pic_struct_present_flag
AVStereo3D * av_stereo3d_create_side_data(AVFrame *frame)
Allocate a complete AVFrameSideData and add it to the frame.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
int prev_poc_lsb
poc_lsb of the last reference pic for POC type 0
int ff_h264_decode_picture_parameter_set(GetBitContext *gb, AVCodecContext *avctx, H264ParamSets *ps, int bit_length)
Decode PPS.
static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avpkt)
static void idr(H264Context *h)
instantaneous decoder refresh.
discard all non reference
int anticlockwise_rotation
AVBufferPool * qscale_table_pool
H264Picture * next_output_pic
AVBufferPool * motion_val_pool
#define SLICE_SINGLETHREAD
#define FF_DISABLE_DEPRECATION_WARNINGS
common internal api header.
static int ref[MAX_W *MAX_W]
#define FRAME_RECOVERED_SEI
Sufficient number of frames have been decoded since a SEI recovery point, so all the following frames...
Video is not stereoscopic (and metadata has to be there).
#define FF_ALLOC_OR_GOTO(ctx, p, size, label)
uint16_t * slice_table_base
int log2_max_frame_num
log2_max_frame_num_minus4 + 4
Views are packed in a checkerboard-like structure per pixel.
H264SEIFramePacking frame_packing
H.264 / AVC / MPEG-4 part10 motion vector prediction.
int workaround_bugs
Work around bugs in encoders which sometimes cannot be detected automatically.
const AVProfile ff_h264_profiles[]
int cur_chroma_format_idc
int8_t * intra4x4_pred_mode
#define AVERROR_UNKNOWN
Unknown error, typically from an external library.
int ff_h264_decode_seq_parameter_set(GetBitContext *gb, AVCodecContext *avctx, H264ParamSets *ps, int ignore_truncation)
Decode SPS.
int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup)
4: bottom field, top field, in that order
void ff_h264_set_erpic(ERPicture *dst, H264Picture *src)
int8_t ref_cache[2][5 *8]
#define AV_CODEC_FLAG_OUTPUT_CORRUPT
Output even those frames that might be corrupted.
#define FF_ENABLE_DEPRECATION_WARNINGS
int top_field_first
If the content is interlaced, is top field displayed first.
const uint16_t ff_h264_mb_sizes[4]
struct AVCodecInternal * internal
Private context used for internal data.
static int ff_thread_once(char *control, void(*routine)(void))
Views are on top of each other.
int key_frame
1 -> keyframe, 0-> not
int current_slice
current slice number, used to initialize slice_num of each thread/context
int flags2
AV_CODEC_FLAG2_*.
H264Ref ref_list[2][48]
0..15: frame refs, 16..47: mbaff field refs.
H264Picture last_pic_for_ec
int au_pps_id
pps_id of current access unit
static void * av_mallocz_array(size_t nmemb, size_t size)
#define AV_CODEC_FLAG2_SHOW_ALL
Show all frames before the first keyframe.
uint8_t(*[2] mvd_table)[2]
void ff_h264_ps_uninit(H264ParamSets *ps)
Uninit H264 param sets structure.
int ff_h264_sei_decode(H264SEIContext *h, GetBitContext *gb, const H264ParamSets *ps, void *logctx)
uint8_t * av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type, int *size)
Get side information from packet.
int prev_frame_num_offset
for POC type 2
void ff_vdpau_add_data_chunk(uint8_t *data, const uint8_t *buf, int buf_size)
int8_t * intra4x4_pred_mode
int(* decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size)
Callback for each slice.
int mb_field_decoding_flag
uint8_t(* non_zero_count)[48]
uint8_t * bipred_scratchpad
AVPixelFormat
Pixel format.
This structure stores compressed data.
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
int strict_std_compliance
strictly follow the standard (MPEG-4, ...).
#define FF_ALLOCZ_OR_GOTO(ctx, p, size, label)
6: bottom field, top field, bottom field repeated, in that order
Context Adaptive Binary Arithmetic Coder.