mpegvideo: simplify REBASE_PICTURE
Always evaluate to NULL when the source Picture is not located in the MpegEncContext.picture array. That will only happen for next/last_picture_ptr when updating the thread context during h264 frame threaded decoding, where they will point to elements of ref_list. Since ref_list is not copied during updating the context and is invalid until it is constructed for the current slice, there is no point in doing anything complicated with next/last_picture_ptr, as they will get updated when the ref_list is filled.
This commit is contained in:
parent
76d90125cd
commit
d9df93efbf
@ -712,10 +712,10 @@ typedef struct MpegEncContext {
|
|||||||
int context_reinit;
|
int context_reinit;
|
||||||
} MpegEncContext;
|
} MpegEncContext;
|
||||||
|
|
||||||
#define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? \
|
#define REBASE_PICTURE(pic, new_ctx, old_ctx) \
|
||||||
(pic >= old_ctx->picture && pic < old_ctx->picture+old_ctx->picture_count ?\
|
((pic && pic >= old_ctx->picture && \
|
||||||
&new_ctx->picture[pic - old_ctx->picture] : (Picture*) ((uint8_t*)pic - (uint8_t*)old_ctx + (uint8_t*)new_ctx))\
|
pic < old_ctx->picture + old_ctx->picture_count) ? \
|
||||||
: NULL)
|
&new_ctx->picture[pic - old_ctx->picture] : NULL)
|
||||||
|
|
||||||
/* mpegvideo_enc common options */
|
/* mpegvideo_enc common options */
|
||||||
#define FF_MPV_FLAG_SKIP_RD 0x0001
|
#define FF_MPV_FLAG_SKIP_RD 0x0001
|
||||||
|
Loading…
Reference in New Issue
Block a user