aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-04-08 17:03:38 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-04-08 17:03:38 +0200
commit1d80c8db272baaa9b0334fe68119176477d0b60e (patch)
treea32c728a1d895ed3413b49bc8022f00dfee62d5c /libavcodec
parent8dfbc1c5cf7973f9ffb5c9857db5d4c03a896686 (diff)
downloadffmpeg-1d80c8db272baaa9b0334fe68119176477d0b60e.tar.gz
ffv1: set slice geometry based on user specified slices.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/ffv1.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
index 4c8ef4bc85..681b363283 100644
--- a/libavcodec/ffv1.c
+++ b/libavcodec/ffv1.c
@@ -1065,8 +1065,15 @@ static av_cold int encode_init(AVCodecContext *avctx)
}
if(s->version>1){
- s->num_h_slices=2;
- s->num_v_slices=2;
+ for(s->num_v_slices=2; 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)
+ goto slices_ok;
+ }
+ }
+ av_log(avctx, AV_LOG_ERROR, "Unsupported number %d of slices requested\n", avctx->slices);
+ return -1;
+ slices_ok:
write_extra_header(s);
}