Wim Taymans [Fri, 6 Jul 2012 09:01:56 +0000 (11:01 +0200)]
update for allocation query changes
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.
Sebastian Dröge [Thu, 5 Jul 2012 13:34:44 +0000 (15:34 +0200)]
uridecodebin: Fix double-unref when iterating over element pads
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.
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.
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.
Sebastian Dröge [Thu, 5 Jul 2012 11:06:04 +0000 (13:06 +0200)]
gst: Implement segment-done event
Sebastian Dröge [Thu, 5 Jul 2012 10:35:35 +0000 (12:35 +0200)]
audiocdsrc: Remove the TOC query handling
Sebastian Dröge [Thu, 5 Jul 2012 09:03:52 +0000 (11:03 +0200)]
discoverer: Update for GstToc API changes
Sebastian Dröge [Tue, 3 Jul 2012 16:47:25 +0000 (18:47 +0200)]
audiocdsrc: Update for TOC API changes
Wim Taymans [Wed, 4 Jul 2012 15:06:28 +0000 (17:06 +0200)]
update for miniobject changes
Wim Taymans [Wed, 4 Jul 2012 07:14:51 +0000 (09:14 +0200)]
videodec: add some assert
Wim Taymans [Wed, 4 Jul 2012 07:14:27 +0000 (09:14 +0200)]
videodec: clear the right variable
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.
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
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.
Mark Nauwelaerts [Tue, 3 Jul 2012 12:32:02 +0000 (14:32 +0200)]
pango: query downstream for video overlay composition meta support
Mark Nauwelaerts [Tue, 3 Jul 2012 12:30:39 +0000 (14:30 +0200)]
pango: adjust to modified overlay composition API
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.
Mark Nauwelaerts [Tue, 3 Jul 2012 10:58:38 +0000 (12:58 +0200)]
videooverlaycomposition: remove some post-port obsolete parts
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.
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.
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.
Mark Nauwelaerts [Fri, 29 Jun 2012 16:55:15 +0000 (18:55 +0200)]
tests: video: port video overlay composition test to 0.11
Mark Nauwelaerts [Mon, 2 Jul 2012 12:22:30 +0000 (14:22 +0200)]
tests: video: ensure initialization and plug sample leak
Mark Nauwelaerts [Mon, 2 Jul 2012 09:46:23 +0000 (11:46 +0200)]
tests: video: tweak RGB caps test
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.
Mark Nauwelaerts [Fri, 29 Jun 2012 16:54:51 +0000 (18:54 +0200)]
videooverlaycomposition: fix some refcounting and avoid possible NULL use
Tim-Philipp Müller [Fri, 29 Jun 2012 10:46:23 +0000 (11:46 +0100)]
examples: update for new force-aspect-ratio default
Tim-Philipp Müller [Fri, 29 Jun 2012 10:43:46 +0000 (11:43 +0100)]
ximagesink, xvimagesink: default to force-aspect-ratio=true
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.
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.
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.
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>
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.
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
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
Wim Taymans [Wed, 27 Jun 2012 15:18:35 +0000 (17:18 +0200)]
videotestsrc: set DTS and PTS, sync on DTS
Wim Taymans [Wed, 27 Jun 2012 14:45:41 +0000 (16:45 +0200)]
videoencoder: make PTS and DTS handling more explicit
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.
Sebastian Dröge [Wed, 27 Jun 2012 14:42:10 +0000 (16:42 +0200)]
videodecoder: Use GSlice to allocate the timestamp tracking structures
Wim Taymans [Wed, 27 Jun 2012 12:13:02 +0000 (14:13 +0200)]
videodecoder: small cleanups
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.
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
Wim Taymans [Tue, 26 Jun 2012 15:09:25 +0000 (17:09 +0200)]
fix interlace-mode
Jan Schmidt [Mon, 25 Jun 2012 15:33:10 +0000 (01:33 +1000)]
videodecoder: Don't leak a ref to frames in reverse playback
Wim Taymans [Tue, 26 Jun 2012 09:10:28 +0000 (11:10 +0200)]
video-frame: handle map errors
Error out when something failed
Wim Taymans [Tue, 26 Jun 2012 09:09:50 +0000 (11:09 +0200)]
videometa: improve debug error reporting
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
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
Sebastian Dröge [Mon, 25 Jun 2012 14:07:31 +0000 (16:07 +0200)]
playsink: Prevent NULL pointer dereference in last change
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.
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
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
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
Tim-Philipp Müller [Sun, 24 Jun 2012 21:47:05 +0000 (22:47 +0100)]
pbutils: update discoverer for GstToc API changes
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
Tim-Philipp Müller [Sat, 23 Jun 2012 14:44:16 +0000 (15:44 +0100)]
tags: use gst_tag_register_static()
Tim-Philipp Müller [Sat, 23 Jun 2012 13:55:51 +0000 (14:55 +0100)]
smartencoder: use gst_quark_from_static_string()
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
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
Wim Taymans [Wed, 20 Jun 2012 10:30:36 +0000 (12:30 +0200)]
update for bus api changes
Andreas Frisch [Wed, 20 Jun 2012 08:52:34 +0000 (10:52 +0200)]
fix compiler warning
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.
Wim Taymans [Wed, 20 Jun 2012 08:33:24 +0000 (10:33 +0200)]
update for task api change
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)
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
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.
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.
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
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.
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.
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
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
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.
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.
Sebastian Dröge [Tue, 19 Jun 2012 12:57:00 +0000 (13:57 +0100)]
videofilter: Don't duplicate code to create a new buffer pool if none is in the query
Sebastian Dröge [Tue, 19 Jun 2012 08:34:49 +0000 (09:34 +0100)]
videoencoder: Ensure buffers don't disappear early
The frames are the owners of the buffers
Edward Hervey [Thu, 26 Apr 2012 16:43:16 +0000 (18:43 +0200)]
videodecoder: Ensure buffers don't disappear early
The frames are the owners of the buffers. In cases where a decoder
would keep around reference frames, we need to ensure they don't
disappear early.
To handle this, we pass downstream a complete sub-buffer of the output
buffer, ensuring that the buffer will only be released when downstream
is done with it *AND* the frame is no longer used.
Conflicts:
gst-libs/gst/video/gstvideodecoder.c
Sebastian Dröge [Tue, 19 Jun 2012 08:25:00 +0000 (09:25 +0100)]
videoencoder,videodecoder: Return new references from _get_frame()
Wim Taymans [Mon, 18 Jun 2012 10:17:12 +0000 (12:17 +0200)]
sys: fix some bufferpool leaks
Wim Taymans [Mon, 18 Jun 2012 09:38:02 +0000 (11:38 +0200)]
audiobasesink: fix for basesink API change
Jan Schmidt [Thu, 14 Jun 2012 13:24:06 +0000 (23:24 +1000)]
theoradec: Remove use of NEED_DATA
Remove the confusing internal-only use of
the GST_VIDEO_DECODER_FLOW_NEED_DATA return code.
Wim Taymans [Fri, 15 Jun 2012 14:43:47 +0000 (16:43 +0200)]
x11: handle case where no bufferpool is suggested
Sebastian Dröge [Fri, 15 Jun 2012 14:06:12 +0000 (16:06 +0200)]
videodecoder: Add GstVideoDecoder::propose_allocation() vfunc
Tim-Philipp Müller [Thu, 14 Jun 2012 22:08:54 +0000 (23:08 +0100)]
examples: make play button in playback test have focus after startup
So you can just press Enter to start playback.
Vincent Penquerc'h [Thu, 14 Jun 2012 17:31:51 +0000 (18:31 +0100)]
oggdemux: fix quadratic search for last page
A crafted file with invalid pages will cause repeated searches from
earlier offsets in steps of 8500 bytes, but reading till the end of
the stream. Since we know the maximum size of an Ogg page, we can
bound the search for next page, to get a linear behavior (though
still not good enough as it will read the entire file backwards if
there's no valid page till then).
Sebastian Dröge [Thu, 14 Jun 2012 07:32:35 +0000 (09:32 +0200)]
playbin2: Proxy the force-aspect-ratio property of video sinks
Fixes bug #678020.
Conflicts:
gst/playback/gstplaybin2.c
Sebastian Dröge [Thu, 14 Jun 2012 07:29:23 +0000 (09:29 +0200)]
playsink: Proxy the force-aspect-ratio property of video sinks
Wim Taymans [Wed, 13 Jun 2012 09:04:21 +0000 (11:04 +0200)]
update for message api change
Jan Schmidt [Tue, 12 Jun 2012 17:17:27 +0000 (03:17 +1000)]
theoradec: Always inform base class when dropping frames
Partially fixes backwards playback. Informing the base class
of the dropped frame lets it manage the timestamping and events
better.
Jan Schmidt [Tue, 12 Jun 2012 15:58:05 +0000 (01:58 +1000)]
videodecoder: Fix initial timestamp in ogg, and a warning.
Don't replace the initial frame's timestamp with a bogus
one calculated from the (incorrect for Ogg) frame number just
because the 'sync time' hasn't changed.
Also, don't output a bogus warning about the output_frame being
NULL when it's being dropped/skipped due to QoS.
Jan Schmidt [Tue, 12 Jun 2012 13:51:51 +0000 (23:51 +1000)]
audio decoder: Add some debug output for bad caps from children
Sebastian Dröge [Tue, 12 Jun 2012 09:58:29 +0000 (11:58 +0200)]
playback: Always prefer parsers over decoders
...and in playbin2 additionally prefer sinks over parsers.
This makes sure that we a) always directly plug a sink if it supports
the (compressed) format and b) always plug parsers in front of decoders.
Vincent Penquerc'h [Wed, 23 May 2012 14:07:20 +0000 (15:07 +0100)]
playback-test: expose seek snap flags
https://bugzilla.gnome.org/show_bug.cgi?id=676639
Vincent Penquerc'h [Fri, 8 Jun 2012 11:43:41 +0000 (12:43 +0100)]
audiodecoder: push queued events only when we have a first buffer
https://bugzilla.gnome.org/show_bug.cgi?id=675812
Vincent Penquerc'h [Mon, 11 Jun 2012 10:09:24 +0000 (11:09 +0100)]
typefind: probe for DVD ISO files, to avoid matching H.264
https://bugzilla.gnome.org/show_bug.cgi?id=674069
Vincent Penquerc'h [Fri, 8 Jun 2012 16:28:28 +0000 (17:28 +0100)]
playbin2: remove uridecodebin from bin when it fails to switch to PAUSED
This avoids that bin being leftover and being found when reusing playbin2,
and fixes restarting on a new URI after failing to activate with a previous
URI.
https://bugzilla.gnome.org/show_bug.cgi?id=673888
Wim Taymans [Fri, 8 Jun 2012 15:55:15 +0000 (17:55 +0200)]
Add generated orc files
Wim Taymans [Fri, 8 Jun 2012 15:52:31 +0000 (17:52 +0200)]
Also build the orc generated code