Commit graph

4258 commits

Author SHA1 Message Date
Tommi Myöhänen
9648d100b4 camerabin2: fix leak on error handling
Camerabin2 parses warning messages with gst_message_parse_warning(message,
&err, &debug) but doesn't free given GError and debug strings.
Documentation shows that the ownership of those fields is transferred
to caller (they are marked "[transfer full]" in the API docs).
2011-12-14 08:32:50 -03:00
Julien Isorce
f21ea162ad mpegtsparse: check offset when retrieving table_id on malformed packets
Fix bug #665988
2011-12-13 10:44:47 +01:00
Sebastian Dröge
0d40afa9f0 Revert "mpegtsparse: check offset when retrieving table_id on malformed packets"
This reverts commit e62978d045.
2011-12-13 10:44:42 +01:00
Julien Isorce
e62978d045 mpegtsparse: check offset when retrieving table_id on malformed packets 2011-12-12 15:05:16 +01:00
Vincent Penquerc'h
63110cab94 liveadder: fix buffer leak 2011-12-12 14:00:22 +00:00
Tim-Philipp Müller
ad6ea8fbe9 mpegpsmux: put stream headers into output caps
Basic version with only the system header and the program
stream map. An advanced version could include codec-specific
bits like SPS/PPS too. This is useful in connection with
e.g. multifilesink to make sure new files always start with
the stream headers.
2011-12-11 00:13:51 +00:00
Tim-Philipp Müller
eaeba16a56 mpegpsmux: add "aggregate-gops" property to aggregate GOPs into buffer lists
Useful in connection with multifilesink, for example, to make sure
the new file always starts with a keyframe.
2011-12-11 00:10:15 +00:00
Tim-Philipp Müller
c4cb38f394 mpegpsmux: remember primary video stream 2011-12-11 00:10:15 +00:00
Tim-Philipp Müller
1f45eb7950 mpegpsmux: remember whether an incoming buffer is a keyunit or not 2011-12-11 00:10:12 +00:00
Tim-Philipp Müller
7f8adea477 videoparsers: fix LIBS order in Makefile.am 2011-12-08 22:49:50 +00:00
Vincent Penquerc'h
09f0860a10 mpegtsdemux: only offset timestamps when live
This code is to sync to a live source when there is a delay
between start and when we receive the first buffer, so it does
not make sense in a non live case.

This fixes playback of streams where the input timestamps are
based off some arbitrary offset.

https://bugzilla.gnome.org/show_bug.cgi?id=663756
2011-12-08 12:46:20 +00:00
Sebastian Dröge
dcf04269e1 autoconvert: Remove the initial-identity property from autoconvert
Initially creating an identity element to forward serialized
events downstream before any caps are known is broken behaviour.

Serialized events should only be forwarded downstream if the
caps are already known, otherwise autopluggers and other elements
using pad-blocks will fail.

This behaviour also doesn't work anymore after basetransform
was fixed to queue serialized events until the caps are known
as a result of fixing bug #659571.

See bug #599469, #665205.
2011-12-07 13:50:19 +01:00
Thibault Saunier
6b3a314d36 videoparsers: Do not not skip startcode when needed
Fix: https://bugzilla.gnome.org/show_bug.cgi?id=665631
2011-12-06 17:05:52 -03:00
Alessandro Decina
a1305b949c h264parse: handle force key unit events
Send SPS/PPS on force key unit events. Useful for example when serving HLS
without transcoding.
2011-12-06 13:16:29 +01:00
Edward Hervey
1c50dab50c h264parse: Use faster parsing variant when input is packetized
Reduces latency and cpu usage

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

Fixes #665418.
2011-12-05 13:11:04 +01:00
Sebastian Dröge
2cdb069b9f autoconvert: Implement iterate_internal_links function on the sinkpad and srcpad 2011-12-05 08:57:29 +01:00
Alessandro Decina
4474db4e71 h264parse: let upstream PAR override in-stream PAR 2011-12-01 09:07:18 +01:00
Alessandro Decina
21b063a78c h264parse: rework PAR parsing
And in the process refactor _update_src_caps a bit
2011-12-01 09:06:56 +01:00
Luciana Fujii Pontello
6d85d4882a h264parse: respect pixel-aspect-ratio
Parse pixel-aspect-ratio in vui information.
2011-12-01 08:23:22 +01:00
Stefan Sauer
467fd98e5b spacespace: whitespace cleanups 2011-11-30 22:12:27 +01:00
Stefan Sauer
4a40bd5936 wavescape: also add colormodes like in spacescope 2011-11-30 22:11:40 +01:00
Stefan Sauer
00ac111477 audiovisualizer: update README 2011-11-30 15:13:04 +01:00
Stefan Sauer
11590ac0b6 spacescope: add color-modes
In colormode we split the signal in low,mid,high frequency parts and draw them
separately into red, gree, blue color channels.
2011-11-30 15:11:50 +01:00
Stefan Sauer
52d185f4ae audiovisualizers: streamline the line_aa code
Have a reusable dot_aa code and reuse in the line drawing.
2011-11-30 15:11:50 +01:00
Tim-Philipp Müller
65e8564343 mpegtsmux: fix build in uninstalled setup
Add -base libs includes to CFLAGS, fix order of LIBS.
2011-11-30 10:35:12 +00:00
Alessandro Decina
777c1f034f mpegtsmux: add support for force key unit events
Handle force key unit events outputting PAT and PMT when all_headers=TRUE
2011-11-30 08:56:48 +01:00
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
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
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
Stefan Sauer
c61f85da82 audiovisualizers: add aa-line code and user for wave/space-scope 2011-11-24 19:04:17 +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