From df551c0af4d2893e157afcc8af9c274d5546596b Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Tue, 13 Sep 2011 20:40:35 -0300 Subject: [PATCH] mpegvideoparse: Handle properly frame detection Handle the case where we have buffers containing no startcode in the middle of a frame properly. --- gst/videoparsers/gstmpegvideoparse.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c index f1593e1066..5db0080a1b 100644 --- a/gst/videoparsers/gstmpegvideoparse.c +++ b/gst/videoparsers/gstmpegvideoparse.c @@ -493,9 +493,16 @@ end: } else if (GST_BASE_PARSE_DRAINING (parse)) { *framesize = GST_BUFFER_SIZE (buf); ret = TRUE; + } else { /* resume scan where we left it */ - mpvparse->last_sc = GST_BUFFER_SIZE (buf); + if (!mpvparse->last_sc) + *skipsize = mpvparse->last_sc = GST_BUFFER_SIZE (buf) - 3; + else if (mpvparse->typeoffsize) + mpvparse->last_sc = GST_BUFFER_SIZE (buf) - 3; + else + *skipsize = 0; + /* request best next available */ *framesize = G_MAXUINT; ret = FALSE;