Thiago Santos [Mon, 29 Nov 2010 21:24:35 +0000 (18:24 -0300)]
v4l2camerasrc: Remove unnecessary padding
Thiago Santos [Mon, 29 Nov 2010 18:49:26 +0000 (15:49 -0300)]
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.
Thiago Santos [Mon, 29 Nov 2010 15:57:21 +0000 (12:57 -0300)]
v4l2camerasrc: Fix image capture
Once a image is captured, v4l2camerasrc should return to the
preview mode and stop capturing.
Thiago Santos [Mon, 29 Nov 2010 14:31:26 +0000 (11:31 -0300)]
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.
Thiago Santos [Mon, 29 Nov 2010 13:46:38 +0000 (10:46 -0300)]
v4l2camerasrc: Adds mode property
Adds mode property to v4l2camerasrc
Thiago Santos [Mon, 29 Nov 2010 13:45:30 +0000 (10:45 -0300)]
camerabin2: Adding debug categories
Adding debug categories to v4l2camerasrc and camerabin2, also
removing generic category from camerabingeneral.
Thiago Santos [Sat, 27 Nov 2010 02:55:12 +0000 (23:55 -0300)]
examples: Adds camerabin2 example
Adds gtk camerabin2 example app
Thiago Santos [Fri, 26 Nov 2010 20:24:58 +0000 (17:24 -0300)]
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
Thiago Santos [Fri, 26 Nov 2010 18:55:39 +0000 (15:55 -0300)]
camerabin2: Set filesink's async to FALSE
In order to preroll, camerabin2 should have its filesinks in
the imagecapturebin and videorecordingbin with async=FALSE.
Thiago Santos [Fri, 26 Nov 2010 17:51:30 +0000 (14:51 -0300)]
camerabin2: Adding basic elements
Instantiating and linking basic elements on camerabin2
so it at least shows the viewfinder when running.
Thiago Santos [Fri, 26 Nov 2010 13:14:46 +0000 (10:14 -0300)]
camerabin2: Adds a stub element for camerabin2
Adds camerabin2 element, it is now a pile of stubs.
Thiago Santos [Fri, 26 Nov 2010 01:05:39 +0000 (22:05 -0300)]
camerabin2: v4l2camerasrc: Remove platform specific code
Remove platform specific code
Thiago Santos [Fri, 26 Nov 2010 00:49:47 +0000 (21:49 -0300)]
camerabin2: Removing uneeded properties
Removing uneeded and unregistered properties.
Thiago Santos [Thu, 25 Nov 2010 23:55:36 +0000 (20:55 -0300)]
camerabin2: v4l2camerasrc: Fix property warning
Avoid setting a property that doesn't exist.
Thiago Santos [Thu, 25 Nov 2010 23:53:04 +0000 (20:53 -0300)]
camerabin2: v4l2camerasrc: Remove unused variable
Removed unused leftover variable
Thiago Santos [Thu, 25 Nov 2010 17:57:13 +0000 (14:57 -0300)]
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.
Thiago Santos [Thu, 25 Nov 2010 16:00:50 +0000 (13:00 -0300)]
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
Thiago Santos [Wed, 24 Nov 2010 23:31:33 +0000 (20:31 -0300)]
camerabin2: Adds new imagecapturebin
Adds an bin that is responsible for image captures.
It is a simple ffmpegcolorspace ! jpegenc ! jifmux ! multifilesink
for now.
Thiago Santos [Wed, 24 Nov 2010 23:15:38 +0000 (20:15 -0300)]
camerabin2: Move plugin init to a separate file
Moves plugin init to gstplugin.c to allow multiple
elements to register themselves.
Thiago Santos [Wed, 24 Nov 2010 20:28:57 +0000 (17:28 -0300)]
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
Alessandro Decina [Wed, 8 Dec 2010 18:36:48 +0000 (19:36 +0100)]
dvbsuboverlay: fix compiler warnings on OSX.
Stefan Kost [Wed, 24 Nov 2010 10:22:01 +0000 (12:22 +0200)]
output-selector-test: don't hardcode videosinks and use more colorspace conv.
Use autovideosink instead of hardcoded sinks. Use an additional colorspace
converter between videotestsrc and timeoverlay.
Tim-Philipp Müller [Wed, 8 Dec 2010 15:18:32 +0000 (15:18 +0000)]
configure: require released versions of core/base instead of old git
Mark Nauwelaerts [Tue, 7 Dec 2010 14:44:00 +0000 (15:44 +0100)]
mpeg4videoparse: re-use cleanup() in finalize()
... and also favor finalize() rather than dispose().
Arun Raghavan [Thu, 18 Nov 2010 08:09:23 +0000 (13:39 +0530)]
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
Arun Raghavan [Thu, 18 Nov 2010 17:59:51 +0000 (23:29 +0530)]
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
Mark Nauwelaerts [Tue, 7 Dec 2010 14:20:29 +0000 (15:20 +0100)]
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
Sebastian Dröge [Tue, 7 Dec 2010 16:17:44 +0000 (17:17 +0100)]
dvbsuboverlay: Implement nearest neighbour scaling for the subpictures
This becomes necessary when SDTV subtitles are used for HDTV videos.
Mark Nauwelaerts [Tue, 7 Dec 2010 13:55:28 +0000 (14:55 +0100)]
h264parse: align code with comment
Mark Nauwelaerts [Tue, 7 Dec 2010 13:55:15 +0000 (14:55 +0100)]
h264parse: re-use reset() in finalize()
Arun Raghavan [Wed, 17 Nov 2010 13:46:12 +0000 (19:16 +0530)]
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
Mark Nauwelaerts [Mon, 6 Dec 2010 18:00:28 +0000 (19:00 +0100)]
jpegparse: try to convert comment tag to UTF-8
Mark Nauwelaerts [Mon, 6 Dec 2010 17:19:20 +0000 (18:19 +0100)]
jpegparse: discard incomplete image
... as determined when finding SOI next image before an EOI.
Mark Nauwelaerts [Mon, 6 Dec 2010 17:18:11 +0000 (18:18 +0100)]
jpegparse: avoid infinite loop when resyncing
Arun Raghavan [Mon, 6 Dec 2010 17:18:09 +0000 (22:48 +0530)]
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.
Sebastian Dröge [Mon, 6 Dec 2010 16:08:55 +0000 (17:08 +0100)]
dvbsuboverlay: Revert some parts of last commit that shouldn't be committed
Sebastian Dröge [Mon, 6 Dec 2010 16:05:28 +0000 (17:05 +0100)]
dvbsuboverlay: Really choose the latest possible subpictures
And not the first subpictures that are still valid according to the
page timeout.
Sebastian Dröge [Mon, 6 Dec 2010 15:44:11 +0000 (16:44 +0100)]
dvbsuboverlay: Refactor blending function and take average of all chroma values
Sebastian Dröge [Fri, 3 Dec 2010 16:35:36 +0000 (17:35 +0100)]
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.
Sebastian Dröge [Fri, 3 Dec 2010 15:21:15 +0000 (16:21 +0100)]
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.
Sebastian Dröge [Fri, 3 Dec 2010 15:08:13 +0000 (16:08 +0100)]
dvbsuboverlay: Clean up locking some more
Sebastian Dröge [Fri, 3 Dec 2010 15:05:56 +0000 (16:05 +0100)]
dvbsuboverlay: Flush subtitles and all internal state when needed
Sebastian Dröge [Fri, 3 Dec 2010 14:52:21 +0000 (15:52 +0100)]
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.
Sebastian Dröge [Fri, 3 Dec 2010 14:46:40 +0000 (15:46 +0100)]
dvbsuboverlay: Remove lots of commented out and unused code and clean up locking
Mart Raudsepp [Wed, 1 Dec 2010 07:59:14 +0000 (09:59 +0200)]
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
Mart Raudsepp [Wed, 1 Dec 2010 05:26:03 +0000 (07:26 +0200)]
dvbsuboverlay: Fix blending bug regarding color channel addressing.
libdvbsub gives us ARGB ordered pixels right now, not RGBA.
Mart Raudsepp [Wed, 1 Dec 2010 05:20:07 +0000 (07:20 +0200)]
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.
Mart Raudsepp [Wed, 1 Dec 2010 05:06:35 +0000 (07:06 +0200)]
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.
Mart Raudsepp [Wed, 1 Dec 2010 04:01:15 +0000 (06:01 +0200)]
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.
Mart Raudsepp [Wed, 1 Dec 2010 03:49:22 +0000 (05:49 +0200)]
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.
Mart Raudsepp [Wed, 1 Dec 2010 03:26:02 +0000 (05:26 +0200)]
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...
Mart Raudsepp [Wed, 1 Dec 2010 02:28:02 +0000 (04:28 +0200)]
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.
Mart Raudsepp [Tue, 30 Nov 2010 02:45:54 +0000 (04:45 +0200)]
dvbsuboverlay: Work with GstClockTime instead of PTS for subtitle timing
Abuse libdvbsub PTS tracking to just store our running time in it, to get
it back in the callbacks. As GStreamer does its own PTS handling behind our
back (especially for video), we should just sync with video per running time,
not try to do it with PTS, which doesn't seem well accessible for video chain.
We can later relabel dvb-sub.c pts naming convention if wanted, it's just
passing along guint64 values, which GstClockTime fortunately is too.
The current idea is to collect the regions returned by the callback into
a FIFO buffer and pop and pre-render the top one into a separate
quick-to-blend cached format, which is then appropriately blended in the
video chain until the next one on top of the stack reaches the video chains
running time (or the fallback timer hits).
Mart Raudsepp [Tue, 30 Nov 2010 01:56:32 +0000 (03:56 +0200)]
dvbsuboverlay: Add FIXME note about non-constant PTS for a display set handling.
Mart Raudsepp [Tue, 30 Nov 2010 01:47:46 +0000 (03:47 +0200)]
dvbsuboverlay: Remove dvb_sub_feed() API
GStreamer will only use dvb_sub_feed_with_pts, as it has its own PES filter
to do the header parsing.
Tim-Philipp Müller [Mon, 29 Nov 2010 20:55:30 +0000 (20:55 +0000)]
dvbsuboverlay: more TODO
Mart Raudsepp [Mon, 29 Nov 2010 20:10:17 +0000 (20:10 +0000)]
gstmpegtsdemux: add temporary **HACK** for dvb subs testing so dvbsuboverlay gets whole packets
<tpm> leio, what's the mpegts demux hack about?
<leio> my libdvbsub code can't handle cut packets
<leio> so the hack instructs the demuxer to gather full packets before pushing down, but it applies that to more PES packet types than just dvbsub, but I'm not sure if that's a bad thing
<leio> either way, needs a cleaner solution, either in demuxer, or I need to handle cut packets
<tpm> ok, but really it should be fixed in the overlay, right?
<tpm> or a parser be inserted
<leio> the problem is that I don't know from the first packet beforehand if it is a cut one or no
<leio> not
<leio> err, first buffer
<leio> just when I receive the next one I see if it has a valid timestamp on it or not
<leio> so I can't very well queue it up in the chain either, I might be blocking the very last subtitle for no reason or something
<tpm> but you could just drop/ignore packets until you find one, right?
<leio> find what?
<tpm> a complete packet?
<leio> the problem isn't that they aren't complete
<leio> the problem is that they are cut across multiple GstBuffers by the demuxer without the hack
<tpm> sure, I understand that
<tpm> but you can't easily determine if a GstBuffer contains he start fragment of a packet or not?
<leio> I guess I could parse the packet and see if its length is enough, just like the libdvbsub code eventually does too
<leio> I can, it has a timestamp if it's the first chunk
<leio> I just never know if I need to wait for more, without some parsing
<tpm> ah ok
<leio> while the demuxer could just give me an uncut one in the first place
<leio> like it always does for program streams
<leio> that gather_pes is always set in gstmpegdemux, but not in gstmpegtsdemux
Mart Raudsepp [Mon, 29 Nov 2010 20:06:07 +0000 (20:06 +0000)]
dvbsuboverlay: initial version, work in progress
Mark Nauwelaerts [Fri, 3 Dec 2010 17:11:56 +0000 (18:11 +0100)]
audioparsers: update some documentation
Mark Nauwelaerts [Fri, 3 Dec 2010 17:11:38 +0000 (18:11 +0100)]
mpegaudioparse: add to documentation
Mark Nauwelaerts [Fri, 3 Dec 2010 17:11:09 +0000 (18:11 +0100)]
dcaparse: add to documentation
Mark Nauwelaerts [Fri, 3 Dec 2010 17:09:41 +0000 (18:09 +0100)]
qtmux: add documentation
Mark Nauwelaerts [Mon, 8 Nov 2010 18:58:31 +0000 (19:58 +0100)]
baseparse: increase keyframe awareness
... which is not particular relevant for audio parsing, but more so
in video cases. In particular, auto-determine if dealing with video (caps).
Benjamin Gaignard [Fri, 3 Dec 2010 16:46:27 +0000 (17:46 +0100)]
sys: Add android audioflingersink
Benjamin Gaignard [Fri, 3 Dec 2010 16:42:46 +0000 (17:42 +0100)]
Add build system for Android
Stefan Kost [Thu, 2 Dec 2010 13:45:02 +0000 (15:45 +0200)]
camerabin: smal api doc update
Lasse Laukkanen [Thu, 2 Dec 2010 08:39:14 +0000 (05:39 -0300)]
camerabin: Avoid assertion on image finishing
As imgbin_finished() is scheduled from g_idle_add, it might
be run a little later than expected, this can lead to the application
setting camerabin to ready before imgbin_finished() runs. In this case,
the processing counter goes to 0 and an assertion happens.
This patch relaxes the imgbin_finished() check on the processing
counter.
David Schleef [Thu, 2 Dec 2010 07:14:56 +0000 (23:14 -0800)]
element-maker: Handle names with multiple underscores
David Schleef [Thu, 2 Dec 2010 07:04:57 +0000 (23:04 -0800)]
chopmydata: Add new element
This element splits up a stream into randomly-sized buffers.
Useful (maybe) for testing parsers.
Thiago Santos [Thu, 2 Dec 2010 06:09:59 +0000 (03:09 -0300)]
tests: Remove leftover comment
Remove comment that doesn't make sense anymore
Alessandro Decina [Wed, 1 Dec 2010 22:21:33 +0000 (23:21 +0100)]
applemedia: don't use the deprecated g_strcasecmp function.
Replace g_strcasecmp with g_ascii_strcasecmp.
Alessandro Decina [Wed, 1 Dec 2010 22:20:36 +0000 (23:20 +0100)]
Fix compiler warnings with gcc 4.2.1 on OSX.
Mark Nauwelaerts [Wed, 1 Dec 2010 14:28:53 +0000 (15:28 +0100)]
ac3parse: use proper EAC-3 caps
David Hoyt [Wed, 1 Dec 2010 09:45:49 +0000 (10:45 +0100)]
qtmux: handle msvc ftruncate incompatibility
Fixes #636185.
David Schleef [Sun, 10 Oct 2010 00:39:36 +0000 (17:39 -0700)]
Add a schroenc test
David Schleef [Sun, 28 Nov 2010 04:13:38 +0000 (20:13 -0800)]
Fix pad template memleaks
Pad templates returned by gst_static_pad_template_get() were not
being unreffed.
David Schleef [Wed, 1 Dec 2010 02:43:24 +0000 (18:43 -0800)]
vp8enc: Readd setting of granulepos
Revert parts of last patch that removed setting of granulepos.
oggmux still requires correct granulepos in incoming packet.
David Schleef [Tue, 30 Nov 2010 04:21:31 +0000 (20:21 -0800)]
vp8enc: Don't override timestamps set by base class
Because the base class does it correctly.
Fixes: #635720, #625558.
Mark Nauwelaerts [Tue, 30 Nov 2010 14:41:02 +0000 (15:41 +0100)]
baseparse: avoid unexpected stray metadata
Mark Nauwelaerts [Tue, 30 Nov 2010 14:40:28 +0000 (15:40 +0100)]
baseparse: use proper _NONE output value when applicable
Sebastian Dröge [Mon, 15 Nov 2010 19:03:01 +0000 (20:03 +0100)]
jp2kdecimator: Add a JPEG2000 decimator element
This element drops information from JPEG2000 images without reencoding.
Sebastian Dröge [Tue, 23 Nov 2010 20:45:41 +0000 (21:45 +0100)]
jp2kenc: Emit SOP markers in every codestream packet
This makes parsing much easier, faster and more reliable.
Alejandro Gonzalez [Sat, 27 Nov 2010 22:07:19 +0000 (16:07 -0600)]
qtmux: gst_qtmux_check_difference verify before subtract
Avoid negative overflow by checking the order of operands
on subtraction of unsigned integers.
https://bugzilla.gnome.org/show_bug.cgi?id=635878
David Schleef [Sun, 28 Nov 2010 02:58:07 +0000 (18:58 -0800)]
mpegtsmux: Fix some memleaks
David Schleef [Mon, 15 Nov 2010 19:37:39 +0000 (11:37 -0800)]
schroenc: minor memleak fix
Edward Hervey [Thu, 25 Nov 2010 18:31:35 +0000 (19:31 +0100)]
signalprocessor: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:31:03 +0000 (19:31 +0100)]
videomeasure: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:25:27 +0000 (19:25 +0100)]
tta: Remove dead assignments and useless variable
Edward Hervey [Thu, 25 Nov 2010 18:24:56 +0000 (19:24 +0100)]
stereo: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:21:23 +0000 (19:21 +0100)]
sdp: Remove useless variables
Edward Hervey [Thu, 25 Nov 2010 18:21:11 +0000 (19:21 +0100)]
rtpmux: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:21:01 +0000 (19:21 +0100)]
real: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:20:51 +0000 (19:20 +0100)]
ivfparse: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:06:49 +0000 (19:06 +0100)]
freeze: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:06:38 +0000 (19:06 +0100)]
dvdspu: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:06:27 +0000 (19:06 +0100)]
dtmf: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 18:01:42 +0000 (19:01 +0100)]
dccp: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 17:56:42 +0000 (18:56 +0100)]
audioparsers: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 17:52:47 +0000 (18:52 +0100)]
vp8: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 17:49:23 +0000 (18:49 +0100)]
sdlaudiosink: Remove dead assignments