summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-09-16 11:25:29 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-09-16 11:25:29 +0000
commit05fbd0a2b037cbe99b7f2868922c8426acc44989 (patch)
tree84cc4553a2a6c1a8ccc9d40e515090b4f8cb506b /libavcodec
parentdd6ee74e4c79643e74d04a6632ec6e8b0bf9ea9c (diff)
scenechange_threshold
Originally committed as revision 2281 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h10
-rw-r--r--libavcodec/mpegvideo.c2
2 files changed, 10 insertions, 2 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 75ad80e9a6..bb81d00021 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -15,7 +15,7 @@ extern "C" {
#define FFMPEG_VERSION_INT 0x000408
#define FFMPEG_VERSION "0.4.8"
-#define LIBAVCODEC_BUILD 4679
+#define LIBAVCODEC_BUILD 4680
#define LIBAVCODEC_VERSION_INT FFMPEG_VERSION_INT
#define LIBAVCODEC_VERSION FFMPEG_VERSION
@@ -1242,6 +1242,14 @@ typedef struct AVCodecContext {
* - decoding: set by user, will be converted to upper case by lavc during init
*/
unsigned int stream_codec_tag;
+
+ /**
+ * scene change detection threshold.
+ * 0 is default, larger means fewer detected scene changes
+ * - encoding: set by user.
+ * - decoding: unused
+ */
+ int scenechange_threshold;
} AVCodecContext;
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 04e614d71b..b14aa54cd1 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -3416,7 +3416,7 @@ static void encode_picture(MpegEncContext *s, int picture_number)
}
emms_c();
- if(s->scene_change_score > 0 && s->pict_type == P_TYPE){
+ if(s->scene_change_score > s->avctx->scenechange_threshold && s->pict_type == P_TYPE){
s->pict_type= I_TYPE;
memset(s->mb_type , MB_TYPE_INTRA, sizeof(uint8_t)*s->mb_stride*s->mb_height);
//printf("Scene change detected, encoding as I Frame %d %d\n", s->current_picture.mb_var_sum, s->current_picture.mc_mb_var_sum);