Commit graph

121 commits

Author SHA1 Message Date
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
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
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
Tim-Philipp Müller
7d41bc7825 codecparsers: minor header indentation clean-up for mpegvideoparser 2012-07-11 00:10:55 +01:00
Vincent Penquerc'h
8800946aa3 h264parser: do not assert on data input, just return
https://bugzilla.gnome.org/show_bug.cgi?id=674069
2012-06-11 11:12:36 +01:00
Edward Hervey
7d4f1aa8e8 h264parser: Remove un-needed checks and inline some functions
val and nr always exist (&nr, &value)
bits is always called smaller than the width

Makes parsing 30% faster
2012-06-06 10:33:18 +02:00
Mark Nauwelaerts
8d6aed5297 codecparsers: mpeg: relax entry constraint
... since it is acceptable and properly handled further on.
2012-06-01 11:13:17 +02:00
Mark Nauwelaerts
28f3858b94 mpegvideoparse: tweak codec parser API and adjust parser element
... to allow for more efficient parsing and (more) consistent parsing API
among various codec parsers.

Fixes #672701.

Conflicts:

	gst/videoparsers/gstmpegvideoparse.c
2012-05-22 14:09:47 +02:00
Mark Nauwelaerts
29a947642e codecparsers: mpeg4: fixup documentation spelling 2012-05-22 14:00:50 +02:00
Nicolas Dufresne
920053dae6 mpegvideoparser: Optimize scanning for start code
https://bugzilla.gnome.org/show_bug.cgi?id=672701
2012-05-22 14:00:48 +02:00
Mark Nauwelaerts
e560ce0909 codecparsers: mpegvideoparser: fix buffer size check
... to mind unsigned integer wrap

Based on patch by Alban Browaeys <prahal@yahoo.com>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=673436
2012-05-21 15:29:37 +02:00
Mark Nauwelaerts
5b2c2fa32b codecparsers: mpeg4: do not expect a marker bit where not specified
Fixes #672447.
2012-05-18 16:31:21 +02:00
Wind Yuan
cd001d7b8e codecparser: mpeg4 type error 2012-05-01 11:01:37 +02:00
Matej Knopp
045e8bb506 mpegvideoparse: Do not ignore start code at the end of buffer 2012-04-16 08:42:12 +02:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +02:00
Thibault Saunier
1188120eba Fix an unwanted double negation from last commit 2012-03-10 20:55:25 -03:00
Thibault Saunier
20669d461a Fix 'ignoring return value of function declared with const attribute'
This always happens with GstByteReader/Writer and friends when
not taking into account returned boolean of the _read/_write functions
(which is actually wrong).

Make use of the *_unchecked variant as much as possible, or take the
returned value into account.
2012-03-10 19:22:07 -03:00
Gwenole Beauchesne
5c9f790075 codecparsers: h264: record number of emulation prevention bytes in slice_header().
Some hardware video decode acceleration API (VA-API, DXVA) require
a bit count to the first macroblock, minus the number of emulation
prevention bytes. So, instead of having the consumer of the library
scan the slice_header() again, just record that number while parsing.

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

https://bugzilla.gnome.org/show_bug.cgi?id=671203
2012-03-03 15:53:46 +00:00
Jonas Larsson
e373df2a97 codecparsers: h264: fix SEI parsing
... in the presence of emulation_prevention_three_byte.

Fixes #668381.
2012-02-15 15:10:06 +01:00
Gwenole Beauchesne
4964db6a1c codecparsers: h264: fix parsing of VUI parameters.
max_dec_frame_buffering was mis-parsed because log2_max_mv_length_vertical
was parsed twice.

https://bugzilla.gnome.org/show_bug.cgi?id=668660
2012-01-30 15:21:23 +00:00
Jonas Larsson
9feea330bb h264parse: fix gst_h264_parse_clock_timestamp always failing 2012-01-23 18:31:51 +00:00
Jonas Larsson
657226d9f0 codecparsers: read the cbr_flag in h264_parse_hrd_parameters 2012-01-23 19:01:04 +01:00
Gwenole Beauchesne
c92efe38e9 codecparsers: h264: fix ref_pic_list_modification()
The entries were not filled in linearly and the termination was not
recorded either. Now, the actual number of modifications is recorded
similarly to dec_ref_pic_marking(). i.e. an explicit counter instead
of storing the termination value in the array.

https://bugzilla.gnome.org/show_bug.cgi?id=668192
2012-01-20 18:40:29 +00:00
Vincent Penquerc'h
b6edb1a03a mpegvideoparser: fix memory leak 2012-01-12 14:34:25 +00:00
Mark Nauwelaerts
360cbaa46c codecparsers: mpeg4: fix parsing when recursively skipping user data 2012-01-09 15:03:30 +01:00
Zhao Halley
5676ff5bf4 codecparsers: remove h263 gob parsing, since there is no gob immediate after svh 2012-01-05 08:34:36 -03:00
Zhao Halley
bb52df5e24 codecparsers: add missing zero_bits in h263 parsing 2012-01-05 08:34:35 -03:00
Zhao Halley
1138aab1db codecparsers: includes start_marker in h263 header for parsing 2012-01-05 08:34:35 -03:00
Zhao Halley
052d1ace5e codecparsers: fix offset issue in h263 parse 2012-01-05 08:34:35 -03:00
Zhao Halley
70390ad846 codecparsers: fix mask pattern for h263 start marker 2012-01-05 08:34:35 -03:00
Mark Nauwelaerts
248a1c86e0 codecparsers: h264: clear sei message prior to parsing
Fixes #666584.
2011-12-20 14:06:34 +01:00
Zhao Halley
4960d27d73 codecparsers: first video_packet_header doesn't start with resync_marker 2011-12-06 17:05:52 -03:00
Zhao Halley
5aaf56af29 codecparsers: return NO_PACKET if needed 2011-12-06 17:05:52 -03:00
Zhao Halley
3aa9081ef5 codecparsers: fix an issue in check resync marker 2011-12-06 17:05:52 -03:00
Zhao Halley
befc724e5a codecparsers: fix an issue in finding the last video packet in vop 2011-12-06 17:05:52 -03:00
Zhao Halley
164faafad6 codecparsers: include resync marker in video packet size 2011-12-06 17:05:52 -03:00