Commit graph

224 commits

Author SHA1 Message Date
Wim Taymans e9dd2df3f4 videoparsers: remove fields from filter
Don't filter out the caps properties we can convert between when
proxying the getcaps query to the downstream peer pad.
2013-12-04 09:49:20 +01:00
Wim Taymans d5a16bccac videoparsers: refactor remove_fields in getcaps 2013-12-04 09:49:20 +01:00
Sebastian Dröge 1b747bfecb h264parse: Fix splitting of multiple NALU per buffer
Conversion to byte-stream/nal crashes without that because the
baseparse frame of all NALUs is finished for the first NALU, then
used again for parsing the second NALU. Just that now the buffer
of the frame is already gone. Instead we create temporary frames
for every NALU.
2013-11-28 15:10:16 +01:00
Sreerenj Balachandran ab3f7d6096 h264parse: Remove the explicit PAR calculation based on VUI headers
The PAR calculation based on VUI headers is already doing by the
h264 codecparser and we does't need to duplicate those code.

https://bugzilla.gnome.org//show_bug.cgi?id=711009
2013-10-31 23:00:58 +01:00
Edward Hervey 0baac2ffb9 h264parse: Unify value setting
the initial par_n = par_d = 0; was always overwritten since the switch/case
handles all values

And remove the 0 case (it's the same handling as default)
2013-10-28 09:35:20 +01:00
Edward Hervey 77f254abb3 h264parse: Avoid ending up with undefined values
If caps aren't fixed, we'd end up with undefined values for format
and align.
2013-10-28 09:33:16 +01:00
Sebastian Dröge 4b5d560092 h264parse: Fix conversion to AVC if a SPS/PPS not from the first indizes is used
https://bugzilla.gnome.org/show_bug.cgi?id=707974
2013-10-03 13:26:06 +02:00
Matej Knopp a41e8698b1 h264parse: don't update src caps if only codec_data differs
https://bugzilla.gnome.org/show_bug.cgi?id=705333
2013-09-09 15:09:10 +02:00
Alex Ashley 31d1c05871 h264parse: Add support for stream-format=avc3
When outputting in AVC3 stream format, the codec_data should not
contain any SPS or PPS, because they are embedded inside the stream.

In case of avc->bytestream h264parse will push the SPS and PPS from
codec_data downstream at the start of the stream, at intervals
controlled by "config-interval" and when there is a codec_data change.

In the case of avc3->bytstream h264parse detects that there is
already SPS/PPS in the stream and sets h264parse->push_codec to FALSE.
Therefore avc3->bytstream was already supported, except for the stream
type.

In the case of bystream->avc h264parse will generate codec_data caps
from the parsed SPS/PPS in the stream. However it does not remove these
SPS/PPS from the stream. bytestream->avc3 is the same as bytestream->avc
except that the codec_data must not have any SPS/PPS in it.

|--------------+-------------+-------------------|
|stream-format | SPS in-band | SPS in codec_data |
|--------------+-------------+-------------------|
| avc          | maybe       | always            |
|--------------+-------------+-------------------|
| avc3         | always      | never             |
|--------------+-------------+-------------------|

Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
structure for fragmented MP4 called "avc3". The principal difference
between AVC1 and AVC3 is the location of the codec initialisation
data (e.g. SPS, PPS). In AVC1 this data is placed in the initial MOOV box
(moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data goes in the
first sample of every fragment.

https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-04 13:32:36 +02:00
Edward Hervey 865ad4cdad h264parse: Use codecparsers macros
note: I/SI also covers the S_I/S_SI variants
2013-08-30 09:05:43 +02:00
Matthieu Bouron 4b10f278b6 h264parse: only update src CAPS when it's necessary
https://bugzilla.gnome.org/show_bug.cgi?id=705452
2013-08-27 15:00:45 +02:00
Matthieu Bouron 43dcebe2a0 h264parse: do not set CAPS and passthrough mode if SPS/PPS have not been parsed
https://bugzilla.gnome.org/show_bug.cgi?id=705452
2013-08-27 15:00:35 +02:00
Edward Hervey 8074a48594 h264parse: Use slice type to determine if frame is keyframe
This is the same behaviour as pre-baseparse-refactoring

https://bugzilla.gnome.org/show_bug.cgi?id=705598
2013-08-09 08:42:43 +02:00
Edward Hervey b17676a1d5 h264parse: Do not trigger caps update if we only have PPS updates
Updating caps results in downstream elements potentially reconfiguring themselves
(such as decoders). If we do this in the middle of keyframes, we would result
in those elements being reconfigured and handling garbage until the next keyframe.

Instead of this only send (potentially) new codec_data when we have *both* SPS and
PPS.

https://bugzilla.gnome.org/show_bug.cgi?id=705333
2013-08-04 12:08:57 +02:00
Edward Hervey 97426a1caa all: Fix for GST_DISABLE_GST_DEBUG
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +02:00
Edward Hervey 3ee8aa2c2d h264parse: Show NALU string type in debug messages
If you know the NALU type by heart I tip my hat to you, for the rest of
us mere mortals this is a bit more helpful
2013-07-29 09:42:12 +02:00
Olivier Crête 6a1896d805 h264parse: Don't abort on invalid streams
Just return an error
2013-07-22 16:27:16 +02:00
Gwenole Beauchesne 18984f98dd h264parser: fix size caps to report cropped dimensions.
Restore the original h264parser behaviour to report cropped dimensions
in size caps.

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

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-07-09 12:15:07 +02:00
Ilya Smelykh ef0e051e7d h264parse: Wait until SPS/PPS before outputting any data
https://bugzilla.gnome.org/show_bug.cgi?id=646327
2013-06-07 12:10:08 +02:00
Josep Torra b946de7211 h264parse: Update src pad caps when it was explicitly signaled
Fixes src pad caps aren't updated when converting from AVC to bytestream
and new caps had been received in the sink pad.

https://bugzilla.gnome.org/show_bug.cgi?id=698679
2013-04-26 10:38:36 +02:00
Youness Alaoui ece3d1c2f6 h264parse: Do not check for VUI parameters if they were not present in the SPS 2013-04-16 19:58:06 -04:00
Mark Nauwelaerts 7df753165f h264parse: separate fields for distinct functional uses of codec_data field
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692789
2013-02-02 19:29:40 +01:00
Sebastian Dröge f623a78924 videoparsers: Make sure the caps are actually writable before changing them 2012-12-17 15:16:48 +01:00
Sebastian Dröge 9f1257330d videoparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
Otherwise we will intersect with the srcpad template caps and add all the caps fields
that the parser will ever set, no matter if downstream restricts this field or not.
This requires upstream to set this field on the caps to successfully negotiate.

https://bugzilla.gnome.org/show_bug.cgi?id=690184
2012-12-17 15:04:44 +01:00
Wim Taymans 0e0dd05fd6 h264parse: use upstream width/height when given
The upstream width and height should override the dimension detected in the
file.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683142
2012-12-13 14:15:04 +01:00
Thibault Saunier b3abd51656 h264parse: don't rewind to the NAL length size in bytewriter if the format is bytestream
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687548

Signed-off-by:  Kevin Thornberry
2012-11-06 12:44:29 -03:00
Thibault Saunier 72933e3929 h264parse: Actually add PPS data to the output buffer 2012-11-06 11:54:39 -03: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
Mark Nauwelaerts 0d1c7f6ea2 videoparsers: use parsed or upstream fps to set some baseparse parameters 2012-10-25 18:02:38 +02:00
Mark Nauwelaerts 58441bf262 h264parse: extract structure from correct caps
... which are known != NULL.
2012-10-25 18:02:38 +02:00
Mark Nauwelaerts 821c8519e0 videoparsers: preserve upstream fps and par
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660866
2012-10-25 17:07:18 +02: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
Mark Nauwelaerts 578861abea replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Mark Nauwelaerts f2191d403c h264parse: init pps and sps structures before parsing
... which arranges for a valid fallback id, and allows to continue best effort
processing even when sps/pps parsing fails.
2012-09-14 17:27:49 +02:00
Peter Seiderer a0d88d5ff5 gsth264parse: add comment where return should be checked.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683264
2012-09-14 17:27:49 +02:00
Jan Schmidt b7d63d3fb1 videoparsers: Disable PTS interpolation in the base parse class
All these formats have re-ordered PTS which the base class gets
wrong. It's better to leave them blank and let the decoder sort it
out. Better yet would be to track and interpolate the timestamps
in the subclasses (FIXME)
2012-09-12 23:05:47 -07: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
Mark Nauwelaerts 4f2bcc3243 h264parse: ensure sufficiently sized buffer when wrapping NAL
Noted by <zhangyanping210@yahoo.com.cn>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682589
2012-08-28 11:07:50 +02:00
Sebastian Dröge 7c6093357b videoparsers: Fix GstBaseParse::get_sink_caps() implementations
They should take the filter caps into account and always return
the template caps appended to the actual caps. Otherwise the
parsers stop to accept unparsed streams where upstream does not
know about width, height, etc.

Fixes bug #677401.
2012-06-05 09:30:00 +02:00
Mark Nauwelaerts 7f72b99426 h264parse: also consider nal_length_size when inserting codec data
See #676174.
2012-05-17 11:47:19 +02:00
Mark Nauwelaerts 07db2da91c Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst/h264parse/gsth264parse.c
	gst/videoparsers/gsth264parse.c
2012-04-06 14:52:12 +02:00
Mark Nauwelaerts 7cfdc7e912 h264parse: tweak default setting of format and alignment in codec_data case
... which should promote ending up in passthrough mode.
2012-04-06 14:36:44 +02:00
Mark Nauwelaerts 0882adc69f h264parse: do not use _unchecked bytewriter variants to insert config
.. since the bytewriter is explicitly created with non-fixed size to
allow (very much so expected) growth.

Partially reverts commit 20669d461a while
trying to keep (some?) compilers happy.

IIRC, the purpose of GstByteWriter in the first place was (at least)
being able to dump data without having to fuss with memory expansion
and size issues ...

Fixes #673485.
2012-04-06 14:35:56 +02:00
Sebastian Dröge c63fa9190b videoparsers: Update for baseparse API changes 2012-03-30 12:02:34 +02:00
Sebastian Dröge 860ccd414d Merge remote-tracking branch 'origin/0.10'
Conflicts:
	NEWS
	RELEASE
	common
	configure.ac
	docs/libs/gst-plugins-bad-libs-sections.txt
	docs/plugins/gst-plugins-bad-plugins.args
	docs/plugins/gst-plugins-bad-plugins.hierarchy
	docs/plugins/gst-plugins-bad-plugins.interfaces
	docs/plugins/inspect/plugin-adpcmdec.xml
	docs/plugins/inspect/plugin-adpcmenc.xml
	docs/plugins/inspect/plugin-assrender.xml
	docs/plugins/inspect/plugin-audiovisualizers.xml
	docs/plugins/inspect/plugin-autoconvert.xml
	docs/plugins/inspect/plugin-bayer.xml
	docs/plugins/inspect/plugin-bz2.xml
	docs/plugins/inspect/plugin-camerabin2.xml
	docs/plugins/inspect/plugin-celt.xml
	docs/plugins/inspect/plugin-dataurisrc.xml
	docs/plugins/inspect/plugin-debugutilsbad.xml
	docs/plugins/inspect/plugin-dtmf.xml
	docs/plugins/inspect/plugin-dtsdec.xml
	docs/plugins/inspect/plugin-dvbsuboverlay.xml
	docs/plugins/inspect/plugin-dvdspu.xml
	docs/plugins/inspect/plugin-faac.xml
	docs/plugins/inspect/plugin-faad.xml
	docs/plugins/inspect/plugin-gsm.xml
	docs/plugins/inspect/plugin-h264parse.xml
	docs/plugins/inspect/plugin-mms.xml
	docs/plugins/inspect/plugin-modplug.xml
	docs/plugins/inspect/plugin-mpeg2enc.xml
	docs/plugins/inspect/plugin-mpegdemux2.xml
	docs/plugins/inspect/plugin-mpegtsdemux.xml
	docs/plugins/inspect/plugin-mpegvideoparse.xml
	docs/plugins/inspect/plugin-mplex.xml
	docs/plugins/inspect/plugin-pcapparse.xml
	docs/plugins/inspect/plugin-rawparse.xml
	docs/plugins/inspect/plugin-rtpmux.xml
	docs/plugins/inspect/plugin-rtpvp8.xml
	docs/plugins/inspect/plugin-scaletempo.xml
	docs/plugins/inspect/plugin-schro.xml
	docs/plugins/inspect/plugin-sdp.xml
	docs/plugins/inspect/plugin-segmentclip.xml
	docs/plugins/inspect/plugin-shm.xml
	docs/plugins/inspect/plugin-videomaxrate.xml
	docs/plugins/inspect/plugin-videoparsersbad.xml
	docs/plugins/inspect/plugin-vp8.xml
	docs/plugins/inspect/plugin-y4mdec.xml
	ext/celt/gstceltdec.c
	ext/dts/gstdtsdec.c
	ext/modplug/gstmodplug.cc
	ext/opus/gstopusenc.c
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideodecoder.h
	gst-libs/gst/video/gstbasevideoencoder.c
	gst-libs/gst/video/gstbasevideoencoder.h
	gst/adpcmdec/Makefile.am
	gst/audiovisualizers/gstbaseaudiovisualizer.c
	gst/h264parse/gsth264parse.c
	gst/mpegdemux/mpegtsparse.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/mpegtsdemux/mpegtspacketizer.c
	gst/mpegtsdemux/mpegtsparse.c
	gst/mpegtsdemux/tsdemux.c
	gst/mpegtsdemux/tsdemux.h
	gst/mxf/mxfdemux.c
	gst/rawparse/gstaudioparse.c
	gst/videoparsers/gsth263parse.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	sys/decklink/gstdecklinksink.cpp
	sys/dvb/gstdvbsrc.c
	sys/shm/gstshmsrc.c
	sys/vdpau/h264/gstvdph264dec.c
	sys/vdpau/mpeg/gstvdpmpegdec.c
	tests/examples/opencv/gst_element_print_properties.c
	win32/common/config.h
2012-03-29 17:41:53 +02:00
Wim Taymans 6cbb840385 update for memory api changes 2012-03-15 13:37:36 +01:00
Wim Taymans 77299ba6ae fix for caps api changes 2012-03-11 19:06:59 +01: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
Mark Nauwelaerts 4c9ac0886a h264parse: consider nal_length_size when constructing codec_data
Fixes #670699.
2012-02-23 21:18:31 +01:00
Mark Nauwelaerts c7216162e4 h264parse: remove _chain hack
As we can now rely upon being passed upstream delineated data in
::handle_frame(), the latter can also parse avc formatted data
without having to intercept baseparse's chain function.

While this evidently requires 2 separate parsing paths, each can
be streamlined accordingly.
2012-02-15 17:15:10 +01:00
Mark Nauwelaerts b8a78c6b37 videoparsers: adjust to standardized baseparse frame state tracking 2012-02-15 17:15:07 +01:00
Mark Nauwelaerts ca5010cc4b Merge branch 'master' into 0.11 2012-02-15 17:14:34 +01:00
Mark Nauwelaerts 5cce89b048 h264parse: use proper NALU offset for config data insertion
... which has to be the position of the start code, which is almost always
but need not be 4 bytes.
2012-02-15 14:29:45 +01:00
Wim Taymans 16810321ee videoparsers: don't leak event
Unref the event when we don't chain up to the parent
2012-02-15 13:02:06 +01:00
Wim Taymans f9c99b4713 videoparsers: chain up to parent event handler
Chain up to the parent event handler to get the default behaviour instead of
returning FALSE.
2012-02-15 12:56:55 +01:00
Mark Nauwelaerts b10b9cf109 videoparsers: adjust to modified baseparse API 2012-02-13 18:44:01 +01:00
Mark Nauwelaerts 67a8e53aef h264parse: fixup merge 2012-02-13 18:42:53 +01:00
Wim Taymans 6c2f5814ef h264parse: report after merge 2012-02-10 16:52:46 +01:00
Wim Taymans 1119f6ee41 Merge branch 'master' into 0.11
Conflicts:
	ext/chromaprint/gstchromaprint.c
	ext/mpeg2enc/Makefile.am
	ext/voaacenc/gstvoaacenc.c
	gst/dvbsuboverlay/gstdvbsuboverlay.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/sdp/gstsdpdemux.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	tests/examples/camerabin/gst-camera-perf.c
	tests/examples/camerabin/gst-camerabin-test.c
	tests/examples/camerabin2/gst-camerabin2-test.c
	tests/examples/mxf/mxfdemux-structure.c
	tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Mark Nauwelaerts 1cbd755a2c h264parse: unobfuscate frame parsing code 2012-02-10 14:52:03 +01:00
Wim Taymans 20ffe99cc7 h264parse: fix refcount error 2012-02-09 14:42:23 +01:00
Mark Nauwelaerts c36bb8b73d h264parse: decrease passthrough negotiation preference
Also ensure parsing fixed caps when negotiating rather than failing to
handle non-fixed list cases.

See #668471.
2012-02-03 11:27:32 +01:00
Mark Nauwelaerts da89903f81 h264parse: disable optimized packetized processing for reverse playback
... as baseparse then provides whole chunks of data (as it should) at once
to be parsed, and so the assumptions used to optimize are no longer valid.

Fixes #667560.
2012-02-01 13:53:17 +01:00
Mark Nauwelaerts 283f97cb79 h264parse: also mind SEI position for config data insertion
Fixes #668627.
2012-02-01 13:53:15 +01:00
Mark Nauwelaerts 136f42974d h264parse: unbreak optimized packetized NALU collection processing
... in that it was so optimized it did not consider grouping NALU into AU
altogether.

Fixes #668627.
2012-02-01 13:53:13 +01:00
Mark Nauwelaerts 9dc7571c75 port some more to new memory API 2012-01-25 16:22:09 +01:00
Sebastian Dröge a01a4ea2d3 Merge branch 'master' into 0.11
Conflicts:
	gst/mpegtsdemux/tsdemux.c
	gst/videoparsers/gsth264parse.c
	tests/check/elements/camerabin2.c
2012-01-10 15:50:37 +01:00
Vincent Penquerc'h 2dc41db862 h264parse: use the framerate that was copied a few lines above 2012-01-09 11:03:24 +00:00
Vincent Penquerc'h 4f27b2b4fe h264parse: fix test and set not using the same input
This fixes H.264 output not having a set framerate, and
confusing some of the elements downstream (such as interlace).
2012-01-06 10:54:11 +00:00
Mark Nauwelaerts c4abaf1428 h264parse: fix and tweak frame timestamping
... to run with properly init'ed variables, and to only perform interpolation
in safe cases.
2012-01-04 11:16:18 +01:00
Mark Nauwelaerts 9d0c7d054e h264parse: prefer negotiating pass-through 2012-01-03 22:10:20 +01:00
Mark Nauwelaerts dcd2ee421a h264parse: mark byte-stream AU frame with inserted codec NALs as keyframe 2012-01-03 22:08:07 +01:00
Mark Nauwelaerts 75b8ddb6cf h264parse: properly determine skip amount when no NAL start found yet 2012-01-03 20:27:07 +01:00
Mark Nauwelaerts c54144cc16 h264parse: some more proper parse state reset 2012-01-03 20:26:51 +01:00
Edward Hervey f70a623418 Merge remote-tracking branch 'origin/master' into 0.11-premerge
Conflicts:
	docs/libs/Makefile.am
	ext/kate/gstkatetiger.c
	ext/opus/gstopusdec.c
	ext/xvid/gstxvidenc.c
	gst-libs/gst/basecamerabinsrc/Makefile.am
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideoencoder.c
	gst/asfmux/gstasfmux.c
	gst/audiovisualizers/gstwavescope.c
	gst/camerabin2/gstcamerabin2.c
	gst/debugutils/gstcompare.c
	gst/frei0r/gstfrei0rmixer.c
	gst/mpegpsmux/mpegpsmux.c
	gst/mpegtsmux/mpegtsmux.c
	gst/mxf/mxfmux.c
	gst/videomeasure/gstvideomeasure_ssim.c
	gst/videoparsers/gsth264parse.c
	gst/videoparsers/gstmpeg4videoparse.c
2011-12-30 11:41:17 +01:00
Alessandro Decina 570ba0c84a h264parse: avoid pushing SPS/PPS at start only if both are found in stream
Avoid injecting SPS/PPS nals only if both are already present in the stream.
Fixes some AVC clips that happen to have only PPS nals in stream.
2011-12-19 12:36:39 +01:00
Alessandro Decina 94ae4ca833 h264parse: do wait for a keyframe when handling force key unit events
Although some decoders can start decoding with just PPS and SPS and waiting for
a keyframe is bad when the keyframe interval is large, gst-ffmpeg does need a
keyframe to start decoding.
2011-12-18 17:40:57 +01:00
Alessandro Decina a1305b949c h264parse: handle force key unit events
Send SPS/PPS on force key unit events. Useful for example when serving HLS
without transcoding.
2011-12-06 13:16:29 +01:00
Edward Hervey 1c50dab50c h264parse: Use faster parsing variant when input is packetized
Reduces latency and cpu usage

https://bugzilla.gnome.org/show_bug.cgi?id=665584
2011-12-05 19:04:17 +01:00
Mark Nauwelaerts 9604342af3 h264parse: reflow slice nal processing 2011-12-05 13:11:39 +01:00
Mark Nauwelaerts ef24518b60 h264parse: optimize slice nal processing
Only minimal slice info is needed here to determine real frame start,
so no need to parse extensively.

Fixes #665418.
2011-12-05 13:11:04 +01:00
Alessandro Decina 4474db4e71 h264parse: let upstream PAR override in-stream PAR 2011-12-01 09:07:18 +01:00
Alessandro Decina 21b063a78c h264parse: rework PAR parsing
And in the process refactor _update_src_caps a bit
2011-12-01 09:06:56 +01:00
Luciana Fujii Pontello 6d85d4882a h264parse: respect pixel-aspect-ratio
Parse pixel-aspect-ratio in vui information.
2011-12-01 08:23:22 +01:00
Vincent Penquerc'h 7521b597f4 various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Matej Knopp f949930621 videoparsers: fix format warnings
https://bugzilla.gnome.org/show_bug.cgi?id=662618
2011-11-28 00:04:16 +00:00
René Stadler e6df0b672f videoparsers: port to 0.11
Unit tests missing for now.
2011-11-24 12:08:55 +01:00
Mark Nauwelaerts 1f3b4ad574 h264parse: remove redundant code
... now that what should not be needed is really not needed anymore to cover
up bogus stuff that has been FIXMEd.
2011-11-18 17:20:10 +01:00
Mark Nauwelaerts 7fae33a661 h264parse: fix up AU collection processing
On the one hand, no need to collect nal if processing last one.
On the other hand, ensure AU collection processing to have sufficient
next NAL data in normal cases.

Fixes #663180.
2011-11-18 17:20:08 +01:00
Mark Nauwelaerts 66543b3dd9 h264parse: mind to-be-skipped data in subsequent re-used offsets 2011-11-18 17:20:06 +01:00
Mark Nauwelaerts e12044c359 h264parse: avoid additional NAL parsing if no AU collection is needed 2011-11-18 17:20:03 +01:00
Mark Nauwelaerts 9db239e1ec h264parse: some more get_caps tweaking
... by having it use sink template rather than src template, and not
passing an downstream parsed(=true) to upstream.
2011-11-18 17:20:00 +01:00
Sebastian Dröge f3f9e4b978 h264parse: Implement ::sink_get_caps to allow stream-format conversion again
Just proxying the downstream caps will prevent h264parse from
accepting a different stream-format than what is supported
downstream, although it could convert to a different stream-format.
2011-11-16 10:39:40 -08:00
Jonas Larsson 5099ff23af h264parse: outgoing byte stream prefix always has size 4
Fixes #664123.
2011-11-16 10:57:30 +01:00
Sreerenj Balachandran f8239ff692 h264parse: correct debug message and remove some dead code
See #661113.
2011-10-17 11:17:50 +02:00
Sreerenj Balachandran 0a478db7dd h264parse: correct parsing of "numberOfPictureParameterSets"
See #661113.
2011-10-17 11:17:47 +02:00
Thibault Saunier f94236078c h264parse: Make proper use of the h264parser lib in parse_chain
Minor debugging logs fixes
2011-10-06 12:49:19 -03:00
Mark Nauwelaerts 9c221f492d h264parse: properly interpret baseparse draining state
... which means the input data has reached the end, but need not exclude
many separate frames may still need parsing.

Fixes merging NALs into AU.
2011-10-06 12:26:23 +02:00
Sreerenj Balachandran 3129ea29b1 h264parse: correct the size argument of gst_h264_parser_identify_nalu_avc() 2011-10-06 11:59:41 +02:00
Sreerenj Balachandran bbc30f3644 h264parse: minimum size of parsable avcC data should be 8 2011-10-06 11:59:38 +02:00
Mark Nauwelaerts 66f644cfcc h264parse: bring debug statements up to desired specs 2011-09-19 14:55:09 +02:00
Thibault Saunier 404c18ab18 h264parse: Make use of the h264_nal_parser_free function 2011-09-09 15:02:35 -03:00
George Kiagiadakis ddf32e2c49 h264parse: Fix IDR position marking when the IDR is split into several NALs 2011-09-07 13:36:12 +03:00
Sebastian Dröge d4147a2798 h264parse: Put stream-format and alignment into the src template caps
Also remove the parsed field from the sink template caps.
2011-09-07 11:29:37 +02:00
Sebastian Dröge cfb986b6bf h264parse: Add Converter to classification
This parser can convert between different alignments and stream-formats.
2011-09-06 13:21:28 +02:00
Thibault Saunier b968f82b18 h264parse: Port to the new h.264 parsing library 2011-09-02 15:46:02 +02:00
Alessandro Decina f12598fa64 h264parse: remove a check made useless by the last commit 2011-07-18 11:51:23 +02:00
Alessandro Decina 5f6a805dfd h264parse: assume byte-stream if stream-format and codec_data are missing from input caps 2011-07-18 11:50:41 +02:00
Alessandro Decina 7bcc0c71b8 h264parse: ignore codec_data if stream-format=byte-stream
Some encoders set codec_data even when outputting byte-stream. Before this patch
h264parse would incorrectly detect such streams as AVC.
2011-07-18 11:50:41 +02:00
Mark Nauwelaerts 10bec5c08f h264parse: avc input must either pass-through or be split into bytestream chunks
... since parsing code is not meant to receive avc data.

Fixes #653087.
2011-06-21 12:46:37 +02:00
Mark Nauwelaerts 160207abb9 h264parse: avoid bogus frame parsing state 2011-06-21 12:46:35 +02:00
Mark Nauwelaerts e5d5ff4394 h264parse: plug some more buffer leaks 2011-05-25 21:51:55 +02:00
Mark Nauwelaerts 1c4b6fee9b h264parse: compensate for skipped bytes in parsing state offsets 2011-05-25 21:51:55 +02:00
Mark Nauwelaerts 62d9ef42d4 h264parse: fix clearing adapter forming avc output frame
... which needs to be reset upon a new frame and otherwise (only)
for avc input in passthrough mode (rather than on every chain call).
2011-05-25 21:51:55 +02:00
Alessandro Decina 6a8d66728f h264parse: allow full negotiation for packetized input
... by defaulting to allow splitting packetized input and having
negotiation with downstream deciding whether or not this applies.

Also enable pass-through parsing mode if input and output format
(stream-format and alignment) match.

API: GstH264Parse:split-packetized (removed)

Fixes #650228.
2011-05-25 21:51:55 +02:00
Mark Nauwelaerts f92f5b70fb h264parse: avoid stale parsing state 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts 217e389689 h264parse: simplify minimum frame size handling 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts 409a51bcea h264parse: gracefully handle truncated input NAL units
Rather than assert'ing in such case, emit warning if the length of a NAL unit
is less than expected 2 and discard it.

Based on patch by Benjamin M. Schwartz <bens@alum.mit.edu>

Fixes #650416.
2011-05-23 16:57:25 +02:00
Mark Nauwelaerts c203fd52e8 h264parse: fix some buffer leaks
Fixes #650323.
2011-05-17 12:34:37 +02:00
Mark Nauwelaerts 02e392ca83 h264parse: fixup boilerplate and debug code style 2011-05-17 12:34:30 +02:00
Tim-Philipp Müller 5365dbfdce videoparsers: port to baseparse, which is now in libgstbase in core 2011-04-09 00:24:03 +01:00
Mark Nauwelaerts 82a152533d h264parse: chain up to parent finalize 2011-03-22 13:50:27 +01:00
Andreas Frisch 5867b69aa3 h264parse: Set parsed=true in the srcpad caps
Fixes bug #645412.
2011-03-21 16:52:02 +01:00
Mark Nauwelaerts d0b942980e videoparsers: add h264parse
Functionally equivalent to (legacy)h264parse and re-uses the latter's low
level NAL parsing, but otherwise based on GstBaseParse, and replacing
some property configuration with caps negotiation.
2011-01-28 12:50:25 +01:00