platform/upstream/gstreamer.git
12 years agodecodebin2: Demote WARNING to DEBUG
Edward Hervey [Wed, 11 Jul 2012 08:31:09 +0000 (10:31 +0200)]
decodebin2: Demote WARNING to DEBUG

Delaying auto-plugging is quite common

12 years agooggdemux: Push out STREAM_START events when needed
Edward Hervey [Tue, 10 Jul 2012 16:37:49 +0000 (18:37 +0200)]
oggdemux: Push out STREAM_START events when needed

12 years agoplayback: Remove custom stream-change event
Edward Hervey [Tue, 10 Jul 2012 16:34:41 +0000 (18:34 +0200)]
playback: Remove custom stream-change event

Applications can now use the STREAM_START message to know if a new
stream has started

12 years agobaseaudiosink: Resync when ringbuffer resets
Edward Hervey [Tue, 10 Jul 2012 16:32:13 +0000 (18:32 +0200)]
baseaudiosink: Resync when ringbuffer resets

When the ringbuffer gets restarted (like in setcaps), we *will* have
to resync against the new values.

Without this we end up blindly assuming the new samples align to the
old ones.

12 years agodecodebin2: improve debug
Wim Taymans [Wed, 11 Jul 2012 13:39:24 +0000 (15:39 +0200)]
decodebin2: improve debug

12 years agovideoconvert: Fix compiler warnings
Sebastian Dröge [Wed, 11 Jul 2012 10:57:28 +0000 (12:57 +0200)]
videoconvert: Fix compiler warnings

videoconvert.c: In function 'videoconvert_convert_new':
videoconvert.c:287:11: error: 'Kr' may be used uninitialized in this function
videoconvert.c:287:15: error: 'Kb' may be used uninitialized in this function

12 years agowin32: Update .def files for new API
Edward Hervey [Tue, 10 Jul 2012 10:37:14 +0000 (12:37 +0200)]
win32: Update .def files for new API

12 years agortsp: Update the initial_buffer when merging RTSP Connections
Ognyan Tonchev [Tue, 10 Jul 2012 09:34:47 +0000 (11:34 +0200)]
rtsp: Update the initial_buffer when merging RTSP Connections

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

12 years agovideoconvert: fix offset and scale for GRAY
Wim Taymans [Tue, 10 Jul 2012 09:06:02 +0000 (11:06 +0200)]
videoconvert: fix offset and scale for GRAY

Fix the calculation of the offset and scale values for GRAY formats. We also
need to set the offset and base of the chroma values to match what the unpack
function creates.

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

12 years agovisual: use right base class name
Wim Taymans [Tue, 10 Jul 2012 08:07:08 +0000 (10:07 +0200)]
visual: use right base class name

Rename to GstAudioBaseVisualizer. Also avoids conflict with a base class with
the same name in -bad.

12 years agotests: use more expressive check assertion macros
Stefan Sauer [Mon, 9 Jul 2012 17:57:50 +0000 (19:57 +0200)]
tests: use more expressive check assertion macros

12 years agovisual: port to baseaudiovisualizer
Stefan Sauer [Sun, 8 Jul 2012 17:19:38 +0000 (19:19 +0200)]
visual: port to baseaudiovisualizer

Add a copy of the base class until it is stable. Right now the extra effects of
the baseclass are not supported as the sublass overwrites the buffer instead of
blending.

12 years agovisual: split the plugin wrapper and the actual element
Stefan Sauer [Mon, 25 Jun 2012 20:42:44 +0000 (22:42 +0200)]
visual: split the plugin wrapper and the actual element

12 years agofix for allocator API changes
Wim Taymans [Mon, 9 Jul 2012 14:26:17 +0000 (16:26 +0200)]
fix for allocator API changes

12 years agotests: update GstVideoFilter structure size for ABI check on x86
Tim-Philipp Müller [Mon, 9 Jul 2012 13:37:11 +0000 (14:37 +0100)]
tests: update GstVideoFilter structure size for ABI check on x86

12 years agoriff: rename field in gst_riff_strf_auds
Mark Nauwelaerts [Mon, 9 Jul 2012 10:27:22 +0000 (12:27 +0200)]
riff: rename field in gst_riff_strf_auds

... which is supposed to align with WAVEFORMATEX, but has confusing
names compared to the last 2 fields in the latter (and still
misses 1 field compared to the latter).

12 years agodecodebin: make GValueArray arguments in autoplug-* signals static scope to avoid...
Tim-Philipp Müller [Mon, 9 Jul 2012 07:35:22 +0000 (08:35 +0100)]
decodebin: make GValueArray arguments in autoplug-* signals static scope to avoid copies

12 years agogst-discoverer: clean up some code duplication
Anton Belka [Sat, 7 Jul 2012 11:10:45 +0000 (14:10 +0300)]
gst-discoverer: clean up some code duplication

Use print_tag_foreach() instead of print_tag().

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

12 years agoriff: fixup 0.11 port mishap in reading extra data length field
Mark Nauwelaerts [Fri, 6 Jul 2012 12:57:51 +0000 (14:57 +0200)]
riff: fixup 0.11 port mishap in reading extra data length field

Fixes #679437.

12 years agomultifdsink: remove deprecated and unused "mode" property
Tim-Philipp Müller [Fri, 6 Jul 2012 11:43:26 +0000 (12:43 +0100)]
multifdsink: remove deprecated and unused "mode" property

12 years agoplaybin: don't use deprecated textoverlay properties
Tim-Philipp Müller [Fri, 6 Jul 2012 11:37:56 +0000 (12:37 +0100)]
playbin: don't use deprecated textoverlay properties

12 years agopango: remove deprecated valign and halign properties
Tim-Philipp Müller [Fri, 6 Jul 2012 11:34:46 +0000 (12:34 +0100)]
pango: remove deprecated valign and halign properties

Replaced by valignment and halignment (enum-based now rather than strings).

12 years agoupdate for query api changes
Wim Taymans [Fri, 6 Jul 2012 09:50:44 +0000 (11:50 +0200)]
update for query api changes

12 years agoupdate for query api changes
Wim Taymans [Fri, 6 Jul 2012 09:23:48 +0000 (11:23 +0200)]
update for query api changes

12 years agoupdate for allocation query changes
Wim Taymans [Fri, 6 Jul 2012 09:01:56 +0000 (11:01 +0200)]
update for allocation query changes

12 years agoRevert "videooverlaycomposition: ensure proper buffer copy"
Mark Nauwelaerts [Thu, 5 Jul 2012 14:29:42 +0000 (16:29 +0200)]
Revert "videooverlaycomposition: ensure proper buffer copy"

This reverts commit 1d413ace640c679ba7fbecec07f2bea3d98360b2.

Plain gst_buffer_copy() is now doing the expected ...

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

12 years agouridecodebin: Fix double-unref when iterating over element pads
Sebastian Dröge [Thu, 5 Jul 2012 13:34:44 +0000 (15:34 +0200)]
uridecodebin: Fix double-unref when iterating over element pads

12 years agovideo: Document buffer ownership of the GstVideoCodecFrame more explicit
Sebastian Dröge [Thu, 5 Jul 2012 12:29:42 +0000 (14:29 +0200)]
video: Document buffer ownership of the GstVideoCodecFrame more explicit

And also the implications of calling the finish() functions.

12 years agovideodecoder: Make sure the buffer is writable before changing fields in finish_frame...
Sebastian Dröge [Thu, 5 Jul 2012 11:38:48 +0000 (13:38 +0200)]
videodecoder: Make sure the buffer is writable before changing fields in finish_frame() too

We can't be sure that we have the one and only reference here either.

12 years agovideodecoder: Create a complete subbuffer before pushing
Sebastian Dröge [Thu, 5 Jul 2012 11:37:37 +0000 (13:37 +0200)]
videodecoder: Create a complete subbuffer before pushing

Otherwise we can't be sure that we are allowed to change the
buffer fields later for clipping.

12 years agogst: Implement segment-done event
Sebastian Dröge [Thu, 5 Jul 2012 11:06:04 +0000 (13:06 +0200)]
gst: Implement segment-done event

12 years agoaudiocdsrc: Remove the TOC query handling
Sebastian Dröge [Thu, 5 Jul 2012 10:35:35 +0000 (12:35 +0200)]
audiocdsrc: Remove the TOC query handling

12 years agodiscoverer: Update for GstToc API changes
Sebastian Dröge [Thu, 5 Jul 2012 09:03:52 +0000 (11:03 +0200)]
discoverer: Update for GstToc API changes

12 years agoaudiocdsrc: Update for TOC API changes
Sebastian Dröge [Tue, 3 Jul 2012 16:47:25 +0000 (18:47 +0200)]
audiocdsrc: Update for TOC API changes

12 years agoupdate for miniobject changes
Wim Taymans [Wed, 4 Jul 2012 15:06:28 +0000 (17:06 +0200)]
update for miniobject changes

12 years agovideodec: add some assert
Wim Taymans [Wed, 4 Jul 2012 07:14:51 +0000 (09:14 +0200)]
videodec: add some assert

12 years agovideodec: clear the right variable
Wim Taymans [Wed, 4 Jul 2012 07:14:27 +0000 (09:14 +0200)]
videodec: clear the right variable

12 years agoplaysink: make extra sure to pass 64-bit integer to g_object_set when setting ts...
Tim-Philipp Müller [Tue, 3 Jul 2012 19:07:44 +0000 (20:07 +0100)]
playsink: make extra sure to pass 64-bit integer to g_object_set when setting ts-offset

Might just be paranoia, but better safe than sorry. Make sure
the compiler really always passes a 64-bit integer to the
g_object_set() vararg function.

12 years agoaudiocdsrc: Only push TOC event, the TOC message is handled by the sinks
Sebastian Dröge [Tue, 3 Jul 2012 15:31:54 +0000 (17:31 +0200)]
audiocdsrc: Only push TOC event, the TOC message is handled by the sinks

12 years agodocs: update raw audio media type design docs a bit
Tim-Philipp Müller [Tue, 3 Jul 2012 13:59:40 +0000 (14:59 +0100)]
docs: update raw audio media type design docs a bit

We now have a layout field and a channel-mask field.

12 years agopango: query downstream for video overlay composition meta support
Mark Nauwelaerts [Tue, 3 Jul 2012 12:32:02 +0000 (14:32 +0200)]
pango: query downstream for video overlay composition meta support

12 years agopango: adjust to modified overlay composition API
Mark Nauwelaerts [Tue, 3 Jul 2012 12:30:39 +0000 (14:30 +0200)]
pango: adjust to modified overlay composition API

12 years agovideooverlaycomposition: make API meta oriented
Mark Nauwelaerts [Tue, 3 Jul 2012 10:59:59 +0000 (12:59 +0200)]
videooverlaycomposition: make API meta oriented

... and as such more consistent with other buffer meta components.

12 years agovideooverlaycomposition: remove some post-port obsolete parts
Mark Nauwelaerts [Tue, 3 Jul 2012 10:58:38 +0000 (12:58 +0200)]
videooverlaycomposition: remove some post-port obsolete parts

12 years agopango: only map video buffer memory if actually needed
Tim-Philipp Müller [Mon, 2 Jul 2012 17:54:55 +0000 (18:54 +0100)]
pango: only map video buffer memory if actually needed

No need to map the video buffer if we're just going to attach
the meta; but if we map, we should do so in READWRITE mode.

12 years agopango: pass pre-multiplied alpha to overlay composition directly
Tim-Philipp Müller [Mon, 2 Jul 2012 17:49:38 +0000 (18:49 +0100)]
pango: pass pre-multiplied alpha to overlay composition directly

We now support pre-multiplied alpha in the overlay composition API,
and can avoid multiple conversions if the the overlay also supports
pre-multiplied alpha. We should probably also have mapped the
buffer as READWRITE when unpremultiplying.

12 years agovideooverlaycomposition: ensure proper buffer copy
Mark Nauwelaerts [Mon, 2 Jul 2012 12:26:50 +0000 (14:26 +0200)]
videooverlaycomposition: ensure proper buffer copy

This is only temporary and could and should be modified to use
regular buffer copy once https://bugzilla.gnome.org/show_bug.cgi?id=679145
is resolved.

12 years agotests: video: port video overlay composition test to 0.11
Mark Nauwelaerts [Fri, 29 Jun 2012 16:55:15 +0000 (18:55 +0200)]
tests: video: port video overlay composition test to 0.11

12 years agotests: video: ensure initialization and plug sample leak
Mark Nauwelaerts [Mon, 2 Jul 2012 12:22:30 +0000 (14:22 +0200)]
tests: video: ensure initialization and plug sample leak

12 years agotests: video: tweak RGB caps test
Mark Nauwelaerts [Mon, 2 Jul 2012 09:46:23 +0000 (11:46 +0200)]
tests: video: tweak RGB caps test

12 years agotests: add test for switching video effects at run time
Tim-Philipp Müller [Sat, 30 Jun 2012 15:50:10 +0000 (16:50 +0100)]
tests: add test for switching video effects at run time

Bases on test app in bug #614296. Doesn't work reliably yet,
leads to not-negotiated errors sooner or later, even when
it's the same element being re-plugged.

12 years agovideooverlaycomposition: fix some refcounting and avoid possible NULL use
Mark Nauwelaerts [Fri, 29 Jun 2012 16:54:51 +0000 (18:54 +0200)]
videooverlaycomposition: fix some refcounting and avoid possible NULL use

12 years agoexamples: update for new force-aspect-ratio default
Tim-Philipp Müller [Fri, 29 Jun 2012 10:46:23 +0000 (11:46 +0100)]
examples: update for new force-aspect-ratio default

12 years agoximagesink, xvimagesink: default to force-aspect-ratio=true
Tim-Philipp Müller [Fri, 29 Jun 2012 10:43:46 +0000 (11:43 +0100)]
ximagesink, xvimagesink: default to force-aspect-ratio=true

12 years agoaudiocdsrc: send TOC event downstream if we're in continuous mode
Tim-Philipp Müller [Thu, 28 Jun 2012 22:41:16 +0000 (23:41 +0100)]
audiocdsrc: send TOC event downstream if we're in continuous mode

If we're in continuous mode where we'll play the entire CD from
start to finish, send a TOC event downstream so any downstream
muxers can write a TOC to indicate where the various tracks
start and end.

12 years agopango: remove support for video/x-surface again which is 0.10 stuff
Tim-Philipp Müller [Thu, 28 Jun 2012 22:15:34 +0000 (23:15 +0100)]
pango: remove support for video/x-surface again which is 0.10 stuff

This needs to be done and can be done differently/properly in 0.11.

12 years agotheoraenc: clean up some property descriptions
Tim-Philipp Müller [Thu, 28 Jun 2012 21:59:14 +0000 (22:59 +0100)]
theoraenc: clean up some property descriptions

We now require a sufficiently-recent libtheora.

12 years agopango: use ported GstVideoOverlayComposition functionality
Mark Nauwelaerts [Thu, 28 Jun 2012 16:14:10 +0000 (18:14 +0200)]
pango: use ported GstVideoOverlayComposition functionality

Based on commits by Thibault Saunier <thibault.saunier@collabora.co.uk>

12 years agovideooverlaycomposition: port to 0.11
Mark Nauwelaerts [Thu, 28 Jun 2012 16:16:20 +0000 (18:16 +0200)]
videooverlaycomposition: port to 0.11

... which also entails porting video-blend

Fixes #678384.

12 years agotests: update unit test for vorbistag change to GST_TAG_DATE_TIME
Tim-Philipp Müller [Wed, 27 Jun 2012 22:50:07 +0000 (23:50 +0100)]
tests: update unit test for vorbistag change to GST_TAG_DATE_TIME

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

12 years agovorbistag: store DATE tag in GST_TAG_DATE_TIME instead of GST_TAG_DATE
Oleksij Rempel [Wed, 27 Jun 2012 14:25:06 +0000 (16:25 +0200)]
vorbistag: store DATE tag in GST_TAG_DATE_TIME instead of GST_TAG_DATE

The DATE field may contain dates, partial dates, or dates with
time. Store the result in GST_TAG_DATE_TIME, so we can express
properly which fields are present or not, and can store the
time if there is one, and can serialise and deserialise the
tag without loss of information and without making up
information that's not there.

Instead of using short YYYY-MM-DD form we will store
long YYYY-MM-DDTHH:MM:SS+TS date and time.

According to this documentation we can do it:
http://wiki.xiph.org/VorbisComment#Date_and_time

This datetime format is needed by apps where more information
is needed. For example voice, meeting recording, etc.

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

12 years agovideotestsrc: set DTS and PTS, sync on DTS
Wim Taymans [Wed, 27 Jun 2012 15:18:35 +0000 (17:18 +0200)]
videotestsrc: set DTS and PTS, sync on DTS

12 years agovideoencoder: make PTS and DTS handling more explicit
Wim Taymans [Wed, 27 Jun 2012 14:45:41 +0000 (16:45 +0200)]
videoencoder: make PTS and DTS handling more explicit

12 years agovideodecoder: avoid crash when getting duration
Wim Taymans [Wed, 27 Jun 2012 14:38:38 +0000 (16:38 +0200)]
videodecoder: avoid crash when getting duration

Check that we have a valid output_state before attempting to use it to calculate
the duration of a buffer. It is possible that we don't have a state yet, for
example when we are dropping the first buffers.

12 years agovideodecoder: Use GSlice to allocate the timestamp tracking structures
Sebastian Dröge [Wed, 27 Jun 2012 14:42:10 +0000 (16:42 +0200)]
videodecoder: Use GSlice to allocate the timestamp tracking structures

12 years agovideodecoder: small cleanups
Wim Taymans [Wed, 27 Jun 2012 12:13:02 +0000 (14:13 +0200)]
videodecoder: small cleanups

12 years agovideodecoder: improve PTS and DTS handling
Wim Taymans [Wed, 27 Jun 2012 11:48:58 +0000 (13:48 +0200)]
videodecoder: improve PTS and DTS handling

Also keep track of the DTS and use it to set PTS on keyframes.
Set DTS on outgoing buffers.

12 years agoaudiocdsrc: post TOC message on the bus on start-up
Tim-Philipp Müller [Tue, 26 Jun 2012 18:50:49 +0000 (19:50 +0100)]
audiocdsrc: post TOC message on the bus on start-up

First attempt at implement the various GstToc API
bits in GstAudioCdSrc.

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

12 years agofix interlace-mode
Wim Taymans [Tue, 26 Jun 2012 15:09:25 +0000 (17:09 +0200)]
fix interlace-mode

12 years agovideodecoder: Don't leak a ref to frames in reverse playback
Jan Schmidt [Mon, 25 Jun 2012 15:33:10 +0000 (01:33 +1000)]
videodecoder: Don't leak a ref to frames in reverse playback

12 years agovideo-frame: handle map errors
Wim Taymans [Tue, 26 Jun 2012 09:10:28 +0000 (11:10 +0200)]
video-frame: handle map errors

Error out when something failed

12 years agovideometa: improve debug error reporting
Wim Taymans [Tue, 26 Jun 2012 09:09:50 +0000 (11:09 +0200)]
videometa: improve debug error reporting

12 years agoplaysink: The default signal handler should be the one that triggers pad blocks and...
Sebastian Dröge [Tue, 26 Jun 2012 09:04:23 +0000 (11:04 +0200)]
playsink: The default signal handler should be the one that triggers pad blocks and reconfiguration

Conflicts:

gst/playback/gstplaysink.c

12 years agoplaysink: Make sure to always block all pads before reconfiguring the pipeline
Sebastian Dröge [Tue, 26 Jun 2012 08:54:18 +0000 (10:54 +0200)]
playsink: Make sure to always block all pads before reconfiguring the pipeline

Fixes bug #678762.

Conflicts:

gst/playback/gstplaysink.c

12 years agoplaysink: Prevent NULL pointer dereference in last change
Sebastian Dröge [Mon, 25 Jun 2012 14:07:31 +0000 (16:07 +0200)]
playsink: Prevent NULL pointer dereference in last change

12 years agoplaysink: Unlink pads when switching between enabling/disabling the deinterlace chain
Sebastian Dröge [Mon, 25 Jun 2012 14:01:06 +0000 (16:01 +0200)]
playsink: Unlink pads when switching between enabling/disabling the deinterlace chain

See bug #678762.

12 years agoplaysink: Connect to the value-changed signal of the child colorbalance element and...
Sebastian Dröge [Mon, 25 Jun 2012 13:21:07 +0000 (15:21 +0200)]
playsink: Connect to the value-changed signal of the child colorbalance element and proxy it

12 years agoplaysink: Only remove the xoverlay/colorbalance elements when necessary
Sebastian Dröge [Mon, 25 Jun 2012 13:14:21 +0000 (15:14 +0200)]
playsink: Only remove the xoverlay/colorbalance elements when necessary

They are not added again by every code path, e.g. when switching
only the deinterlace flag and are missing then.

Fixes bug #678763.

Conflicts:

gst/playback/gstplaysink.c

12 years agovideoutils: Use g_list_free_full instead of g_list_foreach and g_list_free
Sreerenj Balachandran [Fri, 22 Jun 2012 08:51:04 +0000 (11:51 +0300)]
videoutils: Use g_list_free_full instead of g_list_foreach and g_list_free

12 years agopbutils: update discoverer for GstToc API changes
Tim-Philipp Müller [Sun, 24 Jun 2012 21:47:05 +0000 (22:47 +0100)]
pbutils: update discoverer for GstToc API changes

12 years agoaudio: make sure g-i doesn't parse orc-generated gstaudiopack.h file
Tim-Philipp Müller [Sat, 23 Jun 2012 23:28:40 +0000 (00:28 +0100)]
audio: make sure g-i doesn't parse orc-generated gstaudiopack.h file

12 years agotags: use gst_tag_register_static()
Tim-Philipp Müller [Sat, 23 Jun 2012 14:44:16 +0000 (15:44 +0100)]
tags: use gst_tag_register_static()

12 years agosmartencoder: use gst_quark_from_static_string()
Tim-Philipp Müller [Sat, 23 Jun 2012 13:55:51 +0000 (14:55 +0100)]
smartencoder: use gst_quark_from_static_string()

12 years agouridecodebin, tests: update for gst_element_make_from_uri() changes
Tim-Philipp Müller [Sat, 23 Jun 2012 13:55:31 +0000 (14:55 +0100)]
uridecodebin, tests: update for gst_element_make_from_uri() changes

12 years agoappsrc: Actually store any URI that is set and return this when asked for the URI
Sebastian Dröge [Thu, 21 Jun 2012 10:12:11 +0000 (11:12 +0100)]
appsrc: Actually store any URI that is set and return this when asked for the URI

12 years agoupdate for bus api changes
Wim Taymans [Wed, 20 Jun 2012 10:30:36 +0000 (12:30 +0200)]
update for bus api changes

12 years agofix compiler warning
Andreas Frisch [Wed, 20 Jun 2012 08:52:34 +0000 (10:52 +0200)]
fix compiler warning

12 years agoplaysinkconvertbin: Fix conversion bin when sink has both raw and non-raw caps
Arnaud Vrac [Wed, 20 Jun 2012 10:11:47 +0000 (11:11 +0100)]
playsinkconvertbin: Fix conversion bin when sink has both raw and non-raw caps

Fixes bug #678403.

12 years agoupdate for task api change
Wim Taymans [Wed, 20 Jun 2012 08:33:24 +0000 (10:33 +0200)]
update for task api change

12 years agovideodecoder: Don't give out bogus frame deadlines
Jan Schmidt [Tue, 19 Jun 2012 17:45:14 +0000 (03:45 +1000)]
videodecoder: Don't give out bogus frame deadlines

Make sure the frame deadline was set before calculating the
max_decode_time. Fixes problems with ffmpeg skipping frames when
it doesn't need to, when the input doesn't have full timestamping
(divx in avi)

12 years agovideodecoder: Remove gst_video_decoder_get_timestamp function
Jan Schmidt [Tue, 19 Jun 2012 17:40:29 +0000 (03:40 +1000)]
videodecoder: Remove gst_video_decoder_get_timestamp function

Interpolating the timestamps from the picture numbers
does more harm than good, getting it wrong in a lot of
cases (especially reverse playback). Removing it in favour
of simply incrementing the timestamps until there's
something better

12 years agovideodecoder: EOS handling for reverse mode.
Jan Schmidt [Tue, 19 Jun 2012 14:46:05 +0000 (00:46 +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.

12 years agovideodecoder: misc improvements/changes
Jan Schmidt [Tue, 19 Jun 2012 14:42:42 +0000 (00:42 +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.

12 years agovideodecoder: Improve timestamp handling.
Jan Schmidt [Tue, 19 Jun 2012 14:36:38 +0000 (00:36 +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

12 years agovideodecoder: Re-work reverse playback handling
Jan Schmidt [Tue, 19 Jun 2012 14:22:25 +0000 (00:22 +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.

12 years agovideodecoder: Split gst_video_decoder_finish_frame
Jan Schmidt [Tue, 19 Jun 2012 14:08:57 +0000 (00:08 +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.

12 years agovideodecoder: Rename queued list to output_queued for clarity.
Jan Schmidt [Tue, 19 Jun 2012 13:46:44 +0000 (23:46 +1000)]
videodecoder: Rename queued list to output_queued for clarity.

Use g_list_free_full instead of g_list_foreach + g_list_free

12 years agovideodecoder: Small cleanups
Jan Schmidt [Tue, 19 Jun 2012 13:43:27 +0000 (23:43 +1000)]
videodecoder: Small cleanups

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

12 years agovideodecoder: Rename gst_video_decoder_have_frame_2 function
Jan Schmidt [Tue, 19 Jun 2012 13:28:08 +0000 (23:28 +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.

12 years agovideodecoder: Extend docs and add comments
Jan Schmidt [Tue, 19 Jun 2012 13:16:12 +0000 (23:16 +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.