Commit graph

3774 commits

Author SHA1 Message Date
Mark Nauwelaerts
1664b3000f h263parse: update to latest baseparse 2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
46308f8c53 h263parse: shuffle code to untangle h263parse and parameter parsing 2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
daed6713db h263parse: provide for proper debug category, min frame size and code style 2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
5ad0a3c641 h263parse: remove redundant get_caps
.. as src pad already set to use fixed_caps
2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
0e6fbe2420 h263parse: simplify valid_frame parsing
... considering that baseparse takes care of skipping etc
2011-01-28 12:16:59 +01:00
Arun Raghavan
b33b88e4bb h263parse: Add an h263parse element
This adds an h263parse element for parsing H.263 streams, breaking them
up into frame-sized buffers, and exporting metadata such as profile and
level.

https://bugzilla.gnome.org/show_bug.cgi?id=622276
2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
8e4b8b813d ac3parse: improve handling of dependent substream frames
In particular, timestamps of these should track main-stream timestamps.
2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
7f805f17b2 baseparse: tune default duration estimate update interval
Rather than a fixed default frame count, estimate frame count to aim for
an interval duration depending on fps if available, otherwise use old
fixed default.
2011-01-28 12:16:59 +01:00
Mark Nauwelaerts
479865c1b3 baseparse: reverse playback; mind keyframes for fragment boundary 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
57babfca39 amrparse: properly check for sufficient available data prior to access 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
3ba3339993 baseparse: ensure non-empty candidate frames 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
ac8080f003 baseparse: clarify some debug statements 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
16342223ee baseparse: properly track upstream timestamps
... rather than with a delay.
2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
b97e560f1a baseparse: need proper frame duration to obtain sensible frame bitrate 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
559b3ead93 baseparse: proper initial values for index tracking variables 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
f3da619dd2 baseparse: arrange for consistent event handling 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
18b347296c baseparse: header style cleaning 2011-01-28 12:16:58 +01:00
Mark Nauwelaerts
2c872ad913 baseparse: provide some more initial frame metadata in parse_frame
... and document accordingly.
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
6a45c4f65e baseparse: refactor passthrough into format flags
Also add a format flag to signal baseparse that subclass/format can provide
(parsed) timestamp rather than an estimated one.  In particular, such "strong"
timestamp then allows to e.g. determine duration.
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
1c89488c50 baseparse: introduce a baseparse frame to serve as context
... and adjust subclass parsers accordingly
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
400198b2cd baseparse: restrict duration scanning to pull mode and avoid extra set_caps call 2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
3e9d5c4bf8 baseparse: update some documentation
Also add some more debug.
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
829507b650 baseparse: allow increasing min_size for current frame parsing only
Also check that subclass actually either directs to skip bytes or
increases expected frame size to avoid going nowhere in bogus
indefinite looping.
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
18b69e9320 baesparse: fix refactor regression in loop based parsing 2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
f4f7306e37 baseparse: pass all available data to subclass rather than minimum
Also reduce some adapter calls and add a few debug statements.
2011-01-28 12:16:57 +01:00
Mark Nauwelaerts
e54e2a9616 baseparse: fix reverse playback handling 2011-01-28 12:16:56 +01:00
Mark Nauwelaerts
695c9599f4 baseparse: minor typo and debug statement cleanup 2011-01-28 12:16:56 +01:00
Mark Nauwelaerts
fcd0f5cb7a baseparse: reduce locking
... which is either already mute and/or implicitly handled by STREAM_LOCK.
2011-01-28 12:16:56 +01:00
Thiago Santos
68bff61732 camerabin2: Do not forget to unref some stuff
Cleanup properly by unrefing the encoding profile and preview caps
2011-01-26 14:31:13 -03:00
Thiago Santos
b66dde5746 camerabin2: Add names to some elements
Adds names to instances of some elements to make debugging easier
2011-01-26 14:31:13 -03:00
Thiago Santos
6395b45908 camerabin2: Handle videosink states more carefully
When going to ready, camerabin2 could create an empty file
if the videosink was put to ready. This patch only puts videosink
to ready on the PAUSED_TO_READY state change if it is on PAUSED
or PLAYING.
2011-01-26 14:31:12 -03:00
Mark Nauwelaerts
3da135ce02 baseparse: avoid loop in frame locating interpolation 2011-01-26 17:16:49 +01:00
Thiago Santos
25062fc384 wrappercamerabinsrc: Remove unused macro 2011-01-24 18:36:58 -03:00
Thiago Santos
a791f5070c wrappercamerabinsrc: Check the start time of buffers
Be careful when trying to create a newsegment event to avoid
start times of -1 from invalid buffer timestamps
2011-01-24 18:05:20 -03:00
Vincent Penquerc'h
c3d05d6006 dvdspu: don't write clipped lines to the output buffer
We may not increment the output pointer, but it'll still be just
off the end of the allocated area.

https://bugzilla.gnome.org/show_bug.cgi?id=602847
2011-01-24 19:47:46 +01:00
Thiago Santos
4ec3189575 camerabin2: Update porting file
Adds porting information about using encodebin on camerabin2
2011-01-24 14:50:30 -03:00
Thiago Santos
bccae0f994 camerabin2: Add image-done message
Post an image-done message when a new image is saved to disk
2011-01-24 14:50:30 -03:00
Thiago Santos
a715b46c7f camerabin2: Implement tagsetter interface 2011-01-24 14:50:30 -03:00
Thiago Santos
ccb1960a42 camerabin2: Add a property to select the encoding profile
Adds a video-profile to allow selecting which encoding profile
to use for video recordings
2011-01-24 14:50:29 -03:00
Thiago Santos
e5f267f682 camerabin2: Removing videorecordingbin
Removing videorecordingbin as we now use encodebin for it
2011-01-24 14:50:29 -03:00
Thiago Santos
f1d02cf0c0 camerabin2: Move to encodebin 2011-01-24 14:50:29 -03:00
Thiago Santos
31dbc2eeba wrappercamerabinsrc: Set output-selector pad-negotiation-mode to none
Use output-selector none negotiation mode as it was the default before
the last changes. This likely needs to be fixed to use 'active' on
camerabin2
2011-01-24 14:50:29 -03:00
Thiago Santos
3a495eaafc wrappercamerabinsrc: Handle state change failures
When its internal element fails to change state, don't act as
if succeeded.
2011-01-24 14:50:29 -03:00
Thiago Santos
9863feb328 camerabin2: Implement previewing
Implement previewing functionality using 2 properties. A boolean
(post-previews) that indicates if previews should be posted, and a
GstCaps (preview-caps) to provide the desired preview caps.

wrappercamerabinsrc implements previewing by supplying the captured
image to a pipeline to adapt it to the required caps before posting.
2011-01-24 14:50:29 -03:00
Thiago Santos
aa671439e1 camerabin2: Add methods for preview image message posting
Adds a helper struct and functions for implementing a preview message
in camerabin2.
2011-01-24 14:50:29 -03:00
Thiago Santos
bc1f57a645 wrappercamerabinsrc: Use drop_eos function from camerabingeneral
There was already a event probe function for dropping EOS on
camerabingenereal, so use that instead of replicating the code
2011-01-24 14:50:28 -03:00
Thiago Santos
0b3ad60269 camerabin: add names for more elements 2011-01-24 11:07:28 -03:00
Mark Nauwelaerts
289cd65abd flacparse: mind gst_buffer_unref not liking NULL
Fixes #639950.
2011-01-19 18:41:59 +01:00
Thiago Santos
cbbdfee98a mxfdemux: Fix unitialized variable warning 2011-01-18 18:18:03 -03:00
Thiago Santos
a6a982e8be audioparsers: baseparse: Be careful to not lose the event ref
Don't unref the event if it hasn't been handled, because the caller
assumes it is still valid and might reuse it.

I ran into this problem when transcoding an AVI (with mp3 inside)
to gpp.

https://bugzilla.gnome.org/show_bug.cgi?id=639555
2011-01-15 13:48:26 -03:00
Mark Nauwelaerts
b496bf923c qtmux: set src pads when starting file
... rather than at _init time, so they are also available following a
pad (de)activation cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=639338
2011-01-14 00:38:56 +00:00
Luciana Fujii Pontello
b55775a9d3 camerabin: Enable conversion flags
Camerabin default should just work, so we need to enable audio, image
and video conversions.

https://bugzilla.gnome.org/show_bug.cgi?id=639456
2011-01-13 18:15:13 -03:00
Tim-Philipp Müller
aba0899b19 dcaparse: fix sync word for 14-bit little endian coding
Fix copy'n'paste bug that made us look for the raw little endian
sync word twice instead of looking for the 14-bit LE sync word
as well. Fixes parsing of such streams (see #636234 for sample file).
2011-01-13 17:10:13 +00:00
Tim-Philipp Müller
095eaa1752 docs: minor baseparse docs/comment fixes
Remove copy'n'paste leftovers.
2011-01-13 16:28:24 +00:00
Teemu Katajisto
85a355fd84 camerabin: set pad-negotiation-mode to active for output-selector
Fixes #639413.
2011-01-13 15:00:21 +02:00
Stefan Kost
f9dfd1effb asfmux: use g_error_free instead of g_free 2011-01-12 16:56:28 +02:00
Edward Hervey
a2b5e7863e y4mdec: Default colorspace is I420
https://bugzilla.gnome.org/show_bug.cgi?id=639296
2011-01-12 12:00:24 +01:00
Edward Hervey
ee0c9ae2f3 mpegtspacketizer: Don't forget the GType when using caps_new_simple() 2011-01-10 19:11:22 +01:00
Tim-Philipp Müller
d4441a3025 mpegtsdemux: fix silly way of creating caps 2011-01-10 11:25:47 +00:00
Karol Sobczak
0b4dfa685d mpegtsdemux: fix re-syncing on invalid data after seek
Or possibly even at startup. If we couldn't find a sync within
the first few bytes, we'd just push more data into the adapter
but never discard any of the invalid data at the beginning, so
would never be able to re-sync.

https://bugzilla.gnome.org/show_bug.cgi?id=639063
2011-01-10 11:18:52 +00:00
Tim-Philipp Müller
b700377e22 camerabin: use private input-selector that still has "select-all" property
The "select-all" property was removed when input-selector was moved
to core, but camerabin uses this, so make camerabin use a private
copy until a better fix is found.
2011-01-08 02:43:41 +00:00
Tim-Philipp Müller
f6591e5938 smoothwave: remove old 0.8 example containing code with sideeffects in g_return_if_fail()
May just as well remove it rather than fix it, so it doesn't show
up in greps for this any longer.
2011-01-08 00:20:35 +00:00
Tim-Philipp Müller
e5f1cdd0e9 Revert "mpegvideoparse: fix timestamp generation"
This reverts commit 2271608c43.

This patch needs more work so it doesn't cause grave playback
regressions (multi-second freezes) with some files that have
slightly broken timestamps but play fine everywhere else.

https://bugzilla.gnome.org/show_bug.cgi?id=636279
https://bugzilla.gnome.org/show_bug.cgi?id=632222
2011-01-07 18:49:02 +00:00
Tim-Philipp Müller
89fed534e8 mpegtsdemux: fix PAT and PMT info-related object leaks 2011-01-07 02:12:11 +00:00
Edward Hervey
6b9e2628b7 jpegparse: Fix unitialized variable on macosx 2011-01-06 12:51:27 +01:00
Edward Hervey
0a55306c40 jp2kdecimator: Fix unitialized variables on macosx 2011-01-06 12:50:14 +01:00
Edward Hervey
063be2f972 flacparse: Fix unitialized variable on macosx 2011-01-06 12:49:43 +01:00
David Schleef
84406fde30 y4mdec: Fix copyright 2011-01-05 18:27:14 -08:00
Edward Hervey
c627cd40e7 y4m: Fix unitialized variables on macosx 2011-01-05 16:43:45 +01:00
Tim-Philipp Müller
ed8e27b237 dvbsuboverlay: some more minor clean-ups 2011-01-05 13:44:04 +00:00
Janne Grunau
43bfb0009a dvbsuboverlay: fix leak of "clear screen" DVBSubtitles structs 2011-01-04 15:06:17 +00:00
Janne Grunau
9f02f693de dvbsuboverlay: fix two minor deinitialization memory leaks 2011-01-04 13:51:55 +00:00
Tim-Philipp Müller
eec67aeee6 camerabin2: fix cflags and libs order in Makefile.am 2011-01-03 23:49:51 +00:00
Janne Grunau
994156c1b8 dvbsuboverlay: remove unnecessary RGB -> YUV conversion by using YUV palettes
the default CLUTs still use RGB -> YUV conversions since the standard defines
them as RGBA values.
2011-01-03 20:23:24 +00:00
Mark Nauwelaerts
38c9342978 qtmux: adjust nasty case timestamp tracking
That is, all sorts of problems arise with re-ordered input timestamps that
tend to defy automagic handling for every case, so allow for a few variations
that can be tried depending on circumstances.

Also try to document accordingly.

Also fixes #638288.
2011-01-03 17:40:52 +01:00
Felipe Contreras
460785352c qtmux: get rid of timestamp overprotectiveness
Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
2011-01-03 17:40:52 +01:00
Mark Nauwelaerts
cd690c2bc3 qtmux: simplify and fix pts_offset storing
In particular, only write a ctts atom if and only if ever a non-zero offset.
2011-01-03 17:40:52 +01:00
Mark Nauwelaerts
8f174304ee qtmux: add some more documentation 2011-01-03 17:40:51 +01:00
Mark Nauwelaerts
1ff6806cd4 qtmux: remove large-file property
Rather, auto-determine if 64-bits fields are needed for a valid result, and
stick to plain 32-bits if not needed.

API: GstQTMux:large-file (removed)
2011-01-03 17:40:51 +01:00
David Schleef
73d85fa438 colorspace: Disable matrixing on big-endian
It's broken until someone writes better Orc code.  Fixes #631232.
2011-01-02 16:13:56 -08:00
David Schleef
94f6f34ace mpegtsmux: Set adaptation flag when appropriate
Specifically, when there's stuff to go into the adaptation
header.
2011-01-02 14:52:34 -08:00
David Schleef
ea113a79aa mpegtsmux: Set random_access_indicator for keyframes 2011-01-02 14:52:34 -08:00
Tim-Philipp Müller
21fb0dc586 gaudieffects: dist python examples 2011-01-02 13:30:11 +00:00
David Schleef
68493aadab dtmf: Fix build failure caused by previous commit 2010-12-31 00:37:30 -08:00
David Schleef
edd1f791ca mpegdemux: Fix c99-ism 2010-12-30 19:25:46 -08:00
David Schleef
04c44d18c9 legacyresample: Use math-compat header 2010-12-30 19:25:46 -08:00
David Schleef
2f5c92f1c8 change M_PI to G_PI 2010-12-30 19:25:46 -08:00
David Schleef
512c66d8ba frei0r: convert uint32_t to guint32 2010-12-30 19:25:46 -08:00
David Schleef
57095d302d dtmf: build fixes for MSVC
Use gint16 and G_PI.
2010-12-30 18:39:21 -08:00
David Schleef
5fed7a264c dtmf: reindent 2010-12-30 18:39:12 -08:00
David Schleef
0073550300 dataurisrc: use g_ascii_strcasecmp() 2010-12-30 18:08:32 -08:00
Tim-Philipp Müller
c6c3d9781b selector: move input-selector and output-selector to core
https://bugzilla.gnome.org/show_bug.cgi?id=614306
2010-12-31 01:41:36 +00:00
Tim-Philipp Müller
222be5f0e9 valve: move valve element/plugin to core
https://bugzilla.gnome.org/show_bug.cgi?id=630808
2010-12-31 01:41:18 +00:00
Thiago Santos
95597d8f0e camerabin2: Various leak fixes
Various leak fixes and some code reorganization
2010-12-29 13:24:06 -03:00
Thiago Santos
890c4ab4fd wrappercamerabinsrc: Implement video capture renegotiate
Handle caps renegotiation from camerabin2's renegotiate event
to allow video capture to be done with the user's requested
resolution.
2010-12-29 13:24:06 -03:00
Thiago Santos
203508079a camerabin2: Fix renegotiate event pushing
Use a hack to make the event upstream to reach the camera source
instead of going downstream and being useless.

This was already fixed this way for image srcpad renegotiate and
video srcpad was left unfixed.
2010-12-29 13:24:05 -03:00
Thiago Santos
1c761196f7 wrappercamerabinsrc: Refactor internal pipeline
Instead of linking 3 src pads from tee to the ghostpads, use 2
srcpads and add an output-selector to completely split caps
negotiation of video/image modes. I don't think there is an
use case that would require image and video pads to be used
at the same time.
2010-12-29 13:24:05 -03:00
Thiago Santos
07279bac7b camerabin: mode can be only image or video
No need to check if camerabin is on video mode if it isn't on
image mode as those are the only 2 modes available.

Additionally, if mode gets corrupted somehow and would be neither
image or video it would cause a null pointer dereferencing some
lines of code below, so this is safer.
2010-12-28 17:16:05 -03:00
Thiago Santos
895c07ef04 camerabin: Remove unused variable 2010-12-28 16:55:11 -03:00
Thiago Santos
a2f54e26f2 asfmux: Fix plugin package name/origin 2010-12-27 16:58:26 -03:00
Alessandro Decina
143efa727e dvbsuboverlay: fix compiler warnings 2010-12-27 13:20:28 +01:00
Tim-Philipp Müller
7a21a19499 dvbsuboverlay: clean-up: allocate flat array of rectangles
instead of an array of pointers to individually-allocated rectangles.
2010-12-27 11:10:53 +00:00
Tim-Philipp Müller
e35a3ddbf9 dvbsuboverlay: clean-up: merge private data struct into main struct 2010-12-25 16:31:00 +00:00
Tim-Philipp Müller
f8dc80a8b7 dvbsuboverlay: clean-up: dvb sub parser helper doesn't need to be a GObject 2010-12-25 16:30:50 +00:00
Vincent Penquerc'h
4422cca1d3 mve: do not use the pad buffer allocation functions in demuxers
https://bugzilla.gnome.org/show_bug.cgi?id=637929
2010-12-24 14:18:58 +01:00
Vincent Penquerc'h
29c6a95417 mpegdemux: do not use the pad buffer allocation functions in demuxers
https://bugzilla.gnome.org/show_bug.cgi?id=637931
2010-12-24 14:17:51 +01:00
Tim-Philipp Müller
e6d0435a8e mpeg4videoparse: try harder to make buffer metadata writable before modifying
Also, check buffer for NULL-ness before dereferencing it.

https://bugzilla.gnome.org/show_bug.cgi?id=637824
2010-12-23 22:03:16 +00:00
Thiago Santos
1ff89c5f83 videorecordingbin: Fix leaks 2010-12-23 14:24:45 -03:00
Thiago Santos
2513e9f01b wrappercamerabinsrc: Add converters for viewfinder branch
Viewfinder branch should have converters as it has to work
always anyway.
2010-12-23 13:24:56 -03:00
Thiago Santos
450f54b020 viewfinderbin: Remove leaks
Removing various leaks from viewfinderbin
2010-12-23 13:24:56 -03:00
Thiago Santos
58d4315965 camerabin2: more logs 2010-12-23 13:24:56 -03:00
Thiago Santos
e94c5b3b9b wrappercamerabinsrc: Handle camerabin2 custom renegotiate events 2010-12-23 13:24:55 -03:00
Thiago Santos
1e6be5ec56 camerabin2: Use custom renegotiate event
Adds a custom renegotiate event that is pushed to the camerasrc pad
that needs renegotiation due to the user selecting a new capture
caps for that pad.

This is a way of notifying the source that it should update its caps, even
if it doesn't use pad allocs.
2010-12-23 13:24:55 -03:00
Thiago Santos
b1a361b566 wrappercamerabinsrc: Add local mode 2010-12-23 13:24:55 -03:00
Thiago Santos
85bf8f2335 camerabin2: Adds properties for capture caps
Adds properties for selecting caps for video and image captures
2010-12-23 13:24:55 -03:00
Teemu Katajisto
a7fe67700e camerabin2: remove abreviations from imagecapturebin 2010-12-23 13:24:55 -03:00
Thiago Santos
539f10f4d9 basecamerasrc: More cleanup
Remove old legacy code copied from camerabin(1) that should be handled
by caps negotiation on camerabin2
2010-12-23 13:24:54 -03:00
Thiago Santos
029e63a31e wrappercamerabinsrc: Remove unused variable
Remove wait_for_prepara variable that wasn't being used
2010-12-23 13:24:54 -03:00
Thiago Santos
99210b0a3a camerabin2: Rename v4l2camerasrc to wrappercamerabinsrc
Use a better name for the element that wraps single pad src element
into a 3pad source required by camerabin2.
2010-12-23 13:24:43 -03:00
Thiago Santos
b822ad3cd3 v4l2camerasrc: remove video filter property code
Removes some unused custom video filter element property code
2010-12-23 13:20:36 -03:00
Thiago Santos
706740845b viewfinderbin: Fix video-sink property again
Avoid switching the element on the set_property function, instead wait
for the next NULL -> READY transition.
2010-12-23 13:20:36 -03:00
Thiago Santos
07d58dbf84 v4l2camerasrc: add video-src property
Adds a property to select the src element to be used internally
on v4l2camerasrc. Yeah, I know, this element should have a better
name.
2010-12-23 13:20:35 -03:00
Thiago Santos
b81677032c camerabin2: adds PORTING document
Adds a PORTING document to explain the differences from
camerabin to camerabin2 and help application developers on
porting from one to another.
2010-12-23 13:20:35 -03:00
Thiago Santos
4938c2e9ea camerabin2: Move basecamerasrc to gst-libs
Move the base camera src class to gst-libs/gst/basecamerabinsrc to
allow it to be included from the tests.
2010-12-23 13:20:31 -03:00
Teemu Katajisto
4a28d5f478 camerabin2: add videorecordingbin::video-muxer property 2010-12-23 13:18:58 -03:00
Teemu Katajisto
c76aeb77e5 camerabin2: add videorecordingbin::video-encoder property 2010-12-23 13:18:58 -03:00
Teemu Katajisto
78dc07987e camerabin2: remove abbreviations from videorecordingbin 2010-12-23 13:18:58 -03:00
Teemu Katajisto
7409211055 camerabin2: imagecapturebin: release objects and memory allocations 2010-12-23 13:18:58 -03:00
Thiago Santos
59c48d3443 camerabin2: Add camera-src property
Adds a property to select the camera source element to be used.
Changing only happens on the next NULL->READY transition
2010-12-23 13:18:57 -03:00
Thiago Santos
adc3cdc6aa camerabin2: Rename variables
Use better name for the variables, making the code clearer. Also
keep a ref for some internal elements to avoid fetching them
by name when needed later.
2010-12-23 13:18:57 -03:00
Thiago Santos
201e9ac221 camerabin2: Add properties for supported capture caps
Adds 2 property for getting the supported image/video capture
caps from the camera source.
2010-12-23 13:18:57 -03:00
Thiago Santos
f52d805166 camerabin2: Put enums inside their classes .c
Remove global list of properties' enums and put them
inside their classes .c
2010-12-23 13:18:57 -03:00
Thiago Santos
014b8f97f8 viewfinderbin: Fixes to video-sink handling
Handle video-sink more carefully, checking if it should
be already added to the bin, and removing old ones when
replacing.
2010-12-23 13:18:57 -03:00
Teemu Katajisto
89142163b1 camerabin2: add imagecapturebin::image-muxer property 2010-12-23 13:18:57 -03:00
Teemu Katajisto
87e0cbff38 camerabin2: add imagecapturebin::image-encoder property 2010-12-23 13:18:57 -03:00
Teemu Katajisto
e5d388698a camerabin2: remove abreviations from imagecapturebin 2010-12-23 13:18:57 -03:00
André Dieb Martins
7c47fc497f camerabin2: implement viewfinderbin::video-sink property to override default video output 2010-12-23 13:18:56 -03:00
Thiago Santos
80ff930012 basecamerasrc: Make construct_pipeline optional
Construct pipeline should be optional. Subclasses that don't
have internal elements don't need it.
2010-12-23 13:18:56 -03:00
Stefan Kost
ba2368d0bc basecamerasrc: write more details on the api docs 2010-12-23 12:11:59 -03:00
Stefan Kost
4b23fe6872 basecamerasrc: use the enum type for mode 2010-12-23 12:11:59 -03:00
Stefan Kost
17d5914c59 basecamerasrc: comment cleanups 2010-12-23 12:11:59 -03:00
Tim-Philipp Müller
e29a1073b1 mpeg4videoparse: ensure buffer metadata is writable before modifying it
https://bugzilla.gnome.org/show_bug.cgi?id=637824
2010-12-22 21:46:00 +00:00
Edward Hervey
bcb8eab616 id3mux: Set to GST_RANK_PRIMARY
We want it to take precedence over any other id3 formatter.
2010-12-22 18:13:36 +01:00
Sebastian Dröge
825052ba3d autoconvert: Fix some more leaks and reorganize unref code 2010-12-21 18:01:28 +01:00
benjamin gaignard
f0ebcba6c4 autoconvert: Avoid some leaks in autoconvert
unref sink and src pad after gst_pad_by_direction calls unref
element if gst_auto_convert_activate_element failed.

See bug #637553.
2010-12-21 17:50:20 +01:00
Olivier Crête
8c371e5c35 autoconvert: Use gst_caps_can_intersect() 2010-12-19 17:40:12 +05:30
Sebastian Dröge
5e5092e92c qtmux: Free AtomInfo structs 2010-12-19 12:53:34 +01:00
Sebastian Dröge
435bc16497 qtmux: Free tag string after use 2010-12-19 12:50:30 +01:00
Sebastian Dröge
b297490b2a imagecapturebin: Don't leak pad and sink 2010-12-19 12:09:41 +01:00
Sebastian Dröge
9605ff9aa8 imagecapturebin: Don't leak pad template created from static pad template 2010-12-19 12:05:11 +01:00
Sebastian Dröge
073916c9fb imagecapturebin: Don't leak location string 2010-12-19 12:03:03 +01:00
Sebastian Dröge
1f8ba27334 jifmux: Don't leak taglist 2010-12-19 12:00:25 +01:00
Sebastian Dröge
ec85dfaa61 autovideoconvert: Don't leak pad templates created from static pad templates 2010-12-19 11:38:03 +01:00
Sebastian Dröge
530eca9984 autovideoconvert: Add autoconvert child before chaining up to parent state change function
...and remove/unlink autoconvert child when going back to NULL.
2010-12-19 11:21:27 +01:00
Lasse Laukkanen
699e0abd49 qtmux: allow zero duration tracks 2010-12-17 19:30:28 +01:00
Tim-Philipp Müller
767c29cc2f dvbsuboverlay: use GST_LOG etc. for logging
The dvbsub routines were originally designed as a mini lib with a
log callback (which from the looks of it in our case would always
be called and always assemble the string even with debug output
disabled). Some of these debug statements can probably be removed
or cleaned up some more.
2010-12-17 10:50:56 +00:00
Tim-Philipp Müller
c64df2ebc2 dvbsuboverlay: remove some unused defines 2010-12-17 10:50:47 +00:00
Tim-Philipp Müller
d9f83ad938 dvbsuboverlay: fix atomic access 2010-12-17 10:50:36 +00:00
Janne Grunau
b73ae45460 dvbsuboverlay: fix rendering artefacts
Initialize source x position for odd height special case.
2010-12-16 15:33:59 +00:00
Edward Hervey
b191fb2b05 dvbsuboverlay: The enable property is a boolean and not an integer 2010-12-16 11:29:07 +01:00
Sebastian Dröge
2561bb8fa7 autoconvert: Rename autocolorspace to autovideoconvert
This doesn't just convert between color spaces.
2010-12-16 09:59:42 +01:00
Benjamin Gaignard
c8d9cc5770 bayer2rgb: Add framerate to the sink caps
Fixes bug #637224.
2010-12-15 21:28:06 +01:00
Benjamin Gaignard
27ac6c3e47 autocolorspace: Add autoconvert based video format convert element
Fixes bug #636106.
2010-12-15 21:14:38 +01:00
Sebastian Dröge
a99e13cd5a dvbsuboverlay: Rename DVB subtitling media type to subpicture/x-dvb 2010-12-15 21:11:29 +01:00
Sebastian Dröge
18061222b9 mpegtsdemux: Rename DVB subtitling media type to subpicture/x-dvb 2010-12-15 21:11:11 +01:00
Sebastian Dröge
a71c3f7e48 dvbsuboverlay: Don't draw anything on the video if the enable property is set to FALSE 2010-12-15 20:54:35 +01:00
Sebastian Dröge
65598884d2 dvbsuboverlay: Add #defines for the property default values 2010-12-15 20:53:21 +01:00
Sebastian Dröge
e9fa2fcd8b dvbsuboverlay: Use g_atomic_int_get() for reading the max_page_timeout field 2010-12-15 20:51:12 +01:00
Sebastian Dröge
61c2b173c6 mpegtsdemux: Mark array static const and use G_N_ELEMENTS instead of sizeof 2010-12-15 20:49:57 +01:00
Janne Grunau
431ea2c697 mpegtsdemux: add DESC_DVB_SUBTITLING descriptor for language parsing 2010-12-15 20:47:25 +01:00
Janne Grunau
eaf1b316b0 mpegtsdemux: enable gather_pes only for DVB subtitle private streams 2010-12-15 20:47:25 +01:00
Janne Grunau
9b3b1aedea dvbsuboverlay: use atomic instructions to set/get enable property 2010-12-15 20:47:25 +01:00
Janne Grunau
533453186e dvbsuboverlay: add property to limit page_time_out to a setable maximum 2010-12-15 20:47:25 +01:00
Janne Grunau
36b101cfb8 dvbsuboverlay: implement display definition segment subtitle windows
simplifies subtitle scaling in blit_i420()
2010-12-15 20:47:25 +01:00
Janne Grunau
4d8220b033 dvbsuboverlay: scale subtitles according to the display size
Display size is either transmitted in the display definition segment or
implicitly defined to 720x576. The subtitle window information also present in
the display definition segment is not yet used.
2010-12-15 20:47:25 +01:00
Janne Grunau
83a84ba230 dvbsuboverlay: implement display definition segment parsing 2010-12-15 20:47:25 +01:00
Janne Grunau
2f6f78caa3 dvbsuboverlay: fix luma stride for scaled subtitles (display width != width) 2010-12-15 20:47:24 +01:00
David Schleef
9fd41486a2 y4mdec: Add y4mdec
Feel the y4m love.  It seeks.  It works in pitivi.
2010-12-14 01:27:05 -08:00
Mark Nauwelaerts
aae382bcc6 jpegparse: avoid leaking tag event 2010-12-13 16:25:29 +01:00
Mark Nauwelaerts
01e9b677a8 ac3parse: relax bsid checking
... to the widest possible spec interpretation.

Fixes #637062.
2010-12-13 15:29:33 +01:00
Matthew Ife
51c63587a1 rfbsrc: fail more gracefully if source gets disconnected or geometry changes
Don't get caught in an infinite loop if the source gets disconnected and also
support gracefully failing upon detecting the frame geometry has increased
(rather than segfaulting).

https://bugzilla.gnome.org/show_bug.cgi?id=635397
2010-12-12 23:36:56 +00:00
Mark Nauwelaerts
2056f4a633 jpegparse: avoid leaking converted comment string 2010-12-12 22:14:59 +01:00
Sebastian Dröge
ec300d007d ssim: Set classification to Filter/Analyzer/Video instead of Filter/Converter/Video
Fixes bug #636109.
2010-12-12 12:01:38 +01:00
Jan Schmidt
a4f2ab78ff gaudieffects: Avoid divide by 0 in burn element 2010-12-12 02:24:00 +11:00
Thiago Santos
b6d5763e05 basecamerasrc: Remove ghostpads
Remove ghost pads from basecamerasrc. Different implementations
of camera sources might not use ghostpads and use default pads.
2010-12-08 15:38:30 -03:00
Thiago Santos
91d8bbd8a1 basecamerasrc: Removing ununsed methods
Remove one unused method _finish_image_capture()
2010-12-08 15:38:30 -03:00
Thiago Santos
db72d691ca camerabin2: Cleanup
Removing commented code
2010-12-08 15:38:30 -03:00
Thiago Santos
24bc280806 basecamerasrc: Move start/stop capture signals to basecamerasrc
Move start/stop signals and ready-for-capture to basecamerasrc
as this should be present on all camera sources
2010-12-08 15:38:30 -03:00
Thiago Santos
87eddd54d5 basecamerasrc: Add mode property
Move mode property from v4l2camerasrc to basecamerasrc, as all
camera sources should handle it.
2010-12-08 15:38:29 -03:00
Thiago Santos
b11342d325 camerabin2: Reset all elements on video recording branch before capture
We need to reset the elements from the video recording branch, including
the queue and capsfilter in order to clear the eos state and activate
the pads.

This makes it possible to record multiple videos with camerabin2 in a
sequence, otherwise the source would get a unexpected return and
push EOS, stopping the whole pipeline.
2010-12-08 15:38:29 -03:00
Thiago Santos
5776a17c86 camerabin2: More debug logs
Sprinkle some more debugging logs
2010-12-08 15:38:29 -03:00
Thiago Santos
122a7bd556 camerabin2: Various fixes
As video recording bin's state is locked, we should always
remember of setting it to NULL when camerabin2 goes to NULL

Be more careful when using elements that might not
have been created yet

And do not set location property recursively on videorecordingbin
2010-12-08 15:38:29 -03:00
Thiago Santos
0685b8921e viewfinderbin: Improve elements creation
Be more careful with cleanup of elements. Also add some logs and
improve docs a little.
2010-12-08 15:38:29 -03:00
Thiago Santos
19e52f35ee camerabin2: remove unused code
General cleanup, removing unused bits
2010-12-08 15:38:28 -03:00
Thiago Santos
ba878c95b2 camerabin2: adds location property
Adds a location property to enable applications to select
the captured files names. Locations are handled just like
multifilesink ones

Also disables -Wformat-nonliteral to allow to use non-literals
on g_strdup_printf on camerabin and generate a sequence of
locations for captures.
2010-12-08 15:38:28 -03:00
Thiago Santos
5b3deecab9 camerabin2: Fix set/get property function names
Add more consistency to the function names by using
gst_camera_bin as the other functions.
2010-12-08 15:38:28 -03:00
Thiago Santos
cb915196e2 camerabin2: Handle vidbin state change individually
Keep vidbin state locked to avoid it going to playing without
being used and leaving an empty file created.

Check the docs on the code for details on the handling.
2010-12-08 15:38:28 -03:00
Thiago Santos
0ae8df4312 camerabin2: Keep it under --enable-experimental
camerabin2 is still under heavy development, activate it only if
the --enable-experimental flag is on.

Also add a note to the docs.
2010-12-08 15:38:28 -03:00
Thiago Santos
5be441adff v4l2camerasrc: Add ready-for-capture property
Adds property that informs if v4l2camerasrc is available
for starting a new capture.

It is useful for applications to know (via deep-notify) when the
property changes and a new capture is possible. Note, however, that
starting a new capture from the notify callback will cause a deadlock.
2010-12-08 15:38:28 -03:00
Thiago Santos
bd89d22da9 camerabin2: Update v4l2camerasrc to use start/stop signals
Removes the old logic for v4l2camerasrc that used the mode
property switching to start/stop captures to make it identical
to camerabin2 behavior and to allow the future addition of
pausing a video recording.

This also removes the MODE_PREVIEW as it became useless.
2010-12-08 15:38:28 -03:00
Thiago Santos
b4d73cb9a8 camerabin2: Cleanup capturing flag
Cleanup capturing flag when the source switches back to the
viewfinder mode
2010-12-08 15:38:28 -03:00
Thiago Santos
9df40915d6 v4l2camerasrc: Remove unnecessary padding 2010-12-08 15:38:28 -03:00
Thiago Santos
91b7f2d99e v4l2camerasrc: Implement video capture
Implements video capture on v4l2camerasrc by using the mode property,
when mode is set to video, the pad probe pushes a new segment
and starts pushing buffers on the pad, when it the property is
sent back to preview, the pad probe pushes an EOS and stops
pushing buffers.

This is controlled by a Recording State variable, that is protected
by the GST_OBJECT_LOCK. I don't think locking for every buffer is
nice, so we could find an alternative lockless way here.
2010-12-08 15:38:28 -03:00
Thiago Santos
596422d19c v4l2camerasrc: Fix image capture
Once a image is captured, v4l2camerasrc should return to the
preview mode and stop capturing.
2010-12-08 15:38:27 -03:00
Thiago Santos
6c7d7946f5 camerabin2: Keep mode definition at -enum file
Use 'mode' enum definition from gstcamerabin-enum file to avoid
conflicts between v4l2camerasrc and gstcamerabin2 modes.

For now there is a MODE_PREVIEW there that is only used on the
camerasrc, not sure if we are keeping it at the future, but for
now this works.
2010-12-08 15:38:27 -03:00
Thiago Santos
9095ee429a v4l2camerasrc: Adds mode property
Adds mode property to v4l2camerasrc
2010-12-08 15:38:27 -03:00
Thiago Santos
dee167edc8 camerabin2: Adding debug categories
Adding debug categories to v4l2camerasrc and camerabin2, also
removing generic category from camerabingeneral.
2010-12-08 15:38:27 -03:00
Thiago Santos
6c72fed8b4 camerabin2: Adding basic property and signals
Adds mode property to camerabin2, allowing users to
select between video and stills capture. Also adds
start/stop capture actions to trigger and stop
capturing
2010-12-08 15:38:27 -03:00
Thiago Santos
a938fd9192 camerabin2: Set filesink's async to FALSE
In order to preroll, camerabin2 should have its filesinks in
the imagecapturebin and videorecordingbin with async=FALSE.
2010-12-08 15:38:27 -03:00
Thiago Santos
1887669d6e camerabin2: Adding basic elements
Instantiating and linking basic elements on camerabin2
so it at least shows the viewfinder when running.
2010-12-08 15:38:27 -03:00
Thiago Santos
3db90e1d43 camerabin2: Adds a stub element for camerabin2
Adds camerabin2 element, it is now a pile of stubs.
2010-12-08 15:38:27 -03:00
Thiago Santos
39093d2199 camerabin2: v4l2camerasrc: Remove platform specific code
Remove platform specific code
2010-12-08 15:38:27 -03:00
Thiago Santos
7f41c2594d camerabin2: Removing uneeded properties
Removing uneeded and unregistered properties.
2010-12-08 15:38:26 -03:00
Thiago Santos
3afa2c3a25 camerabin2: v4l2camerasrc: Fix property warning
Avoid setting a property that doesn't exist.
2010-12-08 15:38:26 -03:00
Thiago Santos
fcf80d0253 camerabin2: v4l2camerasrc: Remove unused variable
Removed unused leftover variable
2010-12-08 15:38:26 -03:00
Thiago Santos
0dce17a4e8 camerabin2: Adds video recording bin
Adds an bin that is responsible for encoding and saving video
streams to files.

For now it is simply a ffmpegcolorspace ! theoraenc ! oggmux !
 filesink bin.

Still uncapable of recording audio.
2010-12-08 15:38:26 -03:00
Thiago Santos
94da473ba7 camerabin2: Adding v4l2camerasrc from robclark's branch
Adds 3-pad v4l2 camera source from Rob Clark's camerabin
branch on http://gitorious.org/robclark-gstreamer/gst-plugins-bad
2010-12-08 15:38:26 -03:00
Thiago Santos
12245366d8 camerabin2: Adds new imagecapturebin
Adds an bin that is responsible for image captures.

It is a simple ffmpegcolorspace ! jpegenc ! jifmux ! multifilesink
for now.
2010-12-08 15:38:26 -03:00
Thiago Santos
3a8ec18f96 camerabin2: Move plugin init to a separate file
Moves plugin init to gstplugin.c to allow multiple
elements to register themselves.
2010-12-08 15:38:26 -03:00
Thiago Santos
67415fc412 camerabin2: viewfinderbin: Adds viewfinderbin element
Adds viewfinder bin element, one of the modules of camerabin2
that is responsible for displaying the video from the camera.

For now it is only a bin with ffmpegcolorspace ! videoscale !
 autovideosink
2010-12-08 15:38:26 -03:00
Alessandro Decina
5c097c447b dvbsuboverlay: fix compiler warnings on OSX. 2010-12-08 19:36:48 +01:00
Mark Nauwelaerts
26877f66c9 mpeg4videoparse: re-use cleanup() in finalize()
... and also favor finalize() rather than dispose().
2010-12-08 16:30:12 +01:00
Arun Raghavan
5b442d0712 mpeg4videoparse: Set srcpad caps before forwarding newsegment
This holds all newsegement and most other events till there is enough
data to set srcpad caps, so that the downstream link is properly
negotiated before data starts flowing.

https://bugzilla.gnome.org/show_bug.cgi?id=635204
2010-12-08 16:30:12 +01:00
Arun Raghavan
8f30fca636 mpeg4videoparse: Use sinkpad caps as base for srcpad caps
This way, we don't lose additional fields that come from upstream (like
profile/level for now).

https://bugzilla.gnome.org/show_bug.cgi?id=635202
2010-12-08 16:30:12 +01:00
Mark Nauwelaerts
522f470883 mpeg4videoparse: minor fix to error handling
We weren't handling unparseable codec_data in some cases.

https://bugzilla.gnome.org/show_bug.cgi?id=635202
2010-12-08 16:30:12 +01:00
Sebastian Dröge
04eb581480 dvbsuboverlay: Implement nearest neighbour scaling for the subpictures
This becomes necessary when SDTV subtitles are used for HDTV videos.
2010-12-08 16:30:12 +01:00
Mark Nauwelaerts
de85aef333 h264parse: align code with comment 2010-12-08 16:30:12 +01:00
Mark Nauwelaerts
26d69e63d4 h264parse: re-use reset() in finalize() 2010-12-08 16:30:12 +01:00
Arun Raghavan
6f966febce h264parse: Set srcpad caps before forwarding newsegment
This holds all newsegement and most other events till there is enough
data to set srcpad caps, so that the downstream link is properly
negotiated before data starts flowing.

https://bugzilla.gnome.org/show_bug.cgi?id=635205
2010-12-08 16:30:12 +01:00
Mark Nauwelaerts
74fb627a08 jpegparse: try to convert comment tag to UTF-8 2010-12-08 16:30:11 +01:00
Mark Nauwelaerts
49d7f207cb jpegparse: discard incomplete image
... as determined when finding SOI next image before an EOI.
2010-12-08 16:30:11 +01:00
Mark Nauwelaerts
0a26e138dd jpegparse: avoid infinite loop when resyncing 2010-12-08 16:30:11 +01:00
Arun Raghavan
7abe0a56af audioparse: Allow implicit channel map for 1-/2-channel audio
This makes sure we don't set an empty channel map array for 1-/2-channel
audio, causing an assert later on.
2010-12-08 16:30:11 +01:00
Sebastian Dröge
8974371914 dvbsuboverlay: Revert some parts of last commit that shouldn't be committed 2010-12-08 16:30:11 +01:00
Sebastian Dröge
68b8fca047 dvbsuboverlay: Really choose the latest possible subpictures
And not the first subpictures that are still valid according to the
page timeout.
2010-12-08 16:30:11 +01:00
Sebastian Dröge
e25a1dc0cc dvbsuboverlay: Refactor blending function and take average of all chroma values 2010-12-08 16:30:11 +01:00
Sebastian Dröge
2282a08890 dvbsuboverlay: Improve selection of current to be displayed subpictures
Drop all subpictures that are too old anyway and clear the currently
displayed subpictures if num_rects==0 happens.
2010-12-08 16:30:11 +01:00
Sebastian Dröge
01cf79ae59 dvbsuboverlay: Implement clipping of video buffers
Also don't clip subpicture buffers, they have no duration and
clipping them doesn't make much sense here.
2010-12-08 16:30:11 +01:00
Sebastian Dröge
672cb276be dvbsuboverlay: Clean up locking some more 2010-12-08 16:30:10 +01:00
Sebastian Dröge
92109fdfbc dvbsuboverlay: Flush subtitles and all internal state when needed 2010-12-08 16:30:10 +01:00
Sebastian Dröge
472cace08b dvbsuboverlay: Set the global library log function exactly once
And don't use one of the possibly many renderer instances, this is only
calling for crashes.
2010-12-08 16:30:10 +01:00
Sebastian Dröge
2a976ae133 dvbsuboverlay: Remove lots of commented out and unused code and clean up locking 2010-12-08 16:30:10 +01:00
Mart Raudsepp
a203ad1aab dvbsuboverlay: Fix more of the blending, so it looks quite good now
* libdvbsub gives us alpha channel already, not transparency level, so
don't do another "alpha = 255 - alpha", this is done by libdvbsub.
* Fix alpha channel handling in interpolation - assrender had an additional
1bpp alpha bitmap as a possible mask, we don't. So don't use the palette
index array as alpha values; bug from quick code porting long ago to
changing pixel colors (assrender has a single pixel color for whole
regions or something, unlike dvbsub, which has indexed colors).
* Don't forget to reassign our YUV and other local pixel color variables
after shifting to work on the bottom part of a 2x2 subsample block, or
it's obviously very blocky.

Remaining issues in blending:

* Should probably be interpolating or doing something else useful with the
resulting U and V channels, so that most of the source pixel UV values would
actually be actually cared about, except for just one out of possibly four.

* Don't convert AYUV to ARGB in libdvbsub, and then back from ARGB to AYUV in
dvbsuboverlay for no reason

* Re-factor the whole thing to something more like textoverlay blending
* Related to that, perhaps cache the current spu in a good format for quick
blending on each frame, after which the more often called blending parts
might become more straightforward
2010-12-08 16:30:10 +01:00
Mart Raudsepp
efa1e9a1fe dvbsuboverlay: Fix blending bug regarding color channel addressing.
libdvbsub gives us ARGB ordered pixels right now, not RGBA.
2010-12-08 16:30:10 +01:00
Mart Raudsepp
21abf9c4a8 dvbsuboverlay: Do blending calls when appropriate
This gives us actually shown subtitles, however with bugs in the
current blitting code, resulting in very transparent subtitles.
2010-12-08 16:30:10 +01:00
Mart Raudsepp
84b52f6eb4 dvbsuboverlay: Implement fallback page_time_out honoring
The spec has a page_time_out in the page composition segment to ensure
subtitles don't get stuck on screen for too much longer than intended,
when future page composition segments get lost on bad reception, or other
problems. Honor it in the gst plugin side.
2010-12-08 16:30:10 +01:00
Mart Raudsepp
3d09a3b18a dvbsuboverlay: Implement subtitle queueing and syncing with video
Push incoming subtitle pages in a FIFO queue (pending_subtitles)
and dequeue the head when it's time to show it (when video running
time reaches the subtitle page running time).
Keep the subtitle page, that is supposed to be blended on top of video
currently, in a separate object variable (current_subtitle). As a
next step we can then pre-render current_subtitle to a better to blend
format.
2010-12-08 16:30:10 +01:00
Mart Raudsepp
41c82583f5 dvbsuboverlay: Make the new dvb_subtitles_free() accept NULL
Don't crash if dvb_subtitles_free(NULL) gets passed, like most other
*_free functions are happy with.
2010-12-08 16:30:10 +01:00
Mart Raudsepp
7e2e52cab8 dvbsuboverlay: Pass page_time_out and pts with the DVBSubtitles structure
Eases holding onto the information in gst plugins side queue of
DVBSubtitles, so we won't need to create yet another temporary struct
to keep the pts and page_time_out too.
And this really logically belongs at the toplevel information set anyway
and in that struct...
2010-12-08 16:30:09 +01:00
Mart Raudsepp
aca7237878 dvbsuboverlay: Make the libdvbsub callback handler responsible for memory cleanup
We want to allow queueing of raw region image data in the gst plugin side,
and keep the data around until we pop the item from the queue. So make
the callback handler responsible for memory cleanup, if one is installed.
2010-12-08 16:30:09 +01:00