summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/demux_y4m.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/libmpdemux/demux_y4m.c b/libmpdemux/demux_y4m.c
index 5484e2c7cd..298cbce006 100644
--- a/libmpdemux/demux_y4m.c
+++ b/libmpdemux/demux_y4m.c
@@ -81,7 +81,17 @@ int demux_y4m_fill_buffer(demuxer_t *demux) {
if (priv->is_older)
{
- stream_skip(demux->stream, 6); /* FRAME\n */
+ int c;
+
+ c = stream_read_char(demux->stream); /* F */
+ if (c == -256)
+ return 0; /* EOF */
+ if (c != 'F')
+ {
+ printf("Bad frame at %p\n", stream_tell(demux->stream)-1);
+ return 0;
+ }
+ stream_skip(demux->stream, 5); /* RAME\n */
stream_read(demux->stream, buf[0], size);
stream_read(demux->stream, buf[1], size/4);
stream_read(demux->stream, buf[2], size/4);