Commit 05fbd0a2 authored by Michael Niedermayer's avatar Michael Niedermayer

scenechange_threshold

Originally committed as revision 2281 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent dd6ee74e
...@@ -15,7 +15,7 @@ extern "C" { ...@@ -15,7 +15,7 @@ extern "C" {
#define FFMPEG_VERSION_INT 0x000408 #define FFMPEG_VERSION_INT 0x000408
#define FFMPEG_VERSION "0.4.8" #define FFMPEG_VERSION "0.4.8"
#define LIBAVCODEC_BUILD 4679 #define LIBAVCODEC_BUILD 4680
#define LIBAVCODEC_VERSION_INT FFMPEG_VERSION_INT #define LIBAVCODEC_VERSION_INT FFMPEG_VERSION_INT
#define LIBAVCODEC_VERSION FFMPEG_VERSION #define LIBAVCODEC_VERSION FFMPEG_VERSION
...@@ -1242,6 +1242,14 @@ typedef struct AVCodecContext { ...@@ -1242,6 +1242,14 @@ typedef struct AVCodecContext {
* - decoding: set by user, will be converted to upper case by lavc during init * - decoding: set by user, will be converted to upper case by lavc during init
*/ */
unsigned int stream_codec_tag; 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; } AVCodecContext;
......
...@@ -3416,7 +3416,7 @@ static void encode_picture(MpegEncContext *s, int picture_number) ...@@ -3416,7 +3416,7 @@ static void encode_picture(MpegEncContext *s, int picture_number)
} }
emms_c(); 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; s->pict_type= I_TYPE;
memset(s->mb_type , MB_TYPE_INTRA, sizeof(uint8_t)*s->mb_stride*s->mb_height); 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); //printf("Scene change detected, encoding as I Frame %d %d\n", s->current_picture.mb_var_sum, s->current_picture.mc_mb_var_sum);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment