Christian König
2cfe70ed5d
omxvideodec: simplify _find_nearest_frame
...
No need to make it more complicated and error prone than
necessary. Also give the function a gst_omx_video_dec prefix
to distinct it from the encoder function.
https://bugzilla.gnome.org/show_bug.cgi?id=724236
2014-03-03 20:12:51 +01:00
Christian König
bf0d2614c3
omxvideodec: remove dead code
...
This code doesn't seems to be used for quite a while,
remove it before it starts to rot.
https://bugzilla.gnome.org/show_bug.cgi?id=724236
2014-03-03 20:12:35 +01:00
Christian König
8b06b07f6f
omx: fix two serious message handling bugs
...
Waiting for the next message if we already got one
is nonsense and can lead to lockups.
https://bugzilla.gnome.org/show_bug.cgi?id=725468
2014-03-02 12:09:59 +01:00
Christian König
4e4f093319
omxvideoenc: fix startup race condition
...
The reset function shouldn't start the src pad
loop if it wasn't started before.
Signed-off-by: Christian König <christian.koenig@amd.com>
2014-03-02 12:08:09 +01:00
Christian König
0a8cfcde87
omxvideodec: fix startup race condition
...
The reset function shouldn't start the src pad
loop if it wasn't started before.
Signed-off-by: Christian König <christian.koenig@amd.com>
2014-03-02 12:08:09 +01:00
Sebastian Dröge
1bf4edf721
omx: Don't handle FLUSHING and NOT_LINKED as errors
...
Also don't stop the task on NOT_LINKED. We're not a demuxer.
2014-01-25 17:44:57 +01:00
Tim-Philipp Müller
498b74ab6a
omx: don't use the 'z' modifier to print size_t
...
gcc will warn in some cases even if the size of the type
is exactly that of size_t on the platform.
https://bugzilla.gnome.org/show_bug.cgi?id=699008
2013-08-20 16:00:07 +01:00
Roman Arutyunyan
5ba55b6c9a
gstomxvideoenc: Set bitrate in setcaps
...
Otherwise it gets lost whenever we configure new caps
https://bugzilla.gnome.org/show_bug.cgi?id=698049
2013-07-01 15:48:47 +02:00
Josep Torra
f3f9330332
omx: Take lock on EOS to update the flow return value
...
Fixes "GThread-ERROR **: file gthread-posix.c: line 171
(g_mutex_free_posix_impl): error 'Device or resource busy' during
'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'" in _finalize.
2013-05-20 12:06:34 +02:00
Josep Torra
64ef1f0e11
omxvideodec: Redesign video size change reconfiguration code
...
Ensure stop the decoder before clossing the tunnel.
2013-05-10 12:25:07 +02:00
jitendra
715b44ea66
omx: Add pads based on element type
...
This allows to later add sources and sink that only have a srcpad
or sinkpad.
https://bugzilla.gnome.org/show_bug.cgi?id=699754
2013-05-06 16:20:20 +02:00
Carlos Rafael Giani
2d1138f45c
omx: fixed type error in printf call
...
%zu expects size_t
https://bugzilla.gnome.org/show_bug.cgi?id=699008
2013-04-27 09:17:28 +01:00
Tim-Philipp Müller
a2db76b048
Check for gstreamer-egl
...
And don't use if not available.
https://bugzilla.gnome.org/show_bug.cgi?id=697574
2013-04-23 11:05:19 +01:00
Tim-Philipp Müller
2cbbab3128
omx: more printf format fixes
...
Fix printf formats again, so that gst-omx compiles warning-
free on the Raspberry Pi as well. Unfortunately OMX_UINT32
maybe be typedefed to uint32_t or unsigned long, which
doesn't work well with our debugging printf format strings,
so just use %u for those and cast to guint.
2013-04-18 23:10:13 +01:00
Josep Torra
82807bd9dd
omx: fixes unused variable 'comp' when GStreamer is built without debug
2013-04-18 16:40:06 +02:00
Josep Torra
9d0763a91d
omxvideodec: don't use 'self->dec_out_port' anymore and use just 'port'
...
Fixes some criticals.
2013-04-18 16:03:56 +02:00
Josep Torra
9de6308382
omxvideodec: fixes 'port' may be used uninitialized in this function
2013-04-18 15:21:32 +02:00
Josep Torra
4974f75d91
omxvideodec: silence warnings building for RPI related to 'vcos_*'
2013-04-18 12:03:31 +02:00
Josep Torra
ae3454683e
omxvideodec: Use new type from libgstvideo
2013-04-18 11:45:50 +02:00
jitendra
960590f92f
omx: Disable output port before transition to idle state
...
https://bugzilla.gnome.org/show_bug.cgi?id=698109
2013-04-16 12:46:48 +02:00
Tim-Philipp Müller
0c08d375f4
omx: fix printf formats in debug messages
...
OMX_U32 is typedefed to an unsigned long,
OMX_TICKS to a 64-bit integer.
2013-04-08 17:02:32 +01:00
Josep Torra
16cf5d77db
omxvideodec: use the correct printf format in a debug message
2013-04-08 16:52:19 +02:00
Josep Torra
c46a6a757e
omxvideodec: use the correct OMX_IndexParam value
...
Fixes playback is not smooth in the EGL path.
2013-04-08 16:31:33 +02:00
Sebastian Dröge
31159a9b36
omxvideodec: Don't use API that is not in master yet
...
It's not really needed here yet, will be needed in future versions
2013-04-05 13:45:24 +02:00
Sebastian Dröge
8a1bb1b4a3
omxvideodec: Add support for egl_render on RPi
2013-03-26 14:00:03 +01:00
Tim-Philipp Müller
f17c8ac55b
omx: fix compiler warnings when compiling with -DG_DISABLE_ASSERT
...
As we do for releases. Fixes 'variable may be used uninitialized'
warnings.
2013-03-22 19:23:46 +00:00
Tim-Philipp Müller
75dca2b081
omx: fix typo in copyright headers
2013-03-19 16:40:09 +00:00
Sebastian Dröge
4483581e2a
omx: Add more constraints to the default sink template caps
2013-03-19 13:28:30 +01:00
Sebastian Dröge
e533da2b22
omxvideodec: Set ENDOFFRAME flag for the end of frames
2013-03-19 12:55:09 +01:00
Sebastian Dröge
8460cabd13
omx: Add Theora decoder
2013-03-19 12:25:27 +01:00
Sebastian Dröge
29a348efac
omx: Remove additional comma
2013-03-18 16:43:24 +01:00
Sebastian Dröge
36e76faa05
omx: Rename MPEG2 decoder for consistency everywhere
2013-03-18 16:34:51 +01:00
Sebastian Dröge
d9d46263c6
omx: Add MJPEG decoder support
2013-03-18 16:34:51 +01:00
Sebastian Dröge
0f5e6e967b
omx: Add VP8 decoder support
2013-03-18 16:34:51 +01:00
Tim-Philipp Müller
9da6ee8727
omxmpeg2dec: mpeg-2 decoder should be able to handle mpeg-1 too
...
https://bugzilla.gnome.org/show_bug.cgi?id=695879
2013-03-16 13:21:51 +00:00
Josep Torra
8231c9068e
omx: minor stylistic change for consistency with other similar code
2013-03-16 10:13:06 +01:00
Josep Torra
a5778efe16
omx: Clarify that loop task is also paused in EOS
2013-03-16 10:00:24 +01:00
Josep Torra
e16207f3dd
omxvideoenec: Don't forget propagate flow return value upstream
2013-03-16 09:59:01 +01:00
Tim-Philipp Müller
c51afe9093
omx: improve debug logging some more
2013-03-15 13:17:18 +00:00
Sebastian Dröge
2b580837f5
omxvideodec: Make sure that the first frame we pass to OpenMAX is a sync frame
2013-03-15 14:09:45 +01:00
Sebastian Dröge
e1f94660f7
omx: Stop output port task after draining
2013-03-15 11:46:34 +01:00
Sebastian Dröge
35a13a2cea
omx: Reset EOS flag in more places
2013-03-15 11:01:12 +01:00
Sebastian Dröge
84c6fd44d2
omxvideodec: Deallocate output buffers with the right function
2013-03-15 10:38:58 +01:00
Tim-Philipp Müller
d7862b927c
omx: log commands as strings
...
Makes logs easier to read.
2013-03-15 09:29:56 +00:00
Tim-Philipp Müller
07e6ae99f1
omx: log states as strings
2013-03-15 09:29:55 +00:00
Tim-Philipp Müller
118345eef5
omx: log component name in debug messages
...
Useful when we have more different components
active at the same time.
2013-03-15 09:29:55 +00:00
Sebastian Dröge
047b3735cf
omxvideodec: Don't interpolate timestamps
...
We will get exactly one frame per input buffer and assigning
timestamps between frames if more than one OMX buffer is required
per frame easily confuses timestamp tracking in OMX.
2013-03-15 09:51:42 +01:00
Sebastian Dröge
c59d8930ac
omxvideodec: Give the codec_data the timestamp of the first frame and no duration
2013-03-15 09:51:34 +01:00
Sebastian Dröge
67dc871116
omx: Reset some more buffer fields as required
2013-03-14 17:26:51 +01:00
Sebastian Dröge
5bab4a05f0
omx: The hack to disable usage of EOS buffers is not necessary anymore on RPi
2013-03-14 17:01:08 +01:00
Sebastian Dröge
ec687f1414
omx: Reset the flags for output ports when releasing a buffer, not for input ports
2013-03-14 17:00:42 +01:00
Sebastian Dröge
02335ef953
omx: Only unref caps after usage of its fields
2013-03-14 15:03:02 +01:00
Sebastian Dröge
bda1e97abd
omxvideodec: Simplify bufferpool implementation
2013-03-14 14:51:32 +01:00
Sebastian Dröge
9128ba5018
omxvideodec: Improve min/max buffer counts handling
2013-03-14 12:52:46 +01:00
Sebastian Dröge
22dce51dd4
omx: Handle the OMX_EventBufferFlag to detect EOS too
2013-03-14 12:51:54 +01:00
Sebastian Dröge
acf15e84a9
omx: Mark OpenMAX buffers as EGLImage if they contain one
...
Needs special handling in some places, e.g. because nFilledLen
will always be 0.
2013-03-13 13:10:28 +01:00
Sebastian Dröge
b9af5f4f31
omxvideoenc: Properly check the nVersion field
2013-03-13 10:21:49 +01:00
Sebastian Dröge
68c8196912
omxvideoenc: RPi returns garbage for OMX_IndexParamVideoBitrate, work around that
2013-03-13 09:38:07 +01:00
Sebastian Dröge
1ebd34e637
omxvideodec: Make sure to always get the right buffer
2013-03-13 09:38:03 +01:00
Sebastian Dröge
f4ad6e0858
omxvideodec: Make sure the buffer is released to the pool if it's not the one we wanted
2013-03-13 09:37:58 +01:00
Sebastian Dröge
ef357cce80
omxvideodec: Drop too late frames instead of finishing them
2013-03-13 09:37:43 +01:00
Sebastian Dröge
fa7be0b618
omx: Release buffers to the correct port
2013-03-13 09:37:36 +01:00
Sebastian Dröge
303b6c4dc5
omx: Always load the OpenMAX IL cores with G_MODULE_BIND_LOCAL
2013-03-13 09:37:02 +01:00
Sebastian Dröge
f505dad87a
omx: Lazy-load symbols of libbcm_host.so
...
It exports eglIntOpenMAXILDoneMarker(), which is also
exported by libopenmaxil.so... but we need the version
from libopenmaxil.so as the other one is just a stub.
2013-03-13 09:35:20 +01:00
Sebastian Dröge
3544fa5ae3
omx: Don't set profile/level in other encoders if downstream caps don't specify any
2013-03-11 13:59:15 +01:00
Sebastian Dröge
77f95de529
omxh264enc: If caps specify no profile/level use the component's defaults
2013-03-11 13:49:38 +01:00
Sebastian Dröge
3c13502b75
omxvideoenc: Always allocate output buffers from the loop function
2013-03-11 13:45:04 +01:00
Sebastian Dröge
bd53faacc9
omxh264enc: The h264 encoders are supposed to output byte-stream/au
2013-03-11 13:13:22 +01:00
Sebastian Dröge
79a1fed0e0
omxvideoenc: Wait until the Executing state is reached before passing buffers to the component
2013-03-11 11:52:57 +01:00
Sebastian Dröge
448ea34b75
omxvideodec: Don't provide buffers to downstream
...
This only works reliable if we have a way to tell downstream to
release all our buffers for reconfiguration.
2013-03-11 10:39:25 +01:00
Sebastian Dröge
8bf902b69d
omxaudioenc: Disable output port when setting a new format
2013-03-11 10:29:44 +01:00
Sebastian Dröge
f518ce5ed9
omxvideoenc: Disable output port when setting a new format
2013-03-11 10:29:30 +01:00
Sebastian Dröge
00be69f4a0
omxvideodec: Disable output port when setting a new format
...
Based on a patch by Josep Torra <n770galaxy@gmail.com>
2013-03-11 10:22:07 +01:00
Sebastian Dröge
65174bbd7f
omx: Catch errors when releasing buffers to a port and handle them
2013-03-11 10:04:10 +01:00
Sebastian Dröge
eac2078056
omxvideoenc: Use the correct video codec state when filling an input buffer
2013-03-10 12:09:23 +01:00
Sebastian Dröge
98cf9f6fe2
omxvideoenc: Store correct input state
2013-03-10 12:05:50 +01:00
Sebastian Dröge
fb3b213b3e
omxvideoenc: Allocate output buffers as early as possible
2013-03-10 11:31:55 +01:00
Sebastian Dröge
b9bf849a39
omx: Log unknown events
2013-03-10 11:03:18 +01:00
Josep Torra
bd071327da
omx: Fix deadlock in encoders and add explainatory comments.
2013-03-09 14:14:40 +01:00
Josep Torra
7423e3e023
omxvideodec: fix printf format identifier
2013-03-09 13:27:08 +01:00
Josep Torra
cde5df17fa
omx: Minor changes on debuging info
2013-03-09 13:24:30 +01:00
Josep Torra
6d8bf76391
omxvideodec: avoid a deadlock
2013-03-09 13:24:16 +01:00
Sebastian Dröge
aa6be53375
omxvideodec: Don't forget to populate output port
2013-03-08 15:58:01 +01:00
Sebastian Dröge
c014b1c9a3
omx: Flush and stop srcpad when configuring new caps
2013-03-08 15:50:20 +01:00
Sebastian Dröge
716adfa5be
Revert "omx: use no-component-reconfigure hack on the Raspberry PI"
...
This reverts commit e123b2089f
.
It's not required anymore after the fix from the last commit.
2013-03-07 17:40:21 +01:00
Sebastian Dröge
ed0de9d699
omxvideodec: Only negotiate a color format with downstream on the initial caps
2013-03-07 17:38:40 +01:00
Sebastian Dröge
bbd30a96bd
omxvideodec: Make sure the output port is disabled while we allocate buffers
2013-03-07 17:29:43 +01:00
Sebastian Dröge
20c9ae0823
omx: Also wait for disabled output ports to be reconfigured
2013-03-07 17:27:05 +01:00
Sebastian Dröge
0cd96e8c6b
omxvideodec: Add buffer pool for sharing OpenMAX memory with downstream
2013-03-07 14:10:12 +01:00
Sebastian Dröge
7a1eaec3b9
omx: Add timeout to the flush operation and move buffer populating to a separate function
2013-03-07 13:57:00 +01:00
Sebastian Dröge
001b7f0ed9
omx: Remove min buffer count hack for RPi again
...
It's not necessary anymore
2013-03-07 13:56:50 +01:00
Sebastian Dröge
60861f3990
omx: Do number of buffers configuration explicitely
2013-03-07 13:56:44 +01:00
Josep Torra
cc495aeb16
omxvideodec: fixes reconfiguration
...
Avoid having fixed fields from previous caps on reconfiguration.
2013-03-07 11:24:54 +01:00
Josep Torra
e123b2089f
omx: use no-component-reconfigure hack on the Raspberry PI
2013-03-07 11:02:39 +01:00
Josep Torra
118c023f55
omxvideoenc: drop unused data member
2013-03-01 15:32:47 +01:00
Sebastian Dröge
0b348473fa
omxvideoenc: And set it actually on the right port
2013-03-01 12:24:09 +01:00
Sebastian Dröge
eef92abf28
omxvideoenc: Set the coding type in the subclasses to the specific codec
2013-03-01 12:18:08 +01:00
Sebastian Dröge
42937eaea0
omxvideoenc: gst_omx_port_update_port_definition() returns a OMX_ERRORTYPE, not a gboolean
2013-03-01 11:49:53 +01:00
Sebastian Dröge
687a188dad
omxvideo{dec,enc}: Don't use the input state if it wasn't set yet
2013-03-01 11:44:17 +01:00
Sebastian Dröge
d92fb127ae
omxaudioenc: Only enable the output port after we know the output format
2013-03-01 11:25:04 +01:00