Ticket #336 (closed defect: fixed)

Opened 3 months ago

Last modified 2 months ago

VP3 movies only show occasional frames

Reported by: annodomini Assigned to:
Priority: normal Milestone: 1.1.1
Component: Perian-Main Version: 1.1
Severity: normal Keywords:
Cc:

Description

When I play movies encoded with VP3 in Perian 1.1, only the occasional frame (probably keyframes) are actually shown. There can sometimes be up to 4-5 seconds between frames shown.

Here are some example movies affected by this: quackery_vp3_captioned.mov (3.2 MB), duck_and_cover_intro_vp3_captioned.mov (7.0 MB)

I am running Perian under MacOS X 10.5.2 on a MacBook? Pro with QuickTime 7.4.5; the problem is also reproducible on a PowerPC Mac running Leopard.

Attachments

logframecrc.diff (1.6 kB) - added by astrange on 05/08/08 22:31:01.
debugging aid (v2)
copyavframe.diff (1.7 kB) - added by astrange on 05/09/08 01:13:02.
fixes VP3, breaks H.264+PACKED_QUICKTIME_KNOWS_ORDER

Change History

05/01/08 11:39:52 changed by astrange

  • milestone set to 1.1.1.

05/04/08 16:31:31 changed by astrange

The debug logging looks normal to me, and VP3 doesn't have an AVParser we can enable. I'll try making sure we're drawing a different frame every time, then mess with QT flags.

05/08/08 17:21:46 changed by astrange

We're drawing the wrong frame.

05/08/08 22:28:23 changed by astrange

specifically, it's drawing the right I-frame and first P-frame after it, but then copying the first P-frame over every other P-frame, or something.

05/08/08 22:31:01 changed by astrange

  • attachment logframecrc.diff added.

debugging aid (v2)

05/08/08 23:21:24 changed by astrange

at FFusionCodec.c:1206 after FFusionDecompress()

(gdb) print tempFrame.data[0]
$22 = (uint8_t *) 0x19dafa10 "C@<855543210/02455679;<;75421/.//", '0' <repeats 16 times>, "1111111222222221111122200000123344443222222222200000000", '1' <repeats 13 times>, "221112468985420////./0124787520//000000..-----../", '0' <repeats 18 times>, "1111111110000000"...
(gdb) print (*(FFusionBuffer*)tempFrame.opaque).frame.data[0]
$23 = (uint8_t *) 0x0

the first is the one with the frame, the second is the one passed to DrawBand?. this happens for every frame that should be displayed but isn't.

it's either a bug in FFusionGetBuffer or in vp3.c.

05/09/08 01:13:02 changed by astrange

  • attachment copyavframe.diff added.

fixes VP3, breaks H.264+PACKED_QUICKTIME_KNOWS_ORDER

05/17/08 22:56:28 changed by astrange

  • status changed from new to closed.
  • resolution set to fixed.

(In [879]) Work around https://roundup.mplayerhq.hu/roundup/ffmpeg/issue327 (could cause a crash on AppleTV only). Closes #336.