diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-03-30 19:26:01 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-03-30 19:26:01 +0000 |
commit | 9b8709d13526a055491e90c5767c501851cd9869 (patch) | |
tree | 3a7118a77d7ea9e8d982bf102eb56b8c82c88bba /libavcodec/mpegvideo.c | |
parent | 5acaa5e1df0a6a9da5c87ba6edd7b0d8c4e95c88 (diff) | |
download | ffmpeg-9b8709d13526a055491e90c5767c501851cd9869.tar.gz |
mpeg1 slice encoding support
Originally committed as revision 1720 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r-- | libavcodec/mpegvideo.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 7f7730b1d2..53c2d50c25 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -2684,7 +2684,7 @@ static inline void copy_context_before_encode(MpegEncContext *d, MpegEncContext memcpy(d->last_mv, s->last_mv, 2*2*2*sizeof(int)); //FIXME is memcpy faster then a loop? /* mpeg1 */ - d->mb_incr= s->mb_incr; + d->mb_skip_run= s->mb_skip_run; for(i=0; i<3; i++) d->last_dc[i]= s->last_dc[i]; @@ -2710,7 +2710,7 @@ static inline void copy_context_after_encode(MpegEncContext *d, MpegEncContext * memcpy(d->last_mv, s->last_mv, 2*2*2*sizeof(int)); //FIXME is memcpy faster then a loop? /* mpeg1 */ - d->mb_incr= s->mb_incr; + d->mb_skip_run= s->mb_skip_run; for(i=0; i<3; i++) d->last_dc[i]= s->last_dc[i]; @@ -3023,7 +3023,7 @@ static void encode_picture(MpegEncContext *s, int picture_number) s->current_picture_ptr->error[i] = 0; } - s->mb_incr = 1; + s->mb_skip_run = 0; s->last_mv[0][0][0] = 0; s->last_mv[0][0][1] = 0; s->last_mv[1][0][0] = 0; @@ -3094,6 +3094,13 @@ static void encode_picture(MpegEncContext *s, int picture_number) ff_mpeg4_clean_buffers(s); is_gob_start=1; } + }else if(s->codec_id==CODEC_ID_MPEG1VIDEO){ + if( current_packet_size >= s->rtp_payload_size + && s->mb_y + s->mb_x>0 && s->mb_skip_run==0){ + ff_mpeg1_encode_slice_header(s); + ff_mpeg1_clean_buffers(s); + is_gob_start=1; + } }else{ if(current_packet_size >= s->rtp_payload_size && s->mb_x==0 && s->mb_y>0 && s->mb_y%s->gob_index==0){ |