From 7061bf0925a7d6c5899bbe710b2b8cdae9005274 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Mon, 8 Jun 2015 13:00:49 +0100 Subject: mpegvideo: Move Picture-related functions to a separate file --- libavcodec/mpegvideo.h | 78 +------------------------------------------------- 1 file changed, 1 insertion(+), 77 deletions(-) (limited to 'libavcodec/mpegvideo.h') diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index d5e14f7c46..b2b2f6df79 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -40,6 +40,7 @@ #include "idctdsp.h" #include "me_cmp.h" #include "motion_est.h" +#include "mpegpicture.h" #include "mpegvideodsp.h" #include "mpegvideoencdsp.h" #include "pixblockdsp.h" @@ -60,8 +61,6 @@ #define MAX_THREADS 16 -#define MAX_PICTURE_COUNT 32 - #define MAX_B_FRAMES 16 #define ME_MAP_SIZE 64 @@ -70,8 +69,6 @@ #define INPLACE_OFFSET 16 -#define EDGE_WIDTH 16 - /* Start codes. */ #define SEQ_END_CODE 0x000001b7 #define SEQ_START_CODE 0x000001b3 @@ -82,62 +79,6 @@ #define EXT_START_CODE 0x000001b5 #define USER_START_CODE 0x000001b2 -/** - * Picture. - */ -typedef struct Picture{ - struct AVFrame *f; - ThreadFrame tf; - - AVBufferRef *qscale_table_buf; - int8_t *qscale_table; - - AVBufferRef *motion_val_buf[2]; - int16_t (*motion_val[2])[2]; - - AVBufferRef *mb_type_buf; - uint32_t *mb_type; ///< types and macros are defined in mpegutils.h - - AVBufferRef *mbskip_table_buf; - uint8_t *mbskip_table; - - AVBufferRef *ref_index_buf[2]; - int8_t *ref_index[2]; - - AVBufferRef *mb_var_buf; - uint16_t *mb_var; ///< Table for MB variances - - AVBufferRef *mc_mb_var_buf; - uint16_t *mc_mb_var; ///< Table for motion compensated MB variances - - AVBufferRef *mb_mean_buf; - uint8_t *mb_mean; ///< Table for MB luminance - - AVBufferRef *hwaccel_priv_buf; - /** - * hardware accelerator private data - */ - void *hwaccel_picture_private; - - int field_picture; ///< whether or not the picture was encoded in separate fields - - int mb_var_sum; ///< sum of MB variance for current frame - int mc_mb_var_sum; ///< motion compensated MB variance for current frame - - int b_frame_score; /* */ - int needs_realloc; ///< Picture needs to be reallocated (eg due to a frame size change) - - int reference; - int shared; -} Picture; - -typedef struct ScratchpadContext { - uint8_t *edge_emu_buffer; ///< temporary buffer for if MVs point to out-of-frame data - uint8_t *rd_scratchpad; ///< scratchpad for rate distortion mb decision - uint8_t *obmc_scratchpad; - uint8_t *b_scratchpad; ///< scratchpad used for writing into write only buffers -} ScratchpadContext; - /** * MpegEncContext. */ @@ -679,7 +620,6 @@ void ff_mpeg_flush(AVCodecContext *avctx); void ff_print_debug_info(MpegEncContext *s, Picture *p); void ff_write_quant_matrix(PutBitContext *pb, uint16_t *matrix); -int ff_find_unused_picture(AVCodecContext *avctx, Picture *picture, int shared); int ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src); int ff_mpeg_update_thread_context(AVCodecContext *dst, const AVCodecContext *src); void ff_set_qscale(MpegEncContext * s, int qscale); @@ -698,18 +638,6 @@ void ff_mpv_motion(MpegEncContext *s, op_pixels_func (*pix_op)[4], qpel_mc_func (*qpix_op)[16]); -/** - * Allocate a Picture. - * The pixels are allocated/set by calling get_buffer() if shared = 0. - */ -int ff_alloc_picture(AVCodecContext *avctx, Picture *pic, MotionEstContext *me, - ScratchpadContext *sc, int shared, int encoding, - int chroma_x_shift, int chroma_y_shift, int out_format, - int mb_stride, int mb_height, int b8_stride, - ptrdiff_t *linesize, ptrdiff_t *uvlinesize); - -int ff_mpeg_framesize_alloc(AVCodecContext *avctx, MotionEstContext *me, - ScratchpadContext *sc, int linesize); /** * permute block according to permuatation. * @param last last non zero element in scantable order @@ -744,8 +672,4 @@ int ff_rv10_encode_picture_header(MpegEncContext *s, int picture_number); int ff_rv_decode_dc(MpegEncContext *s, int n); void ff_rv20_encode_picture_header(MpegEncContext *s, int picture_number); -int ff_mpeg_ref_picture(AVCodecContext *avctx, Picture *dst, Picture *src); -void ff_mpeg_unref_picture(AVCodecContext *avctx, Picture *picture); -void ff_free_picture_tables(Picture *pic); - #endif /* AVCODEC_MPEGVIDEO_H */ -- cgit v1.2.3