Mark Nauwelaerts
59627a3e5d
mpegtsmux: tweak buffer handling
...
... for clarity and to avoid mixing _peek/_pop
2012-06-06 10:31:29 +02:00
Mark Nauwelaerts
30c782e062
mpegtsmux: misc code cleanups and refactoring
2012-06-06 10:31:24 +02:00
Mark Nauwelaerts
d97d49d237
mpegtsmux: avoid separate allocation for list of programs
2012-06-06 10:31:19 +02:00
Mark Nauwelaerts
281f48f66e
mpegtsmux: rearrange define's
2012-06-06 10:31:14 +02:00
Mark Nauwelaerts
4d94e0fcf7
mpegtsmux: removed hacked event handling
...
Conflicts:
gst/mpegtsmux/mpegtsmux.c
Reverted back to 0.10 state as it wasn't really ported
yet anyway.
2012-06-06 10:30:55 +02:00
Edward Hervey
e2576f0e86
mpegtsdemux: Also parse TOT (Time Offset Section)
...
It's the same as TDT, except with descriptors at the end
2012-06-05 10:54:27 +02:00
Edward Hervey
d9121c38ea
mpegtsdemux: FIXME/Comment about issues/errors
2012-06-05 10:54:26 +02:00
Edward Hervey
9e117b83fc
mpegtspacketizer: Fix leak
2012-06-05 10:54:26 +02:00
Edward Hervey
5f7ecaa0f1
mpegtspacketizer: Reduce usage of GstAdapter
...
Peek as much as possible in one go. Ideally we should remove usage of
adapter altogether, but for the time being it provides a big enough
speedup (around 2 times faster per packet processed).
2012-06-05 10:54:26 +02:00
Edward Hervey
f0867c7247
mpegtspacketizer: Avoid alloc/free where possible
...
Helps for streams with a lot of sections, like EIT
2012-06-05 10:54:26 +02:00
Edward Hervey
aab8c46f10
mpegtbase: Add more sections that don't have a CRC
2012-06-05 10:54:26 +02:00
Edward Hervey
25f6c78d79
mpegdefs: Add list of known table_id
...
Along with the specifications from which they come. Avoids having
to search for which spec a table_id belongs to
2012-06-05 10:54:26 +02:00
Edward Hervey
0e86e68c6a
mpegtspacketizer: Clarify debug statements
...
Use hex values in more cases (since that's how PID/table_id/... are
represented in the various specs).
2012-06-05 10:54:26 +02:00
Edward Hervey
63f8b970af
mpegtsbase/packetizer: Add CAT section handling
...
Allows reporting the global EMM
2012-06-05 10:54:25 +02:00
Edward Hervey
dfe6863387
mpegtbase: Add more debug in PSI handling
...
Allows us to identify which SI we don't handle
2012-06-05 10:47:49 +02:00
Edward Hervey
d47d1713d9
mpegtbase: Add more default known PSI table_id
2012-06-05 10:47:49 +02:00
Edward Hervey
9924c178c8
mpegtbase: Refactor PSI detection
2012-06-05 10:47:49 +02:00
Sebastian Dröge
7c6093357b
videoparsers: Fix GstBaseParse::get_sink_caps() implementations
...
They should take the filter caps into account and always return
the template caps appended to the actual caps. Otherwise the
parsers stop to accept unparsed streams where upstream does not
know about width, height, etc.
Fixes bug #677401 .
2012-06-05 09:30:00 +02:00
Edward Hervey
9f7e70f754
mpegtbase: ECM/CA sections don't have a CRC
...
So don't check for it :)
Also add a bit more info in the warning message to speed up detecting
whether it's a false-positive or not.
2012-06-01 16:42:41 +02:00
Edward Hervey
8b2f229553
mpegdesc: Add more comments/info
...
Namely where they belong to
2012-05-26 15:54:51 +02:00
Edward Hervey
8aa64c5d7d
tsdemux: Make sure we have a language code before using it
2012-05-26 15:54:48 +02:00
Edward Hervey
7784c0d350
mpegtsbase: Check before getting descriptors from structure
...
Avoids spurious warnings. Not having those descriptors is nothing
fatal, so check their presence before trying to get them.
2012-05-26 15:54:44 +02:00
Edward Hervey
b6732a27d3
pesparse: Be a bit more permissive with PTS/DTS parsing
...
According to the specifications a PTS_DTS_flags value of 0x01 is forbidden.
... but there are some rare files out there that do that.
Instead of erroring out, let's warn, carry on parsing accordingly.
If the packet is really corrupted there are enough checks afterward to
detect that.
2012-05-26 15:54:41 +02:00
Edward Hervey
12f24874aa
mpegtsbase: Fix bit operation
...
"a % 8" corresponds to "a & 0x7" (and not 0xf).
spotted by Julian Scheel
2012-05-25 14:16:59 +02:00
Edward Hervey
a633347ed1
mpegtsbase: Speed up _is_psi()
...
By making it inline and simplifying the bit macros
2012-05-23 09:37:49 +02:00
Mark Nauwelaerts
c5664dcda7
mpegvideoparse: avoid scanning for start codes twice
...
... since a previous terminating start code serves as subsequent start code.
2012-05-22 21:34:10 +02:00
Julian Scheel
a0a184931a
tsdemux: Add language code to taglist.
...
Read the language codes for tracks from the mpegts descriptors and add it into
the pads taglist.
https://bugzilla.gnome.org/show_bug.cgi?id=673896
2012-05-22 18:13:30 +02:00
Edward Hervey
6bf54ff850
tsdemux: Adapt to new packetizer API
...
We no longer use GstBufferList and instead copy the incoming data
into newly allocated memory.
This makes tsdemux behaviour 3 to 4 times faster.
2012-05-22 17:43:38 +02:00
Edward Hervey
7fdf1cb0c8
tsparse: Adapt to new packetizer API
2012-05-22 17:43:38 +02:00
Edward Hervey
3c73d29162
mpegtsbase: Adapt to new packetizer behaviour
2012-05-22 17:43:38 +02:00
Edward Hervey
c6035d403c
mpegtspacketizer: Avoid usage of GstBuffer internally
...
The overhead of creating/using 188 byte GstBuffer from GstAdapter
is too expensive.
We now peek the next packet, and provide a data/size which is only
valid until the packetizerpacket is cleared.
In addition, cleanup all the internal code to deal with that new
behaviour and remove double-checks which are no longer needed.
The section_length is now the corrected section_length (i.e. with
the additional 3 bytes).
Avoid using gst_adapter_prev_timestamp and instead track
the timestamp ourself.
2012-05-22 17:43:38 +02:00
Edward Hervey
6d01f5f1b3
mpegtspacketizer: Detect PCR wraparound in skew code
...
If the received PCR is going backwards (by a safe margin), include
that wraparound for further calculation.
https://bugzilla.gnome.org/show_bug.cgi?id=674536
2012-05-22 16:51:25 +02:00
Mark Nauwelaerts
09209045b6
videoparsers: avoid repeated caps setting
2012-05-22 14:49:18 +02:00
Mark Nauwelaerts
28f3858b94
mpegvideoparse: tweak codec parser API and adjust parser element
...
... to allow for more efficient parsing and (more) consistent parsing API
among various codec parsers.
Fixes #672701 .
Conflicts:
gst/videoparsers/gstmpegvideoparse.c
2012-05-22 14:09:47 +02:00
Sebastian Dröge
b5f5b8bf04
frei0r: Double properties are supposed in the range [0.0, 1.0]
...
Fixes bug #676137 .
2012-05-22 11:20:06 +02:00
Mark Nauwelaerts
1f0c18daf2
mpegvideoparse: unobfuscate frame parsing
...
... and add comments and debug statements.
Fixes #674202 .
Conflicts:
gst/videoparsers/gstmpegvideoparse.c
2012-05-21 20:31:27 +02:00
Mark Nauwelaerts
35a58df012
mpegvideoparse: Revert "fix crash"
...
This reverts commit 91210831ee672343a296f31357144359d5c2e768.
Such explicit reset should not be needed as it is arranged for by
the baseclass in unison with monitoring for a new frame by subclass.
As such it might wrongfully hide something else going on ...
See #674073 .
2012-05-21 20:25:01 +02:00
Tim-Philipp Müller
508b9ff51a
autoconvert: don't access GstElementFactory structure directly
2012-05-19 15:34:25 +01:00
Julian Scheel
5536bcf8b8
tsdemux: flush on pusi only for payload packets
...
Data should not be flushed out of the tsdemux because a payload unit start
indicator (pusi) is seen in a adaptation only ts packet. If the package contains no
payload a pusi does not indicate a new PES packet, but PSI information, etc.
This fixes playback of several TS files which contain ts packets without
payload but with pusi set to 1.
https://bugzilla.gnome.org/show_bug.cgi?id=676168
2012-05-18 11:12:20 +02:00
Edward Hervey
e75612c3fd
tsdemux: Don't queue data for streams that don't have a pad
...
This would result in an error further down, and it also avoids processing
for that data which we wouldn't be using anyway.
2012-05-18 11:11:37 +02:00
Edward Hervey
8a4fd8358d
tsdemux: Detect and handle scrambled packets
...
Users (tsdemux/mpegtsparse) can decide what to do with that
2012-05-18 11:11:31 +02:00
Edward Hervey
fa4b92e743
tsdemux: Emit no-more-pads when all pads are activated
...
Fixes #670921 again
2012-05-18 11:11:25 +02:00
Luis de Bethencourt
94f370c7d7
gaudieffects: add fallback code for orc
...
this includes an improved version of the burn filter, with a ~40% speed
improvement.
2012-05-17 11:15:22 +01:00
Luis de Bethencourt
e044e0fab4
gaudieffects: use CLAMP in solarize
...
No need to have a gate_int () function duplicating the already existing and
established CLAMP () function.
2012-05-17 10:54:31 +01:00
Luis de Bethencourt
9cb4f4e622
gaudieffects: use CLAMP in exclusion
...
No need to have a gate_int () function duplicating the already existing and
established CLAMP () function.
2012-05-17 10:54:31 +01:00
Luis de Bethencourt
4990dc2d1f
gaudieffects: use CLAMP in dodge
...
No need to have a gate_int () function duplicating the already existing and
established CLAMP () function.
2012-05-17 10:54:31 +01:00
Luis de Bethencourt
cb3d1794f8
gaudieffects: use CLAMP in chromium
...
No need to have a gate_int () function duplicating the already existing and
established CLAMP () function.
2012-05-17 10:54:31 +01:00
Mark Nauwelaerts
7f72b99426
h264parse: also consider nal_length_size when inserting codec data
...
See #676174 .
2012-05-17 11:47:19 +02:00
John Hein
6e78920416
y4m: link against the right libgstvideo
...
https://bugzilla.gnome.org/show_bug.cgi?id=676189
2012-05-16 21:50:48 +01:00
Luis de Bethencourt
5800315447
gaudieffects: example pipelines with videoconvert
2012-05-16 17:56:58 +01:00
Luis de Bethencourt
ad4ffc446f
gaudieffects: orc-ify burn filter
2012-05-16 17:56:58 +01:00
Stefan Sauer
5b39799cf0
hls: use gst api for timestamps instead of the (wrong) api from a too new glib
...
Conflicts:
gst/hls/gstfragment.c
2012-05-15 16:08:00 +02:00
Mark Nauwelaerts
74c73eba05
mpegtsmux: optimize output by aggregating packets
...
... rather than pushing each (small) packet in a separate buffer.
m2ts mode not yet optimized though.
2012-05-14 11:52:29 +02:00
Albert Astrals Cid
dda551e723
mpegts: support items in extended event descriptor
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=672478
2012-05-14 11:51:15 +02:00
Luis de Bethencourt
e9cba00c6a
gaudieffects: consistency in templates name
2012-05-10 21:37:59 +01:00
Thibault Saunier
52265cce1e
hlsdemux: Add a connection-speed property
...
Conflicts:
gst/hls/gsthlsdemux.c
2012-05-10 14:17:57 -04:00
Thibault Saunier
a8afa9755e
hls: Add a way to get best playlist for a specific bitrate in M3U8Client
...
Make use of it in hlsdemux
2012-05-10 14:08:11 -04:00
Youness Alaoui
594d983ff9
hlsdemux: Add failover protection.
...
Multiple streams with same bandwidth get retried
2012-05-10 14:07:54 -04:00
Youness Alaoui
705a52a1ac
hlsdemux: Calculate the real bitrate and switch to the correct variant
...
We now calculate the actual bitrate using the download speed/size and
then switch directly to the variant that matches our bandwidth the
most.
It will also be able to handle any use case where some of the
variants are not available, and would skip them and go to the next
possible variant.
Conflicts:
gst/hls/gsthlsdemux.c
2012-05-10 14:06:44 -04:00
Youness Alaoui
bfd7a52c5d
hlsdemux: Do not reset the sequence number in a live stream for a normal playlist update.
...
Only for stream switching
2012-05-10 14:00:49 -04:00
Thibault Saunier
f7553b6b0d
hlsdemux: If we update the playlist, make sure the sequence number is never more than 3 fragments before the end
2012-05-10 14:00:19 -04:00
Youness Alaoui
df958b4906
hlsdemux: In a live stream, do not start from 3 fragments before the end.
2012-05-10 13:59:46 -04:00
Youness Alaoui
3cc3e9ad1b
hlsdemux: No need to store position since it's the buffer's timestamp
...
This also will fix the issue of having the current position different
from the actual position of the first buffer in the queue in case
the caching caused a resync of the sequence number.
Conflicts:
gst/hls/gsthlsdemux.c
2012-05-10 13:38:57 -04:00
Youness Alaoui
87d10cf683
hlsdemux: Fallback to previous playlist when switching if the new playlist can't be fetched
2012-05-10 13:23:58 -04:00
Luis de Bethencourt
f805f9e079
gaudieffects: consistency fixes in gstgaussblur
2012-05-10 13:46:27 +01:00
Luis de Bethencourt
c7949405ca
gaudieffects: port gaussianblur to GstVideoFilter
2012-05-10 10:47:27 +01:00
Luis de Bethencourt
bc3afe0ac2
gaudieffects: port solarize to GstVideoFilter
2012-05-09 17:24:03 +01:00
Luis de Bethencourt
ee60c2cf98
gaudieffects: port exclusion to GstVideoFilter
2012-05-09 17:24:03 +01:00
Luis de Bethencourt
2e1aa96113
gaudieffects: port dodge to GstVideoFilter
2012-05-09 17:24:03 +01:00
Luis de Bethencourt
e9ec32fee7
gaudieffects: port dilate to GstVideoFilter
2012-05-09 17:24:03 +01:00
Luis de Bethencourt
2eba32aef3
gaudieffects: port burn to GstVideoFilter
2012-05-09 17:24:03 +01:00
Luis de Bethencourt
ebad8a4dbc
gaudieffects: port chromium to GstVideoFilter
2012-05-09 17:24:03 +01:00
Luis de Bethencourt
5a4b8d8937
gaudieffects: use GST_DEBUG_FUNCPTR in blur
2012-05-09 17:23:07 +01:00
Luis de Bethencourt
151b010bc9
gaudieffects: port gaussblur to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
f1220e95b5
gaudieffects: port solarize to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
9602a3513b
gaudieffects: port exclusion to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
e78f5817e5
gaudieffects: port dodge to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
1471e804d8
gaudieffects: port dilate to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
6b5d5c6f24
gaudieffects: add header to gaussblur
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
3db482093d
gaudieffects: port chromium to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
c123ac0735
gaudieffects: port burn to 0.11
2012-05-09 13:18:53 +01:00
Luis de Bethencourt
b2e3e417a5
controller: port to new controller location and api
2012-05-09 13:18:52 +01:00
Tim-Philipp Müller
9503daa56a
rfbsrc: call WSAStartup/Cleanup on win32
...
If we link against libwinsock2, we should probably call
Startup/Cleanup as well.
https://bugzilla.gnome.org/show_bug.cgi?id=675415
2012-05-07 23:59:58 +01:00
Marc-André Lureau
2f20ec7312
rfbsrc: fix librfb linking on win32
...
libtool: link: i686-w64-mingw32-gcc -shared .libs/libgstrfbsrc.dll.def
.libs/libgstrfbsrc_la-gstrfbsrc.o -Wl,--whole-archive ./.libs/librfb.a
-Wl,--no-whole-archive -L/usr/i686-w64-mingw32/sys-root/mingw/lib
-lgstbase-0.10 -lgstreamer-0.10 -lxml2 -lgobject-2.0 -lgthread-2.0
-lgmodule-2.0 -lglib-2.0 -lintl -mms-bitfields -mms-bitfields -O2 -o
.libs/libgstrfbsrc.dll -Wl,--enable-auto-image-base -Xlinker
--out-implib -Xlinker .libs/libgstrfbsrc.dll.a
Creating library file: .libs/libgstrfbsrc.dll.a
./.libs/librfb.a(librfb_la-rfbdecoder.o): In function
`rfb_decoder_read':
/home/elmarco/pkg/rhel/mingw-gstreamer-plugins-bad-free/gst-plugins-bad-0.10.23/build_win32/gst/librfb/../../../gst/librfb/rfbdecoder.c:164:
undefined reference to `_imp__recv@16'
./.libs/librfb.a(librfb_la-rfbdecoder.o): In function
`rfb_decoder_connect_tcp':
/home/elmarco/pkg/rhel/mingw-gstreamer-plugins-bad-free/gst-plugins-bad-0.10.23/build_win32/gst/librfb/../../../gst/librfb/rfbdecoder.c:112:
undefined reference to `_imp__socket@12'
/home/elmarco/pkg/rhel/mingw-gstreamer-plugins-bad-free/gst-plugins-bad-0.10.23/build_win32/gst/librfb/../../../gst/librfb/rfbdecoder.c:119:
undefined reference to `_imp__htons@4'
/home/elmarco/pkg/rhel/mingw-gstreamer-plugins-bad-free/gst-plugins-bad-0.10.23/build_win32/gst/librfb/../../../gst/librfb/rfbdecoder.c:123:
undefined reference to `_imp__inet_addr@4'
/home/elmarco/pkg/rhel/mingw-gstreamer-plugins-bad-free/gst-plugins-bad-0.10.23/build_win32/gst/librfb/../../../gst/librfb/rfbdecoder.c:125:
undefined reference to `_imp__connect@12'
It needs -lws2_32 which is already in $(WINSOCK2_LIBS)
https://bugzilla.gnome.org/show_bug.cgi?id=675415
2012-05-07 23:59:48 +01:00
Raimo Järvi
93ad7a4d06
Fix printf format compiler warnings on mingw-w64
...
https://bugzilla.gnome.org/show_bug.cgi?id=675520
2012-05-05 19:45:42 +01:00
Tim-Philipp Müller
b87f7345db
Add WINSOCK2_LIBS, remove WIN32_LIBS, fix rtmp build on Windows some more
...
One way of passing -lws2_32 to plugins should be enough..
2012-05-05 18:20:33 +01:00
Thiago Santos
133c9ef6be
camerabin: remove unnecessary code
2012-05-04 19:54:51 -03:00
Thiago Santos
acc48b7833
camerabin: improve image capture debug
2012-05-04 19:54:51 -03:00
Thiago Santos
95fd9cd277
camerabin: always force image-profile to have variable framerate
...
image-encodebin can't use videorate as it always store one buffer
to be able to do its timestamps/duration math. As image captures
only push one buffer at a time, this videorate behavior breaks
camerabin usage.
2012-05-04 19:50:52 -03:00
Youness Alaoui
d3303121c8
basecamerabin: Do not set the pad templates in the base class.
...
It is best to let the subclass define the pad templates, this would
allow the subclass to decide which caps the pads should have.
2012-05-04 19:50:52 -03:00
Thiago Santos
37bac4c1ed
wrappercamerabinsrc: avoid assertion by using null caps as any
...
NULL caps aren't valid caps, use a reference to 'any' caps
2012-05-02 16:21:01 -03:00
Thiago Santos
cc09cd1303
camerabin: Fix get/set_property for encoding profiles
...
Encoding profiles are objects, not boxed types
2012-05-02 15:25:32 -03:00
Thiago Santos
b5ba142b06
camerabin: remove custom renegotiate event
...
In 1.0 there is a core reconfigure event, camerabin doesn't need
its custom renegotiate event anymore
2012-05-01 15:31:11 -03:00
Thiago Santos
b030923eb5
camerabin: Use plain video encoding profile for images
...
Do not use jpeg as a container format for image captures, use
the plain video encoding format. It was used as a container in
0.10 to force the addition of tags to the image.
2012-05-01 15:20:50 -03:00
Thiago Santos
ad9822dea7
wrappercamerabinsrc: change output-selector negotiation mode
...
In 0.10 camerabin2 controlled the negotiation strictly and the output-selector
wouldn't forward setcaps calls. In 0.11 the renegotiation events are already in
core and we can allow the pipeline to handle it without much control from camerabin
part (I hope), so this patch makes output-selector forward caps negotiation events
to the active pad.
2012-05-01 15:20:49 -03:00
Thiago Santos
4a4f06abcf
wrappercamerabinsrc: removing renegotiate handlers
...
gstreamer 1.0 already has the reconfigure event, remove the
custom event handling from wrappercamerabinsrc
2012-05-01 15:20:49 -03:00
Thiago Santos
9cd0172581
wrappercamerabinsrc: prevent caps renegotiation loop
...
Only set the zoom capsfilter caps when the new caps are different,
preventing a caps renegotiation loop.
2012-05-01 15:20:49 -03:00
Thiago Santos
79d3cc533f
camerabin: Replacing ffmpegcolorspace with videoconvert
2012-05-01 15:10:51 -03:00
Wim Taymans
7394deef33
tsbase: unref bad packets too
...
Conflicts:
gst/mpegtsdemux/mpegtsbase.c
2012-05-01 11:50:39 +02:00
Wim Taymans
b56ab4b3cf
tsdemux: reset the state of the stream when flushing
...
We need to reset the stream on a flush or else old packets could be added to the
list and leak.
2012-05-01 11:47:52 +02:00