Sebastian Dröge
58592a2af3
audio/video-info: Properly initialize the info structures in set_format()
...
And don't assume in other code that set_format() preserves any fields at
all. These assumptions were already made here for fields that were changed
by set_format().
2013-12-30 10:53:24 +01:00
Sebastian Dröge
65732d9c97
audio/video-info: Initialize the complete struct to 0 in the beginning
...
Instead of only initializing some parts in some code paths. Also
makes it easier to use the reserved bits of the structs later.
https://bugzilla.gnome.org/show_bug.cgi?id=720810
2013-12-30 10:15:20 +01: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
Lionel Landwerlin
aedca7acfc
colorbalance: add missing annotation for list_channels()
...
https://bugzilla.gnome.org/show_bug.cgi?id=720999
2013-12-24 09:25:53 +00:00
Edward Hervey
b97c711def
audio/video: Initialize all {audio|video}info fields
...
Fixes "Unitialized Scalar Variable" issues reported by Coverity.
Has the added advantage of detecting whether somebody *does* use those
fields (ending up with a invalid address).
https://bugzilla.gnome.org/show_bug.cgi?id=720810
2013-12-20 14:47:22 +01:00
Sebastian Dröge
27c1261c72
video-format: Document usage of GST_VIDEO_FORMAT_ENCODED
...
This must only ever be used in caps in combination with a non-system
memory GstCapsFeatures, and where it does not make sense to specify
any of the other video formats. Examples of this would be in gst-vaapi.
2013-12-17 17:25:07 +01:00
Sebastian Dröge
8499a0e35a
Revert "video: specify/restrict usage of GST_VIDEO_FORMAT_ENCODED"
...
This reverts commit 5fcdabd907
.
Instead of making it impossible to use the ENCODED format we should
just document that it must not be used for capsfeature-less caps.
Also this commit broke API/ABI.
2013-12-17 17:23:19 +01:00
Sebastian Dröge
3e61449c86
videoencoder: Release the allocator on hard resets
2013-12-17 17:10:19 +01:00
Julien Isorce
2e38741b94
videodecoder: release buffer pool and allocator on full reset
...
It allows to release the buffer pool sooner (i.e. when going
to GST_STATE_READY). Previously it was released in finalize.
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=720389
2013-12-16 16:07:05 +00:00
Sebastian Dröge
b5d26f3907
videodecoder: gst_video_decoder_release_frame() is available since 1.2.2
2013-12-13 14:37:24 +01:00
Edward Hervey
5fcdabd907
video: specify/restrict usage of GST_VIDEO_FORMAT_ENCODED
...
GST_VIDEO_FORMAT_ENCODED was added to support *extracting* video-related
information (like width, height, framerate,...) from caps.
It is __NOT__ intended to be used as a format field on video/x-raw caps.
2013-12-11 16:51:42 +01:00
Sebastian Dröge
9ec4eaa866
convertframe: Fix indention
2013-12-09 16:34:22 +01:00
Sebastian Dröge
729e3c8a10
videoencoder: Add sink_query() src_query() virtual functions
...
Based on the videodecoder change by Nicolas Dufresne and applied
here for consistency.
https://bugzilla.gnome.org/show_bug.cgi?id=720103
2013-12-09 16:34:19 +01:00
Nicolas Dufresne
09a6ca97d2
videodecoder: Add sink_query() src_query() virtual
...
https://bugzilla.gnome.org/show_bug.cgi?id=720103
2013-12-09 09:41:46 -05:00
Olivier Crête
d273d0c156
videocodecframe: Correct function name in doc
2013-12-06 19:27:08 -05:00
Olivier Crête
779e360352
videoencoder: Remove gst_video_encoder_set/get_discont
...
They've never existed outside the header file.
2013-12-06 16:24:46 -05:00
Julien Isorce
79ef75888c
videodec/enc: clear reconfigure flag if negotiate succeeds
...
So that it avoids to send an allocation query twice.
One from an early call to gst_video_encoder_negotiate from a
subclass, then one from gst_video_encoder_allocate_output_frame.
Which means that previously gst_video_encoder_negotiate was not
clearing the GST_PAD_FLAG_NEED_RECONFIGURE even on success.
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=719684
2013-12-05 15:19:16 +00:00
Sebastian Dröge
5acc099479
videodecoder: Add API to allow subclasses to specify that they needs caps before any buffers
2013-12-05 11:36:54 +01:00
Sebastian Dröge
820d7d7798
videoencoder: Return not-negotiated if we don't have caps when the first buffer arrives
...
Otherwise things like filesrc ! jpegenc ! fakesink just crash with
a segmentation fault because subclasses expect caps to be there.
2013-12-05 11:26:55 +01:00
Justin Joy
4a81e22607
convertframe: Fix trivial memory leak in debug statement
...
gst_element_get_name() requires the caller to g_free() the return value
https://bugzilla.gnome.org/show_bug.cgi?id=719850
2013-12-04 18:03:25 +01:00
Mark Nauwelaerts
40fc306017
videodecoder: make _release_frame external API
...
... so subclasses can release a frame all the way (also from frame list)
without having to pass through _finish_frame or _drop_frame.
The latter may not be applicable, or may or may not have already
been called for the frame in question.
See https://bugzilla.gnome.org/show_bug.cgi?id=693772
2013-12-01 12:06:37 +01:00
Mark Nauwelaerts
614d35d795
videodecoder: fix spelling error in debug message
2013-12-01 12:06:36 +01:00
Matthew Waters
2e84acce58
videometa: add GstVideoGLTextureUploadMeta buffer pool option
...
allows configuration of whether GstVideoGLTextureUploadMeta is
added to buffers resulting from a buffer pool. This is sperate
to the caps feature in that an element may want to add the upload
meta itself rather than allowing the buffer pool to.
https://bugzilla.gnome.org/show_bug.cgi?id=712798
2013-11-26 14:04:38 +01:00
Thiago Santos
81471099d2
videodecoder: error out if no frames are decoded before eos
...
Raise an error in case no frames are decoded before EOS and we
have input, meaning that data was received but it was somehow invalid.
https://bugzilla.gnome.org/show_bug.cgi?id=711094
2013-11-25 10:53:25 -03:00
Thiago Santos
0765962fbc
videodecoder: allow using -1 for infinite tolerated errors
...
Allows using -1 to make videodecoder never post an error message
after decoding errors.
https://bugzilla.gnome.org/show_bug.cgi?id=711094
2013-11-25 10:53:14 -03:00
Mark Nauwelaerts
ee86a91957
videodecoder: avoid descending output timestamps
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712796
2013-11-23 19:39:52 +01:00
Sreerenj Balachandran
cd52ff313e
videodecoder: try to negotiate the buffer pool even though there is no o/p format
...
We could have allocation query before caps event and even without caps inside
the query. In such cases , the downstream can return a bufferpool object with
out actually configuring it. This feature is helpful to negotiate the bufferpool
with out knowing the output video format. For eg: some hardware accelerated
decoders can interpret the o/p video format only after it finishes the decoding
of one buffer at least.
https://bugzilla.gnome.org/show_bug.cgi?id=687183
2013-11-11 13:28:11 +01:00
Stephan Sundermann
2b45196042
navigation: Add missing out parameter annotations to GstNavigation
...
https://bugzilla.gnome.org/show_bug.cgi?id=709938
2013-10-11 23:06:55 +02:00
Stefan Sauer
9269bee9bd
videodecoder: don't overflow in bytes<->time conversion
...
fps_n and _d values can be large and this can overflow a uint. Also fix
copy'n'paste mistake in comments.
2013-10-08 09:15:21 +02: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
Olivier Crête
c10311ba70
videodecoder: If there is no PTS at all, assume it starts from the segment start
...
This is to make the multifilesrc ! pngdec case work
https://bugzilla.gnome.org/show_bug.cgi?id=688043
2013-09-19 09:52:48 +02:00
Sebastian Dröge
35ee4b056b
videodecoder/videoencoder: Mark pads as requiring reconfiguration again if negotiation fails
...
Otherwise we might end up in non-optimal configuration, especially
when a flush happened during reconfiguration.
2013-09-12 09:35:00 +02:00
Wim Taymans
d3641943b3
docs: fix some doc blocks
2013-09-09 15:52:05 +02:00
Mathieu Duponchelle
1664468eaa
videofilter: implement transform_meta virtual method.
...
If tags of the meta only contain "video", let it be copied.
2013-09-09 15:37:02 +02:00
Mathieu Duponchelle
d1cb9c994b
video/audio: #define metadata strings.
...
For instance "orientation" becomes GST_VIDEO_ORIENTATION_METADATA.
2013-09-09 15:37:02 +02:00
Tim-Philipp Müller
d7775cffb9
video: fix build without orc or older or versions
...
./.libs/libgstvideo-1.0.so: undefined reference to `video_orc_unpack_NV24'
./.libs/libgstvideo-1.0.so: undefined reference to `video_orc_pack_NV24'
2013-09-06 13:28:00 +01:00
Wim Taymans
fae9d82515
video-format: fix NV24 pack/unpack function
...
We can't reuse the NV12 functions, we need to make new ones.
2013-09-06 12:45:36 +02:00
Wim Taymans
26d04c7582
video-format: handle odd width in more pack/unpack functions
2013-09-06 12:45:36 +02:00
Tim-Philipp Müller
2f6f0ee214
video-format: minor pack_YVYU optimisation
...
Re-use already calculated line offset.
2013-09-05 18:34:21 +01:00
Wim Taymans
e55ff1e374
video-format: fix chroma offsets
2013-09-05 17:06:36 +02:00
Wim Taymans
bbeac11e74
video-format: fix unpack functions for odd formats
2013-09-05 16:16:12 +02:00
Wim Taymans
d33e73e00f
video-format: clean up pack/unpack functions
2013-09-05 15:02:17 +02:00
Wim Taymans
6508c738ff
video-format: handle odd width in various pack functions
2013-09-05 14:13:24 +02:00
Wim Taymans
9b01d9a1d9
video-format: don't overrun the arrays on UYVP
2013-09-05 12:44:32 +02:00
Matej Knopp
d03feedf4c
videoencoder: Check for invalid stop position before calculating a duration from it
...
https://bugzilla.gnome.org/show_bug.cgi?id=707332
2013-09-03 09:50:56 +02:00
Andoni Morales Alastruey
688505de88
videoencoder: fix forwarding of GstForceKeyUnit events
...
Use the frame id to match the output forced keyframe with
the event that forced it.
https://bugzilla.gnome.org/show_bug.cgi?id=706885
2013-08-27 15:11:33 +02:00
Sebastian Dröge
b0e4b5f69a
videoencoder: Make sure to return TRUE if the same caps are set again
2013-08-25 10:26:30 +02:00
Sebastian Dröge
f678411c6e
videoencoder: Only set the caps when they actually changed
2013-08-23 19:20:03 +02:00
Edward Hervey
d1cf4b2b9a
videocoder: Don't push out identical caps
...
This avoids triggering plenty of extra code/methods/overhead downstream when
we can just quickly check whenever we want to set caps whether they are
identical or not
https://bugzilla.gnome.org/show_bug.cgi?id=706600
2013-08-23 15:22:43 +02:00
Rico Tzschichholz
cb3e2fd218
videometa: fix syntax error
2013-08-21 11:20:28 +01:00
Tim-Philipp Müller
2f05268517
video: make direct includes work again
...
Not nice to break people's code if we can avoid it. Could
add a warning in the next cycle, and then require single
includes in the cycle after.
https://bugzilla.gnome.org/show_bug.cgi?id=695889
2013-08-16 14:14:15 +01:00
Sebastian Dröge
c4d7ffddb5
videodecoder: Don't reset too much if we're resetting because of a soft-flush
...
Fixes reverse playback with Ogg/Theora.
2013-08-15 14:33:18 +02:00
Sebastian Dröge
695675ab7e
videodecoder: Don't reset decoder on segment events
...
Either there was a flush before that resets everything anyway,
or resetting would make us lose information we might need if
it's just a segment update.
2013-08-15 13:26:39 +02:00
Sebastian Dröge
146bb1a153
video{en,de}coder: Add new flush vfunc as a replacement for reset
2013-08-15 13:26:39 +02:00
Sebastian Dröge
9df036c216
video{en,de}coder: Revert to old ::reset() behaviour and deprecate it
2013-08-15 13:26:38 +02:00
Youness Alaoui
17eb692c6a
videodecoder: Clear taglist on reception of a STREAM_START event
...
https://bugzilla.gnome.org/show_bug.cgi?id=705109
2013-08-12 13:02:28 +02:00
Edward Hervey
b4b9f74f8b
videodecoder: Revert previous commit
...
The 'hard' argument of reset changed signification after the latest
start/stop/reset refactoring.
2013-08-02 08:22:59 +02:00
Edward Hervey
84d476610b
videodecoder: Pass on 'hard' argument from _flush to _reset
...
When most of the code was moved from _flush() to _reset() the 'hard'
argument was no longer propagated.
2013-08-01 16:02:48 +02:00
Sebastian Dröge
047abdc944
videodecoder/encoder: Call reset() always between start() and stop() and never outside
2013-07-26 10:22:32 +02:00
Sebastian Dröge
9259ee6729
videoencoder/decoder: Call reset() before start() too
2013-07-25 14:25:31 +02:00
Sebastian Dröge
99ef452fc4
audio/videodecoder: Rename variable in macro from dec to __dec
...
Otherwise it might shadow another variable in the outside scope
and cause interesting side effects.
2013-07-25 14:11:28 +02:00
Sebastian Dröge
c24995c31c
videoencoder: There's no point in resetting the encoder when the caps change
...
The subclass will be called with set_format() and there it can drain
if necessary and reset whatever is necessary. This is the same behaviour
as for the video decoder.
2013-07-25 10:53:14 +02:00
Sebastian Dröge
291b05b40a
videoencoder: Reset internal state and segments on FLUSH_STOP
...
https://bugzilla.gnome.org/show_bug.cgi?id=656007
2013-07-25 10:46:04 +02:00
Sebastian Dröge
7074fff7b4
videoencoder: Refactor GstVideoEncoder::reset() handling a bit
...
Let gst_video_encoder_reset() call it as would be intuitive and
only call it indirectly from gst_video_encoder_drain(). Now it
actually makes sense.
2013-07-25 10:43:08 +02:00
Sebastian Dröge
612a2cf9d0
videodecoder: Refactor GstVideoDecoder::reset() handling a bit
...
Let gst_video_decoder_reset() call it as would be intuitive and
only call it indirectly from gst_video_decoder_flush(). Now it
actually makes sense.
2013-07-25 10:25:34 +02:00
Wim Taymans
409cb22253
videodecoder: Take DTS as PTS for keyframes as a last resort if we can't calculate any PTS
...
https://bugzilla.gnome.org/show_bug.cgi?id=704193
2013-07-24 09:24:45 +02:00
Wim Taymans
5732ced692
video-info: respect stride alignment
...
Increase the left padding so that we don't cause stride alignments later when we
apply the padding.
https://bugzilla.gnome.org/show_bug.cgi?id=694299
2013-07-19 10:47:27 +02:00
Wim Taymans
fad4589579
Revert "video: respect stride alignment when calculating planes offsets"
...
This reverts commit 28e1dadbfa
.
Incrementing the offset to make the plane aligned causes the image to be
incompatible with what Xv expects. Rather that forcing a memcpy in the
xvimagesink we would like to do adjust the left padding instead.
2013-07-19 10:43:38 +02:00
Arnaud Vrac
28e1dadbfa
video: respect stride alignment when calculating planes offsets
...
https://bugzilla.gnome.org/show_bug.cgi?id=694299
2013-07-18 16:23:33 +02:00
Sebastian Dröge
97fc9b5f86
videometa: Add docs to the region of interest meta functions
2013-07-17 11:43:14 +02:00
Wim Taymans
b0eb99baaa
meta: fix ROI meta getter
2013-07-16 16:54:10 +02:00
Sebastian Dröge
92b685eb74
video: Add support for NV24 color format
...
This is semi-planar 4:4:4 YUV.
https://bugzilla.gnome.org/show_bug.cgi?id=703259
2013-07-16 11:47:59 +02:00
Sebastian Dröge
95605a79c9
videometa: Add to the docs and make function names more consistent with others
2013-07-16 10:09:27 +02:00
Miguel Casas-Sanchez
38837bd468
videometa: Add Region Of Interest meta
...
https://bugzilla.gnome.org/show_bug.cgi?id=704070
2013-07-16 10:04:00 +02:00
Wim Taymans
6da245962d
videometa: fix header formatting
2013-07-12 09:37:51 +02:00
Sreerenj Balachandran
c9e65dbccc
colorbalance: Fix the typo in base_init().
2013-07-05 10:00:21 +02:00
Sebastian Dröge
a00f4f239a
videodecoder: Send all pending events with type < CAPS before sending caps
2013-07-01 11:16:34 +02:00
Mathieu Duponchelle
798ee17675
videoencoder: Send all pending events with type < CAPS before sending caps.
...
https://bugzilla.gnome.org/show_bug.cgi?id=703196
2013-07-01 11:15:21 +02:00
Sebastian Dröge
85eac2c31c
video(enc|dec)oder: Don't return not-negotiated if flushing
...
If the pad is flushing after a failed negotiation, return
GST_FLOW_FLUSHING instead from finish_frame().
https://bugzilla.gnome.org/show_bug.cgi?id=701763
2013-06-30 18:17:47 +02:00
Edward Hervey
65624afd8f
videodecoder: Fix drop frame handling at startup
...
In the unlikely case that the decoder drops a frame before the first
input frame is outputted, use the input segment (since it wasn't
carried over to the output segment yet)
https://bugzilla.gnome.org/show_bug.cgi?id=702502
2013-06-21 15:33:30 +02:00
Sebastian Dröge
ff5d3313d4
Release 1.1.1
2013-06-05 18:31:27 +02:00
Sebastian Dröge
bd62595a75
videodecoder: Change GST_WARNING to a GST_DEBUG
...
It's completely normal for some decoders to queue 50-60 frames without
it causing any problems, e.g. RPi.
2013-06-04 17:49:55 +02:00
Wim Taymans
97784b1563
video-format: fix NV16 unpack
...
We can just use the NV12 functions, the only difference is the
vertical subsampling.
2013-05-27 11:53:27 +02:00
Wim Taymans
73190bcf79
video-chroma: add interlaced flag
2013-05-27 11:25:09 +02:00
Wim Taymans
0c60f0daa4
video-chroma: add chroma resampler
...
Add functions to up/downsample chroma in horizontal and vertical
directions. These functions work in-placeand are meant to be used on the
input/output of the pack/unpack functions.
2013-05-27 11:05:07 +02:00
Wim Taymans
2924365020
video: don't perform subsampling while packing
...
Don't perform subsampling when packing but let this be done by a
separate subsampling step.
2013-05-27 11:05:06 +02:00
Wim Taymans
b5de0552a5
video: move chroma functions to separate file
2013-05-27 11:05:06 +02:00
Wim Taymans
38317e3f09
videometa: fix docs
2013-05-27 11:05:06 +02:00
Sebastian Dröge
c5e9df4b51
videoencoder: Don't require an output state to be set before allocating output buffers
2013-05-25 16:08:06 +02:00
Sebastian Dröge
0c2c909497
video: Always provide a buffer in gst_video_(enc|dec)oder_allocate_output_buffer()
...
We have no way of tell the caller of the exact error (e.g. if we're flushing),
so will have to wait until the caller uses API that returns a GstFlowReturn,
for example when pushing this buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=700006
2013-05-24 16:54:46 +02:00
Tim-Philipp Müller
612e20d4f6
video: make mask arguments to gst_video_format_from_masks() unsigned
...
These should really be unsigned.
2013-05-16 11:35:58 +01:00
Benjamin Gaignard
5da2bd3216
video: fix gst_video_format_from_masks() for little endian masks with alpha
...
Need to byte-order swap the alpha mask as well in this case.
https://bugzilla.gnome.org/show_bug.cgi?id=700413
2013-05-16 10:36:20 +01:00
Tim-Philipp Müller
77405b97ed
video: update disted orc backup files to fix build without liborc
...
https://bugzilla.gnome.org/show_bug.cgi?id=700400
2013-05-15 18:20:50 +01:00
Arnaud Vrac
af24e23880
video: add NV16 format
...
This format is usually used by hardware video decoders for 4:2:2 sampling
https://bugzilla.gnome.org/show_bug.cgi?id=700377
2013-05-15 13:46:46 +02:00
Mathieu Duponchelle
6f233f67ef
videodecoder: don't set the list to NULL after taking its address
2013-05-10 09:22:07 +02:00
Sebastian Dröge
2cc6a62b31
videoencoder: Make sure to push any pre-caps events before the caps are set
2013-05-09 16:05:59 +02:00
Sebastian Dröge
82f1572205
videodecoder: Make sure to not push any post-caps events before we have caps
...
and that we push pre-caps events before we push caps, even if we don't
have a GstVideoFrame yet.
2013-05-09 16:05:59 +02:00
Sebastian Dröge
ba8e7062a4
Revert "videodecoder: If a frame is to be dropped, don't update timestamps"
...
This reverts commit c9c5cd8eef
.
2013-05-09 10:37:06 +02:00
Sebastian Dröge
c9c5cd8eef
videodecoder: If a frame is to be dropped, don't update timestamps
2013-05-09 08:54:45 +02:00
Sebastian Dröge
3e4aec6e7b
video: Make sure to push pre-caps events before the caps event
...
https://bugzilla.gnome.org/show_bug.cgi?id=699894
2013-05-08 15:50:34 +02:00