diff options
Diffstat (limited to 'source/blender/imbuf/intern/anim_movie.c')
-rw-r--r-- | source/blender/imbuf/intern/anim_movie.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 52ed68a1ff3..36ebe2b7cff 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -97,9 +97,9 @@ static void free_anim_movie(struct anim *UNUSED(anim)) # define PATHSEPARATOR '/' #endif -static int an_stringdec(const char *string, char *head, char *tail, unsigned short *numlen) +static int an_stringdec(const char *string, char *head, char *tail, ushort *numlen) { - unsigned short len, nume, nums = 0; + ushort len, nume, nums = 0; short i; bool found = false; @@ -139,8 +139,7 @@ static int an_stringdec(const char *string, char *head, char *tail, unsigned sho return true; } -static void an_stringenc( - char *string, const char *head, const char *tail, unsigned short numlen, int pic) +static void an_stringenc(char *string, const char *head, const char *tail, ushort numlen, int pic) { BLI_path_sequence_encode(string, head, tail, numlen, pic); } @@ -454,7 +453,7 @@ static ImBuf *avi_fetchibuf(struct anim *anim, int position) lpbi = AVIStreamGetFrame(anim->pgf, position + AVIStreamStart(anim->pavi[anim->firstvideo])); if (lpbi) { ibuf = IMB_ibImageFromMemory( - (const unsigned char *)lpbi, 100, IB_rect, anim->colorspace, "<avi_fetchibuf>"); + (const uchar *)lpbi, 100, IB_rect, anim->colorspace, "<avi_fetchibuf>"); /* Oh brother... */ } } @@ -1407,6 +1406,10 @@ static ImBuf *ffmpeg_fetchibuf(struct anim *anim, int position, IMB_Timecode_Typ ffmpeg_decode_video_frame_scan(anim, pts_to_search); + /* Update resolution as it can change per-frame with WebM. See T100741 & T100081. */ + anim->x = anim->pCodecCtx->width; + anim->y = anim->pCodecCtx->height; + IMB_freeImBuf(anim->cur_frame_final); /* Certain versions of FFmpeg have a bug in libswscale which ends up in crash @@ -1568,7 +1571,7 @@ struct ImBuf *IMB_anim_absolute(struct anim *anim, { struct ImBuf *ibuf = NULL; char head[256], tail[256]; - unsigned short digits; + ushort digits; int pic; int filter_y; if (anim == NULL) { |