/* NOTE: as a trick, we use the fact the no codes are unused
to accelerate the parsing of partial codes */
init_vlc(&dv_vlc, TEX_VLC_BITS, j,
- new_dv_vlc_len, 1, 1, new_dv_vlc_bits, 2, 2);
+ new_dv_vlc_len, 1, 1, new_dv_vlc_bits, 2, 2, 0);
dv_rl_vlc = av_malloc(dv_vlc.table_size * sizeof(RL_VLC_ELEM));
if (!dv_rl_vlc) {
free_vlc(&dv_vlc);
for (i = 0; i < NB_DV_VLC - 1; i++) {
- if (dv_vlc_run[i] >= DV_VLC_MAP_RUN_SIZE || dv_vlc_level[i] >= DV_VLC_MAP_LEV_SIZE)
+ if (dv_vlc_run[i] >= DV_VLC_MAP_RUN_SIZE)
continue;
+#ifdef DV_CODEC_TINY_TARGET
+ if (dv_vlc_level[i] >= DV_VLC_MAP_LEV_SIZE)
+ continue;
+#endif
if (dv_vlc_map[dv_vlc_run[i]][dv_vlc_level[i]].size != 0)
continue;
return 0;
}
-static int dvvideo_end(AVCodecContext *avctx)
-{
- avcodec_default_free_buffers(avctx);
- return 0;
-}
-
// #define VLC_DEBUG
// #define printf(...) av_log(NULL, AV_LOG_ERROR, __VA_ARGS__)
#ifndef ALT_BITSTREAM_READER
#warning only works with ALT_BITSTREAM_READER
+static int re_index; //Hack to make it compile
#endif
static inline int get_bits_left(GetBitContext *s)
init_get_bits(&gb, buf_ptr, last_index);
/* get the dc */
- dc = get_bits(&gb, 9);
- dc = (dc << (32 - 9)) >> (32 - 9);
+ dc = get_sbits(&gb, 9);
dct_mode = get_bits1(&gb);
mb->dct_mode = dct_mode;
mb->scan_table = s->dv_zigzag[dct_mode];
{
DVVideoContext *s = avctx->priv_data;
- *data_size=0;
- /* special case for last picture */
- if(buf_size==0)
- return 0;
-
s->sys = dv_frame_profile(buf);
if (!s->sys || buf_size < s->sys->frame_size)
return -1; /* NOTE: we only accept several full frames */
s->sys = dv_codec_profile(c);
if (!s->sys)
return -1;
-
+ if(buf_size < s->sys->frame_size)
+ return -1;
+
c->pix_fmt = s->sys->pix_fmt;
s->picture = *((AVFrame *)data);
return s->sys->frame_size;
}
+#ifdef CONFIG_DVVIDEO_ENCODER
AVCodec dvvideo_encoder = {
"dvvideo",
CODEC_TYPE_VIDEO,
sizeof(DVVideoContext),
dvvideo_init,
dvvideo_encode_frame,
- dvvideo_end,
+ NULL,
NULL,
CODEC_CAP_DR1,
NULL
};
+#endif // CONFIG_DVVIDEO_ENCODER
AVCodec dvvideo_decoder = {
"dvvideo",
sizeof(DVVideoContext),
dvvideo_init,
NULL,
- dvvideo_end,
+ NULL,
dvvideo_decode_frame,
CODEC_CAP_DR1,
NULL