[x264-devel] commit: Don't print scenecut message multiple times in verbose mode ( Jason Garrett-Glaser )
git version control
git at videolan.org
Mon Sep 14 22:00:03 CEST 2009
x264 | branch: master | Jason Garrett-Glaser <darkshikari at gmail.com> | Fri Sep 11 17:30:14 2009 -0700| [4f6a00704c3e36648a32404aa729a4beff438b38] | committer: Jason Garrett-Glaser
Don't print scenecut message multiple times in verbose mode
Occurred mostly with b-adapt 2.
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=4f6a00704c3e36648a32404aa729a4beff438b38
---
encoder/slicetype.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/encoder/slicetype.c b/encoder/slicetype.c
index e267df5..2749967 100644
--- a/encoder/slicetype.c
+++ b/encoder/slicetype.c
@@ -658,7 +658,7 @@ static void x264_slicetype_path( x264_t *h, x264_mb_analysis_t *a, x264_frame_t
memcpy( best_paths[length], paths[best_path_index], length );
}
-static int scenecut( x264_t *h, x264_mb_analysis_t *a, x264_frame_t **frames, int p0, int p1 )
+static int scenecut( x264_t *h, x264_mb_analysis_t *a, x264_frame_t **frames, int p0, int p1, int print )
{
x264_frame_t *frame = frames[p1];
x264_slicetype_frame_cost( h, a, frames, p0, p1, p1, 0 );
@@ -688,7 +688,7 @@ static int scenecut( x264_t *h, x264_mb_analysis_t *a, x264_frame_t **frames, in
}
res = pcost >= (1.0 - f_bias) * icost;
- if( res )
+ if( res && print )
{
int imb = frame->i_intra_mbs[p1-p0];
int pmb = NUM_MBS - imb;
@@ -737,7 +737,7 @@ void x264_slicetype_analyse( x264_t *h, int keyframe )
else if( num_frames == 1 )
{
frames[1]->i_type = X264_TYPE_P;
- if( h->param.i_scenecut_threshold && scenecut( h, &a, frames, 0, 1 ) )
+ if( h->param.i_scenecut_threshold && scenecut( h, &a, frames, 0, 1, 1 ) )
frames[1]->i_type = idr_frame_type;
return;
}
@@ -753,7 +753,7 @@ void x264_slicetype_analyse( x264_t *h, int keyframe )
int max_bframes = X264_MIN(num_frames-1, h->param.i_bframe);
int num_analysed_frames = num_frames;
int reset_start;
- if( h->param.i_scenecut_threshold && scenecut( h, &a, frames, 0, 1 ) )
+ if( h->param.i_scenecut_threshold && scenecut( h, &a, frames, 0, 1, 1 ) )
{
frames[1]->i_type = idr_frame_type;
return;
@@ -836,7 +836,7 @@ void x264_slicetype_analyse( x264_t *h, int keyframe )
/* Check scenecut on the first minigop. */
for( j = 1; j < num_bframes+1; j++ )
- if( h->param.i_scenecut_threshold && scenecut( h, &a, frames, j, j+1 ) )
+ if( h->param.i_scenecut_threshold && scenecut( h, &a, frames, j, j+1, 0 ) )
{
frames[j]->i_type = X264_TYPE_P;
num_analysed_frames = j;
More information about the x264-devel
mailing list