aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-01-31 20:24:06 +0100
committerAnton Khirnov <anton@khirnov.net>2013-02-04 06:17:15 +0100
commitd9df93efbf59b1dc8b013d174ca4ad9c634c28f7 (patch)
treefdacf9162c43e3302dc9c8b74d93b55f8cab535a /libavcodec
parent76d90125cdc09a029f7fe87f1c272aaa1a8a808e (diff)
downloadffmpeg-d9df93efbf59b1dc8b013d174ca4ad9c634c28f7.tar.gz
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.
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mpegvideo.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 51e422bf61..1294d0c924 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -712,10 +712,10 @@ typedef struct MpegEncContext {
int context_reinit;
} MpegEncContext;
-#define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? \
- (pic >= old_ctx->picture && pic < old_ctx->picture+old_ctx->picture_count ?\
- &new_ctx->picture[pic - old_ctx->picture] : (Picture*) ((uint8_t*)pic - (uint8_t*)old_ctx + (uint8_t*)new_ctx))\
- : NULL)
+#define REBASE_PICTURE(pic, new_ctx, old_ctx) \
+ ((pic && pic >= old_ctx->picture && \
+ pic < old_ctx->picture + old_ctx->picture_count) ? \
+ &new_ctx->picture[pic - old_ctx->picture] : NULL)
/* mpegvideo_enc common options */
#define FF_MPV_FLAG_SKIP_RD 0x0001