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
Wim Taymans [Fri, 8 Jun 2012 15:48:11 +0000 (17:48 +0200)]
audio: add orc enabled pack and unpack functions
Wim Taymans [Fri, 8 Jun 2012 10:26:08 +0000 (12:26 +0200)]
audio: add flag to mark possible unpack formats
Make a new flag to mark formats that can be used in pack and unpack functions.
Mark S32NE and F64NE as those unpack formats
Sebastian Dröge [Fri, 8 Jun 2012 13:51:06 +0000 (15:51 +0200)]
elements: Use gst_pad_set_caps() instead of manual event fiddling
Edward Hervey [Fri, 8 Jun 2012 13:04:49 +0000 (15:04 +0200)]
Automatic update of common submodule
From 03a0e57 to 98e386f
Vincent Penquerc'h [Fri, 8 Jun 2012 12:58:51 +0000 (13:58 +0100)]
videodecoder: use GST_CLOCK_TIME_IS_VALID where appropriate
Wim Taymans [Fri, 8 Jun 2012 09:49:18 +0000 (11:49 +0200)]
video: mark unpack formats with a flag
Add a new _UNPACK flag and use it to mark potential unpack formats.
Sebastian Dröge [Fri, 8 Jun 2012 09:28:22 +0000 (11:28 +0200)]
audio: Remove unused, generated marshallers
Sebastian Dröge [Fri, 8 Jun 2012 09:26:46 +0000 (11:26 +0200)]
videoconvert: Need $(LIBM) for pow()
Wim Taymans [Fri, 8 Jun 2012 08:10:08 +0000 (10:10 +0200)]
audio: split audio header into logical parts
Vincent Penquerc'h [Thu, 7 Jun 2012 15:50:17 +0000 (16:50 +0100)]
videodecoder: do not do timestamp arithmetic from an invalid timestamp
This fixes untimestampped buffers from being rejected by the segment clipper.
https://bugzilla.gnome.org/show_bug.cgi?id=676022
Sebastian Dröge [Thu, 7 Jun 2012 14:07:16 +0000 (16:07 +0200)]
Back to development
Sebastian Dröge [Thu, 7 Jun 2012 14:06:59 +0000 (16:06 +0200)]
Release 0.11.92
Sebastian Dröge [Thu, 7 Jun 2012 14:04:04 +0000 (16:04 +0200)]
Update .po files
Vincent Penquerc'h [Thu, 7 Jun 2012 12:24:48 +0000 (13:24 +0100)]
theoradec: fix frame leaks
Vincent Penquerc'h [Thu, 7 Jun 2012 10:16:13 +0000 (11:16 +0100)]
theoradec: fix video state leaks
Vincent Penquerc'h [Thu, 7 Jun 2012 10:15:57 +0000 (11:15 +0100)]
video: fix memory leak
Wim Taymans [Thu, 7 Jun 2012 08:52:53 +0000 (10:52 +0200)]
playsink: fix compilation
Andre Moreira Magalhaes (andrunko) [Thu, 24 May 2012 14:02:59 +0000 (11:02 -0300)]
playbin2: Send flush events when changing subtitle tracks and use new input-selector modes for subtitle tracks
For audio/video we should flush too for fastest stream switches but this
currently isn't possible because the flushes would need to go to the sink,
which then causes state changes and causes all timing information to be
changed.
Should work out of the box in 0.11 with the flush-stop that doesn't reset
the times.
Conflicts:
gst/playback/gstplaybin2.c
gst/playback/gstplaysink.c
gst/playback/gstsubtitleoverlay.c
Sebastian Dröge [Mon, 21 May 2012 07:06:18 +0000 (09:06 +0200)]
playsink: Don't use // comments and prevent unnecessary memory allocation
Conflicts:
gst/playback/gstplaysink.c
Andre Moreira Magalhaes (andrunko) [Sun, 20 May 2012 15:51:17 +0000 (12:51 -0300)]
playbin2: Properly change subtitles
Conflicts:
gst/playback/gstplaysink.c
Thiago Santos [Tue, 15 May 2012 15:56:13 +0000 (12:56 -0300)]
playbin2: fix subtitle only seeks when switching to external subs
Sending a non-flushing seek might not be enough for switching
to an external sub that has already been used because the flushes
are needed to reset the state of its decodebin's queue.
For example, if the subtitle is short enough, the queue might get
and EOS and keep its 'unexpected' return state. If the user switches
to another subtitle and back to the external one, the buffers
won't get past the queue.
This patch fixes this by adding the flush flag to the seek and
preventing that this flush leaves the suburidecodebin.
https://bugzilla.gnome.org/show_bug.cgi?id=638168
Conflicts:
gst/playback/gstplaybin2.c
Andre Moreira Magalhaes (andrunko) [Wed, 16 May 2012 13:41:41 +0000 (10:41 -0300)]
gstplaysink: Properly reset chain when receiving a custom flush event.
https://bugzilla.gnome.org/show_bug.cgi?id=638168
Conflicts:
gst/playback/gstplaysink.c
Thiago Santos [Mon, 14 May 2012 14:52:12 +0000 (11:52 -0300)]
playsink: do not store more than a second of subtitles
Use a shorter queue for subtitles to avoid switches for subtitles
taking longer than they already take.
https://bugzilla.gnome.org/show_bug.cgi?id=638168
Thiago Santos [Tue, 5 Jun 2012 21:12:52 +0000 (18:12 -0300)]
subtitleoverlay: pass correct parameter to debug message
Get the format name to pass to the debug message, as it expects a string
Andre Moreira Magalhaes (andrunko) [Thu, 10 May 2012 15:17:45 +0000 (12:17 -0300)]
gstsuboverlay: Convert NewSegment events to always be in the TIME format.
https://bugzilla.gnome.org/show_bug.cgi?id=638168
Conflicts:
gst/playback/gstsubtitleoverlay.c
Vincent Penquerc'h [Wed, 6 Jun 2012 16:42:36 +0000 (17:42 +0100)]
oggdemux: reject opus streams with negative start time
This is used by Vorbis for sample accurate clipping, but this is
deemed an invalid stream by the opus spec.
Vincent Penquerc'h [Wed, 6 Jun 2012 16:41:55 +0000 (17:41 +0100)]
oggstream: add a flag to say whether start granule clamping is to be done
Edward Hervey [Wed, 6 Jun 2012 16:18:29 +0000 (18:18 +0200)]
Automatic update of common submodule
From 1fab359 to 03a0e57
Wim Taymans [Wed, 6 Jun 2012 14:41:03 +0000 (16:41 +0200)]
rtspconnection: handle cancellation correctly
Wim Taymans [Wed, 6 Jun 2012 14:40:24 +0000 (16:40 +0200)]
audiopayload: disable broken bufferlist handling
The bufferlist handling is broken so make sure it is never enabled.
David Svensson Fors [Wed, 6 Jun 2012 12:53:43 +0000 (14:53 +0200)]
rtsp: don't leak address and socket
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677466
Wim Taymans [Wed, 6 Jun 2012 10:55:15 +0000 (12:55 +0200)]
update for tag event change
Vincent Penquerc'h [Wed, 6 Jun 2012 10:01:13 +0000 (11:01 +0100)]
oggstream: reject Ogg/Opus streams with nonsensical preskip/granpos setup
As the spec mandates.
Wim Taymans [Wed, 6 Jun 2012 09:38:00 +0000 (11:38 +0200)]
video: add pack_lines variable
Use a separate variable to describe the amount of lines that will be used in
packing instead of abusing the h_sub variable. Some formats might have no
subsampling but need to operate on multipe lines.
Wim Taymans [Wed, 6 Jun 2012 09:15:50 +0000 (11:15 +0200)]
videotestsrc: Remove more redundant code
Use the video library to do the setup instead of keeping a separate incomplete
list.
Wim Taymans [Wed, 6 Jun 2012 08:21:55 +0000 (10:21 +0200)]
video: add macro for component depth
Wim Taymans [Tue, 5 Jun 2012 14:58:19 +0000 (16:58 +0200)]
videotestsrc: don't artificially restrict caps
Use all the formats that the video library supports without any restrictions on
colorimetry or other parameters such as chroma-siting.
Edward Hervey [Tue, 5 Jun 2012 10:27:09 +0000 (12:27 +0200)]
pbutils: Add descriptor for E-AC3 and PGS subtitles
Tim-Philipp Müller [Tue, 5 Jun 2012 15:09:56 +0000 (16:09 +0100)]
win32: update .def file for new video API
Wim Taymans [Tue, 5 Jun 2012 10:47:22 +0000 (12:47 +0200)]
video: move methods into separate files
Move different video functionalities into different files
Wim Taymans [Mon, 4 Jun 2012 18:36:10 +0000 (20:36 +0200)]
videoconvert: refactor matrix setup
Wim Taymans [Mon, 4 Jun 2012 16:24:03 +0000 (18:24 +0200)]
video: don't add unknown colorimetry
Wim Taymans [Mon, 4 Jun 2012 16:17:42 +0000 (18:17 +0200)]
videodecoder: only copy known colorimetry values
Avoid overriding the default colorimetry values.
Wim Taymans [Mon, 4 Jun 2012 16:08:11 +0000 (18:08 +0200)]
video: add unknown colorimetry parameters as well..
Wim Taymans [Mon, 4 Jun 2012 16:00:42 +0000 (18:00 +0200)]
video: use unknown colorimetry for unknown formats
Use the default RGB colorimetry into only on RGB formats and use an unknown set
of defaults for the unknown format.
Wim Taymans [Mon, 4 Jun 2012 14:15:25 +0000 (16:15 +0200)]
video: (de)serialize colorimetry on caps
Wim Taymans [Mon, 4 Jun 2012 14:13:48 +0000 (16:13 +0200)]
videoconvert: fix 0_255 handling
We also need to apply an offset to the Cb and Cr samples in the 0-255 case.
Wim Taymans [Mon, 4 Jun 2012 13:26:21 +0000 (15:26 +0200)]
video: don't add empty colorimetry to caps
Don't use extra default colorimetry entries in the table to construct an output
colorimetry shortcut because they don't have a name.
Wim Taymans [Mon, 4 Jun 2012 12:51:41 +0000 (14:51 +0200)]
video: fix default colorspace settings
HD content is defined as height > 576
Wim Taymans [Mon, 4 Jun 2012 12:46:21 +0000 (14:46 +0200)]
videoconvert: improve color transform setup
Remove hardcoded color matrices and compute the matrices using the cms helper
library that was in cogcolorspace before.