mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
mpegvideo: remove VLAs
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
8c14f7a593
commit
89b81a1c88
@ -388,7 +388,7 @@ static void v_block_filter(MpegEncContext *s, uint8_t *dst, int w, int h,
|
|||||||
|
|
||||||
static void guess_mv(MpegEncContext *s)
|
static void guess_mv(MpegEncContext *s)
|
||||||
{
|
{
|
||||||
uint8_t fixed[s->mb_stride * s->mb_height];
|
uint8_t *fixed = s->er_temp_buffer;
|
||||||
#define MV_FROZEN 3
|
#define MV_FROZEN 3
|
||||||
#define MV_CHANGED 2
|
#define MV_CHANGED 2
|
||||||
#define MV_UNCHANGED 1
|
#define MV_UNCHANGED 1
|
||||||
|
@ -798,6 +798,11 @@ av_cold int ff_MPV_common_init(MpegEncContext *s)
|
|||||||
FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset,
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset,
|
||||||
2 * 64 * sizeof(uint16_t), fail);
|
2 * 64 * sizeof(uint16_t), fail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FF_ALLOC_OR_GOTO(s->avctx, s->cplx_tab,
|
||||||
|
mb_array_size * sizeof(float), fail);
|
||||||
|
FF_ALLOC_OR_GOTO(s->avctx, s->bits_tab,
|
||||||
|
mb_array_size * sizeof(float), fail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -809,6 +814,8 @@ av_cold int ff_MPV_common_init(MpegEncContext *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (s->width && s->height) {
|
if (s->width && s->height) {
|
||||||
|
FF_ALLOC_OR_GOTO(s->avctx, s->er_temp_buffer,
|
||||||
|
mb_array_size * sizeof(uint8_t), fail);
|
||||||
FF_ALLOCZ_OR_GOTO(s->avctx, s->error_status_table,
|
FF_ALLOCZ_OR_GOTO(s->avctx, s->error_status_table,
|
||||||
mb_array_size * sizeof(uint8_t), fail);
|
mb_array_size * sizeof(uint8_t), fail);
|
||||||
|
|
||||||
@ -974,6 +981,7 @@ void ff_MPV_common_end(MpegEncContext *s)
|
|||||||
av_freep(&s->avctx->stats_out);
|
av_freep(&s->avctx->stats_out);
|
||||||
av_freep(&s->ac_stats);
|
av_freep(&s->ac_stats);
|
||||||
av_freep(&s->error_status_table);
|
av_freep(&s->error_status_table);
|
||||||
|
av_freep(&s->er_temp_buffer);
|
||||||
av_freep(&s->mb_index2xy);
|
av_freep(&s->mb_index2xy);
|
||||||
av_freep(&s->lambda_table);
|
av_freep(&s->lambda_table);
|
||||||
av_freep(&s->q_intra_matrix);
|
av_freep(&s->q_intra_matrix);
|
||||||
@ -983,6 +991,8 @@ void ff_MPV_common_end(MpegEncContext *s)
|
|||||||
av_freep(&s->input_picture);
|
av_freep(&s->input_picture);
|
||||||
av_freep(&s->reordered_input_picture);
|
av_freep(&s->reordered_input_picture);
|
||||||
av_freep(&s->dct_offset);
|
av_freep(&s->dct_offset);
|
||||||
|
av_freep(&s->cplx_tab);
|
||||||
|
av_freep(&s->bits_tab);
|
||||||
|
|
||||||
if (s->picture && !s->avctx->internal->is_copy) {
|
if (s->picture && !s->avctx->internal->is_copy) {
|
||||||
for (i = 0; i < s->picture_count; i++) {
|
for (i = 0; i < s->picture_count; i++) {
|
||||||
|
@ -696,6 +696,12 @@ typedef struct MpegEncContext {
|
|||||||
|
|
||||||
int mpv_flags; ///< flags set by private options
|
int mpv_flags; ///< flags set by private options
|
||||||
int quantizer_noise_shaping;
|
int quantizer_noise_shaping;
|
||||||
|
|
||||||
|
/* error resilience stuff */
|
||||||
|
uint8_t *er_temp_buffer;
|
||||||
|
|
||||||
|
/* temp buffers for rate control */
|
||||||
|
float *cplx_tab, *bits_tab;
|
||||||
} MpegEncContext;
|
} MpegEncContext;
|
||||||
|
|
||||||
#define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? \
|
#define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? \
|
||||||
|
@ -529,8 +529,8 @@ static void adaptive_quantization(MpegEncContext *s, double q){
|
|||||||
const float border_masking = s->avctx->border_masking;
|
const float border_masking = s->avctx->border_masking;
|
||||||
float bits_sum= 0.0;
|
float bits_sum= 0.0;
|
||||||
float cplx_sum= 0.0;
|
float cplx_sum= 0.0;
|
||||||
float cplx_tab[s->mb_num];
|
float *cplx_tab = s->cplx_tab;
|
||||||
float bits_tab[s->mb_num];
|
float *bits_tab = s->bits_tab;
|
||||||
const int qmin= s->avctx->mb_lmin;
|
const int qmin= s->avctx->mb_lmin;
|
||||||
const int qmax= s->avctx->mb_lmax;
|
const int qmax= s->avctx->mb_lmax;
|
||||||
Picture * const pic= &s->current_picture;
|
Picture * const pic= &s->current_picture;
|
||||||
|
Loading…
Reference in New Issue
Block a user