summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-09-05tsdemux: Wait for valid PCR/offset obvervationswip2Edward Hervey1-21/+209
It is quite possible that we might get PTS/DTS before the first PCR/Offset observation. In order to end up with valid timestamp we wait until at least one stream was able to get a proper running-time for any PTS/DTS. Until then, we queue up the pending buffers to push out. Once we see a first valid timestamp, we re-evaluate the amount of running-time elapsed (based on returned inital running-time and amount of data/DTS queued up) for any given stream. Taking the biggest amount of elapsed time, we set that on the packetizer as the initial offset and recalculate all pending buffers running-time PTS/DTS. Note: The buffer queueing system can also be used later on for the dvb fast start proposal (where we queue up all stream packets before seeing PAT/PMT and then push them once we know if they belong to the chosen program).
2013-09-05WIP examples: Add descriptor dumpingEdward Hervey1-4/+53
2013-09-05!!WIP: mpegtsdemux: New PCR<=>Offset estimation codeEdward Hervey4-67/+924
This allows: * Better duration estimation * More accurate PCR location * Overall more accurate running-time location and calculation Location and values of PCR are recorded in groups (PCROffsetGroup) with notable PCR/Offset observations in them (when bitrate changed for example). PCR and offset are stored as 32bit values to reduce memory usage (they are differences against that group's first_{pcr|offset}. Those groups each contain a global PCR offset (pcr_offset) which indicates how far in the stream that group is. Whenever new PCR values are observed, we store them in a sliding window estimator (PCROffsetGroupCurrent). When a reset/wrapover/gap is detected, we close the current group with current values and start a new one (the pcr_offset of that new group is also calculated). When a notable change in bitrate is observed (+/- 10%), we record new values in the current group. This is a compromise between storing all PCR/offset observations and none, while at the same time providing better information for running-time<=>offset calculation in VBR streams. Whenever a new non-contiguous group is start (due to seeking for example) we re-evaluate the pcr_offset of each groups. This allows detecting as quickly as possible PCR wrapover/reset. When wanting to find the offset of a certain running-time, one can iterate the groups by looking at the pcr_offset (which in essence *is* the running-time of that group in the overall stream). Once a group (or neighbouring groups if the running-time is between two groups) is found, once can use the recorded values to find the most accurate offset. Right now this code is only used in pull-mode , but could also be activated later on for any seekable stream, like live timeshift with queue2. Future improvements: * some heuristics to "compress" the stored values in groups so as to keep the memory usage down while still keeping a decent amount of notable points. * After a seek compare expected and obtained PCR/Offset and if the difference is too big, re-calculate position with newly observed values and seek to that more accurate position. Note that this code will *not* provide keyframe-accurate seeking, but will allow a much more accurate PCR/running-time/offset location on any random stream. For past (observed) values it will be as accurate as can be. For future values it will be better than the current situation. Finally the more you seek, the more accurate your positioning will be. Conflicts: gst/mpegtsdemux/mpegtspacketizer.c gst/mpegtsdemux/mpegtspacketizer.h
2013-09-05mpegtspacketizer: No longer use a private structEdward Hervey2-151/+133
These are not public headers, it just adds complexity for no reason
2013-09-04eglglessink: change pool->sink->last_buffer to pool->last_bufferJulien Isorce1-20/+30
So that GstEGLImageBufferPool does not depend on GstEglGlesSink The goal is still to move it into gstegl lib
2013-09-04eglglessink: buffer pool does not need to maintain a ref on the displayJulien Isorce1-11/+2
Because it does not use it and also it may not know it when we create the pool
2013-09-04eglglessink: add GstEGLImageBufferPoolSendBlockingAllocate callbackJulien Isorce1-31/+93
The goal here is to prepare GstEGLBufferPool to be moved into gstegl lib. So it has to not depend on 'gst_eglglessink_queue_object'
2013-09-04eglglessink: prepare gst_egl_adaptation_allocate_eglimage to be movedJulien Isorce3-32/+54
into gstegl lib or splited between gstegl lib and gstgl lib because it both depends on egl and gl So it has to not depend on GstEglAdaptationContext
2013-09-04h264parse: Add support for stream-format=avc3Alex Ashley2-14/+69
When outputting in AVC3 stream format, the codec_data should not contain any SPS or PPS, because they are embedded inside the stream. In case of avc->bytestream h264parse will push the SPS and PPS from codec_data downstream at the start of the stream, at intervals controlled by "config-interval" and when there is a codec_data change. In the case of avc3->bytstream h264parse detects that there is already SPS/PPS in the stream and sets h264parse->push_codec to FALSE. Therefore avc3->bytstream was already supported, except for the stream type. In the case of bystream->avc h264parse will generate codec_data caps from the parsed SPS/PPS in the stream. However it does not remove these SPS/PPS from the stream. bytestream->avc3 is the same as bytestream->avc except that the codec_data must not have any SPS/PPS in it. |--------------+-------------+-------------------| |stream-format | SPS in-band | SPS in codec_data | |--------------+-------------+-------------------| | avc | maybe | always | |--------------+-------------+-------------------| | avc3 | always | never | |--------------+-------------+-------------------| Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new structure for fragmented MP4 called "avc3". The principal difference between AVC1 and AVC3 is the location of the codec initialisation data (e.g. SPS, PPS). In AVC1 this data is placed in the initial MOOV box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data goes in the first sample of every fragment. https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-03soundtouch: Fix compilation with soundtouch 1.4.0Sebastian Dröge2-0/+14
It used FLOAT_SAMPLES/INTEGER_SAMPLES #defines instead of ones properly prefixed with a namespace. https://bugzilla.gnome.org/show_bug.cgi?id=707390
2013-09-03.gitignore: ignore new win32 config.h-newTim-Philipp Müller1-0/+2
2013-09-03amcvideodec: Port tiled NV12 conversion to 1.0Sebastian Dröge1-10/+10
2013-09-03amcvideodec: Add FIXME commentSebastian Dröge1-0/+1
2013-09-03androidmedia: add support for a new qualcomm colorspaceJorge Luis Zapata3-1/+110
2013-09-02mpegpsdemux: minor clean-upTim-Philipp Müller1-5/+3
2013-09-02mpegdemux: send events on pads that are not linkedMatej Knopp1-1/+1
Someone might be waiting for certain events with a probe. https://bugzilla.gnome.org/show_bug.cgi?id=707317
2013-09-02d3dvideosink: disable buffer poolsAndoni Morales Alastruey3-1/+11
On a device lost, all the surfaces allocated in the device need to be released before resetting the device, which can't be done for the allocated buffers. https://bugzilla.gnome.org/show_bug.cgi?id=706566
2013-09-02Change how win32/common/config.h is updatedTim-Philipp Müller4-225/+44
Generate win32/common/config.h-new directly from config.h.in, using shell variables in configure and some hard-coded information. Change top-level makefile so that 'make win32-update' copies the generated file to win32/common/config.h, which we keep in source control. It's kept in source control so that the git tree is buildable from VS. This change is similar to the one recently applied to GStreamer and gst-plugins-good. The previous config.h file in -bad was in pretty bad shape, so unlike core and base, I didn't attempt to leave it strictly the same, but fixed it as necessary. Needs testing I cannot do myself. https://bugzilla.gnome.org/show_bug.cgi?id=569015
2013-09-02tests: ignore new aiffparse test binaryTim-Philipp Müller1-0/+1
2013-09-02soundtouch: Allow compilation against float and integer version of the librarySebastian Dröge3-42/+47
https://bugzilla.gnome.org/show_bug.cgi?id=707270
2013-08-30dashdemux: Fix warnings when building in OS X Snow LeopardJosep Torra1-2/+2
gstdashdemux.c:1753: warning: format '%llu' expects type 'long long unsigned int', but argument 8 has type 'long unsigned int' gstdashdemux.c:2224: warning: format '%llu' expects type 'long long unsigned int', but argument 9 has type 'guint64' gstdashdemux.c:2224: warning: format '%llu' expects type 'long long unsigned int', but argument 10 has type 'guint64'
2013-08-30dashdemux: Fix warnings when building in OS X Snow LeopardJosep Torra2-2/+2
gstmpdparser.h:530: warning: type qualifiers ignored on function return type gstmpdparser.c:4177: warning: type qualifiers ignored on function return type
2013-08-30h264parse: Use codecparsers macrosEdward Hervey1-10/+2
note: I/SI also covers the S_I/S_SI variants
2013-08-29examples: port directfb example to 1.0Kerrick Staley1-1/+1
gst_pad_get_negotiated_caps was removed from 1.0; gst_pad_get_current_caps should be used instead. See http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/random /porting-to-1.0.txt https://bugzilla.gnome.org/show_bug.cgi?id=707074
2013-08-29win32: update config.hTim-Philipp Müller1-2/+2
2013-08-29dfbvideosink: make "layer-mode" property an enumTim-Philipp Müller1-22/+31
https://bugzilla.gnome.org/show_bug.cgi?id=703520
2013-08-29dfbvideosink: don't use deprecated GLib thread APITim-Philipp Müller1-3/+2
https://bugzilla.gnome.org/show_bug.cgi?id=703520
2013-08-29dfbvideosink: port to 1.0Kazunori Kobayashi3-601/+663
including the following supports and fixes: * Create DirectFB surfaces from GstBufferPool * Add NV12 pixel format support * Don't use the cursor in the exclusive mode - EnableCusor() can be only used when the administrative mode is set in DirectFB 1.6.0 and later. * Support multiple plane rendering for planar color formats - This accommodates the chroma plane offsets of the framebuffer in planar formats. * Invoke SetConfiguration regardless of video mode setting in setcaps() - SetConfiguration() method should be invoked regardless of the result of gst_dfbvideosink_get_best_vmode(), since the two are unrelated. * Disable DirectFB signal handler - "--dfb:no-sighandler" option is passed to DirectFBInit(). This prevents DirectFB from trying to kill the process and allows GStreamer's termination sequence to proceed normally. https://bugzilla.gnome.org/show_bug.cgi?id=703520
2013-08-29avdtputil: Some minor cleanup and leak fixesSebastian Dröge1-39/+43
2013-08-29bluez: support aac in avdtpsrcBernhard Miller3-2/+232
Signed-off-by: Bernhard Miller <bernhard.miller@streamunlimited.com>
2013-08-28Back to developmentSebastian Dröge1-3/+3
2013-08-28Release 1.1.4Sebastian Dröge82-145/+1002
2013-08-28Update .po filesSebastian Dröge40-40/+40
2013-08-28po: update translationsSebastian Dröge1-9/+11
2013-08-28mpegts: mark as unstable APITim-Philipp Müller1-0/+5
2013-08-27mpegtsdemux: fix possible read beyond end of buffer when resyncingTim-Philipp Müller1-1/+1
2013-08-27h264parse: only update src CAPS when it's necessaryMatthieu Bouron1-2/+8
https://bugzilla.gnome.org/show_bug.cgi?id=705452
2013-08-27h264parse: do not set CAPS and passthrough mode if SPS/PPS have not been parsedMatthieu Bouron1-3/+6
https://bugzilla.gnome.org/show_bug.cgi?id=705452
2013-08-26configure.ac: Don't set BZ2_LIBS if bz2 is not foundSebastian Dröge1-1/+3
2013-08-26webpdec: Some cleanup and minor fixesSebastian Dröge1-5/+21
2013-08-26webp: Add WebP image decoder pluginSreerenj Balachandran6-2/+620
https://bugzilla.gnome.org/show_bug.cgi?id=706285
2013-08-23facedetect: new property to control bus messages updatesNicola Murino2-47/+141
https://bugzilla.gnome.org/show_bug.cgi?id=655622
2013-08-23opencv: Fix indentionSebastian Dröge2-11/+11
2013-08-23opencv: Port to non-deprecated GMutex/GCond APISebastian Dröge2-33/+33
2013-08-23opencv: Add disparity-map calculation elementMiguel Casas-Sanchez4-0/+914
https://bugzilla.gnome.org/show_bug.cgi?id=704760
2013-08-22directsoundsrc: Remove unused variableSebastian Dröge1-19/+16
2013-08-22configure: Update opencv dependency, 2.4.5 works too.Sebastian Dröge1-1/+1
2013-08-22directsoundsrc: Add 'device-name' property for selecting a audio deviceKishore Arepalli2-26/+74
https://bugzilla.gnome.org/show_bug.cgi?id=706574
2013-08-22configure: Fix bz2 configure check for WindowsSebastian Dröge1-2/+9
Due to function decorations on Windows AC_CHECK_LIB can't be used to check for bz2. https://bugzilla.gnome.org/show_bug.cgi?id=465924
2013-08-21tsdemux: Refuse negative rates which we don't support yetEdward Hervey1-4/+5
And remove a check which was done before