[Bug 731974] videodecoder: parse source data until a frame is obtained

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jul 3 00:49:48 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=731974
  GStreamer | gst-plugins-base | 1.2.4

Gwenole Beauchesne <gb.devel> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #14 from Gwenole Beauchesne <gb.devel at gmail.com> 2014-07-03 07:49:41 UTC ---
commit fb44ec9615489f8baa388f658a86991635697697
Author: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
Date:   Fri Jun 20 18:02:31 2014 +0200

    videodecoder: parse any source data that is still available.

    Fix gst_video_decoder_parse_available() to really parse any pending
    source data that is still available in the adapter. This is a memory
    optimization to avoid expansion of video packed added to the adapter,
    but also a fix to EOS condition when the subclass parse() function
    ultimately only needed to call into gvd_have_frame() and no additional
    source bytes were consumed, i.e. gvd_add_to_frame() is not called.

    This situation can occur when decoding H.264 streams in byte-stream/nal
    mode for instance. A decoder always requires the next NAL unit to be
    parsed so that to determine picture boundaries. When a new picture is
    found, no byte is consumed (i.e. gvd_add_to_frame() is not called)
    but gvd_have_frame() is called (i.e. priv->current_frame is gone).

    Also make sure to avoid infinite loops caused by incorrect subclass
    parse() implementations. This can occur when no byte gets consumed
    and no appropriate indication (GST_VIDEO_DECODER_FLOW_NEED_DATA) is
    returned.

    https://bugzilla.gnome.org/show_bug.cgi?id=731974

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


More information about the gstreamer-bugs mailing list