It's my first question here, so don't be severe.
I'm playing video from the net using AVPlayer. I output the current frame using AVPlayerItemVideoOutput attached to the AVPlayerItem played by the AVPlayer. To check if new frame is ready I call [AVPlayerItemVideoOutput hasNewPixelBufferForItemTime], then output it using OpenGL ES. All works perfectly if I read mp4, but if I try to read m3u8, it works for about 1 second(~30 frames), but after this period [AVPlayerItemVideoOutput hasNewPixelBufferForItemTime] starts returning FALSE only, so the current frame isn't updated.
In case I seek the current frame using [AVPlayer seekToTime] before this problem's first occur all goes normally.
Test m3u8 video I use lives here:
http://195.16.112.71/adaptive/3006a26a-9154-4b38-a327-4fa2a2381ae6.video/3006a26a-9154-4b38-a327-4fa2a2381ae6.m3u8
To reproduce this problem I modified Apple's sample AVPlayerDemo, here is it: https://yadi.sk/d/T2aVGoKnWmf5Z
The main change is in that I call [AVPlayerDemoPlaybackViewController update] which calls mentioned [AVPlayerItemVideoOutput hasNewPixelBufferForItemTime]. This function has static variable counter which stores the amount of successful [AVPlayerItemVideoOutput copyPixelBufferForItemTime] calls.
Video Url is set in [AVPlayerDemoPlaybackViewController setURL], it's hardcoded in the beginning of the function. By default its value points to m3u8 video, which reproduces the problem, in this case the average value of counter is about 30, after the frame with that index [AVPlayerItemVideoOutput hasNewPixelBufferForItemTime] returns FALSE only.
In the case when other video Url is used(see beginning of [AVPlayerDemoPlaybackViewController setURL] - there is an alternative Url you can uncomment), all the frames are successfully read.
Any help will be appreciated!