Commit graph

281 commits

Author SHA1 Message Date
Wim Taymans
0d44940076 theoradec: use _check_reconfigure method 2011-06-13 12:15:33 +02:00
Wim Taymans
1c8324a0d1 update for bufferpool api change 2011-06-11 18:54:44 +02:00
Wim Taymans
9778d5dac7 update for alignment change 2011-06-10 18:04:29 +02:00
Wim Taymans
2940249a84 -base: use caps event
Remove uses of setcaps function and use the caps event.
2011-06-07 11:55:36 +02:00
Wim Taymans
c88ee10c9b Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-06-06 16:27:12 +02:00
Luis de Bethencourt
8b18508778 theora: separate encode and push block in chain, into own function. 2011-06-04 10:10:54 +02:00
Wim Taymans
ff071135cb thoeraenc: port to 0.11 2011-06-03 13:35:49 +02:00
Wim Taymans
b1aec14767 Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-06-03 13:31:42 +02:00
Luis de Bethencourt
407b77740e theora: use fixed src cap pads 2011-06-03 08:00:58 +02:00
Luis de Bethencourt
1ce538d912 theora: set the width/height/par on the srcpad caps 2011-06-03 08:00:53 +02:00
Luis de Bethencourt
ddfc8357a8 theora: get sink caps info from downstream element pad
https://bugzilla.gnome.org/show_bug.cgi?id=651564
2011-06-03 08:00:48 +02:00
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