summaryrefslogtreecommitdiff
path: root/gst-libs/gst/video
AgeCommit message (Collapse)AuthorFilesLines
2015-12-03videodecoder: Avoid pushing buffers before segment startEdward Hervey1-7/+7
In the case where the stream doesn't have a framerate set and the frames don't have a duration set, we still want to use the clipping path to make sure we don't push buffers outside of the segment. The problem was the previous iteration was setting a duration of 2s, which meant that any buffer which was less than 2s before the segment start would end up getting pushed. Instead, use a saner 40ms (25fps single frame duration) to figure out whether the frame could be within the segment or not
2015-12-02Drop usage of deprecated g-ir-scanner --strip-prefix flagReynaldo H. Verdejo Pinochet1-1/+2
2015-11-11videometa: add GstVideoAffineTransformationMetaMatthew Waters3-0/+224
Adds a simple 4x4 affine transformations meta for passing arbitrary transformations on buffers. Based on patch by Matthieu Bouron https://bugzilla.gnome.org/show_bug.cgi?id=731791
2015-11-04video: blend using OVER operationArnaud Vrac1-37/+65
Also support all premultiplied/non-premultiplied source/destination configurations https://bugzilla.gnome.org/show_bug.cgi?id=681447
2015-11-03videodecoder: Print GstClockTimeDiff as a signed integer in debug logsLuis de Bethencourt1-2/+2
2015-11-02videodecoder: subtract time difference with GST_CLOCK_DIFFLuis de Bethencourt1-1/+2
To ensure the subtraction of two GstClockTime values (which are guint64) can be negative. Use GST_CLOCK_DIFF which returns a gint64. CID 1338049
2015-10-29videodecoder: Print another time difference as a signed integer instead of a ↵Sebastian Dröge1-2/+2
huge unsigned one
2015-10-29videodecoder: Print GstClockTimeDiff as a signed integer in debug logsSebastian Dröge1-2/+2
2015-10-22video: overlay-composition: fix rectangle and composition cast macrosPavel Bludov1-2/+2
Closing parenthesis was missing in two cases. https://bugzilla.gnome.org/show_bug.cgi?id=756893
2015-10-17video: Add out annotations to the out parameters of ↵Sebastian Dröge1-2/+2
gst_video_calculate_display_ratio() https://bugzilla.gnome.org/show_bug.cgi?id=754567
2015-09-25Release 1.6.0Sebastian Dröge1-12/+20
2015-09-24video-dither: Use saturated add when adding ordered dither for > 8 bit targetsSebastian Dröge1-1/+1
Otherwise our 16 bit integers are going to overflow in intermediate calculations, causing video to become mostly black. https://bugzilla.gnome.org/show_bug.cgi?id=755392
2015-09-24video-frame: Fix gst_video_frame_copy() for formats with pstride==0Sebastian Dröge1-1/+7
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-15videopool: ensure allocation alignment is consistent with video alignment ↵Tim-Philipp Müller1-1/+20
requirements Make sure GstAllocationParams alignment is not less than any alignment requirement specified via GstVideoAlignment. https://bugzilla.gnome.org/show_bug.cgi?id=754120
2015-09-10video-format: add missing alpha flag for some formatsThiago Santos1-6/+8
Some formats didn't have the alpha flag marked, use the correct macro so they get it right. https://bugzilla.gnome.org/show_bug.cgi?id=754808
2015-09-07video: improve GstVideoFormatUnpack docsTim-Philipp Müller1-3/+8
https://bugzilla.gnome.org/show_bug.cgi?id=754650
2015-09-06libs: Fix build error on MinGW where "%ll" is not availableKouhei Sutou1-1/+1
"ll" isn't available on MinGW. We can use G_GINT64_MODIFIER for portable 64bit size data modifier. https://bugzilla.gnome.org/show_bug.cgi?id=754630
2015-08-18video(en|de)coder: Return TRUE when we consumed a tag event without creating ↵Sebastian Dröge2-0/+4
a new event Fixes spurious flow errors that especially break gst-validate.
2015-08-18videoencoder: fix tag handlingTim-Philipp Müller1-35/+104
Merge upstream tags with encoder tags and update whenever any of those changes. https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-16videodecoder: fix tag handlingTim-Philipp Müller1-24/+81
Before we just merged everything in pretty much random ways ad-hoc instead of keeping state properly. In 0.10 that was how it worked, but in 1.x the tag events sent should always reflect the latest state and replace any previous tags. So save the upstream (stream) tags, and save the tags set by the decoder subclass with merge mode, and then update the merged tags whenever either of those two changes. This slightly changes the behaviour of gst_video_decoder_merge_tags() in case it is called multiple times, since now any call replaces the previously-set tags. However, it leads to much more predictable outcomes, and also we are not aware of any subclass which sets this multiple times and expects all the tags set to be merged. If more complex tag merging scenarios are required, we'll have to add a new vfunc for that or the subclass has to intercept the upstream tags itself and send merged tags itself. https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-15Revert "videodecoder: expose default query handling function"Thiago Santos2-17/+3
Apparently I forgot how gobject works, there is no need to expose it directly as one can call it from the parent_class pointer This reverts commit ea9b6a7e3c4eea512650adf530b7f1acb0eccd84.
2015-08-15videodecoder: add option to use default pad accept-caps handlingThiago Santos2-16/+49
Add gst_video_decoder_set_use_default_pad_acceptcaps() to allow subclasses to make videodecoder use the default pad acceptcaps handling instead of resorting to the caps query that is, usually, less efficient and unecessary API: gst_video_decoder_set_use_default_pad_acceptcaps
2015-08-14videodecoder: expose default query handling functionThiago Santos2-3/+16
Subclasses can use it to select what queries they want to handle and forward the rest to the default handling function. API: gst_video_decoder_sink_query_default https://bugzilla.gnome.org/show_bug.cgi?id=753623
2015-08-10videoencoder: remove empty line to make g-i-scanner happyThiago Santos1-1/+0
gstvideoencoder.h:228: Warning: GstVideo: "@transform_meta" parameter unexpected at this location: * @transform_meta: Optional. Transform the metadata on ...
2015-08-10videodecoder: documentation cleanupThiago Santos1-41/+52
Remove some whitespace and break lines longer than 80 columns
2015-08-10videodecoder: push pending events before gapThiago Santos1-13/+30
Push all pending events before pushing the gap. This ensures the segment is pushed before the gap so it can be properly translated to the running time Includes unit test. https://bugzilla.gnome.org/show_bug.cgi?id=753360
2015-07-15video: improve loggingWim Taymans9-2/+170
Add logging categories for most video objects. Remove some useless debug lines in video-info and videotestsrc. Add a performance debug line in the video scaler.
2015-07-09doc/build: Fix doc typosNicolas Dufresne1-1/+1
This minor update should workaround a build system bug. While the makefile has been updated to generate more enum type, there is nothing that updates the header and would lead to the generated code to be produced again. This minor doc fix should ensure no one get a build with missing symbols.
2015-07-07video/audio meta: transform_func: return FALSE if not supported or failedHyunjun Ko2-0/+28
https://bugzilla.gnome.org/show_bug.cgi?id=751778
2015-07-07video: Add some more GTypes for enumsSebastian Dröge1-1/+1
2015-07-07GstVideoScaler: Initialised scaling functions to get rid of compiler messagesTobias Mueller1-6/+9
E.g. video-scaler.c: In function 'gst_video_scaler_horizontal': video-scaler.c:1332:3: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized] func (scale, src, dest, dest_offset, width, n_elems); ^ video-scaler.c: In function 'gst_video_scaler_vertical': video-scaler.c:1373:3: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized] func (scale, src_lines, dest, dest_offset, width, n_elems); ^ GCC's analyses seem to be correct, for the simple fact that if you pass get_functions a known format, but no hscale or vscale, it'll return True without having done anything. Some callers check for the scale values to be not NULL, but then hscale->resampler.max_taps could return 0. A different approach to the one presented in this patch is to check for those max_taps, too, before calling get_functions. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=752051
2015-07-06{audio,video}info: Add GST_TYPE_{AUDIO,VIDEO}_INFO macrosSebastian Dröge1-0/+1
2015-07-06video-info: implement GstVideoInfo as boxed typeMarcin Kolny2-13/+73
GstVideoInfo usually is created on the stack, but boxed type can be useful for bindings. https://bugzilla.gnome.org/show_bug.cgi?id=752011
2015-07-06videodecoder: Fix setting default pixel-aspect-ratioStian Selnes1-2/+7
It's needed to check if pixel-aspect-ratio exists before fixating. It does not exist if input caps is not set yet and allowed caps does not contain pixel-aspect-ratio (e.g. when using GST_VIDEO_CAPS_MAKE) https://bugzilla.gnome.org/show_bug.cgi?id=751932
2015-07-01{audio,video}{en,de}oder: Also copy POOL metas and make sure to copy over ↵Sebastian Dröge2-12/+2
metas when creating subbuffers POOL meta just means that this specific instance of the meta is related to a pool, a copy should be made when reasonable and the flag should just not be set in the copy.
2015-06-30videodecoder: Add transform_meta() vfunc with default implementationSebastian Dröge2-2/+89
The default implementation copies all metadata without tags, and metadata with only the video tag. Same behaviour as in GstVideoFilter. This currently does not work if the ::parse() vfunc is implemented as all metas are getting lost inside GstAdapter. https://bugzilla.gnome.org/show_bug.cgi?id=742385
2015-06-30videoencoder: Add transform_meta() vfunc with default implementationSebastian Dröge2-1/+89
The default implementation copies all metadata without tags, and metadata with only the video tag. Same behaviour as in GstVideoFilter. https://bugzilla.gnome.org/show_bug.cgi?id=742385
2015-06-29videoscaler: remove check for below zero for unsigned valueLuis de Bethencourt1-2/+2
CLAMP checks both if value is '< 0' and '> max'. Value will never be a negative number since it is a division of an unsigned integer (i). Removing that check and only checking if it is bigger than max and setting it appropriately. CID #1308950
2015-06-29videofilter: Also copy metas if their API has no tags attached to itSebastian Dröge1-3/+3
This is the default basetransform behaviour, being more strict than that is not really useful.
2015-06-19multiview: Add gst_video_multiview_guess_half_aspect()Jan Schmidt2-0/+45
Add a utility function that, given a video size and a packed stereoscopic mode, attempts to guess if the video is packed at half resolution per view or not, since very few videos provide the information.
2015-06-17video-converter: make sure we draw enough border for YUY2 formatsWim Taymans1-6/+7
Round width up to 2 so that we draw all border pixels for YUY2 formats
2015-06-17video-scaler: fix scaling of odd width for YUY2 formatsWim Taymans1-23/+21
We need to scale groups of 4 bytes for YUY2 formats so round up to 4. It's possible that there is no Y byte for the last pixel so make sure we clamp correctly.
2015-06-16gi: Use INTROSPECTION_INIT for --add-init-sectionNicolas Dufresne1-1/+1
This new define was added to common. The new init section fixed compilation warning found in the init line that was spread across all files.
2015-06-16gi: Skip Scaler, Chroma, Conveter, Dither constructorNicolas Dufresne4-5/+5
Please box these types before removing the skip mark.
2015-06-16gi: Add (transfer none) for various video metaNicolas Dufresne2-11/+16
These method chains gst_buffer_add_meta() which is also transfer none.
2015-06-13videoencoder: fix gtk-doc chunk for new functionTim-Philipp Müller1-3/+4
2015-06-12videoencoder: Add gst_video_encoder_set_min_pts()Matej Knopp2-0/+52
For streams with reordered frames this can be used to ensure that there is enough time to accomodate first DTS, which may be less than first PTS https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-13videodecoder: Copy multiview-mode, flags and view count from ref infoJan Schmidt1-0/+6
When copying info from the reference input state, duplicate all the fields of the video info. The sub-class will have the chance to override them later.
2015-06-12video-scaler: enforce same taps when combining scalersWim Taymans1-1/+3
2015-06-12video-scaler: make sure to clamp to max widthWim Taymans1-4/+11
When estimating the area that should first be vertically scaled, make sure we clamp to the max input size or else we get invalid reads.