glsdk/gst-plugin-ducati.git
2 years agoviddec: Drop frames if out of segment master
Ram Prasad [Wed, 6 Mar 2019 12:23:42 +0000 (12:23 +0000)]
viddec: Drop frames if out of segment

Drop the decoded frames, don't post to next element
if the frame is out of the current segment.

Signed-off-by: Ramprasad N <x0038811@ti.com>
2 years agoh264dec: Support for frame-processing for interlaced streams
Ram Prasad [Wed, 6 Mar 2019 12:23:41 +0000 (12:23 +0000)]
h264dec: Support for frame-processing for interlaced streams

For interlaced streams h264parse sends input for both the fields
in one pad_push. This results in dcuati decoder to consume data
for one field.
Settig processCallLevel to FrameLevel processing, decoder will
consume both the fields.

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agoh264dec: Add a property to set display-delay
Prasad, Ram [Thu, 24 May 2018 11:53:46 +0000 (11:53 +0000)]
h264dec: Add a property to set display-delay

H264decoder supports display from 0 to 16. Default setting
is AUTO where decoder selects display-delay based on the
stream's property.

For certain usecases like car-play, it requires low
delay between decoder and display.

Application can now configure display-delay of h264decoder
with this property.

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agompeg4dec: Enable errorConcealment in mpeg4dec
Prasad, Ram [Thu, 14 Sep 2017 16:17:58 +0000 (16:17 +0000)]
mpeg4dec: Enable errorConcealment in mpeg4dec

Enable errorConcealment of MPEG4 decoder to TRUE always
and set the remaining extended variables to their
default values

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agompeg2dec: close meta-plane fd in finalize
Prasad, Ram [Wed, 13 Sep 2017 13:50:42 +0000 (13:50 +0000)]
mpeg2dec: close meta-plane fd in finalize

close file descriptor created for meta-plane buffer.

omap_bo_dmabuf creates a dup file descriptor for the caller to use
the buffers. The caller needs to explicitly close the dup fd to avoid
any fd leak. Adding the close of fd for the meta-plane buffer
and avoding explict call of dce_buf_lock for this fd.

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agogstducati:Enable error concealment for mpeg2dec
Prasad, Ram [Wed, 13 Sep 2017 13:50:41 +0000 (13:50 +0000)]
gstducati:Enable error concealment for mpeg2dec

For some erroneous streams, decoded output look shaky.
Enabling error concealment resolves shakiness issue.

MPEG2 decoder expects an MBInfo metata data buffer also
to be allocated when error concealment is enabled.
MBInfo metata buffer size depends on the resolution of the stream.
The size is hardcoded for maximum resoltuion of 1920x1080 and
around 3MB of buffer is allocated for metadata buffer.

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agovidenc:Fix memory leak issue
Prasad, Ram [Thu, 31 Aug 2017 14:16:37 +0000 (14:16 +0000)]
videnc:Fix memory leak issue

ducatividenc is not freeing one configuration structure
in handle_frame function which results in memory
leak for every frame.

Signed-off-by: Ramprasad N <x0038811@ti.com>
3 years agompeg4dec: skip frame processing for large frame size
Karthik Ramanan [Fri, 28 Jul 2017 10:45:08 +0000 (16:15 +0530)]
mpeg4dec: skip frame processing for large frame size

We have seen some cases where the mpeg4 parser element
demuxes the file incorrectly and presents the nal_size
as a very large chunk.

In such cases, when the ducati plugin tries to copy the
buffer into the input buffer it results in a SIGSEGV
in the push_input function. The input buffer size is
configured as height*width bytes (with some padding)
and for the error case, we may overrun the buffer during
the memcpy operation.

This patch introduces a check to prevent copying beyond
the input buffer size.

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
4 years agodecoder: Increase number of buffers in pool
Pooja Prajod [Wed, 24 May 2017 13:15:52 +0000 (18:45 +0530)]
decoder: Increase number of buffers in pool

In corner cases where the max-ref frames is 3,
the pipeline may get locked-up. Ideally waylandsink
holds 2 buffers at a time, but there can be cases
where the render callback is delayed. This causes
3 buffers to be held by waylandsink. Increasing number
of buffers in bufferpool prevents this lock-up.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agompeg2dec: Fix negotiation issue with playbin
Pooja Prajod [Wed, 24 May 2017 12:36:04 +0000 (18:06 +0530)]
mpeg2dec: Fix negotiation issue with playbin

For certain streams height, width etc are not available
in the first parse. This results in playbin not picking
ducati for decoding. This has been observed only for mpeg2
streams. So mpeg2dec caps is modified to accept streams
even without height and width info. In such cases, the default
resolution is assumed to be 1920x1080.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstducati: add JPEG Encoder
Gou, Hongmei [Thu, 2 Feb 2017 05:56:55 +0000 (05:56 +0000)]
gstducati: add JPEG Encoder

Signed-off-by: Hongmei Gou <h-gou@ti.com>
4 years agogstducati : Fix Segfault for VC1 decode
Pooja Prajod [Wed, 7 Dec 2016 12:10:06 +0000 (17:40 +0530)]
gstducati : Fix Segfault for VC1 decode

Some VC1 streams uses the codec_data for decode. So we shouldn't
unref the codec_data buffer as this destroys the codec_data.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstducati: Fix memleak due to unreffed codec-data
Pooja Prajod [Thu, 8 Sep 2016 08:26:24 +0000 (13:56 +0530)]
gstducati: Fix memleak due to unreffed codec-data

This patch fixes a memleak caused incase of streams with
codecdata in the caps. This data is written into a buffer
and stored as a part of the codec instance. The buffer
needs to be freed after this. The patch also reduces the
number of caps copy

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstducati: Fix memleak due to unreffed events and caps
Pooja Prajod [Mon, 11 Jul 2016 13:50:52 +0000 (19:20 +0530)]
gstducati: Fix memleak due to unreffed events and caps

There is a memory leak due to unreffed events on gst-ducati.
Whenever there is the event is not propagated to the peer
element we need to unref the events and then return. Same applies
to caps in query.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
4 years agogstducati decoder: Disable externalpool acceptance
Pooja Prajod [Wed, 29 Jun 2016 15:37:46 +0000 (21:07 +0530)]
gstducati decoder: Disable externalpool acceptance

The decoder can know the max-ref frames for a stream.
This info can be used for optimizing buffer allocation.
But this info is available only after first buffer is
given to IVA-HD. Since this is a parameter known to the decoder,
it is better to let the decoder manage it's own pool, rather
than adapting all elements to parse the caps for this info.

We used to allocate some extra buffers taking into consideration
the buffers held by the sink (=n). This is mainly to avoid a deadlock
in case of streams with <=n max-ref frames. To optimize buffer
allocation, num_buffers is calculated as MAX(4, max-ref). This ensures
no deadlock and minimize buffer allocated incase of streams with higher max-ref.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agogst-ducati: Migrate to gst 1.6.3 (V2)
Pooja Prajod [Tue, 31 May 2016 14:33:49 +0000 (20:03 +0530)]
gst-ducati: Migrate to gst 1.6.3 (V2)

The patch has been reworked to apply cleanly on the top-most commit

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agogst-ducati: Configure bufferpool to pre-allocate buffers origin/gst_1.2.x
Pooja Prajod [Mon, 16 May 2016 09:22:29 +0000 (14:52 +0530)]
gst-ducati: Configure bufferpool to pre-allocate buffers

A bufferpool can be configured pre-allocate buffers. This restricts
the number of buffers available at any point of time to a fixed number.
In case of decode this fixed number can be calculated based on max-ref-frames.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
5 years agompeg4decode: Prevent skipping of non-VOP coded frames
Karthik Ramanan [Fri, 22 Apr 2016 10:58:13 +0000 (16:28 +0530)]
mpeg4decode: Prevent skipping of non-VOP coded frames

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
5 years agoviddec: Fix for performing cleanup only during error scenario
Karthik Ramanan [Wed, 30 Mar 2016 14:05:45 +0000 (19:35 +0530)]
viddec: Fix for performing cleanup only during error scenario

The patch fixes the condition for initiating cleanup.
Fixes issue with commit : ad82046

In the earlier case, the cleanup and exit was being invoked during
normal flush case as well.

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
5 years agoExit application with cleanup for certain process call errors
Pooja Prajod [Thu, 11 Feb 2016 09:58:58 +0000 (15:28 +0530)]
Exit application with cleanup for certain process call errors

Certain process call return values signify underlying layer crash. In such cases playback would fail
and there is no point of subsequent process calls unless restart and resume logic is not implemented.
The codec_process return value is matched with  DCE_EXDM_UNSUPPORTED, DCE_EIPC_CALL_FAIL, DCE_EINVALID_INPUT
and matched with FAIL case to cleanup and exit.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
6 years agoviddec: Ignore identical caps set in sink_setcaps
Harinarayan Bhatta [Wed, 10 Jun 2015 11:48:01 +0000 (17:18 +0530)]
viddec: Ignore identical caps set in sink_setcaps

Signed-off-by: Harinarayan Bhatta <harinarayan@ti.com>
6 years agoAdd max-ref-frames to decoder output caps
Harinarayan Bhatta [Thu, 4 Jun 2015 10:25:49 +0000 (15:55 +0530)]
Add max-ref-frames to decoder output caps

VIDDEC3_Status tells the maximum number of buffers needed for
frame-reordering depending on the codec, profile, level, etc.
Export this information in output caps to help downstream
elements with buffer allocation.

Signed-off-by: Harinarayan Bhatta <harinarayan@ti.com>
6 years agoEnable ducatih264dec to accept more streams
Harinarayan Bhatta [Thu, 4 Jun 2015 10:03:38 +0000 (15:33 +0530)]
Enable ducatih264dec to accept more streams

1. Enable level 5 and 5.1 streams in the plugin since it is supported
   by the codec. But, level 4.2 is still selected by default for
   codec creation and it switched to 5.1 if needed. This allows
   for saving memory for simultaneous playback of 2 or more lower
   level streams.

2. For some inputs such as elementary streams and mpeg2ts streams
   the parser element (h264parse) fails to add framerate and profile
   information in their output caps thus resulting in failure to
   form the decode pipeline even though ducati264dec is capable of
   decoding these streams. Since these caps are not mandatory for
   codec creation, it could be removed from sink caps template thus
   allowing playback of these files.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
Signed-off-by: Harinarayan Bhatta <harinarayan@ti.com>
6 years agoReduce mem copying and code clean-up
Harinarayan Bhatta [Thu, 4 Jun 2015 09:40:08 +0000 (15:10 +0530)]
Reduce mem copying and code clean-up

1. Replace buffer_extract with buffer map and buffer fill, thus
   avoiding a memory copy.
2. Cleanup some unnecessary code in gst_ducati_viddec_chain.
3. Gst ducati plugin accepts external bufferpool from peer. Fix
   a memory leak by freeing this in finalize function.

Signed-off-by: Pooja Prajod <a0132412@ti.com>
Signed-off-by: Harinarayan Bhatta <harinarayan@ti.com>
6 years agoIndentation corrections using gst-indent
Harinarayan Bhatta [Thu, 4 Jun 2015 07:02:19 +0000 (12:32 +0530)]
Indentation corrections using gst-indent

Fix indentation by running common/gst-indent

Signed-off-by: Harinarayan Bhatta <harinarayan@ti.com>
6 years agoEnhance handling of bufferpool allocated by peer
Pooja Prajod [Fri, 6 Feb 2015 14:56:14 +0000 (20:26 +0530)]
Enhance handling of bufferpool allocated by peer

Ducati decoder accepts bufferpool allocated by peer
provided it is a dmabuf buffer with fd as metadata. The query
can be done once and bufferpool obtained can be reused.
The patch implements this enhancement. It also corrects
the handling bufferpool which doesnot allocate dmabuf buffer

Signed-off-by: Pooja Prajod <a0132412@ti.com>
6 years agoEnables accepting buffers from peer
Pooja Prajod [Tue, 3 Feb 2015 07:06:58 +0000 (12:36 +0530)]
Enables accepting buffers from peer

Enables usage along with plugins like VPE that insists on providing buffers

6 years agoSolves wrong codec_data extract issue
Pooja Prajod [Fri, 30 Jan 2015 08:10:51 +0000 (13:40 +0530)]
Solves wrong codec_data extract issue

6 years agogstducati: Enabled encoder plugin registration
Karthik Ramanan [Fri, 30 Jan 2015 10:36:43 +0000 (16:06 +0530)]
gstducati: Enabled encoder plugin registration

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
6 years agoMakefile: Enable encoders
Karthik Ramanan [Fri, 30 Jan 2015 09:41:12 +0000 (15:11 +0530)]
Makefile: Enable encoders

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
6 years agoAdds Ducati Encoder support
Pooja Prajod [Wed, 21 Jan 2015 13:23:30 +0000 (18:53 +0530)]
Adds Ducati Encoder support

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 <a0393906@ti.com>
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 <harinarayan@ti.com>
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 <harinarayan@ti.com>
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 <harinarayan@ti.com>
6 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 <harinarayan@ti.com>
6 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 <harinarayan@ti.com>
6 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 <harinarayan@ti.com>
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 <harinarayan@ti.com>
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 <harinarayan@ti.com>
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 <harinarayan@ti.com>
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 <harinarayan@ti.com>
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 <a-bindra@ti.com>
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
VIDDEC3_process.

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 <pradeepv@ti.com>
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 <chandramohan.c@ti.com>
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 <chandramohan.c@ti.com>
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 <subhajit_paul@ti.com>
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
streams

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.