~ubuntu-branches/ubuntu/utopic/libav/utopic-proposed

« back to all changes in this revision

Viewing changes to libavcodec/bink.c

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler, Reinhard Tartler, Rico Tzschichholz
  • Date: 2014-08-30 11:02:45 UTC
  • mfrom: (1.3.47 sid)
  • Revision ID: package-import@ubuntu.com-20140830110245-io3dg7q85wfr7125
Tags: 6:11~beta1-2
[ Reinhard Tartler ]
* Make libavcodec-dev depend on libavresample-dev

[ Rico Tzschichholz ]
* Some fixes and leftovers from soname bumps

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
#include "libavutil/imgutils.h"
25
25
#include "libavutil/internal.h"
26
26
#include "avcodec.h"
27
 
#include "dsputil.h"
28
27
#include "binkdata.h"
29
28
#include "binkdsp.h"
 
29
#include "blockdsp.h"
30
30
#include "hpeldsp.h"
31
31
#include "internal.h"
32
32
#include "mathops.h"
113
113
 */
114
114
typedef struct BinkContext {
115
115
    AVCodecContext *avctx;
116
 
    DSPContext     dsp;
 
116
    BlockDSPContext bdsp;
117
117
    HpelDSPContext hdsp;
118
 
    BinkDSPContext bdsp;
 
118
    BinkDSPContext binkdsp;
119
119
    AVFrame        *last;
120
120
    int            version;              ///< internal Bink file version
121
121
    int            has_alpha;
867
867
                dctblock[0] = binkb_get_value(c, BINKB_SRC_INTRA_DC);
868
868
                qp = binkb_get_value(c, BINKB_SRC_INTRA_Q);
869
869
                read_dct_coeffs(gb, dctblock, bink_scan, binkb_intra_quant, qp);
870
 
                c->bdsp.idct_put(dst, stride, dctblock);
 
870
                c->binkdsp.idct_put(dst, stride, dctblock);
871
871
                break;
872
872
            case 3:
873
873
                xoff = binkb_get_value(c, BINKB_SRC_X_OFF);
880
880
                } else {
881
881
                    put_pixels8x8_overlapped(dst, ref, stride);
882
882
                }
883
 
                c->dsp.clear_block(block);
 
883
                c->bdsp.clear_block(block);
884
884
                v = binkb_get_value(c, BINKB_SRC_INTER_COEFS);
885
885
                read_residue(gb, block, v);
886
 
                c->dsp.add_pixels8(dst, block, stride);
 
886
                c->binkdsp.add_pixels8(dst, block, stride);
887
887
                break;
888
888
            case 4:
889
889
                xoff = binkb_get_value(c, BINKB_SRC_X_OFF);
900
900
                dctblock[0] = binkb_get_value(c, BINKB_SRC_INTER_DC);
901
901
                qp = binkb_get_value(c, BINKB_SRC_INTER_Q);
902
902
                read_dct_coeffs(gb, dctblock, bink_scan, binkb_inter_quant, qp);
903
 
                c->bdsp.idct_add(dst, stride, dctblock);
 
903
                c->binkdsp.idct_add(dst, stride, dctblock);
904
904
                break;
905
905
            case 5:
906
906
                v = binkb_get_value(c, BINKB_SRC_COLORS);
907
 
                c->dsp.fill_block_tab[1](dst, v, stride, 8);
 
907
                c->bdsp.fill_block_tab[1](dst, v, stride, 8);
908
908
                break;
909
909
            case 6:
910
910
                for (i = 0; i < 2; i++)
1043
1043
                    memset(dctblock, 0, sizeof(*dctblock) * 64);
1044
1044
                    dctblock[0] = get_value(c, BINK_SRC_INTRA_DC);
1045
1045
                    read_dct_coeffs(gb, dctblock, bink_scan, bink_intra_quant, -1);
1046
 
                    c->bdsp.idct_put(ublock, 8, dctblock);
 
1046
                    c->binkdsp.idct_put(ublock, 8, dctblock);
1047
1047
                    break;
1048
1048
                case FILL_BLOCK:
1049
1049
                    v = get_value(c, BINK_SRC_COLORS);
1050
 
                    c->dsp.fill_block_tab[0](dst, v, stride, 16);
 
1050
                    c->bdsp.fill_block_tab[0](dst, v, stride, 16);
1051
1051
                    break;
1052
1052
                case PATTERN_BLOCK:
1053
1053
                    for (i = 0; i < 2; i++)
1068
1068
                    return AVERROR_INVALIDDATA;
1069
1069
                }
1070
1070
                if (blk != FILL_BLOCK)
1071
 
                c->bdsp.scale_block(ublock, dst, stride);
 
1071
                c->binkdsp.scale_block(ublock, dst, stride);
1072
1072
                bx++;
1073
1073
                dst  += 8;
1074
1074
                prev += 8;
1117
1117
                    return AVERROR_INVALIDDATA;
1118
1118
                }
1119
1119
                c->hdsp.put_pixels_tab[1][0](dst, ref, stride, 8);
1120
 
                c->dsp.clear_block(block);
 
1120
                c->bdsp.clear_block(block);
1121
1121
                v = get_bits(gb, 7);
1122
1122
                read_residue(gb, block, v);
1123
 
                c->dsp.add_pixels8(dst, block, stride);
 
1123
                c->binkdsp.add_pixels8(dst, block, stride);
1124
1124
                break;
1125
1125
            case INTRA_BLOCK:
1126
1126
                memset(dctblock, 0, sizeof(*dctblock) * 64);
1127
1127
                dctblock[0] = get_value(c, BINK_SRC_INTRA_DC);
1128
1128
                read_dct_coeffs(gb, dctblock, bink_scan, bink_intra_quant, -1);
1129
 
                c->bdsp.idct_put(dst, stride, dctblock);
 
1129
                c->binkdsp.idct_put(dst, stride, dctblock);
1130
1130
                break;
1131
1131
            case FILL_BLOCK:
1132
1132
                v = get_value(c, BINK_SRC_COLORS);
1133
 
                c->dsp.fill_block_tab[1](dst, v, stride, 8);
 
1133
                c->bdsp.fill_block_tab[1](dst, v, stride, 8);
1134
1134
                break;
1135
1135
            case INTER_BLOCK:
1136
1136
                xoff = get_value(c, BINK_SRC_X_OFF);
1140
1140
                memset(dctblock, 0, sizeof(*dctblock) * 64);
1141
1141
                dctblock[0] = get_value(c, BINK_SRC_INTER_DC);
1142
1142
                read_dct_coeffs(gb, dctblock, bink_scan, bink_inter_quant, -1);
1143
 
                c->bdsp.idct_add(dst, stride, dctblock);
 
1143
                c->binkdsp.idct_add(dst, stride, dctblock);
1144
1144
                break;
1145
1145
            case PATTERN_BLOCK:
1146
1146
                for (i = 0; i < 2; i++)
1310
1310
 
1311
1311
    avctx->pix_fmt = c->has_alpha ? AV_PIX_FMT_YUVA420P : AV_PIX_FMT_YUV420P;
1312
1312
 
1313
 
    ff_dsputil_init(&c->dsp, avctx);
 
1313
    ff_blockdsp_init(&c->bdsp, avctx);
1314
1314
    ff_hpeldsp_init(&c->hdsp, avctx->flags);
1315
 
    ff_binkdsp_init(&c->bdsp);
 
1315
    ff_binkdsp_init(&c->binkdsp);
1316
1316
 
1317
1317
    init_bundles(c);
1318
1318