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