- Feb 15, 2018
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
And add to autotools build so it gets disted.
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
- Feb 14, 2018
-
-
We need to allocate actual Device structures since we are going to be setting callbacks with address to that structure https://bugzilla.gnome.org/show_bug.cgi?id=777239
-
-
The pnmenc was not mapping the input buffers as video buffers. Because of this, the video frame stride was not being set based on frame but based on the caps, which make the assumption that the strides are a power of 4. For input that is not a power of 4, this would lead to a SIGSEGV. https://bugzilla.gnome.org/show_bug.cgi?id=793419
-
Sreerenj Balachandran authored
gudev is the dependecy for rendernode support in MediaSDK plugin. https://bugzilla.gnome.org/show_bug.cgi?id=791599
-
- Feb 13, 2018
-
-
Sreerenj Balachandran authored
Only supporting asf header-format having BDUs with startcode. It might be possible to support other formats too, but haven't tested. https://bugzilla.gnome.org/show_bug.cgi?id=792589
-
Sreerenj Balachandran authored
The gst-msdk decoders prefer packetized streams as input and in this case we can avoid unnecessary input bitstream copy to mfxBitstream. This works fine for codecs like h264 where we only support byte-stream with au alignment. Other format conversions should be done thorugh parsers. But this won't work for codecs like vc1 where we don't have an autoplugged parser. Even the parser is not capable to do format conversions. Packetizing through base decoders parse() routine will bring a lot of uncecessary of complexities and codecparser libraray dependency. So we just use an interal gst_adaper to keep track of bitstream which is not consumed by msdk durig AsynchronusDecoding. This adapter will get used only if subclass implementations set the "is_packetized" to FALSE for msdk base encoder. https://bugzilla.gnome.org/show_bug.cgi?id=792589
-
Sreerenj Balachandran authored
Adding Simple and Main profiles decode support. Currently msdkvc1dec is not capable to handle the codec_data, only instream headers are supported. Also msdk vc1 decoder expecting instream with Sequence header as per SMPTE 421M Annex L. Most of the decdoebin/playbin pipeline won't work with the above constraints because vc1parse is still not an autoplug element. Only way to make mskdvc1dec work is by connecting a vc1parse as an upstream element. https://bugzilla.gnome.org/show_bug.cgi?id=792589
-
Sreerenj Balachandran authored
Use drm render node as the first choice of device node file. Fall backs to use drm primary (/dev/dri/card[0-9]) if there is no render node available Basic logic is inherited from gstreamer-vaapi, but using gudev API rather than libudev directly. Added gudev library as dependency for msdk. https://bugzilla.gnome.org/show_bug.cgi?id=791599
-
1\ If downstream's pool is MSDK bufferpool, 2\ If there's shared GstMsdkContext in the pipeline, a decoder decides to use video memory. This policy should be improved to handle more cases. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
In case that pipeline is like ".. ! decoder ! encoder ! ..." with using video memory, decoder needs to know the async depth of the following msdk element so that it could allocate the correct number of video memory. Otherwise, decoder's memory is exhausted while processing. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
How to share/create GstMsdkcontext is the following: - Search GstMsdkContext if there's in the pipeline. - If found, check if it's decoder, encoder or vpp by job type. - If it's same job type, it creates another instance of GstMsdkContext with joined-session. - Otherwise just use the shared GstMsdkContext. - If not found, just creates new instance of GstMsdkContext. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
According to the driver's instruction, if there are two or more encoders or decoders in a process, the session should be joined by MFXJoinSession. To achieve this successfully by GstContext, this patch adds job type specified if it's encoder, decoder or vpp. If a msdk element gets to know if joining session is needed by the shared context, it should create another instance of GstContext with joined session, which is not shared. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
To share GstMsdkContext with each msdk element, it will be using GstContext. Most common code is from gstreamer-vaapi. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
1\ In decide_allocation, it makes its own msdk bufferpool. - If downstream supports video meta, it just replace it with the msdk bufferpool. - If not, it uses the msdk bufferpool as a side pool, which will be decoded into. and will copy it to downstream's bufferpool. 2\ Decide if using video memory or system memory. - This is not completed in this patch. - It might be decided in update_src_caps. - But tested for both system memory and video memory cases. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
1\ Proposes msdk bufferpool to upstream. - If upstream has accepted the proposed msdk bufferpool, encoder can get msdk surface from the buffer directly. - If not, encoder get msdk surface its own msdk bufferpool and copy from upstream's frame to the surface. 2\ Replace arrays of surfaces with msdk bufferpool. 3\ In case of using VPP, there should be another msdk bufferpool with NV12 info so that it could convert first and encode. Calls gst_msdk_set_frame_allocator and uses video memory only on linux. and uses system memory on Windows until d3d allocator is implemented. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
Implements 2 memory allocators: 1\ GstMsdkSystemAllocator: This will allocate system memory. 2\ GstMsdkVideoAllocator: This will allocate device memory depending on the platform. (eg. VASurface) Currently GstMsdkBufferPool uses video allocator currently by default only on linux. On Windows, we should use system memory until d3d allocator is implemented. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
Implements msdk frame allocator which is required from the driver. Also makes these functions global so that GstMsdkAllocator could use the allocated video memory later and couple with GstMsdkMemory. GstMsdkContext keeps allocation information such as mfxFrameAllocRequest and mfxFrameAllocResponse after allocation. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
Makes GstMsdkContext to be a descendant of GstObject so that we could track the life-cycle of the session of the driver. Also replaces MsdkContext with this one. Keeps msdk_d3d.c alive for the future. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
Move the msdk_video_alignment function from decoder to msdk.c and rename so that others could call this function without duplicated declaration. https://bugzilla.gnome.org/show_bug.cgi?id=790752
-
-
-
- Feb 12, 2018
-
-
Tim-Philipp Müller authored
Plugin headers are not installed. Also mark internal funcs as internal.
-
-
Tim-Philipp Müller authored
-
Tim-Philipp Müller authored
-
- Feb 11, 2018
-
-
The inter plugin originated in 0.10, which had only one timestamp. As a result, during the port to 1.0, the DTS were left undefined. This can cause subtle bugs with basesrc, which can end up incorrectly picking DTS over PTS and producing output buffers with incorrect timestamps. https://bugzilla.gnome.org/show_bug.cgi?id=791347
-
- Feb 08, 2018
-
-
Nirbheek Chauhan authored
Same changes as done for wasapisink in cbe2fc40. Turns out this is sometimes also needed for capture. Reported by Mathieu_Du. Also improve logging in that case for easier debugging.
-
Tim-Philipp Müller authored
WARNING: Trying to compare values of different types (str, int). The result of this is undefined and will become a hard error in a future Meson release.
-
Víctor Manuel Jáquez Leal authored
This reverts commit f6cb16ab.
-
Nirbheek Chauhan authored
I'm not sure how this was missed in review...
-