Dark Shikari
11th August 2007, 20:04
For the hell of it, I figured I would spend an hour or two figuring out how x264 handles multiple reference frames, and, to be silly, try to make it use more than 16 :p
It crashed on anything over 17 even when I fixed the mallocs and such (I could probably find and fix this, but it doesn't matter for the purpose of this test). Maybe there's an off-by-one error somewhere that allows it to handle 17 without serious modifications, I don't know. So I created a stream with 17 reference frames, which as far as I know is completely out-of-spec and should fail miserably on playback.
Now, strangely enough, it worked on libavcodec (FFDShow and VLC), but not surprisingly failed under CoreAVC. How tolerant is libavcodec of these kinds of incompatibilities anyways? If someone made a stream with 100 reference frames, would it break?
Link to H.264 sample encode, test it on your decoder for laughs. (http://www.mediafire.com/?be0npcnyhxn)
It crashed on anything over 17 even when I fixed the mallocs and such (I could probably find and fix this, but it doesn't matter for the purpose of this test). Maybe there's an off-by-one error somewhere that allows it to handle 17 without serious modifications, I don't know. So I created a stream with 17 reference frames, which as far as I know is completely out-of-spec and should fail miserably on playback.
Now, strangely enough, it worked on libavcodec (FFDShow and VLC), but not surprisingly failed under CoreAVC. How tolerant is libavcodec of these kinds of incompatibilities anyways? If someone made a stream with 100 reference frames, would it break?
Link to H.264 sample encode, test it on your decoder for laughs. (http://www.mediafire.com/?be0npcnyhxn)