Commit graph

27 commits

Author SHA1 Message Date
Matej Knopp
30005be2e5 basevideo: Make GstVideoFrame a reference counted boxed object
...and also clear all existing frames when resetting the decoder or encoder.
2011-12-12 14:24:47 +01:00
Alessandro Decina
247e410df0 basevideoencoder: handle failures in start() and stop() 2011-12-08 11:56:58 +01:00
Vincent Penquerc'h
f27ca88ecc 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-12-08 11:55:03 +01:00
Sebastian Dröge
8e662fffb0 basevideoencoder: Only make the header buffer metadata writable, not the buffer 2011-12-08 11:50:49 +01:00
Sebastian Dröge
9ea6e7d2f2 basevideoencoder: Fix handling of force-keyunit events 2011-12-08 10:18:36 +01:00
Sebastian Dröge
458199abfb basevideoencoder: Pass the all-headers field of the force-key-unit event to the subclass 2011-11-29 12:20:09 +01:00
Sebastian Dröge
3cb4bbe97e basevideoencoder: Implement full support for the new force-key-unit event
Including support for the running-time and count fields.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
11b2dea82d basevideoencoder: Use new force-keyunit event API from gst-plugins-base 2011-11-29 12:20:09 +01:00
Sebastian Dröge
77db7e5780 basevideoencoder: Adjusting padding is not required for -bad libraries 2011-11-29 12:20:09 +01:00
Sebastian Dröge
050700d561 basevideoencoder: Make headers metadata writable before pushing downstream
The timestamp, duration, etc of the headers has to be changed.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
1f3f8c9dc5 basevideoencoder: Push the downstream force-keyframe event after the next keyframe
Even if the corresponding GstVideoFrame doesn't have the is_sync_point
flag set.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
38b3f1ac00 basevideoencoder: Don't push an upstream force-keyunit event downstream 2011-11-29 12:20:09 +01:00
Jonas Larsson
36d2a21aa3 basevideoencoder: Add initial support for the all-headers field of the force-keyframe event
See bug #607742.
2011-11-29 12:20:09 +01:00
Sebastian Dröge
cc50d894af basevideoencoder: Only call ::reset once in READY->PAUSED 2011-11-17 10:34:19 -08:00
Vincent Penquerc'h
fa2dff1ad6 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:27:16 +02:00
Sebastian Dröge
58104f9ce5 basevideo: Fix locking, especially if both pads have different streaming threads 2011-08-18 10:02:50 +02:00
Sebastian Dröge
d439d8c337 basevideo: Don't call g_type_class_peek_parent() in class_init
This is already done by the GObject boilerplate macro
2011-08-18 09:42:02 +02:00
Sebastian Dröge
b673e37546 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:30:07 +02:00
Sebastian Dröge
f91a4e53db basevideoencoder: Remove ::get_caps() vfunc
Subclasses can set the caps more efficiently and this only
caused additional indirections.
2011-08-12 12:30:07 +02:00
Sebastian Dröge
624c2b4fdb basevideoencoder: Make access to the list of frames threadsafe 2011-08-02 15:14:24 +02:00
Sebastian Dröge
34da745dc5 basevideoencoder: Allow finishing of frames with no src_buffer to drop/free the GstVideoFrame 2011-07-21 07:44:10 +02:00
Sebastian Dröge
9619d9c95d basevideoencoder: Only get caps from the subclass if they were not set yet by the subclass 2011-07-20 11:08:18 +02:00
Sebastian Dröge
fdd049a41c basevideoencoder: Delay sending of serialized sink events until finish_frame() 2011-07-20 11:08:18 +02:00
Sebastian Dröge
159093cd6a basevideoencoder: Add ::reset vfunc and handle ::reset/::finish the same way as in the decoder 2011-07-20 11:08:18 +02:00
Sebastian Dröge
92643716e4 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-20 08:19:01 +02:00
Sebastian Dröge
0d724f58f2 basevideo: Move the utils from the codec header to its own header 2011-07-09 11:41:42 +02:00
Sebastian Dröge
93a675b570 basevideo: Add video encoder/decoder base classes from gst-plugins-bad 2011-07-06 08:42:15 +02:00