FFmpeg
Data Structures | Macros | Functions | Variables
mpeg12dec.c File Reference
#include "config_components.h"
#include <inttypes.h>
#include "libavutil/attributes.h"
#include "libavutil/emms.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/mem_internal.h"
#include "libavutil/reverse.h"
#include "libavutil/stereo3d.h"
#include "libavutil/timecode.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "decode.h"
#include "error_resilience.h"
#include "hwaccel_internal.h"
#include "hwconfig.h"
#include "idctdsp.h"
#include "internal.h"
#include "mpeg_er.h"
#include "mpeg12.h"
#include "mpeg12codecs.h"
#include "mpeg12data.h"
#include "mpeg12dec.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "mpegvideodata.h"
#include "mpegvideodec.h"
#include "profiles.h"
#include "startcode.h"
#include "thread.h"

Go to the source code of this file.

Data Structures

struct  Mpeg1Context
 
struct  IPUContext
 

Macros

#define UNCHECKED_BITSTREAM_READER   1
 
#define A53_MAX_CC_COUNT   2000
 
#define MB_TYPE_ZERO_MV   0x20000000
 
#define MAX_INDEX   (64 - 1)
 
#define check_scantable_index(ctx, x)
 
#define MT_FIELD   1
 
#define MT_FRAME   2
 
#define MT_16X8   2
 
#define MT_DMV   3
 
#define DECODE_SLICE_ERROR   -1
 
#define DECODE_SLICE_OK   0
 

Functions

static int mpeg_decode_motion (MpegEncContext *s, int fcode, int pred)
 
static int mpeg1_decode_block_inter (MpegEncContext *s, int16_t *block, int n)
 
static int mpeg1_fast_decode_block_inter (MpegEncContext *s, int16_t *block, int n)
 Changing this would eat up any speed benefits it has. More...
 
static int mpeg2_decode_block_non_intra (MpegEncContext *s, int16_t *block, int n)
 
static int mpeg2_fast_decode_block_non_intra (MpegEncContext *s, int16_t *block, int n)
 Changing this would eat up any speed benefits it has. More...
 
static int mpeg2_decode_block_intra (MpegEncContext *s, int16_t *block, int n)
 
static int mpeg2_fast_decode_block_intra (MpegEncContext *s, int16_t *block, int n)
 Changing this would eat up any speed benefits it has. More...
 
static int get_dmv (MpegEncContext *s)
 
static int mpeg_decode_mb (MpegEncContext *s, int16_t block[12][64])
 
static av_cold int mpeg_decode_init (AVCodecContext *avctx)
 
static enum AVPixelFormat mpeg_get_pixelformat (AVCodecContext *avctx)
 
static int mpeg_decode_postinit (AVCodecContext *avctx)
 
static int mpeg1_decode_picture (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static void mpeg_decode_sequence_extension (Mpeg1Context *s1)
 
static void mpeg_decode_sequence_display_extension (Mpeg1Context *s1)
 
static void mpeg_decode_picture_display_extension (Mpeg1Context *s1)
 
static int load_matrix (MpegEncContext *s, uint16_t matrix0[64], uint16_t matrix1[64], int intra)
 
static void mpeg_decode_quant_matrix_extension (MpegEncContext *s)
 
static int mpeg_decode_picture_coding_extension (Mpeg1Context *s1)
 
static int mpeg_field_start (MpegEncContext *s, const uint8_t *buf, int buf_size)
 
static int mpeg_decode_slice (MpegEncContext *s, int mb_y, const uint8_t **buf, int buf_size)
 Decode a slice. More...
 
static int slice_decode_thread (AVCodecContext *c, void *arg)
 
static int slice_end (AVCodecContext *avctx, AVFrame *pict)
 Handle slice ends. More...
 
static int mpeg1_decode_sequence (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static int vcr2_init_sequence (AVCodecContext *avctx)
 
static int mpeg_decode_a53_cc (AVCodecContext *avctx, const uint8_t *p, int buf_size)
 
static void mpeg_decode_user_data (AVCodecContext *avctx, const uint8_t *p, int buf_size)
 
static int mpeg_decode_gop (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static int decode_chunks (AVCodecContext *avctx, AVFrame *picture, int *got_output, const uint8_t *buf, int buf_size)
 
static int mpeg_decode_frame (AVCodecContext *avctx, AVFrame *picture, int *got_output, AVPacket *avpkt)
 
static void flush (AVCodecContext *avctx)
 
static av_cold int mpeg_decode_end (AVCodecContext *avctx)
 
static int ipu_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt)
 
static av_cold int ipu_decode_init (AVCodecContext *avctx)
 
static av_cold int ipu_decode_end (AVCodecContext *avctx)
 

Variables

static const uint32_t ptype2mb_type [7]
 
static const uint32_t btype2mb_type [11]
 
static enum AVPixelFormat mpeg1_hwaccel_pixfmt_list_420 []
 
static enum AVPixelFormat mpeg2_hwaccel_pixfmt_list_420 []
 
static enum AVPixelFormat mpeg12_pixfmt_list_422 []
 
static enum AVPixelFormat mpeg12_pixfmt_list_444 []
 
const FFCodec ff_mpeg1video_decoder
 
const FFCodec ff_mpeg2video_decoder
 
const FFCodec ff_mpegvideo_decoder
 
const FFCodec ff_ipu_decoder
 

Detailed Description

MPEG-1/2 decoder

Definition in file mpeg12dec.c.

Macro Definition Documentation

◆ UNCHECKED_BITSTREAM_READER

#define UNCHECKED_BITSTREAM_READER   1

Definition at line 30 of file mpeg12dec.c.

◆ A53_MAX_CC_COUNT

#define A53_MAX_CC_COUNT   2000

Definition at line 63 of file mpeg12dec.c.

◆ MB_TYPE_ZERO_MV

#define MB_TYPE_ZERO_MV   0x20000000

Definition at line 89 of file mpeg12dec.c.

◆ MAX_INDEX

#define MAX_INDEX   (64 - 1)

Definition at line 142 of file mpeg12dec.c.

◆ check_scantable_index

#define check_scantable_index (   ctx,
 
)
Value:
do { \
if ((x) > MAX_INDEX) { \
av_log(ctx->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", \
ctx->mb_x, ctx->mb_y); \
} \
} while (0)

Definition at line 143 of file mpeg12dec.c.

◆ MT_FIELD

#define MT_FIELD   1

Definition at line 655 of file mpeg12dec.c.

◆ MT_FRAME

#define MT_FRAME   2

Definition at line 656 of file mpeg12dec.c.

◆ MT_16X8

#define MT_16X8   2

Definition at line 657 of file mpeg12dec.c.

◆ MT_DMV

#define MT_DMV   3

Definition at line 658 of file mpeg12dec.c.

◆ DECODE_SLICE_ERROR

#define DECODE_SLICE_ERROR   -1

Definition at line 1641 of file mpeg12dec.c.

◆ DECODE_SLICE_OK

#define DECODE_SLICE_OK   0

Definition at line 1642 of file mpeg12dec.c.

Function Documentation

◆ mpeg_decode_motion()

static int mpeg_decode_motion ( MpegEncContext s,
int  fcode,
int  pred 
)
static

Definition at line 116 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ mpeg1_decode_block_inter()

static int mpeg1_decode_block_inter ( MpegEncContext s,
int16_t *  block,
int  n 
)
inlinestatic

Definition at line 152 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ mpeg1_fast_decode_block_inter()

static int mpeg1_fast_decode_block_inter ( MpegEncContext s,
int16_t *  block,
int  n 
)
inlinestatic

Changing this would eat up any speed benefits it has.

Do not use "fast" flag if you need the code to be robust.

Definition at line 240 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ mpeg2_decode_block_non_intra()

static int mpeg2_decode_block_non_intra ( MpegEncContext s,
int16_t *  block,
int  n 
)
inlinestatic

Definition at line 324 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ mpeg2_fast_decode_block_non_intra()

static int mpeg2_fast_decode_block_non_intra ( MpegEncContext s,
int16_t *  block,
int  n 
)
inlinestatic

Changing this would eat up any speed benefits it has.

Do not use "fast" flag if you need the code to be robust.

Definition at line 413 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ mpeg2_decode_block_intra()

static int mpeg2_decode_block_intra ( MpegEncContext s,
int16_t *  block,
int  n 
)
inlinestatic

Definition at line 484 of file mpeg12dec.c.

Referenced by ipu_decode_frame(), and mpeg_decode_mb().

◆ mpeg2_fast_decode_block_intra()

static int mpeg2_fast_decode_block_intra ( MpegEncContext s,
int16_t *  block,
int  n 
)
inlinestatic

Changing this would eat up any speed benefits it has.

Do not use "fast" flag if you need the code to be robust.

Definition at line 570 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ get_dmv()

static int get_dmv ( MpegEncContext s)
inlinestatic

Definition at line 646 of file mpeg12dec.c.

Referenced by mpeg_decode_mb().

◆ mpeg_decode_mb()

static int mpeg_decode_mb ( MpegEncContext s,
int16_t  block[12][64] 
)
static

Definition at line 660 of file mpeg12dec.c.

Referenced by mpeg_decode_slice().

◆ mpeg_decode_init()

static av_cold int mpeg_decode_init ( AVCodecContext avctx)
static

Definition at line 1050 of file mpeg12dec.c.

◆ mpeg_get_pixelformat()

static enum AVPixelFormat mpeg_get_pixelformat ( AVCodecContext avctx)
static

Definition at line 1138 of file mpeg12dec.c.

Referenced by mpeg_decode_postinit(), and vcr2_init_sequence().

◆ mpeg_decode_postinit()

static int mpeg_decode_postinit ( AVCodecContext avctx)
static

Definition at line 1161 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg1_decode_picture()

static int mpeg1_decode_picture ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 1292 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_decode_sequence_extension()

static void mpeg_decode_sequence_extension ( Mpeg1Context s1)
static

Definition at line 1339 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_decode_sequence_display_extension()

static void mpeg_decode_sequence_display_extension ( Mpeg1Context s1)
static

Definition at line 1382 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_decode_picture_display_extension()

static void mpeg_decode_picture_display_extension ( Mpeg1Context s1)
static

Definition at line 1406 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ load_matrix()

static int load_matrix ( MpegEncContext s,
uint16_t  matrix0[64],
uint16_t  matrix1[64],
int  intra 
)
static

Definition at line 1440 of file mpeg12dec.c.

Referenced by mpeg1_decode_sequence(), and mpeg_decode_quant_matrix_extension().

◆ mpeg_decode_quant_matrix_extension()

static void mpeg_decode_quant_matrix_extension ( MpegEncContext s)
static

Definition at line 1463 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_decode_picture_coding_extension()

static int mpeg_decode_picture_coding_extension ( Mpeg1Context s1)
static

Definition at line 1477 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_field_start()

static int mpeg_field_start ( MpegEncContext s,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 1538 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_decode_slice()

static int mpeg_decode_slice ( MpegEncContext s,
int  mb_y,
const uint8_t **  buf,
int  buf_size 
)
static

Decode a slice.

MpegEncContext.mb_y must be set to the MB row from the startcode.

Returns
DECODE_SLICE_ERROR if the slice is damaged, DECODE_SLICE_OK if this slice is OK

Definition at line 1650 of file mpeg12dec.c.

Referenced by decode_chunks(), and slice_decode_thread().

◆ slice_decode_thread()

static int slice_decode_thread ( AVCodecContext c,
void *  arg 
)
static

Definition at line 1926 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ slice_end()

static int slice_end ( AVCodecContext avctx,
AVFrame pict 
)
static

Handle slice ends.

Returns
1 if it seems to be the last slice

Definition at line 1979 of file mpeg12dec.c.

Referenced by allocate_plane(), average_slice16(), average_slice8(), bilateralo_planes(), blend_frame_partial(), blend_slice_packed_rgb(), blur_planes(), box_slice(), cas_slice16(), cas_slice8(), check_sobel(), clear_slice16(), clear_slice8(), color_balance16(), color_balance16_p(), color_balance8(), color_balance8_p(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcontrast_slice8(), colorcontrast_slice8p(), colorcorrect_slice16(), colorcorrect_slice8(), colorize_slice16(), colorize_slice8(), colorizey_slice16(), colorizey_slice8(), colormap_slice(), compute_images_identity(), compute_images_msad(), compute_images_mse(), compute_sat_hue_metrics16(), compute_sat_hue_metrics8(), convert_frame(), convert_frame_partial(), copy_horizontal(), copy_vertical(), correct_frame(), decode_chunks(), decode_frame(), decode_speedhq_field(), denoise(), diagonal_transformation(), displace_packed(), displace_planar(), distortion_correction_filter_slice(), do_backgroundkey16_slice(), do_backgroundkey_slice(), do_chromahold16_slice(), do_chromahold_slice(), do_chromakey16_slice(), do_chromakey_slice(), do_despill_slice(), do_hsvhold16_slice(), do_hsvhold_slice(), do_hsvkey16_slice(), do_hsvkey_slice(), do_lumakey_slice16(), do_lumakey_slice8(), do_slice(), epx2_slice(), epx3_slice(), exposure_slice(), fade(), ff_sws_slice_worker(), filter16_brng(), filter16_tout(), filter16_vrep(), filter8_brng(), filter8_tout(), filter8_vrep(), filter_color(), filter_color2(), filter_horizontally(), filter_mono(), filter_postscale(), filter_rgb(), filter_rgb_planar(), filter_slice(), filter_slice_alpha(), filter_slice_alpha16(), filter_slice_chroma(), filter_slice_chroma16(), filter_slice_grey_edge(), filter_slice_luma(), filter_slice_luma16(), filter_slice_packed(), filter_slice_planar(), filter_slice_rgb(), filter_slice_rgba_packed(), filter_slice_rgba_planar(), filter_vertically(), hqx_filter(), irdft_horizontal16(), irdft_horizontal8(), irdft_vertical(), limitdiff_slice(), lut_packed_16bits(), lut_packed_8bits(), lut_planar_16bits(), lut_planar_8bits(), maskedclamp_slice(), maskedminmax_slice(), minmax_slice16(), minmax_slice8(), monochrome_slice16(), monochrome_slice8(), multiply_data(), multiply_slice(), nlmeans_slice(), pixelize_slice(), premultiply_slice(), process_slice_uyvy422(), process_slice_yuv420p(), process_slice_yuv422p(), process_slice_yuv444p(), rdft_horizontal16(), rdft_horizontal8(), rdft_vertical(), scroll_slice(), slice_geq_filter(), slice_get_derivative(), slice_normalize(), slice_params(), ssim_plane(), ssim_plane_16bit(), super2xsai(), temperature_slice16(), temperature_slice16p(), temperature_slice8(), temperature_slice8p(), threshold_slice(), tonemap_slice(), v210_decode_slice(), v360_slice(), v410_decode_slice(), verti_slice_c(), vibrance_slice16(), vibrance_slice16p(), vibrance_slice8(), vibrance_slice8p(), vif_filter1d(), vignetting_filter_slice(), xbr_filter(), and xfade_slice().

◆ mpeg1_decode_sequence()

static int mpeg1_decode_sequence ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 2027 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ vcr2_init_sequence()

static int vcr2_init_sequence ( AVCodecContext avctx)
static

Definition at line 2117 of file mpeg12dec.c.

Referenced by mpeg_decode_frame().

◆ mpeg_decode_a53_cc()

static int mpeg_decode_a53_cc ( AVCodecContext avctx,
const uint8_t *  p,
int  buf_size 
)
static

Definition at line 2168 of file mpeg12dec.c.

Referenced by mpeg_decode_user_data().

◆ mpeg_decode_user_data()

static void mpeg_decode_user_data ( AVCodecContext avctx,
const uint8_t *  p,
int  buf_size 
)
static

Definition at line 2305 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ mpeg_decode_gop()

static int mpeg_decode_gop ( AVCodecContext avctx,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 2375 of file mpeg12dec.c.

Referenced by decode_chunks().

◆ decode_chunks()

static int decode_chunks ( AVCodecContext avctx,
AVFrame picture,
int got_output,
const uint8_t *  buf,
int  buf_size 
)
static

Definition at line 2406 of file mpeg12dec.c.

Referenced by mpeg_decode_frame().

◆ mpeg_decode_frame()

static int mpeg_decode_frame ( AVCodecContext avctx,
AVFrame picture,
int got_output,
AVPacket avpkt 
)
static

Definition at line 2745 of file mpeg12dec.c.

◆ flush()

static void flush ( AVCodecContext avctx)
static

Definition at line 2813 of file mpeg12dec.c.

◆ mpeg_decode_end()

static av_cold int mpeg_decode_end ( AVCodecContext avctx)
static

Definition at line 2824 of file mpeg12dec.c.

◆ ipu_decode_frame()

static int ipu_decode_frame ( AVCodecContext avctx,
AVFrame frame,
int got_frame,
AVPacket avpkt 
)
static

Definition at line 2928 of file mpeg12dec.c.

◆ ipu_decode_init()

static av_cold int ipu_decode_init ( AVCodecContext avctx)
static

Definition at line 3032 of file mpeg12dec.c.

◆ ipu_decode_end()

static av_cold int ipu_decode_end ( AVCodecContext avctx)
static

Definition at line 3059 of file mpeg12dec.c.

Variable Documentation

◆ ptype2mb_type

const uint32_t ptype2mb_type[7]
static

◆ btype2mb_type

const uint32_t btype2mb_type[11]
static

◆ mpeg1_hwaccel_pixfmt_list_420

enum AVPixelFormat mpeg1_hwaccel_pixfmt_list_420[]
static
Initial value:

Definition at line 1093 of file mpeg12dec.c.

Referenced by mpeg_get_pixelformat().

◆ mpeg2_hwaccel_pixfmt_list_420

enum AVPixelFormat mpeg2_hwaccel_pixfmt_list_420[]
static
Initial value:

Definition at line 1104 of file mpeg12dec.c.

Referenced by mpeg_get_pixelformat().

◆ mpeg12_pixfmt_list_422

enum AVPixelFormat mpeg12_pixfmt_list_422[]
static
Initial value:

Definition at line 1128 of file mpeg12dec.c.

Referenced by mpeg_get_pixelformat().

◆ mpeg12_pixfmt_list_444

enum AVPixelFormat mpeg12_pixfmt_list_444[]
static
Initial value:

Definition at line 1133 of file mpeg12dec.c.

Referenced by mpeg_get_pixelformat().

◆ ff_mpeg1video_decoder

const FFCodec ff_mpeg1video_decoder
Initial value:
= {
.p.name = "mpeg1video",
CODEC_LONG_NAME("MPEG-1 video"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(Mpeg1Context),
.close = mpeg_decode_end,
.flush = flush,
.p.max_lowres = 3,
UPDATE_THREAD_CONTEXT(mpeg_decode_update_thread_context),
.hw_configs = (const AVCodecHWConfigInternal *const []) {
},
}

Definition at line 2834 of file mpeg12dec.c.

◆ ff_mpeg2video_decoder

const FFCodec ff_mpeg2video_decoder

Definition at line 2863 of file mpeg12dec.c.

◆ ff_mpegvideo_decoder

const FFCodec ff_mpegvideo_decoder
Initial value:
= {
.p.name = "mpegvideo",
CODEC_LONG_NAME("MPEG-1 video"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(Mpeg1Context),
.close = mpeg_decode_end,
.flush = flush,
.p.max_lowres = 3,
}

Definition at line 2905 of file mpeg12dec.c.

◆ ff_ipu_decoder

const FFCodec ff_ipu_decoder
Initial value:
= {
.p.name = "ipu",
CODEC_LONG_NAME("IPU Video"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_IPU,
.priv_data_size = sizeof(IPUContext),
.close = ipu_decode_end,
.p.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
}

Definition at line 3068 of file mpeg12dec.c.

MB_TYPE_L0
#define MB_TYPE_L0
Definition: mpegutils.h:60
FF_CODEC_CAP_INIT_CLEANUP
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
Definition: codec_internal.h:42
mpeg_decode_frame
static int mpeg_decode_frame(AVCodecContext *avctx, AVFrame *picture, int *got_output, AVPacket *avpkt)
Definition: mpeg12dec.c:2745
ipu_decode_init
static av_cold int ipu_decode_init(AVCodecContext *avctx)
Definition: mpeg12dec.c:3032
ipu_decode_end
static av_cold int ipu_decode_end(AVCodecContext *avctx)
Definition: mpeg12dec.c:3059
MB_TYPE_16x16
#define MB_TYPE_16x16
Definition: mpegutils.h:47
MB_TYPE_L1
#define MB_TYPE_L1
Definition: mpegutils.h:61
MB_TYPE_ZERO_MV
#define MB_TYPE_ZERO_MV
Definition: mpeg12dec.c:89
MB_TYPE_CBP
#define MB_TYPE_CBP
Definition: mpegutils.h:64
IPUContext
Definition: mpeg12dec.c:2921
AV_LOG_ERROR
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:180
ipu_decode_frame
static int ipu_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt)
Definition: mpeg12dec.c:2928
flush
static void flush(AVCodecContext *avctx)
Definition: mpeg12dec.c:2813
FF_CODEC_DECODE_CB
#define FF_CODEC_DECODE_CB(func)
Definition: codec_internal.h:306
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts_bsf.c:365
ctx
AVFormatContext * ctx
Definition: movenc.c:48
AV_PIX_FMT_YUV420P
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
CODEC_LONG_NAME
#define CODEC_LONG_NAME(str)
Definition: codec_internal.h:272
NULL
#define NULL
Definition: coverity.c:32
MB_TYPE_QUANT
#define MB_TYPE_QUANT
Definition: mpegutils.h:63
UPDATE_THREAD_CONTEXT
#define UPDATE_THREAD_CONTEXT(func)
Definition: codec_internal.h:281
AV_CODEC_ID_MPEG1VIDEO
@ AV_CODEC_ID_MPEG1VIDEO
Definition: codec_id.h:53
AV_CODEC_CAP_DR1
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition: codec.h:52
AV_CODEC_ID_IPU
@ AV_CODEC_ID_IPU
Definition: codec_id.h:309
FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
#define FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
The decoder extracts and fills its parameters even if the frame is skipped due to the skip_frame sett...
Definition: codec_internal.h:54
AVCodecHWConfigInternal
Definition: hwconfig.h:25
mpeg_decode_init
static av_cold int mpeg_decode_init(AVCodecContext *avctx)
Definition: mpeg12dec.c:1050
AV_CODEC_CAP_SLICE_THREADS
#define AV_CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
Definition: codec.h:114
MB_TYPE_L0L1
#define MB_TYPE_L0L1
Definition: mpegutils.h:62
MAX_INDEX
#define MAX_INDEX
Definition: mpeg12dec.c:142
AV_PIX_FMT_NONE
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:65
AV_CODEC_CAP_DELAY
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: codec.h:76
AV_PIX_FMT_YUV444P
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
mpeg_decode_end
static av_cold int mpeg_decode_end(AVCodecContext *avctx)
Definition: mpeg12dec.c:2824
AV_PIX_FMT_YUV422P
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:70
AV_CODEC_CAP_DRAW_HORIZ_BAND
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
Definition: codec.h:44
AVERROR_INVALIDDATA
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:61
AV_CODEC_ID_MPEG2VIDEO
@ AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
Definition: codec_id.h:54
Mpeg1Context
Definition: mpeg12dec.c:65
MB_TYPE_INTRA
#define MB_TYPE_INTRA
Definition: mpegutils.h:66