Commit graph

929 commits

Author SHA1 Message Date
Edward Hervey
67ac84c7b5 codecparsers: Add Mpeg Video GstMeta
This can be used by parsers to provide pre-parsed information to
downstream elements that would require it (so they can avoid having
to parse the bitstream again).
2013-03-31 18:55:29 +02:00
Edward Hervey
3bb62cbf1d codecparser: Fix picture packet extension size check
It is at least 34 bit big (5 bytes with byte padding)
2013-03-31 12:18:32 +02:00
Sebastian Dröge
ce9b6e5afb eglglessink: Implement GstContext handling 2013-03-29 16:38:34 +01:00
Josep Torra
a9a385c512 egl: check on the proper display and indent some lines 2013-03-29 10:33:10 +01:00
Sebastian Dröge
c645e41711 egl: Add a boxed type for GstEGLDisplay 2013-03-28 16:53:35 +01:00
Sebastian Dröge
8f9c2e8e44 egl: Fix some return values in g_return_val_if_fail() 2013-03-19 14:32:30 +01:00
Sebastian Dröge
a373e75949 egl: Add support for different orientations of the EGLImage
The content of the EGLImages can be at least in GStreamer orientation,
meaning top line first in memory, or OpenGL orientation, meaning
bottom line first in memory.
2013-03-13 12:23:49 +01:00
Sebastian Dröge
5e948472ed egl: Rename gst_egl_image_memory_can_map() to is_mappable() 2013-03-03 12:31:05 +01:00
Sebastian Dröge
4ca26a3c45 egl: Remove buffer pool option
This should be done differently via the allocators in the allocation query.
2013-03-03 12:31:05 +01:00
Sebastian Dröge
a47f52bb96 egl: Mark memory as not mappable if it isn't 2013-03-03 12:31:05 +01:00
Sebastian Dröge
0a5ff713e7 egl: Implement sharing of memory 2013-03-03 12:31:05 +01:00
Sebastian Dröge
4dd09a12dd egl: Add infrastructure for EGLImage handling 2013-03-03 12:31:04 +01:00
Sebastian Dröge
4bf50b6af0 codecparsers: Use correct type specifiers for format strings to fix compiler warnings 2013-03-03 12:29:42 +01:00
Tim-Philipp Müller
f8139b2b99 insertbin: mark as unstable API 2013-02-14 09:03:28 +00:00
Tim-Philipp Müller
214d7e0619 insertbin: fix up gtk-doc chunk and add since markers 2013-02-14 09:02:53 +00:00
Tim-Philipp Müller
0dcb7c27ba glib-compat-private.h: remove old GStaticRecMutex stuff
Breaks the build with newer GLibs ("unknown type GStaticRecMutex")
and is not needed any more.
2013-02-12 10:39:44 +00:00
David Schleef
743098fe8c mpegvideoparser: increase min size for picture coding ext
This could use additional work.  The parsing code overruns the
end of buffers during normal operation, triggering GST_WARNINGs.
2013-02-11 18:02:23 -08:00
Youness Alaoui
381fcda68b basecamerabinsrc: Add auto-start property to basecamerabin 2013-02-11 22:04:59 +01:00
Gwenole Beauchesne
6e440f1da4 codecparsers: h264: add profile enums.
Add all useful profiles from AVC, MVC and SVC specifications.

https://bugzilla.gnome.org/show_bug.cgi?id=693140

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-02-07 14:38:27 +01:00
Gwenole Beauchesne
250555a7de codecparsers: mpeg2: add helpers to convert quantization matrices.
Add utility functions to convert quantization matrices from zigzag scan
order (as encoded in the bitstream) into raster scan order. Also provide
another function to reverse the operation.

https://bugzilla.gnome.org/show_bug.cgi?id=693000

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-02-06 14:22:41 +01:00
Cong Zhong
46c01de05d codecparsers: mpeg2: store quantization matrices in zigzag scan order.
Quantizer matrices are encoded in zigzag scan order in the bitstream,
but they are stored in raster scan order when they are parsed. However,
default matrices were also prepared in zigzag scan order, hence the
mismatch. i.e. the matrices were presented either in raster scan order
if they are explicitly present in the bitstream, or they were presented
in zigzag scan order if the default definitions were to be used instead.

One way to solve this problem is to always expose the quantization
matrices in zigzag scan order, since this is the role of the parser to
not build up stories from the source bitstream and just present what
is in there.

Utility functions will be provided to convert quantization matrices in
either scan order.

https://bugzilla.gnome.org/show_bug.cgi?id=693000

Signed-off-by: Cong Zhong <congx.zhong@intel.com>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-02-06 14:22:41 +01:00
Tim-Philipp Müller
cf695c6da9 insertbin, tests: fix printf format compiler warnings 2013-01-25 12:25:15 +00:00
Gwenole Beauchesne
10639eb889 codecparsers: vc1: fix bitplanes decoding (DIFF6 or NORM6 residual bytes).
Fix parsing of residual bytes. This is a two-step process. First,
remaining colums of full vertical resolution (<height>) need to be
processed. Next, remaining bytes in the first row can be processed,
while taking into account the fact that we may have filled in the
first columns already. So, this is not full horizontal resolution.

The following figure helps in understanding the expected order of
operations, for a 8x5 MBs bitplane.

    5 5 6 6 6 6 6 6
    5 5 1 1 1 2 2 2
    5 5 1 1 1 2 2 2
    5 5 3 3 3 4 4 4
    5 5 3 3 3 4 4 4

So, after tiles 1 to 4 are decoded, vertical tile 5 needs to be
processed (2x5 MBs) and then the horizontal tile 6 (6x1 MBs).

https://bugzilla.gnome.org/show_bug.cgi?id=692461

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-25 09:53:05 +01:00
Gwenole Beauchesne
fa2a526f04 codecparsers: vc1: fix bitplanes decoding (DIFF6 or NORM6).
Fix decoding of DIFF6 or NORM6 bitplanes with an odd number of lines
(3x2 "horizontal" tiles). In this case, we have to skip the first line
of macroblocks but <width> number of bytes was used to do so, instead
of the actual <stride> size.

This fixes decoding for the video sample attached to:
https://bugzilla.gnome.org/show_bug.cgi?id=668565

https://bugzilla.gnome.org/show_bug.cgi?id=692461

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-25 09:39:01 +01:00
Olivier Crête
d1023646f9 insertbin: Add bin to dynamically insert elements in a running pipeline
This element automatically links in any element added using it's
action signals. These elements must have a single source pad and a single
sink pad.
2013-01-23 21:13:03 -05:00
Gwenole Beauchesne
07a51b16eb codecparsers: vc1: add API to parse slice headers.
Add gst_vc1_parse_slice_header() function to parse slice headers as
described in 7.1.2. Slice layers are optional and allowed in advanced
profile mode only. Picture header, if available (PIC_HEADER_FLAG),
is parsed but not recorded because it shall be the same as that was
previously parsed with gst_vc1_parse_frame_header().

This fixes SA00049.vc1 conformance test.

https://bugzilla.gnome.org/show_bug.cgi?id=692388

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-23 17:22:07 +01:00
Gwenole Beauchesne
82200d75ae codecparsers: vc1: fix bitplanes decoding.
Fix decoding of DIFF2 or NORM2 bitplanes with an odd number of macroblocks.
In particular, account for the first bit that was already parsed so that to
avoid a buffer overflow after all pairs are parsed.

This fixes SA00040.vc1 conformance test.

https://bugzilla.gnome.org/show_bug.cgi?id=692312

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-23 09:35:11 +01:00
Gwenole Beauchesne
cbec9bfcd0 codecparsers: vc1: simplify GstVC1VopDquant structure.
Rename dqsbedge to dqbedge. The intent is that we can only have a single
boundary edge selector, depending on the value of dqprofile. So, dqbedge
represents DQSBEDGE if dqprofile == GST_VC1_DQPROFILE_SINGLE_EDGE, or
DQDBEDGE if dqprofile == GST_VC1_DQPROFILE_DOUBLE_EDGE.

The former dqbedge field is marked as unused and can be removed on the
next gst-plugins-bad version that allows ABI changes.

https://bugzilla.gnome.org/show_bug.cgi?id=692272

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-22 14:22:30 +01:00
Gwenole Beauchesne
93fbcfda23 codecparsers: vc1: fix VOPDQUANT parser for DQUANT == 2.
Fix parsing of VOPDQUANT when DQUANT == 2. In particular, DQUANTFRM is
not present in the bitstream in this case and it shall be derived to
the default value of zero (7.1.1.31.1).

https://bugzilla.gnome.org/show_bug.cgi?id=692271

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-22 11:20:06 +01:00
Gwenole Beauchesne
73213e273f codecparsers: vc1: fix calculation of ALTPQUANT.
Fix calculation of ALTPQUANT when DQUANT == 1. PQDIFF alters ALTPQUANT
in any case. See 7.1.1.31.6.

https://bugzilla.gnome.org/show_bug.cgi?id=692270

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-22 11:19:56 +01:00
Gwenole Beauchesne
f3698c6289 codecparsers: vc1: fix parser for DQPROFILE in VOPDQUANT.
Fix parse_vopdquant() to correctly parse DQPROFILE, which is 2 bits
instead of a single bit.

https://bugzilla.gnome.org/show_bug.cgi?id=692267

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-22 11:19:44 +01:00
Gwenole Beauchesne
56e2405a35 codecparsers: h264: add inferred value for slice_beta_offset_div2.
The standard specifies that when slice_beta_offset_div2 is not present
in the slice header, then the value of slice_beta_offset_div2 shall be
inferred to be equal to 0.

https://bugzilla.gnome.org/show_bug.cgi?id=692265

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-01-22 11:19:17 +01:00
Mark Nauwelaerts
c20d13d8f8 codecparsers: h264: zero-initialize SPS VUI parameters
... so all 'present' flags indicate no presence of optional parts
in case VUI parameters end up not being parsed.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681818
2013-01-15 19:44:06 +01:00
Youness Alaoui
faf7370a27 GstPhotography: Add new enum values to match android's parameters
https://bugzilla.gnome.org/show_bug.cgi?id=688486
2012-11-20 09:37:59 +00:00
Gwenole Beauchesne
e179a6b4dc codecparsers: vc1: fix PTYPE for interlaced frames.
Coverity found missing break in parse_frame_header_advanced() when
determining PTYPE from FPTYPE for interlaced streams.

https://bugzilla.gnome.org/show_bug.cgi?id=688626

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-11-19 13:57:48 +01:00
Gwenole Beauchesne
c951d201ec codecparsers: h264: fix error code for invalid size parsed in SPS.
gst_h264_parse_sps() returned FALSE if it parsed invalid (negative)
size components. Now make it gracefully return GST_H264_PARSER_ERROR
instead of GST_H264_PARSER_OK (FALSE).

https://bugzilla.gnome.org/show_bug.cgi?id=684568
2012-11-19 12:06:04 +00:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller
32ba17cd0f Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Michael Smith
0c2159a220 meta info: register thread-safely. 2012-10-03 11:05:06 -07:00
Mark Nauwelaerts
578861abea replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Peter Seiderer
fd030c15b7 gsth264parser: fix Coverity found not initialized sps/pps valid member.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683264
2012-09-14 17:27:49 +02:00
Peter Seiderer
8a91eed6ad gsth264parser: fix Coverity detected off by one at call to READ_UE_ALLOWED.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683263
2012-09-14 17:27:49 +02:00
Arnaud Vrac
0331fb6203 mpeg4parser: parse complexity estimation header in video object layer
https://bugzilla.gnome.org/show_bug.cgi?id=683254
2012-09-14 09:14:26 +02:00
Arnaud Vrac
af379b0b8e mpeg4parser: fix some issues related to video object layer parsing
https://bugzilla.gnome.org/show_bug.cgi?id=683254
2012-09-14 09:14:24 +02:00
Jan Schmidt
c5c44628fc mpegvideoparse: Handle Sequence Display Extension
Change the way the pixel-aspect-ratio is computed by
interpreting the sequence header aspect ratio info
as MPEG-1 values until a sequence extension or
sequence display extension is seen, and then updating
the sequence header struct accordingly.

Fixes incorrect anamorphic display on some MPEG-2 (DVD)
sequences.
2012-09-12 23:05:47 -07:00
Gwenole Beauchesne
0b2dd2e723 codecparsers: vc1: fix aspect ratio calculation.
ASPECT_HORIZ_SIZE and ASPECT_VERT_SIZE are syntax elements that hold
binary encodings of sizes ranging from 1 to 256. Thus, the calculated
pixel-aspect-ratio was off by one.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=683858
2012-09-12 10:44:10 +01:00
Gwenole Beauchesne
2c3eaf527b codecparsers: h264parse: don't use anonymous unions.
Anonymous union is an ISO C (2011) feature that is not exposed in
compilers strictly conforming to the previous standard.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-09-12 10:39:32 +01:00
Gwenole Beauchesne
a08273be72 codecparsers: h264: compute pixel aspect ratio.
Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-09-12 10:38:46 +01:00
Thiago Santos
0a831613a8 camerabin: update preview buffer pushing
need to pass a GstSample to the utilitary preview buffer post functions
as a GstBuffer doesn't have caps anymore. The GstSample has the GstCaps
and it is used to inform the preview's pipeline about the format of the
input, before it gets converted to the user's requested output format.
2012-07-29 00:53:29 -03:00
Lasse Laukkanen
eabb238b24 photography: update documentation
https://bugzilla.gnome.org/show_bug.cgi?id=622482
2012-07-11 00:10:55 +01:00