[FFmpeg-cvslog] Merging branch 'ffmpeg-mt/master'
Multiple Authors
git at videolan.org
Wed May 11 01:15:40 CEST 2011
ffmpeg | branch: master | Multiple Authors <multiple_authors at ffmpeg_mt> | Tue May 10 23:12:44 2011 +0200| [a811ec7cb5d6b31ddeef59bfaab074074f2e1a92] | committer: Michael Niedermayer
Merging branch 'ffmpeg-mt/master'
Just some cosmetics & comments, the only functional change
"error_resilience: use s->last_picture for accessing last MVs."
Is so buggy that it needs a full rewrite, guess -1.0 PSNR loss wasnt
enough for ronald to realize there was a problem.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a811ec7cb5d6b31ddeef59bfaab074074f2e1a92
---
libavcodec/error_resilience.c | 2 ++
libavcodec/mpegvideo.c | 3 ++-
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
index 7904514..0320ed0 100644
--- a/libavcodec/error_resilience.c
+++ b/libavcodec/error_resilience.c
@@ -663,6 +663,7 @@ static int is_intra_more_likely(MpegEncContext *s){
uint8_t *last_mb_ptr= s->last_picture.data [0] + mb_x*16 + mb_y*16*s->linesize;
is_intra_likely += s->dsp.sad[0](NULL, last_mb_ptr, mb_ptr , s->linesize, 16);
+ // FIXME need await_progress() here
is_intra_likely -= s->dsp.sad[0](NULL, last_mb_ptr, last_mb_ptr+s->linesize*16, s->linesize, 16);
}else{
if(IS_INTRA(s->current_picture.mb_type[mb_xy]))
@@ -1000,6 +1001,7 @@ void ff_er_frame_end(MpegEncContext *s){
int time_pp= s->pp_time;
int time_pb= s->pb_time;
+ // FIXME await_progress here
s->mv[0][0][0] = s->next_picture.motion_val[0][xy][0]*time_pb/time_pp;
s->mv[0][0][1] = s->next_picture.motion_val[0][xy][1]*time_pb/time_pp;
s->mv[1][0][0] = s->next_picture.motion_val[0][xy][0]*(time_pb - time_pp)/time_pp;
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index b4b6a39..50c99f4 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -680,6 +680,7 @@ av_cold int MPV_common_init(MpegEncContext *s)
FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset, 2 * 64 * sizeof(uint16_t), fail)
}
}
+
s->picture_count = MAX_PICTURE_COUNT * FFMAX(1, s->avctx->thread_count);
FF_ALLOCZ_OR_GOTO(s->avctx, s->picture, s->picture_count * sizeof(Picture), fail)
for(i = 0; i < s->picture_count; i++) {
@@ -754,7 +755,7 @@ av_cold int MPV_common_init(MpegEncContext *s)
for(i=0; i<threads; i++){
if(init_duplicate_context(s->thread_context[i], s) < 0)
- goto fail;
+ goto fail;
s->thread_context[i]->start_mb_y= (s->mb_height*(i ) + s->avctx->thread_count/2) / s->avctx->thread_count;
s->thread_context[i]->end_mb_y = (s->mb_height*(i+1) + s->avctx->thread_count/2) / s->avctx->thread_count;
}
More information about the ffmpeg-cvslog
mailing list