[Bug 675773] Reverse video playback does not work anymore

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jun 19 18:35:24 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=675773
  GStreamer | gst-plugins-base | 0.10.x

Jan Schmidt <thaytan> changed:

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

--- Comment #19 from Jan Schmidt <thaytan at mad.scientist.com> 2012-06-20 01:35:19 UTC ---
With these committed to 0.10, all the formats I think should work do, except
mov/mp4+h264 files still seem weird:

commit f1c14fc5518ac735474d8ace56f365ff2d3c2d96
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 20 03:10:01 2012 +1000

    videodecoder: Calculate correct durations interpolating

    One field = half the FPS.

commit 07a16d541d9ac319d40e796950c97640e45ee863
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Sun Jun 17 20:27:33 2012 +1000

    videodecoder: Clear the last_out_frame_number when flushing

    Don't mis-detect reordered output after a seek. Instead, clear
    the last_out_frame_number to an invalid value and wait for at
    least one frame.

commit db4e440d385c2e5583dfdf1ef22b5719e447c7aa
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 20 00:46:05 2012 +1000

    videodecoder: EOS handling for reverse mode.

    Handle EOS correctly in reverse mode by treating it
    as a final discont and flushing out whatever we can.

commit 178a3b08d21383d29af4d0fe21b0643a6feaa1e4
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 20 00:42:42 2012 +1000

    videodecoder: misc improvements/changes

    Use g_list_free_full instead of walking lists twice when freeing
    them.

    Remove pointless clause in gst_video_decoder_chain that doesn't
    actually have any effect.

    Other changes to make the code slightly more like the 0.11
    version.

commit c580119af283892a150a64886a1ebf966452b0e9
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 20 00:36:38 2012 +1000

    videodecoder: Improve timestamp handling.

    Fix problems with timestamp calculations when the incoming
    buffers have sparse timestamps (as for theora) and reverse
    playback. Fixes #675773

commit 9c8f7ba6aec561c724a0363fc5d5394a28a26ce4
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 20 00:22:25 2012 +1000

    videodecoder: Re-work reverse playback handling

    Move processing of the gather list into the flush_parse function.

    Add a last ditch attempt to apply timestamps to outgoing buffers
    when walking backwards through decoded frames. Requires that each
    gathered region has at least one timestamp.

    Make sure to remove decoded packets from the decode list when
    they are sent - otherwise the list just grows on each cycle, with
    more and more frames being decoded and then clipped away.

    Break out of the processing loop early on a bad flow return to make
    seeking more responsive.

    Use the gst_video_decoder_clip_and_push_buf function in reverse
    mode, instead of pushing all buffers arbitrarily.

    A couple of small efficiency gains in the list handling, by moving
    list elements directly and not reallocating, and by reversing
    and concatenating the gather list instead of moving it one node
    at a time.

    Rename the gst_video_decoder_do_finish_frame function to
    gst_video_decoder_release_frame.

commit dfc4ca16c2fa99fd4b554de2dcdffecccbfa1e3b
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Wed Jun 20 00:08:57 2012 +1000

    videodecoder: Split gst_video_decoder_finish_frame

    Split the 2nd half of the gst_video_decoder_finish_frame function
    out to gst_video_decoder_clip_and_push_buf.

commit c99f7713c5e725022fc0d381bb56e3de52025adb
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Tue Jun 19 23:46:44 2012 +1000

    videodecoder: Rename queued list to output_queued for clarity.

    Use g_list_free_full instead of g_list_foreach + g_list_free

commit b941b1034d61244c97a4aab9653c85381e0ec6b6
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Tue Jun 19 23:43:27 2012 +1000

    videodecoder: Small cleanups

    Remove extra deref using a local var, and add/change some doc comments
    and debug statements

commit 1b0a41dcd3ebb9992419a4221189f6511c60565f
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Tue Jun 19 23:28:08 2012 +1000

    videodecoder: Rename gst_video_decoder_have_frame_2 function

    Rename gst_video_decoder_have_frame_2 to
    gst_video_decoder_decode_frame and pass the frame to process
    directly, rather than using the current_frame pointer as a holding
    pen.

    Move the negative rate handling out of the function to where it
    is needed, and remove the process flag.

commit 79b772ed9b2862b5360ef123bc2c46a48c5ef543
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Tue Jun 19 23:16:12 2012 +1000

    videodecoder: Extend docs and add comments

    Update the documentation block for the base class, and add a comment
    block about the reverse-playback logic and implementation.

commit 96883b5fc575b2114c1fb4f240f0e687081c3d80
Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Sun Jun 17 20:25:42 2012 +1000

    theoradec: Clear the base class packetized flag.

    The data has to be passed through the parser to get the
    correct SYNC_POINT flag set on each packet, for reverse
    playback to work.

-- 
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