diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | ext/annodex/gstcmmldec.c | 9 | ||||
-rw-r--r-- | ext/annodex/gstcmmlenc.h | 2 |
3 files changed, 23 insertions, 3 deletions
@@ -1,3 +1,18 @@ +2006-09-04 Wim Taymans <wim@fluendo.com> + + Patch by: Alessandro Decina <alessandro at nnva dot org> + + * ext/annodex/gstcmmldec.c: (gst_cmml_dec_chain): + Seeking back in a file containing a CMML stream errors out if the seek + goes back up to the CMML headers. This is because after the seek the xml + processing instruction <?xml ...?> is submitted to the xml parser again, + which results in an error. The attached patch fixes the problem. + Fixes #353908. + + * ext/annodex/gstcmmlenc.h: + Fix authors name. + + 2006-08-28 Andy Wingo <wingo@pobox.com> * ext/raw1394/gstdv1394src.c (gst_dv1394src_from_raw1394handle): diff --git a/ext/annodex/gstcmmldec.c b/ext/annodex/gstcmmldec.c index b3884880..75038c61 100644 --- a/ext/annodex/gstcmmldec.c +++ b/ext/annodex/gstcmmldec.c @@ -391,10 +391,15 @@ gst_cmml_dec_chain (GstPad * pad, GstBuffer * buffer) /* handle the packet. the handler will set dec->flow_return */ switch (packet) { case GST_CMML_PACKET_IDENT_HEADER: - gst_cmml_dec_parse_ident_header (dec, buffer); + if (dec->sent_root == FALSE) + /* don't parse the ident again in case of seeking to the beginning */ + gst_cmml_dec_parse_ident_header (dec, buffer); break; case GST_CMML_PACKET_FIRST_HEADER: - gst_cmml_dec_parse_first_header (dec, buffer); + if (dec->sent_root == FALSE) + /* don't parse the xml preamble if it has already been parsed because it + * would error out, so seeking to the beginning would fail */ + gst_cmml_dec_parse_first_header (dec, buffer); break; case GST_CMML_PACKET_SECOND_HEADER: case GST_CMML_PACKET_CLIP: diff --git a/ext/annodex/gstcmmlenc.h b/ext/annodex/gstcmmlenc.h index d8e07ed2..1c037421 100644 --- a/ext/annodex/gstcmmlenc.h +++ b/ext/annodex/gstcmmlenc.h @@ -3,7 +3,7 @@ * Copyright (C) 2005 Alessandro Decina * * Authors: - * Alessandro Encina <alessandro@nnva.org> + * Alessandro Decina <alessandro@nnva.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public |