Commit graph

2703 commits

Author SHA1 Message Date
Marc-André Lureau
4d3a965476 mpegtsmux: add PAT/PMT in streamheader
The check for PAT/PMT buffers was suggested by
Zaheer Abbas Merali.

https://bugzilla.gnome.org/show_bug.cgi?id=608896
2010-02-03 18:26:15 +00:00
Marc-André Lureau
1537023905 mpegtsmux: add pat-interval and pmt-interval properties
https://bugzilla.gnome.org/show_bug.cgi?id=608896
2010-02-03 18:26:12 +00:00
Marc-André Lureau
130cf80752 mpegtsmux: fix PAT/PMT insertion frequency
The current code is comparing timestamps with different clock.
Let's use only the clock for PTS values.

Also rename frequency to interval, to avoid confusion. And remove
documentation about value 0, which won't work like documented.

https://bugzilla.gnome.org/show_bug.cgi?id=608896
2010-02-03 18:26:09 +00:00
Marc-André Lureau
6d554a5560 mpegtsmux: marking non-delta unit, including pre-sections
This patch address the issue observed with KF timestamps
and delta flag. When a section is appended before the keyframe,
it is not marked as non-delta. It's preferable to mark the
first buffer non-delta.

This patch also simplify the initial patch written by thomas,
since it does not clutter tsmux/ with a delta flag passed
around only for GStreamer convenience.

https://bugzilla.gnome.org/show_bug.cgi?id=604908
2010-02-03 16:37:27 +00:00
Stefan Kost
6c6ea0b79b jpegformat: add a basic jifmuxer
The new element can chop and reassemble the markers. I implements the tagsetter
and for now can serialize some tags to jpeg comments.
2010-02-03 15:13:30 +02:00
Thiago Santos
e1c1405396 qtmux: Adds moov recovery feature
Adds a new property to qtmux that sets a path to a file to write
and update data about the moov atom (that is not writen till the
end of the file). If the pipeline/app crashes during execution it
might be possible to recover the movie using the qtmoovrecover element.

qtmoovrecover is an element that is also a pipeline. It is not
meant to be used with other elements (it has no pads). It is merely
a tool/utilitary to recover unfinished qtmux files.

Fixes #601576
2010-02-02 14:03:38 -03:00
Stefan Kost
b9f8f5d281 jpegparse: improve parsing
Handle more app maker. Print app marker names to debug log. Remember last_marker
when parsing to avoid reparsing from the very begin.
2010-02-02 17:19:31 +02:00
Julien Moutte
6f1ee59df6 mpegtsmux: generate SPS/PPS header once and fix overflow
Some H264 packets can be as small as 5 bytes for repeated frames.
In such a situation the output buffer size was not big enough (5*2) to fit the
SPS/PPS header and the start codes. This corrupts the ES stream.
We now generate the SPS/PPS only once which is much more optimal and we now
know the size of the header to calculate the output buffer size more safely.
2010-02-02 12:23:24 +01:00
Michael Smith
80b3d80a58 qtmux: for fixed-sample size streams (PCM audio, etc) don't allocate an enormous
buffer that we then won't use at all.
2010-02-01 16:24:39 -08:00
Michael Smith
4b28a46bc7 qtmux: handle muxing adpcm correctly. 2010-02-01 16:23:48 -08:00
Michael Smith
e1fe7f357f qtmux: Set the mdia hdlr name field to what quicktime uses. Fix writing it
since it's not null-terminated. Improves compatibility with some hardware
players.
2010-02-01 16:23:47 -08:00
Michael Smith
5753f8a3aa qtmux: endianness in gstreamer is an int, not boolean. 2010-02-01 16:23:47 -08:00
Michael Smith
c2b1bebc02 mpeg4videoparse: parse more forms of codec_data 2010-02-01 16:23:47 -08:00
Stefan Kost
f3122f2b30 jpegparse: provide a getcaps function for src pad and improve setcaps
Previously jpegparse was failing in decodebin as the caps we were setting where not
setting all caps fields. We need the own getcaps function to report what we actualy
accept.
2010-02-01 17:46:29 +02:00
Stefan Kost
ab7e974dab jpegparse: extract comment and post as metadata 2010-02-01 17:16:16 +02:00
Stefan Kost
e1dd998bd0 jpegformat: code cleanups
Move the jpeg marker defines to a header (to be used for jifmux). Rewrite some
comments. Use gst_element_class_set_details_simple(). Add more logging.
2010-02-01 17:15:38 +02:00
Stefan Kost
8bd0f42017 jpegformat: move plugin part to speparate file, so that we can add the jifmux 2010-01-29 12:25:08 +02:00
Arnout Vandecappelle
bb5331e272 jpegparse: new jpeg parser element. FIxes #583098
Parse JPEG images, extracts its metadata, set caps and
packetize an image per buffer.
2010-01-29 11:41:15 +02:00
Stefan Kost
b0533bfdff camerabin: don't log NULL caps, also downgrade to DEBUG as it is very verbose
This debug log entry was also not ment to be used in the failure case.
2010-01-28 14:57:50 +02:00
Tim-Philipp Müller
2cc409861c dataurisrc: add start function so we can error out properly if no uri is set
Also save a set URI after it has been parsed successfully, so that _get_uri()
actually works.
2010-01-28 00:08:16 +00:00
Tim-Philipp Müller
766c52766e dataurisrc: don't post error message when setting the URI failed
There's a gboolean return for that, and the messages don't really
add anything useful.
2010-01-28 00:08:16 +00:00
Tim-Philipp Müller
61c6c38bd0 dataurisrc: must release the object lock before using GST_ELEMENT_ERROR 2010-01-28 00:08:16 +00:00
Mark Nauwelaerts
a42e890470 qtmux: streamline moov data memory storage
In particular, use arrays rather than (double) linked lists.
2010-01-27 12:56:18 +01:00
Mark Nauwelaerts
87eb6333da audioparsers: rename baseparse GType name to avoid possible conflicts 2010-01-27 12:45:57 +01:00
Mark Nauwelaerts
df4c4cc703 h264parse: use correct h264_parse prefix in function name 2010-01-27 12:41:57 +01:00
Thiago Santos
f815c46f5b qtmux: g_free is NULL safe 2010-01-26 13:44:04 -03:00
Thiago Santos
2dded0fceb rtpasfpay: Fix packet length semantics
Following the ed4d08189ea6e19a50e029e60da52d3583c39fbb
commit, this one fixes rtpasfpay to use packet length
as the payloaded data length, but also accepting it
as the full packet size for compatibility with
other implementations due to the lack of clarity of the
spec in this part.
2010-01-25 19:32:15 -03:00
Håkon Skjelten
0a90963fcf asfmux: Compatibility with WMSP in WMP
Makes the asfmux content compatible with WMSP and does
some hacks to make it playable in WMP, it doesn't accept
data objects with 0 size indicating that we don't know
its size, though the spec says it should be possible.

Fixes #607555
2010-01-25 19:32:15 -03:00
Stefan Kost
be12317653 camerabin: ref element before removing from the bin to resurrect
This function is not supposed to dispose the element in the case of failure
as the caller is using the elements name in the error message. Also add
some more input parameter checks in the form of g_return_val_if_fail
2010-01-25 23:04:38 +02:00
Sebastian Dröge
c51c3ad21c Revert "inputselector: Protect g_object_notify() with the object's mutex"
This reverts commit 7e067615ff, it's causing
deadlocks with playbin2.
2010-01-25 12:21:34 +01:00
Sebastian Dröge
00e5076b3a dataurisrc: Remove role attribute from links 2010-01-25 12:12:32 +01:00
Sebastian Dröge
828af08490 dataurisrc: Add docs and integrate into build system
Fixes again bug #596885.
2010-01-25 11:56:33 +01:00
Sebastian Dröge
926decbecb dataurisrc: Add data: URI source element
This is slightly based on the WebKit data: URI source
but supports more parts of RFC 2397.

Fixes bug #596885.
2010-01-25 11:15:16 +01:00
Sebastian Dröge
b56436e793 dataurisrc: Add directory for data: URI source 2010-01-25 11:15:16 +01:00
Stefan Kost
b96d57b870 mxf: add a return to fix the build when turning assert off 2010-01-25 11:49:46 +02:00
Stefan Kost
76daceadca Revert "mxf: add a return to fix the build when turning assert off"
This reverts commit 68ca62b369.
2010-01-25 11:48:29 +02:00
Stefan Kost
68ca62b369 mxf: add a return to fix the build when turning assert off 2010-01-25 09:54:27 +02:00
Kipp Cannon
7e067615ff inputselector: Protect g_object_notify() with the object's mutex
This works around the thread unsafety of g_object_notify()

Fixes bug #607513.
2010-01-24 20:53:56 +01:00
Tim-Philipp Müller
e9732ef902 pnm: use same media type as other elements
gdkpixbuf and our new typefinder in -base use image/x-portable-*.
2010-01-22 02:25:44 +00:00
Tim-Philipp Müller
b2ce6fe6d5 pnm: make element details a bit more descriptive 2010-01-22 02:25:44 +00:00
Tim-Philipp Müller
4de86d4d12 pnm: add copyright notice 2010-01-22 02:25:44 +00:00
Tim-Philipp Müller
232a1dc6d0 pnm: move typefinding into -base 2010-01-22 02:25:44 +00:00
Sebastian Dröge
454b1931bc mxf: Correctly initialize memory 2010-01-21 15:58:59 +01:00
Benjamin Otte
89d9aaee48 [cleanup] Various style and cleanups
Various fixes for gtk-doc warnings and making functions without
arguments take void as parameter.
2010-01-20 13:30:48 +01:00
Sebastian Dröge
b263ae123c cdxaparse: Fix buffer leak
Fixes bug #607285.
2010-01-18 10:58:39 +01:00
Sebastian Dröge
b95eda9c9a frei0r: Make sure that property names always start with a letter
Otherwise GLib throws assertions
2010-01-16 17:02:52 +01:00
Sebastian Dröge
e476ff9883 shapewipe: Replace floating point arithmetic in the inner processing loops by integer arithmetic 2010-01-16 16:52:11 +01:00
Julien Moutte
f33344ab0c mpeg4videoparse: don't set an invalid framerate.
When fixed_vop_rate is not set we can not set a framerate based on
vop_time_increment_resolution as it would most likely be wrong.
Don't set any framerate on the caps in that case.
2010-01-15 21:34:02 +01:00
Thiago Santos
774b7b33cc qtmux: Actually use new caps info on renegotiation
Following the previous qtmux commit, this patch tries
to use the new info added to the caps to fill the 'trak'
atom's fields and children atoms. This way qtmux will
use the late added 'codec_data' when h264parse adds
it in the following pipeline:

videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \
h264parse output-format=0 ! qtmux ! \
filesink location=test.mov
2010-01-14 19:09:44 -03:00
Thiago Santos
0b4c0890a5 qtmux: Do caps renegotiation when it only adds fields
Qtmux can accept caps renegotiation if the new caps is a
superset of the old one, meaning upstream added new info to
the caps. This patch still doesn't make qtmux update any
atoms info from the new info, but at least it doesn't
reject the new caps anymore.

A pipeline that reproduces this use case is:

videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \
h264parse output-format=0 ! qtmux ! \
filesink location=test.mov
2010-01-14 19:09:44 -03:00