Sebastian Dröge
d5205bb0fa
textoverlay: Proxy buffer allocation on the video sinkpad to the srcpad
2009-12-09 09:36:26 +01:00
Wim Taymans
1818d795ee
theora: remove granulepos hacks
...
Remove the granulepos hacking now that oggdemux outputs timestamps like any
other demuxer.
2009-12-08 17:37:56 +01:00
Wim Taymans
1ad0e4342e
oggdemux: improve keyframe seeking
...
Improve keyframe seeking.
Fix reverse playback.
2009-12-07 18:49:43 +01:00
Wim Taymans
c53cd385e3
oggdemux: implement keyframe seeking
...
Implement keyframe seeking in oggdemux by doing the double seek trick. First
seek to the required position, then read pages for all streams to grab the
granulepos (to know the timing of the keyframe) of each stream, then seek back
to the first keyframe.
2009-12-07 15:42:05 +01:00
Wim Taymans
56d3856620
oggdemux: fix timestamps after seek
...
After a seek, discard all packets before the packet with the granulepos on it so
that the output buffers contain valid timestamps.
Reorder some code so that we check the timestamps before allocating and pushing
an output buffer.
Do more checks on valid packets in ogm mode.
2009-12-04 16:35:09 +01:00
Wim Taymans
eb4fc976e5
oggdemux: add comment
2009-12-04 15:39:59 +01:00
Wim Taymans
9e222a385c
oggdemux: don't do math with invalid granulepos
...
When the current granulepos is unknown and set to -1, don't try to add durations
to it.
2009-12-04 14:01:11 +01:00
Wim Taymans
96e1c4dbe6
oggdemux: guard against wrong granulepos
...
Clamp the initial granulepos to 0 instead of going negative for some badly muxed
ogg files.
2009-12-04 13:14:57 +01:00
Wim Taymans
05f4605180
theoradec: don't fail on bogus granulepos
...
Do some additional checks on the granulpos timestamp before using it for
calculating the duration because oggdemux generates wrong granulepos now.
Fixes seeking somewhat again.
2009-12-04 12:26:47 +01:00
David Schleef
8bbe0d126a
oggdemux: reimplement OGM support
...
OGM demuxing no longer requires helper elements. It's done internally
in oggdemux. Vorbis comments are still not handled because I don't
have anything to test with.
2009-12-03 20:05:29 -08:00
David Schleef
4378851102
oggdemux: fix for I-frame-only theora
2009-12-03 17:02:11 -08:00
Tim-Philipp Müller
fb07615baa
ogg: log when ogg mapper doesn't accept the setup header packet
2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
8195c26a08
ogg: extract width, height and PAR from theora header and add to caps
2009-12-03 23:43:29 +00:00
Tim-Philipp Müller
295b6c0326
ogg: extract number of channels from FLAC, speex and vorbis headers
...
Because we can.
2009-12-03 23:43:09 +00:00
Tim-Philipp Müller
2752ae841e
ogg: more print fixes
...
gstoggstream.c:419: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘gint64’
gstoggdemux.c:2253: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
gstoggdemux.c:2333: error: format ‘%lld’ expects type ‘long long int’, but argument 8 has type ‘GstClockTime’
2009-12-03 21:08:42 +00:00
Thiago Santos
098e416ebc
ogg: Fixing some printf format strings
...
Fixes some printf format strings to make it build on mac.
2009-12-03 16:57:48 -03:00
David Schleef
d2c9d7fc1c
oggdemux: handle theora streams with 0 keyoffset
2009-11-26 14:16:28 -08:00
David Schleef
a8e99f80df
oggdemux: Handle unknown streams
2009-11-26 14:16:28 -08:00
Sebastian Dröge
8393257732
Revert "textoverlay: First draw outline text and then the real text"
...
This reverts commit 60aa09d28c
.
First drawing the real text and then the outline produces ugly
text in lower resolutions. The outline line width needs to be somehow
changed relative to the resolution. Fixes bug #602924 .
2009-11-26 14:31:55 +01:00
David Schleef
9339cec787
oggdemux: Reset last_granule during seeking
...
Fix case where we would reconstruct the wrong granulepos for
outgoing streams immediately after a seek.
2009-11-25 00:46:55 -08:00
David Schleef
8c202593c6
oggdemux: Fix timestamp generation for theora
...
Timestamp generation was broken by the last commit for formats
with a non-zero granule shift. Also keep track of the last keyframe
so that we can regenerate granulepos for theora.
2009-11-24 22:08:09 -08:00
David Schleef
78aad52cbf
oggdemux: Fix vorbis parsing
...
Add a granule to granulepos conversion function. Fix the duration
function for vorbis. Handle timestamps on header packets differently
and be more careful about calculating OFFSET and OFFSET_END. After
this change, timestamps for vorbis don't exactly match up with the
timestamps that vorbisparse outputs, but it's unclear if vorbisparse
is actually correct and it would add a lot more code to make oggdemux
match vorbisparse. Fixes #602790 .
2009-11-24 21:22:03 -08:00
David Schleef
ab0d802781
ogg: Fix generation of timestamps and durations
...
After changing some internal functions, I forgot to update
the code that puts the values on the buffers.
2009-11-21 22:05:34 +01:00
David Schleef
72edd1467b
ogg: Add ogg stream parsing
...
Adds code that parses headers of various formats encapsulated in
Ogg in order to calculate timestamps and durations of each buffer.
Removes the creation of helper decoder elements to do this calculation
via conversion queries.
Fixes : #344013 , #568014 .
2009-11-21 19:40:42 +01:00
David Schleef
3019ebb107
oggmux: don't overwrite object properties
2009-11-21 19:40:42 +01:00
Stefan Kost
f8abb8cf15
debug: also cast packet.packetno to gint64 in debug log
...
We do this already for granulepos to handle ogg_int64_t mismatches.
2009-11-21 17:54:49 +02:00
Olivier Crête
05aa195981
theoradec: Keep timestamp from incoming buffer if it is valid
...
Fixes bug #601627 .
2009-11-12 13:18:02 +01:00
David Schleef
dcf556893f
theora: Fix alignment of frames when converting
...
Fix logic inversion in calculating the offset in the theora
frame when copying to a GStreamer frame.
2009-11-09 11:18:27 -08:00
Sebastian Dröge
45cefdefa6
textoverlay: Synchronize video/text based on the running time
...
Instead of simply using the buffer timestamps.
2009-11-06 12:11:21 +01:00
Sebastian Dröge
8ed8d5e414
textoverlay: Clip text buffers to the text segment and reset segments properly
2009-11-06 12:11:21 +01:00
Sebastian Dröge
d941a9f6a6
textoverlay: Put the video segment into the instance struct instead of allocating it separately
2009-11-06 12:11:20 +01:00
Sebastian Dröge
8692174b50
textoverlay: Check if text timestamp/duration is valid before clipping
2009-11-06 12:11:20 +01:00
Tim-Philipp Müller
34e6718da9
theoradec: printf format fix
2009-11-05 23:34:10 +00:00
Sebastian Dröge
60aa09d28c
textoverlay: First draw outline text and then the real text
...
Improves the output a bit because no parts of the outline are
overwritten again.
2009-11-03 08:26:37 +01:00
Tim-Philipp Müller
6f4c1ac583
Remove GST_DEBUG_FUNCPTR where they're pointless
...
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
David Schleef
61d08884d3
theora: Convert theoraparse to libtheora 1.0 API
2009-10-23 17:49:48 -07:00
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