Commit graph

2633 commits

Author SHA1 Message Date
Reynaldo H. Verdejo Pinochet
22e6c28284 Fix TREMELO -> TREMOLO typo 2012-01-13 14:47:13 -03:00
Tim-Philipp Müller
0461ed2ada Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst-libs/gst/pbutils/gstdiscoverer-types.c
	gst-libs/gst/pbutils/gstdiscoverer.c
	tests/check/Makefile.am
2012-01-12 23:21:17 +00:00
Vincent Penquerc'h
3fbd95d85e theoraparse: fix array leak 2012-01-12 16:24:01 +00:00
Vincent Penquerc'h
9f4b71b2a7 oggdemux: fix push mode chain leak
When I first implemented push mode seeking, I removed the chain
freeing there as it could be used later. The current code does not
seem to do that though, so I'm restoring the previous freeing,
which plugs the leak while apparently not reintroducing use of
freed data with chained and normal files, both with gst-launch
playbin2 and Totem.
2012-01-11 16:17:42 +00:00
Vincent Penquerc'h
83c9396850 Revert "oggmux: fix pad leak"
This reverts commit 5df30c1b90.

I must have dreamt the Valgrind logs, reverting this reintroduces
no leak, and gets rid of the test failures it introduced :S
2012-01-10 19:02:31 +00:00
Vincent Penquerc'h
35df9d2ad9 oggstream: fix tag list leak 2012-01-10 16:57:04 +00:00
Vincent Penquerc'h
a718b859a7 oggdemux: fix pad leak 2012-01-10 16:51:09 +00:00
Vincent Penquerc'h
ef1469fc8b oggdemux: fix hang on small truncated files
A first hang was happening when trying to locate a page backwards,
where we'd sync forever on the same page.
With that fixed, a second hang would happen after preparing an EOS
event, but with no chain created yet to send it to, the pipeline
would stay idle forever.
An element error is now emitted for this case.
2012-01-10 16:20:23 +00:00
Vincent Penquerc'h
5df30c1b90 oggmux: fix pad leak 2012-01-10 16:20:23 +00:00
Sebastian Dröge
e802002d96 Merge branch 'master' into 0.11
Conflicts:
	gst/mpegtsdemux/tsdemux.c
	gst/videoparsers/gsth264parse.c
	tests/check/elements/camerabin2.c
2012-01-10 15:50:37 +01:00
Vincent Penquerc'h
d6b60c62e6 opusenc: fix slist leak 2012-01-10 13:38:50 +00:00
Vincent Penquerc'h
2ca8f88ecc opusenc: fix caps leak 2012-01-10 13:38:42 +00:00
Sebastian Dröge
dc8984d76c Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/app/gstappsrc.c
	gst-libs/gst/audio/multichannel.h
	gst-libs/gst/video/videooverlay.c
	gst/playback/gstplaysink.c
	gst/playback/gststreamsynchronizer.c
	tests/check/Makefile.am
	win32/common/libgstvideo.def
2012-01-10 13:15:12 +01:00
Mark Nauwelaerts
08a6621b2d vorbisdec: use right channel variable even more 2012-01-06 16:15:45 +01:00
Wim Taymans
f8ae2a0d5b vorbisdec: use right channel variable 2012-01-05 12:32:06 +01:00
Idar Tollefsen
580b6b2b69 pango: changes includes from brackets to quotes for local files
https://bugzilla.gnome.org/show_bug.cgi?id=667316
2012-01-05 10:52:14 +00:00
Sebastian Dröge
40938b8a89 ogg: Update for the libgstriff API changes
Still needs to handle the raw audio channel reordering.
2012-01-05 10:34:25 +01:00
Sebastian Dröge
75f91ebea0 ext: Add new layout field to the raw audio caps 2012-01-05 10:34:25 +01:00
Sebastian Dröge
9c60505900 vorbis: Port to the new multichannel caps 2012-01-05 10:34:24 +01:00
Sebastian Dröge
2fc75efdce alsa: Port to the new multichannel caps 2012-01-05 10:34:20 +01:00
Edward Hervey
f562a29284 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
	gst-libs/gst/tag/gstexiftag.c
	gst/adder/gstadder.c
	gst/adder/gstadder.h
	gst/playback/gstdecodebin2.c
	gst/playback/gstsubtitleoverlay.c
	tests/check/libs/tag.c
2011-12-30 13:21:35 +01:00
Edward Hervey
d5b34263cd Merge remote-tracking branch 'origin/master' into 0.11-premerge
Conflicts:
	docs/libs/Makefile.am
	ext/kate/gstkatetiger.c
	ext/opus/gstopusdec.c
	ext/xvid/gstxvidenc.c
	gst-libs/gst/basecamerabinsrc/Makefile.am
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideoencoder.c
	gst/asfmux/gstasfmux.c
	gst/audiovisualizers/gstwavescope.c
	gst/camerabin2/gstcamerabin2.c
	gst/debugutils/gstcompare.c
	gst/frei0r/gstfrei0rmixer.c
	gst/mpegpsmux/mpegpsmux.c
	gst/mpegtsmux/mpegtsmux.c
	gst/mxf/mxfmux.c
	gst/videomeasure/gstvideomeasure_ssim.c
	gst/videoparsers/gsth264parse.c
	gst/videoparsers/gstmpeg4videoparse.c
2011-12-30 11:41:17 +01:00
Thiago Santos
08022bddc8 oggmux: fix leak when initializing pads
Pads are initialized twice: when requesting pads and when
initializing collectpads. Avoid double initialization by
checking if collectpads are still going to be initialized when
creating request pads.
2011-12-28 09:45:53 -03:00
Tim-Philipp Müller
3dfdd6be9d audioringbuffer: rename GST_BUFTYPE_* to GST_AUDIO_RING_BUFFER_FORMAT_TYPE_*
Bit unwieldy, but more appropriate. Could also be moved into
audio.h as GstAudioFormatType.
2011-12-25 21:38:21 +00:00
Tim-Philipp Müller
4fc4aeee71 theoraenc: fix template caps creation on big endian systems 2011-12-23 22:51:59 +00:00
Wim Taymans
6aafcb3992 theoradec: improve cropping
Only add cropping metadata when needed
Remove some used code.
2011-12-23 16:10:53 +01:00
Tim-Philipp Müller
cab6432c68 alsasink: make work for raw audio formats by fixing template caps 2011-12-23 00:54:43 +00:00
Wim Taymans
dde5e5a248 alsa: remove more property probe stuff 2011-12-22 16:37:29 +01:00
Wim Taymans
ddc05e0ed1 propertyprobe: remove propertyprobe
Remove the propertyprobe interface
Improve docs
2011-12-21 11:58:53 +01:00
Oleksij Rempel (Alexey Fisher)
5f3a31f4d1 theoraenc: add "dup-on-gap" option
This option will produce duplicate frames if we get
a frame with GAP flag. This will reduce CPU load and file size.

This option should be disabled for real time applications, because it
collects GAP frames and waits until it gets a non GAP frame to start
encoding.

v30.06.2011: make some spell changes.
v03.07.2011: add handling of EOS and discontinuous for dup-on-gap.
v19.12.2011: fix pointer dangling in theora_timefifo_free
v20.12.2010: fix timestamp bug for dup-on-gap=0

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

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2011-12-20 19:43:47 +00:00
Vincent Penquerc'h
229377fb6b oggdemux: assume live stream if byte size cannot be determined
This prevents trying to seek and failing, then ending up unable
to stream because we can't get back at the headers.
A more robust way would be to find a good place to reinject the
headers when a seek fails, but I can't seem to get this to work.
2011-12-16 15:29:21 +00:00
Vincent Penquerc'h
b20879ea9e opus: fix bad merge (stray unmap, undeclared var) 2011-12-15 16:42:20 +00:00
Vincent Penquerc'h
3f47a43f2a opusenc: add upstream negotiation for multistream ability
This will help elements that cannot deal with multistream,
such as the RTP payloader.

The caps now do not include a "streams" field anymore, but
a "multistream" boolean, since we have no real use for knowing
the exact amount of streams.

https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-10 10:39:11 +00:00
Danilo Cesar Lemes de Paula
3a978f5a69 Adding opus RTP payloader/depayloader element
Adding OPUS RTP module based on the current draft:
http://tools.ietf.org/id/draft-spittka-payload-rtp-opus-00.txt

https://bugzilla.gnome.org/show_bug.cgi?id=664817
2011-12-09 15:05:42 +00:00
Vincent Penquerc'h
dbca14b23b opus: include streams count in caps
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-09 15:04:20 +00:00
Vincent Penquerc'h
f807905786 opus: properly create channel mapping tables
There are two of them, unintuitively enough; the one passed
to the encoder should not be the one that gets written to the
file. The former maps the input to an ordering which puts
paired channels first, while the latter moves the channels
to Vorbis order. So add code to calculate both, and we now
have properly paired channels where appropriate.

https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-09 15:04:20 +00:00
Tim-Philipp Müller
fb6d09055a Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/alsa/gstalsadeviceprobe.c
	ext/alsa/gstalsamixer.c
	ext/pango/gsttextoverlay.c
	ext/pango/gsttextoverlay.h
	gst-libs/gst/audio/gstaudiobasesink.c
	gst-libs/gst/audio/gstaudioringbuffer.c
	gst-libs/gst/audio/gstaudiosrc.c
	gst-libs/gst/video/Makefile.am
	gst-libs/gst/video/video.c
	gst/encoding/gststreamcombiner.c
	gst/encoding/gststreamsplitter.c
	gst/playback/gstplaybasebin.c
	gst/playback/gststreamsynchronizer.c
	gst/playback/gstsubtitleoverlay.c
	gst/playback/gsturidecodebin.c
	sys/xvimage/xvimagesink.c
	tests/examples/Makefile.am
	win32/common/libgstvideo.def

Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Olivier Crête
16bb45d64a opusdec: header cleanup
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-07 14:03:02 +00:00
Olivier Crête
b7d53c866b opusdec: Truncate caps first
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-07 14:03:00 +00:00
Vincent Penquerc'h
f6ebc2de8e opusdec: default to stereo 48000 Hz if possible when no headers seen
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-07 13:57:38 +00:00
Thibault Saunier
785e006de9 textoverlay: unpremultiply text image
The GstVideoOverlayComposition only supports unpremultiplied ARGB
(for now anyway, support for pre-multiplied alpha is planned.)
2011-12-05 15:37:04 +00:00
Thibault Saunier
cbcf1e0b46 textoverlay: Attach OverlayComposition to buffers when needed
Add video/x-surface support in the caps
We should then attach it whenever the sink supports it, but this
is working for the time being
2011-12-05 15:37:04 +00:00
Thibault Saunier
2a687b6dfb textoverlay: Make the text_image data a buffer
This way we won't free data that would be attached to some buffer.
2011-12-05 15:37:03 +00:00
Thibault Saunier
a741c0cf11 textoverlay: Sync the caps with the new supported formats
Thanks to the use of the new video composition library, we gain support to
more colospaces and formats, let's state it.
2011-12-05 15:37:03 +00:00
Thibault Saunier
a018c187a0 textoverlay: Make use of the new video blending utility 2011-12-05 15:37:03 +00:00
Tim-Philipp Müller
5440ae3c18 Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-04 20:50:25 +00:00
Tim-Philipp Müller
4828234639 alsamixer: use GRectMutext instead of GStaticRecMutex with newer glib versions 2011-12-04 20:38:19 +00:00
Tim-Philipp Müller
9c307bccc5 alsamixer: embed static mutexes into the mixer structure
instead of allocating them dynamically
2011-12-04 20:21:26 +00:00
Tim-Philipp Müller
0d98aa25b8 Work around deprecated thread API in glib master
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.

Replace g_thread_create() with g_thread_try_new().
2011-12-04 17:16:30 +00:00
Wim Taymans
1225aa9a78 update for basesink event handler changes 2011-12-02 22:24:43 +01:00
Vincent Penquerc'h
51b02f61fc opusdec: guard against decoding 0 samples
https://bugzilla.gnome.org/show_bug.cgi?id=665078
2011-12-02 15:19:52 +00:00
Tim-Philipp Müller
177525f89f Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst-libs/gst/netbuffer/gstnetbuffer.c
	gst/ffmpegcolorspace/avcodec.h
	gst/ffmpegcolorspace/gstffmpegcodecmap.c
	gst/ffmpegcolorspace/imgconvert.c
	gst/ffmpegcolorspace/imgconvert_template.h
	gst/ffmpegcolorspace/mem.c
	gst/playback/README
	gst/playback/gstplaybasebin.c
	gst/playback/gstplaybasebin.h
	gst/playback/gstplaybin.c
	sys/v4l/v4lmjpegsrc_calls.c
	sys/v4l/videodev_mjpeg.h
	tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik
14644457b0 various: typo fixes
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Tim-Philipp Müller
ec0d3566bf Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/alsa/gstalsasrc.c
	ext/alsa/gstalsasrc.h
	gst/adder/gstadder.c
	gst/playback/gstplaybin2.c
	gst/playback/gstplaysinkconvertbin.c
	win32/common/libgstvideo.def
2011-12-02 00:07:39 +00:00
Tim-Philipp Müller
e88e47cd24 Revert "alsasrc: Improve timestamp accuracy"
This reverts commit 0b774e0b7c.
2011-11-30 23:15:35 +00:00
Tim-Philipp Müller
e5ae553850 Revert "alsasrc: Fix some compilation errors"
This reverts commit 2b84f5bd74.
2011-11-30 23:15:22 +00:00
Tim-Philipp Müller
4cc8920db4 Revert "alsa: Remove unused but set variable"
This reverts commit e9aed7f31c.
2011-11-30 23:15:12 +00:00
Tim-Philipp Müller
1290f7de0e Revert "alsasrc: fail gracefully when ALSA does not give timestamps"
This reverts commit c7282a5718.
2011-11-30 23:15:03 +00:00
Tim-Philipp Müller
d11849114c Revert "alsasrc: handle the case where the drivers don't supply timestamps"
This reverts commit 8154b69112.
2011-11-30 23:14:54 +00:00
Stefan Sauer
6d167abdfa Revert "alsasrc: style fix"
This reverts commit f70ca6d4cb.
2011-11-30 23:14:44 +00:00
Wim Taymans
47cbb230e9 audio: move audio interfaces
Move the audio related interfaces to the audio library.
2011-11-30 07:57:02 +01:00
Alessandro Decina
ab921eec11 oggdemux: fix compiler warning 2011-11-29 09:16:20 +01:00
Tim-Philipp Müller
0c056a04fe Merge commit '4a58223e4c824fedc024af435337a769e8ce593e' into 0.11 2011-11-28 21:20:10 +00:00
Vincent Penquerc'h
c554463025 Revert "theoradec: move the QoS logic to libgstvideo"
This reverts commit 149a4ce390.

*grumble* I managed to merge something I did not mean to.
2011-11-28 13:27:29 +00:00
Vincent Penquerc'h
96374054ac various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:02 +00:00
Vincent Penquerc'h
b8431a03a7 various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Vincent Penquerc'h
149a4ce390 theoradec: move the QoS logic to libgstvideo
https://bugzilla.gnome.org/show_bug.cgi?id=658241
2011-11-28 12:34:43 +00:00
Stefan Sauer
f70ca6d4cb alsasrc: style fix
Use timestamp==0 instead of mixing it with !timestamp style checks.
2011-11-28 10:55:39 +01:00
Stefan Sauer
8154b69112 alsasrc: handle the case where the drivers don't supply timestamps
If highres-timestamp is 0, try lowres and if that fails fallback to system clock
timestamps.
2011-11-28 09:13:29 +01:00
Tim-Philipp Müller
619915ea74 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/opus/gstopusdec.c
	ext/opus/gstopusparse.c
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideodecoder.h
2011-11-26 15:37:25 +00:00
Tim-Philipp Müller
32b14c6ed3 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisenc.c
	gst/playback/gstdecodebin2.c
	gst/playback/gstplaysinkconvertbin.c
	gst/videorate/gstvideorate.c
2011-11-26 12:12:59 +00:00
Vincent Penquerc'h
c6b9145630 oggmux: set collectpads2 not to wait on sparse streams
https://bugzilla.gnome.org/show_bug.cgi?id=663174
2011-11-25 16:11:01 +00:00
Danilo Cesar Lemes de Paula
64c3d73642 opusenc: Fixing "Unused var" compiling error for opus codec
https://bugzilla.gnome.org/show_bug.cgi?id=664815
2011-11-25 15:32:12 +00:00
Vincent Penquerc'h
8ac75d10fd opusenc: only use mono streams for > 2 channels
I'm getting odd results with packing streams into stereo
streams, and using only mono streams is enough in all cases.
2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
287a0c646e opus: add some more debug information about channel mapping 2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
605d407b16 opusenc: do not cause the decoder to apply the channel mapping again
Since we already reorder channels, we do not want to write that
reordering in the header, or the decoder will do it again.
2011-11-25 15:31:59 +00:00
Vincent Penquerc'h
1e00fbdacb opusdec: fix bogus assertion 2011-11-25 15:31:59 +00:00
Tim-Philipp Müller
a0639dad38 audio: remove unstable API guards from the audio decoder and encoder base classes 2011-11-25 13:11:54 +00:00
Edward Hervey
a8024bb698 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/faac/gstfaac.c
	ext/opus/gstopusdec.c
	ext/opus/gstopusenc.c
	gst/audiovisualizers/gstspacescope.c
	gst/colorspace/colorspace.c
2011-11-25 12:48:58 +01:00
Vincent Penquerc'h
a5c64d5b97 oggdemux: minor cleanup 2011-11-24 17:12:56 +00:00
Vincent Penquerc'h
32e9de842f opus: pre-skip and output gain are little endian, remove reminder note 2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
d38f4b8a09 opus: multichannel support 2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
670c365400 opus: switch to multistream API
It's very similar to the basic API, and is a superset ot it,
which will allow encoding and decoding more than 2 channels.
2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
e4ae3e89fa opusdec: shuffle supported sample rates to favor 48000 2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
d1d8cbad95 opusenc: remove useless setup field 2011-11-24 13:40:34 +00:00
Vincent Penquerc'h
b0bb1d3539 oggdemux: skip the second bisection when possible
If we already saw the keyframes that we need to find,
we do not need to bisect to find them.

This will always be the case for streams with audio only,
where each frame acts as a keyframe, but will occasionally
also happen for streams with video.

https://bugzilla.gnome.org/show_bug.cgi?id=662475
2011-11-24 10:48:48 +01:00
Vincent Penquerc'h
e7079cd8d5 oggdemux: improve push time seeking
Various tweaks to improve convergence, in particular for
the worst case, which is now cut in about half.

https://bugzilla.gnome.org/show_bug.cgi?id=662475
2011-11-24 10:48:32 +01:00
Vincent Penquerc'h
db21375406 oggdemux: gather some more stats about bisection
https://bugzilla.gnome.org/show_bug.cgi?id=662475
2011-11-24 10:48:15 +01:00
Vincent Penquerc'h
dbd694c7c4 vorbisenc: do not accept 256 channels, 255 is the max vorbis supports 2011-11-23 16:09:13 +00:00
Vincent Penquerc'h
5c8812f58c opusdec: implement replay gain
It would ideally be better to leave this to a rgvolume element,
but we don't control the pipeline. So do it by default, and allow
disabling it via a property, so the correct volume should always
be output.
2011-11-23 14:03:30 +00:00
Vincent Penquerc'h
bfdda8e09a opusdec: add in-band FEC support
This allows reconstruction of lost packets if FEC info is included
in the next packet, at the cost of extra latency. Since we do not
know if the stream has FEC (and this can change at runtime), we
always incur the latency, even if we never lose any frame, or see
any FEC information. Off by default.
2011-11-23 12:08:01 +00:00
Wim Taymans
17f6254ab4 ogg: fix compilation 2011-11-23 11:10:31 +01:00
Wim Taymans
296786c011 Merge branch 'master' into 0.11
Conflicts:
	ext/opus/gstopusdec.c
	ext/opus/gstopusenc.c
	ext/opus/gstopusparse.c
	gst/audiovisualizers/gstwavescope.c
	gst/filter/Makefile.am
	gst/filter/gstfilter.c
	gst/filter/gstiir.c
	gst/playondemand/gstplayondemand.c
2011-11-23 11:08:39 +01:00
Wim Taymans
7b45a7367b Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
2011-11-23 10:50:53 +01:00
Tim-Philipp Müller
2befc00dea opusenc: mark properties changeable at runtime with GST_PARAM_MUTABLE_PLAYING 2011-11-22 20:27:50 +00:00
Vincent Penquerc'h
b226e8a085 opusenc: allow setting most properties at PLAYING time
Opus allows these to be changed during encoding, transparently
to the decoder.
2011-11-22 17:04:09 +00:00
Vincent Penquerc'h
ee723996db opusenc: bound the bitrate to more sensible values
Go from the bounds mentioned in the spec, and allow some more
variation.
In particular, don't allow silly low bitrates, and allow reaching
the maximum useful bitrate.
2011-11-22 16:14:06 +00:00
Vincent Penquerc'h
bb39c86fdf opusenc: fix crash on pathological parameters
Asking for 1 bit/s would select a 0 byte buffer, leading
to a crash. Buffer size is now controlled by a max-payload-size
property, which can't be less than 2.
2011-11-22 15:33:20 +00:00
Vincent Penquerc'h
042b4f9a29 oggstream: extract opus comments if available 2011-11-22 13:29:10 +00:00
Vincent Penquerc'h
5be77031ca opus: move header magic testing to gstopusheader 2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
354c7824aa opusdec: skip pre-skip samples 2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
1e81bc4b64 opusdec: read pre-skip from first header if available 2011-11-22 13:20:31 +00:00
Vincent Penquerc'h
bf73491077 oggstream: recognize opus headers from data, not packet count
Opus streams outside of Ogg may not have headers, and oggstream
may be used by oggmux to mux an Opus stream which does not come
from Ogg - thus without headers.
Determining headerness by packet count would strip the first two
packets from such an Opus stream, leading to a very small amount
of audio being clipped at the beginning of the stream.
2011-11-22 13:15:33 +00:00
Vincent Penquerc'h
9d4989395c oggdemux: add some more debug info when determining start time 2011-11-22 13:01:35 +00:00
Vincent Penquerc'h
2a87d7c8ce oggstream: fix opus duration calculation 2011-11-22 12:55:56 +00:00
Vincent Penquerc'h
ceee36195a oggstream: early out on headers when determining packet duration 2011-11-22 12:00:58 +00:00
Vincent Penquerc'h
e05f1df04b oggstream: account for opus pre-skip in granpos/time mapping 2011-11-22 11:59:54 +00:00
Tim-Philipp Müller
e8fb8cb523 Fix some more printf format warnings 2011-11-22 01:21:04 +00:00
Wim Taymans
8fc2a21775 update for activation changes 2011-11-21 13:35:34 +01:00
Vincent Penquerc'h
fbfc870343 opusenc: reset tagsetter interface on stop 2011-11-21 12:02:28 +00:00
Vincent Penquerc'h
a6ca3673b4 opusdec: handle NULL packets (used for PLC) 2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
de87d061fc opusdec: light cleanup 2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
95ae14f8b4 opusenc: do not push header buffers
Opus headers appear only when muxed in Ogg, so only place them
on the caps, where oggmux will find them, but other elements will
be blithely unaware of them.
2011-11-21 11:51:21 +00:00
Vincent Penquerc'h
7030b04f5e opus: make opusparse set headers on caps
Header-on-caps code moved to a new shared location to avoid
duplicating the code.
2011-11-21 11:51:20 +00:00
Vincent Penquerc'h
9d2a2750c2 ogg: add opus support 2011-11-19 16:06:09 +00:00
Vincent Penquerc'h
efcd038346 opusenc: fix terminating NUL being written in signature 2011-11-19 15:59:53 +00:00
Vincent Penquerc'h
7c0c221fa4 opusenc: make frame-size an enum
It only supports a set number of specific values (including
a non integer one).
2011-11-19 15:59:52 +00:00
Vincent Penquerc'h
d2aba01428 opusenc: the encoder might not make use of all the bytes 2011-11-19 15:59:52 +00:00
Wim Taymans
d0bd5f04c0 update for new scheduling query 2011-11-18 17:58:58 +01:00
Wim Taymans
1ad4d20607 add parent to activate functions 2011-11-18 13:56:04 +01:00
Wim Taymans
f566dae7dc Merge branch 'master' into 0.11
Conflicts:
	ext/celt/gstceltdec.c
	ext/opus/gstopusdec.c
	ext/opus/gstopusdec.h
	ext/opus/gstopusenc.c
	ext/opus/gstopusenc.h
	ext/opus/gstopusparse.c
2011-11-17 17:32:42 +01:00
Wim Taymans
7afdff3575 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudiodecoder.c
2011-11-17 17:07:41 +01:00
Wim Taymans
e302833e65 add parent to pad functions 2011-11-17 12:48:25 +01:00
Vincent Penquerc'h
ccc04a1529 opusenc: do not include variable fields in caps
Those can vary from one packet to the next, so have no reason
to be in the caps.
2011-11-16 18:51:16 +00:00
Vincent Penquerc'h
0031b48684 opusenc: fix constrained-vbr property name typo 2011-11-16 18:51:16 +00:00
Vincent Penquerc'h
656e1f8d9f opusdec: let the base class handle all timing 2011-11-16 18:35:29 +00:00
Mark Nauwelaerts
80658564ae vorbisenc: reset tag setter interface when appropriate 2011-11-16 19:03:49 +01:00
Vincent Penquerc'h
8bb91f923f opusparse: add opusparse element
A very simple element that parses Opus streams from the ad hoc
framing used by the Opus test vectors.
2011-11-16 17:58:15 +00:00
Vincent Penquerc'h
310daa5096 opusdec: allow negotiation of rate/channels with downstream
Since an opus stream may be decoded to any (sensible) rate,
and either stereo or mono, we try to accomodate downstream.
2011-11-16 17:45:00 +00:00
Vincent Penquerc'h
ffc4408d53 opusdec: rewrite logic
Parameters such as frame size, etc, are variable. Pretty much
everything can change within a stream, so be prepared about it,
and do not cache parameters in the decoder.
2011-11-16 17:45:00 +00:00
Vincent Penquerc'h
f978a60f38 opus: port to base audio encoder/decoder 2011-11-16 17:45:00 +00:00
Wim Taymans
2202511e77 add parent to query function 2011-11-16 17:25:17 +01:00
Vincent Penquerc'h
acf18e34be opusdec: allow negotiation of rate/channels with downstream
Since an opus stream may be decoded to any (sensible) rate,
and either stereo or mono, we try to accomodate downstream.
2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
afbc4fdd71 opusdec: rewrite logic
Parameters such as frame size, etc, are variable. Pretty much
everything can change within a stream, so be prepared about it,
and do not cache parameters in the decoder.
2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
9690361d04 opusdec: remove buffer pool, buffers are not constant size 2011-11-16 13:43:36 +00:00
Vincent Penquerc'h
1c99cb3ab1 opusparse: add opusparse element
A very simple element that parses Opus streams from the ad hoc
framing used by the Opus test vectors.
2011-11-16 13:43:36 +00:00
Wim Taymans
94ac7e858f visual: update for renamed flags
Use the _check_reconfigure method instead of checking flags.
Don't need to ref the parent anymore, core does that.
2011-11-16 12:40:26 +01:00
Vincent Penquerc'h
a4a837dd39 opusenc: fix pointer mismatch in memcpy on drain 2011-11-15 17:50:39 +00:00
Wim Taymans
026ec68f75 _peer_get_caps() -> _peer_query_caps() 2011-11-15 18:04:17 +01:00
Wim Taymans
7402d3a3d2 update for _get_caps() -> _query_caps() 2011-11-15 18:04:17 +01:00
Wim Taymans
ab9ffa93f5 change getcaps to query
Add sink and src event functions in rtpbasepayload
Add query vmethod to rtpbasepayload.
2011-11-15 18:04:16 +01:00
Vincent Penquerc'h
dc1e8fef48 opus: port to encoder/decoder base classes 2011-11-14 13:50:23 +00:00
Tim-Philipp Müller
c76e5804b3 Update for GstURIHandler get_protocols() changes 2011-11-13 23:44:23 +00:00
Tim-Philipp Müller
455f337e3d gio, appsrc, appsink, cdaudiosrc: update for GstURIHandler API changes 2011-11-13 18:22:06 +00:00
Tim-Philipp Müller
83a1e31786 cdparanoia: update for GstCddaBaseSrc -> GstAudioCdSrc renaming 2011-11-12 11:58:58 +00:00
Vincent Penquerc'h
73d0c7516f opus: port to 0.11 2011-11-11 17:46:41 +00:00
Wim Taymans
ee7072fe7e rename GstBaseAudio* ->GstAudioBase* 2011-11-11 11:52:47 +01:00
Wim Taymans
6511f36fdb audio: GstRingBuffer -> GstAudioRingBuffer 2011-11-11 11:21:41 +01:00
Wim Taymans
e338792ab0 update for adapter api changes 2011-11-10 18:32:39 +01:00
Vincent Penquerc'h
545b87e14c opusenc: fix bandwidth property type mismatch 2011-11-10 17:14:10 +00:00
Wim Taymans
3254e79f04 alsa: fix negotiation
Don't assume the format is a string because now it is a list of string in the
template.
Chain up to the parent class implementation of get_caps.
2011-11-10 16:05:19 +01:00
Vincent Penquerc'h
e02a164a36 vorbisenc: fix getcaps ignoring filter caps 2011-11-10 14:38:09 +00:00
Vincent Penquerc'h
67f6f64d88 oggdemux: do not try to write empty header buffers
Those are valid, and the EOS skeleton packet is actually empty.
2011-11-10 14:38:09 +00:00
Vincent Penquerc'h
77230f0106 oggmux: split request pad templates into audio/video/subtitle
https://bugzilla.gnome.org/show_bug.cgi?id=663766
2011-11-10 14:38:09 +00:00
Wim Taymans
671131a83a update for removed fixate functions 2011-11-10 11:02:12 +01:00
Wim Taymans
372b9329b9 remove query types 2011-11-09 11:47:54 +01:00
Vincent Penquerc'h
51426a3b2d textoverlay: continue processing text when silent
This prevents playback wegding when text buffers are
left to pile up.

https://bugzilla.gnome.org/show_bug.cgi?id=662829
2011-11-08 12:02:49 +00:00
Tim-Philipp Müller
d7fc45f42e docs: fix up some Since: markers 2011-11-07 23:05:44 +00:00
Wim Taymans
8c8fcf4d3b Merge branch 'master' into 0.11 2011-11-07 17:18:06 +01:00
Vincent Penquerc'h
5d3852d91a theoraenc: fix speed level failure test
It was testing the opposite of what it thought it was.

https://bugzilla.gnome.org/show_bug.cgi?id=663390
2011-11-07 12:27:16 +00:00
Vincent Penquerc'h
a81cb3ef7f theoraenc: make logically static const data just so
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:15 +00:00
Vincent Penquerc'h
c1aab3e0a7 theoraenc: use th_packet_iskeyframe instead of peeking at bits
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:14 +00:00
Vincent Penquerc'h
ffbe58fd5a theoraenc: trivial comment typos fixes
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:13 +00:00
Vincent Penquerc'h
0c4ccb4f9c theoraenc: warn when trying to set an ignored obsolete property
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:12 +00:00
Vincent Penquerc'h
10811d63f9 theoraenc: refuse to get to READY if the encoder was disabled
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:11 +00:00
Vincent Penquerc'h
353153d079 oggdemux: survive skeleton finding length behind our backs in push mode
In push mode, we determine duration by doing a seek to the end of the
stream. However, a skeleton stream with an index will cause the duration
to be known already, and we end up never setting the push_time_duration
variable which we use to know duration has been determined.

https://bugzilla.gnome.org/show_bug.cgi?id=662049
2011-11-07 12:20:16 +00:00
Wim Taymans
7ac25e9b26 Merge branch 'master' into 0.11
Conflicts:
	common
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/playback/gstdecodebin2.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkaudioconvert.h
	gst/playback/gstplaysinkvideoconvert.c
	gst/playback/gstplaysinkvideoconvert.h
2011-11-07 12:23:15 +01:00
Vincent Penquerc'h
2488107279 opusenc: fix latency query
This makes live 'audiosrc ! opusenc ! opusdec ! audiosink' pipelines
actually work without all audio being dumped.

https://bugzilla.gnome.org/show_bug.cgi?id=660999
2011-11-07 11:21:27 +00:00
Vincent Penquerc'h
ca14e2e061 opusenc: use debug level for debug info, not error
https://bugzilla.gnome.org/show_bug.cgi?id=660999
2011-11-07 11:21:27 +00:00
Vincent Penquerc'h
10a1f8395f opusenc: fix calculation of filler data size
https://bugzilla.gnome.org/show_bug.cgi?id=660469
2011-11-07 11:21:26 +00:00
Stefan Sauer
0019bcaa47 controller: port to new location and api changes 2011-11-04 20:14:54 +01:00
Wim Taymans
75fea4f535 oggdemux: fix somtimes pad 2011-11-04 12:53:33 +01:00
Wim Taymans
cf8481b990 fix pad template names for request pads 2011-11-04 10:49:48 +01:00
Sebastian Dröge
41dc3033d4 oggmux: Remove obsolete #include 2011-11-03 09:27:56 +01:00
Wim Taymans
a5fa136c0b update for tag API removal 2011-11-02 12:11:16 +01:00
Wim Taymans
e067e67923 rename meta* -> *meta 2011-11-02 09:04:27 +01:00
Wim Taymans
7cd83031a1 alsa: update for new task api 2011-11-02 09:04:27 +01:00
Tim-Philipp Müller
5ee51e47a1 ext, gst, gst-libs, tests: update for tag list API changes 2011-10-31 14:22:39 +00:00
Wim Taymans
4f9dea137f Merge branch 'master' into 0.11 2011-10-28 11:34:37 +02:00
Thiago Santos
136f5b2690 oggmux: port to gstcollectpads2 2011-10-28 10:06:16 +02:00
Wim Taymans
06311362e9 fix compilation 2011-10-27 17:26:58 +02:00
Wim Taymans
016d036137 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/audioconvert/channelmixtest.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstsubtitleoverlay.c
	tests/examples/Makefile.am
	tests/examples/audio/Makefile.am
2011-10-27 15:44:58 +02:00
René Stadler
133a0b1771 oggdemux: remove avoidable call to gst_object_set_name 2011-10-21 22:24:14 +02:00
Stefan Sauer
53d7d2e966 interfaces: clean up the use of iface and class/klass 2011-10-21 14:46:48 +02:00
Vincent Penquerc'h
1f900dc20d vorbisdec: do not try to read past the buffer array
https://bugzilla.gnome.org/show_bug.cgi?id=662108
2011-10-19 16:45:06 +02:00
Mark Nauwelaerts
43928e33e6 vorbisdec: only finish header packet frame if received in-stream
... rather than scaring audiodecoder with a frame extracted from caps.

Fixes #662108 (partially).
2011-10-19 16:44:44 +02:00
Vincent Penquerc'h
26e1c2d628 oggdemux: do not retry seeking indefinitely
https://bugzilla.gnome.org/show_bug.cgi?id=661897
2011-10-17 10:51:19 +01:00
Wim Taymans
05ad8a3432 Merge branch 'master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisenc.c
2011-10-10 11:45:49 +02:00
Wim Taymans
f1088ed647 update for UNEXPECTED -> EOS flowreturn 2011-10-10 11:39:52 +02:00
Mark Nauwelaerts
a7f508012c vorbisenc: only push header buffers following initial events 2011-10-09 21:20:35 +02:00
Wim Taymans
889a7e89c9 vorbisdec: report to 0.11 2011-10-08 11:05:29 +02:00
Wim Taymans
73b894107a Merge branch 'master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisdec.c
	ext/vorbis/gstvorbisenc.c
	ext/vorbis/gstvorbisenc.h
	gst/audiotestsrc/gstaudiotestsrc.c
2011-10-08 10:19:06 +02:00
Mark Nauwelaerts
f63f09483f vorbisdec: port to audiodecoder 2011-10-07 14:52:53 +02:00
Mark Nauwelaerts
f3cb93fc0c vorbisenc: port to audioencoder 2011-10-07 14:52:46 +02:00
René Stadler
1d3980cda2 oggdemux: don't leak scheduling query 2011-10-07 14:06:57 +02:00
Wim Taymans
a00927ad03 Merge branch 'master' into 0.11 2011-10-04 17:58:49 +02:00
Vincent Penquerc'h
ab1d420f88 opusdec: fix decoding
A simple ... opusenc ! opusdec ... pipeline now works.

https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:37 +02:00
Vincent Penquerc'h
f70c921ff9 opusenc: moan if we get an unexpected amount of data
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:24 +02:00
Vincent Penquerc'h
f9d4dd5215 opus: properly setup caps and init state from caps
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:15 +02:00
Vincent Penquerc'h
495de129ff opusenc: use the same frame size setup as the opus test code
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:21:02 +02:00
Vincent Penquerc'h
24577fcf6d opusdec: opus supports a select set of sampling rates
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:20:52 +02:00
Vincent Penquerc'h
00a6c9ac64 opus: make it build against current, and remove cruft
https://bugzilla.gnome.org/show_bug.cgi?id=660364
2011-10-03 11:20:46 +02:00
Vincent Penquerc'h
c7282a5718 alsasrc: fail gracefully when ALSA does not give timestamps
https://bugzilla.gnome.org/show_bug.cgi?id=660170
2011-10-03 11:14:09 +02:00
Vincent Penquerc'h
15dc839467 textoverlay: add YV12 support
Basically the same as I420, just with chroma planes swapped.

https://bugzilla.gnome.org/show_bug.cgi?id=660604
2011-10-01 19:18:02 +01:00
Tim-Philipp Müller
500ad37657 vorbisdec: set channel positions 2011-09-29 21:50:59 +01:00
Edward Hervey
17bfba09f1 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggdemux.c
	ext/pango/gsttextoverlay.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudiosrc.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Vincent Penquerc'h
c956c5fd00 oggstream: only use information from skeleton if we have nothing better
The codec setup headers are a lot more likely to have correct information,
especially as it's easy to remux a skeleton in a file where streams don't
have the same parameters (I've even seen a file with two skeletons).

Still, this is useful in the case we have a codec we can't decode, so we
can at least (theoretically) convert granpos to time, so we discard this
information if the codec setup has already provided it.

This fixes playback on (at lesat) the original archive.org encoding of
"The Night of the Living Dead" (now replaced by another encoding).

https://bugzilla.gnome.org/show_bug.cgi?id=612443
2011-09-19 23:21:23 +01:00
Sebastian Dröge
d094913a61 textoverlay: Protect against accessing the NULL parent of the pads during shutdown
Fixes bug #658901.
2011-09-19 09:34:08 +02:00
Tim-Philipp Müller
15d8082a55 oggdemux: remove superfluous check in newsegment event handler
If we get a newsegment event from upstream, we can be quite
sure we're not operating pull-based.
2011-09-16 20:14:39 +01:00
Tim-Philipp Müller
049e275632 oggdemux: minor printf format fix 2011-09-16 20:11:56 +01:00
Vincent Penquerc'h
89fc5b4bd8 oggdemux: fix wedge when seeking twice quickly in push mode
This could happen when testing with navseek, and pressing
right and left at roughly the same time. The current chain
is temporarily moved away, and this caused the flush events
not to be sent to the source pads, which would cause the
data queues downstream to reject incoming data after the
seek, and shut down, wedging the pipeline.

Now, I can't really decide whether this is a nasty steaming
hack or a good fix, but it certainly does fix the issue, and
does not seem to break anything else so far.

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-16 20:07:33 +01:00
Vincent Penquerc'h
0173afa38c oggdemux: implement push mode seeking
This patch implements seeking in push mode (eg, over the net)
in Ogg, using the double bisection method.
As a side effect, it also fixes duration determination of network
streams, by seeking to the end to check the actual duration.

Known issues:
- Getting an EOS while seeking stops the streaming task, I can't
  find a way to prevent this (eg, by issuing a seek in the event
  handler).
- Seeking twice in a VERY short succession with playbin2 fails
  for streams with subtitles, we end up pushing in a dataqueue
  which is flushing. Rare in normal use AFAICT.
- Seeking is slow on slow links - byte ranges guesses could be
  made better, decreasing the number of required requests
- If no granule position is found in the last 64 KB of a stream,
  duration will be left unknown (should be pretty rare)

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-16 19:47:10 +01:00
Vincent Penquerc'h
6704b37fc3 oggdemux: do not propagate discontinuities in sparse streams
The first packet of a sparse stream may arrive after an initial
delay in the stream. If ogg_stream_packetout reports a discontinuity
in a sparse stream, do not propagate it to other streams in the
chain unnecessarily.

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-14 23:20:01 +01:00
Thomas Vander Stichele
d223a6dd59 theoraenc: Fix descriptions of properties 2011-09-11 14:22:59 -04:00
Sebastian Dröge
0f654f3feb Merge branch 'master' into 0.11
Conflicts:
	docs/libs/Makefile.am
	tests/check/elements/decodebin2.c
2011-09-08 14:42:00 +02:00
Vincent Penquerc'h
cea0ac790f theoraenc: do not automatically override quality when using target bitrate
If both quality and bitrate are set, libtheora will try to meet
both constraints, causing it to prefer emitting a smaller number
of good frames, to emitting the full number of frames that would
not meet the requested quality. This causes a slideshow effect
when the bitrate is low and the quality is high. And the default
theoraenc is high (48/63).

So only set quality when it is requested, and leave it unset
otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=658443
2011-09-07 13:27:33 +02:00
Wim Taymans
33196cdd2c audio: change audio format syntax a little
Remove the _ in front of the endianness prefix.
Remove the _3 postfix for the 24 bits formats.
Add a _32 postfix after the formats that occupy extra space beyond their
natural size.
The result is that the GST_AUDIO_NE() macro can simply append the endianness
after all formats and that we only specify a different sample width when it is
different from the natural size of the sample. This makes things more consistent
and follows the pulseaudio conventions instead of the alsa ones.
2011-09-06 12:06:39 +02:00
Wim Taymans
e1287b97ab Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	gst-libs/gst/audio/audio.c
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/multichannel.h
	gst-libs/gst/pbutils/Makefile.am
	gst-libs/gst/pbutils/gstdiscoverer.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkvideoconvert.c
	win32/common/libgstaudio.def
2011-08-29 11:37:36 +02:00
Vincent Penquerc'h
02763b2fa2 theoraenc: fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=657333
2011-08-25 15:17:01 +01:00
Vincent Penquerc'h
fd218c4ec2 oggmux: fix leaks in skeleton writing
https://bugzilla.gnome.org/show_bug.cgi?id=563251
2011-08-25 08:32:26 +02:00
Vincent Penquerc'h
29038283bc oggmux: generate message headers from received tags
Some message headers can be deduced from tags (eg, "Language").

https://bugzilla.gnome.org/show_bug.cgi?id=563251
2011-08-25 08:32:20 +02:00
Vincent Penquerc'h
53c8656248 ogg: use memory slices where appropriate
While there, avoid zeroing newly allocated memory where unnecessary

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-25 08:26:49 +02:00
Wim Taymans
232a5a3d0a Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	ext/vorbis/gstvorbisenc.c
2011-08-24 11:04:53 +02:00
Vincent Penquerc'h
7b8b0fa1bb oggdemux: do not warn when reaching EOS while scanning for the end chain
After all, we were asking for it.

This gets rid of the last warning-about-expected-condition.

w00t.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:32:21 +02:00
Vincent Penquerc'h
df40ddf0aa oggdemux: add media type to chain information reports
One more little step in making logs a little less abstruse.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:58 +02:00
Vincent Penquerc'h
1e606c0456 oggstream: correctly identify skeleton EOS packet
It is 0 byte, and was triggering the "bad packet" logic.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:51 +02:00
Vincent Penquerc'h
68ed992e7e oggdemux: do not warn about expected occurences
In this case, finding a skeleton packet.
Once upon a time, it used to be rare indeed, but no more.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:30 +02:00
Vincent Penquerc'h
4fdb52871c oggdemux: do not warn when finding a non BOS page
After all, we do hope to find actual data for these streams.
However, warn if we could not set up a chain when we find a
non BOS page, as that means we don't have a valid Ogg stream.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:17 +02:00
Vincent Penquerc'h
564eedd214 oggdemux: rename local variable for clarity
While the casual reader might end up bewildered by just why this
change might increase clarity, it just happens than, in the libogg
and associated sources, op is the canonical name for an ogg_packet
whlie og is the canonical name for an ogg_page, and reading this
code confuses me.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:55 +02:00
Vincent Penquerc'h
5d18496a5b oggdemux: do not try to determine duration of header packets
Headers are inherently durationless.
Instead, set duration to 0 to avoid increasing tracked granpos,
and do not warn about it, since it is totally expected.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:45 +02:00
Vincent Penquerc'h
67a882afe7 oggstream: include stream type in warnings
It makes it easier to work out what's going on.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:30 +02:00
Vincent Penquerc'h
43cb76b1d8 oggstream: set skeleton stream media type to application/x-ogg-skeleton
This is to match the typefinder, and to make logs clearer.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:17 +02:00
Vincent Penquerc'h
2301f1806f oggmux: add skeleton write support
Version written is 3.0

Base times are left empty for now.

Content-Type should be the MIME type of the stream. It is set to
the GStreamer media type for now, which is probably the same for
the streams oggmux supports.

https://bugzilla.gnome.org/show_bug.cgi?id=563251
2011-08-24 08:21:34 +02:00
Wim Taymans
e78b66f5a3 video: fix chroma-site enums 2011-08-23 20:34:24 +02:00
Wim Taymans
9ad89374a3 video: add colorimetry info
Make enums for the chroma siting for easier use in the videoinfo.
Make enums for the color range, color matrix, transfer function and the
color primaries. Add these values to the video info structure in a Colorimetry
structure. These values define the exact colors and are needed to perform
correct colorspace conversion. Use a couple of predefined colorimetry specs
because in practice only a few combinations are in use.
Add view_id to the video frames to identify the view this frame represents in
multiview video.
Remove old gst_video_parse_caps_framerate, use the videoinfo for this.
Port elements to new colorimetry info.
Remove deprecated colorspace property from videotestsrc.
2011-08-23 18:57:35 +02:00
Vincent Penquerc'h
8a752e44e2 oggdemux: do not skip sparse streams when determining start times
This fixes demuxing of streams containing only sparse streams,
which would cause an infinite loop in _read_end_chain.

https://bugzilla.gnome.org/show_bug.cgi?id=657062
2011-08-23 10:36:18 +02:00
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
David Schleef
1d33a3f18e opus: duplicate from CELT
Copy the celt plugin and convert it to Opus.  Mostly works.
2011-07-07 12:05:53 -07: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
Wim Taymans
eac243bc01 vorbisdec: avoid using invalid timestamps 2010-12-21 13:39:27 +01:00
Vincent Penquerc'h
22aa87e98f ogg: implement packet duration query for kate streams
https://bugzilla.gnome.org/show_bug.cgi?id=637519
2010-12-18 20:33:09 +01:00
Vincent Penquerc'h
270bac8158 timeoverlay: add missing break
https://bugzilla.gnome.org/show_bug.cgi?id=637377
2010-12-16 11:41:02 +01:00
Wim Taymans
f22687bacc use _object_ref_sink() when we can 2010-12-07 11:31:30 +01:00
Wim Taymans
f355419679 alsaprobe: don't abuse the object class lock
don't abuse the class lock but use a new static lock for protecting the probed
list of devices.
2010-12-07 11:30:55 +01:00
Mark Nauwelaerts
524b7c60f2 oggstream: additional tag extraction
... supporting theora, flac, speex, celt.

Fixes #629349.
2010-12-03 13:54:08 +01:00
Mark Nauwelaerts
d5055a9f23 oggstream: use separate tag extraction vfunction 2010-12-03 13:54:06 +01:00
Mark Nauwelaerts
cc3dfd31d0 oggstream: refactor vorbis comment tag extraction 2010-12-03 13:54:04 +01:00
Mark Nauwelaerts
a4aacb9d2c oggdemux: plug some oggstream leaks 2010-12-03 13:54:01 +01:00
Mark Nauwelaerts
515f33bd3b oggstream: streamline tag extraction and prevent some leaks 2010-12-03 13:53:59 +01:00
Mark Nauwelaerts
63ba9eafb1 oggdemux: send stream tags after newsegment and global tags 2010-12-03 13:53:56 +01:00
Sreerenj Balachandran
2319c85f46 oggdemux: perform more (vorbis comment header) tag extractions
In particular, move comment header parsing to gstoggstrem.c.
Thanks to Felipe Contreras.

Fixes #629349 (partially).
2010-12-03 13:53:54 +01:00
David Schleef
d421ccb440 oggstream: fix incorrect warning on skeleton headers 2010-12-02 17:36:33 -08:00
David Schleef
2b91bd1bad oggparse: Set DELTA_UNIT on buffers 2010-12-02 17:36:26 -08:00
Sebastian Dröge
1abb8257a0 gnomevfssrc: Remove dead assignment 2010-12-02 19:04:29 +01:00
Wim Taymans
e0d683f3ed oggdemux: fix wrong flowreturn handling
Oggdemux will currently try to pad alloc a buffer from the peer when it is
reading the header files. This is a relic from the time where we had an internal
parser and needs to be removed at some point in time.

The problem is that when there is no peer pad yet (which is normal when
collecting headers) we should still continue to parse all the packets of a
page instead of erroring out on NOT_LINKED.

Fixes #632167
2010-10-29 11:48:18 +01:00
Wim Taymans
6c14f6c970 ogg: add some more debug statements 2010-10-29 11:47:53 +01:00
Stefan Kost
83c14483ed various: add a missing G_PARAM_STATIC_STRINGS flag to object properties 2010-10-13 16:13:31 +03:00
Wim Taymans
fea50233bb oggdemux: only keep last valid granulepos
Only keep the last valid granulepos we see when scanning the last
pages. It is possible that the last page that we inspect has a -1 granulepos, in
which case we want to keep the previous valid time instead.

Fixes #631703
2010-10-12 16:06:57 +02:00
David Schleef
9dc59cff15 oggdemux: Fix check for last page 2010-10-12 16:06:57 +02:00
David Schleef
64dfad46f2 oggdemux: change checks from is_skeleton to is_sparse 2010-10-12 16:06:57 +02:00
David Schleef
5ae2f04856 oggdemux: move is_sparse into stream map 2010-10-12 16:06:56 +02:00
Tim-Philipp Müller
a044b62cf5 theoradec: expose telemetry properties only if libtheora was compiled with --enable-telemetry
Since this is just a debugging feature and libtheora will usually not be
compiled with that option enabled, we should maybe just hide these properties,
since they won't work anyway, and avoid confusing warnings.

Also rename properties to make them less cryptic.

https://bugzilla.gnome.org/show_bug.cgi?id=628488
2010-10-10 18:20:46 +01:00
Alexey Fisher
ab52e15e3d theoradec: add properties to enable debugging telemetry overlay
The theora decoder can overlay debugging information on the output
video. This functionality is only available if libtheora has been
compiled with --enable-telemetry. For more details see:

http://people.xiph.org/~xiphmont/demo/theora/demo2.html

Based on original patch by Michael Smith <msmith at xiph org>

https://bugzilla.gnome.org/show_bug.cgi?id=628488
2010-10-10 18:20:46 +01:00
Guillaume Emont
b41cd04289 oggdemux: fix seeking with negative rate with skeleton
Files with a skeleton, or other files with a stream that ends before the end of
the chain would start playing from the end of the chain when trying to seek with
a negative rate at a position between the end of any stream and the end of the
chain.

This is due to the loop in _do_seek() assuming that pages will be encountered
for all streams shortly after the place where we want to seek, as found by
do_binary_search().

In the first iteration of the loop, stream ends are now checked against the
time of the current page.
2010-10-10 18:26:13 +02:00
Mark Nauwelaerts
53b0c20c7c vorbisdec: reverse playback; decode pending buffers upon EOS 2010-10-06 12:05:27 +02:00
Wim Taymans
7fe3657d86 libvisual: only drop frames that are really too old
Also take the frame duration into account so that we don't drop frames that are
partially past the estimated QoS time.
2010-10-05 12:22:39 +02:00
Wim Taymans
cc470dfb68 libvisual: add latency query
Add our own latency to the latency query reply from upstream.
2010-10-05 12:22:39 +02:00
Wim Taymans
0e395146c3 libvisual: add some defines
Add some defines for width/height/fps and a define for the minimum amount of
samples we need to buffer.
2010-10-05 12:22:39 +02:00
Wim Taymans
88cf7a2156 parse: Don't error on discont
We don't need to error out when we detect a discontinuity.
2010-10-04 17:27:00 +02:00
Wim Taymans
3d26fc3d8f theoraparse: set caps on streamheader too 2010-10-04 17:09:39 +02:00
David Schleef
71f89ac092 theoraenc: ptalarbvorm speed level goes to 3 2010-09-24 21:30:44 -07:00
Olivier Crête
91f89f490c theoraenc: Make the bitrate/quality dynamically modifiable
https://bugzilla.gnome.org/show_bug.cgi?id=630303
2010-09-22 11:41:13 -04:00
Tristan Matthews
a351bf0702 gnomevfsrc: set GST_PARAM_MUTABLE_READY flag on the "handle" property
Fixes #629672
2010-09-15 17:07:16 +03:00
Sebastian Dröge
ca24ece36b textoverlay: Add support for AYUV 2010-09-01 17:52:31 +02:00
Rob Clark
54f4aa28c2 textoverlay: fix Cb/Cr inversion for colored text overlays
In case of odd values for xpos or ypos, the division by two in CbCr
plane would result in an off-by-one error, which in the case of NV12,
NV21, or UYVY would cause inversion of blue and red colors.  (And
would be not so easily noticed for I420 as it would just cause the
chroma to be offset slightly from the luma.)

This patch also fixes a silly typo from the earlier patch which
added NV12 support that broke UYVY support.
2010-08-30 22:53:26 +02:00
Sebastian Dröge
6357bdef63 oggdemux: Don't reset the pad when pushing resulted in NOT_LINKED
The pad might be linked later and after resetting it it will
only work after resetting all of oggdemux.
2010-08-30 15:50:26 +02:00
Sebastian Dröge
b899bca94d oggdemux: Don't use GST_FLOW_IS_FATAL()
And while we're at it, handle WRONG_STATE as error too
in oggdemux and WRONG_STATE and NOT_LINKED in oggaviparse.
2010-08-27 17:23:46 +02:00
Sebastian Dröge
faebf174fb textoverlay: Support NV21 too and minor cleanups 2010-08-24 10:12:53 +02:00
Chris Shoemaker
6bd90dc0cc clockoverlay: only rerender text if time string has changed
The textoverlay element will rerender the text string whenever
overlay sets the 'need_render' flag to TRUE.  Previously, we
lazily set the flag to TRUE every time the time string was requested.
Now, we save a copy of the previously given string, and only set
'need_render' to TRUE if the string has changed.

In my tests with a 30fps video stream, and a time string including
a seconds field, this change reduced the CPU usage of the clockoverlay
element from 60% to 5%.

Fixes bug #627780.
2010-08-24 09:29:33 +02:00
Rob Clark
1b6918709c textoverlay: add NV12 support
Fixes bug #627768.
2010-08-24 09:25:55 +02:00
Wim Taymans
7b310c6a03 alsasrc/sink: add property to get the card name
fixes #627203
2010-08-18 16:45:37 +02:00
Wim Taymans
693919ff87 alsa: add method to retrieve the card name
Reuse an existing method to retrieve the card name.
2010-08-18 16:42:13 +02:00
Stefan Kost
0fee4ed3d0 alsa: remove 'dir' out variable
Alsa seems to expect that we initialize it. Remove the variable and pass NULL
as we actually don't use it. In alsasink also #ifdef one section that is
grabing diagnostics to be disabled, when logging is disabled (the code was
using the out parameter as well).

Fixes #626125
2010-08-12 15:41:59 +03:00
Mark Nauwelaerts
90a79b4c60 textoverlay: configurable text color and position
Rather than only left, right, top, etc, allow for horizontal and vertical
positioning on a scale from 0 to 1.
Also cater for configuring rendered text color.

Fixes #624920.

API: GstTextOverlay:xpos
API: GstTextOverlay:ypos
API: GstTextOverlay:color
2010-08-09 09:49:12 +02:00
Sebastian Dröge
5fd9fc13d5 oggstream: static forward declarations are forbidden by the C standard
...and actually cause compiler errors on VC++. Change it to an extern
forward declaration and non-static definition.
2010-08-08 17:42:04 +02:00
Sebastian Dröge
c95d0034af theoraenc: Implement two pass encoding
Fixes bug #621349.
2010-07-16 17:40:12 +02:00
Sebastian Dröge
5318e71b4d configure: Require libtheora >= 1.1
It's more than a year old at the time of the next -base release,
has many encoder and decoder improvements and gets us rid of a lot
of #ifdefs
2010-07-16 17:39:22 +02:00
Sebastian Dröge
ecea88e0d2 theora: Use PROP_ instead of ARG_ for property enum values 2010-07-16 17:39:22 +02:00
Fredrik Söderquist
3c06cabb0b oggdemux: Handle errors from _get_next_page in _do_seek.
If the source element failed here, oggdemux would crash.

Fixes #623218.
2010-06-30 17:20:55 +01:00
Sebastian Dröge
9a971980b7 oggdemux: activate_chain must not be called with a NULL chain
It will crash later and shouldn't really happen anyway unless
something is really wrong.
2010-06-14 11:11:56 +02:00
Sebastian Dröge
9c570dbced gnomevfssrc: Fix possible NULL pointer dereference
It's always an error if gst_buffer_try_new_and_alloc() returns NULL
2010-06-14 11:08:10 +02:00
Sebastian Dröge
a34fe5df35 giostreamsrc: Fix copy&paste error in the docs 2010-06-14 09:53:31 +02:00
Tim-Philipp Müller
0f3ea721e4 ogg: fix debug message printf format some more
Just cast the pointer diff, so it works everywhere without
warnings. Can't use %tu, because that modifier is C99. Warning
was: "format '%li' expects type 'long int', but argument 8 has
type 'int'".
2010-06-14 00:33:04 +01:00
Philippe Normand
c25bf9777a oggdemux: Fix format string compiler warning on OS X 2010-06-12 13:04:43 +02:00
Tim-Philipp Müller
dab38bb8a0 cdparanoia: check for cdparanoia with pkg-config first
cdparanoia now has a .pc file in post-0.10.2 SVN, so use
that to check for cdparanoia before we try all the other
checks. Besides being generally nicer, this may help with
correctly detecting cdparanoia on OSX some day (see #609918).
2010-06-11 22:16:26 +01:00
Sebastian Dröge
4caee01a06 oggdemux: Handle SEEKING query in push mode too 2010-06-09 17:02:59 +02:00
Sebastian Dröge
bb7773b40a oggdemux: Update the total time from the Skeleton 4 indexes
Fixes bug #620939, see bug #607945.
2010-06-09 16:38:34 +02:00
Sebastian Dröge
7bade30f5e oggstream: Implement latest version of the Skeleton 4.0 spec
Fixes bug #620939.
2010-06-09 16:34:05 +02:00
Sebastian Dröge
3f3691085a oggdemux: Implement correct parsing of Skeleton 4.0 index packets 2010-06-08 13:11:05 +02:00
Sebastian Dröge
cba98e05cf oggdemux: Add parsing of Skeleton 4.0 indexes 2010-06-08 12:01:15 +02:00
Sebastian Dröge
f213c8ebe3 oggdemux: Parse segment length and content offset from fishead
And print them for debugging purposes. Not sure if we can do anything useful
with this information.
2010-06-08 11:40:32 +02:00
Sebastian Dröge
aa8daa862e oggdemux: Parse Skeleton stream major/minor version 2010-06-08 11:31:35 +02:00
Sebastian Dröge
7eea3c25c9 oggdemux: Use binary search for searching in the index 2010-06-08 11:26:26 +02:00
Sebastian Dröge
981af36b71 oggmux: Start a new page for every CMML buffer 2010-06-08 07:34:53 +02:00
Jonathan Matthew
c5c1b6815a gio: map GIO NO_SPACE error to NO_SPACE_LEFT
Fixes bug #620140.
2010-05-31 15:57:28 +02:00
Sebastian Dröge
8a678da1fe oggdemux: Fix sizes again, this time for real 2010-05-20 14:21:19 +02:00
Sebastian Dröge
bf9d573cd1 oggdemux: Fix size checks 2010-05-20 13:58:14 +02:00
Sebastian Dröge
8fd69f2cb7 oggdemux: Drop all other Ogg VP8 header packets and make VP8 mapping check a bit more strict 2010-05-20 10:19:29 +02:00
Sebastian Dröge
563a96ef1a ogg: Some more minor adjustments for the VP8 Ogg mapping 2010-05-20 08:52:49 +02:00
Sebastian Dröge
838c96fe8f ogg: Update to the latest VP8 mapping 2010-05-19 21:35:19 +02:00
Sebastian Dröge
ac2d0170a8 oggdemux: Fix granulepos->key granule calculation for Dirac 2010-05-19 19:23:07 +02:00
Sebastian Dröge
d6b6d0cdad oggdemux: Add support for mapping specific granulepos to key granule mapping 2010-05-19 19:23:07 +02:00
Sebastian Dröge
5fc1309703 ogg: Implement Ogg VP8 mapping 2010-05-19 19:23:07 +02:00
Wim Taymans
02a78f528c oggdemux: don't seek when no current chain
Avoid a crash when we try to seek when there is no current chain.
2010-05-06 13:10:54 +02:00
Wim Taymans
e33425e4d0 oggdemux: ignore the skeleton start time
Ignore the skeleton start time as it is usually wrong for live streams
and we have the needed logic to calculate it anyway.
2010-05-06 12:21:38 +02:00
Wim Taymans
27de725038 oggdemux: wait for headers before exposing chains
Wait until we have all the stream headers before we start exposing the streams
of a chain.
2010-05-06 12:06:09 +02:00
Wim Taymans
549bc3c80e oggdemux: use index to estimate bitrate
When we have an index, use it to much more accurately estimate the total stream
bitrate.
2010-05-06 10:58:01 +02:00
Stefan Kost
2e3cfe4546 libvisual: trucate own caps, instead of copying and using the first only
We got the caps from an intersect, it is our own, hence we can truncate it.
2010-05-06 09:11:17 +03:00
Stefan Kost
4e6cb3e91f vorbis: have a copy_sample func as a func pointer
Make some more variants for copy_sample funcs and use them via function pointer.
2010-05-06 08:22:36 +03:00
Tim-Philipp Müller
f22b115804 oggdemux: printf format fixes 2010-05-05 13:25:02 +01:00
Wim Taymans
7b3f9aa504 oggdemux: handle corrupt indexes
Make sure we handle and receover from corrupt indexes.
2010-05-04 17:38:50 +02:00
Wim Taymans
e84b3c838c oggdemux: fix EOS check 2010-05-04 15:47:29 +02:00
Wim Taymans
50e556cc84 oggstream: avoild division by 0 2010-05-04 13:51:07 +02:00
Wim Taymans
12929944a7 oggdemux: cleanup unused defines 2010-05-04 13:50:46 +02:00
Wim Taymans
a57b461af8 oggdemux: use the index in push mode when we can
When seeking in push mode, try to use the index first before we use the bitrate
estimation.
2010-05-04 13:36:58 +02:00
Wim Taymans
03c3aa6377 oggdemux: use skeleton duration when possible 2010-05-04 13:06:24 +02:00
Wim Taymans
5c770a17db oggstream: parse duration from 3.3 skeleton 2010-05-04 13:02:19 +02:00
Wim Taymans
ff4479f00a oggdemux: more index parsing work 2010-05-04 12:11:18 +02:00
Wim Taymans
97319a6276 oggdemux: clean up fishead/fisbone parsing
Remove some redundant code for parsing fishead streams. Actually use the data we
parsed (mostly start_time).
2010-05-04 12:05:15 +02:00
Wim Taymans
f96caa17b3 oggdemux: implement seek in push mode
Refactor start time collection code.
When we receive a flush_stop, resync to the new start time and push out a new
segment event.
2010-05-04 11:26:14 +02:00
Wim Taymans
9be4e53001 oggdemux: make event handling better
Explicitly handle FLUSH events and resync on FLUSH_STOP.
Make send_event return a boolean.
Use more performant send_event function to forward events.
2010-05-04 11:26:14 +02:00
Wim Taymans
c4ec1c4c62 oggdemux: implement seeking in pushmode
Convert seek requests to bytes using the bitrate and forward them upstream. Does
not quite work because the flushing and resyncing is not implemented yet.
2010-05-04 11:26:14 +02:00
Wim Taymans
d9b7003926 oggdemux: refactor for seeking in pushmode
refactor the code a little to prepare for seeking in push mode
2010-05-04 11:26:14 +02:00
Wim Taymans
f9ca4f6097 oggdemux: use bitrate to estimate length in pushmode
Parse the bitrate from the various streams.
Use the bitrate and the upstream length in bytes to estimate the total stream
duration in push mode.
2010-04-30 17:43:06 +02:00
Tim-Philipp Müller
63931dc80b Bump GLib requirement to 2.20
See http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
2010-04-30 14:08:50 +01:00
Mark Nauwelaerts
e23d6bbda7 oggdemux: only EOS when all streams are EOS 2010-04-30 12:51:54 +02:00
Mark Nauwelaerts
e8ae2adef1 oggdemux: fix debug message 2010-04-30 12:51:51 +02:00
Stefan Kost
efe59faa93 docs: fix typo in link name 2010-04-16 15:53:27 +03:00
Tim-Philipp Müller
62b1764552 playback, ogg: dist new gstplayback.h and gstogg.h 2010-04-09 09:26:08 +01:00
Edward Hervey
e528e73268 ext: Invert rank of gio and gnomevfs elements 2010-04-08 12:21:50 +02:00
Tim-Philipp Müller
930f72c6b0 alsa: don't pass non-constant strings as printf format strings
Fixes 'format not a string literal and no format arguments' compiler
warning when compiling with -DGST_DISABLE_PRINTF_EXTENSION.
2010-04-08 01:26:55 +01:00
Sebastian Dröge
44e474f76d alsa: Ignore errors when unpreparing or closing the device
Errors could happen here when the device was removed already
or when something is broken anyway. If errors happen here and
they're propagated, the element can't shutdown cleanly.

Fixes bug #614545.
2010-04-04 21:18:04 +02:00
Sebastian Dröge
1e8f3f7689 alsamixer: Detect errors from device polling, stop the task and post an error message
Partially fixes bug #614545.
2010-04-04 21:00:52 +02:00
Edward Hervey
daa5b34d5f gstgnomevfssink: Return the proper GstFlowReturn.
We were always returning GST_FLOW_OK previously even if we encountered errors.
2010-04-01 13:48:42 +02:00
David Schleef
681721466d theoraenc: 0-length packets are delta units 2010-03-29 20:54:46 -07:00
Tim-Philipp Müller
e1f38a685b build: build plugin and example directories in parallel if make -jN is used
We know our plugins and examples are independent of each other, so may
just as well build them in parallel. Makes the output a bit messy, but
that shouldn't be a problem and can easily be avoided with make -j1.
2010-03-29 00:26:59 +01:00
Sebastian Dröge
482dd1e56a oggdemux: Provide packet duration function for old FLAC mapping too
Fixes bug #613809.
2010-03-26 15:57:39 +01:00
Tim-Philipp Müller
197fe6d0d1 gio: add cast to avoid compiler warning with old GLib versions
g_file_input_stream_query_info() had char * instead of const char *
as attribute argument before 2.20.

Fixes #613387, spotted by tetsuyayasuda@gmail.com
2010-03-20 13:42:32 +00:00
Wim Taymans
9c8c93806d theoradec: add QoS messages to the decoder
Post QoS messages when we drop a frame because of QoS.
2010-03-19 15:37:04 +01:00
Tim-Philipp Müller
58a92964c6 build: Makefile.am fixes
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
Benjamin Otte
1471df894a Add -Wformat-nonliteral -Wformat-security
And fix the resulting compile failures.

I'm sorry about the patch necessary to gstclockoverlay.h but after
talking to Tim we decided we can live with it.
2010-03-17 12:09:25 +01:00
Benjamin Otte
420d7b111d More ENABLE_NLS fixes 2010-03-16 18:31:15 +01:00
Benjamin Otte
3bd4aa26ff Add -Wwrite-strings to configure
Fixes for the code included
2010-03-16 17:41:51 +01:00
Benjamin Otte
5e21fa5e0e gst_element_class_set_details => gst_element_class_set_details_simple
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
David Schleef
ed438e5539 theoradec: add chroma-site to caps 2010-03-15 01:34:09 -07:00
David Schleef
085d7e20bd theoradec: add color-matrix to caps 2010-03-14 19:10:16 -07:00
David Schleef
460c649b5f oggdemux: Don't drop zero-sized packets
Zero-sized packets have relevence to Theora.
2010-03-14 13:15:13 -07:00
Benjamin Otte
3a7d632a59 Add -Wredundant-decls to warning flags
... and fix all the warnings that flag throws.
2010-03-11 15:38:18 +01:00
Benjamin Otte
43b1683421 Add -Wmissing-declarations -Wmissing-prototypes to warning flags
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Benjamin Otte
86a6b39b2c gio: Remove unused function 2010-03-11 13:34:45 +01:00
Tim-Philipp Müller
3dd39392c2 vorbisparse: make sure header buffer metadata is writable before modifying it
Fixes unit test failures with core git.
2010-03-11 11:19:04 +00:00
Mark Nauwelaerts
708956e281 vorbisdec: remove unused field 2010-03-10 11:24:31 +01:00
David Schleef
1701c706ec oggmux: Don't flush after every frame for theora 2010-03-09 15:40:18 -08:00
Benjamin Otte
1ad8d6ee03 theora: Fix SIGFPE when using 0/1 framerate
libtheora crashes with a 0 framerate, so let's forbid it.

https://bugzilla.redhat.com/show_bug.cgi?id=571289
2010-03-08 22:28:27 +01:00
David Schleef
38e6f0c7ed oggdemux: fix dirac header parsing
Fixes #611900.
2010-03-08 17:07:57 +00:00
Wim Taymans
1f601e12dc alsasrc: return right number of bytes that we wrote 2010-03-08 11:25:01 +01:00
Wim Taymans
6eef04c1cb oggstream: mark skeleton streams correctly
Mark skeleton streams because we need to ignore them for calculating the
duration of the stream.

Fixes #611227
2010-03-01 12:17:40 +01:00
Wim Taymans
63593f5f1e oggdemux: use the chain begin_time instead of our counter
We update the passed begintime argument to narrow our search region in the
binary search. This means that it does not always contain the chain begin time
after a couple of bisects. Use the real chain->begin_time to bring the
granuletime to the time in the chain instead.

Fixes #610005
2010-02-23 12:26:15 +01:00
David Schleef
5685e0a4b7 theoradec: Fix chroma copying for 4:2:2
Fix mixup of height/width, causing only half the chroma lines to
be copied when outputting buffers.  Fixes: #610329.
2010-02-17 21:30:29 -08:00
Mark Nauwelaerts
8e5e2dbe49 ivorbisdec: set rank to SECONDARY 2010-02-15 12:12:15 +01:00
Mark Nauwelaerts
32dff24552 vorbisdec: also support ivorbis tremor decoder
... which only needs a bit of refactoring and extracting to support
the minor difference in (i)vorbis interface.

Fixes #609063.
2010-02-15 12:11:35 +01:00
Mark Nauwelaerts
5e06eaa517 vorbisdec: reduce some hard-coding
... such as assuming float all over, and base src caps on template caps.
2010-02-15 12:10:41 +01:00
Sebastian Dröge
59dc89b3ee oggparse: Fix another format string compiler warning 2010-02-15 09:04:17 +01:00
Sebastian Dröge
e9f101ffc5 oggdemux: Fix format string compiler warnings 2010-02-15 08:56:25 +01:00
Tim-Philipp Müller
466894d2f4 ogg: theora PAR of 0:N, N:0 or 0:0 is allowed and maps to 1:1
See #609252.
2010-02-15 00:14:03 +00:00
Benjamin M. Schwartz
a09d9fdece theoradec: PARs of 0:x, x:0 and 0:0 are all allowed and map to 1:1
Fixes #609252.
2010-02-08 11:21:35 +01:00
Vincent Penquerc'h
6b8175d96a oggdemux: use the default granpos functions for kate streams
Set timestamps on kate packets. See bug #600929.
2010-02-07 10:16:28 +01:00
Sebastian Dröge
4914aeda2f oggdemux: Don't leak allocated buffers
This can happen if the combined flow return is not OK although the
allocation succeeded or if the packet in question is a BOS and we're
not going to push headers.

Fixes bug #608699.
2010-02-02 10:33:07 +01:00
Vincent Penquerc'h
ed2e09133e oggdemux: sparse streams aren't timed by end time, and their duration isn't implicit
Fixes timestamps and durations on Kate subtitle streams.

See http://www.xiph.org/ogg/doc/ogg-multiplex.html section 'start-time and
end-time positioning' for some more details, and bug #600929.
2010-01-25 23:50:09 +00:00
Vincent Penquerc'h
25873a050f oggdemux: properly set up the media type for kate streams
See #600929.
2010-01-25 23:49:53 +00:00
Wim Taymans
e4b68a3658 oggdemux: use right type for the serialno
Use a consistent type for the serialno to avoid problems when comparing between
signed and unsigned variants.

Fixes #607926
2010-01-25 15:14:56 +01:00
Wim Taymans
95511c8821 oggdemux: don't push headers twice
Don't push the stream headers twice but only in the activation of a chain.

Fixes #607929
2010-01-25 14:00:52 +01:00
Wim Taymans
62f8c3c672 oggdemux: rename a variable
Rename the 'seekable' variable to 'pullmode'. We might be able to seek in push
mode too eventually.
2010-01-25 12:31:24 +01:00
Tim-Philipp Müller
e1c319949d oggdemux: fix crash when freeing headers
Use _ogg_packet_free() instead of gst_mini_object_unref in one more
place now that the header list contains ogg packets and not buffers.

file: Stephen_Fry-Happy_Birthday_GNU-nq_600px_425kbit.ogv
2010-01-24 13:32:20 +00:00
Sebastian Dröge
1652005f26 oggdemux: Strip trailing \0 for subtitle OGM streams
Fixes bug #607870.
2010-01-24 08:57:13 +01:00
Sebastian Dröge
a66ce94adc oggdemux: Correctly set DELTA_UNIT flag for OGM streams 2010-01-23 22:10:09 +01:00
Sebastian Dröge
b38dcf5277 oggdemux: Don't strip all 0-bytes from the end of OGM packets
This fixes broken packets pushed downstream by oggdemux for
MPEG4 streams for example.
2010-01-23 22:10:09 +01:00
Sebastian Dröge
592bc87dc9 oggdemux: Extract tags from OGM text streams and don't push them downstream 2010-01-23 22:10:08 +01:00
Sebastian Dröge
541da50c53 oggdemux: Store header/queued packets as ogg_packet and use normal peer chaining functions to pass them downstream 2010-01-23 22:10:08 +01:00
Sebastian Dröge
d78cffb2e8 oggdemux: ...and set caps on queued packet buffers too 2010-01-23 13:20:46 +01:00
Sebastian Dröge
b63a582bf9 oggdemux: Set caps on header buffers 2010-01-23 13:19:44 +01:00
Wim Taymans
4b9666aedb oggdemux: keep track of added pads
Keep track of the pads we added and removed.
Remove some unused fields.
Don't add pads for which we don't have caps.
2010-01-21 17:39:52 +01:00
Wim Taymans
06e2d2791b oggstream: don't call NULL setup functions
If we find a known mapper but it doesn't have a setup function, simply skip it
instead of crashing.
2010-01-21 17:39:51 +01:00
Wim Taymans
4ed58b5882 oggstream: avoid division by 0 on bad annodex streams 2010-01-21 17:39:51 +01:00
Thiago Santos
4b771bff7a oggdemux: No need to subtract begin time
Last stop is already based on the chain start and there is no need
to subtract the chain start as it may lead to a negative overflow.
This was causing seeking issues when the target chain was not
the first one (that has chain start = 0)

Fixes #606382
2010-01-19 08:39:14 -03:00
Thiago Santos
125f7dfdb0 oggdemux: granulepos is relative to its chain
When performing seeks, the granulepos should be offset by
its chain start time to avoid using wrong values to
update segment's last_stop. A sample file is indicated on
bug #606382
2010-01-18 15:39:55 -03:00
Sebastian Dröge
82f3adaa9b theora: Rename source files to have the same name as the headers 2010-01-14 10:10:23 +01:00
Sebastian Dröge
1de4169c1c vorbis: Rename source files to have the same name as the headers 2010-01-14 10:07:22 +01:00
Sebastian Dröge
d4e9225ed4 vorbis: Move channel layout definitions into a single separate file
...instead of having two copies.
2010-01-14 10:05:35 +01:00
Sebastian Dröge
68c6ddc2fc vorbis: Add official 6.1 and 7.1 channel mappings
These are in the Vorbis spec since 2010-01-13. Fixes bug #606926.
2010-01-14 08:20:38 +01:00
Edward Hervey
7d2c90423a oggdemux: Fix unitialized variable.
If the package isn't handled, gracefully return GST_FLOW_OK.
2010-01-12 16:35:50 +01:00
Wim Taymans
0201326db1 oggdemux: push headers when activating chains
Keep a list of headers for each stream of a chain. When a chain is activated,
push the headers before pushing the data so that decoders can sync.
Fix seeking in chains, take the chain start time into account when comparing
timestamps.

See #606382
2010-01-08 16:57:40 +01:00
Mark Nauwelaerts
3f4820d6c2 oggdemux: decide flac header packet by content rather than count 2010-01-06 14:03:44 +01:00
Mark Nauwelaerts
66545eb7a2 oggdemux: reset header packet count at bos page 2010-01-06 14:03:41 +01:00
Olivier Crête
15fb8f9bf7 textoverlay: Ignore zero framerate
https://bugzilla.gnome.org/show_bug.cgi?id=606163
2010-01-06 07:49:27 +01:00
Mark Nauwelaerts
8fb183c7c9 oggdemux: enhance flac packet duration calculation 2010-01-05 16:44:58 +01:00
David Schleef
b3c15a340a theoraenc: Add encoder controls for libtheora 1.1
Added drop-frames, cap-overflow, cap-underflow, and rate-buffer.
2009-12-20 17:34:46 -08:00
Wim Taymans
e897373a0a ogg: ogm video has constant packet duration 2009-12-11 12:20:13 +01:00
David Schleef
118b62a764 oggdemux: implement old fLaC mapping 2009-12-10 22:48:23 -08:00
Wim Taymans
d18118418e oggdemux: remove redundant fields 2009-12-10 16:09:09 +01:00
Wim Taymans
43bdb13ec2 vorbisdec: adapt to new oggdemux
Remove all granulepos hacks and simply use the timestamps from the new oggdemux
like any other decoder.
2009-12-10 13:22:00 +01:00
Wim Taymans
79b25e634c vorbisdec: fix peer query 2009-12-09 19:04:18 +01:00
Wim Taymans
1a7c8c7919 theoradec: fix query 2009-12-09 17:24:01 +01:00
Wim Taymans
f1fdf5d3e4 theoradec: small cleanups 2009-12-09 16:55:52 +01:00
Wim Taymans
08c16c0db7 vorbisdec: use gst_pad_peer_query() 2009-12-09 16:38:43 +01:00
Sebastian Dröge
01ca87e785 textoverlay: Only flush downstream on seeks for flushing seeks 2009-12-09 09:47:30 +01:00
Sebastian Dröge
d5205bb0fa textoverlay: Proxy buffer allocation on the video sinkpad to the srcpad 2009-12-09 09:36:26 +01:00
Wim Taymans
1818d795ee theora: remove granulepos hacks
Remove the granulepos hacking now that oggdemux outputs timestamps like any
other demuxer.
2009-12-08 17:37:56 +01:00
Wim Taymans
1ad0e4342e oggdemux: improve keyframe seeking
Improve keyframe seeking.
Fix reverse playback.
2009-12-07 18:49:43 +01:00
Wim Taymans
c53cd385e3 oggdemux: implement keyframe seeking
Implement keyframe seeking in oggdemux by doing the double seek trick. First
seek to the required position, then read pages for all streams to grab the
granulepos (to know the timing of the keyframe) of each stream, then seek back
to the first keyframe.
2009-12-07 15:42:05 +01:00
Wim Taymans
56d3856620 oggdemux: fix timestamps after seek
After a seek, discard all packets before the packet with the granulepos on it so
that the output buffers contain valid timestamps.

Reorder some code so that we check the timestamps before allocating and pushing
an output buffer.

Do more checks on valid packets in ogm mode.
2009-12-04 16:35:09 +01:00
Wim Taymans
eb4fc976e5 oggdemux: add comment 2009-12-04 15:39:59 +01:00
Wim Taymans
9e222a385c oggdemux: don't do math with invalid granulepos
When the current granulepos is unknown and set to -1, don't try to add durations
to it.
2009-12-04 14:01:11 +01:00
Wim Taymans
96e1c4dbe6 oggdemux: guard against wrong granulepos
Clamp the initial granulepos to 0 instead of going negative for some badly muxed
ogg files.
2009-12-04 13:14:57 +01:00
Wim Taymans
05f4605180 theoradec: don't fail on bogus granulepos
Do some additional checks on the granulpos timestamp before using it for
calculating the duration because oggdemux generates wrong granulepos now.
Fixes seeking somewhat again.
2009-12-04 12:26:47 +01:00
David Schleef
8bbe0d126a oggdemux: reimplement OGM support
OGM demuxing no longer requires helper elements.  It's done internally
in oggdemux.  Vorbis comments are still not handled because I don't
have anything to test with.
2009-12-03 20:05:29 -08:00
David Schleef
4378851102 oggdemux: fix for I-frame-only theora 2009-12-03 17:02:11 -08:00
Tim-Philipp Müller
fb07615baa ogg: log when ogg mapper doesn't accept the setup header packet 2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
8195c26a08 ogg: extract width, height and PAR from theora header and add to caps 2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
295b6c0326 ogg: extract number of channels from FLAC, speex and vorbis headers
Because we can.
2009-12-03 23:43:09 +00:00
Tim-Philipp Müller
2752ae841e ogg: more print fixes
gstoggstream.c:419: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘gint64’
gstoggdemux.c:2253: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
gstoggdemux.c:2333: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
2009-12-03 21:08:42 +00:00
Thiago Santos
098e416ebc ogg: Fixing some printf format strings
Fixes some printf format strings to make it build on mac.
2009-12-03 16:57:48 -03:00
David Schleef
d2c9d7fc1c oggdemux: handle theora streams with 0 keyoffset 2009-11-26 14:16:28 -08:00
David Schleef
a8e99f80df oggdemux: Handle unknown streams 2009-11-26 14:16:28 -08:00
Sebastian Dröge
8393257732 Revert "textoverlay: First draw outline text and then the real text"
This reverts commit 60aa09d28c.

First drawing the real text and then the outline produces ugly
text in lower resolutions. The outline line width needs to be somehow
changed relative to the resolution. Fixes bug #602924.
2009-11-26 14:31:55 +01:00
David Schleef
9339cec787 oggdemux: Reset last_granule during seeking
Fix case where we would reconstruct the wrong granulepos for
outgoing streams immediately after a seek.
2009-11-25 00:46:55 -08:00
David Schleef
8c202593c6 oggdemux: Fix timestamp generation for theora
Timestamp generation was broken by the last commit for formats
with a non-zero granule shift.  Also keep track of the last keyframe
so that we can regenerate granulepos for theora.
2009-11-24 22:08:09 -08:00
David Schleef
78aad52cbf oggdemux: Fix vorbis parsing
Add a granule to granulepos conversion function.  Fix the duration
function for vorbis.  Handle timestamps on header packets differently
and be more careful about calculating OFFSET and OFFSET_END.  After
this change, timestamps for vorbis don't exactly match up with the
timestamps that vorbisparse outputs, but it's unclear if vorbisparse
is actually correct and it would add a lot more code to make oggdemux
match vorbisparse.  Fixes #602790.
2009-11-24 21:22:03 -08:00
David Schleef
ab0d802781 ogg: Fix generation of timestamps and durations
After changing some internal functions, I forgot to update
the code that puts the values on the buffers.
2009-11-21 22:05:34 +01:00
David Schleef
72edd1467b ogg: Add ogg stream parsing
Adds code that parses headers of various formats encapsulated in
Ogg in order to calculate timestamps and durations of each buffer.
Removes the creation of helper decoder elements to do this calculation
via conversion queries.

Fixes: #344013, #568014.
2009-11-21 19:40:42 +01:00
David Schleef
3019ebb107 oggmux: don't overwrite object properties 2009-11-21 19:40:42 +01:00
Stefan Kost
f8abb8cf15 debug: also cast packet.packetno to gint64 in debug log
We do this already for granulepos to handle ogg_int64_t mismatches.
2009-11-21 17:54:49 +02:00
Olivier Crête
05aa195981 theoradec: Keep timestamp from incoming buffer if it is valid
Fixes bug #601627.
2009-11-12 13:18:02 +01:00
David Schleef
dcf556893f theora: Fix alignment of frames when converting
Fix logic inversion in calculating the offset in the theora
frame when copying to a GStreamer frame.
2009-11-09 11:18:27 -08:00
Sebastian Dröge
45cefdefa6 textoverlay: Synchronize video/text based on the running time
Instead of simply using the buffer timestamps.
2009-11-06 12:11:21 +01:00
Sebastian Dröge
8ed8d5e414 textoverlay: Clip text buffers to the text segment and reset segments properly 2009-11-06 12:11:21 +01:00
Sebastian Dröge
d941a9f6a6 textoverlay: Put the video segment into the instance struct instead of allocating it separately 2009-11-06 12:11:20 +01:00
Sebastian Dröge
8692174b50 textoverlay: Check if text timestamp/duration is valid before clipping 2009-11-06 12:11:20 +01:00
Tim-Philipp Müller
34e6718da9 theoradec: printf format fix 2009-11-05 23:34:10 +00:00
Sebastian Dröge
60aa09d28c textoverlay: First draw outline text and then the real text
Improves the output a bit because no parts of the outline are
overwritten again.
2009-11-03 08:26:37 +01:00
Tim-Philipp Müller
6f4c1ac583 Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
David Schleef
61d08884d3 theora: Convert theoraparse to libtheora 1.0 API 2009-10-23 17:49:48 -07:00