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
Edward Hervey [Thu, 25 Nov 2010 17:47:15 +0000 (18:47 +0100)]
schroedinger: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 17:43:30 +0000 (18:43 +0100)]
mimenc: Remove dead assignment
Edward Hervey [Thu, 25 Nov 2010 17:43:18 +0000 (18:43 +0100)]
cogdownsample: Remove dead assignment
Edward Hervey [Thu, 25 Nov 2010 17:42:33 +0000 (18:42 +0100)]
opencv: Remove dead assignments
... and fix indentation
Edward Hervey [Thu, 25 Nov 2010 17:33:37 +0000 (18:33 +0100)]
cogcolorspace: Remove dead assignment
Edward Hervey [Thu, 25 Nov 2010 17:30:56 +0000 (18:30 +0100)]
cogframe: Remove dead assignments
Edward Hervey [Thu, 25 Nov 2010 17:29:31 +0000 (18:29 +0100)]
celtenc: Initialize variable
In the case the tag_setter returns something, empty_tags would be
garbage value.
Edward Hervey [Thu, 25 Nov 2010 17:29:22 +0000 (18:29 +0100)]
celtenc: Remove dead assignment
Edward Hervey [Thu, 25 Nov 2010 17:26:21 +0000 (18:26 +0100)]
assrender: Remove dead assignments
Andoni Morales Alastruey [Thu, 25 Nov 2010 16:14:23 +0000 (17:14 +0100)]
audioparse: fix possible division-by-zero
https://bugzilla.gnome.org/show_bug.cgi?id=635786
Olivier Crête [Fri, 22 Oct 2010 23:56:04 +0000 (01:56 +0200)]
shm: Don't pass the ShmPipe to the function closing the shm area
Olivier Crête [Fri, 22 Oct 2010 23:22:43 +0000 (01:22 +0200)]
shm: Use the right counter when freeing buffers
Olivier Crête [Fri, 22 Oct 2010 23:12:49 +0000 (01:12 +0200)]
shmalloc: Manually decide to use GLib or not in the shmalloc
So make it easier for embedders to use it with or without Glib
Olivier Crête [Wed, 20 Oct 2010 20:49:59 +0000 (22:49 +0200)]
shm: Remove duplicated arguement
Olivier Crête [Wed, 20 Oct 2010 20:39:21 +0000 (22:39 +0200)]
shm: Fix socket leak on connect() error
Olivier Crête [Wed, 20 Oct 2010 20:28:13 +0000 (22:28 +0200)]
shm: sp_client_recv returns negative on error, so make the retval signed
Olivier Crête [Wed, 20 Oct 2010 20:17:30 +0000 (22:17 +0200)]
shm: Rename confusingly named variable
Olivier Crête [Wed, 20 Oct 2010 20:14:09 +0000 (22:14 +0200)]
shm: Change permissions on old shm areas too
Change the permissions on old shm areas
Olivier Crête [Wed, 20 Oct 2010 20:01:36 +0000 (22:01 +0200)]
shm: Use the macro for the last error too
Olivier Crête [Wed, 20 Oct 2010 19:52:31 +0000 (21:52 +0200)]
shm: Use "ablock" for all ShmAllocBlock variables
Use the ablock variable name for ShmAllocBlocks and block for
ShmBlock
Olivier Crête [Wed, 20 Oct 2010 19:52:24 +0000 (21:52 +0200)]
shm: Add more comments
Youness Alaoui [Wed, 20 Oct 2010 19:41:15 +0000 (21:41 +0200)]
shm: stylist improvements
Youness Alaoui [Wed, 20 Oct 2010 19:33:24 +0000 (21:33 +0200)]
shm: Explain some fields
Explain what some of the fields in the allocator actually mean
Robert Swain [Mon, 22 Nov 2010 14:26:06 +0000 (15:26 +0100)]
interlace: Fix buffer timestamp and duration
The field rate is twice the frame rate of the src pad and so the duration of
one output buffer is src_fps_d / (2 * src_fps_n).
Robert Swain [Mon, 22 Nov 2010 09:29:56 +0000 (10:29 +0100)]
interlace: Rename pattern property to field-pattern
This is mostly for clarity of what the property means and, I believe, makes the
pattern-offset property more comprehensible.
Robert Swain [Mon, 22 Nov 2010 09:27:22 +0000 (10:27 +0100)]
interlace: Add pattern offset property
This property allows one to start at any point within the field pattern after
a discontinuity (whenever gst_interlace_reset () is called). Thus with the
2:3:3:2 pattern, for example, one can start at offset 2 and achieve 3:2:2:3
or offset 1 and achieve 3:3:2:2.
Lasse Laukkanen [Fri, 19 Nov 2010 20:01:41 +0000 (17:01 -0300)]
camerabin: Create imagebin elements when image mode is set in camerabin NULL state
This patch refactors imagebin element creation and linking into separate functions,
and adds re-using also for imagebin internally created elements.
So this refactoring allows creating imagebin elements already in NULL state when
application sets the image mode, and next state change from NULL to READY will be faster.
This reduces first capture latency.
Earlier the elements were both created and linked in NULL to READY state change.
Andoni Morales Alastruey [Mon, 22 Nov 2010 11:23:30 +0000 (12:23 +0100)]
mpegtsparse: Create a sub-buffer with the section length
Josh Doe [Fri, 19 Nov 2010 20:23:41 +0000 (15:23 -0500)]
opencv: fix caps issues and extend supported caps for some elements
Some elements had vague caps, such as "video/x-raw-rgb", which caused problems
at least with textwrite. For other elements, the underlying OpenCV functions
support more than just one image type, so I increased the number of supported
caps.
I created a utility function "gst_opencv_caps_from_cv_image_type", so each
element creates caps directly from OpenCV image types, such as CV_8UC1 for
8-bit grayscale. This function uses gstvideo to create uniform caps.
https://bugzilla.gnome.org/show_bug.cgi?id=635304
Thiago Santos [Mon, 22 Nov 2010 20:43:12 +0000 (17:43 -0300)]
jpegparse: Small optimization on tags parsing
Optimize a little avoiding copying a taglist when parsing xmp/exif
data.
Thiago Santos [Fri, 17 Sep 2010 12:52:12 +0000 (09:52 -0300)]
outputselector: Avoid losing the last_buffer when switching
This patch makes outputselector take an extra ref when pushing
the last_buffer to avoid it losing it during the switch function.
This makes resend-latest properly work if the active-pad is changed
during the switch function buffer pushing (on a pad probe, for example).
https://bugzilla.gnome.org/show_bug.cgi?id=629917
Thiago Santos [Fri, 17 Sep 2010 12:44:02 +0000 (09:44 -0300)]
outputselector: Recheck pending switch after pushing buffer
This patch makes output-selector always recheck if there's a
pending pad switch after pushing a buffer, preventing that
it pushes a buffer on the 'wrong' pad.
https://bugzilla.gnome.org/show_bug.cgi?id=629917
Olivier Aubert [Mon, 22 Nov 2010 13:10:26 +0000 (15:10 +0200)]
rsvgoverlay: scalable and relative svg overlay with cairo
Add a cairo+librsvg based overlay element to the rsvg plugin.
Stefan Kost [Mon, 22 Nov 2010 15:06:05 +0000 (17:06 +0200)]
make: remove traces or moved/removed plugins
Stefan Kost [Mon, 22 Nov 2010 15:05:23 +0000 (17:05 +0200)]
make: add missinf trailing \ to fix the build
David Schleef [Mon, 22 Nov 2010 07:11:19 +0000 (23:11 -0800)]
colorspace: remove incorrect check
Mark Nauwelaerts [Fri, 19 Nov 2010 16:55:36 +0000 (17:55 +0100)]
qtmux: remove remnant of obsolete property
Mark Nauwelaerts [Fri, 19 Nov 2010 14:18:58 +0000 (15:18 +0100)]
tests: qtmux: also unit test fragmented file cases