repositories
/
deb_ffmpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Debian version 2.5.0~trusty1.1
[deb_ffmpeg.git]
/
ffmpeg
/
libavcodec
/
asvenc.c
diff --git
a/ffmpeg/libavcodec/asvenc.c
b/ffmpeg/libavcodec/asvenc.c
index 3ad2c315919bd7e7c3549a68be96f2303e34de33..2b2080ef6c3006c86708c9193dd39f5af229b76f 100644
(file)
--- a/
ffmpeg/libavcodec/asvenc.c
+++ b/
ffmpeg/libavcodec/asvenc.c
@@
-52,7
+52,7
@@
static inline void asv1_put_level(PutBitContext *pb, int level)
}
}
}
}
-static inline void asv2_put_level(PutBitContext *pb, int level)
+static inline void asv2_put_level(
ASV1Context *a,
PutBitContext *pb, int level)
{
unsigned int index = level + 31;
{
unsigned int index = level + 31;
@@
-60,6
+60,10
@@
static inline void asv2_put_level(PutBitContext *pb, int level)
put_bits(pb, ff_asv2_level_tab[index][1], ff_asv2_level_tab[index][0]);
} else {
put_bits(pb, ff_asv2_level_tab[31][1], ff_asv2_level_tab[31][0]);
put_bits(pb, ff_asv2_level_tab[index][1], ff_asv2_level_tab[index][0]);
} else {
put_bits(pb, ff_asv2_level_tab[31][1], ff_asv2_level_tab[31][0]);
+ if (level < -128 || level > 127) {
+ av_log(a->avctx, AV_LOG_WARNING, "Cliping level %d, increase qscale\n", level);
+ level = av_clip_int8(level);
+ }
asv2_put_bits(pb, 8, level & 0xFF);
}
}
asv2_put_bits(pb, 8, level & 0xFF);
}
}
@@
-152,13
+156,13
@@
static inline void asv2_encode_block(ASV1Context *a, int16_t block[64])
if (ccp) {
if (ccp & 8)
if (ccp) {
if (ccp & 8)
- asv2_put_level(&a->pb, block[index + 0]);
+ asv2_put_level(
a,
&a->pb, block[index + 0]);
if (ccp & 4)
if (ccp & 4)
- asv2_put_level(&a->pb, block[index + 8]);
+ asv2_put_level(
a,
&a->pb, block[index + 8]);
if (ccp & 2)
if (ccp & 2)
- asv2_put_level(&a->pb, block[index + 1]);
+ asv2_put_level(
a,
&a->pb, block[index + 1]);
if (ccp & 1)
if (ccp & 1)
- asv2_put_level(&a->pb, block[index + 9]);
+ asv2_put_level(
a,
&a->pb, block[index + 9]);
}
}
}
}
}
}