summaryrefslogtreecommitdiff
path: root/libavcodec/ffv1enc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-12-05 01:20:44 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-12-05 01:22:43 +0100
commit8bf16e677f5df5c71e92dcfd1cc5b2e2df15410b (patch)
tree6c939e98f1ef7fff2539a69923094d71fb278cd4 /libavcodec/ffv1enc.c
parent4e6f9db493f586becb4f42f30730ae27b219580a (diff)
ffv1enc: allow encoding with 1 slice for CIF and smaller in version 3
the default is still 4 slices for any resolution, this just allows the user to force 1 slice. This in my quick test improves compression by 1% for a 320x240 sample Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/ffv1enc.c')
-rw-r--r--libavcodec/ffv1enc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index b3879fc83c..031db061fe 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -872,7 +872,8 @@ static av_cold int encode_init(AVCodecContext *avctx)
}
if (s->version > 1) {
- for (s->num_v_slices = 2; s->num_v_slices < 9; s->num_v_slices++) {
+ s->num_v_slices = (avctx->width > 352 || avctx->height > 288 || !avctx->slices) ? 2 : 1;
+ for (; s->num_v_slices < 9; s->num_v_slices++) {
for (s->num_h_slices = s->num_v_slices; s->num_h_slices < 2*s->num_v_slices; s->num_h_slices++) {
if (avctx->slices == s->num_h_slices * s->num_v_slices && avctx->slices <= 64 || !avctx->slices)
goto slices_ok;