ChangeLog 1.45 MB
Newer Older
Tim-Philipp Müller's avatar
Tim-Philipp Müller committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
=== release 1.19.1 ===

2021-06-01 00:16:31 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer-vaapi.doap:
	* meson.build:
	  Release 1.19.1

2021-04-23 19:01:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapi.c:
	* gst/vaapi/gstvaapidecode.c:
	  vaapi: Demote vaapidecodebin to rank NONE.
	  One of the main reasons of vaapidecodebin was because it mitigated the
	  possible surface exhaustion. But that problem is currently
	  solved. Nowadays, vaapidecodebin brings more problems than it
	  solves. Thus this patch demotes vaapidecodebin to NONE rank while
	  bumping PRIMARY + 1 the most common decoders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>

2021-05-20 10:28:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapi.c:
	* gst/vaapi/gstvaapioverlay.c:
	  plugins: Demote rank of vaapipostproc and vaapioverlay.
	  Since almost all video filters have rank NONE, these both elements
	  should be NONE too.
	  This is useful for autovideoconvert and other bins, and users might
	  force to use these by setting the environment variable
	  GST_PLUGIN_FEATURE_RANK.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>

2021-04-21 10:55:45 +0200  François Laignel <fengalin@free.fr>

	* tests/check/elements/vaapioverlay.c:
	  Use gst_element_request_pad_simple...
	  Instead of the deprecated gst_element_get_request_pad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>

2021-04-23 11:02:05 +0800  Zhang yuankun <yuankunx.zhang@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
	  libs: encoder: VP9: fix > 4k encode fail issue
	  The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
	  width of a tile in units of superblocks. So the max width of one tile
	  should not be larger than 64x64=4096. When the width exceeds 4k, we
	  need to split it into multiple tiles in columns. The current vp9 encoder
	  does not handle this correctly.
	  The command such as:
	  gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
	  vaapivp9enc ! fakesink
	  will crash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>

2021-04-02 15:43:45 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
	  libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
	  Otherwise user will be misled that the specified device is using
	  This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>

2021-03-22 13:41:13 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder.c:
	* gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
	* gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
	  decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
	  If ROI is enabled, the CUs within the ROI region may have different
	  QP from the other part of the picture. This needs us to enable the
	  cu_qp_delta_enabled_flag even in the CQP mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>

2021-03-19 17:42:36 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/vaapi/gstvaapicontext.c:
	* gst-libs/gst/vaapi/gstvaapicontext.h:
	* gst-libs/gst/vaapi/gstvaapiencoder.c:
	* gst-libs/gst/vaapi/gstvaapifilter.c:
	* gst-libs/gst/vaapi/gstvaapiminiobject.c:
	* gst-libs/gst/vaapi/gstvaapiminiobject.h:
	* gst-libs/gst/vaapi/gstvaapitexture_glx.c:
	* gst-libs/gst/vaapi/gstvaapiutils_egl.c:
	* gst-libs/gst/vaapi/gstvaapiutils_egl.h:
	* gst-libs/gst/vaapi/gstvaapivalue.c:
	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
	* gst/vaapi/gstvaapipluginbase.c:
	* gst/vaapi/gstvaapisink.c:
	* gst/vaapi/gstvaapisink.h:
	* gst/vaapi/gstvaapivideocontext.c:
	* gst/vaapi/gstvaapivideomemory.c:
	* tests/internal/simple-decoder.c:
	  gst: don't use volatile to mean atomic
	  volatile is not sufficient to provide atomic guarantees and real atomics
	  should be used instead.  GCC 11 has started warning about using volatile
	  with atomic operations.
	  https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
	  Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>

2021-02-24 17:41:02 +0100  Paul Goulpié <paul.goulpie@ubicast.eu>

	* gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
	  gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
	  forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
	  Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>

2021-02-04 15:05:55 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapipostproc.c:
	  plugins: postproc: Fix a problem of propose_allocation when passthrough.
	  We should query the downstream element to answer a precise allocation
	  query when the passthrough mode is enabled.
	  The current way still decides the allocation by the postproc itself. The
	  pipeline such as:
	  gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
	  vaapipostproc ! fakevideosink silent=false sync=true
	  will lose some info such as the GST_VIDEO_META_API_TYPE.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>

2021-01-27 12:05:44 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
	* gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
	* gst/vaapi/gstvaapivideocontext.c:
	  libs: display: drm: support gst.vaapi.app.Display context for drm backend
	  Attributes for drm backend:
	  - va-display : ponter of VADisplay
	  - drm-device-fd : the DRM device file descriptor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>

2021-01-13 14:43:20 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* docs/index.md:
	* gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
	  libs: display: drm: allow user specify a drm device via an env variable
	  Currently the default drm device is always used on a system with
	  multiple drm devices. This patch allows user to specify the required
	  drm device via GST_VAAPI_DRM_DEVICE env variable
	  Example:
	  GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
	  vaapih264enc ! fakesink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>

2021-01-25 14:45:47 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
	  libs: display: drm: fix set_device_path_from_fd
	  drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
	  drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
	  so we can't get the right device path. Running test-display will get the
	  error below:
	  ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
	  display
	  Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
	  issue because a special permission is required for SET_VERSION ioctl.
	  This patch retrieves the device path from file descriptor via
	  g_file_read_link()
	  [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>

2021-01-20 10:42:09 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>

	* gst-libs/gst/vaapi/gstvaapiutils_glx.c:
	  glx: Iterate over FBConfig and select 8 bit color size
	  Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
	  In latest mesa versions the first fbconfig might not be 8 bit, so iterate
	  over it to find the correct config with supported values.
	  This also adds 8 bit alpha size to the framebuffer configuration which is
	  required to get it working properly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>

2021-01-11 09:57:03 +0800  Ung, Teng En <teng.en.ung@intel.com>

	* gst-libs/gst/vaapi/gstvaapiutils.c:
	  vaapipostproc: fix code style.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>

2020-12-21 05:42:00 +0000  Ung, Teng En <teng.en.ung@intel.com>

	* gst-libs/gst/vaapi/gstvaapidisplay.c:
	* gst-libs/gst/vaapi/gstvaapidisplay.h:
	* gst-libs/gst/vaapi/gstvaapifilter.c:
	  vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>

2020-12-21 05:36:29 +0000  Ung, Teng En <teng.en.ung@intel.com>

	* gst-libs/gst/vaapi/gstvaapiutils.c:
	  vaapipostproc: Added gstreamer BT2020 color standard support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>

2021-01-09 16:05:48 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
	  decoder: AV1: Fix a static analysis problem of update_state().
	  No need to check the picture pointer after we have already dereferenced it.
	  Fix: #298
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>

2020-12-22 23:43:52 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
	* gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
	* gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
	  libs: decoder: Add decode_with_surface_id for AV1 film_grain.
	  The AV1 film_graim feature needs two surfaces the same time for
	  decoding. One is for recon surface which will be used as reference
	  later, and the other one is for display. The GstVaapiPicture should
	  contain the surface for display, while the vaBeginPicture() need
	  the recon surface as the target.
	  We add a gst_vaapi_picture_decode_with_surface_id API to handle this
	  kind of requirement.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>

2020-08-27 21:46:41 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
	* gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
	* gst-libs/gst/vaapi/gstvaapiprofile.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.h:
	* gst-libs/gst/vaapi/gstvaapiutils.c:
	* gst-libs/gst/vaapi/meson.build:
	* gst/vaapi/gstvaapidecode.c:
	* meson.build:
	  libs: decoder: AV1: Add the av1 decoder support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>

2020-08-27 21:39:35 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapicodec_objects.c:
	* gst-libs/gst/vaapi/gstvaapicodec_objects.h:
	* gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
	* gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
	  libs: codecobject: Add number of elements when create codec object.
	  One slice data may need several slice parameter buffers at one time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>

2020-12-12 10:30:41 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecodebin.c:
	* gst/vaapi/gstvaapipluginbase.c:
	* gst/vaapi/gstvaapivideobufferpool.c:
	  vaapi: use gst_clear_object instead of g_clear_object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>

2020-12-08 13:34:35 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode.c:
	  plugins: encode: unlock the stream lock before _flush()
	  The current encoder will hang when EOS comes. When we call the
	  gst_vaapi_encoder_encode_and_queue(), we should release the stream
	  lock, just like what we do in gst_vaapiencode_handle_frame().
	  The deadlock happens when: The input thread holding the stream lock
	  is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
	  buffer, while the output thread which holding the coded buffer resource
	  is acquiring the stream lock in _push_frame() to push the data to
	  down stream element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>

2020-12-09 00:04:33 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
	  libs: encoder: H264: Fix one assert in get_pending_reordered().
	  gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
	  case for HIERARCHICAL_B mode. The pipeline:
	  gst-launch-1.0  videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
	  keyframe-period=32 ! fakesink
	  get a assert:
	  ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
	  assertion failed: (count != 0)
	  The last few B frames are not fetched in correct order when HIERARCHICAL_B
	  is enabled.
	  We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
	  make the last several frames encoded in reverse order. The NAL of last few
	  frames come in reverse order in the bit stream, though it can still output
	  the correct image.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>

2020-06-25 16:25:21 +0800  He Junyan <junyan.he@hotmail.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
	* gst-libs/gst/vaapi/gstvaapiutils_h265.c:
	  libs: encoder: H265: Add screen content coding extensions support.
	  In scc mode, the I frame can ref to itself and it needs the L0 reference
	  list enabled. So we should set the I frame to P_SLICE type. We do not need
	  to change the ref_pic_list0/1 passed to VA driver, just need to enable the
	  VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
	  the driver consider the current frame as reference. For bits conformance,
	  the NumRpsCurrTempList0 should be incremented by one to include the current
	  picture as the reference frame. We manually do it when packing the slice header.
	  Command line like:
	  gst-launch-1.0  videotestsrc num-buffers=10 ! \
	  capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
	  vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
	  filesink location=out.265
	  Can be used to specify that the encoder should use SCC profiles.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>

2020-07-11 23:37:29 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode_vp9.c:
	  plugin: encode: vp9: Implement the set_config().
	  We store the allowed profiles list to encoder in set_config().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>

2020-07-11 23:39:40 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode_vp9.c:
	  plugin: encode: vp9: Add the profile into output caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>

2020-07-11 23:27:21 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
	  libs: encoder: vp9: no need to ensure_hw_profile.
	  Once we decide the profile and can get the valid entrypoint for
	  that profile, hw must already support this profile/entrypoint pair.
	  No need to check it again in set_context_info().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>

2020-07-11 23:22:55 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
	  libs: encoder: vp9: Improve the manner to decide the profile.
	  We should decide the VP9 encoder's profile based on the chroma and
	  depth of the input format, then make sure it is included in the
	  allowed list.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>

2020-07-11 23:17:02 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
	* gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
	  libs: util: vpx: add get_chroma_format_idc for VP9
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>

2020-07-11 23:09:59 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
	* gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
	  libs: encoder: vp9: Add allowed_profiles.
	  We need the allowed_profiles to store the allowed profiles in down
	  stream's caps.
	  Command line like:
	  vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
	  (string)3 }"
	  We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
	  in this list.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>

2020-11-30 18:00:30 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
	  libs: decoder: H265: Fix a typo in scc reference setting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>

2020-07-17 18:00:30 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.h:
	* gst-libs/gst/vaapi/gstvaapiutils_h265.c:
	* gst-libs/gst/vaapi/video-format.c:
	* gst/vaapi/gstvaapidecode.c:
	  libs: decoder: H265: Add MAIN_422_12 profile supporting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>

2020-07-31 14:38:42 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiimage.c:
	* gst-libs/gst/vaapi/video-format.c:
	* gst-libs/gst/vaapi/video-format.h:
	  video-format: Add Y212_LE format.
	  It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
	  also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
	  stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>

2020-07-30 23:21:06 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.h:
	* gst-libs/gst/vaapi/gstvaapiutils_h265.c:
	* gst-libs/gst/vaapi/video-format.c:
	* gst/vaapi/gstvaapidecode.c:
	  libs: decoder: H265: Add MAIN_444_12 profile supporting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>

2020-07-30 23:13:10 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiimage.c:
	* gst-libs/gst/vaapi/video-format.c:
	* gst-libs/gst/vaapi/video-format.h:
	  video-format: Add Y412_LE format.
	  It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
	  also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
	  stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>

2020-09-17 16:47:43 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
	  libs: decoder: h265: fill missing predictor_palette_size field.
	  The predictor_palette_size of VAPictureParameterBufferHEVCScc is
	  forgotten and need to be filled when streams have palettes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>

2020-09-17 15:35:11 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiutils_h265.c:
	  libs: utils: h265: Use get_profile_from_sps to get profile.
	  We now use gst_h265_get_profile_from_sps() to replace the old way
	  of gst_h265_profile_tier_level_get_profile() to get more precise
	  profile. The new function consider the unstandard cases and give
	  a more suitable profile decision.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>

2020-10-19 13:46:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
	  libs: decoder: vp9: 0xff segment pred probs if no temporal update
	  According to the spec (6.2.11 Segmentation params syntax)
	  segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>

2020-10-19 13:42:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
	  libs: decoder: vp9: avoid reference rewriting
	  The removed code set all the reference frames to the current frame it is a key
	  one, but later, all the reference frames were rewritten with the decoded picture
	  buffers or VA_INVALID_SURFACE if they were not available.
	  Basically, all this time the first reference frame assignment has been ignored,
	  and it's not described by the spec, and this patch removes that code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>

2020-09-20 09:56:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecode.c:
	  decoder: don't reply src caps query with allowed if pad is fixed
	  If the pad is already fixed the caps query have to be reply with the
	  current fixed caps. Otherwise the query has to be replied with the
	  autogeneratd src caps.
	  This path fix this by falling back to the normal caps query processing
	  if the pad is already fixed. Otherwise it will fetch the allowed src
	  pad caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>

2020-09-15 00:11:30 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapidecode.c:
	  plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>

2020-09-01 09:31:33 +0200  Marc Leeman <m.leeman@televic.com>

	* gst/vaapi/gstvaapisink.c:
	  vaapisink: when updating the caps, reset rotation
	  When an element upstream changes settings (e.g. crop), new caps are sent
	  to vaapisink. When vaapisink was rotating the image, it needs to
	  re-evaluate if the sink needs to rotate the image.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>

2020-09-08 17:31:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* .gitlab-ci.yml:
	  ci: include template from gst-ci master branch again

2020-09-08 16:59:07 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

Tim-Philipp Müller's avatar
Tim-Philipp Müller committed
479
480
481
482
=== release 1.18.0 ===

2020-09-08 00:09:51 +0100  Tim-Philipp Müller <tim@centricular.com>

Tim-Philipp Müller's avatar
Tim-Philipp Müller committed
483
	* .gitlab-ci.yml:
Tim-Philipp Müller's avatar
Tim-Philipp Müller committed
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer-vaapi.doap:
	* meson.build:
	  Release 1.18.0

2020-09-07 12:15:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/vaapi/gstvaapifilter.c:
	  Update for gst_video_transfer_function_*() function renaming
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>

2020-08-22 12:53:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
	* gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
	  Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
	  This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e

Tim-Philipp Müller's avatar
Tim-Philipp Müller committed
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=== release 1.17.90 ===

2020-08-20 16:16:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer-vaapi.doap:
	* meson.build:
	  Release 1.17.90

2020-08-17 11:43:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapisurface_egl.c:
	  libs: surface: egl: guard memory type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>

2020-08-17 19:26:43 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapidecode.c:
	  plugin: decode: Fix two mem leaks because of caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>

2020-08-16 01:57:15 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapivideomemory.c:
	  plugin: allocator: No need to ref allocator when create mem.
	  We do not need to ref the allocator when creating GstVaapiVideoMemory
	  kind memory, and then release it in _free(). The framework already
	  does it for us.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>

2020-08-14 10:42:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapiencode_h264.c:
	  vaapiencode: h264: ignore level without breaking negotiation
	  Since commit 9f627ef2 if the user sets level in the encoder src caps
	  the caps negotiation is rejected.
	  But since the same commit the same encoder set the autoconfigured
	  level in caps. Some change in the base class might fixed the operation
	  order so now the caps are set and later negotiated.
	  This patch removes the level check.
	  Fixes: #273
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>

2019-07-09 19:17:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/egl_vtable.h:
	* gst-libs/gst/vaapi/gstvaapisurface_egl.c:
	* gst-libs/gst/vaapi/gstvaapisurface_egl.h:
	* gst-libs/gst/vaapi/gstvaapitexture_egl.c:
	  libs: egl: surface: export EGLImage as DMABuf if GEM not supported
	  This code path is used when frames are rendered as textures through
	  GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
	  Originally the EGLImage was exported as GEM, which was handled by
	  Intel drivers, but Gallium ones cannot create VA surfaces from
	  GEM buffers, only DMABuf.
	  This patch checks the memory types supported by VA driver to choose
	  the render the EGLImages from GEM or DMABuf, because GEM is still
	  better where supported.
	  DMABuf is well handled either by intel-vaapi-driver and gallium.
	  Fixes: #137
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>

2020-05-26 16:18:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapifilter.c:
	* gst-libs/gst/vaapi/gstvaapifilter.h:
	  libs: filter: gst_vaapi_filter_get_memory_types()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>

2020-08-12 18:48:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapipluginbase.c:
	* gst/vaapi/gstvaapipluginbase.h:
	  plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
	  Since nobody uses it, just remove it.
	  Thus extract_allowed_surface_formats() is refactored to attend only
	  gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
	  Now a surface is created when the image chorma is different from the
	  previous one. And if the driver has the quirk, it outputs all the
	  supported image formats without trying them.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>

2020-08-12 17:50:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecode.c:
	  vaapidecode: expose raw src caps with same chroma
	  The try-and-error approach for getting the possible image formats from
	  a surface has brought several problems in different drivers, from
	  crashes to drop in performance.
	  Instead of that we change the algorithm to determine the possible
	  image formats based in the surface chroma: only those available image
	  formats with same chroma are exposed as possible raw caps.
	  Do this is important to avoid performance degrading in raw sinks
	  which doesn't handle NV12 but it does YV12 or I420.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>

2020-07-10 17:05:38 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiutils_h265.c:
	  libs: util: h265: use common parser API to get vaapi profiles.
	  We can reuse H265 parser's API to recognize the correct profile and
	  then just need to convert them to VAAPI profiles.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>

2020-08-07 16:41:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/meson.build:
	* gst/vaapi/meson.build:
	* meson.build:
	  build: update for gl pkg-config file split
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>

2020-08-06 12:51:27 +0800  Xu Guangxin <guangxin.xu@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
	  h264dec: mark remaining frames as unreference before exec_picture_refs_modification
	  8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>

2020-07-31 18:22:46 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder.c:
	* gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
	* gst-libs/gst/vaapi/gstvaapiutils_h265.c:
	  libs: encoder: H265: Enable Main 12 profile support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>

2020-07-31 19:17:39 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/video-format.c:
	  video format: Fix P012_LE's chrome type typo.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>

2020-08-04 21:15:01 +0300  Jordan Petridis <jordan@centricular.com>

	* gst-libs/gst/vaapi/gstvaapiminiobject.c:
	  gstvaapiminiobject.c:   fix clang 10 warnings
	  the typesystem checks in g_atomic_pointer_compare_and_exchange
	  seem to trigger some false positives with clang 10
	  similar to gstreamer!584
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>

2020-07-31 11:07:23 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
	  libs: window: wayland: destroy all wayland buffers during finalize
	  Some buffers and the associated FrameState state may still be pending at
	  that point. If the wayland connection is shared, then messages for the
	  buffer may still arrive. However, the associated event queue is already
	  deleted. So the result is a crash.
	  With a private connection the associated memory is leaked instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-18 20:25:18 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* tests/examples/test-vaapicontext.c:
	  test: vaapicontext: fix draw callback with multiple videos
	  The callback is called for both windows. So make sure that
	  gst_video_overlay_set_render_rectangle() is called for the correct one.
	  Otherwise, the left video will be randomly moved behind the right video.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-19 09:23:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* tests/examples/meson.build:
	* tests/examples/test-vaapicontext.c:
	  test: vaapicontext: support wayland display
	  On Wayland, The whole gtk window is one Wayland surface. So
	  gtk_widget_get_window() must be called on the top-level widget.
	  For any other widget the following gdk_window_ensure_native() may create a
	  new top-level Wayland surface that is never visible.
	  As a result, the coordinates passed to
	  gst_video_overlay_set_render_rectangle() must be relativ to the top-level
	  window. Otherwise the video is placed incorrectly.
	  Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2017-12-01 20:18:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/examples/test-vaapicontext.c:
	  test: vaapicontext: use playbin to test files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2017-11-29 11:11:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/examples/test-vaapicontext.c:
	  test: vaapicontext: add PLAY and NULL buttons
	  They only appear when only one sink is instanciated and their purpose
	  is to test the NULL-PLAY use case in context sharing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-19 21:26:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
	  libs: wayland: update the opaque region in set_render_rect
	  gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
	  thread. That thread may be responsible for making the window visible.
	  At that point another thread will block in gst_vaapi_window_wayland_sync()
	  because the frame callback will not be called until the window is visible.
	  If that happens, then acquiring the display lock in
	  gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
	  Cache the size of the opaque rectangle separately and create the opaque
	  region right before applying it to the surface.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-19 09:21:16 +0200  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vaapi/gstvaapiwindow.c:
	* gst-libs/gst/vaapi/gstvaapiwindow.h:
	* gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
	* gst/vaapi/gstvaapisink.c:
	  libs: window: implements gst_vaapi_window_set_render_rectangle
	  Implements new vmethod gst_vaapi_window_set_render_rectangle,
	  which is doing set the information of the rendered rectangle set by
	  user.
	  This is necessary on wayland at least to get exact information of
	  external surface.
	  And vaapisink calls this when gst_video_overlay_set_render_rectangle is
	  called.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2017-11-08 13:23:39 +0900  Hyunjun Ko <zzoon@igalia.com>

	* gst/vaapi/gstvaapisink.c:
	  vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
	  Implements gst_vaapisink_wayland_create_window_from_handle() to support
	  using external wl_surface.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-19 09:11:20 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
	* gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
	* gst-libs/gst/vaapi/gstvaapiwindow.c:
	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
	  libs: wayland: implement video overlay API
	  The Wayland sub-surfaces API is used to embed the video into an application
	  window.
	  See Appendix A. Wayland Protocol Specification as the following.
	  """
	  The aim of sub-surfaces is to offload some of the compositing work
	  within a window from clients to the compositor. A prime example is
	  a video player with decorations and video in separate wl_surface
	  objects.
	  This should allow the compositor to pass YUV video buffer processing to
	  dedicated overlay hardware when possible.
	  """
	  Added new method gst_vaapi_window_wayland_new_with_surface()
	  Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
	  Zhao Halley <halley.zhao@intel.com>
	  changzhix.wei@intel.com
	  Hyunjun Ko <zzoon@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-19 21:54:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
	  doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-06-11 08:25:57 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst-libs/gst/vaapi/gstvaapidisplay.c:
	  libs: display: always call close_display()
	  All close_display() have their own checks for use_foreign_display and only
	  destroy locally created objects in that case.
	  Without this objects other than the actuall foreign display itself are
	  leaked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>

2020-07-30 23:37:10 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/video-format.h:
	  video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>

2020-05-25 17:02:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecode.c:
	* gst/vaapi/gstvaapipluginutil.c:
	* gst/vaapi/gstvaapipluginutil.h:
	  plugins: add gst_vaapi_caps_set_width_and_height_range()
	  This utility function is called internally by
	  gst_vaapi_build_caps_from_formats() and can be used outside.
	  This function sets frame size and framerates ranges.
	  Also gst_vaapi_build_caps_from_formats() is simplified.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>

2020-07-31 15:27:38 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder.c:
	  libs: decoder: fix a crash issue when get_surface_formats.
	  Some context does not report any valid format that we can support.
	  For example, the HEVC 444 12 bits decoder context, all the formats
	  it reports is not supported now, which make the formats list a NULL
	  array. We should check that pointer before we use it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>

2020-07-03 19:28:28 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
	  libs: encoder: h265: choose the profile based on allowed list.
	  We can decide the profile in ensure_profile(), based on allowed list
	  passed by the encode. We also need to check whether the entrypoint is
	  available. Once it is decided, no need to check the hw entrypoint
	  them again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>

2020-07-29 22:05:41 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode_h265.c:
	  plugins: encode: h265: set all allowed profiles to encoder.
	  We should collect all allowed profiles and pass them to the inside
	  encoder, rather than just calculate the max profile idc.
	  The allowed profiles should also be supported by the HW.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>

2020-07-29 22:32:55 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidisplay.c:
	* gst-libs/gst/vaapi/gstvaapidisplay.h:
	  libs: display: Add a helper function to get profiles by codec.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>

2020-07-03 01:28:28 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode_h265.c:
	  plugins: encode: h265: collect all allowed profiles to encoder.
	  We should collect all allowed profiles and pass them to the inside
	  encoder, rather than just calculate the max profile idc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>

2020-07-03 00:53:31 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
	* gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
	* gst/vaapi/gstvaapiencode_h265.c:
	  libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
	  In h265, bigger profile idc may not be compatible with the small profile
	  idc. And more important, there are multi profiles with the same profile
	  idc. Such as main-422-10, main-444 and main-444-10, they all have profile
	  idc 4.
	  So recording the max profile idc is not enough, the encoder needs to know
	  all allowed profiles when deciding the real profile.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>

2020-07-02 23:33:31 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
	  libs: encoder: h265: No need to check hw_max_profile.
	  In h265, higher profile idc number does not mean better compression
	  performance and may be not compatible with the lower profile idc.
	  So, it is not suitable to find the heighest idc for hw to ensure the
	  compatibility.
	  On the other side, when the entrypoint of the selected profile is valid,
	  it means the hw really support this profile, no need to check it again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>

2020-04-08 19:41:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapipostproc.c:
	  vaapipostproc: early return if fixate srcpad caps fails
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>

2020-07-29 13:39:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapipluginutil.c:
	  vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
	  Generalize the way how the preferred color format is chosen. Also
	  use new GStreamre API as syntatic sugar.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>

2020-07-29 14:22:18 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapidecoder.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.c:
	* gst-libs/gst/vaapi/gstvaapiprofile.h:
	* gst/vaapi/gstvaapidecode.c:
	* gst/vaapi/gstvaapiencode.c:
	  libs: profile: Use get_codec_from_caps to get codec type.
	  There is no need to get a profile from the caps and then convert
	  that profile into codec type. We can get the codec type by caps's
	  name easily.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>

2020-07-12 19:42:40 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiprofile.c:
	  libs: profile: h265: Fix return value of from_codec_data_h265.
	  profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
	  The codec data of caps contain the profile IDC, but the mapping between
	  profile IDC and GstVaapiProfile is wrong.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>

2020-07-07 00:46:23 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode_vp9.c:
	  plugins: encode: vp9: Implement vp9's allowed_profiles() func.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>

2020-07-08 16:30:17 +0800  He Junyan <junyan.he@intel.com>

	* gst/vaapi/gstvaapiencode_h264.c:
	* gst/vaapi/gstvaapiencode_h265.c:
	* gst/vaapi/gstvaapipluginutil.c:
	* gst/vaapi/gstvaapipluginutil.h:
	  plugin: util: rename h26x_encoder_get_profiles_from_caps().
	  Change its name to encoder_get_profiles_from_caps(). Other codecs such
	  as VP9 also needs to use this function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>

2020-07-06 23:35:12 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
	* gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
	* gst-libs/gst/vaapi/meson.build:
	  libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>

2020-07-29 10:17:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapicontext.c:
	* gst-libs/gst/vaapi/gstvaapidisplay.c:
	* gst-libs/gst/vaapi/gstvaapidisplay.h:
	  libs: display, context: handle broken jpeg decoder for i965 driver
	  JPEG decoding in i965 driver is pretty much broken, and the driver is
	  deprecated which mean authors only accept trivial fixes.
	  Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
	  format which is not a common format in GStreamer. It can export it to
	  I420 at mapping raw bytes, but DMABuf exporting is problematic.
	  This patch artificially adds NV12 to the context format list when it's
	  JPEG decoder for i965 and force the usage of old VA-API for surface
	  creation without specifying color format. Also it artificially
	  disables the DMABuf announcement.
	  1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>

2020-07-29 12:02:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapicontext.c:
	  libs: context: change function to internal code style
	  Instead of a getter the function `get_preferred_format()` to
	  `ensure_preferred_format()` which aligns to the code style.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>

2020-07-28 20:00:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecode.c:
	  vaapidecode: always merge profile caps in sink caps
	  This commit fixes a regression of e962069d, where if the profile's
	  caps doesn't have a caps profile, it's ignored.
	  This patch add a conditional jump if the caps doesn't have a profile
	  field to merge it.
	  Fixes: #271
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>

2020-07-28 12:22:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* meson.build:
	  build: request libdrm >= 2.4.98 and fallback
	  Fixes: #270
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>

2020-05-18 17:32:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecode.c:
	  vaapidecode: dma caps only use reported color format
	  This fix pipelines without vaapipostproc after vaapi decoder, such as
	  gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
	  On EGL platforms, so DMABuf is used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>

2020-02-07 17:10:45 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/vaapi/gstvaapidecode.c:
	  vaapidecode: use allowed srcpad caps for caps query
	  Instead of using just the template caps use the current allowed
	  srcpad caps, which is created considering the current decoder
	  context.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>

2020-01-22 17:41:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vaapi/gstvaapidecoder.c:
	* gst-libs/gst/vaapi/gstvaapidecoder.h:
	* gst/vaapi/gstvaapidecode.c:
	  vaapidecode: build allowed srcpad caps from va context
	  Instead of generating allowed srcpad caps with generic information,
	  now it takes the size an formats limits from the decoder's context.
	  This is possible since srcpad caps are generated after the internal
	  decoder is created.
	  The patch replaces gst_vaapi_decoder_get_surface_formats() with