[gstreamer-bugs] [Bug 351659] [wavpackparse] fix resync in push mode, implement it in pull mode

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Fri Aug 18 14:40:50 PDT 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=351659
 GStreamer | gst-plugins-bad | Ver: HEAD CVS


Tim-Philipp Müller changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #71035|none                        |committed
               Flag|                            |
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
            Summary|[PATCH] fix resync in push  |[wavpackparse] fix resync in
                   |mode, implement it in pull  |push mode, implement it in
                   |mode                        |pull mode
   Target Milestone|HEAD                        |0.10.4




------- Comment #4 from Tim-Philipp Müller  2006-08-18 21:40 UTC -------

 - gst_wavpack_parse_find_marker(): add guard against size < 4

 - gst_wavpack_parse_resync_loop(): the sync logic isn't really safe:
   both times where you call gst_wavpack_read_header() you can't know/
   haven't checked that there is actually sizeof(WavpackHeader) data,
   so there are potential crashers here if you reach the end of the
   file and the len is < sizeof(WavpackHeader) or if there's a sync
   marker towards the end of the buffer without sizeof(WavpackHeader)
   data left.

 - also gst_wavpack_parse_resync_loop(): return flow return as
   return value, and initialize local variable to UNEXPECTED
   (*flow_ret was never set to anything if it bailed out right
   away, so the loop function would have checked an uninitialized
   flow value, no?)

 - s/wavpackparse/parse/ as variable name at least for new functions
   (makes code easier to read since lines are shorter and wrapped
   less often)


Committed with changes (let me know if the changes broke anything):

 2006-08-18  Tim-Philipp Müller  <tim at centricular dot net>

        Based on patch by: Sebastian Dröge <slomo at circular-chaos.org>

        * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_sink_event),
        (gst_wavpack_parse_get_upstream_length),
        (gst_wavpack_parse_find_marker), (gst_wavpack_parse_resync_loop),
        (gst_wavpack_parse_loop), (gst_wavpack_parse_resync_adapter):
          Fix resyncing in push mode not stopping re-syncing at embedded
          zeroes; skip garbage between frames in pull mode as well if
          necessary; use gst_pad_query_peer_duration(); push EOS and
          NEWSEGMENT event in right direction (#351659).


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.




More information about the Gstreamer-bugs mailing list