6 years agoPorts gst-plugins-ducati decode to gstreamer1.2.3
Pooja Prajod [Wed, 17 Dec 2014 07:36:49 +0000 (13:06 +0530)]
Ports gst-plugins-ducati decode to gstreamer1.2.3

This patch makes the necessary changes on the gst-plugins-ducati
decode files so that it becomes compatible with gstreamer1.2.
However the plugins will no longer be compatible with gstreamer0.10
after the patch is applied.

Signed-off-by: Karthik Ramanan <>
6 years agoFixes indentation issues
Pooja Prajod [Tue, 16 Dec 2014 09:46:02 +0000 (15:16 +0530)]
Fixes indentation issues

6 years agompeg4dec: Workaround: Artifacts when frame-drop logic is activated gst-0.10
Harinarayan Bhatta [Mon, 8 Sep 2014 11:34:10 +0000 (17:04 +0530)]
mpeg4dec: Workaround: Artifacts when frame-drop logic is activated

mpeg4videoparse element does not correctly mark key frames vs non
key frames for frame drop logic in gst-ducati to work. As a
workaround, frame drops are disabled for mpeg4.

Signed-off-by: Harinarayan Bhatta <>
6 years agovc1dec: Increase Y padding for interlaced streams
Harinarayan Bhatta [Mon, 25 Aug 2014 11:07:09 +0000 (16:37 +0530)]
vc1dec: Increase Y padding for interlaced streams

Y padding is 40 lines at the top and bottom is enough for
progressive streams, but for interlaced streams this needs
to be (4 * 40), 2 each for each field.

Signed-off-by: Harinarayan Bhatta <>
6 years agovidenc: Change omapbo to dmabuf fd and add dce_buf_lock/unlock
Harinarayan Bhatta [Wed, 20 Aug 2014 09:31:31 +0000 (15:01 +0530)]
videnc: Change omapbo to dmabuf fd and add dce_buf_lock/unlock

Changes imposed by IPC3.x, were already done for decoder.

Signed-off-by: Harinarayan Bhatta <>
7 years agoFix errors in handling H.264 streams with field coded pictures
Harinarayan Bhatta [Wed, 9 Jul 2014 05:48:20 +0000 (11:18 +0530)]
Fix errors in handling H.264 streams with field coded pictures

When the ducati decoder is handed a H.264 (or other) stream which
use 1 field (instead of 1 frame) encoded in 1 access-unit, it sets
the outbufsInUse flag after the first field is decoded to indicate
that the same output buffer (and inputID) should be passed in the
next VIDDEC3_process call for the second field to complete decoding
of the full frame.

This patch fixes some errors for this case, specifically of dce_buf_lock
getting called twice when the same inputID was passed to VIDDEC3_process
call. In this patch, a hash table is introduced to properly track buffers
that have been 'lock'ed and 'unlock'ing them after use for proper cleanup.

Signed-off-by: Harinarayan Bhatta <>
7 years agoFix for a dmabuf memory leak
Harinarayan Bhatta [Mon, 7 Jul 2014 07:57:30 +0000 (13:27 +0530)]
Fix for a dmabuf memory leak

Signed-off-by: Harinarayan Bhatta <>
7 years agoChanges for reverse playback
Harinarayan Bhatta [Fri, 4 Jul 2014 10:18:35 +0000 (15:48 +0530)]
Changes for reverse playback

Adapt the re-order buffer to send out frames in reverse order
when playing with negative rate.

Signed-off-by: Harinarayan Bhatta <>
7 years agoremoved code that adds jpegparse to the pipeline
Harinarayan Bhatta [Thu, 3 Apr 2014 10:18:59 +0000 (15:48 +0530)]
removed code that adds jpegparse to the pipeline

Instead increased the priority of jpegparse element.

Signed-off-by: Harinarayan Bhatta <>
7 years agoSet GstBuffer flags for interlaced frames
Harinarayan Bhatta [Thu, 3 Apr 2014 10:09:52 +0000 (15:39 +0530)]
Set GstBuffer flags for interlaced frames

Set the Top-Field-Fist, Repeat-First-Field flags for interlaced
content on gstreamer output buffers.

Signed-off-by: Harinarayan Bhatta <>
7 years agoAllocate buffers from downstream element
Harinarayan Bhatta [Thu, 3 Apr 2014 10:05:00 +0000 (15:35 +0530)]
Allocate buffers from downstream element

Due to setting "first_out_buffer" to true by default, this plugin
does not use buffers allocated by downstream peer element. Changing
this to allow for downstream elements such as VPE plugin to allocate
and supply buffers to the decoder.

Signed-off-by: Harinarayan Bhatta <>
7 years agogst_buffer_make_metadata_writable is not needed
Harinarayan Bhatta [Thu, 3 Apr 2014 10:04:24 +0000 (15:34 +0530)]
gst_buffer_make_metadata_writable is not needed

gst_buffer_make_metadata_writable is not needed, moreover it
creates a copy of the buffer, just gst_buffer_set_caps will set a
new caps on the buffer

Signed-off-by: Harinarayan Bhatta <>
7 years ago[FIX] Check for valid input ID and correct order of deletion
Amarinder Bindra [Sat, 15 Mar 2014 09:59:01 +0000 (15:29 +0530)]
[FIX] Check for valid input ID and correct order of deletion

During the flush command, the inputID would not be valid, hence
the function call to get the dmabuf id would result in SIGSEGV
error. Added a check for the inputID before getting the fd.
Also, if the call to IPU Engine_close is done in the starting, the
access to params or dce related data results in SIGSEGV, hence moving
the call to Engine_close just before dce_deinit.

Signed-off-by: Amarinder Bindra <>
7 years ago[FIX] Defer buffer lock till calling process
Pradeep Venkatasubbarao [Tue, 11 Mar 2014 12:45:41 +0000 (18:15 +0530)]
[FIX] Defer buffer lock till calling process

Fix for issue OMAPS00301600.

The output buffers need to be locked (pinned to tiler) before calling

Earlier this call, dce_buf_lock, was getting called much earlier.
So, in case of an error scenario, the buffers were not being unlocked
as dce_buf_unlock was not getting called.

This patch fixes the issue by defering the locking call till
before calling VIDDEC3_process.

Signed-off-by: Pradeep Venkatasubbarao <>
7 years agodirectory struct alignment with latest codecengine
Chandramohan C [Sun, 25 Sep 2016 04:53:33 +0000 (04:53 +0000)]
directory struct alignment with latest codecengine

Adapted the directory structures according to the latest
codecengine for including header files

Signed-off-by: Chandramohan C <>
7 years agodmabuffer usage added to gst ducati plugins as per IPC3.x
Chandramohan [Thu, 26 Sep 2013 12:22:28 +0000 (17:52 +0530)]
dmabuffer usage added to gst ducati plugins as per IPC3.x

According to IPC3.x input and output buffers need to be passed as
dmabuffer fd and all the output buffers need to be lock/unlock
before and after process call.This patch is to add support to
dmabuf fd and lock/unlock mechanism.

Signed-off-by: Chandramohan <>
8 years agoCompilation error fixed. Happened due to a typo
Subhajit Paul [Mon, 17 Jun 2013 12:29:47 +0000 (17:59 +0530)]
Compilation error fixed. Happened due to a typo

8 years agoplaybin2 uses ducati for MJPEG/JPEG playback
Subhajit Paul [Thu, 13 Jun 2013 14:28:14 +0000 (19:58 +0530)]
playbin2 uses ducati for MJPEG/JPEG playback

Bugs fixed:
- larger files (> 4K x 4k) will still use jpegdec
- smaller files will use ducati, though nowhere to be displayed
- putting a jpegparse explicitly will not affect operation
- mjpeg is played using ducati in playbin2

8 years agoRevert "playbin2 uses ducatijpegdec to play mjpeg streams"
Subhajit Paul [Mon, 3 Jun 2013 06:33:44 +0000 (12:03 +0530)]
Revert "playbin2 uses ducatijpegdec to play mjpeg streams"

This reverts commit b0bba5e159710919a2579bd00ee4803137304096.

Signed-off-by: Subhajit Paul <>
8 years agoAdded debug statements to display codec version and VIDDEC3 calls
Mrinmayee Hingolikar [Tue, 7 May 2013 18:46:14 +0000 (18:46 +0000)]
Added debug statements to display codec version and VIDDEC3 calls

8 years agoplaybin2 uses ducatijpegdec to play mjpeg streams
Subhajit Paul [Thu, 30 May 2013 10:12:57 +0000 (15:42 +0530)]
playbin2 uses ducatijpegdec to play mjpeg streams

jpegdec and ducatijpegdec both were ranked primary in the
plugin registry. increasing the rank of ducatijpegdec by one
will make it the default plugin for playing JPEG and MJPEG

8 years agoducatih264dec.c : Changed displayDelay to IVIDDEC3_DISPLAY_DELAY_AUTO from IVIDDEC3_D...
Mrinmayee Hingolikar [Fri, 24 May 2013 15:53:10 +0000 (15:53 +0000)]
ducatih264dec.c : Changed displayDelay to IVIDDEC3_DISPLAY_DELAY_AUTO from IVIDDEC3_DECODE_ORDER

51 years agoducatimpeg2dec: disable manual reordering
Vincent Penquerc'h [Tue, 18 Dec 2012 16:14:32 +0000 (16:14 +0000)]
ducatimpeg2dec: disable manual reordering

I have found a video where we get ordered timestamps but out of
order frames. Until some method of working out the real ordering
of frames by looking inside the frames data, let's disable this.

51 years agoducatividdec: move latency query from ducatih264dec
Vincent Penquerc'h [Tue, 18 Dec 2012 17:08:46 +0000 (17:08 +0000)]
ducatividdec: move latency query from ducatih264dec

It will be of use to all codecs that can delay frames when
doing reordering.

8 years agoDEBIAN: debianization glsdk-6_00_00_07
Nikhil Devshatwar [Tue, 21 May 2013 09:18:43 +0000 (14:48 +0530)]
DEBIAN: debianization

8 years agoducatijpegdec: add jpeg decoder error strings
Vincent Penquerc'h [Mon, 3 Dec 2012 13:28:28 +0000 (13:28 +0000)]
ducatijpegdec: add jpeg decoder error strings

8 years agoducatijpegdec: fix description, this MJPEG, not MPEG-2
Vincent Penquerc'h [Fri, 23 Nov 2012 14:13:33 +0000 (14:13 +0000)]
ducatijpegdec: fix description, this MJPEG, not MPEG-2

8 years agoRemoved a duplicate script
Olivier Naudan [Mon, 19 Nov 2012 15:36:37 +0000 (15:36 +0000)]
Removed a duplicate script

8 years agoRemoved redundant definitions in h264enc fields
Olivier Naudan [Fri, 2 Nov 2012 17:37:59 +0000 (13:37 -0400)]
Removed redundant definitions in h264enc fields

8 years agoducatih264enc is now using ih264enc.h from ducati side, rather than re-defining enums
Olivier Naudan [Fri, 2 Nov 2012 14:58:40 +0000 (10:58 -0400)]
ducatih264enc is now using ih264enc.h from ducati side, rather than re-defining enums

8 years agoducatimpeg4enc is now using impeg4enc.h from ducati side, rather than re-defining...
Olivier Naudan [Fri, 2 Nov 2012 14:39:27 +0000 (10:39 -0400)]
ducatimpeg4enc is now using impeg4enc.h from ducati side, rather than re-defining enums

8 years agoRemoved elements for codecs not available in ducati firmware: VP6, VP7 and RealVideo
Olivier Naudan [Fri, 2 Nov 2012 13:38:43 +0000 (09:38 -0400)]
Removed elements for codecs not available in ducati firmware: VP6, VP7 and RealVideo
ducativp6dec, ducativp7dec and ducatirvdec are not functional

8 years agoAdded a tool to process GST traces and provide latencies for each element
Olivier Naudan [Mon, 29 Oct 2012 17:58:48 +0000 (13:58 -0400)]
Added a tool to process GST traces and provide latencies for each element

8 years agoAdded a playback script, to exercise the endurance of gst-ducati
Olivier Naudan [Tue, 30 Oct 2012 13:52:57 +0000 (09:52 -0400)]
Added a playback script, to exercise the endurance of gst-ducati

8 years agoducatividenc: use GST_PERFORMANCE category for traces related to profiling
Olivier Naudan [Mon, 29 Oct 2012 13:36:00 +0000 (09:36 -0400)]
ducatividenc: use GST_PERFORMANCE category for traces related to profiling

8 years agoRealigned code on new Ducati header files
Olivier Naudan [Mon, 29 Oct 2012 14:40:17 +0000 (10:40 -0400)]
Realigned code on new Ducati header files

8 years agoAdded a tool to process GST traces and provide latencies for each element
Olivier Naudan [Mon, 29 Oct 2012 17:58:48 +0000 (13:58 -0400)]
Added a tool to process GST traces and provide latencies for each element

8 years agoducatividenc: use GST_PERFORMANCE category for traces related to profiling
Olivier Naudan [Mon, 29 Oct 2012 13:36:00 +0000 (09:36 -0400)]
ducatividenc: use GST_PERFORMANCE category for traces related to profiling

8 years agojpegvdec: set numOutputDataUnits = 1 to please the codec
Alessandro Decina [Fri, 10 Aug 2012 11:14:06 +0000 (11:14 +0000)]
jpegvdec: set numOutputDataUnits = 1 to please the codec

8 years agoAdd ducatijpegdec
Alessandro Decina [Fri, 10 Aug 2012 11:11:06 +0000 (11:11 +0000)]
Add ducatijpegdec

8 years agoducatimpeg4dec: add MPEG4 decoder error strings
Vincent Penquerc'h [Mon, 12 Nov 2012 16:27:17 +0000 (16:27 +0000)]
ducatimpeg4dec: add MPEG4 decoder error strings

8 years agoducatih264dec: write out a MB error map when codec debug info is on
Vincent Penquerc'h [Fri, 9 Nov 2012 09:42:31 +0000 (09:42 +0000)]
ducatih264dec: write out a MB error map when codec debug info is on

8 years agoducativc1dec: lie about simple profile videos being main profile
Vincent Penquerc'h [Thu, 8 Nov 2012 17:19:22 +0000 (17:19 +0000)]
ducativc1dec: lie about simple profile videos being main profile

This fixes playback of at least one video claiming it's simple profile,
but containing frames that use a feature that are unavailable in
simple profile (intensity compensation).

As Ducati supports both main and simple profile, I don't *think* this
should have any adverse effect, but if there happens to be some profile
related issue in the future, this patch may be one to revert to see if
things improve.

8 years agoMangle a few files with gst-indent, for future sanity
Vincent Penquerc'h [Thu, 8 Nov 2012 15:10:46 +0000 (15:10 +0000)]
Mangle a few files with gst-indent, for future sanity

8 years agoducativc1dec: add VC1 error strings
Vincent Penquerc'h [Thu, 8 Nov 2012 15:09:57 +0000 (15:09 +0000)]
ducativc1dec: add VC1 error strings

8 years agoducatih264dec: add H264 decoder error strings
Vincent Penquerc'h [Thu, 8 Nov 2012 14:56:43 +0000 (14:56 +0000)]
ducatih264dec: add H264 decoder error strings

8 years agoducati: rework debug bit logging for extensibility
Vincent Penquerc'h [Thu, 8 Nov 2012 14:46:54 +0000 (14:46 +0000)]
ducati: rework debug bit logging for extensibility

Codecs have their own "bit space", in which the same bits
represent different conditions.

8 years agoducatih264dec: log basic MB error information when requested
Vincent Penquerc'h [Thu, 8 Nov 2012 14:26:06 +0000 (14:26 +0000)]
ducatih264dec: log basic MB error information when requested

8 years agoducatividdec: add a property for gathering debug info from the codec
Vincent Penquerc'h [Thu, 8 Nov 2012 14:21:57 +0000 (14:21 +0000)]
ducatividdec: add a property for gathering debug info from the codec

The actual info is codec dependent. This is not done unconditionally
because it requires extra allocated memory, and potentially incurs
a speed penalty.

8 years agoducativc1dec: move log where it will be displayed
Vincent Penquerc'h [Wed, 7 Nov 2012 14:20:32 +0000 (14:20 +0000)]
ducativc1dec: move log where it will be displayed

8 years agoRevert "h264dec: Actually do not accept level 5.1 in High profiles"
Thibault Saunier [Fri, 2 Nov 2012 14:08:21 +0000 (11:08 -0300)]
Revert "h264dec: Actually do not accept level 5.1 in High profiles"

We had the confirmation that 5.1 HP is supported

This reverts commit bd0024c9af7016e897192e66bcb3c5717f9faf08.

8 years agoducatividdec: remove another leftover -strided caps remnant
Vincent Penquerc'h [Thu, 1 Nov 2012 10:06:21 +0000 (10:06 +0000)]
ducatividdec: remove another leftover -strided caps remnant

8 years agoducativc1dec: use const where appropriate
Vincent Penquerc'h [Thu, 1 Nov 2012 10:06:04 +0000 (10:06 +0000)]
ducativc1dec: use const where appropriate

8 years agoducatividdec: print timestamp difference, not start timestamp
Vincent Penquerc'h [Tue, 30 Oct 2012 11:34:34 +0000 (11:34 +0000)]
ducatividdec: print timestamp difference, not start timestamp

8 years agoducatih264enc: check dpb size calculation for negative values
Vincent Penquerc'h [Mon, 29 Oct 2012 14:47:47 +0000 (14:47 +0000)]
ducatih264enc: check dpb size calculation for negative values

It will happen if the required input parameters are unknown.

8 years agoducatividdec: fix typo in log
Vincent Penquerc'h [Mon, 29 Oct 2012 14:47:27 +0000 (14:47 +0000)]
ducatividdec: fix typo in log

8 years agoducatih264enc: add num-reorder-frames on caps
Vincent Penquerc'h [Mon, 29 Oct 2012 12:53:54 +0000 (12:53 +0000)]
ducatih264enc: add num-reorder-frames on caps

Since we know in advance how many frames will be required for
reordering, and since ducati doesn't seem to put that information
in the stream, we can set it in caps to tell the decoder it
doesn't have to use a conservative high bound that will most
likely be way too much.

8 years agoducatividenc/ducatividdec: time VIDENC/VIDDEC call time in ms
Vincent Penquerc'h [Mon, 29 Oct 2012 12:16:42 +0000 (12:16 +0000)]
ducatividenc/ducatividdec: time VIDENC/VIDDEC call time in ms

Makes it easier to read than ns, and the encoder was missing it.

8 years agoducatividdec: remove -strided caps remnants
Vincent Penquerc'h [Fri, 26 Oct 2012 14:37:55 +0000 (15:37 +0100)]
ducatividdec: remove -strided caps remnants

8 years agoducatividenc: add ordering info to encoded buffers
Vincent Penquerc'h [Fri, 26 Oct 2012 12:18:54 +0000 (13:18 +0100)]
ducatividenc: add ordering info to encoded buffers

Since we know about the ordering, doing so lets us avoid
needing a parser fill this in (if we have a parser that
can do it in the first place).

8 years agoducatividenc: properly timestamp frames to cater for B frames
Vincent Penquerc'h [Thu, 25 Oct 2012 18:03:08 +0000 (18:03 +0000)]
ducatividenc: properly timestamp frames to cater for B frames

This relies on an assumption about the codec which is explained
in a comment in the source.

8 years agoducatividdec: do not push all frames on IDR
Vincent Penquerc'h [Thu, 25 Oct 2012 17:59:33 +0000 (17:59 +0000)]
ducatividdec: do not push all frames on IDR

h264parse now generates an ordering that doesn't reset on IDR frames,
so we do not need to do this, which breaks in some cases, and we now
always rely on the ordering information we get.

8 years agoducatividenc: change default keyframe interval to 16
Vincent Penquerc'h [Wed, 24 Oct 2012 09:58:07 +0000 (10:58 +0100)]
ducatividenc: change default keyframe interval to 16

For some unclear reason, the ducati H264 encoder only accepts
some particular pairs of values for inter and intra intervals.
While 15 was working fine with no B frames, the default intra
interval does not like being used with 15, but accepts 16.

8 years agoducatih264enc: force inter-interval to 1 for low delay case
Vincent Penquerc'h [Wed, 24 Oct 2012 08:05:06 +0000 (09:05 +0100)]
ducatih264enc: force inter-interval to 1 for low delay case

This is a setup requirement of the ducati encoder.

8 years agoducatih264enc: fix B frames being disabled
Vincent Penquerc'h [Tue, 23 Oct 2012 17:01:02 +0000 (18:01 +0100)]
ducatih264enc: fix B frames being disabled

The dynparams also need overriding, or the settings in
params will get ignored.

8 years agoducatividenc: change the "None" rate-preset value to "none", for consistency
Vincent Penquerc'h [Tue, 23 Oct 2012 15:30:26 +0000 (16:30 +0100)]
ducatividenc: change the "None" rate-preset value to "none", for consistency

8 years agoducatividenc: remove duplicate casts and assignments
Vincent Penquerc'h [Tue, 23 Oct 2012 15:15:41 +0000 (16:15 +0100)]
ducatividenc: remove duplicate casts and assignments

8 years agoducatih264enc: override params after letting the base class set defaults
Vincent Penquerc'h [Tue, 23 Oct 2012 15:07:53 +0000 (16:07 +0100)]
ducatih264enc: override params after letting the base class set defaults

8 years agoMake max-reorder-frames an actual max, not a default max
Vincent Penquerc'h [Tue, 23 Oct 2012 13:04:16 +0000 (14:04 +0100)]
Make max-reorder-frames an actual max, not a default max

This is more user friendly, and more useful.

8 years agoducatividdec: do not reorder frames when reordering info is absent
Vincent Penquerc'h [Tue, 23 Oct 2012 10:01:34 +0000 (10:01 +0000)]
ducatividdec: do not reorder frames when reordering info is absent

This will happen for H264 if no parser is used, for instance.

8 years agoducatih264enc: default to using B frames
Vincent Penquerc'h [Mon, 22 Oct 2012 11:36:31 +0000 (12:36 +0100)]
ducatih264enc: default to using B frames

Also reword the inter-interval description for clarity,
it wasn't quite correct on the exact number of B frames.

8 years agoducativideodec: add a max-reorder-frames decoder property
Vincent Penquerc'h [Fri, 19 Oct 2012 09:37:09 +0000 (10:37 +0100)]
ducativideodec: add a max-reorder-frames decoder property

It allows giving a default high bound for the number of
previous frames to buffer in order to do reordering, for
those codecs with B frames. This will be used instead of
the default high bound of 16 if a stream limit can not
be found, allowing latency to be kept in check.

8 years agoducatividenc: log how many bytes the encoded data is
Vincent Penquerc'h [Fri, 19 Oct 2012 09:06:12 +0000 (10:06 +0100)]
ducatividenc: log how many bytes the encoded data is

8 years agoducatih264enc: expose number of B frames allowed
Vincent Penquerc'h [Thu, 18 Oct 2012 17:11:20 +0000 (18:11 +0100)]
ducatih264enc: expose number of B frames allowed

8 years agoMake the sync point determination codec specific
Vincent Penquerc'h [Thu, 18 Oct 2012 16:12:57 +0000 (17:12 +0100)]
Make the sync point determination codec specific

This removes some H264 special casing code from the base class.

8 years agoducatividenc: use the defines from the dce header where possible
Vincent Penquerc'h [Thu, 18 Oct 2012 16:02:36 +0000 (17:02 +0100)]
ducatividenc: use the defines from the dce header where possible

8 years agoducatimpeg4enc: set caps in configure
Vincent Penquerc'h [Thu, 18 Oct 2012 10:52:17 +0000 (10:52 +0000)]
ducatimpeg4enc: set caps in configure

If this is not done, then a buffer-alloc call will be done
downstream before caps are set, and downstream will not yet
know stream particularities such as width and height.

This fixes pipelines with ducatimpeg4enc ! ducatimpeg4dec
without an intervening mpeg4videoparse.

8 years agoducatih264enc: fix hrd-buffer-size property type
Vincent Penquerc'h [Wed, 17 Oct 2012 13:25:03 +0000 (13:25 +0000)]
ducatih264enc: fix hrd-buffer-size property type

It is unsigned, not signed.

8 years agoducatih264enc: include profile and level on src caps
Vincent Penquerc'h [Wed, 17 Oct 2012 13:18:21 +0000 (13:18 +0000)]
ducatih264enc: include profile and level on src caps

8 years agoducatih264dec: assume no B frames for baseline profile
Vincent Penquerc'h [Wed, 17 Oct 2012 12:53:48 +0000 (12:53 +0000)]
ducatih264dec: assume no B frames for baseline profile

... and constrained-baseline too, as this doesn't appear in my
H264 spec and it looks like it should be stricter than baseline
from the name.

8 years agoducatimpeg2dec: add frame reordering
Vincent Penquerc'h [Mon, 15 Oct 2012 11:53:36 +0000 (12:53 +0100)]
ducatimpeg2dec: add frame reordering

8 years agoducatividdec: move frame reordering to the base class
Vincent Penquerc'h [Mon, 15 Oct 2012 11:47:34 +0000 (12:47 +0100)]
ducatividdec: move frame reordering to the base class

It was made for H264, but MPEG2 is going to need it as well.
When reordering is enabled, the buffer end offset is used as
an opaque value to compare buffer. H264 sets it to the POC,
but it may be set to a timestamp, or anything else.

8 years agoducatih264dec: use num-reorder-frames to size the frame backlog array
Vincent Penquerc'h [Tue, 9 Oct 2012 13:04:46 +0000 (14:04 +0100)]
ducatih264dec: use num-reorder-frames to size the frame backlog array

Using the number of reference frames is incorrect, I did not realize
when I wrote this code that all frames may not be used as reference,
and so the numbers may differ.

8 years agoducatih264dec: reorder buffers by picture order count
Vincent Penquerc'h [Thu, 4 Oct 2012 14:47:49 +0000 (15:47 +0100)]
ducatih264dec: reorder buffers by picture order count

This fixes out of order frames when H264 video comes from
demuxers which timestamp by decoding order instead of
presentation order (such as MPEG/TS and AVI).

8 years agoh264enc: Expose the SliceMode property
Thibault Saunier [Wed, 3 Oct 2012 16:16:49 +0000 (13:16 -0300)]
h264enc: Expose the SliceMode  property

8 years agoh264enc: Expose the EntropyCodingMode property
Thibault Saunier [Wed, 3 Oct 2012 15:48:17 +0000 (12:48 -0300)]
h264enc: Expose the EntropyCodingMode property

8 years agovidenc: Allow 'None' and 'user defined' values for VidEncRatePreset
Thibault Saunier [Wed, 3 Oct 2012 15:15:05 +0000 (12:15 -0300)]
videnc: Allow 'None' and 'user defined' values for VidEncRatePreset

8 years agoh264enc: expose the HRDBufferSize parameter
Thibault Saunier [Wed, 3 Oct 2012 14:42:42 +0000 (11:42 -0300)]
h264enc: expose the HRDBufferSize parameter

8 years agoh264enc: Expose qpI/qpMinI/qpMaxI parameters
Thibault Saunier [Wed, 3 Oct 2012 11:05:01 +0000 (08:05 -0300)]
h264enc: Expose qpI/qpMinI/qpMaxI parameters

8 years agoh264enc: Expose the rcAlgo parameter
Thibault Saunier [Tue, 2 Oct 2012 13:41:24 +0000 (10:41 -0300)]
h264enc: Expose the rcAlgo parameter

8 years agoducatividdec: set number of out buffers to 0 when we don't pass any
Vincent Penquerc'h [Tue, 2 Oct 2012 16:25:32 +0000 (17:25 +0100)]
ducatividdec: set number of out buffers to 0 when we don't pass any

This fixes a spurious error from the codec on flushing, when we
call process with no output buffers, while still being configured
for two output buffers.

8 years agoducatih264enc: fix alignment misnamed align
Vincent Penquerc'h [Tue, 2 Oct 2012 12:48:09 +0000 (12:48 +0000)]
ducatih264enc: fix alignment misnamed align

8 years agoh264dec: Actually do not accept level 5.1 in High profiles
Thibault Saunier [Tue, 2 Oct 2012 09:36:56 +0000 (06:36 -0300)]
h264dec: Actually do not accept level 5.1 in High profiles

The codec documentation is not very clear about whether it is supported
or not. To avoid accepting files that would make the codec crashing
make sure not to use the ducati decoder in that case.

8 years agoh264dec: Set the maxNumRefFrames attribute we get from the caps
Thibault Saunier [Mon, 1 Oct 2012 17:28:04 +0000 (19:28 +0200)]
h264dec: Set the maxNumRefFrames attribute we get from the caps

In some corner case the one computed in ivahd did not correspond to
the real value of the file. We do have the right value ourself so
rely on it.

Fixes: "#101 decoder error / planet.mkv / DCE / glp1.x"

8 years agoh264dec: Set the max level to 5.1 in caps as IVAHD actually supports it
Thibault Saunier [Mon, 1 Oct 2012 17:27:07 +0000 (19:27 +0200)]
h264dec: Set the max level to 5.1 in caps as IVAHD actually supports it

+ Pass gstducatih264dec through gst-indent

8 years agoducatividenc: log extended error info, and use the correct one from _process
Vincent Penquerc'h [Tue, 25 Sep 2012 11:24:10 +0000 (11:24 +0000)]
ducatividenc: log extended error info, and use the correct one from _process

8 years agoducatih264enc: announce stream-format and align in template caps
Vincent Penquerc'h [Wed, 12 Sep 2012 10:10:27 +0000 (10:10 +0000)]
ducatih264enc: announce stream-format and align in template caps

Since these are set to specific values when the source pad is
set up, they are not subject to negotiation, so it's best to
announce them in the template caps so linking can fail early.

8 years agoducatividdec: do not tell ducati we pass input when we do not
Vincent Penquerc'h [Fri, 7 Sep 2012 08:52:53 +0000 (08:52 +0000)]
ducatividdec: do not tell ducati we pass input when we do not

8 years agoducatividenc: cleanup param initialization
Vincent Penquerc'h [Wed, 22 Aug 2012 14:26:51 +0000 (14:26 +0000)]
ducatividenc: cleanup param initialization

Use a local params pointer, and remove a nop assignment
and a duplicate one.

8 years agoducatimpeg4enc: avoid casting before checking if the cast is valid
Vincent Penquerc'h [Wed, 22 Aug 2012 14:24:06 +0000 (14:24 +0000)]
ducatimpeg4enc: avoid casting before checking if the cast is valid

Especially as the cast was made after again.