Commit graph

11361 commits

Author SHA1 Message Date
Edward Hervey
8217575af1 videodecoder: Add a reference to frame passed to subclass
We have one reference owned by the internal frame list and one reference
passed to the subclass.
2012-05-01 16:58:55 +02:00
Wim Taymans
34bfcb2af9 videodecoder: don't leak events
When need to push out all the previously received events, concatenate all the
events from the previous frames (instead of leaking the old ones)
Improve debugging a little

Conflicts:

	gst-libs/gst/video/gstvideodecoder.c
2012-05-01 16:58:48 +02:00
Wim Taymans
8fde7850c0 videodecoder: don't leak frames
Frames receive a refcount when added to the frames list so release that refcount
in gst_video_decoder_do_finish_frame(). Also release the ref on the frame
because gst_video_decoder_do_finish_frame() takes ownership of the passed frame.
2012-05-01 15:03:40 +02:00
Wim Taymans
e8c7f57a0a videodecoder: avoid double unlock 2012-05-01 15:03:21 +02:00
Sebastian Dröge
7ff23514ee theoradec: Correctly handle crop metadata and update for videodecoder API changes 2012-05-01 13:33:20 +02:00
Sebastian Dröge
4e649b5bff videotestsrc: Update for basesrc API changes 2012-05-01 13:33:20 +02:00
Sebastian Dröge
52dfa13522 videofilter: Use a GstVideoBufferPool if none was provided 2012-05-01 13:33:20 +02:00
Sebastian Dröge
cb04d8e003 videodecoder: Do bufferpool configuration inside the default decide_allocation() implementation
This allows subclasses to override it, as is necessary for e.g. the
video-crop meta. It is now necessary that after decide_allocation()
there is always a allocator and a configured buffer pool inside the
query.
2012-05-01 13:33:20 +02:00
Wim Taymans
7736044d45 playsink: make playsink reusable
The sinkpads are unblocked when going from PAUSED->READY, we need to block them
again when going READY->PAUSED. The blocking of the pad previously only happened
when it was freshly obtained with _request_pad or when the caps changed. If we
don't release the pad when going to READY it was previously never blocked again
causing not-linked errors.
2012-05-01 12:19:11 +02:00
Wim Taymans
f21b7437e7 playsink: don't leak the colorbalance element 2012-05-01 12:09:31 +02:00
Tim-Philipp Müller
9c09fbda52 tag: improve gobject-introspection annotations 2012-04-29 17:16:38 +01:00
Tim-Philipp Müller
f342d956af tests: fix libscpp compilation
Don't include marshaller headers that have gone away and/or
aren't public headers anyway so don't need to be tested for
C++ compiler compatibility.
2012-04-28 19:16:52 +01:00
Tim-Philipp Müller
c7483e9e6b win32: add new video base class API to .def file
Fixes make check.
2012-04-28 15:56:47 +01:00
Tim-Philipp Müller
885df9cace pbutils: update descriptions for new webm/matroska media types 2012-04-28 15:51:08 +01:00
Tim-Philipp Müller
0bd4e5d1e1 typefinding: more fine-grained matroska/webm typefinding
Typefind to audio/x-matroska, video/x-matroska, audio/webm,
video/webm and video/x-matroska-3d.

http://www.webmproject.org/code/specs/container/#naming
http://matroska.org/technical/specs/notes.html
2012-04-28 15:51:03 +01:00
Mark Nauwelaerts
9ea22283d0 gdppay: plug buffer leak 2012-04-25 22:28:44 +02:00
Stefan Sauer
ad090a612d volume: add a control point for the test 2012-04-25 20:09:17 +02:00
Stefan Sauer
bcbb58ccbd volume: cast outputs to correct type before comparing 2012-04-25 20:09:17 +02:00
Sebastian Dröge
f9facc6a4a video: Remove interlaced handling from the video base classes
This must be handled by the subclasses in 0.11 because interlacing
is much more complex now and can't be handled in a generic way.
2012-04-25 18:21:03 +02:00
Wim Taymans
ae42b25c07 video: improve docs and design of multiview interlaced
Put fields of interlaced frames after eachother.
Improve the docs of the video interlaced enums.
2012-04-25 15:27:04 +02:00
Wim Taymans
07d34f576a video: add fields interlacing enum
Add an enum and docs for the fields interlace mode.
Improve the video caps docs for the fields interlace mode.
2012-04-25 14:57:40 +02:00
Wim Taymans
777d044357 videodec: remove some FIXMEs 2012-04-25 14:57:40 +02:00
Sebastian Dröge
0c2f43750d theoradec: Unref state when we're done with it 2012-04-25 14:34:43 +02:00
Sebastian Dröge
bcef106f73 video: Fix latency query handling if the element's own max_latency is GST_CLOCK_TIME_NONE 2012-04-25 13:53:29 +02:00
Sebastian Dröge
71900c4342 video: Only use the interlacing buffer flags if the caps specify interlaced video 2012-04-25 13:46:00 +02:00
Sebastian Dröge
47e169b0b5 videoencoder: Proxy the interlaced buffer flags to the GstVideoCodecFrame 2012-04-25 13:44:30 +02:00
Sebastian Dröge
71fc0a7f3e theoradec: Update for video decoder API changes
And also improve the buffer pool handling.
2012-04-25 13:19:11 +02:00
Sebastian Dröge
261188ae68 theoraenc: Update for video encoder API changes and propose video-meta for allocation 2012-04-25 13:19:11 +02:00
Sebastian Dröge
76f47979c1 videoencoder: Don't propose video-meta by default 2012-04-25 13:19:11 +02:00
Sebastian Dröge
7c165187af videodecoder: Change configure_buffer_pool() vfunc to decide_allocation() with same semantics as in basetransform 2012-04-25 13:19:11 +02:00
Stefan Sauer
0d50fc03cc tests: initialize variables 2012-04-25 09:23:28 +02:00
Sebastian Dröge
3de8d58c4e videoencoder: Add support for subclasses to propose allocation parameters 2012-04-24 22:42:59 +02:00
Sebastian Dröge
894875d705 theoradec: Use crop metadata if possible and refactor cropping code a bit 2012-04-24 22:35:58 +02:00
Sebastian Dröge
1483997207 videodecoder: Add support for subclasses to configure the buffer pool 2012-04-24 22:35:29 +02:00
Sebastian Dröge
8571293311 theoradec: Set some more information on the output caps 2012-04-24 22:05:53 +02:00
Sebastian Dröge
e120979f17 theora: Port to 0.11 again with the new base classes 2012-04-24 21:32:28 +02:00
Sebastian Dröge
a8c40a658c video: Some porting bugfixes 2012-04-24 21:32:08 +02:00
Sebastian Dröge
b945c01549 videodecoder: Add minimal support for buffer pools 2012-04-24 20:04:48 +02:00
Sebastian Dröge
63563e3d5e videodecoder: Require to chain up to the parent classes event functions 2012-04-24 19:51:30 +02:00
Sebastian Dröge
13b88908ce videoencoder: Require to chain up to the parent's sink event functions 2012-04-24 19:47:22 +02:00
Sebastian Dröge
f7bc9cc5ba video: Initial port of video base classes and related things to 0.11 2012-04-24 19:35:24 +02:00
Sebastian Dröge
3ab5be1cff video: Remove custom marshallers 2012-04-24 18:16:27 +02:00
Sebastian Dröge
a0e3a9e32d Merge remote-tracking branch 'origin/0.10'
Video base classes and theora plugin still needs to be ported again

Conflicts:
	docs/libs/gst-plugins-base-libs-docs.sgml
	docs/libs/gst-plugins-base-libs-sections.txt
	docs/libs/gst-plugins-base-libs.types
	ext/theora/gsttheoradec.c
	ext/theora/gsttheoradec.h
	ext/theora/gsttheoraenc.c
	ext/theora/gsttheoraenc.h
	gst-libs/gst/video/Makefile.am
	gst-libs/gst/video/video.c
	gst-libs/gst/video/video.h
	gst/playback/gsturidecodebin.c
	tests/check/libs/video.c
	tests/check/pipelines/theoraenc.c
	win32/common/libgstvideo.def
2012-04-24 18:14:31 +02:00
Mark Nauwelaerts
56602aa8fc tcpclientsink: ensure proper cleanup upon startup error 2012-04-24 17:15:23 +02:00
Edward Hervey
8c3be067c7 win32: Update .defs file 2012-04-24 17:03:41 +02:00
Edward Hervey
416029a006 tests: Remove theoraenc discont test
It should be fixed differently, see
https://bugzilla.gnome.org/show_bug.cgi?id=663262
2012-04-24 17:03:41 +02:00
Edward Hervey
4f1e7eec40 video: Fix gst_video_info_to_caps
And use the 0.10 caps style
2012-04-24 17:03:40 +02:00
Edward Hervey
a744c98985 videodecoder: Detect buffers inputted with DTS
Some container formats (like AVI) set DTS on the buffers instead of
PTS.
We detect this by:
* detecting if input timestamps are non-increasing
* detecting if the order the frames come out is the same as the order
  they were inputted (meaning the implementation is reordering frames).

If the decoder reorders frames, but input buffer timestamps were not
reordered, that means the buffers has DTS and not PTS as their timestamp.
If this is the case, we use set the PTS of the outgoing frames in the
same order as they were given to the decoder.

This fixes the issue for any decoder using this base class (yay).
2012-04-24 17:03:40 +02:00
Mark Nauwelaerts
7bfd1bc3d7 theora: Port to base video classes
FIXME : Don't forget to backport changes that happened to theoraenc
since April 2011

theoraenc: Don't create keyframe on time gap

There is no rational to do so, and also gst_video_encoder_set_discont() is
gone from base class.
2012-04-24 17:03:40 +02:00
Edward Hervey
f6cfd763e4 video: Base classes for video decoders and encoders 2012-04-24 17:03:40 +02:00