Janne Grunau [Sat, 11 Dec 2010 16:25:29 +0000 (17:25 +0100)]
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.
Janne Grunau [Sat, 11 Dec 2010 16:10:25 +0000 (17:10 +0100)]
dvbsuboverlay: implement display definition segment parsing
Janne Grunau [Fri, 10 Dec 2010 11:27:54 +0000 (12:27 +0100)]
dvbsuboverlay: fix luma stride for scaled subtitles (display width != width)
Edward Hervey [Wed, 15 Dec 2010 15:48:15 +0000 (16:48 +0100)]
rsvgoverlay: Don't set uint on an int property
Stefan Kost [Wed, 15 Dec 2010 12:56:19 +0000 (14:56 +0200)]
Automatic update of common submodule
From 20742ae to 169462a
David Schleef [Wed, 15 Dec 2010 03:03:09 +0000 (19:03 -0800)]
element-maker: improve generation of several classes
Better creation of pads, test and fix many other classes. Most
classes work now, although might not create functional elements.
David Schleef [Tue, 14 Dec 2010 07:32:30 +0000 (23:32 -0800)]
y4mdec: Add y4mdec
Feel the y4m love. It seeks. It works in pitivi.
Francis Rammeloo [Mon, 13 Dec 2010 23:15:05 +0000 (23:15 +0000)]
gdiscreencapsrc: fix memory leak
Structure members of ICONINFO struct filled by GetIconInfo() must
be deleted when no longer needed according to the API reference.
https://bugzilla.gnome.org/show_bug.cgi?id=611428
Mark Nauwelaerts [Mon, 13 Dec 2010 15:23:37 +0000 (16:23 +0100)]
jpegparse: avoid leaking tag event
Mark Nauwelaerts [Mon, 13 Dec 2010 14:17:29 +0000 (15:17 +0100)]
ac3parse: relax bsid checking
... to the widest possible spec interpretation.
Fixes #637062.
Stefan Kost [Mon, 13 Dec 2010 14:23:45 +0000 (16:23 +0200)]
Automatic update of common submodule
From 011bcc8 to 20742ae
Matthew Ife [Sun, 12 Dec 2010 23:34:02 +0000 (23:34 +0000)]
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
Mark Nauwelaerts [Sun, 12 Dec 2010 21:13:13 +0000 (22:13 +0100)]
jpegparse: avoid leaking converted comment string
Sebastian Dröge [Sun, 12 Dec 2010 11:01:38 +0000 (12:01 +0100)]
ssim: Set classification to Filter/Analyzer/Video instead of Filter/Converter/Video
Fixes bug #636109.
Jan Schmidt [Sat, 11 Dec 2010 15:24:00 +0000 (02:24 +1100)]
gaudieffects: Avoid divide by 0 in burn element
Jan Schmidt [Sat, 11 Dec 2010 15:16:49 +0000 (02:16 +1100)]
resindvd: Defer pushing tag updates until streaming.
Push tag/title info updates in the streaming thread, avoiding
spurious losses of the downstream events when flushing.
See: https://bugzilla.gnome.org/show_bug.cgi?id=594222
Jan Schmidt [Tue, 16 Nov 2010 06:18:33 +0000 (17:18 +1100)]
resindvd: Attempt to use glib language setting for DVD menus/audio
Jan Schmidt [Tue, 16 Nov 2010 06:09:06 +0000 (17:09 +1100)]
resindvd: Fix silly typo in button state tracking.
Ole André Vadla Ravnås [Thu, 9 Dec 2010 23:58:58 +0000 (00:58 +0100)]
applemedia: only enqueue buffers in the VideoToolbox callbacks
These callbacks may fire from any thread, hence we should only enqueue
buffers and let the streaming thread take care of the rest as soon as
the blocking encode or decode operation has finished.
Ole André Vadla Ravnås [Fri, 19 Nov 2010 14:53:55 +0000 (15:53 +0100)]
applemedia: bring back Leopard compatibility
At least as far as miovideosrc is concerned. Turns out that CoreVideo's
CVPixelBufferGetIOSurface is not present in Leopard's version of CoreVideo.
We solve this by making it possible for symbols to be marked as optional.
Christian Berentsen [Mon, 29 Nov 2010 12:47:11 +0000 (13:47 +0100)]
winks: fix framerate fraction range mapping
Min and max may be slightly different but compress to the same fraction.
Wim Taymans [Thu, 9 Dec 2010 17:06:38 +0000 (18:06 +0100)]
jasperdec: don't fail hard on decoding error
don't post an error and return GST_FLOW_ERROR on a simple decoding error. We can
just resume and continue decoding the next image.
Alessandro Decina [Thu, 9 Dec 2010 10:54:17 +0000 (11:54 +0100)]
qtkitvideosrc: reset the queue condition to NO_FRAMES in unlockStop.
Fixes a segfault in create: when going PLAYING -> PAUSED -> PLAYING.
Alessandro Decina [Thu, 9 Dec 2010 10:04:19 +0000 (11:04 +0100)]
qtkitvideosrc: run the mainRunLoop for a while if not running.
QTCaptureSession::addInput and QTCaptureSession::addOutput call
NSObject::performSelectorOnMainThread internally so they need the mainRunLoop to
run at least for a while to complete.
Thiago Santos [Tue, 7 Dec 2010 22:40:28 +0000 (19:40 -0300)]
basecamerasrc: Remove ghostpads
Remove ghost pads from basecamerasrc. Different implementations
of camera sources might not use ghostpads and use default pads.
Thiago Santos [Tue, 7 Dec 2010 22:12:40 +0000 (19:12 -0300)]
basecamerasrc: Removing ununsed methods
Remove one unused method _finish_image_capture()
Thiago Santos [Mon, 6 Dec 2010 14:05:17 +0000 (11:05 -0300)]
camerabin2: Only run tests if experimental is enabled
Only run camerabin2 tests and build examples if experimental
plugins are enabled
Thiago Santos [Mon, 6 Dec 2010 13:06:37 +0000 (10:06 -0300)]
camerabin2: Cleanup
Removing commented code
Thiago Santos [Sun, 5 Dec 2010 14:18:09 +0000 (11:18 -0300)]
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
Thiago Santos [Sat, 4 Dec 2010 13:15:34 +0000 (10:15 -0300)]
basecamerasrc: Add mode property
Move mode property from v4l2camerasrc to basecamerasrc, as all
camera sources should handle it.
Thiago Santos [Sat, 4 Dec 2010 03:27:17 +0000 (00:27 -0300)]
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.
Thiago Santos [Fri, 3 Dec 2010 15:13:07 +0000 (12:13 -0300)]
camerabin2: Fix tests capture location creation
Fixes capture location creation to use multifilesink location
like strings. E.g. using capture_%d instead of capture_0 to let
camerabin2 handle the %d replacing
Thiago Santos [Fri, 3 Dec 2010 15:12:32 +0000 (12:12 -0300)]
camerabin2: More debug logs
Sprinkle some more debugging logs
Thiago Santos [Fri, 3 Dec 2010 15:11:59 +0000 (12:11 -0300)]
examples: camerabin2: Print more info
Add some printing for error/eos cases.
Thiago Santos [Thu, 2 Dec 2010 06:44:37 +0000 (03:44 -0300)]
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
Thiago Santos [Thu, 2 Dec 2010 06:08:52 +0000 (03:08 -0300)]
camerabin2: Adding tests for camerabin2
Adds some basic tests for camerabin2
Thiago Santos [Thu, 2 Dec 2010 05:21:49 +0000 (02:21 -0300)]
tests: camerabin2: adds tests for elements
Adds basic tests for both imagecapturebin and for
videorecordingbin elements
Thiago Santos [Thu, 2 Dec 2010 04:33:19 +0000 (01:33 -0300)]
viewfinderbin: Improve elements creation
Be more careful with cleanup of elements. Also add some logs and
improve docs a little.
Thiago Santos [Thu, 2 Dec 2010 03:19:05 +0000 (00:19 -0300)]
camerabin2: remove unused code
General cleanup, removing unused bits
Thiago Santos [Tue, 30 Nov 2010 23:13:27 +0000 (20:13 -0300)]
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.
Thiago Santos [Tue, 30 Nov 2010 23:15:47 +0000 (20:15 -0300)]
camerabin2: Fix set/get property function names
Add more consistency to the function names by using
gst_camera_bin as the other functions.
Thiago Santos [Tue, 30 Nov 2010 21:19:20 +0000 (18:19 -0300)]
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.
Thiago Santos [Tue, 30 Nov 2010 14:40:18 +0000 (11:40 -0300)]
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.
Thiago Santos [Tue, 30 Nov 2010 14:06:33 +0000 (11:06 -0300)]
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.
Thiago Santos [Tue, 30 Nov 2010 12:28:50 +0000 (09:28 -0300)]
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.
Thiago Santos [Mon, 29 Nov 2010 21:53:34 +0000 (18:53 -0300)]
camerabin2: Cleanup capturing flag
Cleanup capturing flag when the source switches back to the
viewfinder mode
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.