Greg Parker:
Go back to the board. Symptom: the object was allocated as an NSPathStore2
. Symptom: the object’s isa
pointer is now 0xa0050000
, which is not NSPathStore2
. What should the isa
pointer’s value have been? otool
and objc_getClass()
agreed: the correct isa
pointer should have been 0xa005f198
. 0xa0050000
is suspiciously similar. Theory: something had cleared two bytes of this object, leaving a nonsense isa pointer. @"tzm-Latn"
was a red herring.
Great post.
Chris Adamson:
To summarize the spec: a client retrieves a playlist (an .m3u8, which is basically a UTF-8′ed version of the old WinAmp playlist format) that lists segments of the stream as flat files (often .m4a’s for audio, and .ts for video, which is an MPEG-2 transport stream, though Apple’s payload is presumably H.264/AAC). The client downloads these flat files and sends them to its local media player, and refreshes the playlist periodically to see if there are new files to fetch. The sizing and timing is configurable, but I think the defaults are like a 60-second refresh cycle on the playlist, and segments of about 10 seconds each.