diff options
author | clsid2 <clsid2@users.sourceforge.net> | 2010-05-27 16:10:56 +0400 |
---|---|---|
committer | clsid2 <clsid2@users.sourceforge.net> | 2010-05-27 16:10:56 +0400 |
commit | 96084bc5c1a3d4e74ba9e240ea6d13387cae0f7f (patch) | |
tree | 5d72b7c705add27c0f70aee1350dfdee1a1f0896 /src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c | |
parent | a51f307401c448b89a9d1064453fd40c6af5ae21 (diff) |
Updated FFmpeg
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1959 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c')
-rw-r--r-- | src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c index b3b8c1d44..cceee6037 100644 --- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c +++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/vp3.c @@ -138,6 +138,7 @@ typedef struct Vp3DecodeContext { DSPContext dsp;
int flipped_image;
int last_slice_end;
+ int skip_loop_filter;
int qps[3];
int nqps;
@@ -1501,7 +1502,8 @@ static void render_slice(Vp3DecodeContext *s, int slice) }
// Filter up to the last row in the superblock row
- apply_loop_filter(s, plane, 4*sb_y - !!sb_y, FFMIN(4*sb_y+3, fragment_height-1));
+ if (!s->skip_loop_filter)
+ apply_loop_filter(s, plane, 4*sb_y - !!sb_y, FFMIN(4*sb_y+3, fragment_height-1));
}
}
@@ -1767,6 +1769,9 @@ static int vp3_decode_frame(AVCodecContext *avctx, s->keyframe?"key":"", counter, s->qps[0]);
counter++;
+ s->skip_loop_filter = !s->filter_limit_values[s->qps[0]] ||
+ avctx->skip_loop_filter >= (s->keyframe ? AVDISCARD_ALL : AVDISCARD_NONKEY);
+
if (s->qps[0] != s->last_qps[0])
init_loop_filter(s);
|