diff --git a/libavcodec/parser.c b/libavcodec/parser.c index 460693f2dd..b7b6b8df9d 100644 --- a/libavcodec/parser.c +++ b/libavcodec/parser.c @@ -274,6 +274,7 @@ int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_s /* store overread bytes */ for(;next < 0; next++){ pc->state = (pc->state<<8) | pc->buffer[pc->last_index + next]; + pc->state64 = (pc->state64<<8) | pc->buffer[pc->last_index + next]; pc->overread++; } diff --git a/libavcodec/parser.h b/libavcodec/parser.h index 4150870c84..3b6978fe1e 100644 --- a/libavcodec/parser.h +++ b/libavcodec/parser.h @@ -34,6 +34,7 @@ typedef struct ParseContext{ int frame_start_found; int overread; ///< the number of bytes which where irreversibly read from the next frame int overread_index; ///< the index into ParseContext.buffer of the overread bytes + uint64_t state64; ///< contains the last 8 bytes in MSB order } ParseContext; struct MpegEncContext;