Tim-Philipp Müller
ea7d5027a0
h264parse: fix up handling of input caps corner cases
...
Do more elaborate validation of the input caps: what fields
are required and/or not allowed. Don't assume AVC3 format
input without codec_data field is byte-stream format. Fix
up some now-unreachable code (CID 1232800
).
2014-08-28 20:18:17 +01:00
Thiago Santos
9b6c8a48b4
h264parse: don't consider unknown stream-format as avc
...
It should try to use bytestream in these cases that the format
is set to _FORMAT_NONE as it seems that is what the 'else' clause
for bytestream can handle (by defaulting to _FORMAT_BYTESTREAM).
2014-08-25 13:37:57 -03:00
Gwenole Beauchesne
7d44a51bfe
h264parse: fix collection of access units to preserve config headers.
...
Always use a GstAdapter when collecting access units (alignment="au")
in either byte-stream or avcC format. This is required to properly
preserve config headers like SPS and PPS when invalid or broken NAL
units are subsequently parsed.
More precisely, this fixes scenario like:
<SPS> <PPS> <invalid-NAL> <slice>
where we used to reset the output frame buffer when an invalid or
broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
preventing the next slice unit to be decoded, should this also
represent any valid data.
https://bugzilla.gnome.org/show_bug.cgi?id=732203
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:26:48 +02:00
Gwenole Beauchesne
34c2cfd4dd
h264parse: improve conditions for skipping NAL units.
...
Carefully track cases when skipping broken or invalid NAL units is
necessary. In particular, always allow NAL units to be processed
and let that gst_h264_parse_process_nal() function decide on whether
the current NAL needs to be dropped or not.
This fixes parsing of streams with SEI NAL buffering_period() message
inserted between SPS and PPS, or SPS-Ext NAL following a traditional
SPS NAL unit, among other cases too.
Practical examples from the H.264 AVC conformance suite include
alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
when parsing in stream-format=byte-stream,alignment=au mode.
https://bugzilla.gnome.org/show_bug.cgi?id=732203
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:26:48 +02:00
Gwenole Beauchesne
7bb6443bfb
h264parse: introduce new state tracking variables.
...
Improve parser state tracking by introducing new flags reflecting
it: "got-sps", "got-pps" and "got-slice". This is an addition for
robustness purposes.
Older have_sps and have_pps variables are kept because they have
a different meaning. i.e. they are used for deciding on when to
submit updated caps or not, and rather mean "have new SPS/PPS to
be submitted?"
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:26:48 +02:00
Gwenole Beauchesne
5601c87598
h264parse: fix and optimize NAL collection function.
...
Use gst_h264_parser_identify_nalu_unchecked() to identify the next
NAL unit. We don't want to parse the full NAL unit, but only the
header bytes and possibly the first RBSP byte for identifying the
first_mb_in_slice syntax element.
Also fix check for failure when returning from that function. The
only success condition for that is GST_H264_PARSER_OK, so use it.
https://bugzilla.gnome.org/show_bug.cgi?id=732154
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:26:48 +02:00
Sebastian Dröge
78ab2cdffd
vc1parse: Fix compiler warnings when compiling with G_DISABLE_ASSERT
2014-06-29 20:11:58 +02:00
Gwenole Beauchesne
9bd186a960
codecparsers: h264: fix memory leak in GstH264PPS.
...
The gst_h264_parse_pps() function dynamically allocates the slice
group ids map array, so that needs to be cleared before parsing a
new PPS NAL unit again, or when it is no longer needed.
Likewise, a clean copy to the internal NAL parser state needs to be
performed so that to avoid a double-free corruption.
https://bugzilla.gnome.org/show_bug.cgi?id=707282
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-06-27 14:00:10 +02:00
Aurélien Zanelli
67df207280
codecparsers: h264: add support for Recovery Point SEI message.
...
The recovery point SEI message helps a decoder in determining if the
decoding process would produce acceptable pictures for display after
the decoder initiates random access or after the encoder indicates
a broken link in the coded video sequence.
This is not used in the h264parse element, but it could help debugging.
https://bugzilla.gnome.org/show_bug.cgi?id=723380
2014-06-26 17:22:26 +02:00
Chris Bass
d9d4a91c62
h265parse: fix hvcC size check
...
In ISO/IEC 14496-15, the minimum size of a HEVCDecoderConfigurationRecord
(i.e., the contents of a hvcC box) is 23 bytes. However, the code in h265parse
checks that the size of this data is not less than 28 bytes, and it refuses to
accept caps if the check fails. The result is that standards-conformant streams
that don't carry any parameter sets in their hvcC boxes won't play.
https://bugzilla.gnome.org//show_bug.cgi?id=731783
2014-06-22 21:57:28 +01:00
Aurélien Zanelli
2c3e7b6352
h264parse: use new gst_h264_video_calculate_framerate() to get framerate
...
https://bugzilla.gnome.org/show_bug.cgi?id=723352
2014-05-22 16:12:36 +02:00
Aurélien Zanelli
a9dfa354f6
h264parse: set field_pic_flag when parsing a slice header
...
field_pic_flag was used but never set to other value than its default
https://bugzilla.gnome.org/show_bug.cgi?id=730363
2014-05-22 15:54:04 +02:00
Haakon Sporsheim (ieei)
36a2acae45
h264parse: unref/replace force_key_unit_event in gst_h264_parse_reset
...
https://bugzilla.gnome.org/show_bug.cgi?id=729200
2014-04-29 12:17:51 -03:00
Vincent Penquerc'h
7659f3bec4
vc1parse: guard against dividing by zero
...
If framerate is unknown, we write the maximum framerate
allowed for this profile/level:
https://tools.ietf.org/html/draft-ietf-avt-rtp-vc1-06#section-6.1
http://wiki.multimedia.cx/index.php?title=VC-1#Setup_Data_.2F_Sequence_Layer
Coverity 1139694
2014-04-21 13:23:46 +01:00
Sebastian Dröge
10ffa089a0
h264parse: Copy over DISCONT flag from input buffers
2014-03-29 10:33:45 +01:00
Sreerenj Balachandran
4d17166b03
mpegvideoparse: Differentiate the mpeg-2 stream from mpeg-1 based on pic_ext
...
Presence of picture extension header identifies the stream as mpeg2.
We are supposed to set the mpegversion to 2 if there is a picextension
instead of blindly setting the version to 1
https://bugzilla.gnome.org/show_bug.cgi?id=726028
2014-03-12 08:46:41 +01:00
Thibault Saunier
5fd9b42f29
h264parse: Default framerate to 0/1 when no informations found
...
It is not perfect but it allows us to be sure that the mandatory 'framerate'
field is present in the caps.
As soon as some information is found in the stream, that will be
updated.
https://bugzilla.gnome.org/show_bug.cgi?id=723243
2014-01-31 09:28:58 +01:00
Aurélien Zanelli
af78b45979
h264parse: Fix multiple SEI messages in one SEI RBSP parsing.
...
An SEI RBSP could contains more than one SEI message as specified in
7.4.2.3.1.
This commit change the parser API: the gst_h264_parser_parse_sei()
function now create and fill a GArray containing GstH264SEIMessage.
https://bugzilla.gnome.org/show_bug.cgi?id=721715
2014-01-23 20:18:53 +01:00
duhui.lee
cd8c0227c8
h265parse: Update caps when receive VPS/SPS/PPS
...
https://bugzilla.gnome.org/show_bug.cgi?id=722240
2014-01-20 10:05:18 +01:00
Thiago Santos
4e283dbb62
mpeg4videoparse: do not lose DISCONT flag if buffer isn't pushed
...
mpeg4videoparse might not push buffers while parsing. If those buffers
contain the DISCONT flag, it gets lost and downstream won't get any
buffer with the flag.
Fix it by adding the DISCONT to the next pushed buffer.
This makes backwards playback work.
2014-01-08 16:50:38 -03:00
Sebastian Dröge
63fee31a3f
h265parse: Allows hvc1 version 0 and fix reading of NAL count in codec_data
2014-01-06 14:52:54 +01:00
Sebastian Dröge
57c195eed8
h265parse: Fix some more debug output
...
And don't access invalid memory
2014-01-06 14:48:26 +01:00
Todd Agulnick
ccd9a9cb89
vc1parse: Some compiler warning fixes to satisfy XCode compiler
...
https://bugzilla.gnome.org/show_bug.cgi?id=720513
2013-12-16 16:53:25 +01:00
Sebastian Dröge
b3f198b67d
vc1parse: Post VIDEO_CODEC tag
2013-12-16 10:25:22 +01:00
Sebastian Dröge
3faa8920ce
pngparse: Post VIDEO_CODEC tag
2013-12-16 10:24:28 +01:00
Sebastian Dröge
6fbc101d19
mpegvideoparse: Use pbutils API to create the VIDEO_CODEC tag string
2013-12-16 10:22:24 +01:00
Sebastian Dröge
188b445fdd
mpeg4videoparse: Post VIDEO_CODEC tag
2013-12-16 10:21:00 +01:00
Sebastian Dröge
843de8ddf4
h265parse: Post VIDEO_CODEC tag
2013-12-16 10:19:36 +01:00
Sebastian Dröge
6934c7e2fc
h264parse: Post VIDEO_CODEC tag
2013-12-16 10:18:23 +01:00
Sebastian Dröge
bdfaf62a4a
h263parse: Post VIDEO_CODEC tag
2013-12-16 10:16:14 +01:00
Sebastian Dröge
e65b9b974a
diracparse: Post VIDEO_CODEC tag
2013-12-16 10:13:56 +01:00
Wim Taymans
9ac2cee2db
videoparsers: use ACCEPT_INTERSECT
...
We can also accept caps with missing fields.
2013-12-04 09:49:20 +01:00
Wim Taymans
e9dd2df3f4
videoparsers: remove fields from filter
...
Don't filter out the caps properties we can convert between when
proxying the getcaps query to the downstream peer pad.
2013-12-04 09:49:20 +01:00
Wim Taymans
d5a16bccac
videoparsers: refactor remove_fields in getcaps
2013-12-04 09:49:20 +01:00
Lubosz Sarnecki
ef9d363dfe
pngparse: Don't try to set framerate if not from upstream
...
https://bugzilla.gnome.org/show_bug.cgi?id=715166
2013-11-28 17:54:35 -05:00
Sebastian Dröge
1b747bfecb
h264parse: Fix splitting of multiple NALU per buffer
...
Conversion to byte-stream/nal crashes without that because the
baseparse frame of all NALUs is finished for the first NALU, then
used again for parsing the second NALU. Just that now the buffer
of the frame is already gone. Instead we create temporary frames
for every NALU.
2013-11-28 15:10:16 +01:00
Mark Nauwelaerts
fac0f1f668
mpeg4videoparse: accept VideoObjectLayer as start of frame and config
...
... which it deserves as much as VideoObject.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=667564
2013-11-23 11:29:23 +01:00
Thibault Saunier
07ba033943
pngparse: Proxy upstream framerate on srcpad if avalaible
...
If the user sets it himself with capsfilter, the information should be
kept and transmitted downstream.
2013-11-13 17:56:09 -03:00
Mark Nauwelaerts
830a4aa7f4
mpegvideoparse: look beyond start code before leaping
...
In case more data than a start code alone is needed to decide whether
it ends a frame, arrange for more input data and decide when available.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711627
2013-11-11 16:34:46 +01:00
Mark Nauwelaerts
a3d658915b
mpegvideoparse: tweak extension handling
2013-11-11 13:36:02 +01:00
Matej Knopp
4930dc40cd
mpegvideoparse: check for same TSN only for interlaced streams (fixes unit test)
...
https://bugzilla.gnome.org/show_bug.cgi?id=711721
2013-11-09 15:34:51 +01:00
Sebastian Dröge
ed295e83c2
Revert "mpegvparse: Fix last start code position when input buffer is empty"
...
This reverts commit 7c23a6f23c
.
The fix was not complete, see discussion in
https://bugzilla.gnome.org/show_bug.cgi?id=711627
2013-11-09 09:43:56 +01:00
Greg Rutz
7c23a6f23c
mpegvparse: Fix last start code position when input buffer is empty
...
When the input buffer is empty and we need more data to determine
whether or not to terminate the previous frame, the last start code
location needs to be set to 4 bytes before the the current position
(size of start_code is 32-bits)
https://bugzilla.gnome.org/show_bug.cgi?id=711627
2013-11-07 19:10:39 +01:00
Sreerenj Balachandran
d844832ec3
videoparsers: add H.265 HEVC video parser element
...
https://bugzilla.gnome.org/show_bug.cgi?id=708438
2013-11-06 23:14:22 +00:00
Sreerenj Balachandran
ab3f7d6096
h264parse: Remove the explicit PAR calculation based on VUI headers
...
The PAR calculation based on VUI headers is already doing by the
h264 codecparser and we does't need to duplicate those code.
https://bugzilla.gnome.org//show_bug.cgi?id=711009
2013-10-31 23:00:58 +01:00
Edward Hervey
0baac2ffb9
h264parse: Unify value setting
...
the initial par_n = par_d = 0; was always overwritten since the switch/case
handles all values
And remove the 0 case (it's the same handling as default)
2013-10-28 09:35:20 +01:00
Edward Hervey
77f254abb3
h264parse: Avoid ending up with undefined values
...
If caps aren't fixed, we'd end up with undefined values for format
and align.
2013-10-28 09:33:16 +01:00
Sebastian Dröge
4b5d560092
h264parse: Fix conversion to AVC if a SPS/PPS not from the first indizes is used
...
https://bugzilla.gnome.org/show_bug.cgi?id=707974
2013-10-03 13:26:06 +02:00
Matej Knopp
a41e8698b1
h264parse: don't update src caps if only codec_data differs
...
https://bugzilla.gnome.org/show_bug.cgi?id=705333
2013-09-09 15:09:10 +02:00
Alex Ashley
31d1c05871
h264parse: Add support for stream-format=avc3
...
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-04 13:32:36 +02:00
Edward Hervey
865ad4cdad
h264parse: Use codecparsers macros
...
note: I/SI also covers the S_I/S_SI variants
2013-08-30 09:05:43 +02:00
Matthieu Bouron
4b10f278b6
h264parse: only update src CAPS when it's necessary
...
https://bugzilla.gnome.org/show_bug.cgi?id=705452
2013-08-27 15:00:45 +02:00
Matthieu Bouron
43dcebe2a0
h264parse: do not set CAPS and passthrough mode if SPS/PPS have not been parsed
...
https://bugzilla.gnome.org/show_bug.cgi?id=705452
2013-08-27 15:00:35 +02:00
Sebastian Dröge
32a65dc5f3
mpegvideoparse: Fix switch statement in level detection code
...
Properly fall through the cases without re-assigning the level to
the wrong value.
https://bugzilla.gnome.org/show_bug.cgi?id=706369
2013-08-20 13:30:15 +02:00
Olivier Crête
27bceba4ad
mpeg4videoparse: Reparse the config if the size changed
...
Also only re-issue the caps update if the part of the config that
changed is one we care about.
2013-08-16 15:46:18 -04:00
Matej Knopp
e5ebd7d846
mpegvideoparse: support field encoding for interlaced video
...
https://bugzilla.gnome.org/show_bug.cgi?id=705144
2013-08-13 14:00:57 +02:00
Sreerenj Balachandran
b4c52425f2
vc1parse: Fix the SequenceLayer handling for advanced profile.
...
The Sequence Header Data Structure STRUCT_C for Advanced Profile
has only a one valid field which is the profile indicator. Don't
use the reserved fields for fps update like Simple/Main profile.
https://bugzilla.gnome.org/show_bug.cgi?id=705667
2013-08-12 16:12:52 +01:00
Sreerenj Balachandran
ea213f826c
vc1parse: Fix seq hdr STRUCT_A handling for advanced profile.
...
The Sequence Header Data Structure STRUCT_A for advanced profile
may be eight consecutive zero bytes.Don't try to override the
width and height values in this case.
https://bugzilla.gnome.org/show_bug.cgi?id=705667
2013-08-12 16:12:52 +01:00
Edward Hervey
8074a48594
h264parse: Use slice type to determine if frame is keyframe
...
This is the same behaviour as pre-baseparse-refactoring
https://bugzilla.gnome.org/show_bug.cgi?id=705598
2013-08-09 08:42:43 +02:00
Edward Hervey
b17676a1d5
h264parse: Do not trigger caps update if we only have PPS updates
...
Updating caps results in downstream elements potentially reconfiguring themselves
(such as decoders). If we do this in the middle of keyframes, we would result
in those elements being reconfigured and handling garbage until the next keyframe.
Instead of this only send (potentially) new codec_data when we have *both* SPS and
PPS.
https://bugzilla.gnome.org/show_bug.cgi?id=705333
2013-08-04 12:08:57 +02:00
Edward Hervey
97426a1caa
all: Fix for GST_DISABLE_GST_DEBUG
...
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +02:00
Edward Hervey
3ee8aa2c2d
h264parse: Show NALU string type in debug messages
...
If you know the NALU type by heart I tip my hat to you, for the rest of
us mere mortals this is a bit more helpful
2013-07-29 09:42:12 +02:00
Matej Knopp
bcff370c43
mpegvideoparse: do not update caps when bitrate changes
...
https://bugzilla.gnome.org/show_bug.cgi?id=705035
2013-07-29 08:41:50 +02:00
Edward Hervey
06717150bf
mpegvideoparse: Fix codec_data handling
...
Set to sequence_offset so that _process_config accepts it.
(btw: seq_offset usage throughout this plugin is really dodgy)
https://bugzilla.gnome.org/show_bug.cgi?id=702806
2013-07-23 18:16:32 +02:00
Olivier Crête
6a1896d805
h264parse: Don't abort on invalid streams
...
Just return an error
2013-07-22 16:27:16 +02:00
Edward Hervey
1db3d40a4b
mpegvideoparse: Only map input buffer once
...
Instead of constantly map/unmapping it a bit everywhere, we pass along
to all functions the GstMapInfo.
Makes mpeg video frame parsing 6% faster
https://bugzilla.gnome.org/show_bug.cgi?id=702330
2013-07-22 10:46:23 +02:00
Tim-Philipp Müller
ff495342f2
h263parse: fix height extraction for H263p
2013-07-15 23:04:35 +01:00
Tim-Philipp Müller
79249be0aa
h263parse: add pixel-aspect-ratio if upstream doesn't provide one
2013-07-15 23:04:35 +01:00
Sreerenj Balachandran
654744a03c
mpegvideoparse: Use sequence_display_extension values to update the src caps
...
The caps should always represent what the user is supposed to see.
So if there is a sequence_display_extension associated with the
stream then use the display_horizontal_size/display_vertical_size
to update the src caps (if they are less than the values provided
by sequence header).
https://bugzilla.gnome.org/show_bug.cgi?id=704009
2013-07-12 10:06:05 +02:00
Gwenole Beauchesne
18984f98dd
h264parser: fix size caps to report cropped dimensions.
...
Restore the original h264parser behaviour to report cropped dimensions
in size caps.
https://bugzilla.gnome.org/show_bug.cgi?id=694068
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-07-09 12:15:07 +02:00
Gwenole Beauchesne
d10acd3879
mpegvideoparse: cope with new parser API.
...
Migrate the code to use the new parser API based on GstMpegVideoPacket.
Also try to optimize gst_mpegv_parse_process_config() by using more of
GstMpegVideoPacket and determining the extension_start_code_identifier
prior to calling the parser function for that extension packet.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2013-07-05 17:39:28 +02:00
Sebastian Dröge
d50625eeb0
mpegvideoparse: Make sure the buffer is writable before we add the MPEG video meta
...
https://bugzilla.gnome.org/show_bug.cgi?id=702174
2013-06-14 14:53:52 +02:00
Ilya Smelykh
ef0e051e7d
h264parse: Wait until SPS/PPS before outputting any data
...
https://bugzilla.gnome.org/show_bug.cgi?id=646327
2013-06-07 12:10:08 +02:00
Matej Knopp
946ffd0da5
mpegvideoparse: don't compare buffer size when checking whether to update caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=699398
2013-05-03 12:52:18 +02:00
Tim-Philipp Müller
f1a6d84a6c
mpegvideoparse: don't announce incomplete source caps
...
Don't send any source caps yet if we're still in
drop-buffers-until-we-get-a-sequence-header mode.
Fixes transmuxing of many MPEG-TS/PS streams into
formats which require things like width, height or
codec_data on the input caps.
Also fixes issues when using playbin with decoder
sinks that want width/height etc.
https://bugzilla.gnome.org/show_bug.cgi?id=695879
2013-05-01 17:42:11 +01:00
Josep Torra
b946de7211
h264parse: Update src pad caps when it was explicitly signaled
...
Fixes src pad caps aren't updated when converting from AVC to bytestream
and new caps had been received in the sink pad.
https://bugzilla.gnome.org/show_bug.cgi?id=698679
2013-04-26 10:38:36 +02:00
Youness Alaoui
ece3d1c2f6
h264parse: Do not check for VUI parameters if they were not present in the SPS
2013-04-16 19:58:06 -04:00
Sebastian Dröge
e51cd4fe2f
gst: Add better support for static plugins
2013-04-15 15:59:22 +02:00
Edward Hervey
2296296a51
mpegvideoparse: Only add meta if downstream needs it
...
It's not perfect, because in the cases where upstream doesn't
initiate an allocation query, we won't know.
2013-03-31 19:04:12 +02:00
Edward Hervey
14e7e78b7a
mpegvideoparse: Store information in GstMpegVideo12Meta
...
FIXME : Only do so if we know downstream will need it
2013-03-31 18:55:33 +02:00
Josep Torra
030cf658e6
mpeg4videoparser: Fix a compiler warning about uninitialised variable use
2013-03-30 09:52:45 +01:00
Sebastian Dröge
ac6967a843
mpeg4videoparse: Use correct type specifiers for format strings to fix compiler warnings
2013-03-03 12:30:21 +01:00
Tim-Philipp Müller
829076358e
Revert "mpeg4videoparse: set 0 duration when vop_coded is 0"
...
This reverts commit d3219a261a
.
vop_coded 0 means that the previous frame should be repeated,
so it should have valid duration after all.
https://bugzilla.gnome.org/show_bug.cgi?id=683169
2013-02-14 09:40:08 +00:00
Olivier Crête
f25b0eda09
pngparse: Declare the width/height outside the loop
...
Also initialize them to make gcc happy
2013-02-12 18:11:34 -05:00
Olivier Crête
41afff88e0
videoparsers: Add png file parser
...
https://bugzilla.gnome.org/show_bug.cgi?id=690639
2013-02-12 17:04:38 -05:00
David Schleef
168c8406b5
Unrevert: mpegvideoparse: set timestamp based on pic offset
...
API is now in baseparse in gstreamer.
Timestamps in MPEG-TS streams are based on the last timestamp
before the start code of the picture. GstBaseParse sets the
timestamp based on the beginning of the sequence header, if
one exists before the picture. This fixes the case where the
timestamp occurs in the MPEG-TS stream between the seq header
and picture start code.
2013-02-12 12:23:03 -08:00
Tim-Philipp Müller
aedc136926
Revert "mpegvideoparse: set timestamp based on pic offset"
...
This reverts commit 63718da919
.
The required baseparse API addition has not been pushed yet,
which breaks the build.
2013-02-12 09:38:35 +00:00
David Schleef
63718da919
mpegvideoparse: set timestamp based on pic offset
...
Timestamps in MPEG-TS streams are based on the last timestamp
before the start code of the picture. GstBaseParse sets the
timestamp based on the beginning of the sequence header, if
one exists before the picture. This fixes the case where the
timestamp occurs in the MPEG-TS stream between the seq header
and picture start code.
2013-02-11 17:41:17 -08:00
Mark Nauwelaerts
7df753165f
h264parse: separate fields for distinct functional uses of codec_data field
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692789
2013-02-02 19:29:40 +01:00
Thijs Vermeir
471ad809f6
videoparsers: use appropriate printf format for gsize
2012-12-18 16:52:26 +01:00
Sebastian Dröge
f623a78924
videoparsers: Make sure the caps are actually writable before changing them
2012-12-17 15:16:48 +01:00
Sebastian Dröge
9f1257330d
videoparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
...
Otherwise we will intersect with the srcpad template caps and add all the caps fields
that the parser will ever set, no matter if downstream restricts this field or not.
This requires upstream to set this field on the caps to successfully negotiate.
https://bugzilla.gnome.org/show_bug.cgi?id=690184
2012-12-17 15:04:44 +01:00
Wim Taymans
0e0dd05fd6
h264parse: use upstream width/height when given
...
The upstream width and height should override the dimension detected in the
file.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683142
2012-12-13 14:15:04 +01:00
Arnaud Vrac
0d15c8a7a5
mpeg4videoparse: export number of sprite warping points in caps
...
This allows filtering out videos for hardware decoders that do not
support GMC at all or only support a limited number of sprite warping
points (usually 1).
2012-12-13 11:01:00 +00:00
Arnaud Vrac
07c2a82e5d
mpeg4videoparse: handle divx caps
...
DivX 4/5 are MPEG4 part 2 videos, so they can be parsed by this plugin.
2012-12-13 11:01:00 +00:00
Thibault Saunier
d53a447731
mpeg4videoparse: Fix nitpick
2012-11-15 11:40:05 -03:00
Thibault Saunier
daed78039e
mpeg4videoparse: Make sure pad template caps are not fixed from the begging
...
Right now decodebin will concider the pad template caps as fixed and if a decoder
has restriction on for example height/width it won't be autoplugged because
gst_caps_is_subset fails as those fields are missing from the pad template caps.
We fix the issue here making sure that the pad caps are fixed using data from
the stream.
2012-11-15 10:45:53 -03:00
Thibault Saunier
b3abd51656
h264parse: don't rewind to the NAL length size in bytewriter if the format is bytestream
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687548
Signed-off-by: Kevin Thornberry
2012-11-06 12:44:29 -03:00
Thibault Saunier
72933e3929
h264parse: Actually add PPS data to the output buffer
2012-11-06 11:54:39 -03:00
Tim-Philipp Müller
9e1b75fda3
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Mark Nauwelaerts
0d1c7f6ea2
videoparsers: use parsed or upstream fps to set some baseparse parameters
2012-10-25 18:02:38 +02:00
Mark Nauwelaerts
58441bf262
h264parse: extract structure from correct caps
...
... which are known != NULL.
2012-10-25 18:02:38 +02:00
Mark Nauwelaerts
821c8519e0
videoparsers: preserve upstream fps and par
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660866
2012-10-25 17:07:18 +02:00
Sebastian Dröge
36680b1190
vc1parse: Give vc1parse a rank of NONE for now
2012-10-25 14:05:48 +02:00
Sebastian Dröge
6d5fc5a771
vc1parse: Port to 1.0
2012-10-25 14:05:48 +02:00
Alessandro Decina
00abb674ca
vc1parse: disable BDU parsing until it's more mature
...
Parsing and splitting BDUs seems to trigger a few bugs in
downstream decoders so disable it for now.
2012-10-25 14:05:48 +02:00
Alessandro Decina
d03f5499bd
vc1parse: set duration on output buffers
...
This has the nice side effect of avoiding hanging at EOS with truncated asf
clips.
Conflicts:
gst/videoparsers/gstvc1parse.c
2012-10-25 14:05:48 +02:00
Alessandro Decina
f287dec1a2
vc1parse: workaround for simple/main codec_data being 5 bytes long
...
Sometimes the codec_data buffer for simple/main pushed by asfdemux is 5 bytes
instead of 4. When that happens, codec_data is still valid but it seems to have
one 0x00 trailing byte. Might be a bug in the demuxer, needs more investigation.
2012-10-25 14:05:48 +02:00
Alessandro Decina
8aec23ac05
vc1parse: remove stub stream conversion code
2012-10-25 14:05:48 +02:00
Alessandro Decina
cbecbbe23e
vc1parse: add some more debugging to _renegotiate
2012-10-25 14:05:48 +02:00
Sebastian Dröge
5af8f82ecd
vc1parse: Add VC1 parser plugin
2012-10-25 14:05:48 +02:00
Tim-Philipp Müller
32ba17cd0f
Use gst_element_class_set_static_metadata()
...
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Sreerenj Balachandran
0b5fde7ed8
mpegvideoparse: signal interlacing properly in video caps
...
The field is called "interlace-mode" mode now and is a string.
https://bugzilla.gnome.org/show_bug.cgi?id=685895
2012-10-10 16:56:38 +01:00
Mark Nauwelaerts
a17b1f4c91
mpeg4videoparse: reset frame parser after parsing caps codec data
...
... so as to arrange for a proper fresh state upon first frame.
2012-10-10 09:59:46 +02:00
Michael Smith
2a18cf41a8
mpegvideoparse: reset frame parser after parsing codec_data buffer in caps, to
...
avoid not correctly parsing the full first frame.
2012-10-09 21:19:15 -07:00
Mark Nauwelaerts
8596e8d5da
mpeg4videoparse: properly mark config data presence
...
... which we allow to start at VisualObjectSequence or
at VideoObject.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685709
2012-10-09 13:59:38 +02:00
Andoni Morales Alastruey
4d13feda83
videoparsers: fix duplicated symbols for static links with libschroedinger
2012-10-03 12:07:08 +02:00
Mark Nauwelaerts
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Mark Nauwelaerts
f2191d403c
h264parse: init pps and sps structures before parsing
...
... which arranges for a valid fallback id, and allows to continue best effort
processing even when sps/pps parsing fails.
2012-09-14 17:27:49 +02:00
Peter Seiderer
a0d88d5ff5
gsth264parse: add comment where return should be checked.
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683264
2012-09-14 17:27:49 +02:00
Arnaud Vrac
744bd3d3f2
mpeg4videoparse: use previously parsed visual object when parsing VOL
...
https://bugzilla.gnome.org/show_bug.cgi?id=683254
2012-09-14 09:14:27 +02:00
Arnaud Vrac
207a76daea
mpeg4videoparse: do not skip user data
...
User data was skipped until now, so the user data was included when
parsing the previous packet and in the config buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=683254
2012-09-14 09:14:23 +02:00
Jan Schmidt
b7d63d3fb1
videoparsers: Disable PTS interpolation in the base parse class
...
All these formats have re-ordered PTS which the base class gets
wrong. It's better to leave them blank and let the decoder sort it
out. Better yet would be to track and interpolate the timestamps
in the subclasses (FIXME)
2012-09-12 23:05:47 -07:00
Jan Schmidt
c5c44628fc
mpegvideoparse: Handle Sequence Display Extension
...
Change the way the pixel-aspect-ratio is computed by
interpreting the sequence header aspect ratio info
as MPEG-1 values until a sequence extension or
sequence display extension is seen, and then updating
the sequence header struct accordingly.
Fixes incorrect anamorphic display on some MPEG-2 (DVD)
sequences.
2012-09-12 23:05:47 -07:00
Gwenole Beauchesne
2c3eaf527b
codecparsers: h264parse: don't use anonymous unions.
...
Anonymous union is an ISO C (2011) feature that is not exposed in
compilers strictly conforming to the previous standard.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2012-09-12 10:39:32 +01:00
Edward Hervey
0a4c2524fa
mpeg4videoparse: Don't override upstream framerate and PAR
...
If upstream provided some, there's a good chance they are the ones to use
2012-09-08 17:07:12 +02:00
Tim-Philipp Müller
9e53df7667
diracparse: fix main profile mapping
2012-09-03 13:58:16 +01:00
Tim-Philipp Müller
0ff01faaaa
diracparse: change "interlaced" boolean in caps to "interlace-mode"
...
Not strictly needed, but let's make it consistent with the raw
video way of doing things.
2012-09-03 12:41:33 +01:00
Tim-Philipp Müller
39ca8d05d9
diracparse: use strings for profile and level in caps
...
For consistency with most other formats.
https://bugzilla.gnome.org/show_bug.cgi?id=658436
2012-09-03 12:40:33 +01:00
Matej Knopp
d3219a261a
mpeg4videoparse: set 0 duration when vop_coded is 0
...
https://bugzilla.gnome.org/show_bug.cgi?id=683169
2012-09-02 03:43:12 +01:00
Mark Nauwelaerts
4f2bcc3243
h264parse: ensure sufficiently sized buffer when wrapping NAL
...
Noted by <zhangyanping210@yahoo.com.cn>
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682589
2012-08-28 11:07:50 +02:00
Wim Taymans
a9f46ed059
mpegvideoparse: only apply repeat count when set
...
When there is no extension header, the repeat_count variable is left to 0 and
then the duration on the output buffers is calculated wrongly. Because the
duration is used to interpolate output timestamps, the output timestamps are
also wrong, causing bad framerates.
See https://bugzilla.gnome.org/show_bug.cgi?id=681535
2012-08-13 10:58:50 +02:00
Sebastian Dröge
afd50a79f4
tag: Update for taglist/tag event API changes
2012-07-28 00:32:58 +02:00
Wim Taymans
b98ec32380
update for tag event change
2012-06-06 13:02:40 +02:00
Sebastian Dröge
7c6093357b
videoparsers: Fix GstBaseParse::get_sink_caps() implementations
...
They should take the filter caps into account and always return
the template caps appended to the actual caps. Otherwise the
parsers stop to accept unparsed streams where upstream does not
know about width, height, etc.
Fixes bug #677401 .
2012-06-05 09:30:00 +02:00
Mark Nauwelaerts
c5664dcda7
mpegvideoparse: avoid scanning for start codes twice
...
... since a previous terminating start code serves as subsequent start code.
2012-05-22 21:34:10 +02:00
Mark Nauwelaerts
09209045b6
videoparsers: avoid repeated caps setting
2012-05-22 14:49:18 +02:00
Mark Nauwelaerts
28f3858b94
mpegvideoparse: tweak codec parser API and adjust parser element
...
... to allow for more efficient parsing and (more) consistent parsing API
among various codec parsers.
Fixes #672701 .
Conflicts:
gst/videoparsers/gstmpegvideoparse.c
2012-05-22 14:09:47 +02:00
Mark Nauwelaerts
1f0c18daf2
mpegvideoparse: unobfuscate frame parsing
...
... and add comments and debug statements.
Fixes #674202 .
Conflicts:
gst/videoparsers/gstmpegvideoparse.c
2012-05-21 20:31:27 +02:00
Mark Nauwelaerts
35a58df012
mpegvideoparse: Revert "fix crash"
...
This reverts commit 91210831ee672343a296f31357144359d5c2e768.
Such explicit reset should not be needed as it is arranged for by
the baseclass in unison with monitoring for a new frame by subclass.
As such it might wrongfully hide something else going on ...
See #674073 .
2012-05-21 20:25:01 +02:00
Mark Nauwelaerts
7f72b99426
h264parse: also consider nal_length_size when inserting codec data
...
See #676174 .
2012-05-17 11:47:19 +02:00
Matej Knopp
19f7bd470d
mpegvideoparse: Parser fails to split some frames
2012-04-16 08:42:02 +02:00
Matej Knopp
23e312872e
mpegvideoparse: Fix FPS and frame duration for telecine files
2012-04-16 08:42:02 +02:00
Matej Knopp
19ee94a8d1
mpegvideoparse: Do not update codec-data when only quantiser matrix changes
2012-04-16 08:42:02 +02:00
Matej Knopp
d487c9cd78
fix crash
...
last_sc is not reset every time a frame is being output, which can cause
last_sc > buf_size in subsequent frame.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674073
2012-04-14 10:43:21 +02:00
Mark Nauwelaerts
07db2da91c
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
gst/h264parse/gsth264parse.c
gst/videoparsers/gsth264parse.c
2012-04-06 14:52:12 +02:00
Mark Nauwelaerts
7cfdc7e912
h264parse: tweak default setting of format and alignment in codec_data case
...
... which should promote ending up in passthrough mode.
2012-04-06 14:36:44 +02:00
Mark Nauwelaerts
0882adc69f
h264parse: do not use _unchecked bytewriter variants to insert config
...
.. since the bytewriter is explicitly created with non-fixed size to
allow (very much so expected) growth.
Partially reverts commit 20669d461a
while
trying to keep (some?) compilers happy.
IIRC, the purpose of GstByteWriter in the first place was (at least)
being able to dump data without having to fuss with memory expansion
and size issues ...
Fixes #673485 .
2012-04-06 14:35:56 +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
c63fa9190b
videoparsers: Update for baseparse API changes
2012-03-30 12:02: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
a9ec4d62a8
update for buffer changes
2012-03-28 12:53:09 +02:00
Wim Taymans
6cbb840385
update for memory api changes
2012-03-15 13:37:36 +01:00
Wim Taymans
77299ba6ae
fix for caps api changes
2012-03-11 19:06:59 +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
Edward Hervey
a274bc5b76
mpegvideoparse: Fix level code
...
Valid ranges are from 4 to 10
Valid ranges >> 1 are from 2 to 5
Valid ranges >> 1 - 2 are from 0 to 3
(and not from 1 to 4)
2012-03-02 11:07:47 +01:00
Mark Nauwelaerts
4c9ac0886a
h264parse: consider nal_length_size when constructing codec_data
...
Fixes #670699 .
2012-02-23 21:18:31 +01:00
Mark Nauwelaerts
c7216162e4
h264parse: remove _chain hack
...
As we can now rely upon being passed upstream delineated data in
::handle_frame(), the latter can also parse avc formatted data
without having to intercept baseparse's chain function.
While this evidently requires 2 separate parsing paths, each can
be streamlined accordingly.
2012-02-15 17:15:10 +01:00
Mark Nauwelaerts
b8a78c6b37
videoparsers: adjust to standardized baseparse frame state tracking
2012-02-15 17:15:07 +01:00
Mark Nauwelaerts
ca5010cc4b
Merge branch 'master' into 0.11
2012-02-15 17:14:34 +01:00
Mark Nauwelaerts
5cce89b048
h264parse: use proper NALU offset for config data insertion
...
... which has to be the position of the start code, which is almost always
but need not be 4 bytes.
2012-02-15 14:29:45 +01:00
Wim Taymans
52fce49459
h263parse: fix compilation
2012-02-15 13:39:29 +01:00
Wim Taymans
16810321ee
videoparsers: don't leak event
...
Unref the event when we don't chain up to the parent
2012-02-15 13:02:06 +01:00
Wim Taymans
f9c99b4713
videoparsers: chain up to parent event handler
...
Chain up to the parent event handler to get the default behaviour instead of
returning FALSE.
2012-02-15 12:56:55 +01:00
Mark Nauwelaerts
b10b9cf109
videoparsers: adjust to modified baseparse API
2012-02-13 18:44:01 +01:00
Mark Nauwelaerts
67a8e53aef
h264parse: fixup merge
2012-02-13 18:42:53 +01:00
Wim Taymans
6c2f5814ef
h264parse: report after merge
2012-02-10 16:52:46 +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
Mark Nauwelaerts
1cbd755a2c
h264parse: unobfuscate frame parsing code
2012-02-10 14:52:03 +01:00
Wim Taymans
20ffe99cc7
h264parse: fix refcount error
2012-02-09 14:42:23 +01:00
Mark Nauwelaerts
c36bb8b73d
h264parse: decrease passthrough negotiation preference
...
Also ensure parsing fixed caps when negotiating rather than failing to
handle non-fixed list cases.
See #668471 .
2012-02-03 11:27:32 +01:00
Mark Nauwelaerts
da89903f81
h264parse: disable optimized packetized processing for reverse playback
...
... as baseparse then provides whole chunks of data (as it should) at once
to be parsed, and so the assumptions used to optimize are no longer valid.
Fixes #667560 .
2012-02-01 13:53:17 +01:00
Mark Nauwelaerts
283f97cb79
h264parse: also mind SEI position for config data insertion
...
Fixes #668627 .
2012-02-01 13:53:15 +01:00
Mark Nauwelaerts
136f42974d
h264parse: unbreak optimized packetized NALU collection processing
...
... in that it was so optimized it did not consider grouping NALU into AU
altogether.
Fixes #668627 .
2012-02-01 13:53:13 +01:00
Rob Clark
521e8b199b
videoparsers: set interlaced field in caps for mpeg2
...
https://bugzilla.gnome.org/show_bug.cgi?id=667218
2012-01-31 11:51:37 +00:00
Mark Nauwelaerts
9dc7571c75
port some more to new memory API
2012-01-25 16:22:09 +01:00
Sebastian Dröge
a2a4300241
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/kate/gstkateenc.c
gst/colorspace/colorspace.c
gst/mpegvideoparse/mpegvideoparse.c
2012-01-25 13:22:43 +01:00
Tim-Philipp Müller
5791ed71ad
h263parse: make level and profile fields in caps strings
...
For consistency with other caps.
https://bugzilla.gnome.org/show_bug.cgi?id=658438
2012-01-22 19:12:33 +00:00
Reynaldo H. Verdejo Pinochet
26a1ca09aa
Android, Fix wrong dinamic linking attempt
...
gstcodecparsers is built as an static library.
This change fixes building with the Android buildsystem.
2012-01-13 15:57:33 -03:00
Sebastian Dröge
a01a4ea2d3
Merge branch 'master' into 0.11
...
Conflicts:
gst/mpegtsdemux/tsdemux.c
gst/videoparsers/gsth264parse.c
tests/check/elements/camerabin2.c
2012-01-10 15:50:37 +01:00
Sebastian Dröge
adb4b010ed
mpeg4videoparse: Don't update caps on every buffer
2012-01-09 14:39:43 +01:00
Sebastian Dröge
c76890b7fa
mpeg4videoparse: Don't call gst_buffer_memcmp() with a NULL buffer
2012-01-09 14:28:14 +01:00
Vincent Penquerc'h
2dc41db862
h264parse: use the framerate that was copied a few lines above
2012-01-09 11:03:24 +00:00
Vincent Penquerc'h
e81ecb250a
mpegvideoparse: add a couple consts on string literal arrays
2012-01-09 10:58:56 +00:00
Vincent Penquerc'h
4f27b2b4fe
h264parse: fix test and set not using the same input
...
This fixes H.264 output not having a set framerate, and
confusing some of the elements downstream (such as interlace).
2012-01-06 10:54:11 +00:00
Mark Nauwelaerts
c4abaf1428
h264parse: fix and tweak frame timestamping
...
... to run with properly init'ed variables, and to only perform interpolation
in safe cases.
2012-01-04 11:16:18 +01:00
Mark Nauwelaerts
9d0c7d054e
h264parse: prefer negotiating pass-through
2012-01-03 22:10:20 +01:00
Mark Nauwelaerts
dcd2ee421a
h264parse: mark byte-stream AU frame with inserted codec NALs as keyframe
2012-01-03 22:08:07 +01:00
Mark Nauwelaerts
75b8ddb6cf
h264parse: properly determine skip amount when no NAL start found yet
2012-01-03 20:27:07 +01:00
Mark Nauwelaerts
c54144cc16
h264parse: some more proper parse state reset
2012-01-03 20:26:51 +01: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
Alessandro Decina
570ba0c84a
h264parse: avoid pushing SPS/PPS at start only if both are found in stream
...
Avoid injecting SPS/PPS nals only if both are already present in the stream.
Fixes some AVC clips that happen to have only PPS nals in stream.
2011-12-19 12:36:39 +01:00
Alessandro Decina
58cc609b08
mpeg4videoparse: handle force key unit events
2011-12-18 18:37:08 +01:00
Alessandro Decina
94ae4ca833
h264parse: do wait for a keyframe when handling force key unit events
...
Although some decoders can start decoding with just PPS and SPS and waiting for
a keyframe is bad when the keyframe interval is large, gst-ffmpeg does need a
keyframe to start decoding.
2011-12-18 17:40:57 +01:00
Tim-Philipp Müller
7f8adea477
videoparsers: fix LIBS order in Makefile.am
2011-12-08 22:49:50 +00:00
Thibault Saunier
6b3a314d36
videoparsers: Do not not skip startcode when needed
...
Fix: https://bugzilla.gnome.org/show_bug.cgi?id=665631
2011-12-06 17:05:52 -03:00
Alessandro Decina
a1305b949c
h264parse: handle force key unit events
...
Send SPS/PPS on force key unit events. Useful for example when serving HLS
without transcoding.
2011-12-06 13:16:29 +01:00
Edward Hervey
1c50dab50c
h264parse: Use faster parsing variant when input is packetized
...
Reduces latency and cpu usage
https://bugzilla.gnome.org/show_bug.cgi?id=665584
2011-12-05 19:04:17 +01:00
Mark Nauwelaerts
9604342af3
h264parse: reflow slice nal processing
2011-12-05 13:11:39 +01:00
Mark Nauwelaerts
ef24518b60
h264parse: optimize slice nal processing
...
Only minimal slice info is needed here to determine real frame start,
so no need to parse extensively.
Fixes #665418 .
2011-12-05 13:11:04 +01:00
Alessandro Decina
4474db4e71
h264parse: let upstream PAR override in-stream PAR
2011-12-01 09:07:18 +01:00
Alessandro Decina
21b063a78c
h264parse: rework PAR parsing
...
And in the process refactor _update_src_caps a bit
2011-12-01 09:06:56 +01:00
Luciana Fujii Pontello
6d85d4882a
h264parse: respect pixel-aspect-ratio
...
Parse pixel-aspect-ratio in vui information.
2011-12-01 08:23:22 +01:00
Thibault Saunier
e1bacb4813
codecparser: mpeg4: Look for resync code in _mpeg4_parse
...
This way the API is simpler and users can call 1 single function for packet
detection.
2011-11-28 21:25:34 -03:00
Thibault Saunier
5555b5fa9d
mpeg4videoparse: Properly handle profile and level in caps
...
Fix #660234
2011-11-28 21:25:34 -03:00
Thibault Saunier
48ad76e538
mpeg4videoparse: Port to the new mpeg4parser library
2011-11-28 21:25:34 -03:00
Thibault Saunier
db4d4979ab
mpeg4videoparse: Move to the videoparsers plugin
...
Rename a few variables to use the same convention as others elements in this
plugin
Conflicts:
gst/videoparsers/gstmpeg4videoparse.c
2011-11-28 21:25:34 -03: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
Matej Knopp
f949930621
videoparsers: fix format warnings
...
https://bugzilla.gnome.org/show_bug.cgi?id=662618
2011-11-28 00:04:16 +00:00
Edward Hervey
b78b980d72
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/faac/gstfaac.c
ext/opus/gstopusdec.c
ext/opus/gstopusenc.c
gst/audiovisualizers/gstspacescope.c
gst/colorspace/colorspace.c
2011-11-25 12:48:58 +01:00
René Stadler
e6df0b672f
videoparsers: port to 0.11
...
Unit tests missing for now.
2011-11-24 12:08:55 +01:00
Sebastian Dröge
dc2c61faf5
mpegvideoparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream
2011-11-24 10:14:06 +01:00
Sebastian Dröge
61fad46dca
h263parse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream
2011-11-24 10:09:59 +01:00
Sebastian Dröge
b10c1f277f
diracparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream
2011-11-24 10:08:27 +01:00
Mark Nauwelaerts
1f3b4ad574
h264parse: remove redundant code
...
... now that what should not be needed is really not needed anymore to cover
up bogus stuff that has been FIXMEd.
2011-11-18 17:20:10 +01:00
Mark Nauwelaerts
7fae33a661
h264parse: fix up AU collection processing
...
On the one hand, no need to collect nal if processing last one.
On the other hand, ensure AU collection processing to have sufficient
next NAL data in normal cases.
Fixes #663180 .
2011-11-18 17:20:08 +01:00
Mark Nauwelaerts
66543b3dd9
h264parse: mind to-be-skipped data in subsequent re-used offsets
2011-11-18 17:20:06 +01:00
Mark Nauwelaerts
e12044c359
h264parse: avoid additional NAL parsing if no AU collection is needed
2011-11-18 17:20:03 +01:00
Mark Nauwelaerts
9db239e1ec
h264parse: some more get_caps tweaking
...
... by having it use sink template rather than src template, and not
passing an downstream parsed(=true) to upstream.
2011-11-18 17:20:00 +01:00
Sebastian Dröge
f3f9e4b978
h264parse: Implement ::sink_get_caps to allow stream-format conversion again
...
Just proxying the downstream caps will prevent h264parse from
accepting a different stream-format than what is supported
downstream, although it could convert to a different stream-format.
2011-11-16 10:39:40 -08:00
Jonas Larsson
5099ff23af
h264parse: outgoing byte stream prefix always has size 4
...
Fixes #664123 .
2011-11-16 10:57:30 +01:00
Matej Knopp
a08b3bfa23
mpegvideoparse: add support for progressive frames
...
https://bugzilla.gnome.org/show_bug.cgi?id=663782
2011-11-10 19:58:13 -03:00
Sreerenj Balachandran
f8239ff692
h264parse: correct debug message and remove some dead code
...
See #661113 .
2011-10-17 11:17:50 +02:00
Sreerenj Balachandran
0a478db7dd
h264parse: correct parsing of "numberOfPictureParameterSets"
...
See #661113 .
2011-10-17 11:17:47 +02:00
Thibault Saunier
f94236078c
h264parse: Make proper use of the h264parser lib in parse_chain
...
Minor debugging logs fixes
2011-10-06 12:49:19 -03:00
Mark Nauwelaerts
9c221f492d
h264parse: properly interpret baseparse draining state
...
... which means the input data has reached the end, but need not exclude
many separate frames may still need parsing.
Fixes merging NALs into AU.
2011-10-06 12:26:23 +02:00
Sreerenj Balachandran
3129ea29b1
h264parse: correct the size argument of gst_h264_parser_identify_nalu_avc()
2011-10-06 11:59:41 +02:00
Sreerenj Balachandran
bbc30f3644
h264parse: minimum size of parsable avcC data should be 8
2011-10-06 11:59:38 +02:00
Sebastian Dröge
8e2c5833f1
videoparsers: Only fail to initialize the plugin if all parsers can't be registered
2011-10-04 12:31:05 +02:00
Thibault Saunier
2c928aba19
codecparsers: Declare the new APIs as unstable for the time being
2011-09-26 08:11:45 -03:00
Mark Nauwelaerts
b142663ca5
h263parse: bring debug statements up to desired specs
2011-09-19 14:55:12 +02:00
Mark Nauwelaerts
66f644cfcc
h264parse: bring debug statements up to desired specs
2011-09-19 14:55:09 +02:00
Thibault Saunier
df551c0af4
mpegvideoparse: Handle properly frame detection
...
Handle the case where we have buffers containing no startcode
in the middle of a frame properly.
2011-09-14 12:13:19 -03:00
Mark Nauwelaerts
a31d541f07
mpegvideoparse: send a video-codec tag
...
https://bugzilla.gnome.org/show_bug.cgi?id=569305
2011-09-14 16:14:54 +02:00
Alessandro Decina
6e9873038b
mpegvideoparse: fix compiler warnings
2011-09-12 10:23:36 +02:00
Thibault Saunier
404c18ab18
h264parse: Make use of the h264_nal_parser_free function
2011-09-09 15:02:35 -03:00
Vincent Penquerc'h
1a6dbe1e27
mpegvideoparse: make this build with older glib
...
g_list_free_full is a new convenience function.
Replace it with g_list_foreach and g_list_free.
https://bugzilla.gnome.org/show_bug.cgi?id=658450
2011-09-07 14:34:33 +02:00
Sebastian Dröge
724d7a3def
videoparsers: Make the h263 and (new) mpeg video parser autopluggable
2011-09-07 13:47:51 +02:00
George Kiagiadakis
ddf32e2c49
h264parse: Fix IDR position marking when the IDR is split into several NALs
2011-09-07 13:36:12 +03:00
Sebastian Dröge
e86e66e86c
h263parse: Add all always present fields to the src template caps
2011-09-07 11:29:37 +02:00
Sebastian Dröge
89aa5dae9d
diracparse: Add all fields to the src template caps
2011-09-07 11:29:37 +02:00
Sebastian Dröge
2adf76eb52
videoparsers: Allow parsed streams to be passed through the parsers
2011-09-07 11:29:37 +02:00
Sebastian Dröge
d4147a2798
h264parse: Put stream-format and alignment into the src template caps
...
Also remove the parsed field from the sink template caps.
2011-09-07 11:29:37 +02:00
Sebastian Dröge
456335eab4
h264parse: Change rank to PRIMARY+1 to have h264parse autoplugged
2011-09-07 11:29:36 +02:00
Sebastian Dröge
29a358e8cd
diracparse: Constify some arrays
2011-09-07 11:29:36 +02:00
Sebastian Dröge
cfb986b6bf
h264parse: Add Converter to classification
...
This parser can convert between different alignments and stream-formats.
2011-09-06 13:21:28 +02:00
Thibault Saunier
b968f82b18
h264parse: Port to the new h.264 parsing library
2011-09-02 15:46:02 +02:00
Thibault Saunier
a983b29a49
mpegvideoparse: Port to the new mpeg parsing library
2011-09-02 15:46:02 +02:00
Alessandro Decina
b01ee6bbf1
mpegvideoparse: fix sequence header parsing
...
After bitrate there's 11 bits (1 marker bit + VBV buffer size) before the load
intra quantiser flag.
2011-08-04 09:52:25 +02:00
Alessandro Decina
f12598fa64
h264parse: remove a check made useless by the last commit
2011-07-18 11:51:23 +02:00
Alessandro Decina
5f6a805dfd
h264parse: assume byte-stream if stream-format and codec_data are missing from input caps
2011-07-18 11:50:41 +02:00
Alessandro Decina
7bcc0c71b8
h264parse: ignore codec_data if stream-format=byte-stream
...
Some encoders set codec_data even when outputting byte-stream. Before this patch
h264parse would incorrectly detect such streams as AVC.
2011-07-18 11:50:41 +02:00
Olivier Crête
9eba99542f
videoparsers: Fix set-but-unused warnings
2011-07-12 17:59:56 -04:00
David Schleef
f21e36b54b
diracparse: make diracparse work correctly
2011-07-04 16:49:00 -07:00
Mark Nauwelaerts
10bec5c08f
h264parse: avc input must either pass-through or be split into bytestream chunks
...
... since parsing code is not meant to receive avc data.
Fixes #653087 .
2011-06-21 12:46:37 +02:00
Mark Nauwelaerts
160207abb9
h264parse: avoid bogus frame parsing state
2011-06-21 12:46:35 +02:00
Edward Hervey
c27b16bfe3
videoparsers: Speed up the start code search algorithm
...
Based on 96a7f9c8b1
Makes it 3-4 times faster
2011-06-12 12:55:40 +02:00
Edward Hervey
7032cd12e7
videoparsers: Fix sink pad template
...
no wonder it was never picked up ...
2011-06-12 12:40:15 +02:00
Debarshi Ray
335293bf50
Remove unused but set variables
...
This is needed to satisfy the new -Wunused-but-set-variable added in
GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html
2011-06-04 20:26:02 +01:00
Alessandro Decina
b7e93e6eae
h264parse: check for out of range pps_id one layer up
2011-05-29 13:08:16 +02:00
Alessandro Decina
f4ec523b0a
mpeg4videoparse: fix compiler warnings
2011-05-29 13:08:16 +02:00
Mark Nauwelaerts
e5d5ff4394
h264parse: plug some more buffer leaks
2011-05-25 21:51:55 +02:00
Mark Nauwelaerts
1c4b6fee9b
h264parse: compensate for skipped bytes in parsing state offsets
2011-05-25 21:51:55 +02:00
Mark Nauwelaerts
62d9ef42d4
h264parse: fix clearing adapter forming avc output frame
...
... which needs to be reset upon a new frame and otherwise (only)
for avc input in passthrough mode (rather than on every chain call).
2011-05-25 21:51:55 +02:00
Mark Nauwelaerts
a407d54d9d
h264parse: handle all valid pps_id
...
... which are in range 0-255.
2011-05-25 21:51:55 +02:00
Alessandro Decina
6a8d66728f
h264parse: allow full negotiation for packetized input
...
... by defaulting to allow splitting packetized input and having
negotiation with downstream deciding whether or not this applies.
Also enable pass-through parsing mode if input and output format
(stream-format and alignment) match.
API: GstH264Parse:split-packetized (removed)
Fixes #650228 .
2011-05-25 21:51:55 +02:00
Mark Nauwelaerts
89f87d70a8
h263parse: also extract width and height into caps
2011-05-25 21:51:55 +02:00
Mark Nauwelaerts
6f5a3ecfa7
videoparsers: add new mpegvideoparse
2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
f92f5b70fb
h264parse: avoid stale parsing state
2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
930ee466f5
h263parse: simplify minimum frame size handling
2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
217e389689
h264parse: simplify minimum frame size handling
2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
409a51bcea
h264parse: gracefully handle truncated input NAL units
...
Rather than assert'ing in such case, emit warning if the length of a NAL unit
is less than expected 2 and discard it.
Based on patch by Benjamin M. Schwartz <bens@alum.mit.edu>
Fixes #650416 .
2011-05-23 16:57:25 +02:00
Mark Nauwelaerts
c203fd52e8
h264parse: fix some buffer leaks
...
Fixes #650323 .
2011-05-17 12:34:37 +02:00
Mark Nauwelaerts
02e392ca83
h264parse: fixup boilerplate and debug code style
2011-05-17 12:34:30 +02: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
Tim-Philipp Müller
5365dbfdce
videoparsers: port to baseparse, which is now in libgstbase in core
2011-04-09 00:24:03 +01:00
René Stadler
cfb22fe985
h264parse: free PPS NAL buffers on cleanup
...
Obviously a typo. Fixes bug #645502 .
2011-03-24 22:39:04 +02:00
René Stadler
3e4e198c5e
h264parse: don't leak all NAL buffers
...
gst_buffer_replace() doesn't steal the ref. Partial fix for bug #645502 .
2011-03-24 21:53:13 +02:00
Mark Nauwelaerts
82a152533d
h264parse: chain up to parent finalize
2011-03-22 13:50:27 +01:00
Andreas Frisch
5867b69aa3
h264parse: Set parsed=true in the srcpad caps
...
Fixes bug #645412 .
2011-03-21 16:52:02 +01:00
Sebastian Dröge
935675a060
diracparse: Add correct template caps and element details
2011-03-11 14:37:06 +01:00
Edward Hervey
8d050d2116
videoparsers: Fix unitialized variables
...
Makes macosx compiler happy
2011-03-04 12:15:32 +01:00
Tim-Philipp Müller
e9b29e9dc7
h263parse: allocate H263Params struct on the stack
...
It's flat and not kept around for longer.
2011-03-03 08:51:28 +00:00
Tim-Philipp Müller
88cd418bc9
h263parse: minor clean-ups
...
const-ify some arguments and re-indent header a little.
2011-03-03 08:51:21 +00:00
Tim-Philipp Müller
493082abd7
videoparsers: change plugin filename from libgsth263parse* to libgstvideoparsersbad*
...
Due to a registry bug you may need to manually remove your
registry file to make the new plugin appear with >0 features.
2011-02-18 15:27:10 +00:00
Tim-Philipp Müller
b96cf817a0
videoparsers: fix build
...
Add includes and link against new libgstbaseparse in the
build tree.
2011-02-18 12:39:55 +00:00
David Schleef
e9ea237d03
videoparsers: Add dirac parser
2011-02-17 14:43:35 -08:00
David Schleef
fa3ff9e5ed
baseparse: Create baseparse library
2011-02-17 13:57:56 -08:00
Mark Nauwelaerts
2bb835f69a
baseparse: tune QUERY_SEEKING response
...
Even if we currently do not have a duration yet, assume seekable if
it looks like we'll likely be able to determine it later on
(which coincides with needed information to perform seeking).
2011-02-17 14:13:08 +01:00
Arun Raghavan
3f683e0288
baseparse: Update min/max bitrate before first posting them
...
This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
of 0.
https://bugzilla.gnome.org/show_bug.cgi?id=641857
2011-02-09 18:30:51 +01:00
Tim-Philipp Müller
c57a9e4ba9
videoparsers: dist h264parse.h, fixing make distcheck
...
Spotted by Nathanael D. Noblet
2011-01-31 17:45:19 +00:00
Mark Nauwelaerts
d0b942980e
videoparsers: add h264parse
...
Functionally equivalent to (legacy)h264parse and re-uses the latter's low
level NAL parsing, but otherwise based on GstBaseParse, and replacing
some property configuration with caps negotiation.
2011-01-28 12:50:25 +01:00
Mark Nauwelaerts
0c5d139ba7
h263parse: move to videoparsers and separate plugin registration
2011-01-28 12:16:59 +01:00