Commit graph

1946 commits

Author SHA1 Message Date
Vincent Penquerc'h
4e9508e2ec oggdemux: do not ignore sparse streams' start time
But do not wait for them either, if we don't have a packet for them.

https://bugzilla.gnome.org/show_bug.cgi?id=657062
2011-08-23 10:36:03 +02:00
Monty Montgomery
9cbe7c1403 vorbisenc: Relax overly-tight jitter tolerances in gstvobisenc
vorbisenc currently reacts in a rater draconian fashion if input
timestamps are more than 1/2 sample off what it considers ideal. If data
is 'too late' it truncates buffers, if it is 'too soon' it completely
shuts down encode and restarts it.  This is causingvorbisenc to produce
corrupt output when encoding data produced by sources with bugs that
produce a smple or two of jitter (eg, flacdec)
2011-08-23 10:11:18 +02:00
Wim Taymans
2ce5c8b8be audio: use convert audio helper 2011-08-22 16:21:02 +02:00
Wim Taymans
c81c62d03a fourcc: remove fourcc
Remove fourcc in caps.
Fix pbutils descriptions.
Add more video macros
Fix some unit test
2011-08-22 12:22:02 +02:00
Wim Taymans
5f359600ce oggmux: fix compilation 2011-08-22 12:21:08 +02:00
Vincent Penquerc'h
7d3858a14d textoverlay: fix text buffer leak
Make sure to always unref the input text buffer.

Reported by bcxa.sz@gmail.com.

https://bugzilla.gnome.org/show_bug.cgi?id=657049
2011-08-22 10:48:06 +01:00
Wim Taymans
8023f49d19 more audio caps porting 2011-08-19 17:41:22 +02:00
Wim Taymans
34a94ddd6b visual: port some more to new audio caps 2011-08-19 16:49:30 +02:00
Wim Taymans
b657f5bce7 Merge branch 'master' into 0.11 2011-08-19 14:07:11 +02:00
Vincent Penquerc'h
b7bb1e5633 ogg: do not use 32 bit modifiers to print serial numbers
If ints are 64 bits, 32 bits should get promoted in varargs anyway,
and we don't care about 16 bit ints.
This makes the code a lot more readable, and still gets us nice
hexadecimal 32 bit serialnos.

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 20:18:53 +01:00
Wim Taymans
ba41bb5ca7 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	gst/playback/gstplaysink.c
2011-08-18 19:36:50 +02:00
Wim Taymans
dae848818d audio: rework audio caps.
Rework the audio caps similar to the video caps. Remove
width/depth/endianness/signed fields and replace with a simple string
format and media type audio/x-raw.
Create a GstAudioInfo and some helper methods to parse caps.
Remove duplicate code from the ringbuffer and replace with audio info.
Use AudioInfo in the base audio filter class.
Port elements to new API.
2011-08-18 19:15:03 +02:00
Vincent Penquerc'h
1dadc5eac1 ogg: get the operator precedence right, even if only a doc
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:17:40 +02:00
Vincent Penquerc'h
cf370e0219 oggstream: vorbis has a preroll of 2
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:17:28 +02:00
Vincent Penquerc'h
96e7bf53e9 oggstream: new convenience function to get a stream's media type
This will make logging a lot clearer, both in code and in output.

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:17:15 +02:00
Vincent Penquerc'h
8304b7b40d ogg: move the "always flush page" to oggstream
It avoids checking for specific media types in the muxer.

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:16:50 +02:00
Vincent Penquerc'h
fd8434fc74 oggmux: use oggstream to decide which BOS packets to place first
Ogg recommends video BOS packets to be first.
Use the "is_video" flag in oggstream to select those, rather than
check for known mime types.

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:16:19 +02:00
Vincent Penquerc'h
5bbf7109ec ogg: rationalize serialno type to guint32
It is a 32 bit unsigned number.
Sure, the libogg API uses a long, but that's an unfortunate oversight.

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:15:51 +02:00
Vincent Penquerc'h
684b90ba74 oggmux: factor the header packet creation code
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:13:59 +02:00
Vincent Penquerc'h
3fe42b8e7e oggmux: headers should always have granpos 0
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:13:47 +02:00
Wim Taymans
33467d9629 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/pango/gsttextoverlay.c
	ext/theora/gsttheoradec.c
	gst/adder/gstadder.c
	gst/adder/gstadder.h
	gst/audioresample/gstaudioresample.c
	gst/encoding/gstencodebin.c
	gst/playback/gstdecodebin.c
	gst/playback/gstdecodebin2.c
	tests/check/elements/decodebin2.c
	tests/check/elements/playbin-compressed.c
	win32/common/libgsttag.def
2011-08-16 18:01:14 +02:00
Wim Taymans
e904c529e3 fix for _negotiated_caps() change 2011-08-15 12:18:15 +02:00
Josep Torra
5629ed74b3 Fix debug statements
Fixes build on MacOSX

Signed-off-by: Edward Hervey <edward.hervey@collabora.co.uk>
2011-08-10 11:15:41 +02:00
Jonathan Liu
8bd3bdaf37 oggstream: Fix crashes with 0-byte vorbis packets
Fixes bug #655574.
2011-08-03 10:18:29 +02:00
Philip Jägenstedt
7d22d91fca theoradec: segfault on 0-byte ogg_packet in _chain_reverse 2011-08-03 10:03:00 +02:00
Wim Taymans
5a85e1d75f base: update for new bufferpool API 2011-07-29 17:15:39 +02:00
Tim-Philipp Müller
bb65192151 ext,gst: update for query API changes 2011-07-27 01:16:53 +01:00
Wim Taymans
56a542ec92 giosink: use new query vmethod 2011-07-26 12:47:38 +02:00
Stefan Sauer
2db389f775 textoverlay: improve the example
Mentioned that this is not ment to be used with subtitles and suggest alternatives.
2011-07-25 12:04:48 +02:00
Stefan Sauer
5d5ab90e51 textoverlay: add example for feeding from stdin 2011-07-23 14:22:03 +02:00
Stefan Sauer
0667b1adf5 textoverlay: keep untimestamped textbuffer until next one
Instead of discarding untimestamped text-buffers immeditely after rendering,
keep them until we receive the next text buffer.
Fixes #654959
2011-07-23 14:04:14 +02:00
Wim Taymans
57157694a5 the 2011-07-19 18:31:23 +01:00
Wim Taymans
1b8ef683ce theoradec: make sure our buffer is big enough
Make sure we allocate a buffer that is big enough.
2011-07-19 18:21:42 +01:00
Wim Taymans
376164ab08 Merge branch 'master' into 0.11 2011-07-10 13:49:14 +02:00
David Schleef
a5323107d4 oggmux: check for EOS on both current and best pad
Oops, need both.  Fixes #654270.
2011-07-09 18:33:38 -07:00
David Schleef
2fa9bf2be5 oggmux: check for EOS on current pad, not best
Fixes #654270.
2011-07-09 18:24:26 -07:00
Tim-Philipp Müller
dd56714b14 ffmpegcolorspace -> videoconvert 2011-07-07 23:59:59 +01:00
Tim-Philipp Müller
34955ac34d theoraenc: remove some unused code that caused a compiler warning
The video format is set up in the sink pad's setcaps() function.
2011-07-05 10:04:42 +01:00
Wim Taymans
ddce68a5c2 video: More video helper library improvements
Make a new GstVideoFormatinfo structure that contains the specific information
related to a format such as the number of planes, components, subsampling,
pixel stride etc. The result is that we are now able to introduce the concept of
components again in the API.
Use tables to specify the formats and its properties.
Use macros to get information about the video format description.
Move code to set strides, offsets and size into one function.
Remove methods that are not handled with the structures.
Add methods to retrieve pointers and strides to the components in the video.
2011-07-04 16:01:14 +02:00
Tim-Philipp Müller
c16e7321b9 alsa: don't use GstImplementsInterface 2011-06-26 22:58:17 +01:00
Wim Taymans
558cb821e4 theoradec: use cropping metadata 2011-06-23 18:02:40 +02:00
Wim Taymans
646ffd0dad fix for uri changes 2011-06-22 16:38:48 +02:00
Wim Taymans
2e837743c3 audio: clean up audiosink headers 2011-06-21 18:13:48 +02:00
Wim Taymans
0530b609aa theoradec: enable video metadata in the bufferpool
Enable the video metadata in the bufferpool.
2011-06-20 13:30:07 +02:00
Wim Taymans
6d9e76f2de video: remove intermediate Plane structure
Remove the GstVideoPlane structure and move the fields directly into the
GstVideoInfo structure. This makes things a little easier to read and also makes
it more likely that we can pass the stride array to external libraries.
2011-06-20 11:25:58 +02:00
Wim Taymans
d93129d8da -base: port to GstVideoFrame API 2011-06-17 15:41:31 +02:00
Wim Taymans
d06f599193 -base: port elements to new video caps 2011-06-16 12:52:13 +02:00
Tim-Philipp Müller
a9e4949238 gnomevfs: remove GnomeVFS plugin
The gio plugin replaces it.
2011-06-15 00:52:47 +01:00
Wim Taymans
40d567153a Merge branch 'master' into 0.11 2011-06-13 19:09:05 +02:00
Wim Taymans
0d44940076 theoradec: use _check_reconfigure method 2011-06-13 12:15:33 +02:00
Wim Taymans
1c8324a0d1 update for bufferpool api change 2011-06-11 18:54:44 +02:00
David Schleef
ea0d666d11 oggmux: refactor how EOS is determined
This decreases the number of buffers held on each pad by one,
eliminating next_buffer.  Simplifies the logic by relying solely
on CollectPads to let us know when a pad is in EOS.  As a side
benefit, the collect pads related code is structured more like
other CollectPad users.

The previous code would occasionally mark the wrong pad as EOS,
causing the code to get in a state where all the streams were
finished, but EOS hadn't been sent to the source pad.
2011-06-10 23:54:07 -07:00
Wim Taymans
9778d5dac7 update for alignment change 2011-06-10 18:04:29 +02:00
Wim Taymans
40e3dda187 oggdemux: small cleanups 2011-06-10 18:04:14 +02:00
Wim Taymans
0ac9bb7d99 Merge branch 'master' into 0.11
Conflicts:
	tests/examples/audio/Makefile.am
	tests/examples/v4l/Makefile.am
2011-06-10 12:14:57 +02:00
Wim Taymans
db999572a8 -base: fix for flush_stop event API change 2011-06-10 11:59:53 +02:00
Wim Taymans
4fa7dfb07a visual: small improvements 2011-06-09 11:52:32 +02:00
Tim-Philipp Müller
c692191c33 GST_PLUGINS_BASE_LIBS is not defined in -base. 2011-06-08 12:21:43 +01:00
Wim Taymans
28f67f4847 event: fix some event leaks 2011-06-07 12:06:22 +02:00
Wim Taymans
2940249a84 -base: use caps event
Remove uses of setcaps function and use the caps event.
2011-06-07 11:55:36 +02:00
Wim Taymans
c88ee10c9b Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-06-06 16:27:12 +02:00
Mark Nauwelaerts
99944a5a81 oggmux: determine granulepos metadata using stream mapper whenever possible
... which unfortunately is not the case for all types, but at least so for
most common ones.
2011-06-06 13:02:49 +02:00
Mark Nauwelaerts
de1f593537 oggmux: convert incoming buffer timestamp to running time
... so all subsequent manipulation can take place in the proper timeline
without further ado.
2011-06-06 13:02:47 +02:00
Mark Nauwelaerts
2e7eddd35e oggmux: remove superfluous code
... since there is nothing in oggstream that cares (or even should)
about granulepos for what is being asked from it.
2011-06-06 13:02:43 +02:00
Luis de Bethencourt
8b18508778 theora: separate encode and push block in chain, into own function. 2011-06-04 10:10:54 +02:00
Edward Hervey
266a9be400 oggmux: Use the GstPad (and not the GstOggPadData for GstPad functions
For those willing, renaming that 'pad' variable to something more obvious
would be nice to avoid such bugs...
2011-06-03 19:28:32 +02:00
Wim Taymans
ff071135cb thoeraenc: port to 0.11 2011-06-03 13:35:49 +02:00
Wim Taymans
b1aec14767 Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-06-03 13:31:42 +02:00
Luis de Bethencourt
407b77740e theora: use fixed src cap pads 2011-06-03 08:00:58 +02:00
Luis de Bethencourt
1ce538d912 theora: set the width/height/par on the srcpad caps 2011-06-03 08:00:53 +02:00
Luis de Bethencourt
ddfc8357a8 theora: get sink caps info from downstream element pad
https://bugzilla.gnome.org/show_bug.cgi?id=651564
2011-06-03 08:00:48 +02:00
Wim Taymans
29c3e31ff5 oggdemux: activate pad before pushing things
Activate the pad before pushing things on it or else we get errors.
2011-05-30 17:14:48 +02:00
Sebastian Dröge
bf08ca7020 Merge branch 'master' into 0.11 2011-05-26 13:54:09 +02:00
Lane Brooks
5488877090 textoverlay: added 'outline-color' parameter to control whether text gets a shadow 2011-05-26 11:05:43 +02:00
Lane Brooks
c8a3f63909 textoverlay: added 'shadow' option to control whether text gets a shadow 2011-05-26 11:03:23 +02:00
Jindrich Makovicka
2ba4a56d74 textrender: Correctly negotiate with downstream instead of just using random caps
Fixes bug #638897.
2011-05-26 10:48:05 +02:00
Jindrich Makovicka
c186d400e5 textrender: Add bound checks to not write outside the image area 2011-05-26 10:43:51 +02:00
Jindrich Makovicka
fe533c9995 textrender: Prevent double unref of caps if the caps can't be set on the srcpad 2011-05-26 10:42:46 +02:00
Sebastian Dröge
99188bce77 gnomevfssrc: Keep track of interruptions during read with a flag 2011-05-26 10:32:17 +02:00
American Dynamics
847d274a5c gnomevfssrc: Add support for cancelling the read operations
This allows the state change from PAUSED to READY to be faster.

Fixes bug #628337.
2011-05-26 10:31:41 +02:00
Stefan Kost
41b60ca83a theoraenc: remove bogus <0 check for unsigned var
bytes_written is a gsize which is unsigned and thus never < 0.
2011-05-25 15:26:13 +03:00
Stefan Kost
af29082e94 theoraenc: fix variable type for bytes_consumed
th_encode_ctl() returns an int. Using a gsize result in bogus <0 checks.
2011-05-25 15:26:13 +03:00
Wim Taymans
010add200a scheduling: port to new scheduling query 2011-05-24 17:37:45 +02:00
Wim Taymans
3b35a83688 theoradec: handle reconfigure events
Handle the caps with the caps event.
Handle the reconfigure event and renegotiate the bufferpool when needed.
2011-05-24 10:46:48 +02:00
Wim Taymans
0b3272108c visual: fix upstream renegotiation
Fix a refcount problem.
Handle reconfiguration requests.
2011-05-19 13:38:55 +02:00
Wim Taymans
b2e80a09ca visual: improve negotiation
Remove the setcaps function on the srcpad, we know exactly when we negotiate a
new format now.
Use a caps event to configure new caps.
2011-05-19 12:42:46 +02:00
Wim Taymans
5619a238c0 vorbis: fix for new API 2011-05-19 12:29:57 +02:00
Wim Taymans
489eed9bb8 Merge branch 'master' into 0.11 2011-05-19 11:31:53 +02:00
Aleix Conchillo Flaque
0f7522e449 vorbisdec: Handle headers in caps 2011-05-18 22:08:46 +02:00
Sebastian Dröge
884213b8b8 base: Update for SEGMENT event parse API changes 2011-05-18 17:23:18 +02:00
Robert Swain
e9aed7f31c alsa: Remove unused but set variable
Unused but set variables cause warnings in GCC 4.6.x and newer.
2011-05-18 09:34:52 +02:00
Sebastian Dröge
c255019b90 ext: Update for caps/pad template related API changes 2011-05-17 13:06:01 +02:00
Sebastian Dröge
318ed07598 Revert "-base_port to new query API"
This reverts commit c9f4e0676b.
2011-05-17 11:25:31 +02:00
Wim Taymans
af70f1fc32 Merge branch 'master' into 0.11 2011-05-17 09:31:01 +02:00
Tim-Philipp Müller
74cc986593 cdparanoiasrc: fix build on OSX by #undef-ing VERSION before including system headers
On OSX the cdparanoia headers include IOKit framework headers (in particular
SCSICmds_INQUIRY_Definitions.h) which define a structure that has a member
named VERSION, so we must #undef VERSION before including those for things
to compile on OSX.

Fixes #609918.
2011-05-17 09:20:08 +02:00
Sebastian Dröge
d0362c2b87 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/alsa/gstalsasrc.c
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst-libs/gst/tag/gstxmptag.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
	sys/xvimage/xvimagesink.c
2011-05-16 17:06:22 +02:00
Sebastian Dröge
ed89c9d38f vorbis: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Sebastian Dröge
c276eec54e theora: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Sebastian Dröge
362a025a6b textoverlay: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Sebastian Dröge
bcbf0488bf ogg: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Sebastian Dröge
4027a4c34f visual: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Sebastian Dröge
0415b90e99 alsa: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Wim Taymans
94dfe80f71 -base: port to new SEGMENT API 2011-05-16 13:48:11 +02:00
Sebastian Dröge
2b84f5bd74 alsasrc: Fix some compilation errors 2011-05-14 11:42:32 +02:00
Pontus Oldberg
0b774e0b7c alsasrc: Improve timestamp accuracy
Fixes bug #635256.
2011-05-14 11:42:32 +02:00
Wim Taymans
c9f4e0676b -base_port to new query API 2011-05-10 18:39:07 +02:00
Wim Taymans
7cad11e912 -base: fix for now request pad API 2011-05-10 16:44:37 +02:00
Wim Taymans
bdb4676455 qos: _qos_full -> _qos 2011-05-09 18:53:03 +02:00
Wim Taymans
816f4e791d segment: fix for new core API
Fix for gst_*_segment_full rename.
2011-05-09 18:16:46 +02:00
Wim Taymans
1438485882 visual: use the right pad 2011-05-09 15:41:19 +02:00
Wim Taymans
62536eaa6e visual: use CAPS event to configure caps 2011-05-09 15:37:46 +02:00
Wim Taymans
5acab64178 theora/vorbis: use default pad handler
Use the default pad event handler because we are not supposed to pass on CAPS
events.
2011-05-09 15:37:09 +02:00
Wim Taymans
ec57868488 -base: don't use buffer caps
Port to newest 0.11 core API, remove GST_PAD_CAPS and GST_BUFFER_CAPS.
2011-05-09 13:05:12 +02:00
Wim Taymans
500bccf6ac visual: avoid unreffing a NULL object 2011-05-06 11:31:43 +02:00
Wim Taymans
abcbef287d plugins: fix for allocation query API change 2011-05-02 11:11:33 +02:00
Wim Taymans
16d8fb2c2f visual: add bufferpool support to libvisual 2011-04-29 18:23:25 +02:00
Wim Taymans
d6f8fb62c5 theoradec: use bufferpool 2011-04-29 16:52:23 +02:00
Wim Taymans
86a4771f8e remove buffer_alloc 2011-04-29 13:28:17 +02:00
Sebastian Dröge
353186aec8 ext: Use G_DEFINE_TYPE instead of GST_BOILERPLATE 2011-04-19 14:22:42 +02:00
Sebastian Dröge
0759ce8533 Merge branch 'master' into 0.11 2011-04-18 13:23:32 +02:00
Sebastian Dröge
1312605eac textoverlay: Always hold the class-global pango mutex when using pango API 2011-04-17 14:17:53 +02:00
Sebastian Dröge
d2ce491153 {time,clock}overlay: Hold the class-global pango mutex when changing the pango context 2011-04-17 14:17:52 +02:00
Sebastian Dröge
72b142bfdf {clock,time}overlay: Only set the global pango context options once in class_init
Instead of doing it over and over again when instantiating a new instance.
2011-04-17 14:17:52 +02:00
Sebastian Dröge
9ee7398fae pango: Create a new pango context for every subclass
timeoverlay/clockoverlay are setting some global options
on the context that shouldn't be used for the generic textoverlay.
2011-04-17 14:17:52 +02:00
Thibault Saunier
61c61e9f2f vorbis: add support for using tremolo on android
Tremolo is an ARM-optimised version of xiph's tremor library.
2011-04-16 15:33:16 +01:00
Sebastian Dröge
dce40847a8 ogg: Update new code for 0.11 buffer API 2011-04-16 16:14:26 +02:00
Sebastian Dröge
c8792778f8 Merge branch 'master' into 0.11 2011-04-16 16:06:26 +02:00
Sebastian Dröge
92d10cbb8c pango: Create a new base class for all the elements
This prevents the ugly hack where the text_sink pad template
was only added for textoverlay but not for the subclasses.

Also makes this work with the core change that made
subclasses inherit the templates of their parent class.
2011-04-16 15:56:55 +02:00
Vincent Penquerc'h
55e767b632 oggmux: prefer headers from caps to determine stream type
Ogg mandates the first header packet must determine a stream's type.
However, some streams (such as VP8) do not include such a header
when muxed in other containers, and thus do not include this header
as a buffer, but only in caps. We thus use headers from caps when
available to determine a new stream's type.

https://bugzilla.gnome.org/show_bug.cgi?id=647856
2011-04-16 11:55:27 +01:00
Sebastian Dröge
352edd1dd9 Merge branch 'master' into 0.11 2011-04-16 09:12:31 +02:00
Tim-Philipp Müller
be59789664 ogg: fix unused-but-set-variable warnings with gcc 4.6
https://bugzilla.gnome.org/show_bug.cgi?id=647294
2011-04-13 23:57:56 +01:00
Tim-Philipp Müller
8f1d77bc3c oggmux: fix uninitialised variable usage and element leak
gcc on OSX complains about ret being used uninitialized in
this function, and it is right. Don't leak element ref
when returning early because newsegment event is not in
TIME format.
2011-04-12 12:41:06 +01:00
Wim Taymans
6e160bed3d Merge branch 'master' into 0.11
Conflicts:
	android/alsa.mk
	android/app.mk
	android/app_plugin.mk
	android/audio.mk
	android/audioconvert.mk
	android/decodebin.mk
	android/decodebin2.mk
	android/gdp.mk
	android/interfaces.mk
	android/netbuffer.mk
	android/pbutils.mk
	android/playbin.mk
	android/queue2.mk
	android/riff.mk
	android/rtp.mk
	android/rtsp.mk
	android/sdp.mk
	android/tag.mk
	android/tcp.mk
	android/typefindfunctions.mk
	android/video.mk
2011-04-11 11:37:51 +02:00
Alessandro Decina
030f639a8e android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the
needed Android.mk files.
Androgenizer can be found here:
http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:23:21 +02:00
Sebastian Dröge
0688521103 vorbisdec: Unref events if the parent element disappeared 2011-04-08 15:00:58 +02:00
Havard Graff
5e9cfc6355 vorbisdec: make upstream queries and events MT-safe 2011-04-08 15:00:35 +02:00
Wim Taymans
4007076b55 Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-04-06 16:33:56 +02:00
Mark Nauwelaerts
9cf76f114f theoraenc: refactor multipass file writing 2011-04-06 12:26:11 +02:00
Wim Taymans
0f3fdf18e0 fix compilation after merge 2011-04-04 11:44:15 +02:00
Wim Taymans
da1c863711 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/tag/gstvorbistag.c
2011-04-04 11:31:33 +02:00
Josep Torra
cd425d3787 oggmux: fix warning building in mac os x 2011-04-01 15:47:18 +02:00
Josep Torra
fbc60fc6f4 textoverlay: fix comparison is always false due to limited range of data type
Perform calculation in a temp var with enough room as there's guarantee that
ret will be able to hold the result for example in _blit_AYUV.
2011-04-01 15:47:03 +02:00
Sebastian Dröge
1c475f10e1 oggmux: Store the segment directly inside the pad
Also initialize it always in TIME format. We require TIME segments
in oggmux anyway and drop newsegment events in other formats and
assume an open-ended segment starting at 0.
2011-04-01 11:00:38 +02:00
Sebastian Dröge
fc56c76773 oggmux: Reset the segment on flush-stop events and when going back to READY 2011-04-01 10:58:09 +02:00
Thiago Santos
d1c74779f9 oggmux: Use running time instead of timestamps
Theora and vorbis use running time (which is correct) for calculating
the granulepos for their ogg packets. Oggmux, however, used
timestamps to order the received buffers.

This patch makes it use the running time to compare buffer times
and also to timestamp pushed buffers.

Some bits of the code still use timestamps, but they are only
used to calculate durations, so it should be fine.

https://bugzilla.gnome.org/show_bug.cgi?id=643775
2011-04-01 10:56:16 +02:00
Thiago Santos
c3aae3dc17 oggmux: Keep track of pad's segments
https://bugzilla.gnome.org/show_bug.cgi?id=643775
2011-04-01 10:56:15 +02:00
Sebastian Dröge
026776ca23 textoverlay: Add support for xBGR and RGBx
Now all RGB variants are supported.
2011-04-01 10:39:31 +02:00
Lane Brooks
200ee96338 textoverlay: Added support for ARGB and other RGB alpha variants 2011-04-01 10:36:36 +02:00
Lane Brooks
e2150b11ff textoverlay: converted AYUV to use 'A OVER B' alpha compositing
'A OVER B' compositing is explained at
http://en.wikipedia.org/wiki/Alpha_compositing.

Previously, overlaying text on a transparent background image left the
text overlay also transparent. This pipeline shows such an example:

gst-launch videotestsrc pattern=white ! video/x-raw-yuv,format=\(fourcc\)AYUV ! alpha alpha=0.0 ! textoverlay text=Testing auto-resize=False font-desc=60px ! videomixer ! ffmpegcolorspace ! autovideosink

With this patch, text is composited "OVER" the background image and
thus is visible regardless of the alpha of the background image. The
overlay in the above pipeline works after applying this patch.
2011-04-01 10:35:08 +02:00
Wim Taymans
248ab2d064 Fix for latest API changes 2011-03-30 16:50:45 +02:00
Wim Taymans
68814a6988 remove deprecated buffer methods 2011-03-29 11:08:19 +02:00
Wim Taymans
3712ca2da4 oggparse: fix for _make_writable 2011-03-28 20:19:24 +02:00
Wim Taymans
e1869fa267 Merge branch 'master' into 0.11-fdo 2011-03-28 20:13:59 +02:00
Wim Taymans
536e86e28f tests: fix more checks 2011-03-28 19:23:38 +02:00
Wim Taymans
04f74e5642 plugins: more porting 2011-03-28 10:20:06 +02:00
Wim Taymans
eba165191f theora: port to new memory API 2011-03-27 20:15:46 +02:00
Wim Taymans
f379a5dacb plugins: more porting to new memory API 2011-03-27 18:30:24 +02:00
Wim Taymans
5244770775 plugins: fix for new memory API 2011-03-27 17:16:10 +02:00
Tim-Philipp Müller
5aa02968c9 oggparse: fix list iteration code
Not that it really matters, but let's fix it before someone
notices and makes fun of us.
2011-03-26 19:38:17 +00:00
Tim-Philipp Müller
a7a305a18f oggparse: make sure buffer metadata is writable before setting caps on buffers 2011-03-26 11:59:54 +00:00
Mart Raudsepp
093a91eec8 textoverlay: Clean up alignment docs a bit and remove horiz top alignment enum 2011-03-16 15:03:51 +00:00
Blaise Gassend
185a8ddcaa alsamixer: Store return values of poll functions in a signed integer
Negative return values are used for errors and storing
them in an unsigned integer will make it impossible to
detect the errors.

Fixes bug #644845.
2011-03-15 19:48:21 +01:00
Wim Taymans
95f7fd8edf Merge branch 'master' into 0.11-fdo 2011-03-15 11:11:56 +01:00
Sebastian Dröge
a38fd9f9ec oggmux: Increase the seen header packets count when seeing a header packet
This fixes muxing of Speex content and possibly other formats where the
header detection works by counting the packets.

Fixes bug #644745.
2011-03-14 19:44:41 +01:00
Stefan Kost
9ac74c59db textoverlay: use a class wide mutex to work around pango reentrance issues
Pango is not reentrant. Use a class wide mutex to protect pange use in
gst_text_overlay_render_pangocairo(). This works reliable in contrast to the
hack in my previous commit.

Fixes Bug #412678
2011-03-14 11:17:10 +02:00
Stefan Kost
3294ecda7d Revert "textoverlay: add a hack to init the pango engine"
This reverts commit fee3266056.
2011-03-14 11:17:10 +02:00
Stefan Kost
1d73ea887d textoverlay: drop trailing whitespaces 2011-03-14 10:43:42 +02:00
Stefan Kost
fee3266056 textoverlay: add a hack to init the pango engine
Layout a single char to pre-create all resources.
2011-03-14 10:43:42 +02:00
Wim Taymans
c6dd11981d Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/pbutils/Makefile.am
2011-02-28 11:47:44 +01:00
Sebastian Dröge
461d9f2f2c oggmux: Don't handle GstCollectData as GstObject, use the pad instead 2011-02-24 16:22:53 +01:00
Edward Hervey
3fe2777b54 Revert "oggmux,adder: Check if collectpads has been freed"
This reverts commit 6d150873e8.

Depends on a core commit that was reverted.
2011-02-21 12:04:09 +01:00
David Schleef
6d150873e8 oggmux,adder: Check if collectpads has been freed
Core now calls release_pad in finalize, which is usually after
the collectpads has been unreffed.
2011-02-20 23:49:54 -08:00
David Schleef
9745a41ea3 theoraenc: move debug category init earlier 2011-02-17 18:29:56 -08:00
David Schleef
15e23414d3 oggparse: better detection of delta unit flag 2011-02-17 18:29:56 -08:00
David Schleef
f499810bdc theoraenc: Set speed level while running 2011-02-17 18:29:56 -08:00
Ralph Giles
d467eb708a Set the theoraenc speed-level property from libtheora's defaults.
The speed-level property, which allows callers to trade of encoding
quality for speed in the libtheora api, has a version-dependent
maximum and default values. Instead of hardcoding the acceptable
range for the theoraenc element's presentation of this setting,
we query the library directly at class initialization time and
set the maximum and default values from that. If the query fails,
we fall back to the previous default setting.

To keep the values reported by gst-inspect (which I'm told use
the spec values from the class) with those available on an\
instantiated element, we remove to setting of enc->speed_level
from the initializer and instead pass G_PARAM_CONSTRUCT to
the property spec flags, asking g_object to set this property
when theoraenc objects are constructed.

NB in theory the maximum speed-level could depend on the actual
video caps. If later versions of libtheoraenc do this, a second
call will need to be made from theora_enc_reset to update the
property, since this function is mostly useful for realtime
adjustment of performance while the pipeline is running.
2011-02-17 18:29:56 -08:00
Sjoerd Simons
46f3e7c6fd theoraenc: Don't reset the video quality setting the bitrate
libtheora has two encoding modes, CBR, where it tries to hit a target
bitrate and VBR where it tries to achieve a target quality.

Internally if the target bitrate is set to anything other then 0 the
encoding-mode is CBR.

This means that the gstreamer element can leave the video_quality
setting alone as long as the user is tweaking the bitrate. Which has the
nice side-effect that if the user explicitely sets the bitrate to 0
(which is actually the default), the quality value doesn't get reset and
one ends up encoding VBR at quality-level 0...
2011-02-14 16:03:56 +01:00
Vincent Penquerc'h
96a1a9dec6 oggmux: ensure serialnos are unique
We do that by checking a newly generated one is not already used in
an existing stream, and doing it again if it is.

https://bugzilla.gnome.org/show_bug.cgi?id=640211
2011-02-03 09:29:28 +00:00
Tim-Philipp Müller
54c19ba6de oggmux: free stream map caps when done 2011-02-02 17:34:42 +00:00
Tim-Philipp Müller
2eac43bd73 oggmux: keep IN_CAPS flag check for header buffers as fallback
In case the ogg mapper doesn't handle all the accepted input formats
(although it really should). Saves us error handling for that case
though. Also log caps properly.

https://bugzilla.gnome.org/show_bug.cgi?id=629196
2011-02-02 17:34:41 +00:00
Vincent Penquerc'h
440002a137 oggmux: use oggstream for less brittleness in recognizing headers
Using the IN_CAPS flag for this is brittle, and will fail if either
vorbisparse or vorbistag (which is itself based on vorbisparse) is
inserted between oggdemux and oggmux. Possibly other elements too
(eg, theoraparse, etc).
Using oggstream ensures we Get It Right More Often Than Not.

https://bugzilla.gnome.org/show_bug.cgi?id=629196
2011-02-02 17:34:41 +00:00
Vincent Penquerc'h
b7664eae71 oggmux: do not skip a pageno at start
Discontinuities are automatically signalled by oggdemux at the start
of a new stream. When oggmux is yet to output actual data pages,
do not signal these discontinuities in the ogg stream.

This patch may miss some actual discontinuities at the very start of
a stream, but avoids the spurious missing pages when encoding happens
normally.

A better fix might involve finding a way to distinguish between actual
data discontinuities and discontinuities merely marking the start of
a new stream.

Fixes an issue with ogg page numbering (would skip a number for no
reason, which then looks like a packet was lost somewhere) when
re-muxing an ogg stream, e.g. when re-tagging in rhythmbox.

https://bugzilla.gnome.org/show_bug.cgi?id=629196
2011-02-01 17:25:43 +00:00
Tim-Philipp Müller
9805bdfcc8 theoraenc: clean up property descriptions
Remove "This property requires libtheora version >= 1.1" qualifiers
from property descriptions. They aren't needed any longer now that
we require libtheora >= 1.1.
2011-02-01 16:08:13 +00:00
Vincent Penquerc'h
d144f7a3a5 oggmux: cleanup
Remove a pointless string concatentation, and fix an off-by-one in
packetno in a log.

https://bugzilla.gnome.org/show_bug.cgi?id=640189
2011-01-24 20:01:24 +01:00
Sreerenj Balachandran
7cfa18545c oggdemux: Remove dead code 2011-01-24 19:40:00 +01:00
Yang Xichuan
cb9607632f oggparse: Make gst_ogg_parse_submit_buffer() safe
By not passing zero-sized buffers to ogg_sync_buffer()
and checking the return values of libogg functions.

Fixes bug #639136.
2011-01-24 19:39:59 +01:00
Lane Brooks
876bf233fb textoverlay: Add support for vertical center alignment
Fixes bug #639159.
2011-01-24 19:39:59 +01:00
Yang Xichuan
43553b4dcb oggdemux: remove outdated comment
https://bugzilla.gnome.org/show_bug.cgi?id=639121
2011-01-10 12:34:54 +00:00
Tim-Philipp Müller
b6ae695174 textoverlay: make text property controllable too
Because we can, and because it's the most interesting one
to control really, after xpos/ypos.
2011-01-06 23:08:34 +00:00
Lane Brooks
e674178331 textoverlay: make some properties controllable
https://bugzilla.gnome.org/show_bug.cgi?id=638859
2011-01-06 23:02:23 +00:00
David Schleef
3c4466b816 oggdemux: ignore header pages when looking for keyframe
This was causing keyframe_granule to be set to 0 for all streams
when seeking to the beginning of the stream, i.e., at the
beginning of playback.  Fixes #619778.
2011-01-06 12:34:32 -08:00
Vincent Penquerc'h
b03b223fb1 oggstream: when the last keyframe position is not known, do not use -1
Instead, use either 0 or 1, depending on bitstream version, which give
the correct result for streams which aren't cut off at start.
This allows that function to not return negative granpos.

https://bugzilla.gnome.org/show_bug.cgi?id=638276
2011-01-06 12:34:32 -08:00
Tim-Philipp Müller
542256fd55 ogg: fix typo in comment 2010-12-29 11:51:42 +00:00
Vincent Penquerc'h
a5533c21d9 oggstream: fix interpretation of Theora granule position
The offset part of the granpos is not a sign of the newer encoding.
Use the version number instead.

This fixes the criticals thrown by theoraparse, and (at last) the
remaining part of #553244.
2010-12-29 12:40:25 +01:00
Wim Taymans
68e64770a0 oggdemux: handle pads that are not added yet
Don't try to stream data on pads that are not added yet. This happens while we
discover the different streams.
2010-12-28 19:39:18 +01:00
Vincent Penquerc'h
85cafac6af oggstream: implement tag extraction for Kate streams
This will mainly allow Totem to know the language of those streams,
so the subtitle selection menu gets properly filled out.

https://bugzilla.gnome.org/show_bug.cgi?id=638005
2010-12-27 10:53:24 +00:00
Vincent Penquerc'h
dd135119d9 oggdemux: set headers on caps
This will allow switching from one stream to another without having to send
the headers for the new stream again.

https://bugzilla.gnome.org/show_bug.cgi?id=637927
2010-12-25 16:55:15 +01:00
David Schleef
0c4820914c oggstream: Fix parsing of theora size 2010-12-22 15:30:36 -08:00
Vincent Penquerc'h
e443ae6000 oggdemux: Don't use gst_pad_alloc_buffer()
allocate buffers using gst_buffer_new_and_alloc() instead of
gst_pad_alloc_buffer_and_set_caps(), as the first one will
cause the pad to block, and we don't want that since that will
prevent subsequent pads from being fed if a block occurs at
start, when all pads must be fed for playback to start.

This fixes autoplugging of the tiger element and other things.

https://bugzilla.gnome.org/show_bug.cgi?id=637822
2010-12-22 20:19:15 +01:00
Wim Taymans
1dafd7136d vorbisdec: keep timestamps when no decoded output
Keep track of the timestamps even when we didn't generate decodable output.
2010-12-21 13:39:27 +01:00