static void free_tables(H264Context *h){

    int i;

    H264Context *hx;

    av_freep(&h->intra4x4_pred_mode);

    av_freep(&h->chroma_pred_mode_table);

    av_freep(&h->cbp_table);

    av_freep(&h->mvd_table[0]);

    av_freep(&h->mvd_table[1]);

    av_freep(&h->direct_table);

    av_freep(&h->non_zero_count);

    av_freep(&h->slice_table_base);

    h->slice_table= NULL;

    av_freep(&h->list_counts);



    av_freep(&h->mb2b_xy);

    av_freep(&h->mb2br_xy);



    for(i = 0; i < MAX_THREADS; i++) {

        hx = h->thread_context[i];

        if(!hx) continue;

        av_freep(&hx->top_borders[1]);

        av_freep(&hx->top_borders[0]);

        av_freep(&hx->s.obmc_scratchpad);

        av_freep(&hx->rbsp_buffer[1]);

        av_freep(&hx->rbsp_buffer[0]);

        hx->rbsp_buffer_size[0] = 0;

        hx->rbsp_buffer_size[1] = 0;

        if (i) av_freep(&h->thread_context[i]);

    }

}

static void free_tables(H264Context *h){

    int i;

    H264Context *hx;

    av_freep(&h->intra4x4_pred_mode);

    av_freep(&h->chroma_pred_mode_table);

    av_freep(&h->cbp_table);

    av_freep(&h->mvd_table[0]);

    av_freep(&h->mvd_table[1]);

    av_freep(&h->direct_table);

    av_freep(&h->non_zero_count);

    av_freep(&h->slice_table_base);

    h->slice_table= NULL;

    av_freep(&h->list_counts);



    av_freep(&h->mb2b_xy);

    av_freep(&h->mb2br_xy);



    for(i = 0; i < MAX_THREADS; i++) {

        hx = h->thread_context[i];

        if(!hx) continue;

        av_freep(&hx->top_borders[1]);

        av_freep(&hx->top_borders[0]);

        av_freep(&hx->s.obmc_scratchpad);

        av_freep(&hx->rbsp_buffer[1]);

        av_freep(&hx->rbsp_buffer[0]);

        hx->rbsp_buffer_size[0] = 0;

        hx->rbsp_buffer_size[1] = 0;

        if (i) av_freep(&h->thread_context[i]);

    }

}

static void free_tables(H264Context *h){
static void FUNC_0(H264Context *VAR_0){

    int VAR_1;

    H264Context *hx;

    av_freep(&VAR_0->intra4x4_pred_mode);

    av_freep(&VAR_0->chroma_pred_mode_table);

    av_freep(&VAR_0->cbp_table);

    av_freep(&VAR_0->mvd_table[0]);

    av_freep(&VAR_0->mvd_table[1]);

    av_freep(&VAR_0->direct_table);

    av_freep(&VAR_0->non_zero_count);

    av_freep(&VAR_0->slice_table_base);

    VAR_0->slice_table= NULL;

    av_freep(&VAR_0->list_counts);



    av_freep(&VAR_0->mb2b_xy);

    av_freep(&VAR_0->mb2br_xy);



    for(VAR_1 = 0; VAR_1 < MAX_THREADS; VAR_1++) {

        hx = VAR_0->thread_context[VAR_1];

        if(!hx) continue;

        av_freep(&hx->top_borders[1]);

        av_freep(&hx->top_borders[0]);

        av_freep(&hx->s.obmc_scratchpad);

        av_freep(&hx->rbsp_buffer[1]);

        av_freep(&hx->rbsp_buffer[0]);

        hx->rbsp_buffer_size[0] = 0;

        hx->rbsp_buffer_size[1] = 0;

        if (VAR_1) av_freep(&VAR_0->thread_context[VAR_1]);

    }

}

static void FUNC_0(H264Context *VAR_0){ int VAR_1; H264Context *hx; av_freep(&VAR_0->intra4x4_pred_mode); av_freep(&VAR_0->chroma_pred_mode_table); av_freep(&VAR_0->cbp_table); av_freep(&VAR_0->mvd_table[0]); av_freep(&VAR_0->mvd_table[1]); av_freep(&VAR_0->direct_table); av_freep(&VAR_0->non_zero_count); av_freep(&VAR_0->slice_table_base); VAR_0->slice_table= NULL; av_freep(&VAR_0->list_counts); av_freep(&VAR_0->mb2b_xy); av_freep(&VAR_0->mb2br_xy); for(VAR_1 = 0; VAR_1 < MAX_THREADS; VAR_1++) { hx = VAR_0->thread_context[VAR_1]; if(!hx) continue; av_freep(&hx->top_borders[1]); av_freep(&hx->top_borders[0]); av_freep(&hx->s.obmc_scratchpad); av_freep(&hx->rbsp_buffer[1]); av_freep(&hx->rbsp_buffer[0]); hx->rbsp_buffer_size[0] = 0; hx->rbsp_buffer_size[1] = 0; if (VAR_1) av_freep(&VAR_0->thread_context[VAR_1]); } }