Commit graph

685 commits

Author SHA1 Message Date
Lauri Lehtinen
c86d662b23 basecamerabinsrc: Handle errors from preview pipeline
Implements a message handling function to preview pipeline bus.
If GST_MESSAGE_ERROR is seen, considers preview pipeline unable
to do its job and posts an error message to application.

Sets pipeline element to NULL so that subsequent calls to post_preview
and set_caps functions just returns without pushing anything to the
disposed preview pipeline. Leaves further actions to the application.
2011-05-16 18:08:39 -03:00
Lauri Lehtinen
802028081c basecamerabinsrc: Protection for previewpipeline when setting new preview caps
Implements a state indicating flag to preview pipeline,
so that new caps are not set if the pipeline is processing a
preview. The caps are set as pending and applied when the
next preview post is called.

In this case a wait was implemented in the post_preview function,
so that new preview image buffer will wait until the other previews
have been posted to the application and the new caps can be used
safely.
2011-05-16 18:08:39 -03:00
Mark Nauwelaerts
9b6e819247 basevideodecoder: handle missing framerate when calculating timestamp 2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
cfe85ad780 basevideodecoder: debug code style fixes 2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
2f6af91f09 basevideodecoder: tune parsing sink caps into video state
... to provide subclass with more information w.r.t. original caps.
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
380a443be4 basevideodecoder: video state reference to codec_data is not refcounted
... but rather implicitly valid as long as sink caps are not modified.
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
a1825bd5e2 basevideodecoder: improve glitch resilience
Provide a replacement for GST_ELEMENT_ERROR to avoid aborting at the first
atom out of place, while on the other hand not failing indefinitely.
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
1588ed321c basevideodecoder: reverse playback support 2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
1d99e8eafa basevideodecoder: use basevideocodec discont field 2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
1b151caf11 basevideodecoder: really and only set src pad caps whenever requested
... since subclass is expected to be wise enough to know when to do so.
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
550237347b basevideodecoder: add some sanity enforcing 2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
f72658435b basevideodecoder: add documentation
... and remove some more stray unused code and methods.
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
04f4a583dd basevideocodec: fully free video frame 2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
a085acb586 basevideodecoder: streamline discont, flush and reset handling
... which is not to say there is no room for further tweaking ...
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
444b169188 basevideodecoder: add some header commentary 2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
cfc65b14b1 basevideodecoder: remove (almost) unused fields
... and also some more unused code.
2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
f591361d2f basevideodecoder: invoke subclass start method at state change and use set_format
While this changes API slightly (e.g. actually uses set_format now), 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
* otherwise no subclass method at state change (global activation time)
Moreover, subclassese are either unaffected or trivially adjusted accordingly.
2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
04a34b4ab7 basevideodecoder: fixup tweak 2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
39fb2fa74a basevideodecoder: add and tweak debug statements 2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
fc705cf8fd basevideodecoder: arrange for limited legacy seeking support
In particular, tweak src query and event handling to provide for
byte <-> time conversion.
2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
3bd16a48b4 basevideo: cater for format conversion 2011-05-16 20:32:22 +02:00
Mark Nauwelaerts
5af2f6f40e videocodec: remove unused fields and code 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
4311909a53 basevideodecoder: fix copy-and-paste variable misnomer 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
7862d9ed35 basevideodecoder: subsume skip_frame into finish_frame 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
0230143cb8 basevideodecoder: remove unused code 2011-05-16 20:32:21 +02:00
Mark Nauwelaerts
8defa8cb49 basevideodecoder: code cleanup and debug style fixes 2011-05-16 20:32:21 +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
02a065e406 basevideoencoder: header cosmetic and doc fixes 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
adbbe36408 basevideocodec: debug style fixes 2011-05-16 20:32:19 +02:00
Mark Nauwelaerts
1659e7dfcf basevideocodec: remove unused code cluttering up the place
Also minor debug style fixes.
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
Andoni Morales Alastruey
85703b8886 basevideencoder: Fix use after free after state change transition 2011-05-14 12:08:40 +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
David Schleef
aa02a4074f basevideo: Check if caps are set directly
Fixes #647854.
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
Tim-Philipp Müller
c9ef416fa7 basecamerasrc: add unstable-API warnings if GST_USE_UNSTABLE_API is not defined
So people know this is unstable API even if it ends up right next
to our other API.
2011-04-14 16:14:57 +01:00