Sebastian Dröge
11ef208736
videodecoder: Handle CAPS events immediately instead of delaying them
...
https://bugzilla.gnome.org/show_bug.cgi?id=733147
2014-07-21 09:35:37 +02:00
Gwenole Beauchesne
fb44ec9615
videodecoder: parse any source data that is still available.
...
Fix gst_video_decoder_parse_available() to really parse any pending
source data that is still available in the adapter. This is a memory
optimization to avoid expansion of video packed added to the adapter,
but also a fix to EOS condition when the subclass parse() function
ultimately only needed to call into gvd_have_frame() and no additional
source bytes were consumed, i.e. gvd_add_to_frame() is not called.
This situation can occur when decoding H.264 streams in byte-stream/nal
mode for instance. A decoder always requires the next NAL unit to be
parsed so that to determine picture boundaries. When a new picture is
found, no byte is consumed (i.e. gvd_add_to_frame() is not called)
but gvd_have_frame() is called (i.e. priv->current_frame is gone).
Also make sure to avoid infinite loops caused by incorrect subclass
parse() implementations. This can occur when no byte gets consumed
and no appropriate indication (GST_VIDEO_DECODER_FLOW_NEED_DATA) is
returned.
https://bugzilla.gnome.org/show_bug.cgi?id=731974
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-03 09:47:20 +02:00
Evan Nemerson
7b791749a0
docs: Assorted documentation and introspection fixes for new 1.4 API
...
https://bugzilla.gnome.org/show_bug.cgi?id=732595
2014-07-02 09:09:44 +02:00
Thiago Santos
fb3a9d1bc5
video: avoid overflows when doing int operations for size
...
size is a gsize, so cast the operands to it to avoid overflows
and setting wrong value to the video size.
Includes tests.
https://bugzilla.gnome.org/show_bug.cgi?id=731195
2014-06-09 23:38:39 -03:00
Thibault Saunier
d2ea3260e9
videodecoder: Keep still meaningfull pending events on FLUSH_STOP
...
Only EOS and segment should be deleted in that case.
+ Add a testcase
https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:49 +02:00
Thibault Saunier
2843f358d9
videoencoder: Keep still meaningfull pending events on FLUSH_STOP
...
Only EOS and segment should be deleted in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:19 +02:00
Thiago Santos
0cb5ea4396
videodecoder: actually return the push result in backwards playback
...
It was always returning _OK regardless of what downstream returned
2014-05-26 23:24:56 -03:00
Thiago Santos
ff9e37ea66
videodecoder: return EOS when segment is over
...
if a buffer is clipped by being completely out of segment, check if this
buffer is after the end of the segment and return EOS upstream
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:26:45 -03:00
Nicolas Dufresne
e0cfd6e26b
video-info: Also check the stride and offset are equal
...
gst_video_info_is_equal() was not checking if stride and offset
had changed.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
2014-05-12 18:22:32 -04:00
Edward Hervey
ec95963b1f
videodecoder: Free data after removing it from the list
...
While it wouldn't have caused any failures (g_list_remove doesn't dereference
the provided pointer), it does make the code cleaner.
CID #1212174
2014-05-12 17:17:07 +02:00
Nicolas Dufresne
64d58b80c0
videodecoder: Retry setting configuration with modified config
...
Buffer pool set_config() may return FALSE if requested configuration needed small
changes. Reget the config and try setting it again. This ensure we have a configured
pool if possible.
2014-05-08 15:09:47 -04:00
Sebastian Dröge
68f5350c66
Release 1.3.1
2014-05-03 17:50:10 +02:00
Thiago Santos
5ac9476b40
videodecoder: do not parse caps for not using it
...
Saving some cpu
2014-05-01 19:31:25 -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
Vincent Penquerc'h
3d1fdf8dd8
video-overlay-composition: guard against NULL pointer dereference on error
...
If gst_video_overlay_rectangle_apply_global_alpha is called with
a rectangle with unsuitable alpha, expanding the alpha plane will
fail, and thus lead to dereferencing a NULL src pointer. It's not
certain this will happen in practice, as the function is static
and callers might ensure suitable alpha before calling, but there
is no apparent explicit such check.
Add prologue asserts for proper alpha to explicitely prevent this.
Coverity 1139707
2014-04-10 12:35:03 +01:00
Vincent Penquerc'h
4a401adf38
videometa: fix texture_type memcpy size
...
Coverity 1139589, 1139588
2014-04-10 12:35:03 +01:00
Sebastian Dröge
8c7cbeed5b
video-event: Update the running times in the force-keyunit events from the pad offsets
2014-04-10 09:18:05 +02:00
Thiago Santos
05e957106f
videodecoder: do not deactivate the bufferpool, just unref
...
Videodecoder does late renegotiation, it will wait for the next
buffer before renegotiating its caps and bufferpool. It might happen
that downstream element switched from passthrough to non-passthrough
and sent a reconfigure upstream (that caused this renegotiation).
This downstream element will ask the video sink below for the bufferpool
with an allocation query and will get the same bufferpool that
videodecoder is holding, too.
When renegotiating, if videodecoder deactivates its bufferpool it
might be deactivating the bufferpool that some element downstream
is using and cause the pipeline to fail.
https://bugzilla.gnome.org/show_bug.cgi?id=727498
2014-04-04 13:50:03 -03:00
Sebastian Dröge
6189847ed0
videodecoder: Always drain the decoder after a discont group in reverse playback mode
2014-03-30 18:26:59 +02:00
Sebastian Dröge
5a4fbb1638
videodecoder: Flush the decoder once per discont group, not once per keyframe
2014-03-30 18:00:53 +02:00
Sebastian Dröge
f1f8731ff5
videodecoder: Handle reverse playback with multiple GOPs per discont group properly
...
baseparse will reverse each GOP for us already, so the segment events can
be after our keyframe. Make sure to get it and all other relevant sticky
events before starting to decode.
2014-03-30 17:59:55 +02:00
Sebastian Dröge
50c2218d4d
videodecoder: Log event types of events that are pushed downstream
2014-03-29 10:33:01 +01:00
Sebastian Dröge
1c26e5734c
videodecoder: In reverse playback mode we need to finish the subclass after passing all frames to it
2014-03-29 10:33:01 +01:00
Matthieu Bouron
a8951c16da
video-overlay-composition: add GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION
2014-03-05 20:38:45 +01:00
Sebastian Rasmussen
900c204eb9
videoformat: Remove duplicate/incorrect section
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725521
2014-03-02 23:41:51 +00:00
Sebastian Rasmussen
35bb1b3328
docs: Add annotations for return values
...
Rephrase and clarify some return value descriptions
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725521
2014-03-02 23:41:18 +00:00
Sebastian Rasmussen
5b4f2ba20b
docs: Fix argument and annotation typos
...
* colorbalance: Fix misspelled annotation
* rtsp: Replace incorrectly documented function argument
* sdp: Escape @ character to avoid gtk-doc warning
* video-*: Add missing annotation colon
* videodecoder/video-color: Fix function argument typos
* videoutils: Remove unknown annotation field
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725521
2014-03-02 23:22:51 +00:00
Tim-Philipp Müller
6442e76e9f
docs: add GstVideoPool to docs
2014-02-23 14:42:12 +00:00
Nicolas Dufresne
6b77971097
video: Fix NV12_64Z32 default offset and size
...
This was a regression introduced by f52fd7a68
, where we started using
the stride to encode the dimensions in tiles. This patch simply updates
offset and size calculation as described in the documentation,
part-mediatype-video-raw.txt.
2014-02-18 13:09:21 -05:00
Thiago Santos
da54836a33
videoencoder: push tags and events before eos
...
if any tags or events are pending, push them before pushing eos
2014-01-29 12:33:59 -03:00
Wim Taymans
8ac3dbc4f3
video-chroma: don't crash on NULL resamplers
...
Make dummy resamplers for all cases and only execute the horizontal
resampler instead of crashing.
See https://bugzilla.gnome.org/show_bug.cgi?id=722742
2014-01-23 10:45:00 +01:00
Sebastian Dröge
87829debe4
videodecoder: Add API to get the currently pending frame size for parsing
...
https://bugzilla.gnome.org/show_bug.cgi?id=719890
2014-01-18 13:54:22 +01:00
Thiago Santos
47f720a8f0
videodecoder: plug leak when frames are released on subclass stop
...
They end up stored in the 'pending_events' list and should be
freed after calling stop
2014-01-17 11:21:33 -03:00
Sebastian Dröge
335e6e888d
videoverlay: Don't mention gconf elements and add a sentence about playbin/playsink
...
playbin/playsink now implement the video overlay interface
2014-01-14 13:20:48 +01:00
Wim Taymans
ecac298e4e
videodecoder: only copy chroma_site when known
...
Only overwrite the chroma-site if we have a valid value in the reference
format.
2014-01-13 17:24:01 +01:00
Wim Taymans
fba783a5fe
videoutils: add some debug
2014-01-13 17:24:01 +01:00
Nicolas Dufresne
595bcfb4d7
video: Generate types for tile enumeration
...
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:47:23 -05: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
Wim Taymans
d899e6df5a
video: rename NV12T -> NV12_64Z32
...
Is a bit more descriptive and allows us to add more tiled types
later.
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:52 -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
61cbdf379b
format: improve docs
...
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:31 -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
fb0fecbf48
video-tile: improve docs
...
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:07 -05:00
Wim Taymans
33c486e5c1
video-format: use shifts when possible
...
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:46:01 -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
3ceb7dfe22
video-tile: add tile mode and helper functions
...
Move the tile helper functions to their own file. Make it possible to
make other tiling modes later.
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:45:37 -05:00
Wim Taymans
f8d3b9b4fc
video: add NV12T support
...
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:45:26 -05:00
Wim Taymans
67a2717235
Add tiled color format support
...
https://bugzilla.gnome.org/show_bug.cgi?id=707361
2014-01-13 10:45:02 -05:00
Thiago Santos
672cda66db
videodecoder: do not lose events when dropping frames
...
Events must be persisted after a frame is dropped to avoid
losing obligatory information for the stream.
https://bugzilla.gnome.org/show_bug.cgi?id=721835
2014-01-13 06:11:09 -03:00
Thiago Santos
5b8e1925b5
videodecoder: use new segment earlier for reverse playback
...
For reverse playback, the segment event will only be pushed when
the first buffer is actually pushed. But for decoding frames and storing
those into the list to be pushed the output_segment.rate value is used
to determine if it is forward or reverse playback.
In case a previous segment event (or none) is in use it will mistakenly
think it is doing forward playback and push the buffers immediatelly and
try to clip buffers based on an old segment (or an uninitialized one, leading
to an assertion)
This patch fixes this by copying the segment earlier if on reverse playback
https://bugzilla.gnome.org/show_bug.cgi?id=721666
2014-01-13 06:11:09 -03:00
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