Commit graph

1448 commits

Author SHA1 Message Date
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