Commit graph

1611 commits

Author SHA1 Message Date
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
Sebastian Dröge
eb9acba08f textoverlay: Optimize a bit more
...and add a FIXME for bug #598695 and explain
what we should do once Pango supports user fonts.
2009-10-22 10:17:31 +02:00
Sebastian Dröge
21ad7547a0 textoverlay: Do shading as first operation 2009-10-22 09:31:34 +02:00
Sebastian Dröge
eccd28d7b0 textoverlay: Only use a single cairo surface for drawing
... and comment/optimize what is going on here a bit better.
2009-10-22 09:08:48 +02:00
Tim-Philipp Müller
550b6fa0c1 pango: bump pango requirement to stable version and remove ifdefs
Bump pango requirement from an ancient development version to an
ancient stable version.
2009-10-18 13:42:01 +01:00
Benjamin Otte
f9132ee673 theora: Make theoradec use gstvideo for image conversion
Vastly simplifies code.

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:12:25 +02:00
Benjamin Otte
a3e92d3078 theora: Don't always round to even width/height
Previously, the code always rounded to even sizes. Now it only ensures
that pic_x and pic_y are multiples of 2 if the output format requires
it.

Also inlcudes fixes to take pic_x/y into account properly when copying
the buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:12:25 +02:00
David Schleef
3cb9484993 theora: Convert theoradec to libtheora 1.0 API
https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:12:18 +02:00
Benjamin Otte
7e15bb6631 theora: Port encoder to new Theora API
Includes ripping out the old buffer copy code to fill up to frame size.
This is not necesary with the new encoder.

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:16 +02:00
Benjamin Otte
910f67e816 theora: Disable sharpness property
It's ignored by libtheora

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:16 +02:00
Benjamin Otte
fed37612f6 theora: Disable noise-sensitivity property
It is ignored by libtheora

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:16 +02:00
Benjamin Otte
fad889e39e theora: Disable keyframe-mindistance property
It's ignored by the current Theora library

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:15 +02:00
Benjamin Otte
8b4923cba0 theora: Disable keyframe_threshold property
It's ignored by the current theora encoder

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:15 +02:00
Benjamin Otte
581d57724e theora: Get rid of "quick" property
The proeprty is not used by libtheora at all

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:08:15 +02:00
Benjamin Otte
4159cdfe9c theora: remove support for outdated granulepos hack
This is in preparation to switching to switching to the new Theora API

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:06:31 +02:00
Benjamin Otte
56203876e4 theora: Ignore border property
Always make the video use black as padding color.

The output will be identical to previous versions.

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:06:31 +02:00
Benjamin Otte
cec6b6ce29 theora: Ignore the center property, always set video to top left
This is not a necessary property, the output will be identical no matter
what.

https://bugzilla.gnome.org/show_bug.cgi?id=594729
2009-10-15 20:06:31 +02:00
Wim Taymans
e6e552b16f theoradec: avoid confusing error 2009-10-12 15:47:28 +02:00
Josep Torra
ade53fb42f vorbis: fixes warings in macosx snow leopard 2009-10-09 22:00:45 +02:00
Josep Torra
13ab7e7929 theora: fixes warnings on macosx snow leopard 2009-10-09 18:52:12 +02:00
Josep Torra
26fcc7843a ogg: fixes warnings on macosx snow leopard 2009-10-09 16:57:14 +02:00
Josep Torra
8579028dc0 oggdemux: fix a warning in macosx 2009-10-09 16:57:13 +02:00
Josep Torra
a34c29b524 audioconvert: change the format instead of cast as ensonic asked 2009-10-09 15:32:45 +02:00
Josep Torra
c272d8d9fb gnomevfssrc: fixes warnings in macosx
warning: format '%llu' expects type 'long long unsigned int', but argument 8 has type 'GnomeVFSFileOffset'
warning: format '%lld' expects type 'long long int', but argument 9 has type 'guint64'
2009-10-09 14:28:42 +02:00
Edward Hervey
2021791b75 theoraenc: Make the default quality property 48.
This guarantees that people who use theoraenc without modifying any
properties will end up with a reasonably good quality output.

48 is also the default of the encoder_example application shipped with
libtheora.
2009-10-07 16:56:28 +02:00
Stefan Kost
ccf5d6551a build: sprintf, sscanf need stdio.h 2009-10-07 11:56:35 +03:00
Sebastian Dröge
7c6c74e4a3 pango: Unpremultiply Cairo's ARGB to match GStreamers ARGB 2009-10-01 11:41:16 +02:00
David Schleef
f126617dbd oggdemux: Fix duration calculation for truncated files
If the last page of a stream has a granulepos of -1, that is,
it doesn't complete a packet, we need to continue to search
for the last granulepos.
2009-09-13 10:58:12 -07:00
Jan Schmidt
39c21352e9 theoraenc: Fix a string leak in _getcaps() 2009-09-12 02:24:49 +01:00
Sebastian Dröge
ce51263142 oggdemux: Handle kate and cmml as sparse streams too 2009-09-10 10:16:56 +02:00
Tim-Philipp Müller
3a38a0958e oggdemux: Better handling of sparse streams by sending segment updates
Fixes bug #397419.
2009-09-10 10:16:56 +02:00
Sebastian Dröge
2aa0899a84 theoraenc: Print a debug message with supported formats 2009-09-09 16:45:55 +02:00
Benjamin Otte
d9c9852764 theora: Check supported input formats in getcaps function
We want to fail early when an older libtheora release is used that does
not support Y444 or Y42B formats, so use a getcaps function that does
this.
2009-09-09 16:45:55 +02:00
Benjamin Otte
aa46e56170 theora: Implement support in theoraenc for Y444 and Y42B
Fixes bug #594165.
2009-09-09 16:45:54 +02:00
Benjamin Otte
96388221cf theora: Refactor the buffer copy code 2009-09-09 16:45:54 +02:00
Benjamin Otte
bac05fbf6f theora: Split yuv_buffer creation into its own function 2009-09-09 16:45:54 +02:00
Benjamin Otte
c1ead16f71 theora: Split out buffer resize in its own function 2009-09-09 16:45:54 +02:00
Benjamin Otte
9d4f72f2fa theora: Add assertions that functions don't fail
Some functions in libtheora can return an error, but that error cannot
ever happen inside theoraenc. In those cases assert that it doesn't.
2009-09-09 16:45:53 +02:00
David Schleef
0e9bc5125a Remove Ronald Bultje from Authors field
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
2009-08-24 11:37:01 -07:00
Tim-Philipp Müller
099989ff0f oggmux: don't drop the streamheader field from the output caps
Revert previous 'fix' for bug #588717 and fix it properly, whilst
maintaining the streamheader field on the output caps. Also make
sure we don't leak header buffers we couldn't push when downstream
is unlinked. Add unit test for the presence of the streamheader
field on the output caps and for the issue from bug #588717.
2009-08-20 13:14:19 +01:00
Edward Hervey
76044dce6d ext: Remove dead assignments and resulting unused variables. 2009-08-08 15:54:41 +02:00
Tim-Philipp Müller
6a5af299b0 Revert "theora: Convert theoradec to libtheora 1.0 API"
This reverts commit f1e142ac9d.

Temporarily revert until we have a workaround for debian/ubuntu
packaging failure (see http://bugs.debian.org/528710).
2009-08-07 08:53:44 +01:00
Tim-Philipp Müller
16cad126f0 oggmux: fix warning when we're not linked downstream and error out properly
Fix caps warning when there's no element linked downstream, and pass
not-linked flow return value correctly up the chain, so we error out
correctly. Fixes #588717.
2009-08-07 00:58:36 +01:00
David Schleef
f1e142ac9d theora: Convert theoradec to libtheora 1.0 API 2009-08-06 13:45:56 -07:00
Sebastian Dröge
6776cb445e textrender: Fix blitting of text over the output buffer and cairo painting 2009-08-06 20:47:33 +02:00
Sebastian Dröge
cc61c9e27e textrender: Fix endianness problems (i.e. make it work again on big endian architectures) 2009-08-06 14:55:07 +02:00
Wim Taymans
caf3d8d480 textoverlay: make buffer writable
Make the input buffer writable before changing its contents.
2009-08-06 12:01:10 +02:00
Sebastian Dröge
8212924489 pango: Send queries from the srcpad directly to the video sinkpad 2009-08-06 06:43:39 +02:00
Sebastian Dröge
8c874a7ff3 pango: Add support for xRGB and BGRx formats 2009-08-06 06:43:38 +02:00
Sebastian Dröge
67954aeba3 pango: Fix endianness issues from the pangocairo switch
cairo's ARGB is in native endianness, i.e. ARGB on big endian architectures
and BGRA on little endian architectures.
2009-08-06 06:43:37 +02:00
Sebastian Dröge
18a5264c87 pango: Re-add shading support which was dropped by a previous patch 2009-08-06 06:43:37 +02:00
Sebastian Dröge
20b84cda60 pango: Check if pangocairo supports vertical rendering and fix properties 2009-08-06 06:43:37 +02:00
Sebastian Dröge
d3baacc32a textrender: Use PROP_X instead of ARG_X consistently 2009-08-06 06:43:37 +02:00
Sebastian Dröge
8aa87c9153 pango: Some minor cleanup 2009-08-06 06:43:36 +02:00
Young-Ho Cha
7608c31516 pango: Use pango-cairo instead of pango-ft2
pango-cairo will always use the native font rendering backend
of the platform and provides better results.

Fixes bug #340887.
2009-08-06 06:43:36 +02:00
Balachandran C
01e0fdd86c alsasrc: set alsasrc->handle back to NULL when closing device
Fixes crashes in gst_alsa_find_device_name() when probing or
reading the device-name property (e.g. when doing a dot-file
dump). Fixes #589797.
2009-07-27 14:18:27 +01:00
Edward Hervey
47d40c2553 vorbisdec: Check for empty tag strings. Fixes #588724 2009-07-16 14:15:19 +02:00
Vincent Penquerc'h
0a5d5206f3 oggmux: add Kate caps to the list of accepted types
See #525743.
2009-07-13 22:59:11 +01:00
Sebastian Dröge
f9494bc38b gio: Also post a "not-mounted" message from giosink 2009-07-10 19:16:35 +02:00
Sebastian Dröge
d5154874cb gio: Add documentation for the new "not-mounted" and "file-exists" messages 2009-07-10 11:24:05 +02:00
Sebastian Dröge
b9c79380aa gio: Make sure that we have the correct stream position when starting 2009-07-09 13:45:13 +02:00
Sebastian Dröge
f93b9df83d gio: Make sure to flush the output stream if it shouldn't be closed
Otherwise there might still be unwritten data after the element
has stopped.
2009-07-08 17:24:19 +02:00
Sebastian Dröge
1c0123cf58 gio: Don't close the GIO streams for the giostream{src,sink} elements
This makes it possible to do something useful with the streams
after the element has stopped. Fixes bug #587896.
2009-07-08 17:19:29 +02:00
Sebastian Dröge
3116198fc3 gio: Improve the error message if a stream is already closed before usage 2009-07-08 17:02:54 +02:00
Sebastian Dröge
6025412707 gio: Post a custom file-exists message on the bus if the file already exists
An application can handle this message, remove the file in question
and restart the pipeline again without showing an error.

This fixes bug #529300.
2009-07-08 16:55:41 +02:00
Sebastian Dröge
7228ba6acd gio: Use OPEN_READ instead of NOT_FOUND if a location is not mounted 2009-07-08 16:54:56 +02:00
Sebastian Dröge
a8896413a0 gio: Use OPEN_WRITE instead of OPEN_READ as error category in giosink 2009-07-08 16:50:56 +02:00
Sebastian Dröge
ce08823dc5 gio: Post a custom "not-mounted" message on the bus
This allows applications to mount the GFile if possible and restart
the pipeline instead of simply giving an error.
2009-07-08 15:52:35 +02:00
Sebastian Dröge
7e72ceb3f2 gio: Add vfunc for requesting the stream for the sinks too 2009-07-07 20:23:23 +02:00
Sebastian Dröge
7483a4834c gio: Some more random cleanup 2009-07-07 20:21:36 +02:00
Sebastian Dröge
b81f957bfc gio: Update my mail address and copyright 2009-07-07 20:20:58 +02:00
Sebastian Dröge
160b70e841 gio: General clean up and simplification
The GInputStreams are now requested by a vfunc from
the subclasses instead of relying that the subclass
sets it until it's needed.

This might also fix bug #587896.
2009-07-07 20:18:00 +02:00
Hans-Peter Nilsson
04e23f2d6a pango: Call tzset() before localtime_r()
POSIX and your local friendly ctime(3) manual entry says that localtime_r isn't
required to set the state variables that define the current timezone.  Indeed,
glibc (at least 2.9) doesn't do this for subsequent calls.  The effect is that
if the system timezone is changed for a running program between two calls to
gst_clock_overlay_render_time, it won't be noticed.  For glibc, changing the
timezone equals /etc/localtime being modified.

Fixes bug #587676.
2009-07-05 18:01:38 +02:00
David Schleef
8937c89551 build: remove spurious schroedinger reference 2009-07-01 17:33:14 -07:00
David Schleef
530cb7268b basevideo: send basevideo back to remedial school
Move basevideo classes and schroedinger plugin to -bad.
2009-07-01 10:27:30 -07:00
Tim-Philipp Müller
b20b375180 cdparanoia: run-time license is LGPL now that we require cdparanoia 0.10.2
cdparanoia has an LGPL v2.1 license since 0.10.1 and we now require 0.10.2.
Finally fixes #531035.
2009-06-19 22:21:03 +01:00
Tim-Philipp Müller
4e1086f93b cdparanoia: try to guess a good cache size if it's set to -1
Try to guess from the paranoia-mode setting whether playback or
ripping is wanted, and use a smaller cache size if we're likely
to be doing playback, to avoid a long startup delay. Since this
was the value used in older cdparanoia versions, it should be
fine in any case. See #586331.
2009-06-19 22:21:03 +01:00
Jonathan Matthew
9daee1f4a9 cdparanoia: expose cache size setting
This setting was added in cdparanoia 10.2.  The default value is good
for audio extraction, but lower values (previous versions of cdparanoia
used 150) are better for realtime playback.

Fixes #586331.
2009-06-19 22:21:03 +01:00
Tim-Philipp Müller
12134979a2 oggdemux: post/send tags with the container-format tag
For this to work properly, theoradec and vorbisdec need to put
tag events received from upstream into the pending_events list
so they get pushed out after any newsegment event, not before.
2009-06-14 22:13:41 +01:00
Wim Taymans
acdb88ec6f oggdemux: do reverse seeks more accurate
For reverse seeking with the accurate flag set, try to be more precise by
seeking a little bit after the requested position.
2009-06-12 13:44:26 +02:00
Tim-Philipp Müller
9ca2bf36de subparse, ogmparse: post tags with GST_TAG_SUBTITLE_CODEC
Make subtitle parsers post a taglist with codec tags, so the application
knows what kind of subtitle a subtitle stream is. Fixes #576552.
2009-06-11 22:32:28 +01:00
LRN
30103e736d Added libgstbase to schro's LIBADD
Fixes #585079
2009-06-07 22:01:50 +02:00
Tim-Philipp Müller
20fb58be19 vorbisdec: don't put invalid bitrate values into the taglist
Bitrates are stored as 32-bit signed integers in the vorbis
identification headers, but seem to be read incorrectly,
namely as unsigned 32-bit integers, into the vorbis structure
members which are of type long, which makes our check for
values <= 0 fail with files that put -1 in there for unset
values.
2009-06-03 20:42:39 +01:00
Alessandro Decina
bb1561644f theoraparse: fix assertions in make_granulepos when using the new theora granulepos mapping. Fixes #583903. 2009-05-26 23:32:48 +02:00
Wim Taymans
f0bb7874a7 oggdemux: fix boundary case for seeking.
When we have exactly 0 bytes left to search, make sure we stop instead of going
into an infinite loop.
2009-05-26 13:14:07 +02:00
David Schleef
27cb39b028 schro: Fix usage of adapter_masked_scan_uint32
Because *somebody* changed the API without telling me.
2009-05-22 21:27:58 -07:00
David Schleef
62002aead9 schro: Change package name to GST_PACKAGE_NAME 2009-05-22 21:25:06 -07:00
Wim Taymans
d1c73bd00f vorbisdec: detect and report errors better
Check the return values of a couple more libvorbis functions and post an error
when something is wrong instead of continuing and crashing.
2009-05-22 17:41:50 +02:00
Wim Taymans
ed36eafaba oggdemux: don't loop when at EOS
When we try to read the last page, don't try to read past the upper boundary, as
this might cause endless loops.

See #582942
2009-05-19 12:45:59 +02:00
Michael Smith
94ca1b005e theoradec: for 4:2:2, use Y42B (planar) rather than a packed format. 2009-05-18 22:34:22 -07:00
David Schleef
0f1c5c1b68 schro: Move schro plugin from Schroedinger
Previous history is in Schroedinger.  Depends on, and is an example
of using, GstBaseVideo* base classes.

Code was reindented, and an #ifdef HAVE_ENCODER removed.
2009-05-15 16:18:59 -07:00
Sebastian Dröge
c3b28a9bff vorbisenc: Implement Preset interface 2009-05-15 16:27:41 +02:00
Sebastian Dröge
bcd0aee3f5 theoraenc: Implement Preset interface 2009-05-15 16:27:40 +02:00
Sebastian Dröge
2ea16837e7 oggmux: Implement Preset interface 2009-05-15 16:27:40 +02:00
Wim Taymans
117686abc5 visual: remove next_ts variable
We can remove the next_ts variable as we don't use it anymore.
2009-05-13 19:27:54 +02:00
Wim Taymans
6eb549ab92 visual: use new adapter timestamp code
Use the new adapter timestamp tracking code to make things easier and produce
vastly better output timestamps.
2009-05-13 19:24:15 +02:00
Christian Schaller
705e7750c5 Add ranks to the Oggmuxer, Vorbis encoder and Theora encoder 2009-05-12 12:17:55 +01:00
Wim Taymans
6cee823237 oggmux: small debug statement in DISCONT 2009-05-12 10:46:35 +02:00
Wim Taymans
7e43c10754 oggdemux: fix abuse of ogg API, handle broken oggs
When we feed the ogg sync layer, we need to feed it contiguous data even if the
sync layer did not consume all of it yet. This makes sure that it always finds
the next page even for more corrupted files. Use a different read_offset for
this purpose. since we now keep track of the sync layer, we don't have to reset
after finding a start of a page.

Add some more debug info for the error paths.

Only reset the sync layer when we perform a seek operation.

Avoid failure when the next chain has no bos pages but instead simply ignore it.

when we receive unknown page serial numbers mid stream, don't fail but post a
warning and hope that we get back on track later.

Fixes #579642
2009-05-12 10:44:17 +02:00
Sebastian Dröge
1d4ba53259 textrender: Correctly initialize the background for ARGB too 2009-05-12 09:03:24 +02:00
Sebastian Dröge
204c327b23 textrender: Use libgstvideo functions to create caps
Also check if downstream wants ARGB always when we get
new caps.
2009-05-12 09:03:23 +02:00
Sebastian Dröge
4f5502a896 textrender: Don't always use ARGB if downstream supports it but take it's preference 2009-05-12 09:03:23 +02:00
Kapil Agrawal
2ddf7c8e13 textrender: Add support for ARGB and alignment properties
Fixes bug #581571.
2009-05-12 09:03:23 +02:00
Sebastian Dröge
ce95857718 textrender: Add ; after GST_BOILERPLATE to fix indention 2009-05-12 09:03:23 +02:00
Michael Smith
21c52af2b3 theoradec: fix buffer overrun on 422 decode. 2009-05-10 18:08:13 -07:00
Michael Smith
c94a36bff4 theoradec: 444 support. 2009-05-10 18:08:13 -07:00
Michael Smith
62b571b93b theoradec: handle 422 images (as YUY2). 2009-05-10 18:08:13 -07:00
Michael Smith
a91b7f0857 theoradec: rearrange code in preparation for 422 and 444 support. 2009-05-10 18:08:12 -07:00
Zaheer Merali
1650272b84 vorbisenc, theoraenc: Ensure gp is computed consistently + clip to segment
With vorbisenc, compute the granulepos with running time and clip incoming
buffers to segment.
With theoraenc, drop out of segment buffers.
2009-05-06 13:19:34 +01:00
Jan Schmidt
d14c80b22e vorbisenc: Ensure output buffers fall within the segment
Add the start position of the first segment to the running time
used to generate buffer timestamps in vorbisenc. This avoids generating
buffers which fall outside the initial segment. The element segment
handling requires more extensive fixing, but this at least prevents
regressions. Fixes: #580020
2009-04-29 16:48:45 +01:00
Olivier Crete
c628641880 theoraenc: implement upstream keyframe force
Implement handling of upstream keyframe forcing.
Update the design documents too.
Fixes #578656
2009-04-14 18:21:45 +02:00
Olivier Crete
d0c3682627 theoraenc: factor out keyframe forcing
See #578656
2009-04-14 18:21:45 +02:00
Edward Hervey
219fe22293 theoradec: return GST_CLOCK_TIME_NONE for negative framecounts.
This fixes most seeking issues when used with gnonlin.
Fixes #543591
2009-04-04 15:47:17 +02:00
Tim-Philipp Müller
9938003bd1 alsamixer: don't forget to release locks in a few places
Might fix #576585.
2009-04-02 10:44:25 +01:00
Sebastian Dröge
f1bc9e97aa textoverlay: Fix drawing of UYVY text borders 2009-03-26 11:02:41 +01:00
Zeeshan Ali
e54e10ad19 textoverlay: Add support for UYVY colorspace
Fixes bug #378094.
2009-03-26 10:36:27 +01:00
Edward Hervey
b7fdb7c6d7 theoradec: Use GST_CLOCK_TIME_NONE for invalid positions. Fixes #543591
The problem was that previously we didn't check whether _theora_granule_frame
returned a negative framecount or not, resulting in bogus timestamps.
2009-03-23 11:38:53 +01:00
René Stadler
9f0e053f6e vorbisenc: Set caps on non-header ouput buffers.
Fixes #576142.
2009-03-21 09:47:23 +01:00
Wim Taymans
4e11b596cb oggdemux: report -1 for duration in push mode
In push mode we must return TRUE from the duration query with a value of -1
meaning that we know that we don't know the duration.
2009-03-17 19:53:44 +01:00
Wim Taymans
e863e4ed1b vorbisparse: be smarter when queueing headers
Look at the first buffer byte to see if a buffer is a header instead of counting
packets.
2009-03-13 15:29:29 +01:00
Wim Taymans
9def0d8c61 theoraparse: be smarter when queuing headers
Look at the first byte of the buffer data (if we can) to decide if the packet is
a header packet or not instead of counting packets.
2009-03-13 15:27:51 +01:00
Wim Taymans
51b5f33c3c oggdemux: add some debug info
Add some debug info to log when the seek worked.
2009-03-13 15:26:40 +01:00
Jan Schmidt
77874292a3 vorbisdec: Avoid an unnecessary memory allocation in vorbiscomment handling. 2009-03-13 11:49:10 +00:00
Jan Schmidt
e7d4250fc3 theoradec: Avoid an unnecessary memory allocation in vorbiscomment handling. 2009-03-13 11:48:28 +00:00
Wim Taymans
fac1d4cc09 theoradec: parse and use codec_data in the caps
Parse the codec_data in the caps and use this as the headers.
Fixes #574169.
2009-03-06 19:02:58 +01:00
LRN
95c838f051 gio: Use correct format modifier for size_t
Fixes bug #573528.
2009-02-28 19:37:53 +01:00
Stefan Kost
3d0c70d3d8 alsa: release pcminfo after the strdup 2009-02-27 11:14:25 +02:00
Stefan Kost
c074e84360 alsa: cleanup name lookup.
We can break, once we have a name to make sure, we won't read it ever twice.
2009-02-26 18:01:05 +02:00
Stefan Kost
e95bbca65f giosink: reflow error handling to not leak uri 2009-02-26 18:01:04 +02:00
Sebastian Dröge
dc9a1b945b vorbis: Rename vorbis*.h to gstvorbis*.h to prevent name conflicts 2009-02-24 14:36:39 +01:00
Sebastian Dröge
2ab2bbd82c theoraparse: Use the correct unref functions 2009-02-22 19:19:04 +01:00
Benjamin M. Schwartz
d8a33f094c theoraenc: Add property for speed level control
Add property "speed-level" to control the amount of motion searching
the encoder does.  This is only available in libtheora >= 1.0 and
will silently fail with earlier libraries.  Fixes: #572275.

Signed-off-by: David Schleef <ds@schleef.org>
2009-02-19 12:38:57 -08:00
Antoine Tremblay
fc23037a9a alsamixer: Fix race condition that made alsamixer not working properly
This is due to race conditions between functions that
modified the mixer like set_volume and
snd_mixer_handle_events since the handle_events
can now be called at any time.

Fixed by adding locking around any snd_mixer call
since even read functions can modify the mixer stucture, since
alsa likes to clear it's values before reading new ones.

The favorite race condition seemed to be that set_volume
called read_elem (in alsalib) that reset the volumes to
0 and then read them with read_x_volume. This read looped
on each channel and as the race condition occured the
channels value could be anything , most of the time
it was 0. Thus no value was read or only the value of
one channel was and the volume was reset to 0.

Fixes bug #478512.
2009-02-10 11:00:12 +01:00
Jan Schmidt
9fbf201167 Fix include order for gio plugin 2009-01-26 23:32:09 +00:00
Wim Taymans
64b20fd7b5 Use rounded values for image strides and sizes
Round up the height before calculating the expected size and
strides of the output image.
2009-01-23 11:27:16 +01:00
Wim Taymans
eb33188fba Improve debug message
Improve the debug message when alsa returns an error.
2009-01-23 11:23:09 +01:00
Sebastian Dröge
b6b860f9a4 Add plugin dependency for the GIO and GVfs modules.
Original commit message from CVS:
* configure.ac:
* ext/gio/gstgio.c: (plugin_init):
Add plugin dependency for the GIO and GVfs modules.
Fixes bug #566876.
2009-01-07 18:36:04 +00:00
Sebastian Dröge
54910e9253 Add plugin dependency for the gnomevfs modules.
Original commit message from CVS:
* configure.ac:
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
Add plugin dependency for the gnomevfs modules.
Fixes bug #566875.
2009-01-07 18:32:33 +00:00
Tim-Philipp Müller
be87292514 Use new core API to make registry re-scan the plugin whenever visualisations are added or removed (see #350477).
Original commit message from CVS:
* configure.ac:
* ext/libvisual/visual.c: (plugin_init):
Use new core API to make registry re-scan the plugin
whenever visualisations are added or removed (see #350477).
2009-01-06 18:03:51 +00:00
Sebastian Dröge
7e58fe30f5 ext/: Implement URI query. Fixes bug #562949.
Original commit message from CVS:
* ext/gio/gstgiobasesink.c: (gst_gio_base_sink_query):
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_class_init),
(gst_gio_base_src_query):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_query):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init),
(gst_gnome_vfs_src_query):
Implement URI query. Fixes bug #562949.
2008-12-20 17:38:41 +00:00
Edward Hervey
a3c1a0507a ext/vorbis/vorbisenc.c: Make vorbisenc's pad template behave like vorbisdec's. Fixes a leak with pad templates.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_base_init),
(gst_vorbis_enc_init):
Make vorbisenc's pad template behave like vorbisdec's. Fixes a leak with
pad templates.
2008-12-12 07:17:21 +00:00
Wim Taymans
1ab0f8da50 ext/ogg/gstoggdemux.c: Use G_DEFINE_TYPE for the OggPad to get some threadsafe type init from glib.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_class_init),
(gst_ogg_pad_dispose), (gst_ogg_pad_finalize):
Use G_DEFINE_TYPE for the OggPad to get some threadsafe type
init from glib.
2008-12-10 14:55:10 +00:00
Wim Taymans
bae0d688dd ext/ogg/gstoggdemux.c: If no stream was found before receiving EOS, post an error message.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_sink_event):
If no stream was found before receiving EOS, post an error message.
Fixes #561924.
2008-11-25 15:28:36 +00:00
Wim Taymans
f93fcafe64 ext/theora/: Parse segment events.
Original commit message from CVS:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c: (gst_theora_enc_init),
(theora_buffer_from_packet), (theora_push_packet),
(theora_enc_sink_event), (theora_enc_is_discontinuous),
(theora_enc_chain):
Parse segment events.
Pass incomming buffer timestamps to outgoing buffers.
Use the running_time to construct the granulepos.
Fixes #562163.
2008-11-25 15:14:30 +00:00
David Schleef
3d894ebe84 ext/ogg/gstoggmux.*: If we're muxing a dirac stream, flush the page after every picture.
Original commit message from CVS:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggmux.h:
If we're muxing a dirac stream, flush the page after every picture.
2008-11-24 19:18:59 +00:00
Sebastian Dröge
79bb2ffe06 ext/: Use gst_buffer_try_new_and_alloc() and fail properly if the allocation failed. This prevents abort() if downstr...
Original commit message from CVS:
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_create):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_create):
Use gst_buffer_try_new_and_alloc() and fail properly if the
allocation failed. This prevents abort() if downstream elements
request an insane amount of memory.
2008-11-24 12:07:10 +00:00
Wim Taymans
68eb1421af ext/theora/: Copy seqnum.
Original commit message from CVS:
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(gst_theora_dec_reset), (theora_dec_src_event),
(theora_dec_sink_event), (theora_handle_type_packet):
Copy seqnum.
Keep events in a pending list, like vorbisdec, instead of trying
to construct a segment event ourselves.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_src_event), (vorbis_dec_sink_event):
* ext/vorbis/vorbisdec.h:
Copy seqnum.
2008-11-04 18:17:24 +00:00
Wim Taymans
7f347c61c0 ext/ogg/gstoggdemux.*: Copy seqnums around to track playback segments and messages.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_demux_deactivate_current_chain),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_handle_page),
(gst_ogg_demux_loop):
* ext/ogg/gstoggdemux.h:
Copy seqnums around to track playback segments and messages.
2008-11-04 17:24:35 +00:00
Matthias Kretz
d15846f9fb ext/alsa/gstalsasink.c: Make all access non-blocking so that we can better handle unplugging of usb devices. Fixes #5...
Original commit message from CVS:
Based on patch by: Matthias Kretz <kretz at kde dot org>
* ext/alsa/gstalsasink.c: (gst_alsasink_open),
(gst_alsasink_prepare), (gst_alsasink_unprepare),
(gst_alsasink_write):
Make all access non-blocking so that we can better handle unplugging
of usb devices. Fixes #559111
2008-11-03 15:30:14 +00:00
Wim Taymans
d9c2015fe1 ext/vorbis/vorbisdec.c: Attempt to make obfuscated code clearer.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
Attempt to make obfuscated code clearer.
2008-10-23 09:57:06 +00:00
Stefan Kost
2cd4c7e2b9 Don't install static libs for plugins. Fixes #550851 for base.
Original commit message from CVS:
* ext/alsa/Makefile.am:
* ext/cdparanoia/Makefile.am:
* ext/gio/Makefile.am:
* ext/gnomevfs/Makefile.am:
* ext/libvisual/Makefile.am:
* ext/ogg/Makefile.am:
* ext/pango/Makefile.am:
* ext/theora/Makefile.am:
* ext/vorbis/Makefile.am:
* gst/adder/Makefile.am:
* gst/audioconvert/Makefile.am:
* gst/audiorate/Makefile.am:
* gst/audioresample/Makefile.am:
* gst/audiotestsrc/Makefile.am:
* gst/ffmpegcolorspace/Makefile.am:
* gst/gdp/Makefile.am:
* gst/playback/Makefile.am:
* gst/subparse/Makefile.am:
* gst/tcp/Makefile.am:
* gst/typefind/Makefile.am:
* gst/videorate/Makefile.am:
* gst/videoscale/Makefile.am:
* gst/videotestsrc/Makefile.am:
* gst/volume/Makefile.am:
* sys/v4l/Makefile.am:
* sys/ximage/Makefile.am:
* sys/xvimage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for base.
2008-10-16 15:07:00 +00:00
Edward Hervey
a0e3174c88 ext/theora/theoradec.c: Fix build on macosx.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_decode_buffer):
Fix build on macosx.
2008-10-14 11:13:59 +00:00
Robin Stocker
cf5c8e426d ext/theora/: Parse input caps and make the PAR override the encoded PAR when specified by a container. Fixes #555699.
Original commit message from CVS:
Based on patch by: Robin Stocker <robin at nibor dot org>
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(theora_dec_setcaps), (theora_handle_type_packet),
(theora_dec_decode_buffer), (theora_dec_change_state):
Parse input caps and make the PAR override the encoded PAR when
specified by a container. Fixes #555699.
2008-10-13 11:36:13 +00:00
Sebastian Dröge
0d43cf2474 ext/vorbis/vorbisenc.c: Fix discontinuity detection which was broken by last commit.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c:
(gst_vorbis_enc_buffer_check_discontinuous):
Fix discontinuity detection which was broken by last commit.
2008-10-10 15:21:38 +00:00
Daniel Drake
43e1dcbd18 ext/ogg/gstoggmux.c: Unref all buffers when clearing collectpads. Fixes bug #546955.
Original commit message from CVS:
Patch by: Daniel Drake <dsd at laptop dot org>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear_collectpads):
Unref all buffers when clearing collectpads. Fixes bug #546955.
2008-10-08 12:12:01 +00:00
Klaas
93f2eaa98c ext/vorbis/vorbisenc.*: Keep track of the upstream segments and use the running time on that segment instead of the b...
Original commit message from CVS:
Based on a patch by: Klaas <klaas at rivercrew dot net>
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_sink_event),
(gst_vorbis_enc_buffer_check_discontinuous),
(gst_vorbis_enc_chain), (gst_vorbis_enc_change_state):
* ext/vorbis/vorbisenc.h:
Keep track of the upstream segments and use the running time on that
segment instead of the buffer timestamp everywhere. Fixes bug #525807.
2008-10-08 12:08:01 +00:00
Pavel Zeldin
947ecd72c4 ext/pango/gstclockoverlay.*: API: Add ability to specify format for date/time display by adding a "time-format" prope...
Original commit message from CVS:
Patch by: Pavel Zeldin <pzeldin at gmail dot com>
* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time),
(gst_clock_overlay_class_init), (gst_clock_overlay_finalize),
(gst_clock_overlay_init), (gst_clock_overlay_set_property),
(gst_clock_overlay_get_property):
* ext/pango/gstclockoverlay.h:
API: Add ability to specify format for date/time display by
adding a "time-format" property.
Fixes bug #554879.
2008-10-08 10:49:15 +00:00
ogg.k.ogg.k
6b3fb42a47 ext/theora/theoraparse.c: Set the BOS flag on the BOS packet. Fixes #553244.
Original commit message from CVS:
Patch by: ogg.k.ogg.k <ogg dot k dot ogg dot k at googlemail dot com>
* ext/theora/theoraparse.c: (theora_parse_set_streamheader):
Set the BOS flag on the BOS packet. Fixes #553244.
2008-09-25 10:46:00 +00:00
Alessandro Dessina
4f9bfa6a03 ext/ogg/gstoggdemux.c: Don't add pads and activate them for skeleton streams. These are already handled inside oggdem...
Original commit message from CVS:
Patch by: Alessandro Dessina <alessandro nnva org>
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_deactivate_current_chain),
(gst_ogg_demux_activate_chain):
Don't add pads and activate them for skeleton streams. These are already
handled inside oggdemux. Fixes bug #537599.
2008-08-23 15:19:59 +00:00
Wim Taymans
096e77929f ext/vorbis/vorbisdec.c: Reset variable so that query and convert fail after going back to
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_change_state):
Reset variable so that query and convert fail after going back to
READY. Fixes #548898.
2008-08-22 15:54:15 +00:00
Sebastian Dröge
aea2a11136 ext/vorbis/vorbisenc.c: If a buffer arrives with a timestamp before the timestamp+duration of the previous buffer cli...
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_chain):
If a buffer arrives with a timestamp before the timestamp+duration
of the previous buffer clip it instead of dropping it completely.
Slight improvement for the unfixable bug #548913.
2008-08-22 07:24:13 +00:00
Sebastian Dröge
58584b9b0b ext/vorbis/vorbisdec.c: Take the current timestamp instead of timestamp+duration for the offset.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
Take the current timestamp instead of timestamp+duration for the offset.
This offset will later be used for calculating the timestamp and
otherwise vorbisdec will interpolate timestamps wrong if upstream
only sends timestamps and no granulepos.
2008-08-21 14:19:21 +00:00
David Schleef
23ca2ae3b1 ext/theora/theoraenc.c: Remove the 2000 kbit limit to bitrate, since it has no basis in libtheora.
Original commit message from CVS:
* ext/theora/theoraenc.c: Remove the 2000 kbit limit to bitrate,
since it has no basis in libtheora.
2008-08-13 00:59:07 +00:00
Sebastian Dröge
b0e3d44956 ext/ogg/gstoggmux.*: Don't pretend to support NEWSEGMENT events, instead override the
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_sink_event),
(gst_ogg_mux_request_new_pad):
* ext/ogg/gstoggmux.h:
Don't pretend to support NEWSEGMENT events, instead override the
GstCollectPads event function to return FALSE on NEWSEGMENT events
and do the normal work for other events.
This prevents elements like flacenc to seek to the start and rewrite
some data which then results in a broken Ogg packet.
2008-08-07 16:11:14 +00:00
Frederic Crozat
89be246154 Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#546822).
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/cdparanoia/gstcdparanoiasrc.c: (plugin_init):
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init):
* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal):
* gst/playback/gstdecodebin.c: (plugin_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_plugin_init):
* gst/playback/gstplayback.c: (plugin_init):
* gst/playback/gstqueue2.c: (plugin_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_plugin_init):
* sys/v4l/gstv4l.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
2008-08-07 15:58:58 +00:00
Stefan Kost
476e95dc28 ext/vorbis/vorbisdec.c: Do not leak old taglist.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c:
Do not leak old taglist.
2008-08-05 15:38:06 +00:00
Stefan Kost
48e7814631 ext/gnomevfs/gstgnomevfssrc.c: Aggregate short reads and add some comments and debug logging.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c:
Aggregate short reads and add some comments and debug logging.
Fixes #537380
2008-07-29 12:35:54 +00:00
Sebastian Dröge
f9749dea39 ext/ogg/gstoggdemux.c: Don't use GST_CLOCK_TIME_NONE as start of NEWSEGMENT events.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_handle_page):
Don't use GST_CLOCK_TIME_NONE as start of NEWSEGMENT events.
This fixes a critical warning.
2008-07-28 15:34:13 +00:00
Sebastian Dröge
6bccd1fcfe ext/ogg/gstoggmux.c: Allow muxing of CELT into Ogg streams.
Original commit message from CVS:
* ext/ogg/gstoggmux.c:
Allow muxing of CELT into Ogg streams.
2008-07-28 13:12:51 +00:00
Jan Gerber
cd3fef0f39 ext/ogg/gstoggdemux.c: Fix calculation of the start time from skeleton streams.
Original commit message from CVS:
Patch by: Jan Gerber <j at oil21 dot org>
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_parse_skeleton_fisbone):
Fix calculation of the start time from skeleton streams.
Fixes bug #530068.
2008-07-27 11:12:41 +00:00
Stefan Kost
2b33c755b6 Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/gst-plugins-base-plugins.signals:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/alsa/gstalsamixer.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* ext/vorbis/vorbisparse.c:
* ext/vorbis/vorbistag.c:
* gst/adder/gstadder.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
Cleanup Plugin docs. Link to signals and properties. Fix sub-section
titles. Drop mentining that all our example pipelines are "simple"
pipelines.
2008-07-10 21:06:06 +00:00
Sam Morris
752cf09704 gst-libs/gst/interfaces/mixertrack.c: API: Add "index" property to GstMixerTrack to differantiate between multiple mi...
Original commit message from CVS:
Patch by: Sam Morris <sam at robots dot org to uk>
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init), (gst_mixer_track_get_property),
(gst_mixer_track_set_property):
API: Add "index" property to GstMixerTrack to differantiate between
multiple mixer tracks with the same label.
* ext/alsa/gstalsamixeroptions.c: (gst_alsa_mixer_options_new):
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
Set the "index" property of GstMixerTrack to the index given by ALSA.
Fixes bug #528299.
2008-06-26 06:03:38 +00:00
Stefan Kost
1834a009a1 ext/alsa/gstalsamixer.c: Also consider "speaker" as a name for master volume. If that doesn't help look for the first...
Original commit message from CVS:
* ext/alsa/gstalsamixer.c:
Also consider "speaker" as a name for master volume. If that doesn't
help look for the first non-mono volume control that also has a
playback switch.
2008-06-24 16:15:26 +00:00
Wim Taymans
5ff8a9437e ext/vorbis/vorbisenc.c: Report the encoder latency. Fixes #538232.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_get_latency),
(gst_vorbis_enc_src_query), (gst_vorbis_enc_chain):
Report the encoder latency. Fixes #538232.
2008-06-20 09:25:44 +00:00
Sebastian Dröge
bb595d8fd8 ext/gio/gstgiobasesrc.*: Try to read the requested number of bytes, even if the first read returns less than requeste...
Original commit message from CVS:
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_finalize),
(gst_gio_base_src_create):
* ext/gio/gstgiobasesrc.h:
Try to read the requested number of bytes, even if the first
read returns less than requested, until nothing is read anymore
or we have the requested amount of bytes. This fixes playback of
files via Samba as Samba only allows to read 64k at once.
Implement a caching algorithm that makes sure that we read at
least 4k of data every time. Some elements will try to read a few
bytes, then seek, read again a few bytes and so on and this is
painfully slow as every operation has to go over DBus if GVfs is
used as backend.
Fixes bug #536849 and #536848.
* ext/gio/gstgiosrc.c: (gst_gio_src_class_init),
(gst_gio_src_check_get_range):
Override check_get_range() to blacklist http/https URIs
and whitelist file URIs. More to be added on demand.
2008-06-11 09:35:51 +00:00
Tim-Philipp Müller
d868077048 ext/pango/: Use gstvideo functions to calculate strides and plane offsets. Fixes rendering issue ('ghost' images of t...
Original commit message from CVS:
* ext/pango/Makefile.am:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_shade_y),
(gst_text_overlay_blit_yuv420), (gst_text_overlay_push_frame):
Use gstvideo functions to calculate strides and plane offsets. Fixes
rendering issue ('ghost' images of the text on the chroma planes)
with widths or heights that are not multiples of 8 (#506659 and
probably also #485729).
* tests/icles/test-textoverlay.c: (show_text), (test_textoverlay),
(main):
Test with odd height/width too.
2008-06-02 18:37:02 +00:00
Sebastian Dröge
31b677599a ext/vorbis/: Add sane defaults for the 7 and 8 channel layouts as those are undefined in the Vorbis spec. Use NONE ch...
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_generate_sink_caps):
Add sane defaults for the 7 and 8 channel layouts as those are
undefined in the Vorbis spec. Use NONE channel layouts when decoding
more than 8 channels instead of erroring out. Fixes bug #535356.
2008-05-29 07:02:50 +00:00
Wim Taymans
1a3053b241 Add theoraparse to the docs and fix some docs.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* ext/theora/theoraparse.c:
Add theoraparse to the docs and fix some docs.
2008-05-28 16:10:20 +00:00
Tim-Philipp Müller
dc9eb0d6b8 ext/alsa/gstalsamixertrack.c: Make sure playback volumes aren't accidentally overwritten by capture volumes if an als...
Original commit message from CVS:
* ext/alsa/gstalsamixertrack.c:
(gst_alsa_mixer_track_update_alsa_capabilities):
Make sure playback volumes aren't accidentally overwritten by
capture volumes if an alsa mixer track has both playback and
capture capabilities: we create two GstMixerTracks in that
case, so make sure we query only the alsa capabilities that
refer to the type of GstMixerTrack we created from the dual
capability alsa element. Should fix issues with Audigy2 sound
cards (#518082).
2008-05-27 16:11:32 +00:00
Jan Schmidt
d58def621b Add some documentation comments, and some new headers to be scanned.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gio.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/cdparanoia/gstcdparanoiasrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggdemux.h:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggmux.h:
* gst/audioconvert/audioconvert.c:
* gst/audioconvert/audioconvert.h:
* gst/audioconvert/gstaudioconvert.h:
* gst/gdp/gstgdpdepay.h:
* gst/gdp/gstgdppay.h:
* gst/playback/gstdecodebin.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcp.h:
Add some documentation comments, and some new headers to be scanned.
Rename some internal enum declarations (audioconvert's DitherType and
NoiseShapingType, GstUnitType from the TCP elements) to match the
documented GObject type names so that the docs pick them up.
Name the playbin2 docs markups properly so they get picked up. They'll
need renaming back when/if playbin2 becomes playbin.
100% symbol coverage for the plugin docs, booya.
2008-05-22 22:09:16 +00:00
Wim Taymans
2cdf18edff Some debug and comment fixes.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_show_frame):
Some debug and comment fixes.
* tests/examples/dynamic/addstream.c: (main):
Fix , to ;
2008-05-21 16:44:15 +00:00
Wim Taymans
c6b54c3d02 Don't use bad gst_element_get_pad().
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind):
* gst/playback/decodetest.c: (new_decoded_pad_cb):
* gst/playback/gstdecodebin.c: (gst_decode_bin_init),
(try_to_link_1), (elem_is_dynamic), (close_link), (type_found),
(cleanup_decodebin):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_init),
(connect_element), (gst_decode_group_control_demuxer_pad):
* gst/playback/gstplaybasebin.c: (queue_remove_probe),
(queue_out_of_data), (gen_preroll_element), (preroll_unlinked),
(mute_group_type):
* gst/playback/gstplaybin.c: (gst_play_bin_vis_blocked),
(gst_play_bin_set_property), (handoff), (gen_video_element),
(gen_text_element), (gen_audio_element), (gen_vis_element),
(remove_sinks), (add_sink), (setup_sinks):
* gst/playback/gstplaybin2.c: (pad_added_cb), (no_more_pads_cb):
* gst/playback/gstplaysink.c: (gst_play_sink_get_video_sink),
(gst_play_sink_get_audio_sink), (gst_play_sink_vis_unblocked),
(gst_play_sink_vis_blocked), (gst_play_sink_set_vis_plugin),
(gst_play_sink_get_vis_plugin), (gst_play_sink_set_mute),
(gen_video_chain), (gen_text_chain), (gen_audio_chain),
(gen_vis_chain), (gst_play_sink_reconfigure),
(gst_play_sink_set_font_desc), (gst_play_sink_get_font_desc),
(gst_play_sink_request_pad):
* gst/playback/gsturidecodebin.c: (type_found), (setup_source):
* gst/playback/test.c: (gen_video_element), (gen_audio_element),
(cb_newpad):
* gst/playback/test6.c: (new_decoded_pad_cb):
* tests/check/elements/audioconvert.c: (GST_START_TEST):
* tests/check/elements/audiorate.c: (test_injector_chain),
(do_perfect_stream_test):
* tests/check/elements/ffmpegcolorspace.c: (GST_START_TEST):
* tests/check/elements/gdpdepay.c: (GST_START_TEST):
* tests/check/elements/gnomevfssink.c:
* tests/check/elements/textoverlay.c:
(notgst_check_setup_src_pad2), (notgst_check_teardown_src_pad2):
* tests/check/elements/videotestsrc.c: (GST_START_TEST):
* tests/check/libs/cddabasesrc.c: (GST_START_TEST):
* tests/check/pipelines/oggmux.c: (test_pipeline):
* tests/check/pipelines/streamheader.c: (GST_START_TEST):
* tests/check/pipelines/theoraenc.c: (GST_START_TEST):
* tests/check/pipelines/vorbisenc.c: (GST_START_TEST):
* tests/examples/seek/scrubby.c: (make_wav_pipeline):
* tests/examples/seek/seek.c: (make_mod_pipeline),
(make_dv_pipeline), (make_wav_pipeline), (make_flac_pipeline),
(make_sid_pipeline), (make_parse_pipeline), (make_vorbis_pipeline),
(make_theora_pipeline), (make_vorbis_theora_pipeline),
(make_avi_msmpeg4v3_mp3_pipeline), (make_mp3_pipeline),
(make_avi_pipeline), (make_mpeg_pipeline), (make_mpegnt_pipeline),
(update_fill), (msg_buffering):
Don't use bad gst_element_get_pad().
2008-05-21 16:36:50 +00:00
Wim Taymans
d8dc371c0d ext/gnomevfs/gstgnomevfssrc.*: Set the ICY caps on the srcpad from where they get picked up by the base class now and...
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_init),
(gst_gnome_vfs_src_finalize),
(gst_gnome_vfs_src_received_headers_callback),
(gst_gnome_vfs_src_create), (gst_gnome_vfs_src_stop):
* ext/gnomevfs/gstgnomevfssrc.h:
Set the ICY caps on the srcpad from where they get picked up by the base
class now and set on the outgoing buffers.
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_buffer_new):
BaseSrc now sets the caps on outgoing buffers automatically.
2008-05-20 11:13:27 +00:00
j^
1a154e1d3d ext/ogg/gstoggdemux.*: Parse presentation time from skeleton streams and use it as offset for the timestamps. Fixes b...
Original commit message from CVS:
Patch by: j^ <j at oil21 dot org>
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_parse_skeleton_fishead),
(gst_ogg_pad_parse_skeleton_fisbone):
* ext/ogg/gstoggdemux.h:
Parse presentation time from skeleton streams and use it as offset
for the timestamps. Fixes bug #530068.
2008-05-13 07:28:21 +00:00
Michael Smith
0947ecf74c ext/theora/theoradec.c: Cool kids don't divide by zero.
Original commit message from CVS:
* ext/theora/theoradec.c:
Cool kids don't divide by zero.
Treat PAR of x:0 as 1:1.
Fixes #530719.
2008-04-30 17:06:45 +00:00
Edward Hervey
f75494578e ext/alsa/gstalsadeviceprobe.c: Don't return before freeing up the allocated structures.
Original commit message from CVS:
* ext/alsa/gstalsadeviceprobe.c:
(gst_alsa_get_device_list): Don't return before freeing up
the allocated structures.
2008-04-24 09:27:35 +00:00
Stefan Kost
e133a5f587 ext/ogg/gstoggdemux.c: Revert the event part, that should not go in.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c:
Revert the event part, that should not go in.
2008-04-23 13:50:34 +00:00
Stefan Kost
6706362116 ext/ogg/gstoggdemux.c: Don't leak GstPluginFeatures when filtering.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c:
Don't leak GstPluginFeatures when filtering.
2008-04-23 13:45:29 +00:00
David Schleef
809f8542cf ext/ogg/gstoggmux.c: Update Ogg/Dirac muxing. Removes the weird "KW-DIRAC" bos packet. Should conform to what we cu...
Original commit message from CVS:
* ext/ogg/gstoggmux.c:
Update Ogg/Dirac muxing.  Removes the weird "KW-DIRAC" bos
packet.  Should conform to what we currently think is the
final Ogg/Dirac muxing spec.
2008-04-22 06:18:04 +00:00
Stefan Kost
c9269a777f ext/gnomevfs/gstgnomevfsuri.c: Add FIXME comment about using uri-list for source and sink.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfsuri.c:
Add  FIXME comment about using uri-list for source and sink.
2008-04-21 13:47:06 +00:00
Sebastian Dröge
9587e5e1c0 ext/ogg/gstogmparse.c: GST_TYPE_FRACTION contains gints so correctly cast gint64 arguments to vaargs functions to gin...
Original commit message from CVS:
* ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header):
GST_TYPE_FRACTION contains gints so correctly cast gint64 arguments to
vaargs functions to gint. Otherwise the fractions will get 0 set
instead of the correct value on big endian systems. Fixes bug #529018.
2008-04-20 11:42:37 +00:00
Sebastian Dröge
fb2dc81a97 ext/gnomevfs/: Get the list of supported URI schemes in a threadsafe way and use the same list for the source and sink.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssink.c:
(gst_gnome_vfs_sink_uri_get_protocols):
* ext/gnomevfs/gstgnomevfssrc.c:
(gst_gnome_vfs_src_uri_get_protocols):
* ext/gnomevfs/gstgnomevfsuri.c: (_internal_get_supported_uris),
(gst_gnomevfs_get_supported_uris):
Get the list of supported URI schemes in a threadsafe way and use the
same list for the source and sink.
2008-04-20 10:17:23 +00:00
Sebastian Dröge
9f83e90909 ext/gio/gstgio.c: Don't generate a new supported protocols list on each call but cache it. It's supposed to be static...
Original commit message from CVS:
* ext/gio/gstgio.c: (_internal_get_supported_protocols),
(gst_gio_get_supported_protocols):
Don't generate a new supported protocols list on each call but cache
it. It's supposed to be static anyway, this way we only leak it once
per process.
* ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
(gst_gio_sink_class_init), (gst_gio_sink_finalize),
(gst_gio_sink_set_property), (gst_gio_sink_get_property),
(gst_gio_sink_start):
* ext/gio/gstgiosink.h:
* ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
(gst_gio_src_class_init), (gst_gio_src_finalize),
(gst_gio_src_set_property), (gst_gio_src_get_property),
(gst_gio_src_start):
* ext/gio/gstgiosrc.h:
API: Add "file" properties where one can set a GFile as source/destination.
Add locking to the properties and use gst_element_class_set_details_simple()
instead of a static GstElementDetails struct.
2008-04-20 10:11:54 +00:00
Sebastian Dröge
ee1cf43285 ext/gio/gstgio.c: Return NULL instead of a gchar * array with one NULL element if we don't get any supported URI sche...
Original commit message from CVS:
* ext/gio/gstgio.c: (gst_gio_get_supported_protocols):
Return NULL instead of a gchar * array with one NULL element if we
don't get any supported URI schemes from GIO.
2008-04-17 07:29:28 +00:00
Tim-Philipp Müller
bbbdbc38ba ext/pango/gsttextoverlay.c: Fix textoverlay unit test again by making the supposed default value for the wait-text pr...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init),
(gst_text_overlay_init):
Fix textoverlay unit test again by making the supposed default
value for the wait-text property the actual default value.
Also fix Since: tag for new property.
2008-04-14 17:58:19 +00:00
Sebastian Dröge
99fa2d2e86 ext/gio/gstgio.c: Filter cdda from the supported URI schemes. We can't support musicbrainz tags and everything else o...
Original commit message from CVS:
* ext/gio/gstgio.c: (gst_gio_get_supported_protocols):
Filter cdda from the supported URI schemes. We can't support
musicbrainz tags and everything else one expects from a cdda source
with GIO. Fixes bug #526794.
2008-04-09 08:38:19 +00:00
Tim-Philipp Müller
cbab1f4114 ext/ogg/gstoggmux.c: Fix sample pipeline description.
Original commit message from CVS:
* ext/ogg/gstoggmux.c:
Fix sample pipeline description.
2008-04-03 15:58:37 +00:00
Stefan Kost
b04f8ef354 docs/plugins/: Add playbin, playbin2, decodebin, decodebin2, uridecodebin and oggmux
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
Add playbin, playbin2, decodebin, decodebin2, uridecodebin and oggmux
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
Update introspection data.
* ext/ogg/gstoggmux.c:
Document oggmux.
* gst/playback/gstdecodebin2.c:
Don't use gtk-doc style comment start for private stuff, but make it
formatted like this for consistency.
2008-04-03 14:58:06 +00:00
Wim Taymans
495f45b245 ext/theora/theoradec.c: Don't try to do anything fancy with the return code from pushing an event, it does not have e...
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_type_packet),
(theora_dec_chain):
Don't try to do anything fancy with the return code from pushing an
event, it does not have enough information to turn it into a
GST_FLOW_ERROR.
2008-04-03 10:22:33 +00:00
Wim Taymans
ac5bff82c5 ext/ogg/gstoggdemux.c: Add small debug line.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_reset),
(gst_ogg_demux_chain_elem_pad):
Add small debug line.
Pass return code from the internal decoder instead of the too generic
GST_FLOW_ERROR.
2008-04-03 10:19:43 +00:00
Wim Taymans
996128f268 ext/ogg/gstoggdemux.c: Refix oggdemux, we only have a problem if we failed to find a chain and we are not EOF.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain),
(gst_ogg_demux_read_chain):
Refix oggdemux, we only have a problem if we failed to find a chain and
we are not EOF.
2008-04-02 15:41:50 +00:00
Victor STINNER
38d188e468 ext/ogg/gstoggdemux.c: When we fail to find a BOS page and we and up with no chain, error out properly instead of seg...
Original commit message from CVS:
Patch by: Victor STINNER <victor dot stinner at haypocalc dot com>
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain),
(gst_ogg_demux_read_chain):
When we fail to find a BOS page and we and up with no chain, error out
properly instead of segfaulting. Fixes #525665.
2008-04-02 15:07:01 +00:00
Wim Taymans
9d4543ed67 ext/ogg/gstoggdemux.c: The new-pad-group sequence is add-pads, no-more-pads, add-pads, no-more-pads...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain),
(gst_ogg_demux_read_chain), (gst_ogg_demux_handle_page):
The new-pad-group sequence is add-pads, no-more-pads, add-pads,
no-more-pads...
2008-04-02 14:58:05 +00:00
Tim-Philipp Müller
4e87a5db29 ext/pango/gsttextoverlay.c: Fix Since: version for new property.
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
Fix Since: version for new property.
2008-03-24 17:45:36 +00:00
Wim Taymans
5a473e3e07 ext/pango/gsttextoverlay.*: Add property to configure waiting for text on the textpad or not, with the default behavi...
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init),
(gst_text_overlay_init), (gst_text_overlay_set_property),
(gst_text_overlay_get_property), (gst_text_overlay_src_event),
(gst_text_overlay_text_event), (gst_text_overlay_video_event),
(gst_text_overlay_text_chain), (gst_text_overlay_video_chain),
(gst_text_overlay_change_state):
* ext/pango/gsttextoverlay.h:
Add property to configure waiting for text on the textpad or not, with
the default behaviour being the old one (always wait for text before
rendering the video). This default behaviour is usually not the best one
because the text stream can very sparse and could require queueing a lot
of video.
Fix the flushing and EOS handing so that we don't mix up their meaning.
2008-03-24 12:03:02 +00:00
Sebastian Dröge
fb3216d720 ext/gio/gstgio.c: Correctly set the supported URI schemes and don't leave some schemes in the middle or at the start ...
Original commit message from CVS:
* ext/gio/gstgio.c: (gst_gio_get_supported_protocols):
Correctly set the supported URI schemes and don't leave
some schemes in the middle or at the start at NULL.
2008-03-23 13:41:28 +00:00
Sebastian Dröge
49deb0c05d Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u...
Original commit message from CVS:
* configure.ac:
* ext/alsa/gstalsamixerelement.c:
(gst_alsa_mixer_element_class_init):
* ext/alsa/gstalsasink.c: (gst_alsasink_class_init):
* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_class_init):
* ext/gio/gstgiosink.c: (gst_gio_sink_class_init):
* ext/gio/gstgiosrc.c: (gst_gio_src_class_init):
* ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init):
* ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
* ext/pango/gsttextrender.c: (gst_text_render_class_init):
* ext/theora/theoradec.c: (gst_theora_dec_class_init):
* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init):
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_class_init):
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init):
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init):
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init):
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init):
* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(preroll_unlinked):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init):
* gst/playback/gstplaysink.c: (gst_play_sink_class_init):
* gst/playback/gstqueue2.c: (gst_queue_class_init):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
* gst/playback/gststreamselector.c: (gst_selector_pad_class_init),
(gst_stream_selector_class_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videorate/gstvideorate.c: (gst_video_rate_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
* sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init):
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use
static strings (i.e. all). This gives us less memory usage,
fewer allocations and thus less memory defragmentation. Depend
on core CVS for this. Fixes bug #523806.
2008-03-22 15:00:53 +00:00
Sebastian Dröge
80d17e6e6f ext/gio/gstgio.c: Filter http and https protocols. GIO/GVfs handles them but it's impossible to implement iradio/icec...
Original commit message from CVS:
* ext/gio/gstgio.c: (gst_gio_get_supported_protocols):
Filter http and https protocols. GIO/GVfs handles them but it's
impossible to implement iradio/icecast with it. Better use
souphttpsrc or something else for this.
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size):
If getting the file informations by a query fails try it with the
seek-to-end trick too.
2008-03-22 14:13:55 +00:00
Milosz Derezynski
e97290739d ext/gio/gstgiobasesrc.c: If seeking to a new position succeeds don't simply return from create() without creating a b...
Original commit message from CVS:
Patch by: Milosz Derezynski <internalerror at gmail dot com>
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_create):
If seeking to a new position succeeds don't simply return from
create() without creating a buffer. Do this only in the case
seeking to the new position fails. Fixes bug #523054.
2008-03-17 22:06:56 +00:00
Michael Smith
15e209d20e gst-libs/gst/audio/gstringbuffer.*: Rename recently added buffer types to make more sense.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_parse_caps):
* gst-libs/gst/audio/gstringbuffer.h:
Rename recently added buffer types to make more sense.
* ext/alsa/gstalsasink.c: (alsasink_parse_spec),
(gst_alsasink_write):
Adapt for above API changes.
Fixes bug #520523.
2008-03-12 12:39:13 +00:00
Sebastian Dröge
ec7afb6f84 Correct all relevant warnings found by the sparse semantic code analyzer. This include marking several symbols static...
Original commit message from CVS:
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_get_type):
* ext/alsa/gstalsasink.c: (set_hwparams):
* ext/alsa/gstalsasrc.c: (set_hwparams):
* ext/gio/gstgio.c: (gst_gio_uri_handler_get_uri):
* ext/ogg/gstoggmux.h:
* ext/ogg/gstogmparse.c:
* gst-libs/gst/audio/audio.c:
* gst-libs/gst/fft/kiss_fft_f64.c: (kiss_fft_f64_alloc):
* gst-libs/gst/pbutils/missing-plugins.c:
(gst_missing_uri_sink_message_new),
(gst_missing_element_message_new),
(gst_missing_decoder_message_new),
(gst_missing_encoder_message_new):
* gst-libs/gst/rtp/gstbasertppayload.c:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_packet_bye_get_reason):
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/ffmpegcolorspace/imgconvert.c:
* gst/playback/test.c: (gen_video_element), (gen_audio_element):
* gst/typefind/gsttypefindfunctions.c:
* gst/videoscale/vs_4tap.c:
* gst/videoscale/vs_4tap.h:
* sys/v4l/gstv4lelement.c:
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_any_caps):
* sys/v4l/v4l_calls.c:
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init),
(gst_v4lsrc_try_capture):
* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
(gst_ximagesink_ximage_new):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new):
* tests/check/elements/audioconvert.c:
* tests/check/elements/audioresample.c:
(fail_unless_perfect_stream):
* tests/check/elements/audiotestsrc.c: (setup_audiotestsrc):
* tests/check/elements/decodebin.c:
* tests/check/elements/gdpdepay.c: (setup_gdpdepay),
(setup_gdpdepay_streamheader):
* tests/check/elements/gdppay.c: (setup_gdppay), (GST_START_TEST),
(setup_gdppay_streamheader):
* tests/check/elements/gnomevfssink.c: (setup_gnomevfssink):
* tests/check/elements/multifdsink.c: (setup_multifdsink):
* tests/check/elements/textoverlay.c:
* tests/check/elements/videorate.c: (setup_videorate):
* tests/check/elements/videotestsrc.c: (setup_videotestsrc):
* tests/check/elements/volume.c: (setup_volume):
* tests/check/elements/vorbisdec.c: (setup_vorbisdec):
* tests/check/elements/vorbistag.c:
* tests/check/generic/clock-selection.c:
* tests/check/generic/states.c: (setup), (teardown):
* tests/check/libs/cddabasesrc.c:
* tests/check/libs/video.c:
* tests/check/pipelines/gio.c:
* tests/check/pipelines/oggmux.c:
* tests/check/pipelines/simple-launch-lines.c:
(simple_launch_lines_suite):
* tests/check/pipelines/streamheader.c:
* tests/check/pipelines/theoraenc.c:
* tests/check/pipelines/vorbisdec.c:
* tests/check/pipelines/vorbisenc.c:
* tests/examples/seek/scrubby.c:
* tests/examples/seek/seek.c: (query_positions_elems),
(query_positions_pads):
* tests/icles/stress-xoverlay.c: (myclock):
Correct all relevant warnings found by the sparse semantic code
analyzer. This include marking several symbols static, using
NULL instead of 0 for pointers and using "foo (void)" instead
of "foo ()" for declarations.
* win32/common/libgstrtp.def:
Add gst_rtp_buffer_set_extension_data to the symbol definition file.
2008-03-03 06:04:31 +00:00
Julien Moutte
f0154849b0 ext/alsa/gstalsa.c: Probe for IEC958 pcm to detect if we can do SPDIF output.
Original commit message from CVS:
2008-02-29  Julien Moutte  <julien@fluendo.com>

* ext/alsa/gstalsa.c: (gst_alsa_open_iec958_pcm),
(gst_alsa_probe_supported_formats): Probe for IEC958 pcm to
detect
if we can do SPDIF output.
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsasink.c: (set_hwparams), (alsasink_parse_spec),
(gst_alsasink_prepare), (gst_alsasink_close),
(gst_alsasink_write):
* ext/alsa/gstalsasink.h: Initial support for SPDIF.
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_parse_caps):
* gst-libs/gst/audio/gstringbuffer.h: Add non linear buffer
types
to support AC3, EC3 and IEC958 buffers.
2008-02-29 18:44:36 +00:00
Wim Taymans
bdf20026e8 ext/libvisual/visual.c: When negotiating, actually start from a format that we can support instead of from the too ge...
Original commit message from CVS:
* ext/libvisual/visual.c: (gst_vis_src_negotiate):
When negotiating, actually start from a format that we can support
instead of from the too generic template.
2008-02-29 14:52:02 +00:00
Sebastian Dröge
185614e387 ext/gnomevfs/gstgnomevfssink.c: Return FALSE when seeking for a new segment fails instead of silently ignoring the fa...
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssink.c:
(gst_gnome_vfs_sink_handle_event):
Return FALSE when seeking for a new segment fails instead
of silently ignoring the failure and appending every buffer
that comes for the new segment.
2008-02-20 15:37:36 +00:00
Sebastian Dröge
1d9cd2a5b3 ext/gio/: Don't use async operations as they require a running main loop.
Original commit message from CVS:
* ext/gio/gstgiobasesink.c: (gst_gio_base_sink_stop),
(gst_gio_base_sink_set_stream):
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_stop),
(gst_gio_base_src_set_stream):
* ext/gio/gstgiosink.c: (gst_gio_sink_start):
* ext/gio/gstgiosrc.c: (gst_gio_src_start):
Don't use async operations as they require a running main loop.
This makes us block again when closing streams and unable
to mount the enclosing volume of an URI if it isn't yet.
2008-02-17 05:15:45 +00:00
Sebastian Dröge
a8a8d689c9 ext/gio/: Improve debugging a bit.
Original commit message from CVS:
* ext/gio/gstgiobasesink.c: (close_stream_cb):
* ext/gio/gstgiobasesrc.c: (close_stream_cb):
Improve debugging a bit.
* ext/gio/gstgiosink.c: (mount_cb), (gst_gio_sink_start):
* ext/gio/gstgiosink.h:
* ext/gio/gstgiosrc.c: (mount_cb), (gst_gio_src_start):
* ext/gio/gstgiosrc.h:
Try to mount the enclosing volume of a GFile if it isn't mounted
yet. This requires us to wait for an async operation to finish, done
with an nested GMainLoop. Authentication is not supported yet, will
come later.
2008-02-15 11:58:06 +00:00
Tommi Myöhänen
19ee588d64 ext/alsa/gstalsasink.c: Add some more debug info.
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* ext/alsa/gstalsasink.c: (set_hwparams), (gst_alsasink_delay):
Add some more debug info.
Make sure we never return a negative delay. Fixes #516246.
2008-02-13 14:34:55 +00:00
Tim-Philipp Müller
20081431d1 ext/alsa/gstalsasink.c: Revert patch that makes the sink hold the object lock when calling snd_pcm_delay(), since it ...
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsasink_delay):
Revert patch that makes the sink hold the object lock when
calling snd_pcm_delay(), since it breaks playback for me.
2008-02-12 20:09:07 +00:00
Sebastian Dröge
8b9f044b70 ext/gio/: Add documentation and example code for giostreamsink/giostreamsrc.
Original commit message from CVS:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
Add documentation and example code for giostreamsink/giostreamsrc.
* tests/check/pipelines/gio.c: (GST_START_TEST):
Ask the GMemoryOutputStream for the data instead of assuming that
the pointer to the data stayed the same. It could've been realloc'ed.
2008-02-12 09:24:11 +00:00
Sebastian Dröge
9313ee92fd ext/gio/: Make the documentation of giosink/giosrc complete, large parts are based on the gnomevfssink/gnomevfssrc docs.
Original commit message from CVS:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
Make the documentation of giosink/giosrc complete, large parts
are based on the gnomevfssink/gnomevfssrc docs.
2008-02-12 08:55:57 +00:00
Tim-Philipp Müller
5f1cc19bef ext/alsa/: Don't use snd_pcm_sw_params_set_xfer_align() if we're compiling against libasound >= 1.0.16, since it's be...
Original commit message from CVS:
* ext/alsa/gstalsa.h: (GST_CHECK_ALSA_VERSION):
* ext/alsa/gstalsasink.c: (set_swparams):
* ext/alsa/gstalsasrc.c: (set_swparams), (gst_alsasrc_open):
Don't use snd_pcm_sw_params_set_xfer_align() if we're compiling
against libasound >= 1.0.16, since it's been deprecated in
0.10.16, and alignment is always 1 then, apparently. (#512899)
2008-02-11 20:23:44 +00:00
Tim-Philipp Müller
cb873f9527 ext/gnomevfs/: Add support for https protocol. Fixes #510229.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_check_get_range):
* ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris):
Add support for https protocol. Fixes #510229.
2008-02-11 18:02:13 +00:00
Alan Peevers
f2f327d181 ext/alsa/gstalsasink.c: Take appropriate lock when calling alsa methods.
Original commit message from CVS:
2008-02-11  Julien Moutte  <julien@fluendo.com>

Patch by: Alan Peevers <peeves@pacbell.net>

* ext/alsa/gstalsasink.c: (gst_alsasink_delay): Take appropriate
lock when calling alsa methods.
2008-02-11 17:03:18 +00:00