Gwenole Beauchesne
839acd54f6
codecparsers: vc1: fix bitplanes decoding (INVERT mode).
2011-10-17 13:17:40 +02:00
Gwenole Beauchesne
4280a61a23
codecparsers: vc1: fix MVMODE and MVMODE2 parsing.
2011-10-17 13:17:39 +02:00
Gwenole Beauchesne
b23f7eb38d
codecparsers: vc1: handle skipped pictures gracefully.
2011-10-17 13:17:39 +02:00
Thibault Saunier
ce71fdae1b
codecparsers: VC1: Implement bitplanes diff operator
2011-10-17 13:17:39 +02:00
Thibault Saunier
8090627581
codecparsers: VC1: Some cosmetics and debug logging enhancements
2011-10-17 13:17:39 +02:00
Gwenole Beauchesne
ef5b8ef581
codecparsers: vc1: Implement bitplanes handling properly
...
Add a new GstVC1BitPlanes API.
2011-10-17 13:17:39 +02:00
Gwenole Beauchesne
ac552a4f82
codecparsers: vc1: fix BFRACTION parser (values range + overflow).
2011-10-17 13:17:39 +02:00
Gwenole Beauchesne
52d8510ee0
codecparsers: vc1: fix VLC decoding.
2011-10-17 13:17:39 +02:00
Thibault Saunier
1a1935dacf
codecparsers: VC1: Implement FrameLayer parsing
2011-10-17 13:17:39 +02:00
Thibault Saunier
fc09e45108
codecparsers: VC1: Implement Sequence Layer Data Structures
...
Instead of having a single VC1SequenceHeader structure, use the 3 structs
from the "Table 265: Sequence Layer Data Structure" of the specification
for the library to be more flexible.
Implement the functions to parse them
2011-10-17 13:17:38 +02:00
Thibault Saunier
446e0a5216
codecparsers: VC1: Compute framerate and bitrate in simple/main profiles
2011-10-17 13:17:38 +02:00
Thibault Saunier
2b5e7c1f0f
codecparsers: VC1: compute MB height and width
...
Add them to GstVC1SequenceHdr
2011-10-17 13:17:38 +02:00
Gwenole Beauchesne
6137d841a0
codecparsers: vc1: debug cosmetics.
2011-10-17 13:17:38 +02:00
Gwenole Beauchesne
de4a1049e2
codecparsers: vc1: record picture layer header size in bits.
2011-10-17 13:17:38 +02:00
Gwenole Beauchesne
b181bd8bae
codecparsers: vc1: compute altpquant.
2011-10-17 13:17:38 +02:00
Gwenole Beauchesne
604ce193dd
codecparsers: vc1: use GstVC1ParserResult type name similarly to other parsers.
2011-10-17 13:17:37 +02:00
Gwenole Beauchesne
bd686a6370
codecparsers: vc1: handle End-of-Sequence correctly.
2011-10-17 13:17:37 +02:00
Gwenole Beauchesne
c90bf89b16
codecparsers: mpeg2: fix quant_matrix_extension() parser for chroma intra QM.
2011-10-17 13:17:37 +02:00
Thiago Santos
acdd2c20f7
basecamerasrc: Set preview pipeline to ready when going to ready
...
The preview pipeline should go to ready when the camerasrc goes
to ready, as in ready elements shouldn't be processing data.
2011-10-11 23:30:49 -03:00
Thiago Santos
21653a793a
camerabin2: Initialize camerabin2 preview pipeline data with 0
...
Use g_new0 to initialize all fields with 0 to only cleanup what has been
initialized. This makes cleanup work correctly when some initialization
fails and pointers are left in some inconsistent state.
2011-10-03 16:16:23 -03:00
Thiago Santos
b03c7478d4
camerabin2: removing capsfilter from preview pipeline
...
appsink already has a caps property, so we don't need the
capsfilter here
2011-09-29 11:50:04 -03:00
Thibault Saunier
705a80d957
codecparser: VC1: Implement a VC1 parsing library
2011-09-26 08:46:37 -03:00
Thibault Saunier
2c928aba19
codecparsers: Declare the new APIs as unstable for the time being
2011-09-26 08:11:45 -03:00
Thiago Santos
43ec4f46b8
basecamerasrc: Fail state change if preview pipeline fails creation
...
If the preview pipeline fails creation, for any reason, we should
fail basecamerasrc state change.
Also adds a missing g_return_if_fail check to preview pipeline
functions
2011-09-20 13:02:17 -03:00
Edward Hervey
7d5bd1992e
codecparsers: Add checks to input, and fix size checking
2011-09-19 16:40:45 +02:00
Edward Hervey
e6212219ed
codecparsinglibs: Doc and indentation fixes
2011-09-19 14:03:23 +02:00
Vincent Penquerc'h
ac5121eb01
h264parse: do not try to read from a non existent VUI
...
https://bugzilla.gnome.org/show_bug.cgi?id=658800
2011-09-19 09:27:06 +02:00
Thibault Saunier
f396baa3af
codecparsers: mpegvideo: Debugging symbols enhancements
2011-09-14 12:13:19 -03:00
Thibault Saunier
309df7e1e8
codecparsers: mpegvideo: Add the ChromaType enum
2011-09-14 12:13:19 -03:00
Thibault Saunier
10215d26de
codecparsers: mpegvideo: Change broken_gop to broken_link
...
This way we respect the standard naming
2011-09-14 12:13:19 -03:00
Alessandro Decina
668b0ab4f8
codecparsers: fix compiler warnings
2011-09-12 10:33:06 +02:00
Thibault Saunier
edebb4ed92
codecparsers: h264: Implement the nal_parser_free function
2011-09-09 15:02:35 -03:00
Thibault Saunier
949ba4e895
codecparsers: h264: Use g_slice instead of g_malloc in nal_parser_new
2011-09-09 15:02:34 -03:00
Thibault Saunier
8b268bd49d
codecparsers: h264: Update the documentation
...
Fix a few error.
Document missing parts.
Add links to the specifications
2011-09-09 15:02:31 -03:00
Thiago Santos
12f77b27e2
camerabin2: preview: No need for appsink to store the last buffer
...
There is no need for preview's appsink to keep a reference to the last buffer,
so disable the property to make it unref the buffers sooner.
2011-09-06 23:03:40 -03:00
Thiago Santos
8a56a7de6d
camerabin2: preview: Appsink doesn't need to sync
...
Set sync to false on preview's pipeline appsink
2011-09-05 14:39:20 -03:00
Thiago Santos
d41af4e2f8
camerabin2: preview: Remove one of the two colorspace converters
...
The preview pipeline doesn't need 2 colorspace converters, remove
one to speed up caps negotiation and reduce the delay on getting
the first preview buffer out of the preview pipeline.
It shouldn't cause problems as videoscale and ffmpegcolorspace seems
to handle the same caps, so no conversion should be needed for
videoscale. Additionally, camerabin1 has been working with a similar
pipeline with a single ffmpegcolorspace and no bugs have been open about it
so far.
2011-09-05 09:59:53 -03:00
Thiago Santos
0bdde84f3b
camerabin2: preview: Disable appsrc signals emission
...
Camerabin2 doesn't check appsrc's signals, so disable them
2011-09-05 09:33:45 -03:00
Vincent Penquerc'h
8a044de701
basevideoenc: do not try to calculate latency from an unknown framerate
...
It'll divide by zero, and latency is unknown for an unknown framerate.
Fixes an assert in the schroenc test.
https://bugzilla.gnome.org/show_bug.cgi?id=657419
2011-09-05 12:08:00 +02:00
Edward Hervey
52a6db2206
docs: minor fixes
2011-09-02 16:10:17 +02:00
Edward Hervey
53fcc53d22
gst-libs: Remove play directory. Was unported since 0.8
2011-09-02 16:10:17 +02:00
Gwenole Beauchesne
3952c0dd3b
codecparsers: h264: fix PPS parser
...
Fix transform_8x8_mode_flag and second_chroma_qp_index_offset
2011-09-02 15:46:04 +02:00
Gwenole Beauchesne
d7fafc551a
codecparsers: h264: fix NAL reader initialization.
2011-09-02 15:46:04 +02:00
Gwenole Beauchesne
d37f842aaa
codecparsers: h264: handle end-of-seq and end-of-stream NAL gracefully.
2011-09-02 15:46:03 +02:00
Gwenole Beauchesne
ccfd761659
codecparsers: h264: fix ref_pic_list_reordering().
2011-09-02 15:46:03 +02:00
Gwenole Beauchesne
621fd01281
codecparsers: h264: fix pred_weight_table() parsing.
...
Use 16-bit signed integer values for weight values because valid
ranges are -128 to +128 inclusive.
2011-09-02 15:46:03 +02:00
Gwenole Beauchesne
4bacba620f
codecparsers: h264: record slice_header() size in bits.
2011-09-02 15:46:03 +02:00
Gwenole Beauchesne
0a0c73169f
codecparsers: h264: fix slice_header() parsing.
...
We were not parsing the slice headers until the actual end, we are now
parsing until the end.
2011-09-02 15:46:03 +02:00
Gwenole Beauchesne
43e47009d5
codecparsers: h264: fix filler-data NAL unit type name.
2011-09-02 15:46:03 +02:00
Gwenole Beauchesne
10ee3593f2
codecparsers: mpeg: add user-data packet start code definition.
2011-09-02 15:46:02 +02:00
Gwenole Beauchesne
888e8144a0
codecparsers: mpeg: fix Picture_Coding_Extension parser.
2011-09-02 15:46:02 +02:00
Thibault Saunier
a1cfba43f6
codecparsers: h264: Add an h.264 bitstream parsing library
2011-09-02 15:46:02 +02:00
Thibault Saunier
c64b99339c
codecparsers: mpeg: Add an mpeg video bitstream parsing library
...
Create a new codecparsers library
2011-09-02 15:46:02 +02:00
Thiago Santos
e17d99c4c4
basecamerabinsrc: Optimize preview pipeline startup
...
Use gst_element_link_pads_full to optimize preview pipeline startup,
leading to a faster camerabin2 startup as well.
2011-08-31 15:45:18 -03:00
Vincent Penquerc'h
f3cb4439cf
basevideoencoder: fix element leak
...
and this concludes an hour of yelling at the bloody test failing,
only to track down the problem not being in the test.
https://bugzilla.gnome.org/show_bug.cgi?id=657368
2011-08-26 10:25:46 +02:00
Thiago Santos
011eddcd0e
camerabin2: Remove from experimental
...
Remove camerabin2 from experimental, allowing it to be built
without needing to pass --enable-experimental on configure.
2011-08-23 19:26:31 -03:00
Sebastian Dröge
8c743fbc0f
basevideo: Fix locking, especially if both pads have different streaming threads
2011-08-18 10:23:32 +02:00
Sebastian Dröge
a081501a90
basevideo: Don't call g_type_class_peek_parent() in class_init
...
This is already done by the GObject boilerplate macro
2011-08-18 10:15:20 +02:00
Sebastian Dröge
d576e23aa4
basevideoencoder: Proxy the width/height/framerate/PAR constraints of downstream caps to upstream
...
This allows to specify constraints on the compressed downstream caps
by muxers or capsfilters, which will then be forwarded to upstream
and allows video converters to fulfill the constraints.
Code based on Mark Nauwelaerts audio encoder base class.
2011-08-12 12:25:03 +02:00
Sebastian Dröge
92c3aaa6e5
basevideoencoder: Remove old ::getcaps() comment
2011-08-12 12:13:45 +02:00
Sebastian Dröge
4a76d3a978
basevideoencoder: Remove ::get_caps() vfunc
...
Subclasses can set the caps more efficiently and this only
caused additional indirections.
2011-08-12 12:06:23 +02:00
Sebastian Dröge
6e4e4e107c
basevideodecoder: Use the cached video frame size instead of recalculating it
2011-08-09 10:43:55 +02:00
Tommi Myöhänen
9238647314
photography: add missing FLICKER_REDUCTION capability
...
GstPhotography API contains functions to get/set flicker reduction
mode, but GstPhotoCaps enumeration doesn't have item for it, so elements
are not able to report whether they support this feature or not.
Also add useful GST_PHOTOGRAPHY_CAPS_ALL for easily selecting all
capabilities at once.
https://bugzilla.gnome.org/show_bug.cgi?id=655318
2011-08-03 22:04:45 -03:00
Sebastian Dröge
ce0655c275
basevideoencoder: Make access to the list of frames threadsafe
2011-08-03 09:41:20 +02:00
Raluca Elena Podiuc
058a3d9d4c
basecamerasrc: remove unused get_allowed_input_caps
...
The use of this method was removed in:
commit 539f10f4d9
basecamerasrc: More cleanup
The code from wrappercamerabinsrc is from v4l2camerasrc but is unused:
get_allowed_input_caps is not called anywhere.
2011-08-02 13:39:18 -03:00
Raluca Elena Podiuc
28df77b7b0
basecamerasrc: don't use class offsets for start/stop-capture signal handlers
2011-08-02 13:39:18 -03:00
Raluca Elena Podiuc
2d17cd3350
basecamerasrc: document why we set preview to PLAYING
2011-08-02 13:39:18 -03:00
Raluca Elena Podiuc
5aa37ebdc8
basecamerasrc: document callbacks
...
Note for each callback:
- when it is called,
- whether it is mandatory or optional.
2011-08-02 13:39:17 -03:00
Raluca Elena Podiuc
c189ba3496
basecamerabinsrc: preview: remove unused new_preroll callback
2011-08-02 13:39:17 -03:00
Sebastian Dröge
976d372f9b
basevideoencoder: Allow finishing of frames with no src_buffer to drop/free the GstVideoFrame
2011-07-21 08:09:11 +02:00
Sebastian Dröge
e5be8aa8ff
basevideoencoder: Only get caps from the subclass if they were not set yet by the subclass
2011-07-21 08:09:11 +02:00
Sebastian Dröge
b2525a3044
basevideoencoder: Delay sending of serialized sink events until finish_frame()
2011-07-21 08:09:11 +02:00
Sebastian Dröge
f011e59943
basevideoencoder: Add ::reset vfunc and handle ::reset/::finish the same way as in the decoder
2011-07-21 08:09:10 +02:00
Sebastian Dröge
2dbd24ca84
basevideoencoder: Use a temporary GstVideoState until the subclass accepted the caps
...
Also store the caps in the GstVideoState and assume a PAR of 1/1 instead
of 0/1 if no PAR is specified in the caps.
2011-07-19 12:52:31 +02:00
Sebastian Dröge
83c4e8814e
basevideodecoder: First inform subclass about resetting before resetting/freeing all internal state
...
The subclass might want to access the old state.
2011-07-11 12:59:07 +02:00
Sebastian Dröge
a59246c1d1
basevideodecoder: Track present position on discont before resetting it
2011-07-11 12:36:42 +02:00
Sebastian Dröge
08823f80d6
basevideodecoder: Also protect the list of pending frames from concurrent access when pushing all pendings events
2011-07-11 11:52:48 +02:00
Sebastian Dröge
81f4c9e8bf
basevideocodec: Protect access to the list of pending frames with the object lock
...
This is required if ::finish_frame() and all buffer output happens
on a different thread than the sinkpad streaming thread.
2011-07-11 11:28:40 +02:00
Sebastian Dröge
caed64c720
basevideodecoder: Set the correct lists to NULL after freeing
2011-07-11 09:35:25 +02:00
Sebastian Dröge
584859488b
basevideodecoder: Work with a copy of the GstVideoState in setcaps until the caps are accepted
...
Also fix a refcount problem with the codec_data.
2011-07-11 09:19:28 +02:00
Sebastian Dröge
e61d3d1a0c
basevideo: Move the utils from the codec header to its own header
2011-07-09 11:40:17 +02:00
Sebastian Dröge
5f55a74571
basevideo: Use GSlice for allocating GstVideoFrame and don't duplicate code in the decoder base class
2011-07-09 11:09:12 +02:00
Sebastian Dröge
f341386b64
basevideodecoder: Don't reorder serialized src events
...
And allow to drop EOS by the subclass if ::finish returns
DROPPED. This requires that the subclass sends EOS manually later.
Fixes bug #653544 .
2011-07-09 11:04:18 +02:00
Sebastian Dröge
525875727a
basevideo: Add the caps to the GstVideoState and clean up caps/codec_data properly
...
Having access to the caps in ::set_format can be useful if
non-standard caps fields like the h264 alignment must be accessed.
2011-07-09 11:02:01 +02:00
Sebastian Dröge
fc93c66d3b
basevideo: Add destroy notify for the coder_hook to prevent memory leaks
...
Fixes bug #654293 .
2011-07-09 11:00:28 +02:00
David Schleef
929603d56c
basevideodecoder: Better handling of invalid par
2011-06-04 14:09:29 -07:00
Debarshi Ray
03bb5dc8ba
Remove unused but set variables
...
This is needed to satisfy the new -Wunused-but-set-variable added in
GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html
2011-05-30 22:52:03 +10:00
Lauri Lehtinen
c86d662b23
basecamerabinsrc: Handle errors from preview pipeline
...
Implements a message handling function to preview pipeline bus.
If GST_MESSAGE_ERROR is seen, considers preview pipeline unable
to do its job and posts an error message to application.
Sets pipeline element to NULL so that subsequent calls to post_preview
and set_caps functions just returns without pushing anything to the
disposed preview pipeline. Leaves further actions to the application.
2011-05-16 18:08:39 -03:00
Lauri Lehtinen
802028081c
basecamerabinsrc: Protection for previewpipeline when setting new preview caps
...
Implements a state indicating flag to preview pipeline,
so that new caps are not set if the pipeline is processing a
preview. The caps are set as pending and applied when the
next preview post is called.
In this case a wait was implemented in the post_preview function,
so that new preview image buffer will wait until the other previews
have been posted to the application and the new caps can be used
safely.
2011-05-16 18:08:39 -03:00
Mark Nauwelaerts
9b6e819247
basevideodecoder: handle missing framerate when calculating timestamp
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
cfe85ad780
basevideodecoder: debug code style fixes
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
2f6af91f09
basevideodecoder: tune parsing sink caps into video state
...
... to provide subclass with more information w.r.t. original caps.
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
380a443be4
basevideodecoder: video state reference to codec_data is not refcounted
...
... but rather implicitly valid as long as sink caps are not modified.
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
a1825bd5e2
basevideodecoder: improve glitch resilience
...
Provide a replacement for GST_ELEMENT_ERROR to avoid aborting at the first
atom out of place, while on the other hand not failing indefinitely.
2011-05-16 20:32:24 +02:00
Mark Nauwelaerts
1588ed321c
basevideodecoder: reverse playback support
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
1d99e8eafa
basevideodecoder: use basevideocodec discont field
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
1b151caf11
basevideodecoder: really and only set src pad caps whenever requested
...
... since subclass is expected to be wise enough to know when to do so.
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
550237347b
basevideodecoder: add some sanity enforcing
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
f72658435b
basevideodecoder: add documentation
...
... and remove some more stray unused code and methods.
2011-05-16 20:32:23 +02:00
Mark Nauwelaerts
04f4a583dd
basevideocodec: fully free video frame
2011-05-16 20:32:23 +02:00