Commit graph

118 commits

Author SHA1 Message Date
Lasse Laukkanen
2c4417dabc camerabin: proxy video source photography interface property notify signals
If photography interface properties change in video source, notify the
application by emitting notify for respective camerabin properties.
2010-04-13 12:00:32 -03:00
Lasse Laukkanen
2c05df08b2 camerabin: add api to query supported image capture resolution
Adds new property 'image-capture-supported-caps' to GstPhotography
to query the supported image capture caps.
Also implement it in camerabin.
2010-04-13 12:00:31 -03:00
René Stadler
e2438e6cf1 camerabin: rename function and variable names, update documentation
Get rid of user_* prefix internally, use app_* instead.
2010-04-13 12:00:31 -03:00
Lasse Laukkanen
d25a9ca8aa camerabin: add video-source-filter property
Add video-source-filter property that can be used to inject application
specific gstreamer element to camerabin pipeline. The video-source-filter
element will process all frames coming from video source.

One could add image analyzers to collect information about the stream,
or add image enhancers to improve capture quality, for example.
2010-04-13 12:00:30 -03:00
Lasse Laukkanen
1c74f22264 camerabin: don't try adapting image capture resolution if no source-resize flag
If source-resize flag is disabled then set resolution to image capture caps
according to capture resolution video source element produces. Otherwise we
write wrong resolution to image metadata.
2010-04-12 16:10:49 +03:00
Lasse Laukkanen
d7a0f1f997 camerabin: Fix capturing flag handling after image has been captured
Make sure capturing flag is unset and image-captured message is sent
before sending eos event to image bin and saving the image to a file.
2010-04-12 16:07:36 +03:00
Lasse Laukkanen
c6f6f1b595 camerabin: fix setting filter-caps property in NULL state
Split _set_capsfilter_caps() into two parts so that we can call one part
regardless of the element state.
2010-04-12 16:06:07 +03:00
Lasse Laukkanen
1b10553f90 camerabin: improve image done signal emission
Use g_idle_add_full() with G_PRIORITY_HIGH to emit image done signal,
g_idle_add() is more likely to starve with higher priority events.
2010-04-12 15:15:22 +03:00
Benjamin Otte
b7655bbd2e Add -Wredundant-decls flag
and fix warnings from it
2010-03-22 12:05:59 +01:00
Benjamin Otte
775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Mark Nauwelaerts
6631f50d59 camerabin: activate video bin before feeding data to it
Fixes #612615.
2010-03-12 19:30:48 +01:00
Lasse Laukkanen
190d54b096 camerabin: refactor cropping and adapting captured images 2010-03-11 10:36:27 +02:00
Teemu Katajisto
341d91520a camerabin: fix NULL -> READY state change failure handling.
In some error situations the NULL -> READY state change failed
and camerabin elements were not destroyed.
2010-03-11 10:36:26 +02:00
Stefan Kost
b0533bfdff camerabin: don't log NULL caps, also downgrade to DEBUG as it is very verbose
This debug log entry was also not ment to be used in the failure case.
2010-01-28 14:57:50 +02:00
Teemu Katajisto
62ddc73623 camerabin: photography interface properties. Fixes #573370 (partially)
Added GObject properties to photography interface and implemented
them in camerabin. Changed zooming to check if video-source has
zoom property.
2009-11-27 15:10:57 +02:00
Teemu Katajisto
7dac3659c6 camerabin: add flags property. Fixes #573370 (partially)
Adds flags property to enable runtime configuration of
conversion and scaling elements. Also adds flag for disabling
audio completely.
2009-11-27 11:42:36 +02:00
Stefan Kost
8c0203ec36 camerabin: remove abbreviations from the property names. Fixes #573370 (partialy)
Also rename their use in tests and examples.
2009-10-24 15:14:26 +03:00
Stefan Kost
b890ecd83c camerabin: code cleanups
Align element initialisation. This should be re-thought, g_object_new zeros things already.
Harmonize the element getters for the src/sinks to return what we actualy use.
2009-10-24 15:14:26 +03:00
Tommi Myöhänen
fe70981023 camerabin: implement video preview creation
Completes preview creation mechanism to be able to provide a preview
image for video clips too.
2009-10-24 15:14:25 +03:00
Stefan Kost
52e314ef81 camerabin: set camerabin default sources/sinks like in playbin2. Fixes #574434
This uses same approach like in playbin, namely checking for user defined
element, auto{audio,video}{sink,src} and finally DEFAULT_{AUDIO,VIDEO}{SRC,SINK}
defines from config.h.
2009-10-24 15:14:25 +03:00
Lasse Laukkanen
a0a4032ce8 camerabin: fix deadlock when error occurs at video recording startup 2009-10-01 18:06:55 +03:00
Tommi Myöhänen
0d48f73532 camerabin: handle preview-caps only in image mode and only when they change
This prevents camerabin to create preview pipeline every time when
application re-sets the same caps again.
2009-10-01 18:06:55 +03:00
Tommi Myöhänen
99f1f4510a camerabin: don't send multiple EOS events to video pipeline 2009-10-01 18:06:54 +03:00
Tommi Myöhänen
dc267be4f7 camerabin: allow mode parameter setting in NULL state 2009-10-01 18:06:54 +03:00
Tommi Myöhänen
dacdd5d6c9 camerabin: allow capture resolution to be set in NULL state 2009-10-01 18:06:54 +03:00
Tommi Myöhänen
0f2be803b4 camerabin: fix image queue parameter setting
Camerabin incorrectly used G_GUINT64_CONSTANT macro for setting
"max-size-buffers" and "max-size-bytes" properties in image queue,
even when they aren't 64bit integers.
2009-10-01 18:06:53 +03:00
Tommi Myöhänen
3f90a4acfa camerabin: fix warning with g_object_get and join separate g_object_sets into one 2009-10-01 18:06:53 +03:00
Tommi Myöhänen
b2fc088c84 camerabin: reset active-pad in output-selector after READY state
Camerabin sets itself to READY state during resolution change. This
operation makes output-selector to forget its currently active pad,
so it must be set again after state change.
2009-10-01 18:06:53 +03:00
Lasse Laukkanen
7b62e11412 camerabin: don't reset capsfilters or zoom if error occurs
If an error occurs, application should set pipeline to NULL, and updating
zoom can actually block message handling if video device driver has failed
and video src element supports zooming using photography interface and S_CROP.
2009-10-01 18:06:53 +03:00
Tommi Myöhänen
89788ddc1f camerabin: Set camerasrc to READY state instead of PAUSED when acquiring allowed caps 2009-07-31 14:07:24 +03:00
Tommi Myöhänen
01a7532900 camerabin: do not put video pipeline into READY when start recording camerabin: remember probe IDs and disconnect them when destroying pipelines 2009-07-28 09:53:22 +03:00
Stefan Kost
43657ef1f3 camerabin: small speedup in software zoom
Force crop on even pixel position to avoid slowpath in crop & scale.
2009-07-21 17:52:33 +03:00
Stefan Kost
4ef918df28 camerabin: use gst_caps_replace instead of separate calls
This fixes setting snapshot caps back to NULL also.
2009-07-17 15:50:19 +03:00
Stefan Kost
ff3ef9a92a camerabin: leave image/video bin in ready when changing mode 2009-07-15 11:20:30 +03:00
Stefan Kost
3d6d1c2ed2 camerabin: code cleanups
Downgrade a WARNING to INFO. Use a bit more compact code. Add a fixme comment.
2009-06-26 18:36:26 +03:00
Stefan Kost
59bfe55110 camerabin: just ref caps, we don't need a writable copy 2009-06-26 18:36:25 +03:00
Stefan Kost
df14237dba camerabin: no need to ref and unref this temporarily 2009-06-26 18:36:25 +03:00
Stefan Kost
c9208657b1 camerabin: don't leak sink_caps if they would be any-caps 2009-06-26 18:36:25 +03:00
Stefan Kost
a5e9a5eebc camerabin: don't leak preview images 2009-06-26 18:36:25 +03:00
Stefan Kost
9a692cf602 camerabin: don't leak viewfinder-caps 2009-06-26 18:36:25 +03:00
Stefan Kost
e673b099d4 camerabin: don't leak requestpads
Requestpads need to be released and unreffed. Add a comment in one case where
we intentionaly don't unref.
2009-06-25 19:34:28 +03:00
Lasse Laukkanen
c3abf1b267 camerabin: buffer-alloc support fixes to image and video bin handling
Keep image bin in PAUSED state in image mode except when processing/saving (PLAYING/READY).
Change output-selector to view finder before setting video bin to READY.
Fix filename sent with img-done signal.
2009-06-24 19:01:01 +03:00
Lasse Laukkanen
8a39d28002 camerabin: set image bin to PAUSED when starting capture
Set image bin to PAUSED also when starting capture using photography
interface.
2009-06-24 18:58:16 +03:00
Lasse Laukkanen
a265e4d2b3 camerabin: leave v4l2camsrc "capture-mode" as video mode when pausing 2009-06-24 18:58:16 +03:00
Stefan Kost
a971391906 camerabin: code cruft removal and debug logs
Remove unused code. Add lots of debug loging. Change comments for local
functions to not use /** gtk-doc start style.
2009-06-22 13:41:16 +03:00
Stefan Kost
80408b1de2 camerabin: set imagebin to PAUSED on capture and delayed filename setting
We need to set imagebin to PAUSED to not fail the bufferalloc. We also need to
keep the filesinks state locked until we have the filename for the run.
2009-06-14 10:56:30 +03:00
Lasse Laukkanen
6a47f6f594 camerabin: preview image sending optimization
* decouple image capturing from image post-processing and encoding
 * post image-captured message after image is captured
 * post preview-image message with snapshot of captured image
2009-06-05 15:51:31 +03:00
Lasse Laukkanen
430f343522 camerabin: unblock if error occurs during capture 2009-06-05 15:51:31 +03:00
Lasse Laukkanen
cbcd4e3330 camerabin: stop ongoing capture if changing resolution 2009-06-05 15:51:30 +03:00
Lasse Laukkanen
3ff7128293 camerabin: don't proxy gst xoverlay interface
Default view finder sink in camerabin is autovideosink which doesn't
support xoverlay iface. If application decides to use another sink
that supports xoverlay, then it can use the interface directly.
2009-06-05 15:51:30 +03:00
Lasse Laukkanen
710faaef68 camerabin: allow configuring photography settings when in NULL state
Cache the photography settings if set in NULL state and apply them later
2009-06-05 15:51:30 +03:00
Lasse Laukkanen
53e6e4b0d5 camerabin: crop still image capture frame if necessary
If incoming still image capture frame aspect ratio differs from aspect
ratio that application requested, then apply crop to the frame.
2009-06-05 15:51:30 +03:00
Lasse Laukkanen
78b208125a camerabin: clean up and fix assertion fail when setting zoom in NULL state 2009-04-16 16:08:42 +03:00
Lasse Laukkanen
9b0fa11a5d camerabin: fix format matching when detecting allowed frame rate 2009-04-16 16:08:41 +03:00
Lasse Laukkanen
0847a84f41 camerabin: don't lose pending state when changing resolution 2009-04-16 16:08:40 +03:00
Lasse Laukkanen
65ddcd6d5d camerabin: change img-done signal parameter from GString* to const gchar*
Don't allow setting filename via img-done signal parameter but force app
use filename property. Don't stop capture when setting filename property.
Update check unit test based on the change.
2009-04-16 15:19:20 +03:00
Jan Schmidt
81a950ddf8 camerabin: Make the tests pass when the camerabin can't initialise.
The camerabin tests were throwing glib errors and hanging when
gst-plugins-good elements (jpegenc, videocrop) can't found.
2009-03-07 00:31:07 +00:00
Stefan Kost
fab9dfa5d0 camerabin: rework signaling and tests
Revert the GString change. There are no marshallers for it. A better change is
now described in http://bugzilla.gnome.org/show_bug.cgi?id=573370.
Test should work again.
2009-02-27 12:35:14 +02:00
Stefan Kost
53f975f63c docs: various doc fixes
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
2009-02-25 12:42:36 +02:00
Stefan Kost
518d98899e camerabin: update signal marshaller and docs
Use GString instead of GPointer for the marshaller as this is what the callback uses.
Slightly reformat docs.
2009-02-25 11:41:36 +02:00
Lasse Laukkanen
c81bce2b21 camerabin: unblock correct pad in reset, support fakesink as view finder 2009-02-25 10:45:19 +02:00
Lasse Laukkanen
bde8707b65 camerabin: Add aspect ratio capsfilter for view finder
If dealing with larger frame sizes than view finder sink element
accepts then maintain aspect ratio when scaling frames to fit.
2009-02-23 14:20:13 +02:00
Lasse Laukkanen
24d99bbe56 camerabin: Scale incoming frames if their size does not match requested size
If capture preparation in videosrc results in frame size different
from requested size, then we need to scale them.
2009-02-23 14:20:12 +02:00
Andoni Morales
7992233522 camerabin: Fix compilation on Windows with Visual Studio
Windows doesn't have strcasecmp so we should use
g_ascii_strcasecmp here instead.

Also Windows doesn't have sys/time.h so we first
need to check if it actually exists and if not
we should not include it.

Fixes bug #572315.
2009-02-22 18:41:08 +01:00
René Stadler
ff2d0621f7 camerabin: Sanitize constants used for element factory names. 2009-02-11 01:59:39 +02:00
René Stadler
6675318107 camerabin: Use v4l2src as default source. 2009-02-11 01:59:39 +02:00
René Stadler
d821246de6 camerabin: Fix plugin details to use GST_PACKAGE_* values. 2009-02-11 00:19:22 +02:00
Nokia Corporation
3751eaeb79 Add camerabin element. 2009-02-09 10:22:09 +02:00