Commit graph

520 commits

Author SHA1 Message Date
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
Rob Clark
521e8b199b videoparsers: set interlaced field in caps for mpeg2
https://bugzilla.gnome.org/show_bug.cgi?id=667218
2012-01-31 11:51:37 +00:00
Mark Nauwelaerts
9dc7571c75 port some more to new memory API 2012-01-25 16:22:09 +01:00
Sebastian Dröge
a2a4300241 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/kate/gstkateenc.c
	gst/colorspace/colorspace.c
	gst/mpegvideoparse/mpegvideoparse.c
2012-01-25 13:22:43 +01:00
Tim-Philipp Müller
5791ed71ad h263parse: make level and profile fields in caps strings
For consistency with other caps.

https://bugzilla.gnome.org/show_bug.cgi?id=658438
2012-01-22 19:12:33 +00:00
Reynaldo H. Verdejo Pinochet
26a1ca09aa Android, Fix wrong dinamic linking attempt
gstcodecparsers is built as an static library.

This change fixes building with the Android buildsystem.
2012-01-13 15:57:33 -03: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
Sebastian Dröge
adb4b010ed mpeg4videoparse: Don't update caps on every buffer 2012-01-09 14:39:43 +01:00
Sebastian Dröge
c76890b7fa mpeg4videoparse: Don't call gst_buffer_memcmp() with a NULL buffer 2012-01-09 14:28:14 +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
e81ecb250a mpegvideoparse: add a couple consts on string literal arrays 2012-01-09 10:58:56 +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
58cc609b08 mpeg4videoparse: handle force key unit events 2011-12-18 18:37:08 +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
Tim-Philipp Müller
7f8adea477 videoparsers: fix LIBS order in Makefile.am 2011-12-08 22:49:50 +00:00
Thibault Saunier
6b3a314d36 videoparsers: Do not not skip startcode when needed
Fix: https://bugzilla.gnome.org/show_bug.cgi?id=665631
2011-12-06 17:05:52 -03: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
Thibault Saunier
e1bacb4813 codecparser: mpeg4: Look for resync code in _mpeg4_parse
This way the API is simpler and users can call 1 single function for packet
detection.
2011-11-28 21:25:34 -03:00
Thibault Saunier
5555b5fa9d mpeg4videoparse: Properly handle profile and level in caps
Fix #660234
2011-11-28 21:25:34 -03:00
Thibault Saunier
48ad76e538 mpeg4videoparse: Port to the new mpeg4parser library 2011-11-28 21:25:34 -03:00
Thibault Saunier
db4d4979ab mpeg4videoparse: Move to the videoparsers plugin
Rename a few variables to use the same convention as others elements in this
plugin

Conflicts:

	gst/videoparsers/gstmpeg4videoparse.c
2011-11-28 21:25:34 -03: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
Edward Hervey
b78b980d72 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/faac/gstfaac.c
	ext/opus/gstopusdec.c
	ext/opus/gstopusenc.c
	gst/audiovisualizers/gstspacescope.c
	gst/colorspace/colorspace.c
2011-11-25 12:48:58 +01:00
René Stadler
e6df0b672f videoparsers: port to 0.11
Unit tests missing for now.
2011-11-24 12:08:55 +01:00
Sebastian Dröge
dc2c61faf5 mpegvideoparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream 2011-11-24 10:14:06 +01:00
Sebastian Dröge
61fad46dca h263parse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream 2011-11-24 10:09:59 +01:00
Sebastian Dröge
b10c1f277f diracparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream 2011-11-24 10:08:27 +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
Matej Knopp
a08b3bfa23 mpegvideoparse: add support for progressive frames
https://bugzilla.gnome.org/show_bug.cgi?id=663782
2011-11-10 19:58:13 -03: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
Sebastian Dröge
8e2c5833f1 videoparsers: Only fail to initialize the plugin if all parsers can't be registered 2011-10-04 12:31:05 +02:00
Thibault Saunier
2c928aba19 codecparsers: Declare the new APIs as unstable for the time being 2011-09-26 08:11:45 -03:00
Mark Nauwelaerts
b142663ca5 h263parse: bring debug statements up to desired specs 2011-09-19 14:55:12 +02:00
Mark Nauwelaerts
66f644cfcc h264parse: bring debug statements up to desired specs 2011-09-19 14:55:09 +02:00
Thibault Saunier
df551c0af4 mpegvideoparse: Handle properly frame detection
Handle the case where we have buffers containing no startcode
in the middle of a frame properly.
2011-09-14 12:13:19 -03:00
Mark Nauwelaerts
a31d541f07 mpegvideoparse: send a video-codec tag
https://bugzilla.gnome.org/show_bug.cgi?id=569305
2011-09-14 16:14:54 +02:00
Alessandro Decina
6e9873038b mpegvideoparse: fix compiler warnings 2011-09-12 10:23:36 +02:00
Thibault Saunier
404c18ab18 h264parse: Make use of the h264_nal_parser_free function 2011-09-09 15:02:35 -03:00
Vincent Penquerc'h
1a6dbe1e27 mpegvideoparse: make this build with older glib
g_list_free_full is a new convenience function.
Replace it with g_list_foreach and g_list_free.

https://bugzilla.gnome.org/show_bug.cgi?id=658450
2011-09-07 14:34:33 +02:00
Sebastian Dröge
724d7a3def videoparsers: Make the h263 and (new) mpeg video parser autopluggable 2011-09-07 13:47:51 +02: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
e86e66e86c h263parse: Add all always present fields to the src template caps 2011-09-07 11:29:37 +02:00
Sebastian Dröge
89aa5dae9d diracparse: Add all fields to the src template caps 2011-09-07 11:29:37 +02:00
Sebastian Dröge
2adf76eb52 videoparsers: Allow parsed streams to be passed through the parsers 2011-09-07 11:29:37 +02: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
456335eab4 h264parse: Change rank to PRIMARY+1 to have h264parse autoplugged 2011-09-07 11:29:36 +02:00
Sebastian Dröge
29a358e8cd diracparse: Constify some arrays 2011-09-07 11:29:36 +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
Thibault Saunier
a983b29a49 mpegvideoparse: Port to the new mpeg parsing library 2011-09-02 15:46:02 +02:00
Alessandro Decina
b01ee6bbf1 mpegvideoparse: fix sequence header parsing
After bitrate there's 11 bits (1 marker bit + VBV buffer size) before the load
intra quantiser flag.
2011-08-04 09:52:25 +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
Olivier Crête
9eba99542f videoparsers: Fix set-but-unused warnings 2011-07-12 17:59:56 -04:00
David Schleef
f21e36b54b diracparse: make diracparse work correctly 2011-07-04 16:49:00 -07: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
Edward Hervey
c27b16bfe3 videoparsers: Speed up the start code search algorithm
Based on 96a7f9c8b1

Makes it 3-4 times faster
2011-06-12 12:55:40 +02:00
Edward Hervey
7032cd12e7 videoparsers: Fix sink pad template
no wonder it was never picked up ...
2011-06-12 12:40:15 +02:00
Debarshi Ray
335293bf50 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-06-04 20:26:02 +01:00
Alessandro Decina
b7e93e6eae h264parse: check for out of range pps_id one layer up 2011-05-29 13:08:16 +02:00
Alessandro Decina
f4ec523b0a mpeg4videoparse: fix compiler warnings 2011-05-29 13:08:16 +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
Mark Nauwelaerts
a407d54d9d h264parse: handle all valid pps_id
... which are in range 0-255.
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
89f87d70a8 h263parse: also extract width and height into caps 2011-05-25 21:51:55 +02:00
Mark Nauwelaerts
6f5a3ecfa7 videoparsers: add new mpegvideoparse 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
f92f5b70fb h264parse: avoid stale parsing state 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
930ee466f5 h263parse: simplify minimum frame size handling 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
Thibault Saunier
17fd7ebcb4 android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:27:11 +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
René Stadler
cfb22fe985 h264parse: free PPS NAL buffers on cleanup
Obviously a typo. Fixes bug #645502.
2011-03-24 22:39:04 +02:00
René Stadler
3e4e198c5e h264parse: don't leak all NAL buffers
gst_buffer_replace() doesn't steal the ref. Partial fix for bug #645502.
2011-03-24 21:53:13 +02: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
Sebastian Dröge
935675a060 diracparse: Add correct template caps and element details 2011-03-11 14:37:06 +01:00
Edward Hervey
8d050d2116 videoparsers: Fix unitialized variables
Makes macosx compiler happy
2011-03-04 12:15:32 +01:00
Tim-Philipp Müller
e9b29e9dc7 h263parse: allocate H263Params struct on the stack
It's flat and not kept around for longer.
2011-03-03 08:51:28 +00:00
Tim-Philipp Müller
88cd418bc9 h263parse: minor clean-ups
const-ify some arguments and re-indent header a little.
2011-03-03 08:51:21 +00:00
Tim-Philipp Müller
493082abd7 videoparsers: change plugin filename from libgsth263parse* to libgstvideoparsersbad*
Due to a registry bug you may need to manually remove your
registry file to make the new plugin appear with >0 features.
2011-02-18 15:27:10 +00:00
Tim-Philipp Müller
b96cf817a0 videoparsers: fix build
Add includes and link against new libgstbaseparse in the
build tree.
2011-02-18 12:39:55 +00:00
David Schleef
e9ea237d03 videoparsers: Add dirac parser 2011-02-17 14:43:35 -08:00
David Schleef
fa3ff9e5ed baseparse: Create baseparse library 2011-02-17 13:57:56 -08:00
Mark Nauwelaerts
2bb835f69a baseparse: tune QUERY_SEEKING response
Even if we currently do not have a duration yet, assume seekable if
it looks like we'll likely be able to determine it later on
(which coincides with needed information to perform seeking).
2011-02-17 14:13:08 +01:00
Arun Raghavan
3f683e0288 baseparse: Update min/max bitrate before first posting them
This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
of 0.

https://bugzilla.gnome.org/show_bug.cgi?id=641857
2011-02-09 18:30:51 +01:00
Tim-Philipp Müller
c57a9e4ba9 videoparsers: dist h264parse.h, fixing make distcheck
Spotted by Nathanael D. Noblet
2011-01-31 17:45:19 +00: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
Mark Nauwelaerts
0c5d139ba7 h263parse: move to videoparsers and separate plugin registration 2011-01-28 12:16:59 +01:00