#include "libavutil/attributes.h"
#include "libavutil/internal.h"
+#include "libavutil/mem_internal.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) {
int ps = s->ildct_cmp(NULL, data, NULL, linesize, 8) - 400;
if (ps > 0) {
- int is = s->ildct_cmp(NULL, data, NULL, linesize << 1, 4) +
- s->ildct_cmp(NULL, data + linesize, NULL, linesize << 1, 4);
+ int is = s->ildct_cmp(NULL, data, NULL, linesize * 2, 4) +
+ s->ildct_cmp(NULL, data + linesize, NULL, linesize * 2, 4);
return ps > is;
}
}
65536, 65536, 32768, 21845, 16384, 13107, 10923, 9362, 8192, 4096, 3641, 3277, 2979, 2731, 2341, 1260,
};
-/* DV100 weights are pre-zigzagged, inverted and multiplied by 2^(dv100_weight_shift)
+/* DV100 weights are pre-zigzagged, inverted and multiplied by 2^16
(in DV100 the AC components are divided by the spec weights) */
-static const int dv100_weight_shift = 16;
static const int dv_weight_1080[2][64] = {
{ 8192, 65536, 65536, 61681, 61681, 61681, 58254, 58254,
58254, 58254, 58254, 58254, 55188, 58254, 58254, 55188,
if (data) {
if (DV_PROFILE_IS_HD(s->sys)) {
- s->get_pixels(blk, data, linesize << bi->dct_mode);
+ s->get_pixels(blk, data, linesize * (1 << bi->dct_mode));
s->fdct[0](blk);
} else {
bi->dct_mode = dv_guess_dct_mode(s, data, linesize);
qnos[mb_index] = DV_PROFILE_IS_HD(s->sys) ? 1 : 15;
- y_ptr = s->frame->data[0] + ((mb_y * s->frame->linesize[0] + mb_x) << 3);
+ y_ptr = s->frame->data[0] + (mb_y * s->frame->linesize[0] + mb_x) * 8;
linesize = s->frame->linesize[0];
if (s->sys->height == 1080 && mb_y < 134)
if ((s->sys->pix_fmt == AV_PIX_FMT_YUV420P) ||
(s->sys->pix_fmt == AV_PIX_FMT_YUV411P && mb_x >= (704 / 8)) ||
(s->sys->height >= 720 && mb_y != 134)) {
- y_stride = s->frame->linesize[0] << (3*!enc_blk->dct_mode);
+ y_stride = s->frame->linesize[0] * (1 << (3*!enc_blk->dct_mode));
} else {
y_stride = 16;
}
y_ptr = s->frame->data[0] +
- ((mb_y * s->frame->linesize[0] + mb_x) << 3);
+ (mb_y * s->frame->linesize[0] + mb_x) * 8;
linesize = s->frame->linesize[0];
if (s->sys->video_stype == 4) { /* SD 422 */
enc_blk += 4;
/* initializing chrominance blocks */
- c_offset = (((mb_y >> (s->sys->pix_fmt == AV_PIX_FMT_YUV420P)) * s->frame->linesize[1] +
- (mb_x >> ((s->sys->pix_fmt == AV_PIX_FMT_YUV411P) ? 2 : 1))) << 3);
+ c_offset = ((mb_y >> (s->sys->pix_fmt == AV_PIX_FMT_YUV420P)) * s->frame->linesize[1] +
+ (mb_x >> ((s->sys->pix_fmt == AV_PIX_FMT_YUV411P) ? 2 : 1))) * 8;
for (j = 2; j; j--) {
uint8_t *c_ptr = s->frame->data[j] + c_offset;
linesize = s->frame->linesize[j];
- y_stride = (mb_y == 134) ? 8 : (s->frame->linesize[j] << (3*!enc_blk->dct_mode));
+ y_stride = (mb_y == 134) ? 8 : (s->frame->linesize[j] * (1 << (3*!enc_blk->dct_mode)));
if (s->sys->pix_fmt == AV_PIX_FMT_YUV411P && mb_x >= (704 / 8)) {
uint8_t *d;
uint8_t *b = scratch;
for (i = 0; i < 8; i++) {
- d = c_ptr + (linesize << 3);
+ d = c_ptr + linesize * 8;
b[0] = c_ptr[0];
b[1] = c_ptr[1];
b[2] = c_ptr[2];
}
for (j = 0; j < 5 * s->sys->bpm; j++) {
- int pos;
- int size = pbs[j].size_in_bits >> 3;
flush_put_bits(&pbs[j]);
- pos = put_bits_count(&pbs[j]) >> 3;
- if (pos > size) {
- av_log(avctx, AV_LOG_ERROR,
- "bitstream written beyond buffer size\n");
- return -1;
- }
- memset(pbs[j].buf + pos, 0xff, size - pos);
+ memset(put_bits_ptr(&pbs[j]), 0xff, put_bytes_left(&pbs[j], 0));
}
if (DV_PROFILE_IS_HD(s->sys))
c->pix_fmt = s->sys->pix_fmt;
s->frame = frame;
-#if FF_API_CODED_FRAME
-FF_DISABLE_DEPRECATION_WARNINGS
- c->coded_frame->key_frame = 1;
- c->coded_frame->pict_type = AV_PICTURE_TYPE_I;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->buf = pkt->data;
dv_format_frame(s, pkt->data);
.version = LIBAVUTIL_VERSION_INT,
};
-AVCodec ff_dvvideo_encoder = {
+const AVCodec ff_dvvideo_encoder = {
.name = "dvvideo",
.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
.type = AVMEDIA_TYPE_VIDEO,