[FFmpeg-cvslog] mpegvideo_enc: enable rtp_mode when multiple slices are used

Anton Khirnov git at videolan.org
Sun Nov 22 19:01:07 CET 2015


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed Nov 18 10:37:16 2015 +0100| [f6c94457b44f41d900cd0991857f54e1f0ccedd6] | committer: Anton Khirnov

mpegvideo_enc: enable rtp_mode when multiple slices are used

Currently, multiple slices with just one thread produce corrupted
output.

Additionally, enable slice structured mode for h263(+)

Bug-Id: 912
CC: libav-stabl at libav.org

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6c94457b44f41d900cd0991857f54e1f0ccedd6
---

 libavcodec/mpegvideo_enc.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index d572b85..b915741 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -519,9 +519,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
         return -1;
     }
 
-    if (s->avctx->thread_count > 1)
-        s->rtp_mode = 1;
-
     if (!avctx->time_base.den || !avctx->time_base.num) {
         av_log(avctx, AV_LOG_ERROR, "framerate not set\n");
         return -1;
@@ -764,6 +761,13 @@ FF_ENABLE_DEPRECATION_WARNINGS
     if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant)
         s->chroma_qscale_table = ff_h263_chroma_qscale_table;
 
+    if (s->slice_context_count > 1) {
+        s->rtp_mode = 1;
+
+        if (avctx->codec_id == AV_CODEC_ID_H263 || avctx->codec_id == AV_CODEC_ID_H263P)
+            s->h263_slice_structured = 1;
+    }
+
     s->quant_precision = 5;
 
     ff_set_cmp(&s->mecc, s->mecc.ildct_cmp,      s->avctx->ildct_cmp);



More information about the ffmpeg-cvslog mailing list