Mark Nauwelaerts
6578797245
collectpads2: rename to collectpads
2012-04-17 15:22:59 +02:00
Sebastian Dröge
cda192b3b7
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 18:02:56 +02:00
Sebastian Dröge
1318a97e0a
gst: Update versioning
2012-04-04 14:44:34 +02:00
Sebastian Dröge
860ccd414d
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
NEWS
RELEASE
common
configure.ac
docs/libs/gst-plugins-bad-libs-sections.txt
docs/plugins/gst-plugins-bad-plugins.args
docs/plugins/gst-plugins-bad-plugins.hierarchy
docs/plugins/gst-plugins-bad-plugins.interfaces
docs/plugins/inspect/plugin-adpcmdec.xml
docs/plugins/inspect/plugin-adpcmenc.xml
docs/plugins/inspect/plugin-assrender.xml
docs/plugins/inspect/plugin-audiovisualizers.xml
docs/plugins/inspect/plugin-autoconvert.xml
docs/plugins/inspect/plugin-bayer.xml
docs/plugins/inspect/plugin-bz2.xml
docs/plugins/inspect/plugin-camerabin2.xml
docs/plugins/inspect/plugin-celt.xml
docs/plugins/inspect/plugin-dataurisrc.xml
docs/plugins/inspect/plugin-debugutilsbad.xml
docs/plugins/inspect/plugin-dtmf.xml
docs/plugins/inspect/plugin-dtsdec.xml
docs/plugins/inspect/plugin-dvbsuboverlay.xml
docs/plugins/inspect/plugin-dvdspu.xml
docs/plugins/inspect/plugin-faac.xml
docs/plugins/inspect/plugin-faad.xml
docs/plugins/inspect/plugin-gsm.xml
docs/plugins/inspect/plugin-h264parse.xml
docs/plugins/inspect/plugin-mms.xml
docs/plugins/inspect/plugin-modplug.xml
docs/plugins/inspect/plugin-mpeg2enc.xml
docs/plugins/inspect/plugin-mpegdemux2.xml
docs/plugins/inspect/plugin-mpegtsdemux.xml
docs/plugins/inspect/plugin-mpegvideoparse.xml
docs/plugins/inspect/plugin-mplex.xml
docs/plugins/inspect/plugin-pcapparse.xml
docs/plugins/inspect/plugin-rawparse.xml
docs/plugins/inspect/plugin-rtpmux.xml
docs/plugins/inspect/plugin-rtpvp8.xml
docs/plugins/inspect/plugin-scaletempo.xml
docs/plugins/inspect/plugin-schro.xml
docs/plugins/inspect/plugin-sdp.xml
docs/plugins/inspect/plugin-segmentclip.xml
docs/plugins/inspect/plugin-shm.xml
docs/plugins/inspect/plugin-videomaxrate.xml
docs/plugins/inspect/plugin-videoparsersbad.xml
docs/plugins/inspect/plugin-vp8.xml
docs/plugins/inspect/plugin-y4mdec.xml
ext/celt/gstceltdec.c
ext/dts/gstdtsdec.c
ext/modplug/gstmodplug.cc
ext/opus/gstopusenc.c
gst-libs/gst/video/gstbasevideocodec.c
gst-libs/gst/video/gstbasevideocodec.h
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstbasevideodecoder.h
gst-libs/gst/video/gstbasevideoencoder.c
gst-libs/gst/video/gstbasevideoencoder.h
gst/adpcmdec/Makefile.am
gst/audiovisualizers/gstbaseaudiovisualizer.c
gst/h264parse/gsth264parse.c
gst/mpegdemux/mpegtsparse.c
gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/mpegtspacketizer.c
gst/mpegtsdemux/mpegtsparse.c
gst/mpegtsdemux/tsdemux.c
gst/mpegtsdemux/tsdemux.h
gst/mxf/mxfdemux.c
gst/rawparse/gstaudioparse.c
gst/videoparsers/gsth263parse.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
sys/decklink/gstdecklinksink.cpp
sys/dvb/gstdvbsrc.c
sys/shm/gstshmsrc.c
sys/vdpau/h264/gstvdph264dec.c
sys/vdpau/mpeg/gstvdpmpegdec.c
tests/examples/opencv/gst_element_print_properties.c
win32/common/config.h
2012-03-29 17:41:53 +02:00
Wim Taymans
bc38bc27b7
don't pass random pointers to pull_range
2012-03-16 21:47:39 +01:00
Thibault Saunier
20669d461a
Fix 'ignoring return value of function declared with const attribute'
...
This always happens with GstByteReader/Writer and friends when
not taking into account returned boolean of the _read/_write functions
(which is actually wrong).
Make use of the *_unchecked variant as much as possible, or take the
returned value into account.
2012-03-10 19:22:07 -03:00
Sebastian Dröge
b292b19c59
mxfdemux: Fix 'comparison of unsigned expression >= 0 is always true' compiler warning
2012-03-06 14:46:03 +01:00
Wim Taymans
1119f6ee41
Merge branch 'master' into 0.11
...
Conflicts:
ext/chromaprint/gstchromaprint.c
ext/mpeg2enc/Makefile.am
ext/voaacenc/gstvoaacenc.c
gst/dvbsuboverlay/gstdvbsuboverlay.c
gst/mpegtsdemux/mpegtsbase.c
gst/sdp/gstsdpdemux.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
tests/examples/camerabin/gst-camera-perf.c
tests/examples/camerabin/gst-camerabin-test.c
tests/examples/camerabin2/gst-camerabin2-test.c
tests/examples/mxf/mxfdemux-structure.c
tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Wim Taymans
de1f89bf07
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
2012-02-08 16:37:13 +01:00
Vincent Penquerc'h
8147669971
plenty: fixup glib deprecations
2012-01-27 15:47:07 +00:00
Edward Hervey
f70a623418
Merge remote-tracking branch 'origin/master' into 0.11-premerge
...
Conflicts:
docs/libs/Makefile.am
ext/kate/gstkatetiger.c
ext/opus/gstopusdec.c
ext/xvid/gstxvidenc.c
gst-libs/gst/basecamerabinsrc/Makefile.am
gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h
gst-libs/gst/video/gstbasevideocodec.c
gst-libs/gst/video/gstbasevideocodec.h
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstbasevideoencoder.c
gst/asfmux/gstasfmux.c
gst/audiovisualizers/gstwavescope.c
gst/camerabin2/gstcamerabin2.c
gst/debugutils/gstcompare.c
gst/frei0r/gstfrei0rmixer.c
gst/mpegpsmux/mpegpsmux.c
gst/mpegtsmux/mpegtsmux.c
gst/mxf/mxfmux.c
gst/videomeasure/gstvideomeasure_ssim.c
gst/videoparsers/gsth264parse.c
gst/videoparsers/gstmpeg4videoparse.c
2011-12-30 11:41:17 +01:00
Vincent Penquerc'h
f4ccc7dff8
mxfmux: port to GstCollectPads2
...
Only tested with audio, I can't get it to accept video (before
the port).
2011-12-15 13:39:41 +00:00
Vincent Penquerc'h
7521b597f4
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Stefan Sauer
d2f2955f18
collectpads: port API changes
2011-11-17 08:53:23 +01:00
Wim Taymans
52d48bb142
Merge branch 'master' into 0.11
2011-08-17 19:01:39 +02:00
Vincent Penquerc'h
2728ead8a2
mxf: do not assert on the values of data read from input
...
Instead, log a warning, and return.
https://bugzilla.gnome.org/show_bug.cgi?id=563827
2011-08-09 10:44:48 +02:00
Wim Taymans
01b9b5002f
Merge branch 'master' into 0.11
...
Conflicts:
common
configure.ac
gst/colorspace/colorspace.c
gst/colorspace/colorspace.h
gst/colorspace/gstcolorspace.c
2011-08-04 09:36:07 +02:00
Sebastian Dröge
6f2c2609ac
mxfdemux: Properly return seeking errors if the requested position can't be found
2011-07-08 11:52:17 +02:00
Wim Taymans
a2b7a672b8
Merge branch 'master' into 0.11
...
Conflicts:
android/aacparse.mk
android/amrparse.mk
android/h264parse.mk
android/metadata.mk
android/qtmux.mk
android/sdpelem.mk
configure.ac
gst/qtmux/gstqtmux.c
win32/common/config.h
2011-06-15 16:06:36 +02:00
David Schleef
7b12d4647a
Work around changes in g_atomic API
...
See #651514 for details.
2011-06-04 14:09:30 -07:00
Thibault Saunier
17fd7ebcb4
android: make it ready for androgenizer
...
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:27:11 +02:00
Wim Taymans
2694086ace
mxf: fix class struct
...
Fix class parent structure
Metadata is now GObject
2011-02-28 12:06:57 +01:00
Wim Taymans
cbb7fa5701
miniobject: port to new 0.11 API
...
Remove miniobject and buffer subclassesusing GObject subclasses and
metadata.
2011-02-28 12:06:57 +01:00
Wim Taymans
2eb38991c6
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
win32/common/config.h
2011-02-28 12:06:12 +01:00
Thiago Santos
cbbdfee98a
mxfdemux: Fix unitialized variable warning
2011-01-18 18:18:03 -03:00
Sebastian Dröge
dd8ae4e027
mxfdemux: Don't use GST_FLOW_IS_FATAL()
2010-09-21 12:26:35 +02:00
Benjamin Otte
647cf64c01
Add -Wformat-nonliteral -Wformat-security flags
...
and fix the warnings
2010-03-22 16:22:22 +01:00
Benjamin Otte
33c2f5fb01
Add -Wwrite-strings
...
and fix its warnings
2010-03-22 13:16:33 +01:00
Benjamin Otte
f96e4f1581
Add -Wmissing-declarations -Wmissing-prototypes to configure flags
...
And fix all warnings
2010-03-21 21:39:18 +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
Sebastian Dröge
454b1931bc
mxf: Correctly initialize memory
2010-01-21 15:58:59 +01:00
Alessandro Decina
a17393fd34
Fix warnings with gcc 4.0.1.
2009-09-23 12:34:47 +02:00
Tim-Philipp Müller
10d67eda7a
GstAdapter is not a GstObject and should be freed with g_object_unref()
2009-08-31 13:14:02 +01:00
Sebastian Dröge
53128c5b4f
mxf: Unconditionally use GLib 2.16 API
2009-08-31 08:14:11 +02:00
Sebastian Dröge
86af4924cc
mxfdemux: Implement SEEKING query
2009-07-21 13:51:20 +02:00
Tim-Philipp Müller
3b99292629
mxfdemux: fix stray semicolons that mess up if statement
2009-06-18 21:17:24 +01:00
Edward Hervey
0520a2a53b
mxf: Fix frame_layout for non-interlaced formats. Fixes #583337
2009-05-20 17:15:51 +02:00
Sebastian Dröge
f5ba4904f7
mxfdemux: Use a RW lock to protect metadata and add all pads at once without a lock held
...
This makes it possible, among other things, to do a query in the
pad-added callback.
Fixes bug #582656 .
2009-05-15 11:49:20 +02:00
Tristan Matthews
6451febd14
mxfmux: Fix uninitialized variable compiler warning
...
This will always be set to something but gcc didn't detect
this. Fixes bug #582013 .
2009-05-10 10:41:41 +02:00
Sebastian Dröge
d09515b49f
mxfmux: Write metadata items in reference order
...
This ensures that the metadata items are always written
in the same order and that first comes the preface,
then the identification linked from the preface, ...
Some demuxers can't handle files where the metadata
items are in random order.
2009-05-09 15:50:51 +02:00
Sebastian Dröge
18f8c9b0b4
mxfmux: Fix EOS logic again
2009-05-09 15:50:51 +02:00
Sebastian Dröge
8692ae2a9d
mxfmux: Don't unref NULL buffers if pushing a buffer after the first failed
2009-05-09 15:50:51 +02:00
Christian Schaller
67dd3c11f4
Add ranks to various muxers and encoders in -bad
2009-05-07 17:53:42 +01:00
Sebastian Dröge
8e84633120
mxf: Mark most fields of the instance struct as private
2009-04-22 19:45:07 +02:00
Sebastian Dröge
e3664d57ad
mxf: Add documentation to mxfmux and update the docs
2009-04-22 19:24:43 +02:00
Sebastian Dröge
7a30947913
mxf: Properly handle the new interlaced support from libgstvideo for (de)muxing
2009-04-16 22:14:15 +02:00
Sebastian Dröge
50424e44ad
mxfmux: Small cleanup
2009-04-13 13:33:00 +02:00
Sebastian Dröge
0fa50e9d77
mxfdemux: Don't use invalid buffer offsets, instead assume offset == 0
2009-04-07 15:49:00 +02:00
Sebastian Dröge
acc912599d
mxf: Fix comparison
2009-04-07 15:45:50 +02:00
Sebastian Dröge
83324d6788
Use UL database for all metadata ULs
2009-04-07 15:20:10 +02:00
Sebastian Dröge
f510be57cd
mxf: Fix compilation and compiler errors with GLib < 2.16.0
2009-03-26 20:28:30 +01:00
Sebastian Dröge
2c51bbdfad
mxf: Fix "cast to pointer type of different size" compiler warning
2009-03-26 14:26:34 +01:00
Sebastian Dröge
9b6d6fd0dd
mxf: Rename forgotten function to fix unresolved symbols error
2009-03-26 13:24:49 +01:00
Sebastian Dröge
f22494b6fe
mxf: Use mxf_u{l,uid}_is_equal() and friends instead of memcmp()
2009-03-26 13:20:18 +01:00
Sebastian Dröge
c1c8b40d42
mxf: Differentiate between UL and UUID
2009-03-26 13:11:07 +01:00
Sebastian Dröge
ce01236e32
mxf: Source files and #include cleanup
2009-03-26 12:46:22 +01:00
Sebastian Dröge
81af2259c2
mxf: Use the UL database for some more ULs
2009-03-26 11:51:43 +01:00
Sebastian Dröge
a9f931c467
mxf: Remove some GLib < 2.14 compatibility stuff
2009-03-26 11:42:45 +01:00
Sebastian Dröge
6f62242c5f
Merge branch 'mxfmux'
2009-03-26 08:13:10 +01:00
Sebastian Dröge
e5caf2edda
mxfmux: Cleanup
2009-03-26 08:12:02 +01:00
Sebastian Dröge
3b88dce4d1
mxfmux: Fix handling of buffers with more than one edit unit and EOS handling
2009-03-26 08:11:20 +01:00
Sebastian Dröge
da27eb2380
mxf: Move some static const variables into functions
2009-03-23 15:06:11 +01:00
Stefan Kost
a7a97b9139
Makefile.am: no static libs for plugins
2009-03-22 21:02:45 +02:00
Sebastian Dröge
2224a990a8
mxfmux: Fix error handling
2009-03-22 15:58:50 +01:00
Sebastian Dröge
effb5786da
mxfmux: Fix some memory leaks, improve debugging and handle errors better
2009-03-22 15:51:37 +01:00
Sebastian Dröge
ddced37a8b
mxfmux: Add an error state from which we return immediately
...
Also improve debugging a bit.
2009-03-22 15:35:42 +01:00
Sebastian Dröge
226f23edde
mxf: Optimize mxf_ul_is_subclass() a bit
2009-03-21 10:19:49 +01:00
Sebastian Dröge
b409f71f49
mxf: Start implementing a central UL database and add some helper functions and use them
2009-03-21 10:19:49 +01:00
Sebastian Dröge
a19f0375ec
mxfmux: Make sure to include a picture in the edit units when muxing MPEG2/MPEG4
2009-03-21 10:19:49 +01:00
Sebastian Dröge
992caf48ba
mxfdemux: Remove accidentially committed g_assert_not_reached()
2009-03-21 10:19:49 +01:00
Sebastian Dröge
c6730cd223
mxf: Add support for muxing/demuxing subsampled YUV formats
2009-03-21 10:19:49 +01:00
Sebastian Dröge
c95ba980b2
mxfdemux: Use correct width/height for stride conversions
2009-03-21 10:19:49 +01:00
Sebastian Dröge
a31498d8d4
mxf: Implement stride transformations for raw video content for muxing and demuxing
2009-03-21 10:19:49 +01:00
Sebastian Dröge
b6bac882f9
mxfdemux: Simplify caps selection by using a lookup table
2009-03-21 10:19:49 +01:00
Sebastian Dröge
9aa16c2ea5
mxfmux: Add initial support for muxing raw picture essence
2009-03-21 10:19:48 +01:00
Sebastian Dröge
3d2f7c9ca0
mxfmux: Only add an essence container UL once to the partition and preface
2009-03-21 10:19:48 +01:00
Sebastian Dröge
1925b8e9f7
mxfdemux: Add support for AYUV and v308 YUV colorspaces
2009-03-21 10:19:48 +01:00
Sebastian Dröge
9fd64eee8d
mxfmux: Use the correct edit rate instead of estimating it from the first buffer duration
2009-03-21 10:19:48 +01:00
Sebastian Dröge
6c126cbfdf
mxfdemux: Error out directly if pushing a packet downstream failed
2009-03-21 10:19:48 +01:00
Sebastian Dröge
fc70fb1706
mxfmux: Add support for DV/DIF muxing and add framerate, etc to the caps when demuxing DV/DIF content
2009-03-21 10:19:48 +01:00
Sebastian Dröge
266736817d
mxfmux: Add some debugging and error out on invalid input data
2009-03-21 10:19:48 +01:00
Sebastian Dröge
c5c155884a
mxfmux: Add support for muxing MPEG audio and video
2009-03-21 10:19:48 +01:00
Sebastian Dröge
28e4871217
mxfdemux: Use correct caps type for AC3 audio (audio/x-ac3 instead of audio/ac3)
2009-03-21 10:19:47 +01:00
Sebastian Dröge
654f0627e4
mxfmux: Add support for muxing JPEG2000 code streams
2009-03-21 10:19:47 +01:00
Sebastian Dröge
244c0a4707
mxfmux: Add support for muxing VC-3 (aka DNxHD) video
2009-03-21 10:19:47 +01:00
Sebastian Dröge
60d0dc07bf
mxfmux: Add support for muxing A-Law audio
2009-03-21 10:19:47 +01:00
Sebastian Dröge
0a5dc919fb
mxfmux: Add support for muxing raw audio
2009-03-21 10:19:47 +01:00
Sebastian Dröge
e50039897b
mxf: Add MXF muxer
...
This muxer currently only supports OP1a and is
probably not yet 100% complying to the standards.
2009-03-21 10:19:47 +01:00
Jan Schmidt
cf4485133b
mxfdemux: Fix build on GLib < 2.16 some more
2009-03-18 10:35:43 +00:00
Zaheer Merali
43117a8d86
mxf: Replace g_hash_table_get_values with code working with glib 2.6.
...
Fixes #575565
2009-03-16 17:33:45 +00:00
Sebastian Dröge
6b51d475b5
mxfdemux: Store and use the seqnum of the currently running segment everywhere
2009-03-06 17:46:37 +01:00
Sebastian Dröge
424bb07965
mxf: Don't even try to serialize DM frameworks as it will cause an assertion until this is finished
2009-03-06 17:24:03 +01:00
Sebastian Dröge
b5e87b6517
mxf: Don't use NULL GstStructures to prevent warnings
...
Currently serializing of DM Frameworks is not supported
yet by DMS1 and will give us NULL.
2009-03-05 14:40:57 +01:00
Sebastian Dröge
62dbf4b9bc
mxfdemux: Use arrays instead of lists for the metadata registries
2009-03-02 17:00:41 +01:00
Sebastian Dröge
ed72bba6a2
mxf: Fix memory leak
...
gst_structure_id_set() will copy GstStructures instead of taking
the ownership.
2009-02-28 20:42:49 +01:00
Sebastian Dröge
b5b2e44563
mxf: Store the metadata type ID inside the class structure
2009-02-28 20:39:42 +01:00
Sebastian Dröge
b7f617ad58
mxfdemux: Add read-only property to get the structural metadata
2009-02-21 17:45:09 +01:00
Sebastian Dröge
a0951a630b
mxfdemux: Add MPEG video bitrate to the tags if available
2009-02-21 17:40:01 +01:00
Sebastian Dröge
acc6a316ce
mxfdemux: Post structural metadata tree as tag on the bus
...
This will later be used to keep the structural metadata when
remuxing an MXF file and can also be used in Pitivi for example
to know the file structure and to select what should be used
and played.
2009-02-21 17:38:49 +01:00
Sebastian Dröge
a9461b9818
mxfdemux: Fix calculation of AES3 bitrate tag
2009-02-21 16:16:32 +01:00
Sebastian Dröge
636b535e4a
mxfdemux: Add helper function to convert MXFraction to gdouble and use it
2009-02-21 16:16:32 +01:00
Sebastian Dröge
8172830d47
mxfdemux: Only store the main descriptor in source packages
...
For the tracks we still resolve the descriptors but the
source package only contains the descriptor it really references
instead of all subdescriptors of multiple descriptors.
This makes it easier later to serialize the structural metadata
again.
2009-02-21 16:16:32 +01:00
Sebastian Dröge
e11f0be161
mxfdemux: Set free'd memory to NULL to prevent a double free later in some cases
2009-02-21 16:16:32 +01:00
Sebastian Dröge
2a93712ea1
mxfdemux: Don't use generic metadata parsers for unknown metadata, the results are useless anyway
2009-02-21 16:16:32 +01:00
Sebastian Dröge
e8efc4d020
mxfdemux: Also include the picture/sound/data essence coding in the unknown caps
2009-02-12 11:00:07 +01:00
Sebastian Dröge
25e84ff223
mxfdemux: Update TODO, we should support the drop-frame property of timecode tracks
2009-02-12 11:00:07 +01:00
Sebastian Dröge
eb78f9c8f7
mxfdemux: Fix resolval of identifications from the preface
2009-02-12 11:00:07 +01:00
Sebastian Dröge
61b284de0d
mxfdemux: Parse MXFTimestamp's milliseconds and add _to_string() function
2009-02-12 11:00:07 +01:00
Sebastian Dröge
144466e2cd
mxfdemux: Update TODO
2009-02-12 11:00:07 +01:00
Sebastian Dröge
08aadd31dc
mxfdemux: After pulling the footer metadata reset essence track positions to 0
2009-02-09 18:14:14 +01:00
Sebastian Dröge
1229f0a149
mxfdemux: When trying to find an essence track position try to find position+1 too
...
By searching for the following position we will add the complete
generic container (i.e. all tracks) at the same position to the
index which should make finding positions for more than one track
a bit faster.
2009-02-09 17:55:05 +01:00
Sebastian Dröge
df0dd0b378
mxfdemux: For new essence tracks only set the position to 0 if it starts in the current partition
2009-02-09 17:48:38 +01:00
Sebastian Dröge
1ae9334355
mxfdemux: Check if the length of the src/essence track arrays are 0, not the array itself
2009-02-09 17:44:43 +01:00
Sebastian Dröge
32dc77f853
mxfdemux: Make sure that the srcpad and essence track arrays always exist
2009-02-09 17:25:35 +01:00
Sebastian Dröge
ae4b0fcb7c
mxfdemux: Change some GST_ERRORs to something less critical
2009-02-09 16:40:44 +01:00
Sebastian Dröge
3f9400d968
mxfdemux: Only go into EOS and send segment-done after all tracks are finished
2009-02-09 16:40:44 +01:00
Sebastian Dröge
15c0db9c38
mxfdemux: Update TODO
2009-02-09 16:40:44 +01:00
Sebastian Dröge
dc408bb28b
mxfdemux: Fix seeking to the end of file
...
When seeking to a position where no new offset can be
found or after the end of a track don't set the EOS flag
to TRUE as we don't (and can't) push EOS downstream then.
Instead set the current essence track position to then
end of the essence track and let the loop or chain function
set everything to EOS and push EOS downstream.
Also restart the pad's task if resolving metadata failed
(playback will continue as before) and return FALSE from
the seek if no new offset could be found.
2009-02-09 07:33:41 +01:00
Sebastian Dröge
f169201c24
mxfdemux: Fix last_stop calculation when seeking
2009-02-08 21:52:03 +01:00
Sebastian Dröge
33baa707a2
mxfdemux: Resolve source package before accessing it's members
2009-02-08 21:31:40 +01:00
Sebastian Dröge
2b566be795
mxfdemux: Correctly implement timestamping in all cases
...
When the material package track and source package track
edit rate are different the source package track edit
rate applies to the stored essence and the material track
edit rate only applies to the values in the track's sequence
and components.
2009-02-08 21:23:03 +01:00
Sebastian Dröge
3cc77d4dd6
mxfdemux: Correctly handle DURATION queries with a negative duration
2009-02-08 21:22:17 +01:00
Sebastian Dröge
81fb90748f
mxfdemux: When changing to the component after the last component update the essence track position
2009-02-08 21:17:11 +01:00
Sebastian Dröge
c33678dab3
mxfdemux: Small cleanup and an additional check
...
Update TODO list, reduce size of a stack allocated string
and don't allow essence tracks with an invalid edit rate
2009-02-08 21:12:21 +01:00
Sebastian Dröge
658066d085
mxfdemux: For material packages make sure that tracks resolve to source tracks
2009-02-08 07:33:33 +01:00
Sebastian Dröge
8dc9f2ea4d
mxfdemux: Add support for non-standard Avid MXF files containing DNxHD essence
...
Avid uses a custom essence container UL and custom essence element keys
that are fortunately compatible with the generic container essence
elements. Partially fixes bug #561922 .
2009-02-07 10:38:26 +01:00
Sebastian Dröge
3c3dff6869
mxfdemux: Make essence track creation a bit more robust against broken files
...
Some files contain multiple tracks with the same track number but different
track id inside the same source package. This is invalid and we simply ignore
the second and following of such traacks now instead of overwriting the
information of the first one.
2009-02-07 10:13:54 +01:00
Sebastian Dröge
410681f8b5
mxfdemux: Don't include multiple descriptors in the track's descriptors
2009-02-07 10:03:24 +01:00
Sebastian Dröge
6e392318c0
mxfdemux: Add support for non-standard Avid MXF files containing DV essence
...
Avid usually uses a custom essence container label for the essence
descriptors and stores the actual codec that is used inside the
picture essence coding field (and for sound probably in the sound
essence coding field but I have no sample files with sound).
Partially fixes bug #561922 .
2009-02-07 09:27:13 +01:00
Sebastian Dröge
1822dc99d3
mxfdemux: Add data definition for Avid vendor specific picture essence
2009-02-06 11:57:46 +01:00
Sebastian Dröge
86088f92be
mxfdemux: For tracks with no known mapping use dummy caps
2009-02-06 11:55:45 +01:00
Sebastian Dröge
6eef7983fb
mxfdemux: Don't remove invalid new essence track twice from the GPtrArray
2009-02-06 11:21:00 +01:00
Sebastian Dröge
f529a4c6b3
mxfdemux: Implement keyframe detection for MPEG4 video streams
2009-02-06 11:09:11 +01:00
Sebastian Dröge
0d8099685d
mxfdemux: Handle some more special cases when setting the position when seeking
2009-02-06 10:46:47 +01:00
Sebastian Dröge
bb11522f1d
mxfdemux: Adjust last_stop to the last keyframe when seeking
2009-02-06 10:46:09 +01:00
Sebastian Dröge
22cb259f19
mxfdemux: Fix logic for finding the previous keyframe
2009-02-06 10:06:59 +01:00
Sebastian Dröge
6208795598
mxfdemux: Add keyframe detection for MPEG2 video streams
...
This is useful for seeking as we usually want to seek to the previous
keyframe. The keyframe detection is done by parsing the MPEG2
elementary stream and if a GOP or I-frame packet is found we
assume a keyframe in this edit unit.
2009-02-06 09:53:13 +01:00
Sebastian Dröge
c9f6a8b586
mxfdemux: Protect the metadata with a lock against concurrent access
2009-02-05 21:29:29 +01:00
Sebastian Dröge
ad2a64870c
Update TODO
2009-02-04 11:12:14 +01:00
Sebastian Dröge
3e2a880c6b
Post an UMID tag with the current package's UMID
2009-02-04 11:12:14 +01:00
Sebastian Dröge
c0557df34d
Reset the current partition after seeking and NEWSEGMENT events
2009-02-04 11:12:13 +01:00
Sebastian Dröge
2ee7e7768d
In push mode play all remaining parts of the file on EOS if there are any
2009-02-04 11:12:13 +01:00
Sebastian Dröge
cc5699340d
Add property to set the maximum allowed time difference between tracks
2009-02-04 11:12:13 +01:00
Sebastian Dröge
fd72ef34f6
Always set the current package, not only when it was changed
...
This is necessary as the current package link will be set to NULL
when updated metadata is parsed and should be set here again.
2009-02-04 11:12:13 +01:00
Sebastian Dröge
a79c4e0314
Try to resolve all synchronization issues, not only the first
2009-02-04 11:12:13 +01:00
Sebastian Dröge
c4a0bc9887
Remove some checks that will always be TRUE
2009-02-04 11:12:13 +01:00
Sebastian Dröge
18e2ffa484
Cleanup playback package selection and notify about the current package
2009-02-02 17:48:47 +01:00
Sebastian Dröge
5277650a20
Update tags properly, especially on component switch
2009-02-02 16:23:30 +01:00
Sebastian Dröge
0c756199c0
Error out if no pads could be created
2009-02-02 16:05:14 +01:00
Sebastian Dröge
ee131d8af7
Resolve metadata and update tracks if necessary before seeking
2009-02-02 15:54:23 +01:00
Sebastian Dröge
5e57a0a052
Don't go after the last component of a track
2009-02-02 15:54:00 +01:00
Sebastian Dröge
92f372ba30
Return an error if updating an already existing pad fails
2009-02-02 15:53:32 +01:00
Sebastian Dröge
60f5c6f03f
Fix seeking if the source clip duration is unknown
2009-02-02 07:44:12 +01:00
Sebastian Dröge
0ac0645de6
Add initial support for seeking in push mode
2009-02-01 17:00:33 +01:00
Sebastian Dröge
99298da3d5
Fix deadlocks when seeking in pull mode failed and check new offset before using it
2009-02-01 17:00:33 +01:00
Sebastian Dröge
43ade6cf71
Update offset in push mode and handle events properly
2009-02-01 17:00:23 +01:00
Sebastian Dröge
58a3220dde
Implement initial seeking support (pull mode only)
2009-02-01 15:07:09 +01:00
Sebastian Dröge
6a09f5f4fe
Don't use GLib 2.16 API unconditionally
2009-01-31 11:29:20 +01:00
Sebastian Dröge
93a2b5c9ea
Check for EOS on all pads after adjusting the essence track durations
2009-01-31 11:02:26 +01:00
Sebastian Dröge
ebd8b8dbaf
Fix duration calculation for essence tracks
2009-01-31 11:02:26 +01:00
Sebastian Dröge
f638caef57
Implement GstElement::query/get_query_types vfuncs
2009-01-31 11:02:26 +01:00
Sebastian Dröge
061a96fa94
Reset all internal state in finalize
2009-01-31 11:02:26 +01:00
Sebastian Dröge
02769b4a4d
Improve EOS detection and fix push mode for the last pushed in buffer
2009-01-31 11:02:26 +01:00
Sebastian Dröge
707136fe5d
Keep track of essence track position when playing source packages
...
This ensures that the correct essence elements are played and
that we seek to the correct essence elements.
2009-01-31 11:02:26 +01:00
Sebastian Dröge
dfa0e43848
Compensate for timestamp/duration rounding errors
2009-01-31 11:02:25 +01:00
Sebastian Dröge
a930b36adc
Improve EOS logic to check all pads when pulling a packet returned EOS
...
This makes sure that we finish all pads that are at EOS now instead of
just finishing one and returning to this point over and over again.
2009-01-31 11:02:25 +01:00
Sebastian Dröge
2dbe706330
Only push buffers for pads that are not more than 500ms before other pads
2009-01-31 11:02:25 +01:00
Sebastian Dröge
91ed2ef166
Improve EOS logic to only go into EOS after all tracks are finished
2009-01-31 11:02:25 +01:00
Sebastian Dröge
b783f38813
Update TODO list
2009-01-31 11:02:25 +01:00
Sebastian Dröge
20c92a4db3
Try to keep the timestamp difference between tracks lower than 500ms
2009-01-31 11:02:25 +01:00
Sebastian Dröge
742fc4e80d
Fix playback of atom files
2009-01-31 11:02:25 +01:00
Sebastian Dröge
f404262adf
Keep track of current playback position
2009-01-31 11:02:25 +01:00
Sebastian Dröge
556e3c46e4
Set essence track positions to 0 if we're at the start partition
2009-01-31 11:02:24 +01:00
Sebastian Dröge
91b35975b5
Generate an index table for essence streams
...
Generate an index table for essence streams during playback
and make sure that only the correct essence elements are
used for played tracks.
Make it possible to have one essence stream used in multiple
playback tracks.
Fix some minor bugs.
2009-01-31 11:02:24 +01:00
Sebastian Dröge
dc42074fa9
Don't complain if the preface has no primary package set
2009-01-31 11:02:24 +01:00
Sebastian Dröge
afbec8ab9b
Allow index table segments without primer pack
...
When parsing an index table segment without a valid
primer pack in this partition only parse the static
local tags and ignore all dynamic ones.
This allows us to use index table segments in some
broken files.
2009-01-31 11:02:24 +01:00
Sebastian Dröge
4162c36f17
Add essence track abstraction
...
Add an abstraction to represent essence tracks and
use this everywhere. This will later be used to keep
track of positions and to generate/handle seek tables.
Some random cleanup and renaming.
2009-01-31 11:02:24 +01:00
Sebastian Dröge
914b108db9
Fix parsing of index table segments
...
Allocate memory for the pos tables and slice offsets
of the index entries separately to a) fix alignment in
weird cases and b) to actually have something to free()
in the index table segment reset function.
2009-01-31 11:02:24 +01:00
Sebastian Dröge
264e30abb9
Improve detection of the end of the header metadata
...
Header metadata is finished after partition.header_byte_count
bytes after the first byte of the primer pack are handled.
After this there can only be index table segments, filler packets,
essence or the start of the next partition.
This fixes playback of some files that have non-standard metadata
packets in the header metadata.
2009-01-31 11:02:24 +01:00
Sebastian Dröge
7ce5b5a2d6
Store all partitions & primer packs in memory for faster access
...
Store all partitions & primer packs in memory for faster access.
This is later needed for fast seeking.
Pre-fill the list of partitions with the content of the random
index pack.
Don't parse metadata of an partition twice.
2009-01-23 10:09:01 +01:00
Sebastian Dröge
054167100d
Fix UL for DTS and MPEG2 layer 1
2009-01-22 13:13:00 +01:00
Sebastian Dröge
6b5f04100a
Add support for AAC audio
2009-01-22 13:13:00 +01:00
Sebastian Dröge
716ce72e46
Store MXF metadata in a hash table, keyed by UID
...
Store the MXF metadata in a hash table, keyed by the
instance UID. This simplifies resolval of the metadata
and makes looping over all metadata sets unnecessary
in most cases.
Additionally parse metadata always. If we already have
a metadata set with the same UID replace it only if
the new metadata set is from a later offset. This
fixes metadata parsing of files where following partitions
don't have a complete copy of the previous metadata.
2009-01-22 13:13:00 +01:00
Sebastian Dröge
52028f2e11
Build the random index pack while parsing
...
If the file contains no random index pack or just
an invalid one build the random index pack while
parsing.
2009-01-22 13:13:00 +01:00
Sebastian Dröge
fc4be0acca
Update copyrights for 2009
2009-01-22 13:13:00 +01:00
Sebastian Dröge
100dfc34d6
Simplify parsing of UL/UUID arrays
...
Simplify parsing of UL/UUID arrays by abstracting it
into a separate function.
2009-01-22 13:13:00 +01:00
Sebastian Dröge
cd80f534f5
Implement parsing of DMS1 (SMPTE S380M)
2009-01-22 13:12:59 +01:00
Sebastian Dröge
7dad262671
gst/mxf/: "Generation UID" and "This Generation UID" are different so handle them different. Also both are not part o...
...
Original commit message from CVS:
* gst/mxf/Makefile.am:
* gst/mxf/mxfdemux.c:
* gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag),
(mxf_metadata_preface_handle_tag),
(mxf_metadata_identification_handle_tag),
(mxf_metadata_content_storage_handle_tag),
(mxf_metadata_essence_container_data_handle_tag),
(mxf_metadata_generic_package_handle_tag),
(mxf_metadata_track_handle_tag),
(mxf_metadata_sequence_handle_tag),
(mxf_metadata_structural_component_handle_tag),
(mxf_metadata_generic_descriptor_handle_tag),
(mxf_metadata_locator_handle_tag),
(mxf_metadata_locator_class_init):
* gst/mxf/mxfmetadata.h:
"Generation UID" and "This Generation UID" are different so handle
them different. Also both are not part of every metadata type.
2009-01-05 13:41:07 +00:00
Sebastian Dröge
caa8349067
gst/mxf/mxfdemux.c: Don't allow negative or zero edit rates to prevent division by zero and we support negative edit ...
...
Original commit message from CVS:
* gst/mxf/mxfdemux.c:
(gst_mxf_demux_handle_header_metadata_update_streams),
(gst_mxf_demux_pad_next_component):
Don't allow negative or zero edit rates to prevent division
by zero and we support negative edit rates anyway.
2009-01-05 10:34:03 +00:00
Sebastian Dröge
8fcdca999a
gst/mxf/: Fix compilation with debugging disabled.
...
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c:
(mxf_metadata_wave_audio_essence_descriptor_handle_tag),
(mxf_bwf_create_caps):
* gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_klv_packet):
* gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag),
(mxf_metadata_preface_handle_tag),
(mxf_metadata_identification_handle_tag),
(mxf_metadata_content_storage_handle_tag),
(mxf_metadata_essence_container_data_handle_tag),
(mxf_metadata_generic_package_handle_tag),
(mxf_metadata_source_package_handle_tag),
(mxf_metadata_track_handle_tag),
(mxf_metadata_sequence_handle_tag),
(mxf_metadata_structural_component_handle_tag),
(mxf_metadata_source_clip_handle_tag),
(mxf_metadata_dm_segment_handle_tag),
(mxf_metadata_generic_descriptor_handle_tag),
(mxf_metadata_file_descriptor_handle_tag),
(mxf_metadata_generic_picture_essence_descriptor_handle_tag),
(mxf_metadata_generic_sound_essence_descriptor_handle_tag),
(mxf_metadata_generic_data_essence_descriptor_handle_tag),
(mxf_metadata_multiple_descriptor_handle_tag):
* gst/mxf/mxfparse.c: (mxf_partition_pack_parse),
(mxf_index_table_segment_parse), (mxf_primer_pack_parse),
(mxf_local_tag_add_to_hash_table):
Fix compilation with debugging disabled.
2009-01-05 10:22:29 +00:00
Sebastian Dröge
71fc2ce3b4
Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with more than a single component. This currently only works...
...
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c: (mxf_bwf_handle_essence_element),
(mxf_aes3_handle_essence_element):
* gst/mxf/mxfalaw.c: (mxf_alaw_handle_essence_element):
* gst/mxf/mxfd10.c: (mxf_d10_picture_handle_essence_element),
(mxf_d10_sound_handle_essence_element):
* gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_init),
(gst_mxf_demux_choose_package),
(gst_mxf_demux_handle_header_metadata_update_streams),
(gst_mxf_demux_pad_next_component),
(gst_mxf_demux_handle_generic_container_essence_element),
(gst_mxf_demux_parse_footer_metadata),
(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
* gst/mxf/mxfdv-dif.c: (mxf_dv_dif_handle_essence_element):
* gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_handle_essence_element):
* gst/mxf/mxfmetadata.c: (mxf_metadata_sequence_init),
(mxf_metadata_structural_component_init),
(mxf_metadata_generic_picture_essence_descriptor_init):
* gst/mxf/mxfmpeg.c: (mxf_mpeg_video_handle_essence_element),
(mxf_mpeg_audio_handle_essence_element):
* gst/mxf/mxfparse.h:
* gst/mxf/mxfup.c: (mxf_up_handle_essence_element):
* gst/mxf/mxfvc3.c: (mxf_vc3_handle_essence_element):
* tests/check/elements/mxfdemux.c: (_sink_chain):
Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with
more than a single component. This currently only works for
the case where the components are stored in playback order
in the file.
Set some more default/distinguished values for the structural
metadata.
Make some types more strict by choosing the correct subclasses.
Set DISCONT flag on buffers after a component switch.
Take the last partition from the random index pack for the footer
partition of the header partition doesn't reference the footer
partition. This gives us the final structural metadata for
some more files in the beginning.
2008-12-31 08:53:02 +00:00
Sebastian Dröge
9488ef3764
gst/mxf/mxfmpeg.c: Add initial support for h.264 video (SMPTE RP2008).
...
Original commit message from CVS:
* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
(mxf_mpeg_create_caps):
Add initial support for h.264 video (SMPTE RP2008).
2008-12-22 20:56:10 +00:00
Sebastian Dröge
2169215a12
gst/mxf/mxfmetadata.*: If resolving a metadata object failed the first time return
...
Original commit message from CVS:
* gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve):
* gst/mxf/mxfmetadata.h:
If resolving a metadata object failed the first time return
FALSE for a second mxf_metadata_base_resolve() call instead
of TRUE.
2008-12-22 20:37:24 +00:00
Sebastian Dröge
ed7bd1a9a3
gst/mxf/: Cleanup of the includes.
...
Original commit message from CVS:
* gst/mxf/mxf.c:
* gst/mxf/mxfaes-bwf.h:
* gst/mxf/mxfd10.c:
* gst/mxf/mxfdms1.c:
* gst/mxf/mxfdms1.h:
* gst/mxf/mxfmpeg.h:
* gst/mxf/mxftypes.h:
Cleanup of the includes.
2008-12-22 10:14:35 +00:00
Sebastian Dröge
083d8c7018
gst/mxf/: Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to set rate and channels and use this for all ...
...
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps),
(mxf_aes3_create_caps):
* gst/mxf/mxfalaw.c: (mxf_alaw_create_caps):
* gst/mxf/mxfd10.c: (mxf_d10_create_caps):
* gst/mxf/mxfdemux.c:
* gst/mxf/mxfmetadata.c: (mxf_metadata_source_package_resolve),
(mxf_metadata_generic_picture_essence_descriptor_set_caps),
(mxf_metadata_generic_sound_essence_descriptor_set_caps):
* gst/mxf/mxfmetadata.h:
* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps):
Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to
set rate and channels and use this for all sound essence.
Give some debug output when setting picture essence caps with
invalid descriptor values.
Fix height calculation from the frame layout a bit more and
add a TODO to check if it's really correct now or if it needs
more fixing (especially, does the framerate need adjustments?).
2008-12-19 10:06:24 +00:00
Sebastian Dröge
ecc0e9221f
gst/mxf/: Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4).
...
Original commit message from CVS:
* gst/mxf/Makefile.am:
* gst/mxf/mxf.c: (plugin_init):
* gst/mxf/mxfvc3.c: (mxf_is_vc3_essence_track),
(mxf_vc3_handle_essence_element), (mxf_vc3_create_caps),
(mxf_vc3_init):
* gst/mxf/mxfvc3.h:
Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4).
This is untested because of lack of sample files but should
work fine.
2008-12-18 17:49:08 +00:00
Sebastian Dröge
b050e06170
gst/mxf/mxfdemux.c: In push mode skip the run in again if we get buffers with an offset before the run in. This can h...
...
Original commit message from CVS:
* gst/mxf/mxfdemux.c: (gst_mxf_demux_chain):
In push mode skip the run in again if we get buffers with
an offset before the run in. This can happen on seeks for example.
2008-12-17 12:06:43 +00:00
Sebastian Dröge
5587f91210
gst/mxf/: Implement an essence element handling registry and use this instead of an hardcoded, large if-then-else block.
...
Original commit message from CVS:
* gst/mxf/mxfaes-bwf.c: (mxf_is_aes_bwf_essence_track),
(mxf_bwf_handle_essence_element),
(mxf_aes3_handle_essence_element), (mxf_bwf_create_caps),
(mxf_aes3_create_caps), (mxf_aes_bwf_create_caps),
(mxf_aes_bwf_init):
* gst/mxf/mxfaes-bwf.h:
* gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track),
(mxf_alaw_handle_essence_element), (mxf_alaw_create_caps),
(mxf_alaw_init):
* gst/mxf/mxfalaw.h:
* gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
(mxf_d10_picture_handle_essence_element),
(mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps),
(mxf_d10_init):
* gst/mxf/mxfd10.h:
* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
(gst_mxf_demux_handle_header_metadata_update_streams),
(gst_mxf_demux_handle_generic_container_essence_element):
* gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
(mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps),
(mxf_dv_dif_init):
* gst/mxf/mxfdv-dif.h:
* gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track),
(mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps),
(mxf_jpeg2000_init):
* gst/mxf/mxfjpeg2000.h:
* gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track),
(mxf_mpeg_video_handle_essence_element),
(mxf_mpeg_audio_handle_essence_element), (mxf_mpeg_es_create_caps),
(mxf_mpeg_create_caps), (mxf_mpeg_init):
* gst/mxf/mxfmpeg.h:
* gst/mxf/mxfparse.c: (mxf_essence_element_handler_register),
(mxf_essence_element_handler_find):
* gst/mxf/mxfparse.h:
* gst/mxf/mxfup.c: (mxf_is_up_essence_track),
(mxf_up_handle_essence_element), (mxf_up_rgba_create_caps),
(mxf_up_create_caps), (mxf_up_init):
* gst/mxf/mxfup.h:
Implement an essence element handling registry and use this instead
of an hardcoded, large if-then-else block.
2008-12-16 12:30:34 +00:00