diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-06-14 16:26:15 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-14 21:55:13 +0200 |
commit | bb850480e1796fcbf1f76c2c5748b717e7056d80 (patch) | |
tree | ba75111080af3915609bb07989f42064b66cfd83 /libavcodec/mpegvideo_enc.c | |
parent | ddece75bc8d70e3cedbf2361778e867d1e1676a7 (diff) | |
download | ffmpeg-bb850480e1796fcbf1f76c2c5748b717e7056d80.tar.gz |
mjpegenc: support slice multithreading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mpegvideo_enc.c')
-rw-r--r-- | libavcodec/mpegvideo_enc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 12c507ab4f..a2dec6331a 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -578,6 +578,7 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) s->codec_id != CODEC_ID_MPEG4 && s->codec_id != CODEC_ID_MPEG1VIDEO && s->codec_id != CODEC_ID_MPEG2VIDEO && + s->codec_id != CODEC_ID_MJPEG && (s->codec_id != CODEC_ID_H263P)) { av_log(avctx, AV_LOG_ERROR, "multi threaded encoding not supported by codec\n"); @@ -2372,7 +2373,7 @@ static void write_slice_end(MpegEncContext *s){ ff_mpeg4_stuffing(&s->pb); }else if(CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG){ - ff_mjpeg_encode_stuffing(&s->pb); + ff_mjpeg_encode_stuffing(s); } avpriv_align_put_bits(&s->pb); @@ -2547,12 +2548,14 @@ static int encode_thread(AVCodecContext *c, void *arg){ case CODEC_ID_MPEG1VIDEO: if(s->mb_skip_run) is_gob_start=0; break; + case CODEC_ID_MJPEG: + if(s->mb_x==0 && s->mb_y!=0) is_gob_start=1; + break; } if(is_gob_start){ if(s->start_mb_y != mb_y || mb_x!=0){ write_slice_end(s); - if(CONFIG_MPEG4_ENCODER && s->codec_id==CODEC_ID_MPEG4 && s->partitioned_frame){ ff_mpeg4_init_partitions(s); } |