Commit graph

4856 commits

Author SHA1 Message Date
Alexey Fisher
2099a39459 mpegpsdemux: recalculate adjust if difference is negative
One of my dvds jump on some position and miss about 1 minute of stream.
The reason was mpeg timestamps. On some position scr difference is negative.
It produced negative timestamps. Since it was converted to unsigned value,
gstreamer timestamps was invalid. Instead of increasing mpeg ts,
they was decreasing till it started to be positive.

The jump in timestamps caused mpeg2dec to skip frames to make QoS happy.

This patch just make diff unsigned to avoid negative values.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>

https://bugzilla.gnome.org/show_bug.cgi?id=656115
2011-11-29 11:35:11 +00: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
Tim-Philipp Müller
f585848d4b Merge remote-tracking branch 'origin/master' into 0.11 2011-11-28 23:20:58 +00:00
Thiago Santos
9364d13c02 camerabin2: viewfinderbin: use faster cast macro
Use cast macro without type checks when we know it should work.
2011-11-28 18:48:52 -03:00
Thiago Santos
b5f97fd033 camerabin2: viewfinderbin: Link elements directly to use faster version
ffmpegcolorspace and videoscale should always link successfully, use
the fast pad linking version instead of calling the generic helper
function.
2011-11-28 18:48:52 -03:00
Thiago Santos
f6d47a4206 camerabin2: micro optimize linking some more 2011-11-28 18:48:51 -03:00
Vincent Penquerc'h
4735a7554b mpeg4videoparse: fix number of bytes read for fixed time increment
The spec I found says "16 bits".
The existing code used log2(somevalue)+1.
ffmpeg uses log2(somevalue-1)+1.
The code now uses log2(somevalue-1)+1, and this makes it work with
some sample video without breaking another sample.
Now, I'm far from certain I've got the right spec, I found it by
searching the internet, so...

https://bugzilla.gnome.org/show_bug.cgi?id=654666
2011-11-28 15:22:56 +00:00
Vincent Penquerc'h
f1a4791f74 mpegdemux: Try to add all streams early
This will allow us to signal no-more-pads to avoid hitting
the decodebin2 overrun.
2011-11-28 15:10:47 +00:00
Vincent Penquerc'h
fb66b3c2ac mpegtsdemux: handle pads with no data
Some streams declare PIDs but will not send data for them.
Ensure we time out on those, and both send new segments to
keep their time synchronized with the rest, and do not wait
forever before deciding to signal no-more-pads.

https://bugzilla.gnome.org/show_bug.cgi?id=659924
2011-11-28 15:08:13 +00:00
Vincent Penquerc'h
f909c57546 mpegtsdemux: signal no-more-pads when appropriate
We track streams for which a data callback is set (and for which
pads will be added only when data is received), and signal
no-more-pads when the last pad is added.

https://bugzilla.gnome.org/show_bug.cgi?id=659924
2011-11-28 15:08:06 +00:00
Vincent Penquerc'h
9715fc3189 mpegdemux: take into account offset of first buffer
This fixes playback when the source starts later than the playback
pipeline, and when a source drops for a while then restarts.

https://bugzilla.gnome.org/show_bug.cgi?id=657794
2011-11-28 14:01:43 +00:00
Vincent Penquerc'h
918d2e710f mpegdemux: fix some more video freezing
There was a second threshold, which apparently needs to be smaller
than the first, though I'm not certain of it as I don't understand
yet this nest of wtf that is the mpeg demuxer timing logic.

Fixes video freezing on one (corrupted) MPEG sample. It would
previously never think it was out of the discontinuity, and would
push buffers with no timestamp.

Now this took me more than a day's poking at the thing, for just
one constant change, and I'm scared to have to touch this again :S

https://bugzilla.gnome.org/show_bug.cgi?id=655804
2011-11-28 13:57:42 +00:00
Vincent Penquerc'h
7960280afb mpegdemux: catch smaller PTS dicontinuities
In a test stream, I get one buffer with a PTS of about 15 seconds
in the future compared to the previous one, and next buffers with
timestamps continuing where the original ones left off.

This caused the sink to wait 15 seconds to display the frame while
more frames queued up, and then dump all the subsequent frames as
they "arrived too late".

Maybe that threshold should be made configurable, but for now,
make it more smaller to catch more of these.

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

Non AV streams keep using the larger threshold (10 minutes), as
subtitles may arrive only every so often.
2011-11-28 13:57:29 +00: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
Tim-Philipp Müller
025ce3e6ca Merge remote-tracking branch 'origin/master' into 0.11 2011-11-27 23:33:45 +00:00
Tim-Philipp Müller
98b9d602c1 aiffparse: extract ID3 tags embedded in ID3 chunks
https://bugzilla.gnome.org/show_bug.cgi?id=664725
2011-11-27 23:19:49 +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
Stefan Sauer
c61f85da82 audiovisualizers: add aa-line code and user for wave/space-scope 2011-11-24 19:04:17 +01:00
René Stadler
e6df0b672f videoparsers: port to 0.11
Unit tests missing for now.
2011-11-24 12:08:55 +01:00
Vincent Penquerc'h
1d0f770545 colorspace: fix width/height mismatches
https://bugzilla.gnome.org/show_bug.cgi?id=663238
2011-11-24 10:49:16 +01:00
Sebastian Dröge
ca6ae54d5f mpeg4videoparse: Use the sinkpad template caps as a fallback, not the srcpad ones 2011-11-24 10:26:25 +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
Sebastian Dröge
e7cd086970 mpeg4videoparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream 2011-11-24 10:05:30 +01:00
Tim-Philipp Müller
bd92bc966f sdpdemux: update for gstrtpbin -> rtpbin renaming 2011-11-24 00:56:45 +00:00
Matej Knopp
9d0bdcf6d7 Fix printf format compiler warnings on OS X / 64 bit
https://bugzilla.gnome.org/show_bug.cgi?id=662618
2011-11-23 23:43:15 +00:00
Tim-Philipp Müller
da43e59aab smooth: fix printf format compiler warning in debug message
https://bugzilla.gnome.org/show_bug.cgi?id=664631
2011-11-23 16:03:15 +00:00
René Stadler
461f1971dd frei0r: normalize boolean property default values to TRUE/FALSE
Glib barks at us with a warning when we pass e.g. 4.
2011-11-23 12:43:48 +01:00
Stefan Sauer
03f1f0214e audiovisualizers: update README and TODO comments 2011-11-23 11:31:44 +01:00
Stefan Sauer
3ba8b3c0ad spacescope: use the drawhelpers and add a draw-style property
Like in wavescope support drawing dots and lines.
2011-11-23 11:21:15 +01:00
Wim Taymans
0a9387c43c Merge branch 'master' into 0.11
Conflicts:
	ext/opus/gstopusdec.c
	ext/opus/gstopusenc.c
	ext/opus/gstopusparse.c
	gst/audiovisualizers/gstwavescope.c
	gst/filter/Makefile.am
	gst/filter/gstfilter.c
	gst/filter/gstiir.c
	gst/playondemand/gstplayondemand.c
2011-11-23 11:08:39 +01:00
Stefan Sauer
e3d1a50c0d audiovisualizers: add some simple drawing helpers for reuse
Add a (uninstalled) header with simple drawing macros
2011-11-23 08:42:01 +01:00
Stefan Sauer
b9c9540735 smoothwave: remove element unported from 0.8
The wavescope element does achieve the same effect.
2011-11-23 08:42:01 +01:00
Stefan Sauer
85aba22118 wavescope: add a style property for drawing modes
Add a style enum of { dots, lines}. Now this elements is a superset of smoothwave.
2011-11-23 08:42:01 +01:00
Sebastian Pölsterl
9759d66407 mpegtsparse: support more character set encodings
Support UTF-16BE, EUC-KR (KSX1001), GB2312 and ISO-10646/UTF8 text
encoding and fixed new line for multibyte encoding

https://bugzilla.gnome.org/show_bug.cgi?id=664257
2011-11-22 11:35:00 +00:00
Stefan Sauer
aa4b5b3bf5 playondemand: remove unported plugin from 0.8
These days one would do the effect e.g. using gnonlin.
2011-11-22 09:11:35 +01:00
Stefan Sauer
bae725ed1f speed: tiny doc blob clarification 2011-11-22 09:10:57 +01:00
Stefan Sauer
bf7c118c3c freeverb: add a freeverb port
Freeverb is a public domain reverb implementation. Port it as a gstreamer
element and make use of gstreamer specific features (gap aware, disconts,
controller, ...).
2011-11-22 09:10:57 +01:00
Wim Taymans
e813abf631 update for activation changes 2011-11-21 13:37:20 +01:00
Stefan Sauer
143bcd974b smooth: port to 0.10
Port from GstElement to GstVideoFilter. Fix FIXMEs. Cleanup naming. Expose left
out property (kuma-only).
2011-11-21 08:27:19 +01:00
Stefan Sauer
cc210b8ff6 passthrough: remove obsolete element
It is not built by default. We have identity for some of the needs and otherwise
audio/videofilter base classes.
2011-11-20 20:16:03 +01:00
Stefan Sauer
931f7b2c59 filter: remove filter plugin
We don't build it anyway and we have audioiirfilter in good.
2011-11-20 20:10:49 +01:00
Stefan Sauer
d1578f042a inter: fix leftover boilerplace comments 2011-11-20 20:10:49 +01:00
Thiago Santos
524c478fa1 camerabin2: Also reset video/audio filters before capturing
Video and audio custom filter element should also be reset before
starting a new capture, otherwise we get wrong-state errors
2011-11-19 16:22:29 -03:00
Wim Taymans
567032b5f5 update for new scheduling query 2011-11-18 17:59:47 +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
Wim Taymans
b948769e6e add parent to activate functions 2011-11-18 13:58:41 +01:00
Wim Taymans
bc6ed0bf97 Merge branch 'master' into 0.11
Conflicts:
	ext/celt/gstceltdec.c
	ext/opus/gstopusdec.c
	ext/opus/gstopusdec.h
	ext/opus/gstopusenc.c
	ext/opus/gstopusenc.h
	ext/opus/gstopusparse.c
2011-11-17 17:32:42 +01:00
Wim Taymans
940de5b195 add parent to pad functions 2011-11-17 15:53:42 +01:00
Stefan Sauer
d2f2955f18 collectpads: port API changes 2011-11-17 08:53:23 +01:00
Sebastian Dröge
d746cd7d67 mpeg4videoparse: Change rank to PRIMARY+1 2011-11-16 10:57:55 -08:00
Sebastian Dröge
ec089662de mpeg4videoparse: Don't require parsed=false on the sinkpad caps 2011-11-16 10:57:24 -08: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
Wim Taymans
6d92ecac75 add parent to query function 2011-11-16 17:30:38 +01:00
Edward Hervey
e500ec524c tsdemux: Add notes on synchronization and scheduling 2011-11-16 12:47:58 +01:00
Wim Taymans
37e081fc61 update for renamed flags
Use the _check_reconfigure method instead of checking flags.
2011-11-16 12:42:24 +01:00
Jonas Larsson
5099ff23af h264parse: outgoing byte stream prefix always has size 4
Fixes #664123.
2011-11-16 10:57:30 +01:00
Wim Taymans
85afc77dea _query_peer_*() -> _peer_query_*() 2011-11-15 17:55:50 +01:00
Wim Taymans
5231ae7252 _peer_get_caps() -> _peer_query_caps() 2011-11-15 17:24:07 +01:00
Wim Taymans
03713e5045 change getcaps to query 2011-11-15 16:34:13 +01:00
David King
92f07e3898 camerabin: Document requirement for PLAYING state
As described in GNOME bug 663998, the element must be in the PLAYING
state before calling capture-start.

https://bugzilla.gnome.org/show_bug.cgi?id=664048
2011-11-14 23:28:29 -03:00
Thiago Santos
1d5b324e7d camerabin2: Also reset audio elements when video capture finishes
Audio elements also need to be reset after each capture, do it
together with the video elements' reset
2011-11-14 17:48:52 -03:00
Thiago Santos
aab3a73ccd camerabin2: Add one debug line about camerabin2 being idle 2011-11-14 13:06:29 -03:00
Thiago Santos
54351a0129 camerabin2: Remove video elements' state clearing from start-capture
Reduce start-capture workload by moving the elements' state reseting to the
finishing steps of the capture. This reduces the time start-capture takes to
actually start a capture and return to its caller, improving user experience.

As the elements' state reset is now triggered from the message handling
function, it needs to spawn a new thread, changing state from the pad's
task would cause a deadlock.
2011-11-14 13:06:29 -03:00
Thiago Santos
c635e4bc3b camerabin2: keep track of video recording state
Adds a new variable to keep track of the state of the video
recording in camerabin2. This allows start-capture to reject
new video recording requests when one is already ongoing. This
fixes one of check tests.
2011-11-14 13:06:28 -03:00
Tim-Philipp Müller
357d7bdfed Update for GstURIHandler get_protocols() changes 2011-11-13 23:55:56 +00:00
Wim Taymans
d3f42035fe Merge branch 'master' into 0.11 2011-11-11 10:39:17 +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
Stefan Sauer
f8abc7e734 audiovisualizer: port to 0.11 2011-11-10 23:20:32 +02:00
Wim Taymans
59b4bcd27e Merge branch 'master' into 0.11 2011-11-10 12:14:19 +01:00
Wim Taymans
8546951222 chain up in set_clock 2011-11-10 12:11:21 +01:00
Thiago Santos
c7db5db632 camerabin2: protect image location list with mutex
Rename the image taglists' mutex into image capture mutex and
use it also for the image capture list to prevent concurrent
access from different threads (application and capture threads).
2011-11-09 12:30:58 -03:00
Thiago Santos
27e01e02a4 camerabin2: Handle null taglists for images
Add NULL and check for them to the image capture taglist list, representing
that a capture has no application tags set.
2011-11-09 12:30:58 -03:00
Thiago Santos
9ab6406f23 camerabin2: Don't store preview location if preview isn't requested
Do not store preview location is post-previews is false, this would
mess up preview naming in case application switches between enabling
and disabling previews
2011-11-09 12:30:33 -03:00
Lasse Laukkanen
5ca3c9477e camerabin2: Avoid blocking in start-capture and send application tags later
Tags are currently sent from start-capture, which is run in the
application thread. For images we can delay the tags pushing to the
buffer probe and push the tags with the location event and reduce
start-capture time.
2011-11-09 11:45:55 -03:00
Wim Taymans
dbdaa23742 Merge branch 'master' into 0.11
Conflicts:
	gst/colorspace/colorspace.c
2011-11-09 12:19:04 +01:00
Thijs Vermeir
8529526c54 dtmf: fix compiler warning for uninitialized values 2011-11-09 11:56:07 +01:00
Wim Taymans
0d0444e0fa remove query types 2011-11-09 11:55:14 +01:00
Olivier Crête
d937da4c0c dtmfsrc: Reject start/stop requests that come out of order 2011-11-08 17:45:48 -05:00
Olivier Crête
d15d524fec dtmf: Post messages when starting to send/receive DTMF
This way, the UI can display the DTMF events as they as being sent.
2011-11-08 17:45:48 -05:00
Thiago Santos
74df06d8c6 camerabin2: Decrement processing counter when message handling finishes
Some messages might be interesting to applications, so we can only
decrement the processing counter and send the idle notification
when those messages are posted on the pipline's bus
2011-11-08 08:13:20 -03:00
Lasse Laukkanen
ad1ddaf53a camerabin2: change post-previews property default value as false
Generating and posting preview image always comes with a performance
penalty so set default value as false. The preview-caps property that
defines the preview image format is also NULL by default, so instead
of generating preview image of unspecified format by default explicit
action from application should be required for enabling preview image
posting feature.

Application also has to add custom code to be able
to handle preview messages on its message handling function anyway.
2011-11-08 07:09:41 -03:00
Vincent Penquerc'h
d0443cfb65 colorspace: fix r210 writing only half a scanline
https://bugzilla.gnome.org/show_bug.cgi?id=663203
2011-11-07 17:15:14 +00:00
Vincent Penquerc'h
0ff703b520 adpcm: add more consts, espcially for static const data 2011-11-07 16:41:42 +00:00
Vincent Penquerc'h
9674c5aefa autoconvert: merge caps instead of using union
It's a lot faster, and preserves caps ordering.

https://bugzilla.gnome.org/show_bug.cgi?id=663346
2011-11-07 12:16:37 +00:00
Vincent Penquerc'h
4275a70cb5 mpegdemux: catch section lengths extending past the buffer length
This is probably the cause for an occasional crash while streaming
MPEG. Blind fix after staring at the code and following logic, so
may or may not fix the issue, I cannot test.
2011-11-07 11:59:12 +00:00
Vincent Penquerc'h
b3d751667d mpegpsdemux: fix zero length packet handling
https://bugzilla.gnome.org/show_bug.cgi?id=631416
2011-11-07 11:17:00 +00:00
Wim Taymans
62544179e2 Merge branch 'master' into 0.11 2011-11-07 10:02:00 +01:00
Reynaldo H. Verdejo Pinochet
506f97a975 Fix missing sources on bayer's buildsystem androgenizer call 2011-11-04 18:06:51 -03:00
Stefan Sauer
9f73890892 controller: port to new controller location and api 2011-11-04 20:14:01 +01:00
Wim Taymans
8ec6da7797 more template fixes 2011-11-04 16:41:44 +01:00
Wim Taymans
eaad7e58b0 more template fixes 2011-11-04 12:31:19 +01:00
Wim Taymans
c8adc4f8c8 make request pads take _%u 2011-11-04 12:22:37 +01:00
Wim Taymans
ac27b5bcc8 tag: update for tag API removal 2011-11-02 12:10:03 +01:00
Wim Taymans
769a9791a4 Merge branch 'master' into 0.11 2011-11-02 10:31:24 +01:00
Wim Taymans
17a982fe31 structure: fix for api update 2011-11-02 09:08:23 +01:00
Wim Taymans
e14fbcc070 caps: update for new API 2011-11-02 09:08:23 +01:00
Thiago Santos
d4105d4b56 camerabin2: On capture error, skip previews
When the camera source fails to do some capture, skip the next
preview and decrement processing counter.
2011-11-01 11:49:17 -03:00
Lasse Laukkanen
37aa6a9c71 camerabin2: track also preview images with processing counter
Makes camerabin2 only signal that it is idle after all previews have
been generated, images are captured and saved, and videos have
been finished properly.
2011-11-01 11:49:17 -03:00
Tim-Philipp Müller
10d31a588d Update for pad API changes
GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
2011-11-01 00:45:25 +00:00
Robert Swain
e3b7cb8899 fieldanalysis: Don't reset the context on DISCONT
On discont, the queue of frames was being cleared, but also the
context reset. We only need to clear the queue.
2011-10-31 18:20:32 +01:00
Tim-Philipp Müller
c186b74296 kate, bayer, tsdemux: update for caps and taglist API changes 2011-10-31 14:51:01 +00:00
Wim Taymans
9ca3734e52 make elements compile again 2011-10-28 15:16:43 +02:00
Wim Taymans
a54cf2ccac mpegtsdemux: fix compilation 2011-10-27 16:23:26 +02:00
Wim Taymans
ce41348f78 Merge branch 'master' into 0.11 2011-10-27 16:13:56 +02:00
Stefan Sauer
69f8921e2c interfaces: clean up the use of iface and class/klass 2011-10-21 15:04:05 +02:00
Tim-Philipp Müller
4060056ce6 assrender, nuvdemux: unref buffers with gst_buffer_unref() 2011-10-18 14:41:48 +01:00
Wim Taymans
effab293cb Merge branch 'master' into 0.11 2011-10-18 14:32:05 +02: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
Edward Hervey
d6d26e9f6e bayer2rgb: Fix pad template caps 2011-10-17 10:19:20 +02:00
Wim Taymans
4a3dbe3d42 y4m: port to 0.11 2011-10-16 17:41:45 +02:00
Wim Taymans
0806e5cbb9 bayer: port to 0.11 2011-10-16 16:28:58 +02:00
Wim Taymans
7f851794d6 Merge branch 'master' into 0.11 2011-10-16 15:28:31 +02:00
Edward Hervey
9712fe8a54 tsdemux: Use gst_buffer_join instead of bufferlists
This is *really* inefficient. We should track list of GstMemory
instead.
2011-10-13 16:57:31 +02:00
Edward Hervey
a74c02bf23 tsdemux: Plug more leaks 2011-10-13 16:57:17 +02:00
Edward Hervey
db0633918a mpegtsbase: Refactor scan loop
Avoids ending up leaking packets when we got one and res was different
from GST_FLOW_OK.

It also looks more comprehensible
2011-10-13 16:55:54 +02:00
Edward Hervey
e4b7967c9d mpegtsbase: Don't leak upstream events 2011-10-13 16:55:40 +02:00
Edward Hervey
0c80f63c5b mpegtsbase: Refactor code to cope with g_hash_table_foreach_remove() 2011-10-13 16:55:05 +02:00
Edward Hervey
6abe2134bf tsdemux/tsparse: Port to 0.11
This is a naive port that somewhat works but is inefficient.
I need to rethink how to make the best out of GstMemory/GstBuffer
2011-10-12 18:06:16 +02:00
Thiago Santos
61a7e6bf38 camerabin2: Check before acessing preview location list
Only access the preview location if it exists, to avoid acessing
a NULL variable. If the preview location list doesn't exist, it is
likely because the source has posted a preview message after camerabin2
has been put to READY.
2011-10-12 12:19:13 -03:00
Thiago Santos
e90e041e52 camerabin2: Add a mutex to avoid concurrent access of preview filename lists
The preview filename list is acessed whenever a new capture is started, when
camera-source posts a new preview message or on state changes. All of those can
occur simultaneously, so add a mutex to prevent concurrent access.
2011-10-11 23:13:00 -03:00
Thiago Santos
17a00123a4 camerabin: Reset audiosrc timestamping
Reset audiosrc's timestamping data by setting
it to NULL to reset the ringbuffer and then re-seting
the clock that camerabin might not redistribute
2011-10-11 18:48:07 -03:00
Thiago Santos
0f99118141 camerabin: Prevent audio source from providing clock
camerabin's audio source might be put to NULL during its
use, so the clock would be lost. Better not allow it to
provide a clock at all.
2011-10-11 16:27:07 -03:00
Wim Taymans
5de9be0fdd dvbsuboverlay: port to 0.11 2011-10-10 10:15:05 +02:00
Wim Taymans
11a7e26fd8 dvdspu: port to 0.11 2011-10-08 15:16:25 +02:00
Wim Taymans
c16cc4698a Merge branch 'master' into 0.11 2011-10-08 11:17:11 +02:00
Wim Taymans
3267a38e37 dvdspu: beginning of port to 0.11 2011-10-06 17:56:35 +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
Wim Taymans
e83fb140d5 Merge branch 'master' into 0.11 2011-10-06 14:05:42 +02:00
Wim Taymans
e82262969c mpeg4videoparse: port to 0.11 2011-10-06 14:03:29 +02: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
Wim Taymans
c94c332578 jpegformat: port to 0.11 2011-10-05 20:06:20 +02:00
Wim Taymans
bd0b3f0761 dataurisrc: port to 0.11 2011-10-04 18:38:50 +02:00
Wim Taymans
a7d614b963 Merge branch 'master' into 0.11 2011-10-04 13:29:21 +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
Sebastian Dröge
24241b809e rtpvp8pay: Fix typo 2011-10-03 12:06:27 +02:00
Youness Alaoui
f5abb2c647 rtpvp8: Update the pay/depay to the ietf-draft-01 spec 2011-10-03 11:32:46 +02:00
Wim Taymans
d26f7319e9 Merge branch 'master' into 0.11 2011-10-03 11:24:04 +02:00
Vincent Penquerc'h
e4856a2965 mpegtsdemux: fix scanning stopping too early
https://bugzilla.gnome.org/show_bug.cgi?id=648245
2011-10-03 11:15:16 +02:00
Vincent Penquerc'h
46dd7941f3 mpegpsdemux: take into account SCR offset when seeking
Since the seeking byte offset is chosen by linear interpolation
from SCR values, we need to take that first SCR into account
to end up near the correct offset. Otherwise, as the code does
a linear search after that first seek, it will take a LOOOOOONG
time to get there for streams which don't start at zero.

https://bugzilla.gnome.org/show_bug.cgi?id=659485
2011-09-30 15:15:06 +01:00
Vincent Penquerc'h
49d1121101 mpegdemux: answer position query with a stream time position
https://bugzilla.gnome.org/show_bug.cgi?id=659485
2011-09-30 15:11:12 +01:00
Vincent Penquerc'h
71f28c44a0 mpegpsdemux: remove unused field
https://bugzilla.gnome.org/show_bug.cgi?id=659485
2011-09-30 15:05:31 +01:00
Thiago Santos
379670e036 camerabin2: add location to preview image messages
Makes camerabin2 intercept preview-image messages and add
the filename corresponding to the message structure in the
'location' field.

Makes easier for applications to track preview images
2011-09-29 18:21:06 -03:00
Robert Swain
6446cc4ae9 camerabin2: Fix potential loss of EOS event
Setting the audio source to NULL just after pushing the EOS event
on it could potentially cause loss of said EOS event. Instead, we
can set the audio source to NULL when ready-for-capture is
signalled and the boolean value is true as this indicates we are
not currently capturing video.
2011-09-29 16:22:00 +02:00
Wim Taymans
7f4cf50496 Merge branch 'master' into 0.11 2011-09-26 22:31:17 +02:00
Wim Taymans
6a44e54b09 sdpdemux: port to 0.11 2011-09-26 22:30:13 +02:00
Robert Swain
f4e744ff49 camerabin2: Stop the audio source between captures
Move the audio source setting of state to NULL to _stop_capture () to
avoid the audio source running between captures.
2011-09-26 17:23:41 +02:00
Thibault Saunier
2c928aba19 codecparsers: Declare the new APIs as unstable for the time being 2011-09-26 08:11:45 -03:00
Vincent Penquerc'h
38cdb54112 mpegtsdemux: keep CRC table in .rodata
https://bugzilla.gnome.org/show_bug.cgi?id=660118
2011-09-26 13:00:03 +02:00
Mark Nauwelaerts
e615cf15a9 irtspparse: add Interleaved RTSP parser element 2011-09-26 12:20:35 +02:00
Tim-Philipp Müller
ad1883f54d psmux: fix writing of system header, which makes VLC not skip the adjacent PSM and play embedded H.264 streams
header_length contains the length in bytes after the header_length
field, excluding the 6 byte start code and header_length field.

H.264 streams and some other formats need to be announced in the PSM.
VLC wouldn't play files created with mpegpsmux containing H.264 because
we claim the system header is larger than it actually is, which makes
VLC skip the program stream map which follows the system header, which
in turn makes it not recognise our H.264 video stream.
2011-09-22 20:11:21 +01: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
Vincent Penquerc'h
837500af07 rtpvp8: fix bitstream parsing using the wrong kind of bitreader
VP8 uses a probabilistic bool coder, not a straight bit coder.
This fixes parsing when error-resilient is set.

This commit includes a copy of libvpx's bool coder, BSD licensed.

https://bugzilla.gnome.org/show_bug.cgi?id=652694
2011-09-19 11:33:34 +02:00
Thiago Santos
b8f9c3b39d camerabin2: Adding 2 more log messages 2011-09-16 00:52:53 -03:00
Vincent Penquerc'h
25c3ce9a7a camerabin2: replace deprecated g_atomic_int_exchange_and_add
It was replaced by g_atomic_int_add, which now returns the
old value.

https://bugzilla.gnome.org/show_bug.cgi?id=659061
2011-09-16 00:52:53 -03:00
Thiago Santos
cc27a7fe3a camerabin2: Reset last state change result on state-locked elements
An element stores the result for the last state change it did and
GstBin's state change handler will use this last result for state
locked elements to decide if its state change was successfull or not.

In camerabin2, the filesinks have their state locked and when they
fail switching states, this last failure will be used if the application
tries to change camerabin2's state, causing any state change to fail.

This patch makes camerabin2 reset this last change failure, avoiding
that camerabin2 fails on its next state changes.
2011-09-16 00:52:53 -03: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
Thiago Santos
00e635e786 camerabin2: Check zoom notify callback from camera-source
Camerabin2 has a zoom property that is simply proxied to its
internal camera-source element. This patch makes camerabin2 listen
to 'notify' signals from it so it can update its zoom property value
when camera-source changes its zoom as a side-effect of another operation
or because the user set the zoom directly to it, instead of doing
it from camerabin2.
2011-09-12 17:49:25 -03: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
Sebastian Dröge
24517ba784 hlsdemux: Fix merge mistake from last commit 2011-09-09 12:27:57 +02:00
Youness Alaoui
55e4206159 hlsdemux: Report the correct timestamp for live streams
Buffers would always start with timestamp 0 and we'd start streaming
from the first buffer, but live streams always start streaming from
the last fragment - 3 fragments in the playlist, which makes its
timestamp, as returned by get_next_fragment, be whatever position
they had in the playlist. This makes sure the position correctly
reports the position of the buffer in the playlist, and added a shifting
variable to allow seeking in the middle of fragments.
2011-09-09 12:21:36 +02:00
Youness Alaoui
894ac8f493 hlsdemux/tsdemux: Add HP copyright on work done on HLS 2011-09-09 12:12:12 +02:00
Youness Alaoui
609bdd6642 hlsdemux: set playlist to NULL after unreffing it to avoid a double-unref in the dispose 2011-09-09 12:11:42 +02:00
Youness Alaoui
84e67767a3 hlsdemux: Do not lock the mutex of the fetcher during EOS
The fetch_location might call stop_fetcher which could generate an EOS
and cause a deadlock
2011-09-09 12:10:56 +02:00
Youness Alaoui
baf875b928 hlsdemux: Do not join the task from the task's thread itself. join it only in the state change 2011-09-07 22:26:47 +02: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
Wim Taymans
d4590a1959 Merge branch 'master' into 0.11 2011-09-06 16:13:28 +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
Youness Alaoui
473e71e1ca hlsdemux: If a fetch fails, decrement the sequence number 2011-09-03 09:09:02 +02:00
Youness Alaoui
5aa972eab2 hlsdemux: make hlsdemux lock/unlock the m3u8 client when it accesses it 2011-09-03 09:01:40 +02:00
Youness Alaoui
6133608789 hlsdemux: Add a get_target_duration and get_current_uri api to m3u8_client 2011-09-03 09:00:50 +02:00
Youness Alaoui
a252794a03 hlsdemux: Make the m3u8 client thread-safe 2011-09-03 09:00:35 +02:00
Sebastian Dröge
a82f92aed2 hlsdemux: Reset in PAUSED->READY after chaining up to the parent class
Otherwise there are possible race conditions with the streaming thread.
2011-09-02 19:45:21 +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
Sebastian Dröge
0561c3751c hlsdemux: Remove obsolete FIXME comment 2011-09-02 15:00:58 +02:00
Sebastian Dröge
82bbc76f15 hlsdemux: Reset the internal state going to/from READY instead of NULL
This theoretically allows reuse of the element when setting it to READY
instead of NULL.
2011-09-02 14:55:45 +02:00
Sebastian Dröge
445f626016 hlsdemux: Set playlist parsing helper object to NULL after freeing 2011-09-02 14:54:56 +02:00
Youness Alaoui
acacc251fa hlsdemux: Allow up to 3 consecutive failed downloads before erroring
In some networks, especiall in 3G, a fragment download or playlist
update may fail. We allow for up to 3 consecutive failures, while using
the rfc's specs for retry delays before considering that there was an
error on the stream.
2011-09-02 14:52:07 +02:00
Youness Alaoui
8889c5927c hlsdemux: remove unused argument 2011-09-02 14:51:11 +02:00
Robert Swain
db0739e54f camerabin2: Add a flag to disable image conversion elements
If we know that our camera source element produces buffers at the same
resolution and appropriate colourspace for the output, we don't need any
of the generic conversion elements in encodebin. This reduces caps
negotiation overheads among other things.
2011-09-01 15:57:50 +02:00
Thiago Santos
2ed3d1b309 camerabin2: Micro optimize encodebin pads linking
Reduce one check in encodebin pads linking on camerabin2 by
using the link_pads_full version
2011-08-31 15:45:18 -03:00
Thiago Santos
ac7fc0d357 camerabin2: Use explicit boolean literals to make gobject happy
gobject boolean properties are strict and only accept 1 or 0, otherwise
they throw an assertion.
2011-08-31 15:45:18 -03:00
Sebastian Dröge
cf8f00d57a hlsdemux: Just join the task
gst_task_join() will already stop the task, no need
to stop it additionally.
2011-08-31 14:48:47 +02:00
Sebastian Dröge
119771eaab hlsdemux: Join the task instead of just stopping it and not waiting for it to finish
Fixes interesting race conditions that cause crashes in decodebin2
because pads are added/removed from child elements although they
should be in READY state already.
2011-08-31 14:47:40 +02:00
Sebastian Dröge
c8b7ae1ffa hlsdemux: Remove unused variable 2011-08-31 12:12:59 +02:00
Youness Alaoui
0c97deb59d hlsdemux: switch to higher/lower bitrate by more than one step at a time 2011-08-31 12:12:33 +02:00
Youness Alaoui
6436747eb0 hlsdemux: remove spamming GST_LOG_OBJECT 2011-08-31 12:11:32 +02:00
Youness Alaoui
277a7d05b2 hlsdemux: If paused, do not cache fragments until out of memory error!
We should stop the update thread in PAUSED state and avoid fetching
new fragments when the queue is not empty. The queue should always be
empty since we push data into a queue. Also, in totem, if we seek and
pause the stream while it's buffering, then the state will stay playing
for some reason, so it's best not to continue fetching fragments forever.
2011-08-31 12:11:20 +02:00
Youness Alaoui
917708df82 hlsdemux: start/stop update thread and keep track of status 2011-08-31 12:10:32 +02:00
Youness Alaoui
4724b9a5b6 hlsdemux: Post duration message when we parse the playlist 2011-08-31 12:09:53 +02:00
Youness Alaoui
f93939b46c hlsdemux: Send a flush-stop when switching pads. Fixes A->A/V sync issue.
This is to ensure that we reset the accumulate segment on the sinks
so if we start with audio only then switch to audio+video, then both
sinks will have the same segments and will be synchronized.
2011-08-31 12:09:38 +02:00
Youness Alaoui
ed5a5cc139 hlsdemux: seems there was a typo, free the adapter if it contains data, not if already empty 2011-08-30 16:18:30 +02:00
Youness Alaoui
4a6d888961 hlsdemux: oups, we need to empty the queue after freeing its content 2011-08-30 16:18:08 +02:00
Youness Alaoui
59c61209cf tsdemux: Need to flush all streams when we receive a flush-start 2011-08-30 16:17:47 +02:00
Youness Alaoui
cb30cd242c hlsdemux: do not broadcast the fetcher_cond on bus error if we're cancelled
If we cancel the fetch and call the stop_fetcher, which holds the lock,
when it sets the fetcher's state to NULL, it might send an error
on the bus. In that case, we must ignore it, otherwise it will try
to take the lock and will block forever.
2011-08-30 16:16:54 +02:00
Jonas Larsson
fc0fe37b10 hlsdemux: Split playslist on \r\n not just \n 2011-08-30 16:16:07 +02:00
Youness Alaoui
6e9eeb7678 hlsdemux: Do not succeed a download if the fetcher had an error 2011-08-30 16:15:41 +02:00
Youness Alaoui
e22c300be2 hlsdemux: Rename functions that need to be called with a locked mutex 2011-08-30 16:15:28 +02:00
Youness Alaoui
50d0468241 hlsdemux: We must signal the fetcher_cond while holding its lock 2011-08-30 16:15:03 +02:00
Youness Alaoui
3054355dc1 hlsdemux: We do not need to set the current playlist to the main one
When caching fragments, if we set the current playlist to main, then
it will always think it's a live stream (no endlist in it) so it will
force the redownload of the main playlist after every seek, which is
unnecessary. Also, it causes a race condition where a seek migh happen
during that redownload, and we'll think we're trying to seek a live pipeline.
2011-08-30 16:14:30 +02:00
Thiago Santos
5ae630489c camerabin2: Make viewfinder's queue a thread limit only
Reduce the viewfinder queue limits to only allow it to store
one buffer, preventing the queue from holding old buffers for
too long. This also avoids showing slightly outdated frames on
the viewfinder when the source has already produced new ones
and improves the buffer recycling rate, important for sources
that use bufferpools.
2011-08-26 09:43:14 -03:00
Youness Alaoui
e380fbb019 tsdemux: In push mode, do not start pull loop if upstream seek fails 2011-08-26 09:51:46 +02:00
Youness Alaoui
108493ee51 hlsdemux: do not make the update_thread joinable 2011-08-26 09:51:46 +02:00
Youness Alaoui
8c04ea47d2 hlsdemux: Ensure the task is paused in case of cache error 2011-08-26 09:51:46 +02:00
Youness Alaoui
46ac6a2589 hlsdemux: stop the threads in the proper order
first pause the task, then stop all fetchers, then stop the update thread
then pause the task again, since it might have been restarted by
another thread in the meantime
2011-08-26 09:51:46 +02:00
Youness Alaoui
015d1e11e2 hlsdemux: do not post an error if we seek/cancel during caching of fragments 2011-08-26 09:51:46 +02:00
Youness Alaoui
d69297a23c hlsdemux: if we're canceling a fetcher, we must stop its thread 2011-08-26 09:51:46 +02:00
Youness Alaoui
42401da686 hlsdemux: lock the update_thread mutex before stopping it 2011-08-26 09:51:46 +02:00
Youness Alaoui
39657fa52f hlsdemux: lock the fetcher mutex before stopping it 2011-08-26 09:51:45 +02:00
Youness Alaoui
e1a0bdcdf5 hlsdemux: do not allow two fetchers to run simultanously 2011-08-26 09:51:45 +02:00
Youness Alaoui
adcfcabb14 hlsdemux: Stop the streaming task on PAUSED_TO_READY state change 2011-08-26 09:51:45 +02:00
Wim Taymans
ad06ac2b4b Merge branch 'master' into 0.11
Conflicts:
	ext/resindvd/rsnwrappedbuffer.c
2011-08-25 12:49:26 +02:00
Olivier Crête
1fdae52753 dtmf: Add more debug 2011-08-24 12:24:18 -04:00
Olivier Crête
4167697c0e dtmf: Max event type is 15 2011-08-24 12:24:18 -04:00
Olivier Crête
e8268053c2 dtmfsrc: Align DTMF sound buffers with last-stop from event
Also make sure the timestamps never go backwards
2011-08-24 12:24:18 -04:00
Olivier Crête
2c7257481a rtpdtmfsrc: Correctly recognize the end of a buffer 2011-08-24 12:24:18 -04:00
Olivier Crête
7c55ff3023 rtpdtmfsrc: Make sure rtpdtmfsrc timestamps don't overlap 2011-08-24 12:24:17 -04:00
Olivier Crête
e6c431a533 rtpdtmfsrc: Put the inter digit interval at the end, not at the start
The reason is to let rtpdtmfmux drop buffers during the inter digit interval,
this way, there will be more silence around the DTMF tones so IVFs will have
a better chance recognizing them.
2011-08-24 12:24:17 -04:00
Olivier Crête
7837cc25fb rtpdtmfsrc: Start at the last_stop from the start event if there was one
The goal is to try to not have a GAP between the audio and the DTMF
2011-08-24 12:24:17 -04:00
Olivier Crête
859b8ebfc9 rtpdtmfmux: Add last-stop to dtmf-event upstream events
Add the running time of the last outputted buffer to the
upstream "dtmf-event" events so that the dtmf source does not
leave a gap.
2011-08-24 12:24:17 -04:00
Olivier Crête
38aaf7cbab rtpdtmfsrc: Respect ptime from the caps
Respect the ptime from the caps for the DTMF packets
2011-08-24 12:24:17 -04:00
Olivier Crête
4f97524376 rtpdtmfsrc: Just error out if there is no clock 2011-08-24 12:24:17 -04:00
Sebastian Dröge
c86aba3469 tsdemux: Use FALSE instead of 0 for bool parameter 2011-08-24 09:35:18 +02:00
Youness Alaoui
744101a417 tsdemux: Need to send a newsegment after a seek 2011-08-24 08:12:29 +02:00
Youness Alaoui
a3fc3ec443 hlsdemux: Send buffering messages on the bus 2011-08-24 08:12:19 +02:00
Youness Alaoui
e2de4e5870 hlsdemux: cache the number of fragments we are required to cache 2011-08-24 08:12:14 +02:00
Youness Alaoui
cfd28a6f90 tsdemux: Forward seek/duration query/event to the sinkpad 2011-08-24 07:48:52 +02:00
Thiago Santos
69c65875ea camerabin2: Optimize start up a little by removing some pad checks
Some pad checks are guaranteed to work, so we can disable them
by using gst_element_link_pads_full
2011-08-24 01:03:32 -03:00
Thiago Santos
011eddcd0e camerabin2: Remove from experimental
Remove camerabin2 from experimental, allowing it to be built
without needing to pass --enable-experimental on configure.
2011-08-23 19:26:31 -03:00
Thiago Santos
e32897d809 camerabin2: Always set encodebin flags when going to ready
When going from NULL to READY we want the encodebin flags to be
set, and not only after creating encodebin (on the first run)
2011-08-23 19:13:21 -03:00
Thiago Santos
5c662ec0c7 camerabin2: Add new entry to flags property
Adds a new entry to camerabin2 flags to disable viewfinder
conversion elements.
2011-08-23 11:58:33 -03:00
Thiago Santos
dc9276b9ee camerabin2: viewfinderbin: Add property for disabling converters
Adds a new property to disable converters elements for performance
reasons. It should only be used if the application knows they aren't
needed.
2011-08-23 11:19:51 -03:00
Vincent Penquerc'h
66dbdfd4d1 tsdemux: do not try to compare a PCR with itself for statistics
Especially as one of the logs will cause a divide by zero.

https://bugzilla.gnome.org/show_bug.cgi?id=656927
2011-08-23 10:38:10 +02:00
Vincent Penquerc'h
b19a5ea1f3 tsdemux: do not keep a dangling pointer
When removing the current program, it will get freed by the
hash table removal callback, so ensure we clear our pointer
to it.

Fixes a crash later on in gst_ts_demux_push trying to access it.

https://bugzilla.gnome.org/show_bug.cgi?id=656927
2011-08-23 10:37:24 +02:00
Vincent Penquerc'h
c437541791 dvdspu: do not clear out high bits from display area
http://dvd.sourceforge.net/spu_notes does not mention that high bits
are to be masked, and not clearing them makes a sample work, where
clearing them yielded left > right.
History does not shed any light, as tracing this code's origin shows
the same bitmasks being there in 2007 when it was imported.

https://bugzilla.gnome.org/show_bug.cgi?id=620119
2011-08-23 10:15:27 +02:00
Sebastian Dröge
6edff48378 mpegtsbase: First try if upstream handles seeking in TIME format before seeking in the demuxer 2011-08-23 09:52:20 +02:00
Sebastian Dröge
a27b7b6712 tsdemux: First send SEEKING queries upstream 2011-08-23 09:40:16 +02:00
Sebastian Dröge
ca0df16d52 tsdemux: Send DURATION query upstream first 2011-08-23 09:27:23 +02:00
Sebastian Dröge
20f9738c10 hlsdemux: Use FALSE instead of 0 for a bool parameter 2011-08-23 09:23:33 +02:00
Youness Alaoui
3f42050c34 hlsdemux: switch pads when we seek (need_segment) since tsdemux doesn't cope well with a reset 2011-08-23 09:22:40 +02:00
Youness Alaoui
2d90f1c0dc hlsdemux: Add a FIXME comment. loop task should be a pad task 2011-08-23 09:21:03 +02:00
Youness Alaoui
b55f157d6f hlsdemux: Do not seek in a live stream 2011-08-23 09:20:25 +02:00
Youness Alaoui
18f53cf547 hlsdemux: Do not take the pad stream lock, use the task's lock instead 2011-08-23 09:20:14 +02:00
Youness Alaoui
e2f69e1be9 hlsdemux: Implement EVENT_SEEK 2011-08-23 09:19:59 +02:00
Youness Alaoui
475abd15b6 hlsdemux: Implement the GST_QUERY_SEEKING properly 2011-08-23 09:18:16 +02:00
Youness Alaoui
ae4af3910e hlsdemux: Implement correctly the GST_QUERY_DURATION 2011-08-23 09:17:30 +02:00
Youness Alaoui
a916d4dfd2 hlsdemux: Do not use GST_TASK_WAIT in the task function
The task function uses GST_TASK_WAIT which does a g_cond_wait giving it
the GST_OBJECT_GET_LOCK of the task. The mutex gets locked when
g_cond_wait returns, so if we don't lock/unlock it, it will
stay locked forever, preventing the task from ever finishing.
We shouldn't lock the task object lock, so let's remove the GST_TASK_WAIT
and make the task pause instead if there are no buffers in the queue.
2011-08-23 09:16:35 +02:00
Youness Alaoui
818762e8fc tsdemux: do not send a new-segment on stream removal
When a program is changed, stream_added is called which sets the
need_newsegment to TRUE, then stream_removed is called, which calls
the flush_pending_data, which checks for the newsegment and causes
it to send a new-segment.

We must not send the newsegment when flushing the pending data on the
removed stream. We should only push it when flushing data on the newly
added streams (after they finish parsing their PTS header)
2011-08-22 16:01:24 +02:00
Youness Alaoui
382710e200 tsdemux: Fix newsegment when switching programs
If a program/stream is changed, then a newsegment is sent which must
not be the same as the base segment since it happens later. We must
shift the start position by the time elapsed since the newsegment
and the current PTS of the stream
2011-08-22 16:01:17 +02:00
Youness Alaoui
4cc1dfb360 tsdemux: interpolate gap and fix timestamps depending on upstream segment 2011-08-22 15:55:47 +02:00
Youness Alaoui
690e59e497 hlsdemux: Keep a separate variable for the current variant used
By using a separate variable, first it allows us to sort the lists
of alternates but keep the pointer on the first occurence in the main
playlist (to respect the spec of starting with the bitrate specified
first in the main playlist). It also avoid playing with the lists variable
which should be used to store the list of playlists and not as a pointer
to the current one.
Also fixes a memleak with the g_list_foreach freeing the lists, if it wasn't
pointing to the first element of the list.
2011-08-22 15:46:41 +02:00
Tiago César Katcipis
382346a6f3 removesilence: new plugin
Fixes: #597822.

Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 15:28:08 -07:00
Thiago Santos
6c272aafa7 camerabin2: Prevent audiosrc from sending undesired eos
Basesrc derived classes send an eos when they change state
from paused to ready and that breaks video recordings on camerabin2
as it makes the whole audio branch pads flushing.

Prevent it by using a pad probe that only allows the eos to pass
when it is caused by a stop-capture action.
2011-08-21 18:23:16 -03:00
Thiago Santos
fefc27a586 camerabin2: Use gst_pad_send_event instead of eventfunc macro 2011-08-21 18:23:16 -03:00
Thiago Santos
fe206e75f7 camerabin2: Avoid assertions when plugin creation fails
Capsfilters are created on the constructor and their properties can
be set/get from camerabin2's set/get_property functions. The user with
a broken setup would cause assertions when trying to set/get the
capture caps of this camerabin2.

A proper missing-plugin message will be posted when the user tries to
set camerabin2 to READY state.
2011-08-21 18:23:16 -03:00
Alessandro Decina
fa6d174455 tsmux: remove unnecessary check
remove an if (best) check where best != NULL has already been checked
2011-08-21 10:54:52 +02:00
Youness Alaoui
02bc614163 tsbase: reinitiate segment at flush-stop event only 2011-08-18 14:54:22 +02:00
Youness Alaoui
5878f71233 hlsdemux: Set buffer timestamp since we send a TIME segment 2011-08-18 14:05:10 +02:00
Youness Alaoui
8b762708cd hlsdemux: Allow bandwidth switching during caching of fragments 2011-08-18 14:00:42 +02:00
Youness Alaoui
a62aa2b774 hlsdemux: set the pad's caps before adding it 2011-08-18 13:53:02 +02:00
Wim Taymans
52d48bb142 Merge branch 'master' into 0.11 2011-08-17 19:01:39 +02:00
Vincent Penquerc'h
0381919e83 aiffmux: drop data after 4ish GB and moan
https://bugzilla.gnome.org/show_bug.cgi?id=654278
2011-08-16 23:25:38 +01:00
Vincent Penquerc'h
76c0f9bfe7 aiffmux: use guint32 for guint32 parameters
This makes explicit that the range is limited.

https://bugzilla.gnome.org/show_bug.cgi?id=654278
2011-08-16 20:32:27 +01:00
Vincent Penquerc'h
fb2479d1da aiffmux: avoid integer overflow
These values are 32 bits, and width is a multiple of 8.

https://bugzilla.gnome.org/show_bug.cgi?id=654278
2011-08-16 20:31:55 +01:00
George Kiagiadakis
743b4677a2 mpeg4videoparse: Use gst_bit_reader_skip to skip more than 32 bits.
GET_BITS is a macro for gst_bit_reader_get_bits_uint32, which cannot
read more than 32 bits and will fail in this case where it is called
to read 79 bits. Since we want to skip those bits, gst_bit_reader_skip
is more appropriate in this case.
2011-08-16 19:05:52 +02:00
Thiago Santos
19e5736acd camerabin2: Add audio-filter property
Adds a property to add a custom GstElement to the audio
branch of the pipeline. This allows the user to do custom audio
processing/analysis when recording videos.
2011-08-13 11:42:07 -03:00
Stefan Kost
008fa0770b basevisualizer: add more shader variants and simplify code
Use macros to simplyfy the shading code. Those will ease to add support for
other colorspaces in the future. Add more variants for the shading (left,right,
horiz-in, vert-out, vert-in).
2011-08-12 22:39:53 +02:00
Stefan Kost
039ff3873b basevisualizer: more docs 2011-08-12 21:22:20 +02:00
Stefan Kost
3ba5b8bd0e baseaudiovisualizer: protect config with a lock
Before it was easy to crash the elements when using a ximagesink and triggering
renegotiation by resizing.
2011-08-12 21:18:44 +02:00
Stefan Kost
058c63d185 spectrascope: make a copy of the audiodata before downmixing and windowing
The buffers come from the adapter and the data might overlap. We don't want to
modify it in place.
2011-08-12 16:57:49 +02:00
Vincent Penquerc'h
2728ead8a2 mxf: do not assert on the values of data read from input
Instead, log a warning, and return.

https://bugzilla.gnome.org/show_bug.cgi?id=563827
2011-08-09 10:44:48 +02:00
Thiago Santos
8dc9551f9a camerabin2: Adding video-done message
video-done message will be posted when a video recording is
finished. Similar to image-done message.
2011-08-06 19:55:48 -03:00
Thiago Santos
80fb917034 camerabin2: Adding top-level element documentation 2011-08-06 12:26:32 -03:00
Thiago Santos
69b7326399 camerabin2: Fixing typo 2011-08-06 12:26:32 -03: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
Wim Taymans
2ba07782cd Merge branch 'master' into 0.11 2011-08-04 09:40:46 +02:00
Wim Taymans
01b9b5002f Merge branch 'master' into 0.11
Conflicts:
	common
	configure.ac
	gst/colorspace/colorspace.c
	gst/colorspace/colorspace.h
	gst/colorspace/gstcolorspace.c
2011-08-04 09:36:07 +02:00
David Schleef
e98281d25f subenc: Add webvttenc element 2011-08-03 13:39:34 -07:00
Tim 'mithro' Ansell
70c3fea5ac inter: Adding missing base requirements.
Fixes: #654806.
2011-08-03 13:38:37 -07:00
Thiago Santos
41989e358c camerabin2: add more missing plugin checks
Sprinkle some more missing plugin checks around
2011-08-03 15:34:26 -03:00
Thiago Santos
e9b72257e2 camerabin2: Add a missing element check and remove TODO
Add missing element checks for elements created at _init
functions and remove TODO about it
2011-08-03 15:34:26 -03:00
Thiago Santos
a68b1f049c camerabin2: Remove redundant image-queue
Encodebin is used for image encoding and it already contains
a queue, so we can remove camerabin2 image queue.
2011-08-03 13:58:26 -03:00
Tim-Philipp Müller
cc9e490313 dvbsuboverlay: fix up copyrights 2011-08-03 13:54:21 +01:00
Tim-Philipp Müller
f0bc2dc05b bayer: back around compiler warnings in orc-generated code by disabling -Werror for this plugin
https://bugzilla.gnome.org/show_bug.cgi?id=652677
2011-08-02 23:53:08 +01:00
Thiago Santos
298af589eb camerabin2: Workaround for ringbuffer not resyncing on READY
Add a workaround to fix timestamps meanwhile bug
https://bugzilla.gnome.org/show_bug.cgi?id=648359 is fixed.
2011-08-02 13:39:18 -03:00
Raluca Elena Podiuc
2e28fe2e18 camerabin2 remove redundant viewfinder-colorspace and viewfinder-scale
camrabin2 connects a viewfinderbin on "vfsrc". viewfinderbin is made of:
   vfbin-csp ! vfbin-videoscale ! videosink.

we should either remove csp/videoscale from wrappercamerabinsrc (as
done in this patch) or we should get rid of viewfinderbin altogether.
2011-08-02 13:39:18 -03:00
Raluca Elena Podiuc
058a3d9d4c basecamerasrc: remove unused get_allowed_input_caps
The use of this method was removed in:
    commit 539f10f4d9
    basecamerasrc: More cleanup

The code from wrappercamerabinsrc is from v4l2camerasrc but is unused:
get_allowed_input_caps is not called anywhere.
2011-08-02 13:39:18 -03:00
Teemu Katajisto
7e069060b3 camerabin2: Synchronize clock and base time to audiosrc
When audio source goes to READY it loses its clock and base time,
this patch sets them back after bringing the audio source back to PAUSED.
2011-08-02 13:39:17 -03:00
Robert Swain
7f720ed606 camerabin2: Prevent audio source from providing clock
The audio source inside camerabin2 is put to READY and back to
PLAYING when starting capture, causing the pipeline to lose its
clock. As camerabin2 isn't put to PAUSED->PLAYING again during
this, a new clock isn't selected for elements.
2011-08-02 13:39:17 -03:00
Robert Swain
2609427ada camerabin2: Add flags prop to toggle encodebin conversion elements
A flags property has been added to encodebin to toggle whether the
conversion elements (ffmpegcolorspace, videoscale, audioconvert,
audioresample, audiorate) are created and linked into the appropriate
branches of encodebin.

Not including these elements avoids some slow caps negotiation and
allows the first buffers to flow through encodebin much more quickly.
However, it imposes that the uncompressed input is appropriate for the
target profile and elements selected to meet that profile.
2011-08-02 13:39:17 -03:00
Robert Swain
dae8d8fd5a camerabin2: Prepare audiosrc before start-capture
If we bring the audio source up to the PAUSED state before emitting the
start-capture signal to the camera source, when subequently taking the
audio source to the PLAYING state, it will begin capture more quickly.
2011-08-02 13:39:17 -03:00
Robert Swain
afee3b0301 camerabin2: Remove redundant elements
Since camerabin2 has switched to encodebin and encodebin has its own
queues and conversion elements, those preceding encodebin are no longer
necessary and as such can be removed.
2011-08-02 13:39:17 -03:00
Edward Hervey
5c77682dab tsdemux: Take into account upstream newsegment events
If the incoming newsegment event was in time, use that position value
for the downstream newsegments.
2011-08-01 18:49:55 +02:00
Edward Hervey
5572e63858 hlsdemux: Send NEWSEGMENT events
Previously hlsdemux wasn't sending out any newsegment.
Here we push a GST_FORMAT_TIME newsegment, and whenever possible we
try to indicate the proper start time.

This allows downstream elements to relay the start/time values properly
to the sinks, allowing better stream switching.
2011-08-01 18:48:03 +02:00
Edward Hervey
adfb090b59 mpegtsbase: Remove programs on EOS
Allows subclasses to properly flush out pending data.
2011-08-01 15:46:12 +02:00
Edward Hervey
57279cdd24 tsdemux: Refactor stream/program removal
The program_stopped vmethod was called before stream_removed vmethod
was being called. Since we only did stream-related operations in there,
we just remove the program_stopped vmethod and do everything in the
stream_removed one.

Also, make sure we flush out all pending data before sending EOS.
2011-08-01 10:54:16 +02:00
Nicolas Dufresne
cbc0a2f056 mpegtsbase: Prevent stack gardening by using the right type
stream_type is stored as guint inside the GstStructure but was retreived
using valist with a pointer to guint16. This would cause stack gardening
when code is compiled without optimisation (e.g. in -O0 the compiler wont
pad the stack to optimise out required mask).

https://bugzilla.gnome.org/show_bug.cgi?id=655540
2011-08-01 09:33:25 +02:00
Tim-Philipp Müller
830a337799 id3mux: use now-public GstTagMux base class from libgsttag 2011-07-29 21:27:28 +01:00
Tim-Philipp Müller
e5970c8805 tagmux: require subclass to install sink pad template
Require the subclass to install both source and sink pad
templates. Also, print some warnings if the subclass doesn't
do that.

https://bugzilla.gnome.org/show_bug.cgi?id=555437
2011-07-29 21:27:28 +01:00
Edward Hervey
976f4b0bbf hsldemux: Handle change of media types
When switching bitrates, we might end up switching to a different
media-type (like from aac to/from mpeg-ts).

For this switch to behave properly in decodebin2, this patch adds:
* dynamic source pads (which will be added/removed whenever a stream
  media type changes
* re-checking the fragment media type whenever we switch to a different
  playlist
2011-07-27 16:56:37 +02:00
Edward Hervey
a49cfd1330 mpeg4videoparse: Fix unitialized variable on old compilers 2011-07-27 16:56:37 +02:00
Olaf Seibert
7583080023 hlsdemux: fix wrong usage of GST_ELEMENT_ERROR macros and compilation on NetBSD
https://bugzilla.gnome.org/show_bug.cgi?id=655319
2011-07-27 11:02:41 +01:00
Tim-Philipp Müller
e910e2888b pcapparse: fix compiler warning
gstpcapparse.c: In function 'gst_pcap_parse_chain':
gstpcapparse.c:381:6: error: 'eth_type' may be used uninitialized in this function [-Werror=uninitialized]
gstpcapparse.c:354:11: note: 'eth_type' was declared here
2011-07-27 10:56:15 +01:00
Felipe Contreras
046af98b30 pcapparse: fix SLL parsing
The current code is not checking for ethernet type, as it's supposed to,
but link layer device type and it's hard-coded to only accept dumps from
ethernet (ARPHRD_ETHER; 1). We don't care where the dump was fetched
from (wlan, 3G, etc.)

What we care about is the that the ethernet type is IP (ETHERNET_IP;
0x800), which is clearly field 14:

http://www.tcpdump.org/pcap3_man.html

And do a bit of cleanup.

Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
2011-07-27 09:30:44 +02:00
Edward Hervey
634d29cd88 mpegtsbase/tsdemux: Fix stream/pad activation order
We first activate new streams before shutting down old ones.
We emit no-more-pads after we add new streams and emit EOS before
removing old ones.
Also cleanup/refactor a bit more of the code accordingly
2011-07-25 18:56:49 +02:00
Raluca Elena Podiuc
b50d50a9c2 camerabin2: add location=NULL docs to PORTING
https://bugzilla.gnome.org/show_bug.cgi?id=641918
2011-07-25 10:32:51 -03:00
Thiago Santos
a34ea4aaae camerabin2: If location is NULL do not encode images
Using a NULL string for location means that the application
doesn't want the image to be encoded, but wants to receive
the preview image. (Only works for image captures)

Useful for application that want the capture in memory only, like
displaying to the user before it choses to encode or take another
picture in avatar capturing scenarios.

https://bugzilla.gnome.org/show_bug.cgi?id=641918
2011-07-25 10:32:51 -03:00
Edward Hervey
d0e8427b4e pesparse: Fix stuffing byte handling
We in fact get the size of the header (including stuffing bytes), therefore
use that instead of trying to skip 0xff bytes ourselves since some media
streams do start with 0xff (like mpeg audio's initial 0xfff).
2011-07-20 19:19:13 +02:00
Alessandro Decina
2b7e9abc59 mpegtsdemux: fix compiler warnings 2011-07-20 08:59:25 +02:00
Edward Hervey
a960e72efa mpegtsbase/tsdemux: Add more comments and removal unused variable 2011-07-19 09:49:40 +02:00
Edward Hervey
2b127601e9 mpegtsbase: Avoid double removal of streams
This can happen if the PCR pid is the same as a audio/video PID.
2011-07-19 09:49:40 +02:00
Edward Hervey
b170b2020c mpegtsbase: Add a GList of streams to the program
Allows faster iteration of all program streams.

We still keep the Array to allow fast retrieval of stream by PID.
2011-07-19 09:49:40 +02:00
Edward Hervey
dc18e2b16d mpegtsbase: Use a bit array instead of an array of gboolean
Makes know_psi and is_pes 32 times smaller
2011-07-19 09:49:39 +02:00
Sebastian Dröge
beea027d19 pcapparse: Fix format string compiler warning 2011-07-19 08:37:24 +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
Edward Hervey
177e00f809 tsdemux: Use standalone PES parser 2011-07-18 09:13:15 +02:00
Edward Hervey
6f9a6cc2ba mpegtsdemux: Add standalone PES parser 2011-07-18 09:13:14 +02:00
Edward Hervey
42cf7d016c mpegdefs: clarify some stream ids 2011-07-17 09:49:06 +02:00
Edward Hervey
f6f885ddb8 tsdemux: whoops, tsdemux isn't ready yet for primary rank :) 2011-07-16 13:51:44 +02:00
Edward Hervey
a00900367a mpegtsbase/tsdemux: Cleanups and comments 2011-07-16 13:47:45 +02:00
Edward Hervey
9f1511e998 tsdemux: Fix newsegment creation for push mode
And all relevent comments to what it should be doing, refactor everything
a bit. Still not perfect ... but better.

Fixes #654657
2011-07-16 13:44:00 +02:00
Edward Hervey
b73679e13d mpegtsbase: Store incoming newsegments 2011-07-16 12:27:50 +02:00
Tim-Philipp Müller
f054eab77e tagmux: const-ify GstTagList argument of render vfuncs 2011-07-15 20:57:47 +01:00
Tim-Philipp Müller
1c3229307e tagmux: fix up private base class header so it can be made public
Move private bits into a private struct, add some padding.

https://bugzilla.gnome.org/show_bug.cgi?id=555437
2011-07-15 20:42:28 +01:00
Mark Nauwelaerts
01cf66b642 pcapparse: rename offset property to ts-offset
... so as to promote consistency with some other elements in the wild.
2011-07-15 10:05:24 +02:00
Alessandro Decina
d439f2d38d mpegtsbase: actually set seen_pat=TRUE when we see a PAT 2011-07-15 00:03:52 +02:00
Edward Hervey
a82483e367 mpegtsbase: Split up whether we saw a PAT and its offset
Fixes the issue with streams that don't set an offset on their buffers,
like those coming from hlsdemux.

Fixes #653481
2011-07-14 22:10:27 +02:00
Mark Nauwelaerts
592d7cbc15 pcapparse: properly apply ts offset 2011-07-14 17:07:04 +02:00
Mark Nauwelaerts
671a9faad6 pcapparse: optionally output relative timestamps, possibly shifted by offset
That is, output timestamps can then either be the absolute capture time,
or the relative capture time (w.r.t. to first output buffer), or the relative
capture time incremented by some offset.
2011-07-14 16:54:39 +02:00
Mark Nauwelaerts
93af6831e2 pcapparse: also support extracting tcp data 2011-07-14 16:54:37 +02:00
Olivier Crête
4fffbd2cd0 mpegvideoparse: Restore some unused variables as comments 2011-07-13 13:42:09 -04:00
Olivier Crête
ca7a512739 mpegtsdemux: Restore erroneously removed data++
Also, put back some unused code in comment and replace // comments by /* */
2011-07-13 13:39:54 -04:00
Olivier Crête
ad97807497 mpegdemux: Restore erroneously removed data++
Also, put back some unused code in comment and replace // comments by /* */
2011-07-13 13:38:31 -04:00
Olivier Crête
f4caf95a15 videomeasure: Fix set-but-unused warnings 2011-07-12 18:11:32 -04:00
Olivier Crête
8f6b55f920 tta: Fix set-but-unused warnings 2011-07-12 18:09:26 -04:00
Olivier Crête
b44cb0a048 sdi: Fix set-but-unused warnings 2011-07-12 18:08:45 -04:00
Olivier Crête
0b6cc7eb96 rtpvp8: Reject unknown bitstream versions 2011-07-12 18:03:53 -04:00
Olivier Crête
9eba99542f videoparsers: Fix set-but-unused warnings 2011-07-12 17:59:56 -04:00
Olivier Crête
c1f432ee18 pcapparse: Fix set-but-unused warnings 2011-07-12 17:57:45 -04:00
Olivier Crête
35f85f978e mpegvideoparse: Fix set-but-unused warnings 2011-07-12 17:56:25 -04:00
Olivier Crête
d7a774cc44 mpegdemux: Fix unused-but-set warnings 2011-07-12 17:53:33 -04:00
Olivier Crête
dcd54fced1 mpegtsdemux: Fix unused-but-set warnings 2011-07-12 17:50:27 -04:00
Sameer Naik
666807ed69 mpegtsmux: fix segfault if gst_collect_pads_pop () returns no buffer
In mpegtsmux_choose_best_stream () call if the gst_collect_pads_pop () call
returns no buffer (NULL), the plugin SegFaults in the gst_buffer_unref call.
To fix this we check if a valid buffer is returned before calling
gst_buffer_unref ().

Fixes bug #654416.
2011-07-12 07:51:21 +02:00
Sebastian Dröge
6f2c2609ac mxfdemux: Properly return seeking errors if the requested position can't be found 2011-07-08 11:52:17 +02:00
Stefan Kost
0a7e6e4002 inter: add ignore file for intermediate files 2011-07-08 00:11:37 -07:00
Stefan Kost
1b103d259d camerabin2: don't mess with camerabin (1) namespace
Use an extra '2' to stay out of the old namespace.
2011-07-08 00:11:37 -07:00
Stefan Kost
266a57d77b scaletempo: improve the docs
Fix the syntax, add more explanation and xref the properties.
2011-07-08 00:11:37 -07:00
David Schleef
f21e36b54b diracparse: make diracparse work correctly 2011-07-04 16:49:00 -07:00
David Schleef
e9f0e27596 inter: new intermediate surface plugin
This set of elements allows easily rendering audio and video to
an intermediate surface that is then used as a source in a different
pipeline.
2011-07-04 16:47:50 -07:00
David Schleef
2573de1062 colorspace: Add JPEG YCbCr matrix 2011-07-04 16:47:49 -07:00
David Schleef
3de8284efd y4mdec: Fix buffer duration 2011-06-26 19:29:55 -07:00
David Schleef
40ee3369a0 tta: decrease rank to NONE
Appears to be utterly incapable of parsing and decoding TTA streams.
Hasn't been updated to do TTA2.  If you want this element to work,
fix the bloody thing.  The gst-ffmpeg decoder works fine.

Also fixed an obvious endianness issue along the way.

Fixes: #652924
2011-06-25 15:12:45 -07:00
Tim-Philipp Müller
2b2e6fbdea camerabin2: don't use GLib 2.28 API
Don't use GLib 2.28 API, we still only require >= 2.24.
2011-06-23 20:11:55 +01:00
Thiago Santos
e19a488bce camerabin2: Set tagsetters to merge replace mode
The default for tagsetters is to use merge keep mode, so tags
would never be replaced and all captures would have the same tags.

This commit watches all elements added into encodebin and sets
all tagsetters to merge replace mode
2011-06-23 00:05:13 -03:00
Thiago Santos
f1fa6c6531 camerabin2: Use a single location for both modes
Implement the location property just like it works in camerabin, the
same location is used for both images and videos
2011-06-23 00:05:13 -03:00
Thiago Santos
f31554bc4f camerabin2: Send serialized custom events for filename changes in image sink
Using serialized custom events for switching image capture saving
location makes camerabin2 save each capture correctly to the location
that was set during the moment start-capture was called, and not
the moment the filesink was writing to disk.

This prevents captures to be overwriten by racyness among start-capture
and setting location for images.
2011-06-23 00:05:13 -03:00
Thiago Santos
a33eae1a65 camerabin2: No need to change state of the whole image branch
We only need to change the state of the filesink to switch its
saving location. This might still cause some problems of dropping
captured buffers, but it is better than changing the state of
the whole branch.
2011-06-23 00:05:13 -03:00
Thiago Santos
b1b0082cdb camerabin2: Use names for image and video encodebin
Naming encodebins as image-encodebin and video-encodebin to make
it easier for debugging camerabin2.
2011-06-23 00:05:13 -03:00
Thiago Santos
e23e5380d3 camerabin2: Remove unused variable 2011-06-23 00:05:13 -03:00
Thiago Santos
ac2d5821b3 camerabin2: Minor debug message fix 2011-06-23 00:05:13 -03:00
Mark Nauwelaerts
eca1614f08 legacyh264parse: create correct avc codec-data
Fixes #653013.
2011-06-22 10:13:55 +02:00
Mark Nauwelaerts
d631e1b348 legacyh264parse: fix output caps alignment for avc input
... particularly when splitting packetized input.

Fixes #652995.
2011-06-21 12:46: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
Thiago Santos
ca8ea19cc3 tsdemux: only free the index array if it exists
Only free the array if it exists.

Contains an unrelated indentation fix, courtesy of gst-indent
2011-06-17 16:18:03 -03:00
Mark Nauwelaerts
6429ead4bc debugutils: add compare element 2011-06-17 12:10:06 +02:00
Mark Nauwelaerts
a1f5b2e0cc colorspace: fix odd width and height handling in some fastpath cases 2011-06-17 12:07:34 +02:00
Wim Taymans
af6d20d90a Moved 'colorspace' from -bad to -base 2011-06-15 16:32:03 +02:00
Wim Taymans
a2b7a672b8 Merge branch 'master' into 0.11
Conflicts:
	android/aacparse.mk
	android/amrparse.mk
	android/h264parse.mk
	android/metadata.mk
	android/qtmux.mk
	android/sdpelem.mk
	configure.ac
	gst/qtmux/gstqtmux.c
	win32/common/config.h
2011-06-15 16:06:36 +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
Edward Hervey
b3ef72f2eb tsdemux: Don't free unexistent PAT
And cleanup find_timestamps a bit
2011-06-12 11:27:30 +02:00
Edward Hervey
e1a7d71184 tsdemux: More fixes to handle non-188 byte packets 2011-06-07 20:50:35 +02:00
Edward Hervey
6c0254b84b mpegts: Stop scanning for keyframes as early as possible 2011-06-07 20:50:35 +02:00
Janne Grunau
ae2e7624d6 mpegtsdemux: always try to seek for to a keyframe
keyframe is expected to lie in the the next ~2500 ms
2011-06-07 20:50:35 +02:00
Janne Grunau
9352cfc478 mpegtsdemux: fix timestamps in newsegement event after seeking 2011-06-07 20:50:34 +02:00
Janne Grunau
cde65d6d6e mpegtsdemux: payload parsing for H.264 2011-06-07 20:50:34 +02:00
Janne Grunau
ff15d6fa80 mpegtsdemux: implement key_unit seeking for MPEG2 video 2011-06-07 20:50:34 +02:00
Janne Grunau
3ce1ec7c9c mpegtsdemux: accurate seeking
* pes header parsing for pts is ugly, refactor
 * timestamps/newsegment after seeking is still off
2011-06-07 20:50:34 +02:00
Janne Grunau
15391b29e1 mpegtsdemux: push based seeking based on PCR
buffer timestamps are converted to GstClockTime to cover pcr/pts wraps.
multiple pcr/pts wraps are handled with an index which ensures at most
a single pcr wraparound between two entries.
the last seen pcr is recorded to have a nearby index point for short seeks
resuming playback might be delayed if the postion is not a keyframe

TODO: replace manual packet scanning and parsing in the initial duration estimation
2011-06-07 20:50:34 +02:00
Janne Grunau
f89a0abca0 mpegtsdemux: create function for pcr parsing 2011-06-07 20:50:34 +02:00
Janne Grunau
37f1decf78 mpegtsdemux: adaptation field length == 0 is valid
it can be used to insert a single stuffing byte
do not parse the following payload as adaptation field
2011-06-07 20:50:34 +02:00
Stefan Kost
f7fe0c9e6f baseaudiovisualizer: fix last block condition
Also push out the last frame if we have exact amount of samples. Fix the adapter
flushing to not cause endless loops. Drop a redundant avail() check.
2011-06-06 15:25:14 +03:00
Stefan Kost
594134d139 audiovisualizers: add a README with comments and plans 2011-06-06 15:25:14 +03:00
Stefan Kost
f66a88bc70 audiovisualizers: remove some not needed boilerplate 2011-06-06 15:25:14 +03:00
Stefan Kost
0a41b9084e audiovisualizers: add a spacescope element
Add another element that maps left/right channel to x,y coordinates.
2011-06-06 15:25:14 +03:00
Stefan Kost
9936332f0a synaescope: tweak the algorithm
Speed-up the calculation a bit. Keep a few values as doubles. Tune the scaling
to get nices colors.
2011-06-06 15:25:14 +03:00
Stefan Kost
0fd078f156 audiovisualizers: doc-blob and comment updates 2011-06-06 15:25:14 +03:00
Stefan Kost
8b1b28dbc0 audiovisualizers: rename baseclass from basescope to baseaudiovisualizer 2011-06-06 15:25:14 +03:00
Stefan Kost
45464a038e audiovisualizers: rename scopes plugin to audiovisualizers 2011-06-06 15:25:13 +03:00
Stefan Kost
92d36cdbfe scopes: fix elements descriptions 2011-06-06 15:25:13 +03:00
Stefan Kost
7cee23a419 spectrascope: use add_pixel for non-white pixels
https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
b4afe9f690 scopes: add a new element similar to synaesthesia
https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
08ecb1acc0 scopes: draw pixels with signle 32bit writes
https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
2d101863dc basescope: add more shading effects
https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
efe9f3328d basescope: add a property to modify the ammount of shading
Add another property to specify the shading per color channel. Fix endianess
issues in the shading code.

https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
2cd10856d0 basescope: add a backbuffer and apply shading effects
Keep the last frame and apply shade and geometry effects. Expose the shading
effects as a controllable gobject property on the baseclass.

https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
2271946d73 basescope: allow subclasses telling how many sample they need per frame
This allows e.g. FFT based elements to require enough data. If they need more
data than what we get, we flush less from the adapter.

https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
46e3bc48af basescope: remove some comments
Those comments where pointing to example calls that we do in the subclass.

https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
a83b706c12 scopes: add a simple fft based scope
Add a 2nd demo scope that uses a fft.

https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Stefan Kost
439c7c47e5 scopes: first version of a scopes plugin using a new baseclass
Add a new baseclass for writing visualisation plugins. Provide a simple wave
oscilloscope as a first subclass.

https://bugzilla.gnome.org/show_bug.cgi?id=651536
2011-06-06 15:25:13 +03:00
Edward Hervey
813ac7bb2d mpegvideoparse: Avoid double scanning of pictures
The incoming data has already been scanned in mpeg_packetizer_add_buf.
We can therefore stop scanning for picture data as soon as we've parsed
the header. Makes mpegvideoparse 2 times faster.

https://bugzilla.gnome.org/show_bug.cgi?id=648933
2011-06-06 12:44:58 +02:00
David Schleef
48d5fc3c4b invtelecine: Remove in favor of fieldanalysis 2011-06-05 10:37:10 -07:00
David Schleef
7b12d4647a Work around changes in g_atomic API
See #651514 for details.
2011-06-04 14:09:30 -07:00
David Schleef
33d96b69be videofilter2: Fix copyright 2011-06-04 14:07:19 -07:00
Tim-Philipp Müller
0777b678f5 gst: some more unused-but-set-variable warning fixes 2011-06-04 20:35:03 +01: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
Luciana Fujii Pontello
23576af52a camerabin2: Adding a filter to wrappercamerabinsrc
Camerabin2 allows setting a filter for image, video or viewfinder, but
not one filter for all three at the same time. I added a filter to
wrappercamerabinsrc to allow setting a global filter when using this
source.

https://bugzilla.gnome.org/show_bug.cgi?id=649822
2011-06-02 16:24:03 -03:00
Thiago Santos
cff308eba2 camerabin2: Use full names in properties
Improve API by using source instead of src in properties
2011-06-02 16:24:03 -03:00
Teemu Katajisto
2a6d25659a camerabin2: do not unref pad template 2011-06-02 16:24:03 -03:00
Edward Hervey
f4c96f1dbb tsdemux: Fix scanning on small files
We were previously:
* Stopping early in the initial PCR scan
* Giving a negative offset for the second PCR scan
2011-05-31 12:58:11 +02:00
Edward Hervey
e3839f0241 mpegtsbase: Don't call program_stopped with a NULL program 2011-05-31 12:58:11 +02:00
Edward Hervey
219c90ce34 legacyh264parse: Delay pushing buffers until we have width/height 2011-05-31 12:58:10 +02:00
David Schleef
db7fe611ed bayer2rgb: Convert to Orc
Seriously faster.  Algorithm is nearly the same as bilinear, which
given the speed of this code, should be considered the baseline of
quality.  Speed appears to be limited by memory bandwidth, so I
didn't bother trying to make it any faster.
2011-05-30 23:50:30 -07:00
David Schleef
f0c75b06a7 bayer2rgb: Rewrite signal processing. Much faster. 2011-05-30 17:04:58 -07:00
Debarshi Ray
03bb5dc8ba 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-05-30 22:52:03 +10:00
Edward Hervey
fc4c49157c Revert "dvdspu: Fix pad templates"
This reverts commit 732828e31c.

It was in fact an issue in core
2011-05-30 13:01:54 +02:00
Edward Hervey
ffc9303c9d tsdemux: Protect against program being removed 2011-05-30 13:01:20 +02:00
Sebastian Dröge
8aebdeb35d faceoverlay: Add gst-plugins-base CFLAGS and LIBS to fix compilation 2011-05-30 12:27:37 +02:00
Laura Lucas Alday
d11178aac0 faceoverlay: Add element that displays an SVG image over a detected face
Fixes bug #642759.
2011-05-30 12:24:31 +02:00
Edward Hervey
732828e31c dvdspu: Fix pad templates
Our caps intersection code is a bit too touchy about what an element
returns compared to its pad templates.
2011-05-29 18:17:55 +02: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
Alessandro Decina
c07424ea4e legacyh264parse: check for out of range pps_id one layer up
Fixes compiler warning comparing guint8 and MAX_PPS_COUNT which is > G_MAXUINT8
2011-05-29 12:57:35 +02:00
Christian Fredrik Kalager Schaller
2e610eb003 Fix missing header file and update spec to work around current compiler issues 2011-05-27 11:06:29 +01:00
Sebastian Dröge
6244704089 debugspy: Use G_PARAM_STATIC_STRINGS 2011-05-26 09:59:35 +02:00
Guillaume Emont
555959a852 debugspy: add new element
This element allows you to get information about buffers with bus messages. It
provides the same kind of information as identity does through a notify signal
on a string property, but in a more programmer-friendly way.
2011-05-26 09:54:39 +02:00
Gabriel Strimtu
d8fd874f52 mpegtsparse: Fix parsing of PSI table IDs
Fixes bug #635917.
2011-05-26 09:46:58 +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
Andreas Frisch
4a7057048f mpegtsmux: fix pointer output in stream-not-associated debug output
https://bugzilla.gnome.org/show_bug.cgi?id=651050
2011-05-25 14:21:57 +01:00
Lasse Laukkanen
466ca5d460 camerabin: Add image-formatter property
Add image-formatter property in order to let application configure
the formatter element for metadata.
2011-05-23 12:08:37 -03:00
Mark Nauwelaerts
0aaee4eba4 mpeg4videoparse: additional debug tracing 2011-05-23 16:57:26 +02:00
Mark Nauwelaerts
6f5a3ecfa7 videoparsers: add new mpegvideoparse 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
9c0547b15c mpegvideoparse: rename to legacympegvideoparse 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
8a3efc4431 mpeg4videoparse: simplify minimum frame size handling 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
dbb1fecf08 mpeg4videoparse: avoid stale parsing state 2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
afb5b28d66 mpeg4videoparse: port to baseparse 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
Thiago Santos
d25908cf81 camerabin2: Do not segfault on null locations
Prevent capture from starting when saving location is set to
NULL
2011-05-20 15:25:08 -03:00
Rafael Diniz
83b5b29639 mpeg[pt]sdemux: Add support for AAC LATM/LOAS streams
Fixes bug #615681.
2011-05-20 10:00:02 +02:00
Stefan Kost
b1f0f2e83f festival: don't leak fd on error 2011-05-20 00:20:07 +03:00
Stefan Kost
ed42bca0dd librfb: don't leak password on error 2011-05-20 00:16:00 +03:00
David Schleef
a898d147ba h264parse: max pps is 255
Fixes #650484.
2011-05-18 13:38:09 -07:00
David Schleef
02daafb9ae mpegtsmux: use gst debug for tsmux library 2011-05-18 12:06:38 -07:00
Stefan Kost
79e3b5b4bb various: fix author tag in element details 2011-05-18 10:31:38 +03: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
Thiago Santos
5dadb325ae camerabin2: Remove obsolete imagecapturebin
imagecapturebin has been replaced by encodebin, no need
for it anymore
2011-05-16 18:08:41 -03:00
Thiago Santos
e2c67098e9 camerabin2: use jpeg as a container to force jifmux usage
Jifmux should be used as it can do xmp/exif tagging, so this patch
sets jpeg as a container to force it to be used together with
a jpeg encoder
2011-05-16 18:08:41 -03:00
Alessandro Decina
90221c4a82 camerabin2: do proper EOS handling on send_event(eos)
We first let the inner camera EOS. Then we manually post EOS on the image and
video sinks if those are <= READY and so have ignored EOS events.
2011-05-16 18:08:40 -03:00
Alessandro Decina
9e9507b645 camerabin2: use encodebin to encode images 2011-05-16 18:08:40 -03:00
Thiago Santos
993a98c238 jifmux: Bump rank to secondary
jifmux is being used for quite some time and has no open bugs
currently, so we can give it a secondary rank at least.

Fixes #649391
2011-05-16 18:08:40 -03:00
Thiago Santos
ad68fa5831 jifmux: Change class to formatter
jifmux is a formatter and not a muxer

Fixes #649391
2011-05-16 18:08:40 -03:00
Thiago Santos
0b02e595f3 camerabin2: Changing how some properties work
Some properties (like viewfinder-filter) only are taken into use
on NULL->READY transitions and the get/set property was returning
the currently in use value, instead of the last set.

This is bad, as after setting 'a' to 'x', you expect that getting 'a'
will return 'x'. This patch fixes it.

If needed, later we could add current-* properties that are readonly
and get the current value in use.
2011-05-16 18:08:40 -03:00
Lasse Laukkanen
a36edbc1ab camerabin2: Updating PORTING file 2011-05-16 18:08:40 -03:00
Thiago Santos
56007404b6 camerabin2: Adding missing plugin error messages
Whenever a required plugin is missing, camerabin2 should post
a missing plugin message to the bus
2011-05-16 18:08:40 -03:00
Thiago Santos
1c8e1722eb camerabin2: encodebin might not have the requested pad
handle the case where encodebin doesn't have the pad
camerabin2 is requesting, either because of its current profile
or because of missing elements, making it fail to provide
the pad
2011-05-16 18:08:40 -03:00
Thiago Santos
912800fb76 camerabin2: imagecapturebin: Fix tags merging mode
Use merge replace mode to allow new tags to override old ones
and fix the use case where the last sent tags should be serialized
to the captured images.
2011-05-16 18:08:39 -03:00
Thiago Santos
dfdc6255f8 camerabin2: Fix tag handling for videos
In video mode the tags should be pushed after sending the start capture
to the source, this allows the video recording elements to be reset
and leave the flushing state they were at after a previous capture.

This fixes the problem where tags only work for the first video capture
2011-05-16 18:08:39 -03:00
Thiago Santos
d8484f8279 camerabin2: Adding camera source documentation file
Adds a small text file with a brief description of
what is expected from a camerabin2 source element
2011-05-16 18:08:39 -03:00
Thiago Santos
7fd638bd0d camerabin2: viewfinderbin: Post missing plugin messages
Makes viewfinderbin post missing plugin messages when it
can't create an internal elements
2011-05-16 18:08:39 -03:00
Thiago Santos
54a35ab879 camerabin2: Improve missing plugin message
Improves the message text for missing plugin messages from
camerabin2
2011-05-16 18:08:39 -03:00
Thiago Santos
4ca402a470 camerabin2: Update porting file
Update porting file with mention that stop-capture is now
async.
2011-05-16 18:08:38 -03:00
Robert Swain
10b6765fba camerabin2: Fix debug print to show audio/video depending on pad type 2011-05-16 18:08:38 -03:00
Robert Swain
74d4030e3f camerabin2: Fix order of element state change
To change the state of elements in a pipeline, we should mirror the
behaviour of GstBin which starts at the sink element and works its way
upstream.
2011-05-16 18:08:38 -03:00
Marc-André Lureau
e5fc7a9f13 gst/dccp: fix build on newer mingw
Fix this build error:
  CC     libgstdccp_la-gstdccpplugin.lo
In file included from ../../../gst/dccp/gstdccpclientsrc.h:29:0,
                 from ../../../gst/dccp/gstdccpplugin.c:24:
../../../gst/dccp/gstdccp_common.h:32:0: warning: WINVER redefined [enabled by default]
/usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the location of the previous definition
In file included from ../../../gst/dccp/gstdccpplugin.c:24:0:
../../../gst/dccp/gstdccpclientsrc.h:58:3: error: unknown type name 'uint8_t'
In file included from ../../../gst/dccp/gstdccpplugin.c:25:0:
../../../gst/dccp/gstdccpserversink.h:74:3: error: unknown type name 'uint8_t'
In file included from ../../../gst/dccp/gstdccpplugin.c:26:0:
../../../gst/dccp/gstdccpclientsink.h:67:3: error: unknown type name 'uint8_t'
In file included from ../../../gst/dccp/gstdccpplugin.c:27:0:
../../../gst/dccp/gstdccpserversrc.h:58:3: error: unknown type name 'uint8_t'
make: *** [libgstdccp_la-gstdccpplugin.lo] Error 1

https://bugzilla.gnome.org/show_bug.cgi?id=650171
2011-05-16 08:53:10 +02:00
Alessandro Decina
adc0817b2a hls: fix handling of strol() overflows 2011-05-15 10:02:20 +02:00
Luis de Bethencourt
5435ae849e coloreffects: Coding style fixes 2011-05-14 12:08:39 +02:00
Thiago Santos
72574962ef camerabin: Use running time for muxing
This patch removes the audio source buffer probe that was used
to re-timestamp buffers to make them start from 0. As muxers
have been fixed to use running time instead of timestamps, this
is not needed anymore.

Fixes bug #646211
2011-05-06 12:45:28 -03:00
Thiago Santos
834dc9ca63 camerabin: Fix typo 2011-05-05 09:57:17 -03:00
Andoni Morales Alastruey
851e9b1f8d hlsdemux: set duration in outgoing buffers
Currently we push each fragment as a single buffer.
2011-05-03 14:39:15 +01:00
Tim-Philipp Müller
7ec71fb446 hlsdemux: fix DURATION query handling
Only answer duration queries in TIME format with a duration
in seconds. Make sure we don't return GST_CLOCK_TIME_NONE as
duration (which is non-0, but still invalid/useless).
2011-05-03 12:01:25 +01:00
Tim-Philipp Müller
0d9dbd4c0f hlsdemux: implement SEEKING query 2011-05-03 11:51:44 +01:00
Tim-Philipp Müller
04a9b099b7 Update orc-generated disted C backup code to orc 0.4.14 2011-04-30 19:46:40 +01:00
Tim-Philipp Müller
6c361963b1 chopmydata: don't push buffers smaller than min-size on eos
When pushing the remaining data on EOS, don't just push whatever
data is left in the adapter, but only push data that's at least
of min-size.
2011-04-30 19:16:03 +01:00
Tim-Philipp Müller
65f481ca63 chopmydata: don't mess with adapter from non-streaming thread on FLUSH_START
Don't try to push remaining data in the adapter on receiving a FLUSH event,
just flush the adapter. Do this on FLUSH_STOP, however, which is serialized,
unlike FLUSH_START, so we don't mess with the adapter at the same time as
the streaming thread.
2011-04-30 19:08:25 +01:00
Philip Jägenstedt
2084044112 y4mdec: add plugin description
https://bugzilla.gnome.org/show_bug.cgi?id=649005
2011-04-30 18:37:22 +01:00
Edward Hervey
21add205b7 tsdemux: Don't leak bufferlist on streams without pads
https://bugzilla.gnome.org/show_bug.cgi?id=648929
2011-04-29 12:47:34 +02:00
Edward Hervey
565f068049 mpegtsbase: Unref buffers we don't use.
Avoids a massive leak :)

https://bugzilla.gnome.org/show_bug.cgi?id=648929
2011-04-29 12:47:34 +02:00
Edward Hervey
c26ca36cf0 mpegtsbase: Don't forget to free the program streams array
https://bugzilla.gnome.org/show_bug.cgi?id=648929
2011-04-29 12:47:34 +02:00
Edward Hervey
390502a093 tsdemux: Free packet buffer even if it doesn't have a payload
This can happen with AFC-only packets. Avoids leaking buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=648929
2011-04-29 12:47:34 +02:00
Tim-Philipp Müller
954977127b 0.10.21.3 pre-release 2011-04-28 00:00:09 +01:00
David Schleef
40f3b4a651 mpegtsdemux,tsdemux: Add byte-stream to h264 caps
Fixes #606662.
2011-04-24 19:40:08 -07:00
David Schleef
55633f5e8f mpegtsmux: Add byte-stream to h264 caps 2011-04-18 09:50:56 -07:00
Tim-Philipp Müller
e5813c9c2c ext, gst: update disted orc backup files 2011-04-17 01:09:33 +01:00
Edward Hervey
b18bf6a018 jpegformat: Fix unitialized variable on macosx 2011-04-16 11:18:44 +02:00
Thiago Santos
19bd1e6d55 camerabin: Do not forget to unref the ffmpegcolorspace
Do not leak the ffmpegcolorspace by unrefing it at dispose
2011-04-15 07:53:43 -03:00
Tim-Philipp Müller
5d6bdf6052 Fix some unused-but-set-variable warnings with gcc 4.6 2011-04-15 00:24:47 +01:00
Tim-Philipp Müller
6f045cb4d8 asfmux: fix unused-but-set-variable warnings with gcc 4.6 2011-04-15 00:24:47 +01:00
Tim-Philipp Müller
276a1390c5 bayer: fix unused-but-set-variable warnings with gcc 4.6 2011-04-15 00:24:47 +01:00
Andoni Morales Alastruey
9334e819e5 hlsdemux: m3u8: return duration in nanoseconds 2011-04-14 15:36:06 +01:00
Andoni Morales Alastruey
9454003249 hlsdemux: fix handling of end of playlist
Don't send the EOS event until we reached the end of the playlist
and the queue is really empty.
2011-04-14 15:36:06 +01:00
Andoni Morales Alastruey
c890a212b6 hlsdemux: fix example pipeline 2011-04-14 15:36:01 +01:00
Andoni Morales Alastruey
3b19ade905 hlsdemux: ignore seek events until it's implemented 2011-04-14 11:47:50 +01:00
Andoni Morales Alastruey
b49461df48 hlsdemux: dispose the fetcher from the same thread it's created 2011-04-14 11:41:56 +01:00
Tim-Philipp Müller
3cadddba83 fpsdisplaysink:: fix compilation with older GLib
g_object_notify_by_pspec() is new in GLib 2.26, but we only require 2.22.
2011-04-14 11:28:58 +01:00
Olivier Crête
747f32a857 dtmf: Move duplicate #defines into a common include
Centralize duplicated constants so they have the same value.
Also standardise minimum tone duration to 250ms and minimum inter-tone
interval to 100ms.
2011-04-13 21:59:42 -04:00
Lasse Laukkanen
26553bfb1d camerabin: Preserve unused imagebin or videobin on NULL
If video or image mode is never selected then respective bin is in NULL state.
Preserve this state when resetting camerabin from PAUSED to READY.
2011-04-13 22:34:35 -03:00
Stefan Kost
cb0d2e9da0 pnm: add LIBTOOLFLAGS = --tag=disable-static 2011-04-13 22:07:58 +03:00
Tim-Philipp Müller
6b4e797513 qtmux: remove qtmux plugin, it has moved to -good
https://bugzilla.gnome.org/show_bug.cgi?id=636699
2011-04-13 18:24:37 +01:00
Olivier Crête
3a0c6c6d60 dtmf: Remove leftover MAEMO_BROKEN defines
Remove defines to work around bugs in old Maemo releases
2011-04-12 16:42:48 -04:00
Lasse Laukkanen
ada43fe3bd camerabin: Fix corner case for preview posting
Fix corner case where video preview image is not posted if stopping
video capture immediately after capture start.
2011-04-11 14:56:35 -03:00
Stefan Kost
b84dd0a766 jpegparse: subtract id-str size from the remaining read
Fixes a regression from the patches in bug #626618.
2011-04-11 18:31:45 +03:00
Stefan Kost
3a4a0c492e jpeg: set tags to NULL at init time and after freeing them 2011-04-11 18:30:17 +03:00
Stefan Kost
b67454b44e jpeg: comment and logging changes 2011-04-11 18:29:28 +03:00
Víctor Manuel Jáquez Leal
824364d152 jpegparse: add gst_jpeg_parse_remove_marker()
This function will remove the whole marker from the buffer.

Also we set it as the default behavior for marker JPG{0-13}? in order to avoid
a useless #if

https://bugzilla.gnome.org/show_bug.cgi?id=626618
2011-04-11 10:38:09 +03:00
Víctor Manuel Jáquez Leal
0e27f49dd4 jpegparse: refactor COM parsing
add gst_jpeg_parse_com () and get_utf8_from_data () to extract and
validate comment format

https://bugzilla.gnome.org/show_bug.cgi?id=626618
2011-04-11 10:38:05 +03:00
Víctor Manuel Jáquez Leal
c9b2c4abfe jpegparse: refactor APP1 parsing
add gst_jpeg_parse_app1 () and extract_and_queue_tags ()

https://bugzilla.gnome.org/show_bug.cgi?id=626618
2011-04-11 10:38:01 +03:00
Víctor Manuel Jáquez Leal
81991e3323 jpegparse: log id when skipping an unhandled APP marker
https://bugzilla.gnome.org/show_bug.cgi?id=626618
2011-04-11 10:37:57 +03:00
Víctor Manuel Jáquez Leal
a1f77eda32 jpegparse: skip all APP markers, excepting APP1
https://bugzilla.gnome.org/show_bug.cgi?id=626618
2011-04-11 10:37:52 +03:00
Víctor Manuel Jáquez Leal
51e57d439e jpegparse: add get_tag_list ()
https://bugzilla.gnome.org/show_bug.cgi?id=626618
2011-04-11 10:37:49 +03: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
Sebastian Dröge
eaf01f9709 fpsdisplaysink: Add last-message property and never print anything to stdout
Instead everything will be put into the last-message property and
gst-launch -v will print all changes of the property. This makes
the behaviour of fpsdisplay consistent with the fakesink/identity/etc
behaviour.
2011-04-09 10:07:49 +02:00
Sebastian Dröge
291a8048d1 fpsdisplaysink: Rename verbose property to silent for consistency 2011-04-09 10:05:05 +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
David Schleef
38c6f6366c scenechange: new scene change detection element 2011-04-08 15:51:04 -07:00
Tim-Philipp Müller
9bfac61f97 Remove audioparsers plugin, it has been moved to -good 2011-04-08 19:34:55 +01:00
Sebastian Dröge
a7cbd201b1 fpsdisplay: Use PROP_ instead of ARG_ for the property enums 2011-04-08 14:08:10 +02:00
Philippe Normand
26bc5537ce fpsdisplay: Add verbose property
When this property is set to TRUE the element will display statistics
on stdout.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=647030
2011-04-08 14:06:10 +02:00
Mark Nauwelaerts
c77e11fd4a mpegaudioparse: relax sync match a bit when draining
... to at least allow initial caps change (but no further caps jitter).
2011-04-07 18:33:33 +02:00
Robert Swain
4cd15193bb fieldanalysis: Use RFF flag to indicate buffers to drop downstream
Use of the GAP flag is not really correct here and makes it difficult to
handle real GAP buffers in deinterlace. The RFF flag is unused and can
be reused with similar semantics - the buffers marked with RFF that are
in a telecine state contain only unneeded repeated fields and so can be
dropped.
2011-04-07 10:21:39 +02:00
Tim-Philipp Müller
9c5863ad35 camerabin: don't rely on the application running the default GLib main loop
Don't use g_idle_add() and friends to schedule things we can't do from the
streaming thread in another thread. The app may not be running the default
GLib main loop. Instead, just spawn a thread.

Also, we need to care for when acessing a pad variable, as another thread
might have taken camerabin to NULL while this gst_camerabin_imgbin_finished
didn't run.

https://bugzilla.gnome.org/show_bug.cgi?id=615655
2011-04-05 14:40:35 -03:00
Mark Nauwelaerts
1e22e29cd3 mpegaudioparse: require tighter sync match when draining 2011-04-04 20:56:32 +02:00
Mark Nauwelaerts
888dac9887 qtmux: more helpful debug error message when no needed duration on input buffers
Fixes #646256.
2011-04-04 12:29:57 +02:00
Andoni Morales Alastruey
650418b9d8 hlsdemux: validate properly utf-8 playlist 2011-04-04 09:14:05 +02:00
Andoni Morales Alastruey
650142f054 hlsdemux: m3u8: clear the list of media files before updating the playlist 2011-04-04 09:13:41 +02:00
Andoni Morales Alastruey
e13ef203e3 hlsdemux: use and adapter instead of costful buffer joins 2011-04-04 09:13:26 +02:00
David Schleef
a8f047f689 Remove setting of plugindir from Makefiles 2011-04-01 13:54:02 -07:00
Thiago Santos
12f539c6bb hlsdemux: Another windows build fix
Replace %lld with %u as GST_BUFFER_SIZE is a guint
2011-04-01 16:52:48 -03:00
Thiago Santos
944d54e359 hls: Fix compilation on windows
Use string literal on printing format
2011-04-01 16:12:50 -03:00
Thiago Santos
6a4be5a2ba camerabin: Processing should stop on READY
The videobin and imagebin from camerabin have their states
locked and aren't put to READY when all the rest of camerabin
is set to it.

This might cause one of them to be still processing and post
an EOS after camerabin isn't expecting it anymore, this causes
an assertion as the processing counter would already be 0 and
would be decremented.
2011-04-01 13:42:33 -03:00
Sebastian Dröge
7858d65b4a segmentclip: Keep a reference of events until the event is parsed 2011-04-01 15:02:36 +02:00
Sebastian Dröge
b2c90da38e mpegaudioparse: Parse encoder delay and encoder padding from the LAME header if present 2011-04-01 15:02:36 +02:00
Tim-Philipp Müller
6edcf4fbe6 hlsdemux: update for media type was renaming from playlist/m3u8 to application/x-hls 2011-03-30 15:53:12 +01:00
Sebastian Dröge
e24a43c61b hlsdemux: Some minor cleanup
Use GST_DEBUG_FUNCPTR and G_PARAM_STATIC_STRINGS
2011-03-30 10:11:24 +02:00
Andoni Morales Alastruey
d5e4f8caf8 hlsdemux: fix indentation and docs sections 2011-03-30 09:19:24 +02:00
Andoni Morales Alastruey
91196418ea hlsdemux: don't leek the query 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
77c0971b62 hlsdemux: check if the task's cond was signaled because it's the end of playlist 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
42470cd313 hlsdemux: post a message in the bus when the playlist changes 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
daeed217e5 hlsdemux: don't update the playlist if we stay in the same bitrate 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
cd0aeb2403 hlsdemux: Add support for URI queries 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
5daae4bb18 hlsdemux: Add support for duration queries 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
18cd90e73f hlsdemux: m3u8: protect public methods properly 2011-03-30 09:19:23 +02:00
Andoni Morales Alastruey
09b2b31422 hlsdemux: m3u8: add support to get the duration from a playlist 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
c599e4a9a1 hlsdemux: don't print an error if the download was cancelled 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
4602b42dee hlsdemux: make sure the fetcher state change is complete before continuing 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
c580ff26a4 hlsdemux: don't leak the first buffer 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
ec1d03e1b4 hlsdemux: clean up code a little bit 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
1450233a21 hlsdemux: only check for the end of playlist when the queue is empty 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
b765260098 hlsdemux: make sure to stop fragments cache if something cancelled it 2011-03-30 09:19:22 +02:00
Andoni Morales Alastruey
fe883740c5 hlsdemux: reuse the code in reset() to free resources in dispose() 2011-03-30 09:19:21 +02:00
Andoni Morales Alastruey
5a40a62ff4 hlsdemux: use a typefinder to set the caps in the source pad 2011-03-30 09:19:21 +02:00
Andoni Morales Alastruey
3fa4b22149 hlsdemux: add more comments and document better all the threads involved 2011-03-30 09:19:21 +02:00
Andoni Morales Alastruey
8a683fc035 hlsdemux: handle 404 from the source element 2011-03-30 09:19:21 +02:00
Andoni Morales Alastruey
cbba7c8bc5 hlsdemux: stop the fetcher in the PAUSED_TO_READY transition, not when disposing() 2011-03-30 09:19:21 +02:00
Andoni Morales Alastruey
b9a0b4ddd4 hlsdemux: make sure we don't stop the fetcher twice from different threads 2011-03-30 09:19:21 +02:00
Andoni Morales Alastruey
6a0aec0639 hlsdemux: query the uri upstream before updating the playlist 2011-03-30 09:19:20 +02:00
Andoni Morales Alastruey
9aff2de625 hlsdemux: Add HTTP live streaming demuxer element
Based on previous work by Marc-André Lureau
2011-03-30 09:19:20 +02:00
Thiago Santos
dfe64965d7 jifmux: Add GstTagXmpWriter support
Adds GstTagXmpWriter interface to jifmux element
2011-03-29 17:55:58 -03:00
Thiago Santos
3061e8d7c8 qtmux: Adding GstTagXmpWriter interface
Adds GstTagXmpWriter interface support to qtmux
2011-03-29 17:55:58 -03:00
David Schleef
4a8ba50cb2 mpegtsmux: Fix 64-bit printf format problem 2011-03-27 13:57:05 -07:00
Tim-Philipp Müller
c10ef4df20 dccpserversink: fix list iteration code
Fix suboptimal list iteration code, and add some FIXMEs.
2011-03-27 17:22:52 +01:00
Tim-Philipp Müller
9bd9b8bf72 patchdetect: link against libm
Link against libm. Include math-compat.h header. Don't link against
orc, since it's not actually used.

https://bugzilla.gnome.org/show_bug.cgi?id=645711
2011-03-26 12:45:24 +00:00
Jan Schmidt
5111540ceb Use correct clock when checking whether to write a new PCR
The PCR clocks against the 27MHz SCR clock, so check it correctly
to avoid writing the PCR too often.

Partially fixes: #611046
2011-03-26 16:18:22 +11:00
Jan Schmidt
9a26173a57 Rewrite M2TS packet output
Make sure we only write the bottom 30 bits of the PCR to the m2ts header.
Don't use floating point computation for it, and remove weird bit fiddling
that messes up the PCR in a way I can't find any
justification/documentation for.

Don't accidentally lose PCR packets from the output.

Fix the description for the m2ts-mode property so it's clear it's a flag,
and which setting does what.

Fixes: #611061 #644429
Partially fixes: #645006
2011-03-26 16:18:22 +11:00
Jan Schmidt
2721e943e2 Fix a FIXME, and some whitespace/code style bits.
Also, add a new copyright notice for me.
2011-03-26 16:18:22 +11:00