Wim Taymans
0c40b83ed4
video-color: add gst_video_color_matrix_get_Kr_Kb()
...
Move the function to get the color matrix coefficients from
videoconvert to the video library.
2014-09-24 15:59:39 +02:00
Ognyan Tonchev
00b43badc7
videopool: add missing annotation for gst_video_buffer_pool_new()
...
https://bugzilla.gnome.org/show_bug.cgi?id=737072
2014-09-24 11:02:42 +03:00
Stefan Sauer
cabe5746fb
videoencoder: log the timestamps if we are unhappy about them
...
When complaining about the DTS!=PTS on keyframes log the actualy timestamps.
2014-09-22 20:16:31 +02:00
Ognyan Tonchev
29f548a7cd
videodecoder: do not leak events when flushing them
...
https://bugzilla.gnome.org/show_bug.cgi?id=736796
2014-09-18 12:40:15 +03:00
Ognyan Tonchev
d8260cdb89
videoencoder: do not leak events when flushing them
...
https://bugzilla.gnome.org/show_bug.cgi?id=736796
2014-09-18 12:40:08 +03:00
Sebastian Dröge
269f642c45
video-frame: Don't ref buffers twice when mapping
2014-09-16 01:07:18 +03:00
Ognyan Tonchev
787b3fa7ec
videodecoder: do not leak pool and allocator in error case
...
https://bugzilla.gnome.org/show_bug.cgi?id=736679
2014-09-15 10:43:23 -04:00
Sebastian Dröge
3a7cdcdfc9
videofilter: Use new GST_VIDEO_FRAME_MAP_FLAG_NO_REF
...
https://bugzilla.gnome.org/show_bug.cgi?id=736118
2014-09-12 14:41:01 +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
f711288c7c
videofilter: Unref buffers before calling the transform_frame functions
...
GstVideoFrame has another reference, so the buffer looks unwriteable,
meaning that we can't attach any metas or anything to it
https://bugzilla.gnome.org/show_bug.cgi?id=736118
2014-09-12 14:27:44 +03:00
Sebastian Dröge
0a19783291
videodecoder: Fix broken boolean expression
...
We can seek with end_type==NONE and end_type==SET && end_position=-1. The
check for end_type!=NONE made the second condition impossible.
CID 1226440
2014-08-28 17:06:22 +03:00
Jan Schmidt
c98f051548
video: Add gst_video_guess_framerate() function
...
Takes a nominal frame duration and returns a standard
FPS if it matches closely enough (< 0.1%), or else
calculates a framerate that'll do.
2014-08-15 01:08:22 +10:00
Jan Schmidt
2a37534129
video: Various simple docs fixes
2014-08-15 01:08:12 +10:00
Jan Schmidt
946dc6b09f
videodecoder: Reset last_timestamp_out on new segment
...
Reset last_timestamp_out when applying the output segment
change, to avoid decoder confusion over new timestamp timelines when
a seamless segment change happens.
Move some locks/unlocks to later when they're actually needed.
https://bugzilla.gnome.org/show_bug.cgi?id=734617
2014-08-14 17:59:06 +10:00
Jan Alexander Steffens (heftig)
8a1f8623fa
videodecoder: Don't set decoding timestamps on raw video
...
https://bugzilla.gnome.org/show_bug.cgi?id=733720
2014-08-11 10:29:33 +02:00
George Kiagiadakis
a4d97f49e2
videodecoder: In reverse playback, flush the output queue after decoding each keyframe chain
...
This fixes the reverse playback scenario when upstream is not fully
parsing the stream and does not send every keyframe chain separately
with the DISCONT flag on the keyframe.
To explain this, let's suppose we have this stream:
0 1 2 3 4 5 6 7 8
K K K
In most circumstances, the upstream parser will chain in the
decoder the buffers in the following order:
6 7 8 3 4 5 0 1 2
D D D
In this case, GstVideoDecoder will flush the parse queue every time
it receives discont (D) and we will eventually get in the output queue:
(flush here) 8 7 6 (flush here) 5 4 3 (flush here) 2 1 0
In case the upstream parser doesn't do this work, though,
GstVideoDecoder will receive the whole stream at once and will flush
the parse queue afterwards:
0 1 2 3 4 5 6 7 8
D
During the flush, it will look backwards for keyframes and will
decode in this order:
6 7 8 3 4 5 0 1 2
This is the same order that it would receive from upstream if
upstream was parsing and looking for the keyframes, only that now
there is no flushing of the output queue in between keyframes,
which will result in the output queue looking like this:
2 1 0 6 5 3 8 7 6
This will confuse downstream obviously and will play incorrectly.
This patch forces the decoder to flush the output queue every time
it picks a new keyframe to decode, so it will end up decoding 6 7 8
and then flushing before picking 3 for decoding, so the output will
get 8 7 6 before 6 5 3 and the video will play back correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=734441
2014-08-11 10:22:55 +02:00
Nicolas Dufresne
ce50fc221e
videoencoder: Don't delay set_format
...
This prevent implementing allocation query, as the format need to be
known in order to determin the size and number of buffers needed.
Note: This may lead to few regressions that will need fixing
https://bugzilla.gnome.org/show_bug.cgi?id=732288
2014-07-25 14:12:02 -04:00
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
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
Sebastian Dröge
f7db63f1b8
videoencoder: Try harder to push writable buffers downstream
...
For this release the corresponding GstVideoCodecFrame before
pushing the buffer. The buffer will now be writable unless
the subclass still holds another reference to the buffer or
the frame.
2013-04-25 16:23:14 +02:00
Sebastian Dröge
0be8d14965
videodecoder: Try harder to push writable buffers downstream
...
For this release the corresponding GstVideoCodecFrame before
pushing the buffer. The buffer will now be writable unless
the subclass still holds another reference to the buffer or
the frame.
2013-04-25 16:13:10 +02:00
Tim-Philipp Müller
f5c0d61be7
Update disted orc backup files
...
Generated with 0.4.17 now.
2013-04-22 13:58:33 +01:00
Sebastian Dröge
9d309a3e06
videoencoder: Simply setcaps function
2013-04-18 09:58:37 +02:00
Sebastian Dröge
74f6376c53
videometa: Extend GstVideoGLTextureUploadMeta
...
https://bugzilla.gnome.org/show_bug.cgi?id=697112
2013-04-17 10:50:05 +02:00
Sebastian Dröge
0b83d13231
videoencoder: Ignore caps events if the caps did not change
2013-04-15 09:44:37 +02:00
Tom Greenwood
3023521366
videodecoder: Ignore caps events if the caps did not change
...
https://bugzilla.gnome.org/show_bug.cgi?id=697672
2013-04-15 09:44:36 +02:00
Víctor Manuel Jáquez Leal
52d269b6b1
videometa: gst_buffer_add_meta() can return NULL
...
https://bugzilla.gnome.org/show_bug.cgi?id=697824
2013-04-11 23:47:36 +01:00
Matej Knopp
c78cbd0d95
videofilter: add caps to pool config
...
Does not cause problems but it fixes a warning in the log.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696916
2013-04-04 10:44:13 +02:00
Tim-Philipp Müller
707d112315
docs: add since marker for new video API
2013-04-02 23:40:13 +01:00
Sebastian Dröge
229d7aa910
video-format: Add GST_VIDEO_CAPS_MAKE_WITH_FEATURES() macro
2013-04-01 10:22:04 +02:00
Sebastian Dröge
f14c4bbbd7
videometa: Add caps feature #defines for video and GL texture upload meta
2013-04-01 10:22:04 +02:00
Wim Taymans
c3651a7905
videodecoder: always send the new buffer to parse functions
...
When we get a new buffer, always call the parse function, even if it is a 0
sized buffer. For theora we need to also decode 0 sized buffers.
Ideally we would like to make theoradec be packetized but that fails currently
because of oggdemux and because of the assumptions that the base class makes.
2013-03-31 18:31:37 +02:00
Wim Taymans
3b8d053232
videodecoder: forward stream-start immediately
2013-03-30 19:14:40 +01:00
Sebastian Dröge
c5d5221cb2
videometa: Add documentation for GstVideoGLTextureUploadMeta
2013-03-29 16:56:25 +01:00
Sebastian Dröge
3d1322f08e
videometa: Implement copying of GstVideoGLTextureUploadMeta
2013-03-29 16:37:01 +01:00
Sebastian Dröge
5f79a8cb93
videometa: API: Add GstVideoGLTextureUploadMeta
...
This allows elements to specify a function to upload
a buffer content to a specific OpenGL texture ID. It
could be used by the vaapi elements to provide a way
for eglglessink or WebKit to upload a VA surface to
an GL texture without the respective sinks knowing
anything about VA.
2013-03-29 16:07:23 +01: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
Wim Taymans
bf642ea085
video-format: add small comment
2013-03-24 00:39:01 +01:00
Tim-Philipp Müller
5afc2002b0
video: navigation: minor GValue optimisation
2013-03-03 17:43:47 +00:00
Arnaud Vrac
95266cf212
video-overlay-composition: fix ayuv/argb conversion
...
Helps when using dvbsuboverlay in connection with vaapisink
or some other video sink that wants ARGB pixels (dvbsuboverlay
attaches pixels in AYUV format, and we then convert as needed).
Alignment should not be a problem here.
2013-02-19 20:39:29 +00:00
Tim-Philipp Müller
0b329f2c22
video: add define for video formats supported by the overlay blending code
...
For use in template caps by overlay elements that use
video_overlay_composition_blend().
API: GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS
https://bugzilla.gnome.org/show_bug.cgi?id=665751
2013-02-19 12:54:40 +00:00
Thijs Vermeir
d189beda4d
videodecoder: allow parse function to not use all data on adapter
2013-02-12 10:17:46 +01:00
David Schleef
31312d586e
videodecoder: Don't blindly assign DTS to PTS
...
DTS and PTS usually have a non-zero offset between them in MPEG-TS,
so assigning DTS to PTS is almost always wrong. The other, newer
timestamp recovery code does it correctly if we leave it as invalid.
2013-02-11 11:57:08 -08:00
David Schleef
ceb6585d26
videodecoder: warn if frame list gets long
...
Decoders that get unparsed input are internally leaking nearly
every incoming buffer. This checks that case.
2013-02-11 11:56:14 -08:00
Tim-Philipp Müller
dce49a1a7e
video: fix return type of _get_palette() and add since markers to docs
...
'const gpointer' is not the same as 'gconstpointer', see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35928 .
2013-02-06 12:43:51 +00:00
Wim Taymans
c1a25d2ce7
video-format: fix interlaced 4:2:0 and 4:1:0 pack/unpack
...
For interlaced vertically subsampled images we need to combine alternating
chroma lines with alternating luma lines. That is line 0 and 2 are combined
with the first line of chroma samples and line 1 and 3 with the second line
of chroma samples.
See also: https://bugzilla.gnome.org/show_bug.cgi?id=588535
2013-02-04 15:06:10 +01:00
Wim Taymans
cb7a7cd05c
video-format: add method to get palette
...
Make a new method to get the default palette for paletted formats.
2013-02-04 15:06:07 +01:00
Wim Taymans
e303b0ad33
video-format: add interlace flag
...
Add an interlaced flag that can be used to control the unpack/pack
functions.
2013-02-04 15:05:59 +01:00
Tim-Philipp Müller
664adc6e19
gst-libs: use GST_*_1_0 environment variables everywhere
...
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-16 10:16:27 +00:00
Nicolas Dufresne
7107e97273
videoencoder: Remove done ToDo
...
https://bugzilla.gnome.org/show_bug.cgi?id=675761
2012-12-31 19:09:01 +00:00
Nicolas Dufresne
8a233a215d
videoencoder: Documentation fix
...
https://bugzilla.gnome.org/show_bug.cgi?id=675761
2012-12-31 19:03:29 +00:00
Tim-Philipp Müller
df186d5240
video: fix A420 size calculation
2012-12-22 21:04:11 +00:00
Thijs Vermeir
675562d362
video: use appropriate printf format for gsize
2012-12-18 15:31:52 +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
e05abf0ef1
docs: fix up some more GstXOverlay -> GstVideoOverlay
...
https://bugzilla.gnome.org/show_bug.cgi?id=689740
2012-12-10 13:40:26 +00:00
Sebastian Dröge
0bb5c6c012
videodecoder: Only keep track of timestamps if the subclass is parsing data
...
Otherwise we just pass through the timestamps directly and don't
need to waste additional memory for them.
Fixes bug #689814 .
2012-12-10 11:51:02 +00:00
Sebastian Dröge
7af386fdaf
libs: Fix last commit by using correct include paths and only include existing headers
2012-11-21 11:12:57 +01:00
Evan Nemerson
4d77fba46c
libs: Add missing single include headers and use them in GIRs
2012-11-21 11:01:24 +01:00
Sebastian Dröge
1990c45b60
videodecoder: Return the proportion directly
2012-11-20 12:21:08 +01:00
Sebastian Dröge
6228872df7
videodecoder: Rename from get_qos_info() to get_qos_proportion()
...
And only return the proportion. The earliest time already can be
retrieved from get_max_decode_time() and by renaming we allow this
to be more extensible in the future.
2012-11-20 12:08:26 +01:00
Andoni Morales Alastruey
5f55ea1ef3
videodecoder: add getter for QoS proportion and earliest_time
...
Add a getter for the QoS proportion and earliest_time to help
subclasses do better estimations based on the proportion.
API: gst_video_decoder_get_qos_info()
https://bugzilla.gnome.org/show_bug.cgi?id=687991
2012-11-19 23:57:43 +00:00
Wim Taymans
7de757a0d4
video-format: fix plane offsets for GBR formats
...
Also make some macros to get to the R/G/B planes
Remove unused stride macros.
2012-11-13 16:22:12 +01:00
Sebastian Dröge
1ebeac9a22
video: Add GBR/GBR_10LE/GBR_10BE color formats
...
Planar RGB color format used by h264
2012-11-10 22:24:08 +01:00
Sebastian Dröge
b83e67dd5a
video: Add Y444_10{LE,BE} video formats
2012-11-10 22:24:08 +01:00
Sebastian Dröge
d697dd6d39
videodecoder: Reset the error count to 0 after successfully decoding a frame
2012-11-09 16:47:37 +01:00
Tim-Philipp Müller
377c806685
video: don't crash when blending onto video formats that unpack to 64 bits per pixel
...
We only allocate 8 bits per component for our temp buffers, which
causes invalid memory accesses if we try to unpack formats that
unpack into a format with 16 bits per component such as e.g. v210.
We don't support blending onto those yet, so just bail out.
2012-11-07 11:17:14 +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
Miguel Angel Cabrera Moya
2d8edb1e86
video-blend: fix memory leak when called with invalid parameters
...
https://bugzilla.gnome.org/show_bug.cgi?id=687472
2012-11-02 19:37:26 +00:00
Tim-Philipp Müller
a4f2df6341
Revert "g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X"
...
This reverts commit e39fbe6b7e
.
Looks like we need to pass the full .la file after all in a setup
with libtool, or it might not find the library, e.g. like
ERROR: can't resolve libraries to shared libraries: gstfft-1.0
Conflicts:
gst-libs/gst/audio/Makefile.am
gst-libs/gst/pbutils/Makefile.am
Also see https://bugzilla.gnome.org/show_bug.cgi?id=603710
2012-10-29 12:47:05 +00:00
Sreerenj Balachandran
f816f94995
videodecoder: fix inappropriate compiler optimization hint macro usage
...
https://bugzilla.gnome.org/show_bug.cgi?id=679456
2012-10-28 23:09:36 +00:00
Tim-Philipp Müller
e39fbe6b7e
g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X
...
As it should be according to the man page.
https://bugzilla.gnome.org/show_bug.cgi?id=679315
2012-10-28 17:35:57 +00:00
Tim-Philipp Müller
6c0c3eb967
videodecoder: don't leak message strings when error is not fatal
2012-10-20 11:37:33 +01:00
Tim-Philipp Müller
efff57d497
videodecoder: return NULL from _allocate_output_buffer() if alloc fails
...
.. instead of garbage pointer. Also log failure in debug log.
Should've returned the flow return like _allocate_output_frame().
https://bugzilla.gnome.org/show_bug.cgi?id=683098
2012-10-17 10:55:01 +01:00
Mark Nauwelaerts
706498cb6e
videodecoder: finetune missing timestamp estimating
...
Monitor for reordered output timestamps, and then avoid oldest DTS
as PTS approach, and try for an oldest PTS as out PTS approach,
if at least all valid PTS available.
Avoids bogus estimating upon sparse available input PTS, and tries
to handle all-keyframe input, or input PTS which are actually DTS.
2012-10-10 15:04:10 +02:00
Andoni Morales Alastruey
8a5cf5ef4d
audio/video: update documentation for vfunc's that require chaining up
2012-10-08 13:04:02 +02:00
Wim Taymans
c1d67d9bd6
video: small docs fix
2012-10-08 09:21:16 +02:00
Michael Smith
92560517e8
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-base
2012-10-03 10:45:26 -07:00
Michael Smith
a29c4f9489
meta registration: use g_once functions to register these threadsafely.
2012-10-03 10:44:59 -07:00
Sebastian Dröge
9d59b789c7
videodecoder: Fix unused variable compiler warning if debugging is disabled
2012-10-02 09:29:49 +02:00
Olivier Crête
531a5af30c
videodecoder: Also use the object lock to protect the output_state
...
Hold both the stream and the object lock to modify the output_state,
this way it can be safely modified while hold either one or the other.
Also, only hold the object lock in the query
https://bugzilla.gnome.org/show_bug.cgi?id=684832
2012-10-01 14:43:29 -04:00
Mark Nauwelaerts
4adfff03ef
video{de,en}coder: fix missing timestamp estimating
...
... by having some more timestamp tracking in a private frame field.
Not doing so would lead to (a.o.) losing the needed minimum timestamp in
an earlier sent frame.
2012-09-28 13:59:24 +02:00
Mark Nauwelaerts
dc2f2c9a40
videodecoder: use oldest frame DTS to estimate missing outgoing PTS
2012-09-27 11:31:34 +02:00
Mark Nauwelaerts
dbc89e3ab6
videoencoder: use oldest frame PTS to estimate missing outgoing DTS
2012-09-26 16:32:37 +02:00
Mark Nauwelaerts
d247301aec
videoencoder: incoming buffer DTS is irrelevant
...
... and bogus anyway if PTS != DTS
2012-09-26 16:32:37 +02:00
Mark Nauwelaerts
6973a66813
videoencoder: clip input buffers to current input segment
...
... rather than to output segment, which will only be set
to current input segment if some output is produced
(coming from non-clipped input).
Also fixup debug message.
2012-09-25 17:19:15 +02:00
Tim-Philipp Müller
62c111f1e4
videodecoder: don't take STREAM_LOCK on upstream events
...
Don't try to take STREAM_LOCK on upstream events such as QOS.
Protect qos-related variables with object lock instead. Fixes
possible deadlock when shutting down in certain situations.
https://bugzilla.gnome.org/show_bug.cgi?id=684658
2012-09-24 10:56:35 +01:00
Sebastian Dröge
1e8f5a0b06
videodecoder: Update comments about forwarding/not-forwarding serialized events immediately
2012-09-20 10:04:30 +02:00
Olivier Crête
ebae8ffa71
videodecoder: Protect all accesses to priv->output_frame with the stream lock
...
Fixes segfault as queries/events can happen after a reset
2012-09-19 21:16:01 -04:00
Tim-Philipp Müller
5e0dfec62c
Remove -DGST_USE_UNSTABLE_API
2012-09-17 16:05:37 +01:00
Wim Taymans
24bab1e5a8
fix for appsink GstFlowReturn
2012-09-14 13:39:20 +02:00
Tim-Philipp Müller
f7c6aa5abd
Release 0.11.94
2012-09-14 02:47:54 +01:00
Jan Schmidt
6159817c95
videodecoder: Handle GAP events
...
Drain out the decoder when encountering a gap. Needed for DVD 'still'
sequences which consist of a single video frame, and a large gap
while audio plays.
2012-09-12 23:07:29 -07:00
Jan Schmidt
52cfce851a
Fix still-frame handling.
...
Still frame events are not OOB downstream. Also, always send
immediately downstream.
2012-09-12 23:07:28 -07:00
Michael Smith
79f0210aed
video: Add support for 4:2:2 10 bit video.
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683838
2012-09-12 09:59:26 +02:00
Wim Taymans
cbb78eb610
video-info: don't do alignment on the palette
...
Don't align the palette data. Fixes endless loop when trying to align
paletted formats.
2012-09-11 12:53:01 +02:00
Mark Nauwelaerts
214b7b6d1d
video: add some padding
...
... and clean up some related resolved FIXMEs
2012-09-10 14:03:49 +02:00
Mark Nauwelaerts
75fe950c33
gst-libs: restore original full padding
2012-09-10 11:45:44 +02:00
Tim-Philipp Müller
5101adf740
Remove some #define GLIB_DISABLE_DEPRECATION_WARNINGS that are no longer needed
2012-09-10 01:27:18 +01:00
Thibault Saunier
39a907d04d
video: port to the new GLib thread API
2012-09-09 20:41:06 -03:00
Tim-Philipp Müller
2079a8c12b
Remove glib-compat-private.h stuff we don't need any more
...
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Mark Nauwelaerts
d4c1b160ef
videoencoder: only set invalid DTS equal to PTS for keyframe
...
Also add a bit more debug.
See also https://bugzilla.gnome.org/show_bug.cgi?id=679443
2012-09-07 17:41:52 +02:00
Mark Nauwelaerts
20806e4c16
videoencoder: plug some leaks
2012-09-06 13:04:56 +02:00
Mark Nauwelaerts
cd2e795154
videooverlaycomposition: add some _get_argb and _get_ayuv functions
...
... that will handle automatic conversion to indicated format.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683180
2012-09-05 10:15:51 +02:00
Jan Schmidt
041c16b47d
On a still-frame begin message, drain out the decoder and send it.
...
Fixes still frame handling on DVDs
2012-09-02 23:19:09 -07:00
Jan Schmidt
acadc94279
Revert "videodecoder: Send serialised events immediately, after we're pre-rolled."
...
This reverts commit ef5316fbb0
.
2012-09-02 22:59:58 -07:00
Jan Schmidt
ef5316fbb0
videodecoder: Send serialised events immediately, after we're pre-rolled.
...
Only hold back events until the first buffer is generated, then just
send them directly. Otherwise, important events like 'still-frame' are
held forever, waiting for a frame that'll never arrive.
2012-08-31 12:40:36 -07:00
Mark Nauwelaerts
89228e911c
videooverlaycomposition: allow more formats for rectangle pixel data
...
... adding AYUV, and allowing for ARGB or RGBA endian-independent.
2012-08-30 12:12:39 +02:00
Mark Nauwelaerts
9262e00007
videodecoder: parsing loop must ensure for a current frame
2012-08-28 14:31:06 +02:00
Mark Nauwelaerts
dd4836a8d1
videooverlaycomposition: stricter check on input variables
2012-08-28 11:01:46 +02:00
Tim-Philipp Müller
7970a0ac71
docs: add docs for some of the video info macros
2012-08-24 17:23:08 +01:00
Wim Taymans
a994ebcf1b
videoencoder: allow 0 sized output frames
...
Allow 0 sized frames in gst_video_encoder_allocate_output_frame(). Theora
encodes repeat frames, for example, as 0 sized buffers.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681196
2012-08-24 16:56:00 +02: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
Wim Taymans
6702a2f64c
videometa: add more debug
2012-08-20 16:14:07 +02:00
Wim Taymans
9583d1bfc9
video-info: update padding
...
Update the alignement structure with the new padding values because they could
have been changed when the padding was increased to align the strides.
2012-08-20 11:12:31 +02:00
Wim Taymans
9a2344c2e5
video: expose gst_video_info_align
...
Expose the gst_video_info_align function that adds padding and does stride
alignment on a GstVideoInfo. Move this previously private function to
video-info.co
Move the definition of the alignment structure to video.h where it can be picked
up by both the bufferpool and the video-info.
2012-08-20 10:50:59 +02:00
Wim Taymans
f56e1222da
videopool: improve alignment
...
Check the alignment of the strides in gst_video_info_align and increase the
padding on the frame until the strides are aligned.
2012-08-20 10:25:39 +02:00
Wim Taymans
ca77174f91
videopool: improve alignment
...
Align each plane instead of each component, we might otherwise apply the
alignment adjustement twice if a plane contains multiple components.
2012-08-20 10:06:15 +02:00
Wim Taymans
2bffebcb02
video-format: fix docs a little
2012-08-20 10:06:15 +02:00
Sebastian Dröge
bdc056c12d
video: Add methods to return a list of all pending GstVideoCodecFrames
2012-08-16 12:13:25 +02:00
Víctor Manuel Jáquez Leal
c02dcda885
videoencoder: getter for allocator
...
Sometimes the encoder would need to use the allocator for something else than
just allocating output buffers, for example, querying different parameters.
This patch expose a getter accessor for the negotiated memory allocator.
2012-08-14 15:47:23 +02:00
Víctor Manuel Jáquez Leal
efe9e31b34
videodecoder: getters for pool and allocator
...
Sometimes the decoder would need to use the pool or the allocator for
something else than just allocating output buffers. For example, the querying
for different parameters, such as asking for a bigger number of buffers to
allocate in the pool.
This patch expose a two getters accessors: one for the buffer pool and the
other for the memory allocator.
2012-08-14 15:47:04 +02:00
Tim-Philipp Müller
d1299d1357
videodecoder: fix seeking again
...
Add missing break in FLUSH_STOP case.
2012-08-09 19:57:49 +01:00
Sebastian Dröge
b141bfed60
video: Merge upstream stream tags
2012-08-09 16:24:24 +02:00
Sebastian Dröge
9ffb579b75
videodecoder: Add API to conveniently handle tags
2012-08-09 16:02:42 +02:00
Sebastian Dröge
3c915afc39
videoencoder: Add API to conveniently handle tags
2012-08-09 16:02:15 +02:00
Sebastian Dröge
e37bb460bd
videoencoder: Add negotiate vfunc that is used to negotiate with downstream
...
The default implementation negotiates a buffer pool and allocator
with downstream.
2012-08-09 14:47:46 +02:00
Sebastian Dröge
7cb22ef241
videodecoder: Add negotiate vfunc that is used to negotiate with downstream
...
The default implementation negotiates a buffer pool and allocator
with downstream.
2012-08-09 14:47:46 +02:00
Sebastian Dröge
7bdcb12b41
gst: Set alignment at the correct place of GstAllocationParams
2012-08-08 17:41:19 +02:00
Andoni Morales Alastruey
d8326a8eda
videoencoder: add proper format for gsize
2012-08-08 17:41:19 +02:00
Sebastian Dröge
98983e08ae
videoencoder: Always propose a video buffer pool when the subclass didn't provide one
...
And also request 16-byte aligned buffers if the subclass didn't
set anything else.
2012-08-08 17:41:19 +02:00
Sebastian Dröge
8b916da6d7
videofilter: Really add a buffer pool if none was provided
...
And also use the allocation parameters from the query if any
and if there are none set our own (16-byte alignment) on the
query.
2012-08-08 12:19:31 +02:00
Sreerenj Balachandran
8707546345
videofilter: Fix the crash in propose_allocation
...
Always set a buffer pool if none is provided and don't
set/unref a NULL buffer pool on the query.
https://bugzilla.gnome.org/show_bug.cgi?id=681436
2012-08-08 12:03:05 +02:00
Tim-Philipp Müller
6422f2d085
Update .gitignore
2012-08-08 09:06:30 +01:00
Tim-Philipp Müller
211cc1cf68
video: make sure g-i doesn't parse orc-generated video-orc.h file
...
It's not public API.
2012-08-05 14:40:03 +01:00
Wim Taymans
683a38ad65
update for new variable names
2012-07-27 15:24:43 +02:00
Edward Hervey
6423a4027e
video: Make all frame_number guint32
...
Unifies the code and ensures that:
* subclasses needing to use the frame_number on a void* field will
always work
* wraparounds will be automatically taken care of if we have to deal
with more than 2**32 frames
2012-07-26 18:38:42 +02:00
Mark Nauwelaerts
7b135e8810
video{de,en}coder: delay input caps processing until processing data
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680614
2012-07-26 14:35:45 +02:00
Arnaud Vrac
8ab19ba9ca
video-frame: fix invalid plane id on video frame mapping error
2012-07-26 01:52:25 +02:00
Mark Nauwelaerts
e1137b8c66
videoencoder: minor doc fix
2012-07-25 15:58:19 +02:00
Vivia Nikolaidou
d2e1b64e0c
videoencoder: Expose _negotiate function
...
This is to be called by encoders once they have set the output format
in order for (re)negotiation to be triggered as early as possible.
https://bugzilla.gnome.org/show_bug.cgi?id=679878
2012-07-24 20:42:49 +02:00
Sreerenj Balachandran
1256d5ed71
video-blend: Doc fix
2012-07-24 12:56:46 +02:00
Wim Taymans
38552a2a8a
video: rename gst_video_orc_* to video_orc_*
...
Because then the functions would not be exported
2012-07-23 17:10:08 +02:00
Wim Taymans
e98c8538c5
orc: prefix orc functions with gst_video_orc_
...
See https://bugzilla.gnome.org/show_bug.cgi?id=680025
2012-07-23 16:56:55 +02:00
Wim Taymans
b392b28179
orc: rename to video-orc*
2012-07-23 16:52:33 +02:00
Robert Swain
5be353ed5e
video-frame: Add missing closing brakcets on flag macros
2012-07-23 14:23:39 +02:00
Wim Taymans
9e08343d5c
video-frame: add macros to get frame flags
2012-07-23 13:58:07 +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
Sebastian Dröge
fcf5e389ce
videoencoder: Hold the stream lock when reconfiguring the element
2012-07-23 12:06:16 +02:00
Sebastian Dröge
df08e333d2
video: Correct usage of the base class stream lock
...
And also renegotiate if the srcpad requires reconfiguration
2012-07-23 11:50:11 +02:00
Sebastian Dröge
1645ea4a90
video: Rename alloc_output_buffer() to allocate_output_buffer()
2012-07-23 10:18:41 +02:00
Sebastian Dröge
97ba363092
videoencoder: Minor cleanup
2012-07-23 10:04:48 +02:00