Commit graph

6186 commits

Author SHA1 Message Date
Robert Swain
480b894642 deinterlace: Remove incorrect logic
I don't understand why these lines were added, they don't make sense to
me now and both David and I agree that removing them moves closer to
related logic being correct, therefore, they're being removed.

I've tested a few progressive, interlaced and telecine clips and they
all behave properly timestamp-wise and visually after these changes.
2012-09-19 00:39:01 +02:00
Robert Swain
a35a931555 deinterlace: Fix field duration
The frame rate fraction is correctly adjusted in the cases preceding the
field duration calculation and so the factor of 2 is incorrect.
2012-09-19 00:17:49 +02:00
Michael Smith
63716151ef videobox: Fix U/V strides for a number of cases. 2012-09-18 10:34:03 -07:00
Mark Nauwelaerts
eda9c8b3cf videomixer: init videoinfo
... to prevent random bogus caps fields.
2012-09-18 12:15:17 +02:00
Mark Nauwelaerts
8c28a60eee videomixer: chain up to collectpads query function 2012-09-18 12:15:17 +02:00
Nicolas Dufresne
76da367ecd videomixer: Don't let GstCollectPad shadow custom sink pad query func
In the current implementation, the custom pad query function is not called.
This patch, set that query function on the GstCollectPads to avoid this
shadowing.

See https://bugzilla.gnome.org/show_bug.cgi?id=684237
2012-09-18 12:14:43 +02:00
Mark Nauwelaerts
3eee42fdfc use gst_element_factory_get_metadata to replace obsolete API 2012-09-15 19:06:06 +02:00
Wim Taymans
829c80ce6c fix more caps 2012-09-14 13:30:37 +02:00
Jan Schmidt
a27deda053 deinterlace: Don't treat every custom-downstream event as EOS
Don't fall through to the EOS handling after receiving a
custom-downstream event.
2012-09-12 12:23:08 -07:00
Stefan Sauer
f874922e1c collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:05:44 +02:00
Mark Nauwelaerts
d6ca569c29 udp: add include for IPPROTO_* 2012-09-12 17:14:46 +02:00
Mark Nauwelaerts
58c96df0ae udp: properly match braces and cpp directives
Fixes compilation where IPV6_TCLASS not defined.
2012-09-12 16:39:08 +02:00
Edward Hervey
8498551692 shapewipe: Use default query handler where needed
And clean up get_caps code while I'm at it
2012-09-12 14:42:07 +02:00
Wim Taymans
1c64a91a50 deinterlace: improve framerate transform
Handle G_MAXINT in the framerates better. If we cannot double or divide the
framerate, clamp to the smallest/largest possible value we can express instead
of failing.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683861
2012-09-12 13:28:07 +02:00
Wim Taymans
6d9f9bf11a deinterlace: small cleanup 2012-09-12 13:17:54 +02:00
Youness Alaoui
c3d619be67 videomixer2: Adding nv12 and nv21 support
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683841
2012-09-12 10:46:22 +02:00
Michael Smith
4f015c594c qtdemux: add support for prores
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683839
2012-09-12 10:18:53 +02:00
Mark Nauwelaerts
f12ef67f56 ext, gst: only activate in pull mode if upstream is seekable 2012-09-11 17:44:51 +02:00
Wim Taymans
a374217786 qtdemux: don't reset segment
Don't reset the segment because we need the values for accumulation. the segment
is reset at start and after a flushing seek. Fixes some problems with files with
quicktime segments.
2012-09-11 11:59:54 +02:00
Mark Nauwelaerts
8d93246b93 gst: adjust comment style 2012-09-10 14:31:02 +02:00
Mark Nauwelaerts
ca36de1e8f avidemux: remove defunct commented code 2012-09-10 14:30:42 +02:00
Tim-Philipp Müller
6dc7b4c3c7 video/x-3ivx and video/x-xvid -> video/mpeg,mpegversion=4
If it ever turns out that we really must use thoe specific
fourccs and not the generic one, we can still add a flavor
field to the caps later.
2012-09-10 00:43:24 +01:00
Daniela
03fbd7ec6e rtspsrc: avoid leak
When setup fails, make sure to cleanup afterwards.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=673509
2012-09-07 16:33:18 +02:00
Mark Nauwelaerts
f24b58d19c rtpamrdepay: unmap rtp buffer
... thereby plugging a memleak.
2012-09-07 15:25:53 +02:00
Mark Nauwelaerts
fa90dfc4df rtph264pay: avoid crashing on NULL access in debug message 2012-09-07 15:25:52 +02:00
Mark Nauwelaerts
8f4bfeb698 rtph263ppay: plug caps leak 2012-09-07 15:25:52 +02:00
Wim Taymans
ecaa2624d3 deinterlace: remove redundant _set_allocation call 2012-09-06 17:09:20 +02:00
Mark Nauwelaerts
1ce09d7ef9 deinterlace: plug some leaks 2012-09-06 17:05:49 +02:00
Wim Taymans
510482b01a deinterlace: reuse core function for GCD 2012-09-06 16:52:18 +02:00
Mark Nauwelaerts
9d4579b38a deinterlace: support filter in getcaps 2012-09-06 16:31:17 +02:00
Mark Nauwelaerts
a4458f5f74 deinterlace: do not leak getcaps result 2012-09-06 16:31:17 +02:00
Wim Taymans
45e5ec29ac deinterlace: add support for bufferpool
Add bufferpool support to avoid a memcpy in the videosink when actively
interlacing.
Remove some commented obsolete code.
2012-09-06 16:25:05 +02:00
Wim Taymans
f59fb16f58 deinterlace: proxy allocation query in passthrough
We can let the allocation query pass when we are operating in passthrough mode.
2012-09-06 13:38:52 +02:00
Wim Taymans
4efdbc97a5 deinterlace: use default event functions
instead of blindly forwarding unknown events.
2012-09-06 13:23:46 +02:00
Wim Taymans
a557282aaa deinterlace: small cleanups 2012-09-06 13:23:30 +02:00
Wim Taymans
f1ef3b4983 deinterlace: call default query handlers
Call the default query handler instead of forwarding the query blindly. Fixes
issues of strides because of proxying the allocation query wrongly.
2012-09-06 12:56:30 +02:00
Wim Taymans
6693a22875 videobalance: avoid deadlock
_update_properties takes the object lock and should not be called when the
object lock is already taken.
2012-09-04 12:35:53 +02:00
Tim-Philipp Müller
aeba106878 matroskamux: extract interlaced-ness of video track from interlace-mode field
instead of the old boolean "interlaced" field.
2012-09-03 12:46:03 +01:00
Tim-Philipp Müller
9bf90f47cf video/x-xvid -> video/mpeg,mpegversion=4 2012-09-03 02:51:24 +01:00
Tim-Philipp Müller
fb0f3c17f5 text/plain + text/x-pango-markup -> text/x-raw 2012-09-02 02:50:50 +01:00
Tim-Philipp Müller
b27ac94af2 gst_message_new_duration -> gst_message_new_duration_changed 2012-09-02 01:31:53 +01:00
Wim Taymans
5b394385b9 session: also stop probatation on existing sources
Receiving an RTCP packet should also stop probation on sources we have seen
before.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683065
2012-08-30 22:07:24 +02:00
Aleix Conchillo Flaque
4a200b670f rtp: make rtp packet probation configurable (bug #682512) 2012-08-30 21:49:57 +02:00
Mark Nauwelaerts
a2475a40a5 flacparse: fixup 0.11 port of suspect frame checking
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682959
2012-08-30 11:30:01 +02:00
Mark Nauwelaerts
e1881d1e44 avidemux: avoid invalid H264 bytestream codec_data
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681369
2012-08-28 19:01:11 +02:00
Mark Nauwelaerts
e523b42d41 qtdemux: port segment event creation to 0.11 2012-08-28 19:01:11 +02:00
Mark Nauwelaerts
748304ced7 qtdemux: release extra event ref when replacing pending newsegment event 2012-08-28 16:28:29 +02:00
David Corvoysier
d0eed20428 isomp4: add DASH tfdt box support
MPEG DASH has defined a set of new boxes to specify duration, indexes and
offsets of ISOBMFF fragments.

The Track Fragment Base Media Decode Time (tfdt) Box can in particular be
included inside a traf box to specify the absolute decode time, measured on the
media timeline, of the first sample in decode order in the track fragment.

This information can be used by the isomp4 demux to find out the current position of
an MP4 fragment in the timeline.

This patch adds code to isomp4 to:
- parse the tfdt box
- adjust the time/position member of the new segment sent when playback starts

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677535
2012-08-28 16:28:27 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
e4cb67fad8 docs: gst-launch-0.11 -> gst-launch-1.0 2012-08-27 21:20:29 +01:00
Tim-Philipp Müller
045c4b6ec8 deinterlace: the field in caps is "interlace-mode" not "interlace-method"
Fix deinterlace unit test. Need to set right field on output caps.
Also remove right field (not old 0.10 "interlaced" boolean field)
from caps in unit test before comparing old and new.
2012-08-27 21:20:29 +01:00
Michael Rubinstein
6ea5d31456 videomixer: fix endianness check on systems where non-glib endianness defines are not set
On Windows LITTLE_ENDIAN without the G_ in was not defined,  so the
test comes out wrong.
2012-08-24 19:45:11 +01:00
Wim Taymans
916e4c86fa udpsink: don't crash on NULL error
Check if there is an error before retrieving its message.

See https://bugzilla.gnome.org/show_bug.cgi?id=682481
2012-08-22 17:27:27 +02:00
Aleix Conchillo Flaque
8d864dbbfc rtspsrc: make jitterbuffer drop-on-latency available (fix #682055)
Conflicts:

	gst/rtsp/gstrtspsrc.h
2012-08-22 10:39:19 +02:00
Tim-Philipp Müller
bce47066ca video/x-dvd-subpicture -> subpicture/x-dvd 2012-08-20 23:30:38 +01:00
Tim-Philipp Müller
6ee9a7d228 multifilesrc: fix example pipeline in docs 2012-08-17 20:52:42 +01:00
Stefan Sauer
1f255a585b equalizer: enable presets for the n-band equalizer
Add a test for saving and restoring the preset.
2012-08-17 15:01:40 +02:00
Tim-Philipp Müller
0d148d9c6f deinterlace: fix not-negotiated errors on variable or missing framerate in input caps
Remove some bogus code I added during porting that would error out
on missing or variable framerates in input caps. Handle this like
we do in 0.10

Fixes test_mode_disabled_passthrough unit test check.
2012-08-14 01:20:19 +01:00
Sjoerd Simons
b19b914d3a law: Filter layout caps field
The layout caps field shouldn't be passed through to the sink pad
of {mu,a}lawdec.

https://bugzilla.gnome.org/show_bug.cgi?id=681677
2012-08-13 08:52:58 +02:00
Olivier Crête
264bcf7d6f rtph264pay: Make it actually work after cleanups 2012-08-08 19:49:05 -07:00
Sebastian Dröge
6f74b2afb7 gst: Set alignment at the correct place of GstAllocationParams 2012-08-08 17:41:31 +02:00
Tim-Philipp Müller
0e6b66a2a0 gst: update disted orc files 2012-08-08 15:10:37 +01:00
Tim-Philipp Müller
787c314ec3 Silence some 'variable may be used uninitialized' compiler warnings
When compiling with -DG_DISABLE_ASSERT
2012-08-08 11:31:59 +01:00
Tim-Philipp Müller
4de8bd004c No code with side-effects inside g_assert() please 2012-08-08 11:07:55 +01:00
Olivier Crête
b4ff570532 multiudpsink: Return FLUSHING instead of ERROR on unlock
If the base class asks multiudpsink to unlock, then it should return
FLUSHING, not ERROR
2012-08-07 11:31:32 -07:00
Mark Nauwelaerts
2d179ebf90 flacparse: generate empty vorbiscomment for complete streamheaders if needed
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681335
2012-08-07 12:24:42 +02:00
Olivier Crête
2e21ace12c rtpssrcdemux: Block pad while it is announced.
Block the RTP pad and associated RTCP pads while they are being
announced. This it to prevent a race where one is announced and
before the callback has connected it, the other one gets a buffer.

We can't use the "padlock" of ssrcdemux because it causes deadlocks.
2012-08-06 18:04:58 -07:00
Mark Nauwelaerts
1547fdbe5a rtpmparobustdepay: set correct data_size for generated dummy frame
... which prevents getting stuck in a loop if such one is needed.
2012-08-06 14:58:21 +02:00
Mark Nauwelaerts
3e1832f5a4 rtpmparobustdepay: improve and fix debug statement
... so it really informs about next rather than past frame.
2012-08-06 14:58:21 +02:00
Mark Nauwelaerts
31a1cb0a11 rtpmparobustdepay: update available bytewriter space when repositioning
... and add some more assert to catch potential surprises early on.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680558
2012-08-06 14:58:21 +02:00
Sebastian Dröge
7b5925b5a4 gst: Add stream-id to stream-start events 2012-08-06 13:43:57 +02:00
Sebastian Dröge
46255d6ada matroskademux: Chain up to the parent class' query handler if no pad is provided 2012-08-06 10:59:18 +02:00
Olivier Crête
2aa360c936 rtpssrcdemux: Release lock before signalling new pad
This prevents a deadlock where something would try to push an event
through the SSRC demux from the callback, causing the pads to be iterated
and the lock taken.
2012-08-04 18:14:28 -07:00
Tim-Philipp Müller
c074bfd0b9 gst_tag_list_free -> gst_tag_list_unref 2012-08-04 16:10:16 +01:00
Mark Nauwelaerts
a549b0bf2c rtspsrc: manage race between connection closing and flushing
... where the former can happen in task thread and the latter in mainloop
upon downward state change.
2012-08-03 14:10:32 +02:00
René Stadler
75ee20ec67 qtdemux: fix double unref of private tag buffer 2012-08-01 12:16:41 +02:00
Anton Belka
86c236a5f6 wavparse: create TOC as needed
Avoid creating the toc if the wav has no or empty cue chunk.
Also a small code cleanup.
2012-07-30 20:39:19 +02:00
Tim-Philipp Müller
1ddb71e5b6 wavparse: update for TOC API changes 2012-07-28 11:26:01 +01:00
Tim-Philipp Müller
5b4eb723b6 matroska: update for TOC API changes 2012-07-28 11:22:43 +01:00
Tim-Philipp Müller
1d5ed57cfa flacparse: update for TOC API changes 2012-07-28 11:20:08 +01:00
Sebastian Dröge
0827f54b93 tag: Update for taglist/tag event API changes 2012-07-28 00:19:51 +02:00
Mark Nauwelaerts
dd25411161 qt(de)mux: pass private blob tags in a sample
... rather than a buffer, and the detailed info in the sample info
rather than caps.
2012-07-27 12:12:13 +02:00
Robert Swain
af7fee714d videocrop: Don't return NULL from _transform_caps
If _transform_caps () returns NULL, the basetransform _transform_caps
tries to call gst_caps_is_subset () with a NULL subset which hits an
assertion.
2012-07-27 11:33:12 +02:00
Mark Nauwelaerts
0bf9d8c6a6 rtpmparobustdepay: modify buffer data rather than buffer itself 2012-07-26 16:34:52 +02:00
Mark Nauwelaerts
c40807f6aa rtpmparobustdepay: avoid leaking bytewriter instance 2012-07-26 16:34:52 +02:00
Robert Swain
cc4941797d deinterlace: Fix timestamp adjustment and caps 2012-07-26 16:04:23 +02:00
Robert Swain
01016109d0 deinterlace: Fix/simplify telecine state checks 2012-07-26 16:03:57 +02:00
Robert Swain
db5bb81e36 deinterlace: Improve debug output 2012-07-26 12:31:52 +02:00
Robert Swain
f20d8f59c8 deinterlace: Fix low-latency pattern locking 2012-07-26 12:31:52 +02:00
Robert Swain
30a61f26ba deinterlace: RFF should be ignored in deinterlace
RFF only occurs on progressive frames in telecine sequences. For
deinterlace, we don't want these repeated fields as we will simply be
pushing the progressive frame and then moving on.

However, we need to consider RFF in order to correctly identify patterns
and adjust the timestamps.
2012-07-26 12:31:52 +02:00
Robert Swain
7c0af11fca deinterlace: Improve process logic
The logic now works better if we filter orphans, then progressive, then
telecine interlaced fields which need to be woven and fall through to
interlace. Telecine interlaced fields will be regularly deinterlaced if
there is no pattern lock for us to be sure that we have a telecine
pattern.

Telecine sequences that aren't 24fps progressive with RFF flags can't
really be tested until fieldanalysis is ported.
2012-07-26 12:31:52 +02:00
Wim Taymans
ef38efc2d7 rtsp: go and stay in the loop function on PLAY
When we have a PLAY request, go into the LOOP function next. When we are
looping, keep on looping until we are told otherwise.
This fixed rtsp and TCP connections.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680551
2012-07-25 12:50:01 +02:00
Wim Taymans
943b56ff8e rtsp: set caps after activating the pad 2012-07-25 12:49:35 +02:00
Wim Taymans
0ed9e07c5d h264depay: small cleanups 2012-07-25 12:49:07 +02:00
Wim Taymans
0cb11943e5 xqtdepay: fix buffer refcount error
After pushing the buffer into the adapter, we should not let the baseclass push
it out anymore. This error was introduced while porting to 0.11.

See https://bugzilla.gnome.org/show_bug.cgi?id=680540
2012-07-25 10:11:29 +02:00
Stefan Sauer
242321e376 level: remove obsolete liboil comment 2012-07-24 21:42:40 +02:00
Mark Nauwelaerts
1a46572aaa matroskademux: push mode: increase segment accuracy following seek
Conflicts:

	gst/matroska/matroska-demux.c
2012-07-24 21:15:49 +02:00
Mark Nauwelaerts
ea0729ff32 matroskademux: perform proper KEY_UNIT seek also in push mode
Conflicts:

	gst/matroska/matroska-demux.c
2012-07-24 21:15:49 +02:00
Tim-Philipp Müller
d6f4f1e01f udpsrc: don't crash dereferencing NULL error when leaving multicast group on shutdown
Strangely enough, if we do pass an error variable to be filled, we
no longer get an error on leaving.
2012-07-24 20:06:07 +01:00
Mark Nauwelaerts
6cc2ad4744 avidemux: rearrange some checks to avoid NULL use 2012-07-24 16:05:32 +02:00