Luis de Bethencourt
407b77740e
theora: use fixed src cap pads
2011-06-03 08:00:58 +02:00
Luis de Bethencourt
1ce538d912
theora: set the width/height/par on the srcpad caps
2011-06-03 08:00:53 +02:00
Luis de Bethencourt
ddfc8357a8
theora: get sink caps info from downstream element pad
...
https://bugzilla.gnome.org/show_bug.cgi?id=651564
2011-06-03 08:00:48 +02:00
Sebastian Dröge
bf08ca7020
Merge branch 'master' into 0.11
2011-05-26 13:54:09 +02:00
Stefan Kost
41b60ca83a
theoraenc: remove bogus <0 check for unsigned var
...
bytes_written is a gsize which is unsigned and thus never < 0.
2011-05-25 15:26:13 +03:00
Stefan Kost
af29082e94
theoraenc: fix variable type for bytes_consumed
...
th_encode_ctl() returns an int. Using a gsize result in bogus <0 checks.
2011-05-25 15:26:13 +03:00
Wim Taymans
3b35a83688
theoradec: handle reconfigure events
...
Handle the caps with the caps event.
Handle the reconfigure event and renegotiate the bufferpool when needed.
2011-05-24 10:46:48 +02:00
Sebastian Dröge
884213b8b8
base: Update for SEGMENT event parse API changes
2011-05-18 17:23:18 +02:00
Sebastian Dröge
318ed07598
Revert "-base_port to new query API"
...
This reverts commit c9f4e0676b
.
2011-05-17 11:25:31 +02:00
Sebastian Dröge
c276eec54e
theora: Update for negotiation related API changes
2011-05-16 15:35:41 +02:00
Wim Taymans
94dfe80f71
-base: port to new SEGMENT API
2011-05-16 13:48:11 +02:00
Wim Taymans
c9f4e0676b
-base_port to new query API
2011-05-10 18:39:07 +02:00
Wim Taymans
bdb4676455
qos: _qos_full -> _qos
2011-05-09 18:53:03 +02:00
Wim Taymans
816f4e791d
segment: fix for new core API
...
Fix for gst_*_segment_full rename.
2011-05-09 18:16:46 +02:00
Wim Taymans
5acab64178
theora/vorbis: use default pad handler
...
Use the default pad event handler because we are not supposed to pass on CAPS
events.
2011-05-09 15:37:09 +02:00
Wim Taymans
ec57868488
-base: don't use buffer caps
...
Port to newest 0.11 core API, remove GST_PAD_CAPS and GST_BUFFER_CAPS.
2011-05-09 13:05:12 +02:00
Wim Taymans
abcbef287d
plugins: fix for allocation query API change
2011-05-02 11:11:33 +02:00
Wim Taymans
d6f8fb62c5
theoradec: use bufferpool
2011-04-29 16:52:23 +02:00
Wim Taymans
86a4771f8e
remove buffer_alloc
2011-04-29 13:28:17 +02:00
Sebastian Dröge
353186aec8
ext: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
2011-04-19 14:22:42 +02:00
Wim Taymans
4007076b55
Merge branch 'master' into 0.11
...
Conflicts:
ext/theora/gsttheoraenc.c
2011-04-06 16:33:56 +02:00
Mark Nauwelaerts
9cf76f114f
theoraenc: refactor multipass file writing
2011-04-06 12:26:11 +02:00
Wim Taymans
248ab2d064
Fix for latest API changes
2011-03-30 16:50:45 +02:00
Wim Taymans
eba165191f
theora: port to new memory API
2011-03-27 20:15:46 +02:00
Wim Taymans
f379a5dacb
plugins: more porting to new memory API
2011-03-27 18:30:24 +02:00
David Schleef
9745a41ea3
theoraenc: move debug category init earlier
2011-02-17 18:29:56 -08:00
David Schleef
f499810bdc
theoraenc: Set speed level while running
2011-02-17 18:29:56 -08:00
Ralph Giles
d467eb708a
Set the theoraenc speed-level property from libtheora's defaults.
...
The speed-level property, which allows callers to trade of encoding
quality for speed in the libtheora api, has a version-dependent
maximum and default values. Instead of hardcoding the acceptable
range for the theoraenc element's presentation of this setting,
we query the library directly at class initialization time and
set the maximum and default values from that. If the query fails,
we fall back to the previous default setting.
To keep the values reported by gst-inspect (which I'm told use
the spec values from the class) with those available on an\
instantiated element, we remove to setting of enc->speed_level
from the initializer and instead pass G_PARAM_CONSTRUCT to
the property spec flags, asking g_object to set this property
when theoraenc objects are constructed.
NB in theory the maximum speed-level could depend on the actual
video caps. If later versions of libtheoraenc do this, a second
call will need to be made from theora_enc_reset to update the
property, since this function is mostly useful for realtime
adjustment of performance while the pipeline is running.
2011-02-17 18:29:56 -08:00
Sjoerd Simons
46f3e7c6fd
theoraenc: Don't reset the video quality setting the bitrate
...
libtheora has two encoding modes, CBR, where it tries to hit a target
bitrate and VBR where it tries to achieve a target quality.
Internally if the target bitrate is set to anything other then 0 the
encoding-mode is CBR.
This means that the gstreamer element can leave the video_quality
setting alone as long as the user is tweaking the bitrate. Which has the
nice side-effect that if the user explicitely sets the bitrate to 0
(which is actually the default), the quality value doesn't get reset and
one ends up encoding VBR at quality-level 0...
2011-02-14 16:03:56 +01:00
Tim-Philipp Müller
9805bdfcc8
theoraenc: clean up property descriptions
...
Remove "This property requires libtheora version >= 1.1" qualifiers
from property descriptions. They aren't needed any longer now that
we require libtheora >= 1.1.
2011-02-01 16:08:13 +00:00
Stefan Kost
83c14483ed
various: add a missing G_PARAM_STATIC_STRINGS flag to object properties
2010-10-13 16:13:31 +03:00
Tim-Philipp Müller
a044b62cf5
theoradec: expose telemetry properties only if libtheora was compiled with --enable-telemetry
...
Since this is just a debugging feature and libtheora will usually not be
compiled with that option enabled, we should maybe just hide these properties,
since they won't work anyway, and avoid confusing warnings.
Also rename properties to make them less cryptic.
https://bugzilla.gnome.org/show_bug.cgi?id=628488
2010-10-10 18:20:46 +01:00
Alexey Fisher
ab52e15e3d
theoradec: add properties to enable debugging telemetry overlay
...
The theora decoder can overlay debugging information on the output
video. This functionality is only available if libtheora has been
compiled with --enable-telemetry. For more details see:
http://people.xiph.org/~xiphmont/demo/theora/demo2.html
Based on original patch by Michael Smith <msmith at xiph org>
https://bugzilla.gnome.org/show_bug.cgi?id=628488
2010-10-10 18:20:46 +01:00
Wim Taymans
88cf7a2156
parse: Don't error on discont
...
We don't need to error out when we detect a discontinuity.
2010-10-04 17:27:00 +02:00
Wim Taymans
3d26fc3d8f
theoraparse: set caps on streamheader too
2010-10-04 17:09:39 +02:00
David Schleef
71f89ac092
theoraenc: ptalarbvorm speed level goes to 3
2010-09-24 21:30:44 -07:00
Olivier Crête
91f89f490c
theoraenc: Make the bitrate/quality dynamically modifiable
...
https://bugzilla.gnome.org/show_bug.cgi?id=630303
2010-09-22 11:41:13 -04:00
Sebastian Dröge
c95d0034af
theoraenc: Implement two pass encoding
...
Fixes bug #621349 .
2010-07-16 17:40:12 +02:00
Sebastian Dröge
5318e71b4d
configure: Require libtheora >= 1.1
...
It's more than a year old at the time of the next -base release,
has many encoder and decoder improvements and gets us rid of a lot
of #ifdefs
2010-07-16 17:39:22 +02:00
Sebastian Dröge
ecea88e0d2
theora: Use PROP_ instead of ARG_ for property enum values
2010-07-16 17:39:22 +02:00
David Schleef
681721466d
theoraenc: 0-length packets are delta units
2010-03-29 20:54:46 -07:00
Wim Taymans
9c8c93806d
theoradec: add QoS messages to the decoder
...
Post QoS messages when we drop a frame because of QoS.
2010-03-19 15:37:04 +01:00
Benjamin Otte
3bd4aa26ff
Add -Wwrite-strings to configure
...
Fixes for the code included
2010-03-16 17:41:51 +01:00
Benjamin Otte
5e21fa5e0e
gst_element_class_set_details => gst_element_class_set_details_simple
...
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
David Schleef
ed438e5539
theoradec: add chroma-site to caps
2010-03-15 01:34:09 -07:00
David Schleef
085d7e20bd
theoradec: add color-matrix to caps
2010-03-14 19:10:16 -07:00
Benjamin Otte
3a7d632a59
Add -Wredundant-decls to warning flags
...
... and fix all the warnings that flag throws.
2010-03-11 15:38:18 +01:00
Benjamin Otte
43b1683421
Add -Wmissing-declarations -Wmissing-prototypes to warning flags
...
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Benjamin Otte
1ad8d6ee03
theora: Fix SIGFPE when using 0/1 framerate
...
libtheora crashes with a 0 framerate, so let's forbid it.
https://bugzilla.redhat.com/show_bug.cgi?id=571289
2010-03-08 22:28:27 +01:00
David Schleef
5685e0a4b7
theoradec: Fix chroma copying for 4:2:2
...
Fix mixup of height/width, causing only half the chroma lines to
be copied when outputting buffers. Fixes : #610329 .
2010-02-17 21:30:29 -08:00
Benjamin M. Schwartz
a09d9fdece
theoradec: PARs of 0:x, x:0 and 0:0 are all allowed and map to 1:1
...
Fixes #609252 .
2010-02-08 11:21:35 +01:00
Sebastian Dröge
82f3adaa9b
theora: Rename source files to have the same name as the headers
2010-01-14 10:10:23 +01:00
David Schleef
b3c15a340a
theoraenc: Add encoder controls for libtheora 1.1
...
Added drop-frames, cap-overflow, cap-underflow, and rate-buffer.
2009-12-20 17:34:46 -08:00
Wim Taymans
1a7c8c7919
theoradec: fix query
2009-12-09 17:24:01 +01:00
Wim Taymans
f1fdf5d3e4
theoradec: small cleanups
2009-12-09 16:55:52 +01:00
Wim Taymans
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
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
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
Tim-Philipp Müller
34e6718da9
theoradec: printf format fix
2009-11-05 23:34:10 +00:00
David Schleef
61d08884d3
theora: Convert theoraparse to libtheora 1.0 API
2009-10-23 17:49:48 -07: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
13ab7e7929
theora: fixes warnings on macosx snow leopard
2009-10-09 18:52:12 +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
Jan Schmidt
39c21352e9
theoraenc: Fix a string leak in _getcaps()
2009-09-12 02:24:49 +01: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
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
David Schleef
f1e142ac9d
theora: Convert theoradec to libtheora 1.0 API
2009-08-06 13:45:56 -07: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
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
Michael Smith
94ca1b005e
theoradec: for 4:2:2, use Y42B (planar) rather than a packed format.
2009-05-18 22:34:22 -07:00
Sebastian Dröge
bcd0aee3f5
theoraenc: Implement Preset interface
2009-05-15 16:27:40 +02:00
Christian Schaller
705e7750c5
Add ranks to the Oggmuxer, Vorbis encoder and Theora encoder
2009-05-12 12:17:55 +01: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
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