Commit graph

30 commits

Author SHA1 Message Date
Sebastian Dröge
8478aa7aed video-frame: Take TFF flag from the video info if it was set in there
The caps and thus the video info have preference. If the field order is
set in there then it applies to all frames.

This works around issues where the tff field order is only set in the
caps but not additionally in the buffer flags.
2019-08-16 09:00:28 +00:00
Thibault Saunier
b63fc21d22 video: Safe guard info->finfo when mapping a frame
Not sure how that slept through but that case is possible and leads
to segfaults in any code path of the function right now.

https://bugzilla.gnome.org/show_bug.cgi?id=795436
2018-04-21 20:47:31 -03:00
Nicolas Dufresne
1852e7b88a doc: Add missing map flag to gst_video_frame_map()
Add missing map flag, and also add unmap call.
2016-09-19 11:27:10 -04:00
Tim-Philipp Müller
9e311960cd video: fix example code in gst_video_frame_map() docs
GST_VIDEO_FRAME_PLANE_PSTRIDE() does not exist.

https://bugzilla.gnome.org/show_bug.cgi?id=764414
2016-04-02 15:19:44 +01:00
Tim-Philipp Müller
c64dae3e1d video: flesh out docs for gst_video_frame_map() 2016-02-25 17:46:31 +00:00
Tim-Philipp Müller
a62c7bd54c Fix use of undeclared core debug category symbols
libgstreamer currently exports some debug category
symbols GST_CAT_*, but those are not declared in any
public headers.

Some plugins and libgstvideo just use GST_DEBUG_CATEGORY_EXTERN()
to declare and use those, but that's just not right at
all, and it won't work on Windows with MSVC. Instead look
up the categories via the API.
2016-02-20 11:31:43 +00:00
Sebastian Dröge
1fb85733f5 video-frame: Fix gst_video_frame_copy() for formats with pstride==0
v210, UYVP and IYU1 are complex formats for which pixel stride does not really
have a meaning. If we copy width*pstride bytes per line, it's not going to do
the right thing. As a fallback, copy stride bytes per line. This might copy
uninitialized bytes at the end of each line, but at least copies the frame.

https://bugzilla.gnome.org/show_bug.cgi?id=755392
2015-09-24 17:39:43 +02:00
Tim-Philipp Müller
5d456c7adc video-frame: fix height/width assertions
As commit 274984e8 states:
When doing CROP META it is expected that the width and/or height
in the GstVideoMeta is bigger or equal to the caps negotiated size.

https://bugzilla.gnome.org/show_bug.cgi?id=741030
2015-03-18 20:40:42 +00:00
Nicolas Dufresne
274984e83b video-frame: Relax width/height assertion
When doing CROP META it is exepcted that the width and/or height in the
GstVideoMeta is bigger or equal to the caps negotiated size.
2015-03-13 10:30:43 +00:00
Sebastian Dröge
afcc0b3c50 video-frame: Mapping a frame with inconsistent values between GstVideoMeta and GstVideoInfo is a bug
It will cause the frame to be initialized with inconsistent values that then
later can cause crashes or any other kind of interesting and hard to debug
bugs.
2014-11-28 10:27:28 +01:00
Sebastian Dröge
269f642c45 video-frame: Don't ref buffers twice when mapping 2014-09-16 01:07:18 +03:00
Sebastian Dröge
40a293d44d video-frame: Add GST_VIDEO_FRAME_MAP_FLAG_NO_REF
This makes sure that the buffer is not reffed another time when
storing it in the GstVideoFrame, keeping it writable if it was
writable.

https://bugzilla.gnome.org/show_bug.cgi?id=736118
2014-09-12 14:39:16 +03:00
Sebastian Dröge
9398207101 videoframe: Initialise GstVideoFrame to zeroes if mapping fails
This should allow for more meaningful errors. Dereferencing NULL
is more useful information than dereferencing a random address
happened to be on the stack.
2014-04-16 19:53:46 +02:00
Nicolas Dufresne
f52fd7a68b video: Don't use extra plane and componenent for tile format
Instead of using extra plane, we encode the number of tiles in x and y in the stride of
each planes (i.e. y_tiles << 16 | x_tiles) and introduce tile_mode, tile_width and
tile_height into GstVideoFormatInfo structure.

https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:47:03 -05:00
Nicolas Dufresne
c8597330a9 video-frame: scale vertical tiles based on subsampling
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:45 -05:00
Nicolas Dufresne
53605e35f4 video-frame: fix tiled pixel stride
Pixel stride is per component, not per plane. We get the tile mode from
the pixelstride of the TILE component.

https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:37 -05:00
Wim Taymans
f3e989179b video-format: fix off-by-one for tiled coordinates
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:17 -05:00
Wim Taymans
980811c120 video-frame: fix copy of tiled formats
Add code to copy tiled planes.

https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:45:50 -05:00
Wim Taymans
f8e3a25415 video-frame: fix plane copy for index plane
Move the code to handle the index plane in the _copy_plane.
2013-12-25 10:54:55 +01:00
Wim Taymans
30a0cccbf6 video-frame: copy offsets from metadata
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708606
2013-09-23 11:55:07 +02:00
Wim Taymans
052a1d0f1e video: set interlaced flag correctly in frame
We only look at the interlaced buffer flag in mixed mode, in other modes we
always need to set the interlaced flag.
2013-03-25 09:59:45 +01:00
Sebastian Dröge
3f82e919dd libs: Use foo/foo.h as single-include header consistently everywhere
https://bugzilla.gnome.org/show_bug.cgi?id=688785
2012-12-12 17:13:10 +00:00
Tim-Philipp Müller
5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Wim Taymans
211b8b6004 video-frame: only copy the visible region
Make sure to only copy the visible region instead of assuming that the complete
stride is visible (which is not the case when padding is used).
2012-08-20 16:17:27 +02:00
Arnaud Vrac
8ab19ba9ca video-frame: fix invalid plane id on video frame mapping error 2012-07-26 01:52:25 +02:00
Wim Taymans
f9de2f499b video-frame: use interlacing buffer flags
Also use the buffer flags to enhance the GstVideoInfo flags in the case where
there was metadata on the buffers.
2012-07-23 13:32:59 +02:00
Wim Taymans
4b56b731d2 video-frame: add interlace flag
Add an interlace flag so that we can see if a frame is interlaced or progressive
in the mixed interlace-mode.
2012-07-20 10:20:38 +02:00
Edward Hervey
2817bdadc9 libs: Remove "Since" markers and minor doc fixups 2012-07-13 12:11:06 +02:00
Wim Taymans
1ed29bdb90 video-frame: handle map errors
Error out when something failed
2012-06-26 11:12:00 +02:00
Wim Taymans
ecdfb96f17 video: move methods into separate files
Move different video functionalities into different files
2012-06-05 12:47:22 +02:00