[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