Commit graph

51 commits

Author SHA1 Message Date
Alessandro Decina
16ce440e7f basevideoencoder: handle failures in start() and stop() 2011-10-31 11:38:58 +01:00
Vincent Penquerc'h
8a044de701 basevideoenc: do not try to calculate latency from an unknown framerate
It'll divide by zero, and latency is unknown for an unknown framerate.

Fixes an assert in the schroenc test.

https://bugzilla.gnome.org/show_bug.cgi?id=657419
2011-09-05 12:08:00 +02:00
Vincent Penquerc'h
f3cb4439cf basevideoencoder: fix element leak
and this concludes an hour of yelling at the bloody test failing,
only to track down the problem not being in the test.

https://bugzilla.gnome.org/show_bug.cgi?id=657368
2011-08-26 10:25:46 +02:00
Sebastian Dröge
8c743fbc0f basevideo: Fix locking, especially if both pads have different streaming threads 2011-08-18 10:23:32 +02:00
Sebastian Dröge
a081501a90 basevideo: Don't call g_type_class_peek_parent() in class_init
This is already done by the GObject boilerplate macro
2011-08-18 10:15:20 +02:00
Sebastian Dröge
d576e23aa4 basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream
This allows to specify constraints on the compressed downstream caps
by muxers or capsfilters, which will then be forwarded to upstream
and allows video converters to fulfill the constraints.

Code based on Mark Nauwelaerts audio encoder base class.
2011-08-12 12:25:03 +02:00
Sebastian Dröge
4a76d3a978 basevideoencoder: Remove ::get_caps() vfunc
Subclasses can set the caps more efficiently and this only
caused additional indirections.
2011-08-12 12:06:23 +02:00
Sebastian Dröge
ce0655c275 basevideoencoder: Make access to the list of frames threadsafe 2011-08-03 09:41:20 +02:00
Sebastian Dröge
976d372f9b basevideoencoder: Allow finishing of frames with no src_buffer to drop/free the GstVideoFrame 2011-07-21 08:09:11 +02:00
Sebastian Dröge
e5be8aa8ff basevideoencoder: Only get caps from the subclass if they were not set yet by the subclass 2011-07-21 08:09:11 +02:00
Sebastian Dröge
b2525a3044 basevideoencoder: Delay sending of serialized sink events until finish_frame() 2011-07-21 08:09:11 +02:00
Sebastian Dröge
f011e59943 basevideoencoder: Add ::reset vfunc and handle ::reset/::finish the same way as in the decoder 2011-07-21 08:09:10 +02:00
Sebastian Dröge
2dbd24ca84 basevideoencoder: Use a temporary GstVideoState until the subclass accepted the caps
Also store the caps in the GstVideoState and assume a PAR of 1/1 instead
of 0/1 if no PAR is specified in the caps.
2011-07-19 12:52:31 +02:00
Sebastian Dröge
e61d3d1a0c basevideo: Move the utils from the codec header to its own header 2011-07-09 11:40:17 +02:00
Debarshi Ray
03bb5dc8ba Remove unused but set variables
This is needed to satisfy the new -Wunused-but-set-variable added in
GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html
2011-05-30 22:52:03 +10:00
Mark Nauwelaerts
04f4a583dd basevideocodec: fully free video frame 2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
3bd16a48b4 basevideo: cater for format conversion 2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
576fb1b4cb basevideoencoder: pass along buffer discont flag 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
ef4bceabbb basevideoencoder: implement preset interface 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
5a8bc266c8 basevideoencoder: add documentation and related cosmetics 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
d15b8c7ad3 basevideoencoder: provide proper upstream flow return handling 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
d0753dec9b basevideoencoder: enhance set_caps
Specifically, only invoke set_format if incoming format really changed,
and finish current format if so (and if any current).
2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
d68288b597 basevideoencoder: elaborate finish to draining 2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
4b5623d687 basevideoencoder: invoke subclass start method at state change
While this changes order w.r.t. set_format, which is OK for unstable API,
it has following merits:
* symmetric w.r.t. stop at state change
* in line with other base class practice
* little benefit in invoking 2 subclass virtual methods (set_format and start)
  in immediate succession; all actions in the second could be done in the first
  whereas subclass has no chance to do anything 'global' at activation time
Moreover, current -bad subclass relevant methods either trivially commute
or are either trivially adjusted accordingly.
2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
d567fa2834 basevideoencoder: enable clipping by default 2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
3f0824b699 basevideoencoder: reset more state 2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
b0c982db5b basevideocodec: remove redundant caps field
... as it is already at hand as the src pad's negotiated caps.
2011-05-16 20:32:20 +02:00
Mark Nauwelaerts
8aa9d83eb4 basevideoencoder: remove unused code 2011-05-16 20:32:19 +02:00
Mark Nauwelaerts
294cecbc69 basevideoencoder: add event virtual method to allow subclass event handling 2011-05-16 20:32:19 +02:00
Mark Nauwelaerts
16c6a49bd4 basevideoencoder: improve GstForceKeyUnit event handling 2011-05-16 20:32:19 +02:00
Mark Nauwelaerts
72a32afc65 basevideoencoder: simplify negotiated checking
... by avoiding some extraneous (un)ref'ing.
2011-05-16 20:32:19 +02:00
Mark Nauwelaerts
dd118538e9 basevideoencoder: code cleanup and some debug
Also add some minor locking and remove unused bits.
2011-05-16 20:32:19 +02:00
David Schleef
50e1a73bbc basevideoencoder: Don't allow buffers after EOS
Fixes #647852.
2011-04-24 19:40:08 -07:00
David Schleef
4f432e09fa basevideo: Don't duplicate code in basevideocodec
Both basevideoencoder and basevideocodec were setting
system_frame_number, leading to confusion.  Fixes #647853.
2011-04-24 19:40:08 -07:00
Tim-Philipp Müller
fb67a0d126 basevideo: fix unused-but-set-variable warnings with gcc 4.6 2011-04-14 16:49:18 +01:00
David Schleef
3ada35cc0e basevideo: merge utils header into basevideocodec 2011-03-23 21:33:49 -07:00
David Schleef
fe50055715 basevideo: Move common fields/functions to basecodec 2010-10-15 16:30:57 -07:00
David Schleef
db43b033ae basevideo: Add handling of GstForceKeyUnit events 2010-09-20 12:34:46 -07:00
David Schleef
af7ae41646 basevideo: remove gst_base_video_state_from_caps 2010-06-02 19:28:16 -07:00
David Schleef
c295354da5 basevideo: use debug category for each class 2010-06-02 19:28:16 -07:00
David Schleef
9564562fe8 basevideo: make printf formats portable 2010-06-02 12:16:56 -07:00
David Schleef
bdb5926cda basevideo: Move base video from vp8 to gst-libs 2010-06-02 00:01:10 -07:00
Josep Torra
2f603bc241 basevideo: fix warnings in macosx snow leopard 2009-10-11 11:14:16 +02:00
David Schleef
76f489c595 basevideo: Revert "Call GstBaseVideoEncoder::start/stop during pad [de]activation."
This reverts commit 4c087bcb07.
The reverted commit changes the order that set_format() and start()
are called, which is incorrect.  The correct order is set_format(),
start(), handle_frame()..., stop()
2009-10-05 17:07:36 -07:00
David Schleef
7496a84ea0 basevideo: Free frame using utility function 2009-10-05 13:34:30 -07:00
David Schleef
1ee3b51ee0 dirac: convert to BaseVideoEncoder 2009-10-02 22:10:07 -07:00
Alessandro Decina
a6f616c1ee Don't ignore the value returned from GstBaseVideoEncoder::set_format. 2009-10-02 12:14:07 +02:00
Alessandro Decina
867cb76b21 Unref frame->sink_buffer in gst_base_video_encoder_finish_frame 2009-10-02 12:14:06 +02:00
Alessandro Decina
40d832918a Make GstBaseVideoEncoder::handle_frame return GstFlowReturn 2009-10-02 12:14:06 +02:00
Alessandro Decina
4c087bcb07 Call GstBaseVideoEncoder::start/stop during pad [de]activation. 2009-10-02 12:14:06 +02:00