#include "avcodec.h"#include "dsputil.h"#include "mpegvideo.h"

Go to the source code of this file.
Defines | |
| #define | SET_QPEL_FUNC(postfix1, postfix2) |
Functions | |
| int | ff_h263_decode_init (AVCodecContext *avctx) |
| int | ff_h263_decode_end (AVCodecContext *avctx) |
| static int | get_consumed_bytes (MpegEncContext *s, int buf_size) |
| static int | decode_slice (MpegEncContext *s) |
| int | ff_mpeg4_find_frame_end (ParseContext *pc, const uint8_t *buf, int buf_size) |
| static int | h263_find_frame_end (ParseContext *pc, const uint8_t *buf, int buf_size) |
| static int | h263_parse (AVCodecParserContext *s, AVCodecContext *avctx, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size) |
| int | ff_h263_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size) |
Variables | |
| AVCodec | mpeg4_decoder |
| AVCodec | h263_decoder |
| AVCodec | msmpeg4v1_decoder |
| AVCodec | msmpeg4v2_decoder |
| AVCodec | msmpeg4v3_decoder |
| AVCodec | wmv1_decoder |
| AVCodec | h263i_decoder |
| AVCodec | flv_decoder |
| AVCodecParser | h263_parser |
Definition in file h263dec.c.
| #define SET_QPEL_FUNC | ( | postfix1, | |||
| postfix2 | ) |
Value:
s->dsp.put_ ## postfix1 = ff_put_ ## postfix2;\ s->dsp.put_no_rnd_ ## postfix1 = ff_put_no_rnd_ ## postfix2;\ s->dsp.avg_ ## postfix1 = ff_avg_ ## postfix2;
Referenced by dsputil_init_mmx(), and ff_h263_decode_frame().
| static int decode_slice | ( | MpegEncContext * | s | ) | [static] |
Definition at line 145 of file h263dec.c.
References AC_END, AC_ERROR, av_log(), AV_LOG_ERROR, MpegEncContext::avctx, B_TYPE, MpegEncContext::block, MpegEncContext::codec_id, CODEC_ID_MPEG4, MpegEncContext::data_partitioning, DC_END, DC_ERROR, MpegEncContext::decode_mb, MpegEncContext::error_resilience, FF_BUG_AUTODETECT, FF_BUG_NO_PADDING, ff_draw_horiz_band(), ff_er_add_slice(), ff_h263_loop_filter(), ff_h263_update_motion_val(), ff_init_block_index(), ff_mpeg4_decode_partitions(), ff_set_qscale(), ff_update_block_index(), MpegEncContext::first_slice_line, MpegEncContext::gb, get_bits_count(), I_TYPE, MpegEncContext::last_dc, MpegEncContext::last_resync_gb, MpegEncContext::loop_filter, AVCodecContext::lowres, MpegEncContext::mb_height, MpegEncContext::mb_stride, MpegEncContext::mb_width, MpegEncContext::mb_x, MpegEncContext::mb_y, MPV_decode_mb(), MpegEncContext::msmpeg4_version, MpegEncContext::mv_dir, MV_DIR_FORWARD, MV_END, MV_ERROR, MpegEncContext::mv_type, MV_TYPE_16X16, MpegEncContext::padding_bug_score, MpegEncContext::partitioned_frame, MpegEncContext::pict_type, MpegEncContext::qscale, MpegEncContext::resync_mb_x, MpegEncContext::resync_mb_y, show_bits(), GetBitContext::size_in_bits, SLICE_END, MpegEncContext::slice_height, SLICE_NOEND, and MpegEncContext::workaround_bugs.
Referenced by decode_nal_units(), and ff_h263_decode_frame().

| int ff_h263_decode_end | ( | AVCodecContext * | avctx | ) |
Definition at line 116 of file h263dec.c.
References MPV_common_end(), AVCodecContext::priv_data, and s.

| int ff_h263_decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| uint8_t * | buf, | |||
| int | buf_size | |||
| ) |
Definition at line 414 of file h263dec.c.
References AC_ERROR, MpegEncContext::allocated_bitstream_buffer_size, av_fast_realloc(), av_log(), AV_LOG_DEBUG, AV_LOG_ERROR, avcodec_set_dimensions(), MpegEncContext::avctx, AVDISCARD_ALL, AVDISCARD_NONKEY, AVDISCARD_NONREF, B_TYPE, MpegEncContext::bitstream_buffer, MpegEncContext::bitstream_buffer_size, GetBitContext::buffer, ParseContext::buffer, CODEC_FLAG_BITEXACT, CODEC_FLAG_LOW_DELAY, CODEC_FLAG_TRUNCATED, MpegEncContext::codec_id, CODEC_ID_H263, CODEC_ID_H263I, CODEC_ID_H263P, CODEC_ID_MPEG4, AVCodecContext::codec_tag, AVCodecContext::coded_height, AVCodecContext::coded_width, MpegEncContext::context_initialized, MpegEncContext::current_picture, MpegEncContext::current_picture_ptr, MpegEncContext::data_partitioning, DC_ERROR, AVCodecContext::debug, decode_slice(), MpegEncContext::divx_build, MpegEncContext::divx_packed, MpegEncContext::divx_version, MpegEncContext::dropable, MpegEncContext::error_status_table, AVCodecContext::extradata, AVCodecContext::extradata_size, FF_BUG_AUTODETECT, FF_BUG_DC_CLIP, FF_BUG_DIRECT_BLOCKSIZE, FF_BUG_EDGE, FF_BUG_HPEL_CHROMA, FF_BUG_NO_PADDING, FF_BUG_QPEL_CHROMA, FF_BUG_QPEL_CHROMA2, FF_BUG_STD_QPEL, FF_BUG_UMP4, FF_BUG_XVID_ILACE, ff_combine_frame(), FF_DEBUG_BUGS, ff_er_frame_end(), ff_er_frame_start(), ff_find_unused_picture(), ff_h263_get_gob_height(), ff_h263_resync(), FF_IDCT_AUTO, FF_IDCT_LIBMPEG2MMX, FF_INPUT_BUFFER_PADDING_SIZE, ff_mpeg4_clean_buffers(), ff_mpeg4_decode_picture_header(), ff_mpeg4_find_frame_end(), ff_print_debug_info(), ff_wmv2_decode_picture_header(), ff_wmv2_decode_secondary_picture_header(), AVCodecContext::flags, MpegEncContext::flags, AVCodecContext::flags2, MpegEncContext::flags2, flv_h263_decode_picture_header(), fopen(), fprintf, AVCodecContext::frame_number, FRAME_SKIPPED, MpegEncContext::gb, get_bits_count(), get_consumed_bytes(), MpegEncContext::gob_index, h263_decode_picture_header(), h263_find_frame_end(), MpegEncContext::h263_flv, MpegEncContext::h263_msmpeg4, MpegEncContext::h263_pred, AVCodecContext::has_b_frames, MpegEncContext::height, AVCodecContext::hurry_up, I_TYPE, AVCodecContext::idct_algo, init_get_bits(), intel_h263_decode_picture_header(), MpegEncContext::last_picture, MpegEncContext::last_picture_ptr, MpegEncContext::lavc_build, MpegEncContext::low_delay, MpegEncContext::mb_height, MpegEncContext::mb_num, MpegEncContext::mb_x, MpegEncContext::mb_y, memcpy, mm_flags, MPV_common_end(), MPV_common_init(), MPV_frame_end(), MPV_frame_start(), msmpeg4_decode_ext_header(), msmpeg4_decode_picture_header(), MpegEncContext::msmpeg4_version, MV_ERROR, MpegEncContext::next_p_frame_damaged, MpegEncContext::next_picture_ptr, NULL, MpegEncContext::padding_bug_score, MpegEncContext::parse_context, MpegEncContext::pict_type, MpegEncContext::picture, MpegEncContext::picture_number, AVCodecContext::priv_data, MpegEncContext::qscale, MpegEncContext::resync_marker, s, SET_QPEL_FUNC, GetBitContext::size_in_bits, AVCodecContext::skip_frame, MpegEncContext::slice_height, AVCodecContext::stream_codec_tag, MpegEncContext::vo_type, MpegEncContext::vol_control_parameters, MpegEncContext::width, MpegEncContext::workaround_bugs, and MpegEncContext::xvid_build.

| int ff_h263_decode_init | ( | AVCodecContext * | avctx | ) |
Definition at line 33 of file h263dec.c.
References MpegEncContext::avctx, AVCodecContext::codec, MpegEncContext::codec_id, CODEC_ID_FLV1, CODEC_ID_H263, CODEC_ID_H263I, CODEC_ID_MPEG4, CODEC_ID_MSMPEG4V1, CODEC_ID_MSMPEG4V2, CODEC_ID_MSMPEG4V3, CODEC_ID_WMV1, CODEC_ID_WMV2, CODEC_ID_WMV3, AVCodecContext::coded_height, AVCodecContext::coded_width, MpegEncContext::decode_mb, ff_h263_decode_mb(), ff_mpeg4_decode_mb(), ff_msmpeg4_decode_init(), FMT_H263, h263_decode_init_vlc(), MpegEncContext::h263_flv, MpegEncContext::h263_msmpeg4, MpegEncContext::h263_pred, MpegEncContext::height, AVCodec::id, MpegEncContext::low_delay, MPV_common_init(), MPV_decode_defaults(), MpegEncContext::msmpeg4_version, MpegEncContext::out_format, AVCodecContext::pix_fmt, PIX_FMT_YUV420P, AVCodecContext::priv_data, MpegEncContext::quant_precision, s, MpegEncContext::time_increment_bits, MpegEncContext::unrestricted_mv, MpegEncContext::width, AVCodecContext::workaround_bugs, and MpegEncContext::workaround_bugs.
Referenced by vc9_decode_init(), and wmv2_decode_init().

| int ff_mpeg4_find_frame_end | ( | ParseContext * | pc, | |
| const uint8_t * | buf, | |||
| int | buf_size | |||
| ) |
finds the end of the current frame in the bitstream.
Definition at line 321 of file h263dec.c.
References END_NOT_FOUND, ParseContext::frame_start_found, and ParseContext::state.
Referenced by ff_h263_decode_frame(), and mpeg4video_parse().
| static int get_consumed_bytes | ( | MpegEncContext * | s, | |
| int | buf_size | |||
| ) | [static] |
returns the number of bytes consumed for building the current frame
Definition at line 127 of file h263dec.c.
References CODEC_FLAG_TRUNCATED, MpegEncContext::divx_packed, MpegEncContext::flags, MpegEncContext::gb, get_bits_count(), ParseContext::last_index, and MpegEncContext::parse_context.

| static int h263_find_frame_end | ( | ParseContext * | pc, | |
| const uint8_t * | buf, | |||
| int | buf_size | |||
| ) | [static] |
Definition at line 358 of file h263dec.c.
References END_NOT_FOUND, ParseContext::frame_start_found, and ParseContext::state.
Referenced by ff_h263_decode_frame(), and h263_parse().
| static int h263_parse | ( | AVCodecParserContext * | s, | |
| AVCodecContext * | avctx, | |||
| uint8_t ** | poutbuf, | |||
| int * | poutbuf_size, | |||
| const uint8_t * | buf, | |||
| int | buf_size | |||
| ) | [static] |
Definition at line 393 of file h263dec.c.
References ff_combine_frame(), h263_find_frame_end(), NULL, and AVCodecParserContext::priv_data.

Initial value:
{
"flv",
CODEC_TYPE_VIDEO,
CODEC_ID_FLV1,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1
}
Definition at line 875 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"h263",
CODEC_TYPE_VIDEO,
CODEC_ID_H263,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
.flush= ff_mpeg_flush,
}
Definition at line 802 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
{ CODEC_ID_H263 },
sizeof(ParseContext),
NULL,
h263_parse,
ff_parse_close,
}
Definition at line 887 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"h263i",
CODEC_TYPE_VIDEO,
CODEC_ID_H263I,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
}
Definition at line 863 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"mpeg4",
CODEC_TYPE_VIDEO,
CODEC_ID_MPEG4,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
.flush= ff_mpeg_flush,
}
Definition at line 789 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"msmpeg4v1",
CODEC_TYPE_VIDEO,
CODEC_ID_MSMPEG4V1,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
}
Definition at line 815 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"msmpeg4v2",
CODEC_TYPE_VIDEO,
CODEC_ID_MSMPEG4V2,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
}
Definition at line 827 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"msmpeg4",
CODEC_TYPE_VIDEO,
CODEC_ID_MSMPEG4V3,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
}
Definition at line 839 of file h263dec.c.
Referenced by avcodec_register_all().
Initial value:
{
"wmv1",
CODEC_TYPE_VIDEO,
CODEC_ID_WMV1,
sizeof(MpegEncContext),
ff_h263_decode_init,
NULL,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
}
Definition at line 851 of file h263dec.c.
Referenced by avcodec_register_all().
1.5.5