On Thursday 14 May 2015 01:47:54 pm Michael Niedermayer wrote: > On Thu, May 14, 2015 at 12:28:13PM +0200, Carl Eugen Hoyos wrote: > > Hi! > > > > Attached patch fixes reading valid pict files with non-zero user data. > > https://developer.apple.com/legacy/library/documentation/mac/QuickDraw/QuickDraw-334.html > > > > Please comment, Carl Eugen > > > > qdrw.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > edf25620818c022655ed281d4e7d614459d56df3 patchqdrw.diff > > diff --git a/libavcodec/qdrw.c b/libavcodec/qdrw.c > > index 1c3244b..6ec35c6 100644 > > --- a/libavcodec/qdrw.c > > +++ b/libavcodec/qdrw.c > > @@ -124,9 +124,8 @@ static int decode_frame(AVCodecContext *avctx, > > int w, h, ret; > > > > bytestream2_init(&gbc, avpkt->data, avpkt->size); > > - while ( bytestream2_get_bytes_left(&gbc) >= 552 > > - && ( !AV_RB16(&avpkt->data[bytestream2_tell(&gbc)+6]) > > - || !AV_RB16(&avpkt->data[bytestream2_tell(&gbc)+8]))) > > + if ( bytestream2_get_bytes_left(&gbc) >= 552 > > + && AV_RB32(&avpkt->data[522]) == 0x001102FF) > > This wont work with files that have a different version
New patch attached. Carl Eugen
diff --git a/libavcodec/qdrw.c b/libavcodec/qdrw.c index 0bcf5dc..d88a9f1 100644 --- a/libavcodec/qdrw.c +++ b/libavcodec/qdrw.c @@ -153,8 +153,8 @@ static int decode_frame(AVCodecContext *avctx, bytestream2_init(&gbc, avpkt->data, avpkt->size); if ( bytestream2_get_bytes_left(&gbc) >= 552 - && !check_header(gbc.buffer , bytestream2_get_bytes_left(&gbc)) - && check_header(gbc.buffer + 512, bytestream2_get_bytes_left(&gbc) - 512) + && ( AV_RB32(&avpkt->data[522]) == 0x001102FF + || AV_RB16(&avpkt->data[522]) == 0x1101) ) bytestream2_skip(&gbc, 512);
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel