glsdk/gstreamer1-0-plugins-bad.git
2 years agogstwaylandsink: Reset redraw_pending in PAUSE to READY transition master
Prasad, Ram [Tue, 20 Feb 2018 10:48:44 +0000 (10:48 +0000)]
gstwaylandsink: Reset redraw_pending in PAUSE to READY transition

A boolean redraw_pending is being used in render_frame to check
if previous frame submitted to weston has been displayed or not.
if displayed, a callback sets this to FALSE or drop the frame if
it is still TRUE.

Gstreamer applications which transit from state PLAY->PAUSE->READY and
back to PLAY->PAUSE->READY state doesn't show the video from second playback
since this flag was not reset to FALSE and all frames will get dropped.

Resetting the flag in PAUSE-->READY transition resolves this issue.

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agogstwaylandsink: Fix scale up with padded video
Pooja Prajod [Mon, 25 Sep 2017 08:32:05 +0000 (14:02 +0530)]
gstwaylandsink: Fix scale up with padded video

Usecases which expects waylandsink cropping support
negotiates with padded height and width. After cropping,
the destination viewport is set with the negotiated
height and width which results in scaled up output.
To fix this the args while setting dest viewport should
be taken as the height and width present in the crop metadata

Signed-off-by: Pooja Prajod <a0132412@ti.com>
Signed-off-by: Ramprasad N <x0038811@ti.com>
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
3 years agokmssink: add YUYV support
Eric Ruei [Tue, 14 Mar 2017 21:24:07 +0000 (17:24 -0400)]
kmssink: add YUYV support

Signed-off-by: Eric Ruei <e-ruei1@ti.com>
3 years agokmssink: remove DCE dependencies
Eric Ruei [Wed, 15 Mar 2017 13:08:13 +0000 (09:08 -0400)]
kmssink: remove DCE dependencies

Replace DCE related API calls to libdrm and omapdrm API calls
to decouple DCE from kmssink

Signed-off-by: Eric Ruei <e-ruei1@ti.com>
3 years agogstwaylandsink: add input format I420 support
Eric Ruei [Wed, 22 Feb 2017 15:49:01 +0000 (10:49 -0500)]
gstwaylandsink: add input format I420 support

The software-based video decoder produces the output in I420 format. To display
the output without additional ARM MHz consumed in video format conversion,
the function gst_wl_memory_construct_wl_buffer is enhanced to support I420 format.

Signed-off-by: Eric Ruei <e-ruei1@ti.com>
4 years agogstwaylandsink: Fix same process looping issue
Pooja Prajod [Fri, 20 Jan 2017 12:24:16 +0000 (17:54 +0530)]
gstwaylandsink: Fix same process looping issue

In a usecase where waylandsink was used to loop
from same process resulted in wl_drm error in
omap_bo_get_name. In earlier versions,
omap_bo was used for hardware accelerated usecases.
Now we directly use drm ioctls to use drm dumb buffers.
So there is a difference between the allocator fd and
display fd (which has been authenticated by GetMagic())
The drm ioctl associated with _get_name was using
bo->dev->fd. Replacing this with display->fd resolves
the issue.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agokmssink: Handle usecase where display is disabled
Pooja Prajod [Wed, 14 Dec 2016 09:15:42 +0000 (14:45 +0530)]
kmssink: Handle usecase where display is disabled

In some usecases HDMI is connected but is disabled by default.
In such scenarios drmGetEncoder fails. This patch iterates over
all possible encoders and stores the crtc accordingly.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstkmssink: Store encoder and plane data
a0132412@ti.com [Tue, 27 Sep 2016 19:13:57 +0000 (19:13 +0000)]
gstkmssink: Store encoder and plane data

GstDrmAllocator opens the drm device and never closes it in
the lifetime of process. For a gsttestplayer kind of usecase,
kmssink is invoked iteratively from same process. The following
things should be taken care for such a usecase:
1. Hold the reference to the drm device so that kmssink donot
   lose the mastership to the allocator
2. Since the last close is not called, get encoder functions fail.
   Since encoder remains same for all iterations, store this as a
   library static variable.
3. The plane data also remains the same. This can also be saved for
   future iterations

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstwaylandsink: Consolidate header files to avoid circular dependency
a0132412@ti.com [Wed, 13 Jul 2016 16:10:11 +0000 (16:10 +0000)]
gstwaylandsink: Consolidate header files to avoid circular dependency

Certain features added to wldisplay needs pointer
to wlwindow and other headers. This causes a circular
dependency during definition. Consolidating all header
definition to one header file resolves this

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstkmssink: Use Atomic mode setting over SetPlane
Pooja Prajod [Wed, 29 Jun 2016 16:12:09 +0000 (21:42 +0530)]
gstkmssink: Use Atomic mode setting over SetPlane

We do not have a call back mechanism in SetPlane to indicate that
the buffer can be freed. Atomic mode setting provides such a callback.
This also reduces kmssink buffer usage to 2 buffers at a time compared to
5 buffers in the previous implementation.

Unused members from plane_data structure have been removed

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogst-waylandsink: add crop support
Pooja Prajod [Tue, 7 Jun 2016 10:10:10 +0000 (15:40 +0530)]
gst-waylandsink: add crop support

Weston has the support of cropping buffers by using
wl_scaler and wl_viewport interface.

Using this approach, video cropping can be achieved using
openGL and no additional H/W is required.

Author: Subhajit Paul <a0132170@ti.com>
Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstwaylandsink: Add mouse drag and drop support
Pooja Prajod [Mon, 6 Jun 2016 10:39:39 +0000 (16:09 +0530)]
gstwaylandsink: Add mouse drag and drop support

This patch adds mouse input listeners to WlDisplay instance.
Due to circular dependency that is introduced between
WlWindow and Wldisplay by this change, we have a new header file
which has struct definitions of both WlDisplay and WlWindow.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogsth264parse: Fix create() width and height calculation
Pooja Prajod [Fri, 3 Jun 2016 11:58:27 +0000 (17:28 +0530)]
gsth264parse: Fix create() width and height calculation

Ignore the frame_cropping flag set in the SPS and instead
assign the maximum width and height.

Also, always set SPS width and height instead of override
by upstream components

Signed-off-by: Ramprasad <x0038811@ti.com>
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agoModify parser to interpolate pts
Pooja Prajod [Fri, 3 Jun 2016 09:27:40 +0000 (14:57 +0530)]
Modify parser to interpolate pts

Parser interpolates the pts when the current pts value is invalid.
This ensure that all the buffers obtained from parser are timestamped

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogst-bad: Increase rank for vc1parse and jpegparse
Pooja Prajod [Thu, 2 Jun 2016 14:03:35 +0000 (19:33 +0530)]
gst-bad: Increase rank for vc1parse and jpegparse

vc1parse and jpegparse have a rank of none. Hence
playbin fails to pick these parsers and inturn ducati
plugin is not picked up.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agokmssink: Fix memory leak and restrict number of buffers
Pooja Prajod [Mon, 30 May 2016 13:59:55 +0000 (19:29 +0530)]
kmssink: Fix memory leak and restrict number of buffers

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstwaylandsink: Add DRM mem allocation property
Pooja Prajod [Mon, 30 May 2016 12:01:49 +0000 (17:31 +0530)]
gstwaylandsink: Add DRM mem allocation property

Waylandsink is capable of allocating DRM based memory
and shm based memory. The use-drm property allows the user
to manually set allocation mode to drm based dmabuf memory.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agodrm allocator: Change mem_type to dmabuf and enable debug
Pooja Prajod [Mon, 30 May 2016 11:49:57 +0000 (17:19 +0530)]
drm allocator: Change mem_type to dmabuf and enable debug

A generic plugin can check the memory allocated through DRM Allocator
as a dmabuf memory and work out of the fd. So the mem_type needs to be
set as dmabuf.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogst-bad: Make DRM devide a member of allocator
Pooja Prajod [Fri, 27 May 2016 16:23:14 +0000 (21:53 +0530)]
gst-bad: Make DRM devide a member of allocator

The Drm device fd was stored as a static variable.
Since the behavior of static variable can be platform
dependent, it's a safer option to have it as a member
in allocator.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogst-bad: Add DRM support to wayland
Pooja Prajod [Fri, 27 May 2016 11:17:23 +0000 (16:47 +0530)]
gst-bad: Add DRM support to wayland

Waylandsink works out of shm memory. We have a DRM
based memory allocator in place. Adding wl_drm support
enables us to use DRM buffers without copy

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogst-bad: Add kmssink support
a0132412@ti.com [Fri, 20 May 2016 20:32:06 +0000 (20:32 +0000)]
gst-bad: Add kmssink support

This patch adds kmssink support. The sink works
out of libdrm API's. The sink also has a bufferpool
based on DRM Allocator.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogst-bad: Add DRM Allocator support
a0132412@ti.com [Fri, 20 May 2016 20:31:39 +0000 (20:31 +0000)]
gst-bad: Add DRM Allocator support

This patch adds support for a DRM based allocator.
It uses DRM dumb buffers and associated APIs for
dmabuf allocation.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agocleanup: Reset repository to gst-plugins-bad-1.6.3
Karthik Ramanan [Wed, 25 May 2016 08:41:25 +0000 (14:11 +0530)]
cleanup: Reset repository to gst-plugins-bad-1.6.3

Source:
https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.6.3.tar.xz

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
4 years agoInitial commit for gst-plugins-bad-1.6.3
Karthik Ramanan [Wed, 25 May 2016 08:35:43 +0000 (14:05 +0530)]
Initial commit for gst-plugins-bad-1.6.3

This is taken from
https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.6.3.tar.xz

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
5 years agogsth264parse: Fix create() width and height calculation gst_1.2.x
Karthik Ramanan [Mon, 28 Mar 2016 12:25:33 +0000 (17:55 +0530)]
gsth264parse: Fix create() width and height calculation

Ignore the frame_cropping flag set in the SPS and instead
assign the maximum width and height.

Also, always set SPS width and height instead of override
by upstream components

Signed-off-by: Ramprasad <x0038811@ti.com>
Signed-off-by: Karthik Ramanan <a0393906@ti.com>
5 years agogst-waylandsink: add crop support
Subhajit Paul [Tue, 19 Jan 2016 13:33:24 +0000 (19:03 +0530)]
gst-waylandsink: add crop support

Weston has the support of cropping buffers by using
wl_scaler and wl_viewport interface.

Using this approach, video cropping can be achieved using
openGL and no additional H/W is required.

5 years agogst-waylandsink: Add title parameter
Nikhil Devshatwar [Wed, 14 Oct 2015 12:06:07 +0000 (17:36 +0530)]
gst-waylandsink: Add title parameter

Add a title plugin parameter which can be used for
setting the title of the wayland surface managed by the sink.
Use the title in create_window to set the passed title.
Also, Implement the corresponding get/set_property calls.

Signed-off-by: Nikhil Devshatwar <nikhil.nd@ti.com>
5 years agoGstDRMBufferPool support fix:
Jacob Stiffler [Mon, 27 Apr 2015 12:27:59 +0000 (08:27 -0400)]
GstDRMBufferPool support fix:

Conditionally build drm library based on if kmssink dependencies are
by pkgconfig found.

Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
5 years agogst-waylandsink: Remove drm bufferpool instance from waylandsink to fix socket leaks
Pooja Prajod [Fri, 5 Jun 2015 10:52:00 +0000 (16:22 +0530)]
gst-waylandsink: Remove drm bufferpool instance from waylandsink to fix socket leaks

In the current test cases waylandsink is not expected to allocate
drm buffers to the peers. So it is redundant to have drm bufferpool
instance as part of waylandsink. Also due to same fd used
in display structure and drm bufferpool device fd, there were socket leaks.
Some re-initializations and checks have been added to avoid plausible
segmentation fault.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agoFix memleak due to unfreed hash-table
Pooja Prajod [Thu, 7 May 2015 09:19:01 +0000 (14:49 +0530)]
Fix memleak due to unfreed hash-table

The code for freeing the hash-table was present only in finalize.
This is resource part of the sink instance and therefore should be freed
in stop function as well.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agoSolve segmentation fault in drm_handle_format
Pooja Prajod [Tue, 5 May 2015 10:50:20 +0000 (16:20 +0530)]
Solve segmentation fault in drm_handle_format

The format info as part of display is unnecessary. This patch removes
the code which for storing format info. Since format info was stored in an
array, there will not be  overflow pertaining to this.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agogst-waylandsink: Cleanup buffer in NULL state
Pooja Prajod [Tue, 28 Apr 2015 14:45:52 +0000 (20:15 +0530)]
gst-waylandsink: Cleanup buffer in NULL state

When the pipeline goes to NULL state from playing state,
the last buffer is not cleaned up and stays on surface.
This patch calls a display destrot function which cleans up the surface.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agoImprovise DRM bufferpool to solve memory leak
Pooja Prajod [Thu, 16 Apr 2015 16:15:20 +0000 (21:45 +0530)]
Improvise DRM bufferpool to solve memory leak

The DRM bufferpool was not deleting omap bo created during allocation.
This causes memory leak. This patch saves the bo as a metadata on buffer
which can be deleted while freeing the buffer.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
SOlve DRM pool memleak

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agoModify parser to interpolate pts
Pooja Prajod [Tue, 7 Apr 2015 10:16:10 +0000 (15:46 +0530)]
Modify parser to interpolate pts

Parser interpolates the pts when the current pts value is invalid.
This ensure that all the buffers obtained from parser are timestamped

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agoEnable mouse movement for videos on waylandsink
Pooja Prajod [Mon, 16 Mar 2015 13:29:28 +0000 (18:59 +0530)]
Enable mouse movement for videos on waylandsink

This patch enables grab, drag and ungrab of videos
that are being played on waylandsink.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agoWaylandsink: Workaround for partial frame delay artifacts
Pooja Prajod [Mon, 9 Mar 2015 12:37:59 +0000 (18:07 +0530)]
Waylandsink: Workaround for partial frame delay artifacts

Some test cases results in partial frame delay because
buffers are reused while its displayed. This patch ensures
that current buffers is available only when you receive a
new buffer.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agovc1parse and jpegparse : Fixes plugin ranks
Pooja Prajod [Wed, 4 Feb 2015 12:42:58 +0000 (18:12 +0530)]
vc1parse and jpegparse : Fixes plugin ranks

Fix plugin ranks so that they are picked by playbin

5 years agowaylandsink: Removed dependency on dri2
Karthik Ramanan [Thu, 15 Jan 2015 07:17:31 +0000 (12:47 +0530)]
waylandsink: Removed dependency on dri2

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
5 years agoAdded KMSsink support
Pooja Prajod [Fri, 12 Dec 2014 07:58:10 +0000 (13:28 +0530)]
Added KMSsink support

5 years agoModified waylandsink to accept NV12 format
Pooja Prajod [Fri, 12 Dec 2014 07:27:22 +0000 (12:57 +0530)]
Modified waylandsink to accept NV12 format

Wayland sink now accepts NV12 format buffers. A support function gst_wl_buffer_priv
has been added to check if it is a buffer with GstMetaDmabuf metadata set and
create a wl_buffer. A hashtable is also maintained with GstMetaDmabuf fd as key

5 years agoAdded GstDRMBufferPool support
Pooja Prajod [Thu, 11 Dec 2014 10:12:39 +0000 (15:42 +0530)]
Added GstDRMBufferPool support

GstDRMBufferPool enabled creation of a bufferpool with extended features.
The pool stores the element that created it, device for drm allocation,
height, width and size of buffers.
All the buffers allocated are through drm. The buffers have dmabuf, crop
and video metadata set.

5 years agoInitial commit of gstreamer-1.0-plugins-bad
Karthik Ramanan [Wed, 29 Apr 2015 09:42:07 +0000 (15:12 +0530)]
Initial commit of gstreamer-1.0-plugins-bad

This is taken from
http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.2.3.tar.xz

Signed-off-by: Karthik Ramanan <a0393906@ti.com>